:root{--background: #16161a;--surface: #232326;--raised: #2c2c30;--card-border: #333336;--primary-accent: #ff8c42;--secondary-accent: #4ecdc4;--warning: #ea604c;--text-primary: #ededed;--text-secondary: #9a9a9e;--font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", system-ui, sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--radius-card: 14px;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--background);color:var(--text-primary)}body{font:15px/1.45 var(--font-sans);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--primary-accent);outline-offset:2px}.wrap,.shell{max-width:1080px;margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}.shell{padding-bottom:48px}.site-header{padding-block:20px;line-height:1.55}.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:12px;color:var(--text-primary);text-decoration:none;font-weight:700;font-size:19px}.brand img{width:40px;height:40px;border-radius:9px}.site-nav{display:flex;gap:20px;flex-wrap:wrap}.site-nav a{color:var(--text-secondary);text-decoration:none;font-size:15px}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--text-primary)}@media(max-width:440px){.site-nav{gap:14px}.site-nav a{font-size:14px}}.tabs{display:flex;gap:28px;border-bottom:1px solid var(--card-border);margin:4px 0 20px;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs a{position:relative;padding:10px 0 12px;color:var(--text-secondary);text-decoration:none;font-weight:600;font-size:15px;white-space:nowrap}.tabs a:hover,.tabs a.on{color:var(--text-primary)}.tabs a.on:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:2px;background:var(--primary-accent)}@media(max-width:440px){.tabs{gap:22px}}.page-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0 16px}.page-head h1{font-size:30px;line-height:1.1;margin:0;flex:1 0 auto;max-width:100%;overflow-wrap:anywhere}.toolbar{display:flex;gap:8px;flex-wrap:wrap}.btn{border:1px solid var(--card-border);background:var(--surface);padding:7px 14px;border-radius:999px;cursor:pointer;font-weight:600;font-size:14px}.btn:hover{background:var(--raised)}.btn.primary{background:var(--primary-accent);color:var(--background);border-color:transparent}.btn.info{color:var(--secondary-accent)}.btn.danger{color:var(--warning)}.btn:disabled{opacity:.45;cursor:default}.link{background:none;border:none;padding:0;color:var(--primary-accent);cursor:pointer;font-weight:600}.search{width:100%;padding:10px 14px;border-radius:12px;border:1px solid var(--card-border);background:var(--surface);margin-bottom:12px}.card{background:var(--surface);border:1px solid var(--card-border);border-radius:var(--radius-card);padding:12px}.list{display:grid;gap:8px}.row{display:flex;align-items:center;gap:12px;min-width:0}button.row{width:100%;text-align:left;cursor:pointer}button.card:hover{border-color:#47474b}.grow{flex:1;min-width:0}.title{overflow-wrap:anywhere}.sub{color:var(--text-secondary);font-size:12px}.mono{font-family:var(--font-mono)}.qty{font:600 15px var(--font-mono)}.warn{color:var(--warning)}.accent{color:var(--primary-accent)}.info{color:var(--secondary-accent)}.muted{color:var(--text-secondary)}.cat{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;padding:14px 2px 6px;color:var(--text-secondary);font-weight:600;font-size:15px;cursor:pointer}.cat .count{margin-left:auto;font:12px var(--font-mono)}.cat .chev{transition:transform .15s}.cat.open .chev{transform:rotate(90deg)}.section{margin-top:20px}.section>h2{font-size:15px;color:var(--text-secondary);margin:0 0 8px;font-weight:600}.bar{height:5px;border-radius:3px;background:var(--card-border);overflow:hidden}.bar span{display:block;height:100%;background:var(--primary-accent)}.check{width:20px;height:20px;flex:none;border-radius:50%;border:1.5px solid var(--text-secondary);background:none;cursor:pointer;padding:0;display:grid;place-items:center}.check.on{background:var(--primary-accent);border-color:var(--primary-accent);color:var(--background);font-size:12px;font-weight:700}.struck{text-decoration:line-through;color:var(--text-secondary)}.icon-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px 6px;border-radius:6px;font-size:15px}.icon-btn:hover{color:var(--warning);background:var(--raised)}.segmented{display:inline-grid;grid-auto-flow:column;background:var(--surface);border-radius:10px;padding:3px;margin-bottom:12px}.segmented button{border:none;background:none;padding:6px 14px;border-radius:8px;color:var(--text-secondary);cursor:pointer;font-weight:600}.segmented button.on{background:var(--raised);color:var(--text-primary)}.empty{text-align:center;color:var(--text-secondary);padding:40px 16px}.empty strong{display:block;color:var(--text-primary);font-size:17px;margin-bottom:4px}.note{font-size:13px;color:var(--text-secondary)}.banner{margin:8px 0 0;padding:10px 14px;border-radius:12px;background:var(--surface);border:1px solid var(--card-border);font-size:13px;color:var(--text-secondary)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:grid;place-items:center;padding:16px;z-index:20}.dialog{width:min(560px,100%);max-height:calc(100vh - 32px);overflow:auto;background:var(--background);border:1px solid var(--card-border);border-radius:18px;padding:18px;display:grid;gap:14px}.dialog h2{margin:0;font-size:20px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.field{display:grid;gap:4px}.field>span{font-size:12px;color:var(--text-secondary)}.field input,.field select,.field textarea{padding:9px 12px;border-radius:10px;border:1px solid var(--card-border);background:var(--surface);width:100%}.field textarea{min-height:90px;resize:vertical}textarea.bom{font-family:var(--font-mono);min-height:200px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.toggle{display:flex;align-items:center;gap:8px}.pick{max-height:320px;overflow:auto;display:grid;gap:6px}.pick .card.on{border-color:var(--primary-accent)}@media(max-width:560px){.grid2{grid-template-columns:1fr}.page-head h1{font-size:26px}}.scan-group{display:grid;gap:6px}.scan-group h3{margin:4px 0 0;font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.scan-line{display:grid;grid-template-columns:minmax(64px,auto) 1fr auto;align-items:center;gap:10px}.scan-line .label{font-family:var(--font-mono);color:var(--secondary-accent)}.scan-line input,.scan-line select{padding:7px 10px;border-radius:8px;border:1px solid var(--card-border);background:var(--surface);width:100%;font-family:var(--font-mono)}.scan-busy{display:flex;align-items:center;gap:12px;color:var(--text-secondary)}.spinner{width:20px;height:20px;border-radius:50%;border:3px solid var(--card-border);border-top-color:var(--primary-accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}.qty-edit{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--card-border);border-radius:999px;padding:0 2px}.qty-edit .icon-btn{font-size:16px;line-height:1;padding:4px 8px}.qty-edit .icon-btn:hover:not(:disabled){color:var(--primary-accent)}.qty-edit .icon-btn:disabled{opacity:.35;cursor:default}.label-short{display:none}@media(max-width:560px){.page-head .toolbar{width:100%}.btn{padding:7px 11px;font-size:13px}.label-long{display:none}.label-short{display:inline}}@media(pointer:coarse){.check,.icon-btn{position:relative}.check:after,.icon-btn:after{content:"";position:absolute;top:-12px;right:-12px;bottom:-12px;left:-12px}.qty-edit .icon-btn{padding:8px 12px;font-size:18px}.qty-edit .icon-btn:after{top:-8px;right:-2px;bottom:-8px;left:-2px}.check{width:24px;height:24px}}button,select,a{-webkit-tap-highlight-color:transparent}button:active:not(:disabled){opacity:.7}.note a{color:var(--secondary-accent)}.back-to-top{position:fixed;right:max(20px,env(safe-area-inset-right,0px));bottom:max(20px,env(safe-area-inset-bottom,0px));width:48px;height:48px;border-radius:50%;border:1px solid var(--card-border);background:var(--raised);color:var(--primary-accent);font-size:22px;font-weight:700;cursor:pointer;box-shadow:0 6px 20px #00000073;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:5}.back-to-top.shown{opacity:1;transform:none;pointer-events:auto}@media(prefers-reduced-motion:reduce){.back-to-top{transition:none}}.suggest{font-size:13px;color:var(--secondary-accent);background:none;border:none;padding:2px 0;cursor:pointer;text-align:left;font-weight:600}.suggest:hover{text-decoration:underline}.detail-section{display:grid;gap:6px;border-top:1px solid var(--card-border);padding-top:12px}.detail-section h3{margin:0;font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.cat-icon{flex:none;color:var(--text-secondary)}.cat-icon *{vector-effect:non-scaling-stroke}
