/* Presentation look: "Corporate". A clean 1280x720 stage - white, navy,
   teal - with the organisation on top and the footer and page number below.
   Scoped under .pt so lesson (.dk) and teacher-app styles never collide.
   Sizes inside a slide are in em, so DeckRender.fit() can shrink a crowded
   slide through its dk-dense / dk-denser classes. The slide stays light in
   dark mode (projectors and print look the same); only the page around it
   follows the theme. No @page rules here: teacher.html loads this file too
   (present.html carries its own @page rules). */
.pt{
  --paper:#ffffff;--ink:#0f1b2d;--muted:#55627a;--line:#d9dee7;--soft:#f3f5f9;
  --navy:#1f3a68;--navy-soft:#e6ecf5;--teal:#0f7c80;
  --good:#1a7f37;--watch:#9a6700;--bad:#b42318;
  --s1:#1f3a68;--s2:#0f7c80;--s3:#d08a1e;
  --page:#e9edf3;--page-ink:#0f1b2d;
  --display:"Schibsted Grotesk","Segoe UI",system-ui,sans-serif;
  --body:"Public Sans","Segoe UI",system-ui,sans-serif;
  font-family:var(--body);-webkit-print-color-adjust:exact;print-color-adjust:exact;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .pt{--page:#0d1320;--page-ink:#e6ebf3}}
:root[data-theme="dark"] .pt{--page:#0d1320;--page-ink:#e6ebf3}
.pt [hidden],.pt[hidden]{display:none!important}

/* stage */
.pt-stage{position:relative;width:1280px;height:720px;box-sizing:border-box;background:var(--paper);color:var(--ink);
  border:1px solid var(--line);border-radius:4px;overflow:hidden;box-shadow:0 20px 50px -30px rgba(0,0,0,.45);transform-origin:top left}
.pt-top{position:absolute;left:0;right:0;top:0;height:48px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding:0 48px;border-bottom:1px solid var(--line);font:600 14px var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--navy)}
.pt-org{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pt-conf{flex:none;color:var(--bad);border:1.5px solid var(--bad);border-radius:4px;padding:2px 8px;font-size:12px;letter-spacing:.12em}
.pt-foot{position:absolute;left:48px;right:48px;bottom:0;height:44px;display:flex;align-items:center;justify-content:space-between;gap:16px;
  border-top:2px solid var(--navy);font:500 13px var(--body);color:var(--muted)}
.pt-foottext{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pt-page{flex:none;font-variant-numeric:tabular-nums}

/* slide frame and shared pieces */
.pt-slide{position:absolute;left:0;right:0;top:48px;bottom:44px;padding:36px 72px 24px;display:none;flex-direction:column;gap:.8em;
  box-sizing:border-box;overflow:auto;font-size:22px;line-height:1.45;overflow-wrap:anywhere}
.pt-slide.on{display:flex}
.pt-slide.dk-dense{font-size:19px}
.pt-slide.dk-denser{font-size:16px}
.pt-slide p{margin:0}
.pt-slide h1,.pt-slide h2,.pt-slide h3{font-family:var(--display);margin:0;color:var(--ink);text-wrap:balance}
.pt-h1{font-size:2.6em;line-height:1.05;font-weight:800;letter-spacing:-.015em}
.pt-h2{font-size:1.6em;line-height:1.15;font-weight:800;letter-spacing:-.01em}
.pt-h2::after{content:"";display:block;width:64px;height:4px;background:var(--teal);margin-top:.35em}
.pt-slide h3{font-size:1em;font-weight:700;line-height:1.3}
.pt-lead{font-size:1.15em;color:var(--muted);max-width:52ch}
.pt-muted{color:var(--muted);font-size:.86em}
.pt-slide strong{font-weight:700;color:var(--navy)}
.pt-slide code{font-family:ui-monospace,Consolas,monospace;font-size:.9em;background:var(--soft);padding:0 .25em;border-radius:3px}
.pt-num{flex:none;display:inline-grid;place-items:center;width:1.8em;height:1.8em;border-radius:50%;background:var(--navy);color:#fff;font:700 .8em var(--display)}
ul.pt-points{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55em}
ul.pt-points li{position:relative;padding-left:1.2em}
ul.pt-points li::before{content:"";position:absolute;left:0;top:.6em;width:.45em;height:.45em;background:var(--teal);border-radius:1px}
.pt-takeaway{margin-top:auto!important;background:var(--navy-soft);border-left:5px solid var(--navy);padding:.55em .9em;font-weight:600}
.pt-note{color:var(--muted);font-size:.9em}
.pt-source{margin-top:auto!important;font-size:.62em;color:var(--muted)}
.pt-takeaway + .pt-source{margin-top:0!important}

/* cover, section, highlight, closing */
.pt-slide.pt-cover,.pt-slide.pt-section,.pt-slide.pt-closing,.pt-slide.pt-highlight{justify-content:center;padding-left:96px;padding-right:96px}
.pt-slide.pt-cover{background:linear-gradient(90deg,var(--navy) 0 14px,transparent 14px)}
.pt-meta{margin-top:1.2em!important;font-weight:600;color:var(--navy)}
.pt-slide.pt-section{background:var(--navy)}
.pt-slide.pt-section h1,.pt-section .pt-lead{color:#fff}
.pt-section .pt-lead{opacity:.85}
.pt-contact{margin-top:1em!important;color:var(--muted)}
.pt-quote{margin:0;font:700 1.9em/1.25 var(--display);color:var(--navy);border-left:8px solid var(--teal);padding-left:.6em}
.pt-attr{color:var(--muted);padding-left:1.2em}
/* agenda */
ol.pt-agenda{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6em}
ol.pt-agenda li{display:flex;gap:.8em;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:.5em}
/* kpi */
.pt-kpis{display:grid;gap:1em;grid-template-columns:repeat(2,minmax(0,1fr))}
.pt-kpis.pt-n3{grid-template-columns:repeat(3,minmax(0,1fr))}
.pt-kpis.pt-n4{grid-template-columns:repeat(4,minmax(0,1fr))}
.pt-kpi{background:var(--soft);border-radius:8px;border-top:5px solid var(--muted);padding:.8em 1em;display:flex;flex-direction:column;gap:.2em;min-width:0}
.pt-st-good{border-top-color:var(--good)}.pt-st-watch{border-top-color:var(--watch)}.pt-st-bad{border-top-color:var(--bad)}
.pt-kval{font:800 2em/1.1 var(--display);color:var(--ink);font-variant-numeric:tabular-nums}
.pt-klabel{color:var(--muted);font-size:.88em}
.pt-kchg{font-weight:600;font-size:.82em;display:flex;gap:.35em;align-items:baseline}
.pt-st-good .pt-kchg{color:var(--good)}.pt-st-watch .pt-kchg{color:var(--watch)}.pt-st-bad .pt-kchg{color:var(--bad)}
/* chart */
.pt-chart{margin:0;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:.3em}
.pt-chart svg{display:block;width:100%;height:auto;flex:1 1 auto;min-height:0}
.pt-chart text{font:500 18px var(--body);fill:var(--muted)}
.pt-chart .pt-xl{fill:var(--ink);font-weight:600}
.pt-grid{stroke:var(--line);stroke-width:1}
.pt-zero{stroke:var(--ink);stroke-width:1.5}
.pt-bar.pt-s1,.pt-dot.pt-s1{fill:var(--s1)}.pt-bar.pt-s2,.pt-dot.pt-s2{fill:var(--s2)}.pt-bar.pt-s3,.pt-dot.pt-s3{fill:var(--s3)}
.pt-line{stroke-width:4;fill:none}
.pt-line.pt-s1{stroke:var(--s1)}.pt-line.pt-s2{stroke:var(--s2)}.pt-line.pt-s3{stroke:var(--s3)}
.pt-legend{display:flex;gap:1.2em;flex-wrap:wrap;font-size:.8em;color:var(--muted)}
.pt-key::before{content:"";display:inline-block;width:.8em;height:.8em;border-radius:2px;margin-right:.4em;vertical-align:-.05em;background:var(--s1)}
.pt-key.pt-s2::before{background:var(--s2)}.pt-key.pt-s3::before{background:var(--s3)}
.pt-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pt-chart-empty{flex:1;display:grid;place-items:center;border:2px dashed var(--line);border-radius:8px;color:var(--muted);padding:1em;text-align:center}
/* table */
.pt-tbwrap{overflow:auto}
table.pt-tb{border-collapse:collapse;width:100%;font-size:.9em}
table.pt-tb th{background:var(--navy);color:#fff;text-align:left;font-weight:600;padding:.5em .7em}
table.pt-tb td{padding:.5em .7em;border-bottom:1px solid var(--line)}
table.pt-tb tr:nth-child(odd) td{background:var(--soft)}
.pt-caption{font-size:.8em;color:var(--muted)}
/* compare */
.pt-g2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2em}
.pt-card{border:1px solid var(--line);border-radius:8px;padding:.9em 1.1em;display:flex;flex-direction:column;gap:.5em;min-width:0}
.pt-c1{border-top:5px solid var(--navy)}.pt-c2{border-top:5px solid var(--teal)}
.pt-slide .pt-c1 h3{color:var(--navy)}.pt-slide .pt-c2 h3{color:var(--teal)}
/* timeline */
ol.pt-timeline{list-style:none;margin:.6em 0 0;padding:0;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:1em;position:relative}
ol.pt-timeline::before{content:"";position:absolute;left:0;right:0;top:2.15em;height:3px;background:var(--line)}
ol.pt-timeline li{display:flex;flex-direction:column;gap:.45em;min-width:0}
.pt-date{font:700 .8em/1.6 var(--display);color:var(--teal);text-transform:uppercase;letter-spacing:.04em;min-height:1.6em}
.pt-tdot{width:.9em;height:.9em;border-radius:50%;background:var(--navy);border:3px solid var(--paper);box-shadow:0 0 0 2px var(--navy);position:relative}
/* people */
.pt-people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8em 1.4em}
.pt-person{display:flex;gap:.8em;align-items:flex-start;min-width:0}
.pt-avatar{flex:none;width:2.4em;height:2.4em;border-radius:50%;display:grid;place-items:center;background:var(--navy-soft);color:var(--navy);font:700 .9em var(--display)}
.pt-role{color:var(--teal);font-weight:600;font-size:.88em}

/* the player page (present.html): body.pt-player */
html:has(body.pt-player){height:100%}
body.pt-player{height:100%;margin:0;background:var(--page);color:var(--page-ink);overflow:hidden}
.pt-viewport{position:relative;height:calc(100% - 64px)}
.pt-player .pt-viewport .pt-stage{position:absolute;left:50%;top:50%;transform-origin:center center}
body.pt-player.pt-with-notes .pt-viewport{height:calc(100% - 214px)}
.pt-notes{height:150px;box-sizing:border-box;overflow:auto;padding:12px 24px;background:var(--paper);color:var(--ink);border-top:1px solid var(--line);font-size:17px;line-height:1.5;white-space:pre-wrap}
.pt-toolbar{height:64px;display:flex;align-items:center;justify-content:center;gap:10px;padding:0 16px env(safe-area-inset-bottom,0);flex-wrap:wrap}
.pt-toolbar button,.pt-lock button{font:600 14px var(--body);background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:6px;height:38px;min-width:44px;padding:0 12px;cursor:pointer}
.pt-toolbar button:hover{border-color:var(--navy);color:var(--navy)}
.pt-toolbar button:disabled{opacity:.4;cursor:default}
.pt-toolbar button[aria-pressed="true"]{background:var(--navy);color:#fff;border-color:var(--navy)}
.pt-toolbar button:focus-visible,.pt-lock :focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.pt-count{font:600 14px var(--body);min-width:76px;text-align:center}
.pt-msg{max-width:560px;margin:15vh auto;padding:24px;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:8px;font-size:18px}
.pt-lock{max-width:420px;margin:12vh auto 0;padding:28px 24px;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;gap:10px;box-sizing:border-box}
.pt-lock h1{margin:0;font:800 1.5rem var(--display)}
.pt-lock p{margin:0;color:var(--muted)}
.pt-lock input{font:600 1.4rem var(--body);letter-spacing:.3em;padding:.4em .6em;border:1px solid var(--line);border-radius:6px;min-width:0}
.pt-lock button{background:var(--navy);color:#fff;border-color:var(--navy);height:44px}
.pt-lock .pt-err{color:var(--bad);min-height:1.2em}

/* phones: no scaled stage; the slide becomes a normal scrolling page */
body.pt-flowmode{overflow:auto;height:auto}
.pt-flowmode .pt-viewport{height:auto!important}
.pt-flowmode .pt-viewport .pt-stage{position:static;transform:none!important;width:auto;height:auto;margin:8px;min-height:calc(100vh - 90px)}
.pt-flowmode .pt-viewport .pt-top{position:static;padding:0 16px}
.pt-flowmode .pt-viewport .pt-foot{position:static;margin:0 16px}
.pt-flowmode .pt-viewport .pt-slide{position:static;padding:20px 16px;font-size:16px;overflow:visible}
.pt-flowmode .pt-viewport .pt-slide.pt-cover,.pt-flowmode .pt-viewport .pt-slide.pt-section,
.pt-flowmode .pt-viewport .pt-slide.pt-closing,.pt-flowmode .pt-viewport .pt-slide.pt-highlight{padding:32px 16px}
.pt-flowmode .pt-viewport .pt-g2,.pt-flowmode .pt-viewport .pt-kpis,.pt-flowmode .pt-viewport .pt-people{grid-template-columns:minmax(0,1fr)}
.pt-flowmode .pt-viewport ol.pt-timeline{grid-auto-flow:row}
.pt-flowmode .pt-viewport ol.pt-timeline::before{display:none}
.pt-flowmode .pt-viewport .pt-h1{font-size:2em}
.pt-flowmode .pt-notes{height:auto;max-height:40vh}
.pt-flowmode .pt-toolbar{position:sticky;bottom:0;background:var(--page);height:auto;padding:8px}
.pt-flowmode .pt-hide-s{display:none}
.pt-flowmode .pt-lock{margin:24px 16px 0}

/* print: present-player.js builds the pages off-screen in .pt-printroot;
   present.html's own <style> sets the @page sizes and shows them. */
.pt-printroot{position:absolute;left:-20000px;top:0}
.pt-ppage .pt-stage{border:0;border-radius:0;box-shadow:none}
.pt-hpage{width:186mm;display:flex;flex-direction:column;gap:6mm}
.pt-hslide{width:186mm;height:104.6mm;overflow:hidden;border:1px solid var(--line)}
.pt-hslide .pt-stage{transform:scale(.549);box-shadow:none;border:0}
.pt-hnotes{font:11pt/1.5 var(--body);color:#0f1b2d;white-space:pre-wrap;margin:0}
