/* ====================================================================
   Firstnet Direct Portal — UI
   Navy #0B1F3A / Gold #FFC72C · Inter + Sora · Lucide-style line icons
   ==================================================================== */
:root{
  --navy:#0B1F3A; --navy-2:#123B70; --navy-3:#06112A;
  --gold:#FFC72C; --gold-2:#E0A912;
  --bg:#F4F6FA; --panel:#fff;
  --ink:#0F1C2E; --ink-2:#2B3A55;
  --muted:#667085; --border:#E3E8F0; --border-2:#D0D8E4;
  --ok:#0E9F6E; --warn:#F5A524; --err:#E11D48;
  --shadow-sm:0 1px 2px rgba(11,31,58,.04),0 10px 24px -14px rgba(11,31,58,.18);
  --shadow:0 12px 28px rgba(11,31,58,.10);
  --radius:12px; --radius-lg:14px; --sidebar:256px;
  --font:'Inter','Segoe UI',system-ui,-apple-system,Arial,sans-serif;
  --display:'Sora','Inter',system-ui,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:var(--font);background:var(--bg);color:var(--ink);line-height:1.55;font-size:14.5px;-webkit-font-smoothing:antialiased}
a{color:var(--navy-2);text-decoration:none}
a:hover{color:var(--navy)}
h1,h2,h3,h4{font-family:var(--display);color:var(--navy);margin:0 0 .5em;font-weight:700;letter-spacing:-.015em}
h1{font-size:1.55rem} h2{font-size:1.25rem} h3{font-size:1.05rem}
.muted{color:var(--muted)}
.center{text-align:center}
code,kbd.code{font-family:Consolas,'JetBrains Mono',ui-monospace,monospace;font-size:.82em;background:rgba(11,31,58,.05);color:var(--ink-2);padding:1px 6px;border-radius:5px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;background:var(--navy);color:#fff;padding:8px 14px;border-radius:6px;z-index:9999}

/* ---- Icons (inline SVG from includes/icons.php) ---- */
.pi{width:1em;height:1em;vertical-align:-.16em;flex-shrink:0;display:inline-block}
.btn .pi{width:16px;height:16px;vertical-align:-3px;margin-right:0}
h1 .pi,h2 .pi,h3 .pi{width:1.05em;height:1.05em;vertical-align:-.14em;color:var(--navy);margin-right:.25em}
.dash-head h3 .pi,.col-card h3 .pi{color:var(--gold-2)}
.tag .pi{width:12px;height:12px}
td .pi,li .pi,p .pi,.muted .pi{color:var(--muted);vertical-align:-.15em}
td strong .pi,.chip .pi{color:var(--navy)}
.pi.ok{color:var(--ok)} .pi.warn{color:var(--warn)} .pi.err{color:var(--err)} .pi.gold{color:var(--gold-2)}

/* ---- Sidebar ---- */
.sidebar{
  position:fixed;inset:0 auto 0 0;width:var(--sidebar);
  background:linear-gradient(180deg,var(--navy) 0%,var(--navy-3) 100%);
  color:#cfd9ea;padding:16px 12px 14px;display:flex;flex-direction:column;gap:4px;
  border-right:1px solid rgba(255,255,255,.05);overflow-y:auto;z-index:60;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.14) transparent;
}
.sidebar::-webkit-scrollbar{width:6px}
.sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.14);border-radius:3px}
.brand{
  display:flex;flex-direction:column;align-items:flex-start;gap:9px;color:#fff;
  padding:8px 10px 16px;margin-bottom:6px;border-bottom:1px solid rgba(255,255,255,.08);
}
.brand img{display:block;width:200px;height:auto;max-width:100%}
.brand-tag{display:inline-block;font-family:var(--font);font-weight:800;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--navy);background:var(--gold);padding:2px 9px;border-radius:99px;line-height:1.6}
.brand .word{display:flex;flex-direction:column;line-height:1.05;font-family:var(--display);font-weight:800;font-size:1.02rem;letter-spacing:-.01em;color:#fff}
.brand .word small{font-family:var(--font);font-weight:600;font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-top:3px}
.brand .dot{width:14px;height:14px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 3px rgba(255,199,44,.18)}
.snav,.sfoot{display:flex;flex-direction:column;gap:1px}
.sfoot{margin-top:auto;padding-top:12px;border-top:1px solid rgba(255,255,255,.08)}
.snav-group{
  font-size:.64rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.36);padding:16px 12px 6px;user-select:none;
}
.snav-group:first-child{padding-top:4px}
.snav-item{
  position:relative;display:flex;align-items:center;gap:11px;
  padding:8px 12px;border-radius:9px;
  color:#B7C4D8;font-weight:500;font-size:.9rem;line-height:1.3;
  transition:background .15s,color .15s;
}
.snav-item .ic{display:inline-flex;width:20px;justify-content:center;color:#8EA0BC;transition:color .15s}
.snav-item .ic .pi{width:18px;height:18px}
.snav-item:hover{background:rgba(255,255,255,.06);color:#fff}
.snav-item:hover .ic{color:#fff}
.snav-item.is-active{background:rgba(255,255,255,.09);color:#fff;font-weight:600}
.snav-item.is-active .ic{color:var(--gold)}
.snav-item.is-active::before{content:"";position:absolute;left:-12px;top:7px;bottom:7px;width:3px;border-radius:0 3px 3px 0;background:var(--gold)}

/* ---- Topbar + shell ---- */
.shell{
  margin-left:var(--sidebar);min-height:100vh;display:flex;flex-direction:column;
  background:
    radial-gradient(900px 320px at 18% -8%,rgba(255,199,44,.10),transparent 60%),
    radial-gradient(760px 300px at 96% 0%,rgba(18,59,112,.08),transparent 60%),
    var(--bg);
}
.shell ::-webkit-scrollbar{width:8px;height:8px}
.shell ::-webkit-scrollbar-thumb{background:#CBD3DF;border-radius:4px}
.topbar{
  position:sticky;top:0;background:rgba(255,255,255,.9);backdrop-filter:saturate(1.4) blur(10px);
  border-bottom:1px solid var(--border);box-shadow:0 8px 20px -16px rgba(11,31,58,.22);
  display:flex;align-items:center;gap:18px;padding:0 32px;height:60px;z-index:40;
}
.toggle{display:none;background:transparent;border:0;cursor:pointer;color:var(--navy);padding:6px;border-radius:8px;line-height:0}
.toggle .pi{width:22px;height:22px}
.toggle:hover{background:rgba(11,31,58,.06)}
.crumbs{flex:1;color:var(--muted);font-weight:600;font-size:.9rem;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crumbs strong{color:var(--navy);font-weight:700}

/* Top-bar master search */
.topsearch{
  position:relative;flex:1;max-width:520px;display:flex;align-items:center;gap:4px;
  background:#F4F6FA;border:1px solid var(--border);border-radius:10px;
  padding:0 10px 0 12px;height:38px;transition:border-color .15s,box-shadow .15s,background .15s;
}
.topsearch:focus-within{background:#fff;border-color:var(--gold);box-shadow:0 0 0 4px rgba(255,199,44,.18)}
.topsearch input{
  flex:1;border:0;background:transparent;outline:none;min-width:0;
  padding:0 6px;font-size:.9rem;font-family:inherit;color:var(--ink);
}
.topsearch input::placeholder{color:var(--muted)}
.topsearch-ic{color:var(--muted);display:inline-flex;flex-shrink:0}
.topsearch-ic .pi{width:17px;height:17px}
.topsearch-kbd{
  background:#fff;border:1px solid var(--border-2);border-radius:5px;
  padding:1px 7px;font-size:.74rem;color:var(--muted);font-family:Consolas,monospace;
  box-shadow:0 1px 0 var(--border-2);flex-shrink:0;
}
.topsearch:focus-within .topsearch-kbd{display:none}
@media (max-width:980px){.topsearch{display:none}}

/* Search results page */
.search-group{margin-bottom:24px}
.search-group h3{margin:0 0 10px;font-size:1rem;color:var(--navy);font-family:var(--font);font-weight:700;display:flex;align-items:center;gap:8px}
.search-group h3 .count{background:rgba(11,31,58,.06);color:var(--navy);font-size:.74rem;padding:2px 8px;border-radius:99px;font-weight:700}
.search-hit{
  display:block;background:#fff;border:1px solid var(--border);border-radius:var(--radius);
  padding:14px 18px;margin-bottom:6px;text-decoration:none;color:var(--ink);
  transition:transform .12s,border-color .12s,box-shadow .12s;
}
.search-hit:hover{transform:translateX(4px);border-color:var(--gold);box-shadow:var(--shadow-sm);color:var(--ink)}
.search-hit strong{color:var(--navy);font-family:var(--font);font-weight:700}
.search-hit .sub{display:block;color:var(--muted);font-size:.85rem;margin-top:2px}
.search-hit mark{background:rgba(255,199,44,.4);color:var(--navy);padding:0 2px;border-radius:3px;font-weight:700}
.who{display:flex;align-items:center;gap:12px}
.who-meta{text-align:right;display:flex;flex-direction:column;line-height:1.2}
.who-meta strong{color:var(--navy);font-size:.88rem}
.who-meta small{color:var(--muted);font-size:.76rem;text-transform:capitalize}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--navy);color:var(--gold);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.9rem;box-shadow:0 0 0 2px #fff,0 0 0 3px var(--border)}

/* ---- Content ---- */
.content{padding:28px 32px 56px;flex:1;max-width:1440px;width:100%;margin:0 auto}
.page-title{margin-bottom:24px}
.page-title h1{margin:0;display:flex;align-items:center;gap:12px;font-size:1.6rem}
.page-title h1::before{content:"";width:4px;height:1.05em;border-radius:3px;background:var(--gold);flex-shrink:0}
.page-title p{color:var(--muted);margin:5px 0 0 16px;font-size:.95rem;max-width:860px}

/* Any control a page drops in without a class still looks like the portal (low specificity: component styles win). */
.content :where(input:not([type=checkbox],[type=radio],[type=range],[type=file],[type=submit],[type=button],[type=color]),select,textarea){
  font-family:inherit;font-size:.9rem;color:var(--ink);background:#fff;border:1px solid var(--border-2);border-radius:9px;padding:8px 11px;
}
.content :where(button:not([class])){font-family:inherit;font-size:.86rem;font-weight:600;color:var(--navy);background:#fff;border:1px solid var(--border-2);border-radius:9px;padding:8px 12px;cursor:pointer}
.content :where(button:not([class])):hover{border-color:var(--navy);background:#F8FAFD}

/* ---- Cards + grids ---- */
.card{background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px 24px;box-shadow:var(--shadow-sm)}
:where(.card)>h3:first-child{font-size:1rem;margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
:where(.card)>h3:first-child .pi{color:var(--gold-2)}
:where(.card)>h3:first-child .muted{font-family:var(--font);font-weight:500;font-size:.84rem}
.card.center{border-style:dashed;background:#FBFCFE;box-shadow:none;padding:36px 24px}
.card.center p{margin:0}
.card.center p.muted{font-size:.92rem}
.grid{display:grid;gap:18px}
.grid>*,.dash-grid>*,.overview-cols>*,.livechat-shell>*{min-width:0}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1100px){.grid-4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:760px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}

/* ---- Stat tiles ---- */
.stat{background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px;display:flex;align-items:center;gap:14px;box-shadow:var(--shadow-sm)}
.stat .ic{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,var(--navy),var(--navy-2));color:var(--gold);display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0;box-shadow:0 6px 14px -8px rgba(11,31,58,.5)}
.stat .ic .pi{width:20px;height:20px}
.stat .v{font-family:var(--display);font-weight:800;font-size:1.55rem;color:var(--navy);line-height:1;letter-spacing:-.02em}
.stat .l{color:var(--muted);font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;margin-top:4px}

/* ---- Tables ---- */
.tbl{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}
.tbl th,.tbl td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border);font-size:.9rem;vertical-align:middle}
.tbl th{background:#F5F7FB;color:#5B6B84;font-weight:700;font-family:var(--font);font-size:.71rem;text-transform:uppercase;letter-spacing:.09em;border-bottom-color:var(--border-2);white-space:nowrap}
.tbl tr:last-child td{border-bottom:0}
.tbl tbody tr:hover td{background:#F8FAFD}
.tbl td strong{color:var(--navy)}
.tbl td a{color:var(--navy);font-weight:600}
.tbl td a:hover{color:var(--gold-2)}
.tbl td .tag{vertical-align:middle}
.tbl td .btn-sm{padding:5px 10px;font-size:.8rem}

/* ---- Forms ---- */
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.field label{font-weight:600;color:var(--navy);font-size:.86rem}
.field input,.field select,.field textarea{
  width:100%;padding:10px 13px;min-height:40px;border:1px solid var(--border-2);background:#fff;
  border-radius:9px;font-family:inherit;font-size:.93rem;color:var(--ink);
  transition:border-color .15s,box-shadow .15s;
}
.field input:hover,.field select:hover,.field textarea:hover{border-color:#B9C4D4}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--gold);box-shadow:0 0 0 4px rgba(255,199,44,.18);
}
.field textarea{min-height:120px;resize:vertical}
.field.error input,.field.error select,.field.error textarea{border-color:var(--err);background:#fff7f8}

/* ---- Buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 16px;min-height:38px;border-radius:9px;border:1px solid transparent;cursor:pointer;font-weight:600;font-family:var(--font);font-size:.9rem;line-height:1.2;text-decoration:none;transition:transform .15s,background .15s,box-shadow .15s,border-color .15s,color .15s;white-space:nowrap}
.btn-gold{background:var(--gold);color:var(--navy);border-color:var(--gold);box-shadow:0 1px 0 rgba(11,31,58,.08)}
.btn-gold:hover{background:var(--gold-2);border-color:var(--gold-2);color:var(--navy);transform:translateY(-1px);box-shadow:0 6px 14px rgba(255,199,44,.3)}
.btn-navy{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn-navy:hover{background:var(--navy-2);border-color:var(--navy-2);color:#fff}
.btn-outline{background:#fff;color:var(--navy);border-color:var(--border-2)}
.btn-outline:hover{border-color:var(--navy);color:var(--navy);background:#F8FAFD}
.btn-sm{padding:6px 12px;min-height:32px;font-size:.84rem;border-radius:8px}
.btn-sm .pi{width:14px;height:14px}
.btn-danger{background:#fff;color:var(--err);border-color:#F9C2CD}
.btn-danger:hover{background:var(--err);color:#fff;border-color:var(--err)}

/* ---- Notices ---- */
.notice{padding:12px 16px;border-radius:10px;margin-bottom:14px;font-size:.9rem;border:1px solid transparent}
.notice.ok  {background:#ECFDF3;border-color:#B7EBCB;color:#0A5A35}
.notice.err {background:#FFF1F3;border-color:#FDC5CF;color:#7C1020}
.notice.warn{background:#FFFBEB;border-color:#FDE8A4;color:#8B6300}
.notice.info{background:#EFF6FF;border-color:#C3DBFB;color:#0A3A73}

/* ---- Auth page (centered card) ---- */
.auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px;background:linear-gradient(135deg,var(--navy),var(--navy-2));position:relative;overflow:hidden}
.auth::before{content:"";position:absolute;inset:0;background:radial-gradient(800px 400px at 80% -10%,rgba(255,199,44,.18),transparent);pointer-events:none}
.auth-card{position:relative;background:#fff;border-radius:18px;box-shadow:var(--shadow);width:100%;max-width:430px;padding:36px;animation:slideUp .35s ease}
@keyframes slideUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.auth-brand{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:24px}
.auth-brand img{display:block;width:230px;height:auto;max-width:100%}
.auth-brand .dot{width:14px;height:14px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 3px rgba(255,199,44,.2)}
.auth-brand .word{display:inline-block;font-family:var(--font);font-weight:800;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--navy);background:var(--gold);padding:3px 10px;border-radius:99px;line-height:1.6}
.auth-card h1{font-size:1.5rem;margin-bottom:6px}
.auth-card p.lead{color:var(--muted);margin:0 0 22px}

/* ---- Badges / pills ---- */
.tag{display:inline-flex;align-items:center;gap:6px;background:rgba(11,31,58,.06);color:var(--navy);font-weight:700;font-size:.7rem;padding:3px 9px;border-radius:99px;text-transform:uppercase;letter-spacing:.06em;line-height:1.5}
.tag.gold{background:rgba(255,199,44,.2);color:#8B6300}
.tag.ok{background:rgba(14,159,110,.12);color:#0a7050}
.tag.warn{background:rgba(245,165,36,.16);color:#8b6300}
.tag.err{background:rgba(225,29,72,.12);color:#9f1239}

/* ---- Mobile ---- */
@media (max-width:980px){
  .sidebar{transform:translateX(-100%);transition:transform .25s}
  .shell{margin-left:0}
  .toggle{display:inline-flex}
  .topbar{padding:0 16px}
  .content{padding:18px 16px}
  body.nav-open .sidebar{transform:translateX(0)}
  body.nav-open::after{content:"";position:fixed;inset:0;background:rgba(11,31,58,.45);z-index:50}
}
@media (max-width:760px){
  .who-meta{display:none}
  .entity-head .actions{margin-left:0;width:100%;justify-content:flex-start}
  .tbl{display:block;overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
  .dash-kpi{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
  .stat{min-width:0}
  .stat .v{font-size:1.25rem}
  .tab-actions{flex-direction:column;align-items:stretch}
}

/* ---- Org / entity detail header ---- */
.entity-head{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:20px 24px;box-shadow:var(--shadow-sm);margin-bottom:18px}
.entity-head .top{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.entity-head .top .back{color:var(--muted);font-size:1.3rem;text-decoration:none;padding:4px 10px;border-radius:8px;line-height:1}
.entity-head .top .back:hover{background:rgba(11,31,58,.06);color:var(--navy)}
.entity-avatar{width:52px;height:52px;border-radius:12px;background:linear-gradient(135deg,var(--navy),var(--navy-2));color:var(--gold);display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:800;font-size:1.3rem;flex-shrink:0}
.entity-name{font-family:var(--display);font-weight:800;font-size:1.45rem;color:var(--navy);line-height:1.1;margin:0;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.015em}
.entity-head .meta-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.entity-head .actions{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.entity-quick{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.entity-quick .chip{display:inline-flex;align-items:center;gap:7px;background:#F4F6FA;border:1px solid var(--border);border-radius:99px;padding:5px 12px;font-size:.84rem;color:var(--ink-2);text-decoration:none;transition:background .15s,border-color .15s}
.entity-quick .chip:hover{background:#fff;border-color:var(--gold);color:var(--navy)}
.entity-quick .chip .ic{color:var(--muted);display:inline-flex;font-size:.95rem}
.entity-quick .chip .ic .pi,.entity-quick .chip .pi{width:14px;height:14px;color:var(--muted)}
.entity-quick .chip.muted{opacity:.55}

/* Overview 2-column layout (system fields + notes) */
.overview-cols{display:grid;grid-template-columns:1.1fr 1fr;gap:18px}
@media (max-width:1100px){.overview-cols{grid-template-columns:minmax(0,1fr)}}
.kv-list{margin:0;padding:0;list-style:none}
.kv-list li{display:grid;grid-template-columns:130px 1fr;gap:14px;padding:9px 0;border-bottom:1px solid var(--border);align-items:start}
.kv-list li:last-child{border-bottom:0}
.kv-list .k{color:var(--muted);font-weight:600;font-size:.84rem}
.kv-list .v{color:var(--ink);font-size:.9rem;word-break:break-word}
.notes-editor{display:flex;flex-direction:column}
.notes-editor textarea{
  width:100%;min-height:200px;font-size:.92rem;font-family:inherit;color:var(--ink);
  padding:14px 16px;border:1px solid var(--border-2);background:#F9FAFC;
  border-radius:10px;resize:vertical;line-height:1.55;
  transition:border-color .15s,box-shadow .15s,background .15s;
  box-sizing:border-box;
}
.notes-editor textarea:focus{
  outline:none;border-color:var(--gold);background:#fff;
  box-shadow:0 0 0 4px rgba(255,199,44,.18);
}
.notes-editor textarea::placeholder{color:var(--muted);font-style:italic}
.col-card h3{margin:0 0 14px;padding-bottom:10px;border-bottom:1px solid var(--border);font-family:var(--font);font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.74rem;display:flex;align-items:center;gap:8px}

/* Empty state inside a column card */
.empty{color:var(--muted);font-size:.9rem;padding:14px 0}
.empty a{color:var(--gold-2);font-weight:700}

/* ---- KPI strip on entity pages ---- */
.kpi-strip{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;
  margin-bottom:18px;
}
.kpi{
  position:relative;overflow:hidden;
  background:#fff;border:1px solid var(--border);border-radius:var(--radius);
  padding:16px 16px 14px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow-sm);
  transition:transform .12s,border-color .12s,box-shadow .12s;
  display:flex;flex-direction:column;gap:2px;
}
.kpi::before{content:"";position:absolute;left:16px;top:0;width:28px;height:3px;border-radius:0 0 3px 3px;background:var(--gold)}
.kpi-bad::before{background:var(--err)} .kpi-warn::before{background:var(--warn)}
.kpi:hover{transform:translateY(-2px);border-color:var(--gold);box-shadow:var(--shadow);color:var(--ink)}
.kpi-v{font-family:var(--display);font-weight:800;font-size:1.35rem;color:var(--navy);line-height:1.1;letter-spacing:-.02em}
.kpi-v small{font-family:var(--font);font-weight:600;font-size:.76rem;color:var(--muted);margin-left:4px}
.kpi-l{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.kpi-bad{border-color:#FDA4AF;background:#FFF7F8}
.kpi-bad .kpi-v{color:#9f1239}
.kpi-warn{border-color:#FDE68A;background:#FFFBE6}
.kpi-warn .kpi-v{color:#8b6300}

/* ---- Wrapping pill tabs (no scroll) ---- */
.entity-tabs{
  display:flex;flex-wrap:wrap;gap:6px;background:#fff;border:1px solid var(--border);
  border-radius:var(--radius);padding:8px;margin-bottom:22px;box-shadow:var(--shadow-sm);
}
.entity-tabs a{
  padding:7px 13px;border-radius:9px;color:var(--ink-2);text-decoration:none;
  font-weight:600;font-size:.85rem;background:transparent;
  transition:background .15s,color .15s;
  display:inline-flex;align-items:center;gap:7px;border:1px solid transparent;
}
.entity-tabs a .pi{width:15px;height:15px;color:var(--muted)}
.entity-tabs a:hover{background:#F4F6FA;color:var(--navy)}
.entity-tabs a:hover .pi{color:var(--navy)}
.entity-tabs a.is-active{background:var(--navy);color:#fff;border-color:var(--navy)}
.entity-tabs a.is-active .pi{color:var(--gold)}
.entity-tabs a.is-active .tab-count{background:var(--gold);color:var(--navy)}
.tab-count{
  background:rgba(11,31,58,.08);color:var(--navy);
  font-size:.7rem;font-weight:700;padding:1px 7px;border-radius:99px;
  font-family:var(--font);
}

/* Tab action row above tables */
.tab-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:8px}
.tab-actions>.muted{font-weight:600;font-size:.86rem}

/* ============================================================
   DASHBOARD
   ============================================================ */
.dash-kpi{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:22px;
}
.dash-grid{display:grid;grid-template-columns:2fr 1fr;gap:18px;align-items:start}
@media (max-width:1100px){.dash-grid{grid-template-columns:minmax(0,1fr)}}
.dash-card{margin-bottom:18px}
.dash-card:last-child{margin-bottom:0}
.dash-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.dash-head h3{margin:0;font-size:.98rem;font-family:var(--display);font-weight:700;color:var(--navy);display:flex;align-items:center;gap:8px}
.dash-head a{font-size:.82rem;text-decoration:none;font-weight:600}
.dash-card .empty{padding:14px 0;text-align:center}

/* Compact tables on the dashboard */
.dash-table{width:100%;border-collapse:collapse}
.dash-table td{padding:8px 0;border-bottom:1px solid var(--border);font-size:.88rem;vertical-align:top}
.dash-table tr:last-child td{border-bottom:0}
.dash-table a{color:var(--navy);text-decoration:none}
.dash-table a:hover{color:var(--gold-2)}

/* Activity feed */
.feed{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}
.feed li{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:start;padding:8px 0;border-bottom:1px solid var(--border);font-size:.88rem}
.feed li:last-child{border-bottom:0}
.feed-ic{width:28px;height:28px;border-radius:8px;background:rgba(11,31,58,.06);color:var(--navy);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.9rem}
.feed-ic .pi{width:15px;height:15px}
.feed-when{color:var(--muted);font-size:.78rem;white-space:nowrap;align-self:center}

/* Quick actions grid */
.qa-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.qa{
  display:flex;align-items:center;gap:9px;padding:10px 12px;
  background:#F4F6FA;border:1px solid var(--border);border-radius:10px;
  text-decoration:none;color:var(--ink);font-weight:600;font-size:.84rem;
  transition:background .12s,border-color .12s,transform .12s;
}
.qa:hover{background:#fff;border-color:var(--gold);transform:translateY(-1px);color:var(--navy)}
.qa span{font-size:1rem;display:inline-flex;color:var(--navy)}
.qa span .pi,.qa > .pi{width:16px;height:16px;color:var(--navy)}

/* ============================================================
   LIVE CHAT DESK (portal/livechat/) + portal-wide chat badge
   ============================================================ */
.nav-badge{margin-left:auto;background:rgba(255,255,255,.14);color:#fff;font-size:.68rem;font-weight:800;border-radius:99px;padding:1px 7px;line-height:1.5;font-family:var(--font)}
.nav-badge.is-unread{background:var(--gold);color:var(--navy)}
.nav-badge[hidden]{display:none}
.lc-dash-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.lc-dash-tile{display:flex;flex-direction:column;gap:2px;background:#F4F6FA;border:1px solid var(--border);border-radius:10px;padding:10px 12px;text-decoration:none;color:var(--ink);transition:border-color .12s,background .12s}
.lc-dash-tile:hover{border-color:var(--gold);background:#fff}
.lc-dash-tile strong{font-family:var(--display);font-size:1.3rem;color:var(--navy);line-height:1.1}
.lc-dash-tile span{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.lc-dash-tile.is-hot{border-color:var(--gold);background:#FFFBE6}
.lc-dash-online{font-size:.82rem;margin:10px 0 0}

.lcd-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.lcd-switch{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--border);border-radius:99px;padding:6px 12px 6px 8px;font-weight:600;font-size:.86rem;cursor:pointer;user-select:none}
.lcd-switch input{appearance:none;-webkit-appearance:none;width:34px;height:20px;border-radius:99px;background:#CBD3DF;position:relative;transition:background .15s;cursor:pointer;margin:0}
.lcd-switch input::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .15s;box-shadow:0 1px 2px rgba(0,0,0,.25)}
.lcd-switch input:checked{background:var(--ok)}
.lcd-switch input:checked::after{left:16px}
.lcd-online{display:flex;gap:6px;flex-wrap:wrap}
.lcd-chip{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--border);border-radius:99px;padding:5px 11px;font-size:.8rem;font-weight:600;color:var(--ink-2)}
.lcd-chip-off{color:var(--muted);border-style:dashed}
.lcd-counts{margin-left:auto;display:flex;gap:14px;font-size:.82rem;color:var(--muted)}
.lcd-counts strong{font-family:var(--display);color:var(--navy);font-size:1.05rem;margin-right:4px}
.lcd{display:grid;grid-template-columns:330px minmax(0,1fr) 310px;gap:14px;align-items:start}
@media (max-width:1380px){.lcd{grid-template-columns:300px minmax(0,1fr)}.lcd-rail{grid-column:1/-1}}
@media (max-width:900px){.lcd{grid-template-columns:1fr}}
.lcd-col{display:flex;flex-direction:column;gap:14px;min-width:0}
.lcd-box{background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;min-width:0;overflow:hidden}
.lcd-box-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 14px;border-bottom:1px solid var(--border);font-weight:700;font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.lcd-box-head .pi{color:var(--gold-2);width:15px;height:15px;margin-right:4px}
.lcd-tabs{display:inline-flex;background:#F4F6FA;border-radius:8px;padding:2px}
.lcd-tabs button{border:0;background:transparent;font-family:inherit;font-weight:700;font-size:.74rem;letter-spacing:.04em;text-transform:uppercase;padding:4px 10px;border-radius:6px;cursor:pointer;color:var(--muted)}
.lcd-tabs button.is-active{background:#fff;color:var(--navy);box-shadow:var(--shadow-sm)}
.lcd-list{overflow-y:auto;max-height:42vh;min-height:120px}
.lcd-none{color:var(--muted);font-size:.86rem;padding:18px 14px;text-align:center;margin:0}
.lcd-row{display:block;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--border);padding:10px 14px;cursor:pointer;font-family:inherit;color:var(--ink);transition:background .12s}
.lcd-row:last-child{border-bottom:0}
.lcd-row:hover{background:#F8FAFD}
.lcd-row.is-active{background:rgba(255,199,44,.14);box-shadow:inset 3px 0 0 var(--gold)}
.lcd-row.is-unread .lcd-row-top{color:var(--navy)}
.lcd-row-top{display:flex;align-items:center;gap:7px;font-weight:700;font-size:.9rem;color:var(--navy);flex-wrap:wrap}
.lcd-row-sub{font-size:.78rem;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lcd-row-sub code{font-size:.74rem}
.lcd-live{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px rgba(14,159,110,.18);flex-shrink:0}
.lcd-live.is-idle{background:var(--warn);box-shadow:0 0 0 3px rgba(245,165,36,.2)}
.lcd-unread{margin-left:auto;background:var(--err);color:#fff;font-size:.64rem;font-weight:800;border-radius:99px;padding:2px 7px;text-transform:uppercase;letter-spacing:.04em}
.lcd-pill{font-size:.62rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;border-radius:99px;padding:2px 7px;background:rgba(11,31,58,.07);color:var(--navy)}
.lcd-pill.gold{background:rgba(255,199,44,.25);color:#8b6300}
.lcd-pill.ok{background:rgba(14,159,110,.14);color:#0a7050}
.lcd-thread-box{min-height:620px}
.lcd-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--muted);text-align:center;padding:40px 20px;min-height:620px}
.lcd-empty .pi{width:36px;height:36px;color:#C5CEDB}
.lcd-empty p{margin:10px 0 0;font-size:.92rem}
.lcd-thread{display:flex;flex-direction:column;min-height:620px}
.lcd-thread[hidden],.lcd-empty[hidden]{display:none}
.lcd-thread-head{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.lcd-thread-actions{display:flex;gap:6px;flex-wrap:wrap}
.lcd-msgs{flex:1;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:10px;min-height:300px;max-height:52vh;background:linear-gradient(180deg,#FBFCFE,#fff)}
.lcm{max-width:80%}
.lcm-meta{font-size:.74rem;color:var(--muted);margin-bottom:4px}
.lcm-meta strong{color:var(--navy);font-weight:700}
.lcm-body{background:#F4F6FA;border:1px solid var(--border);border-radius:12px;padding:10px 14px;font-size:.92rem;line-height:1.5;color:var(--ink);word-wrap:break-word;overflow-wrap:anywhere}
.lcm-body a{color:var(--navy-2);text-decoration:underline}
.lcm-visitor{align-self:flex-start}
.lcm-staff{align-self:flex-end}
.lcm-staff .lcm-meta{text-align:right}
.lcm-staff .lcm-body{background:var(--gold);border-color:var(--gold-2);color:var(--navy)}
.lcm-sys{align-self:center;max-width:100%}
.lcm-sys .lcm-meta{display:none}
.lcm-sys .lcm-body{background:transparent;border-style:dashed;color:var(--muted);font-style:italic;text-align:center;font-size:.8rem;padding:6px 12px}
.lcd-compose{border-top:1px solid var(--border);padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.lcd-compose[hidden]{display:none}
.lcd-compose textarea{width:100%;min-height:68px;resize:vertical;border:1px solid var(--border-2);border-radius:10px;padding:10px 12px;font-family:inherit;font-size:.92rem}
.lcd-compose textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 4px rgba(255,199,44,.18)}
.lcd-compose-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.lcd-canned{display:flex;gap:6px;flex-wrap:wrap}
.lcd-canned button{background:#F4F6FA;border:1px solid var(--border);border-radius:99px;padding:4px 10px;font-size:.76rem;cursor:pointer;font-family:inherit;color:var(--ink-2);font-weight:600}
.lcd-canned button:hover{border-color:var(--gold);background:#fff;color:var(--navy)}
.lcd-rail{padding:14px 16px;gap:12px;min-height:200px}
.lcd-rail-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:1rem;color:var(--navy)}
.lcd-kv li{grid-template-columns:84px 1fr;padding:6px 0;font-size:.84rem}
.lcd-kv .k{font-size:.74rem}
.lcd-kv code{font-size:.78rem}
.lcd-rail-sec{border-top:1px solid var(--border);padding-top:10px}
.lcd-rail-sec h4{margin:0 0 8px;font-family:var(--font);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.lcd-trail{list-style:none;margin:0;padding:0;max-height:34vh;overflow-y:auto}
.lcd-trail li{display:grid;grid-template-columns:1fr auto;gap:8px;padding:5px 0;border-bottom:1px dashed var(--border);font-size:.8rem;align-items:baseline}
.lcd-trail li:last-child{border-bottom:0}
.lcd-trail code{font-size:.76rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.lcd-prompt textarea{width:100%;min-height:72px;resize:vertical;border:1px solid var(--border-2);border-radius:10px;padding:10px 12px;font-family:inherit;font-size:.9rem;margin-bottom:8px}
.lcd-prompt p{font-size:.76rem;margin:8px 0 0}
.lcd-sound-gate{position:fixed;right:28px;bottom:28px;z-index:70;display:inline-flex;align-items:center;gap:8px;background:var(--navy);color:#fff;border:0;border-radius:99px;padding:12px 18px;font-family:inherit;font-weight:700;font-size:.9rem;cursor:pointer;box-shadow:var(--shadow)}
.lcd-sound-gate .pi{color:var(--gold);width:18px;height:18px}
.lcd-sound-gate[hidden]{display:none}
.lcd-toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:var(--navy);color:#fff;padding:10px 16px;border-radius:10px;font-size:.88rem;font-weight:600;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:80;box-shadow:var(--shadow)}
.lcd-toast.is-show{opacity:1;transform:translate(-50%,0)}
.lcd-toast.ok{background:#0a7050}
.lcd-toast.err{background:#9f1239}

/* ============================================================
   SERVICE DESK (tickets)
   ============================================================ */
.sla-badge{display:inline-flex;align-items:center;justify-content:center;min-width:44px;padding:4px 10px;border-radius:99px;font-weight:700;font-size:.8rem;letter-spacing:.01em;line-height:1.3}
.sla-ok{background:rgba(14,159,110,.12);color:#0a7050}
.sla-soon{background:rgba(245,165,36,.18);color:#8b6300}
.sla-breached{background:rgba(225,29,72,.12);color:#9f1239}
.sla-paused{background:rgba(11,31,58,.08);color:var(--ink-2)}
.sla-done{background:rgba(11,31,58,.06);color:var(--muted)}
.sla-done.sla-late{background:rgba(225,29,72,.10);color:#9f1239}
.sla-none{background:transparent;color:var(--muted)}

/* Filters */
.tk-filters{margin-bottom:14px}
.tk-filters-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.tk-filters-row select{padding:8px 30px 8px 10px;border:1px solid var(--border-2);border-radius:9px;background:#fff;font-family:inherit;font-size:.86rem;color:var(--ink)}
.tk-search{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--border-2);border-radius:9px;padding:0 10px;height:36px;min-width:240px;flex:1 1 240px;max-width:360px;color:var(--muted)}
.tk-search input{border:0;outline:none;background:transparent;flex:1;font-family:inherit;font-size:.9rem;color:var(--ink);min-width:0;padding:0 4px;border-radius:0}
.tk-search .pi{width:16px;height:16px;flex-shrink:0}
.tk-check{display:inline-flex;align-items:center;gap:7px;font-size:.86rem;font-weight:500;color:var(--ink-2);cursor:pointer;white-space:nowrap}
.tk-check input{width:16px;height:16px;accent-color:var(--navy);margin:0}

/* Toolbar + bulk actions */
.tk-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px;min-height:40px}
.tk-toolbar-right{display:flex;align-items:center;gap:12px;margin-left:auto}
.bulkbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;opacity:.45;pointer-events:none;transition:opacity .15s}
.bulkbar.is-active{opacity:1;pointer-events:auto}
.bulk-count{font-size:.82rem;font-weight:700;color:var(--navy);background:rgba(255,199,44,.25);padding:4px 10px;border-radius:99px}
.bulk-group{display:inline-flex;align-items:stretch;border:1px solid var(--border-2);border-radius:9px;overflow:hidden;background:#fff}
.bulk-select{border:0;border-right:1px solid var(--border);background:#F8FAFC;font-family:inherit;font-size:.82rem;padding:0 8px;color:var(--ink);max-width:160px}
.bulk-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border-2);background:#fff;color:var(--ink-2);font-family:inherit;font-weight:600;font-size:.82rem;padding:7px 11px;border-radius:9px;cursor:pointer;transition:background .12s,color .12s,border-color .12s}
.bulk-group .bulk-btn{border:0;border-radius:0}
.bulk-btn:hover{background:#F4F6FA;color:var(--navy)}
.bulk-btn .pi{width:14px;height:14px}
.bulk-danger{color:var(--err);border-color:#F9C2CD}
.bulk-danger:hover{background:var(--err);color:#fff;border-color:var(--err)}

/* Queue table */
.tk-table th.chk,.tk-table td.chk{width:34px;padding-left:12px;padding-right:0}
.tk-table td{vertical-align:middle}
.tk-table input[type=checkbox]{width:16px;height:16px;accent-color:var(--navy);margin:0}
.tk-cust{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;min-width:150px}
.tk-cust-tile{width:38px;height:38px;border-radius:9px;background:rgba(11,31,58,.07);color:var(--navy);display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:.82rem;flex-shrink:0;font-family:var(--display)}
.tk-cust-name{font-weight:600;font-size:.88rem;line-height:1.25}
.tk-details{min-width:280px}
.tk-title{font-size:.95rem;line-height:1.3}
.tk-title a{color:var(--navy);font-weight:700}
.tk-title a:hover{color:var(--gold-2)}
.tk-ref{font-family:Consolas,monospace;font-size:.78rem;color:var(--muted);margin-right:4px}
.tk-sub{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.82rem;color:var(--ink-2);margin-top:4px}
.tk-when{font-size:.76rem;color:var(--muted);margin-top:3px}
.tk-tech{display:inline-flex;align-items:center;gap:8px;font-size:.88rem;white-space:nowrap}
.tk-tech-av{width:26px;height:26px;border-radius:50%;background:rgba(255,199,44,.25);color:var(--navy);display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:.68rem;flex-shrink:0}
@media (max-width:1100px){.tk-table th:nth-child(7),.tk-table td:nth-child(7){display:none}}

/* New ticket */
.tk-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:18px;align-items:start}
@media (max-width:1000px){.tk-grid{grid-template-columns:minmax(0,1fr)}}
.tk-col{display:flex;flex-direction:column;gap:18px;min-width:0}
.tk-sec h3{display:flex;align-items:center;gap:8px;font-size:1rem;margin:0 0 14px;padding-bottom:10px;border-bottom:1px solid var(--border)}
.tk-sec h3 .pi{color:var(--gold-2)}
.tk-sec .field{margin-bottom:12px}
.tk-sec .grid{gap:0 14px}
.tk-sec-muted{background:#F8FAFC}
.tk-inline-link{display:inline-flex;align-items:center;gap:4px;font-size:.84rem;font-weight:600;color:var(--navy-2);margin-top:6px}
.tk-inline-link .pi{width:14px;height:14px}
.tk-hint{font-weight:500;font-size:.78rem;margin-left:4px}
.tk-timer-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.tk-timer{display:inline-flex;align-items:center;gap:6px;background:rgba(11,31,58,.06);color:var(--navy);font-weight:800;font-variant-numeric:tabular-nums;padding:6px 12px;border-radius:9px;font-size:.92rem}
.tk-timer .pi{width:16px;height:16px}
.tk-schedule summary{cursor:pointer;font-weight:600;color:var(--navy);display:flex;align-items:center;gap:6px;list-style:none}
.tk-schedule summary::-webkit-details-marker{display:none}
.tk-schedule summary .pi{transition:transform .15s}
.tk-schedule[open] summary .pi{transform:rotate(90deg)}
.tk-actions{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:10px;padding:12px 0 4px;margin-top:18px;background:linear-gradient(180deg,rgba(244,246,250,0),var(--bg) 30%)}
select.is-empty{color:var(--muted)}

/* Ticket view */
.tk-view-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:18px;align-items:start}
@media (max-width:1100px){.tk-view-grid{grid-template-columns:minmax(0,1fr)}}
.tk-rail{display:flex;flex-direction:column;gap:14px;min-width:0}
.tk-view-grid > div:first-child > .card{margin-bottom:14px}
.tk-sla-strip{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.tk-avatar-P1{background:linear-gradient(135deg,#9f1239,#E11D48)!important;color:#fff!important}
.tk-avatar-P2{background:linear-gradient(135deg,#8b6300,#F5A524)!important;color:#fff!important}
.tk-avatar-P4{background:#F4F6FA!important;color:var(--navy)!important;border:1px solid var(--border)}
.tk-comment{padding:16px 18px}
.tk-internal{background:#FFFBEB;border-color:#FDE8A4}
.tk-comment-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px;font-size:.88rem}
.tk-comment-when{margin-left:auto;font-size:.78rem}
.tk-reply-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.tk-props .grid{gap:0 12px}
.tk-props .field{margin-bottom:10px}
.tk-props .field label{font-size:.78rem}
.tk-props select,.tk-props input{padding:8px 10px;font-size:.88rem}
.tk-resolution-fields{display:none;border-top:1px dashed var(--border);margin:4px 0 12px;padding-top:12px}
.tk-resolution-fields.is-visible{display:block}
.tk-resolution{border-color:#B7EBCB;background:#F3FDF7}
.tk-time-row{display:flex;align-items:center;gap:8px}
.tk-time-row input{padding:8px 10px;border:1px solid var(--border-2);border-radius:8px;font-family:inherit;font-size:.88rem;min-width:0}
.tk-time-row input[type=number]{width:70px}
.tk-time-list{list-style:none;margin:12px 0 6px;padding:0;display:flex;flex-direction:column;gap:6px}
.tk-time-list li{display:grid;grid-template-columns:1fr auto;gap:2px 10px;font-size:.84rem;padding-bottom:6px;border-bottom:1px solid var(--border)}
.tk-time-list li small{grid-column:1/-1;font-size:.76rem}
.tk-mini-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:.86rem}
.tk-kv-compact li{grid-template-columns:120px 1fr;padding:6px 0}
.tk-kv-compact .k{font-size:.8rem}
.tk-kv-compact .v{font-size:.86rem;font-family:Consolas,monospace}
.tk-stars{display:flex;gap:6px;margin:4px 0 12px}
.tk-stars label{cursor:pointer}
.tk-stars input{position:absolute;opacity:0;width:0;height:0}
.tk-stars span .pi{width:28px;height:28px;color:var(--border-2);transition:color .12s}
.tk-stars label:hover span .pi,.tk-stars label:has(input:checked) span .pi{color:var(--gold)}
.tk-stars label:has(~ label input:checked) span .pi{color:var(--gold)}

/* ============================================================
   SECURITY CENTRE
   ============================================================ */
.sec-tabs{margin-bottom:18px}
.tab-count-hot{background:rgba(225,29,72,.14)!important;color:#9f1239!important}
.entity-tabs a.is-active .tab-count-hot{background:var(--gold)!important;color:var(--navy)!important}
.sec-top{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:18px;align-items:stretch}
@media (max-width:1100px){.sec-top{grid-template-columns:minmax(0,1fr)}}
.sec-posture{display:flex;gap:20px;align-items:flex-start}
.sec-score{--pct:0;width:92px;height:92px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;background:conic-gradient(var(--sc) calc(var(--pct)*1%),#E3E8F0 0);position:relative}
.sec-score::before{content:"";position:absolute;inset:9px;border-radius:50%;background:#fff}
.sec-score span{position:relative;font-family:var(--display);font-weight:800;font-size:1.5rem;color:var(--navy);letter-spacing:-.02em}
.sec-score small{font-size:.8rem;font-weight:700;color:var(--muted);margin-left:1px}
.sec-score-ok{--sc:var(--ok)} .sec-score-warn{--sc:var(--warn)} .sec-score-crit{--sc:var(--err)}
.sec-posture-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.sec-posture-list li{display:grid;grid-template-columns:auto auto 1fr;gap:10px;align-items:baseline;font-size:.88rem}
.sec-posture-list li .muted{font-size:.8rem}
.mon-strip{display:flex;flex-wrap:wrap;gap:6px}
.mon-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 11px;border-radius:99px;border:1px solid var(--border);background:#F8FAFC;font-size:.8rem;font-weight:600;color:var(--ink-2);text-decoration:none;transition:border-color .12s,background .12s}
.mon-chip:hover{border-color:var(--navy);color:var(--navy);background:#fff}
.mon-dot{width:9px;height:9px;border-radius:50%;background:#C5CEDB;flex-shrink:0;box-shadow:0 0 0 3px rgba(197,206,219,.25)}
.mon-ok .mon-dot{background:var(--ok);box-shadow:0 0 0 3px rgba(14,159,110,.18)}
.mon-warn .mon-dot{background:var(--warn);box-shadow:0 0 0 3px rgba(245,165,36,.2)}
.mon-crit .mon-dot{background:var(--err);box-shadow:0 0 0 3px rgba(225,29,72,.18);animation:shoutPulse 2s infinite}
.mon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.mon-tile{display:flex;flex-direction:column;gap:6px;padding:16px 18px;text-decoration:none;color:var(--ink);transition:border-color .12s,transform .12s,box-shadow .12s}
.mon-tile:hover{border-color:var(--navy);transform:translateY(-1px);box-shadow:var(--shadow-sm);color:var(--ink)}
.mon-tile.is-selected{border-color:var(--gold);box-shadow:0 0 0 2px rgba(255,199,44,.35)}
.mon-tile.is-disabled{opacity:.55}
.mon-tile-head{display:flex;align-items:center;gap:9px;font-size:.92rem}
.mon-tile-head strong{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mon-tile-sum{font-size:.84rem;color:var(--ink-2);line-height:1.4;min-height:2.4em}
.mon-tile-meta{font-size:.74rem;color:var(--muted)}
.mon-crit.mon-tile{border-color:#FDC5CF;background:#FFF7F8}
.mon-warn.mon-tile{border-color:#FDE8A4;background:#FFFCF2}
.mon-hist{display:flex;gap:2px;align-items:flex-end;height:28px}
.mon-hist-bar{flex:1;min-width:3px;height:100%;border-radius:2px;background:#C5CEDB}
.mon-hist-bar.mon-ok{background:var(--ok)} .mon-hist-bar.mon-warn{background:var(--warn)} .mon-hist-bar.mon-crit{background:var(--err)}
/* ============================================================
   LIST MANAGEMENT (assets/js/listview.js)
   ============================================================ */
/* The toolbar is the table's header card: it sits flush on top of the list it controls. */
.lv-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0;position:relative;background:#fff;border:1px solid var(--border);border-bottom:0;border-radius:var(--radius) var(--radius) 0 0;padding:10px 12px}
.lv-toolbar+table.tbl{border-radius:0 0 var(--radius) var(--radius)}
.lv-search{display:flex;align-items:center;gap:8px;background:#F8FAFC;border:1px solid var(--border-2);border-radius:9px;padding:0 10px;height:34px;min-width:220px;flex:0 1 280px;color:var(--muted);transition:border-color .15s,background .15s,box-shadow .15s}
.lv-search:focus-within{background:#fff;border-color:var(--gold);box-shadow:0 0 0 4px rgba(255,199,44,.18)}
.lv-search input{border:0;outline:none;background:transparent;flex:1;min-width:0;font-family:inherit;font-size:.86rem;color:var(--ink);padding:0 4px;border-radius:0}
.lv-search .pi{width:15px;height:15px;flex-shrink:0}
.lv-filters{display:flex;gap:6px;flex-wrap:wrap}
.lv-filter{padding:7px 28px 7px 10px;border:1px solid var(--border-2);border-radius:9px;background:#fff;font-family:inherit;font-size:.82rem;color:var(--ink-2);max-width:220px}
.lv-right{display:flex;align-items:center;gap:6px;margin-left:auto;position:relative}
.lv-count{font-size:.8rem;color:var(--muted);margin-right:4px;white-space:nowrap}
.lv-filtered .lv-count{color:var(--navy);font-weight:700}
.lv-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border-2);background:#fff;color:var(--ink-2);font-family:inherit;font-weight:600;font-size:.8rem;padding:7px 10px;border-radius:9px;cursor:pointer;transition:background .12s,color .12s,border-color .12s}
.lv-btn:hover{background:#F4F6FA;color:var(--navy)}
.lv-btn .pi{width:14px;height:14px}
.lv-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:30;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:12px 14px;min-width:220px;display:flex;flex-direction:column;gap:6px}
.lv-pop-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:4px}
.lv-pop label{display:flex;align-items:center;gap:8px;font-size:.86rem;color:var(--ink);cursor:pointer}
.lv-pop input{width:15px;height:15px;accent-color:var(--navy);margin:0}
.lv-pop-hint{font-size:.74rem;color:var(--muted);margin-top:6px;border-top:1px solid var(--border);padding-top:8px}
.lv-bulk{margin:0}
.tbl th.lv-th{cursor:pointer;user-select:none;position:relative;padding-right:22px}
.tbl th.lv-th:hover{color:var(--navy);background:#F1F4F9}
.tbl th.lv-th::after{content:"";position:absolute;right:8px;top:50%;width:6px;height:6px;border-right:2px solid transparent;border-bottom:2px solid transparent;transform:translateY(-70%) rotate(45deg);opacity:0}
.tbl th.lv-th:hover::after{border-color:#C5CEDB;opacity:1}
.tbl th.lv-sort-asc::after{border-color:var(--navy);opacity:1;transform:translateY(-30%) rotate(-135deg)}
.tbl th.lv-sort-desc::after{border-color:var(--navy);opacity:1;transform:translateY(-70%) rotate(45deg)}
.tbl th.lv-dragging{opacity:.4}
.tbl th.lv-drag-over{box-shadow:inset 3px 0 0 var(--gold)}
.tbl th.lv-chk,.tbl td.lv-chk{width:34px;padding-left:12px;padding-right:0}
.tbl td.lv-chk input,.tbl th.lv-chk input{width:16px;height:16px;accent-color:var(--navy);margin:0}
@media (max-width:760px){.lv-right{margin-left:0;width:100%}.lv-search{flex:1 1 100%}}
.inline-form{display:inline-block;margin:0 0 0 6px;vertical-align:middle}
.btn-icon{padding:0;width:32px;min-width:32px;justify-content:center}
.btn-icon .pi{margin:0;width:15px;height:15px}

/* ---- Confirmation dialog (window.portalConfirm, listview.js) ---- */
.pc-dialog{border:0;padding:0;background:transparent;max-width:min(92vw,460px);width:100%;color:var(--ink);overflow:visible}
.pc-dialog::backdrop{background:rgba(6,17,42,.55);backdrop-filter:blur(2px)}
.pc-box{background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:22px 22px 18px;display:grid;grid-template-columns:auto 1fr;gap:4px 16px;margin:0}
.pc-dialog[open] .pc-box{animation:pcIn .18s ease}
@keyframes pcIn{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}
.pc-icon{width:44px;height:44px;border-radius:12px;background:rgba(245,165,36,.16);color:#8b6300;display:flex;align-items:center;justify-content:center;grid-row:1/2;align-self:start}
.pc-icon.is-danger{background:rgba(225,29,72,.12);color:var(--err)}
.pc-icon .pi{width:22px;height:22px}
.pc-body{min-width:0}
.pc-title{margin:6px 0 4px;font-size:1.08rem;line-height:1.3}
.pc-msg{margin:0;color:var(--ink-2);font-size:.92rem;line-height:1.55}
.pc-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}
.pc-ok.pc-danger{background:var(--err);color:#fff;border-color:var(--err)}
.pc-ok.pc-danger:hover{background:#BE123C;border-color:#BE123C;color:#fff}
/* ---- Alerts hub ---- */
.al-kpi{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:1100px){.al-kpi{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}
.al-stat.al-sev-critical .ic{background:linear-gradient(135deg,#9f1239,#E11D48);color:#fff}
.al-stat.al-sev-high .ic{background:linear-gradient(135deg,#B45309,#F59E0B);color:#fff}
.al-stat.al-sev-medium .ic{background:linear-gradient(135deg,#8B6300,#FFC72C);color:#fff}
.al-stat.al-sev-low .ic,.al-stat.al-sev-info .ic{background:rgba(11,31,58,.08);color:var(--navy);box-shadow:none}
.al-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.al-views{display:flex;gap:6px;flex-wrap:wrap}
.al-right{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.al-n{display:inline-block;background:rgba(11,31,58,.08);color:inherit;border-radius:99px;padding:0 7px;font-size:.72rem;margin-left:4px;font-weight:800}
.btn-navy .al-n{background:rgba(255,255,255,.18)}
.al-cats{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.al-cat{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--border);border-radius:99px;padding:5px 11px;font-size:.8rem;font-weight:600;color:var(--ink-2);text-decoration:none;transition:border-color .12s,background .12s}
.al-cat .pi{width:14px;height:14px;color:var(--muted)}
.al-cat span{background:rgba(11,31,58,.08);color:var(--navy);border-radius:99px;padding:0 7px;font-size:.7rem;font-weight:800}
.al-cat:hover{border-color:var(--navy);color:var(--navy)}
.al-cat.is-active{background:var(--navy);border-color:var(--navy);color:#fff}
.al-cat.is-active .pi{color:var(--gold)} .al-cat.is-active span{background:var(--gold);color:var(--navy)}
.al-cat.is-quiet{opacity:.6}
.al-table td{vertical-align:top}
.al-row.al-sev-critical td:first-child{box-shadow:inset 3px 0 0 var(--err)}
.al-row.al-sev-high td:first-child{box-shadow:inset 3px 0 0 var(--warn)}
.al-catcell{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;color:var(--ink-2);white-space:nowrap}
.al-catcell .pi{color:var(--gold-2)}
.al-title{font-weight:700;color:var(--navy)}
.al-detail{font-size:.82rem;color:var(--ink-2);margin-top:3px;line-height:1.45}
.al-snooze select{padding:5px 26px 5px 8px;font-size:.78rem;border-radius:8px;border:1px solid var(--border-2);background:#fff;font-family:inherit;color:var(--ink-2);min-height:32px}
.al-activity h3 .muted{font-size:.8rem;font-weight:500;font-family:var(--font);margin-left:6px}
.al-dash-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.al-dash-list li{display:flex;align-items:baseline;gap:8px;font-size:.88rem;padding:6px 0;border-bottom:1px solid var(--border)}
.al-dash-list li:last-child{border-bottom:0}
.al-dash-list a{color:var(--navy);font-weight:600}
.al-dot{width:8px;height:8px;border-radius:50%;background:#C5CEDB;flex-shrink:0;position:relative;top:-1px}
.al-sev-critical .al-dot{background:var(--err);box-shadow:0 0 0 3px rgba(225,29,72,.18)}
.al-sev-high .al-dot{background:var(--warn);box-shadow:0 0 0 3px rgba(245,165,36,.2)}
.al-sev-medium .al-dot{background:var(--gold)}
.al-sev-low .al-dot,.al-sev-info .al-dot{background:#C5CEDB}
/* ---- Focus ---- */
:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:8px}

/* ── Security Centre: deep audit ───────────────────────────────────── */
.audit-trend{display:flex;gap:6px;align-items:flex-end;height:96px;padding:4px 0 0}
.audit-bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:4px;min-width:0}
.audit-bar-fill{display:block;width:100%;max-width:28px;border-radius:5px 5px 2px 2px;background:var(--ok);min-height:4px}
.audit-bar-fill.audit-warn{background:var(--warn)}
.audit-bar-fill.audit-crit{background:var(--err)}
.audit-bar small{font-size:.62rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.audit-table td{vertical-align:top}
.audit-table tr.audit-fail td:first-child{box-shadow:inset 3px 0 0 var(--err)}
.audit-table tr.audit-warn td:first-child{box-shadow:inset 3px 0 0 var(--warn)}
.audit-items{margin:6px 0 0;padding-left:18px;font-size:.8rem;color:#334155}
.audit-items li{margin:2px 0;word-break:break-word}
.audit-items code{font-size:.76rem}

/* ── List engine: grouping ────────────────────────────────────────────────── */
.lv-group td{background:#F4F6FA;font-weight:700;color:var(--navy);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;padding:8px 12px;border-top:2px solid var(--border);cursor:pointer;user-select:none}
.lv-group:hover td{background:#EEF2F8}
.lv-group .lv-group-n{font-weight:600;color:var(--muted);margin-left:6px;text-transform:none;letter-spacing:0}
.lv-group .lv-caret{display:inline-block;width:0;height:0;border:4px solid transparent;border-left:6px solid var(--navy);margin-right:7px;transform:rotate(90deg);transition:transform .15s;vertical-align:middle}
.lv-group.is-collapsed .lv-caret{transform:none}
.lv-group td.lv-sum{text-transform:none;letter-spacing:0;font-variant-numeric:tabular-nums;color:var(--ink)}
tr.lv-collapsed-row{display:none}

/* ── Service catalogue ────────────────────────────────────────────────────── */
.svc-bar{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;margin-bottom:14px}
.svc-bar-right{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-left:auto}
.svc-cats{flex:1;min-width:0;flex-wrap:wrap}
.svc-cats .tab-count,.svc-status .tab-count{font-size:.7rem;font-weight:700;background:#E8ECF3;color:var(--muted);border-radius:999px;padding:1px 7px;margin-left:4px}
.svc-cats a.is-active .tab-count,.svc-status a.is-active .tab-count{background:rgba(255,255,255,.18);color:#fff}
.svc-table th.num,.svc-table td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.svc-table tr.svc-archived td{opacity:.6}
.svc-table tr.svc-archived td.svc-actions,.svc-table tr.svc-archived td.chk{opacity:1}
.svc-table td.svc-name{min-width:260px}
.svc-table code{white-space:nowrap}
.svc-desc{font-size:.78rem;margin-top:3px;max-width:420px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.svc-margin{font-size:.72rem;margin-left:3px}
.svc-actions{text-align:right;white-space:nowrap}
.svc-actions .inline-form{display:inline-block;vertical-align:middle}
.btn-icon.btn-icon-danger{color:var(--err)}
.btn-icon.btn-icon-danger:hover{background:#FFF1F2;border-color:#FDA4AF}
.btn-icon.is-disabled{opacity:.3;cursor:not-allowed}
.svc-edit{display:inline-block;min-width:58px;padding:2px 6px;margin:-2px -6px;border-radius:6px;border:1px dashed transparent;cursor:text;transition:border-color .12s,background .12s}
.svc-edit:hover,.svc-edit:focus{border-color:var(--gold);background:#FFFBE6;outline:none}
.svc-edit.is-editing{border-color:var(--navy);background:#fff;padding:0;margin:-2px -6px}
.svc-edit.is-saving{opacity:.55}
.svc-edit.is-saved{border-color:var(--ok);background:#ECFDF5}
.svc-input{width:92px;padding:3px 6px;border:0;font:inherit;font-variant-numeric:tabular-nums;text-align:right;background:transparent}
.svc-toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,16px);background:var(--navy);color:#fff;padding:10px 16px;border-radius:10px;font-size:.88rem;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;z-index:60;max-width:min(92vw,520px)}
.svc-toast.is-on{opacity:1;transform:translate(-50%,0)}
.svc-toast.is-bad{background:#9f1239}

/* ── Time tracking ───────────────────────────────────────────────────────── */
.tt-chip{display:inline-flex;align-items:center;gap:8px;background:var(--navy);color:#fff;border-radius:999px;padding:5px 6px 5px 12px;font-size:.82rem;font-weight:600;margin-left:auto;margin-right:12px;white-space:nowrap;box-shadow:0 2px 8px rgba(11,31,58,.18)}
.tt-chip .tt-time{font-variant-numeric:tabular-nums;font-family:ui-monospace,Consolas,monospace;font-size:.86rem;letter-spacing:.02em}
.tt-chip .tt-label{max-width:180px;overflow:hidden;text-overflow:ellipsis;color:rgba(255,255,255,.75);font-weight:500}
.tt-chip.is-long{background:#9f1239}
.tt-chip button{border:0;cursor:pointer;font:inherit;font-weight:700;border-radius:999px;padding:3px 10px;line-height:1.2}
.tt-chip .tt-stop{background:var(--gold);color:var(--navy)}
.tt-chip .tt-stop:hover{background:#ffd75e}
.tt-chip .tt-discard{background:transparent;color:rgba(255,255,255,.7);padding:3px 6px;font-size:1rem}
.tt-chip .tt-discard:hover{color:#fff}
.tt-dot{width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 0 rgba(255,199,44,.6);animation:ttpulse 1.6s infinite;flex-shrink:0}
@keyframes ttpulse{0%{box-shadow:0 0 0 0 rgba(255,199,44,.6)}70%{box-shadow:0 0 0 7px rgba(255,199,44,0)}100%{box-shadow:0 0 0 0 rgba(255,199,44,0)}}
.tt-startbtn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:#fff;color:var(--muted);border-radius:999px;padding:5px 12px;font:inherit;font-size:.8rem;font-weight:600;cursor:pointer;margin-left:auto;margin-right:12px;white-space:nowrap}
.tt-startbtn:hover{border-color:var(--gold);color:var(--navy);background:#FFFBE6}
.tt-startbtn .pi{width:15px;height:15px}
.topbar .tt-chip+.who,.topbar .tt-startbtn+.who{margin-left:0}
@media (max-width:720px){.tt-chip .tt-label,.tt-startbtn span{display:none}}
.chip-btn{border:1px solid var(--border);background:#fff;cursor:pointer;font:inherit}
.chip-btn:hover{border-color:var(--gold);background:#FFFBE6}
.chip-btn:disabled{opacity:.5;cursor:not-allowed}
.tt-presets{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.tt-preset{border:1px solid var(--border);background:#fff;border-radius:999px;padding:3px 10px;font:inherit;font-size:.78rem;font-weight:600;color:var(--navy);cursor:pointer}
.tt-preset:hover{border-color:var(--gold);background:#FFFBE6}
.tt-preset.tt-preset-timer{display:inline-flex;align-items:center;gap:4px;margin-left:auto;background:var(--navy);color:#fff;border-color:var(--navy)}
.tt-preset.tt-preset-timer .pi{width:13px;height:13px}
.tt-preset.tt-preset-timer:disabled{opacity:.45;cursor:not-allowed}
.tt-form-grid{display:grid;grid-template-columns:1.4fr 1.6fr .9fr .9fr .7fr .7fr;gap:10px;align-items:start}
.tt-form-grid-2{grid-template-columns:1fr 1fr}
@media (max-width:1100px){.tt-form-grid{grid-template-columns:1fr 1fr 1fr}}
@media (max-width:640px){.tt-form-grid{grid-template-columns:1fr 1fr}}
.tt-quick summary{display:flex;gap:12px;align-items:center;cursor:pointer;list-style:none}
.tt-quick summary::-webkit-details-marker{display:none}
.tt-quick summary strong{display:inline-flex;align-items:center;gap:6px}
.tt-quick summary .muted{font-size:.84rem}
.tt-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-left:auto}
.tt-filters select,.tt-filters input[type=date]{padding:6px 10px;font-size:.84rem;width:auto}
.tt-week th small,.tt-week td small{display:block;font-size:.68rem;color:var(--muted);font-weight:500}
.tt-week .is-today{background:#FFFBE6}
.tt-week th.num,.tt-week td.num{text-align:right;white-space:nowrap}
.tt-table td.num,.tt-table th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tt-table tr.tt-internal td{opacity:.72}
.tt-table tr.tt-internal td.svc-actions,.tt-table tr.tt-internal td.chk{opacity:1}
.tt-desc{max-width:380px}
.tt-running{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.tt-running li{display:flex;gap:10px;align-items:center;font-size:.9rem}
.tt-running .tt-elapsed{margin-left:auto;font-family:ui-monospace,Consolas,monospace;font-variant-numeric:tabular-nums;font-weight:700;color:var(--navy)}
.tt-running .tt-elapsed.is-long{color:#9f1239}
.tk-time-right{display:inline-flex;align-items:center;gap:6px}
.tt-dialog .tt-box{min-width:min(92vw,520px)}
.tt-dialog .tt-fields .field{margin-bottom:10px}
.tt-dialog .tt-fields label{font-size:.82rem}

/* ── Agreements ──────────────────────────────────────────────────────────── */
mark.agr-fill{background:#FFF3C4;color:#7a4b00;border-bottom:2px dotted #d97706;padding:0 3px;border-radius:3px;font-style:italic}
.agr-doc h2{font-size:1.25rem;margin:0 0 10px}
.agr-doc h3{font-size:1rem;margin:18px 0 6px}
.agr-doc .agr-channel{background:#FFFBEB;border-left:4px solid #FFC72C;padding:10px 14px;border-radius:0 8px 8px 0;font-size:.9em;margin:0 0 14px}
.agr-doc table{border-collapse:collapse;width:100%;font-size:.86rem;margin:8px 0}
.agr-doc th,.agr-doc td{border:1px solid #e2e8f0;padding:6px 8px;text-align:left;vertical-align:top}
.agr-doc th{background:#F4F6FA}

/* ── Sign-in pages: brand panel beside the card ──────────────────────────── */
.auth-wrap{display:grid;grid-template-columns:minmax(0,1fr) 430px;gap:64px;align-items:center;width:100%;max-width:1060px;position:relative}
.auth-side{color:#fff;animation:slideUp .4s ease}
.auth-side img{display:block;width:320px;max-width:100%;height:auto}
.auth-side h2{font-family:var(--display);font-weight:800;font-size:2rem;line-height:1.15;letter-spacing:-.01em;margin:28px 0 12px;color:#fff}
.auth-side p{color:rgba(255,255,255,.76);font-size:1rem;max-width:480px;margin:0}
.auth-side ul{list-style:none;padding:0;margin:22px 0 0;display:grid;gap:12px}
.auth-side li{display:flex;gap:12px;align-items:flex-start;color:rgba(255,255,255,.92);font-size:.95rem}
.auth-side li .pi{width:20px;height:20px;color:var(--gold);flex-shrink:0;margin-top:2px}
.auth-ce{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:7px 14px;font-size:.78rem;color:rgba(255,255,255,.9);margin-top:26px}
.auth-ce .pi{width:16px;height:16px;color:var(--gold)}
.auth-card .auth-brand img{width:250px}
@media (max-width:980px){.auth-wrap{grid-template-columns:1fr;max-width:430px}.auth-side{display:none}}

/* ── Service requests ── */
.sr-steps{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px;padding:0;list-style:none}
.sr-steps li{font-size:.76rem;padding:4px 10px;border-radius:999px;background:#eef1f5;color:#667085}
.sr-steps li.on{background:#0B1F3A;color:#fff}
.sr-steps li.done{background:#ECFDF3;color:#0A5A35}
.sr-tl{list-style:none;margin:0;padding:0}
.sr-tl li{display:flex;gap:12px;padding:10px 0;border-top:1px solid #eef1f5}
.sr-tl li:first-child{border-top:0}
.sr-tl .k{flex:0 0 86px;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:#667085;padding-top:3px}
.sr-tl .m{flex:1;white-space:pre-wrap;font-size:.9rem;line-height:1.5}
.sr-tl .w{font-size:.76rem;color:#667085;margin-top:3px;white-space:normal}
.sr-tl li.priv{background:#fafbfc;border-radius:6px;padding:8px 10px;border-top:0}
@media (max-width:900px){.sr-two{grid-template-columns:1fr!important}}
.sr-next{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:#FFFBEB;border:1px solid #FDE8A4;border-left:4px solid #FFC72C;border-radius:8px;padding:10px 14px;margin:0 0 16px;font-size:.92rem}
.sr-next .pi{color:#8B6300}
.sr-board{display:grid;grid-template-columns:repeat(6,minmax(180px,1fr));gap:12px;overflow-x:auto;align-items:start}
.sr-col{background:#f4f6f9;border-radius:10px;padding:10px;min-height:120px}
.sr-col h4{margin:0 0 8px;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:#667085;display:flex;justify-content:space-between}
.sr-card{background:#fff;border:1px solid #e5e9f0;border-radius:8px;padding:9px 10px;margin-bottom:8px;font-size:.84rem;line-height:1.4}
.sr-card a{font-weight:600}
.sr-card .muted{display:block;font-size:.76rem}
.sr-card.urgent{border-left:3px solid #DC2626}
.sr-diary{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));gap:8px;overflow-x:auto;align-items:start}
.sr-day{background:#f4f6f9;border-radius:10px;padding:8px;min-height:150px}
.sr-day.today{outline:2px solid #FFC72C}
.sr-day h4{margin:0 0 6px;font-size:.78rem;color:#0B1F3A}
.sr-day h4 span{color:#667085;font-weight:400}
.sr-ev{background:#fff;border:1px solid #e5e9f0;border-left:3px solid #0B1F3A;border-radius:6px;padding:6px 8px;margin-bottom:6px;font-size:.78rem;line-height:1.35}
.sr-ev.ticket{border-left-color:#667085}
.sr-ev.move{border-left-color:#F59E0B;background:#FFFBEB}
.sr-ev .t{font-weight:700}
.sr-wait{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.sr-slot{display:inline-block;margin:0 6px 6px 0}
@media (max-width:900px){.sr-board{grid-template-columns:repeat(2,1fr)}.sr-diary{grid-template-columns:repeat(2,1fr)}}
.sr-files{list-style:none;margin:0 0 6px;padding:0}
.sr-files li{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:7px 0;border-top:1px solid #eef1f5;font-size:.9rem}
.sr-files li:first-child{border-top:0}
.sr-files li a{font-weight:600;display:inline-flex;gap:6px;align-items:center}
.sr-files li .muted{font-size:.78rem;flex:1}
.qt-lines input,.qt-lines select{width:100%;min-width:0;padding:6px 8px;font-size:.86rem}
.qt-lines td{vertical-align:middle}

/* ── People & HR ── */
.hr-cal{border-collapse:separate;border-spacing:0;width:100%;font-size:.76rem;table-layout:fixed}
.hr-cal th,.hr-cal td{padding:0;text-align:center;border-bottom:1px solid #eef1f5;height:30px}
.hr-cal th{font-weight:600;color:#667085;font-size:.7rem}
.hr-cal th.we,.hr-cal td.we{background:#f4f6f9;color:#9aa3b2}
.hr-cal th.bh,.hr-cal td.bh{background:#FFFBEB}
.hr-cal th.today{color:#0B1F3A;font-weight:800;box-shadow:inset 0 -3px 0 #FFC72C}
.hr-cal td.name,.hr-cal th.name{text-align:left;padding:0 10px;width:170px;font-size:.84rem;font-weight:600;color:#0B1F3A;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hr-cal td.name .muted{display:block;font-weight:400;font-size:.7rem}
.hr-cal td .ev{display:block;height:22px;line-height:22px;margin:4px 1px;border-radius:4px;color:#fff;font-size:.64rem;font-weight:700;overflow:hidden}
.hr-cal td .ev.pending{background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.35) 0 4px,transparent 4px 8px)}
.hr-cal td .ev.am{clip-path:inset(0 50% 0 0)} .hr-cal td .ev.pm{clip-path:inset(0 0 0 50%)}
.hr-cal td.cover{font-size:.7rem} .hr-cal td.cover .ok{color:#0A5A35} .hr-cal td.cover .gap{background:#FFF1F3;color:#7C1020;font-weight:800;display:block;height:100%;line-height:30px}
.hr-cal tr.fn td.name{font-weight:500;color:#667085}
.hr-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:.78rem;color:#667085;margin:10px 0 0}
.hr-legend i{display:inline-block;width:14px;height:10px;border-radius:3px;margin-right:4px;vertical-align:middle}
.hr-doc{border:1px solid #e2e8f0;border-radius:8px;padding:22px;font-size:.92rem;line-height:1.6;max-height:720px;overflow:auto}
.hr-doc h2{font-size:1.25rem;margin:0 0 10px} .hr-doc h3{font-size:1rem;margin:18px 0 6px} .hr-doc h4{font-size:.95rem;margin:14px 0 4px}
.hr-cal td .rule{display:block;height:22px;line-height:22px;margin:4px 1px;border-radius:4px;background:#EFF6FF;color:#0A3A73;font-size:.6rem;font-weight:700;border:1px solid #C3DBFB}
.lcd-page{text-decoration:none;color:inherit}
.lcd-page code{cursor:pointer;transition:background .12s,color .12s}
.lcd-page:hover code{background:#0B1F3A;color:#fff}
.lcd-page:hover code::after{content:' 97';font-size:.9em}
.lcd-trail .lcd-page{min-width:0;overflow:hidden}
