:root{--bg:#f4f6f5;--surface:#fff;--surface-2:#edf1f0;--ink:#101614;--ink-2:#5a6a65;--ink-3:#8a9a95;--line:#10161417;--accent:#0f7a63;--accent-soft:#e2f1ec;--danger:#c0392b;--r:14px;--shadow-1:0 1px 2px #1018140d;--shadow-2:0 10px 30px -14px #10181447;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px)}@media (prefers-color-scheme:dark){:root{--bg:#0e1211;--surface:#171d1b;--surface-2:#202927;--ink:#e8eeeb;--ink-2:#9db0aa;--ink-3:#6e8079;--line:#ffffff1a;--accent:#3ec9a8;--accent-soft:#12241f;--danger:#ef7a6d}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,system-ui,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:15px;line-height:1.45}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}input,textarea,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{max-width:600px;min-height:100dvh;margin:0 auto}.page{padding:0 16px calc(96px + var(--safe-b))}.topbar{z-index:20;padding:calc(14px + var(--safe-t)) 0 10px;background:var(--bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;min-width:0;display:flex}.logo{background:var(--accent);color:#fff;width:38px;height:38px;box-shadow:var(--shadow-2);border-radius:11px;flex:none;place-items:center;display:grid}.brand-text{min-width:0}.brand-text h1{letter-spacing:.2px;margin:0;font-size:17px;font-weight:650}.brand-text p{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;margin:1px 0 0;font-size:12px;overflow:hidden}.icon-btn{width:40px;height:40px;color:var(--ink-2);background:var(--surface);border:1px solid var(--line);border-radius:12px;flex:none;place-items:center;transition:transform .12s;display:grid}.icon-btn:active{transform:scale(.94)}.searchbar{background:var(--surface);border:1px solid var(--line);height:46px;box-shadow:var(--shadow-1);border-radius:12px;align-items:center;gap:8px;padding:0 10px;display:flex}.searchbar:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.searchbar input{background:0 0;border:0;outline:none;flex:1;min-width:0;height:100%;font-size:15px}.searchbar input::placeholder{color:var(--ink-3)}.searchbar-icon{color:var(--ink-3);flex:none}.clear{background:var(--surface-2);width:26px;height:26px;color:var(--ink-2);border-radius:50%;flex:none;place-items:center;display:grid}.chips{scrollbar-width:none;gap:8px;margin:12px 0 2px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{background:var(--surface);border:1px solid var(--line);color:var(--ink-2);white-space:nowrap;border-radius:999px;padding:7px 15px;font-size:13.5px;transition:background .15s,color .15s}.chip.on{background:var(--accent);color:#fff;border-color:#0000;font-weight:600}.days{flex-direction:column;gap:18px;margin-top:16px;display:flex}.day-head{color:var(--ink-2);letter-spacing:.3px;justify-content:space-between;align-items:baseline;margin:0 0 8px 2px;font-size:13px;font-weight:650;display:flex}.day-sum{color:var(--ink-3);letter-spacing:0;font-weight:500}.cards{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.card{text-align:left;border-radius:var(--r);background:var(--surface);border:1px solid var(--line);width:100%;box-shadow:var(--shadow-1);flex-direction:column;gap:7px;padding:13px 14px;transition:transform .12s;display:flex}.card:active{transform:scale(.985)}.card-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.mat{letter-spacing:.2px;text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:650;overflow:hidden}.qty{color:var(--accent);background:var(--accent-soft);white-space:nowrap;border-radius:8px;flex:none;padding:3px 9px;font-size:13.5px;font-weight:650}.card-meta{color:var(--ink-2);align-items:center;gap:8px;font-size:13px;display:flex}.meta-item{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;min-width:0;display:inline-flex;overflow:hidden}.meta-item svg{opacity:.75;flex:none}.meta-sep{background:var(--line);flex:none;width:1px;height:11px}.card-foot{color:var(--ink-3);align-items:center;gap:10px;min-height:18px;font-size:12.5px;display:flex}.tag{background:var(--surface-2);color:var(--ink-2);border-radius:6px;flex:none;align-items:center;gap:3px;padding:2px 6px;display:inline-flex}.note{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.empty{text-align:center;color:var(--ink-2);padding:56px 16px 24px}.empty-icon{background:var(--accent-soft);width:64px;height:64px;color:var(--accent);border-radius:20px;place-items:center;margin:0 auto 16px;display:grid}.empty h2{color:var(--ink);margin:0 0 6px;font-size:17px}.empty p{color:var(--ink-3);margin:0 0 20px;font-size:13.5px;line-height:1.65}.fab{left:50%;bottom:calc(18px + var(--safe-b));background:var(--accent);color:#fff;z-index:25;border-radius:16px;justify-content:center;align-items:center;gap:8px;width:calc(100% - 40px);max-width:420px;height:52px;font-size:16px;font-weight:650;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 14px 26px -12px #0f7a63d9}.fab:active{transform:translate(-50%)scale(.98)}.editor{background:var(--bg);z-index:40;overscroll-behavior:contain;animation:.22s slideIn;position:fixed;top:0;bottom:0;left:0;right:0;overflow-y:auto}@keyframes slideIn{0%{opacity:.5;transform:translateY(14px)}to{opacity:1;transform:none}}.sheet-head{z-index:5;padding:calc(10px + var(--safe-t)) 14px 10px;background:var(--bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);align-items:center;gap:10px;display:flex;position:sticky;top:0}.sheet-head h1{text-align:center;flex:1;margin:0;font-size:16px;font-weight:650}.save-btn{color:var(--accent);border-radius:10px;padding:8px 10px;font-size:15px;font-weight:650}.save-btn:disabled{opacity:.45}.sheet-body{flex-direction:column;gap:15px;max-width:600px;margin:0 auto;padding:16px 16px 24px;display:flex}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field-label{color:var(--ink-2);letter-spacing:.3px;align-items:center;gap:5px;font-size:12.5px;font-weight:650;display:inline-flex}.field-label em{color:var(--danger);font-style:normal}.input-row{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-1);border-radius:12px;align-items:center;gap:8px;padding:0 8px 0 12px;display:flex}.input-row.align-top{align-items:flex-start;padding-top:6px}.input-row input,.input-row textarea{background:0 0;border:0;outline:none;flex:1;width:100%;min-width:0;padding:12px 0;font-size:16px}.input-row textarea{resize:vertical;min-height:46px;line-height:1.5}.field>input{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-1);border-radius:12px;outline:none;width:100%;padding:12px;font-size:16px}.field>input:focus,.input-row:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.mic-btn{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);border-radius:10px;flex:none;place-items:center;transition:transform .12s;display:grid}.mic-btn:active{transform:scale(.9)}.photos{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;display:grid}.thumb{aspect-ratio:1;background:var(--surface-2);border:0;border-radius:12px;position:relative;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%;display:block}.thumb-x{color:#fff;background:#0000008c;border-radius:50%;place-items:center;width:22px;height:22px;display:grid;position:absolute;top:4px;right:4px}.thumb.add{border:1.5px dashed var(--line);color:var(--ink-3);background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:12px;display:flex}.ocr-panel{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-1);border-radius:14px;flex-direction:column;gap:10px;padding:12px;display:flex}.ocr-head{color:var(--ink-2);justify-content:space-between;align-items:center;font-size:13px;font-weight:650;display:flex}.ocr-head span{align-items:center;gap:6px;display:inline-flex}.ocr-head svg{color:var(--accent)}.link{color:var(--accent);font-size:13px;font-weight:600}.ocr-text{white-space:pre-wrap;word-break:break-all;max-height:190px;color:var(--ink-2);background:var(--surface-2);border-radius:10px;margin:0;padding:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;line-height:1.6;overflow:auto}.ai-note{color:var(--ink-3);align-items:flex-start;gap:8px;margin:0;font-size:12.5px;line-height:1.65;display:flex}.ai-note svg{color:var(--accent);flex:none;margin-top:2px}.form-error{color:var(--danger);margin:0;font-size:13px}.editor-foot{padding:10px 16px calc(10px + var(--safe-b));background:var(--bg);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;bottom:0}.foot-hint{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.btn{background:var(--surface);border:1px solid var(--line);white-space:nowrap;border-radius:12px;justify-content:center;align-items:center;gap:7px;height:46px;padding:0 18px;font-size:15px;font-weight:650;transition:transform .12s,opacity .15s;display:inline-flex}.btn:active{transform:scale(.98)}.btn.primary{background:var(--accent);color:#fff;border-color:#0000;box-shadow:0 10px 22px -14px #0f7a63f2}.btn.ghost{background:0 0}.btn.danger{color:var(--danger);border-color:var(--line);background:0 0}.btn.block{width:100%}.btn.sm{height:38px;font-size:13.5px}.btn:disabled{opacity:.45}.overlay{z-index:60;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#080c0b73;justify-content:center;align-items:flex-end;animation:.18s fade;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}@keyframes fade{0%{opacity:0}to{opacity:1}}.sheet{background:var(--surface);width:100%;max-width:560px;padding:8px 18px calc(18px + var(--safe-b));border-radius:20px 20px 0 0;flex-direction:column;gap:12px;max-height:90dvh;animation:.24s up;display:flex;overflow-y:auto}@keyframes up{0%{opacity:.6;transform:translateY(26px)}to{opacity:1;transform:none}}.sheet-grip{background:var(--line);border-radius:2px;width:40px;height:4px;margin:4px auto 6px}.sheet-title{margin:0;font-size:17px;font-weight:650}.sheet-sub{color:var(--ink-3);margin:0;font-size:13px;line-height:1.65}.kv{color:var(--ink-2);background:var(--surface-2);border-radius:12px;justify-content:space-between;padding:12px 14px;font-size:14px;display:flex}.seg{background:var(--surface-2);border-radius:10px;gap:3px;padding:3px;display:flex}.seg button{height:34px;color:var(--ink-2);border-radius:8px;flex:1;font-size:13.5px}.seg button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1);font-weight:650}.import-box{flex-direction:column;gap:10px;display:flex}.hint{color:var(--ink-3);margin:0;font-size:12px;line-height:1.65}.voice{background:var(--surface);width:100%;max-width:520px;padding:22px 20px calc(18px + var(--safe-b));text-align:center;border-radius:20px 20px 0 0;flex-direction:column;align-items:center;gap:12px;animation:.24s up;display:flex}.voice-title{color:var(--ink-2);margin:0;font-size:13px;font-weight:650}.mic-orb{background:var(--accent-soft);width:84px;height:84px;color:var(--accent);border-radius:50%;place-items:center;display:grid}.mic-orb.live{animation:1.6s infinite pulse}@keyframes pulse{0%{box-shadow:0 0 #0f7a6359}70%{box-shadow:0 0 0 22px #0f7a6300}to{box-shadow:0 0 #0f7a6300}}.voice-state{color:var(--ink-2);margin:0;font-size:13.5px}.voice-state.err{color:var(--danger)}.voice-text{min-height:54px;margin:0;font-size:17px;line-height:1.55}.voice-text.muted{color:var(--ink-3);font-size:14px}.voice-actions{gap:8px;width:100%;display:flex}.voice-actions .btn{flex:1;padding:0 8px;font-size:14px}.busy{z-index:70;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#080c0b73;place-items:center;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.busy-card{background:var(--surface);text-align:center;width:min(300px,84vw);box-shadow:var(--shadow-2);border-radius:18px;flex-direction:column;gap:12px;padding:24px 22px;display:flex}.busy-card p{margin:0;font-size:15px;font-weight:650}.spinner{border:3px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;width:34px;height:34px;margin:0 auto;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.bar{background:var(--surface-2);border-radius:3px;height:5px;overflow:hidden}.bar i{background:var(--accent);border-radius:3px;height:100%;transition:width .25s;display:block}.busy-hint{color:var(--ink-3);font-size:11.5px;line-height:1.5}.lightbox{z-index:80;background:#000000eb;place-items:center;padding:12px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.lightbox img{object-fit:contain;border-radius:8px;max-width:100%;max-height:92%}.lightbox-x{top:calc(14px + var(--safe-t));color:#fff;background:#ffffff24;border-color:#0000;position:absolute;right:14px}.toast{left:50%;bottom:calc(84px + var(--safe-b));z-index:90;color:#fff;text-align:center;background:#101614ed;border-radius:12px;max-width:86vw;padding:10px 16px;font-size:13.5px;animation:.2s toastIn;position:fixed;transform:translate(-50%);box-shadow:0 12px 28px -14px #000000b3}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}@media (max-width:340px){.grid2{grid-template-columns:1fr}}
