:root{--bg: #f2f4f7;--card: #ffffff;--text: #1a202c;--dim: #64748b;--line: #e2e8f0;--accent: #0f766e;--accent-weak: #ccfbf1;--error: #b91c1c;--warn: #b45309;--ok: #15803d;--accent-strong: #0c5f59;--accent-tint: #f0fdfa;--on-accent: #ffffff;--topbar: #0f2f2c;--topbar-text: #e6fffa;--warn-on-dark: #fbbf24;--row-diff: #fef9c3;--row-changed: #e0f2fe;--notice-bg: #fef3c7;--notice-text: #7c2d12;--required-bg: #fffbeb;--tap: 90ms;--fade: .12s;--fs-xs: 12px;--fs-sm: 13px;--fs-md: 15px;--fs-lg: 17px;--fs-xl: 20px;--fs-2xl: 24px;--fs-glyph: 16px;--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--elev-1: 0 1px 2px rgba(15, 23, 42, .04), 0 6px 16px rgba(15, 23, 42, .06);--elev-2: 0 2px 6px rgba(15, 23, 42, .08), 0 14px 30px rgba(15, 23, 42, .1)}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:var(--fs-md);line-height:1.45}.topbar{background:var(--topbar);color:var(--topbar-text);position:sticky;top:0;z-index:10}.topbar-inner{max-width:1280px;margin:0 auto;padding:var(--sp-2) var(--sp-5);display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.brand{font-weight:700}.brand-sub{font-weight:400;opacity:.7;margin-left:6px}.topbar nav{display:flex;gap:2px;flex-wrap:wrap}.topbar nav a{color:var(--topbar-text);text-decoration:none;padding:6px 10px;font-size:var(--fs-sm);white-space:nowrap;border-radius:var(--r-md);opacity:.85}.topbar nav a:hover{background:#ffffff1f}.topbar nav a.active{background:#ffffff2e;opacity:1}.price-badge{margin-left:auto;font-size:var(--fs-sm);opacity:.85}main{max-width:1280px;margin:20px auto;padding:0 20px 60px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px 20px;margin-bottom:16px}.card h2{margin:0 0 10px;font-size:var(--fs-lg)}.card h3{font-size:var(--fs-md);margin:14px 0 6px}.narrow{max-width:760px}.config-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:16px;align-items:start}@media(max-width:980px){.config-layout{grid-template-columns:1fr}}.badge{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--dim);background:var(--bg);border-radius:var(--r-sm);padding:2px 8px;margin-left:8px;vertical-align:2px}.badge-req{color:var(--accent);background:var(--accent-weak)}.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.chip{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:6px 14px;cursor:pointer;font-size:var(--fs-md)}.chip:hover{border-color:var(--accent)}.chip-on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.chip-count{opacity:.6;font-size:var(--fs-xs);margin-left:4px}.option-list{display:flex;flex-direction:column;gap:6px}.option{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:var(--r-lg);padding:8px 12px;cursor:pointer}.option:hover{border-color:var(--accent)}.option-on{border-color:var(--accent);background:var(--accent-tint)}.option input[type=radio],.option input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px;flex:none}.option-name{flex:1;min-width:0}.option-sub{display:block;color:var(--dim);font-size:var(--fs-sm)}.option-price{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.qty-box{display:flex;align-items:center;gap:4px}.qty-box button{width:32px;height:32px;border:1px solid var(--line);background:var(--card);border-radius:var(--r-sm);cursor:pointer;font-size:var(--fs-glyph);line-height:1}.qty-box input{width:56px;height:32px;text-align:center;border:1px solid var(--line);border-radius:var(--r-sm);padding:4px;font-size:var(--fs-md)}.hint{color:var(--dim);font-size:var(--fs-sm);margin:4px 0 10px}.estimate{position:sticky;top:calc(var(--topbar-h, 64px) + var(--sp-2));max-height:calc(100vh - var(--topbar-h, 64px) - var(--sp-4));overflow-y:auto;overscroll-behavior:contain;padding-right:6px}@media(max-width:980px){.estimate{position:static;max-height:none;overflow:visible;padding-right:0}}.est-line{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px dashed var(--line);font-size:var(--fs-md)}.est-chan{font-weight:600}.est-sum{white-space:nowrap;font-variant-numeric:tabular-nums}.est-total{display:flex;justify-content:space-between;padding:12px 0 4px;font-size:var(--fs-lg)}.qty-mini{display:inline-flex;align-items:center;gap:6px;margin-right:8px;color:var(--dim);font-variant-numeric:tabular-nums}.qty-mini button{width:28px;height:28px;border:1px solid var(--line);background:var(--card);border-radius:var(--r-sm);cursor:pointer;font-size:var(--fs-md);line-height:1;padding:0}.qty-mini button:hover:not(:disabled){border-color:var(--accent)}.qty-mini button:disabled{opacity:.35;cursor:default}.x-btn{border:none;background:none;color:var(--dim);cursor:pointer;font-size:var(--fs-glyph);width:28px;height:28px;margin-left:4px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-sm)}.x-btn:hover{color:var(--error)}.issues{list-style:none;padding:0;margin:10px 0;display:flex;flex-direction:column;gap:6px;font-size:var(--fs-sm)}.issue-error{color:var(--error)}.issue-warn{color:var(--warn)}.issue-info{color:var(--dim)}.ok-text{color:var(--ok);font-weight:600}.warn-text{color:var(--warn-on-dark)}.save-box{margin-top:12px;display:flex;flex-direction:column;gap:8px}.save-box input{border:1px solid var(--line);border-radius:var(--r-md);padding:8px 10px;font-size:var(--fs-md)}.kp-fields{display:flex;flex-direction:column;gap:6px;border:1px dashed var(--line);border-radius:var(--r-lg);padding:10px}.kp-fields-title{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--dim)}.kp-fields input,.kp-fields textarea{border:1px solid var(--line);border-radius:var(--r-md);padding:7px 9px;font-size:var(--fs-sm);font-family:inherit;resize:vertical}.kp-area-label{font-size:var(--fs-xs);color:var(--dim);margin-top:2px}button.primary,.btn.primary{background:var(--accent);color:var(--on-accent);border:none;border-radius:var(--r-md);padding:9px 16px;font-size:var(--fs-md);font-weight:600;cursor:pointer}button.primary:disabled{opacity:.45;cursor:default}.btn{display:inline-block;border:1px solid var(--line);border-radius:var(--r-md);padding:8px 14px;text-decoration:none;color:var(--text);background:var(--card);font-size:var(--fs-md);cursor:pointer}.btn:hover{border-color:var(--accent)}.file-btn{text-align:center}.link-btn{border:none;background:none;color:var(--accent);cursor:pointer;padding:4px 0;font-size:var(--fs-sm);text-decoration:underline}.saved-link{font-size:var(--fs-sm);word-break:break-all}.row-gap{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px}.custom-form{display:grid;grid-template-columns:minmax(0,1fr) 110px 70px auto;gap:8px}@media(max-width:720px){.custom-form{grid-template-columns:1fr}}.custom-form input{border:1px solid var(--line);border-radius:var(--r-md);padding:8px 10px;font-size:var(--fs-md);min-width:0}.est-manual .option-name,.est-manual>span:first-child{font-style:italic}.price-box{display:inline-flex;align-items:center;gap:2px}.price-inline{width:72px;border:1px solid var(--line);border-radius:var(--r-sm);padding:2px 4px;font-size:var(--fs-sm);text-align:right;font-variant-numeric:tabular-nums}.price-inline.price-changed{border-color:var(--warn);color:var(--warn);font-weight:600}.reset-btn{border:none;background:none;color:var(--warn);cursor:pointer;font-size:var(--fs-md);padding:0 2px}.discount-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0 2px;font-size:var(--fs-md)}.discount-row input{width:72px;border:1px solid var(--line);border-radius:var(--r-sm);padding:4px 6px;font-size:var(--fs-md);text-align:right}.est-sub{color:var(--dim)}.manual-badge{font-style:normal;font-size:var(--fs-xs);color:var(--warn);border:1px solid currentColor;border-radius:var(--r-sm);padding:0 4px;margin-left:6px;vertical-align:1px;white-space:nowrap}.catalog{max-width:1000px}.catalog-search{width:100%;border:1px solid var(--line);border-radius:var(--r-md);padding:9px 12px;font-size:var(--fs-md)}.section-add{margin-left:12px;font-weight:400}.catalog-rows{display:flex;flex-direction:column}.catalog-row{display:grid;grid-template-columns:64px minmax(0,1fr) 130px 90px 170px 34px 24px;gap:8px;align-items:center;padding:4px 0;border-bottom:1px dashed var(--line)}@media(max-width:860px){.catalog-row{grid-template-columns:64px minmax(0,1fr) 90px 24px}.catalog-compat,.catalog-slot,.row-save,.row-save-placeholder{display:none}}.catalog-code{font-size:var(--fs-xs);color:var(--dim);font-variant-numeric:tabular-nums}.catalog-row input,.catalog-row select{border:1px solid transparent;border-radius:var(--r-sm);padding:5px 6px;font-size:var(--fs-sm);background:transparent;min-width:0}.catalog-row input:hover,.catalog-row select:hover,.catalog-row input:focus,.catalog-row select:focus{border-color:var(--line);background:var(--card)}.catalog-price{text-align:right;font-variant-numeric:tabular-nums}.row-save{padding:4px 8px!important;font-size:var(--fs-sm)!important}.row-save-placeholder{display:inline-block}.catalog-add{margin-bottom:12px}.slot-editor{border:1px dashed var(--line);border-radius:var(--r-lg);padding:10px 12px;margin-bottom:12px}.slot-editor .custom-form{margin-bottom:6px}.danger-link{color:var(--error)}.danger-link:disabled{color:var(--dim);cursor:default;text-decoration:none;opacity:.6}.table{width:100%;border-collapse:collapse;margin:10px 0 14px}.table th,.table td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--line);font-size:var(--fs-md)}.table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.table .dim{color:var(--dim)}.row-diff{background:var(--row-diff)}.row-changed{background:var(--row-changed)}select{border:1px solid var(--line);border-radius:var(--r-md);padding:8px 10px;font-size:var(--fs-md);background:var(--card)}.login-page{max-width:420px;margin:12vh auto 0;padding:0 20px}.login-card{padding:22px 24px 26px}.login-brand{font-weight:700;color:var(--accent);margin-bottom:14px}.login-card code{display:inline-block;margin-top:4px;padding:4px 6px;background:var(--bg);border-radius:var(--r-sm);font-size:var(--fs-xs);word-break:break-all}.field{display:block;margin-bottom:12px}.field span{display:block;font-size:var(--fs-sm);color:var(--dim);margin-bottom:4px}.field input,.field select{width:100%;border:1px solid var(--line);border-radius:var(--r-md);padding:9px 11px;font-size:var(--fs-md);background:var(--card);color:var(--text)}.field input:focus,.field select:focus{outline:none;border-color:var(--accent)}.user-chip{display:flex;align-items:center;gap:10px;font-size:var(--fs-sm)}.user-chip a{color:var(--topbar-text);text-decoration:none;border-bottom:1px dotted rgba(230,255,250,.5)}.user-chip .link-btn{background:none;color:var(--topbar-text);cursor:pointer;font-size:var(--fs-sm);padding:2px 4px}.pwd-warning{background:var(--notice-bg);color:var(--notice-text);text-align:center;padding:7px 20px;font-size:var(--fs-md)}.pwd-box{border-color:var(--accent)}.pwd-value{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:var(--fs-2xl);letter-spacing:.06em;background:var(--accent-weak);border-radius:var(--r-md);padding:10px 14px;margin:8px 0 10px;-webkit-user-select:all;user-select:all}.user-off td{opacity:.55}.user-actions{text-align:right;white-space:nowrap}.user-actions .btn{padding:5px 10px;font-size:var(--fs-sm);margin-left:6px}.stats{max-width:1000px}.stats-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:12px}.stats-head h2{margin:0;font-size:var(--fs-xl)}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:16px}.tile{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:12px 14px}.tile-label{font-size:var(--fs-xs);color:var(--dim);text-transform:uppercase;letter-spacing:.04em}.tile-value{font-size:var(--fs-2xl);font-weight:700;margin:4px 0 2px;font-variant-numeric:tabular-nums}.tile-sub{font-size:var(--fs-xs);color:var(--dim)}.stats h3{margin:0 0 8px;font-size:var(--fs-lg)}.stats h4{margin:0 0 6px;font-size:var(--fs-md);color:var(--dim)}.stats-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.bars{display:flex;align-items:flex-end;gap:10px;padding:8px 0 0;overflow-x:auto}.bar-col{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:34px}.bar{width:26px;background:var(--accent-weak);border-radius:var(--r-sm) var(--r-sm) 0 0;display:flex;flex-direction:column;justify-content:flex-end;min-height:3px}.bar-issued{width:100%;background:var(--accent);border-radius:var(--r-sm) var(--r-sm) 0 0}.bar-count{font-size:var(--fs-xs);font-weight:600;font-variant-numeric:tabular-nums}.bar-label{font-size:var(--fs-xs);color:var(--dim);white-space:nowrap}.bar-list{list-style:none;margin:0;padding:0}.bar-list li{display:grid;grid-template-columns:minmax(0,1fr) 90px 28px;align-items:center;gap:8px;padding:3px 0;font-size:var(--fs-sm)}.bar-list-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-list-track{background:var(--bg);border-radius:var(--r-sm);height:10px}.bar-list-fill{display:block;height:10px;background:var(--accent);border-radius:var(--r-sm)}.bar-list-count{text-align:right;font-variant-numeric:tabular-nums;color:var(--dim)}.field-required{border-color:var(--warn)!important;background:var(--required-bg)}.customer-required{border:1px solid var(--warn);background:var(--required-bg);border-radius:var(--r-lg);padding:12px 14px;margin:12px 0}.customer-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto;gap:8px;align-items:center}.customer-row input{border:1px solid var(--line);border-radius:var(--r-md);padding:8px 10px;font-size:var(--fs-md)}@media(max-width:720px){.customer-row{grid-template-columns:1fr}}.warr-options{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px}.warr-option{display:flex;align-items:center;gap:7px;font-size:var(--fs-sm);cursor:pointer}.warr-option input{accent-color:var(--accent);width:15px;height:15px;flex:none}.slot-move{display:inline-flex;gap:4px;margin-left:10px;vertical-align:2px}.slot-move .btn{min-width:30px;height:28px;padding:0 9px;font-size:var(--fs-sm);line-height:1}.slot-move .btn:disabled{opacity:.35;cursor:default;border-color:var(--line)}:where(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}.topbar :where(a,button):focus-visible{outline-color:var(--topbar-text)}.option:has(:focus-visible),.warr-option:has(:focus-visible),.field:has(:focus-visible){outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-lg)}.option:has(:focus-visible) input:focus-visible,.warr-option:has(:focus-visible) input:focus-visible,.field:has(:focus-visible) :focus-visible{outline:none}button.primary,.btn,.chip,.option,.qty-box button,.qty-mini button,.x-btn,.link-btn,.topbar nav a{transition:background-color var(--fade) ease-out,border-color var(--fade) ease-out,color var(--fade) ease-out}button.primary:not(:disabled){transition:background-color var(--fade) ease-out,transform var(--tap) ease-out}button.primary:not(:disabled):hover{background:var(--accent-strong)}button.primary:not(:disabled):active{transform:translateY(1px)}.btn:active,.chip:not(.chip-on):active,.qty-box button:not(:disabled):active,.qty-mini button:not(:disabled):active,.x-btn:active{background:var(--accent-weak)}.chip-on:active{background:var(--accent-strong);border-color:var(--accent-strong)}.option:active{background:var(--accent-tint)}.topbar nav a:active{background:#ffffff3d}.link-btn:active{opacity:.55}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}input,select,textarea,button{color:var(--text)}body{line-height:1.5}h1,h2,h3{line-height:1.25;text-wrap:balance}.card h2,.stats h3{letter-spacing:-.01em}.stats-head h2{letter-spacing:-.015em}.tile-value,.pwd-value{letter-spacing:-.02em}.hint,.tile-sub,.bar-label{letter-spacing:.004em}.topbar{box-shadow:var(--elev-1)}.estimate>.card,.estimate.card{box-shadow:var(--elev-1)}.pwd-box{box-shadow:var(--elev-2)}
