/* WWLC CRM — R3 design system. Dense, calm, thumb-friendly. One file. */
:root{
  --bg:#f3f5f8; --panel:#fff; --ink:#18212b; --muted:#66748a; --line:#e2e7ee;
  --brand:#1f5eff; --brand-ink:#fff; --brand-soft:#eaf0ff;
  --green:#0f9d58; --green-soft:#e6f6ee; --amber:#b7791f; --amber-soft:#fdf3e0;
  --red:#d23b3b; --red-soft:#fdeaea; --blue:#2670c4; --blue-soft:#e7f0fb;
  --grey:#5f6b7a; --grey-soft:#eef1f5;
  --radius:10px; --shadow:0 1px 2px rgba(16,24,40,.05),0 1px 3px rgba(16,24,40,.07);
  --side:200px; --top:50px; --bottom:58px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font:14px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
h1{font-size:19px;margin:0;line-height:1.2}
h2{font-size:14px;margin:0 0 8px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);font-weight:700}
h3{font-size:14px;margin:0 0 6px}
.sub{color:var(--muted);font-size:12.5px;margin:2px 0 0}
.muted{color:var(--muted)}
.small{font-size:12px}

/* ---------- shell ---------- */
.shell{display:flex;min-height:100vh}
.side{width:var(--side);flex:0 0 var(--side);background:#101a26;color:#c8d2de;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.side .logo{padding:14px 14px;font-weight:700;font-size:14px;color:#fff;border-bottom:1px solid #223142;line-height:1.25}
.side nav{padding:8px;display:flex;flex-direction:column;gap:1px;overflow-y:auto}
.side nav a{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:7px;color:#c8d2de;font-weight:500;font-size:13.5px}
.side nav a:hover{background:#1b2938;text-decoration:none;color:#fff}
.side nav a.on{background:var(--brand);color:#fff}
.side nav a .ic{width:18px;text-align:center;font-size:15px;opacity:.9}
.side .foot{margin-top:auto;padding:10px 14px;font-size:11.5px;color:#7f8ea0;border-top:1px solid #223142}
.side .foot b{display:block;color:#c8d2de;font-size:12.5px}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{display:none}
.wrap{padding:16px 18px 24px;max-width:1240px;width:100%}
.pagehead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.pagehead .grow{flex:1;min-width:0}
.pagehead .actions{margin-left:auto}
.bottomnav,.drawer,.scrim,.menubtn{display:none}

/* ---------- cards (stats) ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0 0 12px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:10px 12px;min-width:0}
.card .k{font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card .v{font-size:19px;font-weight:700;margin-top:2px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card .d{font-size:11.5px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card.accent{border-left:3px solid var(--brand)}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px;margin-bottom:12px;min-width:0}
.panel > h2:first-child{margin-top:0}
.panel.flush{padding:0;overflow:hidden;overflow:clip}
.panel.flush > h2{padding:12px 14px 0}

/* ---------- layout grids ---------- */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.grid2.wide{grid-template-columns:1.5fr 1fr}
.grid2.narrow{grid-template-columns:1fr 1.5fr}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-items:start}
.grid2 > .panel,.grid3 > .panel{margin-bottom:0}
.stack{display:flex;flex-direction:column;gap:12px}

/* ---------- key/value ---------- */
.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 12px;font-size:13.5px;margin:0}
.kv dt{color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;padding-top:2px;white-space:nowrap}
.kv dd{margin:0;min-width:0;overflow-wrap:anywhere}
.kv.cols2{grid-template-columns:max-content 1fr max-content 1fr}

/* ---------- tabs ---------- */
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:12px;overflow-x:auto;scrollbar-width:none;position:sticky;top:0;background:var(--bg);z-index:5;padding-top:2px}
.tabs::-webkit-scrollbar{display:none}
.tabs button{appearance:none;background:none;border:0;border-bottom:2px solid transparent;padding:9px 12px;font:inherit;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap;margin-bottom:-1px}
.tabs button.on{color:var(--brand);border-bottom-color:var(--brand)}
.tabs button .n{display:inline-block;margin-left:6px;background:var(--grey-soft);color:var(--grey);border-radius:99px;padding:0 7px;font-size:11px;line-height:18px}
[data-panel]{display:none}
[data-panel].on{display:block}

/* ---------- tables ---------- */
.tblwrap{overflow-x:auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-overflow-scrolling:touch}
.panel > .tblwrap,.panel.flush > .tblwrap{border:0;box-shadow:none;border-radius:0}
table{border-collapse:collapse;width:100%;font-size:13.5px}
th{background:#f8fafc;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);padding:8px 12px;border-bottom:1px solid var(--line);white-space:nowrap;position:sticky;top:0;z-index:1}
td{padding:8px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
tr:last-child td{border-bottom:0}
tr.rowlink:hover td{background:#f6f9ff;cursor:pointer}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
tr.total td{font-weight:700;background:#f8fafc}
.empty{padding:26px 14px;text-align:center;color:var(--muted);font-size:13.5px}
.empty .btn{margin-top:8px}

/* ---------- badges ---------- */
.badge{display:inline-block;padding:2px 9px;border-radius:99px;font-size:11.5px;font-weight:600;white-space:nowrap;line-height:1.5}
.b-lead{background:var(--grey-soft);color:var(--grey)}
.b-offer_sent{background:var(--blue-soft);color:var(--blue)}
.b-deposit_paid{background:var(--amber-soft);color:var(--amber)}
.b-enrolled{background:var(--green-soft);color:var(--green)}
.b-cancelled{background:var(--red-soft);color:var(--red)}
.b-paid{background:var(--green-soft);color:var(--green)}
.b-partial{background:var(--amber-soft);color:var(--amber)}
.b-pending{background:var(--grey-soft);color:var(--grey)}
.b-none{background:var(--grey-soft);color:var(--grey)}
.b-direct,.b-own{background:var(--brand-soft);color:var(--brand)}
.b-institute{background:var(--amber-soft);color:var(--amber)}
.b-indirect,.b-agent{background:#f3e8ff;color:#7c3aed}
.b-consultant{background:var(--brand-soft);color:var(--brand)}
.b-passport{background:var(--blue-soft);color:var(--blue)}
.b-payment_proof{background:var(--green-soft);color:var(--green)}
.b-other{background:var(--grey-soft);color:var(--grey)}
tr.tot-row td,td.tot-row{font-weight:700;background:#f8fafc}
.sub-row td,td.indent{padding-left:26px;color:var(--muted)}

/* ---------- forms ---------- */
form.stack{display:flex;flex-direction:column;gap:10px;max-width:none}
.field{min-width:0}
.field label{display:block;font-size:12.5px;font-weight:600;margin-bottom:4px}
.field label .req{color:var(--red)}
.field input[type=text],.field input[type=email],.field input[type=password],.field input[type=number],.field input[type=date],.field input[type=month],.field input[type=tel],.field select,.field textarea{
  width:100%;padding:8px 10px;border:1px solid #cdd6e0;border-radius:8px;font:inherit;background:#fff;min-height:38px}
.field textarea{min-height:76px}
.field input:disabled,.field select:disabled{background:#f3f5f8;color:#7b8794}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--brand-soft);border-color:var(--brand)}
.field .hint{font-size:11.5px;color:var(--muted);margin-top:3px}
.field.check label{display:flex;align-items:center;gap:8px;font-weight:500;min-height:38px;margin:0}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.row4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.form-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
fieldset.group{border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px 12px;margin:0;min-width:0;background:#fff}
fieldset.group legend{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;padding:0 6px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border-radius:8px;border:1px solid transparent;font:inherit;font-weight:600;cursor:pointer;background:var(--brand);color:#fff;min-height:38px;line-height:1.2;white-space:nowrap}
.btn:hover{filter:brightness(1.07);text-decoration:none}
.btn.ghost{background:#fff;color:var(--ink);border-color:#cdd6e0}
.btn.danger{background:var(--red)}
.btn.soft{background:var(--brand-soft);color:var(--brand)}
.btn.sm{padding:5px 10px;font-size:12.5px;min-height:30px}
.btn.block{width:100%}
.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.savebar{position:sticky;bottom:0;background:rgba(243,245,248,.92);backdrop-filter:blur(6px);padding:10px 0;margin-top:8px;display:flex;gap:8px;align-items:center;border-top:1px solid var(--line);z-index:4}
.savebar .grow{flex:1}
.msg{padding:9px 12px;border-radius:8px;font-size:13.5px;margin-bottom:10px}
.msg.ok{background:var(--green-soft);color:var(--green)}
.msg.err{background:var(--red-soft);color:var(--red)}
details.dis{display:inline-block;position:relative}
details.dis summary{list-style:none;cursor:pointer}
details.dis summary::-webkit-details-marker{display:none}
details.dis .pop{position:absolute;z-index:6;margin-top:6px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 24px rgba(16,24,40,.14);padding:12px;min-width:260px;max-width:92vw;right:0}

/* ---------- toolbar (list pages) ---------- */
.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
.toolbar input[type=text],.toolbar select{padding:8px 10px;border:1px solid #cdd6e0;border-radius:8px;font:inherit;background:#fff;min-height:38px}
.toolbar .grow{flex:1;min-width:140px}

/* ---------- progress ---------- */
.prog{background:var(--grey-soft);border-radius:99px;height:8px;overflow:hidden;min-width:60px}
.prog>i{display:block;height:100%;background:var(--green);border-radius:99px}
.prog.over>i{background:var(--brand)}
.prog.big{height:14px}
.progline{display:flex;align-items:center;gap:10px}
.progline .prog{flex:1}
.progline .pct{font-size:12px;color:var(--muted);width:40px;text-align:right;font-variant-numeric:tabular-nums}

/* ---------- login ---------- */
.login-bg{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#101a26,#1c3350);padding:16px}
.login-box{background:#fff;border-radius:14px;padding:28px 26px;width:360px;max-width:100%;box-shadow:0 20px 50px rgba(0,0,0,.35)}
.login-box h1{font-size:18px;margin:0 0 2px}
.login-box .sub{margin-bottom:16px}
.login-box form.stack{gap:12px}

/* ---------- payment tiers / fees ---------- */
.tiers{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tier{border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;background:#fff}
.tier .t{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
.tier .amt{font-size:17px;font-weight:700;margin:3px 0}
.tier .sub{margin:0}
.fees{background:#f8fafc;border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px}
.fees .tot{display:flex;justify-content:space-between;font-weight:700;border-top:1px solid var(--line);margin-top:6px;padding-top:6px}
.feelist{display:grid;grid-template-columns:1fr auto;gap:3px 12px;font-size:13.5px;margin:0}
.feelist dt{color:var(--muted)}
.feelist dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.feelist .tot{grid-column:1/-1;display:flex;justify-content:space-between;font-weight:700;border-top:1px solid var(--line);margin-top:4px;padding-top:6px}

/* ---------- attachments ---------- */
.files{display:flex;flex-wrap:wrap;gap:8px}
.filecard{border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:12.5px;background:#fff;display:flex;gap:8px;align-items:center;max-width:100%}
.filecard a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}

/* ---------- R6: bulk select + sticky action bar ---------- */
td.selcol,th.selcol{width:34px;text-align:center;padding-left:10px;padding-right:6px}
td.selcol input,th.selcol input{width:16px;height:16px;cursor:pointer;margin:0}
.bulkbar{position:sticky;bottom:0;z-index:8;margin:0;padding:10px 14px;border-radius:var(--radius);
  background:#101a26;color:#fff;border-top:1px solid #223142;
  display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.bulkbar[hidden]{display:none!important}
.panel .bulkbar{margin-left:-14px;margin-right:-14px;margin-bottom:-14px;border-radius:0 0 var(--radius) var(--radius)}
.panel.flush .bulkbar{margin:0;border-radius:0 0 var(--radius) var(--radius)}
.bulkbar .cnt{font-weight:700;font-size:13.5px;white-space:nowrap}
.bulkbar .acts{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-left:auto}
.bulkbar select{padding:7px 9px;border-radius:8px;border:1px solid #33465b;background:#1b2938;color:#fff;font:inherit;min-height:34px}
.bulkbar .btn.sm{min-height:34px}
@media (max-width:860px){
  .bulkbar{position:fixed;left:0;right:0;bottom:calc(var(--bottom) + env(safe-area-inset-bottom));margin:0;
    padding:10px 12px;box-shadow:0 -4px 14px rgba(0,0,0,.25)}
  .panel .bulkbar,.panel.flush .bulkbar{margin:0;border-radius:0}
  .bulkbar .acts{width:100%;margin-left:0}
  .bulkbar .acts .btn{flex:1}
  body.has-bulk{padding-bottom:calc(var(--bottom) + 64px + env(safe-area-inset-bottom))}
}

/* ---------- leaderboard ---------- */
.lb .rank{font-weight:800;color:var(--muted);width:34px}
.lb .me td{background:#f6f9ff}
.lb .prog{min-width:80px}

/* ---------- doc cards (student documents) ---------- */
.doccards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.doccard{border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;background:#fff}
.doccard .t{font-weight:700;font-size:13px}
.doccard .no{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;color:var(--muted)}

/* ---------- helpers ---------- */
.hide-sm{}
.only-sm{display:none}
.nowrap{white-space:nowrap}
.right{text-align:right}
.mt0{margin-top:0}.mb0{margin-bottom:0}

/* ================= TABLET ================= */
@media (max-width:1100px){
  .grid3{grid-template-columns:1fr 1fr}
  .kv.cols2{grid-template-columns:max-content 1fr}
  .row4{grid-template-columns:1fr 1fr}
}

/* ================= MOBILE ================= */
@media (max-width:860px){
  :root{--side:0px}
  body{padding-bottom:calc(var(--bottom) + env(safe-area-inset-bottom))}
  .shell{flex-direction:column}
  .side{display:none}
  .topbar{display:flex;position:sticky;top:0;z-index:20;height:var(--top);background:#101a26;color:#fff;align-items:center;gap:10px;padding:0 12px}
  .topbar .brand{font-weight:700;font-size:14px;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .topbar .who{font-size:12px;color:#c8d2de;white-space:nowrap}
  .menubtn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:8px;border:0;background:transparent;color:#fff;font-size:20px;cursor:pointer}
  .drawer{display:block;position:fixed;top:0;bottom:0;left:0;width:min(76vw,300px);background:#101a26;color:#c8d2de;z-index:40;transform:translateX(-104%);transition:transform .22s ease;overflow-y:auto;padding-bottom:20px}
  .drawer.open{transform:none}
  .drawer .logo{padding:16px 14px;font-weight:700;color:#fff;border-bottom:1px solid #223142}
  .drawer nav{padding:8px;display:flex;flex-direction:column;gap:1px}
  .drawer nav a{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:8px;color:#c8d2de;font-weight:500;font-size:15px}
  .drawer nav a.on{background:var(--brand);color:#fff}
  .drawer .foot{padding:14px;font-size:12.5px;color:#7f8ea0;border-top:1px solid #223142;margin-top:8px}
  .drawer .foot a{color:#fff}
  .scrim{display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:30;opacity:0;pointer-events:none;transition:opacity .2s}
  .scrim.open{opacity:1;pointer-events:auto}
  .bottomnav{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;left:0;right:0;bottom:0;height:calc(var(--bottom) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#fff;border-top:1px solid var(--line);z-index:20}
  .bottomnav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:10.5px;font-weight:600;color:var(--muted);text-decoration:none}
  .bottomnav a .ic{font-size:19px;line-height:1}
  .bottomnav a.on{color:var(--brand)}
  .wrap{padding:12px 12px 20px}
  h1{font-size:17px}
  .cards{grid-template-columns:repeat(2,1fr);gap:8px}
  .cards.tight{grid-template-columns:repeat(3,1fr)}
  .cards.tight .card{padding:8px 9px}
  .cards.tight .card .v{font-size:15px}
  .cards.tight .card .d{display:none}
  .card .v{font-size:16px}
  .panel{padding:12px;margin-bottom:10px}
  .grid2,.grid2.wide,.grid2.narrow,.grid3,.form-cols{grid-template-columns:1fr}
  .row3,.row4{grid-template-columns:1fr 1fr}
  .row2{grid-template-columns:1fr 1fr}
  .row2.stack-sm{grid-template-columns:1fr}
  .tiers{grid-template-columns:1fr 1fr}
  .hide-sm{display:none !important}
  .only-sm{display:initial}
  table{font-size:13px}
  th,td{padding:8px 10px}
  .tabs{top:var(--top);margin-left:-12px;margin-right:-12px;padding-left:8px;padding-right:8px}
  .tabs button{padding:10px 11px;font-size:13px}
  .savebar{bottom:calc(var(--bottom) + env(safe-area-inset-bottom));margin-left:-12px;margin-right:-12px;padding:10px 12px}
  .savebar .btn{flex:1}
  .btn{min-height:42px}
  .btn.sm{min-height:32px}
  .pagehead .actions{margin-left:0;width:100%}
  .pagehead .actions .btn{flex:1}
  details.dis{position:static}
  details.dis .pop{left:12px;right:12px;min-width:0}
  .feelist dd .small{display:block;white-space:normal} /* "included in package" notes wrap under the amount */
  .kv{grid-template-columns:1fr;gap:1px 0}
  .kv dt{padding-top:6px}
  .kv.tight{grid-template-columns:max-content 1fr;gap:3px 10px}
  .kv.tight dt{padding-top:2px}
  .doccards{grid-template-columns:1fr 1fr}
}
@media (max-width:400px){
  .row3,.row4{grid-template-columns:1fr}
  .cards.tight{grid-template-columns:repeat(3,1fr)}
}

/* ---------- print documents (legacy .doc-* kept; doc.css supersedes) ---------- */
.doc-body{background:#fff;color:#111;font:14px/1.6 Georgia,"Times New Roman",serif}
.doc{max-width:760px;margin:0 auto;padding:48px 54px}
.printbar{position:sticky;top:0;background:#101a26;padding:10px;text-align:center;display:flex;gap:10px;justify-content:center}
@media print{.printbar{display:none}.doc{padding:0}body{background:#fff}}

/* R13 agent page */
.ag-back{display:inline-block;font-size:12.5px;font-weight:600;margin-bottom:6px}
.ag-head{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap}
.ag-head h1{min-width:0;overflow-wrap:anywhere}
.ag-badges{display:flex;gap:6px;flex-wrap:wrap}
.ag-facts{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 12px}
.ag-fact{display:inline-flex;align-items:center;gap:5px;background:var(--panel);border:1px solid var(--line);border-radius:99px;padding:3px 11px;font-size:12.5px;color:var(--ink);max-width:100%;min-width:0;overflow-wrap:anywhere}
a.ag-fact{color:var(--ink)}
a.ag-fact:hover{border-color:var(--brand);text-decoration:none}
.ag-fact b{font-variant-numeric:tabular-nums}
.ag-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.ag-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;align-items:end}
.ag-grid .ag-span{grid-column:1/-1}
.ag-grid textarea{min-height:0}
.ag-kv dd{min-width:0}
.ag-agr{max-width:860px}
.ag-ptitle{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.ag-ptitle h2{margin:0}
.ag-steps{list-style:none;margin:0;padding:0;counter-reset:none}
.ag-step{position:relative;display:flex;gap:12px;padding:10px 0 12px}
.ag-step + .ag-step{border-top:1px solid var(--line)}
.ag-dot{flex:0 0 26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:700;background:var(--grey-soft);color:var(--grey)}
.ag-step.cur .ag-dot{background:var(--brand);color:#fff}
.ag-step.done .ag-dot{background:var(--green-soft);color:var(--green)}
.ag-step.ready .ag-dot{background:var(--brand-soft);color:var(--brand)}
.ag-sb{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding-top:3px}
.ag-sb > b{font-size:13.5px}
.ag-step:not(.cur):not(.done):not(.ready) .ag-sb > b{color:var(--muted)}
.ag-inl{margin-top:4px}
.ag-no{font-family:ui-monospace,Menlo,Consolas,monospace}
.ag-files{display:flex;flex-direction:column;gap:6px;width:100%;margin:2px 0}
.ag-file{display:flex;align-items:center;gap:6px 10px;flex-wrap:wrap;border:1px solid var(--line);border-radius:8px;padding:5px 6px 5px 10px;font-size:12.5px;background:#fff}
.ag-file a{flex:1 1 160px;min-width:0;overflow-wrap:anywhere;font-weight:600}
.ag-file form{margin-left:auto}
.ag-up{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:4px;width:100%}
.ag-up input[type=file]{flex:0 1 auto;min-width:0;max-width:100%;font-size:12.5px}
.ag-stu td{padding-top:7px;padding-bottom:7px}
.ag-hist{list-style:none;margin:0;padding:0}
.ag-hist li{padding:8px 14px;border-bottom:1px solid var(--line)}
.ag-hist li:last-child{border-bottom:0}
.ag-hl{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ag-hd{margin-top:3px;color:var(--ink);overflow-wrap:anywhere}
/* R14 agent e-sign (agent.php Agreement tab + agents.php list) */
.b-tostamp{background:var(--blue-soft);color:var(--blue)}
.agl-chip.st{background:var(--blue-soft);color:var(--blue)}
.agl-chip.st b{color:var(--blue)}
.ag-btns{display:flex;gap:6px 8px;flex-wrap:wrap;align-items:center}
.ag-btns .ag-inl{margin-top:4px}
.ag-warn{background:var(--amber-soft);color:var(--amber);border-radius:7px;padding:4px 9px;margin:2px 0;font-weight:600;max-width:100%;overflow-wrap:anywhere}
.ag-note{color:var(--amber)}
.ag-link{display:flex;gap:6px;align-items:center;flex-wrap:wrap;width:100%;margin:2px 0}
.ag-link input{flex:1 1 280px;min-width:0;padding:5px 8px;border:1px solid #cdd6e0;border-radius:8px;font:12.5px ui-monospace,Menlo,Consolas,monospace;background:var(--grey-soft);color:var(--ink);min-height:30px}
.ag-wa{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.ag-wa .ag-inl{margin-top:2px}
.btn.ag-wabtn{background:#1fa855}
.ag-sig{display:inline-block;border:1px solid var(--line);border-radius:8px;background:#fff;padding:4px 8px;margin:2px 0}
.ag-sig img{display:block;max-width:220px;max-height:80px;width:auto;height:auto}
.ag-final{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.ag-ack{display:flex;align-items:center;gap:6px;font-weight:600}
.ag-legacy{border-top:1px solid var(--line);padding-top:8px;margin-top:2px}
@media (max-width:860px){
  .ag-cols{grid-template-columns:1fr;gap:10px}
  .ag-facts{margin:6px 0 10px}
  .ag-hist li{padding:8px 12px}
  .ag-kv.kv{grid-template-columns:max-content 1fr;gap:4px 10px}
  .ag-kv.kv dt{padding-top:2px;white-space:normal;max-width:110px}
  .ag-link input{flex-basis:100%}
  .ag-btns .btn.sm,.ag-link .btn.sm,.ag-wa .btn.sm,.ag-inl .btn.sm{min-height:36px}
}
@media (max-width:600px){
  /* students table: name + status on line 1, consultant · added · paid under it — no sideways scroll */
  .ag-stu,.ag-stu tbody{display:block}
  .ag-stu tr:first-child{display:none}
  .ag-stu tr{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;padding:7px 12px;border-bottom:1px solid var(--line)}
  .ag-stu tr:last-child{border-bottom:0}
  .ag-stu td{display:block;padding:0 !important;border:0 !important}
  .ag-stu td:first-child{flex:1 1 60%;min-width:0;overflow-wrap:anywhere}
  .ag-stu td:nth-child(n+3){font-size:12px;color:var(--muted)}
  .ag-stu td.num{margin-left:auto;color:var(--ink)}
}

/* R13 agents list (agents.php) — prefix agl- */
.agl-head{margin-bottom:10px}
.agl-head .grow{display:flex;align-items:center;gap:6px 12px;flex-wrap:wrap}
.agl-chips{display:flex;gap:6px;flex-wrap:wrap}
.agl-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 9px;border-radius:99px;background:var(--grey-soft);color:var(--grey);font-size:12px;line-height:1.7;white-space:nowrap}
.agl-chip b{color:var(--ink);font-weight:700}
.agl-chip.ok{background:var(--green-soft);color:var(--green)}
.agl-chip.ok b{color:var(--green)}
.agl-chip.sh{background:#f3e8ff;color:#7c3aed}
.agl-chip.sh b{color:#7c3aed}
.agl-tools .agl-q{flex:1 1 260px;min-width:180px;padding:8px 10px;border:1px solid #cdd6e0;border-radius:8px;font:inherit;background:#fff;min-height:38px}
.agl-tools .agl-q:focus,.agl-tools select:focus{outline:2px solid var(--brand-soft);border-color:var(--brand)}
.agl-ownerf{display:flex;gap:6px;margin:0}
.agl-seg{display:inline-flex;border:1px solid #cdd6e0;border-radius:8px;overflow:hidden;background:#fff;flex:0 0 auto}
.agl-seg button{appearance:none;border:0;border-left:1px solid var(--line);background:none;font:inherit;font-size:13px;font-weight:600;color:var(--muted);padding:0 12px;min-height:36px;cursor:pointer}
.agl-seg button:first-child{border-left:0}
.agl-seg button.on{background:var(--brand-soft);color:var(--brand)}
.agl-count{margin-left:auto;white-space:nowrap}
.agl-panel,.agl-panel .agl-wrap{overflow:visible} /* the ⋯ menus must not be clipped; cells truncate instead of scrolling */
.agl-tbl thead th:first-child{border-top-left-radius:var(--radius)}
.agl-tbl thead th:last-child{border-top-right-radius:var(--radius)}
.agl-tbl td.agl-c-name{width:100%;max-width:0}
.agl-l1{display:flex;align-items:center;gap:6px;min-width:0}
.agl-nm{font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.agl-sub{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.agl-sm,.agl-sti{display:none}
.agl-row{cursor:pointer}
.agl-row:hover td{background:#f6f9ff}
.agl-row.off .agl-nm{color:var(--muted)}
.agl-row[hidden]{display:none!important}
.agl-acts{display:flex;gap:6px;justify-content:flex-end;align-items:center}
.agl-more summary.btn{padding:4px 9px;font-size:16px;line-height:1}
details.agl-more .agl-pop{padding:5px;min-width:170px;display:flex;flex-direction:column;text-align:left}
.agl-pop a,.agl-pop button{display:block;width:100%;text-align:left;padding:8px 10px;border-radius:6px;border:0;background:none;color:var(--ink);font:inherit;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap}
.agl-pop a:hover,.agl-pop button:hover{background:var(--grey-soft);text-decoration:none}
.agl-pop .agl-danger{color:var(--red)}
.agl-none{border-top:1px solid var(--line)}
.agl-selall-sm{display:none}
.agl-clr{white-space:nowrap}
.agl-clr[hidden]{display:none}
.agl-none .btn{margin:0 0 0 8px}
/* add drawer: right side panel; full-screen sheet on phones */
.agl-scrim{position:fixed;inset:0;background:rgba(16,26,38,.45);z-index:44;opacity:0;pointer-events:none;transition:opacity .2s}
.agl-scrim.open{opacity:1;pointer-events:auto}
.agl-drawer{position:fixed;top:0;right:0;bottom:0;width:min(580px,100vw);background:#fff;z-index:45;display:flex;flex-direction:column;
  box-shadow:-12px 0 32px rgba(16,24,40,.18);transform:translateX(104%);visibility:hidden;transition:transform .22s ease,visibility 0s linear .22s}
.agl-drawer.open{transform:none;visibility:visible;transition:transform .22s ease}
.agl-dform{display:flex;flex-direction:column;height:100%;margin:0;min-height:0}
.agl-dhead{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;border-bottom:1px solid var(--line)}
.agl-dhead h2{margin:0}
.agl-x{font-size:26px;line-height:1;color:var(--muted);padding:2px 8px;border-radius:6px}
.agl-x:hover{background:var(--grey-soft);text-decoration:none}
.agl-dbody{flex:1;min-height:0;overflow-y:auto;padding:14px 16px}
.agl-dbody .row2{gap:10px 12px;align-items:start}
.agl-dbody .field.check{padding-top:20px}
.agl-full{grid-column:1/-1}
.agl-dfoot{display:flex;gap:8px;justify-content:flex-end;padding:10px 16px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#f8fafc}
.agl-dfoot .btn{min-width:110px}
body.agl-lock{overflow:hidden}
@media (max-width:1100px){
  .agl-tbl th,.agl-tbl td{padding-left:8px;padding-right:8px}
  .agl-tbl .agl-c-st{display:none}
  .agl-sti{display:inline-flex}
}
@media (max-width:860px){
  .agl-tbl th{top:var(--top)}
  .agl-dbody .field.check{padding-top:0}
}
@media (max-width:760px){
  .agl-head{gap:8px}
  .agl-head .grow{flex:1 1 100%;gap:6px 10px}
  .agl-chip{padding:1px 7px}
  .agl-full-sm{grid-column:1/-1}
  .agl-tools .agl-q{flex:1 1 100%}
  .agl-ownerf,.agl-tools .agl-agr{flex:1 1 40%;min-width:0}
  .agl-ownerf select,.agl-tools .agl-agr{width:100%}
  .agl-tbl thead{display:none}
  .agl-selall-sm{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line);font-size:13px;color:var(--muted);cursor:pointer}
  .agl-tbl,.agl-tbl tbody{display:block;width:100%}
  .agl-tbl .agl-row{display:flex;align-items:flex-start;padding:9px 12px;border-bottom:1px solid var(--line)}
  .agl-tbl .agl-row:last-child{border-bottom:0}
  .agl-tbl .agl-row td{display:block;border:0;padding:0;background:none}
  .agl-tbl .agl-row td.agl-lg{display:none}
  .agl-tbl .agl-row td.selcol{width:auto;padding:2px 10px 0 0}
  .agl-tbl td.agl-c-name{flex:1 1 auto;width:auto;max-width:none;min-width:0}
  .agl-sm{display:inline-flex;gap:4px;flex:0 0 auto}
  .agl-l1 .agl-bdg{margin-left:auto}
  .agl-l1 .agl-sti{flex:0 0 auto}
  .agl-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:4px;font-size:12.5px;color:var(--muted)}
  .agl-drawer{width:100vw;box-shadow:none}
  .agl-dfoot .btn{flex:1}
}
/* R14: a disabled button looks disabled everywhere */
.btn:disabled,.btn[disabled]{opacity:.45;cursor:not-allowed;box-shadow:none}
