/* ============================================================
   Fee Management System — shared design system
   ============================================================ */

:root{
  --navy:#0f2a4a;
  --navy-dark:#0a1d33;
  --blue:#2563eb;
  --blue-dark:#1d4ed8;
  --green:#15803d;
  --green-bg:#e7f7ec;
  --red:#b91c1c;
  --red-bg:#fdecec;
  --amber:#92400e;
  --amber-bg:#fef3e0;
  --ink:#1a2332;
  --muted:#64748b;
  --line:#e2e8f0;
  --bg:#f4f6f9;
  --card:#ffffff;
  --radius:10px;
  --shadow:0 1px 2px rgba(15,42,74,.06), 0 1px 8px rgba(15,42,74,.05);
  --font: "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--font);
  background:var(--bg);
  color:var(--ink);
  line-height:1.45;
}
.page{max-width:1250px;margin:0 auto;padding:0 1.25rem 2.5rem}
a{color:var(--blue)}
h1,h2,h3{font-weight:650;letter-spacing:-.01em}
.muted{color:var(--muted)}

/* ---------- Topbar ---------- */
.topbar{
  display:flex;align-items:center;gap:1rem;flex-wrap:wrap;
  background:linear-gradient(180deg,var(--navy),var(--navy-dark));
  color:#fff;padding:.65rem 1.25rem;
  box-shadow:var(--shadow);
  margin-bottom:1.5rem;
}
.topbar-brand{display:flex;align-items:center;gap:.6rem;margin-right:.5rem}
.topbar-logo{width:34px;height:34px;border-radius:7px;object-fit:cover;background:#fff}
.topbar-logo-fallback{display:inline-flex;align-items:center;justify-content:center;font-size:1.2rem;background:rgba(255,255,255,.12)}
.topbar-titles{display:flex;flex-direction:column;line-height:1.2}
.topbar-app{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:#9db4d1}
.topbar-school{font-size:.95rem;font-weight:650}
.topbar-nav{display:flex;gap:.15rem;flex-wrap:wrap;flex:1}
.topbar-nav a{color:#cfe0f5;text-decoration:none;font-size:.85rem;padding:.45rem .7rem;border-radius:7px}
.topbar-nav a:hover{background:rgba(255,255,255,.08);color:#fff}
.topbar-nav a.active{background:rgba(255,255,255,.16);color:#fff}
.topbar-user{display:flex;align-items:center;gap:.5rem;font-size:.82rem;color:#dbe6f4}
.role-pill{background:rgba(255,255,255,.14);padding:2px 9px;border-radius:20px;font-size:.7rem;letter-spacing:.03em}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.4rem;
  padding:8px 14px;border:0;border-radius:7px;
  background:var(--blue);color:#fff;font-size:.85rem;font-weight:550;
  cursor:pointer;text-decoration:none;transition:background .12s ease;
}
.btn:hover{background:var(--blue-dark)}
.btn-secondary{background:#5b6577}
.btn-secondary:hover{background:#454e5e}
.btn-ghost{background:rgba(255,255,255,.12);color:#fff}
.btn-ghost:hover{background:rgba(255,255,255,.22)}
.btn-outline{background:#fff;color:var(--blue);border:1px solid var(--line)}
.btn-outline:hover{border-color:var(--blue)}
.btn-danger{background:var(--red)}
.btn-danger:hover{background:#8f1414}
.btn-sm{padding:5px 10px;font-size:.78rem}

/* ---------- Cards / panels ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem;box-shadow:var(--shadow)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow)}
.stat .stat-value{font-size:1.5rem;font-weight:700;color:var(--navy)}
.stat .stat-label{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}

/* ---------- Forms ---------- */
.filters,.field-group{border:1px solid var(--line);border-radius:var(--radius);padding:1rem;background:var(--card);box-shadow:var(--shadow)}
.field label{display:block;font-size:.76rem;color:var(--muted);margin-bottom:.25rem;font-weight:600}
.field input,.field select,.field textarea{
  width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:7px;
  font-size:.88rem;font-family:inherit;background:#fff;color:var(--ink);
}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid #bfd4f7;border-color:var(--blue)}
.actions{display:flex;gap:.6rem;flex-wrap:wrap;margin:.9rem 0}

/* ---------- Tables ---------- */
table{border-collapse:collapse;width:100%;font-size:.85rem}
.table-wrap{overflow:auto;max-height:68vh;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
th,td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
th{background:#f1f5fb;color:var(--navy);font-weight:650;font-size:.78rem;text-transform:uppercase;letter-spacing:.02em}
/* Phase 4: only real column headings (thead) stick to the top of a scrolling
   table, and only on screen. Previously EVERY <th> was sticky — including
   TOTAL rows inside tbody — and on printouts the header was drawn wherever it
   had been stuck on screen, i.e. in the middle of the data rows. */
@media screen{ thead th{position:sticky;top:0;z-index:2} }
tbody th,tfoot th{position:static}
tr.total-row td{font-weight:700;background:#f1f5fb;border-top:2px solid var(--navy)}
tbody tr:hover{background:#f8fafc}

/* ---------- Badges ---------- */
.badge{display:inline-block;font-size:.7rem;padding:2px 9px;border-radius:20px;font-weight:600}
.badge.built,.badge-ok{background:var(--green-bg);color:var(--green)}
.badge.planned,.badge-muted{background:#eef1f5;color:var(--muted)}
.badge-warn{background:var(--amber-bg);color:var(--amber)}
.badge-danger{background:var(--red-bg);color:var(--red)}

/* ---------- Flash messages ---------- */
.flash{padding:.7rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.88rem}
.flash-success{background:var(--green-bg);color:var(--green)}
.flash-error{background:var(--red-bg);color:var(--red)}

/* ---------- Letterhead (report header) ---------- */
.letterhead{
  display:flex;align-items:flex-start;gap:.9rem;
  border-bottom:2px solid var(--navy);
  padding-bottom:.8rem;margin-bottom:1.1rem;
}
.letterhead-logo{width:58px;height:58px;object-fit:contain;border-radius:6px}
.letterhead-text{flex:1}
.letterhead-name{font-size:1.15rem;font-weight:750;color:var(--navy);letter-spacing:-.01em}
.letterhead-line{font-size:.8rem;color:var(--muted)}
.letterhead-meta{text-align:right;font-size:.78rem;color:var(--muted)}
.letterhead-report-title{font-size:1rem;font-weight:700;color:var(--ink)}
.letterhead-report-sub{color:var(--muted)}

/* ---------- Print ---------- */
@media print{
  .no-print,.topbar-nav,.topbar-user,.sa-banner{display:none!important}
  /* Column headings print once at the top of EVERY page, never between rows. */
  thead{display:table-header-group}
  tfoot{display:table-row-group}
  th,thead th{position:static!important;top:auto!important}
  tr,td,th{page-break-inside:avoid;break-inside:avoid}
  table{page-break-inside:auto}
  th{background:#e8edf5!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body{background:#fff}
  .page{max-width:none;padding:0;margin:0}
  .topbar{box-shadow:none;background:#fff!important;color:#000}
  .table-wrap{max-height:none;overflow:visible;border:0}
  .card,.panel{box-shadow:none;border:1px solid #ccc}
}

/* ---------- Phase 4 additions ---------- */
.box{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem;margin:0 0 1.2rem;box-shadow:var(--shadow)}
.box h2{margin:0 0 .6rem;font-size:1.05rem}
.alert{padding:.7rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.88rem;background:#eef2f7;border:1px solid var(--line)}
.alert-success,.alert.alert-success{background:var(--green-bg);color:var(--green);border-color:#bfe5cb;padding:.7rem 1rem;border-radius:8px}
.alert-error,.alert.alert-error{background:var(--red-bg);color:var(--red);border-color:#f3c5c5;padding:.7rem 1rem;border-radius:8px}
.alert-warning,.alert.alert-warning{background:var(--amber-bg);color:var(--amber);border-color:#f2d7a8}
.sa-banner{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;
  background:var(--amber-bg);color:var(--amber);border:1px solid #f2d7a8;border-radius:8px;
  padding:.55rem .9rem;margin:-0.9rem 1.25rem 1.2rem;font-size:.85rem}
.sa-banner a{color:var(--amber);font-weight:600}

/* =====================================================================
   Navigation + dashboard design (desktop and mobile)
   ===================================================================== */
.topbar{position:sticky;top:0;z-index:60;display:flex;align-items:center;gap:1rem;flex-wrap:nowrap;padding:.6rem 1.2rem;margin-bottom:1.4rem;
  background:linear-gradient(120deg,#0b1f3a 0%,#123058 55%,#1a4580 100%);box-shadow:0 6px 18px rgba(10,29,51,.28);border-bottom:1px solid rgba(255,255,255,.08)}
.topbar-brand{display:flex;align-items:center;gap:.65rem;min-width:0;flex:none;max-width:34%}
.topbar-logo{width:38px;height:38px;border-radius:10px;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.topbar-titles{display:flex;flex-direction:column;min-width:0;line-height:1.15}
.topbar-app{font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:#93b4e0;font-weight:700}
.topbar-school{font-size:.95rem;font-weight:800;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* most-used links, always visible on wide screens */
.topbar-quick{display:flex;gap:.4rem;flex:1;justify-content:center;flex-wrap:nowrap;min-width:0;overflow:hidden}
.topbar-quick a{display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap;color:#e6eefb;text-decoration:none;font-weight:700;font-size:.82rem;
  padding:.45rem .8rem;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 2px 5px rgba(0,0,0,.25);transition:transform .12s,background .12s,box-shadow .12s}
.topbar-quick a:hover{background:rgba(255,255,255,.18);transform:translateY(-1px);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 5px 12px rgba(0,0,0,.3);color:#fff}
.topbar-quick a.active{background:#fff;color:#0f2a4a;border-color:#fff}
.topbar-right{display:flex;align-items:center;gap:.6rem;flex:none;margin-left:auto}
.tu-chip{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:#fff;padding:.25rem .7rem .25rem .25rem;border-radius:999px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12)}
.tu-chip:hover{background:rgba(255,255,255,.14)}
.tu-av{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;color:#0f2a4a;background:linear-gradient(135deg,#fde68a,#f59e0b)}
.tu-txt{display:flex;flex-direction:column;line-height:1.1}.tu-n{font-size:.78rem;font-weight:700;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tu-r{font-size:.62rem;letter-spacing:.08em;color:#93b4e0;font-weight:700}
.topbar-toggle{display:inline-flex;align-items:center;gap:.45rem;background:linear-gradient(180deg,#2f6fd6,#1d4fae);color:#fff;border:1px solid rgba(255,255,255,.25);
  border-radius:11px;padding:.5rem .85rem;font:inherit;font-weight:800;font-size:.85rem;cursor:pointer;box-shadow:0 3px 10px rgba(29,79,174,.45),inset 0 1px 0 rgba(255,255,255,.25);transition:transform .12s}
.topbar-toggle:hover{transform:translateY(-1px)}
.topbar-toggle .tt-ico{display:inline-flex;flex-direction:column;gap:3px}.topbar-toggle .tt-ico i{display:block;width:16px;height:2px;background:#fff;border-radius:2px;transition:transform .15s,opacity .15s}
.topbar.menu-open .topbar-toggle .tt-ico i:nth-child(1){transform:translateY(5px) rotate(45deg)}
.topbar.menu-open .topbar-toggle .tt-ico i:nth-child(2){opacity:0}
.topbar.menu-open .topbar-toggle .tt-ico i:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
/* the grouped menu panel (dropdown on PC, full-width sheet on phones) */
.topbar-menu{display:none;position:absolute;left:0;right:0;top:100%;padding:0 1rem}
.topbar.menu-open .topbar-menu{display:block;animation:tmIn .16s ease-out}
@keyframes tmIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.tm-inner{max-width:1180px;margin:0 auto;background:#fff;color:var(--ink,#1a2332);border-radius:0 0 18px 18px;box-shadow:0 22px 50px rgba(10,29,51,.35);
  padding:1.1rem 1.2rem 1rem;max-height:calc(100vh - 80px);overflow-y:auto;border:1px solid #dbe4f0;border-top:none}
.tm-groups{display:grid;grid-template-columns:repeat(4,1fr);gap:0 1.2rem;align-items:start}
.tm-group{margin-bottom:1rem}
.tm-title{font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#64748b;margin:0 0 .45rem .2rem}
.tm-inner .topbar-nav{display:flex;flex-direction:column;gap:.35rem}
.tm-inner .topbar-nav a{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:#0f2a4a;font-weight:700;font-size:.88rem;padding:.5rem .6rem;border-radius:11px;
  background:#f7f9fd;border:1px solid #e3eaf4;box-shadow:0 1px 2px rgba(15,42,74,.06);transition:transform .12s,box-shadow .12s,background .12s}
.tm-inner .topbar-nav a:hover{background:#eef4ff;transform:translateY(-1px);box-shadow:0 5px 12px rgba(15,42,74,.12);border-color:#c9d9f2}
.tm-inner .topbar-nav a.active{background:linear-gradient(135deg,#123058,#1d4fae);color:#fff;border-color:transparent;box-shadow:0 5px 14px rgba(29,79,174,.35)}
.tm-inner .topbar-nav .ni{width:30px;height:30px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:9px;background:#fff;font-size:1rem;box-shadow:0 1px 3px rgba(15,42,74,.15)}
.tm-inner .topbar-nav a.active .ni{background:rgba(255,255,255,.18);box-shadow:none}
.tm-inner .topbar-user{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem;margin-top:1rem;padding-top:.8rem;border-top:1px solid #e3eaf4;color:#0f2a4a}
.tm-inner .tu-name{color:#0f2a4a;text-decoration:none;font-weight:700;margin-right:auto}
.tm-inner .role-pill{background:#eef2f7;color:#0f2a4a}
.tm-inner .btn-ghost{background:#0f2a4a;color:#fff;border:none;box-shadow:0 3px 8px rgba(15,42,74,.25)}
.tm-inner .btn-ghost:hover{background:#1d4fae}

/* Dashboard */
.dash-hero{position:relative;overflow:hidden;border-radius:18px;padding:1.3rem 1.5rem;margin-bottom:1.2rem;color:#fff;
  background:linear-gradient(120deg,#123058 0%,#1d4fae 60%,#2f86e0 100%);box-shadow:0 10px 26px rgba(29,79,174,.28)}
.dash-hero:after{content:'';position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:rgba(255,255,255,.08)}
.dash-hero h1{margin:0;font-size:1.45rem;color:#fff}.dash-hero p{margin:.3rem 0 0;color:#dbe8fb;font-size:.92rem}
.dash-hero .chips{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.8rem}.dash-hero .chips span{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:.25rem .7rem;font-size:.78rem;font-weight:700}
.dash-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:1.6rem}
.dash-stats .stat{position:relative;overflow:hidden;display:flex;gap:.85rem;align-items:center;border:1px solid #e3eaf4;border-radius:16px;padding:1rem 1.1rem;
  background:linear-gradient(180deg,#fff,#fafcff);box-shadow:0 2px 4px rgba(15,42,74,.05),0 8px 20px rgba(15,42,74,.07)}
.dash-stats .stat:before{content:'';position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--acc,#2563eb)}
.dash-stats .stat .si{flex:none;width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;background:var(--accbg,#e0ecff);box-shadow:inset 0 1px 0 #fff}
.dash-stats .stat .stat-label{font-size:.72rem;font-weight:700;letter-spacing:.06em}
.dash-stats .stat .stat-value{font-size:1.4rem;line-height:1.15;word-break:break-word}
.qa-section{margin-bottom:1.4rem}
.qa-section h2{display:flex;align-items:center;gap:.5rem;font-size:1.05rem;margin:0 0 .7rem;color:#0f2a4a}
.qa-section h2:after{content:'';flex:1;height:1px;background:linear-gradient(90deg,#d5deeb,transparent)}
.qa-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.9rem}
.qa-card{display:flex;gap:.85rem;align-items:center;padding:.95rem 1rem;text-decoration:none;color:inherit;background:#fff;border:1px solid #e3eaf4;border-radius:16px;
  box-shadow:0 1px 2px rgba(15,42,74,.05),0 6px 16px rgba(15,42,74,.07);transition:transform .14s,box-shadow .14s,border-color .14s}
.qa-card:hover,.qa-card:focus{transform:translateY(-3px);box-shadow:0 12px 26px rgba(15,42,74,.16);border-color:#bcd0f0}
.qa-card .qi{flex:none;width:50px;height:50px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.45rem;
  background:linear-gradient(145deg,#f0f5ff,#dce8fb);box-shadow:inset 0 1px 0 #fff,0 3px 8px rgba(29,79,174,.15)}
.qa-card h3{margin:0 0 .2rem;font-size:.98rem;color:#0f2a4a}
.qa-card p{margin:0;font-size:.82rem;color:var(--muted);line-height:1.35}
.qa-card .go{margin-left:auto;color:#9fb3cf;font-size:1.3rem;transition:transform .14s}.qa-card:hover .go{transform:translateX(3px);color:#1d4fae}
.qa-card.planned{opacity:.55;pointer-events:none}

/* Medium screens: fewer quick links */
@media screen and (max-width:1250px){ .topbar-quick a:nth-child(n+5){display:none} .tu-txt{display:none} }
@media screen and (max-width:1020px){ .topbar-quick a:nth-child(n+3){display:none} }
/* Phones and small tablets */
@media screen and (max-width:860px){
  .topbar{padding:.55rem .75rem;gap:.5rem;margin-bottom:1rem}
  .topbar-brand{max-width:none;flex:1}
  .topbar-logo{width:34px;height:34px}
  .topbar-school{font-size:.88rem}
  .topbar-quick,.tu-chip{display:none}
  .topbar-menu{padding:0}
  .tm-inner{border-radius:0 0 16px 16px;max-height:calc(100vh - 60px);padding:.9rem .8rem}
  .tm-groups{grid-template-columns:1fr}
  .tm-group{margin-bottom:.9rem}
  .tm-inner .topbar-nav{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}
  .tm-inner .topbar-nav a{flex-direction:column;justify-content:center;text-align:center;gap:.35rem;min-height:74px;padding:.65rem .4rem;font-size:.8rem;border-radius:14px}
  .tm-inner .topbar-nav .ni{width:38px;height:38px;font-size:1.3rem;border-radius:12px}
  .tm-inner .topbar-user{justify-content:center}.tm-inner .tu-name{width:100%;text-align:center;margin-right:0}
  .tm-inner .topbar-user .btn{flex:1;min-width:130px;justify-content:center;padding:.6rem}
  .sa-banner{font-size:.8rem;flex-wrap:wrap;gap:.3rem}
  .page{padding-left:.8rem;padding-right:.8rem}
  .dash-hero{padding:1rem 1.1rem;border-radius:16px}.dash-hero h1{font-size:1.2rem}
  .dash-stats{grid-template-columns:repeat(2,1fr);gap:.6rem}
  .dash-stats .stat{padding:.75rem .7rem;gap:.55rem;border-radius:14px}
  .dash-stats .stat .si{width:36px;height:36px;font-size:1.1rem;border-radius:11px}
  .dash-stats .stat .stat-label{font-size:.62rem}
  .dash-stats .stat .stat-value{font-size:1rem}
  .qa-grid{grid-template-columns:repeat(2,1fr);gap:.6rem}
  .qa-card{flex-direction:column;align-items:center;text-align:center;padding:.85rem .55rem;gap:.45rem}
  .qa-card .qi{width:48px;height:48px}
  .qa-card h3{font-size:.86rem}
  .qa-card p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.73rem}
  .qa-card .go{display:none}
}
@media screen and (min-width:560px) and (max-width:860px){ .tm-inner .topbar-nav{grid-template-columns:repeat(3,1fr)} .qa-grid{grid-template-columns:repeat(3,1fr)} }
@media screen and (max-width:360px){ .dash-stats .stat .si{display:none} }

/* Compact desktop (phones keep their own layout above) */
@media screen and (min-width:861px){
  .topbar{padding:.42rem 1.1rem;margin-bottom:.8rem}
  .topbar-logo{width:32px;height:32px;border-radius:8px}
  .topbar-school{font-size:.88rem}
  .topbar-quick a{padding:.32rem .65rem;font-size:.78rem}
  .tu-av{width:26px;height:26px;font-size:.8rem}
  .topbar-toggle{padding:.38rem .7rem;font-size:.8rem}
  .tm-inner{padding:.8rem 1rem .7rem}
  .tm-group{margin-bottom:.6rem}
  .tm-inner .topbar-nav{gap:.25rem}
  .tm-inner .topbar-nav a{padding:.32rem .5rem;font-size:.82rem;border-radius:9px}
  .tm-inner .topbar-nav .ni{width:24px;height:24px;font-size:.85rem;border-radius:7px}
  .tm-inner .topbar-user{margin-top:.5rem;padding-top:.55rem}
  .sa-banner{padding:.4rem .9rem;font-size:.82rem;margin-bottom:.7rem}
  .page{padding-top:0}
  .dash-hero{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem 1rem;padding:.65rem 1.1rem;border-radius:12px;margin-bottom:.8rem;box-shadow:0 4px 12px rgba(29,79,174,.22)}
  .dash-hero:after{width:120px;height:120px;right:-40px;top:-50px}
  .dash-hero h1{font-size:1.05rem}
  .dash-hero p{margin:0;font-size:.82rem;flex:1;min-width:200px}
  .dash-hero .chips{margin:0;gap:.35rem}.dash-hero .chips span{padding:.15rem .55rem;font-size:.72rem}
  .dash-stats{gap:.7rem;margin-bottom:.9rem}
  .dash-stats .stat{padding:.55rem .8rem;gap:.6rem;border-radius:12px}
  .dash-stats .stat:before{width:4px}
  .dash-stats .stat .si{width:34px;height:34px;font-size:1.05rem;border-radius:10px}
  .dash-stats .stat .stat-label{font-size:.64rem}
  .dash-stats .stat .stat-value{font-size:1.12rem}
  .qa-section{margin-bottom:.7rem}
  .qa-section h2{font-size:.85rem;margin:0 0 .4rem;letter-spacing:.01em}
  .qa-grid{grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:.5rem}
  .qa-card{padding:.5rem .65rem;gap:.6rem;border-radius:11px;box-shadow:0 1px 2px rgba(15,42,74,.05),0 3px 8px rgba(15,42,74,.06)}
  .qa-card:hover,.qa-card:focus{transform:translateY(-2px);box-shadow:0 8px 18px rgba(15,42,74,.14)}
  .qa-card .qi{width:34px;height:34px;font-size:1.05rem;border-radius:10px}
  .qa-card h3{font-size:.84rem;margin:0 0 .05rem}
  .qa-card p{font-size:.72rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
  .qa-card .go{font-size:1rem}
  .qa-card > span:nth-child(2){min-width:0}
}
