@import url("vendor/fonts.css");
/* VLE PC — one design system for Website, CSC Admin and Super Admin.
   Every HEX below is pixel-sampled from the reference images (spec Section 3). Do not substitute. */
:root{
  /* BLUES */
  --blue-appbar:#0066D3; --blue-button:#0168E5; --blue-active:#005DE2; --blue-header-dark:#013E82;
  --navy-pill:#012563; --navy-footer:#012C55; --navy-footer-app:#003670; --text-navy:#020232; --headline-navy:#00022F;
  /* SIDEBARS */
  --sidebar-dark:#1D2B39; --sidebar-light:#F1F4F8; --super-sidebar:#EEF2F7; --super-active:#3952E7; --purple-band:#622E91; --purple-band-2:#5B288A;
  /* GREENS */
  --green-login:#029E5D; --green-cta-dark:#01734C; --green-banner:#019258; --green-card:#01A368; --green-download:#01A45D; --green-add:#039227;
  --wa-header:#01875B; --wa-button:#019850; --wa-footer:#015540;
  /* OTHER BRAND */
  --orange:#FD6D09; --orange-soft:#FE9962; --purple:#7C34F4; --purple-soft:#8B56F1; --red-brand:#E10D34; --red-alert:#F91232; --red-data:#EE2C44;
  --teal:#0298A1; --teal-banner:#02708E; --gold:#D3960F; --pink:#FD4493; --yellow-ribbon:#FDD05E;
  /* PASTELS */
  --page-bg:#F1F6FD; --card:#FFFFFF; --tint-blue:#E8F1FE; --tint-green:#E0F7EB; --tint-orange:#FEEEE7; --tint-purple:#F2EBFE; --tint-red:#FEE8EA;
  --tint-teal:#E5FAFA; --tint-yellow:#FEF3D9; --tint-pink:#FEECF3; --tint-grey:#EEF1F7; --wa-tint:#E0F7EB; --wa-chat-bg:#F3EEE8;
  /* TEXT / LINES */
  --text:#020232; --text-muted:#64748B; --border:#E3E8F1;
  /* status chips (spec 3.2) */
  --chip-pending-bg:#FEEBCF; --chip-pending-fg:#E93222; --chip-waiting-bg:#FEEBCA; --chip-waiting-fg:#E93222;
  --chip-progress-bg:#DAECFE; --chip-progress-fg:#0B4BFA; --chip-done-bg:#D5F8E7; --chip-done-fg:#0E7748; --chip-active-bg:#DFF9EC;
  /* KPI tiles (spec 3.5) */
  --kpi-customers-bg:#F1F7FE; --kpi-customers-ic:#3C83FC; --kpi-pending-bg:#FEF1F1; --kpi-pending-ic:#FD6D09;
  --kpi-done-bg:#EAFBF3; --kpi-done-ic:#0ACB6F; --kpi-token-bg:#F9F0FE; --kpi-token-ic:#B352FC;
  --shadow:0 4px 14px rgba(11,42,91,.08); --shadow-lg:0 18px 48px rgba(11,42,91,.18);
  --radius:14px; --radius-sm:10px;
  --font:'Poppins','Noto Sans Devanagari','Mukta','Nirmala UI',system-ui,-apple-system,'Segoe UI',sans-serif;
}
/* Dark theme (optional, spec 3.13) */
:root[data-theme="dark"]{
  --page-bg:#0F1722; --card:#1D2B39; --text:#EAF1FB; --text-muted:#9AA9BC; --border:#2A3B4D; --tint-grey:#243446;
  --tint-blue:rgba(3,127,252,.18); --tint-green:rgba(37,178,108,.18); --tint-orange:rgba(253,109,9,.18); --tint-purple:rgba(124,52,244,.2);
  --tint-red:rgba(249,18,50,.16); --tint-teal:rgba(2,152,161,.2); --tint-yellow:rgba(211,150,15,.2); --tint-pink:rgba(253,68,147,.18);
  --kpi-customers-bg:rgba(60,131,252,.16); --kpi-pending-bg:rgba(253,109,9,.16); --kpi-done-bg:rgba(10,203,111,.16); --kpi-token-bg:rgba(179,82,252,.18);
  --shadow:0 4px 14px rgba(0,0,0,.35);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--font);font-size:14px;color:var(--text);background:var(--page-bg);-webkit-font-smoothing:antialiased;line-height:1.45}
h1,h2,h3,h4{margin:0;color:var(--text);font-weight:700}
a{color:var(--blue-button);text-decoration:none}
button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit;font-size:14px;color:var(--text)}
svg.ic{display:inline-block;vertical-align:middle;flex:none;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
svg.ic.fill{fill:currentColor;stroke:none}
.muted{color:var(--text-muted)} .sm{font-size:12px} .xs{font-size:11px} .bold{font-weight:700} .semi{font-weight:600}
.row{display:flex;align-items:center;gap:10px} .col{display:flex;flex-direction:column;gap:10px} .between{justify-content:space-between} .grow{flex:1;min-width:0} .wrap{flex-wrap:wrap}
.hide{display:none!important}
.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ── Cards ── */
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}
.card-title{font-size:16px;font-weight:700;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.link{font-size:12px;font-weight:600;color:var(--blue-button);display:inline-flex;align-items:center;gap:4px;background:none;border:0;padding:0}

/* ── Buttons ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 18px;border-radius:var(--radius-sm);border:1px solid transparent;font-weight:600;font-size:13.5px;background:var(--card);color:var(--text);transition:filter .15s,transform .05s;white-space:nowrap}
.btn:hover{filter:brightness(.97)} .btn:active{transform:translateY(1px)} .btn:disabled{opacity:.55;cursor:not-allowed}
.btn-primary{background:var(--blue-button);color:#fff} .btn-active{background:var(--blue-active);color:#fff}
.btn-success{background:var(--green-add);color:#fff} .btn-green{background:var(--green-card);color:#fff} .btn-wa{background:var(--wa-button);color:#fff}
.btn-outline{background:var(--card);border-color:var(--blue-button);color:var(--blue-button)}
.btn-ghost{background:var(--tint-blue);color:var(--blue-button)}
.btn-danger{background:#FEECEE;color:var(--red-alert);border-color:var(--red-alert)}
.btn-lg{height:48px;font-size:14.5px;padding:0 24px} .btn-sm{height:32px;padding:0 12px;font-size:12.5px;border-radius:8px} .btn-block{width:100%}
.iconbtn{width:38px;height:38px;border-radius:10px;border:1px solid var(--border);background:var(--card);display:inline-grid;place-items:center;color:var(--text-muted);position:relative}
.iconbtn:hover{color:var(--blue-button)}

/* ── Forms ── */
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.field label{font-size:13px;font-weight:600}
.field label .req{color:var(--red-alert)}
.input,.select,.textarea{width:100%;height:42px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);outline:none;transition:border-color .15s,box-shadow .15s}
.textarea{height:auto;padding:10px 12px;resize:vertical;min-height:84px}
.input:focus,.select:focus,.textarea:focus{border-color:var(--blue-button);box-shadow:0 0 0 3px rgba(1,104,229,.12)}
.input.err,.select.err{border-color:var(--red-alert)} .err-msg{color:var(--red-alert);font-size:12px}
.input-icon{position:relative} .input-icon .ic{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted)} .input-icon .input{padding-left:38px}
.switch{position:relative;width:44px;height:24px;flex:none}
.switch input{opacity:0;width:0;height:0;position:absolute}
.switch span{position:absolute;inset:0;background:#CBD5E1;border-radius:24px;transition:.2s}
.switch span:before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.switch input:checked+span{background:var(--green-card)} .switch input:checked+span:before{transform:translateX(20px)}
.switch.blue input:checked+span{background:var(--blue-button)}
.check{display:flex;align-items:center;gap:8px;font-size:13px}
.check input{width:17px;height:17px;accent-color:var(--blue-button)}

/* ── Chips (spec 3.2 exact) ── */
.chip{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 10px;border-radius:7px;font-size:11px;font-weight:700;white-space:nowrap}
.chip.pending{background:var(--chip-pending-bg);color:var(--chip-pending-fg)}
.chip.waiting{background:var(--chip-waiting-bg);color:var(--chip-waiting-fg)}
.chip.inprog{background:var(--chip-progress-bg);color:var(--chip-progress-fg)}
.chip.completed,.chip.done,.chip.delivered{background:var(--chip-done-bg);color:var(--chip-done-fg)}
.chip.rejected,.chip.failed,.chip.cancelled,.chip.skipped{background:var(--tint-red);color:var(--red-alert)}
.chip.active{background:var(--chip-active-bg);color:var(--chip-done-fg)} .chip.active:before{content:"";width:6px;height:6px;border-radius:50%;background:#0E7748}
.chip.grey,.chip.queued{background:var(--tint-grey);color:var(--text-muted)}
.chip.blue{background:var(--tint-blue);color:var(--blue-button)}
.pill-count{background:#F91232;color:#fff;border-radius:10px;min-width:17px;height:17px;font-size:10px;font-weight:700;display:grid;place-items:center;padding:0 4px}

/* ── Avatars (initials on pastel; cycle) ── */
.avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:13px;flex:none;background:#E6F1FE;color:#0066D3}
.avatar.a1{background:#E6F1FE;color:#0066D3} .avatar.a2{background:#DCF9EA;color:#0E7748} .avatar.a3{background:#FEE8EA;color:#F91232} .avatar.a4{background:#E1EEFE;color:#0B4BFA} .avatar.a5{background:#ECFFF9;color:#04A34E}
.avatar.lg{width:56px;height:56px;font-size:18px} .avatar.xl{width:72px;height:72px;font-size:24px}
.avatar.photo{background:linear-gradient(160deg,#dbe9fb,#b8d4f7);position:relative;overflow:hidden}

/* ── KPI tiles ── */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.kpi{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:var(--radius);border:1px solid var(--border);cursor:pointer;transition:transform .12s}
.kpi:hover{transform:translateY(-2px)}
.kpi .kpi-ic{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:#fff;flex:none}
.kpi .num{font-size:30px;font-weight:700;line-height:1.05}
.kpi .lbl{font-size:12.5px;color:var(--text-muted);font-weight:500}
.kpi.customers{background:var(--kpi-customers-bg)} .kpi.customers .kpi-ic{color:var(--kpi-customers-ic)} .kpi.customers .num{color:#010221}
.kpi.pending{background:var(--kpi-pending-bg)} .kpi.pending .kpi-ic{color:var(--kpi-pending-ic)} .kpi.pending .num{color:#E30102}
.kpi.done{background:var(--kpi-done-bg)} .kpi.done .kpi-ic{color:var(--kpi-done-ic)} .kpi.done .num{color:#03701E}
.kpi.token{background:var(--kpi-token-bg)} .kpi.token .kpi-ic{color:var(--kpi-token-ic)} .kpi.token .num{color:#7A06E0}

/* ── Tabs ── */
.tabs{display:flex;gap:6px;flex-wrap:wrap}
.tab{height:36px;padding:0 12px;border-radius:9px;border:1px solid var(--border);background:var(--card);font-weight:500;font-size:12.5px;display:inline-flex;align-items:center;gap:7px;color:var(--text);white-space:nowrap}
.tab.on{background:var(--blue-active);border-color:var(--blue-active);color:#fff}
.tabs.underline{gap:22px;border-bottom:1px solid var(--border)}
.tabs.underline .tab{border:0;border-bottom:3px solid transparent;border-radius:0;background:none;padding:0 2px;height:42px;color:var(--text-muted)}
.tabs.underline .tab.on{color:var(--blue-active);border-bottom-color:var(--blue-active)}

/* ── Tables ── */
.table-wrap{overflow-x:auto}
table.t{width:100%;border-collapse:collapse}
table.t th{font-size:12px;text-align:left;color:var(--text-muted);font-weight:600;padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap}
table.t td{padding:12px;border-bottom:1px solid var(--border);font-size:13.5px;vertical-align:middle}
table.t tr:last-child td{border-bottom:0}
table.t tbody tr.click{cursor:pointer} table.t tbody tr.click:hover{background:var(--tint-blue)}

/* ── Modal / drawer / toast ── */
.overlay{position:fixed;inset:0;background:rgba(2,12,32,.5);display:grid;place-items:center;z-index:100;padding:16px;animation:fade .15s}
.modal{background:var(--card);border-radius:16px;width:min(560px,100%);max-height:92vh;overflow:auto;box-shadow:var(--shadow-lg)}
.modal.wide{width:min(820px,100%)}
.modal-h{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--card);z-index:2}
.modal-h h3{font-size:17px} .modal-b{padding:20px 22px} .modal-f{padding:14px 22px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px}
#toasts{position:fixed;right:18px;bottom:18px;z-index:200;display:flex;flex-direction:column;gap:10px}
.toast{background:#0F1E33;color:#fff;padding:12px 16px;border-radius:12px;box-shadow:var(--shadow-lg);display:flex;gap:10px;align-items:center;max-width:380px;animation:slide .2s;font-size:13.5px}
.toast.ok{background:#0E7748} .toast.err{background:#C4122C} .toast.info{background:#0B4BFA}
@keyframes fade{from{opacity:0}to{opacity:1}} @keyframes slide{from{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}
@keyframes spin{to{transform:rotate(360deg)}}
.spinner{width:22px;height:22px;border:3px solid var(--border);border-top-color:var(--blue-button);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}
.skeleton{background:linear-gradient(90deg,var(--tint-grey) 25%,var(--card) 37%,var(--tint-grey) 63%);background-size:400% 100%;animation:shimmer 1.3s infinite;border-radius:10px;min-height:16px}
@keyframes shimmer{0%{background-position:100% 0}100%{background-position:0 0}}
.empty{text-align:center;padding:38px 16px;color:var(--text-muted)} .empty .ic{width:44px;height:44px;opacity:.5;margin-bottom:8px}
.notice-strip{display:flex;gap:10px;align-items:center;padding:10px 14px;border-radius:10px;font-size:13px}
.notice-strip.yellow{background:var(--tint-yellow);color:#7a5200} .notice-strip.blue{background:#E7F3FE;color:#0B4BFA} .notice-strip.red{background:var(--tint-red);color:#B0102A} .notice-strip.green{background:var(--tint-green);color:#0E7748}
.ribbon{display:inline-block;background:var(--yellow-ribbon);color:var(--text-navy);font-weight:700;padding:6px 18px;border-radius:8px;transform:rotate(-2deg);box-shadow:0 2px 6px rgba(0,0,0,.2)}
.progress{height:8px;border-radius:8px;background:var(--tint-grey);overflow:hidden} .progress>i{display:block;height:100%;background:var(--blue-button);border-radius:8px}
.progress.warn>i{background:var(--orange)} .progress.bad>i{background:var(--red-alert)}

@media (max-width:1100px){.kpis{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.kpis{grid-template-columns:1fr}.modal{border-radius:14px}}
