:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:oklch(17% .012 255);--surface:oklch(21% .013 255);--surface-2:oklch(25% .014 255);--surface-3:oklch(29% .015 255);--line:oklch(32% .014 255);--line-strong:oklch(42% .016 255);--text:oklch(95% .004 255);--text-soft:oklch(78% .01 255);--text-muted:oklch(62% .012 255);--accent:oklch(72% .15 50);--accent-hot:oklch(78% .16 50);--accent-dim:oklch(45% .09 50);--accent-wash:oklch(30% .045 50);--on-accent:oklch(16% .02 50);--st-installed:oklch(74% .14 158);--st-inhand:oklch(80% .13 85);--st-needed:oklch(72% .13 235);--st-spare:oklch(70% .03 255);--st-sale:oklch(72% .14 300);--st-archived:oklch(56% .012 255);--tone-installed:oklch(58% .055 158);--tone-inhand:oklch(60% .05 85);--tone-needed:oklch(58% .055 235);--tone-spare:oklch(55% .016 255);--tone-sale:oklch(58% .05 300);--tone-archived:oklch(50% .008 255);--tone:var(--tone-spare);--ok:oklch(74% .14 158);--warn:oklch(80% .13 85);--danger:oklch(68% .18 22);--danger-wash:oklch(28% .06 22);--font-display:"Space Grotesk", ui-sans-serif, system-ui, sans-serif;--font-body:"Inter", ui-sans-serif, system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", monospace;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-pill:999px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--header-h:56px;--tabbar-h:60px;--content-max:880px}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);min-height:100dvh;color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;font-size:15px;line-height:1.5}img,svg{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;font-weight:600;line-height:1.2}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.app-header{z-index:20;align-items:center;gap:var(--sp-4);height:var(--header-h);padding:0 var(--sp-4);padding-top:env(safe-area-inset-top);height:calc(var(--header-h) + env(safe-area-inset-top));background:color-mix(in oklch, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;position:sticky;top:0}.brand{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--text);font-size:17px;font-weight:700}.brand:first-letter{color:var(--accent)}.header-nav{gap:var(--sp-1);margin-left:auto;display:none}.header-nav a{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);color:var(--text-muted);font-size:14px;font-weight:500;transition:color .15s,background .15s}.header-nav a:hover{color:var(--text);background:var(--surface-2)}.header-nav a.is-active{color:var(--accent);background:var(--accent-wash)}.header-spacer{margin-left:auto}.header-actions{align-items:center;gap:var(--sp-2);margin-left:auto;display:flex}.icon-btn{border-radius:var(--r-md);width:38px;height:38px;color:var(--text-muted);justify-content:center;align-items:center;transition:color .15s,background .15s;display:inline-flex}.icon-btn svg{width:19px;height:19px}.icon-btn:hover{color:var(--text);background:var(--surface-2)}.icon-btn.is-active{color:var(--accent);background:var(--accent-wash)}@media (width<=899px){.icon-btn--desktop{display:none}}.app-main{width:100%;max-width:var(--content-max);padding:var(--sp-4) var(--sp-4) var(--sp-7);padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + var(--sp-5));flex:1;margin-inline:auto}.tab-bar{z-index:30;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:color-mix(in oklch, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--line);justify-content:space-around;align-items:stretch;display:flex;position:fixed;inset:auto 0 0}.tab-item{padding:var(--sp-2) var(--sp-1);letter-spacing:.02em;color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:500;transition:color .15s;display:flex;position:relative}.tab-item svg{width:22px;height:22px}.tab-item.is-active{color:var(--accent)}.tab-item.is-active:before{content:"";background:var(--accent);border-radius:0 0 2px 2px;width:28px;height:2px;position:absolute;top:0}@media (width>=900px){.header-nav{display:flex}.tab-bar{display:none}.app-main{padding-bottom:var(--sp-7);padding-inline:var(--sp-5)}}.page-head{justify-content:space-between;align-items:flex-start;gap:var(--sp-4);margin-bottom:var(--sp-5);display:flex}.page-title{letter-spacing:-.02em;font-size:26px}.page-sub{margin-top:var(--sp-1);color:var(--text-muted);font-size:14px}.section{margin-bottom:var(--sp-6)}.section-head{justify-content:space-between;align-items:baseline;gap:var(--sp-3);margin-bottom:var(--sp-3);display:flex}.section-title{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:12px;font-weight:600}.section-meta{font-family:var(--font-mono);color:var(--text-muted);font-size:12px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-4)}.card+.card{margin-top:var(--sp-3)}a.card{transition:border-color .15s,background .15s;display:block}a.card:hover{border-color:var(--line-strong);background:var(--surface-2)}.card-list{gap:var(--sp-3);flex-direction:column;display:flex}.card-list .card+.card{margin-top:0}.prose{color:var(--text-soft);font-size:14px;line-height:1.6}.build-card-top{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.build-card-name{letter-spacing:-.01em;font-size:17px;font-weight:600}.build-card-desc{margin-top:var(--sp-2);color:var(--text-muted);font-size:13px;line-height:1.5}.build-card-stats{align-items:baseline;gap:var(--sp-1);margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--line);color:var(--text-muted);flex-wrap:wrap;font-size:13px;display:flex}.build-card-money{align-items:baseline;gap:var(--sp-2);color:var(--text-soft);margin-left:auto;display:inline-flex}.search-form{margin-bottom:var(--sp-5)}.search-result+.search-result{margin-top:var(--sp-2)}.copy-row{gap:var(--sp-2);margin:var(--sp-3) 0;display:flex}.copy-row .input{min-width:0;font-family:var(--font-mono);text-overflow:ellipsis;flex:1;font-size:13px}.copy-row .btn{flex:none}.snapshot{max-height:60vh;padding:var(--sp-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);font-family:var(--font-mono);color:var(--text-soft);white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.6;overflow:auto}.share-page{max-width:760px;padding-bottom:var(--sp-7)}.app-version{margin-top:var(--sp-6);text-align:center;color:var(--text-muted);font-size:12px}.note-card{border-color:color-mix(in oklch, var(--warn) 28%, transparent)}.note-card h3{margin-bottom:var(--sp-2);font-size:14px}.note-card p{font-size:13px;line-height:1.6}.tone--installed{--tone:var(--tone-installed)}.tone--inhand{--tone:var(--tone-inhand)}.tone--needed{--tone:var(--tone-needed)}.tone--spare{--tone:var(--tone-spare)}.tone--sale{--tone:var(--tone-sale)}.tone--archived{--tone:var(--tone-archived)}.status-section{margin-block:var(--sp-5);border:1px solid color-mix(in oklch, var(--tone) 30%, var(--line));border-top:2px solid var(--tone);border-radius:var(--r-lg);background:var(--bg);overflow:hidden}.status-head{justify-content:space-between;align-items:baseline;gap:var(--sp-1) var(--sp-3);padding:var(--sp-3) var(--sp-4);background:color-mix(in oklch, var(--tone) 14%, var(--surface));border-bottom:1px solid color-mix(in oklch, var(--tone) 25%, var(--line));flex-wrap:wrap;display:flex}.status-title{align-items:center;gap:var(--sp-2);font-family:var(--font-display);letter-spacing:-.01em;color:var(--text);font-size:15px;font-weight:600;display:flex}.status-title:before{content:"";background:var(--tone);border-radius:50%;flex:none;width:6px;height:6px}.status-meta{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text-muted);font-size:12px}.status-note{color:var(--text-muted);flex-basis:100%;font-size:12px}.status-body{padding:var(--sp-3)}.status-empty{padding:var(--sp-2) 0;color:var(--text-muted);font-size:13px}@media (width>=900px){.status-body{padding:var(--sp-4)}}.type-group+.type-group{margin-top:var(--sp-5)}.type-group-title{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2);font-family:var(--font-body);color:var(--text-soft);font-size:13px;font-weight:600;display:flex}.type-group--collapsible{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);overflow:hidden}.type-group-summary{align-items:center;gap:var(--sp-2);min-height:48px;padding:var(--sp-3) var(--sp-4);cursor:pointer;list-style:none;transition:background .15s;display:flex}.type-group-summary::-webkit-details-marker{display:none}.type-group-summary:hover{background:var(--surface-2)}.type-group--collapsible[open]>.type-group-summary{background:var(--surface-2);border-bottom:1px solid var(--line)}.type-group-count{border-radius:var(--r-pill);background:var(--surface-3);color:var(--text-soft);font-family:var(--font-mono);font-variant-numeric:tabular-nums;padding:1px 8px;font-size:12px}.type-group-label{color:var(--text-soft);font-size:13px;font-weight:500}.type-group-total{color:var(--text-muted);margin-left:auto;font-size:13px}.type-group-summary:after{content:"";margin-left:var(--sp-2);border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);flex:none;width:8px;height:8px;transition:transform .2s;transform:rotate(45deg)translate(-2px,-2px)}.type-group-summary:not(:has(.type-group-total)):after{margin-left:auto}.type-group--collapsible[open]>.type-group-summary:after{transform:rotate(-135deg)translate(-2px,-2px)}.type-group--collapsible .part-list{border:0;border-radius:0}.part-list{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);overflow:hidden}.part-row{justify-content:space-between;align-items:center;gap:var(--sp-3);min-height:56px;padding:var(--sp-3) var(--sp-4);transition:background .15s;display:flex}.part-row+.part-row{border-top:1px solid var(--line)}.part-row:hover{background:var(--surface-2)}.part-row-main{min-width:0}.part-row-name{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:550;display:block;overflow:hidden}.part-row-meta{color:var(--text-muted);margin-top:1px;font-size:12px;display:block}.part-row-dot{margin:0 4px}.part-row-side{flex:none;font-size:14px}.part-type{letter-spacing:.03em;text-transform:uppercase;color:var(--text-muted);font-size:12px;font-weight:500}.actions{gap:var(--sp-2);flex-direction:column;display:flex}.action-panel{border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);overflow:hidden}.action-panel>summary{align-items:center;gap:var(--sp-2);min-height:46px;padding:var(--sp-3) var(--sp-4);cursor:pointer;font-size:14px;font-weight:550;list-style:none;transition:background .15s;display:flex}.action-panel>summary::-webkit-details-marker{display:none}.action-panel>summary:after{content:"";border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);width:8px;height:8px;margin-left:auto;transition:transform .2s;transform:rotate(45deg)translate(-2px,-2px)}.action-panel[open]>summary:after{transform:rotate(-135deg)translate(-2px,-2px)}.action-panel>summary:hover{background:var(--surface-2)}.action-panel[open]>summary{background:var(--surface-2);border-bottom:1px solid var(--line)}.action-body{padding:var(--sp-4)}.action-body .field-group{background:0 0}.action-panel--danger>summary{color:var(--danger)}.action-panel--danger{border-color:color-mix(in oklch, var(--danger) 30%, transparent)}.field-group[data-when-sold][hidden],.field-group[data-when-destination][hidden]{display:none}.timeline{margin:0;padding:0;list-style:none}.timeline-item{gap:var(--sp-3);padding:var(--sp-2) 0 var(--sp-3);display:flex;position:relative}.timeline-item:not(:last-child):before{content:"";background:var(--line-strong);width:1px;position:absolute;top:18px;bottom:-4px;left:4px}.timeline-dot{background:var(--text-muted);width:9px;height:9px;box-shadow:0 0 0 3px var(--bg);border-radius:50%;flex:none;margin-top:6px}.event--installed{background:var(--st-installed)}.event--inhand{background:var(--st-inhand)}.event--spare{background:var(--st-spare)}.event--archived{background:var(--st-archived)}.event--neutral{background:var(--text-muted)}.timeline-body{justify-content:space-between;align-items:baseline;gap:var(--sp-2);flex-wrap:wrap;flex:1;min-width:0;display:flex}.timeline-what{font-size:14px}.timeline-when{color:var(--text-muted);white-space:nowrap;font-size:12px}.sale-figures{white-space:nowrap;align-items:baseline;gap:6px;font-size:13px;display:inline-flex}.sale-paid{color:var(--text-muted);text-decoration:line-through}.sale-arrow{color:var(--text-muted)}.sale-delta{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:12px}.spec-list{flex-direction:column;display:flex}.spec{justify-content:space-between;align-items:baseline;gap:var(--sp-4);padding:var(--sp-3) 0;display:flex}.spec+.spec{border-top:1px solid var(--line)}.spec dt{color:var(--text-muted);flex:none;font-size:13px}.spec dd{text-align:right;font-size:14px}.spec-notes{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--line)}.link{color:var(--accent);font-weight:500}.link:hover{text-decoration:underline}.breadcrumb{margin-bottom:var(--sp-3);color:var(--text-muted);font-size:13px;font-weight:500}.breadcrumb a{transition:color .15s}.breadcrumb a:hover{color:var(--accent)}.danger-zone{justify-content:space-between;align-items:center;gap:var(--sp-3);max-width:560px;margin-top:var(--sp-6);padding:var(--sp-4);border:1px solid color-mix(in oklch, var(--danger) 30%, transparent);border-radius:var(--r-lg);background:color-mix(in oklch, var(--danger) 6%, transparent);flex-wrap:wrap;display:flex}.danger-zone h3{margin-bottom:2px;font-size:14px}.danger-zone p{font-size:13px}.pill{border-radius:var(--r-pill);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;background:var(--surface-3);color:var(--text-soft);align-items:center;gap:6px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.pill:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.pill--complete,.pill--installed{color:var(--st-installed);background:color-mix(in oklch, var(--st-installed) 16%, transparent)}.pill--progress,.pill--inhand{color:var(--st-inhand);background:color-mix(in oklch, var(--st-inhand) 16%, transparent)}.pill--tostart,.pill--needed{color:var(--st-needed);background:color-mix(in oklch, var(--st-needed) 16%, transparent)}.pill--spare{color:var(--st-spare);background:color-mix(in oklch, var(--st-spare) 16%, transparent)}.pill--sale{color:var(--st-sale);background:color-mix(in oklch, var(--st-sale) 16%, transparent)}.pill--archived{color:var(--st-archived);background:color-mix(in oklch, var(--st-archived) 18%, transparent)}.btn{justify-content:center;align-items:center;gap:var(--sp-2);min-height:42px;padding:var(--sp-2) var(--sp-4);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface-2);color:var(--text);cursor:pointer;font-size:14px;font-weight:550;transition:background .15s,border-color .15s,transform 60ms;display:inline-flex}.btn:hover{background:var(--surface-3);border-color:var(--text-muted)}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:650}.btn--primary:hover{background:var(--accent-hot);border-color:var(--accent-hot)}.btn--ghost{border-color:var(--line);background:0 0}.btn--ghost:hover{background:var(--surface-2)}.btn--danger{color:var(--danger);border-color:var(--danger-wash);background:0 0}.btn--danger:hover{background:var(--danger-wash);border-color:var(--danger)}.btn--sm{min-height:34px;padding:var(--sp-1) var(--sp-3);font-size:13px}.btn--block{width:100%}.btn-row{gap:var(--sp-2);flex-wrap:wrap;display:flex}.btn-row--spread{margin-top:var(--sp-4);justify-content:space-between}.field{margin-bottom:var(--sp-4)}.field label{margin-bottom:var(--sp-2);color:var(--text-soft);font-size:13px;font-weight:550;display:block}.field .hint{margin-top:var(--sp-2);color:var(--text-muted);font-size:12px}.input,.field input[type=text],.field input[type=email],.field input[type=password],.field input[type=number],.field input[type=date],.field input[type=url],.field select,.field textarea{width:100%;padding:11px var(--sp-3);background:var(--surface-2);border:1px solid var(--line-strong);border-radius:var(--r-md);color:var(--text);font-size:16px;transition:border-color .15s,background .15s}.field textarea{resize:vertical;min-height:110px;line-height:1.5}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);background:var(--surface);outline:none}.field input::placeholder,.field textarea::placeholder{color:var(--text-muted)}.field .error{margin-top:var(--sp-2);color:var(--danger);font-size:13px}.field--invalid input,.field--invalid select,.field--invalid textarea{border-color:var(--danger)}.check{align-items:center;gap:var(--sp-2);color:var(--text-soft);cursor:pointer;font-size:14px;display:flex}.check input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer}.label-text{margin-bottom:var(--sp-2);color:var(--text-soft);font-size:13px;font-weight:550;display:block}.form-card{max-width:560px}.radio-set{gap:var(--sp-2);flex-direction:column;display:flex}.radio-card{align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface-2);cursor:pointer;transition:border-color .15s,background .15s;display:flex}.radio-card:hover{background:var(--surface-3)}.radio-card input[type=radio]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer;flex:none;margin-top:2px}.radio-card:has(input:checked){border-color:var(--accent);background:var(--accent-wash)}.radio-card:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.field-pair{gap:0 var(--sp-3);display:grid}@media (width>=520px){.field-pair{grid-template-columns:1fr 1fr}}.field-group{margin-bottom:var(--sp-4);padding:var(--sp-4);border:1px solid var(--line);border-radius:var(--r-md);background:color-mix(in oklch, var(--surface-2) 50%, transparent)}.field-group legend{padding:0 var(--sp-2);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:12px;font-weight:600}.field-group .field:last-child{margin-bottom:0}.field-group[hidden]{display:none}.radio-card-body{display:block}.radio-card-title{font-size:14px;font-weight:600;display:block}.radio-card-hint{color:var(--text-muted);margin-top:2px;font-size:13px;display:block}.flash{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);border:1px solid;font-size:14px;display:flex}.flash--success{color:var(--ok);border-color:color-mix(in oklch, var(--ok) 40%, transparent);background:color-mix(in oklch, var(--ok) 12%, transparent)}.flash--error{color:var(--danger);border-color:color-mix(in oklch, var(--danger) 40%, transparent);background:var(--danger-wash)}.empty{padding:var(--sp-7) var(--sp-4);text-align:center;border:1px dashed var(--line-strong);border-radius:var(--r-lg);background:color-mix(in oklch, var(--surface) 50%, transparent)}.empty svg{width:40px;height:40px;margin:0 auto var(--sp-3);color:var(--text-muted);opacity:.7}.empty--tight{padding:var(--sp-5) var(--sp-4)}.empty--tight p{margin-bottom:0}.empty h3{margin-bottom:var(--sp-2);font-size:16px}.empty p{color:var(--text-muted);max-width:34ch;margin:0 auto var(--sp-4);font-size:14px}.auth-wrap{min-height:100dvh;padding:var(--sp-5) var(--sp-4);flex-direction:column;justify-content:center;display:flex}.auth-card{width:100%;max-width:380px;margin-inline:auto}.auth-brand{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;text-align:center;margin-bottom:var(--sp-2);font-size:30px;font-weight:700}.auth-brand:first-letter{color:var(--accent)}.auth-tag{text-align:center;color:var(--text-muted);margin-bottom:var(--sp-6);font-size:14px}.auth-alt{text-align:center;color:var(--text-muted);margin-top:var(--sp-4);font-size:14px}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.money{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.money--up{color:var(--ok)}.money--down{color:var(--danger)}.muted{color:var(--text-muted)}.soft{color:var(--text-soft)}.stat-row{gap:var(--sp-5);flex-wrap:wrap;display:flex}.stat-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:2px;font-size:11px;font-weight:600;display:block}.stat-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:18px}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
