:root{--bg:#f6f5f2;--surface:#fff;--surface-muted:#faf9f6;--placeholder:#efede8;--border:#e7e5e0;--divider:#efede8;--control-border:#d9d6cf;--text:#1b1b1a;--text-secondary:#6a6964;--text-nav:#4a4946;--positive:#2e7a4e;--warn:#8f5310;--accent-bg:#1b1b1a;--accent-text:#fff;--tabbar-bg:#1b1b1a;--tabbar-text:#c9c7c1;--tabbar-active-bg:#fff;--tabbar-active-text:#1b1b1a;--segment-active-bg:#1b1b1a;--segment-active-text:#fff;--panel-shadow:0 24px 64px #1b1b1a2e;--tile-shadow:0 8px 24px #1b1b1a14;--backdrop:#1b1b1a6b;--font-sans:Geist, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--radius-card:14px;--radius-panel:16px;--radius-pill:999px;--radius-modal:20px;--sidebar-width:240px;--content-max:1600px;--gutter:clamp(32px, 2.5vw, 40px);--safe-top:0px;--safe-bottom:0px;--safe-left:0px;--safe-right:0px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#161615;--surface:#1e1e1c;--surface-muted:#242422;--placeholder:#2a2927;--border:#2c2b29;--divider:#2a2927;--control-border:#3a3936;--text:#edece8;--text-secondary:#a09e98;--text-nav:#c2c0ba;--positive:#6bc58e;--warn:#e3a95c;--accent-bg:#edece8;--accent-text:#161615;--tabbar-bg:#2c2b29;--tabbar-text:#b4b2ac;--tabbar-active-bg:#edece8;--tabbar-active-text:#161615;--segment-active-bg:#3a3936;--segment-active-text:#edece8;--panel-shadow:0 24px 64px #0000008c;--tile-shadow:0 8px 24px #00000059;--backdrop:#0000009e;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;margin:0;font-size:14px;line-height:1.4}a{color:var(--text)}button,input{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--text);outline-offset:2px}.mono,.num,.score,.stat-value,.kv-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.muted{color:var(--text-secondary)}.small{font-size:13px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.tone-positive{color:var(--positive)}.tone-warn{color:var(--warn)}.tone-neutral{color:var(--text-secondary)}.app{background:var(--bg);min-height:100dvh;padding-left:var(--safe-left);padding-right:var(--safe-right)}.app.desktop{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);align-items:start;display:grid}.content{min-width:0}.app.desktop .main{width:100%;max-width:calc(var(--content-max) + 2 * var(--gutter));padding:calc(32px + var(--safe-top)) var(--gutter) 40px;margin:0 auto}.app.phone .main{padding:calc(20px + var(--safe-top)) 16px calc(104px + var(--safe-bottom))}.sidebar{height:100dvh;padding:calc(24px + var(--safe-top)) 16px calc(20px + var(--safe-bottom));background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:20px;display:flex;position:sticky;top:0;overflow-y:auto}.app.desktop.sidebar-collapsed{--sidebar-width:72px}.sidebar.collapsed{padding-left:12px;padding-right:12px;overflow-x:hidden}.side-head{justify-content:space-between;align-items:center;gap:8px;min-height:40px;display:flex}.sidebar.collapsed .side-head{justify-content:center}.sidebar.collapsed .side-link{justify-content:center;padding:0}.sidebar.collapsed .side-footer{align-items:center;padding:16px 0 0}.rail-btn{width:40px;height:40px;color:var(--text-nav);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.rail-btn:hover{background:var(--surface-muted);color:var(--text)}.rail-btn:disabled{cursor:default;opacity:.45}.sidebar.collapsed .side-footer .rail-btn{border-color:var(--control-border);width:48px;height:48px}.sidebar.collapsed .side-footer .rail-btn-accent{border-color:var(--accent-bg);background:var(--accent-bg);color:var(--accent-text)}.rail-dot{box-shadow:0 0 0 2px var(--surface);position:absolute;top:6px;right:6px}.brand{letter-spacing:-.01em;white-space:nowrap;padding:4px 16px;font-size:18px;font-weight:600;text-decoration:none}.side-nav{flex-direction:column;gap:2px;display:flex}.side-link{border-radius:var(--radius-pill);height:48px;color:var(--text-nav);white-space:nowrap;align-items:center;gap:12px;padding:0 16px;font-size:15px;text-decoration:none;display:flex}.side-link:hover{background:var(--surface-muted);color:var(--text)}.side-link.active{background:var(--accent-bg);color:var(--accent-text);font-weight:500}.side-footer{border-top:1px solid var(--divider);flex-direction:column;gap:12px;margin-top:auto;padding:16px 4px 0;display:flex}.side-footer .indicator{padding:0 4px}.icon{flex-shrink:0;display:block}.sub-line{flex-wrap:wrap;align-items:center;gap:4px 12px;display:inline-flex}.indicator{color:var(--text-secondary);white-space:nowrap;align-items:center;gap:8px;font-size:13px;display:flex}.app.phone .indicator{gap:6px;font-size:12px}.dot{background:var(--positive);border-radius:50%;flex-shrink:0;width:7px;height:7px}.dot-warn{background:var(--warn)}.tabbar{left:calc(16px + var(--safe-left));right:calc(16px + var(--safe-right));bottom:calc(16px + var(--safe-bottom));z-index:10;border-radius:var(--radius-pill);background:var(--tabbar-bg);grid-template-columns:repeat(5,minmax(0,1fr));height:64px;padding:6px;display:grid;position:fixed}.tab{border-radius:var(--radius-pill);min-height:52px;color:var(--tabbar-text);flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11px;line-height:1.1;text-decoration:none;display:flex}.tab.active{background:var(--tabbar-active-bg);color:var(--tabbar-active-text);font-weight:500}.tab:focus-visible{outline-color:var(--tabbar-active-bg)}.banner{top:calc(12px + var(--safe-top));z-index:9;width:calc(100% - 2 * var(--gutter));margin:calc(12px + var(--safe-top)) auto 0;max-width:var(--content-max);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);color:var(--warn);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px 10px 16px;display:flex;position:sticky}.app.phone .banner{top:var(--safe-top);width:auto;margin:calc(8px + var(--safe-top)) 16px 0}.page-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:20px;display:flex}.app.phone .page-head{align-items:center;margin-bottom:12px;padding:0 4px}.page-head-text{min-width:0}.page-title{letter-spacing:-.02em;margin:0;font-size:28px;font-weight:600}.app.phone .page-title{font-size:26px}.page-sub{color:var(--text-secondary);margin-top:4px}.app.phone .page-sub{font-size:13px}.page-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.btn{border-radius:var(--radius-pill);border:1px solid var(--control-border);background:var(--surface);height:34px;color:var(--text);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:13px;text-decoration:none;display:inline-flex}.app.phone .btn{min-height:44px;font-size:14px}.btn:disabled{cursor:default;opacity:.45}.btn-primary{border-color:var(--accent-bg);background:var(--accent-bg);color:var(--accent-text)}.btn-ghost{color:var(--text-secondary);background:0 0}.btn-wide{flex:1;height:40px;font-size:14px;font-weight:500}.btn-secondary.btn-wide{font-weight:400}.btn-block{width:100%;height:44px;font-size:14px;font-weight:500}.icon-btn{border:1px solid var(--border);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.app.phone .icon-btn{width:44px;height:44px}.card-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden}.row{color:var(--text);align-items:center;gap:16px;padding:14px 20px;text-decoration:none;display:flex}.app.phone .row{gap:12px;min-height:56px;padding:12px 14px}.row+.row{border-top:1px solid var(--divider)}.row-link:hover,.row.selected{background:var(--surface-muted)}.row-link:focus-visible{outline-offset:-2px}.row-wrap{flex-wrap:wrap}.row-main{flex:auto;min-width:0}.row-title{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.num{color:var(--text-secondary);font-weight:400}.row-sub{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:13px;overflow:hidden}.app.phone .row-sub{font-size:12px}.row-right{text-align:right;flex-shrink:0}.score{text-align:right;width:56px;color:var(--positive);flex-shrink:0;font-weight:500}.app.phone .score{width:auto}.chevron{color:var(--text-secondary);font-size:20px}.row-gift .row-sub+.row-sub{margin-top:0}.row-icon{color:var(--text-secondary);display:flex}.thumb{background:var(--placeholder);flex-shrink:0;position:relative;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%;display:block}.thumb-empty{color:var(--text-secondary);opacity:.55;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.thumb-md{border-radius:12px;width:96px;height:96px}.app.phone .thumb-md{border-radius:10px;width:64px;height:64px}.thumb-fill{aspect-ratio:1;width:100%}.tile-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;display:grid}.app.phone .tile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);min-width:0;color:var(--text);flex-direction:column;text-decoration:none;display:flex;overflow:hidden}.tile:hover{border-color:var(--control-border);box-shadow:var(--tile-shadow)}.tile-body{flex-direction:column;gap:3px;min-width:0;padding:12px 14px 14px;display:flex}.app.phone .tile-body{padding:10px 12px 12px}.tile-title{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.tile-figures{white-space:nowrap;justify-content:space-between;align-items:baseline;gap:8px;margin-top:2px;display:flex}.tile-figures .score{width:auto;font-size:16px}.tile-sub{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.card-grid{grid-template-columns:repeat(auto-fill,minmax(min(360px,100%),1fr));gap:16px;display:grid}.card-grid-start{align-items:start}.app.desktop .row-grid{background:0 0;border:none;border-radius:0;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:12px;display:grid;overflow:visible}.app.desktop .row-grid>.row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card)}.app.desktop .row-grid>.row-link:hover{background:var(--surface-muted)}.list-meta{justify-content:space-between;align-items:center;gap:12px;min-height:34px;margin-bottom:12px;display:flex}.list-title{color:var(--text-secondary);margin:0 0 10px;font-size:13px;font-weight:500}.pager{gap:8px;display:flex}.pager-bottom{justify-content:center;margin-top:16px;display:flex}.empty,.loading{text-align:center;color:var(--text-secondary);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:32px 20px}.error-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);flex-direction:column;align-items:flex-start;gap:12px;padding:20px;display:flex}.error-box p{color:var(--warn);margin:0}.note{color:var(--text-secondary);margin:12px 4px 0;font-size:13px}.stack{flex-direction:column;gap:16px;display:flex}.stack-sm{flex-direction:column;gap:12px;display:flex}.card,.sheet{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card)}.card-pad,.sheet{flex-direction:column;gap:10px;padding:20px;display:flex}.card-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.card-title{margin:0;font-size:15px;font-weight:600}.pill{border-radius:var(--radius-pill);border:1px solid var(--control-border);height:24px;color:var(--text-secondary);white-space:nowrap;align-items:center;padding:0 10px;font-size:12px;display:inline-flex}.pill-positive{color:var(--positive)}.pill-warn{color:var(--warn)}.kv{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.kv-value{text-align:right;overflow-wrap:anywhere}.section{flex-direction:column;gap:10px;display:flex}.section h2{color:var(--text-secondary);margin:0;font-size:13px;font-weight:500}.plain-list{margin:0;padding-left:18px;font-size:13px}.modal-backdrop{z-index:50;padding:calc(32px + var(--safe-top)) calc(32px + var(--safe-right)) calc(32px + var(--safe-bottom)) calc(32px + var(--safe-left));background:var(--backdrop);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{overscroll-behavior:contain;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-modal);width:100%;max-width:960px;max-height:100%;box-shadow:var(--panel-shadow);padding:28px;position:relative;overflow-y:auto}.modal:focus{outline:none}.modal-close{z-index:1;background:var(--surface);width:36px;height:36px;position:absolute;top:16px;right:16px}.modal .gift-details>:first-child{padding-right:44px}.modal .error-box,.modal .loading{border:none;padding:24px 0}.gift-layout{grid-template-columns:minmax(0,400px) minmax(0,1fr);align-items:start;gap:28px;display:grid}.gift-media{flex-direction:column;gap:16px;display:flex;position:sticky;top:0}.gift-media .thumb-fill{border-radius:var(--radius-card)}.app.phone .gift-layout{grid-template-columns:minmax(0,1fr);gap:20px}.app.phone .gift-media{width:100%;max-width:320px;margin:0 auto;position:static}.gift-details{flex-direction:column;gap:20px;min-width:0;display:flex}.gift-sections{grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));align-items:start;gap:24px 32px;display:grid}.gift-title{letter-spacing:-.01em;margin:0;font-size:22px;font-weight:600}.gift-subtitle{margin-top:4px}.stats{border-top:1px solid var(--divider);border-bottom:1px solid var(--divider);justify-content:space-between;gap:12px;padding:14px 0;display:flex}.stats-flat{border:none;padding:4px 0 8px}.stat-label{color:var(--text-secondary);font-size:12px}.stat-value{font-size:20px}.stat-value.positive{color:var(--positive)}.gift-actions{flex-wrap:wrap;gap:8px;display:flex}.app.phone .btn-wide{height:44px}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.stack .toolbar{margin-bottom:0}.segmented{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);max-width:100%;padding:3px;display:inline-flex;overflow-x:auto}.segment{border-radius:var(--radius-pill);height:28px;color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0 12px;font-size:12px}.app.phone .segment{height:44px;padding:0 14px;font-size:13px}.segment-icon{justify-content:center;align-items:center;padding:0 10px;display:inline-flex}.app.phone .segment-icon{padding:0 12px}.segmented-fill{width:100%;display:flex}.segmented-fill .segment{flex:1;height:36px}.segment.active{background:var(--segment-active-bg);color:var(--segment-active-text)}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border-radius:var(--radius-pill);border:1px solid var(--control-border);background:var(--surface);min-height:34px;color:var(--text);cursor:pointer;align-items:center;gap:6px;padding:0 12px;font-size:13px;display:inline-flex}.app.phone .chip{min-height:44px}.chip.active{border-color:var(--accent-bg);background:var(--accent-bg);color:var(--accent-text)}.chip:disabled{opacity:.6;cursor:default}.field{flex-direction:column;flex:200px;gap:6px;min-width:0;display:flex}.field-label{color:var(--text-secondary);font-size:12px}.input{border:1px solid var(--control-border);background:var(--surface);width:100%;height:40px;color:var(--text);border-radius:12px;padding:0 14px}.app.phone .input{height:44px;font-size:16px}.input::placeholder{color:var(--text-secondary)}.search{margin-bottom:12px}.inline-form,.appraise-form{flex-wrap:wrap;align-items:flex-end;gap:8px;width:100%;display:flex}.appraise-form{max-width:760px;margin-bottom:4px}.appraise-form+.note{margin-bottom:16px}.confirm{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-muted);width:100%;padding:16px}.confirm p{margin:0 0 12px}.confirm-actions{gap:8px;display:flex}.stepper-row{align-items:center;gap:16px;padding:14px 20px;display:flex}.stepper-row+.stepper-row{border-top:1px solid var(--divider)}.app.phone .stepper-row{padding:12px 14px}.stepper{align-items:center;gap:8px;display:flex}.step-btn{border:1px solid var(--control-border);background:var(--surface);cursor:pointer;border-radius:50%;width:36px;height:36px;font-size:18px}.app.phone .step-btn{width:44px;height:44px}.step-btn:disabled{opacity:.45;cursor:default}.step-value{text-align:center;min-width:56px;color:var(--positive);font-size:18px}.report-sheet{max-width:960px}.safe-html{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55}.safe-html pre,.safe-html code{font-family:var(--font-mono);font-size:13px}.safe-html pre{background:var(--surface-muted);border-radius:10px;margin:0;padding:12px;overflow-x:auto}.safe-html blockquote{border-left:2px solid var(--border);color:var(--text-secondary);margin:0;padding-left:12px}.spoiler{background:var(--text-secondary);color:#0000;border-radius:4px}.spoiler:hover,.spoiler:focus{color:inherit;background:0 0}.centered{justify-content:center;align-items:center;padding:24px 16px;display:flex}.access{gap:16px;width:100%;max-width:420px}.access p{color:var(--text-secondary);margin:0}@media (prefers-reduced-motion:no-preference){.app.desktop{transition:grid-template-columns .2s}.btn,.chip,.row-link,.rail-btn,.side-link,.segment,.tab{transition:background-color .12s,color .12s}.tile{transition:border-color .16s,box-shadow .16s,transform .16s}.tile:hover{transform:translateY(-2px)}.tile img{transition:transform .24s}.tile:hover img{transform:scale(1.03)}.modal-backdrop{animation:.16s ease-out fade-in}.modal{animation:.2s cubic-bezier(.2,.8,.2,1) modal-in}}@keyframes fade-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)scale(.985)}}
