:root{--bg:#f6f7f5;--card:#fff;--text:#1d2320;--muted:#6b746f;--line:#e2e6e3;--primary:#2f7d4f;--soon:#c77700;--over:#c62828;--radius:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,system-ui,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#121614;--card:#1c211e;--text:#e8ece9;--muted:#9aa49e;--line:#2c332f;--primary:#4caf73}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#app,.page,.auth{touch-action:manipulation}body{background:var(--bg);color:var(--text);margin:0;font-size:16px}html,body{overscroll-behavior:none;height:100%;overflow:hidden}#app{flex-direction:column;height:100%;display:flex}a{color:var(--primary);text-decoration:none}.muted{color:var(--muted);font-size:.85rem}.topbar{z-index:5;padding:calc(env(safe-area-inset-top) + 10px) 16px 10px;background:var(--bg);border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.brand{color:var(--text);font-size:1.1rem;font-weight:700}.topbar-left{align-items:center;gap:8px;min-width:0;display:flex}.place-switch{border:1px solid var(--primary);background:var(--card);color:var(--primary);border-radius:999px;max-width:45vw;padding:6px 28px 6px 10px;font-size:16px;font-weight:600}.icon-link{width:44px;height:44px;color:var(--text);place-items:center;margin:-6px -10px -6px 0;display:grid}.icon{flex-shrink:0;display:block}.pagebar{z-index:5;min-height:44px;padding:calc(env(safe-area-inset-top) + 6px) 16px 6px;background:var(--bg);border-bottom:1px solid var(--line);flex:none;grid-template-columns:minmax(max-content,1fr) minmax(0,auto) minmax(max-content,1fr);align-items:center;gap:8px;display:grid;position:sticky;top:0}.topbar,.pagebar{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.pagebar-side{align-items:center;gap:4px;min-width:0;display:flex}.pagebar-side.end{justify-content:flex-end}.pagebar-side>a{white-space:nowrap;padding:10px 0}.pagebar-title{text-align:center;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1rem;font-weight:700;overflow:hidden}.pagebar .btn.primary{white-space:nowrap;padding:8px 16px}.pagebar .icon-link{color:var(--primary);background:0 0;border:none;margin:0;padding:0}.badge{border:1px solid var(--primary);color:var(--primary);vertical-align:middle;border-radius:999px;margin-left:6px;padding:1px 8px;font-size:.75rem;display:inline-block}.page{overscroll-behavior-y:contain;min-height:0;padding:12px max(16px, calc(50% - 304px)) calc(env(safe-area-inset-bottom) + 96px);flex:1;overflow-y:auto}.page-title{margin:8px 0 12px}.card{background:var(--card);border-radius:var(--radius);border:1px solid var(--line);margin-bottom:12px;padding:16px}.perf-table{margin:8px 0;overflow-x:auto}.perf-table table{border-collapse:collapse;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.8rem}.perf-table th,.perf-table td{border-bottom:1px solid var(--line);text-align:right;padding:4px 8px}.perf-table th:first-child,.perf-table td:first-child{text-align:left}.form{flex-direction:column;gap:12px;display:flex}.form>p:empty{display:none}.field{color:var(--muted);flex-direction:column;gap:4px;font-size:.85rem;display:flex}.field input,.field select,.field textarea,.scan-panel input{border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:10px;width:100%;padding:10px 12px;font-size:16px}.row{gap:8px;display:flex}.grow{flex:1}.field{min-width:0}.field input[type=date]{appearance:none;min-width:0;min-height:44px;display:block}.field input[type=date]::-webkit-date-and-time-value{text-align:left}.radio-chips{flex-wrap:wrap;gap:6px;display:flex}.radio-chip{position:relative}.radio-chip input{opacity:0;margin:0;position:absolute;inset:0}.radio-chip span{text-align:center;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:10px;padding:10px 14px;font-size:.95rem;display:block}.radio-chip input:checked+span{border-color:var(--primary);background:var(--primary);color:#fff;font-weight:600}.radio-chip input:focus-visible+span{outline:2px solid var(--primary);outline-offset:2px}.btn{border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:10px;padding:12px 14px;font-size:1rem}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.btn.danger{color:var(--over);width:100%;margin-top:16px}.btn.small{padding:6px 10px;font-size:.8rem}.btn.ghost{color:#fff;background:0 0;border-color:#fff8}.btn:disabled{opacity:.5}.btn:active:not(:disabled),.chip:active,.tab:active,.choice:active,.segmented button:active{filter:brightness(.88)}.icon-link:active{opacity:.5}.auth{overscroll-behavior-y:contain;min-height:0;padding:calc(env(safe-area-inset-top) + 40px) max(20px, calc(50% - 190px)) 40px;flex:1;overflow-y:auto}.auth form{flex-direction:column;gap:12px;display:flex}.logo{color:var(--primary)}.links{text-align:center;color:var(--muted);font-size:.9rem}.tabs{gap:8px;margin-bottom:8px;display:flex}.tab{background:var(--card);color:var(--muted);border:none;border-radius:10px;flex:1;padding:10px;font-size:.95rem}.tab.on{background:var(--primary);color:#fff;font-weight:600}.chips{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.chip{border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:999px;padding:6px 12px;font-size:.85rem}.chip.on{border-color:var(--primary);color:var(--primary);font-weight:600}.items{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.items .empty{color:var(--muted);text-align:center;padding:40px 0}.swipe{border-radius:var(--radius);position:relative}.swipe-actions{border-radius:var(--radius);justify-content:flex-end;display:flex;position:absolute;inset:0;overflow:hidden}.swipe:not(.swiping):not(.swipe-open):not(.leaving) .swipe-actions{visibility:hidden}.swipe.leaving{pointer-events:none;overflow:hidden}.swipe.swiping .item{will-change:transform}.swipe-act{color:#fff;border:none;width:80px;font-size:.9rem;font-weight:600;transition:flex-grow .15s}.swipe-act.consume{background:var(--primary)}.swipe-act.delete{background:var(--over)}.swipe-act:active{filter:brightness(.8)}.swipe.swipe-ready .swipe-act.consume{flex-grow:1}.swipe.swipe-ready .swipe-act.delete{display:none}.swipe .item{touch-action:pan-y;transition:transform .2s;position:relative}.swipe.swiping .item{transition:none}.open-section{border-top:1px solid var(--line);margin:8px 0 12px;padding-top:8px}.open-section .chips{margin:6px 0 0}.badge.opened{border-color:var(--soon);color:var(--soon)}.item{border-radius:var(--radius);background:var(--card);border:1px solid var(--line);color:var(--text);align-items:center;gap:12px;padding:12px;display:flex}.item-main{flex-direction:column;flex:1;min-width:0;display:flex}.item-main strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.item-main small{color:var(--muted)}.quick{flex-direction:column;gap:4px;display:flex}.dday{text-align:center;background:var(--bg);border-radius:8px;min-width:54px;padding:4px 6px;font-size:.85rem;font-weight:700;display:inline-block}.dday.soon{color:var(--soon)}.dday.over{color:#fff;background:var(--over)}.dday.none{color:var(--muted);font-weight:400}.fab{right:20px;bottom:calc(env(safe-area-inset-bottom) + 20px);background:var(--primary);color:#fff;border-radius:50%;place-items:center;width:60px;height:60px;font-size:2rem;display:grid;position:fixed;box-shadow:0 6px 18px #0003}.detail .thumb{object-fit:contain;float:right;border-radius:10px;width:80px;height:80px;margin:0 0 8px 12px}.detail .thumb.placeholder{background:var(--bg);color:var(--muted);place-items:center;display:grid}.segmented{border:1px solid var(--line);border-radius:10px;margin-top:12px;display:flex;overflow:hidden}.segmented button{background:var(--card);color:var(--text);border:none;flex:1;padding:10px 4px;font-size:.9rem}.segmented button.on{background:var(--primary);color:#fff;font-weight:600}.events{color:var(--muted);padding-left:18px;font-size:.85rem}.invites,.members{flex-direction:column;gap:8px;padding:0;list-style:none;display:flex}.invites li{align-items:center;gap:6px;display:flex}.invites code{letter-spacing:2px;font-size:1.1rem;font-weight:700}.invites small{flex:1}.overlay{z-index:50;background:#000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.scan-video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.scan-frame{border:3px solid #fff;border-radius:12px;width:72vw;max-width:320px;height:160px;position:relative;box-shadow:0 0 0 100vmax #0007}.overlay-hint{top:calc(env(safe-area-inset-top) + 24px);color:#fff;text-align:center;padding:0 20px;position:absolute}.overlay-close{bottom:calc(env(safe-area-inset-bottom) + 32px);position:absolute}.overlay.crop{flex-direction:column}.crop-hint{color:#fff;text-align:center;margin:calc(env(safe-area-inset-top) + 16px) 16px 8px}.crop-stage{flex:1;justify-content:center;align-items:center;width:100%;min-height:0;display:flex;position:relative;overflow:hidden}.crop-canvas{touch-action:none}.crop-box{border:2px solid var(--primary);pointer-events:none;position:absolute;box-shadow:0 0 0 100vmax #0008}.crop-actions{padding:12px 16px calc(env(safe-area-inset-bottom) + 16px);flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.auto-fill{border:1px dashed var(--line);border-radius:10px;flex-direction:column;gap:8px;padding:12px;display:flex}.auto-fill-title{color:var(--muted);font-size:.85rem}.choices{grid-template-columns:1fr 1fr;gap:8px;display:grid}.choice{text-align:left;border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:10px;flex-direction:column;align-items:flex-start;gap:4px;padding:12px;font-size:1rem;display:flex}.choice small{color:var(--muted);font-size:.75rem;line-height:1.3}.choice.on{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.choice-key{text-align:center;background:var(--primary);color:#fff;border-radius:6px;min-width:1.4em;margin-right:6px;padding:0 4px;font-size:.8rem;display:inline-block}.scan-panel{flex-direction:column;gap:4px;display:flex}.scan-panel[hidden]{display:none}.storages{flex-direction:column;gap:6px;margin:8px 0;padding:0;list-style:none;display:flex}.storages li,.storage-add{align-items:center;gap:6px;display:flex}.storages input,.storage-add input{border:1px solid var(--line);background:var(--bg);min-width:0;color:var(--text);border-radius:10px;flex:1;padding:8px 10px;font-size:16px}.storages input.is-hidden{color:var(--muted);text-decoration:line-through}.storages input[readonly]{background:0 0;border-color:#0000}.btn.danger-text{color:var(--over)}.members{flex-direction:column;gap:10px;margin:8px 0 0;padding:0;list-style:none;display:flex}.members li{flex-direction:column;gap:6px;display:flex}.member-actions{flex-wrap:wrap;gap:6px;display:flex}.account .form input{border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:10px;padding:10px 12px;font-size:16px}.families{flex-direction:column;gap:6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.families li{align-items:center;gap:6px;display:flex}.invite-result{border:1px solid var(--primary);border-radius:10px;margin:8px 0;padding:10px 12px}.invite-result p{margin:6px 0}.invite-result code{letter-spacing:2px;font-size:1.2rem;font-weight:700}.ocr-raw{font-size:.8rem}.ocr-raw pre{white-space:pre-wrap;margin:4px 0 0}.toast{left:50%;bottom:calc(env(safe-area-inset-bottom) + 96px);z-index:100;color:#fff;background:#222d;border-radius:10px;max-width:90vw;padding:10px 16px;font-size:.9rem;position:fixed;transform:translate(-50%)}.toast.error{background:var(--over)}.toast{animation:.18s ease-out toast-in}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}.toast:has(.toast-action){white-space:nowrap;align-items:center;gap:12px;padding:6px 6px 6px 16px;display:flex}.nowrap{white-space:nowrap}.toast-action{color:#fff;background:#ffffff26;border:1px solid #fffa;border-radius:10px;flex-shrink:0;min-height:44px;padding:0 18px;font-size:1rem;font-weight:700}.toast-action:active{background:#ffffff59}
