/* Phytoventures Partner Portal. Same colour, type and chrome language as phytoventures.net
   (Sora + Source Serif 4, ink #0B0B0F, paper #FAF7F2, sand #EFEAE2, accent #1B4DFF). */
:root{
  --pp-ink:#0B0B0F;--pp-paper:#FAF7F2;--pp-sand:#EFEAE2;--pp-sand-2:#F3EEE6;--pp-body:#3a3a42;--pp-muted:#5c5c66;
  --pp-line:rgba(11,11,15,.1);--pp-line-strong:rgba(11,11,15,.85);--pp-accent:#1B4DFF;--pp-accent-ink:#fff;--pp-accent-soft:rgba(27,77,255,.1);
  --pp-green:#0F6E56;--pp-green-soft:rgba(15,110,86,.12);--pp-amber:#9a5b00;--pp-amber-soft:rgba(214,140,0,.16);--pp-red:#b3261e;--pp-red-soft:rgba(179,38,30,.1);
  --pp-surface:#fff;--pp-bar-bg:rgba(250,247,242,.9);--pp-leaf-2:#0B0B0F;--pp-zero:rgba(11,11,15,.08);
  --pp-shadow:0 30px 60px -40px rgba(11,11,15,.35);color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --pp-ink:#F4F1EB;--pp-paper:#0B0B0F;--pp-sand:#1a1a21;--pp-sand-2:#15151b;--pp-body:#c9c6c0;--pp-muted:#9a98a2;
  --pp-line:rgba(244,241,235,.12);--pp-line-strong:rgba(244,241,235,.8);--pp-accent:#6F8DFF;--pp-accent-ink:#0B0B0F;--pp-accent-soft:rgba(111,141,255,.16);
  --pp-green:#4fc9a4;--pp-green-soft:rgba(79,201,164,.14);--pp-amber:#f0b25a;--pp-amber-soft:rgba(240,178,90,.14);--pp-red:#ff8a80;--pp-red-soft:rgba(255,138,128,.12);
  --pp-surface:#121218;--pp-bar-bg:rgba(11,11,15,.88);--pp-leaf-2:#F4F1EB;--pp-zero:rgba(244,241,235,.1);--pp-shadow:none;color-scheme:dark}}
:root[data-theme="dark"]{
  --pp-ink:#F4F1EB;--pp-paper:#0B0B0F;--pp-sand:#1a1a21;--pp-sand-2:#15151b;--pp-body:#c9c6c0;--pp-muted:#9a98a2;
  --pp-line:rgba(244,241,235,.12);--pp-line-strong:rgba(244,241,235,.8);--pp-accent:#6F8DFF;--pp-accent-ink:#0B0B0F;--pp-accent-soft:rgba(111,141,255,.16);
  --pp-green:#4fc9a4;--pp-green-soft:rgba(79,201,164,.14);--pp-amber:#f0b25a;--pp-amber-soft:rgba(240,178,90,.14);--pp-red:#ff8a80;--pp-red-soft:rgba(255,138,128,.12);
  --pp-surface:#121218;--pp-bar-bg:rgba(11,11,15,.88);--pp-leaf-2:#F4F1EB;--pp-zero:rgba(244,241,235,.1);--pp-shadow:none;color-scheme:dark}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--pp-paper);color:var(--pp-ink);font:400 15px/1.5 'Sora',system-ui,sans-serif;-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column}
a{color:inherit}
a:hover{color:var(--pp-accent)}
.serif{font-family:'Source Serif 4',Georgia,serif}
.num{font-variant-numeric:tabular-nums}
.pp-skip{position:absolute;left:16px;top:-60px;z-index:60;padding:10px 14px;border-radius:999px;background:var(--pp-ink);color:var(--pp-paper);font:700 13px/1 'Sora',sans-serif;text-decoration:none}
.pp-skip:focus{top:12px}
:focus-visible{outline:2px solid var(--pp-accent);outline-offset:2px}

/* ── App shell ─────────────────────────────────────────────── */
:root{--pp-side-w:264px;--pp-side-wc:72px;--pp-top-h:64px}
body.pp-app{display:block}
.pp-logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--pp-ink);font:800 19px/1 'Sora',sans-serif;letter-spacing:-.04em;white-space:nowrap}
.pp-logo:hover{color:var(--pp-ink)}
.pp-logo .acc{color:var(--pp-accent)}
.pp-logo svg{flex:none}
.pp-side{position:fixed;inset:0 auto 0 0;width:var(--pp-side-w);z-index:40;display:flex;flex-direction:column;background:var(--pp-surface);border-right:1px solid var(--pp-line);transition:width .2s ease,transform .25s ease}
.pp-side__top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:18px 18px 4px 20px;min-height:var(--pp-top-h)}
.pp-side__tag{margin:0 20px 6px;font:700 10.5px/1 'Sora',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--pp-muted)}
.pp-side__nav{flex:1;overflow-y:auto;padding:6px 12px 16px;scrollbar-width:thin}
.pp-navgroup{margin-top:12px}
.pp-navgroup__title{margin:0 10px 6px;font:700 10.5px/1.2 'Sora',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--pp-muted)}
.pp-navgroup ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.pp-navgroup a,.pp-navbtn{position:relative;display:flex;align-items:center;gap:12px;min-height:38px;padding:7px 10px;border-radius:12px;text-decoration:none;color:var(--pp-body);font:600 13.5px/1.2 'Sora',sans-serif;border:0;background:transparent;width:100%;cursor:pointer;text-align:left}
.pp-navgroup a:hover,.pp-navbtn:hover{background:var(--pp-sand);color:var(--pp-ink)}
.pp-navgroup a[aria-current="page"]{background:var(--pp-ink);color:var(--pp-paper)}
.pp-navgroup a[aria-current="page"] .pp-badge{background:var(--pp-paper);color:var(--pp-ink)}
.pp-ico{flex:none}
.pp-navlabel{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pp-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--pp-accent);color:var(--pp-accent-ink);font:700 11px/1 'Sora',sans-serif;font-variant-numeric:tabular-nums;margin-left:auto}
.pp-badge--muted{background:var(--pp-sand);color:var(--pp-muted)}
.pp-badge--bad{background:var(--pp-red);color:#fff}
.pp-badge--warn{background:var(--pp-amber-soft);color:var(--pp-amber)}
.pp-side__foot{padding:10px 12px 16px;border-top:1px solid var(--pp-line)}
.pp-shell{margin-left:var(--pp-side-w);min-height:100vh;display:flex;flex-direction:column;transition:margin .2s ease;min-width:0}
html.pp-collapsed .pp-side{width:var(--pp-side-wc)}
html.pp-collapsed .pp-shell{margin-left:var(--pp-side-wc)}
html.pp-collapsed .pp-navlabel,html.pp-collapsed .pp-logo__word,html.pp-collapsed .pp-side__tag,html.pp-collapsed .pp-navgroup__title{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
html.pp-collapsed .pp-navgroup{margin-top:10px;padding-top:10px;border-top:1px solid var(--pp-line)}
html.pp-collapsed .pp-navgroup:first-child{border-top:0}
html.pp-collapsed .pp-navgroup a,html.pp-collapsed .pp-navbtn{justify-content:center;padding:10px}
html.pp-collapsed .pp-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;font-size:9.5px;padding:0 4px}
html.pp-collapsed .pp-side__top{justify-content:center;padding:18px 0 4px}
html.pp-collapsed [data-side-collapse] svg{transform:scaleX(-1)}
.pp-top{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:12px;min-height:var(--pp-top-h);padding:10px clamp(16px,3vw,36px);background:var(--pp-bar-bg);border-bottom:1px solid var(--pp-line)}
@supports (backdrop-filter:blur(1px)){.pp-top{backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}}
.pp-top__title{min-width:0;flex:1}
.pp-crumbs ol{display:flex;align-items:center;gap:8px;margin:0;padding:0;list-style:none;font:600 13px/1.2 'Sora',sans-serif;color:var(--pp-muted);min-width:0}
.pp-crumbs li{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pp-crumbs li+li::before{content:"/";margin-right:8px;opacity:.4}
.pp-crumbs li[aria-current]{color:var(--pp-ink)}
.pp-top__end{display:flex;align-items:center;gap:8px}
.pp-iconbtn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:40px;height:40px;padding:0 10px;border-radius:999px;border:1.5px solid var(--pp-line);background:transparent;color:var(--pp-ink);font:700 12px/1 'Sora',sans-serif;cursor:pointer;text-decoration:none;list-style:none}
.pp-iconbtn::-webkit-details-marker{display:none}
.pp-iconbtn:hover{border-color:var(--pp-ink);color:var(--pp-ink)}
.pp-iconbtn .dot{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--pp-accent);color:var(--pp-accent-ink);font:700 10.5px/18px 'Sora',sans-serif;text-align:center}
.pp-search{display:inline-flex;align-items:center;gap:10px;height:40px;padding:0 10px 0 14px;border-radius:999px;border:1.5px solid var(--pp-line);background:var(--pp-surface);color:var(--pp-muted);font:500 13px/1 'Sora',sans-serif;cursor:pointer;min-width:240px}
.pp-search:hover{border-color:var(--pp-ink);color:var(--pp-ink)}
.pp-search span{flex:1;text-align:left}
body .pp-side__close,body .pp-top__menu{display:none}
kbd{font:700 10.5px/1 'Sora',sans-serif;padding:4px 6px;border-radius:6px;background:var(--pp-sand);color:var(--pp-muted);border:1px solid var(--pp-line)}
.pp-menu{position:relative}
.pp-menu>summary{list-style:none;cursor:pointer}
.pp-menu>summary::-webkit-details-marker{display:none}
.pp-menu__panel{position:absolute;right:0;top:calc(100% + 8px);z-index:50;width:290px;padding:8px;border-radius:16px;background:var(--pp-surface);border:1px solid var(--pp-line);box-shadow:0 24px 48px -24px rgba(11,11,15,.4)}
.pp-menu__panel--wide{width:min(380px,calc(100vw - 24px))}
.pp-menu__panel>a,.pp-menu__panel form button{display:flex;align-items:center;gap:10px;width:100%;padding:10px;border-radius:10px;border:0;background:transparent;color:var(--pp-ink);font:600 13.5px/1.3 'Sora',sans-serif;text-decoration:none;cursor:pointer;text-align:left}
.pp-menu__panel>a:hover,.pp-menu__panel form button:hover{background:var(--pp-sand);color:var(--pp-ink)}
.pp-menu__panel form{margin:0}
.pp-menu__who{padding:10px 10px 12px;margin-bottom:4px;border-bottom:1px solid var(--pp-line)}
.pp-menu__who b{display:block;font:700 14px/1.3 'Sora',sans-serif}
.pp-menu__who small{font:500 12px/1.3 'Sora',sans-serif;color:var(--pp-muted)}
.pp-menu__head{display:flex;justify-content:space-between;align-items:center;padding:8px 10px}
.pp-menu__head form button{width:auto;padding:4px 8px}
.pp-menu__empty{margin:0;padding:12px 10px;font:400 14px/1.45 'Source Serif 4',Georgia,serif;color:var(--pp-muted)}
.pp-menu__panel>a.pp-menu__foot{justify-content:center;border-top:1px solid var(--pp-line);border-radius:0;margin-top:4px;color:var(--pp-accent)}
.pp-linkbtn{border:0;background:none;color:var(--pp-accent);font:700 12px/1 'Sora',sans-serif;cursor:pointer;padding:4px}
.pp-notelist{list-style:none;margin:0;padding:0;max-height:360px;overflow:auto}
.pp-notelist a{display:block;padding:10px;border-radius:10px;text-decoration:none;color:var(--pp-body);font:500 13px/1.4 'Sora',sans-serif}
.pp-notelist a:hover{background:var(--pp-sand)}
.pp-notelist li.is-new a{color:var(--pp-ink);font-weight:700}
.pp-notelist li.is-new a::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--pp-accent);margin-right:8px;vertical-align:1px}
.pp-notelist small{display:block;margin-top:2px;color:var(--pp-muted);font-weight:500}
.pp-account{display:flex;align-items:center;gap:8px;padding:3px 12px 3px 3px;border-radius:999px;border:1.5px solid var(--pp-line);font:600 13px/1.2 'Sora',sans-serif}
.pp-account:hover{border-color:var(--pp-ink)}
.pp-account img,.pp-account .av{width:32px;height:32px;border-radius:50%;flex:none;background:var(--pp-sand);display:inline-flex;align-items:center;justify-content:center;font:800 13px/1 'Sora',sans-serif;color:var(--pp-muted)}
.pp-account small{display:block;font:500 11px/1.2 'Sora',sans-serif;color:var(--pp-muted)}
body.pp-out{display:flex;flex-direction:column}
.pp-outbar{display:flex;align-items:center;gap:14px;padding:16px clamp(16px,4vw,48px);border-bottom:1px solid var(--pp-line)}
.pp-scrim{position:fixed;inset:0;z-index:35;background:rgba(11,11,15,.45)}
@media (max-width:1023px){
  .pp-side{transform:translateX(-100%);width:min(300px,86vw)}
  html.pp-drawer .pp-side{transform:none;box-shadow:0 0 60px rgba(11,11,15,.35)}
  .pp-shell,html.pp-collapsed .pp-shell{margin-left:0}
  html.pp-collapsed .pp-side{width:min(300px,86vw)}
  html.pp-collapsed .pp-navlabel,html.pp-collapsed .pp-logo__word,html.pp-collapsed .pp-side__tag,html.pp-collapsed .pp-navgroup__title{position:static;width:auto;height:auto;clip:auto}
  html.pp-collapsed .pp-navgroup a{justify-content:flex-start;padding:8px 10px}
  html.pp-collapsed .pp-badge{position:static}
  body .pp-side__close{display:inline-flex}
  .pp-side__foot{display:none}
  body .pp-top__menu{display:inline-flex}
  .pp-search{min-width:0;padding:0 11px}
  .pp-search span,.pp-search kbd{display:none}
  .pp-account .meta{display:none}
  .pp-account{padding:3px}
}
@media (max-width:420px){.pp-top{gap:6px;padding:10px 12px}.pp-top__end{gap:6px}.pp-iconbtn{min-width:38px;height:38px;padding:0 8px}.pp-menu__panel{position:fixed;left:12px;right:12px;top:64px;width:auto}}
.pp-cmd{position:fixed;inset:0;z-index:70;background:rgba(11,11,15,.45);display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px}
.pp-cmd[hidden]{display:none}
.pp-cmd__box{width:min(620px,100%);border-radius:20px;background:var(--pp-surface);border:1px solid var(--pp-line);box-shadow:0 40px 80px -30px rgba(11,11,15,.6);overflow:hidden}
.pp-cmd__in{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--pp-line);color:var(--pp-muted)}
.pp-cmd__in input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--pp-ink);font:500 16px/1.3 'Sora',sans-serif}
.pp-cmd__list{list-style:none;margin:0;padding:8px;max-height:52vh;overflow:auto}
.pp-cmd__list li{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:12px;cursor:pointer;font:600 14px/1.3 'Sora',sans-serif}
.pp-cmd__list li small{color:var(--pp-muted);font-weight:500;white-space:nowrap}
.pp-cmd__list li[aria-selected="true"]{background:var(--pp-ink);color:var(--pp-paper)}
.pp-cmd__list li[aria-selected="true"] small{color:inherit;opacity:.7}
.pp-cmd__list .none{cursor:default;color:var(--pp-muted);font-weight:500}
.pp-cmd__hint{margin:0;padding:8px 16px 12px;font:500 12px/1 'Sora',sans-serif;color:var(--pp-muted)}
.pp-toasts{position:fixed;right:16px;bottom:16px;z-index:60;display:grid;gap:8px;max-width:min(440px,calc(100vw - 32px))}
.pp-main--out .pp-toast{margin-bottom:20px}
.pp-toast{display:flex;align-items:flex-start;gap:12px;padding:14px 14px 14px 18px;border-radius:14px;background:var(--pp-ink);color:var(--pp-paper);font:600 14px/1.45 'Sora',sans-serif;box-shadow:0 24px 48px -20px rgba(11,11,15,.5);border-left:5px solid var(--pp-accent);animation:toastin .3s ease both}
.pp-toast--ok{border-left-color:var(--pp-green)}
.pp-toast--bad{border-left-color:var(--pp-red)}
.pp-toast span{flex:1}
.pp-toast__x{border:0;background:none;color:inherit;opacity:.7;cursor:pointer;padding:2px}
.pp-toast.is-gone{opacity:0;transform:translateY(8px);transition:opacity .3s,transform .3s}
@keyframes toastin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.pp-tip{display:inline-block;position:relative;margin-left:6px;vertical-align:1px;text-transform:none;letter-spacing:0}
.pp-tip>summary{list-style:none;display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border-radius:50%;border:1.5px solid currentColor;font:800 10px/1 'Sora',sans-serif;color:var(--pp-muted);cursor:pointer}
.pp-tip>summary::-webkit-details-marker{display:none}
.pp-tip>summary:hover,.pp-tip[open]>summary{color:var(--pp-accent)}
.pp-tip>div{position:absolute;left:-8px;top:calc(100% + 8px);z-index:45;width:min(280px,72vw);padding:12px 14px;border-radius:12px;background:var(--pp-ink);color:var(--pp-paper);font:400 13.5px/1.45 'Source Serif 4',Georgia,serif;box-shadow:0 20px 40px -20px rgba(11,11,15,.5)}
.pp-tip--inline>div{display:none}
.pp-welcome{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:24px;align-items:start;margin:0 0 32px;padding:clamp(18px,2.5vw,28px);border-radius:24px;border:2px solid var(--pp-ink);background:var(--pp-surface)}
.pp-welcome__side{display:grid;gap:12px;justify-items:start}
.pp-ticks{list-style:none;margin:14px 0;padding:0;display:grid;gap:10px}
.pp-ticks li{display:flex;gap:10px;align-items:flex-start;font:400 15.5px/1.45 'Source Serif 4',Georgia,serif;color:var(--pp-body)}
.pp-ticks svg{color:var(--pp-green);margin-top:2px}
.pp-btn--light{background:var(--pp-paper);border-color:var(--pp-paper);color:var(--pp-ink)}
@media (max-width:900px){.pp-welcome{grid-template-columns:1fr}}
.pp-tabs{display:flex;gap:4px;padding:4px;border-radius:999px;background:var(--pp-sand);margin:0 0 24px;overflow-x:auto;scrollbar-width:none;width:max-content;max-width:100%}
.pp-tabs a{padding:9px 14px;border-radius:999px;font:700 13px/1 'Sora',sans-serif;text-decoration:none;color:var(--pp-muted);white-space:nowrap}
.pp-tabs a[aria-selected="true"]{background:var(--pp-surface);color:var(--pp-ink);box-shadow:0 1px 0 var(--pp-line)}

/* Page */
.pp-main{flex:1;width:100%;max-width:1360px;margin:0 auto;padding:clamp(20px,3vw,36px) clamp(16px,3vw,36px) 56px;outline:0}
.pp-hero{display:flex;flex-wrap:wrap;gap:16px 32px;align-items:flex-end;justify-content:space-between;margin-bottom:clamp(20px,3vw,32px)}
.pp-hero__main{min-width:0;flex:1 1 420px}
.pp-eyebrow{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;font:600 13px/1 'Sora',sans-serif;color:var(--pp-accent)}
.pp-h1{margin:0;font:800 clamp(28px,3.4vw,42px)/1.04 'Sora',sans-serif;letter-spacing:-.045em;text-wrap:balance;overflow-wrap:anywhere}
.pp-lede{margin:10px 0 0;max-width:70ch;font:400 16.5px/1.5 'Source Serif 4',Georgia,serif;color:var(--pp-body);text-wrap:pretty}
.pp-hero__aside{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pp-h2{margin:0 0 6px;font:800 clamp(22px,2.4vw,28px)/1.1 'Sora',sans-serif;letter-spacing:-.035em}
.pp-h3{margin:0 0 4px;font:700 16px/1.25 'Sora',sans-serif;letter-spacing:-.01em}
.pp-sub{margin:0 0 18px;font:400 15px/1.5 'Source Serif 4',Georgia,serif;color:var(--pp-muted);max-width:70ch}
.pp-section{margin-top:clamp(32px,4.5vw,56px)}
.pp-section__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 24px;margin-bottom:16px}
.pp-section__head .pp-sub{margin:0}

/* Pills / chips */
.pp-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:999px;border:1.5px solid var(--pp-line-strong);font:600 12px/1 'Sora',sans-serif;white-space:nowrap;color:var(--pp-ink)}
.pp-pill--ok{border-color:transparent;background:var(--pp-green-soft);color:var(--pp-green)}
.pp-pill--warn{border-color:transparent;background:var(--pp-amber-soft);color:var(--pp-amber)}
.pp-pill--bad{border-color:transparent;background:var(--pp-red-soft);color:var(--pp-red)}
.pp-pill--info{border-color:transparent;background:var(--pp-accent-soft);color:var(--pp-accent)}
.pp-pill--muted{border-color:transparent;background:var(--pp-sand);color:var(--pp-muted)}
.pp-pill--ink{border-color:var(--pp-ink);background:var(--pp-ink);color:var(--pp-paper)}
.pp-pill i{width:7px;height:7px;border-radius:50%;background:currentColor;display:inline-block}

/* KPI strip: one ruled band, not a row of boxes */
.pp-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));border-top:2px solid var(--pp-ink);border-bottom:1px solid var(--pp-line)}
.pp-kpi{padding:18px 18px 20px 0;border-right:1px solid var(--pp-line);min-width:0}
.pp-kpi+.pp-kpi{padding-left:18px}
.pp-kpi:last-child{border-right:0}
.pp-kpi__label{font:600 11px/1.2 'Sora',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--pp-muted)}
.pp-kpi__value{margin-top:10px;font:800 clamp(28px,3vw,40px)/1 'Sora',sans-serif;letter-spacing:-.045em;font-variant-numeric:tabular-nums}
.pp-kpi__value small{font-size:.45em;letter-spacing:-.01em;font-weight:700;color:var(--pp-muted);margin-left:4px}
.pp-kpi__sub{margin-top:8px;font:400 13.5px/1.4 'Source Serif 4',Georgia,serif;color:var(--pp-muted)}
.pp-kpi--accent .pp-kpi__value{color:var(--pp-accent)}
@media (max-width:640px){.pp-kpis{grid-template-columns:1fr 1fr}.pp-kpi{border-right:0;padding:16px 12px 16px 0;border-bottom:1px solid var(--pp-line)}.pp-kpi+.pp-kpi{padding-left:0}.pp-kpi:nth-child(2n){padding-left:12px;border-left:1px solid var(--pp-line)}}

/* Layout grids */
.pp-grid{display:grid;gap:16px}
.pp-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.pp-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.pp-grid--main{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
@media (max-width:980px){.pp-grid--2,.pp-grid--3,.pp-grid--main{grid-template-columns:1fr}}

.pp-card{background:var(--pp-surface);border:1px solid var(--pp-line);border-radius:20px;padding:clamp(18px,2.2vw,26px);min-width:0}
.pp-card--sand{background:var(--pp-sand);border-color:transparent}
.pp-card--ink{background:var(--pp-ink);color:var(--pp-paper);border-color:transparent}
.pp-card--ink .pp-sub,.pp-card--ink .pp-muted{color:color-mix(in srgb,var(--pp-paper) 70%,transparent)}
.pp-card--line{background:transparent;border:2px solid var(--pp-ink)}
.pp-card__head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}
.pp-muted{color:var(--pp-muted)}
.pp-small{font-size:13px}
.pp-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;word-break:break-all}

/* Definition list */
.pp-dl{display:grid;grid-template-columns:minmax(120px,auto) 1fr;gap:10px 18px;margin:0}
.pp-dl dt{font:600 12px/1.5 'Sora',sans-serif;color:var(--pp-muted)}
.pp-dl dd{margin:0;font:600 14px/1.5 'Sora',sans-serif;min-width:0}
@media (max-width:480px){.pp-dl{grid-template-columns:1fr;gap:2px}.pp-dl dd{margin-bottom:10px}}

/* Tables */
.pp-tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -2px}
.pp-table{width:100%;border-collapse:collapse;font:500 13.5px/1.35 'Sora',sans-serif}
.pp-table th{position:sticky;top:0;text-align:left;padding:10px 12px;border-bottom:2px solid var(--pp-ink);font:700 11px/1.2 'Sora',sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--pp-muted);white-space:nowrap;background:inherit}
.pp-table th a{text-decoration:none;color:inherit}
.pp-table th a:hover,.pp-table th a[aria-sort]{color:var(--pp-ink)}
.pp-table td{padding:12px;border-bottom:1px solid var(--pp-line);vertical-align:top}
.pp-table td.r,.pp-table th.r{text-align:right}
.pp-table tr:hover td{background:var(--pp-sand-2)}
.pp-table .lead{font-weight:700}
.pp-table a.row{font-weight:700;text-decoration:none}
.pp-table a.row:hover{color:var(--pp-accent)}

/* Buttons and forms */
.pp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:12px 18px;border-radius:999px;border:2px solid var(--pp-ink);background:var(--pp-ink);color:var(--pp-paper);font:700 14px/1 'Sora',sans-serif;cursor:pointer;text-decoration:none;transition:background .25s,border-color .25s,transform .3s}
.pp-btn:hover{background:var(--pp-accent);border-color:var(--pp-accent);color:var(--pp-accent-ink)}
.pp-btn--ghost{background:transparent;color:var(--pp-ink)}
.pp-btn--ghost:hover{background:var(--pp-ink);border-color:var(--pp-ink);color:var(--pp-paper)}
.pp-btn--danger{background:transparent;border-color:var(--pp-red);color:var(--pp-red)}
.pp-btn--danger:hover{background:var(--pp-red);border-color:var(--pp-red);color:#fff}
.pp-btn--sm{min-height:34px;padding:8px 12px;font-size:12.5px}
.pp-btn[disabled]{opacity:.45;cursor:not-allowed}
.pp-form{display:grid;gap:14px}
.pp-form--inline{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}
.pp-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.pp-field>span{font:600 12.5px/1.2 'Sora',sans-serif;color:var(--pp-muted)}
.pp-field small{font:400 12.5px/1.4 'Source Serif 4',Georgia,serif;color:var(--pp-muted)}
.pp-input,.pp-field input:not([type=checkbox]):not([type=radio]),.pp-field select,.pp-field textarea{width:100%;min-height:44px;padding:10px 14px;border-radius:12px;border:1.5px solid var(--pp-line-strong);background:var(--pp-surface);color:var(--pp-ink);font:500 15px/1.3 'Sora',sans-serif}
.pp-field textarea{min-height:90px;resize:vertical;line-height:1.45}
.pp-field input:focus,.pp-field select:focus,.pp-field textarea:focus{outline:2px solid var(--pp-accent);outline-offset:1px;border-color:var(--pp-accent)}
.pp-check{display:flex;gap:10px;align-items:flex-start;font:400 15px/1.45 'Source Serif 4',Georgia,serif;color:var(--pp-body)}
.pp-check input{width:20px;height:20px;margin-top:2px;flex:none;accent-color:var(--pp-accent)}
.pp-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:12px}
details.pp-disclose{border-top:1px solid var(--pp-line);padding-top:12px;margin-top:12px}
details.pp-disclose>summary{cursor:pointer;font:700 14px/1.3 'Sora',sans-serif;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px}
details.pp-disclose>summary::-webkit-details-marker{display:none}
details.pp-disclose>summary::after{content:"+";font:800 20px/1 'Sora',sans-serif;color:var(--pp-accent)}
details.pp-disclose[open]>summary::after{content:"–"}
details.pp-disclose>div{padding-top:14px}

/* Notices */
.pp-flash{margin:0 0 24px;padding:14px 18px;border-radius:14px;font:600 14px/1.45 'Sora',sans-serif;border-left:4px solid var(--pp-accent);background:var(--pp-accent-soft)}
.pp-flash--ok{border-color:var(--pp-green);background:var(--pp-green-soft)}
.pp-flash--bad{border-color:var(--pp-red);background:var(--pp-red-soft)}
.pp-flash--test{border-color:var(--pp-amber);background:var(--pp-amber-soft)}
.pp-empty{padding:28px 22px;border:1.5px dashed var(--pp-line);border-radius:16px;text-align:left}
.pp-empty b{display:block;font:700 15px/1.3 'Sora',sans-serif;margin-bottom:4px}
.pp-empty span{font:400 15px/1.5 'Source Serif 4',Georgia,serif;color:var(--pp-muted)}
.pp-nt{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:6px;background:var(--pp-sand);color:var(--pp-muted);font:700 10.5px/1.2 'Sora',sans-serif;letter-spacing:.04em;text-transform:uppercase}

/* Charts */
.pp-chart{width:100%;height:auto;display:block;overflow:visible}
.pp-chart .bar{fill:var(--pp-accent)}
.pp-chart .bar.zero{fill:var(--pp-zero)}
.pp-chart .bar.alt{fill:var(--pp-ink)}
.pp-chart .grid{stroke:var(--pp-line);stroke-width:1}
.pp-chart .axis{fill:var(--pp-muted);font:600 10px 'Sora',sans-serif}
.pp-chart .line{fill:none;stroke:var(--pp-ink);stroke-width:2}
.pp-chart rect.hit{fill:transparent}
.pp-chart g:hover .bar{opacity:.75}
.pp-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px;font:600 12px/1 'Sora',sans-serif;color:var(--pp-muted)}
.pp-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px;background:var(--pp-accent)}
.pp-seg{display:inline-flex;padding:3px;border-radius:999px;background:var(--pp-sand)}
.pp-seg a{padding:7px 12px;border-radius:999px;font:700 12px/1 'Sora',sans-serif;text-decoration:none;color:var(--pp-muted)}
.pp-seg a[aria-current="true"]{background:var(--pp-surface);color:var(--pp-ink);box-shadow:0 1px 0 var(--pp-line)}

/* Matrix (work by window) */
.pp-matrix{width:100%;border-collapse:collapse;font:500 14px/1.3 'Sora',sans-serif}
.pp-matrix th,.pp-matrix td{padding:11px 0;border-bottom:1px solid var(--pp-line)}
.pp-matrix th{text-align:left;font-weight:600;color:var(--pp-body)}
.pp-matrix td{text-align:right;font-weight:700;font-variant-numeric:tabular-nums;width:72px}
.pp-matrix thead th{font:700 11px/1 'Sora',sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--pp-muted);text-align:right;border-bottom:2px solid var(--pp-ink)}
.pp-matrix thead th:first-child{text-align:left}

/* Timeline (ledger) */
.pp-timeline{list-style:none;margin:0;padding:0}
.pp-timeline li{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:4px 16px;padding:14px 0;border-bottom:1px solid var(--pp-line);align-items:baseline}
.pp-timeline .when{font:600 12px/1.3 'Sora',sans-serif;color:var(--pp-muted)}
.pp-timeline .what{font:600 14px/1.35 'Sora',sans-serif}
.pp-timeline .what small{display:block;font:400 13.5px/1.4 'Source Serif 4',Georgia,serif;color:var(--pp-muted)}
.pp-timeline .amt{font:800 16px/1 'Sora',sans-serif;font-variant-numeric:tabular-nums;text-align:right}
@media (max-width:560px){.pp-timeline li{grid-template-columns:1fr auto}.pp-timeline .when{grid-column:1/-1}}

/* Sign-in */
.pp-auth{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(24px,5vw,80px);align-items:center;min-height:calc(100vh - 220px)}
.pp-auth__card{background:var(--pp-surface);border:2px solid var(--pp-ink);border-radius:24px;padding:clamp(22px,3vw,36px);box-shadow:var(--pp-shadow)}
.pp-auth__card h2{margin:0 0 6px;font:800 26px/1.1 'Sora',sans-serif;letter-spacing:-.035em}
.pp-auth__who{display:grid;gap:10px;margin:28px 0 0;padding:0;list-style:none}
.pp-auth__who li{display:grid;grid-template-columns:28px 1fr;gap:12px;align-items:baseline;font:400 16px/1.45 'Source Serif 4',Georgia,serif;color:var(--pp-body)}
.pp-auth__who b{font:700 15px/1.3 'Sora',sans-serif;color:var(--pp-ink)}
.pp-auth__who span.n{font:700 11px/1.6 'Sora',sans-serif;color:var(--pp-accent)}
.pp-code{letter-spacing:.24em;text-transform:uppercase;font:800 22px/1 'Sora',sans-serif!important;text-align:center}
@media (max-width:900px){.pp-auth{grid-template-columns:1fr;min-height:0}}

/* Signature pad */
.pp-sigpad{position:relative;border:1.5px solid var(--pp-line-strong);border-radius:14px;background:#fff;touch-action:none;height:170px}
.pp-sigpad canvas{width:100%;height:100%;display:block;border-radius:14px;cursor:crosshair}
.pp-sigpad .hint{position:absolute;left:16px;bottom:12px;font:500 12px/1 'Sora',sans-serif;color:#8a8790;pointer-events:none}
.pp-typed{font:italic 400 34px/1.2 'Source Serif 4',Georgia,serif;padding:14px 18px;border-radius:14px;background:#fff;color:#0B0B0F;border:1.5px solid var(--pp-line-strong);min-height:72px}
.pp-pdf{width:100%;height:min(78vh,900px);border:1px solid var(--pp-line);border-radius:16px;background:var(--pp-sand)}

/* Steps */
.pp-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:0;margin:0 0 28px;padding:0;list-style:none;border-top:2px solid var(--pp-ink)}
.pp-steps li{padding:14px 14px 14px 0;font:600 13px/1.3 'Sora',sans-serif;color:var(--pp-muted)}
.pp-steps li b{display:block;font:700 11px/1 'Sora',sans-serif;color:var(--pp-muted);margin-bottom:6px}
.pp-steps li.done{color:var(--pp-ink)}
.pp-steps li.done b{color:var(--pp-green)}
.pp-steps li.now{color:var(--pp-ink)}
.pp-steps li.now b{color:var(--pp-accent)}

/* Footer */
.pp-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;align-items:center;padding:18px clamp(16px,3vw,36px) 22px;border-top:1px solid var(--pp-line)}
.pp-foot p{margin:0;font:500 12px/1.6 'Sora',sans-serif;color:var(--pp-muted)}
.pp-foot ul{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0;padding:0;list-style:none;font:600 12px/1 'Sora',sans-serif}
.pp-foot a{text-decoration:none}
.pp-field input:user-invalid,.pp-field select:user-invalid,.pp-field textarea:user-invalid{border-color:var(--pp-red)}
.pp-field .pp-err{font:600 12.5px/1.3 'Sora',sans-serif;color:var(--pp-red)}
.pp-btn.is-busy{position:relative;color:transparent!important}
.pp-btn.is-busy::after{content:"";position:absolute;width:16px;height:16px;border-radius:50%;border:2px solid var(--pp-paper);border-right-color:transparent;animation:spin .7s linear infinite}
.pp-btn--ghost.is-busy::after{border-color:var(--pp-ink);border-right-color:transparent}
@keyframes spin{to{transform:rotate(360deg)}}
.pp-flash--warn{display:flex;gap:10px;align-items:flex-start;border-color:var(--pp-amber);background:var(--pp-amber-soft)}
.pp-flash--warn svg{flex:none;margin-top:1px}
th[data-sort-key]{cursor:pointer;user-select:none}
th[data-sort-key]::after{content:"\2195";margin-left:6px;opacity:.35}
th[aria-sort="ascending"]::after{content:"\2191";opacity:1}
th[aria-sort="descending"]::after{content:"\2193";opacity:1}
.pp-heat{display:grid;grid-template-columns:40px repeat(24,minmax(0,1fr));gap:2px;font:600 10px/1 'Sora',sans-serif;color:var(--pp-muted)}
.pp-heat .c{aspect-ratio:1;border-radius:3px;background:var(--pp-zero);min-width:0}
.pp-heat .c[data-v]{background:color-mix(in srgb,var(--pp-accent) calc(var(--v) * 100%),var(--pp-zero))}
.pp-heat .c.gap{box-shadow:inset 0 0 0 1.5px var(--pp-red);background:var(--pp-red-soft)}
.pp-heat .l{display:flex;align-items:center}
.pp-heat .h{text-align:center}
.pp-heatwrap{overflow-x:auto}
.pp-heatwrap .pp-heat{min-width:560px}
.pp-progress{height:8px;border-radius:999px;background:var(--pp-zero);overflow:hidden}
.pp-progress>i{display:block;height:100%;border-radius:inherit;background:var(--pp-accent)}
.pp-progress--ok>i{background:var(--pp-green)}
.pp-progress--warn>i{background:var(--pp-amber)}
.pp-thread{display:grid;gap:12px}
.pp-msg{padding:14px 16px;border-radius:16px;border:1px solid var(--pp-line);background:var(--pp-surface);max-width:760px;width:100%}
.pp-msg--hq{background:var(--pp-sand);border-color:transparent;margin-left:auto}
.pp-msg--internal{background:var(--pp-amber-soft);border-color:transparent}
.pp-msg header{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;font:700 12.5px/1.3 'Sora',sans-serif;color:var(--pp-muted);margin-bottom:6px}
.pp-msg p{margin:0;white-space:pre-wrap;font:400 15px/1.5 'Source Serif 4',Georgia,serif;color:var(--pp-body);overflow-wrap:anywhere}
.pp-prose{font:400 16px/1.6 'Source Serif 4',Georgia,serif;color:var(--pp-body);max-width:72ch;white-space:pre-wrap;overflow-wrap:anywhere}
.pp-codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;font:700 15px/1 ui-monospace,Menlo,monospace;letter-spacing:.06em}
.pp-codes li{padding:12px;border-radius:10px;background:var(--pp-sand);text-align:center}
.pp-qr{width:200px;height:200px;padding:10px;background:#fff;border-radius:14px;border:1px solid var(--pp-line)}
.pp-qr svg{width:100%;height:100%;display:block}
.pp-stack{display:grid;gap:16px}
.pp-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}

@keyframes sway{0%,100%{transform:rotate(-2.5deg)}50%{transform:rotate(2.5deg)}}
@keyframes sprout{from{transform:scale(0) rotate(-25deg);opacity:0}60%{transform:scale(1.08) rotate(4deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media print{.pp-side,.pp-top,.pp-foot,.pp-toasts,form{display:none!important}.pp-shell{margin:0!important}body{background:#fff}}
.pp-or{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--pp-muted);font:600 12px/1 'Sora',sans-serif;text-transform:uppercase;letter-spacing:.08em}.pp-or::before,.pp-or::after{content:"";flex:1;height:1px;background:var(--pp-line)}
.pp-passkey-msg{margin:8px 0 0}.pp-passkey-msg--bad{color:var(--pp-red)}
/* ── Batch 4: training, exams, promotions, welcome ── */
.pp-mods{list-style:none;margin:8px 0 0;padding:0}
.pp-mod{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid var(--pp-line)}
.pp-mod:last-child{border-bottom:0}
.pp-mod.is-next{border-left:4px solid var(--pp-accent);padding-left:14px;margin-left:-18px}
.pp-mod.is-locked{opacity:.6}
.pp-mod__end{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.pp-checklist{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:10px}
.pp-checklist li{display:flex;gap:10px;align-items:flex-start}
.pp-checklist li>span{flex:1;min-width:0}
.pp-checklist b{display:block;font:600 14px/1.35 'Sora',sans-serif}
.pp-checklist small{display:block;font:400 13.5px/1.4 'Source Serif 4',Georgia,serif;color:var(--pp-muted)}
.pp-checklist li.ok>svg{color:var(--pp-green)}
.pp-checklist li.no>svg{color:var(--pp-red)}
.pp-lessonwrap{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;align-items:start}
.pp-lessonnav{position:sticky;top:calc(var(--pp-top-h,64px) + 16px)}
.pp-lessons{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.pp-lessons a{display:flex;gap:10px;align-items:center;padding:10px;border-radius:10px;text-decoration:none;color:var(--pp-body);font:600 14px/1.3 'Sora',sans-serif}
.pp-lessons a:hover{background:var(--pp-accent-soft)}
.pp-lessons .is-current a{background:var(--pp-ink);color:var(--pp-paper)}
.pp-lessons .n{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;border:1.5px solid currentColor;font-size:12px}
.pp-lessons .is-read .n{background:var(--pp-green-soft);border-color:var(--pp-green);color:var(--pp-green)}
.pp-lessons .is-locked a{opacity:.55}
.pp-lesson__body>p{font:400 16.5px/1.65 'Source Serif 4',Georgia,serif;color:var(--pp-body);max-width:72ch;margin:0 0 14px}
.pp-cmds td.lead{white-space:nowrap;font-size:13px}
.pp-steps-list{margin:0;padding-left:20px;display:grid;gap:8px;font:400 15.5px/1.5 'Source Serif 4',Georgia,serif;color:var(--pp-body)}
.pp-dont .pp-ticks svg{color:var(--pp-red)}
.pp-exam{gap:16px}
.pp-q{margin:0;border:0;display:grid;gap:10px}
.pp-q legend{display:flex;gap:10px;align-items:baseline;font:600 15.5px/1.4 'Sora',sans-serif;padding:0;margin-bottom:6px;float:left;width:100%}
.pp-q legend+*{clear:both}
.pp-q__n{flex:none;width:28px;height:28px;border-radius:50%;background:var(--pp-ink);color:var(--pp-paper);display:inline-grid;place-items:center;font-size:13px}
.pp-q .pp-check{padding:10px 12px;border-radius:12px;border:1.5px solid var(--pp-line);background:var(--pp-paper);cursor:pointer}
.pp-q .pp-check:has(input:checked){border-color:var(--pp-accent);background:var(--pp-accent-soft)}
.pp-review{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.pp-review li{padding:14px 16px;border-radius:14px;border:1.5px solid var(--pp-line);background:var(--pp-surface,var(--pp-paper))}
.pp-review li.no{border-color:var(--pp-red);background:var(--pp-red-soft)}
.pp-review .q{display:flex;gap:10px;margin:0 0 6px;font:600 14.5px/1.4 'Sora',sans-serif}
.pp-review li.ok .q svg{color:var(--pp-green)}.pp-review li.no .q svg{color:var(--pp-red)}
.pp-review p.pp-small{margin:4px 0 0 28px}
.pp-gate{max-width:860px;margin:0 auto;display:grid;gap:18px}
.pp-rules{max-height:60vh;overflow:auto;padding:4px 18px 4px 4px;border-top:1px solid var(--pp-line);border-bottom:1px solid var(--pp-line)}
.pp-md{font:400 15.5px/1.6 'Source Serif 4',Georgia,serif;color:var(--pp-body)}
.pp-md h2,.pp-md h3,.pp-md h4{font-family:'Sora',sans-serif;color:var(--pp-ink);margin:20px 0 8px;letter-spacing:-.01em}
.pp-md h2{font-size:19px}.pp-md h3{font-size:16.5px}.pp-md h4{font-size:15px}
.pp-md ul,.pp-md ol{padding-left:22px;margin:8px 0 12px}
.pp-md li{margin:4px 0}
.pp-critform .pp-row{flex-wrap:wrap}
.pp-critform .pp-field{min-width:150px;flex:1}
@media (max-width:900px){.pp-lessonwrap{grid-template-columns:1fr}.pp-lessonnav{position:static}.pp-mod.is-next{margin-left:0}}
@media (max-width:560px){.pp-mod{flex-direction:column;align-items:flex-start}.pp-mod__end{justify-content:flex-start}.pp-cmds td.lead{white-space:normal}.pp-review p.pp-small{margin-left:0}}
.pp-btn.pp-btn--light{background:var(--pp-paper);border-color:var(--pp-paper);color:var(--pp-ink)}.pp-btn.pp-btn--light:hover{background:var(--pp-accent);border-color:var(--pp-accent);color:var(--pp-accent-ink)}
/* Layout: content fills the width after the sidebar (left aligned, capped), dashboard header, stat cards */
.pp-main{max-width:1480px;margin:0}
.pp-hero--compact{margin-bottom:20px;align-items:center}
.pp-hero--compact .pp-h1{font-size:clamp(24px,2.2vw,30px);letter-spacing:-.035em}
.pp-hero--compact .pp-lede{margin-top:4px;font-size:15px}
.pp-hero--compact .pp-eyebrow{margin-bottom:4px}
.pp-statcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px;margin:0 0 28px}
.pp-statcard{display:flex;flex-direction:column;gap:6px;padding:18px 20px;border-radius:18px;background:var(--pp-surface,var(--pp-paper));border:1px solid var(--pp-line);min-width:0}
.pp-statcard--warn{border-color:var(--pp-amber)}
.pp-statcard--bad{border-color:var(--pp-red)}
.pp-statcard__head{display:flex;gap:8px;align-items:center;margin:0;font:700 13px/1.2 'Sora',sans-serif;color:var(--pp-muted);text-transform:uppercase;letter-spacing:.06em}
.pp-statcard__value{margin:4px 0 0;font:800 34px/1 'Sora',sans-serif;letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:var(--pp-ink)}
.pp-statcard__value small{font:600 14px/1 'Sora',sans-serif;letter-spacing:0;color:var(--pp-muted)}
.pp-statcard--bad .pp-statcard__value{color:var(--pp-red)}
.pp-statcard__sub{margin:0;flex:1;font:400 14px/1.45 'Source Serif 4',Georgia,serif;color:var(--pp-body)}
.pp-statcard__link{margin-top:6px;display:inline-flex;gap:4px;align-items:center;font:700 13px/1 'Sora',sans-serif;text-decoration:none;color:var(--pp-accent);min-height:13px}
.pp-kpis{grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr))}
@media (max-width:640px){.pp-kpis{grid-template-columns:1fr 1fr}.pp-statcard__value{font-size:28px}}
.pp-statcard__value small{margin-left:6px}
.pp-score{display:inline-flex;align-items:baseline;gap:2px;padding:6px 12px;border-radius:999px;font:800 22px/1 'Sora',sans-serif;background:var(--pp-sand);color:var(--pp-ink)}
.pp-score small{font-size:12px;color:var(--pp-muted)}
.pp-score--4,.pp-score--5{background:var(--pp-green-soft);color:var(--pp-green)}
.pp-score--1,.pp-score--2{background:var(--pp-red-soft);color:var(--pp-red)}
.pp-mapform{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px}
.pp-mapform .pp-input{min-height:36px;width:auto;max-width:220px}
.pp-sources{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.pp-sources li{font:600 14px/1.4 'Sora',sans-serif;overflow-wrap:anywhere}
.pp-sources small{display:block;margin-top:4px;font:400 13px/1.4 'Source Serif 4',Georgia,serif;color:var(--pp-muted)}
@media (max-width:640px){.pp-mapform .pp-input{max-width:100%;width:100%}}

/* ── Franchise controls ── */
.fc-tabs{margin:4px 0 18px}
.fc-setgrid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:20px;align-items:start}
@media (max-width:980px){.fc-setgrid{grid-template-columns:1fr}}
.fc-field{padding:14px 0;border-bottom:1px solid var(--pp-line)}
.fc-field:last-of-type{border-bottom:0}
.fc-field__head{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;justify-content:space-between;margin-bottom:6px}
.fc-field__head b{font:700 14px/1.3 'Sora',sans-serif}
.fc-field__meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.fc-field .pp-sub{margin:0 0 8px;font-size:13.5px}
.fc-field__last{margin-top:6px;font:400 12.5px/1.4 'Source Serif 4',Georgia,serif;color:var(--pp-muted);display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.fc-count{font:600 11.5px/1 'Sora',sans-serif;color:var(--pp-muted);text-align:right}
.fc-sticky{position:sticky;top:76px}
@media (max-width:980px){.fc-sticky{position:static}}
.fc-listing{border-radius:14px;background:#14161c;color:#e9ecf2;padding:16px;font:500 13px/1.4 'Sora',sans-serif;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.fc-listing__row{display:flex;gap:12px;align-items:flex-start}
.fc-listing__icon{width:44px;height:44px;border-radius:10px;background:linear-gradient(135deg,#f40552,#7a1fd1);flex:none}
.fc-listing__name{font:700 14px/1.3 'Sora',sans-serif;color:#fff;word-break:break-word}
.fc-listing__desc{color:#aab1c0;margin-top:4px;font-size:12.5px;word-break:break-word}
.fc-listing__meta{display:flex;justify-content:space-between;gap:10px;margin-top:12px;color:#aab1c0;font-size:12px}
.fc-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
.fc-chips span{background:#262a35;color:#cfd5e2;border-radius:6px;padding:3px 7px;font-size:11px}
.fc-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.fc-links span{border:1px solid #3a3f4d;border-radius:8px;padding:4px 9px;font-size:11.5px;color:#e9ecf2;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fc-announce{display:flex;gap:12px;align-items:center;border-radius:12px;background:rgba(15,17,22,.92);color:#fff;padding:12px 16px;border-left:4px solid var(--pp-accent);font:600 14px/1.4 'Sora',sans-serif;word-break:break-word}
.fc-announce i{font-style:normal;font-size:18px}
.fc-restart{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;border:1.5px solid var(--pp-amber);background:var(--pp-amber-soft);border-radius:14px;padding:14px 16px;margin-bottom:18px}
.fc-restart form{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.fc-restart input{min-height:38px;padding:6px 10px;border-radius:10px;border:1.5px solid var(--pp-line-strong);background:var(--pp-surface);color:var(--pp-ink);font:500 14px 'Sora',sans-serif;width:130px}
.fc-md{font:400 15px/1.6 'Source Serif 4',Georgia,serif;color:var(--pp-body)}
.fc-md h1,.fc-md h2,.fc-md h3{font-family:'Sora',sans-serif;color:var(--pp-ink);margin:1.2em 0 .4em}
.fc-md h1{font-size:24px}.fc-md h2{font-size:19px}.fc-md h3{font-size:16px}
.fc-md ul,.fc-md ol{padding-left:22px}
.fc-md code{font-family:ui-monospace,Menlo,monospace;font-size:13px;background:var(--pp-sand);padding:1px 5px;border-radius:5px}
.fc-md a{color:var(--pp-accent)}
.fc-off{opacity:.62}
.fc-warn{border:2px solid var(--pp-red);background:var(--pp-red-soft);border-radius:14px;padding:14px 16px;font:500 14px/1.45 'Sora',sans-serif}
.fc-inline{display:inline}
.fc-pw{font-family:ui-monospace,Menlo,monospace}
[data-pv-kind=show][hidden]{display:none!important}
/* Franchise controls: resources */
.fc-restools{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center;justify-content:space-between;margin:0 0 18px}
.fc-reschips{display:flex;flex-wrap:wrap;gap:8px}
.fc-reschips a{display:inline-flex;gap:8px;align-items:center;padding:7px 14px;border:1px solid var(--pp-line);border-radius:999px;font:600 13px/1.2 'Sora',sans-serif;color:var(--pp-ink);text-decoration:none;background:var(--pp-surface)}
.fc-reschips a span{font-weight:500;color:var(--pp-muted)}
.fc-reschips a[aria-current="true"]{background:var(--pp-ink);color:var(--pp-paper);border-color:var(--pp-ink)}
.fc-reschips a[aria-current="true"] span{color:inherit;opacity:.75}
.fc-ressearch{display:flex;gap:8px;align-items:center;flex:1 1 280px;max-width:420px}
.fc-ressearch .pp-input{min-height:38px}
.fc-resgrid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:start}
.fc-resgrid>*{min-width:0}
.fc-resfolder{min-width:170px;max-width:260px;overflow-wrap:break-word}
.fc-resgrid aside{position:sticky;top:calc(var(--pp-top-h) + 16px)}
@media (max-width:1100px){.fc-resgrid{grid-template-columns:minmax(0,1fr)}.fc-resgrid aside{position:static;order:-1}}
.fc-restable td{vertical-align:top}
.fc-restable tr.is-off td{background:var(--pp-sand-2)}
.fc-restable tr.is-off .pp-mono{text-decoration:line-through;text-decoration-thickness:1px}
.fc-reslock{display:inline-flex;gap:6px;align-items:center;font:600 12.5px/1.2 'Sora',sans-serif;color:var(--pp-muted);white-space:nowrap;cursor:help}
.fc-reswhy{color:var(--pp-amber);margin-top:4px}
.fc-reswhy svg{vertical-align:-2px}
.fc-respol{margin-top:8px}
.fc-reshow .pp-ticks{margin:0}
@media (max-width:640px){.fc-restable th:nth-child(2),.fc-restable td:nth-child(2){display:none}}
.fc-restable .pp-btn{white-space:nowrap}

/* ══ Readability pass (2026-10-12): bigger type, summaries, metric cards, targets, help, AI blocks ══ */
body{font-size:16px;line-height:1.6}
.pp-lede{font-size:18px;line-height:1.6}
.pp-hero--compact .pp-lede{font-size:17px}
.pp-sub{font-size:16px;line-height:1.6}
.pp-small{font-size:14.5px;line-height:1.55}
.pp-h3{font-size:19px;line-height:1.3}
.pp-table{font-size:15px;line-height:1.45}
.pp-table th{font-size:12.5px;letter-spacing:.04em}
.pp-table td{padding:13px 12px}
.pp-dl dt{font-size:14px}
.pp-dl dd{font-size:15.5px}
.pp-timeline .when{font-size:13.5px}
.pp-timeline .what{font-size:15.5px;line-height:1.45}
.pp-timeline .what small{font-size:15px;line-height:1.55;margin-top:2px}
.pp-kpi__label{font-size:12.5px}
.pp-kpi__sub{font-size:15px}
.pp-legend{font-size:14px;line-height:1.4}
.pp-legend i{width:12px;height:12px}
.pp-chart .axis{font-size:12px}
.pp-field>span{font-size:14.5px}
.pp-field small{font-size:14px;line-height:1.5}
.pp-section{margin-top:clamp(32px,4vw,48px)}
.pp-section__head{margin-bottom:16px}

/* Sidebar: foldable groups with a one-line description */
.pp-navgroup{margin-top:6px}
.pp-navgroup__head{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px 4px;border:0;background:transparent;color:var(--pp-muted);cursor:pointer;text-align:left;border-radius:10px}
.pp-navgroup__head:hover{color:var(--pp-ink)}
.pp-navgroup__head .pp-navgroup__title{margin:0;flex:1;font-size:11.5px}
.pp-navgroup__head .pp-ico{transition:transform .15s ease;transform:rotate(90deg)}
.pp-navgroup__head[aria-expanded="false"] .pp-ico{transform:none}
.pp-navgroup__dot{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--pp-accent);color:var(--pp-accent-ink);font:700 11px/20px 'Sora',sans-serif;text-align:center}
.pp-navgroup__desc{margin:0 10px 6px;font:400 13px/1.4 'Source Serif 4',Georgia,serif;color:var(--pp-muted)}
.pp-navgroup a{font-size:14.5px;min-height:40px}
.pp-navgroup[data-default="closed"]:not(.is-current) ul{display:none}
html[data-nav-open~="mgmt"] .pp-navgroup[data-g="mgmt"] ul,html[data-nav-open~="me"] .pp-navgroup[data-g="me"] ul,html[data-nav-open~="franchise"] .pp-navgroup[data-g="franchise"] ul,html[data-nav-open~="fview"] .pp-navgroup[data-g="fview"] ul,html[data-nav-open~="people"] .pp-navgroup[data-g="people"] ul,html[data-nav-open~="franchises"] .pp-navgroup[data-g="franchises"] ul,html[data-nav-open~="records"] .pp-navgroup[data-g="records"] ul,html[data-nav-open~="apply"] .pp-navgroup[data-g="apply"] ul{display:grid}
html[data-nav-closed~="mgmt"] .pp-navgroup[data-g="mgmt"]:not(.is-current) ul,html[data-nav-closed~="me"] .pp-navgroup[data-g="me"]:not(.is-current) ul,html[data-nav-closed~="franchise"] .pp-navgroup[data-g="franchise"]:not(.is-current) ul,html[data-nav-closed~="fview"] .pp-navgroup[data-g="fview"]:not(.is-current) ul,html[data-nav-closed~="people"] .pp-navgroup[data-g="people"]:not(.is-current) ul,html[data-nav-closed~="franchises"] .pp-navgroup[data-g="franchises"]:not(.is-current) ul,html[data-nav-closed~="records"] .pp-navgroup[data-g="records"]:not(.is-current) ul,html[data-nav-closed~="apply"] .pp-navgroup[data-g="apply"]:not(.is-current) ul{display:none}
.pp-navgroup[data-default="closed"]:not(.is-current) .pp-navgroup__desc{margin-bottom:2px}
html.pp-collapsed .pp-navgroup ul{display:grid!important}
html.pp-collapsed .pp-navgroup__desc,html.pp-collapsed .pp-navgroup__head{display:none}
@media (max-width:980px){html.pp-collapsed .pp-navgroup__head{display:flex}html.pp-collapsed .pp-navgroup__desc{display:block}}

/* "?" explanations: a bigger target and readable text */
.pp-tip>summary{width:20px;height:20px;font-size:11.5px}
.pp-tip>div{width:min(320px,82vw);padding:14px 16px;font-size:15px;line-height:1.55}

/* Status: colour + icon + word */
.pp-status{display:inline-flex;align-items:center;gap:8px;padding:7px 14px 7px 10px;border-radius:999px;font:700 14px/1 'Sora',sans-serif;white-space:nowrap}
.pp-status--good{background:var(--pp-green-soft);color:var(--pp-green)}
.pp-status--warn{background:var(--pp-amber-soft);color:var(--pp-amber)}
.pp-status--bad{background:var(--pp-red-soft);color:var(--pp-red)}
.pp-status--info,.pp-status--muted{background:var(--pp-accent-soft);color:var(--pp-accent)}
.pp-status--muted{background:var(--pp-sand);color:var(--pp-muted)}

/* Summary banner */
.pp-summary{position:relative;margin:0 0 clamp(24px,3vw,36px);padding:clamp(18px,2.4vw,28px) clamp(18px,2.6vw,32px);border-radius:22px;background:var(--pp-surface);border:1px solid var(--pp-line);border-left:6px solid var(--pp-accent)}
.pp-summary--good{border-left-color:var(--pp-green)}
.pp-summary--warn{border-left-color:var(--pp-amber)}
.pp-summary--bad{border-left-color:var(--pp-red)}
.pp-summary--muted{border-left-color:var(--pp-line-strong)}
.pp-summary__text{margin:14px 0 0;max-width:66ch;font:500 clamp(18px,1.6vw,21px)/1.55 'Sora',sans-serif;letter-spacing:-.01em;color:var(--pp-ink);text-wrap:pretty}
.pp-summary__text b{font-weight:700}
.pp-summary__points{margin:14px 0 0;padding:0 0 0 20px;max-width:70ch;display:grid;gap:6px;font:400 16.5px/1.6 'Source Serif 4',Georgia,serif;color:var(--pp-body)}
.pp-summary__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}

/* Metric cards: big number, comparison in words, what it means */
.pp-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:16px;margin:0 0 8px}
.pp-metric{display:flex;flex-direction:column;gap:8px;padding:20px 22px;border-radius:20px;background:var(--pp-surface);border:1px solid var(--pp-line);min-width:0}
.pp-metric__label{margin:0;font:600 15px/1.35 'Sora',sans-serif;color:var(--pp-body)}
.pp-metric__value{margin:0;font:800 clamp(34px,3.4vw,44px)/1 'Sora',sans-serif;letter-spacing:-.045em;font-variant-numeric:tabular-nums;color:var(--pp-ink)}
.pp-metric__value small{margin-left:6px;font-size:.42em;letter-spacing:-.01em;font-weight:700;color:var(--pp-muted)}
.pp-metric--good .pp-metric__value{color:var(--pp-green)}
.pp-metric--warn .pp-metric__value{color:var(--pp-amber)}
.pp-metric--bad .pp-metric__value{color:var(--pp-red)}
.pp-metric--accent .pp-metric__value{color:var(--pp-accent)}
.pp-metric__cmp{display:flex;align-items:flex-start;gap:6px;margin:0;font:600 14.5px/1.4 'Sora',sans-serif;color:var(--pp-muted)}
.pp-metric__cmp .pp-ico{margin-top:1px}
.pp-metric__cmp--good{color:var(--pp-green)}
.pp-metric__cmp--bad{color:var(--pp-red)}
.pp-metric__means{margin:0;padding-top:10px;border-top:1px solid var(--pp-line);font:400 15.5px/1.55 'Source Serif 4',Georgia,serif;color:var(--pp-body)}

/* More detail */
.pp-more{margin-top:16px;border:1px solid var(--pp-line);border-radius:18px;background:var(--pp-surface)}
.pp-more>summary{display:flex;align-items:center;gap:12px;padding:16px 20px;cursor:pointer;list-style:none;font:700 16px/1.3 'Sora',sans-serif}
.pp-more>summary::-webkit-details-marker{display:none}
.pp-more>summary small{font:400 15px/1.4 'Source Serif 4',Georgia,serif;color:var(--pp-muted);flex:1}
.pp-more>summary .pp-ico{margin-left:auto;transition:transform .15s ease}
.pp-more[open]>summary .pp-ico{transform:rotate(90deg)}
.pp-more__body{padding:4px 20px 20px}
@media (max-width:560px){.pp-more>summary{flex-wrap:wrap}.pp-more>summary small{flex-basis:100%;order:3}}

/* Technical details (emails, ids) */
.pp-techdetails{margin-top:10px;font-size:14.5px}
.pp-techdetails>summary{cursor:pointer;color:var(--pp-muted);font:600 14px/1.4 'Sora',sans-serif;width:max-content}
.pp-techdetails dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:10px 0 0}
.pp-techdetails dt{color:var(--pp-muted);font:600 13.5px/1.5 'Sora',sans-serif}
.pp-techdetails dd{margin:0;min-width:0;overflow-wrap:anywhere}

/* Targets as sentences */
.pp-targets{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.pp-target{display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid var(--pp-line)}
.pp-target:last-child{border-bottom:0}
.pp-target__ic{color:var(--pp-muted);padding-top:2px}
.pp-target--good .pp-target__ic{color:var(--pp-green)}
.pp-target--warn .pp-target__ic{color:var(--pp-amber)}
.pp-target--bad .pp-target__ic{color:var(--pp-red)}
.pp-target__line{margin:0 0 8px;font:500 16.5px/1.5 'Sora',sans-serif}
.pp-target__after{margin:8px 0 0;font:400 15px/1.5 'Source Serif 4',Georgia,serif;color:var(--pp-muted)}
.pp-progress--thin{height:6px}
.pp-progress--good>i{background:var(--pp-green)}
.pp-progress--warn>i{background:var(--pp-amber)}
.pp-progress--bad>i{background:var(--pp-red)}
.pp-progress--muted>i{background:var(--pp-muted)}

/* AI write-ups: takeaway first, full text behind a disclosure */
.pp-ai{margin-top:10px}
.pp-ai__top{display:flex;gap:14px;align-items:flex-start}
.pp-ai__takeaway{margin:0;max-width:68ch;font:400 17px/1.65 'Source Serif 4',Georgia,serif;color:var(--pp-ink)}
.pp-ai__full{margin-top:12px}
.pp-ai__full>summary{display:inline-flex;align-items:center;gap:6px;cursor:pointer;list-style:none;font:700 15px/1.3 'Sora',sans-serif;color:var(--pp-accent)}
.pp-ai__full>summary::-webkit-details-marker{display:none}
.pp-ai__full[open]>summary .pp-ico{transform:rotate(90deg)}
.pp-ai__body{max-width:72ch;margin-top:8px}
.pp-ai__body h4{margin:18px 0 6px;font:700 16px/1.3 'Sora',sans-serif}
.pp-ai__body ul{margin:0;padding-left:20px;display:grid;gap:6px;font:400 16px/1.7 'Source Serif 4',Georgia,serif;color:var(--pp-body)}
.pp-ai__meta{margin:16px 0 0;font:400 14px/1.5 'Sora',sans-serif;color:var(--pp-muted)}
@media (max-width:560px){.pp-ai__top{flex-direction:column;gap:10px}}

/* Charts: heading, takeaway caption, axis labels */
.pp-chartblock{margin:0}
.pp-chartblock .pp-h3{margin:0 0 4px}
.pp-chartblock__cap{margin:0 0 14px;max-width:70ch;font:400 16px/1.6 'Source Serif 4',Georgia,serif;color:var(--pp-body)}
.pp-chartblock__y,.pp-chartblock__x{margin:0;font:600 13.5px/1.3 'Sora',sans-serif;color:var(--pp-muted)}
.pp-chartblock__y{margin-bottom:6px}
.pp-chartblock__x{margin-top:6px;text-align:center}

/* Sentences above tables, empty states with a next step */
.pp-intro{margin:0 0 14px;max-width:70ch;font:400 16px/1.6 'Source Serif 4',Georgia,serif;color:var(--pp-body)}
.pp-card .pp-intro:first-child{margin-top:0}
.pp-empty--next{display:flex;gap:12px;align-items:flex-start;text-align:left}
.pp-empty--next>.pp-ico{flex:none;color:var(--pp-accent);margin-top:2px}
.pp-empty--next b{display:block;font-size:16px}
.pp-empty--next span{display:block;font-size:15.5px;line-height:1.55}
.pp-prose{max-width:70ch}
.pp-confirm{margin-top:12px;padding:14px 16px;border-radius:14px;background:var(--pp-red-soft)}
.pp-confirm p{margin:0 0 10px;font:400 15.5px/1.55 'Source Serif 4',Georgia,serif;color:var(--pp-ink)}
.pp-help{display:block;margin-top:4px;font:400 14.5px/1.5 'Source Serif 4',Georgia,serif;color:var(--pp-muted)}
@media (max-width:640px){.pp-chart .axis{font-size:22px}.pp-chart .axis.odd{display:none}}
.pp-metric__label .pp-tip,.pp-target__line .pp-tip{vertical-align:2px}
.pp-target__line{margin:0 0 8px}
@media (max-width:640px){.pp-table--stack thead{display:none}.pp-table--stack,.pp-table--stack tbody,.pp-table--stack tr,.pp-table--stack td{display:block;width:100%}.pp-table--stack tr{padding:12px 0;border-bottom:1px solid var(--pp-line)}.pp-table--stack td{border:0;padding:2px 0;text-align:left!important;white-space:normal!important}.pp-table--stack td:first-child{color:var(--pp-muted);font-size:13.5px}.pp-table--stack tr:hover td{background:none}}
/* Owner control app shortcut in the top bar (owner only) */
.pp-ctrlbtn{gap:6px;padding:0 14px}
@media (max-width:480px){.pp-ctrlbtn span{display:none}.pp-ctrlbtn{padding:0 10px}}
