:root{color:#121417;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#eef3fa;font-family:Segoe UI,Helvetica Neue,Arial,sans-serif;font-weight:400;line-height:1.5}html,body,#root{width:100%;min-height:100%}body{margin:0}a{color:inherit}:root{--brand-red:#e30613;--brand-dark:#10131a;--ink-900:#121417;--ink-700:#2e3138;--ink-500:#5a616f;--line:#d9dee8;--paper:#fff;--soft:#f3f6fb}*{box-sizing:border-box}.login-page{background:#f0f4fc;grid-template-columns:1.15fr 1fr;min-height:100vh;display:grid}.brand-panel{background:var(--brand-dark);color:#fff;flex-direction:column;justify-content:center;gap:1.4rem;padding:clamp(2rem,6vw,4.5rem);display:flex;position:relative;overflow:hidden}.brand-panel:before{content:"";pointer-events:none;background:#e3061324;border-radius:50%;width:420px;height:420px;position:absolute;top:-100px;right:-100px}.brand-panel:after{content:"";pointer-events:none;background:#ffffff0d;border-radius:50%;width:360px;height:360px;position:absolute;bottom:-120px;left:-80px}.brand-chip{background:var(--brand-red);color:#fff;letter-spacing:.1em;text-transform:uppercase;z-index:1;border-radius:999px;width:fit-content;padding:.45rem 1rem;font-size:.75rem;font-weight:700;position:relative}.brand-panel h1{letter-spacing:-.03em;color:#fff;z-index:1;margin:0;font-size:clamp(2rem,4.3vw,3.4rem);line-height:1.1;position:relative}.brand-panel p{color:#ffffff9e;z-index:1;max-width:46ch;margin:0;font-size:clamp(1rem,1.6vw,1.15rem);line-height:1.65;position:relative}.auth-panel{background:#f0f4fc;place-items:center;padding:clamp(1.2rem,3.5vw,2.4rem);display:grid}.auth-card{background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--brand-red);border-radius:20px;flex-direction:column;gap:.9rem;width:min(460px,100%);padding:clamp(1.8rem,2.8vw,2.5rem);display:flex;box-shadow:0 4px 6px -2px #131a280f,0 24px 48px -8px #131a2824}.auth-card h2{color:var(--ink-900);margin:0;font-size:1.6rem;font-weight:700}.form-subtitle{color:var(--ink-500);margin:0 0 .3rem;font-size:.95rem}.auth-card label{color:var(--ink-700);margin-bottom:-.15rem;font-size:.875rem;font-weight:600}.auth-card input[type=email],.auth-card input[type=text],.auth-card input[type=password]{border:1.5px solid var(--line);width:100%;color:var(--ink-900);background:#fafbfd;border-radius:10px;outline:none;padding:.85rem 1rem;font-size:.96rem;transition:border-color .14s,box-shadow .14s,background .14s}.password-field{position:relative}.password-field input{padding-right:2.8rem}.password-field input::-ms-reveal{display:none}.password-field input::-ms-clear{display:none}.password-toggle{color:var(--ink-500);cursor:pointer;background:0 0;border:0;place-items:center;padding:.2rem;display:grid;position:absolute;top:50%;right:.6rem;transform:translateY(-50%)}.password-toggle svg{fill:currentColor;width:1.05rem;height:1.05rem}.password-toggle:hover{color:var(--ink-900)}.auth-card input:focus{border-color:var(--brand-red);background:#fff;box-shadow:0 0 0 3px #e306131f}.auth-row{justify-content:space-between;align-items:center;gap:1rem;margin-top:.1rem;display:flex}.remember-me{color:var(--ink-700);align-items:center;gap:.45rem;font-size:.9rem;display:inline-flex}.remember-me input{accent-color:var(--ink-900)}.helper-link{color:var(--ink-900);font-size:.88rem;text-decoration:none}.helper-link:hover{text-decoration:underline}.auth-card button[type=submit]{background:var(--brand-red);color:#fff;letter-spacing:.01em;cursor:pointer;border:0;border-radius:10px;margin-top:.4rem;padding:.9rem 1rem;font-size:1rem;font-weight:700;transition:transform .11s,filter .11s,box-shadow .11s;box-shadow:0 4px 14px #e3061359}.auth-card button[type=submit]:hover{filter:brightness(.93);box-shadow:0 6px 20px #e3061370}.auth-card button[type=submit]:active{transform:translateY(1px);box-shadow:0 2px 8px #e3061347}.auth-card button[type=submit]:disabled{opacity:.72;cursor:not-allowed;box-shadow:none}.error-text{color:#b42318;margin:.1rem 0 0;font-size:.86rem}.toast-success{z-index:1200;color:#fff;background:#16a34a;border:1px solid #15803d;border-radius:12px;align-items:center;gap:.7rem;min-width:260px;max-width:420px;padding:.65rem .9rem;font-size:.9rem;display:flex;position:fixed;top:1rem;right:1rem;box-shadow:0 12px 24px #1018281f}.toast-success button{color:#fff;cursor:pointer;background:0 0;border:0;padding:.1rem;font-size:1rem;line-height:1}.dashboard-page{background:#f2f5fb;grid-template-columns:260px 1fr;align-items:start;min-height:100vh;transition:grid-template-columns .3s cubic-bezier(.4,0,.2,1);display:grid}.dashboard-page.sidebar-collapsed{grid-template-columns:88px 1fr}.sidebar{background:var(--brand-dark);color:#cfd6e6;flex-direction:column;gap:1.2rem;height:100vh;padding:1.4rem 1rem;transition:padding .3s cubic-bezier(.4,0,.2,1);display:flex;position:sticky;top:0;overflow:hidden}.sidebar.collapsed{padding-left:.7rem;padding-right:.7rem}.sidebar-toggle{color:#e5eaf5;cursor:pointer;background:#ffffff12;border:1px solid #ffffff2a;border-radius:10px;align-self:flex-end;place-items:center;width:40px;height:40px;padding:0;transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .2s;display:inline-grid}.sidebar.collapsed .sidebar-toggle{align-self:center}.sidebar-toggle svg{width:22px;height:22px}.brand-block{align-items:center;gap:.75rem;padding:.5rem;transition:gap .3s cubic-bezier(.4,0,.2,1);display:flex}.sidebar.collapsed .brand-block{justify-content:center}.brand-text{opacity:1;max-width:220px;transition:opacity .18s .18s,transform .18s .18s,max-width .3s cubic-bezier(.4,0,.2,1);overflow:hidden;transform:translate(0)}.sidebar.collapsed .brand-text{opacity:0;pointer-events:none;max-width:0;transition:opacity .11s,transform .11s,max-width .3s cubic-bezier(.4,0,.2,1) 80ms;transform:translate(-6px)}.brand-mark{border:3px solid #fff;flex-shrink:0;width:28px;height:28px}.brand-block strong{color:#fff;font-size:1rem}.brand-block p{margin:.1rem 0 0;font-size:.75rem}.signed-in-label{color:#aeb8cf;word-break:break-word;margin:.2rem 0 0;font-size:.72rem}.sidebar-nav{flex-direction:column;flex:auto;gap:.3rem;min-height:0;padding-right:.2rem;display:flex;overflow:hidden auto}.nav-section-title{letter-spacing:.06em;color:var(--ink-500);margin:.8rem 0 .25rem;padding:0 .5rem;font-size:.72rem;font-weight:700}.sidebar-nav a{color:inherit;border-radius:10px;align-items:center;gap:.6rem;padding:.65rem .75rem;font-size:.93rem;text-decoration:none;transition:padding .3s cubic-bezier(.4,0,.2,1),gap .3s cubic-bezier(.4,0,.2,1),background-color .12s,color .12s;display:flex}.nav-disabled-item{color:#fff6;border-radius:10px;align-items:center;gap:.6rem;padding:.65rem .75rem;font-size:.93rem;display:flex}.nav-icon{place-items:center;min-width:1.2rem;display:inline-grid}.nav-mini-badge{color:#9f3745;background:#f6dce1;border-radius:999px;justify-content:center;align-items:center;min-width:1.15rem;height:1.15rem;margin-left:auto;padding:0 .3rem;font-size:.7rem;font-weight:700;display:inline-flex}.nav-lock{color:#ffffff70;place-items:center;margin-left:auto;display:inline-grid}.nav-lock svg{width:16px;height:16px}.nav-icon svg{width:24px;height:24px}.nav-disabled-item,.sidebar-nav a,.logout{position:relative}.nav-tooltip{color:#fff;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;z-index:20;background:#10131a;border:1px solid #ffffff2e;border-radius:8px;padding:.32rem .55rem;font-size:.78rem;line-height:1.1;transition:opacity .14s .17s,transform .14s .17s,visibility 0s linear .17s;position:absolute;top:50%;left:calc(100% + 10px);transform:translateY(-50%)translate(-4px);box-shadow:0 6px 18px #00000047}.sidebar.collapsed .sidebar-nav a:hover .nav-tooltip,.sidebar.collapsed .sidebar-nav a:focus-visible .nav-tooltip,.sidebar.collapsed .nav-disabled-item:hover .nav-tooltip,.sidebar.collapsed .nav-disabled-item:focus-within .nav-tooltip,.sidebar.collapsed .logout:hover .nav-tooltip,.sidebar.collapsed .logout:focus-visible .nav-tooltip{opacity:1;visibility:visible;transition-delay:0s;transform:translateY(-50%)translate(0)}.nav-text{white-space:nowrap;opacity:1;max-width:180px;transition:opacity .16s .18s,transform .16s .18s,max-width .3s cubic-bezier(.4,0,.2,1);overflow:hidden;transform:translate(0)}.sidebar.collapsed .nav-text{opacity:0;pointer-events:none;max-width:0;transition:opacity .1s,transform .1s,max-width .3s cubic-bezier(.4,0,.2,1) 60ms;transform:translate(-6px)}.sidebar.collapsed .sidebar-nav a,.sidebar.collapsed .nav-disabled-item{justify-content:center;gap:0;padding-left:.5rem;padding-right:.5rem}.sidebar-nav a.active,.sidebar-nav a:hover{color:#fff;background:#ffffff14}.logout{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff3d;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;gap:.45rem;margin-top:auto;padding:.62rem;transition:gap .3s cubic-bezier(.4,0,.2,1),padding .3s cubic-bezier(.4,0,.2,1);display:flex}.sidebar.collapsed .logout{gap:0}.dashboard-main{flex-direction:column;gap:1rem;padding:clamp(1rem,2.5vw,1.8rem);display:flex}.dashboard-main--soft{gap:1.15rem}.topbar{border:1px solid var(--line);background:#fff;border-radius:14px;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.1rem;display:flex}.topbar h1{color:var(--ink-900);margin:0;font-size:clamp(1.2rem,2vw,1.7rem)}.topbar p{color:var(--ink-500);margin:.2rem 0 0}.topbar--soft{background:linear-gradient(#fff 0%,#fbfcfe 100%);border-color:#dbe4f0;box-shadow:0 10px 28px #94a3b814}.topbar--soft h1{font-size:clamp(1.15rem,1.95vw,1.6rem)}.topbar--soft p{color:#667085}.status-pill{color:#0f5132;background:#d1e7dd;border:1px solid #badbcc;border-radius:999px;padding:.3rem .6rem;font-size:.82rem}.topbar-controls{align-items:center;gap:.55rem;display:flex}.global-notification-center{z-index:20;justify-content:flex-end;align-items:center;margin-left:auto;display:flex}.notification-wrap{position:relative}.notification-btn{border:1px solid var(--line);color:var(--ink-800);cursor:pointer;background:#fff;border-radius:12px;place-items:center;width:40px;height:40px;display:inline-grid;position:relative}.notification-btn svg{width:24px;height:24px}.notification-btn:hover{background:#f7fafb}.notification-badge{color:#fff;text-align:center;background:#c62828;border-radius:999px;min-width:19px;height:19px;padding:0 4px;font-size:.7rem;font-weight:700;line-height:19px;position:absolute;top:-6px;right:-6px}.notification-dropdown{border:1px solid var(--line);z-index:1500;background:#fff;border-radius:12px;width:min(90vw,330px);position:absolute;top:calc(100% + 10px);right:0;overflow:hidden;box-shadow:0 14px 32px #10182824}.notification-head{border-bottom:1px solid #edf2f5;justify-content:space-between;align-items:center;padding:.75rem .8rem;display:flex}.notification-head strong{color:var(--ink-900);font-size:.9rem}.notification-head button{color:var(--brand-red);cursor:pointer;background:0 0;border:0;font-size:.78rem;font-weight:600}.notification-head button:disabled{color:var(--ink-400);cursor:default}.notification-list{max-height:280px;margin:0;padding:0;list-style:none;overflow:auto}.notification-list li{border-bottom:1px solid #f0f3f6}.notification-list li:last-child{border-bottom:0}.notification-item-btn{text-align:left;cursor:pointer;background:0 0;border:0;width:100%;padding:.75rem .8rem}.notification-item-btn:hover{background:#f8fbff}.notification-list li p{color:var(--ink-900);margin:0;font-size:.84rem}.notification-list li span{color:var(--ink-500);margin-top:.2rem;font-size:.76rem;display:inline-block}.notification-list li.is-unread{background:#f7fbff}.notification-modal-body{flex-direction:column;gap:.9rem;padding:1rem;display:flex}.notification-modal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;display:grid}.notification-modal-grid>div{background:#fbfcfe;border:1px solid #edf1f6;border-radius:12px;padding:.8rem .9rem}.notification-modal-grid p{color:var(--ink-500);margin:0 0 .25rem;font-size:.82rem}.notification-modal-grid strong{color:var(--ink-900);font-size:.92rem}.notification-modal-actions{justify-content:flex-end}.architecture-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem;display:grid}.arch-card{border:1px solid var(--line);background:#fff;border-radius:14px;padding:.9rem 1rem}.arch-card h3{color:var(--ink-900);margin:0;font-size:.98rem}.arch-card p{color:var(--ink-500);margin:.45rem 0 0;font-size:.84rem;line-height:1.45}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem;display:grid}.stat-card{border:1px solid var(--line);background:#fff;border-radius:14px;padding:.9rem 1rem}.stat-card p{color:var(--ink-500);margin:0;font-size:.83rem}.stat-card h2{color:var(--ink-900);margin:.4rem 0 .2rem;font-size:1.5rem}.stat-card span{color:#0a6b47;font-size:.8rem}.content-grid{grid-template-columns:1.4fr 1fr;gap:.9rem;display:grid}.admin-stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem;display:grid}.admin-stat-card{border:1px solid var(--line);background:#fff;border-radius:12px;padding:.9rem .95rem}.admin-stat-card--soft{background:linear-gradient(#fff 0%,#fcfdff 100%);border-color:#dbe4f0;box-shadow:0 8px 22px #94a3b80f}.admin-stat-card p{color:var(--ink-500);margin:0;font-size:.88rem}.admin-stat-card h2{color:var(--ink-900);margin:.35rem 0 .15rem;font-size:2rem;line-height:1}.admin-stat-card span{color:var(--ink-500);font-size:.85rem}.admin-split-grid{grid-template-columns:1fr 1fr;gap:.9rem;display:grid}.progress-list{flex-direction:column;gap:.7rem;display:flex}.progress-row{grid-template-columns:minmax(180px,230px) minmax(120px,1fr) 56px;align-items:start;gap:.6rem;display:grid}.progress-row strong{color:var(--ink-700);overflow-wrap:anywhere;font-size:.96rem;line-height:1.35}.progress-row span{color:var(--ink-500);text-align:right;white-space:nowrap;padding-top:.05rem;font-size:.92rem}.progress-track{background:#eceff3;border-radius:999px;height:8px;margin-top:.35rem;overflow:hidden}.progress-fill{background:#4f46b6;border-radius:999px;height:100%}.progress-fill--soft{background:linear-gradient(90deg,#7c8eea 0%,#90b4f2 100%)}.damage-alert-list{flex-direction:column;gap:.7rem;display:flex}.damage-alert-card{border:1px solid var(--line);background:#fff;border-radius:10px;padding:.75rem}.damage-alert-card--soft{background:linear-gradient(#fff 0%,#fffdfb 100%);border-color:#e3e8f2;box-shadow:inset 0 1px #fff9}.damage-alert-title{align-items:flex-start;gap:.45rem;display:flex}.damage-alert-title svg{color:#ad3f3f;flex-shrink:0;width:18px;height:18px;margin-top:.2rem}.damage-alert-title strong{color:var(--ink-900);overflow-wrap:anywhere;font-size:1rem;line-height:1.35}.damage-alert-card p{color:var(--ink-500);overflow-wrap:anywhere;margin:.35rem 0 .5rem;font-size:.92rem;line-height:1.55}.panel--soft{background:linear-gradient(#fff 0%,#fcfdff 100%);border-color:#dbe4f0;box-shadow:0 10px 26px #94a3b80d}.analytics-grid .panel{min-height:180px}.mini-metric-list{flex-direction:column;gap:.65rem;display:flex}.mini-metric-row{grid-template-columns:92px 1fr 24px;align-items:center;gap:.55rem;display:grid}.mini-metric-row span{color:var(--ink-700);font-size:.95rem}.mini-metric-row strong{color:var(--ink-700);text-align:right;font-size:.95rem}.mini-track{background:#eceff3;border-radius:999px;height:6px;overflow:hidden}.mini-fill{border-radius:999px;height:100%}.mini-fill.ok{background:#2f9b72}.mini-fill.info{background:#3d7fd1}.mini-fill.danger{background:#d64545}.bar-chart{grid-template-columns:repeat(12,1fr);align-items:end;gap:8px;height:140px;display:grid}.bar-col{flex-direction:column;justify-content:flex-end;align-items:center;gap:.35rem;display:flex}.bar{border-radius:3px 3px 0 0;width:12px}.bar.order{background:#b4b0dc}.bar.order.highlight{background:#5950c6}.bar.damage{background:#e8b6b6}.bar.damage.highlight{background:#d84f4f}.bar-col span{color:var(--ink-500);font-size:.72rem}.all-orders-filters{grid-template-columns:1fr;gap:.65rem;display:grid}.all-orders-filters input,.all-orders-filters select{border:1px solid var(--line);width:100%;color:var(--ink-700);background:#fff;border-radius:10px;padding:.72rem .8rem;font-size:.95rem}.new-order-btn{color:var(--ink-900);cursor:pointer;background:#fff;border:1px solid #b8bec9;border-radius:10px;justify-self:start;padding:.62rem 1rem;font-size:.95rem;line-height:1.2}.all-orders-footer{justify-content:space-between;align-items:center;display:flex}.all-orders-footer p{color:var(--ink-500);margin:0;font-size:.95rem}.pagination-actions{gap:.5rem;display:flex}.pagination-actions button{color:var(--ink-900);cursor:pointer;background:#fff;border:1px solid #b8bec9;border-radius:10px;padding:.48rem .85rem;font-size:.95rem;line-height:1.2}.upload-requirement-grid{grid-template-columns:1fr 1fr;gap:.9rem;display:grid}.upload-side-stack{gap:.9rem;display:grid}.upload-form-modern{flex-direction:column;gap:.55rem;display:flex}.upload-form-modern label{color:var(--ink-600);flex-direction:column;gap:.35rem;font-size:.95rem;display:flex}.upload-form-modern input{border:1px solid var(--line);background:#fff;border-radius:10px;padding:.7rem .75rem;font-size:.95rem}.dropzone{text-align:center;border:1px dashed #bfc6d3;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:.35rem;min-height:180px;padding:1rem .9rem;display:flex;position:relative}.dropzone input[type=file]{opacity:0;cursor:pointer;position:absolute;inset:0}.dropzone-icon{color:var(--ink-500);font-size:1.5rem}.dropzone strong{color:var(--ink-700);font-size:1.05rem}.dropzone small{color:var(--ink-500)}.browse-btn{color:var(--ink-800);background:#fff;border:1px solid #b8bec9;border-radius:10px;margin-top:.35rem;padding:.45rem .8rem;font-size:.9rem}.upload-form-modern button{color:var(--ink-900);cursor:pointer;background:#fff;border:1px solid #b8bec9;border-radius:10px;padding:.65rem .8rem;font-size:.95rem}.selected-file-card{background:#eefaf2;border:1px solid #c9e7d2;border-radius:10px;align-items:center;gap:.6rem;margin-top:.1rem;padding:.6rem .7rem;display:flex}.selected-file-icon{background:#dbf1e4;border-radius:8px;place-items:center;width:28px;height:28px;font-size:.95rem;display:inline-grid}.selected-file-meta{flex:1;min-width:0}.selected-file-meta strong{color:#22593a;font-size:.83rem;line-height:1.1;display:block}.selected-file-meta p{color:#1f2a39;white-space:nowrap;text-overflow:ellipsis;margin:.16rem 0 0;font-size:.86rem;overflow:hidden}.selected-file-badge{color:#22593a;background:#e6f7ec;border:1px solid #96d2aa;border-radius:999px;padding:.2rem .52rem;font-size:.75rem;font-weight:700}.template-file-hint{color:var(--ink-700);background:#f7f9fd;border:1px dashed #cbd5e3;border-radius:10px;margin-top:.1rem;padding:.55rem .65rem;font-size:.84rem}.simple-guide-table{border-collapse:collapse;width:100%}.simple-guide-table th,.simple-guide-table td{text-align:left;border-bottom:1px solid #ebeff4;padding:.6rem .45rem}.simple-guide-table th{color:var(--ink-500);font-size:.9rem;font-weight:500}.simple-guide-table td{color:var(--ink-700);font-size:.95rem}.simple-guide-table tr:last-child td{border-bottom:0}.guide-note{color:var(--ink-700);background:#f2f0ea;border-radius:10px;margin-top:.55rem;padding:.6rem .65rem;font-size:.9rem}.production-progress-list{flex-direction:column;gap:.75rem;display:flex}.production-progress-card{border:1px solid var(--line);background:#fff;border-radius:12px;padding:.75rem .85rem}.production-progress-head{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.production-progress-head h4{color:var(--ink-900);margin:0;font-size:1.05rem}.production-progress-head p{color:var(--ink-500);margin:.2rem 0 0;font-size:.92rem}.production-progress-meter{grid-template-columns:1fr auto;align-items:center;gap:.55rem;margin-top:.7rem;display:grid}.production-progress-meter strong{color:var(--ink-700);font-size:.96rem}.danger-fill{background:#d64545}.production-progress-foot{justify-content:space-between;align-items:center;gap:.7rem;margin-top:.5rem;display:flex}.production-progress-foot span{color:var(--ink-500);font-size:.9rem}.damage-actions-row{gap:.5rem;margin-top:.6rem}.audit-log-list{margin:0;padding:0;list-style:none}.audit-log-list li{border-bottom:1px solid #ebeff4;grid-template-columns:92px 1fr;gap:.75rem;padding:.65rem 0;display:grid}.audit-log-list li:last-child{border-bottom:0}.audit-log-list li>span{color:var(--ink-500);font-size:.86rem}.audit-log-list p{color:var(--ink-800);margin:0;font-size:.95rem}.audit-log-list small{color:var(--ink-500);margin-top:.18rem;font-size:.9rem;display:inline-block}.settings-grid{grid-template-columns:1fr 1fr;gap:.9rem;display:grid}.settings-list{flex-direction:column;display:flex}.settings-row{border-bottom:1px solid #ebeff4;justify-content:space-between;align-items:center;gap:.8rem;padding:.6rem 0;display:flex}.settings-row:last-child{border-bottom:0}.settings-row strong{color:var(--ink-900);font-size:1rem}.settings-row p{color:var(--ink-500);margin:.15rem 0 0;font-size:.88rem}.switch{display:inline-flex;position:relative}.switch input{opacity:0;position:absolute}.switch span{background:#bfc3c8;border-radius:999px;width:34px;height:20px;position:relative}.switch span:after{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .12s;position:absolute;top:3px;left:3px}.switch input:checked+span{background:#5a4fc5}.switch input:checked+span:after{transform:translate(14px)}.settings-form{flex-direction:column;gap:.55rem;display:flex}.settings-form label{color:var(--ink-600);flex-direction:column;gap:.3rem;font-size:.9rem;display:flex}.settings-form input,.settings-form select{border:1px solid var(--line);background:#fff;border-radius:8px;padding:.58rem .68rem;font-size:.95rem}.settings-form button{color:var(--ink-900);cursor:pointer;background:#fff;border:1px solid #b8bec9;border-radius:10px;align-self:flex-start;margin-top:.2rem;padding:.62rem .9rem;font-size:.95rem}.order-modal-backdrop{z-index:80;background:#11182773;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.order-modal-card{background:#fff;border:1px solid #d9dde5;border-radius:14px;flex-direction:column;width:min(980px,96vw);max-height:92vh;display:flex;overflow:hidden}.order-modal-card.compact-modal{width:min(680px,94vw)}.order-modal-head{background:#fff;border-bottom:1px solid #edf1f6;flex:none;justify-content:space-between;align-items:flex-start;gap:.8rem;padding:.9rem 1rem;display:flex}.order-modal-head h3{margin:0}.order-modal-head p{color:var(--ink-500);margin:.2rem 0 0;font-size:.9rem}.order-modal-close{cursor:pointer;background:#fff;border:1px solid #c7ced8;border-radius:10px;width:34px;height:34px;font-size:1.25rem;line-height:1}.order-stepper{border-bottom:1px solid #edf1f6;flex:none;align-items:center;gap:.65rem;padding:.8rem 1rem;display:flex}.order-stepper-item{color:var(--ink-600);align-items:center;gap:.45rem;font-size:.88rem;display:flex}.order-step-dot{background:#fff;border:1px solid #c8ced8;border-radius:999px;place-items:center;width:24px;height:24px;font-size:.8rem;display:inline-grid}.order-step-dot.active{color:#fff;background:#5a4fc5;border-color:#5a4fc5}.order-step-dot.done{color:#fff;background:#1f9d73;border-color:#1f9d73}.order-step-line{background:#dbe1ea;flex:1;height:1px}.order-modal-body{flex-direction:column;gap:.65rem;min-height:0;padding:.9rem 1rem;display:flex;overflow-y:auto}.order-grid-two{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}.order-modal-body label{color:var(--ink-600);flex-direction:column;gap:.3rem;font-size:.88rem;display:flex}.order-modal-body input,.order-modal-body select,.order-modal-body textarea{border:1px solid var(--line);background:#fff;border-radius:8px;padding:.62rem .7rem;font-size:.95rem}.order-note-strip{color:var(--ink-500);background:#f1f0ea;border-radius:9px;padding:.55rem .65rem;font-size:.83rem}.order-note-success{color:#1f7a53;background:#e6f7ef}.order-note-danger{color:#b4232a;background:#fdeeee}.order-upload-box{width:100%;min-height:78px;color:var(--ink-500);cursor:pointer;background:#fff;border:1px dashed #cfd6e2;border-radius:10px;place-items:center;gap:.25rem;display:grid}.order-upload-icon{font-size:1.2rem}.order-upload-danger{color:#c03232;border-color:#f3b6b6}.order-upload-danger small{color:#8b8f98}.order-summary-strip{background:#f4f2ed;border-radius:10px;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;padding:.7rem .8rem;display:grid}.order-summary-strip p{color:var(--ink-500);margin:0 0 .2rem;font-size:.82rem}.order-summary-strip strong{font-size:1.05rem;font-weight:500}.order-scan-box{text-align:center;min-height:120px;color:var(--ink-600);border:1px dashed #d2d8e1;border-radius:10px;place-items:center;gap:.35rem;padding:.8rem;display:grid}.order-scan-box p{margin:0}.order-scan-box small{color:var(--ink-500)}.order-scan-icon{color:var(--ink-500);line-height:0}.order-scan-icon svg{width:30px;height:30px}.order-scan-box-warn{color:#8a5a08;border-color:#e39a23}.order-material-head{justify-content:space-between;align-items:baseline;display:flex}.order-material-head h4{margin:0}.order-material-head span{color:var(--ink-500);font-size:.85rem}.order-material-grid-labels{color:var(--ink-500);grid-template-columns:2fr 1fr 1fr 2fr 1.1fr 52px;gap:.45rem;padding:0 .15rem;font-size:.78rem;display:grid}.order-material-row{grid-template-columns:2fr 1fr 1fr 2fr 1.1fr 52px;gap:.45rem;display:grid}.material-delete-btn{cursor:pointer;background:#fff;border:1px solid #c4cbd6;border-radius:8px}.material-add-btn{cursor:pointer;background:#fff;border:1px solid #c4cbd6;border-radius:9px;padding:.55rem .75rem}.order-review-banner{color:#43389c;background:#e9e6fb;border-radius:10px;padding:.6rem .7rem;font-size:.88rem}.order-review-details{border:1px solid #eceff4;border-radius:10px;grid-template-columns:1fr 1fr;gap:.55rem;padding:.6rem .7rem;display:grid}.order-review-details p{flex-direction:column;gap:.1rem;margin:0;display:flex}.order-review-details p strong{color:var(--ink-500);font-size:.82rem;font-weight:500}.order-review-title{margin:.15rem 0 0}.order-modal-foot{background:#fff;border-top:1px solid #edf1f6;flex:none;justify-content:space-between;align-items:center;padding:.8rem 1rem;display:flex}.bom-form .order-modal-foot{margin:.15rem -1rem -.9rem}.order-foot-actions{gap:.5rem;display:flex}.order-btn{cursor:pointer;background:#fff;border:1px solid #c6ccda;border-radius:10px;padding:.6rem .95rem}.order-btn.primary{color:#fff;background:#5a4fc5;border-color:#5a4fc5}.order-btn.success{color:#fff;background:#1f9d73;border-color:#1f9d73}.order-btn.warning{color:#111827;background:#e8a321;border-color:#d08e14}.order-btn.danger{color:#fff;background:#e34b4b;border-color:#cb3232}.sm-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;display:grid}.sm-kpi-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm-kpi-card{border:1px solid var(--line);background:#fff;border-top-width:2px;border-radius:12px;padding:.75rem .8rem}.sm-kpi-card h2{margin:.28rem 0 .15rem;font-size:2rem}.sm-kpi-card p{color:var(--ink-500);margin:0;font-size:.88rem}.sm-kpi-card span{color:var(--ink-500);font-size:.85rem}.sm-kpi-card.blue{border-top-color:#2f67c8}.sm-kpi-card.amber{border-top-color:#8a6f1b}.sm-kpi-card.green{border-top-color:#2f8d3b}.sm-kpi-card.red{border-top-color:#b44141}.sm-main-grid{grid-template-columns:1fr 1.1fr;gap:.9rem;display:grid}.sm-main-grid--single{grid-template-columns:minmax(0,1fr)}.sm-quick-list{flex-direction:column;gap:.55rem;display:flex}.sm-quick-item{border:1px solid var(--line);border-radius:10px;grid-template-columns:34px 1fr auto;align-items:center;gap:.55rem;padding:.6rem;display:grid}.sm-quick-icon{color:#1f3a2f;border-radius:10px;place-items:center;width:34px;height:34px;font-size:1rem;font-weight:700;display:inline-grid}.sm-quick-icon.green{background:#d8f0e6}.sm-quick-icon.blue{background:#dceafe}.sm-quick-icon.purple{background:#e9e4ff}.sm-quick-icon.red{background:#fbe2e2}.sm-quick-item strong{color:var(--ink-900)}.sm-quick-item p{color:var(--ink-500);margin:.12rem 0 0;font-size:.84rem}.sm-quick-item small{color:#7a8599;margin-top:.2rem;font-size:.77rem;display:block}.sm-quick-item span{color:var(--ink-500);font-size:1.3rem}.sm-activity-list{margin:0;padding:0;list-style:none}.sm-activity-list li{grid-template-columns:18px 1fr;gap:.45rem;padding:.48rem 0;display:grid}.sm-activity-list .dot{color:#355246;border-radius:999px;place-items:center;width:18px;height:18px;margin-top:.15rem;font-size:.7rem;font-weight:700;display:inline-grid}.sm-activity-list .dot.green{background:#bce8d6}.sm-activity-list .dot.red{background:#f7cccc}.sm-activity-list .dot.blue{background:#cde1ff}.sm-activity-list .dot.gray{background:#e6e6e6}.sm-activity-list strong{color:var(--ink-900);font-size:.93rem}.sm-activity-list p{color:var(--ink-500);margin:.08rem 0;font-size:.86rem}.sm-activity-list small{color:var(--ink-500);font-size:.82rem}.sm-stock-row{margin-bottom:.55rem}.sm-stock-row strong{color:var(--ink-900);font-size:.92rem}.sm-stock-row p{color:var(--ink-500);margin:.12rem 0 .35rem;font-size:.82rem}.bal-neg{color:#a33434}.bal-pos{color:#2f7b38}.stock-level-cell{grid-template-columns:84px auto;align-items:center;gap:.45rem;display:grid}.stock-level-cell span{color:var(--ink-500);font-size:.83rem}.qr-list{flex-direction:column;gap:.55rem;display:flex}.qr-item{border-bottom:1px solid #ebeff4;grid-template-columns:36px 1fr auto;align-items:center;gap:.55rem;padding:.45rem 0;display:grid}.qr-icon{color:#4d5b6a;background:#f1f3f6;border-radius:8px;place-items:center;width:36px;height:36px;display:inline-grid}.qr-icon svg{width:18px;height:18px;display:block}.qr-meta strong{color:var(--ink-900);font-size:.95rem}.qr-meta p{color:var(--ink-500);margin:.12rem 0 0;font-size:.83rem}.qr-actions{gap:.4rem;display:flex}.scan-hero{text-align:center;border:2px dashed #e69c21;padding:1.25rem 1rem}.scan-hero-icon{color:#d9941d}.scan-hero-icon svg{width:42px;height:42px;margin:0 auto;display:block}.scan-hero h3{margin:.35rem 0 .25rem}.scan-hero p{color:#8a6420;margin:0 0 .7rem}.qr-actions .modal-close{place-items:center;width:34px;height:34px;padding:0;display:inline-grid}.qr-actions .modal-close svg{width:18px;height:18px;color:var(--ink-800);display:block}.generate-qr-btn{align-items:center;gap:.45rem;display:inline-flex}.generate-qr-btn svg{width:16px;height:16px}.new-dispatch-btn{color:var(--ink-900);cursor:pointer;background:#fff;border:1px solid #b8bec9;border-radius:10px;padding:.58rem .95rem;font-size:.95rem}.scan-receive-btn{align-items:center;gap:.45rem;display:inline-flex}.scan-receive-btn svg{width:16px;height:16px;display:block}.scan-qr-btn{align-items:center;gap:.35rem;display:inline-flex}.scan-qr-btn svg{width:14px;height:14px;display:block}.status-chip{white-space:normal;overflow-wrap:anywhere;text-align:left;border-radius:999px;align-items:center;max-width:100%;padding:.22rem .55rem;font-size:.78rem;font-weight:600;line-height:1.35;display:inline-flex}.status-chip.warn{color:#6b5312;background:#f8edd2}.status-chip.ok{color:#2b5f1d;background:#dcefd4}.status-chip.danger{color:#8d2a2a;background:#f7dfde}.panel{border:1px solid var(--line);background:#fff;border-radius:14px;padding:.95rem 1rem}.panel-head{justify-content:space-between;align-items:center;margin-bottom:.8rem;display:flex}.panel-head h3{color:var(--ink-900);margin:0;font-size:1rem}.panel-actions{align-items:center;gap:.6rem;display:flex}.add-user-trigger,.modal-close{border:1px solid var(--line);color:var(--ink-900);cursor:pointer;background:#fff;border-radius:10px;padding:.45rem .7rem;font-size:.83rem;font-weight:600}.modal-close-icon{color:var(--ink-700);cursor:pointer;background:0 0;border:0;padding:.1rem .2rem;font-size:1.4rem;line-height:1}.modal-close-icon:hover{color:var(--ink-900)}.panel-head a{color:var(--brand-red);font-size:.84rem;font-weight:600;text-decoration:none}.add-user-form{grid-template-columns:1fr;gap:.55rem;margin-bottom:.9rem;display:grid}.add-user-form input,.add-user-form select{border:1px solid var(--line);background:#fff;border-radius:10px;padding:.62rem .72rem;font-size:.88rem}.add-user-form button{background:var(--brand-red);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:.62rem .8rem;font-size:.86rem;font-weight:700}.add-user-form .error-text{grid-column:1/-1;margin:0}.modal-backdrop{z-index:20;background:#10131a73;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal-card{border:1px solid var(--line);background:#fff;border-radius:14px;width:min(820px,100%);padding:1rem;box-shadow:0 18px 44px #131a2838}.delete-modal{width:min(560px,100%);padding:1.2rem 1.2rem 1rem}.delete-message{color:var(--ink-700);margin:.45rem 0 1rem;font-size:1rem;line-height:1.45}.delete-actions{justify-content:flex-end;gap:.7rem}.delete-cancel{min-width:92px}.delete-confirm{background:var(--brand-red);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:.52rem .9rem;font-size:.86rem;font-weight:700}.delete-confirm:disabled{opacity:.7;cursor:not-allowed}.table-wrap{overflow-x:auto}.nested-table-wrap{background:#f8fafc;border:1px solid #e3e9f3;border-radius:12px;margin:.35rem 0 .55rem;padding:.75rem;overflow-x:auto}.nested-table-wrap table{background:#fff;border-radius:10px;overflow:hidden}.nested-table-wrap th,.nested-table-wrap td{padding:.55rem .7rem;font-size:.82rem}.parcel-card{background:#fff;border:1px solid #d8e1ef;border-radius:12px;flex-direction:column;gap:.55rem;padding:.85rem;display:flex}.parcel-card strong{color:var(--ink-800);font-size:.95rem}.parcel-card-list{background:#f8fafc;border:1px solid #e3e9f3;border-radius:12px;margin:.35rem 0 .55rem;padding:.75rem}.parcel-table-scroll{background:#fff;border:1px solid #d8e1ef;border-radius:12px;max-height:280px;margin-top:.75rem;overflow:auto}.parcel-table{border-collapse:collapse;width:100%}.parcel-table thead th{z-index:1;background:#f8fafc;position:sticky;top:0}.parcel-table th,.parcel-table td{vertical-align:middle;border-bottom:1px solid #eef1f6;padding:.7rem .75rem;font-size:.88rem}.parcel-table td select,.parcel-table td input{width:100%;min-width:160px}.parcel-table tbody tr:last-child td{border-bottom:0}.dispatch-row-clickable{cursor:pointer}.dispatch-row-clickable:hover{background:#f8fafc}.dispatch-row-clickable:focus-visible{outline-offset:-2px;outline:2px solid #2563eb}.dispatch-details-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem .9rem;display:grid}.dispatch-details-grid p{color:var(--ink-700);margin:0;font-size:.88rem}.bom-layout{align-items:start}.bom-form{gap:.7rem;display:grid}.bom-form label{color:var(--ink-600);gap:.3rem;font-size:.88rem;display:grid}.bom-form input,.bom-form select,.inline-filter{border:1px solid var(--line);color:var(--ink-900);background:#fff;border-radius:10px;padding:.62rem .72rem;font-size:.9rem}.bom-rule-card{background:linear-gradient(135deg,#f6f9ff,#eef6ff);border:1px solid #d9e6fb;border-radius:14px;gap:.65rem;padding:1rem;display:grid}.bom-rule-card p,.bom-rule-card span{color:var(--ink-600);margin:0}.bom-rule-card strong{color:var(--ink-900)}.bom-group{gap:.55rem;margin-bottom:1rem;display:grid}.bom-group-head{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.bom-group h4{color:var(--ink-900);margin:.4rem 0 0}.table-actions{flex-wrap:wrap;gap:.45rem;display:flex}.danger-link{color:#b42318;border-color:#f0c8c4}.users-roles-panel{grid-column:1/-1}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.users-table-toolbar{justify-content:flex-end;margin:.9rem 0 .35rem;display:flex}.users-search{width:min(360px,100%)}.users-search input{width:100%;color:var(--ink-900);background:#f8fbff;border:1px solid #d6deeb;border-radius:14px;padding:.78rem .95rem;font-size:.92rem;transition:border-color .16s,box-shadow .16s,background .16s}.users-search input::placeholder{color:var(--ink-500)}.users-search input:focus{background:#fff;border-color:#93c5fd;outline:none;box-shadow:0 0 0 4px #93c5fd38}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid #eef1f6;padding:.65rem .35rem;font-size:.88rem}th{color:var(--ink-500);font-weight:600}.stage-chip{color:#3730a3;background:#eef2ff;border-radius:999px;padding:.2rem .45rem;font-size:.76rem;font-weight:600}.todo-list{color:var(--ink-700);gap:.65rem;margin:0;padding-left:1rem;font-size:.9rem;display:grid}.floating-toast{z-index:1200;background:linear-gradient(135deg,#f3fff5 0%,#e3f7e9 100%);border:1px solid #b7e1c4;border-radius:18px;align-items:flex-start;gap:.85rem;min-width:320px;max-width:min(420px,100vw - 2rem);padding:.95rem 1rem;animation:.18s ease-out toast-slide-in;display:flex;position:fixed;top:1.25rem;right:1.25rem;box-shadow:0 16px 40px #16653429}.floating-toast--error{background:linear-gradient(135deg,#fff5f5 0%,#fde8e8 100%);border-color:#f0c2c2;box-shadow:0 16px 40px #991b1b1f}.floating-toast__icon{color:#fff;background:#1f8f4c;border-radius:999px;flex-shrink:0;place-items:center;width:2rem;height:2rem;font-weight:700;display:grid}.floating-toast--error .floating-toast__icon{background:#d64545}.floating-toast__content{flex:1}.floating-toast__content strong{color:#14532d;font-size:.92rem;display:block}.floating-toast__content p{color:#166534;margin:.18rem 0 0;font-size:.9rem;line-height:1.4}.floating-toast--error .floating-toast__content strong{color:#8d2a2a}.floating-toast--error .floating-toast__content p{color:#9b2c2c}.floating-toast__close{color:#4d7c5a;cursor:pointer;background:0 0;border:0;padding:.1rem;font-size:1.15rem;line-height:1}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(-10px)translate(12px)}to{opacity:1;transform:translateY(0)translate(0)}}@media (width<=1100px){.architecture-grid,.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content-grid{grid-template-columns:1fr}.add-user-form{grid-template-columns:1fr 1fr}}@media (width<=920px){.login-page,.dashboard-page{grid-template-columns:1fr}.brand-panel{gap:.9rem;min-height:220px;padding-bottom:2rem}.brand-panel p{max-width:none}.auth-panel{padding-top:1rem;padding-bottom:2.5rem}.sidebar{gap:.8rem}.sidebar-nav{flex-direction:row;overflow:auto}.sidebar-nav a{white-space:nowrap}.nav-tooltip{display:none}.architecture-grid,.stats-grid,.admin-split-grid{grid-template-columns:1fr}.progress-row{grid-template-columns:1fr;gap:.35rem}.progress-track{margin-top:0}.progress-row span{text-align:left}.add-user-form{grid-template-columns:1fr}.floating-toast{min-width:0;max-width:none;top:.9rem;left:.9rem;right:.9rem}}
