@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{font-family:'DM Sans',system-ui,Arial,sans-serif;color:#172039;background:#f4f6fa;font-size:14px;--bg:#f5f7fb;--panel:#fff;--ink:#1a2233;--muted:#7d8799;--border:#e8edf4;--blue:#2375ed;--lightblue:#eef5ff;--sidebar:#161e30;--shadow:0 10px 28px rgba(29,43,74,.04)}
[data-theme=dark]{--bg:#111419;--panel:#1b2028;--ink:#e9edf4;--muted:#a3acba;--border:#313946;--lightblue:#202c42;--shadow:none;--sidebar:#0f1218;background:var(--bg);color:var(--ink)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.52;cursor:not-allowed}a{text-decoration:none;color:inherit}h1,h2,h3,h4,p{margin:0}h1,h2,h3{font-family:Manrope,'DM Sans',sans-serif;letter-spacing:-.035em}h1{font-size:26px}h2{font-size:21px}h3{font-size:17px}p{line-height:1.55}input,select,textarea{width:100%;padding:12px 13px;border:1px solid var(--border);border-radius:11px;background:var(--panel);color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(35,117,237,.11)}input[type=checkbox]{width:auto;margin-right:6px;accent-color:var(--blue)}input[type=date]{min-height:42px}label{display:block;font-size:12px;font-weight:700;color:var(--ink);margin-bottom:5px}label>input,label>textarea,label>select{margin-top:7px;font-weight:400}select{cursor:pointer}.muted,.subtext{color:var(--muted)}.tiny{font-size:11px}.small{font-size:12px}.strong{font-weight:800}.eyebrow{font-size:11px;letter-spacing:.12em;font-weight:800;color:#2b77d4;text-transform:uppercase}.section-note{font-size:13px;color:var(--muted);margin-top:5px}.brand{display:flex;align-items:center;gap:10px;font-size:17px;letter-spacing:-.04em;font-weight:800;font-family:Manrope,sans-serif}.brand small{display:block;font-size:10px;font-family:'DM Sans',sans-serif;font-weight:600;letter-spacing:.08em;opacity:.6;text-transform:uppercase;margin-top:-2px}.brand-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;color:#fff;background:linear-gradient(140deg,#1c86ff,#3559d7);box-shadow:0 7px 15px rgba(35,117,237,.22);font-size:24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid var(--border);background:var(--panel);color:var(--ink);padding:11px 15px;border-radius:11px;font-weight:700;min-height:41px;white-space:nowrap;transition:.15s}.btn:hover{filter:brightness(.96)}.btn.primary{border-color:#2375ed;background:#2375ed;color:white;box-shadow:0 8px 17px rgba(35,117,237,.16)}.btn.ghost{background:transparent}.btn.danger{color:#e44657;background:#fff2f3;border-color:#ffdadf}.btn.mini{padding:7px 10px;font-size:12px;min-height:30px}.btn.block{width:100%}.pill{display:inline-flex;align-items:center;gap:6px;border-radius:50px;font-weight:800;font-size:11px;padding:6px 10px;background:#f2f5f9;color:#5c6c82}.pill.pending{background:#fff5e4;color:#b87416}.pill.confirmed{background:#eef2ff;color:#5f62c9}.pill.dispatched{background:#edf6ff;color:#377cc2}.pill.delivered,.pill.active{background:#e6f8ed;color:#198653}.pill.cancelled,.pill.inactive{background:#fff0f0;color:#d04b56}
/* login */.login{min-height:100dvh;display:grid;grid-template-columns:1.02fr 1fr}.login-hero{background:radial-gradient(circle at 70% 24%,#427ff8 0%,transparent 44%),linear-gradient(140deg,#142850,#0b1730 88%);padding:8vw 7vw;color:#fff;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;position:relative;overflow:hidden}.login-hero:after{content:'';position:absolute;width:550px;height:550px;border:2px solid rgba(255,255,255,.07);border-radius:50%;bottom:-290px;right:-130px;box-shadow:0 0 0 65px rgba(255,255,255,.025),0 0 0 150px rgba(255,255,255,.016)}.login-hero h1{font-size:clamp(35px,4vw,62px);line-height:1.18;max-width:660px;margin-bottom:22px}.login-hero p{color:#c6d3ed;max-width:460px;font-size:16px}.login-points{display:grid;gap:15px;color:#d5e3fa;font-size:13px}.login-form-area{display:grid;place-items:center;padding:36px 24px}.login-form{width:min(420px,100%)}.login-form h2{font-size:30px;margin:38px 0 4px}.login-form .form-fields{margin-top:32px;display:grid;gap:17px}.login-form input{padding:15px 14px}.login-form .btn{min-height:49px;margin-top:8px}.conn{margin-top:21px;display:inline-flex;align-items:center;gap:7px;border-radius:25px;background:#eef8f0;color:#168653;padding:9px 12px;font-size:12px;font-weight:800}.conn.error{background:#fff0f0;color:#d8555b}.login-fine{margin-top:30px;font-size:12px;color:var(--muted)}.password-field{position:relative}.password-field input{padding-right:75px}.password-field button{position:absolute;right:10px;top:10px;border:0;background:transparent;color:var(--blue);font-weight:800;font-size:12px;padding:7px}
/* app shell */.layout{display:flex;min-height:100vh}.side{width:245px;background:var(--sidebar);color:#e2e8f6;flex-shrink:0;min-height:100vh;position:fixed;inset:0 auto 0 0;padding:24px 14px;display:flex;flex-direction:column;z-index:50;overflow:auto}.side .brand{padding:2px 12px 27px;color:white}.navtitle{font-size:10px;letter-spacing:.13em;font-weight:800;color:#74839e;margin:10px 12px 13px}.navlist{display:grid;gap:3px}.navbtn{display:flex;width:100%;gap:13px;align-items:center;text-align:left;border:0;border-radius:11px;background:transparent;color:#aebbd4;padding:12px 13px;font-weight:650;font-size:13px}.navbtn:hover{background:#252f44;color:#fff}.navbtn.selected{background:#2a497a;color:#fff}.navicon{width:20px;text-align:center;font-size:17px;opacity:.93}.side-bottom{margin-top:auto;padding-top:22px}.user-chip{padding:13px;border:1px solid #344054;border-radius:13px;margin:10px 4px 14px;display:flex;gap:10px;align-items:center}.avatar{display:grid;place-items:center;width:36px;height:36px;flex-shrink:0;border-radius:10px;background:#dbeaff;color:#2568cd;font-weight:800}.user-chip span{font-size:12px;display:block;color:#9bb0cf}.main{margin-left:245px;width:calc(100% - 245px);min-width:0}.topbar{height:78px;padding:16px 35px;background:var(--panel);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px}.topbar-left{font-weight:800;font-size:17px}.top-actions{display:flex;align-items:center;gap:12px}.content{max-width:1500px;margin:auto;padding:32px 35px 65px}.pagehead{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:25px}.pagehead .eyebrow{margin-bottom:7px}.headtools{display:flex;align-items:center;gap:8px}.card{background:var(--panel);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:21px}.section-h{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}.section-h h3{font-size:16px}.section-h small{display:block;color:var(--muted);margin-top:4px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.stat{padding:22px;border-radius:16px;border:1px solid var(--border);background:var(--panel)}.stat .icon{width:42px;height:42px;border-radius:12px;background:#edf4ff;color:#226cdd;display:grid;place-items:center;font-size:22px;margin-bottom:18px}.stat:nth-child(2) .icon{background:#e9f9f0;color:#22a563}.stat:nth-child(3) .icon{background:#fff5e8;color:#dc8b2c}.stat:nth-child(4) .icon{background:#f3efff;color:#8252d8}.stat strong{display:block;font-size:25px;font-weight:800;letter-spacing:-.045em;margin-top:5px}.stat span{font-size:12px;color:var(--muted);font-weight:600}.two-col{display:grid;grid-template-columns:1.45fr 1fr;gap:20px}.three-col{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.flex{display:flex;align-items:center;gap:12px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.grow{flex:1}.gap{height:16px}.rule{height:1px;background:var(--border);margin:16px 0}.tablewrap{width:100%;overflow:auto}.table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap;font-size:12px}.table th{color:var(--muted);background:var(--bg);font-weight:800;text-transform:uppercase;letter-spacing:.055em;font-size:10px;padding:14px 12px}.table td{padding:14px 12px;border-bottom:1px solid var(--border)}.table td b{font-size:12px}.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:var(--lightblue)}.table a{color:var(--blue);font-weight:800}.filters{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:18px}.filters input{max-width:300px}.filters select{max-width:185px}.gridforms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.span2{grid-column:span 2}.form-actions{display:flex;gap:9px;justify-content:flex-end;margin-top:21px}.empty{color:var(--muted);text-align:center;padding:50px 20px}.empty .bigicon{font-size:42px;margin-bottom:12px}.loading{padding:30px;text-align:center;color:var(--muted)}.load-center{display:grid;place-items:center;min-height:100vh;color:#64748b}.clickable{cursor:pointer}.modal-back{position:fixed;inset:0;z-index:120;background:#0c1630a8;padding:18px;display:grid;place-items:center}.modal{width:min(590px,100%);background:var(--panel);border-radius:20px;max-height:90vh;overflow:auto;padding:26px;box-shadow:0 20px 70px #0004}.modal .modalhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.modal h2{font-size:21px}.close{background:none;border:0;font-size:24px;color:var(--muted)}#toast{position:fixed;bottom:22px;right:24px;z-index:200}.toast{background:#19243c;color:white;border-radius:12px;padding:14px 18px;margin-top:9px;max-width:390px;box-shadow:0 12px 35px #0002}.toast.err{background:#b53f4b}.badge-tag{background:#eff5fe;color:#2865bd;padding:7px 10px;border-radius:8px;font-weight:800;font-size:11px}.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.tile{border:1px solid var(--border);border-radius:13px;padding:16px;display:flex;align-items:center;gap:12px;background:var(--panel)}.tile-icon{background:var(--lightblue);border-radius:11px;width:42px;height:42px;display:grid;place-items:center;font-size:23px}.tile strong{font-size:13px}.tile span{display:block;color:var(--muted);margin-top:3px;font-size:11px}.progress{height:8px;background:#edf1f9;border-radius:30px;overflow:hidden;margin-top:12px}.progress>div{height:100%;background:#3979eb;border-radius:30px}.activity{display:flex;align-items:center;gap:13px;padding:12px 0;border-bottom:1px solid var(--border)}.activity:last-child{border:0}.activity .ring{height:39px;width:39px;display:grid;place-items:center;border-radius:50%;background:#eff5ff;color:#2a70e7}.activity strong{font-size:13px}.activity small{display:block;color:var(--muted);margin-top:3px}.quick-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.quick{border-radius:14px;padding:20px;border:0;background:#2375ed;color:white;text-align:left;display:flex;align-items:center;gap:15px}.quick.secondary{background:#ecf7f1;color:#1a8052}.quick strong{display:block;font-size:15px}.quick span{font-size:12px;opacity:.82;display:block;margin-top:3px}.mobile-nav{display:none}.mobile-toggle{display:none}.listcards{display:none}.qtyctrl{display:flex;align-items:center;gap:10px}.qtyctrl button{width:30px;height:30px;border:1px solid var(--border);background:var(--bg);border-radius:8px;font-size:18px;color:var(--ink)}.qtyctrl strong{min-width:20px;text-align:center}.order-item{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--border)}.order-item .label{font-weight:750}.order-total{padding:19px;border-radius:13px;background:var(--lightblue);margin-top:17px;display:flex;align-items:center;justify-content:space-between;gap:10px}.order-total strong{font-size:25px;color:var(--blue)}.summary-line{display:flex;align-items:center;justify-content:space-between;padding:9px 0;gap:10px}.checklist{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:9px}.checklist label{font-size:12px;padding:10px;border:1px solid var(--border);border-radius:10px;cursor:pointer}.rep-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.rep-card{padding:21px;border:1px solid var(--border);background:var(--panel);border-radius:16px}.rep-card h3{margin-top:12px}.rep-card small{color:var(--muted)}.rep-card .avatar{width:48px;height:48px;font-size:21px}.hide{display:none!important}
@media(max-width:1200px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.rep-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content{padding:25px}.topbar{padding:14px 25px}}
@media(max-width:800px){.login{grid-template-columns:1fr}.login-hero{display:none}.login-form-area{min-height:100dvh;padding:30px 25px}.side{transform:translateX(-100%);transition:transform .2s}.side.open{transform:translateX(0)}.main{margin-left:0;width:100%}.mobile-toggle{display:inline-flex}.content{padding:22px 16px 105px}.topbar{height:64px;padding:12px 16px}.topbar-left{font-size:15px}.two-col{grid-template-columns:1fr}.headtools{width:100%}.pagehead{align-items:flex-start}.pagehead h1{font-size:23px}.mobile-nav{display:flex;justify-content:space-around;position:fixed;bottom:0;left:0;right:0;background:var(--panel);border-top:1px solid var(--border);z-index:40;padding:8px 6px max(9px,env(safe-area-inset-bottom))}.mobile-nav button{border:0;background:transparent;color:var(--muted);font-size:11px;font-weight:700;display:grid;place-items:center;gap:3px;min-width:59px}.mobile-nav button b{font-size:19px;font-weight:400}.mobile-nav button.selected{color:var(--blue)}.tablewrap{display:none}.listcards{display:grid;gap:11px}.listcard{padding:15px;background:var(--panel);border:1px solid var(--border);border-radius:13px}.listcard .lc-top{display:flex;justify-content:space-between;align-items:center;gap:9px;margin-bottom:10px}.listcard .lc-foot{display:flex;justify-content:space-between;align-items:center;gap:9px;margin-top:13px}.gridforms{grid-template-columns:1fr}.span2{grid-column:auto}.rep-grid{grid-template-columns:1fr}.checklist{grid-template-columns:repeat(2,1fr)}.modal{padding:20px}.filters input{max-width:none}.filters select{flex:1}.modal-back{padding:10px;align-items:end}.modal{width:100%;max-height:91dvh;border-radius:20px 20px 0 0}.quick-row{grid-template-columns:1fr}.stat{padding:16px}.stat strong{font-size:20px}.stat .icon{margin-bottom:12px}.card{padding:16px}.login-form h2{margin-top:28px}}
@media(max-width:400px){.stats{gap:9px}.stat{padding:13px}.stats .stat .icon{height:34px;width:34px;font-size:17px}.order-item{align-items:flex-start}.section-h{align-items:flex-start}.top-actions .user-name{display:none}.checklist{grid-template-columns:1fr 1fr}}
