/* Layout: back office. A white side menu (logo text, page links, who's signed in) beside a light gray work
   area with white cards. Back-office design system colors: red for the one main action and the active
   page, green for certified/trainer marks, ink and white for everything else. */
:root{
  --red:#e2211c; --red-text:#c1272d; --red-tint:#fcedec; --red-faint:#faf5f5;
  --green:#71ab24; --green-text:#4a7a12; --green-tint:#edf5e6;
  --ground:#f2f2f2; --card:#ffffff; --ink:#252525; --muted:#666666; --line:#e3dcdb; --soft:#f2f2f2;
  --warn:#8a5a00; --warn-tint:#fdf3e1; --focus:#4a7a12;
  --body:Effra,"Segoe UI",system-ui,-apple-system,sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --red:#e2211c; --red-text:#ff7a6e; --red-tint:#3a2626; --red-faint:#2a2424;
  --green:#71ab24; --green-text:#6ed34b; --green-tint:#203018;
  --ground:#1c1a1a; --card:#262222; --ink:#f5f1f0; --muted:#b3aba9; --line:#3d3636; --soft:#2a2424;
  --warn:#f0b44a; --warn-tint:#3a2f1c; --focus:#6ed34b; color-scheme:dark}}
:root[data-theme="dark"]{
  --red:#e2211c; --red-text:#ff7a6e; --red-tint:#3a2626; --red-faint:#2a2424;
  --green:#71ab24; --green-text:#6ed34b; --green-tint:#203018;
  --ground:#1c1a1a; --card:#262222; --ink:#f5f1f0; --muted:#b3aba9; --line:#3d3636; --soft:#2a2424;
  --warn:#f0b44a; --warn-tint:#3a2f1c; --focus:#6ed34b; color-scheme:dark}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{background:var(--ground);color:var(--ink);font:14px/1.5 var(--body)}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--card)}
a{color:var(--red-text)}

/* ---------- shell ---------- */
.shell{display:flex;flex-wrap:wrap;min-height:100vh;align-content:flex-start;align-items:stretch}
.side{flex:0 0 232px;background:var(--card);border-right:1px solid var(--line);padding:20px 14px;display:flex;flex-direction:column;gap:22px;position:sticky;top:env(safe-area-inset-top,0px);height:100vh;padding-left:max(14px,env(safe-area-inset-left,0px))}
.brand{display:flex;align-items:center;gap:10px;padding:0 6px;text-decoration:none;color:var(--ink)}
.brand .logo{flex:none;display:grid;place-items:center;width:40px;height:38px;border-radius:8px;background:var(--ink);color:#fff;font:700 15px/1 var(--body);letter-spacing:.02em}
.brand b{display:block;font-size:16px;line-height:20px}
.brand small{display:block;font-size:12px;line-height:16px;color:var(--muted)}
#nav{display:flex;flex-direction:column;gap:2px}
#nav a,#nav button{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:4px;color:var(--ink);text-decoration:none;font:400 14px/20px var(--body);border:0;background:transparent;cursor:pointer;text-align:left}
#nav a:hover,#nav button:hover{background:var(--soft)}
#nav a.on{background:var(--red-tint);color:var(--red-text);font-weight:600}
#nav svg{flex:0 0 auto}
.me{margin-top:auto;display:flex;align-items:center;gap:10px;padding:12px 6px 0;border-top:1px solid var(--line)}
.me .av{display:inline-flex;width:32px;height:32px;border-radius:999px;background:var(--ink);color:var(--card);align-items:center;justify-content:center;font-weight:700;font-size:12px;flex:0 0 auto}
.me b{display:block;font-weight:600;line-height:18px}
.me small{display:block;font-size:12px;line-height:16px;color:var(--muted)}
.me button{margin-left:auto;border:0;background:transparent;color:var(--muted);cursor:pointer;padding:6px;border-radius:4px}
.me button:hover{background:var(--soft);color:var(--ink)}
.work{flex:999 1 560px;min-width:0;display:flex;flex-direction:column}
.wrap{width:100%;max-width:1200px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
@media (min-width:861px){.work .wrap{padding-left:32px;padding-right:max(32px,env(safe-area-inset-right,0px))}}
.banner{font-size:13px;padding-block:8px;border-bottom:1px solid var(--line);background:var(--card);color:var(--muted)}
.banner.sample{background:var(--red-faint);color:var(--ink)}
main{padding-block:24px 48px;display:grid;gap:20px;align-content:start}

/* phone: the side menu becomes a top bar */
@media (max-width:860px){
  .side{flex:1 1 100%;height:auto;align-content:flex-start;position:sticky;z-index:5;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px;padding:10px max(16px,env(safe-area-inset-right,0px)) 10px max(16px,env(safe-area-inset-left,0px));border-right:0;border-bottom:1px solid var(--line)}
  #nav{flex-direction:row;flex-wrap:wrap;gap:4px;order:3;flex:1 1 100%}
  #nav a,#nav button{padding:7px 10px;font-size:13px}
  #nav svg{display:none}
  .me{margin:0 0 0 auto;border-top:0;padding:0}
  .me small{display:none}
}

/* ---------- type and building blocks ---------- */
h1{font-size:28px;line-height:34px;font-weight:700;margin:0;text-wrap:balance}
h2{font-size:17px;line-height:24px;font-weight:700;margin:0 0 10px;color:var(--ink)}
p.lead{margin:4px 0 0;color:var(--muted)}
.eyebrow{font-size:13px;color:var(--muted)}
.card{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:18px;min-width:0}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.stats .card{padding:16px 18px;display:flex;flex-direction:column;gap:4px}
.stats .card span{font-size:13px;color:var(--muted)}
.stat{font-size:30px;line-height:36px;font-weight:700}
.stat.hot{color:var(--red-text)}
.btn{font:600 14px/1 var(--body);border:0;border-radius:999px;padding:11px 18px;cursor:pointer;background:var(--red);color:#fff;white-space:nowrap}
.btn:hover{filter:brightness(.94)}
.btn.ghost{background:var(--card);color:var(--ink);border:1px solid var(--line)}
.btn.ghost:hover{background:var(--soft);filter:none}
.btn.green{background:var(--green-text);color:#fff}
:root[data-theme="dark"] .btn.green{color:#1c1a1a}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
input,select,textarea{font:400 14px var(--body);padding:0 12px;border:1px solid var(--line);border-radius:4px;background:var(--card);color:var(--ink);min-width:0}
input,select{height:40px}
textarea{padding:10px 12px;resize:vertical}
input[type=checkbox],input[type=radio]{height:auto}
textarea{font:400 14px/1.4 var(--body);padding:9px 12px;border:1px solid var(--line);border-radius:4px;background:var(--card);color:var(--ink);min-width:0;width:100%;resize:vertical}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{font:400 13px/18px var(--body);padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer}
.chip:hover{background:var(--soft)}
.chip.on{background:var(--ink);color:var(--card);border-color:var(--ink);font-weight:600}
.pill{display:inline-block;font:600 12px/18px var(--body);padding:2px 10px;border-radius:999px;white-space:nowrap}
.p-ok{background:var(--green-tint);color:var(--green-text)}
.p-warn{background:var(--warn-tint);color:var(--warn)}
.p-bad{background:var(--red-tint);color:var(--red-text)}
.p-info{background:var(--soft);color:var(--muted)}
.muted{color:var(--muted)}
.small{font-size:13px}
.err{color:var(--red-text);font-weight:600}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.spread{justify-content:space-between}
.right{margin-left:auto}
.demo{font-size:13px;background:var(--soft);border-radius:4px;padding:10px 12px}
.loading{color:var(--muted);padding:24px 0;text-align:center}

/* tabs inside a card: underline style */
.tabs{display:flex;gap:4px;flex-wrap:wrap;margin:-18px -18px 16px;padding:0 12px;border-bottom:1px solid var(--line)}
.tabs .chip{border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;padding:14px 10px 12px;color:var(--muted);font-size:14px}
@media (max-width:520px){.tabs{gap:0 2px;padding:0 8px}.tabs .chip{padding:10px 8px 8px;max-width:100%;white-space:normal;text-align:left}.tabs .chip[style*="margin-left:auto"]{margin-left:0!important;order:0!important}}
.tabs .chip:hover{background:transparent;color:var(--ink)}
.tabs .chip.on{background:transparent;color:var(--ink);border-bottom-color:var(--red);font-weight:600}
main > .tabs{margin:0;padding:0;border-bottom:1px solid var(--line)}

/* library */
.doclist{display:grid;gap:0}
.doc{display:flex;align-items:center;gap:14px;padding:12px 4px;border-bottom:1px solid var(--line)}
.doc:last-child{border-bottom:0}
.doc .t{flex:1;min-width:0;font-weight:600}
.doc .g{font-size:12.5px;color:var(--muted);font-weight:400}
.doc a.btn{text-decoration:none;display:inline-block}
.kind{font:600 11px var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);width:78px;flex:0 0 auto}
@media (max-width:520px){.kind{display:none}}

/* tables */
.scroll{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}
th,td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;vertical-align:middle}
tr:last-child td{border-bottom:0}
th{font:600 12px/16px var(--body);letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
td.c,th.c{text-align:center}
td .btn{padding:7px 12px;font-size:13px}
td .row{flex-wrap:nowrap;gap:6px}
@media (max-width:520px){td .btn{padding:7px 9px}th,td{padding:12px 8px}}

/* cross-training marks */
.mark{display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;line-height:1}
.m-cert{color:var(--green-text);font-size:17px}
.m-T{width:24px;height:24px;border-radius:999px;background:var(--green-text);color:#fff}
:root[data-theme="dark"] .m-T{color:#1c1a1a}
.m-tr{gap:6px;color:var(--muted);font-weight:400}
.m-tr i{display:block;width:40px;height:6px;border-radius:999px;background:var(--soft);overflow:hidden}
.m-tr i b{display:block;height:100%;background:var(--green)}
.m-ready{padding:3px 10px;border-radius:999px;border:1px solid var(--red);color:var(--red-text);font-weight:600}
.mark.clickable{cursor:pointer}
.legend{display:flex;flex-wrap:wrap;gap:18px;font-size:12px;color:var(--muted);margin-top:12px;align-items:center}
.legend span{display:inline-flex;align-items:center;gap:6px}

/* progress, checklists, quizzes */
.bar{height:8px;background:var(--soft);border-radius:99px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--green);border-radius:99px;transition:width .3s}
.check{display:flex;gap:10px;align-items:flex-start;padding:10px 2px;border-bottom:1px solid var(--line);cursor:pointer}
.check input{width:18px;height:18px;margin-top:2px;accent-color:var(--green-text);flex:0 0 auto}
.sect{font:600 12px var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--red-text);margin:18px 0 2px}
.q{padding:12px 0;border-bottom:1px solid var(--line)}
.q label{display:flex;gap:8px;padding:4px 0;cursor:pointer}

/* sign-in, dialogs, toasts */
.who{display:grid;gap:8px;margin-top:14px}
.who-co{margin:22px 0 -4px;font-size:15px;line-height:20px}
.who button{display:flex;justify-content:space-between;align-items:center;gap:10px;text-align:left;font:600 14px var(--body);padding:12px 14px;border-radius:4px;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer}
.who button:hover{border-color:var(--red)}
#clerk-signin{display:flex;flex-direction:column;align-items:center;margin-top:12px;width:100%}
/* Clerk's own wrappers can stretch full width; center the card inside them. */
#clerk-signin > *, #clerk-signin .cl-rootBox, #clerk-signin .cl-cardBox{margin-inline:auto;max-width:100%}
.field{display:grid;gap:4px;font:600 13px var(--body);color:var(--muted)}
.field input,.field select,.field textarea{width:100%}
.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;align-items:end}
dialog{border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--ink);padding:22px;max-width:min(520px,92vw)}
dialog::backdrop{background:rgba(0,0,0,.4)}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--card);padding:10px 16px;border-radius:4px;font-weight:600;max-width:90vw;z-index:20}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* library: groups on the left, documents on the right */
.lib{display:grid;grid-template-columns:230px minmax(0,1fr);gap:16px;align-items:start}
.groups{padding:8px;display:flex;flex-direction:column;gap:2px;position:sticky;top:16px}
.groups button{display:flex;justify-content:space-between;gap:8px;align-items:center;text-align:left;border:0;background:transparent;color:var(--ink);font:400 14px/20px var(--body);padding:8px 10px;border-radius:4px;cursor:pointer}
.groups button:hover{background:var(--soft)}
.groups button.on{background:var(--red-tint);color:var(--red-text);font-weight:600}
.groups .n{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.groups hr{border:0;border-top:1px solid var(--line);margin:6px 4px}
@media (max-width:900px){.lib{grid-template-columns:1fr}.groups{position:static;flex-direction:row;flex-wrap:wrap}.groups hr{display:none}.groups button{border:1px solid var(--line);border-radius:999px;padding:6px 12px}}
.doctable td{vertical-align:top;padding-top:14px;padding-bottom:14px}
.doctable .btn.ghost{padding:8px 12px}
.linkish{border:0;background:none;padding:0;font:600 14px/20px var(--body);color:var(--ink);cursor:pointer;text-align:left}
.linkish:hover{color:var(--red-text);text-decoration:underline}

/* document viewer */
dialog.viewer{width:min(1000px,96vw);max-width:none;height:min(92vh,1100px);padding:0;display:flex;flex-direction:column;overflow:hidden}
dialog.viewer:not([open]){display:none}
.vhead{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.vbody{flex:1;overflow:auto;background:#e9e6e5}
.vbody .docx-wrapper{background:#e9e6e5;padding:24px 12px}
.vbody .docx-wrapper>section.docx{box-shadow:0 1px 3px rgba(0,0,0,.18);margin-bottom:24px}
.btn svg{vertical-align:-3px}
