/* ============================================================
   IMW Support Portal — master stylesheet v4.1
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --bg1:#0b1220; --bg2:#0f172a;
  --primary:#2563eb; --primary-2:#0ea5e9;
  --primary-rgb:37,99,235; --primary-2-rgb:14,165,233;
  --accent:#f59e0b;
  --glass:rgba(255,255,255,.055); --glass-brd:rgba(255,255,255,.12);
  --text:#e5e7eb; --text-dim:#cbd5e1; --muted:#94a3b8; --radius:14px;
  --success:#10b981; --danger:#ef4444; --warn:#f59e0b; --info:#38bdf8;
  --shadow:0 18px 55px rgba(0,0,0,.4);
  --shadow-sm:0 8px 22px rgba(0,0,0,.28);
}

html,body{min-height:100%}
body{
  font-family:'Inter',system-ui,-apple-system,"Segoe UI",sans-serif;
  background:linear-gradient(135deg,#0b1220 0%,#0f172a 45%,#111c33 100%);
  color:var(--text);min-height:100vh;overflow-x:hidden;position:relative;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  line-height:1.5;
}

/* ---- ORBS / NAV ---- */
.bg-orbs{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.bg-orbs span{position:absolute;border-radius:50%;filter:blur(100px);opacity:.45}
.bg-orbs span:nth-child(1){width:440px;height:440px;background:var(--primary);top:-120px;left:-120px}
.bg-orbs span:nth-child(2){width:380px;height:380px;background:var(--primary-2);bottom:-110px;right:-90px}
.bg-orbs span:nth-child(3){width:360px;height:360px;background:#6366f1;top:45%;left:55%}

.topnav{position:sticky;top:0;z-index:100;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  background:rgba(11,18,32,.78);border-bottom:1px solid var(--glass-brd)}
.nav-inner{max-width:1340px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:14px 22px;gap:12px}
.brand{color:#fff;text-decoration:none;font-weight:700;font-size:1.02rem;display:flex;align-items:center;gap:10px;letter-spacing:.2px}
.brand-dot{width:12px;height:12px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-2));box-shadow:0 0 14px var(--primary);flex-shrink:0}
.brand-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}
.nav-links{display:flex;gap:4px;align-items:center;flex-wrap:nowrap}
.nav-links a{color:var(--text);text-decoration:none;padding:8px 12px;border-radius:9px;font-size:.88rem;transition:.18s;white-space:nowrap}
.nav-links a:hover{background:rgba(var(--primary-rgb),.18);color:#fff}
.nav-links a.active{background:rgba(var(--primary-rgb),.22);color:#fff;font-weight:600}
.btn-logout{background:linear-gradient(135deg,#ef4444,#f97316);color:#fff!important}
.btn-logout:hover{opacity:.9}
.nav-toggle{display:none;background:none;border:none;color:#fff;font-size:1.4rem;cursor:pointer}
.nav-role-pill{display:inline-flex;align-items:center;padding:4px 10px;border-radius:20px;
  background:linear-gradient(135deg,rgba(var(--primary-rgb),.25),rgba(var(--primary-2-rgb),.18));
  border:1px solid rgba(var(--primary-rgb),.4);color:#93c5fd;font-size:.68rem;font-weight:700;
  letter-spacing:.5px;white-space:nowrap;margin:0 4px}

.container{max-width:1340px;margin:auto;padding:28px 22px 70px}
.sitefoot{text-align:center;padding:26px;color:var(--muted);font-size:.82rem;border-top:1px solid var(--glass-brd)}
.sitefoot-links{display:flex;justify-content:center;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.sitefoot-links a{color:#93c5fd;text-decoration:none;font-size:.85rem;font-weight:500;transition:.18s;padding:4px 8px;border-radius:6px}
.sitefoot-links a:hover{color:#fff;background:rgba(var(--primary-rgb),.15)}
.sitefoot-dot{color:var(--muted)}
.sitefoot-copy{color:var(--muted);font-size:.82rem}

/* ---- CARDS ---- */
.card{background:var(--glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border:1px solid var(--glass-brd);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);
  margin-bottom:22px;overflow:hidden;min-width:0}
.card h2,.card h3{margin-bottom:14px;font-weight:700}
.card h2{font-size:1.35rem;background:linear-gradient(135deg,#93c5fd,#67e8f9);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.card h3{font-size:1.05rem}
.card h4{font-size:.95rem;font-weight:600}
.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding-bottom:14px;margin-bottom:16px;border-bottom:1px solid var(--glass-brd);flex-wrap:wrap}
.card-head h2,.card-head h3{margin:0}
.card-foot{padding-top:16px;margin-top:16px;border-top:1px solid var(--glass-brd)}
.card-tight{padding:16px}
.card-flat{background:rgba(255,255,255,.02);box-shadow:none}
.card-danger{border-color:rgba(239,68,68,.4);background:rgba(239,68,68,.06)}
.card-success{border-color:rgba(16,185,129,.4);background:rgba(16,185,129,.06)}
.card-warn{border-color:rgba(245,158,11,.4);background:rgba(245,158,11,.06)}
.card-info{border-color:rgba(56,189,248,.4);background:rgba(56,189,248,.06)}

/* ---- GRID ---- */
.grid{display:grid;gap:20px}
.grid>*{min-width:0}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.grid-4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.grid-5{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}

/* ---- STATS ---- */
.stat{padding:22px;border-radius:var(--radius);background:var(--glass);border:1px solid var(--glass-brd);
  position:relative;overflow:hidden;min-width:0}
.stat::before{content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(var(--primary-rgb),.22),rgba(var(--primary-2-rgb),.08));
  opacity:.65;z-index:0}
.stat>*{position:relative;z-index:1}
.stat-num{font-size:2.2rem;font-weight:800;line-height:1.15;
  background:linear-gradient(135deg,#93c5fd,#67e8f9);-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;word-break:break-word}
.stat-lbl{color:var(--muted);font-size:.86rem;margin-top:4px;text-transform:uppercase;letter-spacing:.5px}
.stat-num.success{background:linear-gradient(135deg,#34d399,#10b981);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.stat-num.warning{background:linear-gradient(135deg,#fbbf24,#f59e0b);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.stat-num.danger {background:linear-gradient(135deg,#f87171,#ef4444);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

/* ============================================================
   FORM ELEMENTS
   ============================================================ */
label{display:block;margin:12px 0 6px;font-size:.82rem;color:var(--muted);
  text-transform:uppercase;letter-spacing:.6px;font-weight:600}
label.normal{text-transform:none;letter-spacing:0;font-size:.88rem;color:var(--text);font-weight:500}

input:not([type]),
input[type=text],input[type=email],input[type=password],input[type=date],input[type=time],
input[type=datetime-local],input[type=number],input[type=tel],input[type=url],input[type=search],
select,textarea{
  width:100%;padding:11px 13px;border-radius:9px;background:rgba(11,18,32,.7);
  border:1px solid var(--glass-brd);color:#fff;font-family:inherit;font-size:.94rem;
  transition:.18s;outline:none;min-width:0;line-height:1.4;
  -webkit-appearance:none;appearance:none;
}
select{
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;background-size:12px;padding-right:34px;
}
input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.25)}
input::placeholder,textarea::placeholder{color:rgba(148,163,184,.55)}
select option{background:#0b1220;color:#fff}
textarea{resize:vertical;min-height:80px;font-family:inherit}
input[disabled],select[disabled],textarea[disabled]{opacity:.55;cursor:not-allowed;background:rgba(11,18,32,.4)}
input[readonly]{background:rgba(11,18,32,.4);cursor:default}

input[type=file]{width:100%;padding:8px 12px;border-radius:9px;background:rgba(11,18,32,.55);
  border:1px solid var(--glass-brd);color:var(--text);font-family:inherit;font-size:.88rem;cursor:pointer}
input[type=file]::file-selector-button{background:linear-gradient(135deg,var(--primary),var(--primary-2));
  color:#fff;border:none;padding:6px 12px;border-radius:6px;font-weight:600;font-size:.82rem;
  cursor:pointer;margin-right:10px;transition:.18s;font-family:inherit}

input[type=color]{width:100%;height:44px;padding:4px;background:rgba(11,18,32,.55);
  border:1px solid var(--glass-brd);border-radius:9px;cursor:pointer}
input[type=color]::-webkit-color-swatch-wrapper{padding:0}
input[type=color]::-webkit-color-swatch{border:none;border-radius:6px}

input[type=checkbox],input[type=radio]{width:16px;height:16px;accent-color:var(--primary);cursor:pointer;
  vertical-align:middle;margin:0}

.check-line{display:flex;align-items:center;gap:10px;text-transform:none;letter-spacing:0;
  color:var(--text);font-size:.9rem;margin:0;cursor:pointer;font-weight:500}
.check-line input{width:auto;flex-shrink:0}
.check-line span{flex:1;min-width:0}

.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.form-row-4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.form-row>div,.form-row-3>div,.form-row-4>div{min-width:0}
.form-row>.span-2{grid-column:span 2}
.form-row>.span-all{grid-column:1/-1}
@media(max-width:768px){.form-row-4{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.form-row,.form-row-3,.form-row-4{grid-template-columns:1fr}}

.form-section-title{font-size:1rem;color:#93c5fd;margin:22px 0 12px;font-weight:700;display:flex;align-items:center;gap:8px}
.form-section-title:first-child{margin-top:0}
.form-section-title-sm{font-size:.9rem;color:#93c5fd;margin:18px 0 10px;font-weight:600}

.form-hint{font-size:.78rem;color:var(--muted);margin-top:4px;font-style:italic}

/* ---- BUTTONS ---- */
.btn{display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border-radius:9px;border:none;
  cursor:pointer;font-family:inherit;font-size:.9rem;font-weight:600;text-decoration:none;transition:.22s;
  background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;
  box-shadow:0 8px 22px rgba(var(--primary-rgb),.35);white-space:nowrap;text-align:center;line-height:1.3}
.btn:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(var(--primary-rgb),.5)}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
.btn-ghost{background:var(--glass);border:1px solid var(--glass-brd);box-shadow:none;color:var(--text)}
.btn-ghost:hover{background:rgba(255,255,255,.12);box-shadow:none;color:#fff}
.btn-xs{padding:4px 9px;font-size:.72rem;border-radius:6px;gap:4px}
.btn-sm{padding:6px 12px;font-size:.78rem;border-radius:7px;gap:6px}
.btn-lg{padding:14px 26px;font-size:1rem;border-radius:11px}
.btn-danger{background:linear-gradient(135deg,#ef4444,#b91c1c);box-shadow:0 8px 22px rgba(239,68,68,.35)}
.btn-danger:hover{box-shadow:0 12px 26px rgba(239,68,68,.5)}
.btn-success{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 8px 22px rgba(16,185,129,.35)}
.btn-success:hover{box-shadow:0 12px 26px rgba(16,185,129,.5)}
.btn-warning{background:linear-gradient(135deg,#f59e0b,#ea580c);box-shadow:0 8px 22px rgba(245,158,11,.35);color:#fff}
.btn-warning:hover{box-shadow:0 12px 26px rgba(245,158,11,.5)}
.btn-info{background:linear-gradient(135deg,#0ea5e9,#0891b2);box-shadow:0 8px 22px rgba(14,165,233,.35)}
.btn-info:hover{box-shadow:0 12px 26px rgba(14,165,233,.5)}

.btn-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

/* ---- TABS ---- */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--glass-brd);margin-bottom:18px;
  overflow-x:auto;padding-bottom:0;scrollbar-width:thin}
.tab{padding:10px 16px;border:none;background:transparent;color:var(--muted);cursor:pointer;
  font-family:inherit;font-size:.9rem;font-weight:600;letter-spacing:.3px;
  border-bottom:2px solid transparent;white-space:nowrap;transition:.18s;text-decoration:none;
  display:inline-flex;align-items:center;gap:8px}
.tab:hover{color:#fff}
.tab.active{color:#93c5fd;border-bottom-color:var(--primary)}

/* ---- TABLES ---- */
.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:11px;padding-bottom:2px}
table.tbl{width:100%;border-collapse:separate;border-spacing:0 6px;font-size:.9rem;table-layout:auto}
table.tbl th{text-align:left;padding:11px 13px;color:var(--muted);font-weight:600;
  text-transform:uppercase;letter-spacing:.5px;font-size:.72rem;white-space:nowrap}
table.tbl td{padding:11px 13px;background:rgba(255,255,255,.035);
  border-top:1px solid var(--glass-brd);border-bottom:1px solid var(--glass-brd);
  word-break:break-word;vertical-align:middle}
table.tbl tr td:first-child{border-left:1px solid var(--glass-brd);border-radius:9px 0 0 9px}
table.tbl tr td:last-child{border-right:1px solid var(--glass-brd);border-radius:0 9px 9px 0}
table.tbl tr:hover td{background:rgba(var(--primary-rgb),.09)}
table.tbl.compact th,table.tbl.compact td{padding:8px 10px;font-size:.85rem}
table.tbl.editable td{padding:6px 8px}
table.tbl.editable input,
table.tbl.editable select{padding:8px 10px;font-size:.85rem}
.act-col{width:1%;white-space:nowrap;text-align:right}
.actions{display:inline-flex;gap:6px;flex-wrap:nowrap;align-items:center;justify-content:flex-end}
.actions .btn{padding:6px 10px;font-size:.75rem}
.cell-num{text-align:right;font-variant-numeric:tabular-nums}

/* ---- BADGES ---- */
.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.7rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.4px;line-height:1.6;white-space:nowrap}
.badge-blue,.badge-primary  {background:rgba(var(--primary-rgb),.2);color:#93c5fd;border:1px solid rgba(var(--primary-rgb),.4)}
.badge-cyan                 {background:rgba(var(--primary-2-rgb),.2);color:#67e8f9;border:1px solid rgba(var(--primary-2-rgb),.4)}
.badge-green,.badge-success {background:rgba(16,185,129,.2);color:#6ee7b7;border:1px solid rgba(16,185,129,.4)}
.badge-warn,.badge-warning  {background:rgba(245,158,11,.28);color:#fcd34d;border:1px solid rgba(245,158,11,.5)}
.badge-red,.badge-danger    {background:rgba(239,68,68,.28);color:#fca5a5;border:1px solid rgba(239,68,68,.5)}
.badge-info                 {background:rgba(56,189,248,.25);color:#7dd3fc;border:1px solid rgba(56,189,248,.5)}
.badge-gray,.badge-secondary{background:rgba(148,163,184,.18);color:#cbd5e1;border:1px solid rgba(148,163,184,.35)}

/* ---- LOGIN ---- */
.login-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:20px}
.login-card{width:100%;max-width:420px;background:var(--glass);backdrop-filter:blur(24px);
  -webkit-backdrop-filter:blur(24px);border:1px solid var(--glass-brd);border-radius:20px;
  padding:40px 34px;box-shadow:0 30px 80px rgba(0,0,0,.5);text-align:center}
.login-card h1{font-size:1.5rem;margin-bottom:6px;
  background:linear-gradient(135deg,#93c5fd,#67e8f9);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.login-card p.lead{color:var(--muted);margin-bottom:22px;font-size:.88rem}
.login-card .btn{width:100%;justify-content:center;margin-top:18px;padding:13px}
.login-card a.small{color:#94a3b8;font-size:.82rem;text-decoration:none}
.login-card a.small:hover{color:#93c5fd}
.login-brand{display:flex;justify-content:center;align-items:center;gap:10px;margin-bottom:18px}
.login-brand .brand-dot{width:14px;height:14px}

/* ---- FLASH / ALERTS ---- */
.flash{padding:13px 18px;border-radius:11px;margin-bottom:18px;font-weight:500;
  border:1px solid var(--glass-brd);backdrop-filter:blur(12px)}
.flash-success{background:rgba(16,185,129,.14);border-color:rgba(16,185,129,.4);color:#a7f3d0}
.flash-error  {background:rgba(239,68,68,.14);border-color:rgba(239,68,68,.4);color:#fecaca}
.flash-info   {background:rgba(56,189,248,.14);border-color:rgba(56,189,248,.4);color:#bae6fd}
.flash-warning{background:rgba(245,158,11,.14);border-color:rgba(245,158,11,.4);color:#fde68a}

.alert{padding:12px 16px;border-radius:10px;margin-bottom:14px;font-size:.88rem;border:1px solid;
  display:flex;align-items:flex-start;gap:10px;line-height:1.5}
.alert-error   {background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.35);color:#fecaca}
.alert-success {background:rgba(16,185,129,.12);border-color:rgba(16,185,129,.35);color:#a7f3d0}
.alert-info    {background:rgba(56,189,248,.12);border-color:rgba(56,189,248,.35);color:#bae6fd}
.alert-warning {background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.35);color:#fde68a}

/* ---- SCROLLBARS ---- */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:rgba(var(--primary-rgb),.5);border-radius:5px}
::-webkit-scrollbar-thumb:hover{background:rgba(var(--primary-rgb),.75)}
::-webkit-scrollbar-track{background:rgba(0,0,0,.15)}

/* ---- PAYMENT SUMMARY ---- */
.pay-summary{margin-top:14px;padding:16px;border-radius:12px;
  background:linear-gradient(135deg,rgba(var(--primary-rgb),.12),rgba(var(--primary-2-rgb),.08));
  border:1px solid rgba(var(--primary-rgb),.28);
  display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}
.pay-summary .p-item{text-align:center;min-width:0}
.pay-summary .p-lbl{font-size:.72rem;text-transform:uppercase;letter-spacing:.8px;color:var(--muted)}
.pay-summary .p-val{font-size:1.3rem;font-weight:700;margin-top:4px;
  background:linear-gradient(135deg,#93c5fd,#67e8f9);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  word-break:break-word;font-variant-numeric:tabular-nums}
.pay-summary .p-val.clear{background:linear-gradient(135deg,#34d399,#10b981);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

/* ---- THEME PICKER ---- */
.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-top:8px}
.theme-swatch{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;
  padding:16px 10px;border:2px solid var(--glass-brd);border-radius:12px;
  background:rgba(255,255,255,.03);cursor:pointer;transition:.18s}
.theme-swatch:hover{border-color:rgba(var(--primary-rgb),.55);background:rgba(var(--primary-rgb),.06)}
.theme-swatch.selected{border-color:var(--primary);background:rgba(var(--primary-rgb),.12);
  box-shadow:0 4px 16px rgba(var(--primary-rgb),.35)}
.theme-swatch input{position:absolute;opacity:0;pointer-events:none}
.theme-bar{width:100%;height:36px;border-radius:8px;display:flex;overflow:hidden}
.theme-bar span{flex:1}
.theme-name{font-size:.82rem;font-weight:700;color:#fff}

/* ---- PRODUCT PICKER ---- */
.product-picker{position:relative;margin:6px 0 14px}
.product-picker .picker-input-wrap{position:relative}
.product-picker .picker-input{padding-left:38px}
.product-picker .picker-input-wrap::before{content:'🔍';position:absolute;left:12px;top:50%;
  transform:translateY(-50%);font-size:.95rem;pointer-events:none;opacity:.7}
.picker-results{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:60;
  background:rgba(11,18,32,.98);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border:1px solid rgba(var(--primary-rgb),.4);border-radius:11px;
  box-shadow:0 20px 44px rgba(0,0,0,.6);max-height:320px;overflow-y:auto;padding:4px}
.picker-results.hidden{display:none}
.picker-item{display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:9px 12px;border-radius:8px;cursor:pointer;color:var(--text);font-size:.88rem;
  transition:.12s;text-align:left}
.picker-item:hover{background:rgba(var(--primary-rgb),.22)}
.pi-name{font-weight:600;color:#fff}
.pi-desc{font-size:.72rem;color:var(--muted);margin-top:2px}
.pi-meta{display:flex;align-items:center;gap:10px;flex-shrink:0}
.pi-price{font-variant-numeric:tabular-nums;font-weight:700;color:#67e8f9}
.pi-tax{font-size:.68rem;background:rgba(var(--primary-rgb),.22);color:#93c5fd;
  padding:1px 7px;border-radius:6px;font-weight:700}
.picker-empty{padding:14px 12px;color:var(--muted);font-size:.85rem;text-align:center;font-style:italic}

/* ============================================================
   CUSTOMER COMBOBOX
   ============================================================ */
.combobox-wrap{position:relative}
.combobox-input{width:100%}
.combobox-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:80;
  background:rgba(11,18,32,.98);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border:1px solid rgba(var(--primary-rgb),.4);border-radius:11px;
  box-shadow:0 20px 44px rgba(0,0,0,.65);max-height:300px;overflow-y:auto;padding:4px}
.combobox-dropdown.hidden{display:none}
.combobox-item{padding:10px 14px;border-radius:8px;cursor:pointer;transition:.12s}
.combobox-item:hover,.combobox-item.highlighted{background:rgba(var(--primary-rgb),.22)}
.combobox-item .cb-item-name{color:#fff;font-weight:600;font-size:.92rem}
.combobox-item .cb-item-code{color:#94a3b8;font-size:.78rem;margin-top:2px;
  font-family:ui-monospace,monospace;letter-spacing:.5px}
.combobox-empty{padding:14px;color:var(--muted);font-size:.85rem;text-align:center;font-style:italic}

/* ============================================================
   SHARE URL BANNER
   ============================================================ */
.share-banner{
  display:flex;gap:14px;align-items:flex-start;
  padding:16px 20px;border-radius:14px;
  background:linear-gradient(135deg,rgba(14,165,233,.14),rgba(56,189,248,.06));
  border:1px solid rgba(14,165,233,.4);
  margin-bottom:20px;
  position:relative;overflow:hidden;
}
.share-banner::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;
  background:linear-gradient(180deg,#0ea5e9,#0891b2)}
.share-banner-icon{font-size:1.6rem;flex-shrink:0;line-height:1}
.share-banner-body{flex:1;min-width:0}
.share-banner-title{font-weight:700;color:#7dd3fc;font-size:.85rem;
  text-transform:uppercase;letter-spacing:.7px;margin-bottom:8px}
.share-banner-row{display:flex;gap:8px;flex-wrap:wrap;align-items:stretch}
.share-banner-url{
  flex:1;min-width:280px;padding:10px 14px;background:rgba(0,0,0,.35);
  border:1px solid rgba(var(--primary-rgb),.35);border-radius:8px;
  font-family:ui-monospace,monospace;font-size:.82rem;color:#67e8f9;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  cursor:pointer;user-select:all;
}
.share-banner-url:hover{border-color:var(--primary)}
.share-banner-actions{display:flex;gap:6px;flex-shrink:0}
.share-banner-hint{margin-top:6px;font-size:.75rem;color:#94a3b8;font-style:italic}

/* ---- TAGS ---- */
.tag{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border-radius:20px;
  background:rgba(var(--primary-rgb),.15);border:1px solid rgba(var(--primary-rgb),.35);
  color:#93c5fd;font-size:.75rem;font-weight:600;line-height:1.6;white-space:nowrap}

/* ---- EMPTY STATE ---- */
.empty-state{text-align:center;padding:36px 20px;color:var(--muted)}
.empty-state .es-icon{font-size:2.4rem;margin-bottom:10px;opacity:.6}
.empty-state h3{color:#fff;font-size:1rem;margin-bottom:6px}
.empty-state p{font-size:.85rem;margin-bottom:14px;line-height:1.5}

/* ---- KEY-VALUE LIST ---- */
.kv-list{display:grid;grid-template-columns:max-content 1fr;gap:8px 20px;font-size:.9rem}
.kv-list dt{color:var(--muted);font-weight:500}
.kv-list dd{margin:0;color:#fff;font-weight:500;word-break:break-word}

/* ---- ACTION BAR ---- */
.action-bar{display:flex;gap:6px;flex-wrap:wrap;align-items:center;
  padding:12px 14px;background:rgba(255,255,255,.03);
  border:1px solid var(--glass-brd);border-radius:12px;margin-bottom:20px}

/* ============================================================
   DROPDOWNS — flush trigger + center alignment
   ============================================================ */
.dropdown{position:relative;display:inline-block}

.dropdown-toggle{position:relative;padding-right:30px!important}
.dropdown-toggle::after{
  content:'';position:absolute;right:12px;top:50%;transform:translateY(-30%);
  border-left:4px solid transparent;border-right:4px solid transparent;
  border-top:5px solid currentColor;opacity:.7;pointer-events:none;
}

.dropdown-menu{
  position:absolute;
  top:100%;                       /* flush with trigger bottom — no gap */
  left:0;
  min-width:200px;
  z-index:200;
  background:rgba(11,18,32,.98);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border:1px solid var(--glass-brd);
  border-radius:11px;
  box-shadow:0 20px 44px rgba(0,0,0,.55);
  padding:6px;
  opacity:0;
  visibility:hidden;
  transform:translateY(-4px);
  transition:opacity .2s, transform .2s, visibility .2s;
  pointer-events:none;
}

.dropdown:hover > .dropdown-menu,
.dropdown.open > .dropdown-menu{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
  pointer-events:auto;
}

/* Center-aligned dropdown variant */
.dropdown-menu-center > .dropdown-menu{
  left:50%;
  transform:translateX(-50%) translateY(-4px);
}
.dropdown-menu-center:hover > .dropdown-menu,
.dropdown-menu-center.open > .dropdown-menu{
  transform:translateX(-50%) translateY(0);
}

.dropdown-item{display:block;padding:9px 12px;border-radius:7px;color:var(--text);text-decoration:none;
  font-size:.88rem;transition:.15s;white-space:nowrap;text-align:left;width:100%;background:none;border:none;
  font-family:inherit;cursor:pointer}
.dropdown-item:hover{background:rgba(var(--primary-rgb),.18);color:#fff}
.dropdown-item.danger{color:#fca5a5}
.dropdown-item.danger:hover{background:rgba(239,68,68,.22);color:#fff}
.dropdown-divider{height:1px;background:var(--glass-brd);margin:6px 4px;border:none}
.dropdown-header{padding:6px 12px;font-size:.68rem;text-transform:uppercase;letter-spacing:.6px;
  color:var(--muted);font-weight:700}

/* ---- PAGINATION ---- */
.pg-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding:12px 16px;margin-top:16px;background:rgba(255,255,255,.03);
  border:1px solid var(--glass-brd);border-radius:11px}
.pg-info{color:var(--muted);font-size:.82rem}
.pg-info b{color:#93c5fd;font-weight:700}
.pg-controls{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}
.pg-btn{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 10px;
  border-radius:8px;background:rgba(255,255,255,.05);border:1px solid var(--glass-brd);
  color:var(--text);font-size:.76rem;font-weight:600;text-decoration:none;transition:.15s;white-space:nowrap}
.pg-btn:hover:not(.disabled):not(.active){background:rgba(var(--primary-rgb),.18);
  border-color:rgba(var(--primary-rgb),.5);color:#fff}
.pg-btn.active{background:linear-gradient(135deg,var(--primary),var(--primary-2));
  border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(var(--primary-rgb),.4);cursor:default}
.pg-btn.disabled{opacity:.32;cursor:not-allowed;pointer-events:none}

/* ============================================================
   MODAL — hidden by default, shown only with .open
   ============================================================ */
.modal-backdrop{
  position:fixed;
  inset:0;
  background:rgba(2,6,23,.85);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  z-index:1000;
  display:none;                 /* ← HIDDEN BY DEFAULT */
  align-items:center;
  justify-content:center;
  padding:24px;
  overflow-y:auto;
}
.modal-backdrop.open{display:flex}

.modal{
  background:#0b1220;
  border:1px solid rgba(var(--primary-rgb),.35);
  border-radius:16px;
  max-width:760px;
  width:100%;
  max-height:92vh;
  overflow-y:auto;
  box-shadow:0 40px 80px rgba(0,0,0,.7);
}
.modal-head{padding:16px 20px;border-bottom:1px solid var(--glass-brd);
  display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;
  background:#0b1220;z-index:1;border-radius:16px 16px 0 0}
.modal-head h3{margin:0;font-size:1.05rem;color:#93c5fd}
.modal-body{padding:20px}
.modal-foot{padding:14px 20px;border-top:1px solid var(--glass-brd);
  display:flex;gap:8px;justify-content:flex-end;background:#0b1220;
  border-radius:0 0 16px 16px;position:sticky;bottom:0;z-index:1}

@media(max-width:640px){
  .modal-backdrop{padding:0}
  .modal{max-width:none;height:100vh;height:100dvh;border-radius:0;max-height:none}
  .modal-head{border-radius:0}
  .modal-foot{border-radius:0}
}

/* ============================================================
   EMAIL WYSIWYG EDITOR (Quill)
   ============================================================ */
.email-body-head{
  display:flex;justify-content:space-between;align-items:center;
  margin:20px 0 10px;flex-wrap:wrap;gap:10px;
}
.email-body-head label{margin:0!important}

.email-body-tabs{
  display:flex;gap:2px;
  background:rgba(255,255,255,.05);
  padding:3px;
  border-radius:9px;
  border:1px solid var(--glass-brd);
}
.email-tab{
  background:none;border:none;
  color:var(--muted);
  padding:7px 14px;
  font-family:inherit;font-size:.8rem;font-weight:600;
  cursor:pointer;border-radius:7px;transition:.15s;white-space:nowrap;
}
.email-tab:hover{color:#fff}
.email-tab.active{
  background:linear-gradient(135deg,var(--primary),var(--primary-2));
  color:#fff;box-shadow:0 4px 10px rgba(var(--primary-rgb),.35);
}

#emailRichWrap{
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:9px;
  overflow:hidden;
  display:flex;flex-direction:column;
  min-height:360px;
}
#emailRichWrap .ql-toolbar.ql-snow{
  border:none;border-bottom:1px solid #e5e7eb;
  background:#f9fafb;padding:10px 12px;
  border-radius:9px 9px 0 0;
}
#emailRichWrap .ql-container.ql-snow{
  border:none;font-family:inherit;flex:1;
  background:#fff;border-radius:0 0 9px 9px;overflow:auto;
}
#emailRichWrap .ql-editor{
  min-height:300px;padding:20px 22px;
  color:#111827;background:#fff;
  font-size:.95rem;line-height:1.7;
}
#emailRichWrap .ql-editor p{margin:0 0 1em 0}
#emailRichWrap .ql-editor p:first-child{margin-top:0}
#emailRichWrap .ql-editor p:last-child{margin-bottom:0}
#emailRichWrap .ql-editor h1,
#emailRichWrap .ql-editor h2,
#emailRichWrap .ql-editor h3{
  color:#111827;margin:1em 0 .5em;font-weight:700;
}
#emailRichWrap .ql-editor ul,
#emailRichWrap .ql-editor ol{margin:.8em 0;padding-left:1.7em}
#emailRichWrap .ql-editor li{margin:.35em 0}
#emailRichWrap .ql-editor a{color:#2563eb;text-decoration:underline}
#emailRichWrap .ql-editor blockquote{
  border-left:3px solid #cbd5e1;padding:4px 0 4px 1em;
  color:#475569;margin:.9em 0;
}

/* Toolbar icons dark on light background */
#emailRichWrap .ql-snow .ql-stroke{stroke:#334155!important}
#emailRichWrap .ql-snow .ql-fill{fill:#334155!important}
#emailRichWrap .ql-snow .ql-picker-label{color:#334155!important}
#emailRichWrap .ql-snow .ql-picker-options{background:#fff;border-color:#e5e7eb}
#emailRichWrap .ql-snow.ql-toolbar button:hover .ql-stroke,
#emailRichWrap .ql-snow.ql-toolbar button.ql-active .ql-stroke{stroke:#2563eb!important}
#emailRichWrap .ql-snow.ql-toolbar button:hover .ql-fill,
#emailRichWrap .ql-snow.ql-toolbar button.ql-active .ql-fill{fill:#2563eb!important}

.email-body-code{
  width:100%;min-height:360px;box-sizing:border-box;
  font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  font-size:.82rem;padding:18px;
  background:rgba(11,18,32,.9);
  border:1px solid var(--glass-brd);border-radius:9px;
  color:#e5e7eb;line-height:1.6;resize:vertical;
}

/* ---- UTILITIES ---- */
.text-muted{color:var(--muted)}
.text-center{text-align:center}
.text-right{text-align:right}
.flex{display:flex}.flex-wrap{flex-wrap:wrap}
.items-center{align-items:center}
.justify-between{justify-content:space-between}
.gap-1{gap:6px!important}.gap-2{gap:12px!important}.gap-3{gap:20px!important}
.mt-0{margin-top:0!important}.mt-1{margin-top:8px!important}.mt-2{margin-top:16px!important}.mt-3{margin-top:22px!important}
.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:8px!important}.mb-2{margin-bottom:16px!important}.mb-3{margin-bottom:22px!important}
.hidden{display:none!important}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}

/* ---- PRINT ---- */
@media print{
  body{background:#fff!important;color:#000!important}
  .bg-orbs,.topnav,.sitefoot,.btn,.actions,.nav-toggle,.flash,
  .action-bar,.dropdown,.pg-bar,.tabs,.share-banner,.modal-backdrop{display:none!important}
  .container{padding:0;max-width:100%}
  .card{background:#fff!important;border:1px solid #ddd!important;box-shadow:none!important;page-break-inside:avoid}
  .card h2,.card h3{color:#000!important;-webkit-text-fill-color:#000!important}
  table.tbl th,table.tbl td{color:#000!important;background:#fff!important;border-color:#999!important}
}

/* ---- RESPONSIVE ---- */
@media(max-width:820px){
  .nav-toggle{display:block}
  .nav-links{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;
    background:rgba(11,18,32,.98);backdrop-filter:blur(20px);padding:14px;gap:2px;
    transform:translateY(-120%);opacity:0;pointer-events:none;transition:.28s;
    border-bottom:1px solid var(--glass-brd);max-height:80vh;overflow-y:auto;
    box-shadow:0 20px 40px rgba(0,0,0,.4)}
  body.nav-open .nav-links{transform:translateY(0);opacity:1;pointer-events:auto}
  .nav-links a{width:100%;padding:11px 12px;text-align:left}
  .nav-role-pill{width:100%;justify-content:center;margin:6px 0 0}
  .container{padding:20px 14px 55px}
  .card{padding:18px}
  .card h2{font-size:1.18rem}
  table.tbl{font-size:.82rem}
  table.tbl th,table.tbl td{padding:8px 10px}
  .stat-num{font-size:1.8rem}
  .login-card{padding:30px 22px}
  .login-card h1{font-size:1.25rem}
  .pay-summary{grid-template-columns:1fr}
  .action-bar{gap:4px}
  .action-bar .btn,.action-bar .dropdown-toggle{padding:6px 10px;font-size:.78rem}
}
@media(max-width:520px){
  .container{padding:14px 10px 46px}
  .card{padding:14px}
  .btn-row .btn,.login-card .btn{width:100%;justify-content:center}
  .share-banner{flex-direction:column}
  .share-banner-actions{width:100%}
  .share-banner-actions .btn{flex:1}
}


/* v4.7 — Plain text editor */
.email-body-text{
  width:100%;min-height:360px;box-sizing:border-box;
  font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  font-size:.82rem;padding:18px;
  background:#fff;color:#111827;line-height:1.7;resize:vertical;
  border:1px solid #e5e7eb;border-radius:9px;
  white-space:pre-wrap;tab-size:2;
}
.email-body-text:focus{
  outline:none;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.15);
}


/* ═══════════════════════════════════════════════════════════
   v4.8.7 — Ticket "Details" sidebar polish
   Works with both <dl><dt><dd> AND <div> children (defensive)
   ═══════════════════════════════════════════════════════════ */
.kv-list{
  display:grid !important;
  grid-template-columns:max-content minmax(0,1fr) !important;
  gap:10px 14px !important;
  font-size:.85rem !important;
  align-items:baseline;
  line-height:1.5;
}
.kv-list dt{
  color:var(--muted);
  font-weight:700;
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.5px;
  margin:0 !important;
  padding:0 !important;
  white-space:nowrap;
  border:none;
}
.kv-list dd{
  margin:0 !important;
  color:#fff;
  font-weight:600;
  text-align:right;
  word-break:break-word;
  min-width:0;
  border:none;
}
/* Defensive: if anyone uses <div> wrappers instead of dt/dd */
.kv-list > div{
  grid-column:1 / -1 !important;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:8px 0;
  border-bottom:1px solid var(--glass-brd);
  font-size:.82rem;
  width:100%;
}
.kv-list > div:last-child{border-bottom:none}
.kv-list > div > span:first-child{
  color:var(--muted);
  font-weight:700;
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.5px;
  white-space:nowrap;
}
.kv-list > div > strong{
  color:#fff;
  font-weight:600;
  text-align:right;
  word-break:break-word;
  min-width:0;
}

/* Ticket detail sidebar — tidy separation */
.tk-sidebar .form-section-title{margin-bottom:14px}
.tk-sidebar .tk-meta{
  border-top:1px solid var(--glass-brd);
  padding-top:14px;
  margin-top:14px;
}
@media(max-width:820px){
  #tkLayout{grid-template-columns:1fr !important}
}