:root{--bg:#f6f7f9;--card:#fff;--text:#1c1f24;--muted:#6b7280;--line:#e3e6ea;--accent:#2563eb;--accent-ink:#fff;--off:#9aa1ab;--good:#15803d;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px}@media (prefers-color-scheme:dark){:root{--bg:#15171b;--card:#1e2127;--text:#e6e8eb;--muted:#9aa1ab;--line:#2d313a;--accent:#3b82f6;--off:#5f6671;--good:#4ade80}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}button,input{font:inherit;color:inherit}input{background:0 0;border:1px solid #0000;border-radius:4px;width:100%;padding:3px 6px}input:hover{border-color:var(--line)}input:focus{border-color:var(--accent);background:var(--card);outline:none}input.num{text-align:right;font-variant-numeric:tabular-nums}button{background:var(--card);border:1px solid var(--line);cursor:pointer;border-radius:6px;padding:6px 12px}button:hover{border-color:var(--accent)}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button.icon{color:var(--muted);background:0 0;border:none;padding:2px 6px}button.icon:hover{color:#dc2626}button.link{color:var(--accent);background:0 0;border:none;padding:0;text-decoration:underline}button.add{margin:12px 0}button.add.small{margin:6px 0 0;padding:4px 10px;font-size:13px}.muted{color:var(--muted)}.app{max-width:1280px;margin:0 auto;padding:0 16px 80px}.loading{text-align:center;color:var(--muted);padding:40px}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:18px 0 10px;display:flex}.topbar h1{margin:0;font-size:20px}.subtitle{color:var(--muted);font-size:13px}.topbar-right{align-items:center;gap:12px;display:flex}.save-state{color:var(--muted);text-align:right;min-width:70px;font-size:12px}.save-saved{color:var(--good)}.save-error{color:#dc2626}.tabs{border-bottom:1px solid var(--line);gap:4px;margin-bottom:16px;display:flex;overflow-x:auto}.tab{color:var(--muted);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;padding:10px 14px}.tab.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;margin-bottom:14px;padding:12px 14px;overflow-x:auto}.card.off{opacity:.6}.card-head{align-items:center;gap:10px;display:flex}.card-head .check input{width:18px;height:18px}.section-name{flex:1;font-size:15px;font-weight:600}.card-totals{font-variant-numeric:tabular-nums;flex-direction:column;align-items:flex-end;line-height:1.2;display:flex}.card-totals .muted{font-size:12px}input.note{width:calc(100% - 28px);color:var(--muted);margin:6px 0 8px 28px;font-size:13px}input.note:focus{color:var(--text)}table.items{border-collapse:collapse;width:100%}table.items th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:4px;font-size:12px;font-weight:500}table.items td{border-bottom:1px solid var(--line);vertical-align:middle;padding:2px}table.items tr:last-child td{border-bottom:none}table.items tr.off td{color:var(--off)}table.items tr.off input{color:var(--off);text-decoration:line-through}table.items tr.off td.c-check input,table.items tr.off td.c-note input{text-decoration:none}.c-check{text-align:center;width:36px}.c-check input{width:16px;height:16px}.c-num{text-align:right;font-variant-numeric:tabular-nums;width:92px}.c-finish{width:170px}.c-pnum{width:120px}.c-thumb{width:44px}.thumb{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;justify-content:center;align-items:center;width:40px;height:40px;display:flex;overflow:hidden}.thumb.empty{border:1px dashed var(--line);color:var(--muted);font-size:18px;line-height:1}.thumb.empty:hover,.thumb.over{border-color:var(--accent);color:var(--accent)}.thumb.has{border:1px solid var(--line);background:#fff}.thumb.has img{object-fit:cover;width:100%;height:100%;display:block}.thumb.busy{opacity:.5;cursor:progress}.thumb:focus-visible,.thumb.menu-open{outline:2px solid var(--accent);outline-offset:1px}.thumb-menu{z-index:90;background:var(--card);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:6px;padding:8px;display:flex;position:fixed;box-shadow:0 6px 20px #00000040}.thumb-menu button{text-align:left}.thumb-menu .hint{max-width:200px;font-size:11px}table.items tr.off .thumb.has img{opacity:.45}.thumb-modal{text-align:center;max-width:min(420px,90vw)}.thumb-modal h2{margin-bottom:10px;font-size:15px}.thumb-modal img{border:1px solid var(--line);background:#fff;border-radius:8px;max-width:100%;max-height:60vh}.c-link{width:200px}.link-cell{align-items:center;gap:4px;display:flex}.link-cell input{flex:1;min-width:0}.link-cell a{color:var(--accent);flex:none;padding:0 4px;font-size:14px;text-decoration:none}.link-cell a:hover{text-decoration:underline}table.items tr.off td.c-pnum input,table.items tr.off td.c-link input{text-decoration:none}.c-note{width:180px}.c-del{width:30px}.c-name{min-width:260px}.summary-table{border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:10px;width:100%;overflow:hidden}.summary-table th,.summary-table td{border-bottom:1px solid var(--line);text-align:left;padding:8px 12px}.summary-table th{color:var(--muted);font-size:12px;font-weight:500}.summary-table tr.off td{color:var(--off)}.summary-table tfoot td{background:color-mix(in srgb, var(--card) 85%, var(--bg))}.summary-table tr.subtotal td,.summary-table tr.grand td{font-weight:600}.summary-table tr.grand td{border-top:2px solid var(--line);font-size:15px}.summary-table tfoot input.num{width:90px;display:inline-block}.summary-table tfoot td.c-num input.num{width:100%}.notes{color:var(--muted);max-width:900px;margin-top:16px;font-size:13px}.terms section{background:var(--card);border:1px solid var(--line);border-radius:10px;max-width:900px;margin-bottom:12px;padding:12px 16px}.terms h3{margin:0 0 6px;font-size:14px}.terms p{margin:4px 0}.footer{background:var(--card);border-top:1px solid var(--line);font-variant-numeric:tabular-nums;justify-content:flex-end;align-items:center;gap:28px;padding:10px 24px;display:flex;position:fixed;bottom:0;left:0;right:0}.footer .grand{font-size:16px}.footer .grand strong{color:var(--accent)}.toast{background:var(--text);color:var(--bg);border-radius:8px;padding:8px 16px;font-size:13px;position:fixed;bottom:60px;left:50%;transform:translate(-50%)}.modal-backdrop{z-index:100;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--card);border-radius:12px;width:480px;max-width:calc(100vw - 32px);padding:20px 22px}.modal h2{margin:0 0 12px;font-size:17px}.radio{cursor:pointer;align-items:flex-start;gap:10px;padding:8px 0;display:flex}.radio input{width:16px;height:16px;margin-top:3px}.radio .muted{font-size:13px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}input.token{border:1px solid var(--line);margin:8px 0;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.error{color:#dc2626;margin:4px 0;font-size:13px}:root{--st-considering:#d97706;--st-no:#6b7280;--st-decided:#2563eb;--st-purchased:#15803d}.c-status{width:130px}select.status{width:100%;font:inherit;color:inherit;border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:4px;padding:3px 4px}select.status.status-considering{color:var(--st-considering)}select.status.status-no{color:var(--st-no)}select.status.status-decided{color:var(--st-decided)}select.status.status-purchased{color:var(--st-purchased);font-weight:600}select.status option{color:var(--text);background:var(--card)}table.items tr.off select.status{text-decoration:none}.status-filter{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.chip{border-radius:999px;padding:4px 12px;font-size:13px}.chip .count{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:4px}.chip.active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, var(--card));font-weight:600}.chip.active .count{color:inherit}.chip.status-considering.active{border-color:var(--st-considering);background:color-mix(in srgb, var(--st-considering) 16%, var(--card))}.chip.status-no.active{border-color:var(--st-no);background:color-mix(in srgb, var(--st-no) 16%, var(--card))}.chip.status-decided.active{border-color:var(--st-decided);background:color-mix(in srgb, var(--st-decided) 16%, var(--card))}.chip.status-purchased.active{border-color:var(--st-purchased);background:color-mix(in srgb, var(--st-purchased) 16%, var(--card))}.empty{padding:24px 0}.by-status-title{margin:20px 0 8px;font-size:14px}.summary-table.by-status{max-width:520px}.stats{grid-template-columns:repeat(3,minmax(140px,1fr)) minmax(260px,1.6fr);gap:12px;margin-bottom:20px;display:grid}.stat{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px}.stat-label{color:var(--muted);align-items:center;font-size:12px;display:flex}.stat-count{margin-top:6px;font-size:13px}.stat-amount{font-variant-numeric:tabular-nums;margin-top:2px;font-size:20px;font-weight:600}.stat.status-considering .stat-amount{color:var(--st-considering)}.stat.status-decided .stat-amount{color:var(--st-decided)}.stat.status-purchased .stat-amount{color:var(--st-purchased)}.totals-grid{font-variant-numeric:tabular-nums;grid-template-columns:1fr auto;gap:3px 16px;font-size:13px;display:grid}.totals-grid strong{text-align:right}.totals-grid .grand{border-top:1px solid var(--line);margin-top:2px;padding-top:4px;font-size:15px}.totals-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:8px;font-size:12px;display:flex}button.small{padding:3px 9px;font-size:12px}button.link.small{margin-left:10px;font-size:12px;font-weight:400}.summary-room{margin-bottom:22px}.summary-room h2{margin:0 0 8px;font-size:16px}.summary-section{background:var(--card);border:1px solid var(--line);border-radius:10px;margin-bottom:10px;overflow:hidden}.summary-section-head{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--card) 85%, var(--bg));justify-content:space-between;padding:8px 14px;font-size:13px;font-weight:600;display:flex}.summary-items{border-collapse:collapse;width:100%}.summary-items td{border-bottom:1px solid var(--line);vertical-align:middle;padding:6px 10px}.summary-items tr:last-child td{border-bottom:none}.summary-items tr.off td{color:var(--off)}.summary-items td.c-thumb{width:44px;padding-right:0}.summary-items td.c-pnum{white-space:nowrap;font-variant-numeric:tabular-nums;width:150px;font-size:13px}.summary-items a.pnum{color:var(--accent);text-decoration:none}.summary-items a.pnum:hover{text-decoration:underline}.summary-items a.pnum .ext{opacity:.7;font-size:11px}.summary-items tr.off a.pnum{color:var(--off)}.summary-items td.c-qty{white-space:nowrap;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;width:130px;font-size:13px}.summary-items td.c-num{width:100px;font-weight:600}.summary-items td.c-badge{text-align:right;width:110px}.product-name{font-size:14px}.product-name a{color:var(--accent);margin-left:6px;text-decoration:none}.product-meta{flex-wrap:wrap;gap:12px;font-size:12px;display:flex}.product-meta .note{font-style:italic}.thumb.view{cursor:zoom-in}.thumb.none{border:1px dashed var(--line);opacity:.4;cursor:default}.badge{white-space:nowrap;border:1px solid;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.badge.status-considering{color:var(--st-considering)}.badge.status-no{color:var(--st-no)}.badge.status-decided{color:var(--st-decided)}.badge.status-purchased{color:var(--st-purchased)}.charges-modal .field{justify-content:space-between;align-items:center;gap:12px;margin:8px 0;display:flex}.charges-modal .field input{width:120px}@media (width<=900px){.stats{grid-template-columns:1fr 1fr}}.dot{vertical-align:middle;border-radius:50%;width:9px;height:9px;margin-right:6px;display:inline-block}.dot.status-considering{background:var(--st-considering)}.dot.status-no{background:var(--st-no)}.dot.status-decided{background:var(--st-decided)}.dot.status-purchased{background:var(--st-purchased)}
