:root{--font:"IBM Plex Sans", -apple-system, BlinkMacSystemFont, sans-serif;--bg:#eeedf6;--ink:#1a1a2e;--ink-2:#2d2b55;--muted:#75738c;--muted-2:#83819b;--line:#e6e4f0b3;--card-line:#f0eefacc;--accent:#6366f1;--accent-2:#a855f7;--grad:linear-gradient(135deg, #6366f1, #a855f7);--green:#047857;--green-bg:#10b98121;--amber:#b45309;--amber-bg:#f59e0b24;--red:#dc2626;--red-bg:#ef44441f;--blue:#2563eb;--blue-bg:#60a5fa29;--radius:12px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:13px;line-height:1.45}button{font-family:inherit}.app{min-height:100vh;display:flex;position:relative;overflow:hidden}.app:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle,#a855f71a,#0000 70%);border-radius:50%;width:500px;height:500px;position:absolute;top:-120px;right:200px}.sidebar{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border-right:1px solid var(--line);z-index:10;background:#ffffffb8;flex-direction:column;flex-shrink:0;align-items:center;gap:6px;width:68px;padding:20px 0 16px;display:flex}.sidebar-logo{background:var(--grad);color:#fff;letter-spacing:-.5px;border-radius:12px;justify-content:center;align-items:center;width:38px;height:38px;margin-bottom:20px;font-size:15px;font-weight:700;display:flex}.nav-icon{cursor:pointer;width:42px;height:42px;color:var(--muted);background:0 0;border:none;border-radius:12px;justify-content:center;align-items:center;font-size:18px;transition:all .15s;display:flex;position:relative}.nav-icon:hover{background:#6366f10f}.nav-icon.active{color:var(--accent);background:#6366f11a}.nav-icon.active:before{content:"";background:var(--grad);border-radius:0 3px 3px 0;width:3px;height:20px;position:absolute;top:50%;left:-13px;transform:translateY(-50%)}.main{z-index:1;flex-direction:column;flex:1;min-width:0;display:flex}.topbar{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff80;border-bottom:1px solid #e6e4f080;flex-shrink:0;justify-content:space-between;align-items:center;height:60px;padding:0 28px;display:flex}.breadcrumb{color:var(--muted);align-items:center;gap:7px;font-size:12px;display:flex}.breadcrumb b{color:var(--ink);font-weight:600}.us-trigger{border:1px solid var(--line);background:#ffffffb3;border-radius:12px;align-items:center;gap:10px;padding:6px 12px;display:flex}.us-av{color:#fff;background:linear-gradient(135deg,#6366f1,#818cf8);border-radius:9px;justify-content:center;align-items:center;width:30px;height:30px;font-size:11px;font-weight:700;display:flex}.us-role{letter-spacing:.5px;text-transform:uppercase;color:var(--muted-2);font-size:9px;font-weight:700}.us-name{color:var(--ink-2);font-size:12px;font-weight:700}.content-area{flex:1;padding:28px;overflow-y:auto}.page-header{margin-bottom:22px}.page-header h1{letter-spacing:-.3px;color:var(--ink-2);font-size:22px;font-weight:700}.page-header-sub{color:var(--muted);margin-top:3px;font-size:12px}.card{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid var(--card-line);border-radius:var(--radius);background:#ffffffa6;margin-bottom:16px;padding:20px;box-shadow:0 1px 3px #2d2b550f}.section-label{letter-spacing:1.6px;text-transform:uppercase;color:var(--muted-2);border-bottom:1px solid #e6e4f080;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;padding-bottom:8px;font-size:10px;font-weight:700;display:flex}.grid-2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.btn{border:1px solid var(--line);cursor:pointer;color:var(--ink-2);background:#fffc;border-radius:9px;padding:8px 16px;font-size:12px;font-weight:600;transition:all .15s}.btn:hover:not(:disabled){background:#fff;box-shadow:0 2px 8px #6366f114}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--grad);color:#fff;border:none}.btn-primary:hover:not(:disabled){background:var(--grad);filter:brightness(1.07);box-shadow:0 2px 8px #6366f12e}.btn-approve{color:#fff;background:linear-gradient(135deg,#0ba775,#048760);border:none}.btn-approve:hover:not(:disabled){filter:brightness(1.07);background:linear-gradient(135deg,#0ba775,#048760);box-shadow:0 2px 8px #10b98138}.btn-danger{color:var(--red);border-color:#ef44444d}.btn-row{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.btn-sm{padding:5px 10px;font-size:11px}.field{margin-bottom:10px}.field label{color:var(--muted);margin-bottom:4px;font-size:11px;font-weight:600;display:block}.field input[type=text],.field input[type=number],.field input[type=datetime-local],.field input[type=password],.field input[type=email],.field textarea,.field select{border:1px solid var(--line);width:100%;color:var(--ink);background:#ffffffd9;border-radius:10px;padding:9px 11px;font-family:inherit;font-size:12px}.field textarea{resize:vertical;min-height:64px}.checkbox-row{color:var(--ink-2);align-items:center;gap:8px;margin-bottom:8px;font-size:12px;display:flex}.badge{letter-spacing:.3px;color:var(--accent);white-space:nowrap;background:#6366f11a;border-radius:20px;align-items:center;padding:3px 10px;font-size:10px;font-weight:700;display:inline-flex}.badge-green{background:var(--green-bg);color:var(--green)}.badge-amber{background:var(--amber-bg);color:var(--amber)}.badge-red{background:var(--red-bg);color:var(--red)}.badge-blue{background:var(--blue-bg);color:var(--blue)}table.tbl{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:12px}table.tbl th{text-align:left;letter-spacing:.5px;text-transform:uppercase;color:var(--muted-2);border-bottom:1px solid var(--line);padding:8px 10px;font-size:10px;font-weight:700}table.tbl td{color:var(--ink-2);border-bottom:1px solid #e6e4f080;padding:9px 10px}table.tbl tr:last-child td{border-bottom:none}.best{background:#10b98114;font-weight:700}.tabs{flex-wrap:wrap;gap:6px;margin-bottom:18px;display:flex}.tab{cursor:pointer;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:9px;padding:8px 16px;font-size:12px;font-weight:600}.tab:hover{background:#6366f10f}.tab.active{border-color:var(--card-line);color:var(--accent);background:#fffc}.tab:focus-visible{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #6366f12e}.process-card{margin-bottom:18px;padding:7px 8px}.pt{align-items:stretch;gap:0;display:flex}.pt-step{cursor:pointer;border-radius:12px;flex:1;align-items:center;gap:7px;min-width:0;padding:9px 11px;transition:all .15s;display:flex}.pt-step:hover{background:#6366f108}.pt-step.current{background:#6366f10f}.pt-step.disabled{cursor:not-allowed;opacity:.55}.pt-num{border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:11px;font-weight:700;display:flex}.pt-num.done{background:var(--green-bg);color:var(--green)}.pt-num.active{background:var(--grad);color:#fff;box-shadow:0 2px 8px #6366f133}.pt-num.pending{color:var(--muted);background:#f0eef8}.pt-info{min-width:0}.pt-label{color:#555;white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:600;overflow:hidden}.pt-step.current .pt-label{color:#4f46e5}.pt-sublabel{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:10px;overflow:hidden}.pt-arrow{color:#ddd;flex-shrink:0;margin-left:auto;font-size:12px}.lot-row{border:1px solid var(--card-line);cursor:pointer;background:#fff9;border-radius:13px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;padding:13px 16px;transition:all .15s;display:flex}.layout-2col{grid-template-columns:1fr 300px;align-items:start;gap:16px;display:grid}@media (width<=880px){.layout-2col{grid-template-columns:1fr}}.cl-progress{align-items:center;gap:8px;margin:4px 0 10px;display:flex}.cl-bar{background:#eeeaf6;border-radius:3px;flex:1;height:6px;overflow:hidden}.cl-bar-fill{background:linear-gradient(90deg,#10b981,#34d399);border-radius:3px;height:100%}.cl-pct{color:var(--green);font-size:11px;font-weight:700}.checklist{flex-direction:column;gap:2px;display:flex}.cl-item{border-bottom:1px solid #f5f4fa;align-items:flex-start;gap:9px;padding:8px 4px;display:flex}.cl-item:last-child{border-bottom:none}.cl-box{border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;margin-top:1px;display:flex}.cl-box svg{stroke-width:2.6px;fill:none;stroke-linecap:round;stroke-linejoin:round;width:11px;height:11px}.cl-box.ok{background:#10b98121}.cl-box.ok svg{stroke:var(--green)}.cl-box.miss{background:#ef44441a}.cl-box.miss svg{stroke:var(--red)}.cl-box.opt{background:#78788c1a}.cl-box.opt svg{stroke:#888}.cl-text{flex:1;min-width:0}.cl-name{color:#444;font-size:11.5px;font-weight:600}.cl-name.miss{color:#c0392b}.cl-sub{color:var(--muted);margin-top:1px;font-size:10px;line-height:1.35}.ai-hint{background:linear-gradient(135deg,#6366f10a,#a855f70a);border:1px solid #6366f112;border-radius:12px;align-items:flex-start;gap:10px;padding:13px;display:flex}.ai-hint p{color:#666;font-size:11px;line-height:1.5}.ai-hint b{color:#5b4bc4}.ai-pulse{background:var(--grad);border-radius:50%;flex-shrink:0;width:7px;height:7px;margin-top:4px;animation:2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}.next-steps{flex-direction:column;gap:8px;display:flex}.next-stage{border:1px solid var(--card-line);background:#ffffff80;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:11px 13px;display:flex}.next-stage-name{color:var(--ink-2);font-size:12px;font-weight:700}.next-stage-sub{color:var(--muted);margin-top:2px;font-size:10px}.next-stage-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.next-stage-exec{color:var(--accent);background:#6366f114;border-radius:7px;padding:3px 8px;font-size:10px;font-weight:600}.next-stage-status{color:var(--muted);font-size:10px}.lot{background:#ffffff80;border:1px solid #6366f124;border-radius:12px;padding:12px 13px}.lot-head{justify-content:space-between;align-items:center;margin-bottom:7px;display:flex}.lot-name{color:var(--ink-2);align-items:center;gap:7px;font-size:12px;font-weight:700;display:flex}.lot-meta{color:var(--muted);font-size:10px}.lot-rows{flex-direction:column;gap:5px;display:flex}.lr{color:#555;justify-content:space-between;align-items:center;gap:12px;font-size:11px;display:flex}.lr-total{color:var(--ink-2);border-top:1px solid #eee;margin-top:2px;padding-top:6px;font-weight:700}.lr-total .lr-hint{color:var(--muted);font-style:italic;font-weight:400}.stats-row{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;display:grid}.stat-card{background:#ffffffa6;border:1px solid #f0eefacc;border-radius:12px;padding:15px;box-shadow:0 1px 3px #2d2b550f}.stat-label{color:var(--muted);font-size:10px;font-weight:600}.stat-value{letter-spacing:-.3px;font-variant-numeric:tabular-nums;color:var(--ink-2);margin-top:3px;font-size:21px;font-weight:700}.stat-value.muted{color:var(--muted-2)}.winner-card{text-align:center;background:linear-gradient(135deg,#6366f10d,#a855f70d);border:1.5px solid #6366f11f;border-radius:16px;padding:20px}.winner-label{letter-spacing:2px;text-transform:uppercase;color:#7c3aed;margin-bottom:6px;font-size:9px;font-weight:700}.winner-name{color:var(--ink-2);margin-bottom:4px;font-size:19px;font-weight:700}.winner-stats{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px;display:grid}.ws{text-align:center}.ws-val{color:var(--ink-2);font-size:15px;font-weight:700}.ws-label{color:var(--muted);margin-top:2px;font-size:9px}.form-input{width:100%;color:var(--ink);background:#fffc;border:1px solid #e5e3f0;border-radius:10px;outline:none;padding:9px 12px;font-family:inherit;font-size:12px;transition:border .2s}.form-input:focus{border-color:#a5b4fc;box-shadow:0 0 0 3px #a5b4fc1f}.form-input::placeholder{color:var(--muted)}select.form-input{cursor:pointer}.add-row-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;border-radius:7px;align-items:center;gap:5px;margin-top:8px;padding:5px 8px;font-family:inherit;font-size:11px;font-weight:600;display:inline-flex}.add-row-btn:hover{background:#6366f10d}.add-row-btn svg{width:12px;height:12px;stroke:var(--accent);fill:none;stroke-width:2px}.upload-zone{text-align:center;cursor:pointer;background:#6366f105;border:2px dashed #6366f133;border-radius:14px;padding:22px;transition:all .2s;display:block;position:relative}.upload-zone:hover{background:#6366f10a;border-color:#6366f166}.upload-icon svg{stroke:#8b5cf6;fill:none;stroke-width:1.4px;width:32px;height:32px;margin-bottom:8px}.upload-title{color:#4f46e5;word-break:break-word;margin-bottom:4px;font-size:13px;font-weight:700}.upload-sub{color:var(--muted);font-size:11px}.upload-formats{color:var(--muted-2);margin-top:8px;font-size:10px}.check-row{color:#555;cursor:pointer;align-items:center;gap:8px;padding:7px 0;font-size:12px;display:flex}.check-row input{width:15px;height:15px;accent-color:var(--accent)}.check-note{color:var(--muted-2);margin-left:4px}.review{background:#10b98108;border:1px solid #10b98133;border-radius:12px;margin-top:12px;padding:13px}.review.purple{background:#a855f708;border-color:#a855f733}.review-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;margin-bottom:10px;display:flex}.review-title{color:var(--green);align-items:center;gap:6px;font-size:11px;font-weight:700;display:flex}.review.purple .review-title{color:#7c3aed}.review-title svg{stroke:#10b981;fill:none;stroke-width:2px;width:14px;height:14px}.review.purple .review-title svg{stroke:#a855f7}.edit-hint{color:var(--muted);font-size:10px;font-style:italic}.lot-group-head{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin:4px 2px 8px;font-size:13px;font-weight:700}.lot-row:hover{background:#fff;box-shadow:0 2px 6px #6366f11a}.lot-row-main{min-width:0}.lot-row-id{color:var(--ink-2);font-size:12px;font-weight:700}.lot-row-sub{color:var(--muted);margin-top:2px;font-size:11px}.kv{border-bottom:1px solid #e6e4f066;justify-content:space-between;gap:10px;padding:6px 0;font-size:12px;display:flex}.kv:last-child{border-bottom:none}.kv .k{color:var(--muted)}.kv .v{color:var(--ink-2);text-align:right;font-weight:600}.toast{color:#fff;z-index:1000;border-radius:12px;max-width:80vw;padding:11px 18px;font-size:12px;font-weight:600;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0000002e}.toast-ok{background:linear-gradient(135deg,#0ba775,#048760)}.toast-err{background:linear-gradient(135deg,#ef4444,#dc2626)}.hint{color:var(--muted);margin-top:6px;font-size:11px;line-height:1.5}.empty{text-align:center;color:var(--muted);padding:30px 10px;font-size:12px}.warn{color:var(--amber);background:var(--amber-bg);border:1px solid var(--amber-bg);border-radius:8px;margin-top:10px;padding:8px 11px;font-size:12px;line-height:1.5}.combo{width:100%;position:relative}.combo-field{border:1px solid var(--line);width:100%;color:var(--ink);cursor:pointer;text-align:left;background:#ffffffd9;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;font-family:inherit;font-size:12px;display:flex}.combo-field:hover{border-color:var(--accent)}.combo-field.combo-empty{color:var(--muted)}.combo-caret{color:var(--muted);font-size:10px}.combo-menu{z-index:30;border:1px solid var(--line);background:#fff;border-radius:10px;padding:6px;position:absolute;top:calc(100% + 4px);left:0;right:0;box-shadow:0 8px 24px #2d2b5529}.combo-search{border:1px solid var(--line);border-radius:7px;width:100%;margin-bottom:6px;padding:6px 8px;font-family:inherit;font-size:12px}.combo-list{max-height:190px;overflow-y:auto}.combo-item{width:100%;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:7px;justify-content:space-between;align-items:center;gap:10px;padding:6px 8px;font-family:inherit;font-size:12px;display:flex}.combo-item:hover{background:var(--bg)}.combo-item.active{background:var(--amber-bg);color:var(--amber)}.combo-unit{color:var(--muted);flex-shrink:0;font-size:11px}.combo-none{color:var(--muted);text-align:center;padding:8px;font-size:12px}.combo-clear{border:none;border-top:1px solid var(--line);width:100%;color:var(--muted);cursor:pointer;background:0 0;border-radius:0 0 7px 7px;margin-top:6px;padding:6px 8px;font-family:inherit;font-size:11px}.combo-clear:hover{color:var(--red)}pre.json{border:1px solid var(--line);color:var(--ink-2);white-space:pre-wrap;word-break:break-word;background:#2d2b550a;border-radius:10px;max-height:320px;padding:12px;font-size:11px;line-height:1.5;overflow-x:auto}.op-result{border:1px solid var(--line);background:#2d2b550a;border-radius:10px;margin-top:10px;padding:6px 12px}.op-result-sub{width:100%}.op-result .v,.op-result-sub .v{word-break:break-word}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:900;background:#2d2b5552;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:14px;width:min(680px,100%);max-height:88vh;padding:24px;overflow-y:auto;box-shadow:0 24px 64px #5050a047}.modal h2{color:var(--ink-2);margin-bottom:4px;font-size:17px;font-weight:700}.draft{border:1px solid var(--line);background:#fff9;border-radius:12px;margin:12px 0;padding:14px}.draft-head{color:var(--muted);margin-bottom:8px;font-size:11px}.draft-body{color:var(--ink-2);white-space:pre-wrap;max-height:240px;font-size:12px;line-height:1.55;overflow-y:auto}.modal-actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.login-wrap{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid var(--card-line);background:#fffc;border-radius:16px;width:360px;padding:32px 28px;box-shadow:0 8px 28px #2d2b551f}.login-logo{background:var(--grad);color:#fff;letter-spacing:-.5px;border-radius:14px;justify-content:center;align-items:center;width:48px;height:48px;margin:0 auto 16px;font-size:20px;font-weight:700;display:flex}.login-card h1{text-align:center;color:var(--ink-2);margin-bottom:4px;font-size:20px;font-weight:700}.login-card .sub{text-align:center;color:var(--muted);margin-bottom:22px;font-size:12px}.err-text{color:var(--red);margin-top:8px;font-size:12px}.notice-text{color:var(--amber,#b45309);background:var(--amber-bg,#f59e0b1f);border-radius:10px;margin-bottom:6px;padding:8px 12px;font-size:12px}
