@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Manrope:wght@500;600;700;800&display=swap');
:root{--ink:#102033;--muted:#68778d;--soft:#f6f8fc;--line:#e1e8f4;--brand:#1f6feb;--brand2:#0b3d91;--accent:#12b886;--danger:#dc3545;--warn:#f59e0b;--ok:#10b981;--card:#fff;--shadow:0 18px 48px rgba(15,35,70,.10);--r:22px}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:radial-gradient(circle at top left,#eaf2ff 0,#f7f9fd 34%,#fff 100%)}a{color:inherit;text-decoration:none}.shell{display:flex;min-height:100vh}.sidebar{width:290px;background:#081629;color:#fff;padding:22px;position:fixed;top:0;left:0;bottom:0;overflow:auto}.brand{display:flex;align-items:center;gap:12px;margin-bottom:28px}.mark{width:43px;height:43px;border-radius:14px;background:linear-gradient(135deg,#60a5fa,#22d3ee);display:grid;place-items:center;font-weight:900;color:#06101e;box-shadow:0 10px 24px rgba(96,165,250,.22)}.brand h1{font-size:18px;margin:0;letter-spacing:.08em}.brand p{font-size:12px;margin:2px 0 0;color:#9fb3cd}.nav-section{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#7388a8;margin:22px 8px 8px}.nav a{display:flex;align-items:center;gap:10px;padding:12px 13px;border-radius:15px;color:#d8e4f4;margin:4px 0;font-weight:750}.nav a:hover,.nav a.active{background:rgba(255,255,255,.11);color:#fff}.main{margin-left:290px;width:calc(100% - 290px);min-height:100vh}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;background:rgba(255,255,255,.82);backdrop-filter:blur(14px);position:sticky;top:0;z-index:5;border-bottom:1px solid var(--line)}.topbar .title{font-weight:850}.topbar .user{font-size:13px;color:var(--muted)}.content{padding:30px;max-width:1440px}.page-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:18px}.page-head h2,.page-head h3{margin:0 0 6px}.page-head.compact{margin-bottom:10px}.eyebrow{margin:0 0 7px;color:#1f6feb;text-transform:uppercase;letter-spacing:.12em;font-weight:850;font-size:11px}.hero{border-radius:28px;background:linear-gradient(135deg,#0b1d3b,#174ea6 58%,#22d3ee);padding:30px;color:#fff;box-shadow:var(--shadow);position:relative;overflow:hidden}.hero.calm{background:linear-gradient(135deg,#13294b,#1f6feb)}.hero:after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;right:-120px;top:-140px;background:rgba(255,255,255,.13)}.hero h2{margin:0 0 8px;font-size:31px}.hero p{margin:0;color:#d9e7ff;max-width:860px}.grid{display:grid;gap:18px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px;box-shadow:0 12px 32px rgba(15,35,70,.06)}.focus-card{text-align:center}.metric{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.metric .num{font-size:31px;font-weight:900}.metric .lbl{font-size:13px;color:var(--muted);margin-top:4px}.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800;background:#eef5ff;color:#1857b6;white-space:nowrap}.pill.ok{background:#e8fff7;color:#047857}.pill.warn{background:#fff7e6;color:#a15c00}.pill.danger{background:#ffecec;color:#b42318}.btn{border:0;border-radius:13px;padding:10px 14px;background:#eaf1fb;color:#16345d;font-weight:850;cursor:pointer;display:inline-flex;gap:8px;align-items:center;justify-content:center}.btn.primary{background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff}.btn.success{background:linear-gradient(135deg,#10b981,#047857);color:#fff}.btn.danger{background:#fee2e2;color:#b91c1c}.btn.ghost{background:transparent;border:1px solid var(--line)}.btn.wide{width:100%}.toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:20px 0}.actions{display:flex;gap:8px;flex-wrap:wrap}.action-stack{display:grid;gap:10px}.table{width:100%;border-collapse:separate;border-spacing:0 10px}.table th{text-align:left;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:0 12px}.table td{background:#fff;padding:14px 12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:top}.table td:first-child{border-left:1px solid var(--line);border-radius:14px 0 0 14px}.table td:last-child{border-right:1px solid var(--line);border-radius:0 14px 14px 0}.form{display:grid;gap:14px}.field label{display:block;font-size:13px;font-weight:850;margin-bottom:7px}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:14px;padding:12px 13px;background:#fff;font:inherit}.field textarea{min-height:110px}.help{font-size:12px;color:var(--muted);margin-top:5px}.alert,.notice{border-radius:16px;padding:13px 15px;margin:12px 0;border:1px solid var(--line);background:#fff}.alert.ok,.notice.success{background:#e8fff7;border-color:#b7f7df;color:#065f46}.alert.err,.notice.danger{background:#fff1f1;border-color:#ffcaca;color:#991b1b}.notice{background:#f8fbff}.muted-line{color:var(--muted);margin:6px 0}.small{font-size:12px;color:var(--muted)}.code-badge{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;border:1px solid #c7d7f3;background:#f3f7ff;color:#0b3d91;border-radius:999px;padding:6px 9px;font-weight:850;white-space:nowrap}.empty-state{border:1px dashed var(--line);border-radius:16px;padding:18px;color:var(--muted);background:#fbfdff}.session-list{display:grid;gap:10px;margin-top:16px}.session-item{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid var(--line);border-radius:18px;padding:14px;background:#fbfdff}.session-item span{display:block;color:var(--muted);font-size:12px;margin-top:4px}.human-flow{display:grid;gap:10px}.human-flow div{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start;border:1px solid var(--line);border-radius:16px;padding:12px;background:#fbfdff}.human-flow span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#eaf1fb;color:#0b3d91;font-weight:900}.human-flow strong{display:block}.human-flow small{display:block;color:var(--muted);font-size:12px;margin-top:2px}.qr-preview{display:grid;place-items:center;margin:0 auto 18px;background:#fff;border:1px solid var(--line);border-radius:24px;padding:20px;max-width:370px}.qr-preview svg{max-width:320px;width:100%;height:auto}.qr-fallback{padding:50px 12px;color:var(--muted)}.public-checkin{min-height:100vh;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at top left,#dbeafe,#fff)}.checkin-card{width:100%;max-width:520px;background:#fff;border:1px solid var(--line);border-radius:30px;padding:28px;box-shadow:var(--shadow)}.public-brand{display:flex;align-items:center;gap:12px;margin-bottom:20px}.public-brand h1{font-size:18px;letter-spacing:.08em;margin:0}.public-brand p{margin:2px 0 0;color:var(--muted);font-size:12px}.success-state{text-align:center}.big-check{width:72px;height:72px;border-radius:50%;background:#e8fff7;color:#047857;display:grid;place-items:center;font-size:42px;font-weight:900;margin:4px auto 14px}.checkin-summary{display:grid;gap:8px;text-align:left;margin:20px 0}.checkin-summary div{display:flex;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:14px;padding:12px}.checkin-summary span{color:var(--muted);font-size:12px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at top left,#dbeafe,#fff)}.login-card{width:100%;max-width:440px;background:#fff;border:1px solid var(--line);border-radius:28px;padding:30px;box-shadow:var(--shadow)}.flow{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.flow .step{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px}.step strong{display:block;margin-bottom:6px}.step span{font-size:12px;color:var(--muted)}.cert{max-width:980px;margin:30px auto;background:#fff;border:14px solid #102033;padding:46px;text-align:center;box-shadow:var(--shadow)}.cert h1{font-size:46px;letter-spacing:.08em;margin:8px 0}.cert .name{font-size:34px;font-weight:900;margin:20px 0;color:#0b3d91}.cert .meta{display:flex;justify-content:center;gap:28px;flex-wrap:wrap;margin-top:22px}.qrbox svg{max-width:140px}.public-page{max-width:850px;margin:40px auto;padding:0 20px}@media(max-width:980px){.sidebar{position:relative;width:auto;bottom:auto}.shell{display:block}.main{margin-left:0;width:100%}.grid-4,.grid-3,.grid-2,.flow{grid-template-columns:1fr}.topbar{position:relative}.content{padding:18px}.hero h2{font-size:24px}.page-head,.session-item{display:block}.session-item .actions{margin-top:12px}}
/* ASCEND Hotfix: training codes, batch status, and less-technical UAT screens */
.filter-card{margin-bottom:18px}.filter-row{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap}.filter-row .grow{flex:1 1 320px}.filter-row .compact{min-width:170px}.filter-actions{display:flex;gap:10px;align-items:center}.training-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:16px}.training-card{padding:22px}.training-top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.training-top h3{margin:10px 0 6px}.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.mini-stats div{border:1px solid var(--line);border-radius:16px;padding:12px;background:#f8fbff}.mini-stats strong{display:block;font-size:18px;color:#071832}.mini-stats span{font-size:12px;color:#64748b}.training-actions{display:flex;gap:10px;flex-wrap:wrap}.status-strip{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:20px}.status-strip .actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.notice.soft{background:#f7fbff;border:1px solid #dbeafe;color:#1e3a8a}.form-card{max-width:1080px}.bulk-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;margin:12px 0 16px;border:1px solid var(--line);border-radius:18px;background:#f8fafc}.bulk-bar .actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.bulk-bar select{min-width:150px}.question-list{display:flex;flex-direction:column;gap:10px}.question-row{display:grid;grid-template-columns:34px minmax(260px,1fr) 210px 170px;gap:14px;align-items:center;border:1px solid var(--line);border-radius:18px;padding:14px 16px;background:#fff}.question-row:hover{box-shadow:0 10px 24px rgba(15,23,42,.08)}.question-title{font-weight:800;color:#071832;line-height:1.35}.question-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:7px;color:#64748b;font-size:12px}.question-meta span{background:#f1f5f9;border-radius:999px;padding:4px 8px}.question-tags{display:flex;gap:8px;flex-wrap:wrap}.row-actions{color:#64748b}.btn.compact{padding:8px 11px;border-radius:12px;font-size:12px}.question-filter{padding:14px;background:#fbfdff;border:1px solid var(--line);border-radius:18px}@media(max-width:900px){.question-row{grid-template-columns:30px 1fr}.question-tags,.row-actions{grid-column:2}.status-strip{align-items:flex-start;flex-direction:column}.mini-stats{grid-template-columns:1fr}.filter-row{display:block}.filter-row .field,.filter-actions{margin-top:10px}.filter-actions{display:flex}}

/* ASCEND Hotfix: select-all bank soal, clean pagination, and QR form as self-service attendance collection */
.bulk-bar.stackable{align-items:flex-start}.bulk-options{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;color:#334155;font-size:13px}.bulk-options label{display:inline-flex;gap:8px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 11px}.bulk-options input{width:auto}.simple-pagination{display:flex;gap:12px;align-items:center;justify-content:flex-end;margin-top:18px;flex-wrap:wrap}.simple-pagination .disabled{opacity:.45;cursor:not-allowed}.page-info{font-size:13px;color:var(--muted);font-weight:700}.pagination svg{width:18px!important;height:18px!important}.pagination{font-size:13px}.attendance-form-card{max-width:680px}.required{color:#dc2626}.public-checkin .grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.public-checkin .notice.soft{background:#f7fbff;border-color:#dbeafe;color:#1e3a8a}.question-row .check{display:flex;justify-content:center}.question-row input[type="checkbox"]{width:18px;height:18px}.btn.disabled{pointer-events:none}@media(max-width:720px){.public-checkin .grid-2{grid-template-columns:1fr}.bulk-options{display:grid}.simple-pagination{justify-content:flex-start}.attendance-form-card{max-width:100%}}

/* ASCEND QC Bundle 2: QR download, certificate archive, settings, logo, signatories, OneDrive OAuth */
.qr-workspace .qr-card-main{min-height:560px}.center-actions{justify-content:center;margin-top:14px}.qr-action-panel h3{margin-top:4px}.copy-box{border:1px solid var(--line);background:#f8fafc;border-radius:18px;padding:16px;margin:12px 0}.copy-box strong{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#0b3d91;font-size:18px}.copy-box span{display:block;color:var(--muted);font-size:12px;margin-top:5px}.session-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:16px}.session-summary div{border:1px solid var(--line);border-radius:16px;padding:12px;background:#fbfdff}.session-summary span{display:block;color:var(--muted);font-size:12px}.session-summary strong{display:block;margin-top:4px}.certificate-stage{overflow:auto;background:#f8fafc}.certificate-stage .certificate-document{min-width:980px;margin:0 auto;transform-origin:top center}.certificate-document{position:relative;background:#fff;border:10px solid #102033;padding:34px 42px;min-height:670px;text-align:center;box-shadow:var(--shadow);overflow:hidden}.certificate-document:before{content:"";position:absolute;inset:20px;border:2px solid #1f6feb;opacity:.22;pointer-events:none}.cert-topline{display:flex;gap:18px;align-items:center;text-align:left;position:relative;z-index:1}.cert-logo-box{width:120px;display:flex;align-items:center;justify-content:flex-start}.cert-logo-box img{max-width:105px;max-height:80px}.logo-placeholder{border:1px dashed #94a3b8;color:#64748b;border-radius:12px;padding:15px 10px;font-size:11px;font-weight:800}.cert-org strong{display:block}.cert-org span{display:block;color:var(--muted);font-size:12px;margin-top:2px}.cert-title-area{margin-top:26px}.cert-label{font-size:42px;font-weight:950;letter-spacing:.16em;color:#0b3d91}.cert-title-area h1{margin:4px 0 6px}.cert-intro{margin-top:24px}.cert-name{font-size:38px;font-weight:950;color:#0b3d91;margin:10px auto;padding-bottom:8px;border-bottom:1px solid #cbd5e1;display:inline-block;min-width:520px}.cert-training{font-size:26px}.cert-topic{color:var(--muted)}.cert-meta-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:26px auto 12px;max-width:760px}.cert-meta-grid div{border:1px solid var(--line);border-radius:16px;background:#f8fafc;padding:12px}.cert-meta-grid span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;font-weight:800}.cert-meta-grid strong{display:block;margin-top:4px}.cert-footer{display:flex;justify-content:space-between;align-items:flex-end;margin-top:22px;text-align:left}.cert-verify svg{width:110px;height:110px}.cert-verify span{display:block;color:var(--muted);font-size:11px}.qr-placeholder{width:110px;height:110px;border:1px dashed #94a3b8;border-radius:14px;display:grid;place-items:center;color:#64748b;font-size:12px;text-align:center}.cert-signer{text-align:center;min-width:300px}.cert-signer p{margin:0 0 10px}.signature-space{height:70px}.cert-signer strong{display:block}.cert-signer span,.cert-signer small{display:block;color:var(--muted)}.draft-ribbon{position:absolute;left:18%;right:18%;top:43%;transform:rotate(-18deg);font-size:56px;font-weight:950;color:#ef4444;opacity:.14}.logo-preview{border:1px solid var(--line);border-radius:18px;background:#fff;padding:18px;display:inline-flex;align-items:center}.logo-preview img{max-width:180px;max-height:90px}.inline-check{display:inline-flex;gap:8px;align-items:center;font-weight:800}.setting-list{display:grid;gap:10px;margin-top:16px}.setting-item{border:1px solid var(--line);border-radius:18px;background:#fbfdff;padding:14px;display:grid;gap:10px}.setting-item input,.setting-item select{border:1px solid var(--line);border-radius:12px;padding:10px;background:#fff}.setting-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.clean-table{border-spacing:0 8px}.clean-table td:first-child{font-weight:800;color:#475569;width:190px}.public-proof-brand{margin:20px 0}.proof-card h1{margin-top:16px}.public-page .table.clean-table td{border-radius:0}.public-page .table.clean-table td:first-child{border-radius:14px 0 0 14px}.public-page .table.clean-table td:last-child{border-radius:0 14px 14px 0}@media(max-width:1000px){.certificate-stage .certificate-document{transform:scale(.82);margin-bottom:-100px}.session-summary,.cert-meta-grid{grid-template-columns:1fr}.cert-footer{display:block;text-align:center}.cert-verify{margin-bottom:20px;text-align:center}.cert-name{min-width:0;width:100%;font-size:28px}.cert-label{font-size:30px}.setting-row{display:grid}.certificate-document{min-width:760px}} 

/* ASCEND Flow Rebuild 3: correct module separation and post-test completion decision gate */
.workflow-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-top:14px}.workflow-card{display:grid;gap:8px;border:1px solid var(--line);border-radius:18px;padding:16px;background:#fbfdff;transition:.15s}.workflow-card:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(15,35,70,.08)}.workflow-card span{width:32px;height:32px;border-radius:12px;background:#eaf1fb;color:#0b3d91;display:grid;place-items:center;font-weight:950}.workflow-card strong{font-size:15px}.workflow-card small{color:var(--muted);line-height:1.35}.progress-line{height:10px;border-radius:999px;background:#e5edf7;overflow:hidden;margin:16px 0 8px}.progress-line span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#1f6feb,#12b886)}.progress-line.big{height:14px}.mini-stats.mini-4{grid-template-columns:repeat(4,1fr)}.notice.warning{background:#fff7e6;border-color:#fde68a;color:#92400e}.metric.flat{box-shadow:none;background:#fbfdff}.completion-panel{max-width:1180px}.completion-title{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.decision-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}.decision-card{border:1px solid var(--line);border-radius:18px;padding:16px;background:#fff;display:grid;gap:8px;cursor:pointer}.decision-card:hover{border-color:#1f6feb;box-shadow:0 12px 26px rgba(31,111,235,.10)}.decision-card input{width:18px;height:18px}.decision-card strong{font-size:16px}.decision-card span{font-size:12px;color:var(--muted);line-height:1.45}.decision-grid .full{grid-column:1/-1}.completion-panel .actions.full{justify-content:flex-end}@media(max-width:980px){.decision-grid{grid-template-columns:1fr}.mini-stats.mini-4{grid-template-columns:repeat(2,1fr)}.completion-title{display:block}}@media(max-width:620px){.mini-stats.mini-4{grid-template-columns:1fr}}
.certificate-tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:12px}.certificate-tool-card{border:1px solid var(--line);border-radius:18px;padding:14px;background:#fbfdff;display:flex;justify-content:space-between;gap:14px;align-items:center}.certificate-tool-card strong{display:block;margin:8px 0 4px}.certificate-tool-card small{display:block;color:var(--muted)}@media(max-width:760px){.certificate-tool-card{display:block}.certificate-tool-card .actions{margin-top:12px}}


/* ASCEND Flow Polish 4: human UI, modal entry forms, readable cards, QR signature certificates */
.clean-toolbar{margin-top:0}.clean-toolbar h2{margin:0 0 4px}.slim-card{padding:16px 18px}.compact-table td{padding:11px 12px}.compact-metrics .card{padding:15px}.compact-metrics .metric .num{font-size:24px}.modal{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:22px}.modal.is-open{display:flex}.modal-backdrop{position:absolute;inset:0;background:rgba(8,22,41,.55);backdrop-filter:blur(4px)}.modal-panel{position:relative;width:min(760px,100%);max-height:88vh;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:24px;padding:22px;box-shadow:0 28px 70px rgba(8,22,41,.22)}.modal-wide .modal-panel{width:min(980px,100%)}.modal-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}.modal-head h3{margin:0 0 4px}.modal-x{width:36px;height:36px;border-radius:12px;border:1px solid var(--line);background:#fff;font-size:24px;line-height:1;cursor:pointer}.modal-actions{justify-content:flex-end;margin-top:4px}.sticky-tools{position:sticky;top:86px;z-index:4}.question-filter-clean{background:#fff}.bulk-card{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:14px;padding:14px 16px}.bulk-left{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.bulk-card select{border:1px solid var(--line);border-radius:12px;padding:10px;background:#fff;font:inherit}.question-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:12px}.question-card-item{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:18px;background:#fff;padding:15px;box-shadow:0 8px 20px rgba(15,35,70,.04);cursor:pointer}.question-card-item:hover{border-color:#b7c9e8;box-shadow:0 14px 30px rgba(15,35,70,.08)}.question-card-item input[type=checkbox]{width:18px;height:18px;margin-top:3px}.question-card-body{min-width:0}.question-status{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.attendance-list{display:grid;gap:12px}.attendance-row{display:grid;grid-template-columns:minmax(260px,1.2fr) minmax(260px,1fr) minmax(300px,1.1fr) auto;gap:14px;align-items:center}.attendance-main{min-width:0}.attendance-main h3,.training-title-block h3{margin:8px 0 5px;line-height:1.25;overflow-wrap:anywhere}.attendance-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.attendance-facts div{border:1px solid var(--line);border-radius:14px;padding:10px;background:#f8fbff}.attendance-facts strong{display:block}.attendance-facts span{display:block;color:var(--muted);font-size:11px}.short-url-box{min-width:0;border:1px solid var(--line);background:#f8fafc;border-radius:16px;padding:12px}.short-url-box span{display:block;color:var(--muted);font-size:11px}.short-url-box strong{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;color:#0b3d91;white-space:normal;overflow-wrap:anywhere;line-height:1.35}.attendance-actions{justify-content:flex-end}.compact-board{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}.clean-training-card{overflow:hidden}.clean-training-card .training-top{align-items:flex-start}.training-title-block{min-width:0}.training-title-block .small{overflow-wrap:anywhere}.clean-training-card .training-actions .btn{padding:9px 11px}.topbar .small{max-width:900px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qr-workspace.compact-qr .qr-card-main{min-height:auto}.compact-qr .qr-preview{max-width:420px}.compact-qr .qr-action-panel h3{margin-top:0}.cert-footer.qr-signed-footer{align-items:flex-end}.qr-signature .sign-qr{display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:14px;padding:8px;background:#fff;margin:6px 0}.qr-signature .sign-qr svg{width:88px;height:88px}.small-qr{width:88px;height:88px}.cert-signer.qr-signature{text-align:center}.certificate-document .cert-body{margin-bottom:6px}.certificate-document .cert-name{overflow-wrap:anywhere}.cert-title-area p{margin-top:6px}.btn:focus,.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid rgba(31,111,235,.16);outline-offset:1px}@media(max-width:1180px){.attendance-row{grid-template-columns:1fr 1fr}.attendance-actions{justify-content:flex-start}.short-url-box{grid-column:1/-1}}@media(max-width:760px){.attendance-row,.question-card-item{grid-template-columns:1fr}.attendance-facts{grid-template-columns:1fr}.question-status{justify-content:flex-start}.sticky-tools{position:relative;top:auto}.bulk-card{display:block}.bulk-card .actions{margin-top:12px}.modal{padding:12px}.topbar .small{white-space:normal}.compact-board{grid-template-columns:1fr}.question-cards{grid-template-columns:1fr}}

/* ASCEND UI Rebuild 5: product UI, compact workflow, no manual-book banners */
:root{--ink:#172033;--muted:#6a7485;--soft:#f5f7fb;--line:#e7edf5;--brand:#174ea6;--brand2:#0f2f6f;--accent:#0ea66b;--card:#ffffff;--shadow:0 18px 44px rgba(18,35,62,.08);--r:18px}
body{background:#f6f8fb;color:var(--ink)}
.product-sidebar{width:260px;background:linear-gradient(180deg,#071426,#0b1b33);padding:18px 16px}.product-brand{margin-bottom:22px}.product-brand .mark{width:40px;height:40px;border-radius:13px;background:linear-gradient(135deg,#e7f0ff,#7cc4ff);color:#08213f}.product-nav .nav-section{margin:18px 8px 7px;color:#8190a6}.product-nav a{padding:10px 12px;border-radius:13px;font-size:14px}.product-nav a span{width:20px;text-align:center;opacity:.95}.product-main{margin-left:260px;width:calc(100% - 260px)}.product-topbar{height:66px;padding:0 26px;background:rgba(255,255,255,.9)}.product-content{padding:24px 26px;max-width:1500px}.product-user{display:flex;gap:10px;align-items:center}.btn.compact{padding:8px 10px;border-radius:11px;font-size:12px}.workspace-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin:0 0 16px}.workspace-head h2{font-size:27px;line-height:1.15;margin:0 0 5px}.workspace-head .small{font-size:13px}.panel-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:17px;box-shadow:0 12px 30px rgba(18,35,62,.055)}.panel-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:8px}.panel-head h3{margin:0 0 4px}.metric-strip{margin-bottom:14px}.compact-metric{padding:16px}.compact-metric .num{font-size:28px}.quick-actions{margin:14px 0}.quick-card{display:block;padding:17px;box-shadow:none}.quick-card strong{display:block;font-size:15px;margin-bottom:5px}.quick-card span{display:block;color:var(--muted);font-size:12px}.filter-panel{margin-bottom:14px}.responsive-table{overflow:auto}.clean-table{min-width:980px;border-spacing:0 7px}.clean-table th{font-size:11px;padding:0 10px}.clean-table td{padding:11px 10px;line-height:1.35}.clean-table td:first-child{width:auto}.training-table .main-cell{min-width:260px;max-width:420px;overflow-wrap:anywhere}.row-actions{display:flex;gap:7px;flex-wrap:wrap;min-width:250px}.test-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:14px}.test-card{padding:17px}.test-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.test-card h3{margin:8px 0 5px;line-height:1.25;overflow-wrap:anywhere}.test-summary-line{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:13px}.bank-metrics .card{box-shadow:none}.bank-filter{position:sticky;top:78px;z-index:4}.compact-bulk{margin-bottom:12px}.question-cards{grid-template-columns:repeat(auto-fit,minmax(420px,1fr))}.question-card-item{border-radius:16px;padding:13px;grid-template-columns:24px minmax(0,1fr) auto}.question-title{font-weight:850;line-height:1.35}.question-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.question-meta span{font-size:11px;color:#667085;background:#f4f6fa;border:1px solid #e8edf5;border-radius:999px;padding:4px 8px}.attendance-row{grid-template-columns:minmax(290px,1.1fr) minmax(250px,.8fr) minmax(260px,1fr) auto}.attendance-main h3{font-size:18px}.short-url-box strong{font-size:12px}.center-actions{justify-content:center}.product-completion{box-shadow:var(--shadow)}.completion-copy{font-size:15px}.decision-card{min-height:132px}.decision-card:has(input:checked){border-color:#174ea6;background:#f2f7ff}.update-callout{display:flex;justify-content:space-between;align-items:center;gap:16px}.update-callout h3{margin:0 0 4px}.alert{box-shadow:0 10px 24px rgba(18,35,62,.06)}
@media(max-width:980px){.product-sidebar{position:relative;width:auto}.product-main{margin-left:0;width:100%}.product-content{padding:18px}.workspace-head,.panel-head,.update-callout,.test-card-head{display:block}.workspace-head .actions,.panel-head .btn,.update-callout .btn{margin-top:12px}.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}.clean-table{min-width:860px}.bank-filter{position:relative;top:auto}.question-cards{grid-template-columns:1fr}.row-actions{min-width:0}.attendance-row{grid-template-columns:1fr}.product-topbar{position:relative;height:auto;gap:12px;padding:14px 18px;display:block}.product-user{margin-top:10px}}
.update-output{white-space:pre-wrap;background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:10px;color:#334155;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;margin:8px 0 0}

/* ASCEND Repair 6: cleaner product UI, certificate rules, typography polish */
:root{--ink:#182238;--muted:#657286;--soft:#f7f8fb;--line:#e6ebf2;--brand:#1557b0;--brand2:#123a7c;--accent:#0f9f6e;--card:#fff;--shadow:0 10px 28px rgba(25,42,70,.07);--r:16px}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{font-size:14px;line-height:1.48;background:#f7f8fb}.product-topbar .small{display:none}.product-topbar .title{font-size:15px}.product-sidebar{width:248px}.product-main{margin-left:248px;width:calc(100% - 248px)}.product-content{padding:22px 24px}.workspace-head h2{font-size:25px;letter-spacing:-.02em}.workspace-head .small{max-width:760px}.card,.panel-card{border-radius:16px;box-shadow:var(--shadow)}.btn{border-radius:11px;padding:9px 13px}.btn.primary,.btn.success{box-shadow:0 8px 18px rgba(21,87,176,.12)}.field input,.field select,.field textarea{border-radius:12px;padding:10px 12px}.field textarea{min-height:88px}.section-subhead{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:14px;margin-top:2px}.section-subhead strong{font-size:15px}.section-subhead span{font-size:12px;color:var(--muted)}.clean-form-card{max-width:1120px}.compact-form{gap:10px}.grid-5{grid-template-columns:repeat(5,minmax(0,1fr))}.workflow-shortcuts{gap:12px}.workflow-card{display:block;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:0 6px 18px rgba(25,42,70,.04)}.workflow-card span{width:26px;height:26px;border-radius:9px;background:#edf4ff;color:#1557b0;display:grid;place-items:center;font-weight:900;margin-bottom:9px}.workflow-card strong{display:block}.workflow-card small{display:block;color:var(--muted);font-size:12px;margin-top:4px}.training-summary-card{display:grid;gap:12px}.training-summary-main{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.training-summary-main h3{margin:9px 0 3px}.mini-stats.mini-5{grid-template-columns:repeat(5,1fr);margin:0}.mini-stats.mini-5 div{padding:10px}.compact-session-list{margin-top:12px}.compact-session{padding:11px 12px;border-radius:14px}.compact-session .actions{flex-shrink:0}.compact-summary{margin-top:12px}.compact-summary div{padding:10px;border-radius:12px}.wide-select{grid-column:span 1}.completion-review .metric.flat{box-shadow:none;padding:14px}.completion-review .metric .num{font-size:24px}.clean-decision .decision-card{min-height:116px;border-radius:16px}.clean-decision .decision-card span{font-size:12px}.question-cards{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));align-items:start}.question-card-item{padding:12px;border-radius:15px;box-shadow:0 6px 16px rgba(25,42,70,.04)}.question-title{font-size:13.5px}.question-status .pill{font-size:11px;padding:5px 8px}.bank-filter{top:70px}.clean-table{min-width:900px}.clean-table td{padding:10px;vertical-align:middle}.training-table .main-cell{max-width:360px}.row-actions{min-width:220px}.code-badge{font-size:12px;letter-spacing:-.01em}.certificate-tool-card{border-radius:15px;padding:12px}.certificate-tool-card strong{line-height:1.3}.certificate-stage{overflow:auto}.certificate-document{font-family:Georgia,"Times New Roman",serif}.certificate-document .cert-label{letter-spacing:.18em}.certificate-document .cert-title-area h1{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.certificate-document .cert-meta-grid strong{line-height:1.25}.proof-card{max-width:760px;margin:0 auto}.proof-card h1{margin:12px 0 4px}.public-proof-brand{max-width:760px;margin:28px auto 18px}.simple-pagination .pagination{display:flex;gap:6px;list-style:none;padding:0}.simple-pagination svg{width:16px;height:16px}.table .w-5,.table .h-5{width:16px;height:16px}.alert,.notice{border-radius:14px}
@media(max-width:1120px){.grid-5,.mini-stats.mini-5{grid-template-columns:repeat(2,1fr)}.training-summary-main{display:block}.training-summary-main .actions{margin-top:10px}}
@media(max-width:980px){.product-sidebar{width:auto}.product-main{margin-left:0;width:100%}.product-content{padding:16px}.grid-5,.mini-stats.mini-5{grid-template-columns:1fr}.section-subhead{display:block}.clean-table{min-width:760px}.training-summary-main{display:block}}


/* ASCEND UI cleanup 8: humanized tone, better typography, cleaner workspace */
:root{
  --ink:#0d1b2d;--muted:#617089;--soft:#f6f8fb;--line:#dde6f2;--brand:#1b64d8;--brand2:#0c357a;--accent:#0e9f6e;--card:#fff;--shadow:0 10px 28px rgba(15,35,70,.055);--r:18px;
}
body{font-family:"Plus Jakarta Sans",Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:14px;letter-spacing:-.006em;background:linear-gradient(180deg,#f8fafc,#f4f7fb);color:var(--ink)}
h1,h2,h3,.title{letter-spacing:-.025em}.small,.help{line-height:1.55}.eyebrow{font-size:10.5px;letter-spacing:.14em;color:#315fba}.product-sidebar{width:244px;background:#07182c}.product-main{margin-left:244px;width:calc(100% - 244px)}.product-content{padding:20px 24px}.product-topbar{height:62px}.product-topbar .title{font-weight:800}.product-brand h1{letter-spacing:.06em}.product-nav a{font-weight:700;color:#dce8f7}.product-nav a.active{background:rgba(255,255,255,.12)}
.workspace-head{margin-bottom:14px}.workspace-head h2{font-size:24px;font-weight:800}.workspace-head .small{color:#65748b;max-width:680px}.quick-actions{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.quick-card{border-radius:18px;padding:16px 18px;transition:.14s ease}.quick-card:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(15,35,70,.075);border-color:#cad8ee}.quick-card span{font-size:12.5px;line-height:1.45}.card,.panel-card{border-radius:18px;border-color:#dfe8f5}.metric .num{font-size:25px}.metric .lbl{font-size:12px}.pill{font-weight:750}.btn{font-weight:760;border-radius:12px}.btn.primary{background:linear-gradient(135deg,#216ee6,#0f4fb5)}.btn.success{background:linear-gradient(135deg,#12a874,#087a57)}.btn.ghost{background:#fff}.toolbar.clean-toolbar,.workspace-head,.page-head{align-items:center}.panel-head h3,.toolbar h2,.page-head h2{font-weight:800}.filter-panel{padding:14px 16px}.filter-row{gap:10px}.field label{font-size:12px}.field input,.field select,.field textarea{border-color:#dce6f3;background:#fff}.field input::placeholder,.field textarea::placeholder{color:#94a3b8}.clean-table{min-width:860px}.clean-table th{font-size:10.5px;color:#697891}.clean-table td{font-size:13.5px}.training-table .main-cell{max-width:300px}.row-actions .btn{white-space:nowrap}.empty-state{background:#fff;border-style:solid;text-align:center;color:#6b7890}.modal-panel{border-radius:20px}.modal-head h3{font-size:20px}.modal-head .small{max-width:520px}.bank-metrics{display:none}.bank-filter{position:relative;top:auto}.question-cards{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:10px}.question-card-item{grid-template-columns:22px 1fr;position:relative;min-height:102px}.question-card-item .question-status{grid-column:2;margin-top:4px;justify-content:flex-start}.question-title{font-weight:780;font-size:13.2px;line-height:1.42}.question-meta span{font-size:10.5px}.bulk-card{position:sticky;top:72px;z-index:3;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);box-shadow:0 8px 18px rgba(15,35,70,.055)}.attendance-row{grid-template-columns:minmax(260px,1fr) 260px minmax(230px,.9fr) auto}.attendance-main h3{font-size:16px}.short-url-box{padding:11px 12px}.short-url-box strong{font-size:12px;line-height:1.4}.qr-workspace .qr-card-main{min-height:auto}.qr-preview{border-radius:18px}.test-board{grid-template-columns:repeat(auto-fit,minmax(330px,1fr))}.test-card h3{font-size:18px}.test-summary-line{margin:10px 0}.mini-stats div{border-radius:13px}.decision-card{border:1px solid var(--line);background:#fff}.decision-card strong{font-size:15px}.decision-card span{line-height:1.45}.certificate-tool-card{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px}.certificate-tool-card small{color:#6b7890}.certificate-stage{background:#f6f8fb;border-radius:18px}.certificate-document{font-family:"Plus Jakarta Sans",Inter,system-ui,sans-serif;border:8px solid #102033;border-radius:4px;min-height:620px}.certificate-document .cert-title-area h1{font-family:"Literata",Georgia,serif;letter-spacing:-.015em}.certificate-document .cert-name,.professional-name{font-family:"Literata",Georgia,serif!important;font-weight:700!important;letter-spacing:.01em;text-transform:none}.single-qr-footer{display:grid;grid-template-columns:1fr 180px;align-items:end;gap:22px}.clean-signer{text-align:center;justify-self:center}.signature-line{height:62px;width:260px;border-bottom:1px solid #0f4fb5;margin:4px auto 10px}.signature-img{max-width:230px;max-height:82px;object-fit:contain;display:block;margin:0 auto 8px}.only-verify{text-align:center}.only-verify small{display:block;color:#64748b;font-size:10.5px;line-height:1.35;margin-top:4px}.only-verify .qrbox{display:grid;place-items:center}.proof-card{border-radius:20px}.public-page{font-family:"Plus Jakarta Sans",Inter,system-ui,sans-serif}.alert.ok{background:#ecfdf5}.alert.err{background:#fff1f2}.notice.soft{background:#f8fbff;color:#304869}.notice.warning{background:#fff8e9;border-color:#f7d899;color:#7a4b00}
@media(max-width:980px){.product-sidebar{width:auto}.product-main{margin-left:0;width:100%}.product-content{padding:16px}.attendance-row,.certificate-tool-card{display:block}.certificate-tool-card .actions{margin-top:10px}.single-qr-footer{grid-template-columns:1fr}.only-verify{margin-top:18px}.question-cards{grid-template-columns:1fr}.bulk-card{position:relative;top:auto}.product-topbar{height:auto}.clean-table{min-width:760px}}
.auth-links{display:flex;gap:8px;justify-content:center;margin-top:16px;font-size:14px}.auth-links a{color:#1f6feb;text-decoration:none}.online-pill{display:inline-flex;align-items:center;gap:6px;border:1px solid #d7e4ff;background:#f1f6ff;color:#0b3d91;border-radius:999px;padding:6px 10px;font-size:12px}.online-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:#16a34a}.question-group-picker{display:grid;gap:8px;margin:14px 0;padding:12px;border:1px solid #e3e8f2;background:#f8fafc;border-radius:14px}.question-group-picker label{font-size:12px;font-weight:700;color:#475569}.question-group-picker select{min-height:78px;border:1px solid #d9e2f1;border-radius:10px;padding:8px}.group-list-mini{display:grid;gap:8px;margin-top:14px;max-height:220px;overflow:auto}.group-list-mini div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #eef2f7}.group-list-mini span{font-size:12px;color:#64748b}.deadline-chip{display:inline-block;margin-top:8px;padding:7px 10px;border-radius:999px;background:#fff7ed;color:#9a3412;font-weight:700}.autosave-status{display:block;color:#64748b;margin-top:8px}.certificate-appendix{margin-top:18px;border:1px solid #dbe7ff;border-radius:18px;background:#fff;padding:22px}.appendix-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;border-bottom:1px solid #e7edf8;padding-bottom:14px;margin-bottom:14px}.appendix-head h2{margin:0;color:#102033}.appendix-head p{margin:4px 0;color:#64748b}.appendix-verify{text-align:center;font-size:12px;color:#64748b}.appendix-verify svg{width:90px;height:90px}.appendix-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.appendix-box{border:1px solid #e4eaf5;background:#f9fbff;border-radius:14px;padding:16px}.appendix-table{width:100%;border-collapse:collapse;font-size:13px}.appendix-table th,.appendix-table td{border-bottom:1px solid #e4eaf5;text-align:left;padding:8px}.syllabus-box{line-height:1.6;color:#334155}.inline-reset-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.inline-reset-form input{border:1px solid #d9e2f1;border-radius:10px;padding:10px 12px}.danger-zone{border-color:#fecaca;background:#fff7f7}.btn.danger{background:#dc2626;color:#fff}.test-question-card input[type=radio]{transform:scale(1.1);margin-right:8px}
@media(max-width:900px){.appendix-grid{grid-template-columns:1fr}.question-group-picker select{min-height:110px}}


/* ASCEND consolidated 12: certificate display options, test QR links, and grouped question bank */
.question-group-browser{margin:12px 0 14px}.question-group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.question-group-card{border:1px solid var(--line);background:#fff;border-radius:16px;padding:13px 14px;display:grid;gap:5px;box-shadow:0 6px 16px rgba(15,35,70,.04)}.question-group-card.active,.question-group-card:hover{border-color:#98b8f3;background:#f6f9ff}.question-group-card strong{font-size:14px;line-height:1.25}.question-group-card span{font-size:12px;color:#0b3d91;font-weight:800}.question-group-card small,.question-group-card em{font-size:11.5px;color:#64748b;font-style:normal;line-height:1.35}.group-code-line{display:flex;justify-content:space-between;gap:10px}.selected-groups{border:1px solid var(--line);background:#f8fbff;border-radius:14px;padding:11px 12px;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;margin:12px 0}.selected-groups span{font-size:12px;color:#64748b}.selected-groups strong{font-size:12.5px;line-height:1.35}.question-group-checklist{display:grid;gap:8px;max-height:360px;overflow:auto}.question-group-checklist label{display:grid;grid-template-columns:24px 1fr;gap:8px;align-items:start;border:1px solid #e4eaf5;border-radius:13px;padding:10px;background:#fff}.question-group-checklist strong{display:block}.question-group-checklist small{display:block;color:#64748b;margin-top:2px}.test-actions-clean{display:flex;align-items:center;gap:8px}.post-generate-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.post-generate-form input[type=datetime-local]{border:1px solid var(--line);border-radius:12px;padding:10px 12px;max-width:210px}.test-link-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px}.test-link-card{display:grid;gap:12px}.test-link-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.test-link-head span{display:block;color:#64748b;font-size:12px;margin-top:3px}.test-link-qr{display:grid;place-items:center;border:1px solid var(--line);border-radius:16px;padding:16px;background:#fff}.test-link-card input{width:100%;border:1px solid var(--line);border-radius:12px;padding:10px;font-size:12px;color:#475569}.test-intro-card h2{margin:6px 0 4px}.certificate-document .cert-footer.with-validation-qr{display:grid;grid-template-columns:minmax(0,1fr) 170px;align-items:end;gap:22px}.certificate-document .cert-footer.without-validation-qr{display:grid;grid-template-columns:1fr;justify-items:center}.certificate-document .cert-footer.without-signature-visual .clean-signer{padding-top:20px}.certificate-document .cert-footer.without-signature-visual .clean-signer p{margin-bottom:16px}.certificate-document .cert-footer .clean-signer strong{display:block}.certificate-document .cert-footer .clean-signer span,.certificate-document .cert-footer .clean-signer small{display:block;color:#64748b}.certificate-document .cert-footer .only-verify{justify-self:center;text-align:center}.certificate-document .cert-footer .qrbox{display:grid;place-items:center}

/* ASCEND consolidated13: professional package/test and question bank layout */
.test-list-panel{padding:12px 12px 6px}.test-table-pro{min-width:1180px}.test-table-pro .main-cell{min-width:270px}.stack-sm{display:grid;gap:7px;align-content:start}.progress-compact{height:8px;border-radius:999px;background:#e8eef8;overflow:hidden;margin-bottom:9px}.progress-compact span{display:block;height:100%;background:linear-gradient(90deg,#1f6feb,#10b981)}.metric-mini-line{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.metric-mini-line span{font-size:11px;color:#51627a;background:#f5f8fc;border:1px solid #e6edf7;border-radius:999px;padding:4px 7px}.group-cell{min-width:230px}.selected-group-text{font-size:13px;font-weight:760;line-height:1.35;max-width:280px;overflow-wrap:anywhere;margin-bottom:8px}.deadline-inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-width:250px}.deadline-inline-form input[type=datetime-local]{border:1px solid var(--line);border-radius:11px;padding:8px 9px;font:inherit;font-size:13px;max-width:210px}.modal-row{display:none}.qr-test-shell{display:grid;grid-template-columns:minmax(0,620px) minmax(280px,1fr);gap:18px;align-items:start}.qr-test-main{text-align:center;padding:24px}.qr-test-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.qr-test-main h3{font-size:24px;margin:12px 0 4px}.qr-test-main p{color:var(--muted);margin:0 0 12px}.single-test-qr{max-width:340px;margin-top:18px}.link-copy-box{text-align:left;margin:16px auto;max-width:470px}.link-copy-box label{display:block;font-size:12px;font-weight:800;color:#53647d;margin-bottom:6px}.link-copy-box input{width:100%;border:1px solid var(--line);border-radius:12px;padding:11px 12px;font:inherit;color:#143b73;background:#f8fbff}.deadline-note{display:inline-flex;border:1px solid #f4d28b;background:#fff9ed;color:#7a4b00;border-radius:999px;padding:7px 11px;font-size:12px;margin:4px 0}.qr-test-side h3{margin:0 0 10px}.clean-list{padding-left:18px;margin:0 0 16px;color:#40516a;line-height:1.65}.stat-row{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding:11px 0;color:#64748b}.stat-row strong{font-size:20px;color:#0f2239}.test-entry-card{max-width:610px}.divider-text{display:flex;align-items:center;gap:12px;color:#7a879a;font-size:12px;font-weight:760}.divider-text:before,.divider-text:after{content:"";height:1px;background:#e1e8f4;flex:1}.question-catalog-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;margin:8px 0 12px}.question-catalog-head h3{margin:0 0 4px}.catalog-count{display:flex;align-items:baseline;gap:7px;color:#667085}.catalog-count strong{font-size:26px;color:#102033}.professional-groups{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-bottom:16px}.professional-groups .question-group-card{min-height:122px;border-radius:18px;padding:16px;position:relative;overflow:hidden}.professional-groups .question-group-card:before{content:"";position:absolute;left:0;top:0;height:4px;width:100%;background:linear-gradient(90deg,#1f6feb,#12b886,#f59e0b)}.professional-groups .question-group-card.active{box-shadow:0 12px 30px rgba(31,111,235,.11);border-color:#8db3f4}.group-card-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.group-card-top strong{font-size:15px;line-height:1.3}.group-card-top span{flex-shrink:0}.selected-catalog-panel{display:flex;justify-content:space-between;align-items:center;margin:4px 0 14px}.selected-catalog-panel h3{margin:8px 0 3px}.pro-question-cards{grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:12px}.pro-question-card{display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;align-items:flex-start}.pro-question-card .question-status{grid-column:2;display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.option-preview{display:grid;gap:5px;margin-top:10px;padding:9px;border:1px solid #e8edf5;background:#fbfdff;border-radius:12px}.option-preview div{font-size:12px;color:#3f4e63;line-height:1.4}.option-preview .is-correct{color:#066b4f;background:#ecfdf5;border-radius:8px;padding:4px 6px;margin:-4px -6px}.answer-pill{display:inline-flex;border-radius:999px;background:#ecfdf5;color:#047857;font-size:11px;font-weight:850;padding:5px 8px}.question-filter-clean .field.grow{min-width:320px}.inline-check{display:inline-flex;align-items:center;gap:8px;font-weight:750;color:#24364f}.bulk-left{display:flex;gap:16px;flex-wrap:wrap;align-items:center}.bulk-card{display:flex;justify-content:space-between;align-items:center;gap:14px}.bulk-card select{border:1px solid var(--line);border-radius:12px;padding:9px 10px;font:inherit}@media(max-width:1100px){.qr-test-shell{grid-template-columns:1fr}.test-table-pro{min-width:1060px}.professional-groups{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}@media print{.sidebar,.topbar,.workspace-head,.qr-test-side,.actions{display:none!important}.main{margin:0!important;width:100%!important}.content{padding:0!important}.qr-test-shell{display:block}.qr-test-main{box-shadow:none;border:none}.qr-preview{border:none}}

/* ASCEND consolidated14: cleaner test QR, table actions, and bank-soal catalog */
.qr-test-page-clean{display:grid;place-items:start center}.qr-test-main-wide{max-width:760px;width:100%;text-align:center}.qr-test-stats-inline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}.qr-test-stats-inline div{border:1px solid var(--line);background:#f8fbff;border-radius:14px;padding:12px}.qr-test-stats-inline span{display:block;color:#64748b;font-size:12px}.qr-test-stats-inline strong{font-size:24px;color:#102033}.clean-workspace-head .small{max-width:760px}.compact-filter-panel{padding:14px 16px}.test-list-premium{padding:10px}.test-table-final{min-width:1120px}.test-table-final th{padding:0 10px 8px}.test-table-final td{padding:14px 10px}.training-main-pro{display:grid;gap:7px;min-width:260px}.training-main-pro strong{font-size:15px;line-height:1.3}.progress-cell-pro{min-width:250px}.bank-source-cell{min-width:230px}.qr-actions-cell{min-width:190px}.qr-button-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.qr-button-row .qr-btn{min-width:92px;padding:9px 10px;white-space:nowrap}.deadline-cell-pro{min-width:285px}.clean-deadline-form input[type=datetime-local]{max-width:190px}.action-cell-pro{min-width:205px}.action-cell-pro .btn{width:100%}.action-cell-pro .small{display:block;margin-top:8px;line-height:1.45}.selected-group-text{background:#f8fbff;border:1px solid #e4eaf5;border-radius:12px;padding:9px 10px;color:#253957}.selected-group-text:empty:before{content:'Belum dipilih';color:#64748b}.professional-groups{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(270px,1fr))!important;gap:12px!important;margin:12px 0 18px!important}.professional-groups .question-group-card{display:grid!important;gap:8px!important;min-height:122px!important;border:1px solid #dce7f7!important;background:#fff!important;border-radius:18px!important;padding:16px!important;box-shadow:0 10px 26px rgba(15,35,70,.055)!important;color:var(--ink)!important;text-decoration:none!important;position:relative!important;overflow:hidden!important}.professional-groups .question-group-card:before{content:"";position:absolute;left:0;top:0;height:4px;width:100%;background:linear-gradient(90deg,#1f6feb,#18b981,#f59e0b,#ef4444)}.professional-groups .question-group-card:hover,.professional-groups .question-group-card.active{transform:translateY(-1px);border-color:#9dbbf2!important;background:#f7fbff!important;box-shadow:0 16px 34px rgba(31,111,235,.12)!important}.professional-groups .group-card-top{display:flex!important;justify-content:space-between!important;align-items:flex-start!important;gap:12px!important}.professional-groups .group-card-top strong{font-size:15px!important;line-height:1.28!important}.professional-groups .group-card-top span{font-size:12px!important;background:#eef5ff!important;border-radius:999px!important;padding:5px 8px!important;color:#0b3d91!important;font-weight:850!important;white-space:nowrap}.professional-groups .question-group-card small,.professional-groups .question-group-card em{font-size:12px!important;color:#64748b!important;font-style:normal!important;line-height:1.35!important}.question-catalog-head{margin-top:8px}.selected-catalog-panel{border-left:4px solid #1f6feb}.pro-question-cards{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(360px,1fr))!important;gap:12px!important}.pro-question-card{background:#fff!important;border:1px solid #dfe8f5!important;border-radius:18px!important;padding:14px!important;box-shadow:0 8px 22px rgba(15,35,70,.045)!important}.option-preview{max-height:160px;overflow:auto}.bulk-card.compact-bulk{position:sticky;top:78px;z-index:4}@media(max-width:900px){.test-table-final{min-width:900px}.qr-button-row{display:grid}.deadline-cell-pro{min-width:230px}.professional-groups{grid-template-columns:1fr!important}.pro-question-cards{grid-template-columns:1fr!important}}

/* ASCEND consolidated15: fix Bank Soal picker modal visibility and make choices readable */
.better-group-picker{display:grid;gap:10px;margin:10px 0 4px;max-height:52vh;overflow:auto;padding-right:4px}
.better-group-picker label{display:grid;grid-template-columns:22px minmax(0,1fr);gap:12px;align-items:flex-start;border:1px solid #dfe8f5;background:#fbfdff;border-radius:14px;padding:12px;cursor:pointer}
.better-group-picker label:hover{border-color:#9dbbf2;background:#f5f9ff}
.better-group-picker input{width:18px;height:18px;margin-top:2px}
.better-group-picker strong{display:block;color:#102033;line-height:1.25;margin-bottom:3px}
.better-group-picker small{display:block;color:#64748b;line-height:1.35}


/* ASCEND consolidated16: certificate preview actions, printable draft, appendix verification placement */
.page-head .actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.certificate-stage{position:relative}.certificate-stage>.certificate-document,.certificate-stage>.certificate-appendix{margin-left:auto;margin-right:auto}.certificate-appendix{position:relative;min-height:520px;padding-bottom:138px}.certificate-appendix .appendix-head{display:block;border-bottom:1px solid #e7edf8}.appendix-footer-verify{display:flex;justify-content:flex-end;margin-top:22px;position:absolute;right:22px;bottom:22px}.appendix-footer-verify .appendix-verify{display:inline-grid;gap:5px;justify-items:center;text-align:center;background:#fff;border:1px solid #dbe7ff;border-radius:14px;padding:10px 12px}.appendix-footer-verify .appendix-verify svg{width:82px;height:82px}.appendix-footer-verify .appendix-verify span{font-size:12px;color:#64748b}.print-area{scroll-margin-top:90px}.btn.print-btn{background:#102033;color:#fff}@media print{body{background:#fff!important}.sidebar,.topbar,.page-head,.no-print,.alert,.actions{display:none!important}.main{margin:0!important;width:100%!important}.content{padding:0!important}.card{box-shadow:none!important;border:none!important;padding:0!important}.certificate-stage{background:#fff!important;border:none!important;overflow:visible!important}.certificate-document,.certificate-appendix{box-shadow:none!important;break-inside:avoid;page-break-after:always;margin:0 auto!important}.certificate-appendix{page-break-before:always}.appendix-footer-verify{position:absolute;right:22px;bottom:22px}}

/* consolidated17: certificate preview uses real PDF document, not browser print */
.pdf-preview-card{padding:18px}.pdf-frame{width:100%;height:calc(100vh - 230px);min-height:720px;border:1px solid var(--line);border-radius:18px;background:#f8fafc}.certificate-stage.print-area{display:none}.cert-date-line{font-size:13px;color:#51627a;margin:12px 0 0}.qr-img{display:block;max-width:100%;height:auto}.cert-verify .qr-img{width:110px;height:110px;margin:0 auto}.appendix-verify .qr-img{width:82px;height:82px;margin:0 auto}
@media(max-width:900px){.pdf-frame{height:70vh;min-height:520px}.pdf-preview-card .page-head.compact{display:block}.pdf-preview-card .actions{margin-top:12px;justify-content:flex-start}}

/* Consolidated 23: certificate process cleanup */
.table-wrap{overflow-x:auto}
.cert-process-table{min-width:980px;border-spacing:0 8px}
.cert-process-table td{vertical-align:middle}
.cert-training-cell{display:grid;gap:6px;min-width:300px}
.cert-training-cell strong{font-size:15px;line-height:1.25;font-weight:820}
.cert-action-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;min-width:440px}
.cert-action-row form{margin:0}
.btn.compact{padding:8px 11px;border-radius:11px;font-size:12.5px;white-space:nowrap}
.certificate-process-card .page-head h3{font-size:18px}
@media(max-width:980px){.cert-process-table{min-width:860px}.cert-action-row{min-width:360px}}

.alert.warn{background:#fff8e9;border-color:#f7d899;color:#7a4b00}


/* ASCEND v23.4: clean User Aplikasi settings panel */
.section-title-row{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:14px}
.section-title-row h3{margin:0 0 5px}
.user-admin-card{grid-column:1 / -1;overflow:hidden}
.user-create-box{border:1px solid #dfe8f5;background:linear-gradient(180deg,#fbfdff,#f7faff);border-radius:20px;padding:16px;margin-top:14px;display:grid;gap:14px}
.user-box-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-bottom:1px solid #e5edf8;padding-bottom:12px}
.user-box-title strong{font-size:15px;color:#102033}
.user-create-grid{display:grid;grid-template-columns:minmax(180px,1.35fr) minmax(220px,1.45fr) minmax(170px,.9fr) minmax(180px,1fr) auto;gap:12px;align-items:end}
.user-submit-cell{display:flex;align-items:end;justify-content:flex-end}
.user-submit-cell .btn{height:46px;white-space:nowrap}
.user-list-clean{display:grid;gap:12px;margin-top:16px}
.user-row-card{border:1px solid #e2eaf6;background:#fff;border-radius:20px;padding:15px;box-shadow:0 8px 22px rgba(15,35,70,.045);display:grid;gap:13px}
.user-row-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding-bottom:11px;border-bottom:1px solid #edf2f8}
.user-row-head strong{display:block;font-size:15px;line-height:1.25;color:#102033}
.user-row-head span{display:block;font-size:12px;color:#68778d;margin-top:3px;word-break:break-word}
.user-badges{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end;align-items:center}
.user-edit-grid{display:grid;grid-template-columns:minmax(180px,1.25fr) minmax(220px,1.35fr) minmax(165px,.8fr) minmax(180px,1fr) minmax(110px,.55fr) auto;gap:12px;align-items:end}
.user-edit-grid .field,.user-create-grid .field{min-width:0;margin:0}
.user-edit-grid .field label,.user-create-grid .field label{font-size:12px;font-weight:850;color:#3f4e63;margin-bottom:6px}
.user-edit-grid input,.user-edit-grid select,.user-create-grid input,.user-create-grid select{width:100%;min-height:44px;border:1px solid #dce6f3;border-radius:13px;padding:10px 12px;background:#fff;font:inherit;color:#102033}
.user-edit-grid input:focus,.user-edit-grid select:focus,.user-create-grid input:focus,.user-create-grid select:focus{outline:none;border-color:#8db3f4;box-shadow:0 0 0 3px rgba(31,111,235,.10)}
.status-field .toggle-line{min-height:44px;border:1px solid #dce6f3;border-radius:13px;background:#fbfdff;padding:10px 12px;display:flex;gap:8px;align-items:center;font-weight:800;color:#24364f}
.status-field .toggle-line input{width:17px;min-height:17px;height:17px;padding:0;accent-color:#1f6feb}
.user-save-cell{display:flex;align-items:end;justify-content:flex-end}
.user-save-cell .btn{height:44px;min-width:92px}
@media(max-width:1180px){.user-create-grid,.user-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.user-submit-cell,.user-save-cell{justify-content:flex-start}.user-submit-cell .btn,.user-save-cell .btn{width:100%}}
@media(max-width:760px){.section-title-row,.user-box-title,.user-row-head{display:grid}.user-badges{justify-content:flex-start}.user-create-grid,.user-edit-grid{grid-template-columns:1fr}.user-admin-card{padding:16px}.user-row-card{padding:13px}}

/* ASCEND v23.5: SMTP encryption and editable auto-port UI */
.smtp-settings-card .smtp-port-row{display:flex;gap:8px;align-items:center}
.smtp-settings-card .smtp-port-row input{flex:1;min-width:0}
.smtp-settings-card .help{font-size:12px;color:#64748b;margin-top:6px;line-height:1.35}
.smtp-settings-card select,.smtp-settings-card input{width:100%}
@media(max-width:760px){.smtp-settings-card .smtp-port-row{display:grid;grid-template-columns:1fr}.smtp-settings-card .smtp-port-row .btn{width:100%}}


/* ASCEND v23.6: resend email verification actions */
.email-verify-alert{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.email-verify-alert form{margin:0;display:flex;justify-content:flex-end}
.user-save-cell{gap:8px;flex-wrap:wrap}
.user-save-cell .btn.success{min-width:178px}
@media(max-width:1180px){.user-save-cell{display:grid;grid-template-columns:1fr}.user-save-cell .btn{width:100%}.user-save-cell .btn.success{min-width:0}}

/* QC v23.7 - make resend verification action visible next to the warning badge */
.user-badges{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.verify-inline-btn{min-width:174px;height:34px;padding:7px 11px;box-shadow:0 8px 18px rgba(16,185,129,.16)}
.user-row-card .user-row-head{align-items:center}
@media(max-width:760px){.user-badges{justify-content:flex-start}.verify-inline-btn{width:100%;min-width:0}}


/* ASCEND RC-01: real life UAT status marker */
.app-stage-badge{display:inline-flex;margin-top:7px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.10);color:#d9e7ff;border-radius:999px;padding:4px 8px;font-size:10.5px;font-weight:850;letter-spacing:.04em;text-transform:uppercase}
/* RC-01 UAT patch: Bank Soal first-level grouping by standard / management system. */
.standard-system-grid .question-group-card{min-height:118px!important}.standard-system-grid .question-group-card small{font-weight:780;color:#243b63!important}.standard-system-grid .question-group-card em{color:#6b7890!important}.subgroup-head{margin-top:4px!important}.subgroup-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))!important}.subgroup-grid .question-group-card{min-height:100px!important}.selected-topic-panel{border-left-color:#10b981!important}.question-filter-clean .field.compact{min-width:170px}

/* RC-01 UAT patch: training edit + standard-based test bank picker */
.training-edit-panel{border:1px solid #dbeafe;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%)}
.training-edit-panel .panel-head{align-items:flex-start;gap:16px}
.training-edit-panel textarea{min-height:96px}
.large-modal-panel{max-width:880px;width:min(92vw,880px)}
.standard-auto-note{margin-bottom:14px}
.standard-picker-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;max-height:58vh;overflow:auto;padding:2px 4px 6px 2px}
.standard-picker-card{display:flex;gap:12px;align-items:flex-start;border:1px solid #d7e3f5;border-radius:16px;background:#fff;padding:14px;cursor:pointer;transition:.16s ease;box-shadow:0 8px 22px rgba(15,23,42,.04)}
.standard-picker-card:hover{border-color:#1d6bd8;box-shadow:0 10px 24px rgba(29,107,216,.10);transform:translateY(-1px)}
.standard-picker-card.checked{border-color:#1d6bd8;background:#f4f8ff;box-shadow:0 10px 24px rgba(29,107,216,.12)}
.standard-picker-card.shortage{border-color:#fed7aa;background:#fffaf4}
.standard-picker-card input{margin-top:4px;min-width:18px;width:18px;height:18px}
.standard-picker-body{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1}
.standard-picker-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.standard-picker-top strong{font-size:15px;line-height:1.25;color:#102033}
.standard-picker-top em{font-style:normal;white-space:nowrap;background:#edf5ff;color:#0b57c2;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800}
.standard-picker-body small{color:#5f718d;line-height:1.35}
.standard-picker-meta{font-size:12px;color:#71829b}
.warning-line{font-size:12px;color:#b45309;font-weight:700;margin-top:3px}
.selected-group-text .small{display:block;margin-top:4px}
@media(max-width:760px){.standard-picker-grid{grid-template-columns:1fr;max-height:none}.large-modal-panel{width:94vw}.training-edit-panel .grid-2{grid-template-columns:1fr}}


/* RC-01 public validation & attendance traceability fix */
.public-page{max-width:880px;margin:34px auto;padding:0 18px}
.proof-card{overflow:hidden}
.proof-card h1{word-break:break-word}
.proof-card p{word-break:break-word;overflow-wrap:anywhere}
.public-page .table.clean-table{width:100%;border-collapse:separate;border-spacing:0 8px;table-layout:fixed}
.public-page .table.clean-table td{white-space:normal;overflow-wrap:anywhere;word-break:normal;vertical-align:top}
.public-page .table.clean-table td:first-child{width:210px}
.public-page .table.clean-table td:last-child{min-width:0}
.checkin-summary .code-badge{display:inline-block;white-space:normal;overflow-wrap:anywhere}
@media(max-width:640px){
    .public-page{max-width:100%;margin:18px auto;padding:0 12px}
    .public-proof-brand{margin:8px 0 14px}
    .proof-card{padding:18px;border-radius:22px}
    .proof-card h1{font-size:26px;line-height:1.18}
    .public-page .table.clean-table,
    .public-page .table.clean-table tbody,
    .public-page .table.clean-table tr,
    .public-page .table.clean-table td{display:block;width:100%}
    .public-page .table.clean-table{border-spacing:0}
    .public-page .table.clean-table tr{border:1px solid var(--line);border-radius:14px;background:#fff;margin:8px 0;padding:10px 12px}
    .public-page .table.clean-table td{border:0!important;padding:2px 0!important;background:transparent!important}
    .public-page .table.clean-table td:first-child{width:100%;border-radius:0;color:#475569;font-size:12px;text-transform:none}
    .public-page .table.clean-table td:last-child{border-radius:0;font-size:16px;line-height:1.3}
}


/* RC-01 QR consistency on certificate preview */
.signature-qr-preview .qr-img,
.cert-signer .signature-qr-preview img{width:110px;height:110px;margin:0 auto;border:1px solid var(--line);border-radius:10px;padding:6px;background:#fff}
.signature-qr-preview span{display:none!important}
.cert-verify small{display:none!important}

/* RC-01 participant code label clarity */
.trace-code{white-space:normal;overflow-wrap:anywhere;display:inline-block;line-height:1.25}

/* RC-01 Simplified workflow polish */
.shortcut-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-top:12px}
.shortcut-card{display:grid;gap:7px;border:1px solid var(--line);border-radius:18px;background:#fbfdff;padding:14px;text-decoration:none;color:inherit;transition:.15s}
.shortcut-card:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(15,35,70,.08)}
.shortcut-card span{width:30px;height:30px;border-radius:12px;background:#eaf1fb;color:#0b3d91;display:grid;place-items:center;font-weight:950}
.shortcut-card strong{font-size:14px;color:#102033}.shortcut-card small{color:var(--muted);line-height:1.35}
.simplified-actions{align-items:center}.simplified-actions form{margin:0}.simplified-actions .pill{white-space:nowrap}
@media(max-width:720px){.shortcut-grid{grid-template-columns:1fr}.cert-action-row.simplified-actions{display:grid;grid-template-columns:1fr}.cert-action-row.simplified-actions .btn{width:100%;justify-content:center}}

/* RC-01 Flow Simplification: training-based attendance and certificate grouping */
.training-attendance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:16px}
.training-attendance-card{display:grid;gap:14px}
.training-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.training-card-head h3{margin:8px 0 4px;line-height:1.22}
.compact-stat-grid{grid-template-columns:repeat(4,1fr);gap:8px;margin:0}
.compact-stat-grid div{padding:10px;border-radius:14px}
.session-mini-info{border:1px solid var(--line);background:#f8fbff;border-radius:14px;padding:12px;color:#51627a;font-size:13px;line-height:1.35}
.training-card-actions{gap:8px;flex-wrap:wrap}
.client-training-groups{display:grid;gap:18px}
.client-group-block{display:grid;gap:10px}
.client-group-block h4{margin:0;color:#102033;font-size:15px}
.cert-training-card-list{display:grid;gap:10px}
.cert-training-card{border:1px solid var(--line);border-radius:18px;background:#fff;padding:14px;display:grid;grid-template-columns:minmax(260px,1.5fr) minmax(180px,.8fr) minmax(250px,1fr);gap:14px;align-items:center}
.cert-training-main{display:grid;gap:6px}.cert-training-main strong{font-size:15px;line-height:1.25}.cert-training-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.cert-training-stats div{border:1px solid var(--line);border-radius:13px;background:#f8fbff;padding:9px;text-align:center}.cert-training-stats strong{display:block}.cert-training-stats span{font-size:11px;color:var(--muted)}
.cert-step-actions{gap:8px;flex-wrap:wrap;justify-content:flex-end}.cert-step-actions form{margin:0}.done-card{background:#fbfffb}.history-block h4{color:#475569}.collapsible-summary{cursor:pointer;list-style:none}.collapsible-summary::-webkit-details-marker{display:none}.training-edit-panel:not([open]){padding-bottom:14px}.training-edit-panel[open] .collapsible-summary{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:14px}.training-edit-panel form{margin-top:12px}
@media(max-width:900px){.cert-training-card{grid-template-columns:1fr}.cert-step-actions{justify-content:flex-start}.compact-stat-grid{grid-template-columns:repeat(2,1fr)}}


/* RC-01: master peserta as grouped cards */
.participant-client-groups{display:grid;gap:18px}
.client-participant-section{border:1px solid var(--line);border-radius:22px;background:#fff;padding:18px;box-shadow:0 10px 28px rgba(15,35,70,.05)}
.client-participant-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:14px}
.client-participant-head h3{margin:2px 0 5px;font-size:20px}
.participant-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.participant-mini-card{border:1px solid #dbe7f5;border-radius:18px;background:linear-gradient(180deg,#ffffff,#fbfdff);padding:14px;display:grid;gap:8px;min-height:178px}
.participant-mini-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.soft-code{background:#eefbf6!important;color:#047857!important;border-color:#bbf7d0!important}
.participant-mini-card h4{margin:0;color:#06142b;font-size:16px;line-height:1.25}
.participant-contact{margin:0;color:#334155;font-size:13px;line-height:1.35;word-break:break-word}
.participant-contact span{color:#64748b}
.participant-meta-line{display:flex;gap:8px;flex-wrap:wrap;color:#475569;font-size:12px}
.participant-meta-line span{background:#f5f8fc;border:1px solid #e2eaf5;border-radius:999px;padding:5px 8px}
.participant-training-note{border-top:1px solid #edf2f7;padding-top:8px;display:grid;gap:2px;color:#102033;font-size:12px}
.participant-training-note strong{font-size:12.5px;line-height:1.25}
.participant-training-note span{color:#64748b}
.participant-training-note.muted strong{color:#64748b}
.empty-card{padding:24px;text-align:center}
@media(max-width:700px){.client-participant-head{display:block}.client-participant-head .pill{margin-top:8px}.participant-card-grid{grid-template-columns:1fr}.participant-mini-card{min-height:0}}

/* RC-01: client-first master participants and cleaner certificate history */
.client-summary-only{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}
.client-participant-card{border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:0 12px 30px rgba(15,35,70,.05);overflow:hidden}
.client-participant-card[open]{grid-column:1 / -1}
.client-participant-summary{list-style:none;cursor:pointer;padding:18px;display:flex;justify-content:space-between;gap:16px;align-items:flex-start;background:linear-gradient(180deg,#fff,#fbfdff)}
.client-participant-summary::-webkit-details-marker{display:none}
.client-participant-summary h3{margin:2px 0 5px;font-size:20px;line-height:1.2}
.client-summary-stats{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.summary-chevron{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:999px;padding:7px 11px;font-weight:800;color:#0b3d91;background:#f8fbff;font-size:12px}
.client-participant-card[open] .summary-chevron{background:#0b5ed7;color:#fff;border-color:#0b5ed7}
.client-participant-detail{border-top:1px solid var(--line);padding:16px 18px 18px;background:#fff}
.client-training-strip{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.client-training-strip span{background:#eef6ff;border:1px solid #d8e9ff;color:#17427c;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:750}
.detail-grid{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}
.detail-card{min-height:0}
.cert-training-stats-4{grid-template-columns:repeat(4,1fr)}
.cert-history-card{border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#ffffff,#fbfffb);padding:16px;display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:14px;align-items:center}
.cert-history-main{display:grid;gap:6px}.cert-history-main strong{font-size:16px;line-height:1.25;color:#102033}
.cert-history-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center}.cert-history-actions form{margin:0}
@media(max-width:900px){.client-summary-only{grid-template-columns:1fr}.client-participant-summary{display:block}.client-summary-stats{justify-content:flex-start;margin-top:10px}.cert-training-stats-4{grid-template-columns:repeat(2,1fr)}.cert-history-card{grid-template-columns:1fr}.cert-history-actions{justify-content:flex-start}}

/* RC-01 role, online user, audit log polish */
.online-pill.clickable{ text-decoration:none; cursor:pointer; }
.online-pill.clickable:hover{ box-shadow:0 8px 18px rgba(28,100,242,.15); transform:translateY(-1px); }
.role-mini{ display:inline-flex; align-items:center; padding:6px 10px; border-radius:999px; background:#f1f5f9; color:#475569; font-size:12px; font-weight:800; }
.online-user-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:14px; }
.online-user-card{ border:1px solid var(--line); border-radius:20px; padding:16px; background:#fbfdff; display:flex; gap:14px; align-items:flex-start; }
.online-user-avatar{ width:42px; height:42px; border-radius:16px; background:#e9f4ff; color:#0b3d91; display:grid; place-items:center; font-weight:950; }
.online-user-card strong{ display:block; font-size:16px; }
.online-user-card span{ display:block; color:#64748b; font-size:13px; }
.online-user-meta{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin:8px 0; }
.audit-url{ max-width:320px; display:block; overflow-wrap:anywhere; }
.audit-payload{ max-width:360px; white-space:pre-wrap; overflow-wrap:anywhere; background:#f8fafc; border:1px solid var(--line); border-radius:12px; padding:8px; font-size:11px; line-height:1.35; margin:0; color:#334155; }
.role-matrix{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:10px; margin:12px 0 18px; }
.role-card{ border:1px solid var(--line); border-radius:18px; padding:14px; background:#fbfdff; }
.role-card strong{ display:block; margin-bottom:6px; color:#102033; }
.role-card span{ display:block; font-size:12px; color:#64748b; line-height:1.4; }


/* RC-01 online user: top badge only, no sidebar menu */
.online-pill-button{border:1px solid #cfe0ff;background:#f3f8ff;cursor:pointer;font:inherit;line-height:1;}
.online-modal-panel{max-width:620px;}
.online-quick-list{display:grid;gap:10px;margin-top:12px;}
.online-quick-card{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:16px;background:#fbfdff;padding:12px;}
.online-quick-card strong,.online-quick-card span,.online-quick-card small{display:block;overflow-wrap:anywhere;}
.online-quick-card span{color:var(--muted);font-size:13px;margin-top:2px;}
.online-quick-card small{color:#64748b;font-size:12px;margin-top:4px;}

/* RC-01 hotfix: online users should be a small topbar popover, not a full modal/page */
.online-popover-wrap{position:relative;display:inline-flex;align-items:center;}
.online-popover{position:absolute;right:0;top:calc(100% + 10px);width:258px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 40px rgba(15,35,70,.14);padding:14px;z-index:1000;display:none;text-align:left;}
.online-popover.is-open{display:block;}
.online-popover:before{content:"";position:absolute;right:28px;top:-8px;width:14px;height:14px;background:#fff;border-left:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg);}
.online-popover-head{display:flex;gap:8px;align-items:center;text-transform:uppercase;letter-spacing:.08em;color:#64748b;font-size:12px;margin-bottom:12px;}
.online-dot{width:10px;height:10px;border-radius:999px;background:#1fce77;box-shadow:0 0 0 3px rgba(31,206,119,.12);}
.online-popover-list{display:grid;gap:10px;}
.online-popover-user{display:flex;gap:10px;align-items:center;}
.small-avatar{width:32px!important;height:32px!important;border-radius:999px!important;font-size:13px;flex:0 0 32px;}
.online-popover-info{min-width:0;flex:1;}
.online-popover-info strong{display:block;font-size:14px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.online-popover-info span{display:block;color:#64748b;font-size:12px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mini-pill{font-size:11px;padding:4px 8px;border-radius:8px;background:#e8f0ff;color:#135bd8;}
.online-popover-empty{padding:10px;border:1px dashed var(--line);border-radius:12px;color:#64748b;font-size:12px;}
@media(max-width:680px){.online-popover{right:-70px;width:250px}.product-user{gap:8px;}}

/* RC-01 Certificate workflow tidy UI */
.certificate-workspace-v2{display:flex;flex-direction:column;gap:16px}.cert-v2-toolbar{align-items:flex-start}.cert-v2-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.cert-v2-summary-card{border:1px solid var(--line);border-radius:18px;background:#fff;padding:14px 16px;min-height:78px;display:flex;flex-direction:column;justify-content:center;box-shadow:0 8px 24px rgba(15,23,42,.04)}.cert-v2-summary-card strong{font-size:26px;line-height:1;color:#0f172a}.cert-v2-summary-card span{margin-top:8px;color:var(--muted);font-size:13px}.cert-v2-summary-card.needs-action{border-color:#bfdbfe;background:linear-gradient(180deg,#fff,#f8fbff)}.cert-v2-summary-card.muted{background:#f8fafc}.cert-v2-workflow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.cert-v2-step-card,.cert-v2-detail-card{border:1px solid var(--line);border-radius:22px;background:#fff;padding:18px;box-shadow:0 12px 32px rgba(15,23,42,.05)}.cert-v2-step-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.cert-v2-step-head h3{margin:0;font-size:20px}.cert-v2-step-head p{margin:6px 0 0}.cert-v2-list{display:flex;flex-direction:column;gap:10px}.cert-v2-row-card{border:1px solid #dbe7f5;border-radius:18px;background:#fbfdff;padding:14px;display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(220px,1fr) auto;gap:12px;align-items:center}.cert-v2-main h4{margin:10px 0 4px;font-size:16px;line-height:1.25}.cert-v2-main p{margin:0;color:var(--muted);font-size:13px}.cert-v2-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.cert-v2-metrics span{border:1px solid var(--line);border-radius:14px;background:#fff;padding:8px 10px;color:var(--muted);font-size:12px;white-space:nowrap}.cert-v2-metrics b{display:inline-block;min-width:22px;color:#0f172a;font-size:16px}.cert-v2-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.cert-v2-actions form{display:inline-flex;margin:0}.cert-v2-empty{border:1px dashed #d6e2f2;border-radius:16px;background:#fbfdff;color:var(--muted);padding:22px;text-align:center}.cert-v2-detail-card{padding:0;overflow:hidden}.cert-v2-detail-card summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;list-style:none}.cert-v2-detail-card summary::-webkit-details-marker{display:none}.cert-v2-detail-card summary span{color:var(--muted);font-size:13px;font-weight:500}.cert-v2-detail-card[open] summary{border-bottom:1px solid var(--line)}.cert-v2-detail-card .cert-v2-list,.cert-v2-detail-card .cert-v2-filter,.cert-v2-detail-card .cert-v2-table-wrap{margin:16px 18px}.cert-v2-table-wrap{overflow:auto}.cert-v2-table td{vertical-align:middle}.history-row{background:#fff}.not-ready-row{grid-template-columns:minmax(220px,1fr) auto}.cert-v2-filter{align-items:flex-end}.cert-v2-filter .btn{height:44px}
@media(max-width:1180px){.cert-v2-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.cert-v2-workflow{grid-template-columns:1fr}.cert-v2-row-card{grid-template-columns:1fr}.cert-v2-actions{justify-content:flex-start}.cert-v2-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:720px){.cert-v2-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cert-v2-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.cert-v2-detail-card summary{align-items:flex-start;flex-direction:column}.cert-v2-toolbar .actions{width:100%;justify-content:flex-start}}


/* RC-01 Certificate detail overflow fix */
.card{min-width:0;}
.page-head,.actions{min-width:0;}
.certificate-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;margin-top:20px;align-items:start;max-width:100%;overflow:hidden;}
.certificate-detail-grid>.card{min-width:0;max-width:100%;overflow:hidden;}
.certificate-safe-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.certificate-safe-actions form{margin:0;}
.cert-info-list{display:grid;gap:10px;margin-top:14px;max-width:100%;}
.cert-info-row{display:grid;grid-template-columns:180px minmax(0,1fr);gap:14px;align-items:start;border:1px solid var(--line);border-radius:16px;background:#fbfdff;padding:12px 14px;min-width:0;max-width:100%;}
.cert-info-label{font-weight:850;color:#334155;line-height:1.35;}
.cert-info-value{min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word;line-height:1.4;color:#0f172a;}
.cert-link-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px;align-items:center;}
.safe-long-text{display:block;max-width:100%;overflow-wrap:anywhere;word-break:break-word;white-space:normal;font-size:12px;line-height:1.45;color:#64748b;background:#f8fafc;border:1px solid #e2eaf5;border-radius:12px;padding:8px 10px;}
.safe-long-input{max-width:100%;overflow:hidden;text-overflow:ellipsis;}
.certificate-validation-card textarea,.certificate-onedrive-card input{max-width:100%;box-sizing:border-box;}
.revoke-certificate-box{margin-top:16px;border-top:1px solid var(--line);padding-top:14px;}
.revoke-certificate-box summary{cursor:pointer;font-weight:900;color:#0f172a;list-style:none;display:inline-flex;align-items:center;gap:8px;border:1px solid #fecaca;background:#fff7f7;border-radius:999px;padding:8px 12px;}
.revoke-certificate-box summary::-webkit-details-marker{display:none;}
.revoke-certificate-box[open] summary{margin-bottom:12px;}
.pdf-preview-card{min-width:0;overflow:hidden;}
.pdf-frame{max-width:100%;}
@media(max-width:980px){.certificate-detail-grid{grid-template-columns:1fr}.cert-info-row{grid-template-columns:150px minmax(0,1fr)}}
@media(max-width:640px){.cert-info-row{grid-template-columns:1fr;gap:6px}.cert-link-actions .btn{width:100%;justify-content:center}.certificate-safe-actions .btn{width:100%;justify-content:center}.certificate-safe-actions form{width:100%}}


/* RC-01 consolidated hotfix: certificate workflow must never overflow horizontally */
html,body{max-width:100%;overflow-x:hidden;}
.product-shell,.product-main,.product-content,.content,.certificate-workspace-v2{min-width:0;max-width:100%;overflow-x:hidden;}
.certificate-workspace-v2 *{box-sizing:border-box;min-width:0;}
.cert-v2-toolbar{display:flex;flex-wrap:wrap;gap:14px;}
.cert-v2-toolbar>div:first-child{min-width:0;flex:1 1 280px;}
.cert-v2-toolbar .actions{flex:0 1 auto;display:flex;flex-wrap:wrap;max-width:100%;}
.cert-v2-summary-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important;gap:12px;max-width:100%;overflow:hidden;}
.cert-v2-summary-card{min-width:0!important;max-width:100%;}
.cert-v2-workflow{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))!important;gap:16px;max-width:100%;overflow:hidden;}
.cert-v2-step-card,.cert-v2-detail-card{min-width:0!important;max-width:100%;overflow:hidden;}
.cert-v2-row-card{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:10px!important;width:100%;max-width:100%;overflow:hidden;align-items:stretch!important;}
.cert-v2-main,.cert-v2-main h4,.cert-v2-main p{min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:normal;}
.cert-v2-main .code-badge{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cert-v2-metrics{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(86px,1fr))!important;gap:8px;width:100%;max-width:100%;}
.cert-v2-metrics span{min-width:0!important;white-space:normal!important;overflow-wrap:anywhere;line-height:1.25;display:flex;align-items:center;gap:5px;justify-content:center;text-align:center;}
.cert-v2-metrics b{min-width:0!important;display:inline!important;}
.cert-v2-actions{justify-content:flex-start!important;max-width:100%;overflow:hidden;}
.cert-v2-actions .btn,.cert-v2-actions form,.cert-v2-actions button{max-width:100%;min-width:0;}
.cert-v2-detail-card summary{min-width:0;max-width:100%;overflow-wrap:anywhere;}
.cert-v2-detail-card .cert-v2-list,.cert-v2-detail-card .cert-v2-filter,.cert-v2-detail-card .cert-v2-table-wrap{max-width:100%;overflow-x:auto;}
@media(min-width:1420px){.cert-v2-workflow{grid-template-columns:repeat(3,minmax(0,1fr))!important;}}
@media(max-width:720px){.cert-v2-summary-grid{grid-template-columns:1fr 1fr!important}.cert-v2-workflow{grid-template-columns:1fr!important}.cert-v2-metrics{grid-template-columns:1fr 1fr!important}.cert-v2-toolbar .actions .btn{width:100%;justify-content:center}.cert-v2-toolbar .actions{width:100%;}}

/* RC-01 Question Bank Add/Import Flow Cleanup */
.question-toolbar-pro{align-items:flex-start!important}.question-main-actions{align-items:center;justify-content:flex-end}.question-workflow-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0 18px;padding:14px;background:#f8fbff}.question-workflow-strip div{border:1px solid #dfe8f5;background:#fff;border-radius:14px;padding:12px}.question-workflow-strip strong{display:block;color:#102033;font-size:13px}.question-workflow-strip span{display:block;color:#64748b;font-size:12px;margin-top:3px;line-height:1.35}.question-selected-standard{gap:16px}.question-selected-standard .actions{flex-wrap:wrap;justify-content:flex-end}.question-readiness-panel{margin:14px 0}.question-group-action-grid .question-group-card,.compact-choice-grid .question-group-card{min-height:150px!important}.question-card-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:auto;padding-top:6px}.question-card-actions .btn{white-space:nowrap}.question-filter-details{margin:14px 0;padding:0!important;overflow:hidden}.question-filter-details summary{cursor:pointer;display:flex;gap:8px;align-items:center;padding:14px 16px;list-style:none}.question-filter-details summary::-webkit-details-marker{display:none}.question-filter-details summary:before{content:'▸';font-size:13px;color:#1f6feb}.question-filter-details[open] summary:before{content:'▾'}.question-filter-details form{padding:0 16px 16px}.question-empty-workspace{background:#fbfdff}.question-table-pro td{vertical-align:top}.question-table-pro strong{overflow-wrap:anywhere}.subgroup-grid article.question-group-card,.compact-choice-grid article.question-group-card{color:var(--ink)!important;text-decoration:none!important}.modal-wide .field textarea[name="question_text"]{min-height:92px}.modal-wide .field textarea[name="explanation"]{min-height:72px}@media(max-width:1040px){.question-workflow-strip{grid-template-columns:repeat(2,1fr)}.question-selected-standard{display:block}.question-selected-standard .actions{justify-content:flex-start;margin-top:12px}}@media(max-width:640px){.question-workflow-strip{grid-template-columns:1fr}.question-main-actions,.question-card-actions{display:grid;width:100%}.question-main-actions .btn,.question-main-actions a,.question-card-actions .btn{width:100%;justify-content:center}.question-filter-details summary{display:block}.question-filter-details summary .small{display:block;margin-top:4px}}


/* RC-01 Admin participant and attendance correction */
.participant-admin-actions,.row-admin-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;align-items:center;}
.row-admin-actions .btn{white-space:nowrap;}
.compact-table td .row-admin-actions{min-width:150px;}
.participant-mini-card .participant-admin-actions{border-top:1px solid #e8eef7;padding-top:10px;}
@media(max-width:780px){.row-admin-actions{display:grid}.row-admin-actions .btn{width:100%;justify-content:center}.compact-table td .row-admin-actions{min-width:0}}

/* Completed training approval governance */
.approval-summary-grid{margin:14px 0 16px}.approval-filter{display:flex;align-items:end;gap:12px;margin-bottom:16px}.approval-request-list{display:grid;gap:14px}.approval-request-card{padding:18px}.approval-request-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.approval-request-head h3{margin:8px 0 4px}.approval-request-meta{display:flex;gap:8px;align-items:center}.approval-request-who{text-align:right;display:flex;flex-direction:column;gap:3px}.approval-request-who span{font-size:12px;color:var(--muted,#64748b)}.approval-change-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.approval-change-box{border:1px solid var(--line,#dbe5f1);border-radius:14px;padding:14px;min-width:0}.approval-payload-list{margin:10px 0 0;display:grid;gap:8px}.approval-payload-list>div{display:grid;grid-template-columns:minmax(120px,32%) 1fr;gap:10px;border-bottom:1px dashed var(--line,#dbe5f1);padding-bottom:7px}.approval-payload-list dt{font-weight:750;color:#334155}.approval-payload-list dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.approval-review-note{margin-top:12px;padding:11px 13px;border-radius:12px;background:#f8fafc;border:1px solid var(--line,#dbe5f1)}.approval-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:14px}.approval-actions form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.approval-actions input{min-width:230px}.danger-soft{background:#fff1f2!important;border-color:#fecdd3!important}.nav-count-badge{margin-left:auto;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:#dc2626;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:800}.governance-lock-note{border:1px solid #f6d28b;background:#fffaf0;color:#7c4a03;border-radius:14px;padding:12px 14px;margin:12px 0}.governance-lock-note strong{display:block;margin-bottom:3px}
@media(max-width:900px){.approval-change-grid{grid-template-columns:1fr}.approval-request-head{flex-direction:column}.approval-request-who{text-align:left}.approval-filter{align-items:stretch;flex-direction:column}.approval-actions form{width:100%}.approval-actions input{min-width:0;flex:1}}


/* RC-01 completion handoff and lifecycle clarity */
.completion-flow-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:0 0 16px}.completion-flow-strip>div{display:flex;align-items:center;gap:9px;padding:12px 13px;border:1px solid #dbe5f1;border-radius:14px;background:#fff;color:#64748b;min-width:0}.completion-flow-strip>div span{width:28px;height:28px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#eef4fb;color:#315f9b;font-weight:800;flex:0 0 auto}.completion-flow-strip>div strong{font-size:13px;line-height:1.25}.completion-flow-strip>div.done{border-color:#bfe9d8;background:#f2fcf8;color:#0f6b4d}.completion-flow-strip>div.done span{background:#d9f7ea;color:#087553}.completion-flow-strip>div.active{border-color:#91b9f8;background:#f2f7ff;color:#124b9b;box-shadow:0 8px 24px rgba(37,99,235,.08)}.completion-flow-strip>div.active span{background:#2563eb;color:#fff}.completion-review-clean{max-width:1120px}.completion-primary-action{margin-top:16px;border-top:1px solid #e4ebf5;padding-top:16px}.completion-secondary-options{margin-top:16px;padding:0!important;overflow:hidden}.completion-secondary-options>summary{cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:17px 20px;list-style:none}.completion-secondary-options>summary::-webkit-details-marker{display:none}.completion-secondary-options>summary span{font-size:12px;color:#64748b}.completion-secondary-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:0 20px 20px}.completion-secondary-grid form{border:1px solid #dbe5f1;border-radius:14px;padding:16px}.completion-result-hero{display:flex;gap:16px;align-items:flex-start;border:1px solid #bfe9d8;background:linear-gradient(135deg,#f1fcf7,#f8fbff);padding:20px;border-radius:20px;margin-bottom:16px}.completion-result-hero.archived{border-color:#dbe5f1;background:linear-gradient(135deg,#f8fafc,#fff)}.completion-result-icon{width:54px;height:54px;border-radius:16px;background:#0ea56b;color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:900;flex:0 0 auto}.completion-result-hero h3{margin:8px 0 6px}.completion-result-hero p{margin:0;color:#53657b;line-height:1.55}.completion-result-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.82fr);gap:16px;align-items:start}.completion-final-summary,.completion-next-card{min-width:0}.certificate-stage-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.certificate-stage-metrics>div{border:1px solid #dbe5f1;background:#f8fbff;border-radius:14px;padding:12px;text-align:center}.certificate-stage-metrics strong{display:block;font-size:18px;color:#10233e}.certificate-stage-metrics span{font-size:11px;color:#64748b}.completion-status-explainer{margin-top:16px;line-height:1.6}.result-flow{margin-top:0}.result-flow>div{padding:11px}.result-flow>div strong{font-size:12px}
@media(max-width:980px){.completion-flow-strip{grid-template-columns:1fr 1fr}.completion-result-grid,.completion-secondary-grid{grid-template-columns:1fr}.certificate-stage-metrics{grid-template-columns:1fr 1fr}.completion-flow-strip>div:last-child{grid-column:1/-1}}
@media(max-width:620px){.completion-flow-strip{grid-template-columns:1fr}.completion-flow-strip>div:last-child{grid-column:auto}.completion-result-hero{flex-direction:column}.certificate-stage-metrics{grid-template-columns:1fr 1fr}.completion-secondary-options>summary{align-items:flex-start;flex-direction:column}.completion-result-grid{display:block}.completion-next-card{margin-top:16px}}

/* RC01 Question Bank simplified flow */
.qb-toolbar-simple{align-items:flex-start!important}.qb-toolbar-simple h2{margin-bottom:5px}.qb-toolbar-simple .small{max-width:760px}.qb-primary-actions{align-items:center;justify-content:flex-end;flex-wrap:wrap}.qb-production-note{margin-top:10px}.qb-more-actions{position:relative}.qb-more-actions>summary{list-style:none;cursor:pointer}.qb-more-actions>summary::-webkit-details-marker{display:none}.qb-more-actions-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:20;min-width:220px;padding:8px;background:#fff;border:1px solid #dbe5f3;border-radius:14px;box-shadow:0 18px 46px rgba(15,35,70,.16);display:grid;gap:4px}.qb-more-actions-menu a,.qb-more-actions-menu button{display:block;width:100%;border:0;background:transparent;text-align:left;color:#20334d;font:inherit;font-size:13px;font-weight:750;padding:9px 10px;border-radius:9px;text-decoration:none;cursor:pointer}.qb-more-actions-menu a:hover,.qb-more-actions-menu button:hover{background:#f2f7ff;color:#0b4db8}.qb-overview-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0 22px}.qb-overview-strip>div{border:1px solid #dfe8f5;background:#fff;border-radius:16px;padding:13px 15px;display:flex;align-items:baseline;gap:8px}.qb-overview-strip strong{font-size:24px;color:#102033}.qb-overview-strip span{font-size:12px;color:#64748b}.qb-overview-strip .needs-attention{border-color:#f4ce85;background:#fffaf0}.qb-stage-section{margin:0 0 18px}.qb-stage-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:8px 0 12px}.qb-stage-head>div{display:flex;align-items:flex-start;gap:10px}.qb-stage-head h3{margin:0 0 3px}.qb-step-number{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border-radius:999px;background:#eaf2ff;color:#0b4db8;font-size:13px;font-weight:900}.qb-standard-grid,.qb-theme-grid{margin-top:10px!important}.qb-standard-card{min-height:156px!important}.qb-card-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:4px}.qb-card-meta span{font-size:11px!important;color:#50627a!important;background:#f4f7fb!important;border:1px solid #e5ebf4;border-radius:999px;padding:4px 7px}.qb-card-meta .warn-text{color:#8a5500!important;background:#fff6df!important;border-color:#f6d996}.qb-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto}.qb-card-footer em{font-weight:800!important;color:#0b4db8!important}.qb-breadcrumb{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:2px 0 12px;font-size:13px;color:#64748b}.qb-breadcrumb a{color:#0b4db8;font-weight:800;text-decoration:none}.qb-breadcrumb strong{color:#26394f}.qb-selected-bank{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;border-left:4px solid #1f6feb}.qb-selected-bank h3{margin:8px 0 3px}.qb-theme-card{min-height:135px!important}.qb-next-hint{border:1px dashed #b9cbea;background:#f8fbff;color:#53647c;border-radius:14px;padding:12px 14px;margin-top:8px;font-size:13px}.qb-filter-panel{margin-top:12px!important}.qb-bulk-actions{margin-top:12px;padding:0!important;overflow:hidden}.qb-bulk-actions>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:13px 15px}.qb-bulk-actions>summary::-webkit-details-marker{display:none}.qb-bulk-actions>summary:before{content:'▸';color:#1f6feb;font-size:12px}.qb-bulk-actions[open]>summary:before{content:'▾'}.qb-bulk-actions-body{border:0!important;border-top:1px solid #e4ebf5!important;border-radius:0!important;box-shadow:none!important;position:static!important;margin:0!important}.qb-import-history{margin-top:20px;padding:0!important;overflow:visible}.qb-import-history>summary{list-style:none;cursor:pointer;padding:15px 17px;display:flex;justify-content:space-between;gap:15px;align-items:center}.qb-import-history>summary::-webkit-details-marker{display:none}.qb-import-history>summary>div:first-child{display:grid;gap:3px}.qb-import-history>summary strong{font-size:15px}.qb-import-history>summary span{font-size:12px;color:#64748b}.qb-history-summary-badges{display:flex;gap:7px;align-items:center}.qb-import-history-body{border-top:1px solid #e4ebf5;padding:16px}.qb-import-history-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:15px}.qb-import-history-head p{margin:0;max-width:800px}.qb-import-subsection{display:grid;gap:10px;margin-top:14px}.qb-import-subsection h4{margin:0;color:#25384f}.qb-import-list{display:grid;gap:9px}.qb-import-item{border:1px solid #e1e8f3;background:#fff;border-radius:14px;padding:12px 14px}.qb-import-item.is-alert{border-color:#f2bbbb;background:#fff8f8}.qb-import-item-main{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.qb-import-item-main>div{display:grid;gap:3px;min-width:0}.qb-import-item-main strong{overflow-wrap:anywhere}.qb-import-item-main span{font-size:12px;color:#64748b}.qb-batch-detail{margin-top:10px}.qb-batch-detail>summary{cursor:pointer;color:#0b4db8;font-size:12px;font-weight:800;list-style:none}.qb-batch-detail>summary::-webkit-details-marker{display:none}.qb-batch-detail-body{margin-top:9px;border-top:1px solid #e7edf5;padding-top:10px}.qb-batch-detail-body p{margin:0 0 7px;overflow-wrap:anywhere}.qb-batch-actions{align-items:flex-start;flex-wrap:wrap}.qb-repair-action{position:relative}.qb-repair-action>summary{list-style:none;cursor:pointer}.qb-repair-action>summary::-webkit-details-marker{display:none}.qb-repair-action>div{margin-top:8px;max-width:500px;padding:11px;border:1px solid #dce6f5;background:#f8fbff;border-radius:12px}.qb-repair-action p{margin:0 0 9px}.qb-import-history:not([open]) .qb-history-summary-badges .pill:last-child:after{content:' ↓'}.qb-import-history[open] .qb-history-summary-badges .pill:last-child{font-size:0}.qb-import-history[open] .qb-history-summary-badges .pill:last-child:after{content:'Tutup Riwayat ↑';font-size:12px}.qb-theme-grid .question-card-actions{margin-top:auto}.qb-selected-bank .actions{flex-wrap:wrap}
@media(max-width:900px){.qb-overview-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.qb-selected-bank,.qb-stage-head,.qb-import-history-head{align-items:flex-start}.qb-selected-bank{display:grid}.qb-import-item-main{display:grid}.qb-primary-actions{justify-content:flex-start}.qb-more-actions-menu{left:0;right:auto}}
@media(max-width:620px){.qb-overview-strip{grid-template-columns:1fr 1fr}.qb-primary-actions{display:grid;width:100%}.qb-primary-actions>.btn,.qb-primary-actions>button,.qb-more-actions,.qb-more-actions>summary{width:100%;justify-content:center}.qb-stage-head{display:grid}.qb-import-history>summary{align-items:flex-start;display:grid}.qb-history-summary-badges{justify-content:flex-start}.qb-batch-actions{display:grid}.qb-batch-actions form,.qb-batch-actions .btn{width:100%}.qb-more-actions-menu{position:static;margin-top:6px;box-shadow:none}.qb-overview-strip strong{font-size:20px}}

.inline-form{display:inline-flex;margin:0;align-items:center}
.inline-form .btn{white-space:nowrap}

/* ASCEND UI refinement — Aurora-like polish, CSS-only. No form names, routes, inputs, or process logic changed. */
:root{
  --ink:#102033;
  --muted:#6f7f96;
  --soft:#f4f7fb;
  --line:#dce6f2;
  --brand:#173a59;
  --brand2:#0f2b44;
  --accent:#14b8a6;
  --brand-blue:#1d6be3;
  --card:#ffffff;
  --shadow:0 10px 28px rgba(16,32,51,.055);
  --r:18px;
}
html{font-size:15px}
body{
  font-family:"Inter","Plus Jakarta Sans",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#122033;
  background:#f4f7fb;
  font-weight:400;
  letter-spacing:-.01em;
}
body, input, select, textarea, button{font-family:"Inter","Plus Jakarta Sans",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.product-shell .sidebar,
.sidebar.product-sidebar,
.sidebar{
  width:304px;
  background:#0f2a43;
  color:#dceaf8;
  padding:24px 18px;
  border-right:1px solid rgba(255,255,255,.06);
}
.main.product-main,.main{margin-left:304px;width:calc(100% - 304px)}
.brand.product-brand,.brand{gap:14px;margin-bottom:34px;padding:0 10px}
.mark{
  width:42px;height:42px;border-radius:14px;
  background:rgba(20,184,166,.08);
  border:2px solid #28d7ca;
  color:#28d7ca;
  box-shadow:none;
  font-size:15px;
  letter-spacing:-.04em;
}
.brand h1{font-size:21px;letter-spacing:.01em;font-weight:750;line-height:1.1;color:#fff}
.brand p{font-size:12px;color:#9fb5cb;line-height:1.35}
.app-stage-badge{display:inline-flex;margin-top:8px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#ecf7ff;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700;letter-spacing:.02em}
.nav-section{font-size:12px;letter-spacing:.18em;font-weight:700;color:#73a8c7;margin:28px 10px 13px}
.nav a{
  min-height:45px;
  padding:11px 13px;
  border-radius:12px;
  margin:5px 0;
  color:#d8e9f8;
  font-weight:650;
  font-size:14.5px;
  gap:13px;
  border:1px solid transparent;
}
.nav a span{width:20px;display:inline-flex;justify-content:center;color:#b9cde2;font-weight:500}
.nav a:hover{background:rgba(255,255,255,.065);color:#fff}
.nav a.active{background:rgba(255,255,255,.10);color:#fff;border-color:rgba(255,255,255,.05)}
.nav-count-badge{margin-left:auto;background:#14b8a6;color:#05201e;border-radius:999px;padding:2px 7px;font-size:11px}
.topbar.product-topbar,.topbar{
  height:72px;
  background:#fff;
  border-bottom:1px solid #dce6f2;
  padding:0 30px;
  box-shadow:none;
  backdrop-filter:none;
}
.topbar .title{font-size:15px;font-weight:700;color:#16263a}
.topbar .small{font-size:12px;color:#90a0b6;margin-top:2px}
.product-user,.topbar .user{font-size:14px;color:#52627a;gap:10px;display:flex;align-items:center;flex-wrap:wrap}
.content.product-content,.content{padding:36px 38px;max-width:none}
.eyebrow{font-size:12px;letter-spacing:.18em;font-weight:800;color:#2357c9;margin-bottom:12px}
.page-head h2,.page-head h3,h2{font-size:28px;letter-spacing:-.035em;font-weight:760;line-height:1.18;color:#07182c}
h3{font-weight:720;letter-spacing:-.025em;color:#07182c}.page-head p,.muted-line{font-size:15px;line-height:1.55;color:#687a92}.card{border-color:#dbe6f2;border-radius:18px;padding:22px;box-shadow:var(--shadow);background:#fff}.metric{min-height:90px;align-items:center}.metric .num{font-size:31px;font-weight:760;letter-spacing:-.04em;color:#07182c}.metric .lbl{font-size:14px;color:#65778f}.pill{font-size:12px;font-weight:700;padding:7px 12px;background:#eef6ff;color:#175abe}.pill.ok{background:#e9fbf5;color:#047857}.pill.warn{background:#fff6e8;color:#a05a00}.pill.danger{background:#feecec;color:#b42318}.btn{border-radius:12px;padding:10px 15px;font-weight:700;font-size:14px;box-shadow:none}.btn.primary{background:#1f66d7;color:#fff}.btn.success{background:#07966d;color:#fff}.btn.ghost{background:#fff;border:1px solid #d9e5f2;color:#102033}.btn.danger{background:#dc2626;color:#fff}.field label{font-size:13px;font-weight:700;color:#263850}.field input,.field select,.field textarea{border-color:#d8e4f1;border-radius:12px;padding:11px 13px;font-size:14.5px;color:#14243a}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:#4da3ff;box-shadow:0 0 0 3px rgba(77,163,255,.12)}.table{border-spacing:0 8px}.table th{font-size:11px;font-weight:750;color:#667790;letter-spacing:.10em}.table td{padding:13px 12px;font-size:14px}.alert,.notice{border-radius:16px;padding:14px 16px;font-size:14px}.hero{border-radius:22px;background:#153856;box-shadow:var(--shadow);padding:28px}.hero h2{font-size:28px;font-weight:760}.grid{gap:18px}.toolbar{margin:18px 0}.training-card{padding:20px}.mini-stats div{border-radius:14px;background:#fbfdff}.code-badge{font-size:12px;border-radius:999px;background:#f1f6ff;color:#175abe;border-color:#cdddf5}.empty-state{border-radius:14px;background:#fbfdff;color:#71829a}.online-pill,.role-mini{border-radius:999px;background:#eef5ff;color:#174fa5;border:1px solid #cfe0fb;padding:7px 12px;font-weight:650}.role-mini{background:#f2f5f8;color:#34465f;border-color:#e2e8f0}.login-card,.checkin-card{border-radius:24px}.certificate-workflow-card,.workflow-card,.training-card,.question-standard-card{border-radius:18px}
@media(max-width:980px){.main.product-main,.main{margin-left:0;width:100%}.sidebar.product-sidebar,.sidebar{width:auto}.content.product-content,.content{padding:22px}.page-head h2,.page-head h3,h2{font-size:24px}}


/* ASCEND RC01 typography refinement per requested spec: DM Sans + Manrope.
   UI-only: no route/form/controller behavior is changed. */
:root{
  --font-body:"DM Sans",Arial,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-heading:"Manrope",Arial,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --ink:#102033;
  --muted:#6b7890;
}
html{font-size:13px;}
body{
  font-family:var(--font-body)!important;
  font-size:13px!important;
  line-height:1.52!important;
  font-weight:400!important;
  letter-spacing:-.006em;
}
body,button,input,select,textarea,.btn,.pill,.table,.field input,.field select,.field textarea{
  font-family:var(--font-body)!important;
}
h1,h2,h3,h4,h5,h6,
.page-head h1,.page-head h2,.page-head h3,
.hero h2,.topbar .title,.brand h1,.metric .num,.num,.stat-number,
.login-card h1,.public-brand h1,.cert h1,.cert .name{
  font-family:var(--font-heading)!important;
  letter-spacing:-.025em;
  color:var(--ink);
}
h1{font-size:30px!important;line-height:1.16!important;font-weight:800!important;}
h2{font-size:24px!important;line-height:1.18!important;font-weight:800!important;}
h3{font-size:18px!important;line-height:1.25!important;font-weight:750!important;}
h4{font-size:15px!important;line-height:1.3!important;font-weight:700!important;}
.page-head h2,.page-head h3{font-size:24px!important;font-weight:800!important;}
.content>.page-head h2,.content>.page-head h3{font-size:24px!important;}
.hero h2{font-size:28px!important;font-weight:800!important;}
.topbar .title{font-size:16px!important;font-weight:750!important;}
.dashboard-title,.content h2:first-child{font-size:23px!important;}
.login-card h1,.login-card h2{font-size:30px!important;line-height:1.14!important;font-weight:800!important;}
.brand h1{font-size:16px!important;line-height:1.12!important;font-weight:800!important;letter-spacing:.055em!important;}
.brand p{font-size:11px!important;line-height:1.35!important;font-weight:400!important;}
.nav-section{font-size:10px!important;letter-spacing:.16em!important;font-weight:700!important;}
.nav a{
  font-family:var(--font-body)!important;
  font-size:12px!important;
  line-height:1.35!important;
  font-weight:700!important;
  letter-spacing:-.006em!important;
  padding:11px 12px!important;
}
.nav a small,.nav .submenu a,.submenu a{
  font-size:11px!important;
  line-height:1.35!important;
  font-weight:500!important;
}
.sidebar{font-size:12px!important;}
.content{font-size:13px!important;}
p,.muted-line,.card p,.page-head p,.hero p{font-size:13px!important;line-height:1.55!important;font-weight:400!important;}
.small,.help,.hint,.muted,.public-brand p,.session-item span,.human-flow small,.step span{
  font-size:10.5px!important;
  line-height:1.45!important;
  font-weight:400!important;
}
.eyebrow{
  font-family:var(--font-body)!important;
  font-size:10px!important;
  font-weight:800!important;
  letter-spacing:.18em!important;
}
.metric .num,.num,.stat-number{
  font-size:30px!important;
  line-height:1!important;
  font-weight:800!important;
}
.metric .lbl,.stat-label{font-size:12px!important;line-height:1.35!important;font-weight:500!important;}
.btn,button.btn,a.btn{
  font-size:12px!important;
  line-height:1.25!important;
  font-weight:700!important;
  letter-spacing:-.006em!important;
  padding:9px 13px!important;
  border-radius:12px!important;
}
.btn.compact{font-size:11.5px!important;padding:7px 10px!important;border-radius:10px!important;}
.pill,.badge,.code-badge{
  font-size:11px!important;
  line-height:1.2!important;
  font-weight:700!important;
  padding:5px 9px!important;
}
.field label,label,.form label{
  font-size:12px!important;
  line-height:1.3!important;
  font-weight:700!important;
}
.field input,.field select,.field textarea,input,select,textarea{
  font-size:13px!important;
  line-height:1.35!important;
  font-weight:400!important;
}
.table th{
  font-family:var(--font-body)!important;
  font-size:11px!important;
  line-height:1.25!important;
  font-weight:800!important;
  letter-spacing:.08em!important;
}
.table td{
  font-size:13px!important;
  line-height:1.45!important;
  font-weight:400!important;
}
.table td strong,.card strong{font-weight:700!important;}
.card h3,.card h4,.section-title-row h3,.certificate-process-card .page-head h3{
  font-family:var(--font-heading)!important;
  font-size:18px!important;
  line-height:1.25!important;
  font-weight:760!important;
}
.card{padding:18px!important;border-radius:20px!important;}
.grid{gap:16px!important;}
.toolbar{margin:18px 0!important;}
.alert,.notice{font-size:13px!important;line-height:1.48!important;}
.checkin-card,.login-card{font-size:13px!important;}
.checkin-summary span{font-size:10.5px!important;}
/* Keep certificate document readable without making UI text overly bold */
.cert h1{font-size:30px!important;letter-spacing:.06em!important;}
.cert .name{font-size:28px!important;font-weight:800!important;}
@media(max-width:980px){
  h1{font-size:26px!important;}
  h2,.page-head h2,.page-head h3{font-size:22px!important;}
  .hero h2{font-size:24px!important;}
  .login-card h1,.login-card h2{font-size:28px!important;}
}
