@font-face{font-family:'Open Sans';src:url('/fonts/OpenSans-Variable.woff2') format('woff2');font-weight:300 800;font-style:normal;font-display:swap}
:root{
  --ink:#0f1b33; --mut:#64708a; --line:#e4e8f0; --bg:#f3f5f9; --card:#fff;
  --navy:#0c345c; --navy2:#0c345c; --navy3:#1d5a8e; --or:#0c345c; --or2:#d9560f; --orsoft:#fff1e8;
  --ok:#14915f; --oksoft:#e0f5ec; --warn:#b86a00; --warnsoft:#fff0d4; --bad:#c62f2f; --badsoft:#fde5e5; --info:#1d62d6; --infosoft:#e4eeff;
  --r:12px; --sh:0 1px 2px rgba(15,27,51,.05),0 6px 20px rgba(15,27,51,.06);
}
*{box-sizing:border-box} html,body{margin:0;height:100%}
body{font:14px/1.5 "Open Sans",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
a{color:var(--info);text-decoration:none} a:hover{text-decoration:underline} h1,h2,h3,h4,p{margin:0}
button{font:inherit;cursor:pointer} input,select,textarea{font:inherit;color:inherit}
.ic{flex:none;vertical-align:-3px} .mut{color:var(--mut)} .r{text-align:right} .c{text-align:center} .b{font-weight:700} .sm{font-size:12px} .nowrap{white-space:nowrap} .hide{display:none!important}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap} .sp{margin-left:auto} .col{display:flex;flex-direction:column;gap:10px}

/* buttons */
.btn{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:9px;padding:8px 14px;font-weight:600;display:inline-flex;align-items:center;gap:7px;transition:.12s;line-height:1.2;white-space:nowrap}
.btn:hover{border-color:var(--navy3);color:var(--navy3);text-decoration:none}
.btn.pri{background:var(--navy);border-color:var(--navy);color:#fff}.btn.pri:hover{background:var(--navy3);color:#fff}
.btn.or{background:var(--or);border-color:var(--or);color:#fff}.btn.or:hover{background:var(--or2);color:#fff}
.btn.ok{background:var(--ok);border-color:var(--ok);color:#fff}.btn.bad{background:#fff;border-color:#f1c2c2;color:var(--bad)}.btn.bad:hover{background:var(--badsoft);color:var(--bad)}
.btn.s{padding:5px 10px;font-size:12.5px;border-radius:7px}.btn.ghost{background:transparent}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* shell */
.shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}
.side{background:linear-gradient(180deg,var(--navy) 0%,#0a1630 100%);color:#b9c4dc;position:sticky;top:0;height:100vh;overflow:auto;display:flex;flex-direction:column}
.brand{display:flex;gap:11px;align-items:center;padding:20px 18px 16px}
.brand b{color:#fff;font-size:17px;letter-spacing:.2px;display:block;line-height:1.1}.brand small{font-size:11px;color:#7f8fb3;letter-spacing:.04em}
.nav{padding:6px 10px;flex:1}
.nav h4{margin:16px 10px 6px;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#6a7ba3}
.nav a{display:flex;align-items:center;gap:11px;color:#b9c4dc;padding:9px 12px;border-radius:9px;font-weight:550;margin-bottom:2px}
.nav a:hover{background:rgba(255,255,255,.07);color:#fff;text-decoration:none}
.nav a.on{background:var(--or);color:#fff;box-shadow:0 4px 14px rgba(242,106,33,.35)}
.nav a .badge{margin-left:auto;background:rgba(255,255,255,.14);color:#fff;border-radius:99px;font-size:11px;padding:1px 8px;font-weight:700}
.nav a.on .badge{background:rgba(255,255,255,.28)}
.side .foot{padding:14px 16px;border-top:1px solid rgba(255,255,255,.08);font-size:12px;color:#7f8fb3}
.main{min-width:0;display:flex;flex-direction:column}
.top{background:rgba(255,255,255,.88);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding:10px 26px;display:flex;align-items:center;gap:14px;position:sticky;top:0;z-index:20}
.top .menu{display:none}
.livedot{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--ok);background:var(--oksoft);padding:4px 11px;border-radius:99px}
.livedot i{width:8px;height:8px;border-radius:50%;background:var(--ok);animation:pulse 1.8s infinite}.livedot.off{color:var(--mut);background:#eef0f5}.livedot.off i{background:#aab;animation:none}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(20,145,95,.5)}70%{box-shadow:0 0 0 7px rgba(20,145,95,0)}100%{box-shadow:0 0 0 0 rgba(20,145,95,0)}}
.who{margin-left:auto;display:flex;align-items:center;gap:11px}.who .nm{font-weight:650;line-height:1.1;text-align:right}.who small{color:var(--mut);text-transform:capitalize}
.av{width:30px;height:30px;border-radius:50%;background:var(--navy3);color:#fff;display:inline-grid;place-items:center;font-weight:700;font-size:12px;flex:none}
.gsearch{position:relative;flex:1;max-width:380px}.gsearch input{width:100%;padding:8px 12px 8px 34px;border:1px solid var(--line);border-radius:9px;background:#f6f7fb}.gsearch .ic{position:absolute;left:11px;top:9px;color:var(--mut)}
.page{padding:24px 26px 70px;max-width:1560px;width:100%}
.ph{display:flex;align-items:flex-end;gap:14px;margin-bottom:18px;flex-wrap:wrap}
.ph h1{font-size:23px;letter-spacing:-.2px}.ph p{color:var(--mut);margin-top:2px}.ph .acts{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.crumb{font-size:12.5px;color:var(--mut);margin-bottom:6px}.crumb a{color:var(--mut)}

/* cards, grids */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh)}
.card>.hd{padding:13px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;font-weight:700}
.card>.hd .sub{font-weight:500;color:var(--mut);font-size:12.5px}.card>.hd .sp{margin-left:auto;display:flex;gap:8px;align-items:center}
.card>.bd{padding:18px}.card.flat{box-shadow:none}
.grid{display:grid;gap:18px}.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g21{grid-template-columns:2fr 1fr}.g12{grid-template-columns:1fr 2fr}.g32{grid-template-columns:3fr 2fr}
.mt{margin-top:18px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:18px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;box-shadow:var(--sh);position:relative;overflow:hidden}
.kpi .ico{position:absolute;right:14px;top:14px;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--infosoft);color:var(--info)}
.kpi.or .ico{background:var(--orsoft);color:var(--or)}.kpi.ok .ico{background:var(--oksoft);color:var(--ok)}.kpi.bad .ico{background:var(--badsoft);color:var(--bad)}
.kpi small{color:var(--mut);font-weight:650;font-size:12px;letter-spacing:.03em}.kpi b{display:block;font-size:26px;margin:2px 0;letter-spacing:-.5px}.kpi span{font-size:12.5px;color:var(--mut)}
a.kpi{color:inherit}a.kpi:hover{text-decoration:none;border-color:#c9d3e6;transform:translateY(-1px)}

/* table */
.tw{overflow:auto}table{width:100%;border-collapse:collapse}
th{background:#f7f8fb;text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--mut);padding:10px 16px;border-bottom:1px solid var(--line);white-space:nowrap;font-weight:700}
td{padding:12px 16px;border-bottom:1px solid #eff1f6;vertical-align:middle}tr:last-child td{border-bottom:0}
tbody tr.click{cursor:pointer}tbody tr.click:hover{background:#f6f9ff}
td .sub,.sub{display:block;color:var(--mut);font-size:12.5px}
.tfoot td{background:#fafbfd;font-weight:700}
.pill{display:inline-block;padding:2px 10px;border-radius:99px;font-size:11.5px;font-weight:700;background:#eceff5;color:#516079;white-space:nowrap}
.pill.ok{background:var(--oksoft);color:var(--ok)}.pill.info{background:var(--infosoft);color:var(--info)}.pill.warn{background:var(--warnsoft);color:var(--warn)}.pill.bad{background:var(--badsoft);color:var(--bad)}.pill.or{background:var(--orsoft);color:var(--or2)}
.tag{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:7px;background:#eef1f7;font-size:12px;font-weight:650;color:#4b5a76}
.late{color:var(--bad);font-weight:700}
.empty{display:flex;flex-direction:column;align-items:center;gap:4px;padding:36px 16px;color:var(--mut);text-align:center}.empty b{color:var(--ink)}.empty .ic{opacity:.45;margin-bottom:6px}

/* tabs / filters */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px;overflow:auto}
.tabs button{border:0;background:none;padding:10px 16px;font-weight:650;color:var(--mut);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.tabs button.on{color:var(--navy);border-bottom-color:var(--or)}.tabs button .n{background:#eef1f7;border-radius:99px;font-size:11px;padding:1px 7px;margin-left:5px}
.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{border:1px solid var(--line);background:#fff;border-radius:99px;padding:5px 13px;font-weight:600;font-size:13px;color:#46536d}.chip.on{background:var(--navy);border-color:var(--navy);color:#fff}
.search{padding:8px 12px;border:1px solid var(--line);border-radius:9px;min-width:240px;background:#fff}

/* forms */
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.form .full{grid-column:1/-1}
.fld{display:flex;flex-direction:column;gap:5px}.fld>span{font-size:12px;font-weight:700;color:#4b5a76;letter-spacing:.02em}
.fld input,.fld select,.fld textarea,.inp{width:100%;padding:9px 11px;border:1px solid #d5dbe7;border-radius:9px;background:#fff;outline:none}
.fld input:focus,.fld select:focus,.fld textarea:focus,.inp:focus,.search:focus{border-color:var(--navy3);box-shadow:0 0 0 3px rgba(28,58,107,.12)}
.fld textarea{min-height:70px;resize:vertical}
.hint{font-size:12px;color:var(--mut)}.warnbox{background:var(--warnsoft);color:#7a4700;border-radius:9px;padding:9px 12px;font-size:13px;display:flex;gap:8px;align-items:flex-start}.errbox{background:var(--badsoft);color:var(--bad)}.okbox{background:var(--oksoft);color:#0b6e47}
.lines td{padding:6px 8px}.lines input,.lines select{width:100%;padding:7px 8px;border:1px solid #d5dbe7;border-radius:8px}

/* modal & toast */
.overlay{position:fixed;inset:0;background:rgba(10,20,45,.5);display:grid;place-items:center;z-index:100;padding:16px;animation:fade .15s}
@keyframes fade{from{opacity:0}}
.modal{background:#fff;border-radius:14px;width:100%;max-width:520px;max-height:92vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.3)}.modal.wide{max-width:860px}
.mh{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}.mh h3{font-size:17px}.mh .x{margin-left:auto;border:0;background:none;color:var(--mut);padding:4px;border-radius:6px}.mh .x:hover{background:#f0f2f7}
.mb{padding:20px;overflow:auto}.mf{padding:14px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px;background:#fafbfd;border-radius:0 0 14px 14px}.mf:empty{display:none}
#toast-root{position:fixed;right:18px;bottom:18px;display:flex;flex-direction:column;gap:9px;z-index:200;align-items:flex-end}
.toast{display:flex;gap:10px;align-items:flex-start;background:var(--navy);color:#fff;padding:11px 15px;border-radius:11px;box-shadow:0 8px 30px rgba(0,0,0,.25);max-width:380px;transform:translateY(12px);opacity:0;transition:.25s}.toast.in{transform:none;opacity:1}
.toast.bad{background:var(--bad)}.toast.live{background:var(--navy3);border-left:4px solid var(--or)}.toast .ic{margin-top:2px}

/* kanban */
.kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(232px,1fr);gap:14px;overflow-x:auto;padding-bottom:10px;align-items:start}
.kcol{background:#e9edf5;border-radius:12px;padding:10px;min-height:160px;transition:.15s}.kcol.over{background:#dbe5fb;outline:2px dashed var(--info)}
.kcol h4{display:flex;align-items:center;gap:8px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#4b5a76;margin:2px 4px 10px}.kcol h4 .n{background:#fff;border-radius:99px;padding:0 8px;font-size:11px}.kcol h4 .v{margin-left:auto;font-weight:600;letter-spacing:0;text-transform:none;color:var(--mut)}
.kcard{background:#fff;border-radius:10px;padding:11px 12px;margin-bottom:9px;box-shadow:0 1px 3px rgba(15,27,51,.1);cursor:grab;border:1px solid transparent}.kcard:hover{border-color:#a9c3dc}.kcard.drag{opacity:.4}
.kcard b{display:block;line-height:1.25}.kcard .meta{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:12px;color:var(--mut)}

/* order stepper & timeline */
.stepper{display:flex;list-style:none;margin:0;padding:0;counter-reset:s}
.stepper li{flex:1;min-width:0;text-align:center;position:relative;font-size:11.5px;color:var(--mut);font-weight:600}
.stepper li i{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e8ebf2;color:#7b88a3;margin:0 auto 6px;font-style:normal;font-weight:800;font-size:12px;position:relative;z-index:1}
.stepper li:before{content:"";position:absolute;top:13px;left:-50%;width:100%;height:3px;background:#e2e6ee}.stepper li:first-child:before{display:none}
.stepper li.done:before,.stepper li.cur:before{background:var(--ok)}.stepper li.done i{background:var(--ok);color:#fff}
.stepper li.cur i{background:var(--or);color:#fff;box-shadow:0 0 0 5px rgba(242,106,33,.22)}.stepper li.cur,.stepper li.done{color:var(--ink)}
.tl{list-style:none;margin:0;padding:0}.tl li{display:flex;gap:14px;position:relative;padding-bottom:18px}.tl li:last-child{padding-bottom:0}
.tl li:before{content:"";position:absolute;left:15px;top:32px;bottom:0;width:2px;background:#e4e8f0}.tl li:last-child:before{display:none}
.tl .dot{width:32px;height:32px;border-radius:50%;background:#eef1f7;color:#5c6b88;display:grid;place-items:center;flex:none;font-style:normal;z-index:1}
.tl .dot.delivered,.tl .dot.completed{background:var(--oksoft);color:var(--ok)}.tl .dot.dispatched,.tl .dot.out_for_delivery{background:var(--orsoft);color:var(--or2)}
.tl li.first .dot{box-shadow:0 0 0 4px rgba(242,106,33,.18)}.tl p{color:#46536d;margin:2px 0}.tl time{font-size:12px;color:var(--mut)}.tl li.internal .dot{background:#f3f4f8;color:#9aa5bb}

/* route visualisation */
.route{width:100%;height:auto;display:block}.route .rl{stroke:#d6dce8;stroke-width:6;stroke-linecap:round}.route .rp{stroke:var(--or);stroke-width:6;stroke-linecap:round;transition:all 1s linear}
.route .origin rect{fill:var(--navy)}.route .ot{fill:#fff;font-weight:800;font-size:15px}
.route .stop circle{fill:#fff;stroke:#9aa7bf;stroke-width:3}.route .stop.near circle{stroke:var(--or);fill:var(--orsoft)}.route .stop.done circle{fill:var(--ok);stroke:var(--ok)}.route .stop .tick{fill:none;stroke:#fff;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.route .stop.mine circle{stroke:var(--navy);stroke-width:4}.route .stop.done.mine circle{stroke:var(--ok)}
.route .sl{font-size:12.5px;font-weight:700;fill:#26334f}.route .sk{font-size:11px;fill:#7b88a3}
.route .truck{transition:transform 1s linear}.route .tb{fill:var(--navy3)}.route .tc{fill:var(--or)}.route .tw{fill:#fff;stroke:var(--navy);stroke-width:2.4}
.chart{width:100%;height:auto;display:block}.chart .grid{stroke:#edf0f5}.chart .bar rect{fill:#b4c9dc}.chart .bar.cur rect{fill:var(--or)}.chart .bv{font-size:11px;font-weight:700;fill:#46536d}.chart .bl{font-size:11.5px;fill:var(--mut)}
.hb{display:flex;flex-direction:column;gap:11px}.hbr{display:grid;grid-template-columns:minmax(90px,38%) 1fr auto;gap:12px;align-items:center}.hbl{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hbt{height:10px;background:#edf0f6;border-radius:99px;overflow:hidden}.hbt i{display:block;height:100%;background:var(--navy3);border-radius:99px}.hbt i.or{background:var(--or)}.hbt i.bad{background:var(--bad)}.hbt i.ok{background:var(--ok)}.hbt i.warn{background:#e6a100}.hbv{font-weight:700;font-variant-numeric:tabular-nums}

/* dispatch board */
.board{display:grid;grid-template-columns:minmax(300px,380px) 1fr;gap:18px;align-items:start}
.pool{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 260px);overflow:auto;padding:2px}
.ship{background:#fff;border:1px solid var(--line);border-left:4px solid var(--navy3);border-radius:10px;padding:11px 13px;cursor:grab;box-shadow:0 1px 2px rgba(15,27,51,.05)}.ship:hover{border-color:#b9c6e2;border-left-color:var(--or)}
.ship.late{border-left-color:var(--bad)}.ship b{display:block}.ship .meta{display:flex;gap:10px;font-size:12.5px;color:var(--mut);margin-top:5px;flex-wrap:wrap}
.trip{margin-bottom:16px}.trip .dz{min-height:70px;padding:12px;display:flex;flex-direction:column;gap:9px;border-radius:10px;border:2px dashed transparent;transition:.15s}.trip .dz.over{background:#eef5fa;border-color:var(--info)}
.cap{height:12px;background:#e8ecf4;border-radius:99px;overflow:hidden;margin-top:6px}.cap i{display:block;height:100%;border-radius:99px;background:var(--ok);transition:width .4s}.cap i.warn{background:#e6a100}.cap i.bad{background:var(--bad)}
.stop-row{display:flex;gap:12px;align-items:center;background:#f6f8fc;border-radius:10px;padding:9px 12px}.stop-row .seq{width:26px;height:26px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:800;font-size:12px;flex:none}
.pool .hdr{font-size:12px;font-weight:800;color:#4b5a76;letter-spacing:.06em;text-transform:uppercase;margin:6px 2px 0}

/* detail bits */
.kv{display:grid;grid-template-columns:130px 1fr;gap:8px 14px}.kv dt{color:var(--mut);font-size:13px}.kv dd{margin:0;font-weight:550}
.stat3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat3>div{background:#f6f8fc;border-radius:10px;padding:11px 13px}.stat3 small{color:var(--mut);font-weight:650;font-size:12px}.stat3 b{display:block;font-size:19px}
.note-in{display:flex;gap:8px}.note-in input{flex:1}
.feed{list-style:none;margin:0;padding:0}.feed li{display:flex;gap:12px;padding:11px 18px;border-bottom:1px solid #eff1f6}.feed li:last-child{border:0}.feed b{display:block}.feed .t{color:var(--mut);font-size:12px;white-space:nowrap}
.msg{background:#f3f7ee;border:1px solid #dbe8cc;border-radius:12px;padding:10px 12px;white-space:pre-wrap;font-size:13px}.msg.email{background:#f1f5fb;border-color:#d8e2f2}
.login{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}
.login .hero{background:radial-gradient(1000px 500px at 20% 0%,#1d5a8e 0%,var(--navy) 60%);color:#fff;padding:56px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.login .hero h1{font-size:38px;line-height:1.12;letter-spacing:-.8px;max-width:520px}.login .hero p{color:#aab8d6;max-width:480px;font-size:16px;margin-top:14px}
.login .hero ul{list-style:none;padding:0;margin:30px 0 0;display:grid;gap:14px}.login .hero li{display:flex;gap:12px;align-items:center;color:#d6def0}.login .hero li .ic{background:rgba(242,106,33,.2);color:#ff9a62;border-radius:9px;padding:7px;width:34px;height:34px}
.login .hex{position:absolute;right:-90px;bottom:-90px;opacity:.07}
.login .form-side{display:grid;place-items:center;padding:30px;background:#fff}.login form{width:100%;max-width:380px}.login h2{font-size:24px;margin-bottom:4px}
.demo{margin-top:20px;border:1px dashed #cfd6e4;border-radius:12px;padding:12px;background:#fafbfd}.demo b{font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--mut)}.demo button{display:flex;width:100%;justify-content:space-between;align-items:center;border:0;background:none;padding:7px 8px;border-radius:8px;text-align:left}.demo button:hover{background:#eef2fa}.demo small{color:var(--mut)}
@media (max-width:1100px){.g21,.g32,.g12,.board{grid-template-columns:1fr}.g3{grid-template-columns:1fr 1fr}}
@media (max-width:860px){
  .shell{grid-template-columns:1fr}.side{position:fixed;left:-260px;width:250px;z-index:60;transition:.2s}.side.open{left:0}.top .menu{display:inline-flex}
  .page{padding:16px 14px 60px}.g2,.g3{grid-template-columns:1fr}.form{grid-template-columns:1fr}.login{grid-template-columns:1fr}.login .hero{display:none}
  .gsearch{display:none}.stepper li span{font-size:10px}.who .nm{display:none}.kv{grid-template-columns:100px 1fr}
}
/* public pages */
.pub{max-width:880px;margin:0 auto;padding:18px 16px 60px}
.pubhead{background:linear-gradient(135deg,var(--navy),var(--navy3));color:#fff;border-radius:16px;padding:20px 22px;display:flex;gap:14px;align-items:center;margin-bottom:16px}
.pubhead h1{font-size:20px}.pubhead small{color:#aebbd8}
.hero-status{border-radius:16px;padding:20px;margin-bottom:16px;background:#fff;border:1px solid var(--line);box-shadow:var(--sh)}
.big{font-size:26px;font-weight:800;letter-spacing:-.4px}.eta{display:inline-flex;align-items:center;gap:8px;background:var(--orsoft);color:var(--or2);font-weight:700;padding:6px 13px;border-radius:99px}
.driver-card{display:flex;gap:12px;align-items:center;background:#f6f8fc;border-radius:12px;padding:12px 14px}
/* print */
.printdoc{background:#fff;padding:34px 38px;max-width:900px;margin:0 auto}
.printdoc table th{background:#f2f4f9}
@media print{
  body{background:#fff}.side,.top,.ph .acts,.noprint,#toast-root,.crumb{display:none!important}.shell{display:block}.page{padding:0;max-width:none}
  .card,.printdoc{box-shadow:none;border:0}
}
.spin{width:26px;height:26px;border:3px solid #dfe5f1;border-top-color:var(--or);border-radius:50%;animation:rot .8s linear infinite;display:inline-block}@keyframes rot{to{transform:rotate(360deg)}}
.busy{opacity:.6;pointer-events:none}

@media (max-width:600px){
  .stepper li span{display:none}.stepper li.cur span{display:block;position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap;top:32px;color:var(--or2)}
  .stepper{padding-bottom:20px}.stepper li i{width:26px;height:26px}.stepper li:before{top:12px}
  .route .sl{font-size:22px}.route .sk{display:none}.route .ot{font-size:17px}
  .big{font-size:22px}.hero-status{padding:16px}.pubhead h1{font-size:17px}
}
/* form validation */
.req{color:var(--bad);font-style:normal;margin-left:3px;font-weight:800}
.fld .err,td .err,.lines-err{display:none;color:var(--bad);font-size:12px;font-weight:600;line-height:1.3}
.fld.invalid .err,td .err:not(:empty),.lines-err:not(:empty){display:block}
.fld.invalid>span{color:var(--bad)}
.fld.invalid input,.fld.invalid select,.fld.invalid textarea,.lines input.bad,.lines select.bad,input.bad,select.bad{border-color:var(--bad)!important;background:#fff7f7!important;box-shadow:0 0 0 3px rgba(198,47,47,.13)}
.fld.valid input:not(:placeholder-shown),.fld.valid select{border-color:#8fd2b3}
.fsec{margin:10px 0 -2px;padding-top:12px;border-top:1px solid var(--line);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}.fsec:first-child{border:0;padding-top:0;margin-top:0}
.fbar{display:flex;align-items:center;gap:10px;padding:14px 18px;border-top:1px solid var(--line);background:#fafbfd;border-radius:0 0 var(--r) var(--r);position:sticky;bottom:0}
.banner{margin-bottom:14px;border-radius:9px;padding:10px 13px;font-weight:600}
.chk{display:flex;gap:8px;align-items:center;font-weight:500}.chk input{width:auto}
form.card{max-width:900px}

/* =================== Gamavis-style theme (light sidebar, blue primary) =================== */
:root{--ink:#0f172a;--mut:#64748b;--line:#e6eaf2;--bg:#f5f7fb;--navy:#0c345c;--navy2:#082a49;--navy3:#1d5a8e;--or:#0c345c;--or2:#082a49;--orsoft:#e7eff7;--info:#1d5a8e;--infosoft:#e7eff7;--r:12px;--sh:0 1px 2px rgba(16,24,40,.04),0 1px 3px rgba(16,24,40,.05)}
body{background:var(--bg);color:var(--ink)}
.shell{grid-template-columns:232px minmax(0,1fr)}
.side{background:#fff;color:#475569;border-right:1px solid var(--line)}
.brand{padding:20px 18px 14px}.brand b{color:var(--ink);font-size:19px;letter-spacing:-.3px}.brand small{color:#94a3b8;font-size:10.5px}
.nav{padding:6px 12px}.nav h4{color:#94a3b8;font-size:10.5px;margin:16px 10px 6px}
.nav a{color:#475569;font-weight:550;padding:9px 12px;border-radius:9px}
.nav a:hover{background:#f1f5f9;color:var(--ink)}
.nav a.on{background:#e7eff7;color:var(--navy);box-shadow:none}
.side .foot{border-top:1px solid var(--line);color:#94a3b8}
.top{background:#fff;padding:12px 28px;gap:16px}
.gsearch{max-width:480px}.gsearch input{background:#f8fafc;border-radius:10px;padding:10px 14px 10px 38px}.gsearch .ic{top:11px;left:13px}
.who{gap:12px}.who .nm{display:none}
.qa,.usr{position:relative}
.dd{position:absolute;right:0;top:calc(100% + 8px);min-width:210px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(15,23,42,.14);padding:6px;z-index:50}
.dd a,.dd button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border:0;background:none;border-radius:8px;color:var(--ink);font-weight:550;text-align:left}
.dd a:hover,.dd button:hover{background:#f1f5f9;text-decoration:none}.dd hr{border:0;border-top:1px solid var(--line);margin:6px 0}.dd .who2{padding:8px 12px 6px}.dd .who2 small{display:block;color:var(--mut);text-transform:capitalize}
.bell{position:relative;width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:#475569}.bell:hover{background:#f1f5f9}.bell i{position:absolute;top:8px;right:9px;width:9px;height:9px;border-radius:50%;background:#ef4444;border:2px solid #fff}
.usr button.u{display:flex;gap:6px;align-items:center;border:0;background:none;padding:2px;border-radius:99px}
.av{background:#d3e2f0;color:var(--navy)}
.page{padding:26px 28px 70px}
.ph h1{font-size:27px;font-weight:750;letter-spacing:-.5px}
.card{border-radius:14px;box-shadow:var(--sh);border-color:var(--line)}
.btn{border-radius:10px;padding:9px 16px;border-color:#d8dfeb}.btn:hover{border-color:var(--navy);color:var(--navy)}
.btn.pri,.btn.or{background:var(--navy);border-color:var(--navy);color:#fff}.btn.pri:hover,.btn.or:hover{background:var(--navy2);border-color:var(--navy2);color:#fff}
/* KPI cards: icon tile left, numbers right */
.kpi{display:grid;grid-template-columns:auto 1fr;column-gap:14px;align-items:center;padding:16px 18px;border-radius:14px}
.kpi .ico{position:static;grid-row:1 / span 3;width:44px;height:44px;border-radius:12px;background:#e7eff7;color:var(--navy)}
.kpi.or .ico{background:#e7eff7;color:var(--navy)}.kpi.ok .ico{background:#e3f6ec;color:#15935f}.kpi.bad .ico{background:#fde8e8;color:#d33}
.kpi small{grid-column:2;font-size:13px;font-weight:650;color:#334155}.kpi b{grid-column:2;font-size:27px;margin:0;line-height:1.15}.kpi span{grid-column:2;font-size:12.5px}
.kpis{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.delta{display:inline-block;margin-left:6px;font-size:11.5px;font-weight:700;color:#15935f;background:#e3f6ec;padding:1px 7px;border-radius:99px}
/* pills with status dot */
.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 11px;font-weight:650}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.pill.mut{background:#f1f5f9;color:#64748b}.pill.info{background:#e7eff7;color:#0c345c}.pill.ok{background:#e3f6ec;color:#15935f}.pill.warn{background:#fff3dc;color:#b86a00}.pill.bad{background:#fde8e8;color:#d33}
.pill.nodot::before{display:none}
th{background:#f8fafc;color:#64748b;font-size:11.5px;text-transform:none;letter-spacing:0;font-weight:650;padding:11px 16px}
td{padding:13px 16px}
tbody tr.click:hover{background:#f4f8fb}
/* stage tabs as bordered pills */
.stabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.stabs button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 18px;font-weight:600;color:#334155;box-shadow:var(--sh)}
.stabs button:hover{border-color:#a9c3dc}.stabs button.on{background:#e7eff7;color:var(--navy);border-color:#a9c3dc}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.filters .search,.filters select{background:#fff;border-radius:10px;padding:10px 14px}.filters .search{flex:1;min-width:260px}
.pager{display:flex;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid var(--line);color:var(--mut)}.pager .sp{margin-left:auto;display:flex;gap:6px;align-items:center}
.pager button{min-width:34px;height:34px;border:1px solid var(--line);background:#fff;border-radius:8px;font-weight:600}.pager button.on{background:var(--navy);color:#fff;border-color:var(--navy)}.pager button:disabled{opacity:.4}
.who-cell{display:flex;align-items:center;gap:9px}
.chip.on{background:var(--navy);border-color:var(--navy)}
/* login */
.login{grid-template-columns:1.15fr 1fr;background:#f1f6fa}
.login .hero{background:linear-gradient(160deg,#f2f7fb 0%,#e1ecf6 100%);color:var(--ink);padding:48px 64px;position:relative}
.login .hero:before{content:"";position:absolute;right:-140px;top:-120px;width:520px;height:520px;border-radius:50%;background:#c9dcec;opacity:.7}
.login .hero>*{position:relative}.login .hero h1{font-size:44px;line-height:1.1;letter-spacing:-1.2px;max-width:560px}.login .hero p{color:#475569;font-size:17px;max-width:520px}
.login .feats{display:flex;gap:26px;flex-wrap:wrap}.login .feats div{display:flex;align-items:center;gap:12px;font-weight:600;color:#334155;max-width:190px;line-height:1.3}
.login .feats .ic{background:#d3e2f0;color:var(--navy);border-radius:11px;padding:10px;width:42px;height:42px}
.mini{margin:34px 0;max-width:560px;background:#fff;border-radius:16px;border:1px solid #cfdeec;box-shadow:0 18px 40px rgba(12,52,92,.14);padding:16px;transform:perspective(900px) rotateY(-4deg)}
.mini .r1{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.mini .r1>div{background:#f4f8fb;border-radius:10px;padding:10px 12px;font-size:12px;color:#64748b}.mini .r1 b{display:block;font-size:20px;color:var(--ink)}
.mini .bars{display:flex;gap:6px;align-items:flex-end;height:70px;margin-top:12px}.mini .bars i{flex:1;background:#b9d0e4;border-radius:5px 5px 0 0}.mini .bars i:last-child{background:var(--navy)}
.login .form-side{background:transparent;padding:30px}
.login form{background:#fff;border:1px solid var(--line);border-radius:18px;padding:34px 34px 28px;box-shadow:0 18px 50px rgba(15,23,42,.08);max-width:440px}
.login h2{font-size:27px;letter-spacing:-.5px}
.inp-ic{position:relative}.inp-ic .ic{position:absolute;left:13px;top:11px;color:#94a3b8}.inp-ic input{padding-left:40px!important}.inp-ic .eye{position:absolute;right:8px;top:5px;border:0;background:none;color:#94a3b8;padding:6px;cursor:pointer}
.demo{border-radius:12px;background:#f8fafc}
/* form pages: sections + side panel */
.fgrid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}
.fsec{display:flex;align-items:center;gap:10px;margin:6px 0 2px;padding-top:0;border:0;font-size:16px;letter-spacing:0;text-transform:none;color:var(--ink);font-weight:700}
.fsec .ic{color:var(--navy)}.fsec.nth{padding-top:18px;border-top:1px solid var(--line);margin-top:10px}
.side-card{margin-bottom:16px}.side-card .bd{padding:16px 18px}
.prog{height:8px;background:#e8edf6;border-radius:99px;overflow:hidden;margin:10px 0 14px}.prog i{display:block;height:100%;background:#15935f;border-radius:99px;transition:width .3s}
.steps li{list-style:none;display:flex;align-items:center;gap:10px;padding:6px 0;color:#475569;font-weight:550}
.steps{padding:0;margin:0}.steps .c{width:20px;height:20px;border-radius:50%;border:2px solid #cbd5e1;display:grid;place-items:center;color:#fff;flex:none}.steps li.done .c{background:#15935f;border-color:#15935f}
.sumrow{display:grid;grid-template-columns:90px 1fr;gap:10px;padding:8px 0;border-bottom:1px solid #f1f4f9;font-size:13.5px}.sumrow:last-child{border:0}.sumrow span{color:var(--mut)}.sumrow b{font-weight:600;word-break:break-word}
.back{display:inline-grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#334155;margin-right:6px}.back:hover{text-decoration:none;border-color:var(--navy);color:var(--navy)}
form.card{max-width:none}
@media (max-width:1100px){.fgrid{grid-template-columns:1fr}.login .hero{padding:36px}}
@media (max-width:860px){.side{background:#fff}.login{grid-template-columns:1fr}.login .hero{display:none}.login form{box-shadow:none}}
.stepper li.cur i{box-shadow:0 0 0 5px rgba(12,52,92,.18)}.tl li.first .dot{box-shadow:0 0 0 4px rgba(12,52,92,.14)}
.route .tc{fill:#8fa6bb}
.tl .dot.dispatched,.tl .dot.out_for_delivery{background:#e7eff7;color:var(--navy)}
.eta{background:#e7eff7;color:var(--navy2)}
.livedot{background:#e3f6ec}
.kpis{grid-template-columns:repeat(auto-fit,minmax(175px,1fr))}.kpi small{font-size:12.5px}.kpi b{font-size:24px}

html,body,button,input,select,textarea,svg text{font-family:"Open Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
body{font-feature-settings:"tnum" 0;letter-spacing:-.005em}
/* collapsible sidebar */
.top .menu{display:inline-flex;padding:7px 9px;border-radius:9px}
.shell{transition:grid-template-columns .2s ease}
.shell.collapsed{grid-template-columns:72px minmax(0,1fr)}
.shell.collapsed .brand{justify-content:center;padding:20px 8px 14px}.shell.collapsed .brand>div,.shell.collapsed .nav h4,.shell.collapsed .nav a span,.shell.collapsed .side .foot{display:none}
.shell.collapsed .nav{padding:6px 10px}.shell.collapsed .nav a{justify-content:center;padding:11px 0;position:relative}
.shell.collapsed .nav a:hover::after{content:attr(data-tip);position:absolute;left:58px;top:50%;transform:translateY(-50%);background:#0f172a;color:#fff;padding:5px 10px;border-radius:7px;font-size:12.5px;white-space:nowrap;z-index:70;pointer-events:none}
.shell.collapsed .nav hr{display:block}
.nav hr{display:none;border:0;border-top:1px solid var(--line);margin:10px 8px}
@media (max-width:860px){.shell.collapsed{grid-template-columns:1fr}}

/* client brand: Nirman navy + silver */
.lmark{display:inline-block;flex:none;height:var(--h);width:calc(var(--h) * 109 / 62);background:url(/img/logo.png) 0 0 / calc(var(--h) * 288 / 62) calc(var(--h) * 104 / 62) no-repeat}
.lfull{display:block;width:auto;max-width:100%}
.brand{padding:18px 16px 12px}.brand .lmark{display:none}
.shell.collapsed .brand .lfull{display:none}.shell.collapsed .brand .lmark{display:inline-block}
.pubhead{background:#fff;color:var(--ink);border:1px solid var(--line);box-shadow:var(--sh)}.pubhead h1{color:var(--ink)}.pubhead small{color:var(--mut)}
.login .hero:before{background:#d3e2f0}
.chart .bar rect{fill:#b4c9dc}
/* permissions editor */
.pm{display:flex;gap:10px;align-items:flex-start;padding:4px 0;font-weight:550;cursor:pointer}.pm input{margin-top:3px;width:16px;height:16px;accent-color:var(--navy)}.pm.lk,.sw.lk{opacity:.75;cursor:default}
.sw{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:12px;cursor:pointer;background:#f8fbfd}
.sw input{position:absolute;opacity:0}.sw i{flex:none;width:38px;height:22px;border-radius:99px;background:#cbd5e1;position:relative;transition:.2s;margin-top:2px}.sw i:after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 1px 2px rgba(0,0,0,.25)}
.sw input:checked+i{background:#15935f}.sw input:checked+i:after{left:19px}.sw b{display:block}.sw:has(input:checked){border-color:#9fd8bd;background:#f1faf6}
.demo{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.demo>b{grid-column:1/-1;margin-bottom:4px}.demo button{padding:6px 8px;flex-direction:column;align-items:flex-start;gap:0}.demo small{font-size:11px}

/* quotation type chooser & technical annexure */
.opts{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width:760px){.opts{grid-template-columns:1fr}}
.opt{display:block;cursor:pointer}.opt input{position:absolute;opacity:0}.opt>div{display:flex;flex-direction:column;gap:4px;height:100%;border:2px solid var(--line);border-radius:14px;padding:16px 18px;background:#fff;transition:.15s}
.opt>div .ic{color:var(--navy)}.opt b{font-size:15px}.opt span{color:var(--mut);font-size:13px;line-height:1.4}
.opt:hover>div{border-color:#a9c3dc}.opt input:checked+div{border-color:var(--navy);background:#f2f7fb;box-shadow:0 0 0 3px rgba(12,52,92,.12)}
.tech{margin-bottom:22px;break-inside:avoid}.tech h3{font-size:16px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.tt{border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-top:6px}.tt th{width:210px;background:#f4f8fb;text-transform:none;letter-spacing:0;font-size:12.5px;color:#334155;vertical-align:top;border-bottom:1px solid var(--line)}.tt td{border-bottom:1px solid var(--line);padding:9px 14px}.tt tr:last-child th,.tt tr:last-child td{border-bottom:0}
@media print{.annex{break-before:page;page-break-before:always}.opts{display:none}}

:root{--doc:#0c345c}
/* =================== A4 business documents =================== */
.doc{background:#fff;max-width:880px;margin:0 auto 22px;padding:38px 44px 34px;border:1px solid var(--line);border-radius:6px;box-shadow:0 4px 24px rgba(15,23,42,.08);color:#111827;font-size:13px;line-height:1.5;font-variant-numeric:tabular-nums}
.doc .mut{color:#64748b}
.dh{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:14px;border-bottom:3px solid var(--doc);margin-bottom:16px}
.dh-r{text-align:right;display:flex;flex-direction:column;gap:1px;font-size:11.5px;color:#475569}.dh-r b:first-child{font-size:15px;color:var(--doc);margin-bottom:2px}
.dbar{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:14px}
.dbar h1{font-size:23px;letter-spacing:.06em;color:var(--doc);font-weight:750;margin:0}
.dbar dl{display:grid;grid-template-columns:repeat(2,auto);gap:3px 22px;margin:0;font-size:12px}.dbar dl div{display:flex;gap:10px;justify-content:space-between}.dbar dt{color:#64748b}.dbar dd{margin:0;font-weight:650;text-align:right}
.dparties{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}
.dparty{border:1px solid #d5dde8;border-radius:6px;padding:10px 14px;min-height:92px;font-size:12.5px;line-height:1.55}.dlab{display:block;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#64748b;font-weight:700;margin-bottom:4px}
.dt{width:100%;border-collapse:collapse;table-layout:fixed;margin-bottom:12px;font-size:12.5px}
.dt th{background:var(--doc);color:#fff;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;padding:8px 10px;text-align:left;border:0}.dt th.r{text-align:right}
.dt td{padding:9px 10px;border-bottom:1px solid #e3e8ef;vertical-align:top;word-wrap:break-word}.dt td.r{text-align:right;white-space:nowrap}.dt td small{display:block;color:#64748b;font-size:11px;margin-top:1px}
.dt tbody tr:nth-child(even) td{background:#f8fafc}.dt tfoot td{font-weight:700;background:#eef3f8;border-top:1.5px solid var(--doc);border-bottom:0}
.dsplit{display:grid;grid-template-columns:1fr 290px;gap:18px;align-items:start}
.dtotals{display:flex;justify-content:flex-end;margin-bottom:10px}.dtotals table{width:290px;border-collapse:collapse;font-size:12.5px}
.dtotals td{padding:6px 10px;border-bottom:1px solid #e3e8ef}.dtotals td.r{text-align:right;font-weight:600}.dtotals .grand td{background:#eef3f8;font-weight:750;font-size:14px;border-top:1.5px solid var(--doc);border-bottom:1.5px solid var(--doc)}.dtotals .due td{font-weight:750;color:var(--doc)}
.dtax{width:100%;border-collapse:collapse;font-size:11px}.dtax th{background:#eef3f8;color:#334155;padding:5px 7px;text-align:left;font-size:10px;text-transform:uppercase}.dtax th.r{text-align:right}.dtax td{padding:5px 7px;border-bottom:1px solid #e3e8ef}.dtax td.r{text-align:right}
.dwords{border-left:3px solid var(--doc);background:#f8fafc;padding:8px 12px;margin:6px 0 12px;font-weight:650}.dwords span{display:block;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#64748b;font-weight:700}
.dnote{margin:10px 0;font-size:12px;color:#334155}.dnote ol{margin:4px 0 0 18px;padding:0}.dnote li{margin-bottom:2px}
.dpay{display:flex;justify-content:space-between;gap:14px;padding:3px 0;border-bottom:1px dashed #e3e8ef}
.dref{font-size:12px;color:#64748b;margin:8px 0;font-style:italic}
.dsign{display:flex;gap:34px;margin-top:30px;font-size:11.5px;break-inside:avoid}.dsign>div{flex:1}.dsign p{margin:0;min-height:1.5em;color:#334155}.dsign i{display:block;height:40px}.dsign .ln{display:block;border-top:1px solid #94a3b8;padding-top:5px;color:#475569}.dsign>div:last-child{text-align:right}.dsign.three>div{text-align:center}.dsign.three>div:last-child{flex:1.5}
.dintro{margin:0 0 14px;color:#475569;font-size:12.5px}
.tech{margin-bottom:16px;break-inside:avoid}.tech h3{display:flex;align-items:baseline;gap:8px;font-size:14.5px;margin:0 0 3px;color:var(--doc)}.tech h3 em{font-style:normal;color:#475569;font-weight:600}.tech code{margin-left:auto;font-size:11px;color:#64748b;background:#eef3f8;padding:1px 8px;border-radius:99px}
.tn{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--doc);color:#fff;font-size:11px;font-weight:700}.tb{margin:0 0 6px;color:#475569;font-size:12px}
.tt{width:100%;border-collapse:collapse;table-layout:fixed;border:1px solid #d5dde8;font-size:12px}.tt th{background:#f1f5f9;color:#334155;text-align:left;padding:6px 10px;border-bottom:1px solid #d5dde8;font-size:11.5px;vertical-align:top;font-weight:650;text-transform:none;letter-spacing:0}.tt td{padding:6px 10px;border-bottom:1px solid #d5dde8;vertical-align:top}.tt tr:last-child th,.tt tr:last-child td{border-bottom:0}
@media screen and (max-width:760px){.doc{padding:20px 16px}.dh,.dbar,.dsplit{display:block}.dh-r{text-align:left;margin-top:10px}.dparties{grid-template-columns:1fr}.dtotals table{width:100%}}
@page{size:A4;margin:13mm 12mm 17mm;@bottom-center{content:"Page " counter(page) " of " counter(pages);font-family:'Open Sans',Arial,sans-serif;font-size:8.5pt;color:#64748b}}
@media print{
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  html,body{background:#fff!important;font-size:10pt}
  .shell{display:block!important}.side,.top,.ph,.crumb,.noprint,#toast-root,#modal-root,.opts{display:none!important}
  .main,.page{padding:0!important;margin:0!important;max-width:none!important}
  .doc{border:0;border-radius:0;box-shadow:none;margin:0;padding:0;max-width:none;width:100%;font-size:9.5pt}
  .doc.annex{break-before:page}
  .dt thead,.dtax thead{display:table-header-group}.dt tr,.dtax tr,.tt tr,.dparty,.dnote,.dwords,.dtotals{break-inside:avoid}
  .dsign{break-inside:avoid}
  .tt th,.tt td{padding:2.5px 8px;font-size:8.6pt;line-height:1.3}.doc.annex .dh{padding-bottom:8px;margin-bottom:10px}.doc.annex .dbar{margin-bottom:8px}.doc.annex .lfull{height:46px!important}.tech{margin-bottom:12px}.tech h3{font-size:11pt}.dintro{font-size:9pt;margin-bottom:8px}
  a{color:inherit;text-decoration:none}
}
/* lead channels */
.chtag{display:inline-grid;place-items:center;flex:none;min-width:42px;height:42px;padding:0 6px;border-radius:12px;background:#e7eff7;color:var(--doc);font-weight:800;font-size:13.5px;letter-spacing:.02em}
.howto{margin:0;padding-left:20px;display:grid;gap:8px}.howto li{padding-left:4px;line-height:1.5}
pre.code{background:#0f172a;color:#dbe7f3;border-radius:10px;padding:12px 14px;font:12px/1.55 ui-monospace,Menlo,Consolas,monospace;overflow:auto;white-space:pre-wrap;word-break:break-all;margin:0 0 8px}

/* =================== Creatio-style theme: purple chrome, white work area =================== */
:root{--navy:#0b57d0;--navy2:#0847ab;--navy3:#1d6fe6;--or:#0b57d0;--or2:#0847ab;--orsoft:#e8f0fe;--info:#0b57d0;--infosoft:#e8f0fe;--ink:#262b36;--mut:#6b7280;--line:#e3e5ec;--bg:#f1f2f6;--r:6px;--sh:0 1px 2px rgba(31,41,55,.05);--chrome:#3f2190;--top-h:56px;--tray-h:42px}
html,body,button,input,select,textarea,svg text{font-family:'Open Sans',system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
body{background:var(--bg);color:var(--ink);font-size:14px;letter-spacing:0}
.app{min-height:100vh;display:flex;flex-direction:column}
.topbar{height:var(--top-h);background:linear-gradient(90deg,#3a1d8c 0%,#5a2c9d 55%,#7a3fb3 100%);color:#fff;display:flex;align-items:center;gap:12px;padding:0 14px;position:sticky;top:0;z-index:60}
.tb-ic{width:38px;height:38px;border-radius:50%;border:0;background:transparent;color:#fff;display:grid;place-items:center;position:relative;flex:none;cursor:pointer}.tb-ic:hover{background:rgba(255,255,255,.16);text-decoration:none}.tb-ic.fill{background:rgba(255,255,255,.2)}
.tb-ic i{position:absolute;top:6px;right:7px;width:9px;height:9px;border-radius:50%;background:#ff5a3c;border:2px solid #4b2796}
.tb-logo{background:#fff;border-radius:8px;padding:4px 10px;display:flex;align-items:center;flex:none}.tb-logo .lfull{height:30px!important}
.tb-search{position:relative;width:min(360px,34vw)}.tb-search .ic{position:absolute;left:11px;top:9px;color:rgba(255,255,255,.8)}
.tb-search input{width:100%;height:36px;border:0;border-radius:8px;background:rgba(255,255,255,.2);color:#fff;padding:0 12px 0 36px;outline:none}.tb-search input::placeholder{color:rgba(255,255,255,.75)}.tb-search input:focus{background:rgba(255,255,255,.3)}
.tb-right{margin-left:auto;display:flex;align-items:center;gap:6px}
.topbar .livedot{background:rgba(255,255,255,.18);color:#fff}.topbar .livedot i{background:#5dffa3}.topbar .livedot.off{background:rgba(255,255,255,.12);color:rgba(255,255,255,.8)}
.topbar .dd{color:var(--ink)}.topbar .qa .btn{display:none}
.topbar .av{background:#fff;color:#4b2796}
.shell{display:grid;grid-template-columns:244px minmax(0,1fr);flex:1;min-height:0}
.side{position:sticky;top:var(--top-h);height:calc(100vh - var(--top-h) - var(--tray-h));background:linear-gradient(180deg,#46298e 0%,#3a2670 42%,#2e2a40 100%);color:#fff;border:0;overflow:auto;display:flex;flex-direction:column}
.ws{padding:14px 16px 6px;font-size:16px;font-weight:600;color:#fff;display:flex;align-items:center;gap:6px}
.sidesearch{position:relative;margin:6px 14px 8px}.sidesearch .ic{position:absolute;left:10px;top:9px;color:rgba(255,255,255,.7)}.sidesearch input{width:100%;height:34px;border-radius:6px;border:0;background:rgba(255,255,255,.14);color:#fff;padding:0 10px 0 34px;outline:none}.sidesearch input::placeholder{color:rgba(255,255,255,.7)}
.nav{padding:4px 0 14px;flex:1}.nav h4{color:rgba(255,255,255,.55);font-size:11px;letter-spacing:.1em;margin:14px 18px 4px}
.nav a{display:flex;align-items:center;gap:13px;color:#fff;padding:6px 16px;margin:0;border-radius:0;font-size:15px;font-weight:400}
.nav a:hover{background:rgba(255,255,255,.1);text-decoration:none;color:#fff}.nav a.on{background:rgba(255,255,255,.2);box-shadow:none;color:#fff}
.nt{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:var(--c,#6c5ce7);color:#fff;flex:none;box-shadow:0 2px 6px rgba(0,0,0,.25)}
.nav a .badge{background:#ff5a3c}
.side .foot{border-top:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.55);font-size:11.5px;padding:12px 18px}
.shell.collapsed{grid-template-columns:70px minmax(0,1fr)}.shell.collapsed .ws,.shell.collapsed .sidesearch,.shell.collapsed .nav h4,.shell.collapsed .nl,.shell.collapsed .side .foot{display:none}.shell.collapsed .nav a{justify-content:center;padding:7px 0}
.shell.collapsed .nav a:hover::after{content:attr(data-tip);position:absolute;left:62px;background:#1f2937;color:#fff;padding:5px 10px;border-radius:6px;font-size:12.5px;white-space:nowrap;z-index:70;pointer-events:none}.shell.collapsed .nav a{position:relative}
.main{background:var(--bg)}.page{padding:16px 20px calc(var(--tray-h) + 28px);max-width:none}
.tray{position:fixed;left:0;right:0;bottom:0;height:var(--tray-h);background:#e9ebf1;border-top:1px solid #d3d6e0;display:flex;align-items:center;gap:6px;padding:0 10px 0 254px;z-index:55;overflow-x:auto}
.shell.collapsed~.tray{padding-left:80px}
.tray .tab{display:flex;align-items:center;gap:8px;height:32px;padding:0 6px 0 10px;border-radius:6px;background:transparent;color:#374151;font-size:13.5px;text-decoration:none;white-space:nowrap;border:0;cursor:pointer}.tray .tab:hover{background:#dde0ea;text-decoration:none}.tray .tab.on{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.tray .tab .ti{width:22px;height:22px;border-radius:5px;display:grid;place-items:center;color:#fff;background:var(--c,#6c5ce7)}.tray .tab .x{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;color:#6b7280}.tray .tab .x:hover{background:#cfd3e0}
.tray .sep{width:1px;height:20px;background:#c5c9d6;margin:0 4px}
.ph h1{font-size:24px;font-weight:600;letter-spacing:0}.ph p{color:var(--mut)}
.card{border-radius:6px;box-shadow:none;border-color:var(--line)}
.card>.hd{font-weight:600;font-size:15px}
.btn{border-radius:4px;font-weight:600;border-color:#cfd3dc;padding:8px 14px}.btn:hover{border-color:var(--navy);color:var(--navy)}
.btn.pri,.btn.or{background:var(--navy);border-color:var(--navy);color:#fff}.btn.pri:hover,.btn.or:hover{background:var(--navy2);border-color:var(--navy2);color:#fff}
.btn.ok{background:#0f8a0f;border-color:#0f8a0f}
th{background:#f7f8fb;color:#6b7280;font-size:12px;text-transform:none;font-weight:600;letter-spacing:0}
tbody tr.click:hover{background:#f6f8ff}
.kpi{border-radius:6px;box-shadow:none}.kpi .ico{border-radius:8px}
a{color:#0b57d0}
.pill{border-radius:99px}.stabs button,.chip{border-radius:4px}.stabs button.on{background:#e8f0fe;border-color:#a7c3f5;color:#0b57d0}.chip.on{background:var(--navy);border-color:var(--navy)}
.fld input:focus,.fld select:focus,.fld textarea:focus,.search:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(11,87,208,.14)}
.fbar .btn.or,.sw input:checked+i{background:#0f8a0f}
.fbar .btn.or{background:var(--navy)}
.login .hero{background:linear-gradient(160deg,#4a2a93,#6d3bb3)}
.avatar,.av{background:#e4dcf8;color:#4b2796}
/* record pages */
.rhead{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:4px}.rhead .back{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;color:#374151}.rhead .back:hover{background:#e3e6ee;text-decoration:none}
.rhead h1{font-size:26px;font-weight:600;margin:0;flex:1;min-width:200px}.rhead .racts{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.rtags{display:flex;gap:8px;flex-wrap:wrap;margin:2px 0 14px 46px;align-items:center}.rtag{display:inline-flex;align-items:center;gap:6px;background:#e4ecfb;color:#0b3d91;border-radius:99px;padding:3px 13px;font-size:12.5px;font-weight:500}.rtag.g{background:#e2f3e2;color:#0b6b0b}.rtag.o{background:#fdeadd;color:#a8480b}
.stagebar{display:flex;margin:0 0 14px 8px;height:32px;overflow:hidden}.stg{flex:1;background:#c8cad2;color:#3b3f4a;font-size:13px;display:flex;align-items:center;padding:0 10px 0 24px;margin-left:-8px;clip-path:polygon(0 0,calc(100% - 15px) 0,100% 50%,calc(100% - 15px) 100%,0 100%,15px 50%);white-space:nowrap;border:0;font-family:inherit;cursor:default}.stg:first-child{margin-left:0;padding-left:14px;clip-path:polygon(0 0,calc(100% - 15px) 0,100% 50%,calc(100% - 15px) 100%,0 100%)}.stg.go{cursor:pointer}.stg.go:hover{background:#b6b9c4}
.stg.done,.stg.cur{background:#0f8a0f;color:#fff}.stg.cur{font-weight:700}.stg.bad{background:#c0392b;color:#fff}.stg.go.done:hover{background:#0c730c}
.rec{display:grid;grid-template-columns:292px minmax(0,1fr) 326px;gap:14px;align-items:start}
.rcard{background:#fff;border:1px solid var(--line);border-radius:6px;padding:14px 16px;margin-bottom:14px}.rcard>h3{font-size:15px;font-weight:600;margin:0 0 12px;display:flex;align-items:center;gap:8px}.rcard>h3 .sp{margin-left:auto}
.fv{margin-bottom:11px;padding-bottom:6px;border-bottom:1px solid #eceef3}.fv:last-child{margin-bottom:0}.fv small{display:block;color:#6b7280;font-size:12.5px}.fv b{font-weight:400;font-size:14.5px;color:#1f2430;word-break:break-word}.fv b a{color:#0b57d0}
.fgrid2{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 22px}
.rtabs{display:flex;gap:28px;border-bottom:1px solid var(--line);margin:-14px -16px 16px;padding:0 18px;overflow-x:auto}.rtabs button{background:none;border:0;padding:15px 0 12px;font-size:14px;font-weight:500;letter-spacing:.02em;text-transform:uppercase;color:#0b57d0;border-bottom:3px solid transparent;cursor:pointer;white-space:nowrap;font-family:inherit}.rtabs button.on{color:#1f2430;border-bottom-color:#e8561e}
.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.tile{border-radius:4px;color:#fff;padding:12px 14px 10px;min-height:98px;background:linear-gradient(135deg,#0b4fd1,#1d6fe6)}.tile small{font-size:14px;display:block}.tile b{display:block;font-size:46px;font-weight:300;line-height:1.1;margin-top:6px;letter-spacing:-1px}
.tile.o{background:linear-gradient(135deg,#f06400,#f58a1f)}.tile.g{background:linear-gradient(135deg,#17921a,#2bb12b)}.tile.r{background:linear-gradient(135deg,#c62f2f,#e5484d)}.tile.p{background:linear-gradient(135deg,#5a2c9d,#7a3fb3)}
.nsc{background:#eef0f7;border-radius:6px;padding:11px 13px;margin-bottom:10px;font-size:13.5px}.nsc .t{display:flex;gap:8px;align-items:center;font-weight:600;margin-bottom:6px}.nsc .t .ti{width:24px;height:24px;border-radius:50%;background:#6d3bb3;color:#fff;display:grid;place-items:center;flex:none}.nsc .sub{color:#6b7280;font-size:12.5px}
.nsc .row{margin-top:8px;gap:8px}
.cpers{display:flex;gap:12px;align-items:center;margin-bottom:12px}.cpers .big{width:56px;height:56px;border-radius:6px;background:#e4dcf8;color:#4b2796;display:grid;place-items:center;font-weight:700;font-size:20px;flex:none}
.cl{display:flex;align-items:center;gap:8px;color:#0b57d0;margin:4px 0}.cl .ic{color:#12a150}.cl.m .ic{color:#e98a15}
@media (max-width:1280px){.rec{grid-template-columns:270px minmax(0,1fr)}.rec>.rr{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:980px){.rec{grid-template-columns:1fr}.fgrid2{grid-template-columns:1fr 1fr}}
@media (max-width:860px){.shell{grid-template-columns:1fr}.side{position:fixed;left:-260px;width:250px;top:var(--top-h);z-index:65;height:calc(100vh - var(--top-h));transition:.2s}.side.open{left:0}.tb-search{display:none}.tray{padding-left:10px}.topbar .tb-logo .lfull{height:24px!important}.shell.collapsed{grid-template-columns:1fr}}
@media print{.topbar,.tray,.rtags,.stagebar,.rhead .racts{display:none!important}.app{display:block}}

.dd-l{left:0;right:auto}
.topbar .dd a,.topbar .dd button{color:var(--ink)}

.rcard .tw td.r,.rcard .tw th.r{white-space:nowrap}.rcard table th{padding:9px 12px}.rcard table td{padding:10px 12px}

/* login hero on the purple brand panel */
.login{background:#f4f2fa}
.login .hero{color:#fff;background:linear-gradient(160deg,#3a1d8c 0%,#5a2c9d 55%,#7a3fb3 100%)}
.login .hero:before{background:rgba(255,255,255,.07)}
.login .hero h1{color:#fff}.login .hero p{color:rgba(255,255,255,.82)}
.login .feats div{color:#fff}.login .feats .ic{background:rgba(255,255,255,.18);color:#fff}
.login .hero .lfull{background:#fff;border-radius:10px;padding:6px 12px;height:auto!important;max-height:62px}
.login .mini{border-color:rgba(255,255,255,.4);box-shadow:0 18px 40px rgba(0,0,0,.28)}
.login .mini .bars i:last-child{background:#5a2c9d}

/* collapsed menu: keep the coloured icon tiles, hide only the text labels */
.shell.collapsed .nav a span.nt{display:grid!important}
.shell.collapsed .nav a span.nl{display:none!important}
.shell.collapsed .nav a{padding:6px 0;justify-content:center}
.shell.collapsed .nav h4{display:block!important;height:1px;margin:10px 14px;font-size:0;background:rgba(255,255,255,.16)}
.shell.collapsed .ws,.shell.collapsed .sidesearch{display:none}

/* floating label for the collapsed menu */
.shell.collapsed .nav a:hover::after{display:none!important}
.navtip{position:fixed;transform:translateY(-50%);z-index:200;background:#1f1b3a;color:#fff;font-size:13.5px;font-weight:600;padding:7px 12px;border-radius:6px;white-space:nowrap;pointer-events:none;box-shadow:0 6px 18px rgba(0,0,0,.28);animation:tipin .12s ease-out}
.navtip:before{content:"";position:absolute;left:-5px;top:50%;margin-top:-5px;border:5px solid transparent;border-left:0;border-right-color:#1f1b3a}
@keyframes tipin{from{opacity:0;transform:translate(-4px,-50%)}}

/* get-the-app card on the login page */
.getapp{display:flex;gap:14px;align-items:center;margin-top:16px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#faf9fe}
.getapp .qrbox{flex:none;width:104px;height:104px;border-radius:8px;overflow:hidden;border:1px solid #e3e5ec;background:#fff}.getapp .qrbox svg{display:block;width:100%;height:100%}
.getapp b{font-size:14px}.getapp p{margin:3px 0 9px;font-size:12.5px;color:var(--mut);line-height:1.4}


.login .hero .getapp{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.28);color:#fff;margin-top:6px;max-width:560px}
.login .hero .getapp b{color:#fff;font-size:15px}.login .hero .getapp p{color:rgba(255,255,255,.85)}
.login .hero .getapp .btn{background:#fff;border-color:#fff;color:#3a1d8c}.login .hero .getapp .btn.or{background:#fff;color:#3a1d8c}
.login .hero .getapp .btn:hover{background:#efeaff;color:#3a1d8c;border-color:#efeaff}

@media (max-height:780px){.login .hero{padding:24px 44px;gap:14px;justify-content:flex-start}.login .hero .mini{display:none}.login .hero h1{font-size:34px;margin-top:10px}}

.getapp-m{display:none;margin-top:16px;padding:14px;border-radius:12px;background:linear-gradient(135deg,#3a1d8c,#6a35aa);color:#fff}.getapp-m b{display:flex;gap:8px;align-items:center}.getapp-m p{margin:4px 0 10px;font-size:13px;opacity:.9}.getapp-m .btn{background:#fff;border-color:#fff;color:#3a1d8c;width:100%;justify-content:center}
@media (max-width:860px){.getapp-m{display:block}}
