:root{
  --bg:#f3f7fa;--surface:#ffffff;--surface-2:#f8fbfd;--ink:#102334;--muted:#6d8292;--line:#dce7ee;
  --nav:#111823;--nav2:#1b2431;--brand:#ff8a00;--brand2:#db6500;--accent:#f5a623;--green:#ff8a00;--red:#d34d5d;
  --shadow:0 16px 42px rgba(10,42,62,.09);--shadow-sm:0 6px 20px rgba(10,42,62,.07);--r:18px;--r2:13px;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--ink)}body{font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}
a{color:inherit}.muted{color:var(--muted)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.error{color:var(--red);font-size:12px}.ok{color:var(--green)}
.login-page{min-height:100vh;display:grid;grid-template-columns:1.2fr .8fr;background:linear-gradient(125deg,#061625,#0a2d45 55%,#2b3542)}
.login-brand{padding:8vw;color:white;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.login-brand:before,.login-brand:after{content:"";position:absolute;border-radius:50%;filter:blur(2px)}.login-brand:before{width:430px;height:430px;background:rgba(0,183,210,.12);inset-inline-end:-80px;top:-100px}.login-brand:after{width:260px;height:260px;background:rgba(226,168,59,.08);left:15%;bottom:-90px}.login-brand>*{position:relative;z-index:1}.login-brand h1{font-size:clamp(42px,6vw,78px);line-height:.95;margin:22px 0}.login-brand h1 span{color:#ffc46d}.login-brand p{font-size:17px;line-height:1.8;max-width:700px;color:#b8d0df}.chips{display:flex;gap:9px;flex-wrap:wrap}.chips b{font-size:11px;padding:8px 12px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(255,255,255,.06)}
.logo{width:43px;height:43px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(145deg,var(--brand),var(--brand2));color:white;font-weight:900;letter-spacing:-1px;box-shadow:0 10px 28px rgba(255,138,0,.23)}.logo.big{width:62px;height:62px;border-radius:18px;font-size:19px}.login-card{align-self:center;justify-self:center;width:min(440px,88%);background:rgba(255,255,255,.97);padding:38px;border-radius:26px;box-shadow:0 35px 90px rgba(2,15,25,.34);display:grid;gap:9px}.login-card h2{font-size:28px;margin:4px 0 15px}.login-card label{font-size:11px;font-weight:800;color:#5e7383;margin-top:5px}.login-card input{height:48px;border:1px solid #d5e2e9;border-radius:12px;padding:0 13px;background:#fbfdfe;outline:none}.login-card input:focus{border-color:#ff9d28;box-shadow:0 0 0 4px rgba(255,138,0,.09)}.mobile-logo{display:none;align-items:center;gap:10px}
.primary,.secondary,.ghost,.danger,.icon-btn{border:0;border-radius:11px;padding:10px 14px;font-weight:800;font-size:11px}.primary{background:linear-gradient(135deg,var(--brand2),var(--brand));color:#fff;box-shadow:0 8px 18px rgba(255,138,0,.18)}.secondary{background:#e9f4f8;color:#176c91;border:1px solid #d2e8f1}.ghost{background:#f3f6f8;color:#5d7180}.danger{background:#fff0f2;color:#ad3344}.icon-btn{padding:9px 11px;background:#edf3f6;color:#4e6676}.primary:hover,.secondary:hover,.ghost:hover,.icon-btn:hover{transform:translateY(-1px)}
.shell{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}aside{background:linear-gradient(180deg,var(--nav),#071724);color:#c3d4df;padding:18px 13px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:10px;padding:5px 7px 18px}.brand strong,.brand small{display:block}.brand strong{color:#fff;font-size:15px}.brand small{font-size:9px;color:#7fa0b2;margin-top:2px}.nav-group{font-size:8px;color:#64879b;font-weight:900;letter-spacing:.14em;padding:13px 10px 6px}.nav-item{width:100%;display:flex;align-items:center;gap:10px;padding:10px 11px;border:0;border-radius:11px;background:none;color:#9fb7c6;text-align:start;font-size:11px;margin:2px 0}.nav-item i{width:27px;height:27px;border-radius:8px;background:#0c2b40;display:grid;place-items:center;font-style:normal;font-size:13px}.nav-item:hover,.nav-item.active{background:#0d3047;color:#fff}.nav-item.active i{background:linear-gradient(135deg,var(--brand2),var(--brand))}.aside-foot{margin-top:auto;border-top:1px solid #173346;padding-top:12px;display:grid;gap:5px}.aside-foot a,.aside-foot button{color:#95adbc;text-decoration:none;border:0;background:none;text-align:start;padding:7px 9px;font-size:10px}.aside-foot>div{font-size:9px;display:flex;gap:7px;align-items:center;padding:7px 9px}.aside-foot i{width:7px;height:7px;border-radius:50%;background:#b85f00;box-shadow:0 0 10px #b85f00}
main{min-width:0}header{height:73px;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:20}header h1{font-size:19px;margin:2px 0}header small{font-size:9px;color:#7a8e9d}.header-actions{display:flex;align-items:center;gap:8px}.header-actions>button{border:0;border-radius:10px;background:#f0f5f8;width:36px;height:36px}.identity{display:flex;align-items:center;gap:8px;border-inline-start:1px solid var(--line);padding-inline-start:10px}.identity>div{width:35px;height:35px;border-radius:10px;background:#0d334a;color:#fff;display:grid;place-items:center;font-size:10px;font-weight:900}.identity span b,.identity span small{display:block;max-width:165px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.identity span b{font-size:11px}.identity span small{font-size:9px;color:#8798a5}.identity button{border:0;background:none}.menu{display:none}
#workspace{padding:24px 28px 48px}.toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:17px}.toolbar h2{margin:4px 0 3px;font-size:25px}.toolbar p{margin:0;color:var(--muted);font-size:11px;line-height:1.7;max-width:760px}.toolbar-actions{display:flex;gap:7px;flex-wrap:wrap}.eyebrow{font-size:8px;letter-spacing:.16em;color:#7891a2;font-weight:900}
.metric-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:11px;margin-bottom:15px}.metric{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:15px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.metric:after{content:"";position:absolute;width:70px;height:70px;border-radius:50%;background:rgba(255,138,0,.055);inset-inline-end:-24px;top:-24px}.metric small,.metric b,.metric span{display:block}.metric small{font-size:9px;color:var(--muted);font-weight:800}.metric b{font-size:23px;margin:6px 0 3px}.metric span{font-size:8px;color:#98a6b1}.metric.blue{border-top:3px solid #1689c0}.metric.green{border-top:3px solid var(--green)}.metric.gold{border-top:3px solid var(--accent)}.metric.red{border-top:3px solid var(--red)}
.grid{display:grid;grid-template-columns:2fr 1fr;gap:14px}.grid.equal{grid-template-columns:1fr 1fr}.grid.three{grid-template-columns:repeat(3,1fr)}.panel,.table-card,.card{border:1px solid var(--line);border-radius:var(--r);background:#fff;box-shadow:var(--shadow-sm);overflow:hidden}.panel{padding:18px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:13px}.panel-head h3{margin:3px 0;font-size:15px}.panel-head p{margin:0;font-size:9px;color:var(--muted)}
.table-scroll{overflow:auto}.table{width:100%;border-collapse:collapse}.table th{background:#f7fafc;color:#728493;font-size:8.5px;text-align:start;padding:11px 12px;border-bottom:1px solid var(--line);white-space:nowrap;text-transform:uppercase;letter-spacing:.05em}.table td{padding:11px 12px;border-bottom:1px solid #edf2f5;font-size:10.5px;white-space:nowrap}.table tr:last-child td{border:0}.table tbody tr:hover td{background:#fbfdfe}.badge{display:inline-flex;padding:4px 8px;border-radius:999px;background:#eef3f6;color:#536b7a;font-size:8.5px;font-weight:800}.badge.active,.badge.completed,.badge.delivered,.badge.passed,.badge.available{color:#5e3100;background:#fff9f0}.badge.ready,.badge.confirmed,.badge.allocated,.badge.packed,.badge.dispatched,.badge.in_progress{color:#126b99;background:#e8f4fb}.badge.blocked,.badge.cancelled,.badge.failed,.badge.expired{color:#a93848;background:#ffedef}.badge.quarantine,.badge.warning{color:#966915;background:#fff5d8}
.quick{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.quick button{min-height:78px;border:1px solid var(--line);border-radius:13px;background:#f9fbfc;color:#3c586a;display:grid;place-items:center;align-content:center;gap:5px}.quick button span{font-size:20px}.quick button b{font-size:9px}.quick button:hover{border-color:#a9d7e5;background:#f1fafd}.empty{min-height:220px;display:grid;place-items:center;align-content:center;text-align:center;border:1px dashed #cbdbe4;border-radius:15px;background:#fbfdfe;color:#8194a1;padding:24px}.empty b{font-size:24px;color:#1888b8;margin-bottom:4px}
.warehouse-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.warehouse-card{padding:17px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow-sm);cursor:pointer}.warehouse-card:hover{border-color:#a8d8e5;transform:translateY(-2px)}.warehouse-card .wh-icon{width:42px;height:42px;border-radius:12px;background:linear-gradient(145deg,#0e3a56,#167ba1);color:white;display:grid;place-items:center}.warehouse-card h3{margin:10px 0 3px}.warehouse-card p{font-size:9px;color:var(--muted);margin:0}.count-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-top:12px}.count-strip div{background:#f5f9fb;border-radius:9px;padding:7px;text-align:center}.count-strip b,.count-strip small{display:block}.count-strip b{font-size:13px}.count-strip small{font-size:7px;color:#8295a2}
.topology{background:linear-gradient(#e9f0f4 1px,transparent 1px),linear-gradient(90deg,#e9f0f4 1px,transparent 1px),#fbfdfe;background-size:28px 28px;padding:15px;min-height:450px;overflow:auto}.zone-block{border:1px solid #d5e3ea;border-radius:15px;background:rgba(255,255,255,.92);padding:12px;margin-bottom:10px}.zone-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.zone-title b{font-size:11px}.aisle-row{display:flex;gap:8px;overflow:auto;padding-bottom:6px}.aisle-card{min-width:190px;border:1px solid #deeaef;border-radius:12px;background:#f8fbfd;padding:9px}.aisle-card>small{font-size:8px;color:#6c8290;font-weight:900}.rack-stack{display:grid;gap:5px;margin-top:7px}.rack{border:1px solid #d4e3ea;border-radius:9px;padding:6px;background:#fff}.rack-head{display:flex;justify-content:space-between;font-size:8px}.rack-bins{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;margin-top:5px}.rack-bin{height:20px;border-radius:4px;background:#e9f2f6;border:1px solid #d4e4eb;font-size:6px;display:grid;place-items:center}.rack-bin.occupied{background:#ffe6c2;border-color:#ffc46d}.rack-bin.blocked{background:#fde1e5;border-color:#e8b5bd}
.tabs{display:flex;gap:4px;padding:4px;border:1px solid var(--line);background:#fff;border-radius:11px;margin-bottom:12px;overflow:auto}.tabs button{border:0;background:none;padding:8px 11px;border-radius:8px;color:#667b8a;font-size:9px;white-space:nowrap}.tabs button.active{background:#0f79ad;color:#fff}
.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px}.backdrop{position:absolute;inset:0;background:rgba(3,16,26,.62);backdrop-filter:blur(4px)}.dialog{position:relative;width:min(800px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:20px;padding:20px;box-shadow:0 35px 100px rgba(0,0,0,.3)}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.dialog-head h3{margin:4px 0}.dialog-head button{border:0;background:#eef3f6;border-radius:9px;width:34px;height:34px}.form{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.form label{display:grid;gap:5px;font-size:9px;color:#536a79;font-weight:800}.form input,.form select,.form textarea,.field{width:100%;min-height:41px;border:1px solid #d5e2e9;border-radius:10px;background:#fbfdfe;padding:9px 10px;outline:none}.form input:focus,.form select:focus,.form textarea:focus,.field:focus{border-color:#63bad0;box-shadow:0 0 0 3px rgba(0,168,198,.07)}.form textarea{min-height:90px}.form .wide{grid-column:1/-1}.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:7px;margin-top:6px}.checks{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;max-height:260px;overflow:auto}.checks label{display:flex;gap:7px;align-items:flex-start;border:1px solid var(--line);border-radius:8px;padding:7px}.checks input{width:auto;min-height:auto}.tag{display:inline-block;padding:4px 6px;margin:2px;border-radius:7px;background:#edf4f8;font-size:8px;color:#4b687a}
.ai-box{min-height:360px;padding:35px;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:28px;border-radius:20px;color:#d7e8f2;background:radial-gradient(circle at 15% 20%,#15506f,transparent 38%),linear-gradient(145deg,#061521,#0a293c);box-shadow:var(--shadow)}.ai-box h2{color:#fff;font-size:30px;margin:0 0 10px}.ai-box p{color:#a6becb;line-height:1.8}.ai-chat{display:grid;gap:8px}.ai-chat textarea{min-height:115px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:#fff;border-radius:12px;padding:12px}.export-buttons{display:flex;gap:6px;flex-wrap:wrap}.export-buttons a{text-decoration:none;padding:8px 10px;border-radius:8px;background:#e9f5fb;color:#0c70a6;font-size:9px;font-weight:800}
#toast{position:fixed;bottom:20px;inset-inline-end:20px;z-index:200;display:grid;gap:6px}.toast{background:#09283a;color:#fff;padding:10px 13px;border-radius:10px;font-size:10px;box-shadow:var(--shadow)}.toast.error{background:#8f2837}.toast.success{background:#5e3100}
.skeleton{height:14px;border-radius:7px;background:linear-gradient(90deg,#edf3f6 25%,#f8fbfc 50%,#edf3f6 75%);background-size:200% 100%;animation:pulse 1.2s infinite}@keyframes pulse{to{background-position:-200% 0}}
@media(max-width:1250px){.metric-grid{grid-template-columns:repeat(3,1fr)}.warehouse-grid{grid-template-columns:repeat(2,1fr)}.count-strip{grid-template-columns:repeat(3,1fr)}}
@media(max-width:950px){.shell{grid-template-columns:1fr}aside{position:fixed;inset-block:0;inset-inline-start:-275px;width:262px;transition:.22s;box-shadow:20px 0 60px rgba(0,0,0,.18)}aside.open{inset-inline-start:0}.menu{display:block}.grid,.grid.equal,.grid.three,.ai-box{grid-template-columns:1fr}.login-page{grid-template-columns:1fr}.login-brand{display:none}.mobile-logo{display:flex}}
@media(max-width:650px){header,#workspace{padding-inline:13px}.metric-grid,.warehouse-grid,.quick,.form,.checks{grid-template-columns:1fr}.toolbar{flex-direction:column}.toolbar-actions{width:100%}.toolbar-actions>*{flex:1}.identity span{display:none}.form .wide,.form-actions{grid-column:1}.count-strip{grid-template-columns:repeat(2,1fr)}}

/* DeepSmart 3PL Enterprise 2.0 visual system */
:root{--tenant-primary:#0a6f92;--tenant-accent:#18a7b8;--surface-glass:rgba(255,255,255,.84)}
body{background:radial-gradient(circle at 82% 4%,rgba(21,168,188,.09),transparent 26%),radial-gradient(circle at 5% 90%,rgba(14,83,126,.07),transparent 24%),#f5f8fa}
aside{background:linear-gradient(180deg,#061827 0%,#082233 54%,#071b29 100%);box-shadow:18px 0 70px rgba(4,24,38,.12)}
.nav-item.active{background:linear-gradient(120deg,var(--tenant-primary),var(--tenant-accent));box-shadow:0 10px 28px rgba(11,118,150,.24)}
.panel,.warehouse-card,.metric{backdrop-filter:blur(12px)}
.metric{position:relative;overflow:hidden}.metric:after{content:"";position:absolute;width:70px;height:70px;border-radius:50%;background:linear-gradient(145deg,rgba(15,126,162,.08),transparent);inset-inline-end:-24px;top:-22px}
.company-mini{display:flex;gap:8px;align-items:center;padding:6px 10px;border:1px solid #d9e6ec;background:rgba(255,255,255,.78);border-radius:12px;max-width:260px}.company-mini b,.company-mini small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.company-mini b{font-size:9px}.company-mini small{font-size:7px;color:#79909d}.company-dot{width:10px;height:10px;border-radius:50%;background:linear-gradient(145deg,var(--tenant-primary),var(--tenant-accent));box-shadow:0 0 0 4px rgba(20,151,174,.1)}
.company-hero{min-height:210px;padding:28px;border-radius:24px;color:#d9edf5;background:radial-gradient(circle at 85% 15%,rgba(42,205,215,.28),transparent 25%),linear-gradient(135deg,#051724,#0b3a52 58%,#0b6c82);display:flex;align-items:center;justify-content:space-between;gap:25px;box-shadow:0 25px 70px rgba(6,38,55,.22)}.company-hero h2{margin:7px 0;color:white;font-size:28px}.company-hero p{max-width:760px;color:#a9c7d4;line-height:1.8}.company-hero small{letter-spacing:.18em;color:#7fe0e7;font-size:8px}.readiness-ring{width:130px;height:130px;flex:0 0 130px;border-radius:50%;display:grid;place-items:center;align-content:center;background:conic-gradient(#ff8a00 calc(var(--score)*1%),rgba(255,255,255,.1) 0);position:relative}.readiness-ring:after{content:"";position:absolute;inset:10px;border-radius:50%;background:#0a3549}.readiness-ring b,.readiness-ring small{position:relative;z-index:1}.readiness-ring b{font-size:25px;color:white}.readiness-ring small{letter-spacing:0;color:#9bc0ce}.readiness-grid{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.readiness-item{display:flex;gap:5px;align-items:center;padding:7px 9px;border-radius:9px;font-size:8px}.readiness-item.ok{background:#fff9f0;color:#5e3100}.readiness-item.miss{background:#fff0e4;color:#aa5b20}.readiness-item span{font-weight:900}.brand-studio{display:grid;gap:13px}.brand-preview{border-radius:18px;overflow:hidden;border:1px solid #d9e5ea;background:#fff;box-shadow:0 18px 45px rgba(12,46,63,.1)}.preview-head{padding:18px;display:flex;gap:12px;align-items:center;background:linear-gradient(135deg,var(--brand),color-mix(in srgb,var(--brand) 68%,#071b2a));color:white}.preview-head b,.preview-head small{display:block}.preview-head small{font-size:8px;opacity:.75}.preview-logo{width:46px;height:46px;border-radius:12px;background:white;color:var(--brand);display:grid;place-items:center;font-weight:900}.preview-document{height:125px;padding:20px;display:grid;gap:9px;align-content:start}.preview-document span{height:8px;border-radius:6px;background:#eaf1f4}.preview-document span:nth-child(2){width:72%}.preview-document span:nth-child(3){width:45%}.preview-document strong{margin-top:7px;color:#365564;font-size:10px}.preview-foot{border-top:1px solid #e3ecef;padding:10px 18px;font-size:8px;color:#718995}.asset-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.asset-card{border:1px dashed #c8dce5;border-radius:11px;padding:10px;background:#f9fcfd;cursor:pointer;text-align:center}.asset-card span,.asset-card b{display:block}.asset-card span{font-size:7px;color:#718b99}.asset-card b{font-size:8px;margin:4px 0}.asset-card input{width:100%;font-size:7px}
@media(max-width:900px){.company-hero{align-items:flex-start}.asset-grid{grid-template-columns:repeat(2,1fr)}.company-mini{display:none}}
@media(max-width:620px){.company-hero{flex-direction:column}.readiness-ring{width:100px;height:100px;flex-basis:100px}.asset-grid{grid-template-columns:1fr}}

/* 2.0 enterprise experience surfaces */
.entity-list,.shipment-list{display:grid;gap:8px;padding:12px}.entity-card,.shipment-card{display:flex;align-items:center;gap:11px;padding:12px;border:1px solid #dfe9ee;border-radius:13px;background:linear-gradient(145deg,#fff,#f8fbfc)}.entity-icon{width:39px;height:39px;border-radius:11px;background:linear-gradient(145deg,var(--tenant-primary),var(--tenant-accent));color:#fff;display:grid;place-items:center;font-weight:900}.entity-main{min-width:0;flex:1}.entity-main b,.entity-main small{display:block}.entity-main b{font-size:10px}.entity-main small{font-size:8px;color:#78909e;margin-top:3px}.shipment-card{justify-content:space-between}.shipment-card h3{margin:4px 0;font-size:12px}.shipment-card p,.shipment-card small{margin:0;color:#78909e;font-size:8px}.shipment-actions{display:flex;align-items:center;gap:7px}.row-actions{display:flex;gap:4px;flex-wrap:wrap}.row-actions button,.linkish{border:0;border-radius:6px;background:#e8f3f8;color:#0d7096;padding:5px 7px;font-size:8px;cursor:pointer}.linkish{background:none;padding:0;font-weight:900}.report-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.report-card{min-height:125px;text-align:start;padding:16px;border:1px solid #dce8ee;border-radius:16px;background:linear-gradient(145deg,#fff,#f7fbfc);box-shadow:0 8px 25px rgba(13,54,74,.05);cursor:pointer;transition:.18s}.report-card:hover{transform:translateY(-3px);box-shadow:0 15px 35px rgba(13,54,74,.1);border-color:#b9d9e5}.report-card span,.report-card b,.report-card small{display:block}.report-card span{font-size:24px;color:var(--tenant-primary)}.report-card b{margin-top:12px;font-size:10px}.report-card small{margin-top:5px;color:#8498a4;font-size:8px}.ai-command{min-height:380px;padding:30px;border-radius:24px;color:#d7e8f2;background:radial-gradient(circle at 12% 12%,rgba(30,175,198,.3),transparent 32%),radial-gradient(circle at 92% 80%,rgba(37,101,166,.22),transparent 28%),linear-gradient(145deg,#04131e,#082a3e 58%,#0a4b60);display:grid;grid-template-columns:110px 1.2fr 1fr;gap:25px;align-items:center;box-shadow:0 28px 80px rgba(5,31,46,.24)}.ai-orb{width:92px;height:92px;border-radius:50%;display:grid;place-items:center;font-size:35px;background:radial-gradient(circle at 35% 30%,#ffc46d,#1aa4be 38%,#0a4163 72%);box-shadow:0 0 0 12px rgba(51,195,210,.07),0 0 65px rgba(52,213,222,.35)}.ai-command h2{color:#fff;font-size:27px;margin:7px 0}.ai-command p{color:#a9c3ce;line-height:1.75}.ai-evidence{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:12px}.ai-evidence span{padding:8px;border-radius:9px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08)}.ai-evidence b,.ai-evidence small{display:block}.ai-evidence b{color:#fff}.ai-evidence small{font-size:7px;color:#9eb9c5}.governance-list{display:grid;gap:7px;padding:12px}.governance-list div{padding:9px;border-radius:9px;background:#fff9f0;color:#5e3100;font-size:9px}.ai-answer{line-height:1.8}.ai-answer pre,#resolverOut pre{direction:ltr;text-align:left;white-space:pre-wrap;max-height:300px;overflow:auto;background:#071b29;color:#bce3ed;padding:12px;border-radius:11px}.metric-grid.compact{grid-template-columns:repeat(3,1fr)}
@media(max-width:1100px){.report-grid{grid-template-columns:repeat(2,1fr)}.ai-command{grid-template-columns:1fr}.ai-orb{width:70px;height:70px}}
@media(max-width:620px){.report-grid{grid-template-columns:1fr}.metric-grid.compact{grid-template-columns:repeat(2,1fr)}}

/* DeepSmart 3PL Enterprise 2.0 - Enterprise Control Centers */

aside{
  overflow-y:auto;
  scrollbar-width:thin;
}

#nav{
  padding-bottom:18px;
}

.nav-group{
  margin-top:4px;
}

.nav-item{
  flex-shrink:0;
}

.enterprise-status-strip{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-bottom:14px;
}

.enterprise-status-strip>div{
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  padding:12px;
}

.enterprise-status-strip small,
.enterprise-status-strip b{
  display:block;
}

.enterprise-status-strip small{
  color:var(--muted);
  font-size:8px;
}

.enterprise-status-strip b{
  margin-top:5px;
  font-size:13px;
}

@media(max-width:1250px){
  .enterprise-status-strip{
    grid-template-columns:repeat(2,1fr);
  }
}

@media(max-width:650px){
  .enterprise-status-strip{
    grid-template-columns:1fr;
  }
}


/* ================================================================
   DEEPSMART ENTERPRISE FONT STUDIO
   ================================================================ */

html[data-ds-font="cairo"],
html[data-ds-font="plex"],
html[data-ds-font="noto"]{
    font-family:
        var(--ds-user-font) !important;
}

html[data-ds-font="cairo"] body,
html[data-ds-font="cairo"] button,
html[data-ds-font="cairo"] input,
html[data-ds-font="cairo"] select,
html[data-ds-font="cairo"] textarea,
html[data-ds-font="cairo"] table,

html[data-ds-font="plex"] body,
html[data-ds-font="plex"] button,
html[data-ds-font="plex"] input,
html[data-ds-font="plex"] select,
html[data-ds-font="plex"] textarea,
html[data-ds-font="plex"] table,

html[data-ds-font="noto"] body,
html[data-ds-font="noto"] button,
html[data-ds-font="noto"] input,
html[data-ds-font="noto"] select,
html[data-ds-font="noto"] textarea,
html[data-ds-font="noto"] table{
    font-family:
        var(--ds-user-font) !important;
}


.ds-font-studio{
    margin:
        auto 12px 14px;

    padding:
        12px;

    border:
        1px solid
        rgba(120,160,200,.16);

    border-radius:
        14px;

    background:
        rgba(255,255,255,.055);

    backdrop-filter:
        blur(8px);

    flex-shrink:
        0;
}


.ds-font-studio-head{
    display:flex;
    align-items:center;
    gap:9px;
    margin-bottom:9px;
}


.ds-font-icon{
    width:32px;
    height:32px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:9px;

    font-family:
        Georgia,
        serif;

    font-size:14px;
    font-weight:700;

    background:
        rgba(65,170,230,.14);

    border:
        1px solid
        rgba(80,185,235,.18);
}


.ds-font-studio-head div{
    min-width:0;
}


.ds-font-studio-head b{
    display:block;
    font-size:11px;
    line-height:1.25;
}


.ds-font-studio-head small{
    display:block;
    margin-top:2px;

    font-size:9px;
    opacity:.58;
}


.ds-font-studio select{
    width:100%;
    height:36px;

    padding:
        0 9px;

    border-radius:
        9px;

    border:
        1px solid
        rgba(120,160,200,.18);

    color:inherit;

    background:
        rgba(255,255,255,.08);

    outline:none;

    cursor:pointer;
}


.ds-font-studio select:focus{
    border-color:
        rgba(45,155,235,.60);

    box-shadow:
        0 0 0 3px
        rgba(45,155,235,.09);
}


/* Cairo is spacious; preserve density in enterprise tables. */

html[data-ds-font="cairo"] table{
    letter-spacing:
        -.1px;
}


/* IBM Plex Arabic is excellent for compact operational data. */

html[data-ds-font="plex"] table{
    letter-spacing:
        0;
}


/* Noto keeps numeric-heavy tables highly legible. */

html[data-ds-font="noto"] table{
    letter-spacing:
        0;
}


@media(max-width:760px){

    .ds-font-studio{
        margin:
            auto 10px 10px;
    }
}


/* ================================================================
   DEEPSMART ENTERPRISE CURRENCY
   ================================================================ */

.ds-money{
    display:inline-flex;
    align-items:center;
    justify-content:flex-start;
    gap:.32em;

    white-space:nowrap;
    direction:ltr;

    font-variant-numeric:
        tabular-nums lining-nums;
}


.ds-money-value{
    display:inline-block;

    unicode-bidi:isolate;

    font-variant-numeric:
        tabular-nums lining-nums;
}


.ds-currency-symbol{
    display:inline-block;

    width:.92em;
    height:.92em;

    object-fit:contain;
    object-position:center;

    flex:0 0 auto;
}


.ds-sar-symbol{
    width:.98em;
    height:.98em;

    vertical-align:-.08em;
}


.ds-currency-text-symbol{
    display:inline-block;

    font-weight:650;
    line-height:1;
}


/* Financial cards */

.kpi .ds-money,
.metric .ds-money,
.stat .ds-money,
.card .ds-money{
    font-weight:650;
}


/* Billing / invoice / contract */

.invoice .ds-sar-symbol,
.invoice-document .ds-sar-symbol,
.billing .ds-sar-symbol,
.billing-document .ds-sar-symbol,
.contract .ds-sar-symbol,
.contract-document .ds-sar-symbol{
    width:1em;
    height:1em;
}


/* Financial reports */

.report .ds-sar-symbol,
.report-document .ds-sar-symbol,
.financial-report .ds-sar-symbol{
    width:1em;
    height:1em;
}


/* Grand totals */

.grand-total .ds-sar-symbol,
.invoice-total .ds-sar-symbol,
.billing-total .ds-sar-symbol,
.report-total .ds-sar-symbol{
    width:1.12em;
    height:1.12em;
}


/* Tables */

table .ds-money{
    min-width:max-content;
}


/* PDF / browser print */

@media print{

    .ds-money{
        display:inline-flex !important;

        break-inside:avoid;

        -webkit-print-color-adjust:
            exact;

        print-color-adjust:
            exact;
    }


    .ds-sar-symbol{
        width:.96em !important;
        height:.96em !important;

        object-fit:contain !important;
    }
}


/* ================================================================
   DEEPSMART COUNTRY / CURRENCY UX
   ================================================================ */

.ds-country-currency-panel{
    margin-bottom:18px;

    border:
        1px solid
        rgba(35,115,210,.16);

    background:
        radial-gradient(
            circle at top right,
            rgba(45,180,230,.08),
            transparent 30%
        ),
        var(--panel-bg,#fff);
}


.ds-locale-grid{
    display:grid;

    grid-template-columns:
        repeat(2,minmax(0,1fr));

    gap:14px;
}


.ds-locale-grid label{
    display:flex;
    flex-direction:column;
    gap:7px;
}


.ds-locale-grid label>span{
    font-size:12px;
    font-weight:700;
    opacity:.72;
}


.ds-locale-grid input{
    width:100%;
    min-height:44px;

    padding:
        0 12px;

    border-radius:
        12px;

    border:
        1px solid
        rgba(20,50,90,.14);

    background:
        var(--input-bg,#fff);

    color:inherit;

    outline:none;
}


.ds-locale-grid input:focus{
    border-color:
        rgba(30,120,230,.55);

    box-shadow:
        0 0 0 3px
        rgba(30,120,230,.09);
}


.ds-currency-auto-info{
    min-height:38px;

    display:flex;
    align-items:center;
    gap:8px;

    margin-top:12px;
    padding:9px 12px;

    border-radius:11px;

    background:
        rgba(35,155,95,.07);

    border:
        1px solid
        rgba(35,155,95,.13);

    font-size:12px;
}


.ds-currency-preview-grid{
    display:grid;

    grid-template-columns:
        repeat(5,minmax(0,1fr));

    gap:9px;

    margin-top:14px;
}


.ds-currency-preview-grid>div{
    padding:12px;

    border-radius:12px;

    border:
        1px solid
        rgba(30,70,120,.10);

    background:
        rgba(255,255,255,.54);
}


.ds-currency-preview-grid small{
    display:block;

    margin-bottom:6px;

    opacity:.58;
}


.ds-currency-preview-grid strong{
    display:flex;
    align-items:center;

    min-height:26px;

    direction:ltr;

    font-variant-numeric:
        tabular-nums;
}


.ds-currency-preview-grid
.ds-sar-symbol{
    width:1.05em;
    height:1.05em;
}


@media(max-width:1000px){

    .ds-currency-preview-grid{
        grid-template-columns:
            repeat(3,minmax(0,1fr));
    }
}


@media(max-width:700px){

    .ds-locale-grid,
    .ds-currency-preview-grid{
        grid-template-columns:1fr;
    }
}


/* ==================================================================
   DeepSmart Inbound Operational Workflow
   ================================================================== */

.inbound-workspace{
    min-width:0;
}

.inbound-flow-strip{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:8px;
    margin:0 0 18px;
}

.flow-step{
    display:flex;
    align-items:center;
    gap:8px;
    padding:10px 12px;
    border:1px solid var(--border,#dce6ec);
    border-radius:12px;
    background:#f8fbfd;
    opacity:.65;
}

.flow-step span{
    display:grid;
    place-items:center;
    width:24px;
    height:24px;
    border-radius:50%;
    background:#e7eef3;
    font-size:11px;
    font-weight:800;
}

.flow-step b{
    font-size:11px;
}

.flow-step.current{
    opacity:1;
    border-color:#2898c7;
    box-shadow:0 0 0 2px rgba(40,152,199,.08);
}

.flow-step.current span{
    background:#dff4fd;
    color:#087cae;
}

.flow-step.done{
    opacity:1;
    border-color:#ffc46d;
    background:#fff9f0;
}

.flow-step.done span{
    background:#ffe6c2;
    color:#5e3100;
}

.record-hero{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin-bottom:14px;
}

.record-hero>div{
    padding:12px 14px;
    border:1px solid var(--border,#dce6ec);
    border-radius:12px;
    background:#fff;
}

.record-hero small{
    display:block;
    margin-bottom:5px;
    color:#7890a0;
    font-size:8px;
    font-weight:800;
    letter-spacing:.12em;
}

.record-hero b{
    font-size:11px;
    word-break:break-word;
}

.workflow-actions{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:0 0 15px;
    padding:12px;
    border-radius:12px;
    background:#f5f9fb;
    border:1px solid #e0e9ee;
}

.inbound-actions{
    white-space:nowrap;
}

.inbound-actions button{
    padding:6px 9px;
    font-size:9px;
}

.inbound-record-link{
    font-weight:800;
}

.inbound-detail-grid{
    align-items:start;
}

.notice{
    padding:11px 13px;
    border-radius:10px;
    margin-bottom:12px;
    font-size:10px;
    line-height:1.6;
}

.notice.info{
    border:1px solid #cce8f4;
    background:#f1faff;
    color:#24586e;
}

.scanner-workspace{
    min-width:0;
}

.scanner-lines{
    display:grid;
    gap:10px;
}

.scanner-line-card{
    padding:14px;
    border:1px solid #dce6ec;
    border-radius:14px;
    background:#fff;
}

.scanner-line-head{
    display:flex;
    align-items:center;
    gap:16px;
    margin-bottom:12px;
}

.scanner-line-head>div{
    display:flex;
    flex-direction:column;
    gap:3px;
}

.scanner-line-head small{
    color:#7890a0;
    font-size:8px;
    font-weight:800;
}

.scanner-route{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:15px;
    padding:10px;
    margin-bottom:10px;
    border-radius:10px;
    background:#f6f9fb;
    font-size:11px;
    font-weight:700;
}

.scanner-checks{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:7px;
}

.scanner-checks button{
    min-height:38px;
    border-radius:9px;
    border:1px solid #d6e0e6;
    background:#fff;
    cursor:pointer;
}

.scanner-checks button.verified{
    border-color:#ffc46d;
    background:#fff9f0;
    color:#5e3100;
}

@media(max-width:900px){
    .inbound-workspace,
    .scanner-workspace{
        min-width:0;
        width:100%;
    }

    .inbound-flow-strip{
        grid-template-columns:1fr;
    }

    .record-hero{
        grid-template-columns:1fr 1fr;
    }

    .scanner-checks{
        grid-template-columns:1fr 1fr;
    }
}

/* ==================================================================
   DeepSmart 3PL Inbound UX
   Global Enterprise Modal / Workspace Framework
   ------------------------------------------------------------------
   Purpose:
   - Always center dialogs inside the real browser viewport.
   - Never allow RTL dialogs to overflow the right edge.
   - Large WMS workspaces stay inside viewport.
   - Header/action zones remain visible.
   - Body content scrolls instead of the entire dialog escaping screen.
   ================================================================== */

html.ds-modal-open,
body.ds-modal-open{
    overflow:hidden !important;
}

/*
 * Overlay itself owns the viewport.
 * Force physical centering; direction must not affect geometry.
 */
#modal:not(.hidden){
    position:fixed !important;
    inset:0 !important;

    display:flex !important;
    align-items:center !important;
    justify-content:center !important;

    width:100vw !important;
    height:100dvh !important;

    min-width:0 !important;
    min-height:0 !important;

    padding:
        max(18px,env(safe-area-inset-top))
        max(18px,env(safe-area-inset-right))
        max(18px,env(safe-area-inset-bottom))
        max(18px,env(safe-area-inset-left))
        !important;

    box-sizing:border-box !important;

    overflow:hidden !important;

    transform:none !important;
    translate:none !important;

    z-index:10000 !important;
}

/*
 * Actual shell is tagged by modal() at runtime.
 */
#modal .ds-modal-shell{
    position:relative !important;

    inset:auto !important;

    margin:0 auto !important;

    width:min(
        900px,
        calc(100vw - 36px)
    ) !important;

    max-width:calc(
        100vw - 36px
    ) !important;

    min-width:0 !important;

    height:auto !important;

    max-height:calc(
        100dvh - 36px
    ) !important;

    overflow:hidden !important;

    transform:none !important;
    translate:none !important;

    box-sizing:border-box !important;

    border-radius:22px !important;

    box-shadow:
        0 30px 90px rgba(3,25,40,.28),
        0 8px 28px rgba(3,25,40,.12)
        !important;
}

/*
 * WMS / Scanner / Receipt workspaces.
 */
#modal .ds-modal-shell.ds-modal-xl{
    width:min(
        1360px,
        calc(100vw - 36px)
    ) !important;

    max-width:calc(
        100vw - 36px
    ) !important;
}

/*
 * Modal content can never force shell beyond viewport.
 */
#modalBody{
    width:100% !important;
    max-width:100% !important;

    min-width:0 !important;

    max-height:calc(
        100dvh - 155px
    ) !important;

    overflow-x:auto !important;
    overflow-y:auto !important;

    box-sizing:border-box !important;

    overscroll-behavior:contain;
    scrollbar-gutter:stable;
}

/*
 * Kill legacy minimum widths that caused the RTL viewport overflow.
 */
#modalBody .inbound-workspace,
#modalBody .enterprise-workspace,
#modalBody .enterprise-receipt,
#modalBody .scanner-workspace{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;

    margin:0 !important;

    box-sizing:border-box !important;
}

/*
 * Grids must be allowed to shrink.
 */
#modalBody .grid,
#modalBody .metric-grid,
#modalBody .receipt-main-layout,
#modalBody .record-hero,
#modalBody .receipt-kpi-grid,
#modalBody .receipt-status-strip,
#modalBody .decision-grid{
    min-width:0 !important;
}

#modalBody .grid > *,
#modalBody .metric-grid > *,
#modalBody .receipt-main-layout > *,
#modalBody .record-hero > *,
#modalBody .receipt-kpi-grid > *,
#modalBody .receipt-status-strip > *,
#modalBody .decision-grid > *{
    min-width:0 !important;
}

/*
 * Long numbers / UUIDs must wrap rather than widen the dialog.
 * Later we remove raw UUIDs from operational UI completely.
 */
#modalBody td,
#modalBody th,
#modalBody b,
#modalBody span,
#modalBody p{
    overflow-wrap:anywhere;
}

/*
 * Tables remain usable without expanding the workspace.
 */
#modalBody .table-card,
#modalBody table{
    max-width:100%;
}

#modalBody .table-card{
    overflow-x:auto;
}

#modalBody table{
    width:100%;
}

/*
 * Form layout optimized for enterprise modal use.
 */
#modalBody .form{
    width:100%;
    max-width:100%;
    min-width:0;

    box-sizing:border-box;
}

#modalBody input,
#modalBody select,
#modalBody textarea{
    width:100%;
    max-width:100%;
    min-width:0;
    box-sizing:border-box;
}

/*
 * RTL affects text direction only, never physical viewport placement.
 */
html[dir="rtl"] #modalBody,
body[dir="rtl"] #modalBody{
    direction:rtl;
    text-align:right;
}

html[dir="ltr"] #modalBody,
body[dir="ltr"] #modalBody{
    direction:ltr;
    text-align:left;
}

/*
 * Action zone.
 */
#modalBody .workflow-actions,
#modalBody .form-actions{
    max-width:100%;
    box-sizing:border-box;

    display:flex;
    flex-wrap:wrap;

    gap:8px;
}

/*
 * Close button must stay visible on both Arabic and English.
 */
#modal .ds-modal-shell button[onclick="closeModal()"]{
    position:relative;
    z-index:4;
}

/* Desktop medium */
@media (max-width:1200px){

    #modal .ds-modal-shell,
    #modal .ds-modal-shell.ds-modal-xl{
        width:calc(100vw - 28px) !important;
        max-width:calc(100vw - 28px) !important;
    }

    #modal:not(.hidden){
        padding:14px !important;
    }

    #modalBody .receipt-main-layout{
        grid-template-columns:1fr !important;
    }

}

/* Tablet / narrow desktop */
@media (max-width:900px){

    #modal:not(.hidden){
        align-items:stretch !important;
        padding:8px !important;
    }

    #modal .ds-modal-shell,
    #modal .ds-modal-shell.ds-modal-xl{
        width:calc(100vw - 16px) !important;
        max-width:calc(100vw - 16px) !important;

        height:calc(100dvh - 16px) !important;
        max-height:calc(100dvh - 16px) !important;

        border-radius:16px !important;
    }

    #modalBody{
        max-height:calc(100dvh - 125px) !important;
    }

    #modalBody .record-hero,
    #modalBody .receipt-kpi-grid{
        grid-template-columns:
            repeat(2,minmax(0,1fr))
            !important;
    }

    #modalBody .receipt-status-strip{
        grid-template-columns:
            repeat(2,minmax(0,1fr))
            !important;
    }

}

/* Mobile */
@media (max-width:600px){

    #modal:not(.hidden){
        padding:0 !important;
    }

    #modal .ds-modal-shell,
    #modal .ds-modal-shell.ds-modal-xl{
        width:100vw !important;
        max-width:100vw !important;

        height:100dvh !important;
        max-height:100dvh !important;

        border-radius:0 !important;
    }

    #modalBody{
        max-height:calc(100dvh - 112px) !important;
    }

    #modalBody .record-hero,
    #modalBody .receipt-kpi-grid,
    #modalBody .receipt-status-strip,
    #modalBody .decision-grid{
        grid-template-columns:1fr !important;
    }

    #modalBody .workflow-actions button,
    #modalBody .form-actions button{
        flex:1 1 auto;
    }

}

/* === DEEPSMART INBOUND WORKFLOW START === */
/* DeepSmart 3PL Enterprise — Inbound Operational Architecture */
.ds-inbound-shell{width:100%;max-width:100%;min-width:0}.ds-workspace-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 20px;margin-bottom:14px;border:1px solid #dce7ed;border-radius:18px;background:linear-gradient(135deg,#fff,#f5fafc)}.ds-workspace-head small{display:block;margin:8px 0 3px;color:#7790a0;font-size:8px;font-weight:800;letter-spacing:.14em}.ds-workspace-head h2{margin:0;font-size:22px}.ds-workspace-head p{margin:6px 0 0;color:#687f8f;font-size:11px}.ds-workspace-actions,.ds-ib-actions{display:flex;flex-wrap:wrap;gap:8px}.ds-back{padding:5px 8px}.ds-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.ds-kpis>div{min-width:0;padding:14px 15px;border:1px solid #dce7ed;border-radius:14px;background:#fff}.ds-kpis small{display:block;margin-bottom:5px;color:#7890a0;font-size:8px;font-weight:800;letter-spacing:.09em}.ds-kpis b{font-size:19px}.ds-kpis .ok{border-color:#ffc46d;background:#fff9f0}.ds-kpis .warn{border-color:#efd2a1;background:#fffaf1}.ds-smart-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.ds-smart{min-width:100px;padding:10px 12px;border:1px solid #d9e5eb;border-radius:12px;background:#fff;cursor:pointer;text-align:start}.ds-smart span{display:block;font-size:13px;font-weight:900;color:#173247}.ds-smart small{display:block;margin-top:3px;color:#768b99;font-size:8px;font-weight:800;letter-spacing:.07em}.ds-inbound-tabs{display:flex;gap:7px;margin:0 0 12px;padding:5px;border:1px solid #dce7ed;border-radius:12px;background:#f6f9fb}.ds-inbound-tabs button{padding:8px 11px;border:0;border-radius:8px;background:transparent;color:#647b8a;font-size:9px;font-weight:800;cursor:pointer}.ds-inbound-tabs button.active{background:#fff;color:#1789b6;box-shadow:0 1px 5px rgba(20,70,95,.08)}.ds-status{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;font-size:8px;font-weight:800}.ds-status.pending{background:#eef3f6;color:#6a7f8c}.ds-status.ok{background:#fff9f0;color:#5e3100}.ds-status.warn{background:#fff0d8;color:#9b610e}.ds-quality-gate{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px;padding:12px 14px;border-radius:12px;border:1px solid #dce7ed}.ds-quality-gate b{font-size:11px}.ds-quality-gate span{color:#6d8290;font-size:9px}.ds-quality-gate.required{background:#fff9ef;border-color:#ecd2a7}.ds-quality-gate.standard{background:#fff9f0;border-color:#ffe6c2}.ds-receipt-wizard label{display:block;font-size:10px;font-weight:800}.ds-receipt-wizard select{width:100%;min-height:44px;margin-top:6px}.ds-wizard-preview{margin-top:12px}.ds-context-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}.ds-context-grid>div{padding:12px 13px;border:1px solid #dce7ed;border-radius:11px;background:#fff}.ds-context-grid small{display:block;color:#7890a0;font-size:8px;font-weight:800}.ds-context-grid b{display:block;margin-top:4px;font-size:11px}.ds-line-preview{overflow:auto;border:1px solid #dce7ed;border-radius:13px;background:#fff}.ds-line-preview table{width:100%;border-collapse:collapse}.ds-line-preview th,.ds-line-preview td{padding:10px 11px;border-bottom:1px solid #e9eff3;text-align:start;font-size:9px}.ds-line-preview th{background:#f7fafc;color:#6f8593;font-size:8px}.ds-create-receipt{margin-top:10px}.ds-scanner-grid{display:grid;gap:10px}.ds-scan-line{padding:14px;border:1px solid #dce7ed;border-radius:14px;background:#fff}.ds-scan-head{display:flex;align-items:center;gap:12px}.ds-scan-head b{font-size:12px}.ds-scan-head span{font-weight:800}.ds-scan-route{margin:10px 0;padding:9px 10px;border-radius:9px;background:#f5f8fa;text-align:center;font-size:10px;font-weight:800}.ds-scan-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.ds-scan-actions button{min-height:40px;border:1px solid #d7e1e7;border-radius:9px;background:#fff;cursor:pointer;font-size:9px;font-weight:800}.ds-scan-actions button.done{border-color:#ffc46d;background:#fff9f0;color:#5e3100}.panel table td>div>small{display:block;color:#718695;font-size:8px;margin-top:2px}
@media(max-width:1100px){.ds-kpis,.ds-context-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ds-workspace-head{flex-direction:column}.ds-scan-actions{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.ds-kpis,.ds-context-grid{grid-template-columns:1fr}.ds-scan-actions{grid-template-columns:1fr}.ds-smart{flex:1 1 45%}.ds-inbound-tabs{overflow-x:auto}}
/* === DEEPSMART INBOUND WORKFLOW END === */

/* ==================================================================
   DeepSmart 3PL Inbound UX
   Receipt operational correction
   ================================================================== */

.ds-receipt-number-flow{
    display:grid;
    grid-template-columns:
        minmax(180px,.8fr)
        auto
        minmax(260px,1.2fr);

    align-items:center;

    gap:14px;

    margin:14px 0;
    padding:14px;

    border:1px solid #d7e5ed;
    border-radius:15px;

    background:#f8fbfd;
}

.ds-doc-node{
    min-width:0;

    padding:12px 14px;

    border:1px solid #dce8ee;
    border-radius:12px;

    background:#fff;
}

.ds-doc-node small{
    display:block;

    margin-bottom:4px;

    font-size:8px;
    font-weight:900;

    color:#748c9b;

    letter-spacing:.10em;
}

.ds-doc-node b{
    display:block;

    font-size:12px;
    overflow-wrap:anywhere;
}

.ds-doc-node span{
    display:block;

    margin-top:4px;

    color:#748795;

    font-size:9px;
    line-height:1.5;
}

.ds-doc-node.target{
    border-color:#b9deed;

    background:
        linear-gradient(
            135deg,
            #f1fafe,
            #fff
        );
}

.ds-doc-node.target b{
    color:#147da7;
}

.ds-doc-arrow{
    color:#2498c2;

    font-size:22px;
    font-weight:900;

    text-align:center;
}

.ds-receipt-create-note{
    display:flex;
    flex-direction:column;

    gap:4px;

    margin:12px 0;
    padding:11px 13px;

    border-inline-start:
        4px solid #279ac3;

    background:#f3fafc;

    border-radius:8px;
}

.ds-receipt-create-note b{
    color:#227da0;

    font-size:8px;
    letter-spacing:.08em;
}

.ds-receipt-create-note span{
    color:#536d7d;

    font-size:10px;
    line-height:1.7;
}

.ds-product-cell{
    display:flex;
    flex-direction:column;

    gap:2px;
}

.ds-product-cell small{
    color:#718796;
}

.ds-received-inline{
    width:110px !important;
    min-width:90px !important;

    padding:7px 9px !important;

    border:1px solid #9ecfe2 !important;
    border-radius:8px !important;

    background:#fff !important;

    text-align:center;

    font-weight:800;

    outline:none;
}

.ds-received-inline:focus{
    border-color:#1e96c1 !important;

    box-shadow:
        0 0 0 3px
        rgba(30,150,193,.12);
}

.ds-received-inline:disabled{
    opacity:.6;
}

.ds-pending-value{
    color:#91a3ad;
}

.ds-create-rcv-btn{
    min-width:210px;
}

@media(max-width:760px){

    .ds-receipt-number-flow{
        grid-template-columns:1fr;
    }

    .ds-doc-arrow{
        transform:rotate(90deg);
    }

    .ds-received-inline{
        width:100% !important;
    }

}

/* ==================================================================
   DeepSmart 3PL Inbound UX
   QC -> Directed Putaway operational handoff
   ================================================================== */

.ds-next-stage{
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;

    gap:14px;

    margin:14px 0;
    padding:15px 17px;

    border-radius:15px;
    border:1px solid #cfe3ec;

    background:
        linear-gradient(
            135deg,
            #f7fcfe,
            #ffffff
        );
}

.ds-next-stage.ready-putaway{
    border-color:#ffc46d;

    background:
        linear-gradient(
            135deg,
            #fff9f0,
            #ffffff
        );
}

.ds-next-stage.waiting-qc{
    border-color:#efdba8;

    background:
        linear-gradient(
            135deg,
            #fff9ec,
            #ffffff
        );
}

.ds-next-stage-mark{
    display:grid;
    place-items:center;

    width:42px;
    height:42px;

    border-radius:12px;

    background:#fff9f0;
    color:#b85f00;

    font-size:21px;
    font-weight:900;
}

.ds-next-stage.waiting-qc
.ds-next-stage-mark{
    background:#fff0ce;
    color:#a66c14;
}

.ds-next-stage-copy{
    min-width:0;
}

.ds-next-stage-copy small{
    display:block;

    margin-bottom:3px;

    color:#748d9b;

    font-size:8px;
    font-weight:900;
    letter-spacing:.1em;
}

.ds-next-stage-copy h3{
    margin:0 0 4px;

    font-size:13px;
}

.ds-next-stage-copy p{
    max-width:760px;

    margin:0;

    color:#637b89;

    font-size:9px;
    line-height:1.7;
}

.ds-next-stage-action{
    white-space:nowrap;
}

.ds-suggested-bin{
    display:flex;
    flex-direction:column;

    gap:2px;
}

.ds-suggested-bin b{
    color:#167fa8;
}

.ds-suggested-bin small{
    color:#7a909d;

    font-size:8px;
}

@media(max-width:760px){

    .ds-next-stage{
        grid-template-columns:1fr;
    }

    .ds-next-stage-action{
        white-space:normal;
    }

}

/* ==================================================================
   DeepSmart 2.4.2
   User-controlled font scale
   ================================================================== */

:root{
    --ds-font-scale:1;
}

/*
 * Scale typography globally while preserving structural dimensions.
 */
body{
    font-size:
        calc(
            14px *
            var(--ds-font-scale)
        );
}

/*
 * Most controls should follow the user's selected text scale.
 */
button,
input,
select,
textarea,
table{
    font-size:inherit;
}

/*
 * Scale common small text that historically used fixed px values.
 */
.panel small,
.ds-kpis small,
.ds-smart small,
.ds-product-cell small,
.ds-suggested-bin small,
.ds-next-stage-copy small,
.ds-putaway-engine-info small{
    font-size:
        calc(
            8px *
            var(--ds-font-scale)
        ) !important;
}

.panel td,
.panel th,
.ds-kpis,
.ds-smart,
.ds-next-stage,
.ds-putaway-engine-info{
    font-size:
        calc(
            10px *
            var(--ds-font-scale)
        );
}

.ds-font-scale-control{
    margin-top:12px;
    padding-top:11px;

    border-top:
        1px solid
        rgba(255,255,255,.10);
}

.ds-font-scale-head{
    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:8px;

    margin-bottom:8px;
}

.ds-font-scale-head span{
    font-size:10px;
    font-weight:800;
}

.ds-font-scale-head b{
    min-width:46px;

    padding:4px 7px;

    border-radius:8px;

    background:
        rgba(255,255,255,.08);

    text-align:center;

    font-size:9px;
}

.ds-font-scale-track{
    display:grid;

    grid-template-columns:
        20px minmax(0,1fr) 24px;

    align-items:center;

    gap:7px;
}

.ds-font-size-symbol{
    display:block;

    opacity:.72;

    text-align:center;

    font-weight:800;
}

.ds-font-size-symbol.small{
    font-size:9px;
}

.ds-font-size-symbol.large{
    font-size:15px;
}

.ds-font-scale-slider{
    width:100%;

    cursor:ew-resize;

    accent-color:#35a8d4;
}

.ds-font-scale-slider:hover{
    filter:brightness(1.12);
}

.ds-font-scale-labels{
    display:flex;
    justify-content:space-between;

    padding-inline:27px 31px;
    margin-top:4px;

    opacity:.55;

    font-size:7px;
}

/*
 * Keep tables readable at increased scale.
 */
table th,
table td{
    line-height:
        calc(
            1.45 *
            var(--ds-font-scale)
        );
}

/*
 * Prevent larger typography from forcing horizontal overflow.
 */
.panel,
.card,
.ds-kpis > *,
.ds-smart,
.sidebar,
.sidebar *{
    min-width:0;
}

@media(max-width:900px){

    body{
        font-size:
            calc(
                13px *
                var(--ds-font-scale)
            );
    }

}

/* ==================================================================
   DeepSmart Inbound UX
   Sidebar typography enhancement
   ================================================================== */

/*
 * Main sidebar navigation labels:
 * slightly larger and clearly bold,
 * while keeping icons and layout dimensions stable.
 */
.sidebar .menu-item,
.sidebar .nav-item,
.sidebar a,
.sidebar button{
    font-weight:700 !important;
}

/*
 * Text labels inside navigation rows.
 */
.sidebar .menu-item span,
.sidebar .nav-item span,
.sidebar a span,
.sidebar button span{
    font-size:
        calc(
            11.5px *
            var(--ds-font-scale,1)
        ) !important;

    font-weight:700 !important;

    line-height:1.45 !important;
}

/*
 * Section headings such as OPERATIONS / ENTERPRISE / ADMIN.
 */
.sidebar .section-title,
.sidebar .menu-section-title,
.sidebar .sidebar-section-title,
.sidebar small{
    font-size:
        calc(
            8.5px *
            var(--ds-font-scale,1)
        ) !important;

    font-weight:800 !important;

    letter-spacing:.08em;
}

/*
 * Active menu should stand out slightly more.
 */
.sidebar .menu-item.active,
.sidebar .nav-item.active,
.sidebar a.active{
    font-weight:800 !important;
}

/*
 * Do not enlarge menu icons with the text.
 */
.sidebar svg,
.sidebar i,
.sidebar .icon,
.sidebar .menu-icon,
.sidebar .nav-icon{
    font-size:inherit;
    flex:0 0 auto;
}

/*
 * Prevent larger labels from overflowing.
 */
.sidebar .menu-item,
.sidebar .nav-item,
.sidebar a,
.sidebar button{
    min-width:0;
}

.sidebar .menu-item span,
.sidebar .nav-item span,
.sidebar a span,
.sidebar button span{
    overflow-wrap:anywhere;
}


/* ==================================================================
   DeepSmart Inbound UX
   Sidebar Typography Hard Override
   --------------------------------------------------------------
   Important:
   Sidebar labels are intentionally independent from --ds-font-scale.
   ================================================================== */

/* --------------------------------------------------------------
   Primary navigation rows
   -------------------------------------------------------------- */

.sidebar .menu-item,
.sidebar .nav-item,
.sidebar .sidebar-item,
.sidebar .menu-link,
.sidebar .nav-link,
.sidebar a,
.sidebar button,

#sidebar .menu-item,
#sidebar .nav-item,
#sidebar .sidebar-item,
#sidebar .menu-link,
#sidebar .nav-link,
#sidebar a,
#sidebar button,

aside.sidebar a,
aside.sidebar button{
    font-size:13px !important;
    font-weight:700 !important;
    line-height:1.45 !important;
}


/* --------------------------------------------------------------
   Actual text nodes / labels inside menu items
   -------------------------------------------------------------- */

.sidebar .menu-item > span,
.sidebar .nav-item > span,
.sidebar .sidebar-item > span,
.sidebar .menu-link > span,
.sidebar .nav-link > span,

.sidebar .menu-item .label,
.sidebar .nav-item .label,
.sidebar .sidebar-item .label,
.sidebar .menu-label,
.sidebar .nav-label,

.sidebar a > span,
.sidebar button > span,

#sidebar .menu-item > span,
#sidebar .nav-item > span,
#sidebar .sidebar-item > span,
#sidebar .menu-link > span,
#sidebar .nav-link > span,

#sidebar .menu-item .label,
#sidebar .nav-item .label,
#sidebar .sidebar-item .label,
#sidebar .menu-label,
#sidebar .nav-label,

#sidebar a > span,
#sidebar button > span{
    font-size:13px !important;
    font-weight:700 !important;
    line-height:1.45 !important;

    letter-spacing:0 !important;
}


/* --------------------------------------------------------------
   Arabic menu typography
   -------------------------------------------------------------- */

html[dir="rtl"] .sidebar .menu-item,
html[dir="rtl"] .sidebar .nav-item,
html[dir="rtl"] .sidebar a,
html[dir="rtl"] .sidebar button,

body[dir="rtl"] .sidebar .menu-item,
body[dir="rtl"] .sidebar .nav-item,
body[dir="rtl"] .sidebar a,
body[dir="rtl"] .sidebar button{
    font-size:13px !important;
    font-weight:700 !important;
}


/* --------------------------------------------------------------
   Active selected menu row
   -------------------------------------------------------------- */

.sidebar .menu-item.active,
.sidebar .nav-item.active,
.sidebar .sidebar-item.active,
.sidebar .menu-link.active,
.sidebar .nav-link.active,
.sidebar a.active,

#sidebar .menu-item.active,
#sidebar .nav-item.active,
#sidebar a.active{
    font-weight:800 !important;
}

.sidebar .menu-item.active span,
.sidebar .nav-item.active span,
.sidebar a.active span,

#sidebar .menu-item.active span,
#sidebar .nav-item.active span,
#sidebar a.active span{
    font-weight:800 !important;
}


/* --------------------------------------------------------------
   Group headings:
   OPERATIONS / ENTERPRISE / BUSINESS / ADMIN
   -------------------------------------------------------------- */

.sidebar .section-title,
.sidebar .menu-section-title,
.sidebar .sidebar-section-title,
.sidebar .nav-section-title,
.sidebar .section-label,
.sidebar .menu-group-title,

#sidebar .section-title,
#sidebar .menu-section-title,
#sidebar .sidebar-section-title,
#sidebar .nav-section-title,
#sidebar .section-label,
#sidebar .menu-group-title{
    font-size:9px !important;
    font-weight:800 !important;

    letter-spacing:.12em !important;

    opacity:.78;
}


/* --------------------------------------------------------------
   Preserve icon dimensions — text only gets larger
   -------------------------------------------------------------- */

.sidebar svg,
.sidebar .icon,
.sidebar .menu-icon,
.sidebar .nav-icon,

#sidebar svg,
#sidebar .icon,
#sidebar .menu-icon,
#sidebar .nav-icon{
    flex:0 0 auto !important;

    font-size:inherit;
}


/* --------------------------------------------------------------
   Prevent label clipping after enlargement
   -------------------------------------------------------------- */

.sidebar .menu-item,
.sidebar .nav-item,
.sidebar .sidebar-item,
.sidebar a,
.sidebar button,

#sidebar .menu-item,
#sidebar .nav-item,
#sidebar .sidebar-item,
#sidebar a,
#sidebar button{
    min-width:0 !important;
}

.sidebar .menu-item span,
.sidebar .nav-item span,
.sidebar a span,
.sidebar button span,

#sidebar .menu-item span,
#sidebar .nav-item span,
#sidebar a span,
#sidebar button span{
    overflow:visible !important;

    text-overflow:clip !important;

    white-space:normal !important;
}


/* --------------------------------------------------------------
   Do NOT let global user font scale shrink sidebar labels.
   This is deliberate.
   -------------------------------------------------------------- */

.sidebar,
#sidebar{
    --ds-sidebar-font-size:13px;
}


/* ==================================================================
   DeepSmart Inbound UX
   Unified Global Typography Scale
   ================================================================== */

:root{
    --ds-font-scale:1;

    --ds-font-xs:8px;
    --ds-font-sm:10px;
    --ds-font-md:12px;
    --ds-font-base:14px;
    --ds-font-lg:16px;
    --ds-font-xl:20px;
    --ds-font-2xl:26px;
}

/* --------------------------------------------------------------
   Global baseline
   -------------------------------------------------------------- */

html,
body{
    font-size:
        calc(
            var(--ds-font-base) *
            var(--ds-font-scale)
        ) !important;
}

/* --------------------------------------------------------------
   Standard text / controls
   -------------------------------------------------------------- */

button,
input,
select,
textarea,
label,
table,
th,
td,
p,
span{
    font-size:inherit;
}

/* --------------------------------------------------------------
   Headings
   -------------------------------------------------------------- */

h1{
    font-size:
        calc(
            var(--ds-font-2xl) *
            var(--ds-font-scale)
        ) !important;
}

h2{
    font-size:
        calc(
            var(--ds-font-xl) *
            var(--ds-font-scale)
        ) !important;
}

h3{
    font-size:
        calc(
            var(--ds-font-lg) *
            var(--ds-font-scale)
        ) !important;
}

/* --------------------------------------------------------------
   Secondary / helper text
   -------------------------------------------------------------- */

small,
.muted,
.subtext,
.subtitle,
.helper-text,
.panel small,
.card small,
.ds-smart small,
.ds-kpis small,
.ds-product-cell small,
.ds-suggested-bin small,
.ds-next-stage-copy small,
.ds-putaway-engine-info small{
    font-size:
        calc(
            var(--ds-font-xs) *
            var(--ds-font-scale)
        ) !important;
}

/* --------------------------------------------------------------
   Tables
   -------------------------------------------------------------- */

table th{
    font-size:
        calc(
            var(--ds-font-sm) *
            var(--ds-font-scale)
        ) !important;

    font-weight:700;
}

table td{
    font-size:
        calc(
            var(--ds-font-sm) *
            var(--ds-font-scale)
        ) !important;

    line-height:1.55;
}

/* --------------------------------------------------------------
   Buttons
   -------------------------------------------------------------- */

button,
.btn,
.primary,
.secondary,
.ghost,
.linkish{
    font-size:
        calc(
            var(--ds-font-sm) *
            var(--ds-font-scale)
        ) !important;

    font-weight:700;
}

/* --------------------------------------------------------------
   Inputs / selects
   -------------------------------------------------------------- */

input,
select,
textarea{
    font-size:
        calc(
            var(--ds-font-sm) *
            var(--ds-font-scale)
        ) !important;
}

/* --------------------------------------------------------------
   KPI / cards
   -------------------------------------------------------------- */

.ds-kpis b,
.metric b,
.card-value{
    font-size:
        calc(
            var(--ds-font-xl) *
            var(--ds-font-scale)
        ) !important;
}

/* --------------------------------------------------------------
   Sidebar
   baseline remains slightly larger than system text,
   but follows the same scale proportionally.
   -------------------------------------------------------------- */

.sidebar .menu-item,
.sidebar .nav-item,
.sidebar .sidebar-item,
.sidebar .menu-link,
.sidebar .nav-link,
.sidebar a,
.sidebar button,

#sidebar .menu-item,
#sidebar .nav-item,
#sidebar .sidebar-item,
#sidebar .menu-link,
#sidebar .nav-link,
#sidebar a,
#sidebar button{
    font-size:
        calc(
            13px *
            var(--ds-font-scale)
        ) !important;

    font-weight:700 !important;
}

.sidebar .menu-item span,
.sidebar .nav-item span,
.sidebar .sidebar-item span,
.sidebar a span,
.sidebar button span,

#sidebar .menu-item span,
#sidebar .nav-item span,
#sidebar .sidebar-item span,
#sidebar a span,
#sidebar button span{
    font-size:
        calc(
            13px *
            var(--ds-font-scale)
        ) !important;

    font-weight:700 !important;
}

.sidebar .menu-item.active,
.sidebar .nav-item.active,
.sidebar a.active,
#sidebar .menu-item.active,
#sidebar .nav-item.active,
#sidebar a.active{
    font-weight:800 !important;
}

/* --------------------------------------------------------------
   Sidebar group headings
   -------------------------------------------------------------- */

.sidebar .section-title,
.sidebar .menu-section-title,
.sidebar .sidebar-section-title,
.sidebar .nav-section-title,
.sidebar .section-label,
.sidebar .menu-group-title,

#sidebar .section-title,
#sidebar .menu-section-title,
#sidebar .sidebar-section-title,
#sidebar .nav-section-title,
#sidebar .section-label,
#sidebar .menu-group-title{
    font-size:
        calc(
            9px *
            var(--ds-font-scale)
        ) !important;

    font-weight:800 !important;
}

/* --------------------------------------------------------------
   Badges / states
   -------------------------------------------------------------- */

.badge,
.status,
.state,
[class*="badge-"]{
    font-size:
        calc(
            8.5px *
            var(--ds-font-scale)
        ) !important;

    font-weight:700;
}

/* --------------------------------------------------------------
   Keep structural/icon geometry stable.
   -------------------------------------------------------------- */

svg,
.icon,
.menu-icon,
.nav-icon{
    flex-shrink:0;
}

/* --------------------------------------------------------------
   Protect layouts when text becomes larger.
   -------------------------------------------------------------- */

.panel,
.card,
.ds-kpis > *,
.ds-smart,
.sidebar,
.sidebar *,
table,
th,
td{
    min-width:0;
}

th,
td,
.sidebar span{
    overflow-wrap:anywhere;
}

/* --------------------------------------------------------------
   Mobile keeps proportion but slightly lower baseline.
   -------------------------------------------------------------- */

@media(max-width:900px){

    html,
    body{
        font-size:
            calc(
                13px *
                var(--ds-font-scale)
            ) !important;
    }

}

/* DeepSmart Product Experience */
:root{--tenant-primary:#ff8a00;--tenant-secondary:#141b26;--tenant-accent:#f5a623;--tenant-surface:#f5f7fa;--product-orange:#ff8a00;--product-midnight:#111823}
.ds-product-mark{width:46px;height:46px;object-fit:contain;border-radius:13px;box-shadow:0 8px 26px rgba(0,0,0,.24)}
.login-product-mark{width:104px;height:104px;border-radius:24px;margin-bottom:18px}
.login-page{position:relative;isolation:isolate;background:radial-gradient(circle at 18% 18%,rgba(255,138,0,.18),transparent 26%),linear-gradient(135deg,#080d14 0%,#111823 48%,#202a38 100%)}
.login-page>*:not(.login-scene){position:relative;z-index:3}.login-scene{position:absolute;inset:0;overflow:hidden;z-index:1;pointer-events:none;opacity:.92}.warehouse-grid-lines{position:absolute;inset:0;background:linear-gradient(rgba(255,138,0,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:54px 54px;transform:perspective(700px) rotateX(61deg) scale(1.45);transform-origin:center 75%;mask-image:linear-gradient(to bottom,transparent 5%,#000 45%,#000 100%)}
.rack{position:absolute;bottom:14%;width:13%;height:42%;border:1px solid rgba(255,255,255,.13);background:repeating-linear-gradient(to bottom,transparent 0 26%,rgba(255,138,0,.16) 26% 27%,transparent 27% 50%),repeating-linear-gradient(to right,rgba(255,255,255,.08) 0 2px,transparent 2px 32%);box-shadow:0 28px 70px rgba(0,0,0,.35)}.rack-a{left:6%;transform:skewY(-5%)}.rack-b{left:24%;height:50%;bottom:11%}.rack-c{right:5%;height:46%;opacity:.55}.scan-beam{position:absolute;left:8%;right:8%;height:1px;bottom:29%;background:linear-gradient(90deg,transparent,#ff8a00,#ffd18a,transparent);box-shadow:0 0 18px #ff8a00;animation:dsScan 5s ease-in-out infinite}.moving-load{position:absolute;bottom:17%;left:18%;font-size:42px;color:#ff8a00;filter:drop-shadow(0 8px 16px #000);animation:dsMove 10s linear infinite}.route-line{position:absolute;left:10%;right:10%;bottom:12%;height:2px;background:repeating-linear-gradient(90deg,#ff8a00 0 16px,transparent 16px 34px);opacity:.5}@keyframes dsScan{0%,100%{transform:translateY(-130px);opacity:.15}50%{transform:translateY(100px);opacity:1}}@keyframes dsMove{0%{left:14%}50%{left:46%}100%{left:78%}}
.login-card{border:1px solid rgba(255,138,0,.18);backdrop-filter:blur(20px)}.logo{background:linear-gradient(145deg,var(--tenant-primary),var(--tenant-accent))}.nav-item.active{background:linear-gradient(90deg,rgba(255,138,0,.19),rgba(255,138,0,.04));color:#fff;border-inline-start:3px solid var(--tenant-primary)}
.primary{background:linear-gradient(135deg,var(--tenant-primary),var(--tenant-accent));box-shadow:0 8px 18px color-mix(in srgb,var(--tenant-primary) 22%,transparent)}.metric.green{border-top-color:var(--tenant-primary)}.ok{color:var(--tenant-primary)}
.theme-swatches{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.theme-swatch{height:72px;border-radius:16px;border:1px solid var(--line);display:flex;align-items:flex-end;padding:9px;color:#fff;font-weight:800;box-shadow:var(--shadow-sm)}.settings-hero{background:linear-gradient(135deg,#101720,#252f3d);color:#fff;border-radius:22px;padding:25px;margin-bottom:15px;display:flex;justify-content:space-between;gap:18px;align-items:center}.settings-hero img{width:88px;height:88px;border-radius:20px}.product-lock{font-size:10px;background:rgba(255,138,0,.14);border:1px solid rgba(255,138,0,.35);padding:7px 10px;border-radius:999px;color:#ffba6b}.guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.guide-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:20px}.guide-card h3{margin:8px 0}.about-brand{display:flex;align-items:center;gap:18px}.about-brand img{width:112px;height:112px;border-radius:24px}.company-logo-mini{width:34px;height:34px;object-fit:contain;border-radius:9px;background:#fff;border:1px solid var(--line);padding:3px}
@media(max-width:900px){.guide-grid{grid-template-columns:1fr}.login-scene{opacity:.48}.rack-c{display:none}}

html[data-appearance="dark"]{--bg:#090f17;--surface:#121a25;--surface-2:#172230;--ink:#f0f3f6;--muted:#9aa8b6;--line:#263342}html[data-appearance="dark"] body{background:var(--bg);color:var(--ink)}html[data-sidebar="glass"] aside{background:linear-gradient(180deg,rgba(17,24,35,.92),rgba(25,34,47,.86));backdrop-filter:blur(22px)}html[data-sidebar="compact"] .shell{grid-template-columns:84px minmax(0,1fr)}html[data-sidebar="compact"] aside .brand div,html[data-sidebar="compact"] .nav-item span,html[data-sidebar="compact"] .nav-group,html[data-sidebar="compact"] .aside-foot span{display:none}html[data-sidebar="compact"] .nav-item{justify-content:center}.company-mini{display:flex;align-items:center;gap:8px}
@media(prefers-color-scheme:dark){html[data-appearance="system"]{--bg:#090f17;--surface:#121a25;--surface-2:#172230;--ink:#f0f3f6;--muted:#9aa8b6;--line:#263342}}

/* ==================================================================
   DeepSmart 3PL Enterprise 2.0 — GA Independent Application Shell
   ================================================================== */
.ds-command{display:flex;align-items:center;min-width:190px;margin-inline-start:auto;margin-inline-end:10px}
.ds-command button{display:flex;align-items:center;gap:8px;width:100%;border:1px solid rgba(130,145,170,.18);background:rgba(255,255,255,.72);color:var(--text,#15202e);border-radius:12px;padding:9px 12px;cursor:pointer;box-shadow:0 4px 14px rgba(20,27,38,.04)}
.ds-command kbd{margin-inline-start:auto;border:1px solid rgba(130,145,170,.2);border-radius:7px;padding:2px 6px;font:600 10px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;background:rgba(17,24,35,.04)}
.command-palette{position:fixed;inset:0;z-index:2000;display:grid;place-items:start center;padding-top:min(13vh,120px)}
.command-palette.hidden{display:none}
.command-backdrop{position:absolute;inset:0;background:rgba(7,12,20,.58);backdrop-filter:blur(7px)}
.command-card{position:relative;width:min(780px,calc(100vw - 28px));max-height:min(72vh,720px);overflow:hidden;border-radius:18px;background:#fff;border:1px solid rgba(120,135,160,.2);box-shadow:0 34px 100px rgba(5,10,18,.32);display:flex;flex-direction:column}
.command-search{display:flex;align-items:center;gap:10px;padding:13px;border-bottom:1px solid #e9edf3}
.command-search>span{font-size:22px}.command-search input{flex:1;border:0!important;outline:0!important;font-size:15px;background:transparent;padding:8px}.command-search button{border:1px solid #e1e6ee;background:#f7f9fc;border-radius:8px;padding:6px 8px;color:#5d6675;cursor:pointer}
#commandResults{overflow:auto;padding:8px}.command-result{display:flex;width:100%;align-items:center;gap:12px;border:0;background:transparent;padding:10px 12px;border-radius:11px;text-align:start;cursor:pointer;color:#172131}.command-result:hover{background:#f5f7fb}.command-result i{width:42px;height:34px;display:grid;place-items:center;border-radius:9px;background:#111823;color:#ff9a18;font-style:normal;font-size:12px;font-weight:800}.command-result span{display:flex;flex-direction:column;gap:3px;min-width:0}.command-result b{font-size:13px}.command-result small{font-size:10px;color:#7a8494;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:620px}
.action-search{display:flex;align-items:center;gap:10px;margin:14px 0;padding:10px;border-radius:14px;background:#fff;border:1px solid #e6ebf2}.action-search input{flex:1;border:0!important;outline:0!important;background:transparent!important}.action-search span{font-size:11px;color:#7b8492;white-space:nowrap}
.operation-list{display:grid;gap:8px}.operation-row{display:grid;grid-template-columns:72px 1fr auto;align-items:center;gap:12px;padding:12px;border:1px solid #e7ecf2;border-radius:13px;background:#fff;box-shadow:0 3px 14px rgba(20,27,38,.025)}.operation-row>div{display:flex;flex-direction:column;gap:3px;min-width:0}.operation-row b{font-size:12px}.operation-row small{font:500 10px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;color:#667085;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.operation-row em{font-size:9px;color:#9a6300;font-style:normal}.method{display:inline-flex;justify-content:center;border-radius:8px;padding:5px 6px;font:800 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace}.method.get{background:#eaf4ff;color:#155ea8}.method.post{background:#eef9ef;color:#237d35}.method.put,.method.patch{background:#fff5df;color:#956100}.method.delete{background:#fff0f0;color:#b13333}
.operation-contract{display:flex;flex-direction:column;gap:5px;padding:12px;border-radius:12px;background:#f6f8fb;border:1px solid #e4e9f0}.operation-contract span{font-size:11px;color:#606b79;line-height:1.7}.loading-line{padding:12px;margin-top:10px;border-radius:10px;background:#f4f7fb}.json-view{direction:ltr;text-align:left;white-space:pre-wrap;overflow:auto;max-height:420px;padding:14px;border-radius:12px;background:#0e1520;color:#dce5f4;font:500 11px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace}.json-view.success{border:1px solid rgba(61,182,93,.35)}
.notice{display:flex;gap:9px;align-items:flex-start;padding:12px 14px;border-radius:12px;margin:10px 0;background:#f4f7fb;border:1px solid #e3e9f1;font-size:11px;line-height:1.65}.notice.warning{background:#fff9eb;border-color:#f5dfad}.notice.error{background:#fff2f2;border-color:#f1cccc;color:#a62c2c}.notice.success{background:#edf9ef;border-color:#cdebcf;color:#286d35}
.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:12px}.detail-grid>div{display:flex;flex-direction:column;gap:4px;padding:10px;border:1px solid #e6ebf2;border-radius:11px;background:#fafbfd}.detail-grid small{font-size:9px;color:#7b8491}.detail-grid b{font-size:12px;overflow-wrap:anywhere}
.compact{padding:6px 9px!important;font-size:10px!important;min-height:0!important}
@media(max-width:900px){.ds-command{display:none}.operation-row{grid-template-columns:58px 1fr}.operation-row>button{grid-column:1/-1}.command-card{max-height:82vh}}

/* ==================================================================
   DeepSmart Enterprise UI Framework — GA 2.4.2
   List / Record / Form experience layer
   ================================================================== */
.ds-erp-page{display:flex;flex-direction:column;gap:14px;min-width:0}.ds-erp-commandbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border:1px solid var(--line,#dfe7ec);border-radius:14px;background:var(--panel,#fff);position:sticky;top:72px;z-index:20;box-shadow:0 7px 25px rgba(18,34,46,.05)}.ds-erp-commandbar .left,.ds-erp-commandbar .right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ds-erp-commandbar h2{font-size:15px;margin:0}.ds-erp-commandbar small{display:block;color:#6e8190;font-size:9px}.ds-erp-search{min-width:260px;display:flex;align-items:center;gap:8px;border:1px solid #d8e2e8;border-radius:10px;padding:0 10px;background:#fff}.ds-erp-search input{border:0!important;outline:0!important;box-shadow:none!important;min-height:38px;width:100%;background:transparent}.ds-erp-filter{border:1px solid #d9e3e9;background:#fff;border-radius:9px;padding:8px 11px;font-size:10px;font-weight:800;cursor:pointer}.ds-erp-filter.active{background:#eef6fb;border-color:#9fc8dc;color:#14516c}.ds-erp-list-shell{border:1px solid #dfe7ec;border-radius:14px;background:#fff;overflow:hidden}.ds-erp-list-meta{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid #e7edf1;color:#617482;font-size:9px}.ds-erp-table-wrap{overflow:auto;max-width:100%}.ds-erp-table{width:100%;border-collapse:separate;border-spacing:0;min-width:880px}.ds-erp-table th{position:sticky;top:0;background:#f7f9fa;text-align:start;padding:11px 12px;font-size:9px;text-transform:uppercase;letter-spacing:.03em;color:#617482;border-bottom:1px solid #dfe7ec;white-space:nowrap}.ds-erp-table td{padding:11px 12px;font-size:10px;border-bottom:1px solid #edf1f3;vertical-align:middle}.ds-erp-table tbody tr{cursor:pointer}.ds-erp-table tbody tr:hover{background:#f7fbfd}.ds-erp-table tbody tr:last-child td{border-bottom:0}.ds-erp-checkbox{width:34px}.ds-erp-primary-cell b{display:block;font-size:11px}.ds-erp-primary-cell small{display:block;margin-top:2px;color:#738693;font-size:8px}.ds-erp-pager{display:flex;align-items:center;gap:6px}.ds-erp-pager button{border:1px solid #dce5ea;background:#fff;border-radius:8px;padding:5px 9px;cursor:pointer}.ds-record-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:start;padding:18px;border:1px solid #dfe7ec;border-radius:15px;background:#fff}.ds-record-head h2{margin:2px 0 3px;font-size:21px}.ds-record-head .subtitle{color:#71828e;font-size:10px}.ds-record-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.ds-statusbar{display:flex;align-items:center;gap:0;overflow:auto;padding:0 3px}.ds-status-step{position:relative;padding:8px 18px 8px 22px;background:#eef2f4;color:#667986;font-size:9px;font-weight:800;white-space:nowrap;clip-path:polygon(0 0,calc(100% - 9px) 0,100% 50%,calc(100% - 9px) 100%,0 100%,9px 50%)}html[dir="rtl"] .ds-status-step{clip-path:polygon(9px 0,100% 0,100% 100%,9px 100%,0 50%)}.ds-status-step.active{background:#1f6f8b;color:#fff}.ds-status-step.done{background:#dceef5;color:#20546a}.ds-record-sheet{border:1px solid #dfe7ec;border-radius:15px;background:#fff;overflow:hidden}.ds-record-main{padding:20px}.ds-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 30px}.ds-field-group{min-width:0}.ds-field-group h4{font-size:10px;text-transform:uppercase;color:#6d808d;border-bottom:1px solid #e7ecef;padding-bottom:7px;margin:0 0 8px}.ds-field-row{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:start;gap:10px;padding:7px 0;border-bottom:1px dashed #edf1f3}.ds-field-row:last-child{border-bottom:0}.ds-field-row label{font-size:9px;color:#71838f}.ds-field-row .value{font-size:10px;font-weight:700;word-break:break-word}.ds-tabs{display:flex;gap:0;border-top:1px solid #e5ebef;border-bottom:1px solid #e5ebef;background:#fafbfc;overflow:auto}.ds-tab{border:0;background:transparent;padding:11px 16px;font-size:9px;font-weight:800;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap}.ds-tab.active{color:#1f6f8b;border-bottom-color:#1f6f8b;background:#fff}.ds-tab-body{padding:16px;min-height:160px}.ds-form-sheet{border:1px solid #dfe7ec;border-radius:15px;background:#fff;padding:20px}.ds-form-section{margin-bottom:20px}.ds-form-section h3{font-size:11px;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid #e6ecef}.ds-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px}.ds-form-grid label{display:flex;flex-direction:column;gap:5px;font-size:9px;font-weight:700;color:#637783}.ds-form-grid input,.ds-form-grid select,.ds-form-grid textarea{width:100%;min-height:39px;border:1px solid #d6e0e6;border-radius:9px;background:#fff;padding:8px 10px;font:inherit;color:#17252f}.ds-form-grid textarea{min-height:90px;resize:vertical}.ds-form-grid .wide{grid-column:1/-1}.ds-form-checks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.ds-form-checks label{display:flex;align-items:center;gap:7px;padding:9px;border:1px solid #e1e7eb;border-radius:9px;font-size:9px}.ds-breadcrumbs{display:flex;align-items:center;gap:6px;font-size:9px;color:#71838f}.ds-breadcrumbs button{border:0;background:none;padding:0;color:#315e75;cursor:pointer;font-weight:800}.ds-record-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:12px}.ds-record-kpi{border:1px solid #e1e8ec;border-radius:10px;padding:10px;background:#fbfcfd}.ds-record-kpi b{display:block;font-size:15px}.ds-record-kpi small{font-size:8px;color:#71828e}.ds-actions-menu{position:relative}.ds-actions-menu details>summary{list-style:none;cursor:pointer}.ds-actions-menu details>summary::-webkit-details-marker{display:none}.ds-actions-pop{position:absolute;inset-inline-end:0;top:38px;min-width:170px;background:#fff;border:1px solid #dbe4e9;border-radius:10px;box-shadow:0 12px 28px rgba(20,35,45,.14);padding:5px;z-index:30}.ds-actions-pop button{display:block;width:100%;text-align:start;border:0;background:transparent;padding:8px;border-radius:7px;cursor:pointer;font-size:9px}.ds-actions-pop button:hover{background:#f1f6f8}
@media(max-width:900px){.ds-erp-commandbar{position:static;align-items:stretch;flex-direction:column}.ds-erp-commandbar .left,.ds-erp-commandbar .right{width:100%}.ds-erp-search{min-width:0;flex:1}.ds-field-grid,.ds-form-grid{grid-template-columns:1fr}.ds-record-head{grid-template-columns:1fr}.ds-record-actions{justify-content:flex-start}.ds-record-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.ds-form-checks{grid-template-columns:repeat(2,minmax(0,1fr))}.ds-field-row{grid-template-columns:120px minmax(0,1fr)}}


/* =====================================================================
   DeepSmart Enterprise Interaction UX — GA 2.4.2
   ===================================================================== */
:root{--ds-workspace-max:1680px;--ds-control-h:38px}
#workspace{max-width:var(--ds-workspace-max);width:100%;margin-inline:auto}
.toolbar,.ds-erp-commandbar,.ds-workspace-head{position:relative;z-index:2}
.ds-erp-commandbar{position:sticky;top:0;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.table-scroll{max-width:100%;overflow:auto;overscroll-behavior:contain}
.table thead th{position:sticky;top:0;z-index:1}
.table tbody tr{transition:background .14s ease,box-shadow .14s ease}
.table tbody tr:hover{background:color-mix(in srgb,var(--panel,#fff) 86%,var(--accent,#4b7bec) 14%)}
button,[role="button"],.warehouse-card,.entity-card,.report-card{touch-action:manipulation}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[data-ds-click]:focus-visible{outline:2px solid var(--accent,#4b7bec);outline-offset:2px}
button:disabled,[aria-disabled="true"]{cursor:not-allowed;opacity:.52}
.ds-action-invalid{outline:1px dashed #cf3f4f!important;filter:saturate(.75)}
.ds-action-invalid::after{content:"!";display:inline-grid;place-items:center;margin-inline-start:6px;width:16px;height:16px;border-radius:50%;font-size:10px;background:#cf3f4f;color:#fff}
.ds-statusbar,.inbound-flow-strip,.tabs{scrollbar-width:thin;overflow-x:auto;overscroll-behavior-inline:contain}
.ds-form-sheet{margin-inline:auto;max-width:1380px}
.ds-field-group,.ds-form-section,.panel,.table-card{content-visibility:auto;contain-intrinsic-size:auto 260px}
@media(max-width:900px){#workspace{max-width:none}.ds-erp-commandbar{position:relative}.table thead th{position:static}.ds-form-sheet{max-width:none}}

/* DeepSmart 3PL Enterprise 2.4.2 — GA independent UX hardening */
:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:3px solid color-mix(in srgb,var(--tenant-primary,#ff8a00) 35%,transparent);outline-offset:2px}
button{touch-action:manipulation}.appearance-toggle{font-size:16px}
.table-scroll{overscroll-behavior:contain}.table thead th{position:sticky;top:0;z-index:2;background:var(--surface)}
.table tbody tr{transition:background .14s ease}.table tbody tr:hover{background:color-mix(in srgb,var(--tenant-primary,#ff8a00) 5%,var(--surface))}
.ds-erp-commandbar{position:sticky;top:0;z-index:8;backdrop-filter:blur(18px);background:color-mix(in srgb,var(--surface) 90%,transparent)}
html[data-appearance="dark"] .panel,html[data-appearance="dark"] .entity-card,html[data-appearance="dark"] .shipment-card,html[data-appearance="dark"] .report-card,html[data-appearance="dark"] .enterprise-status-strip>div,html[data-appearance="dark"] .brand-preview,html[data-appearance="dark"] .guide-card{background:var(--surface);border-color:var(--line);color:var(--ink)}
html[data-appearance="dark"] input,html[data-appearance="dark"] select,html[data-appearance="dark"] textarea{background:var(--surface-2);color:var(--ink);border-color:var(--line)}
html[data-appearance="dark"] .table thead th{background:#172230}html[data-appearance="dark"] .table td{border-color:var(--line)}
@media(max-width:700px){header{gap:8px}.header-actions{gap:5px}.identity span{display:none}.ds-command span,.ds-command kbd{display:none}.toolbar,.ds-erp-commandbar{align-items:flex-start}.toolbar-actions,.ds-erp-commandbar .right{width:100%;overflow-x:auto;white-space:nowrap}}
#modal.force-password .backdrop{pointer-events:none}#modal.force-password .dialog-head button{display:none}#modal.force-password .dialog{max-width:520px}
/* 2.4.2 shared standalone shell + enterprise workspaces */
.ds-standalone-page{padding:0!important;margin:0;background:var(--surface,#f5f7fa);min-height:100vh}
.ds-standalone-shell{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:10px 22px;background:#111827;color:#fff;box-shadow:0 2px 16px #0002}
.ds-standalone-shell a{color:inherit;text-decoration:none}.ds-shell-brand{display:flex;align-items:center;gap:10px}.ds-shell-brand img{width:34px;height:34px;object-fit:contain}.ds-shell-brand span{display:grid}.ds-shell-brand small{opacity:.65;font-size:10px}.ds-standalone-shell nav{display:flex;gap:8px;align-items:center}.ds-standalone-shell nav>*{border:1px solid #ffffff22;background:#ffffff0d;color:#fff;border-radius:9px;padding:8px 11px}
.ds-standalone-main{max-width:1500px;margin:auto;padding:22px}.ds-page-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}.ds-page-head h1{margin:0}.ds-page-head p{margin:5px 0;color:var(--muted,#64748b)}
.ds-progress{height:10px;background:#e5e7eb;border-radius:20px;overflow:hidden}.ds-progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--tenant-primary,#ff8a00),var(--tenant-accent,#f5a623));border-radius:inherit}
.ds-wizard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.ds-step-card{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:15px;display:grid;gap:7px;box-shadow:0 8px 28px #1118270b}.ds-step-card.ok{border-inline-start:4px solid #16a34a}.ds-step-card.warn{border-inline-start:4px solid #f59e0b}.ds-step-card .num{font-size:11px;font-weight:800;opacity:.6}.ds-step-card .state{font-size:11px;font-weight:700}.ds-step-card a{text-decoration:none;color:var(--tenant-primary,#d66d00);font-weight:700}
.ds-report-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px}.ds-report-sidebar,.ds-report-main{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:16px}.ds-report-catalog{display:grid;gap:6px;max-height:64vh;overflow:auto}.ds-report-item{padding:10px;border:1px solid #e5e7eb;border-radius:9px;cursor:pointer}.ds-report-item.active{border-color:var(--tenant-primary,#ff8a00);background:#fff7ed}.ds-report-tools{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.ds-report-tools input,.ds-report-tools select{min-width:150px;padding:9px;border:1px solid #d1d5db;border-radius:8px}.ds-report-table-wrap{overflow:auto;max-height:65vh}.ds-report-summary{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0}.ds-report-summary span{background:#f8fafc;border:1px solid #e5e7eb;border-radius:9px;padding:8px 12px}.ds-chart{display:flex;align-items:end;gap:6px;min-height:260px;padding:20px;border:1px solid #e5e7eb;border-radius:12px;overflow:auto}.ds-chart-bar{min-width:38px;background:var(--tenant-primary,#ff8a00);border-radius:7px 7px 0 0;position:relative}.ds-chart-bar small{position:absolute;bottom:-24px;inset-inline:0;text-align:center;white-space:nowrap;font-size:9px}.ds-diagnostics{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.ds-diagnostics>div{padding:10px;border:1px solid #e5e7eb;border-radius:9px;background:#f8fafc}
@media(max-width:800px){.ds-report-layout{grid-template-columns:1fr}.ds-standalone-main{padding:12px}.ds-page-head{display:block}}

/* ==================================================================
   DeepSmart UX3 S4 — Executive visual system
   ================================================================== */
:root{--ds-user-font:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif}
html,body,button,input,select,textarea,label,table,th,td,p,span,h1,h2,h3,h4,h5,h6{font-family:var(--ds-user-font)!important}
#sidebar{background:linear-gradient(180deg,var(--nav),color-mix(in srgb,var(--nav) 82%,#000));padding:16px 12px}
#sidebar .brand{min-height:58px;border-bottom:1px solid rgba(255,255,255,.07);margin-bottom:8px}
#sidebar .nav-group{color:rgba(255,255,255,.42);padding:17px 10px 7px}
#sidebar .nav-item{min-height:42px;border-radius:10px;padding:8px 9px;color:rgba(238,245,251,.78);transition:.18s ease}
#sidebar .nav-item i{width:30px;height:30px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.055);color:#e7f0f7}
#sidebar .nav-item:hover{background:rgba(255,255,255,.07);color:#fff}
#sidebar .nav-item.active{background:color-mix(in srgb,var(--brand) 13%,rgba(255,255,255,.06));color:#fff;box-shadow:inset -2px 0 0 var(--brand)}
#sidebar .nav-item.active i{background:color-mix(in srgb,var(--brand) 88%,#fff);border-color:transparent;box-shadow:0 6px 18px color-mix(in srgb,var(--brand) 28%,transparent)}
.aside-foot{gap:7px}.ux3-side-app{display:flex!important;align-items:center;gap:9px!important;padding:9px!important;border:1px solid rgba(255,255,255,.07)!important;border-radius:10px;background:rgba(255,255,255,.035)!important}.ux3-side-app:hover{background:rgba(255,255,255,.075)!important}.ux3-side-app-icon{width:27px;height:27px;border-radius:8px;background:rgba(255,255,255,.07);display:grid;place-items:center;font-size:13px}.ux3-side-app span b,.ux3-side-app span small{display:block}.ux3-side-app span b{font-size:10px;color:#e8f0f6}.ux3-side-app span small{font-size:7px!important;color:#7992a4}.ux3-online{font-size:8px!important;display:flex;align-items:center;gap:7px;padding:5px 9px!important}
header{height:70px;padding:0 24px;background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:0 1px 0 var(--line)}
.ux3-top-experience{display:flex;gap:4px;padding:3px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2)}.ux3-top-icon{width:32px!important;height:30px!important;border-radius:8px!important;background:transparent!important;font-size:11px!important}.ux3-top-icon:hover{background:color-mix(in srgb,var(--brand) 10%,var(--surface))!important;color:var(--brand)}
.ux3-exp-popover{position:fixed;z-index:120;top:64px;inset-inline-end:190px;width:330px;padding:16px;border-radius:16px;background:var(--surface);border:1px solid var(--line);box-shadow:0 24px 70px rgba(15,23,42,.18);color:var(--ink)}.ux3-exp-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.ux3-exp-head small,.ux3-exp-head b{display:block}.ux3-exp-head small{font-size:8px;color:var(--muted);letter-spacing:.12em}.ux3-exp-head b{font-size:14px;margin-top:2px}.ux3-exp-head button{border:0;background:var(--surface-2);width:30px;height:30px;border-radius:8px}.ux3-font-options{display:grid;grid-template-columns:1fr 1fr;gap:7px}.ux3-font-options button{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;padding:9px;text-align:start;display:flex;align-items:center;gap:8px;color:var(--ink)}.ux3-font-options button.active{border-color:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 13%,transparent)}.ux3-font-options span{width:29px;height:29px;border-radius:7px;background:color-mix(in srgb,var(--brand) 10%,var(--surface));color:var(--brand);display:grid;place-items:center;font-weight:800}.ux3-font-options b{font-size:9px}.ux3-scale{display:block;margin-top:14px}.ux3-scale>span{display:flex;justify-content:space-between;font-size:9px;margin-bottom:7px}.ux3-scale input{width:100%;accent-color:var(--brand)}.ux3-exp-popover>p{font-size:8px!important;line-height:1.6;color:var(--muted)}.ux3-theme-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.ux3-theme-grid label{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:9px}.ux3-theme-grid input{width:34px;height:27px;padding:0;border:0;background:none}.ux3-theme-preview{display:flex;gap:6px;margin:12px 0}.ux3-theme-preview i{height:11px;flex:1;border-radius:99px;background:var(--c)}.ux3-exp-save{width:100%}
#workspace{padding:22px 26px 48px;background:var(--bg)}
.ux3-dashboard{max-width:1600px;margin:0 auto}.ux3-dash-title{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:17px}.ux3-dash-title small{font-size:8px;color:var(--brand);font-weight:900;letter-spacing:.12em}.ux3-dash-title h2{font-size:25px!important;margin:5px 0}.ux3-dash-title p{max-width:720px;color:var(--muted);font-size:10px!important;line-height:1.6}.ux3-dash-actions{display:flex;gap:7px}
.ux3-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:11px;margin-bottom:14px}.ux3-kpi{border:1px solid var(--line);background:var(--surface);border-radius:14px;min-height:94px;padding:13px;display:flex;gap:11px;align-items:center;text-align:start;color:var(--ink);box-shadow:0 4px 16px rgba(15,23,42,.04);transition:.18s}.ux3-kpi:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--brand) 35%,var(--line));box-shadow:0 10px 24px rgba(15,23,42,.08)}.ux3-kpi-icon{width:40px;height:40px;flex:0 0 40px;border-radius:11px;background:color-mix(in srgb,var(--brand) 9%,var(--surface));color:var(--brand);display:grid;place-items:center;font-size:16px!important}.ux3-kpi>span:last-child{min-width:0}.ux3-kpi small,.ux3-kpi b,.ux3-kpi em{display:block}.ux3-kpi small{font-size:8px!important;color:var(--muted);font-weight:700}.ux3-kpi b{font-size:20px!important;margin:4px 0 2px}.ux3-kpi em{font-size:7px;font-style:normal;color:#92a0ac}.ux3-kpi.danger{border-inline-end:3px solid #e05260}.ux3-kpi.warn{border-inline-end:3px solid #e4a32b}.ux3-kpi.good{border-inline-end:3px solid #2ba873}
.ux3-dash-main{display:grid;grid-template-columns:2fr .82fr;gap:14px;margin-bottom:14px}.ux3-dash-card{background:var(--surface);border:1px solid var(--line);border-radius:15px;padding:16px;box-shadow:0 4px 18px rgba(15,23,42,.035)}.ux3-chart-head,.ux3-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.ux3-chart-head b,.ux3-chart-head small,.ux3-section-head b,.ux3-section-head small{display:block}.ux3-chart-head b,.ux3-section-head b{font-size:13px}.ux3-chart-head small,.ux3-section-head small{font-size:8px!important;color:var(--muted);margin-top:3px}.ux3-chart-head>span{font-size:8px!important;padding:5px 8px;border-radius:99px;background:var(--surface-2);color:var(--muted)}.ux3-section-head>button{border:0;background:none;color:var(--brand);font-size:8px!important}.ux3-line-chart{height:245px;margin-top:11px;position:relative;padding-bottom:23px;background:repeating-linear-gradient(to bottom,transparent,transparent 45px,color-mix(in srgb,var(--line) 55%,transparent) 46px)}.ux3-line-chart svg{width:100%;height:100%;overflow:visible}.ux3-line-chart .line{fill:none;stroke:var(--brand);stroke-width:1.35;vector-effect:non-scaling-stroke}.ux3-line-chart .fill{fill:url(#ux3fill)}.ux3-chart-labels{display:grid;grid-template-columns:repeat(7,1fr);position:absolute;bottom:0;left:0;right:0}.ux3-chart-labels span{text-align:center;font-size:7px!important;color:var(--muted)}
.ux3-quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:13px}.ux3-quick-action{height:74px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--ink)}.ux3-quick-action span{font-size:17px!important;color:var(--brand)}.ux3-quick-action b{font-size:8px}.ux3-quick-action:hover{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 4%,var(--surface))}
.ux3-dash-grid3{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:14px;margin-bottom:14px}.ux3-activity,.ux3-health-row{width:100%;border:0;border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent);background:none;padding:9px 2px;display:flex;align-items:center;gap:9px;text-align:start;color:var(--ink)}.ux3-activity:hover,.ux3-health-row:hover{background:var(--surface-2)}.ux3-activity>i{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-style:normal;background:color-mix(in srgb,var(--brand) 9%,var(--surface));color:var(--brand);font-size:9px}.ux3-activity span,.ux3-health-row span{flex:1;min-width:0}.ux3-activity b,.ux3-activity small,.ux3-health-row b,.ux3-health-row small{display:block}.ux3-activity b,.ux3-health-row b{font-size:9px}.ux3-activity small,.ux3-health-row small{font-size:7px!important;color:var(--muted);margin-top:2px}.ux3-activity time{font-size:7px;color:var(--muted)}.ux3-health-row em{font-style:normal}.ux3-alert-row,.ux3-task-row{display:flex;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 65%,transparent)}.ux3-alert-row i,.ux3-task-row i{width:24px;height:24px;border-radius:7px;background:#fff1f2;color:#c23d4e;display:grid;place-items:center;font-style:normal;font-size:9px}.ux3-task-row i{background:color-mix(in srgb,var(--brand) 9%,var(--surface));color:var(--brand)}.ux3-alert-row span,.ux3-task-row span{min-width:0}.ux3-alert-row b,.ux3-alert-row small,.ux3-task-row b,.ux3-task-row small{display:block}.ux3-alert-row b,.ux3-task-row b{font-size:8px}.ux3-alert-row small,.ux3-task-row small{font-size:7px!important;color:var(--muted)}.ux3-subsection h4{font-size:8px!important;color:var(--muted);margin:12px 0 2px;text-transform:uppercase;letter-spacing:.08em}.ux3-empty-mini{padding:24px 6px;text-align:center;font-size:8px;color:var(--muted)}
.ux3-domain-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:9px}.ux3-domain-strip button{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:11px;display:flex;align-items:center;gap:9px;text-align:start;color:var(--ink)}.ux3-domain-strip i{width:31px;height:31px;border-radius:9px;background:var(--surface-2);display:grid;place-items:center;color:var(--brand);font-style:normal}.ux3-domain-strip span{flex:1}.ux3-domain-strip b,.ux3-domain-strip small{display:block}.ux3-domain-strip b{font-size:8px}.ux3-domain-strip small{font-size:11px!important;font-weight:800;margin-top:2px}.ux3-domain-strip em{font-style:normal;color:var(--muted)}
@media(max-width:1200px){.ux3-kpi-grid{grid-template-columns:repeat(3,1fr)}.ux3-dash-grid3{grid-template-columns:1fr 1fr}.ux3-domain-strip{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.ux3-dash-main,.ux3-dash-grid3{grid-template-columns:1fr}.ux3-kpi-grid{grid-template-columns:repeat(2,1fr)}.ux3-exp-popover{inset-inline:12px;width:auto}.ux3-top-experience{display:none}.ux3-domain-strip{grid-template-columns:repeat(2,1fr)}}
.ux3-action-drawer{position:fixed!important;top:0;bottom:0;inset-inline-end:0;width:min(460px,96vw);z-index:110;background:var(--surface)!important;color:var(--ink)!important;border-inline-start:1px solid var(--line);box-shadow:-24px 0 70px rgba(15,23,42,.16);padding:0!important;transform:translateX(calc(100% * var(--ux3-drawer-sign,1)));transition:transform .2s ease;overflow:auto;height:100vh!important}.ux3-action-drawer.open{transform:translateX(0)}html[dir="rtl"] .ux3-action-drawer{--ux3-drawer-sign:-1}.ux3-drawer-head{position:sticky;top:0;z-index:2;background:color-mix(in srgb,var(--surface) 95%,transparent);backdrop-filter:blur(12px);padding:17px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-start}.ux3-drawer-head small,.ux3-drawer-head h3{display:block}.ux3-drawer-head small{font-size:8px!important;color:var(--brand);letter-spacing:.1em}.ux3-drawer-head h3{font-size:17px!important;margin:4px 0 0}.ux3-drawer-head button{border:0;border-radius:9px;background:var(--surface-2);width:32px;height:32px}.ux3-drawer-body{padding:18px}.ux3-drawer-form{display:grid;gap:13px}.ux3-drawer-form label{display:grid;gap:5px;font-size:9px!important;font-weight:700;color:var(--muted)}.ux3-drawer-form input,.ux3-drawer-form select,.ux3-drawer-form textarea{width:100%;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--ink);padding:10px 11px;outline:none}.ux3-drawer-form input,.ux3-drawer-form select{height:42px}.ux3-drawer-form textarea{min-height:88px;resize:vertical}.ux3-drawer-form input:focus,.ux3-drawer-form select:focus,.ux3-drawer-form textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 10%,transparent)}.ux3-inline-metric{padding:13px;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--brand) 4%,var(--surface));display:flex;align-items:center;justify-content:space-between}.ux3-inline-metric span{font-size:9px!important;color:var(--muted)}.ux3-inline-metric b{font-size:19px}.ux3-form-2{display:grid;grid-template-columns:1fr 1fr;gap:9px}
