:root{--bg:#f4f5f7;--card:#fff;--neutral:#ebecf0;--border:#dfe1e6;--text:#172b4d;--muted:#6b778c;--accent:#0052cc;--action:#0c66e4;--action-light:#e8f0fc;--success:#0a8a63;--danger:#c9372c}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.45 -apple-system,Segoe UI,Roboto,Arial,sans-serif}#root{display:flex;flex-direction:column;max-width:520px;margin:0 auto;min-height:100%}button{font-family:inherit}input,select{font-family:inherit;font-size:15px;color:var(--text)}.app{flex:1;display:flex;flex-direction:column;padding:12px 12px 0;overflow-y:auto}.shead{display:flex;align-items:baseline;gap:8px;padding:4px 2px 10px;border-bottom:1px solid var(--border)}.shead b{font-size:20px;font-weight:800}.shead .d{margin-left:auto;color:var(--muted);font-size:12.5px}.conn{color:var(--muted);font-size:11px;border:none;background:none;padding:2px 6px;min-height:32px}.conn .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--success);margin-right:4px}.conn.off .dot{background:var(--danger)}.hint{color:var(--muted);font-size:12px;text-align:center;margin:10px 2px}.fill{flex:1;min-height:12px}.secTitle{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:10px 2px 4px}.quietLink{background:none;border:none;color:var(--accent);font-size:13.5px;text-decoration:underline;cursor:pointer;min-height:44px;padding:4px 2px}.empty{color:var(--muted);font-size:13.5px;padding:10px 2px}.budget{display:flex;align-items:baseline;gap:6px;padding:2px 2px 0;color:var(--muted);font-size:9.5px;font-variant-numeric:tabular-nums}.budget b{font-size:9.5px;font-weight:700;color:var(--text)}.budgetBar{height:6px;border-radius:3px;background:var(--neutral);margin:6px 2px 4px;overflow:hidden;position:relative}.budgetBar i{display:block;height:100%;background:var(--accent);border-radius:3px}.line{display:flex;align-items:flex-end;gap:8px;margin:4px 2px 0}.kbar{width:100%;height:6px;border-radius:3px;background:var(--neutral);overflow:hidden;display:block}.kbar i{display:block;height:100%;background:var(--accent)}.mblock{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-start;gap:3px}.mblock.kblock{flex:1;min-width:100px}.mnum{font-size:9.5px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;line-height:1}.mnum b{color:var(--text)}.mtr{width:38px;height:5px;border-radius:3px;background:var(--neutral);overflow:hidden;display:block}.mtr i{display:block;height:100%;border-radius:3px}.swipeWrap{position:relative;overflow:hidden;border-radius:8px}.swipeDel{position:absolute;inset:0 0 0 auto;width:76px;border:none;background:var(--danger);color:#fff;font-size:13px;font-weight:700;cursor:pointer;border-radius:8px}.swipeContent{position:relative;background:var(--card)}.segbar{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:8px 2px 0}.seg{min-height:44px;border:none;background:var(--neutral);border-radius:10px;font-size:11.5px;font-weight:700;color:var(--muted);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:4px 2px}.seg small{font-weight:600;font-size:9.5px;font-variant-numeric:tabular-nums}.seg.on{background:var(--action);color:#fff}.seg.done{background:var(--action-light);color:var(--accent)}.seg.on.done{background:var(--action);color:#fff}.fab{position:fixed;right:16px;bottom:76px;width:56px;height:56px;border-radius:50%;background:var(--action);color:#fff;border:none;cursor:pointer;z-index:20;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px #0c66e473}.snackbarInline{margin-top:6px;background:var(--neutral);color:var(--text);border-radius:10px;padding:8px 12px;display:flex;align-items:center;gap:14px;font-size:12.5px}.snackbarInline button{background:none;border:none;color:var(--accent);font-weight:700;font-size:12.5px;cursor:pointer;min-height:36px;padding:0 4px;margin-left:auto}.mrow{display:flex;align-items:center;gap:8px;min-height:46px;border-bottom:1px solid var(--border);font-size:14px;background:none;border-left:none;border-right:none;border-top:none;width:100%;cursor:pointer;text-align:left;padding:0 2px}.mrow .mn{font-weight:600}.mrow .mk{margin-left:auto;color:var(--muted);font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:5px}.mrow .mk .ok{color:var(--success);display:flex}.mplus{background:none;border:none;color:var(--accent);font-size:22px;font-weight:700;cursor:pointer;margin-left:auto;min-height:44px;padding:0 8px;line-height:1}.mealBlock{margin-bottom:2px}.entryList{padding:2px 0 6px 8px}.entryRow{display:flex;align-items:center;gap:8px;width:100%;text-align:left;min-height:44px;background:none;border:none;border-bottom:1px solid var(--border);font-size:13.5px;cursor:pointer;color:var(--text);padding:4px 2px}.entryRow .en{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entryRow .eq{margin-left:auto;color:var(--muted);font-variant-numeric:tabular-nums;flex-shrink:0}.entryRow .echev{color:var(--muted);flex-shrink:0}.tileGrid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.tile{display:flex;flex-direction:column;justify-content:center;gap:1px;min-height:46px;padding:6px 10px;background:var(--card);border:1px solid var(--border);border-radius:10px;cursor:pointer;text-align:left;color:var(--text)}.tile:active{background:var(--action-light)}.tile .nm{font-size:14px;font-weight:600;line-height:1.25}.tile .k{color:var(--muted);font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums}.tileTag{font-size:10px;font-weight:700;color:var(--accent);background:var(--action-light);border-radius:999px;padding:1px 7px;margin-left:5px;white-space:nowrap}.repeatRow{display:flex;align-items:center;gap:8px;min-height:44px;background:var(--action-light);border-radius:10px;padding:4px 10px;margin-top:4px}.repeatRow .t{font-size:12px;line-height:1.25;color:var(--muted)}.repeatRow .t b{display:block;font-size:13px;color:var(--text)}.btn2{margin-left:auto;background:#fff;border:1px solid var(--accent);color:var(--accent);border-radius:8px;min-height:44px;padding:0 12px;font-size:13.5px;font-weight:600;cursor:pointer;flex-shrink:0}.drinkRow{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:4px}.drinkTap{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;border:1px solid var(--border);border-radius:10px;background:var(--card);cursor:pointer;font-size:13px;color:var(--muted)}.drinkTap b{font-size:16px;color:var(--text);font-variant-numeric:tabular-nums}.drinkTap:active{background:var(--action-light)}.mealHead{display:flex;align-items:center;gap:6px;padding:4px 2px 0;color:var(--muted)}.mealHead b{font-size:19px;font-weight:800;color:var(--text)}.mealHead select{border:none;background:none;color:var(--muted);font-size:13px;padding:8px 2px}.sheetWrap{position:fixed;top:0;right:0;bottom:0;left:0;background:#172b4d66;display:flex;align-items:flex-end;justify-content:center;z-index:30}.sheet{background:var(--card);width:100%;max-width:520px;border-radius:16px 16px 0 0;padding:14px 14px 18px;max-height:88vh;overflow-y:auto}.sheet.sheetFull{position:fixed;top:0;right:0;bottom:0;left:0;max-height:100vh;height:100%;border-radius:0;padding-top:max(10px,env(safe-area-inset-top))}.fullHead{display:flex;align-items:center;gap:8px;padding:0 2px 8px;border-bottom:1px solid var(--border);margin-bottom:10px}.fullHead b{font-size:16px}.fullHead .quietLink{margin-left:auto;min-height:40px}.sheet .grab{width:36px;height:4px;border-radius:2px;background:var(--border);margin:0 auto 10px}.sheetTabs{display:flex;gap:6px;margin-bottom:10px}.sheetTabs button{flex:1;min-height:44px;border:1px solid var(--border);background:var(--card);border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;color:var(--muted)}.sheetTabs button.on{background:var(--action-light);border-color:var(--accent);color:var(--accent)}.searchBox{display:flex;align-items:center;gap:8px;background:var(--neutral);border-radius:10px;padding:0 12px;min-height:46px}.searchBox input{border:none;background:none;flex:1;outline:none;min-height:44px}.resultRow{display:flex;align-items:center;gap:8px;min-height:44px;border-bottom:1px solid var(--border);font-size:13.5px;cursor:pointer;background:none;border-left:none;border-right:none;border-top:none;width:100%;text-align:left;color:var(--text)}.resultRow.sel{background:var(--action-light);border-radius:8px;border-bottom-color:transparent;padding:0 8px;margin:0 -8px;font-weight:600}.srcBadge{font-size:10.5px;font-weight:700;border-radius:999px;padding:2px 8px;flex-shrink:0}.srcBadge.local{color:var(--success);background:#e3f3ed}.srcBadge.off{color:var(--muted);background:var(--neutral)}.picked{margin-top:10px;background:var(--action-light);border-radius:10px;padding:10px 12px}.picked .name{font-size:15px;font-weight:700}.picked .per{color:var(--muted);font-size:12.5px;margin-top:2px;font-variant-numeric:tabular-nums}.picked .per100{color:var(--muted);font-size:12px;margin-top:3px;font-variant-numeric:tabular-nums}.picked .per100 b{color:var(--text);font-weight:700}.totalRow{display:flex;align-items:baseline;gap:10px;margin-top:8px;padding-top:7px;border-top:1px solid #cdd9f3;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.totalRow b{font-size:15px;font-weight:800;color:var(--text)}.totalRow span{white-space:nowrap}.chipRow{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.chipLbl{font-size:11.5px;color:var(--muted);margin-top:10px}.chip{background:#fff;border:1px solid var(--border);border-radius:999px;min-height:44px;padding:0 14px;font-size:14px;font-weight:600;cursor:pointer;font-variant-numeric:tabular-nums;color:var(--text)}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.preCalc{display:flex;align-items:baseline;gap:8px;margin-top:12px;color:var(--muted);font-size:12.5px;font-variant-numeric:tabular-nums}.preCalc b{font-size:18px;font-weight:800;color:var(--text)}.btnMain{display:block;width:100%;min-height:52px;margin-top:14px;background:var(--action);color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:700;cursor:pointer}.btnMain:disabled{opacity:.5}.numInput{display:flex;align-items:center;gap:8px;margin-top:10px}.numInput label{width:90px;color:var(--muted);font-size:13.5px}.numInput input{flex:1;min-height:44px;border:1px solid var(--border);border-radius:10px;padding:0 12px;outline:none}.bigState{display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 0}.bigState .t{font-size:34px;font-weight:800;font-variant-numeric:tabular-nums}.bigState .s{color:var(--muted);font-size:13px}.moodRow{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.mood{display:flex;align-items:center;justify-content:center;min-height:52px;background:var(--card);border:1px solid var(--border);border-radius:10px;cursor:pointer;font-size:13.5px;font-weight:600;color:var(--muted)}.mood.on{background:var(--action-light);border-color:var(--accent);color:var(--accent)}.nightRow{display:flex;align-items:baseline;gap:8px;min-height:44px;border-bottom:1px solid var(--border);font-size:14px}.nightRow .d{color:var(--muted);font-size:12.5px;width:92px}.nightRow .m{margin-left:auto;color:var(--muted);font-size:12.5px}.setRow{display:flex;align-items:baseline;gap:8px;min-height:44px;border-bottom:1px solid var(--border);font-size:14.5px}.setRow .w{color:var(--muted);font-size:13px}.setRow .t{margin-left:auto;color:var(--muted);font-size:12px}.drow{display:flex;align-items:center;gap:10px;min-height:56px;border-bottom:1px solid var(--border);background:none;border-left:none;border-right:none;border-top:none;width:100%;text-align:left;cursor:pointer;padding:6px 2px;font-size:14.5px;color:var(--text)}.drow .tx b{display:block;font-size:14.5px}.drow .tx span{display:block;color:var(--muted);font-size:12.5px;margin-top:1px;font-variant-numeric:tabular-nums}.drow .chev{margin-left:auto;color:var(--muted)}.tabbar{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--border);background:var(--card);height:60px;flex-shrink:0;position:sticky;bottom:0}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:none;border:none;cursor:pointer;color:var(--muted);font-size:10.5px;font-weight:600}.tab.on{color:var(--accent);font-weight:700}.tab svg{display:block}.moreRow{display:flex;align-items:center;gap:8px;min-height:48px;border-bottom:1px solid var(--border);font-size:14.5px}.moreRow .v{margin-left:auto;color:var(--muted);font-variant-numeric:tabular-nums}
