/* Tekademy lead desk styles. Fonts are hosted locally (Outfit and DM Sans, SIL Open Font License). */
@font-face{font-family:'Outfit';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/outfit-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Outfit';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/outfit-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Outfit';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/outfit-latin-700-normal.woff2') format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/dm-sans-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/dm-sans-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/dm-sans-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/dm-sans-latin-700-normal.woff2') format('woff2')}

:root{
  --navy:#09155D; --indigo:#1F299B; --blue:#1C58F9; --cyan:#30D1FF; --orange:#F05928; --mist:#E0EAF9;
  --paper:#F6F9FE; --line:#CBD8F0; --muted:#4D5A94; --ok:#15803D; --bad:#B91C1C;
  /* Brand guideline: Monotype face for highlight text, logo and H3s. Outfit is a stand-in until the licensed font is added. */
  --head:'Outfit','Century Gothic','Trebuchet MS',system-ui,sans-serif;
  --body:'DM Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font:15px/1.5 var(--body);color:var(--navy);background:var(--mist);-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--head);margin:0;font-weight:600;letter-spacing:-.01em}
h1{font-size:28px;line-height:1.15}
h2{font-size:18px;line-height:1.25}
p{margin:0}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--blue);outline-offset:2px;border-radius:4px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
[hidden]{display:none!important}
.muted{color:var(--muted)}
.ico{width:20px;height:20px;fill:currentColor;flex:none}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;border:1.5px solid transparent;border-radius:8px;padding:9px 16px;font-weight:600;cursor:pointer;background:var(--blue);color:#fff;text-decoration:none;line-height:1.2;transition:background .15s,border-color .15s}
.btn:hover{background:var(--indigo)}
.btn.accent{background:var(--orange);color:var(--navy)}
.btn.accent:hover{background:#ff6c3c}
.btn.ghost{background:#fff;color:var(--navy);border-color:var(--line)}
.btn.ghost:hover{border-color:var(--blue);background:var(--paper)}
.btn.danger{background:var(--bad)}
.btn.danger:hover{background:#991b1b}
.btn.small{padding:6px 11px;font-size:13.5px}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.icon-btn{display:inline-grid;place-items:center;width:34px;height:34px;border:0;background:transparent;border-radius:8px;color:var(--muted);cursor:pointer}
.icon-btn:hover{background:var(--mist);color:var(--navy)}
.icon-btn.del:hover{background:#FEE2E2;color:var(--bad)}

/* chips */
.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 8px;border-radius:99px;font-size:13px;font-weight:600;white-space:nowrap}
.chip i,.src i{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}
.src{display:inline-flex;align-items:center;gap:6px;font-weight:500;white-space:nowrap}
.lab{display:inline-block;padding:2px 9px;border-radius:6px;font-size:12.5px;font-weight:500;color:var(--navy);background:var(--mist);background:color-mix(in srgb,var(--lc,#1C58F9) 13%,#fff);border:1px solid var(--lc,var(--line));border-color:color-mix(in srgb,var(--lc,#1C58F9) 45%,#fff);white-space:nowrap}
.tag-due{font-size:12px;font-weight:700;padding:2px 8px;border-radius:6px;white-space:nowrap}
.tag-due.overdue{background:#FEE2E2;color:var(--bad)}
.tag-due.today{background:#FEF3C7;color:#92400E}

/* landing */
.landing{min-height:100vh;display:flex;flex-direction:column;background:#fff}
.announce{display:flex;align-items:center;background:var(--blue);color:#fff;font-size:14.5px;position:relative;z-index:5}
.ann-track{flex:1;display:flex;overflow:hidden;min-width:0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 22px,#000 calc(100% - 22px),transparent);mask-image:linear-gradient(90deg,transparent,#000 22px,#000 calc(100% - 22px),transparent)}
.ann-run{flex:none;min-width:100%;display:flex;align-items:center;animation:marq 52s linear infinite}
@keyframes marq{from{transform:translateX(0)}to{transform:translateX(-100%)}}
.ann-item{display:inline-flex;align-items:center;gap:10px;padding:10px 0;white-space:nowrap}
.ann-item::after{content:"";width:7px;height:7px;background:var(--cyan);transform:rotate(45deg);margin:0 30px}
.ann-tag{background:var(--orange);color:var(--navy);font-weight:700;font-size:12.5px;padding:2px 9px;border-radius:5px}
.ann-item a{color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.announce:hover .ann-run,.announce:focus-within .ann-run,.announce.paused .ann-run{animation-play-state:paused}
.ann-pause{flex:none;margin:0 12px;border:1.5px solid rgba(255,255,255,.65);background:transparent;color:#fff;border-radius:6px;font-weight:600;font-size:13px;padding:3px 11px;cursor:pointer}
.ann-pause:hover{background:rgba(255,255,255,.16)}
.ann-pause:focus-visible,.ann-item a:focus-visible{outline-color:#fff}
.land-top{height:74px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,5vw,64px);background:#fff;border-bottom:1px solid var(--line)}
.logo{height:40px;width:auto;display:block}
.site-link{color:var(--blue);font-weight:600;text-decoration:none}
.site-link:hover{text-decoration:underline}
.hero{position:relative;flex:1;overflow:hidden;color:#fff;display:flex;
  background:radial-gradient(1100px 560px at 80% 0%,rgba(48,209,255,.24),transparent 62%),radial-gradient(900px 560px at 0% 100%,rgba(240,89,40,.17),transparent 62%),linear-gradient(135deg,#09155D 0%,#1F299B 62%,#1C58F9 135%)}
#heroCanvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.land-main{position:relative;z-index:2;flex:1;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,430px);gap:clamp(28px,6vw,96px);align-items:center;padding:clamp(32px,6vw,76px) clamp(18px,5vw,64px);max-width:1280px;width:100%;margin:0 auto;pointer-events:none}
.land-main>*{pointer-events:auto}
.land-copy .kicker{font-family:var(--head);font-weight:500;font-size:17px;color:var(--cyan);margin-bottom:10px}
.land-copy h1{font-size:clamp(38px,5.4vw,64px);line-height:1.02;max-width:13ch}
.land-copy .lead{font-size:19px;margin-top:18px;max-width:50ch;color:rgba(255,255,255,.9)}
.land-copy .ind{margin-top:12px;max-width:56ch;color:#C9D6F7;font-size:16px}
.stats{display:flex;flex-wrap:wrap;margin-top:34px;row-gap:14px}
.stats div{padding-right:28px;margin-right:28px;border-right:1px solid rgba(255,255,255,.28)}
.stats div:last-child{border-right:0;margin-right:0;padding-right:0}
.stats b{display:block;font-family:var(--head);font-size:36px;font-weight:600;line-height:1.05}
.stats span{font-size:14px;color:#C9D6F7}
.aud{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}
.aud span{padding:6px 14px;border:1.5px solid rgba(255,255,255,.38);border-radius:99px;font-size:14.5px;background:rgba(255,255,255,.08)}
.login-card{background:#fff;color:var(--navy);border:1px solid var(--line);border-radius:16px;padding:30px;box-shadow:0 30px 70px -26px rgba(0,0,20,.7)}
.login-card h2{font-size:24px}
.login-card .sub{margin:8px 0 22px;color:var(--muted);font-size:14.5px}
.login-card form{display:grid;gap:14px}
.demo-hint{margin-top:18px;padding:12px 14px;border-radius:10px;background:var(--mist);font-size:13.5px}
.land-foot{padding:16px clamp(18px,5vw,64px);color:var(--muted);font-size:14px;text-align:center;background:#fff;border-top:1px solid var(--line)}
.land-foot a{color:var(--navy)}
@media (prefers-reduced-motion:reduce){.ann-run:nth-child(2){display:none}.ann-track{overflow-x:auto}.ann-pause{display:none}}

/* forms */
.f{display:grid;gap:5px;font-size:14px;font-weight:500;min-width:0}
.f>span b{color:var(--orange)}
input:not([type]),input[type=text],input[type=password],input[type=email],input[type=tel],input[type=number],input[type=date],input[type=datetime-local],input[type=search],input[type=url],select,textarea{width:100%;padding:9px 11px;border:1.5px solid var(--line);border-radius:8px;background:#fff;min-height:40px}
textarea{resize:vertical;min-height:84px}
input:hover,select:hover,textarea:hover{border-color:#9DB4E6}
input:focus,select:focus,textarea:focus{border-color:var(--blue);outline:3px solid rgba(28,88,249,.22);outline-offset:0}
.invalid{border-color:var(--bad)!important}
.form-error{background:#FEE2E2;color:#7F1D1D;border-radius:8px;padding:10px 12px;font-size:14px;margin-bottom:14px}
fieldset{border:0;padding:0;margin:0 0 22px}
legend{font-family:var(--head);font-weight:600;font-size:16px;padding:0;margin-bottom:10px}
.fgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 14px}
.s2{grid-column:span 2}.s3{grid-column:span 3}.s4{grid-column:span 4}
.pick{display:flex;flex-wrap:wrap;gap:8px}
.pick label{position:relative;cursor:pointer}
.pick input{position:absolute;opacity:0;inset:0;cursor:pointer}
.pick span{display:inline-block;padding:6px 12px;border:1.5px solid var(--line);border-radius:99px;font-size:13.5px;font-weight:500;background:#fff}
.pick input:checked+span{background:var(--blue);border-color:var(--blue);color:#fff}
.pick input:focus-visible+span{outline:3px solid var(--blue);outline-offset:2px}
.pick.lbl input:checked+span{background:color-mix(in srgb,var(--lc) 16%,#fff);border-color:var(--lc);color:var(--navy);font-weight:600}
.seg{display:inline-flex;border:1.5px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.seg label{position:relative;cursor:pointer}
.seg input{position:absolute;opacity:0;inset:0}
.seg span{display:block;padding:8px 14px;font-weight:600;font-size:14px;border-right:1.5px solid var(--line)}
.seg label:last-child span{border-right:0}
.seg input:checked+span{background:var(--navy);color:#fff}
.seg input:focus-visible+span{outline:3px solid var(--blue);outline-offset:-3px}

/* shell */
.shell{min-height:100vh;display:grid;grid-template-columns:230px minmax(0,1fr);grid-template-rows:64px 1fr}
.topbar{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 20px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.top-right{display:flex;align-items:center;gap:14px}
.who-am-i{font-size:14px;color:var(--muted)}
.side{background:var(--navy);padding:18px 12px;display:flex;flex-direction:column;gap:4px}
.side a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:9px;color:#C9D6F7;text-decoration:none;font-weight:500}
.side a:hover{background:rgba(255,255,255,.08);color:#fff}
.side a[aria-current=page]{background:var(--blue);color:#fff}
.side .badge{margin-left:auto;background:var(--orange);color:var(--navy);font-size:12px;font-weight:700;padding:1px 8px;border-radius:99px}
.side .foot{margin-top:auto;padding:12px;font-size:12.5px;color:#9FB1E6}
main#view{padding:26px clamp(16px,2.6vw,36px) 60px;min-width:0}
.page-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}
.head-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.head-tools select{width:auto}
.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 22px;min-width:0}
.panel>h2{margin-bottom:14px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.panel .hint{font-size:13.5px;color:var(--muted);font-weight:400;font-family:var(--body)}
.g2{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:18px;margin-top:18px}
.g2.even{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:18px}

/* kpis */
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.kpi{padding:20px 22px;border-right:1px solid var(--line)}
.kpi:last-child{border-right:0}
.kpi .n{font-family:var(--head);font-weight:600;font-size:40px;line-height:1;color:var(--blue)}
.kpi:nth-child(3) .n{color:var(--ok)}
.kpi .l{margin-top:8px;font-weight:600}
.kpi .s{font-size:13.5px;color:var(--muted)}

/* bars */
.bars{display:grid;gap:12px}
.bar-row{display:grid;grid-template-columns:150px minmax(0,1fr) 64px;gap:12px;align-items:center;font-size:14px}
.bar-row .t{height:12px;background:var(--mist);border-radius:99px;overflow:hidden}
.bar-row .t b{display:block;height:100%;border-radius:99px;min-width:3px}
.bar-row .v{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}
.src-row{display:grid;gap:5px;font-size:14px}
.src-row .top{display:flex;justify-content:space-between;gap:8px}
.src-row .t{height:12px;background:var(--mist);border-radius:99px;overflow:hidden;position:relative}
.src-row .t b{position:absolute;left:0;top:0;bottom:0;border-radius:99px;opacity:.28}
.src-row .t u{position:absolute;left:0;top:0;bottom:0;border-radius:99px;text-decoration:none}
.legend{display:flex;gap:18px;font-size:13.5px;margin-bottom:6px;flex-wrap:wrap}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:14px;height:4px;border-radius:2px;display:inline-block}
svg.chart{width:100%;height:auto;display:block}
svg.chart text{font:12px var(--body);fill:var(--muted)}
.todo-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.todo-list button{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;background:transparent;border:0;border-radius:9px;padding:9px 10px;cursor:pointer}
.todo-list button:hover{background:var(--paper)}
.todo-list .nm{font-weight:600}
.todo-list .meta{font-size:13.5px;color:var(--muted)}
.mini-stats{display:flex;gap:26px;margin-bottom:12px;flex-wrap:wrap}
.mini-stats div b{font-family:var(--head);font-size:26px;display:block;line-height:1.1}
.mini-stats div span{font-size:13.5px;color:var(--muted)}
.kv{display:grid;gap:10px;font-size:14.5px}
.kv div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px dashed var(--line);padding-bottom:8px}
.kv div:last-child{border-bottom:0}
.kv b{font-variant-numeric:tabular-nums}
.seat{display:grid;gap:5px;margin-bottom:14px;font-size:14px}
.seat .top{display:flex;justify-content:space-between;gap:10px}
.seat .t{height:10px;background:var(--mist);border-radius:99px;overflow:hidden}
.seat .t b{display:block;height:100%;background:var(--blue);border-radius:99px}
.seat .t b.full{background:var(--ok)}
.empty{padding:28px 10px;text-align:center;color:var(--muted)}
.empty h3{color:var(--navy);margin-bottom:6px;font-size:18px}
.empty .row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:14px}

/* leads table */
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}
.toolbar .search{position:relative;flex:1 1 260px;max-width:380px}
.toolbar .search svg{position:absolute;left:10px;top:10px;color:var(--muted)}
.toolbar .search input{padding-left:38px}
.toolbar select{width:auto;max-width:190px}
.toolbar .spacer{flex:1}
.bulk{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--navy);color:#fff;border-radius:10px;padding:10px 14px;margin-bottom:12px}
.bulk select{width:auto;color:var(--navy)}
.tablewrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:14px}
table{border-collapse:collapse;width:100%;min-width:1080px}
th,td{text-align:left;padding:11px 14px;border-bottom:1px solid #E3EBF8;vertical-align:top;font-size:14px}
th{font-weight:600;color:var(--muted);background:var(--paper);white-space:nowrap;font-size:13.5px}
th button{all:unset;cursor:pointer;display:inline-flex;gap:4px;align-items:center;font-weight:600}
th button:focus-visible{outline:3px solid var(--blue)}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover{background:#F9FBFF}
td .nm{font-weight:600;color:var(--navy);background:none;border:0;padding:0;cursor:pointer;text-align:left;font-size:14.5px}
td .nm:hover{color:var(--blue);text-decoration:underline}
td small{display:block;color:var(--muted);font-size:13px}
td.act{white-space:nowrap}
td input[type=checkbox],th input[type=checkbox]{width:17px;height:17px;accent-color:var(--blue)}
.pager{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 4px;font-size:14px;color:var(--muted)}
.pager .row{display:flex;gap:8px}
.fu-over{color:var(--bad);font-weight:600}

/* batches */
.batch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:16px}
.batch{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 20px;display:grid;gap:12px;align-content:start}
.batch .hd{display:flex;justify-content:space-between;gap:10px;align-items:start}
.batch h3{font-size:18px}
.batch dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:14px}
.batch dt{color:var(--muted)}
.batch dd{margin:0}
.link{background:none;border:0;padding:0;color:var(--blue);font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.link:hover{color:var(--indigo)}

/* import */
.steps{display:grid;gap:18px;max-width:1040px}
.steps .panel>h2{margin-bottom:6px}
.steps .panel>p{color:var(--muted);margin-bottom:14px}
.row-btns{display:flex;gap:10px;flex-wrap:wrap}
.drop{border:2px dashed #9DB4E6;border-radius:12px;padding:26px;text-align:center;background:var(--paper);cursor:pointer}
.drop:hover,.drop.over{border-color:var(--blue);background:#EEF4FF}
.drop strong{display:block;font-family:var(--head);font-size:17px}
.or{margin:16px 0 8px;font-weight:600}
.gs{display:flex;gap:10px;flex-wrap:wrap}
.gs input{flex:1 1 280px}
.sumrow{display:flex;gap:26px;flex-wrap:wrap;margin:6px 0 14px}
.sumrow div b{font-family:var(--head);font-size:28px;display:block;line-height:1.1}
.rs{font-weight:600;white-space:nowrap}
.rs.ok{color:var(--ok)}.rs.warn{color:#92400E}.rs.dup{color:var(--indigo)}.rs.err{color:var(--bad)}
.dupopt{display:flex;gap:18px;flex-wrap:wrap;margin:12px 0}
.dupopt label{display:flex;gap:8px;align-items:center;cursor:pointer}
.dupopt input{accent-color:var(--blue);width:17px;height:17px}
.notice{padding:10px 14px;border-radius:10px;background:#FEF3C7;color:#78350F;font-size:14px;margin-bottom:12px}
.notice.err{background:#FEE2E2;color:#7F1D1D}
.notice.info{background:var(--mist);color:var(--navy)}

/* modal + drawer */
.overlay{position:fixed;inset:0;background:rgba(9,21,93,.55);display:grid;place-items:center;padding:16px;z-index:60;overflow-y:auto}
.modal{background:#fff;border-radius:16px;width:min(880px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;box-shadow:0 30px 80px -20px rgba(9,21,93,.6)}
.modal.sm{width:min(460px,100%)}
.modal.md{width:min(620px,100%)}
.m-head{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line)}
.m-head h2{font-size:21px}
.m-body{padding:20px 22px;overflow-y:auto}
.m-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 22px;border-top:1px solid var(--line);background:var(--paper);border-radius:0 0 16px 16px}
.drawer-bg{position:fixed;inset:0;background:rgba(9,21,93,.4);z-index:50;display:flex;justify-content:flex-end}
.drawer{width:min(540px,100%);height:100%;background:#fff;overflow-y:auto;display:flex;flex-direction:column;box-shadow:-20px 0 60px -20px rgba(9,21,93,.5);animation:slide .22s ease-out}
@keyframes slide{from{transform:translateX(30px);opacity:.4}to{transform:none;opacity:1}}
.d-head{padding:20px 22px;border-bottom:1px solid var(--line);display:grid;gap:8px;position:sticky;top:0;background:#fff;z-index:2}
.d-head .row{display:flex;justify-content:space-between;gap:10px;align-items:start}
.d-body{padding:18px 22px 40px;display:grid;gap:22px}
.d-body h3{font-size:16px;margin-bottom:10px}
.dl{display:grid;grid-template-columns:150px 1fr;gap:8px 14px;margin:0;font-size:14.5px}
.dl dt{color:var(--muted)}
.dl dd{margin:0;word-break:break-word}
.dl a{color:var(--blue)}
.log-form{display:grid;gap:10px;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:14px}
.log-form .two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.timeline{list-style:none;margin:0;padding:0;display:grid;gap:0}
.timeline li{padding:0 0 16px 22px;position:relative;border-left:2px solid var(--line);margin-left:6px}
.timeline li::before{content:"";position:absolute;left:-7px;top:3px;width:12px;height:12px;border-radius:50%;background:var(--blue)}
.timeline li.bad::before{background:var(--orange)}
.timeline .when{font-size:13px;color:var(--muted)}
.timeline .what{font-weight:600}
.toast-root{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);display:grid;gap:8px;z-index:80;width:min(460px,calc(100vw - 24px))}
.toast{background:var(--navy);color:#fff;padding:12px 16px;border-radius:10px;font-weight:500;box-shadow:0 10px 30px -10px rgba(9,21,93,.6)}
.toast.error{background:var(--bad)}
.swatches{display:flex;gap:8px;flex-wrap:wrap}
.swatches label{position:relative;cursor:pointer}
.swatches input{position:absolute;opacity:0;inset:0}
.swatches span{display:block;width:26px;height:26px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 1.5px var(--line)}
.swatches input:checked+span{box-shadow:0 0 0 2.5px var(--navy)}
.swatches input:focus-visible+span{box-shadow:0 0 0 3px var(--blue)}
.lab-list{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:6px}
.lab-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 4px;border-bottom:1px solid #E3EBF8}
/* trainers */
.trainer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}
.trainer{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 20px;display:grid;gap:12px;align-content:start}
.trainer .hd{display:flex;gap:16px;align-items:center}
.trainer h3{font-size:19px;line-height:1.2}
.trainer .role{color:var(--muted);font-size:14.5px}
.trainer .bio{font-size:14.5px;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line}
.trainer .chips{display:flex;gap:6px;flex-wrap:wrap}
.trainer .meta{font-size:14px;color:var(--muted);display:grid;gap:2px;word-break:break-word}
.trainer .meta a{color:var(--blue)}
.trainer .foot{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.avatar{width:104px;height:104px;border-radius:14px;object-fit:cover;background:var(--mist);flex:none;display:block}
.avatar.ph{display:grid;place-items:center;background:linear-gradient(135deg,var(--navy),var(--blue));color:#fff;font-family:var(--head);font-weight:600}
.photo-edit{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-bottom:20px}
.photo-edit .btns{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.photo-edit p{font-size:13.5px;color:var(--muted);max-width:44ch}
.photo-edit p.err{color:var(--bad);font-weight:600}
#photoIn:focus-visible+label{outline:3px solid var(--blue);outline-offset:2px}
label.btn{cursor:pointer}

/* students */
.ready-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ready-list li{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--line);border-radius:10px}
.ready-list .acts{display:flex;gap:6px;flex-wrap:wrap}
.ready-list .meta{font-size:13.5px;color:var(--muted)}
.enr{border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:grid;gap:6px;margin-bottom:10px;font-size:14.5px}
.enr .top{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap}
.contact-links{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 12px}
/* call tickets */
.call-hero{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;align-items:flex-start;margin-bottom:14px}
.call-name{font-family:var(--head);font-size:26px;font-weight:600;line-height:1.15}
.call-phone{font-family:var(--head);font-size:22px;color:var(--blue);text-decoration:none;font-weight:500}
.call-phone:hover{text-decoration:underline}
.call-chips{display:flex;gap:6px;flex-wrap:wrap}
.script{background:var(--mist);border-left:4px solid var(--blue);border-radius:8px;padding:10px 14px;margin:14px 0;font-size:14.5px}
.script b{display:block;font-family:var(--head);font-size:13.5px;color:var(--indigo);margin-bottom:2px}
.dial-row{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
.btn.dial{padding:12px 22px;font-size:16px}
.dialing{background:#DDF6FD;border-radius:10px;padding:12px 14px;margin:14px 0}
.dialing p{margin:4px 0 0}
.sess{margin-right:auto;font-size:14px;color:var(--muted);align-self:center}
.hours-chip{display:inline-flex;gap:6px;align-items:center;font-size:14px}
/* receipts */
#print-root{display:none}
.receipt{position:relative;background:#fff;color:#09155D;font:14px/1.45 var(--body);padding:28px 30px;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.rc-top{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;flex-wrap:wrap}
.rc-logo{height:46px;width:auto;display:block}
.rc-co{text-align:right;font-size:13px;display:grid;gap:1px}
.rc-co b{font-family:var(--head);font-size:16px}
.rc-bar{height:5px;margin:16px 0 18px;background:linear-gradient(90deg,#1C58F9 0 80%,#F05928 80% 100%);border-radius:3px}
.rc-title{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-end;margin-bottom:18px}
.rc-title h2{font-size:26px}
.rc-meta{display:flex;gap:22px;flex-wrap:wrap}
.rc-meta span{display:block;font-size:12.5px;color:#4D5A94}
.rc-meta b{font-size:15px}
.rc-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px}
.rc-box{border:1px solid #CBD8F0;border-radius:8px;padding:12px 14px}
.rc-box h3{font-size:14px;margin:0 0 6px;color:#1F299B}
.rc-box p{margin:0}
.rc-amt{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#E0EAF9;border-radius:8px;padding:12px 16px;margin-bottom:16px}
.rc-amt b{font-family:var(--head);font-size:28px}
table.rc-tbl{width:100%;min-width:0;border-collapse:collapse;margin-bottom:16px}
.rc-tbl caption{text-align:left;font-family:var(--head);font-weight:600;font-size:14px;color:#1F299B;padding-bottom:6px}
.rc-tbl th,.rc-tbl td{padding:7px 10px;border:1px solid #CBD8F0;font-size:13.5px;text-align:left;background:none;white-space:normal}
.rc-tbl th{background:#E0EAF9;color:#09155D;font-weight:600}
.rc-tbl .num{text-align:right;white-space:nowrap}
.rc-sum td:first-child{width:62%}
.rc-sum tr.total td{font-weight:700;background:#F6F9FE}
.rc-due,.rc-ok,.rc-voidnote{padding:9px 13px;border-radius:8px;margin-bottom:16px;font-size:14px}
.rc-due{background:#FEF3C7;color:#78350F}
.rc-ok{background:#DCFCE7;color:#14532D}
.rc-voidnote{background:#FEE2E2;color:#7F1D1D}
.rc-sign{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-top:22px;break-inside:avoid}
.rc-stamp img{width:112px;height:auto;display:block}
.rc-sign-box{width:230px;text-align:center;display:grid;gap:1px;font-size:13px}
.rc-sign-box img{height:62px;width:auto;max-width:100%;margin:0 auto;display:block;object-fit:contain}
.rc-sign-line{border-top:1.5px solid #09155D;margin:2px 0 4px}
.rc-sign-box span{color:#4D5A94;font-size:12.5px}
.rc-foot{margin-top:18px;border-top:1px solid #CBD8F0;padding-top:10px;font-size:12.5px;color:#4D5A94;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.rc-void{position:absolute;inset:0;display:grid;place-items:center;font:700 130px var(--head);color:rgba(185,28,28,.13);transform:rotate(-20deg);pointer-events:none;z-index:1}
@media (max-width:600px){.rc-cols{grid-template-columns:1fr}.rc-co{text-align:left}.receipt{padding:20px 16px}}
@media print{
  body>*:not(#print-root){display:none!important}
  #print-root{display:block}
  body{background:#fff!important;overflow:visible!important}
  #print-root .receipt{border:0;padding:0;border-radius:0}
  #print-root *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  @page{margin:14mm}
}
body.lock{overflow:hidden}

@media (max-width:1100px){
  .g2,.g2.even,.g3{grid-template-columns:1fr}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi:nth-child(2){border-right:0}
  .kpi:nth-child(-n+2){border-bottom:1px solid var(--line)}
}
@media (max-width:900px){
  .land-main{grid-template-columns:1fr}
  .shell{grid-template-columns:1fr;grid-template-rows:64px auto 1fr}
  .side{flex-direction:row;overflow-x:auto;padding:8px 10px}
  .side .foot{display:none}
  .side a{white-space:nowrap}
  .fgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .s3,.s4{grid-column:span 2}
  .who-am-i{display:none}
  .bar-row{grid-template-columns:110px minmax(0,1fr) 54px}
  .dl{grid-template-columns:120px 1fr}
}
@media (max-width:560px){
  .fgrid{grid-template-columns:1fr}
  .s2,.s3,.s4{grid-column:auto}
  .kpis{grid-template-columns:1fr}
  .kpi{border-right:0;border-bottom:1px solid var(--line)}
  h1{font-size:24px}
  .top-right .btn span.t{display:none}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* production additions */
.acct .t{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#syncState{font-size:12.5px}
.side .foot{font-size:12.5px}

/* v1.1 form sections and insights */
.fsec{border:1px solid var(--line);border-radius:10px;margin:0 0 12px;background:#fff}
.fsec>summary{cursor:pointer;padding:11px 14px;font-family:var(--head);font-weight:600;font-size:16px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:10px}
.fsec>summary::-webkit-details-marker{display:none}
.fsec>summary::after{content:"+";color:var(--muted);font-size:20px;line-height:1}
.fsec[open]>summary::after{content:"\2212"}
.fsec>.fgrid{padding:2px 14px 14px}
.fsec .fhint{padding:0 14px;margin:0 0 8px;font-size:13.5px}
.fsec>summary:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.dl dd{white-space:pre-line}
.f.s1{grid-column:span 1}
.panel .bars .bar-row{grid-template-columns:minmax(120px,190px) minmax(0,1fr) 48px}

/* v1.1.1 dialogs: the scrolling area stays inside the dialog, and the lead form uses compact tabs */
.modal{overflow:hidden}
.modal>form{display:flex;flex-direction:column;min-height:0;max-height:calc(100vh - 32px)}
.modal>.m-body,.modal>form>.m-body{flex:1 1 auto;min-height:0;overflow-y:auto}
.modal>.m-head,.modal>.m-foot,.modal>form>.m-head,.modal>form>.m-foot{flex:none}
.modal.lead{width:min(1040px,100%)}
.modal.lead .m-head{padding:12px 20px}
.modal.lead .m-head h2{font-size:19px}
.modal.lead .m-body{padding:14px 20px 8px;min-height:470px}
.modal.lead .m-foot{padding:10px 20px}
.ltabs{display:flex;gap:4px;padding:8px 20px 0;border-bottom:1px solid var(--line);overflow-x:auto;flex:none;background:#fff}
.ltab{border:0;background:transparent;padding:9px 14px;font:600 14px var(--body);color:var(--muted);cursor:pointer;border-bottom:3px solid transparent;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;border-radius:8px 8px 0 0}
.ltab:hover{color:var(--navy);background:var(--paper)}
.ltab.on{color:var(--navy);border-bottom-color:var(--blue)}
.ltab:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}
.tdot{width:8px;height:8px;border-radius:50%;background:var(--orange);display:inline-block}
.modal.lead .fgrid{grid-template-columns:repeat(12,minmax(0,1fr));gap:10px 14px}
.modal.lead .fgrid>*{grid-column:span 4}
.modal.lead .fgrid>.s2{grid-column:span 6}
.modal.lead .fgrid>.s3{grid-column:span 8}
.modal.lead .fgrid>.sq{grid-column:span 3}
.modal.lead .fgrid>.s4{grid-column:1/-1}
.modal.lead .fgrid.sub{padding:0;margin:0}
.modal.lead .f{font-size:13px;gap:3px}
.modal.lead input[type=text],.modal.lead input[type=email],.modal.lead input[type=tel],.modal.lead input[type=number],.modal.lead input[type=date],.modal.lead input[type=datetime-local],.modal.lead select{min-height:36px;padding:6px 10px;font-size:14px}
.modal.lead textarea{min-height:60px;padding:7px 10px;font-size:14px}
.modal.lead .pick span{padding:4px 10px;font-size:13px}
.modal.lead .fhint{grid-column:1/-1;margin:0;font-size:13px}
.modal.lead .seg span{padding:6px 14px}
@media (max-width:760px){
  .modal.lead .fgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .modal.lead .fgrid>*{grid-column:span 1}
  .modal.lead .fgrid>.s2,.modal.lead .fgrid>.s3,.modal.lead .fgrid>.s4{grid-column:1/-1}
  .modal.lead .m-body{padding:12px 14px 6px}
  .ltabs{padding:6px 10px 0}
}
@media (max-height:690px){ .modal.lead .m-body{min-height:0} }

/* v1.1.1 fixes found by measuring in a browser */
.modal.lead .fgrid>.sdt{grid-column:span 4}
.modal.lead .fnote{margin-right:auto;font-size:13px;color:var(--muted);align-self:center;max-width:62ch}
.modal.lead input[type=datetime-local],.modal.lead input[type=date]{min-width:0;max-width:100%}
.modal.lead .fgrid{gap:8px 14px}
@media (max-width:760px){
  .modal.lead .fgrid>.sdt{grid-column:1/-1}
  .modal.lead .fgrid>.fhint{grid-column:1/-1}
  .modal.lead .fnote{display:none}
}

/* v1.1.2 upload area */
.drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:150px;padding:22px 18px;text-align:center}
.drop strong{display:block;font-family:var(--head);font-size:18px}
.drop .dnote{font-size:13.5px}
.drop label.btn{cursor:pointer}
#fileIn:focus-visible+label{outline:3px solid var(--blue);outline-offset:3px}
.drop.over{border-color:var(--blue);background:#EEF4FF}

/* v1.1.2 layout fixes found by a browser sweep */
.tablewrap{position:relative}
.panel,.steps,.batch-grid{min-width:0}
@media (max-width:900px){
  .shell{grid-template-columns:minmax(0,1fr)}
  main#view{max-width:100vw}
}

/* action buttons stay visible at the right edge while a wide table scrolls sideways */
.tablewrap td.act{position:sticky;right:0;background:#fff;box-shadow:-10px 0 10px -10px rgba(9,21,93,.28);z-index:1}
.tablewrap th:last-child:has(>.sr){position:sticky;right:0;background:var(--paper);z-index:1}
.tablewrap tbody tr:hover td.act{background:#F9FBFF}

/* v1.3.0: State field; four short fields can share a row (quarter width) */
@media (max-width:760px){ .modal.lead .fgrid>.sq{grid-column:span 1} }

/* the Name column keeps room for "City, State" under each name */
#leadTable th:nth-child(2),#leadTable td:nth-child(2){min-width:190px}

/* v1.4.0: the example receipt number stays on one line */
#numExample{font-size:20px;white-space:nowrap;letter-spacing:.2px}
.tablewrap button.nm[data-act=view-receipt]{white-space:nowrap}

/* v1.4.1: server error view in the System card */
.errlog{max-height:260px;overflow:auto;margin:0 0 10px;padding:12px 14px;background:#0B1240;color:#E0EAF9;border-radius:10px;font:12.5px/1.5 ui-monospace,Consolas,monospace;white-space:pre-wrap;word-break:break-word}
.notice code{background:rgba(9,21,93,.08);padding:1px 6px;border-radius:5px;font-size:13px}

/* v1.5.0 feedback module */
.fbstages{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.fbstage{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--sbg);background:var(--sbg);color:var(--sc);border-radius:999px;padding:6px 6px 6px 12px;font:600 13.5px var(--body);cursor:pointer}
.fbstage i{width:9px;height:9px;border-radius:50%;background:var(--sc)}
.fbstage b{background:#fff;color:var(--sc);border-radius:999px;min-width:24px;padding:1px 8px;text-align:center;font-size:13px}
.fbstage[aria-pressed=true]{outline:3px solid var(--sc);outline-offset:1px}
.fbstage:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
tr.fbrow td:first-child{box-shadow:inset 4px 0 0 var(--fc)}
tr.fbrow td.chk{width:38px}
tr.fbrow td.act{white-space:nowrap}
tr.fbgrp th{background:#EEF3FC;text-align:left;font:600 15.5px var(--head);color:var(--navy);padding:11px 14px;border-top:1px solid var(--line)}
tr.fbsub td{background:#F7F9FD;font-weight:600;color:var(--muted);padding:6px 14px 6px 28px;font-size:13.5px}
.cnt{display:inline-block;background:#fff;border:1px solid var(--line);border-radius:999px;padding:0 8px;font-size:12.5px;font-weight:600;color:var(--muted);margin-left:6px}
.fbbulk{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 14px;background:#fff;border:1px solid var(--line);border-radius:12px;margin:0 0 12px;position:sticky;top:72px;z-index:3;box-shadow:0 4px 14px rgba(9,21,93,.1)}
.fbbulk b{margin-right:6px}
.modal.fb{width:min(760px,100%)}
.fbdetail h3.fbtitle{font:600 20px var(--head);color:var(--navy);margin:0 0 12px}
.fbdetail h4{font:600 14px var(--body);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:18px 0 8px}
.fbmeta{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 16px}
.fbmeta span{display:block;font-size:12.5px;color:var(--muted)}
.fbmeta b{font-weight:600;color:var(--navy)}
.fbtext{white-space:pre-wrap;word-break:break-word;background:#F7F9FD;border:1px solid var(--line);border-radius:10px;padding:12px 14px;line-height:1.55}
ol.fbtl{list-style:none;margin:0;padding:0 0 0 14px;border-left:2px solid var(--line)}
.fbtl li{position:relative;padding:0 0 14px 16px;line-height:1.45}
.fbtl li::before{content:"";position:absolute;left:-23px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--dot,#9DB4E6);border:2px solid #fff;box-shadow:0 0 0 1px var(--line)}
.fbtl small{display:block;color:var(--muted);font-size:12.5px}
.fbnote{margin-top:4px;background:#F7F9FD;border-left:3px solid var(--dot,#9DB4E6);padding:6px 10px;border-radius:0 8px 8px 0;white-space:pre-wrap;word-break:break-word}
.fbacts{flex-wrap:wrap;gap:8px}
.fbprompt{width:100%;min-height:360px;font:13px/1.55 ui-monospace,Consolas,monospace;white-space:pre-wrap;word-break:break-word;overflow:auto}
@media (max-width:760px){ .fbstage{font-size:13px} .fbbulk{position:static} }

.btn.warn{background:#fff;color:#B91C1C;border:1.5px solid #E7A3A3}
.btn.warn:hover{background:#FEF2F2;border-color:#B91C1C}
.fbmeta .chip{display:inline-flex;width:auto}

/* v1.5.1 leads: status totals and page buttons at the top */
.ldstages{margin:0 0 12px}
.pager.pagetop{padding:2px 4px 10px}
.pager .row{align-items:center}
.pgno{font-size:13.5px;color:var(--muted);white-space:nowrap;padding:0 4px}
@media (max-width:760px){ .pager{flex-wrap:wrap} }

/* shared tick-box row */
.pickone{display:flex;gap:10px;align-items:flex-start;font-size:15px;cursor:pointer;line-height:1.4}
.pickone input{width:20px;height:20px;margin-top:1px;flex:none;accent-color:var(--blue)}


/* very narrow phones (320 px): the top bar must fit */
@media (max-width:360px){
  .top-right{gap:6px}
  .top-right .btn{padding-left:10px;padding-right:10px;min-width:0}
  header img{max-width:104px;height:auto}
}

/* ===== v1.7.0 public page editor: redesigned for desktop, tablet and phone ===== */
.ped{display:grid;grid-template-columns:232px minmax(0,1fr);gap:22px;align-items:start}
.ped-nav{position:sticky;top:78px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:10px;display:flex;flex-direction:column;gap:2px}
.ped-tab{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:46px;text-align:left;border:0;background:transparent;border-radius:12px;padding:10px 14px;font:600 15px var(--body);color:var(--navy);cursor:pointer;transition:background .15s,color .15s}
.ped-tab:hover{background:var(--paper)}
.ped-tab[aria-selected=true]{background:var(--blue);color:#fff}
.ped-tab:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.ped-tab[aria-selected=true]:focus-visible{outline-color:var(--navy)}
.ped-tl{display:inline-flex;align-items:center}
.ped-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--orange);margin-left:8px;flex:none}
.ped-cnt{min-width:26px;padding:1px 8px;border-radius:99px;background:var(--mist);color:var(--navy);font-size:12.5px;font-weight:700;text-align:center}
.ped-tab[aria-selected=true] .ped-cnt{background:#fff;color:var(--blue)}
.ped-main{min-width:0;display:flex;flex-direction:column;gap:14px}
.ed-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px 30px;min-width:0}
.ed-head{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;margin-bottom:22px}
.ed-head>div:first-child{flex:1 1 340px;min-width:0}
.ed-hacts{flex:0 1 auto;min-width:0}
.ed-head h2{font:600 24px var(--head);color:var(--navy)}
.ed-head p{color:var(--muted);margin-top:4px;max-width:66ch;font-size:15px}
.ed-hacts{display:flex;gap:10px;flex-wrap:wrap}
.ed-h3{font:600 18px var(--head);margin:26px 0 10px}
.ed-pill{display:inline-flex;align-items:center;gap:7px;padding:5px 13px;border-radius:99px;font-size:13.5px;font-weight:700}
.ed-pill::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.ed-pill.ok{background:#DCFCE7;color:#14632F}.ed-pill.warn{background:#FFE9D6;color:#9A3412}
/* fields */
.ed-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:20px 22px}
.ed-f{display:grid;gap:7px;align-content:start;min-width:0}
.ed-f,.ed-sw{grid-column:span 3}
.ed-f.w2{grid-column:span 2}.ed-f.w4{grid-column:span 4}
.ed-f.full,.ed-sw.full{grid-column:1/-1}
.ed-l{font:600 14.5px var(--body);color:var(--navy)}
.ped .ed-in,.ped .ed-ta,.ped .ed-sel{display:block;width:100%;min-height:48px;padding:11px 15px;border:1.5px solid #C3D2EE;border-radius:12px;background:#fff;color:var(--navy);font:500 16px/1.4 var(--body);transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;appearance:none}
.ped .ed-ta{min-height:112px;resize:vertical;line-height:1.55}
.ped .ed-sel{padding-right:44px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%234D5A94' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center/18px;cursor:pointer}
.ped .ed-in::placeholder,.ped .ed-ta::placeholder{color:#7886B3}
.ped .ed-in:hover,.ped .ed-ta:hover,.ped .ed-sel:hover{border-color:#8FA8DD}
.ped .ed-in:focus,.ped .ed-ta:focus,.ped .ed-sel:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(28,88,249,.16)}
.ped .ed-in[readonly]{background:var(--paper);color:#2B386F}
.ed-meta{display:flex;justify-content:space-between;gap:14px;font-size:13px;color:var(--muted);line-height:1.4}
.ed-count{white-space:nowrap;margin-left:auto;font-variant-numeric:tabular-nums}
.ed-note{color:var(--muted);font-size:14.5px}
/* switches */
.ed-sw{position:relative;display:flex;gap:14px;align-items:flex-start;padding:15px 18px;border:1.5px solid #C3D2EE;border-radius:14px;background:#fff;cursor:pointer;transition:border-color .15s,background .15s}
.ed-sw:hover{border-color:#8FA8DD}
.ed-sw:has(input:checked){background:#F2F6FF;border-color:#9DB8F5}
.ed-sw input{position:absolute;opacity:0;width:1px;height:1px}
.ed-track{flex:none;position:relative;width:48px;height:28px;border-radius:99px;background:#AEBCDD;transition:background .2s;margin-top:1px}
.ed-track i{position:absolute;left:3px;top:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(9,21,93,.35);transition:transform .2s}
.ed-sw input:checked+.ed-track{background:var(--blue)}
.ed-sw input:checked+.ed-track i{transform:translateX(20px)}
.ed-sw input:focus-visible+.ed-track{outline:3px solid var(--blue);outline-offset:3px}
.ed-swt b{display:block;font-size:15.5px;line-height:1.3}
.ed-swt small{display:block;color:var(--muted);font-size:14px;margin-top:3px;line-height:1.45}
/* item tiles and the item form */
.ed-bar2{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.ed-strip{display:flex;gap:10px;overflow-x:auto;padding:4px 3px 14px;margin:0 -3px;scroll-snap-type:x proximity;overscroll-behavior-x:contain}
.ed-tile{flex:0 0 auto;width:min(236px,74vw);display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 11px;align-items:center;text-align:left;border:1.5px solid var(--line);background:#fff;border-radius:14px;padding:11px 13px;cursor:pointer;scroll-snap-align:start;transition:border-color .15s,box-shadow .15s,background .15s;min-height:62px}
.ed-tile:hover{border-color:#8FA8DD}
.ed-tile[aria-selected=true]{border-color:var(--blue);background:#F2F6FF;box-shadow:0 0 0 3px rgba(28,88,249,.14)}
.ed-tile:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.ed-n{grid-row:1/3;width:32px;height:32px;border-radius:50%;background:var(--mist);color:var(--blue);display:grid;place-items:center;font:700 14px var(--body)}
.ed-tile[aria-selected=true] .ed-n{background:var(--blue);color:#fff}
.ed-tt{font:600 15px var(--body);color:var(--navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ed-chip{justify-self:start;font-size:12.5px;font-weight:700;padding:1px 9px;border-radius:99px}
.ed-chip.ok{background:#DCFCE7;color:#14632F}.ed-chip.mute{background:#E7EAF4;color:#3E4880}.ed-chip.warn{background:#FFE9D6;color:#9A3412}
.ed-item{border:1.5px solid var(--line);border-radius:18px;padding:22px;background:#FBFCFF}
.ed-ihead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.ed-ihead h3{font:600 18px var(--head)}
.ed-iacts{display:flex;gap:8px;flex-wrap:wrap}
.ed-empty{border:2px dashed var(--line);border-radius:16px;padding:30px;text-align:center;color:var(--muted)}
.ed-empty b{display:block;color:var(--navy);font:600 18px var(--head);margin-bottom:4px}
.ed-empty p{margin:0}
/* simple rows */
.ed-rows{display:grid;gap:12px;margin-bottom:12px}
.ed-row{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:12px 14px;align-items:end;padding:14px;border:1.5px solid var(--line);border-radius:14px;background:#FBFCFF}
.ed-row .ed-meta{display:none}
.ed-ra{display:flex;gap:8px;align-items:center;min-height:48px}
/* overview and links */
.ed-live{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:18px 20px;border-radius:16px;background:linear-gradient(135deg,var(--navy),var(--indigo) 60%,var(--blue));color:#fff}
.ed-live b{display:block;font:600 19px var(--head)}
.ed-url{display:block;color:#CFE0FF;font-size:14.5px;word-break:break-all;margin-top:2px}
.ed-live .btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}
.ed-live .btn.ghost:hover{background:rgba(255,255,255,.14)}
.ed-live .btn:not(.ghost){background:var(--orange);border-color:var(--orange);color:var(--navy)}
.ed-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}
.ed-stat{border:1.5px solid var(--line);border-radius:16px;padding:16px 18px;background:#fff}
.ed-sl{display:block;font:700 12.5px var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ed-stat b{display:block;font:700 30px var(--head);color:var(--navy);margin:4px 0 2px}
.ed-stat b small{font:500 15px var(--body);color:var(--muted)}
.ed-stat p{color:var(--muted);font-size:14px;line-height:1.45;margin:0 0 8px}
.ed-stat a{font-weight:700;font-size:14.5px}
.ed-check{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ed-check li{display:flex;gap:12px;align-items:flex-start;line-height:1.5}
.ed-ck{flex:none;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:13px;color:#fff;margin-top:1px}
.ed-check li.ok .ed-ck{background:var(--ok)}.ed-check li.todo .ed-ck{background:var(--orange);color:var(--navy)}
.ed-callout{margin-top:20px;padding:14px 18px;border-radius:14px;line-height:1.5;font-size:15px}
.ed-callout.warn{background:#FFF4E5;border:1px solid #F5C98A;color:#6B3A07}
.ed-links{display:grid;gap:12px;margin-top:20px}
.ed-link{display:grid;grid-template-columns:190px minmax(0,1fr) auto;gap:12px 14px;align-items:center;padding:14px 16px;border:1.5px solid var(--line);border-radius:14px}
.ed-link b{display:block}.ed-link span{display:block;color:var(--muted);font-size:13.5px}
/* the save bar stays in view */
.ed-savebar{position:sticky;bottom:12px;z-index:6;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:12px 16px;background:rgba(255,255,255,.97);border:1px solid var(--line);border-radius:16px;box-shadow:0 10px 30px rgba(9,21,93,.14);backdrop-filter:blur(6px)}
.ed-savebar.dirty{border-color:#F5C98A;box-shadow:0 10px 30px rgba(194,65,12,.18)}
.ed-state{display:flex;align-items:center;gap:10px;font-weight:600;color:var(--muted)}
.ed-savebar.dirty .ed-state{color:#9A3412}
.ed-led{width:10px;height:10px;border-radius:50%;background:var(--ok)}
.ed-savebar.dirty .ed-led{background:var(--orange)}
.ed-sacts{display:flex;gap:10px}
.ed-sacts .btn[disabled]{opacity:.5;cursor:default}
/* tablet and phone: the menu becomes a row you can slide sideways */
@media (max-width:1000px){
  .ped{grid-template-columns:minmax(0,1fr);gap:14px}
  .ped-nav{position:sticky;top:64px;z-index:7;flex-direction:row;overflow-x:auto;padding:8px;border-radius:16px;gap:6px;scroll-snap-type:x proximity;box-shadow:0 6px 18px rgba(9,21,93,.08)}
  .ped-tab{flex:0 0 auto;width:auto;white-space:nowrap;scroll-snap-align:start;gap:8px}
  .ed-card{padding:22px 20px;border-radius:18px}
}
@media (max-width:820px){ .ed-f.w4{grid-column:1/-1}.ed-f.w2{grid-column:span 3} }
.ed-short{display:none}
@media (max-width:700px){
  .ed-grid{grid-template-columns:minmax(0,1fr)}
  .ed-f,.ed-sw,.ed-f.w2,.ed-f.w4{grid-column:1/-1}
  .ed-long{display:none}.ed-short{display:inline}
  .ed-savebar{flex-wrap:nowrap}
  .ed-sacts{width:auto;flex:none}.ed-sacts .btn{flex:none;padding:8px 16px}
  .ed-state{min-width:0}
  .ed-row{grid-template-columns:minmax(0,1fr)}
  .ed-link{grid-template-columns:minmax(0,1fr)}
  .ed-item{padding:16px}
  .ed-head h2{font-size:21px}
  .ed-savebar{bottom:8px;padding:10px 12px}
  .ed-live{padding:16px}
  .ed-hacts .btn,.ed-iacts .btn{flex:1 1 auto;justify-content:center}
}
@media (prefers-reduced-motion:reduce){.ed-track,.ed-track i,.ped .ed-in,.ped .ed-ta,.ped .ed-sel,.ed-tile,.ed-sw,.ped-tab{transition:none}}

.ped .btn.small{min-height:40px;padding:8px 15px}
.ped .btn{min-height:44px}
.ped .btn.small{min-height:40px}

@media (max-width:380px){ .ed-savebar{flex-wrap:wrap} .ed-sacts{width:100%} .ed-sacts .btn{flex:1;justify-content:center} }

.ed-callout+.ed-bar2{margin-top:16px}
.ed-head+.ed-callout{margin-top:0;margin-bottom:16px}

/* fee editor */
.fe-prices{display:grid;gap:12px}
.fe-pr{display:grid;grid-template-columns:70px minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:end;padding:12px 14px;border:1.5px solid var(--line);border-radius:14px;background:#FBFCFF}
.fe-pr>b{font:700 18px var(--head);color:var(--blue);padding-bottom:12px}
.ped .ed-row.fe-cur{grid-template-columns:110px minmax(0,1fr) 150px auto}
@media (max-width:700px){ .fe-pr{grid-template-columns:minmax(0,1fr)}.fe-pr>b{padding-bottom:0}.ped .ed-row.fe-cur{grid-template-columns:minmax(0,1fr)} }

/* ===== exams ===== */
.ex-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:18px}
.ex-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;display:flex;flex-direction:column;gap:10px}
.ex-ch{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}.ex-ch h2{font:600 19px var(--head);margin:0}
.ex-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:4px 0}.ex-meta div{background:var(--paper);border-radius:10px;padding:8px 10px}.ex-meta dt{font-size:12px;color:var(--muted);font-weight:600}.ex-meta dd{margin:0;font:700 17px var(--head)}
.ex-counts{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:14px;color:var(--muted)}.ex-counts .hot{color:#9A3412;font-weight:700}
.ex-card .btn{margin-top:auto;align-self:flex-start}
.ex-addbar{display:flex;gap:10px 14px;align-items:center;flex-wrap:wrap}.ex-addbtns{display:flex;gap:8px;flex-wrap:wrap}
.ex-opts{display:grid;gap:10px;margin-bottom:10px}
.ex-opt{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center}
.ex-ok{display:flex;gap:8px;align-items:center;font-weight:600;font-size:14px;min-height:48px;padding:0 12px;border:1.5px solid #C3D2EE;border-radius:12px;background:#fff;cursor:pointer}.ex-ok input{width:20px;height:20px;accent-color:var(--blue)}
.ex-seg{display:inline-flex;border:1.5px solid #C3D2EE;border-radius:12px;overflow:hidden}.ex-seg label{cursor:pointer}.ex-seg input{position:absolute;opacity:0}.ex-seg span{display:block;padding:12px 28px;font-weight:600}.ex-seg input:checked+span{background:var(--blue);color:#fff}.ex-seg input:focus-visible+span{outline:3px solid var(--navy);outline-offset:-3px}
.ex-parts{display:grid;gap:14px;margin-bottom:12px}
.ex-part{border:1.5px solid #C3D2EE;border-radius:16px;padding:16px;background:#fff}.ex-part .ed-ihead h4{font:600 16px var(--head);margin:0}
.ex-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;max-height:340px;overflow:auto;padding:4px}
.ex-pk{display:flex;gap:12px;align-items:center;border:1.5px solid var(--line);border-radius:12px;padding:10px 14px;cursor:pointer;min-height:56px;background:#fff}.ex-pk.off{opacity:.55;cursor:default}.ex-pk input{width:20px;height:20px;accent-color:var(--blue)}.ex-pk span{display:grid}.ex-pk small{color:var(--muted)}
.ex-tw{position:relative;overflow-x:auto;border:1px solid var(--line);border-radius:14px}
.ex-table{width:100%;border-collapse:collapse;font-size:15px}.ex-table th{text-align:left;font-size:12.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);padding:12px 14px;background:var(--paper);white-space:nowrap}.ex-table td{padding:12px 14px;border-top:1px solid var(--line);vertical-align:middle}
.ex-code{font:700 15px ui-monospace,Menlo,Consolas,monospace;letter-spacing:.06em;background:var(--paper);padding:4px 9px;border-radius:8px}
.ex-acts{display:flex;gap:6px;flex-wrap:wrap}
.ex-chips{display:flex;gap:8px;flex-wrap:wrap}.ex-chip{min-height:40px;padding:6px 16px;border:1.5px solid var(--line);border-radius:99px;background:#fff;font:600 14.5px var(--body);color:var(--navy);cursor:pointer}.ex-chip[aria-pressed=true]{background:var(--blue);border-color:var(--blue);color:#fff}
.ex-items{display:grid;gap:14px;margin-top:18px}
.ex-ri{border:1.5px solid var(--line);border-radius:16px;padding:18px;background:#FBFCFF}.ex-ri.need{border-color:var(--orange);background:#FFFAF5}
.ex-rih{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.ex-rim{color:var(--muted);font-size:14px;margin-left:auto}
.ex-rq{font-weight:500;font-size:16.5px;margin:0 0 10px}.pre{white-space:pre-wrap;overflow-wrap:anywhere}
.ex-ra{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px}.ex-ra>b{display:block;font-size:13px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.ex-ol{list-style:none;margin:0;padding:0;display:grid;gap:4px}.ex-ol li{display:flex;gap:8px;align-items:baseline}.ex-ol li.sel{font-weight:700}.ex-ol li>span{width:18px;flex:none}.okt{color:#14632F;font-weight:700}.badt{color:#B91C1C;font-weight:700}
.ex-written{background:var(--paper);border-radius:10px;padding:12px 14px;margin-bottom:4px;max-height:340px;overflow:auto}
.ex-guide{background:#F2F6FF;border:1px solid #C9D8F7;border-radius:12px;padding:10px 14px;margin-bottom:10px}.ex-guide p{margin:4px 0 0}
.ex-mark{display:grid;grid-template-columns:200px minmax(0,1fr);gap:14px;align-items:start}
.ex-case summary,.ex-an summary{cursor:pointer;font-weight:600;padding:6px 0}.ex-an{border:1.5px solid var(--line);border-radius:14px;padding:6px 16px;margin-top:12px}.ex-an-b{padding:6px 0 12px}
.ex-hist{margin:6px 0 10px;padding-left:20px;display:grid;gap:4px;font-size:14.5px}
.ex-revbar{position:sticky;bottom:12px;z-index:6;display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:18px;padding:12px 16px;background:rgba(255,255,255,.97);border:1px solid var(--line);border-radius:16px;box-shadow:0 10px 30px rgba(9,21,93,.14)}
@media (max-width:900px){ .ex-meta{grid-template-columns:repeat(2,1fr)} }
@media (max-width:700px){
  .ex-mark{grid-template-columns:minmax(0,1fr)} .ex-opt{grid-template-columns:minmax(0,1fr) auto}.ex-opt .ex-ok{grid-column:1/-1}
  .ex-table thead{display:none}.ex-table,.ex-table tbody,.ex-table tr,.ex-table td{display:block}.ex-table tr{border-top:1px solid var(--line);padding:10px 4px}.ex-table td{border:0;padding:4px 12px}.ex-table td::before{content:attr(data-l);display:block;font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.ex-table td[data-l="Actions"]::before,.ex-table td[data-l="Share or change"]::before{display:none}
  .ex-revbar .ed-sacts{width:100%;flex-wrap:wrap}.ex-revbar .btn{flex:1;justify-content:center}
}

/* the top bar is 64px and sticky: anything that sticks or scrolls into view must clear it */
html{scroll-padding-top:84px}
@media (max-width:1000px){ html{scroll-padding-top:140px} }

.ex-tw:focus-visible{outline:3px solid var(--blue);outline-offset:2px}

/* bars used in the exam analysis and the review screen */
.exbarrow{margin:0 0 14px}.exbl{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:5px;font-size:15.5px}
.exbt{height:12px;border-radius:99px;background:var(--mist);overflow:hidden}.exbt i{display:block;height:100%;background:var(--blue);border-radius:99px}.exbt i.good{background:#1E9E4F}.exbt i.low{background:var(--orange)}
.ed-tile .ed-chip{white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}

/* ===== certificates: five A4 landscape templates (297 x 210 mm) ===== */
.certpage{position:relative;width:297mm;height:210mm;overflow:hidden;box-sizing:border-box;background:#fff;color:#09155D;font-family:'DM Sans',system-ui,sans-serif;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.certpage *{box-sizing:border-box}
.certpage img{display:block}
.certpage .nm{white-space:nowrap}
.certpage .pos{position:absolute}
/* 1. Classic: the Teknosys design */
.ct-classic{background:radial-gradient(120% 140% at 70% 10%,#0B1F6B 0%,#06124A 55%,#040B33 100%)}
.ct-classic .b{position:absolute;display:block;transform:skewX(-32deg);background:linear-gradient(180deg,#2E78D8,#1A3FA8)}
.ct-classic .b1{left:128mm;top:-14mm;width:26mm;height:24mm;background:linear-gradient(180deg,#27499F,#183086)}.ct-classic .b2{left:160mm;top:-14mm;width:30mm;height:24mm;background:linear-gradient(180deg,#4F94E2,#2A63C9)}.ct-classic .b3{left:233mm;top:-14mm;width:34mm;height:24mm;background:linear-gradient(180deg,#2A56C0,#1C3AA0)}
.ct-classic .b4{left:-6mm;top:152mm;width:22mm;height:70mm;background:linear-gradient(180deg,#3F86DD,#1F4CB4)}.ct-classic .b5{left:140mm;top:196mm;width:46mm;height:24mm;background:linear-gradient(180deg,#4F94E2,#2A63C9)}.ct-classic .b6{left:200mm;top:196mm;width:30mm;height:24mm;background:linear-gradient(180deg,#27499F,#183086)}.ct-classic .b7{left:262mm;top:190mm;width:30mm;height:30mm;background:linear-gradient(180deg,#2E78D8,#1A3FA8)}
.ct-classic .card{position:absolute;left:14mm;top:15mm;width:269mm;height:180mm;background:#fff;border-radius:2.4mm}
.ct-classic .clogo{position:absolute;right:20mm;top:11mm;width:36mm}
.ct-classic .h1{position:absolute;left:17mm;top:13mm;font:800 54pt/1 Outfit,sans-serif;letter-spacing:.01em;color:#0A1D5E}
.ct-classic .h2{position:absolute;left:18mm;top:37mm;font:500 17pt/1 Outfit,sans-serif;letter-spacing:.3em;color:#1C4FA0}
.ct-classic .intro{position:absolute;left:18mm;top:62mm;margin:0;font:500 10.5pt/1 'DM Sans';letter-spacing:.07em}
.ct-classic .name{position:absolute;left:18mm;top:73mm;right:18mm;font:500 30pt/1.15 Outfit,sans-serif;color:#0A1342}
.ct-classic .rule{position:absolute;left:18mm;top:91mm;width:104mm;height:.7mm;background:#0A1342}
.ct-classic .body{position:absolute;left:18mm;top:96.5mm;margin:0;font:500 10.5pt/1 'DM Sans';letter-spacing:.06em}
.ct-classic .course{position:absolute;left:18mm;right:18mm;top:104mm;font:700 italic 19pt/1.25 Outfit,sans-serif;color:#1B3A9C}
.ct-classic .org{position:absolute;left:18mm;top:121mm;margin:0;font:500 10.5pt/1.55 'DM Sans';letter-spacing:.06em}
.ct-classic .sign{position:absolute;left:18mm;top:136mm;width:66mm}.ct-classic .sign img{height:20mm;width:auto;margin-bottom:-1mm}.ct-classic .sign i{display:block;height:.5mm;background:#0A1342;width:50mm;margin:1mm 0 2mm}.ct-classic .sign b{display:block;font:500 12.5pt/1.2 Outfit;letter-spacing:.03em}.ct-classic .sign span{display:block;font-size:9.5pt;margin-top:1.5mm}
.ct-classic .seal{position:absolute;left:108mm;top:128mm;width:50mm;height:50mm}
.ct-classic .no{position:absolute;left:175mm;top:157mm;font:500 9.5pt/1.2 'DM Sans'}.ct-classic .no b{font-weight:700}
/* 2. Elegant: cream paper, gold double border, serif type */
.ct-elegant{background:#FBF6EA;font-family:Georgia,'Times New Roman',serif;color:#14214F}
.ct-elegant .fr1{position:absolute;inset:7mm;border:1.1mm solid #B58A2B}.ct-elegant .fr2{position:absolute;inset:11.5mm;border:.35mm solid #B58A2B}
.ct-elegant .cn{position:absolute;width:9mm;height:9mm;background:#B58A2B;transform:rotate(45deg)}.ct-elegant .c1{left:2.6mm;top:2.6mm}.ct-elegant .c2{right:2.6mm;top:2.6mm}.ct-elegant .c3{left:2.6mm;bottom:2.6mm}.ct-elegant .c4{right:2.6mm;bottom:2.6mm}
.ct-elegant .clogo{position:absolute;left:50%;top:17mm;width:32mm;transform:translateX(-50%)}
.ct-elegant .h1{position:absolute;left:0;right:0;top:45mm;text-align:center;font:400 40pt/1 Georgia,serif;letter-spacing:.14em;text-transform:uppercase;color:#14214F}
.ct-elegant .h2{position:absolute;left:0;right:0;top:63mm;text-align:center;font:italic 400 19pt/1 Georgia,serif;color:#9A7420;letter-spacing:.08em}
.ct-elegant .orn{position:absolute;left:50%;top:75mm;width:60mm;height:.5mm;background:linear-gradient(90deg,transparent,#B58A2B,transparent);transform:translateX(-50%)}
.ct-elegant .intro{position:absolute;left:0;right:0;top:80mm;text-align:center;margin:0;font:italic 13pt/1 Georgia,serif}
.ct-elegant .name{position:absolute;left:20mm;right:20mm;top:91mm;text-align:center;font:italic 400 34pt/1.15 Georgia,serif;color:#14214F}
.ct-elegant .rule{position:absolute;left:62mm;right:62mm;top:109mm;height:.4mm;background:#B58A2B}
.ct-elegant .body{position:absolute;left:0;right:0;top:114mm;text-align:center;margin:0;font:400 12.5pt/1 Georgia,serif}
.ct-elegant .course{position:absolute;left:20mm;right:20mm;top:122mm;text-align:center;font:700 21pt/1.25 Georgia,serif;color:#14214F}
.ct-elegant .org{position:absolute;left:0;right:0;top:138mm;text-align:center;margin:0;font:400 11.5pt/1.5 Georgia,serif}
.ct-elegant .sign{position:absolute;left:36mm;top:152mm;width:64mm;text-align:center}.ct-elegant .sign img{height:16mm;width:auto;margin:0 auto -1mm}.ct-elegant .sign i{display:block;height:.4mm;background:#14214F;margin:1mm 0 1.5mm}.ct-elegant .sign b{display:block;font:700 11.5pt/1.2 Georgia,serif}.ct-elegant .sign span{display:block;font:italic 10pt Georgia,serif}
.ct-elegant .seal{position:absolute;left:124mm;top:143mm;width:48mm;height:48mm}
.ct-elegant .no{position:absolute;right:36mm;top:170mm;width:64mm;text-align:center;font:400 10pt/1.3 Georgia,serif}.ct-elegant .no b{display:block;font-weight:700}
/* 3. Modern: white, a bold side bar, left-aligned type */
.ct-modern .bar{position:absolute;left:0;top:0;bottom:0;width:26mm;background:linear-gradient(180deg,#09155D,#1F299B 60%,#1C58F9)}.ct-modern .bar2{position:absolute;left:26mm;top:0;bottom:0;width:3.2mm;background:#F05928}
.ct-modern .clogo{position:absolute;right:24mm;top:16mm;width:34mm}
.ct-modern .clab{position:absolute;left:46mm;top:30mm;font:700 11.5pt/1 'DM Sans';letter-spacing:.34em;color:#C2410C}
.ct-modern .h1{position:absolute;left:46mm;top:40mm;font:700 36pt/1.05 Outfit,sans-serif;color:#09155D}
.ct-modern .intro{position:absolute;left:46mm;top:72mm;margin:0;font:500 12pt/1 'DM Sans';color:#4B5A94}
.ct-modern .name{position:absolute;left:46mm;right:24mm;top:82mm;font:700 36pt/1.1 Outfit,sans-serif;color:#1C58F9}
.ct-modern .rule{position:absolute;left:46mm;top:104mm;width:34mm;height:1.4mm;background:#F05928;border-radius:1mm}
.ct-modern .body{position:absolute;left:46mm;top:112mm;margin:0;font:500 12pt/1 'DM Sans';color:#4B5A94}
.ct-modern .course{position:absolute;left:46mm;right:24mm;top:120mm;font:700 21pt/1.25 Outfit,sans-serif;color:#09155D}
.ct-modern .org{position:absolute;left:46mm;top:138mm;margin:0;font:500 11.5pt/1.55 'DM Sans';color:#2B386F}
.ct-modern .sign{position:absolute;left:46mm;top:160mm;width:70mm}.ct-modern .sign img{height:17mm;width:auto;margin-bottom:-1mm}.ct-modern .sign i{display:block;height:.5mm;background:#09155D;width:56mm;margin:1mm 0 2mm}.ct-modern .sign b{display:block;font:600 12pt/1.2 Outfit}.ct-modern .sign span{display:block;font-size:9.5pt;color:#4B5A94;margin-top:1mm}
.ct-modern .seal{position:absolute;right:30mm;top:140mm;width:46mm;height:46mm}
.ct-modern .no{position:absolute;left:46mm;bottom:12mm;font:500 9.5pt/1 'DM Sans';color:#4B5A94}.ct-modern .no b{color:#09155D}
/* 4. Corporate: a navy panel and a clean right side */
.ct-corporate .pn{position:absolute;left:0;top:0;bottom:0;width:84mm;background:linear-gradient(170deg,#09155D 0%,#1F299B 70%,#1C58F9 140%)}
.ct-corporate .pn::after{content:"";position:absolute;right:-1px;top:0;bottom:0;width:3mm;background:#F05928}
.ct-corporate .lgbox{position:absolute;left:14mm;top:16mm;width:56mm;background:#fff;border-radius:3mm;padding:5mm 6mm}.ct-corporate .lgbox img{width:100%}
.ct-corporate .pt{position:absolute;left:14mm;top:62mm;width:58mm;color:#fff;font:600 17pt/1.3 Outfit,sans-serif}.ct-corporate .pt span{display:block;margin-top:3mm;font:500 10pt/1.5 'DM Sans';color:#BFD0FF;letter-spacing:.04em}
.ct-corporate .seal{position:absolute;left:17mm;top:140mm;width:50mm;height:50mm;background:#fff;border-radius:50%;padding:1mm}
.ct-corporate .h1{position:absolute;left:104mm;top:22mm;font:700 31pt/1.1 Outfit,sans-serif;color:#09155D;text-transform:uppercase;letter-spacing:.03em}
.ct-corporate .h2{position:absolute;left:104mm;top:46mm;font:500 13pt/1 Outfit,sans-serif;letter-spacing:.3em;color:#1C58F9}
.ct-corporate .l1{position:absolute;left:104mm;top:58mm;width:166mm;height:.5mm;background:#C9D8F7}
.ct-corporate .intro{position:absolute;left:104mm;top:70mm;margin:0;font:500 11.5pt/1 'DM Sans';color:#4B5A94}
.ct-corporate .name{position:absolute;left:104mm;right:20mm;top:80mm;font:600 30pt/1.15 Outfit,sans-serif;color:#09155D}
.ct-corporate .body{position:absolute;left:104mm;top:104mm;margin:0;font:500 11.5pt/1 'DM Sans';color:#4B5A94}
.ct-corporate .course{position:absolute;left:104mm;right:20mm;top:112mm;font:700 20pt/1.25 Outfit,sans-serif;color:#1C58F9}
.ct-corporate .org{position:absolute;left:104mm;top:130mm;margin:0;font:500 11pt/1.55 'DM Sans';color:#2B386F}
.ct-corporate .sign{position:absolute;left:104mm;top:152mm;width:70mm}.ct-corporate .sign img{height:17mm;width:auto;margin-bottom:-1mm}.ct-corporate .sign i{display:block;height:.5mm;background:#09155D;width:56mm;margin:1mm 0 2mm}.ct-corporate .sign b{display:block;font:600 12pt/1.2 Outfit}.ct-corporate .sign span{display:block;font-size:9.5pt;color:#4B5A94;margin-top:1mm}
.ct-corporate .no{position:absolute;right:20mm;bottom:14mm;font:500 9.5pt/1 'DM Sans';color:#4B5A94}.ct-corporate .no b{color:#09155D}
/* 5. Ribbon: a banner across the top and a large seal */
.ct-ribbon{background:linear-gradient(135deg,#E6EEFF 0%,#FFFFFF 52%,#FFF0E9 100%)}
.ct-ribbon .rb{position:absolute;left:0;right:0;top:20mm;height:22mm;background:linear-gradient(90deg,#09155D,#1F299B 55%,#1C58F9);box-shadow:0 1.2mm 0 rgba(9,21,93,.12)}
.ct-ribbon .rt{position:absolute;left:0;right:0;top:20mm;height:22mm;display:flex;align-items:center;justify-content:center;color:#fff;font:700 23pt/1 Outfit,sans-serif;letter-spacing:.24em}
.ct-ribbon .fl,.ct-ribbon .fr{position:absolute;top:28mm;width:24mm;height:22mm;background:#F05928;z-index:0}.ct-ribbon .fl{left:8mm;clip-path:polygon(0 0,100% 0,100% 100%,0 100%,22% 50%)}.ct-ribbon .fr{right:8mm;clip-path:polygon(0 0,100% 0,78% 50%,100% 100%,0 100%)}
.ct-ribbon .rb{z-index:1}.ct-ribbon .rt{z-index:2}
.ct-ribbon .clogo{position:absolute;left:50%;top:50mm;width:30mm;transform:translateX(-50%)}
.ct-ribbon .intro{position:absolute;left:0;right:0;top:75mm;text-align:center;margin:0;font:500 12pt/1 'DM Sans';letter-spacing:.06em;color:#4B5A94}
.ct-ribbon .name{position:absolute;left:20mm;right:20mm;top:85mm;text-align:center;font:600 34pt/1.15 Outfit,sans-serif;color:#1C58F9}
.ct-ribbon .rule{position:absolute;left:50%;top:104mm;width:80mm;height:.6mm;background:#F05928;transform:translateX(-50%)}
.ct-ribbon .body{position:absolute;left:0;right:0;top:110mm;text-align:center;margin:0;font:500 12pt/1 'DM Sans';color:#4B5A94}
.ct-ribbon .course{position:absolute;left:25mm;right:25mm;top:118mm;text-align:center;font:700 21pt/1.25 Outfit,sans-serif;color:#09155D}
.ct-ribbon .org{position:absolute;left:0;right:0;top:134mm;text-align:center;margin:0;font:500 11pt/1.55 'DM Sans';color:#2B386F}
.ct-ribbon .sign{position:absolute;left:26mm;top:156mm;width:70mm}.ct-ribbon .sign img{height:16mm;width:auto;margin-bottom:-1mm}.ct-ribbon .sign i{display:block;height:.5mm;background:#09155D;width:56mm;margin:1mm 0 2mm}.ct-ribbon .sign b{display:block;font:600 12pt/1.2 Outfit}.ct-ribbon .sign span{display:block;font-size:9.5pt;color:#4B5A94;margin-top:1mm}
.ct-ribbon .seal{position:absolute;left:119mm;top:148mm;width:56mm;height:56mm}
.ct-ribbon .no{position:absolute;right:26mm;top:176mm;font:500 9.5pt/1.3 'DM Sans';color:#4B5A94;text-align:right}.ct-ribbon .no b{display:block;color:#09155D}
.certpage .gr{position:absolute;left:0;right:0;text-align:center;font:600 10.5pt 'DM Sans'}
/* certificate screens */
.ct-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px}
.ct-tile{background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:14px 16px;text-align:left;cursor:pointer;font:inherit;color:inherit}.ct-tile:hover{border-color:#8FA8DD}.ct-tile[aria-pressed=true]{border-color:var(--blue);background:#F2F6FF;box-shadow:0 0 0 3px rgba(28,88,249,.12)}
.ct-tile span{display:block;font-size:12.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-weight:700}.ct-tile b{display:block;font:700 28px var(--head);margin-top:2px}
.ct-filters{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin-bottom:14px}.ct-filters .ed-f{min-width:220px}
.ct-bulk{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:0 0 12px;padding:10px 14px;background:#fff;border:1px solid var(--line);border-radius:14px;position:sticky;top:76px;z-index:5;box-shadow:0 6px 18px rgba(9,21,93,.08)}
.ct-tpls{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;margin:14px 0}
.ct-tpl{background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:10px;cursor:pointer;text-align:left;font:inherit;color:inherit}.ct-tpl[aria-pressed=true]{border-color:var(--blue);box-shadow:0 0 0 3px rgba(28,88,249,.14)}.ct-tpl b{display:block;margin-top:8px}.ct-tpl small{color:var(--muted)}
.ct-thumb{position:relative;width:100%;aspect-ratio:297/210;overflow:hidden;border-radius:8px;border:1px solid var(--line);background:#fff}.ct-thumb>.certpage{position:absolute;left:0;top:0;transform-origin:0 0}
.ct-viewport{position:relative;width:100%;overflow:hidden;border-radius:10px;border:1px solid var(--line);background:#E7ECF7}.ct-viewport>.certpage{position:absolute;left:0;top:0;transform-origin:0 0}
.modal.ctwide{max-width:min(1040px,96vw)}
@media (max-width:700px){ .ct-bulk{top:70px} }

@media print{ #print-root.certs .certpage{break-after:page;page-break-after:always;margin:0} #print-root.certs .certpage:last-child{break-after:auto;page-break-after:auto} #print-root.certs{display:block} }

/* the real artwork from the Academy's certificate: ribbon background, stacked logo, CERTIFIED seal, signature */
.ct-classic{background-color:#0A1233;background-size:cover;background-position:center;background-repeat:no-repeat}
.ct-classic .clogo{right:19mm;top:10mm;width:35mm}
.certpage .sign img{height:13mm!important;width:auto}
.ct-classic .sign{top:140mm}.ct-classic .sign i{margin-top:1.5mm}
.ct-elegant .clogo{width:24mm;top:15mm}
.ct-modern .clogo{width:30mm;top:14mm}
.ct-corporate .lgbox{left:18mm;width:48mm;padding:5mm 6mm 4mm}.ct-corporate .pt{top:68mm}
.ct-ribbon .clogo{width:27mm;top:48mm}

.ct-elegant .seal{top:150mm;width:43mm;height:43mm;left:127mm}.ct-elegant .org{top:136mm}
.ct-ribbon .org{top:132mm}.ct-ribbon .seal{top:151mm;width:52mm;height:52mm;left:122.5mm}

#ctBulk{display:contents}
.ct-bulk .btn,#ctTable .btn,#ctTable .btn.small,.ct-filters .btn{min-height:40px}
.ct-bulk .btn{padding:8px 16px}

.m-foot .btn,.head-tools .btn{min-height:40px}

/* .ped is also used only as a style scope (field look) on the certificate table and in dialogs: it must not lay them out in columns */
#ctTable.ped,.ct-filters.ped,.m-body.ped,.modal .ped{display:block}
.ct-filters.ped{display:flex}

.ex-tw{background:#fff}
.ex-table .ed-chip,.ex-code{white-space:nowrap}
@media (max-width:700px){ .ex-table tr{background:#fff} }

.m-body.ped>p{margin:0 0 14px}

/* left menu: titled groups */
.navgrp{display:flex;flex-direction:column;gap:2px;margin-top:6px}
.navh{padding:12px 12px 4px;font:700 11.5px var(--body);letter-spacing:.12em;text-transform:uppercase;color:#9FB1E6}
@media (max-width:1000px){
  .navgrp{display:contents}.navh{display:none}
  .navgrp:not(:first-of-type)>a:first-of-type{margin-left:8px;position:relative}
  .navgrp:not(:first-of-type)>a:first-of-type::before{content:"";position:absolute;left:-7px;top:22%;bottom:22%;width:1px;background:rgba(255,255,255,.28)}
}

/* a long menu stays in view and scrolls by itself (it no longer runs off the bottom of a laptop screen) */
@media (min-width:1001px){ .side{position:sticky;top:64px;align-self:start;height:calc(100vh - 64px);overflow-y:auto;overscroll-behavior:contain} }

/* very narrow phones: the batch and trainer cards may be narrower than their usual minimum */
.batch-grid{grid-template-columns:repeat(auto-fill,minmax(min(310px,100%),1fr))}
.trainer-grid{grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr))}

/* landing forms */
.lp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(330px,100%),1fr));gap:16px}
.lp-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:10px;min-width:0}
.lp-card .hd{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.lp-card .lp-t{margin:0;font:600 19px/1.25 var(--head);color:var(--navy);overflow-wrap:anywhere}
.lp-dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0}.lp-dl dt{color:var(--muted);font-size:14px}.lp-dl dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.lp-acts{display:flex;gap:8px;align-items:center;margin-top:auto;padding-top:6px;flex-wrap:wrap}
.lp-row{margin-bottom:14px}.lp-steps{margin:0 0 16px;padding-left:22px;display:grid;gap:6px;max-width:80ch}.lp-code{font-family:ui-monospace,Consolas,monospace;font-size:13px;line-height:1.5;white-space:pre;overflow:auto}
.lp-callout,#lpBody .ed-note{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:12px 14px;color:var(--navy);font-size:14.5px}
#lpBody .ed-note.ok{background:#E8F7EE;border-color:#9AD8B1;color:#14532D}#lpBody .ed-note.warn{background:#FFF1E6;border-color:#F5C98A;color:#7C2D12}
.ed-sub{font-family:var(--head);font-size:18px;margin:6px 0 10px;color:var(--navy)}

#lpBody td .nm{min-height:44px;display:inline-flex;align-items:center}
.lp-row .ed-iacts .icon-btn{min-width:44px;min-height:44px}

.lp-keybox{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:11px 14px}.lp-keybox code{font-size:14.5px;color:var(--navy);font-weight:700}
.lp-adv{margin:0 0 16px;border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:#fff}.lp-adv summary{cursor:pointer;font-weight:600;color:var(--navy);min-height:32px;display:flex;align-items:center}
.lp-steps code,.ed-note code{background:#E8EEFA;padding:1px 6px;border-radius:5px;font-size:13px}
.linkbtn{background:none;border:0;padding:0;color:var(--blue);text-decoration:underline;font:inherit;cursor:pointer;min-height:24px}

.ed-live.off{background:#FFF1E6;border-color:#F5C98A}.ed-live.off b{color:#7C2D12}
.ed-live.off .ed-url{color:#7C2D12;word-break:normal;font-size:15px;line-height:1.5;margin-top:4px}
