/* NCC theme (Saideep 29-10-26): navy #1d2f6f + red #d9353a, from the NCC logo, invoice and letterhead.
   One layout for PC, Android and iPhone: top bar + side menu on PC, bottom bar on phones. */
:root{
  --navy:#1d2f6f;--navy-2:#2a3f86;--navy-soft:#e8ecf7;--red:#d9353a;--red-dark:#b8262c;--red-soft:#fde8e8;
  --green:#1f6b3e;--green-soft:#eef7f1;--amber-soft:#fff8e7;--amber-line:#f0d58a;
  --bg:#f3f5fa;--card:#ffffff;--line:#dde3ef;--line-2:#c3cce0;--ink:#18213a;--ink-2:#5b6785;--th:#eef1f8;
  --radius:12px;--side:228px;
  --font:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
*{box-sizing:border-box}
body{background:var(--bg);font-family:var(--font);font-size:14px;color:var(--ink);margin:0;-webkit-font-smoothing:antialiased}
a{color:var(--navy)}a:hover{color:var(--red-dark)}
.num{text-align:right;font-variant-numeric:tabular-nums}
[hidden]{display:none!important}
.ivtest{background:var(--red);color:#fff;text-align:center;font-weight:700;font-size:11px;padding:3px;letter-spacing:.06em}

/* ---------- top bar ---------- */
.topbar{background:var(--navy);border-bottom:4px solid var(--red);display:flex;align-items:center;gap:14px;padding:9px 20px;position:sticky;top:0;z-index:1030}
.topbar .menu-btn{display:none;background:transparent;border:0;color:#fff;font-size:24px;width:44px;height:44px;border-radius:8px}
.topbar .logo{background:#fff;border-radius:8px;width:66px;height:40px;display:flex;align-items:center;justify-content:center;padding:4px;flex:0 0 auto}
.topbar .logo img{max-width:100%;max-height:100%}
.topbar .brand{color:#fff;font-weight:700;font-size:16px;white-space:nowrap}
.topbar .brand small{display:block;font-weight:500;font-size:11px;color:#c9d2ea}
.cmd{flex:1;max-width:620px;display:flex;margin-left:12px}
.cmd input{flex:1;min-width:0;height:40px;border:0;border-radius:8px 0 0 8px;padding:0 14px;font-size:14px;font-family:var(--font)}
.cmd{position:relative}
.cmdlist{position:absolute;top:44px;left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px rgba(10,20,50,.18);z-index:1050;overflow:hidden;max-height:70vh;overflow-y:auto}
.cmdlist a{display:grid;grid-template-columns:64px minmax(0,auto) minmax(0,1fr);gap:10px;align-items:center;padding:9px 12px;text-decoration:none;color:var(--ink);border-bottom:1px solid #edf0f6}
.cmdlist a:hover,.cmdlist a.on{background:var(--navy-soft)}
.cmdlist .t{background:var(--navy);color:#fff;border-radius:6px;font-size:11px;text-align:center;padding:2px 0}
.cmdlist .n{font-weight:700;white-space:nowrap}.cmdlist small{color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmd button{height:40px;border:0;background:var(--red);color:#fff;border-radius:0 8px 8px 0;padding:0 16px;font-weight:700}
.top-right{margin-left:auto;display:flex;align-items:center;gap:10px}
.top-right select{background:var(--navy-2);color:#fff;border:0;border-radius:8px;height:38px;padding:0 10px;font-weight:600;font-family:var(--font)}
.avatar{width:38px;height:38px;border-radius:19px;background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;border:0}
.clock{color:#c9d2ea;font-size:12px;white-space:nowrap}

/* ---------- side menu ---------- */
.shell{display:flex;min-height:calc(100vh - 56px)}
.side{width:var(--side);background:#fff;border-right:1px solid var(--line);padding:14px 10px 30px;flex:0 0 var(--side);position:sticky;top:56px;height:calc(100vh - 56px);overflow-y:auto}
.side .grp{font-size:11px;font-weight:700;color:var(--ink-2);letter-spacing:.08em;padding:12px 10px 6px;text-transform:uppercase}
.side a.it{display:flex;justify-content:space-between;align-items:center;text-decoration:none;padding:9px 12px;border-radius:8px;color:var(--ink);font-weight:600;min-height:40px}
.side a.it:hover{background:var(--navy-soft);color:var(--navy)}
.side a.it.on{background:var(--navy-soft);color:var(--navy);font-weight:700;box-shadow:inset 3px 0 0 var(--red)}
.side .cnt{border-radius:10px;padding:0 8px;font-size:12px;font-weight:700;background:var(--navy);color:#fff}
.side .cnt.hot{background:var(--red)}
.side .key{color:var(--ink-2);font-weight:500;font-size:12px}
.side summary{list-style:none;cursor:pointer;padding:9px 12px;border-radius:8px;font-weight:700;color:var(--navy);display:flex;justify-content:space-between}
.side summary::-webkit-details-marker{display:none}.side summary:after{content:"\25BE";color:var(--ink-2)}.side details[open] summary:after{content:"\25B4"}
.side summary:hover{background:var(--navy-soft)}
.side .sub a{display:block;text-decoration:none;padding:7px 12px 7px 22px;color:var(--ink);font-size:13px;border-radius:6px}
.side .sub a:hover{background:var(--navy-soft)}
.side .sub .h{font-size:11px;font-weight:700;color:var(--ink-2);padding:8px 12px 2px 22px;text-transform:uppercase;letter-spacing:.05em}
.side .sub .off{color:#a7b0c6;padding:7px 12px 7px 22px;font-size:13px;display:block}
.side .keys{font-size:11px;color:var(--ink-2);padding:16px 12px 0;line-height:1.7}
.side .branch-pick{display:none;padding:0 6px 10px}
.side .branch-pick select{width:100%;height:42px;border-radius:8px;border:1px solid var(--line-2);font-weight:600}
main{flex:1;min-width:0;padding:6px 8px 40px}

/* ---------- phone bottom bar ---------- */
.bottombar{display:none}
@media (max-width:900px){
  .topbar{padding:8px 10px;gap:8px}.topbar .menu-btn{display:flex;align-items:center;justify-content:center}
  .topbar .brand,.clock,.top-right select{display:none}.cmd{margin-left:0}
  .side{position:fixed;left:0;top:0;height:100vh;z-index:1040;transform:translateX(-105%);transition:transform .2s;box-shadow:0 0 30px rgba(0,0,0,.25);padding-top:20px}
  body.menu-open .side{transform:none}
  body.menu-open .scrim{position:fixed;inset:0;background:rgba(10,20,50,.35);z-index:1035}
  .side .branch-pick{display:block}
  main{padding:4px 2px 90px}
  .bottombar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--line);
    padding:6px 4px calc(10px + env(safe-area-inset-bottom,0px));z-index:1030}
  .bottombar a{text-align:center;text-decoration:none;font-size:11px;font-weight:600;color:var(--ink-2);padding:6px 0;min-height:44px;display:flex;flex-direction:column;align-items:center;gap:2px}
  .bottombar a.on{color:var(--navy);font-weight:700}
  .bottombar svg{width:22px;height:22px}
}

/* ---------- cards / panels (all screens use these) ---------- */
.ivpanel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin:12px;overflow:hidden}
.ivhead{background:var(--navy);color:#fff;font-weight:700;padding:11px 16px;display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;font-size:15px}
.ivhead a{color:#fff}.ivhead a.btn-light,.ivhead .btn-light{color:var(--navy);background:#fff;border:0;font-weight:700;border-radius:8px}
.ivbody{padding:14px 16px}
.ivsec{background:var(--th);color:var(--navy);font-weight:700;padding:7px 12px;margin:10px 0 8px;border-radius:8px}
.form-control,.custom-select{font-size:14px;height:40px;border-radius:8px;border-color:var(--line-2);font-family:var(--font)}
.form-control-sm{height:34px}textarea.form-control{height:auto}
.form-control:focus,.custom-select:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(29,47,111,.15)}
label.small,.small.mb-0{color:var(--ink-2);font-weight:600}
.req{color:var(--red);font-weight:700}
.ivbtn{background:var(--red);color:#fff;border:0;border-radius:10px;padding:10px 22px;font-weight:700;font-size:15px;min-height:44px;font-family:var(--font)}
.ivbtn:hover{background:var(--red-dark);color:#fff;text-decoration:none}
.ivbtn:disabled{opacity:.6}
.btn-primary{background:var(--navy);border-color:var(--navy)}.btn-primary:hover{background:var(--navy-2);border-color:var(--navy-2)}
.btn{border-radius:8px}
table.ivt{width:100%;font-size:13.5px;border-collapse:collapse}
table.ivt th{background:var(--th);color:var(--navy);border-bottom:1px solid var(--line);padding:9px 8px;text-align:center;font-weight:700;white-space:nowrap}
table.ivt td{border-bottom:1px solid #edf0f6;padding:8px}
table.ivt tbody tr:hover td{background:#f7f9fd}
.tiles,.dtiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.tile{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--navy);border-radius:var(--radius);padding:14px 16px}
.tile b{font-size:26px;display:block;color:var(--navy);font-variant-numeric:tabular-nums}
.alert{border-radius:10px}
.ok-strip{background:var(--green-soft);border:1px solid #a9d8b9;border-radius:10px;padding:10px 14px;margin:12px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.cfm{position:fixed;inset:0;background:rgba(10,20,50,.45);display:flex;align-items:center;justify-content:center;z-index:2000;padding:16px}
.cfm-box{background:#fff;border-radius:14px;padding:22px;max-width:440px;width:100%;font-size:17px;font-weight:700;border-top:5px solid var(--red)}
.modal-content{border-radius:14px;overflow:hidden}.modal-header{background:var(--navy);color:#fff}.modal-header .close{color:#fff;opacity:.9}
.lrtype{display:flex;gap:4px;flex-wrap:wrap;background:rgba(255,255,255,.12);padding:3px;border-radius:10px}
.lrtype button{border:0;border-radius:8px;padding:7px 14px;font-weight:700;color:#fff;background:transparent!important;opacity:.8}
.lrtype button.on{opacity:1;background:#fff!important;color:var(--navy)}
.chg td{padding:5px 6px;font-weight:600}.chg input{text-align:right;max-width:150px}
@media (max-width:700px){.chg input{max-width:none}.hide-sm{display:none}.ivpanel{margin:8px}.ivbody{padding:12px}}
.select2-container .select2-selection--single{height:40px;border-radius:8px;border-color:var(--line-2)}
.select2-container--default .select2-selection--single .select2-selection__rendered{line-height:38px;font-size:14px;padding-left:12px}
.select2-container--default .select2-selection--single .select2-selection__arrow{height:38px}

/* LR hover card */
.lrpeek{position:fixed;z-index:2100;background:#fff;border:1px solid var(--line);border-top:4px solid var(--navy);border-radius:10px;box-shadow:0 12px 30px rgba(10,20,50,.22);
  padding:10px 12px;font-size:13px;line-height:1.5;max-width:340px;pointer-events:none;color:var(--ink)}
.lrpeek .h{display:flex;justify-content:space-between;gap:10px;color:var(--navy);margin-bottom:2px}.lrpeek .h span{font-size:12px;font-weight:700;color:var(--red-dark)}
.lrpeek .m{color:var(--ink-2)}

table.ivt td a{white-space:nowrap}

/* calendar (flatpickr) in NCC colours */
.flatpickr-calendar{font-family:var(--font);border-radius:12px;box-shadow:0 12px 30px rgba(10,20,50,.22)}
.flatpickr-day.selected,.flatpickr-day.selected:hover{background:var(--navy);border-color:var(--navy)}
.flatpickr-day.today{border-color:var(--red)}.flatpickr-day.today:hover{background:var(--red);border-color:var(--red);color:#fff}
.flatpickr-months .flatpickr-month{color:var(--navy)}
.fp-quick{display:flex;gap:6px;padding:6px 8px 8px;border-top:1px solid var(--line)}
.fp-quick button{flex:1;border:0;border-radius:8px;background:var(--navy-soft);color:var(--navy);font-weight:700;padding:6px 0;font-size:13px}
.fp-quick button:hover{background:var(--navy);color:#fff}
input.flatpickr-input[readonly]{background:#fff;cursor:pointer}

/* bell (pending branch operations) */
.bell{position:relative;color:#fff;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:10px}
.bell:hover{background:rgba(255,255,255,.12);color:#fff}.bell svg{width:22px;height:22px}
.bell b{position:absolute;top:2px;right:0;background:var(--red);color:#fff;border-radius:10px;font-size:11px;padding:0 5px;line-height:16px;border:2px solid var(--navy)}

.side .sub a.on{background:var(--navy-soft);color:var(--navy);font-weight:700;box-shadow:inset 3px 0 0 var(--red)}

/* loading sheet: where to send cards */
.sendto{display:flex;flex-wrap:wrap;gap:10px}
.sendto a{display:flex;flex-direction:column;min-width:170px;padding:10px 14px;border:2px solid var(--line);border-radius:12px;background:#fff;text-decoration:none;color:var(--ink)}
.sendto a b{color:var(--navy);font-size:15px}.sendto a small{color:var(--red);font-weight:700}.sendto a span{font-size:12px;color:var(--ink-2)}
.sendto a em{font-style:normal;font-size:12px;font-weight:700;color:#fff;background:var(--red);border-radius:6px;padding:0 6px;align-self:flex-start;margin-top:3px}
.sendto a:hover{border-color:var(--navy)}.sendto a.on{border-color:var(--red);background:var(--navy-soft);box-shadow:0 0 0 3px rgba(217,53,58,.15)}
.sendto a.all{justify-content:center;min-width:auto;color:var(--navy);font-weight:700}

/* home: quick actions (compact) */
.qa{display:flex;flex-wrap:wrap;gap:8px;margin:4px 12px 12px;align-items:center}
.qa a{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 16px;border-radius:10px;font-weight:600;text-decoration:none;font-size:14px;
  border:1px solid var(--line-2);background:#fff;color:var(--navy)}
.qa a:hover{border-color:var(--navy);text-decoration:none}
.qa a.book{background:var(--red);border-color:var(--red);color:#fff}.qa a.book:hover{background:var(--red-dark)}
.qa a svg{width:18px;height:18px}
@media (max-width:700px){.qa a{flex:1 1 30%;justify-content:center;padding:0 8px}.qa a.book{flex:1 1 100%}}

/* ================= CLEAN LOOK (Saideep 29-10-26: simple, neat, light) ================= */
.ivpanel{border:1px solid var(--line);box-shadow:0 1px 3px rgba(16,24,40,.06);border-radius:12px}
.ivhead{background:#fff;color:var(--navy);border-bottom:1px solid var(--line);padding:12px 16px;font-size:15px}
.ivhead a{color:var(--navy)}
.ivhead a.btn-light,.ivhead .btn-light{background:var(--navy-soft);color:var(--navy);font-weight:600}
.ivhead .btn-outline-light{color:var(--navy);border-color:var(--line-2)}.ivhead .btn-outline-light:hover{background:var(--navy-soft);color:var(--navy)}
.ivhead .badge-light,.ivhead .st{border:1px solid var(--line-2)}
.lrtype{background:var(--navy-soft)}.lrtype button{color:var(--navy)!important;opacity:1}
.lrtype button.on{background:var(--navy)!important;color:#fff!important}
.ivbtn{border-radius:10px;padding:9px 20px;font-size:14px;min-height:42px}
table.ivt th{background:#f6f8fc;font-weight:600;font-size:13px}
.tile{border-top:1px solid var(--line);box-shadow:0 1px 3px rgba(16,24,40,.06)}
.tile b{font-size:22px}
main{background:var(--bg)}

/* side menu: second level groups (Operations > Delivery > Single LR ...) */
.side .sub details.sg summary{font-weight:600;color:var(--ink);font-size:13px;padding:7px 12px 7px 22px;border-radius:6px}
.side .sub details.sg summary:after{content:"\203A";color:var(--ink-2);transition:transform .15s}
.side .sub details.sg[open] summary:after{content:"\203A";transform:rotate(90deg)}
.side .sub details.sg[open] summary{color:var(--navy)}
.side .sub .sgi{border-left:2px solid var(--line);margin:0 0 4px 26px}
.side .sub .sgi a,.side .sub .sgi .off{padding:6px 10px 6px 12px;font-size:13px}

/* print: never print the phone menu bar */
@media print{.bottombar,#lrpeek{display:none!important}}
