@import "https://fonts.googleapis.com/css2?family=Sarabun:wght@300;400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap";.login-page{--void:#0a0d12;--steel-dark:#161b22;--steel-mid:#2a3240;--steel-line:#4a5568;--silver:#c3cad6;--cyan:#4fd8e8;--cyan-dim:#4fd8e82e;--green:#5cc687;--green-dim:#5cc6872e;--amber:#f0a83c;--amber-dim:#f0a83c2e;--danger:#ff6b6b;background:var(--void);height:100dvh;color:var(--silver);font-family:Inter,sans-serif;overflow:hidden}.login-page *{box-sizing:border-box}.login-page .stage{isolation:isolate;width:100%;height:100%;position:relative}.login-page .hero{padding:40px 48px;position:absolute;inset:0;overflow:hidden}.login-page .bg-layer{z-index:0;background:radial-gradient(ellipse at 30% 20%, #4fd8e812, transparent 55%), radial-gradient(ellipse at 75% 85%, #5cc6870f, transparent 55%), var(--void);position:absolute;inset:0}.login-page .three-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.login-page .traces{z-index:1;opacity:.5;position:absolute;inset:0}.login-page .traces path{fill:none;stroke:var(--cyan);stroke-width:1px;stroke-dasharray:6 10;filter:drop-shadow(0 0 3px var(--cyan));animation:6s linear infinite login-trace-flow}.login-page .traces path.green{stroke:var(--green);filter:drop-shadow(0 0 3px var(--green));animation-duration:8s}@keyframes login-trace-flow{to{stroke-dashoffset:-160px}}.login-page .machine-icons{z-index:1;perspective:800px;position:absolute;inset:0}.login-page .tool-icon{opacity:0;filter:drop-shadow(0 10px 12px #00000080);animation:1s cubic-bezier(.2,.8,.2,1) forwards login-icon-materialize;position:absolute}.login-page .tool-icon svg{width:100%;height:100%;display:block}.login-page .t3{width:96px;height:114px;animation-delay:.2s;top:22%;right:14%}@keyframes login-icon-materialize{0%{opacity:0;filter:brightness(2)blur(4px);transform:scale(.7)}60%{opacity:1;filter:brightness(1.4)blur()}to{opacity:1;filter:brightness()blur();transform:scale(1)}}.login-page .sd1{animation:1.4s ease-out infinite login-spray1}.login-page .sd2{animation:1.4s ease-out .25s infinite login-spray2}.login-page .sd3{animation:1.4s ease-out .5s infinite login-spray3}.login-page .sd4{animation:1.4s ease-out .75s infinite login-spray4}@keyframes login-spray1{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(45px,-55px)}}@keyframes login-spray2{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(55px,-35px)}}@keyframes login-spray3{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(35px,-65px)}}@keyframes login-spray4{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(60px,-15px)}}.login-page .vignette{z-index:3;pointer-events:none;background:radial-gradient(#0000 40%,#00000080 100%);position:absolute;inset:0}.login-page .scanline{z-index:2;pointer-events:none;mix-blend-mode:overlay;background:repeating-linear-gradient(0deg,#ffffff04 0 1px,#0000 2px 3px);position:absolute;inset:0}.login-page .hero-content{z-index:5;flex-direction:column;justify-content:space-between;max-width:480px;height:100%;display:flex;position:relative}.login-page .brand-row{align-items:center;gap:12px;margin-bottom:34px;display:flex}.login-page .brand-chip{letter-spacing:.06em;border:1px solid;border-radius:3px;padding:6px 13px;font-family:Rajdhani,sans-serif;font-size:15px;font-weight:700}.login-page .brand-chip.nilfisk{color:var(--cyan);background:#4fd8e812;border-color:#4fd8e873}.login-page .brand-chip.fhcs{color:var(--green);background:#5cc68712;border-color:#5cc68773}.login-page .brand-x{color:#5c6675;font-size:14px;font-weight:600}.login-page .hero-foot{letter-spacing:.08em;color:#5c6675;border-top:1px solid #8a94a62e;padding-top:18px;font-size:12px}.login-page .mark,.login-page .eyebrow,.login-page .card-title,.login-page .card-sub,.login-page .field,button.login-submit,.login-page .foot{opacity:0;animation:.6s forwards login-field-in}@keyframes login-field-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.login-page .mark{animation-delay:.3s}.login-page .eyebrow{animation-delay:.38s}.login-page .card-title{animation-delay:.42s}.login-page .card-sub{animation-delay:.48s}.login-page .field:first-of-type{animation-delay:.56s}.login-page .field:nth-of-type(2){animation-delay:.64s}button.login-submit{animation-delay:.8s}.login-page .foot{animation-delay:1.04s}.login-page .card{transform-style:preserve-3d;will-change:transform;transition:transform .2s ease-out}button.login-submit{will-change:transform;position:relative;overflow:hidden}.login-page .ripple{pointer-events:none;background:#fff6;border-radius:50%;width:12px;height:12px;margin:-6px 0 0 -6px;animation:.6s ease-out forwards login-ripple-anim;position:absolute;transform:scale(0)}@keyframes login-ripple-anim{to{opacity:0;transform:scale(20)}}button.login-submit.is-loading{cursor:wait}button.login-submit.is-loading:before{content:"";filter:blur(2px);background:#ffffff47;width:30%;height:100%;animation:.9s linear infinite login-loading-sweep;position:absolute;top:0;left:-30%}@keyframes login-loading-sweep{0%{left:-30%}to{left:100%}}button.login-submit.is-success{background:linear-gradient(90deg, var(--green), var(--cyan));box-shadow:0 8px 24px #5cc68759}.login-page .card-overlay{z-index:10;pointer-events:none;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.login-page .card-overlay .card-wrap{pointer-events:auto}.login-page .card-wrap{z-index:5;width:min(92%,380px);animation:.9s cubic-bezier(.2,.8,.2,1) both login-assemble;position:relative}@keyframes login-assemble{0%{opacity:0;filter:blur(6px);transform:scale(.94)rotate(-1deg)}to{opacity:1;filter:blur();transform:scale(1)rotate(0)}}.login-page .corner{border:2px solid var(--cyan);width:18px;height:18px;filter:drop-shadow(0 0 4px var(--cyan));opacity:.9;position:absolute}.login-page .corner.tl{border-bottom:none;border-right:none;top:-2px;left:-2px}.login-page .corner.tr{border-bottom:none;border-left:none;border-color:var(--green);filter:drop-shadow(0 0 4px var(--green));top:-2px;right:-2px}.login-page .corner.bl{border-top:none;border-right:none;border-color:var(--green);filter:drop-shadow(0 0 4px var(--green));bottom:-2px;left:-2px}.login-page .corner.br{border-top:none;border-left:none;bottom:-2px;right:-2px}.login-page .card{-webkit-backdrop-filter:blur(16px)saturate(140%);background:#161b22e0;border:1px solid #8a94a640;border-radius:4px;padding:38px 32px 32px;position:relative;box-shadow:0 0 0 1px #0006,0 24px 60px #0000008c,inset 0 1px #ffffff0a}.login-page .mark{width:44px;height:44px;margin:0 auto 16px}.login-page .mark svg{width:100%;height:100%;animation:12s linear infinite login-mark-rotate}@keyframes login-mark-rotate{to{transform:rotate(360deg)}}.login-page .eyebrow{text-align:center;letter-spacing:.28em;color:var(--cyan);text-transform:uppercase;margin-bottom:4px;font-family:Rajdhani,sans-serif;font-size:11px}.login-page h1.card-title{text-align:center;letter-spacing:.02em;color:#eef1f5;margin-bottom:6px;font-family:Rajdhani,sans-serif;font-size:24px;font-weight:700}.login-page .card-sub{text-align:center;color:#5c6675;margin-bottom:24px;font-size:12px}.login-page .field{text-align:center;margin-bottom:16px}.login-page .field label{letter-spacing:.14em;text-transform:uppercase;color:#8b95a5;text-align:center;margin-bottom:6px;font-size:11px;font-weight:500;display:block}.login-page .input-shell{justify-content:center;align-items:center;display:flex;position:relative}.login-page .input-shell:after{content:"";background:linear-gradient(90deg, var(--cyan), var(--green));transform-origin:50%;pointer-events:none;height:2px;transition:transform .35s cubic-bezier(.2,.8,.2,1);position:absolute;bottom:0;left:12px;right:12px;transform:scaleX(0)}.login-page .input-shell:focus-within:after{transform:scaleX(1)}.login-page .input-shell svg{color:#5c6675;pointer-events:none;width:16px;height:16px;position:absolute;left:12px}.login-page .input-shell svg.valid-check{opacity:0;width:16px;height:16px;transition:opacity .28s cubic-bezier(.34,1.56,.64,1),transform .28s cubic-bezier(.34,1.56,.64,1);left:auto;right:12px;transform:scale(.4)rotate(-20deg)}.login-page input.is-valid~.valid-check{opacity:1;transform:scale(1)rotate(0)}.login-page .field.shake .input-shell{animation:.4s cubic-bezier(.36,.07,.19,.97) login-field-shake}@keyframes login-field-shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-4px)}40%,60%{transform:translate(4px)}}.login-page input[type=text],.login-page input[type=password]{text-align:center;border:1px solid var(--steel-line);color:#eef1f5;background:#0a0d1299;border-radius:3px;outline:none;width:100%;padding:12px 38px;font-family:Inter,sans-serif;font-size:14px;transition:border-color .2s,box-shadow .2s}.login-page input::placeholder{color:#4a5568}.login-page input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px var(--cyan-dim)}.login-page input:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.login-page .row{opacity:0;justify-content:space-between;align-items:center;margin:4px 0 16px;font-size:12.5px;animation:.6s .72s forwards login-field-in;display:flex}.login-page .remember{color:#9aa4b2;cursor:pointer;align-items:center;gap:7px;display:flex}.login-page .remember input{width:14px;height:14px;accent-color:var(--cyan)}.login-page .row a{color:var(--cyan);cursor:pointer;text-decoration:none}.login-page .row a:hover{text-decoration:underline}.login-page .login-info{text-align:center;color:var(--cyan);background:var(--cyan-dim);border:1px solid #4fd8e84d;border-radius:3px;margin:-4px 0 16px;padding:8px 10px;font-size:12.5px}.login-page .login-error{text-align:center;color:var(--danger);background:#ff6b6b1a;border:1px solid #ff6b6b4d;border-radius:3px;margin:-4px 0 16px;padding:8px 10px;font-size:12.5px}button.login-submit{background:linear-gradient(90deg, var(--cyan), var(--green));color:#08151a;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border:none;border-radius:3px;width:100%;padding:13px;font-family:Rajdhani,sans-serif;font-size:15px;font-weight:700;transition:transform .15s,box-shadow .2s;box-shadow:0 8px 24px #4fd8e833,0 8px 24px #5cc68726}button.login-submit:hover{transform:translateY(-1px);box-shadow:0 10px 28px #4fd8e852,0 10px 28px #5cc6873d}button.login-submit:active{transform:translateY(0)}button.login-submit:focus-visible{outline-offset:2px;outline:2px solid #fff}button.login-submit:disabled{cursor:default}.login-page .foot{text-align:center;color:#5c6675;margin-top:22px;font-size:12.5px}.login-page .foot a{color:var(--amber);cursor:pointer;text-decoration:none}.login-page .foot a:hover{text-decoration:underline}@media (prefers-reduced-motion:reduce){.login-page .traces path,.login-page .mark svg,.login-page .card-wrap,.login-page .tool-icon,.login-page .tool-icon *,.login-page .mark,.login-page .eyebrow,.login-page .card-title,.login-page .card-sub,.login-page .field,.login-page .row,button.login-submit,.login-page .foot,.login-page .ripple,button.login-submit.is-loading:before{animation:none!important}.login-page .mark,.login-page .eyebrow,.login-page .card-title,.login-page .card-sub,.login-page .field,.login-page .row,button.login-submit,.login-page .foot,.login-page .tool-icon{opacity:1!important;transform:none!important}}@media (width<=1000px){.login-page .hero{padding:24px 20px}}@media (height<=700px){.login-page{height:auto;min-height:100dvh;overflow-y:auto}.login-page .stage{height:auto;min-height:100dvh}.login-page .card-overlay{padding:40px 24px;position:relative}}@media (width<=420px){.login-page .card-wrap{width:92%}}:root{--bg:#0b0f1a;--surf:#111827;--card:#1a2233;--card2:#1e2940;--border:#263044;--border-strong:#2e3a50;--accent:#00d4aa;--accent-hover:#00bfa0;--accent2:#4f9eff;--accent3:#a78bfa;--warning:#f59e0b;--danger:#ef4444;--success:#22c55e;--flat:#94a3b8;--text:#e2e8f0;--text-muted:#64748b;--text-muted2:#94a3b8;--on-accent:#000;--scroll-track:var(--border);--scroll-thumb:var(--text-muted);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--font-sans:"Sarabun", sans-serif;--font-mono:"IBM Plex Mono", monospace;--radius-sm:5px;--radius-md:7px;--radius-lg:10px}:root[data-theme=light]{--bg:#f4f5f7;--surf:#fff;--card:#fff;--card2:#eef1f6;--border:#dde2ea;--border-strong:#c9d0dc;--accent:#00967a;--accent-hover:#007f66;--accent2:#2f6fd1;--accent3:#7c5cd6;--warning:#b5750f;--danger:#c8352f;--success:#1a8a4a;--flat:#5b6472;--text:#1c2430;--text-muted:#6b7280;--text-muted2:#4b5563;--on-accent:#fff;--scroll-track:var(--card2);--scroll-thumb:var(--border-strong);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=latte]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#e6e9ef;--surf:#eff1f5;--card:#fff;--card2:#f5f5f5;--border:#ccd0da;--border-strong:#bcc0cc;--accent:#8839ef;--accent-hover:#7832d2;--accent2:#1e66f5;--accent3:#a95493;--warning:#a06715;--danger:#d20f39;--success:#358323;--flat:#5c5f77;--text:#4c4f69;--text-muted:#656878;--text-muted2:#5c5f77;--on-accent:#fff;--scroll-track:#f5f5f5;--scroll-thumb:#bcc0cc}:root[data-theme=nord]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#2e3440;--surf:#353c4a;--card:#3b4252;--card2:#454b5b;--border:#4c566a;--border-strong:#5e6a82;--accent:#88c0d0;--accent-hover:#78a9b7;--accent2:#98b2cb;--accent3:#c5a7bf;--warning:#ebcb8b;--danger:#daa2a7;--success:#a3be8c;--flat:#d8dee9;--text:#eceff4;--text-muted:#a7b1c4;--text-muted2:#d8dee9;--on-accent:#000;--scroll-track:#4c566a;--scroll-thumb:#a7b1c4}:root[data-theme=tokyo]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#16161e;--surf:#1a1b26;--card:#24283b;--card2:#2f3345;--border:#292e42;--border-strong:#414868;--accent:#7aa2f7;--accent-hover:#6b8fd9;--accent2:#7dcfff;--accent3:#bb9af7;--warning:#e0af68;--danger:#f7768e;--success:#9ece6a;--flat:#a9b1d6;--text:#c0caf5;--text-muted:#8a90ae;--text-muted2:#a9b1d6;--on-accent:#000;--scroll-track:#292e42;--scroll-thumb:#8a90ae}:root[data-theme=gruvbox]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#1d2021;--surf:#282828;--card:#3c3836;--card2:#464240;--border:#504945;--border-strong:#665c54;--accent:#fe8019;--accent-hover:#e07116;--accent2:#88a99c;--accent3:#d790a3;--warning:#fabd2f;--danger:#fb7b6c;--success:#b8bb26;--flat:#bdae93;--text:#ebdbb2;--text-muted:#aea18e;--text-muted2:#bdae93;--on-accent:#000;--scroll-track:#504945;--scroll-thumb:#aea18e}:root[data-theme=everforest]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#232a2e;--surf:#2d353b;--card:#343f44;--card2:#3e494d;--border:#3d484d;--border-strong:#475258;--accent:#7fbbb3;--accent-hover:#70a59e;--accent2:#83c092;--accent3:#d699b6;--warning:#dbbc7f;--danger:#ea9293;--success:#a7c080;--flat:#a1aca4;--text:#dcd0b9;--text-muted:#9faaa3;--text-muted2:#a1aca4;--on-accent:#000;--scroll-track:#3d484d;--scroll-thumb:#9faaa3}:root[data-theme=dracula]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#21222c;--surf:#282a36;--card:#343746;--card2:#3e414f;--border:#44475a;--border-strong:#6272a4;--accent:#bd93f9;--accent-hover:#a681db;--accent2:#8be9fd;--accent3:#ff79c6;--warning:#ffb86c;--danger:#ff7575;--success:#50fa7b;--flat:#bfc4d9;--text:#f8f8f2;--text-muted:#97a1c3;--text-muted2:#bfc4d9;--on-accent:#000;--scroll-track:#44475a;--scroll-thumb:#97a1c3}:root[data-theme=solarized-light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#eee8d5;--surf:#f5eedb;--card:#fdf6e3;--card2:#f3ecda;--border:#e0d8c0;--border-strong:#c9c1a8;--accent:#2176b3;--accent-hover:#1d689e;--accent2:#207a72;--accent3:#6468b4;--warning:#8e6c00;--danger:#d3302d;--success:#687800;--flat:#586e75;--text:#073642;--text-muted:#55686f;--text-muted2:#586e75;--on-accent:#fff;--scroll-track:#f3ecda;--scroll-thumb:#c9c1a8}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-size:13px}h1,h2,h3{letter-spacing:-.01em;color:var(--text);font-weight:700}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--scroll-track);border-radius:6px}::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border:2px solid var(--border);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}button{font-family:inherit}button[type=submit],.items-toolbar button:not([type=button]),form button:not([type=button]){background:var(--accent);color:var(--on-accent);border:1px solid var(--accent);border-radius:var(--radius-sm);cursor:pointer;padding:.5rem 1.1rem;font-size:.85rem;font-weight:700;transition:background .15s}button[type=submit]:hover:not(:disabled),form button:not([type=button]):hover:not(:disabled){background:var(--accent-hover)}button[type=button]{background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;padding:.45rem .9rem;font-size:.78rem;font-weight:600;transition:border-color .15s,color .15s}button[type=button]:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}button:disabled{opacity:.4;cursor:default}input[type=text],input[type=password],input[type=number],select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);padding:.45rem .65rem;font-family:inherit;font-size:.85rem;transition:border-color .15s}input::placeholder{color:var(--text-muted)}input:focus,select:focus{border-color:var(--accent);outline:none}.login-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--surf);border-radius:var(--radius-lg);border:1px solid var(--border-strong);flex-direction:column;gap:.9rem;width:340px;padding:2.25rem 2rem;display:flex;box-shadow:0 20px 50px #00000073}.login-card h1{margin:0 0 .25rem;font-size:1.15rem}.login-card p{color:var(--text-muted);margin:-.5rem 0 .25rem;font-size:.83rem}.login-card label{color:var(--text-muted2);flex-direction:column;gap:.3rem;font-size:.8rem;font-weight:500;display:flex}.login-card button[type=submit]{margin-top:.4rem;padding:.6rem}.login-error{color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, transparent);border:1px solid color-mix(in srgb, var(--danger) 30%, transparent);border-radius:var(--radius-sm);margin:0;padding:.5rem .7rem;font-size:.8rem}.app-shell-layout{flex-direction:column;height:100vh;display:flex}.app-content{flex-direction:column;flex:1;min-height:0;padding:1.25rem 1.5rem;display:flex}.planning-page{flex-direction:column;flex:1;min-height:0;display:flex}.tabs-bar{border-bottom:1px solid var(--border);flex-shrink:0;gap:.25rem;margin-bottom:.9rem;display:flex}.tab-btn{color:var(--text-muted2)!important;background:0 0!important;border:none!important;border-bottom:2px solid #0000!important;border-radius:0!important;padding:.55rem .9rem!important;font-size:.82rem!important;font-weight:600!important}.tab-btn:hover{color:var(--text)!important}.tab-btn.on{color:var(--accent)!important;border-bottom-color:var(--accent)!important}.tab-content{flex-direction:column;flex:1;min-height:0;display:flex}.print-btn{margin-left:auto}@media print{.side-nav,.tabs-bar,.detail-panel{display:none!important}.app-content,.planning-page,.tab-content,.sum-page{height:auto!important;display:block!important;overflow:visible!important}body,.app-shell-layout{height:auto!important}}.sum-page{flex-direction:column;flex:1;gap:1rem;padding-bottom:1rem;display:flex;overflow-y:auto}.sum-grid{flex-shrink:0;grid-template-columns:repeat(4,1fr);gap:.75rem;display:grid}.sum-kc{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);padding:.85rem 1rem}.sum-kl{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.3rem;font-size:.65rem}.sum-kv{font-family:var(--font-mono);font-size:1.3rem;font-weight:700}.sum-ks{color:var(--text-muted);margin-top:.2rem;font-size:.7rem}.sum-sec{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);flex-shrink:0;overflow:hidden}.sum-sec-hd{border-bottom:1px solid var(--border);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;align-items:center;padding:.7rem 1rem;font-size:.75rem;font-weight:700;display:flex}.sum-sec-bd{padding:.9rem 1rem}.sum-export-btn{white-space:nowrap;padding:.35rem .7rem!important;font-size:.72rem!important}.sum-two{flex-shrink:0;grid-template-columns:1fr 1fr;gap:1rem;display:grid}.sum-three{grid-template-columns:1fr 1fr 1fr;gap:.6rem;display:grid}.mini-kc{background:var(--card2);border:1px solid var(--border);border-radius:var(--radius-sm);text-align:center;padding:.5rem .6rem}.donut-row{align-items:center;gap:1rem;display:flex}.donut-legend{flex-direction:column;flex:1;gap:.4rem;font-size:.8rem;display:flex}.donut-total{font-family:var(--font-mono);margin-bottom:.3rem;font-size:1.3rem;font-weight:700}.donut-total span{color:var(--text-muted);font-size:.7rem;font-weight:400;display:block}.donut-legend-item{color:var(--text-muted2);align-items:center;gap:.4rem;display:flex}.donut-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.fcrow{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.3rem 0;font-size:.8rem;display:flex}.fcrow:last-child{border-bottom:none}.fcl{color:var(--text-muted2)}.fcv{font-family:var(--font-mono);font-weight:600}.item-list{flex-direction:column;gap:.2rem;max-height:320px;display:flex;overflow-y:auto}.item-list button{align-self:flex-start;margin-top:.5rem}.chg-item{border-bottom:1px solid var(--border);font-size:.78rem;font-family:var(--font-mono);justify-content:space-between;align-items:center;padding:.4rem .5rem;display:flex}.chg-item:hover{background:color-mix(in srgb, var(--accent2) 8%, transparent)}.items-page{flex-direction:column;flex:1;min-height:0;display:flex}.items-content-row{flex:1;gap:1rem;min-height:0;display:flex}.kpi-bar{grid-template-columns:repeat(5,1fr);gap:.6rem;margin-bottom:.75rem;display:grid}.kc{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.6rem .75rem}.klbl{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.25rem;font-size:.62rem}.kval{font-family:var(--font-mono);font-size:1.15rem;font-weight:700}.ksub{color:var(--text-muted);margin-top:.15rem;font-size:.66rem}.items-toolbar{align-items:center;gap:.6rem;margin-bottom:.75rem;display:flex}.items-toolbar input[type=text]{min-width:260px}.items-count{color:var(--text-muted);font-size:.78rem;font-family:var(--font-mono)}.items-toolbar-actions{gap:.5rem;margin-left:auto;display:flex}.items-toolbar-actions button.on{border-color:var(--danger);color:var(--danger)}.hist-high,.hist-low,.sum-min-cell{margin:-.35rem -.55rem;padding:.35rem .55rem;display:block}.cat-cell{font-family:var(--font-sans);color:var(--text-muted2);font-size:10px;font-weight:400}.hist-high{color:var(--success);background:color-mix(in srgb, var(--success) 9%, transparent)}.hist-low{color:var(--danger);background:color-mix(in srgb, var(--danger) 7%, transparent)}.avg-month6-cell{color:var(--accent2);font-weight:600}.prov-badge{--prov:var(--warning);box-sizing:border-box;white-space:nowrap;width:fit-content;height:18px;color:var(--prov);background:color-mix(in srgb, var(--prov) 14%, transparent);border:1px solid color-mix(in srgb, var(--prov) 40%, transparent);border-radius:999px;align-items:center;padding:0 9px;font-size:.72rem;font-weight:600;line-height:1;display:flex}.prov-badge.tone-mid{--prov:color-mix(in srgb, var(--warning) 55%, var(--danger))}.prov-badge.tone-high{--prov:var(--danger)}.desc2-line{color:var(--text-muted2);background:color-mix(in srgb, var(--accent) 8%, transparent);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);border-radius:6px;margin:0 0 .75rem;padding:.45rem .7rem;font-size:.82rem}.desc2-line b{color:var(--accent);font-family:var(--font-mono);font-weight:600}.sum-min-cell{color:var(--accent);background:color-mix(in srgb, var(--accent) 4%, transparent);font-weight:700}.items-table-wrap{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.items-table-wrap:focus{outline:none}.items-header-split{border-bottom:1px solid var(--border);flex-shrink:0;display:flex}.items-header-scroll{flex:1;min-width:0;overflow:hidden}.items-split-row{flex:1;min-height:0;display:flex;overflow:hidden auto}.items-frozen-cols{flex-shrink:0;align-self:flex-start;box-shadow:4px 0 10px #00000026}.items-table-scroll{scrollbar-width:none;flex:1;align-self:flex-start;min-width:0;overflow:auto hidden}.items-table-scroll::-webkit-scrollbar{display:none}.items-hscroll-track{border-top:1px solid var(--border);flex-shrink:0;display:flex}.items-hscroll-spacer{flex-shrink:0}.items-hscroll-bar{flex:1;min-width:0;height:14px;overflow:auto hidden}.items-hscroll-bar::-webkit-scrollbar{height:14px}.items-hscroll-bar::-webkit-scrollbar-track{background:var(--card2)}.items-hscroll-bar::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:7px;transition:background .15s}.items-hscroll-bar::-webkit-scrollbar-thumb:hover{background:var(--accent)}.items-table{table-layout:fixed;border-collapse:collapse;width:100%}.items-table-frozen{width:auto}.items-table td{text-overflow:ellipsis;font-family:var(--font-mono);overflow:hidden}.items-table-frozen td:nth-child(2){font-family:var(--font-sans);font-weight:600}.items-table td.active-cell{outline:2px solid var(--accent);outline-offset:-2px}.items-table thead th{position:relative}.th-resizer{cursor:col-resize;-webkit-user-select:none;user-select:none;touch-action:none;width:6px;height:100%;position:absolute;top:0;right:0}.th-resizer:hover,.th-resizer.resizing{background:var(--accent);opacity:.5}.items-table thead tr.lrow th{background:var(--surf);text-transform:uppercase;letter-spacing:.04em;height:30px;color:var(--text-muted);font-size:.63rem;font-weight:700}.items-table thead tr.frow th{background:var(--card);height:28px;padding:2px 4px}.items-table thead tr.frow th input,.items-table thead tr.frow th select{background:var(--bg);border:1px solid var(--border-strong);width:100%;min-width:0;color:var(--text);font-size:.68rem;font-family:var(--font-sans);border-radius:3px;padding:2px 5px}.items-table thead tr.frow th select option{background:var(--surf)}.items-table td,.items-table th{border-bottom:1px solid var(--border);white-space:nowrap;padding:.35rem .55rem;font-size:.76rem}.items-table tbody tr{height:32px}.items-table tbody td{box-sizing:border-box;height:32px;overflow:hidden}.items-table tbody tr:hover td{background:color-mix(in srgb, var(--text) 4%, transparent);cursor:pointer}.items-table td.cell-discontinued{background:color-mix(in srgb, var(--warning) 16%, transparent)!important}.badge{font-size:.68rem;font-weight:700;font-family:var(--font-mono);border:1px solid;border-radius:4px;align-items:center;padding:1px 5px;display:inline-flex}.badge-ok{color:var(--success);border-color:color-mix(in srgb, var(--success) 30%, transparent);background:color-mix(in srgb, var(--success) 10%, transparent)}.badge-warn{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 30%, transparent);background:color-mix(in srgb, var(--warning) 10%, transparent)}.badge-danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 30%, transparent);background:color-mix(in srgb, var(--danger) 10%, transparent)}.badge-muted{color:var(--flat);border-color:color-mix(in srgb, var(--flat) 30%, transparent);background:color-mix(in srgb, var(--flat) 8%, transparent)}.trend-up{color:var(--success)}.trend-down{color:var(--danger)}.trend-flat{color:var(--flat)}.pr-qty-cell{margin:-.35rem -.55rem;padding:.35rem .55rem;display:block}.pr-qty-cell input{box-sizing:border-box;width:100%;height:100%;font-size:.78rem;font-family:var(--font-mono);color:var(--accent2);text-align:right;-moz-appearance:textfield;border-radius:4px;padding:0 .4rem}.pr-qty-cell input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.pr-qty-cell input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.detail-panel{background:var(--surf);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;flex-shrink:0;width:520px;transition:width .25s;display:flex;position:relative;overflow:hidden}.detail-panel-scroll{flex:1;min-height:0;padding:1.1rem;overflow-y:auto}.detail-panel-resizer{cursor:col-resize;z-index:2;-webkit-user-select:none;user-select:none;touch-action:none;width:6px;height:100%;position:absolute;top:0;left:0}.detail-panel-resizer:hover{background:var(--accent);opacity:.5}.detail-panel-collapsed{background:0 0;border:none;justify-content:center;align-items:center;width:22px;padding:0;display:flex;overflow:visible}.detail-panel-toggle{width:22px;height:60px;box-shadow:var(--shadow-sm,0 1px 3px #0003);justify-content:center;align-items:center;display:flex;background:var(--card)!important;border:1px solid var(--border-strong)!important;color:var(--text-muted2)!important;border-radius:999px!important;padding:0!important;font-size:.65rem!important}.detail-panel-toggle:hover{border-color:var(--accent)!important;color:var(--accent)!important}.detail-panel-header-actions{gap:.4rem;display:flex}.detail-title{margin:0 0 .6rem;font-size:1.05rem}.detail-chips{flex-wrap:wrap;gap:.4rem;margin-bottom:1.1rem;display:flex}.chip{background:var(--card2);border:1px solid var(--border-strong);border-radius:4px;align-items:center;gap:4px;padding:2px 8px;display:inline-flex}.chip-label{color:var(--text-muted);font-size:.625rem}.chip-value{font-size:.75rem;font-weight:600;font-family:var(--font-mono)}.detail-panel-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.detail-panel-header h2{font-size:1rem;font-family:var(--font-mono);margin:0}.detail-description{color:var(--text-muted2);margin-top:0;font-size:.85rem}.detail-badges{align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.detail-kpis{grid-template-columns:repeat(3,1fr);gap:.55rem;margin-bottom:1.1rem;display:grid}.kpi{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;gap:.15rem;padding:.5rem .6rem;display:flex}.kpi-label{color:var(--text-muted);font-size:.62rem}.kpi-value{font-size:1rem;font-weight:700;font-family:var(--font-mono);color:var(--text);align-items:center;gap:.35rem;display:flex}.kpi-sub{color:var(--text-muted);font-size:.66rem;font-family:var(--font-mono)}.po-due-dates{grid-template-columns:auto auto;align-items:baseline;gap:.15rem .3rem;min-width:0;margin-top:.1rem;display:grid}.po-due-date-label{font-size:.68rem;font-family:var(--font-mono);color:var(--text-muted)}.po-due-date-qty{font-size:.68rem;font-family:var(--font-mono);color:var(--accent2);text-align:right}.po-due-date-toggle{font-size:.64rem;font-family:var(--font-mono);color:var(--text-muted);cursor:pointer;background:0 0;border:none;grid-column:1/-1;justify-content:space-between;gap:.3rem;padding:.05rem 0;text-decoration:underline;display:flex}.po-due-date-toggle-collapse{justify-content:center;text-decoration:none}.detail-panel-body section{margin-bottom:1.3rem}.detail-charts-grid{grid-template-columns:repeat(2,1fr);gap:.8rem;margin-bottom:1.3rem;display:grid}.detail-charts-grid .detail-chart-card{margin-bottom:0}.detail-chart-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);min-width:0;padding:.7rem .8rem}.detail-panel-body h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.5rem;font-size:.7rem;font-weight:700}.detail-fields dl{grid-template-columns:auto 1fr;gap:.35rem .75rem;font-size:.8rem;display:grid}.detail-fields dt{color:var(--text-muted2)}.detail-fields dd{font-weight:500;font-family:var(--font-mono);margin:0}.tone-ok{color:var(--success)}.tone-warn{color:var(--warning)}.tone-danger{color:var(--danger)}.next-cell{margin:-.35rem -.55rem;padding:.35rem .55rem;display:block}.next-cell.tone-danger{background:color-mix(in srgb, var(--danger) 10%, transparent)}.tone-info{color:var(--accent2)}.whatif-pr-row{align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.whatif-pr-row label{color:var(--text-muted);white-space:nowrap;font-size:.72rem}.whatif-pr-row input{-moz-appearance:textfield;flex:1;min-width:0}.whatif-pr-row input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.whatif-pr-row input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.whatif-pr-hint{color:var(--text-muted);margin-bottom:.6rem;font-size:.68rem;line-height:1.4}.next-bar-whatif{font-family:var(--font-mono);white-space:nowrap;font-size:.72rem;font-weight:700}.next-bar-list{flex-direction:column;gap:.3rem;display:flex}.next-bar-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;justify-content:space-between;padding:0 .1rem;font-size:.65rem;display:flex}.next-bar-row{grid-template-columns:52px 1fr 56px auto;align-items:center;gap:.4rem;display:grid}.next-bar-label{color:var(--text-muted2);font-size:.72rem;font-family:var(--font-mono);white-space:nowrap}.next-bar-track{background:var(--card);border:1px solid var(--border);border-radius:4px;height:8px;overflow:hidden}.next-bar-fill{border-radius:4px;height:100%}.next-bar-fill.tone-ok{background:var(--success)}.next-bar-fill.tone-warn{background:var(--warning)}.next-bar-fill.tone-danger{background:var(--danger)}.next-bar-value{font-family:var(--font-mono);text-align:right;font-size:.76rem;font-weight:700}.next-bar-footer{color:var(--text-muted);font-size:.68rem;font-family:var(--font-mono);margin-top:.5rem}.plan-card{background:linear-gradient(135deg, color-mix(in srgb, var(--accent2) 5%, transparent), color-mix(in srgb, var(--accent) 3%, transparent));border:1px solid color-mix(in srgb, var(--accent2) 25%, transparent);border-radius:var(--radius-md);padding:.9rem}.plan-card-title{text-transform:none;letter-spacing:normal;color:var(--text);margin:0 0 .6rem;font-size:.85rem}.plan-banner{border-radius:var(--radius-md);border:1px solid;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding:.6rem .85rem;display:flex}.plan-banner-due{text-align:right}.plan-banner-label{color:var(--text-muted);margin-bottom:2px;font-size:.68rem}.plan-banner-value{font-size:.85rem;font-weight:700}.plan-banner.tone-danger{background:color-mix(in srgb, var(--danger) 9%, transparent);border-color:color-mix(in srgb, var(--danger) 27%, transparent)}.plan-banner.tone-warn{background:color-mix(in srgb, var(--warning) 9%, transparent);border-color:color-mix(in srgb, var(--warning) 27%, transparent)}.plan-banner.tone-info{background:color-mix(in srgb, var(--accent2) 9%, transparent);border-color:color-mix(in srgb, var(--accent2) 27%, transparent)}.plan-banner.tone-ok{background:color-mix(in srgb, var(--success) 9%, transparent);border-color:color-mix(in srgb, var(--success) 27%, transparent)}.plan-kpis{grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:.75rem;display:grid}.plan-timeline-label{color:var(--text-muted);margin-bottom:.3rem;font-size:.625rem}.plan-timeline{border-radius:var(--radius-sm);background:var(--card2);margin-bottom:.5rem;display:flex;overflow:hidden}.timeline-tab{text-align:center;border-right:1px solid var(--border);color:var(--text-muted2);flex:1;padding:.5rem .2rem;font-size:.7rem}.timeline-tab:last-child{border-right:none}.timeline-tab.above{background:color-mix(in srgb, var(--success) 6%, transparent)}.timeline-tab.below{background:color-mix(in srgb, var(--danger) 10%, transparent)}.timeline-tab.trigger{background:color-mix(in srgb, var(--danger) 25%, transparent);color:var(--danger);font-weight:700}.plan-summary{color:var(--text-muted);margin-bottom:.75rem;font-size:.76rem}.plan-ok{color:var(--success);font-size:.85rem}.plan-reasons h4,.suggestion-list h4{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted2);margin-bottom:.4rem;font-size:.68rem}.reason-line{color:var(--text-muted2);border-left:2px solid;margin-bottom:3px;padding:3px 0 3px 10px;font-size:.78rem}.reason-line.tone-danger{border-left-color:color-mix(in srgb, var(--danger) 40%, transparent)}.reason-line.tone-warn{border-left-color:color-mix(in srgb, var(--warning) 40%, transparent)}.reason-line.tone-info{border-left-color:color-mix(in srgb, var(--accent2) 40%, transparent)}.reason-line.tone-ok{border-left-color:color-mix(in srgb, var(--success) 40%, transparent)}.suggestion-list{margin-top:.9rem}.suggestion-item{border-left:2px solid var(--border-strong);background:var(--card2);color:var(--text-muted2);border-radius:0 4px 4px 0;align-items:flex-start;gap:.5rem;margin-bottom:.35rem;padding:.4rem .6rem;font-size:.76rem;display:flex}.suggestion-icon{flex-shrink:0}.deep-analysis-card{border:1px solid var(--border);background:var(--card);border-radius:var(--radius-md);padding:.9rem}.deep-analysis-card>h3{text-transform:none;letter-spacing:normal;color:var(--text);margin-bottom:.75rem;font-size:.85rem}.narrative-section{margin-bottom:.85rem}.narrative-section h4{color:var(--text-muted2);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.3rem;font-size:.625rem;font-weight:700}.narrative-section p{color:var(--text);margin:0 0 .25rem;font-size:.78rem;line-height:1.6}.narrative-subheading{color:var(--accent2);margin:.6rem 0 .2rem;font-size:.625rem;font-weight:700}.narrative-subheading:first-child{margin-top:0}.narrative-bullets{color:var(--text);font-size:.78rem;line-height:1.6}.narrative-bullet{padding-left:1rem;position:relative}.narrative-bullet:before{content:"•";position:absolute;left:.2rem}.field-grid{grid-template-columns:repeat(2,1fr);gap:.5rem;display:grid}.field-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;gap:.15rem;padding:.45rem .6rem;display:flex;overflow:hidden}.field-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.62rem}.field-value{font-family:var(--font-mono);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;font-weight:600;overflow:hidden}.import-error,.import-error-list li{color:var(--danger)}.import-success{color:var(--success);background:color-mix(in srgb, var(--success) 10%, transparent);border:1px solid color-mix(in srgb, var(--success) 30%, transparent);border-radius:var(--radius-sm);padding:.5rem .7rem;display:inline-block}.import-warning-list li{color:var(--warning)}table:not(.items-table){border-collapse:collapse;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;margin-top:.75rem;overflow:hidden}th,td{border-bottom:1px solid var(--border);text-align:left;padding:.55rem .8rem;font-size:.8rem}th{background:var(--surf);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.66rem;font-weight:700}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:color-mix(in srgb, var(--text) 4%, transparent)}.history-list{color:var(--text-muted2);flex-direction:column;gap:.5rem;margin:0;padding:0;font-size:.76rem;list-style:none;display:flex}.history-list li{border-left:2px solid var(--border-strong);background:var(--card2);border-radius:0 4px 4px 0;padding:.4rem .6rem}.history-list strong{color:var(--text)}h2{margin:0 0 .35rem;font-size:1.05rem}h2+p{color:var(--text-muted2);margin:0 0 1.1rem;font-size:.83rem}.app-shell-layout{flex-direction:row}.side-nav{background:var(--surf);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:.6rem;width:216px;padding:.85rem .6rem .7rem;transition:width .2s;display:flex;overflow:hidden}.nav-collapsed .side-nav{width:60px}.nav-collapsed .side-label{display:none}.side-brand{border-bottom:1px solid var(--border);align-items:center;gap:.6rem;padding:.15rem .35rem .6rem;display:flex}.side-logo{background:var(--accent);width:30px;height:30px;color:var(--on-accent);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.side-brand-text{white-space:nowrap;flex-direction:column;font-size:.86rem;font-weight:700;line-height:1.15;display:flex}.side-brand-text small{color:var(--text-muted2);font-size:.68rem;font-weight:500}.side-links{flex-direction:column;flex:1;gap:2px;min-height:0;display:flex;overflow-y:auto}.side-section{letter-spacing:.05em;color:var(--text-muted);white-space:nowrap;padding:.7rem .55rem .25rem;font-size:.64rem;font-weight:600}.side-link{border-radius:var(--radius-md);color:var(--text-muted2);white-space:nowrap;align-items:center;gap:.65rem;padding:.5rem .6rem;font-size:.82rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.nav-collapsed .side-link{justify-content:center;padding:.55rem 0}.side-link:hover{background:color-mix(in srgb, var(--text) 6%, transparent);color:var(--text)}.side-link.active{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent);font-weight:600}.side-bottom{border-top:1px solid var(--border);flex-direction:column;gap:.45rem;padding-top:.6rem;display:flex}.side-theme{color:var(--text-muted2);align-items:center;gap:.5rem;padding:0 .35rem;display:flex;position:relative}.side-theme select{border-radius:var(--radius-sm);background:var(--card);cursor:pointer;flex:1;min-width:0;padding:.3rem .5rem;font-size:.76rem}.nav-collapsed .side-theme{justify-content:center;height:30px}.nav-collapsed .side-theme select{opacity:0;position:absolute;inset:0}.side-user{align-items:center;gap:.5rem;padding:0 .2rem;display:flex}.nav-collapsed .side-user{flex-direction:column}.side-avatar{background:color-mix(in srgb, var(--accent2) 18%, transparent);width:30px;height:30px;color:var(--accent2);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.7rem;font-weight:700;display:flex}.side-user-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.78rem;font-weight:600;overflow:hidden}button[type=button].icon-btn,button[type=button].icon-only{flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;padding:0;display:inline-flex}button[type=button].icon-btn{color:var(--text-muted2);background:0 0;border-color:#0000}button[type=button].icon-btn:hover:not(:disabled){background:color-mix(in srgb, var(--text) 6%, transparent);border-color:#0000}.side-collapse{align-self:flex-end}.nav-collapsed .side-collapse{align-self:center}.app-content{min-width:0;padding:1rem 1.25rem}.tabs-bar{border-bottom:none;align-items:center;gap:1rem;margin-bottom:.85rem}.page-title{white-space:nowrap;margin:0;font-size:1.15rem;font-weight:700}.seg{border-radius:var(--radius-md);background:var(--card);border:1px solid var(--border);gap:2px;padding:3px;display:inline-flex}button[type=button].seg-btn{color:var(--text-muted2);border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;gap:.4rem;padding:.35rem .8rem;font-size:.8rem;display:inline-flex}button[type=button].seg-btn:hover:not(:disabled){color:var(--text)}button[type=button].seg-btn.on{background:var(--surf);color:var(--accent);box-shadow:0 1px 2px #0000002e}button[type=button].print-btn{align-items:center;gap:.4rem;display:inline-flex}.kpi-bar{gap:.7rem}.kc{--kc:var(--accent);text-align:left;font:inherit;color:inherit;border-radius:var(--radius-md);flex-direction:column;gap:.1rem;padding:.7rem .85rem;display:flex;position:relative}button.kc{cursor:pointer;background:var(--card);border:1px solid var(--border);transition:border-color .15s,transform .15s,box-shadow .15s}button.kc:hover{border-color:color-mix(in srgb, var(--kc) 60%, transparent);transform:translateY(-1px)}button.kc.on{border-color:var(--kc);box-shadow:inset 0 0 0 1px var(--kc);background:color-mix(in srgb, var(--kc) 8%, var(--card))}.kc-danger{--kc:var(--danger)}.kc-warning{--kc:var(--warning)}.kc-accent2{--kc:var(--accent2)}.klbl{text-transform:none;letter-spacing:0;color:var(--text-muted2);align-items:center;gap:.4rem;font-size:.7rem;font-weight:500;display:flex}.kicon{width:22px;height:22px;color:var(--kc);background:color-mix(in srgb, var(--kc) 14%, transparent);border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.kval{color:var(--kc);font-size:1.4rem;line-height:1.25}.kc-accent .kval{color:var(--text)}.ksub{font-size:.68rem}.items-toolbar{flex-wrap:wrap;row-gap:.5rem}.items-count{font-family:var(--font-sans);color:var(--text-muted2);font-size:.8rem}.items-count b{color:var(--text);font-family:var(--font-mono)}.data-fresh{color:var(--success);background:color-mix(in srgb, var(--success) 12%, transparent);white-space:nowrap;border-radius:999px;align-items:center;gap:.3rem;padding:.15rem .55rem;font-size:.7rem;font-weight:600;display:inline-flex}.filter-chips{flex-wrap:wrap;gap:.35rem;display:flex}button[type=button].fchip{color:var(--accent2);background:color-mix(in srgb, var(--accent2) 12%, transparent);border-color:color-mix(in srgb, var(--accent2) 30%, transparent);border-radius:999px;align-items:center;gap:.3rem;padding:.15rem .55rem;font-size:.72rem;display:inline-flex}button[type=button].fchip:hover:not(:disabled){color:var(--danger);border-color:color-mix(in srgb, var(--danger) 40%, transparent)}.items-toolbar-actions{align-items:center}.items-toolbar-actions button[type=button]{white-space:nowrap;align-items:center;gap:.4rem;display:inline-flex}.items-toolbar-actions button.on{background:color-mix(in srgb, var(--danger) 10%, var(--card))}.items-toolbar-actions button.on-neutral{border-color:var(--accent2);color:var(--accent2)}.more-wrap{position:relative}.more-menu{z-index:20;background:var(--surf);border:1px solid var(--border-strong);border-radius:var(--radius-md);min-width:180px;padding:4px;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 10px 28px #00000040}.more-menu button[type=button]{background:0 0;border:none;justify-content:flex-start;width:100%}.more-menu button[type=button].danger{color:var(--danger)}.more-menu button[type=button]:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 10%, transparent);color:var(--danger)}.items-table-wrap{border-radius:var(--radius-lg)}.items-table thead tr.lrow th{letter-spacing:.03em;color:var(--text-muted2);font-size:.66rem;font-weight:600}.sort-ind{color:var(--accent);margin-left:3px;font-size:.6rem}.items-table tbody tr:hover td{background:color-mix(in srgb, var(--accent2) 6%, transparent)}.items-table tr.row-selected td{background:color-mix(in srgb, var(--accent) 12%, transparent)!important}.items-table tr.row-selected td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.items-table .badge{box-sizing:border-box;width:fit-content;height:18px;font-family:var(--font-sans);border-radius:999px;padding:0 8px;font-size:.7rem;font-weight:600;line-height:1;display:flex}.shortage-cell{box-sizing:border-box;width:fit-content;height:18px;font-family:var(--font-sans);border-radius:999px;align-items:center;padding:0 8px;font-size:.72rem;font-weight:600;line-height:1;display:flex}.shortage-cell.now{color:var(--danger);background:color-mix(in srgb, var(--danger) 14%, transparent)}.shortage-cell.soon{color:var(--warning);background:color-mix(in srgb, var(--warning) 14%, transparent)}.shortage-cell.later{color:var(--accent2);background:color-mix(in srgb, var(--accent2) 12%, transparent)}.shortage-none{color:var(--text-muted)}.detail-panel{border-radius:var(--radius-lg)}.detail-panel-scroll{padding:0 1.1rem 1.1rem}.detail-panel-header{z-index:3;background:var(--surf);align-items:flex-start;gap:.6rem;margin:0 -1.1rem;padding:.9rem 1.1rem .6rem;position:sticky;top:0}.dph-main{flex:1;min-width:0}.dph-row{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.detail-panel-header h2{font-size:1.1rem}.dph-pill{color:var(--text-muted2);background:color-mix(in srgb, var(--text) 7%, transparent);border-radius:999px;padding:1px 8px;font-size:.68rem;font-weight:600}.dph-desc{text-overflow:ellipsis;white-space:nowrap;margin-top:.25rem;font-size:.92rem;font-weight:600;overflow:hidden}.dp-jump{background:var(--surf);border-bottom:1px solid var(--border);scrollbar-width:none;gap:.25rem;margin:0 -1.1rem .9rem;padding:.35rem 1.1rem .5rem;display:flex;overflow-x:auto}.dp-jump::-webkit-scrollbar{display:none}.dp-jump button[type=button]{border-color:var(--border);color:var(--text-muted2);background:0 0;border-radius:999px;flex-shrink:0;padding:.2rem .6rem;font-size:.72rem;font-weight:500}.dp-anchor{scroll-margin-top:90px;display:block}.kpi{border-radius:var(--radius-md);padding:.6rem .7rem}.kpi-label{color:var(--text-muted2);align-items:center;gap:.3rem;font-size:.68rem;display:flex}.kpi-value{font-size:1.12rem}.plan-card-title{align-items:center;gap:.4rem;display:flex}.kc{overflow:hidden;container-type:inline-size}.kart-slot{pointer-events:none;width:74px;height:66px;position:absolute;bottom:2px;right:6px}.kart{width:100%;height:100%;overflow:visible}@container (width<=200px){.kart-slot{display:none}}.kart *{transform-box:fill-box}.kart-hop{transform-origin:50% 100%;animation:1.8s ease-in-out infinite kart-hop}.kart-slow{animation-duration:2s}.kart-blink{transform-origin:50%;animation:3.5s infinite kart-blink}.kart-siren{animation:.8s ease-in-out infinite kart-siren}.kart-shake{animation:.4s linear infinite kart-shake}.kart-sweat{animation:1.2s ease-in infinite kart-sweat}.kart-flip{transform-origin:50%;animation:3s ease-in-out infinite kart-flip}.kart-look{animation:2.2s ease-in-out infinite kart-look}.kart-tick{stroke-dasharray:20;animation:2.4s ease-in-out infinite kart-tick}.kart-tick2{animation-delay:.8s}.kart-pen{transform-origin:100% 0;animation:1.2s ease-in-out infinite kart-pen}.kart-wiggle{transform-origin:50% 100%;animation:2s ease-in-out infinite kart-wiggle}.kart-coin{animation:2s ease-in infinite kart-coin}.kart-coin2{animation-delay:1s}@keyframes kart-hop{0%,to{transform:translateY(0)}40%{transform:translateY(-9px)}55%{transform:translateY(-9px)rotate(-4deg)}}@keyframes kart-blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes kart-siren{0%,to{opacity:.25}50%{opacity:1}}@keyframes kart-shake{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}@keyframes kart-sweat{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(8px)}}@keyframes kart-flip{0%,40%{transform:rotate(0)}60%,to{transform:rotate(180deg)}}@keyframes kart-look{0%,to{transform:translate(0)}50%{transform:translate(4px)}}@keyframes kart-tick{0%,30%{stroke-dashoffset:20px}60%,to{stroke-dashoffset:0}}@keyframes kart-pen{0%,to{transform:translate(0)rotate(0)}50%{transform:translate(-6px,4px)rotate(-8deg)}}@keyframes kart-wiggle{0%,to{transform:rotate(0)}50%{transform:rotate(-3deg)}}@keyframes kart-coin{0%{opacity:0;transform:translateY(-26px)}15%{opacity:1}55%{opacity:1;transform:translateY(0)}70%,to{opacity:0;transform:translateY(4px)}}@media (prefers-reduced-motion:reduce){.kart *{animation:none!important}}.kart-drive{animation:3s ease-in-out infinite kart-drive}.kart-lift{animation:3s ease-in-out infinite kart-lift}.kart-bob{animation:1.6s ease-in-out infinite kart-bob}@keyframes kart-drive{0%,to{transform:translate(0)}50%{transform:translate(-4px)}}@keyframes kart-lift{0%,20%,to{transform:translateY(0)}50%,70%{transform:translateY(-14px)}}@keyframes kart-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.sum-kc{position:relative;overflow:hidden;container-type:inline-size}.sum-kc .kart-slot{bottom:4px}@media print{.kart-slot{display:none!important}}.kart-zzz{animation:2.4s ease-out infinite kart-zzz}.kart-zzz2{animation-delay:1.2s}.kart-breathe{transform-origin:50% 100%;animation:2.4s ease-in-out infinite kart-breathe}.kart-dust{animation:1.8s ease-out infinite kart-dust}.kart-dust2{animation-delay:.9s}.kart-swing{transform-origin:50% 0;animation:2.2s ease-in-out infinite kart-swing}.kart-fly{animation:1.4s ease-in-out infinite kart-fly}@keyframes kart-zzz{0%{opacity:0;transform:translate(0)}20%{opacity:1}to{opacity:0;transform:translate(8px,-16px)}}@keyframes kart-breathe{0%,to{transform:scaleY(1)}50%{transform:scaleY(.96)}}@keyframes kart-dust{0%{opacity:.8;transform:translate(0)}to{opacity:0;transform:translate(-6px,-10px)}}@keyframes kart-swing{0%,to{transform:rotate(-10deg)}50%{transform:rotate(10deg)}}@keyframes kart-fly{0%,to{transform:translate(0)}50%{transform:translate(-5px,-3px)}}.kc .kval,.kc .ksub{display:block}.side-links{flex:0 auto}.side-bottom{margin-top:auto}.side-tools{justify-content:flex-end;gap:2px;display:flex}.nav-collapsed .side-tools{flex-direction:column;align-items:center}.side-tools .side-collapse{align-self:auto}button[type=button].icon-btn.side-garden-toggle.on{color:var(--success)}.side-garden{pointer-events:none;flex:1;min-height:0;position:relative;container-type:size}.sg-scene{width:100%;height:auto;max-height:100%;position:absolute;bottom:0;left:0;right:0;overflow:visible}@container (height<=70px){.sg-scene{display:none}}.sg-scene *{transform-box:fill-box}.sg-cloud{fill:color-mix(in srgb, var(--accent2) 14%, transparent)}.sg-zz{fill:var(--accent2);opacity:0}.sg-closed{display:none}.sg-flower{transform-origin:50% 100%;animation:3s ease-in-out infinite sg-sway}.sg-flower-b{animation-delay:-1.5s}.sg-butterfly{animation:10s ease-in-out infinite sg-fly}.sg-wing{transform-origin:50%;animation:.25s ease-in-out infinite alternate sg-flap}.sg-cat{transition:transform .45s cubic-bezier(.2,.8,.2,1.2)}.sg-cat.sg-pop{transform:translateY(-16px)}.sg-arm{transform-origin:20% 90%;opacity:0;transition:opacity .2s}.sg-cat.sg-pop .sg-arm{opacity:1;animation:.5s ease-in-out 3 sg-wave}.sg-ear{transform-origin:50% 100%;animation:6s infinite sg-twitch}.sg-rear{transform-origin:50% 100%;animation:4s infinite sg-twitch}.sg-rabbit{animation:7s ease-in-out infinite sg-hop}.sg-rabbit.sg-pop{animation:.5s ease-out 3 sg-jump}.sg-sleep .sg-open{display:none}.sg-sleep .sg-closed{display:inline}.sg-sleep .sg-zz{animation:2.4s ease-out infinite sg-zz}.sg-sleep .sg-zz-b{animation-delay:1.2s}.sg-sleep .sg-rabbit{animation:none}.sg-sleep .sg-cat{transform:translateY(5px)}.sg-sleep .sg-butterfly,.sg-sleep .sg-flower,.sg-sleep .sg-wing,.sg-sleep .sg-ear,.sg-sleep .sg-rear{animation-play-state:paused}@keyframes sg-sway{0%,to{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}@keyframes sg-fly{0%{transform:translate(20px,22px)}25%{transform:translate(90px,8px)}50%{transform:translate(170px,26px)}75%{transform:translate(110px,40px)}to{transform:translate(20px,22px)}}@keyframes sg-flap{to{transform:scaleX(.3)}}@keyframes sg-wave{0%,to{transform:rotate(0)}50%{transform:rotate(-35deg)}}@keyframes sg-twitch{0%,90%,to{transform:rotate(0)}93%{transform:rotate(-12deg)}96%{transform:rotate(6deg)}}@keyframes sg-hop{0%,10%{transform:translate(0)}14%{transform:translate(8px,-12px)}18%{transform:translate(16px)}22%{transform:translate(24px,-12px)}26%,55%{transform:translate(32px)}59%{transform:translate(24px,-12px)}63%{transform:translate(16px)}67%{transform:translate(8px,-12px)}71%,to{transform:translate(0)}}@keyframes sg-jump{0%,to{transform:translateY(0)}50%{transform:translateY(-16px)}}@keyframes sg-zz{0%{opacity:0;transform:translate(0)}20%{opacity:1}to{opacity:0;transform:translate(8px,-16px)}}@media (prefers-reduced-motion:reduce){.sg-scene *{transition:none!important;animation:none!important}}@media print{.side-garden{display:none!important}}.side-garden .sg-scene{height:100%;max-height:none}.sg-star{animation:2.6s ease-in-out infinite sg-tw}.sg-star-b{animation-delay:-1.3s}.sg-glow{fill:#fac775;opacity:.28}.sg-flame{transform-origin:50% 100%;animation:.6s ease-in-out infinite sg-flick}.sg-firefly{fill:#fac775;animation:4s ease-in-out infinite sg-firefly}.sg-lantern{animation:14s linear infinite sg-rise}.sg-snow{animation:9s linear infinite sg-snow}.sg-firework{transform-origin:50%;opacity:0;animation:4.8s ease-out infinite sg-burst}.sg-splash{animation:3.5s ease-in infinite sg-splash}.sg-shooting{opacity:0;animation:12s ease-out infinite sg-shoot}.sg-sleep .sg-flame{animation:none;transform:scale(.55)}.sg-sleep .sg-glow{opacity:.12}.sg-sleep .sg-firefly,.sg-sleep .sg-lantern,.sg-sleep .sg-snow,.sg-sleep .sg-firework,.sg-sleep .sg-splash,.sg-sleep .sg-star{animation-play-state:paused}@keyframes sg-tw{0%,to{opacity:.25}50%{opacity:1}}@keyframes sg-flick{0%,to{transform:scale(1)}30%{transform:scale(.92,1.15)}60%{transform:scale(1.05,.9)}}@keyframes sg-firefly{0%{opacity:.2;transform:translate(0)}50%{opacity:1;transform:translate(16px,-22px)}to{opacity:.2;transform:translate(-8px,-44px)}}@keyframes sg-rise{0%{opacity:0;transform:translate(0)}8%{opacity:1}50%{transform:translate(8px,-150px)}to{opacity:0;transform:translate(-6px,-300px)}}@keyframes sg-snow{0%{opacity:0;transform:translate(0)}10%{opacity:1}to{opacity:.6;transform:translate(10px,340px)}}@keyframes sg-burst{0%{opacity:0;transform:scale(.2)}8%{opacity:1}30%{opacity:0;transform:scale(1.1)}to{opacity:0}}@keyframes sg-splash{0%{opacity:0;transform:translate(0)}15%{opacity:1}to{opacity:0;transform:translate(-14px,320px)}}@keyframes sg-shoot{0%,85%{opacity:0;transform:translate(0)}88%{opacity:1}96%{opacity:0;transform:translate(-90px,45px)}to{opacity:0}}.side-garden{overflow:hidden}.sg-cny-lantern{transform-origin:50% 0;animation:3s ease-in-out infinite sg-lantern-sway}.sg-coin{animation:9s linear infinite sg-coin-fall}.sg-sleep .sg-cny-lantern,.sg-sleep .sg-coin{animation-play-state:paused}@keyframes sg-lantern-sway{0%,to{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}@keyframes sg-coin-fall{0%{opacity:0;transform:translate(0)rotate(0)}10%{opacity:1}to{opacity:.4;transform:translate(-8px,330px)rotate(200deg)}}.sg-heart{animation:12s linear infinite sg-rise}.sg-jasmine{animation:10s linear infinite sg-coin-fall}.sg-bat{animation:10s linear infinite sg-bat-fly}.sg-bat-wing{transform-origin:50%;animation:.3s ease-in-out infinite alternate sg-flap}.sg-pumpkin-face{fill:#faeeda;animation:1.6s ease-in-out infinite sg-tw}.sg-sleigh{animation:14s linear infinite sg-sleigh}.sg-stream{stroke-dasharray:6 4;animation:.5s linear infinite sg-stream}.sg-drop{animation:.9s ease-out infinite sg-drop}.sg-drop-b{animation-delay:-.45s}.sg-sleep .sg-heart,.sg-sleep .sg-jasmine,.sg-sleep .sg-bat,.sg-sleep .sg-sleigh,.sg-sleep .sg-stream,.sg-sleep .sg-drop,.sg-sleep .sg-pumpkin-face{animation-play-state:paused}.sg-sleep .sg-stream,.sg-sleep .sg-drop{opacity:0}@keyframes sg-bat-fly{0%{transform:translate(-20px)}50%{transform:translate(110px,-24px)}to{transform:translate(230px,6px)}}@keyframes sg-sleigh{0%{transform:translate(230px,20px)}60%{transform:translate(-80px,-30px)}to{transform:translate(-80px,-30px)}}@keyframes sg-stream{to{stroke-dashoffset:-10px}}@keyframes sg-drop{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-5px,8px)}}
