/* ========================================================================
   WAGA IT Bildung – Verwaltung · Design System 2.0
   Eine Datei, ein Token-System, helles + dunkles Farbschema.
   Keine externen Fonts/CDNs (Schrift lokal: IBM Plex Sans, SIL OFL 1.1).
   Alle Klassennamen der Version 1.9.x bleiben gültig – keine PHP-Änderung nötig.
   ======================================================================== */

/* ---------- Schrift (lokal gehostet, DSGVO-konform) ---------- */
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/ibm-plex-sans-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/ibm-plex-sans-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/ibm-plex-sans-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/ibm-plex-sans-latin-700-normal.woff2") format("woff2")}

/* ---------- Tokens: hell (Standard) ---------- */
:root{
  --waga-blue:#3399ff;--waga-orange:#ff7a1a;

  --bg:#f2f4f7;--surface:#ffffff;--surface-2:#f7f9fb;--surface-3:#edf1f5;
  --ink:#15202c;--text:#2e3b4a;--muted:#5e6b7a;--muted-2:#8290a0;
  --line:#dde3ea;--line-soft:#e9edf2;--line-strong:#c7d0da;

  --brand:#3399ff;--brand-ink:#1667b8;--brand-soft:#e8f2fd;--brand-line:#b9d7f5;
  --primary:#1667b8;--primary-hover:#0f5aa3;--on-primary:#ffffff;
  --accent:#ff7a1a;--accent-ink:#a94800;--accent-soft:#fff1e6;--accent-line:#ffd2ad;

  --success:#127a55;--success-bg:#e6f4ee;--success-line:#bfe3d2;
  --warning:#8f5700;--warning-bg:#fff4de;--warning-line:#f0d9a8;
  --danger:#b4323f;--danger-bg:#fcebed;--danger-line:#f2c4ca;
  --info:#1667b8;--info-bg:#e8f2fd;--info-line:#b9d7f5;
  --violet:#5b45a0;--violet-bg:#f0ecfa;

  --score-critical:#b4323f;--score-low:#b35c0b;--score-medium:#8a6a00;--score-good:#1f8a60;--score-excellent:#127a55;

  --field-bg:#ffffff;
  --overlay:rgba(21,32,44,.38);
  --shadow-pop:0 14px 36px rgba(15,30,50,.14);
  --shadow-rest:0 1px 2px rgba(15,30,50,.05);
  --focus-ring:0 0 0 3px rgba(51,153,255,.38);

  --radius-control:7px;--radius-panel:10px;--radius-pill:999px;
  --sidebar-w:264px;--sidebar-collapsed-w:76px;--topbar-h:72px;

  --font:"IBM Plex Sans","Segoe UI",system-ui,-apple-system,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Consolas,monospace;

  /* Alt-Aliasse (werden in einzelnen Seiten noch referenziert) */
  --canvas:var(--bg);--text-strong:var(--ink);--border:var(--line);--border-strong:var(--line-strong);
  --waga-blue-600:var(--brand-ink);--waga-blue-700:var(--brand-ink);--waga-blue-soft:var(--brand-soft);--waga-orange-soft:var(--accent-soft);
  --radius-sm:var(--radius-control);--radius:var(--radius-panel);--radius-lg:var(--radius-panel);--radius-xl:14px;
  --shadow-xs:var(--shadow-rest);--shadow-sm:var(--shadow-rest);--shadow-md:var(--shadow-pop);--shadow-lg:var(--shadow-pop);
  --focus:var(--focus-ring);
  color-scheme:light;
}

/* ---------- Tokens: dunkel ---------- */
:root[data-theme="dark"]{
  --bg:#0f151d;--surface:#161e28;--surface-2:#1b2531;--surface-3:#222d3b;
  --ink:#eef2f6;--text:#cfd8e2;--muted:#95a3b3;--muted-2:#6f7e8f;
  --line:#273342;--line-soft:#212c39;--line-strong:#36445a;
  --brand:#4fa8ff;--brand-ink:#79bcff;--brand-soft:rgba(79,168,255,.13);--brand-line:rgba(79,168,255,.38);
  --primary:#2272c4;--primary-hover:#2c80d6;--on-primary:#ffffff;
  --accent:#ff8a33;--accent-ink:#ffa866;--accent-soft:rgba(255,138,51,.13);--accent-line:rgba(255,138,51,.4);
  --success:#56d19f;--success-bg:rgba(86,209,159,.12);--success-line:rgba(86,209,159,.32);
  --warning:#f2b45a;--warning-bg:rgba(242,180,90,.12);--warning-line:rgba(242,180,90,.32);
  --danger:#ff8490;--danger-bg:rgba(255,132,144,.12);--danger-line:rgba(255,132,144,.34);
  --info:#79bcff;--info-bg:rgba(79,168,255,.12);--info-line:rgba(79,168,255,.34);
  --violet:#bba9f7;--violet-bg:rgba(187,169,247,.13);
  --score-critical:#ff8490;--score-low:#ffad5a;--score-medium:#f2cc55;--score-good:#66d6ab;--score-excellent:#42d69f;
  --field-bg:#111922;
  --overlay:rgba(0,0,0,.55);
  --shadow-pop:0 16px 40px rgba(0,0,0,.45);
  --shadow-rest:none;
  --focus-ring:0 0 0 3px rgba(79,168,255,.45);
  color-scheme:dark;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0f151d;--surface:#161e28;--surface-2:#1b2531;--surface-3:#222d3b;
    --ink:#eef2f6;--text:#cfd8e2;--muted:#95a3b3;--muted-2:#6f7e8f;
    --line:#273342;--line-soft:#212c39;--line-strong:#36445a;
    --brand:#4fa8ff;--brand-ink:#79bcff;--brand-soft:rgba(79,168,255,.13);--brand-line:rgba(79,168,255,.38);
    --primary:#2272c4;--primary-hover:#2c80d6;--on-primary:#ffffff;
    --accent:#ff8a33;--accent-ink:#ffa866;--accent-soft:rgba(255,138,51,.13);--accent-line:rgba(255,138,51,.4);
    --success:#56d19f;--success-bg:rgba(86,209,159,.12);--success-line:rgba(86,209,159,.32);
    --warning:#f2b45a;--warning-bg:rgba(242,180,90,.12);--warning-line:rgba(242,180,90,.32);
    --danger:#ff8490;--danger-bg:rgba(255,132,144,.12);--danger-line:rgba(255,132,144,.34);
    --info:#79bcff;--info-bg:rgba(79,168,255,.12);--info-line:rgba(79,168,255,.34);
    --violet:#bba9f7;--violet-bg:rgba(187,169,247,.13);
    --score-critical:#ff8490;--score-low:#ffad5a;--score-medium:#f2cc55;--score-good:#66d6ab;--score-excellent:#42d69f;
    --field-bg:#111922;
    --overlay:rgba(0,0,0,.55);
    --shadow-pop:0 16px 40px rgba(0,0,0,.45);
    --shadow-rest:none;
    --focus-ring:0 0 0 3px rgba(79,168,255,.45);
    color-scheme:dark;
  }
}

/* ---------- Basis ---------- */
*,*::before,*::after{box-sizing:border-box}
html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body,h1,h2,h3,h4,p,ul,ol,figure{margin:0}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit}
img{max-width:100%}
body{font-family:var(--font);font-size:14px;line-height:1.5;background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,h4{color:var(--ink);font-weight:600;letter-spacing:-.01em}
::selection{background:rgba(51,153,255,.25)}
:focus-visible{outline:none;box-shadow:var(--focus-ring)}
a:focus-visible{border-radius:4px}
code{font-family:var(--mono);font-size:.92em}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* ---------- Icons ---------- */
.ui-icon{width:18px;height:18px;display:inline-block;vertical-align:-3px;flex:0 0 auto;color:currentColor}
.ui-icon.sm{width:15px;height:15px}.ui-icon.lg{width:22px;height:22px}

/* ---------- App-Rahmen ---------- */
.app-shell{min-height:100vh}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-w);display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--line);z-index:120;transition:width .2s ease,transform .2s ease;overflow:hidden}

.sidebar-brand{height:var(--topbar-h);display:flex;align-items:center;padding:0 18px;border-bottom:1px solid var(--line);text-decoration:none;flex:0 0 auto;position:relative}
.brand-logo-img{display:block;width:auto;height:auto;object-fit:contain}
.brand-logo-sidebar{max-width:100%;max-height:44px;object-position:left center}
.brand-logo-collapsed{display:none;width:42px;height:42px}
.brand-logo-auth{max-width:240px;max-height:72px;object-position:left center}
.brand-logo-light{max-width:170px;max-height:46px}
/* Adaptives WAGA-Logo: transparent, ohne weiße Plakette. */
.brand-logo-pair{display:flex;align-items:center;min-width:0}
.theme-logo-dark{display:none}
:root[data-theme="dark"] .theme-logo-light{display:none}
:root[data-theme="dark"] .theme-logo-dark{display:block;filter:drop-shadow(0 0 1px rgba(255,255,255,.35))}
:root[data-theme="light"] .theme-logo-light{display:block}
:root[data-theme="light"] .theme-logo-dark{display:none}
.brand-logo-img{background:transparent!important;border:0!important;padding:0!important;border-radius:0!important}

/* Alt-Brand (nur noch als Fallback) */
.brand-mark{width:40px;height:40px;border-radius:9px;background:var(--surface-2);border:1px solid var(--line);display:grid;place-items:center;color:var(--ink);font-weight:700}
.brand-copy{display:flex;flex-direction:column;line-height:1.2}.brand-name{font-weight:700;color:var(--ink)}.brand-sub{font-size:11px;color:var(--muted)}

.sidebar-scroll{overflow-y:auto;overflow-x:hidden;flex:1;padding:10px 10px 16px;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}
.nav-list{list-style:none;padding:0}
.nav-group{padding:16px 12px 5px;color:var(--muted-2);font-size:12px;font-weight:600;white-space:nowrap}
.nav-link{display:flex;align-items:center;gap:11px;min-height:38px;padding:7px 12px;margin:1px 0;border-radius:var(--radius-control);color:var(--muted);text-decoration:none;font-size:14px;font-weight:500;white-space:nowrap;position:relative;transition:background .12s,color .12s}
.nav-link .ui-icon{color:var(--muted-2);transition:color .12s}
.nav-link:hover{background:var(--surface-2);color:var(--ink)}
.nav-link:hover .ui-icon{color:var(--brand-ink)}
.nav-link.active{background:var(--brand-soft);color:var(--brand-ink);font-weight:600}
.nav-link.active .ui-icon{color:var(--brand-ink)}
.nav-link.active::before{content:"";position:absolute;left:-10px;top:7px;bottom:7px;width:3px;border-radius:0 3px 3px 0;background:var(--brand)}
.nav-label{overflow:hidden;text-overflow:ellipsis}
.nav-count{margin-left:auto;min-width:22px;height:20px;padding:0 6px;border-radius:var(--radius-pill);display:grid;place-items:center;background:var(--accent);color:#fff;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}

.nav-more{list-style:none;margin-top:10px}
.nav-more details{border-top:1px solid var(--line);padding-top:8px}
.nav-more summary{list-style:none;display:flex;align-items:center;gap:11px;min-height:38px;padding:0 12px;border-radius:var(--radius-control);color:var(--muted);font-weight:500;font-size:14px;cursor:pointer;user-select:none}
.nav-more summary .ui-icon{color:var(--muted-2)}
.nav-more summary::-webkit-details-marker{display:none}
.nav-more summary:hover{background:var(--surface-2);color:var(--ink)}
.nav-more summary::after{content:"";margin-left:auto;width:7px;height:7px;border-right:1.6px solid var(--muted-2);border-bottom:1.6px solid var(--muted-2);transform:rotate(45deg) translateY(-2px);transition:transform .15s}
.nav-more details[open] summary::after{transform:rotate(225deg) translateY(-2px)}
.nav-more-links{padding:2px 0 2px 8px}
.nav-more-links .nav-link{min-height:34px;font-size:13.5px}

.sidebar-footer{padding:10px;border-top:1px solid var(--line)}
.user-card{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:6px}
.user-avatar{width:36px;height:36px;border-radius:50%;background:var(--brand-soft);color:var(--brand-ink);display:grid;place-items:center;font-size:12.5px;font-weight:700}
.user-meta{min-width:0}
.user-name{display:block;color:var(--ink);font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.role-chip{display:block;color:var(--muted);font-size:12px;text-transform:capitalize}
.user-actions{display:flex;align-items:center;gap:2px}
.icon-btn{width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:var(--radius-control);background:transparent;color:var(--muted);cursor:pointer;text-decoration:none;transition:background .12s,color .12s}
.icon-btn:hover{background:var(--surface-3);color:var(--ink)}

/* Farbschema-Umschalter: zeigt jeweils das Ziel-Schema */
.theme-toggle .icon-sun{display:none}
:root[data-theme="dark"] .theme-toggle .icon-sun{display:inline-block}
:root[data-theme="dark"] .theme-toggle .icon-moon{display:none}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .theme-toggle .icon-sun{display:inline-block}
  :root:not([data-theme="light"]) .theme-toggle .icon-moon{display:none}
}

.sidebar-rail-toggle{position:fixed;z-index:135;top:calc(var(--topbar-h) - 14px);left:calc(var(--sidebar-w) - 14px);width:28px;height:28px;border-radius:50%;border:1px solid var(--line-strong);background:var(--surface);color:var(--muted);display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow-rest);transition:left .2s ease,color .12s,border-color .12s}
.sidebar-rail-toggle:hover{color:var(--brand-ink);border-color:var(--brand-line)}
.sidebar-rail-toggle .ui-icon{transform:rotate(180deg);transition:transform .2s ease}
body.sidebar-collapsed .sidebar-rail-toggle{left:calc(var(--sidebar-collapsed-w) - 14px)}
body.sidebar-collapsed .sidebar-rail-toggle .ui-icon{transform:rotate(0)}

.main-content{min-height:100vh;margin-left:var(--sidebar-w);transition:margin-left .2s ease}

/* Kopfzeile – Markenlinie Blau/Orange als einziges Signet */
.page-header{min-height:var(--topbar-h);padding:12px clamp(20px,2.6vw,40px);display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:70}
.page-header::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--brand) 0 84%,var(--accent) 84% 100%)}
.page-heading{min-width:0}
.page-kicker{color:var(--muted);font-size:12px;font-weight:500;margin-bottom:1px}
.page-header h1{font-size:21px;line-height:1.25;color:var(--ink);font-weight:600;letter-spacing:-.015em}
.page-subtitle{margin-top:2px;color:var(--muted);font-size:13px;max-width:78ch;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.page-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.page-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.header-theme-toggle{border:1px solid var(--line);background:var(--surface-2)}
.mobile-nav-toggle{display:none}
.sidebar-overlay{display:none}
.content-body{padding:24px clamp(20px,2.6vw,40px) 48px;max-width:1720px;margin:0 auto}
.app-footer{margin-top:32px;padding-top:14px;border-top:1px solid var(--line);color:var(--muted-2);font-size:12px;text-align:right}

/* Eingeklappte Navigation */
body.sidebar-collapsed .sidebar{width:var(--sidebar-collapsed-w)}
body.sidebar-collapsed .main-content{margin-left:var(--sidebar-collapsed-w)}
body.sidebar-collapsed .nav-label,body.sidebar-collapsed .nav-group,body.sidebar-collapsed .user-meta,body.sidebar-collapsed .nav-count{display:none}
body.sidebar-collapsed .sidebar-brand{padding:0;justify-content:center}
body.sidebar-collapsed .brand-logo-full{display:none}
body.sidebar-collapsed .brand-logo-collapsed{display:block}
body.sidebar-collapsed .nav-link,body.sidebar-collapsed .nav-more summary{justify-content:center;padding-left:0;padding-right:0}
body.sidebar-collapsed .nav-more summary::after,body.sidebar-collapsed .nav-more-links{display:none}
body.sidebar-collapsed .user-card{grid-template-columns:36px;justify-content:center}
body.sidebar-collapsed .user-actions{display:none}

/* ---------- Typografie & Hilfsklassen ---------- */
.eyebrow{font-size:12.5px;color:var(--muted);font-weight:500;margin-bottom:4px}
.section-title{font-size:16px;font-weight:600;margin:26px 0 12px;color:var(--ink)}
.text-info-brand{color:var(--brand-ink)!important}
.text-muted,.muted{color:var(--muted)!important}
.text-danger{color:var(--danger)!important}.text-success{color:var(--success)!important}.text-warning{color:var(--warning)!important}
.text-right,.right{text-align:right}.text-center{text-align:center}
.text-xs{font-size:12px}.text-sm{font-size:13px}.text-md{font-size:14px}
.mt-4{margin-top:4px}.mt-5{margin-top:5px}.mt-6{margin-top:6px}.mt-8{margin-top:8px}.mt-10{margin-top:10px}.mt-12{margin-top:12px}.mt-14{margin-top:14px}.mt-16{margin-top:16px}.mt-18{margin-top:18px}.mt-20{margin-top:20px}.mt-24{margin-top:24px}
.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-14{margin-bottom:14px}.mb-16{margin-bottom:16px}.mb-20{margin-bottom:20px}
.flex{display:flex}.inline-flex{display:inline-flex}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.flex-wrap{flex-wrap:wrap}
.gap-4{gap:4px}.gap-6{gap:6px}.gap-8{gap:8px}.gap-10{gap:10px}.gap-12{gap:12px}.gap-14{gap:14px}
.w-full{width:100%}.d-block{display:block}.float-right{float:right}
.stack-12{margin-top:12px}.stack-14{margin-top:14px}.stack-14-flex{margin-top:14px;display:flex;gap:8px}
.pre-wrap-xs{white-space:pre-wrap;font-size:12px}
.inline-center{display:flex;gap:8px;align-items:center}
.center-pad{padding:24px;text-align:center}
.max-w-400{max-width:400px}.w-100-center{width:100%;justify-content:center}
.list-line{padding:9px 0;border-bottom:1px solid var(--line-soft)}.list-line:last-child{border-bottom:0}
.brand-note{font-size:12px;color:var(--muted);margin-top:6px}
.sep{border:0;border-top:1px solid var(--line);margin:18px 0}
.inline-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}

/* ---------- Flächen ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-panel);padding:20px;margin-bottom:20px;box-shadow:var(--shadow-rest)}
.card-title{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--ink);font-size:15px;font-weight:600;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line-soft)}
.card-subtitle{font-size:12.5px;color:var(--muted);font-weight:400}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}

/* ---------- Dashboard ---------- */
.dashboard-welcome{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:20px}
.dashboard-welcome h2{font-size:24px;line-height:1.25;color:var(--ink);font-weight:600;letter-spacing:-.02em}
.dashboard-welcome p{margin-top:4px;color:var(--muted);font-size:14px;max-width:70ch}
.dashboard-date{font-size:13px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}

.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:20px}
.stat-card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-panel);padding:16px 18px;min-height:104px;box-shadow:var(--shadow-rest)}
.stat-card.warning{border-left:3px solid var(--accent)}
.stat-card.success{border-left:3px solid var(--success)}
.stat-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.stat-icon{width:34px;height:34px;border-radius:8px;background:var(--brand-soft);color:var(--brand-ink);display:grid;place-items:center}
.stat-card.warning .stat-icon{background:var(--accent-soft);color:var(--accent-ink)}
.stat-card.success .stat-icon{background:var(--success-bg);color:var(--success)}
.stat-label{font-size:13px;color:var(--muted);font-weight:500;margin-bottom:6px}
.stat-value{font-size:30px;line-height:1.05;font-weight:600;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}
.stat-value.primary{color:var(--brand-ink)}.stat-value.success{color:var(--success)}.stat-value.warning{color:var(--accent-ink)}.stat-value.danger{color:var(--danger)}
.stat-hint{font-size:12px;color:var(--muted-2);margin-top:8px}
.dashboard-primary-stats{grid-template-columns:repeat(4,minmax(0,1fr))}

.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:18px}
.kpi-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-panel);padding:14px 16px}
.kpi-card span{display:block;font-size:13px;color:var(--muted)}
.kpi-card strong{display:block;margin-top:6px;font-size:24px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}

.cockpit-card{display:flex;gap:14px;align-items:flex-start;min-height:132px}
.cockpit-icon{width:42px;height:42px;border-radius:9px;background:var(--brand-soft);color:var(--brand-ink);display:grid;place-items:center;flex:0 0 auto}
.cockpit-card h3{font-size:15px;margin-bottom:4px}.cockpit-card p{color:var(--muted);font-size:13px}

.dashboard-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.75fr);gap:18px}
.dashboard-stack{display:grid;gap:18px;align-content:start}.dashboard-stack .card{margin-bottom:0}
.dashboard-list{display:grid}
.dashboard-list-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 6px;margin:0 -6px;border-bottom:1px solid var(--line-soft);border-radius:6px;text-decoration:none;color:inherit}
.dashboard-list-item:last-child{border-bottom:0}
a.dashboard-list-item:hover{background:var(--surface-2)}
.dashboard-list-icon{width:34px;height:34px;border-radius:8px;background:var(--surface-2);border:1px solid var(--line);display:grid;place-items:center;color:var(--muted)}
.dashboard-list-main{min-width:0}
.dashboard-list-main strong{display:block;font-size:13.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-list-main span{display:block;font-size:12.5px;color:var(--muted);margin-top:1px}
.dashboard-list-meta{font-size:12px;color:var(--muted);white-space:nowrap}
.data-quality{display:grid}
.data-quality-item{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line-soft);font-size:13.5px}
.data-quality-item:last-child{border-bottom:0}
.quality-value{min-width:32px;text-align:center;padding:2px 9px;border-radius:var(--radius-pill);background:var(--surface-3);font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums}

.dashboard-tasks{border-top:3px solid var(--brand)}
.task-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.task-item{display:flex;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-panel);text-decoration:none;color:var(--text);background:var(--surface);transition:border-color .12s,background .12s}
.task-item>span{width:36px;height:36px;border-radius:8px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-ink);flex:0 0 auto}
.task-item strong{display:block;color:var(--ink);font-size:14px;font-weight:600}
.task-item small{display:block;color:var(--muted);font-size:12.5px;margin-top:1px}
.task-item:hover{border-color:var(--brand-line);background:var(--surface-2)}
.task-item.is-open{border-color:var(--accent-line);background:var(--accent-soft)}
.task-item.is-open>span{background:var(--surface);color:var(--accent-ink)}
.task-item.is-done>span{background:var(--success-bg);color:var(--success)}

.admin-hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.admin-hub-card{display:flex;align-items:center;gap:12px;min-height:76px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface);text-decoration:none;color:var(--text);transition:border-color .12s,background .12s}
.admin-hub-card:hover{border-color:var(--brand-line);background:var(--surface-2)}
.admin-hub-icon{width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto;border-radius:8px;background:var(--brand-soft);color:var(--brand-ink)}
.admin-hub-card strong{display:block;color:var(--ink);font-size:14px;font-weight:600}
.admin-hub-card small{display:block;color:var(--muted);font-size:12.5px;line-height:1.4;margin-top:2px}

/* ---------- Buttons ---------- */
.btn{min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:7px 14px;border-radius:var(--radius-control);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font-size:13.5px;font-weight:500;line-height:1.2;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .12s,border-color .12s,color .12s}
.btn:hover{background:var(--surface-2);border-color:var(--muted-2)}
.btn:active{background:var(--surface-3)}
.btn[disabled],.btn.disabled{opacity:.5;pointer-events:none}
.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}
.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:var(--on-primary)}
.btn-accent{background:var(--accent);border-color:var(--accent);color:#1a0d02}
.btn-accent:hover{background:#ff8c3b;border-color:#ff8c3b;color:#1a0d02}
.btn-success{background:var(--success);border-color:var(--success);color:#fff}
.btn-success:hover{filter:brightness(1.08);color:#fff}
.btn-danger{background:var(--surface);border-color:var(--danger-line);color:var(--danger)}
.btn-danger:hover{background:var(--danger-bg);border-color:var(--danger);color:var(--danger)}
.btn-ghost{background:transparent;border-color:transparent}
.btn-ghost:hover{background:var(--surface-3);border-color:transparent}
.btn-sm{min-height:30px;padding:4px 10px;font-size:12.5px}
.btn-lg{min-height:44px;padding:10px 18px;font-size:15px}
.btn .ui-icon{width:16px;height:16px}

/* ---------- Tabellen ---------- */
.table-wrap,.table-responsive{overflow:auto;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface)}
.card>.table-wrap,.card>.table-responsive{border-left:0;border-right:0;border-bottom:0;border-radius:0;margin:0 -20px -20px}
.card>.table-wrap table th:first-child,.card>.table-wrap table td:first-child{padding-left:20px}
.card>.table-wrap table th:last-child,.card>.table-wrap table td:last-child{padding-right:20px}
table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}
th{position:sticky;top:0;z-index:1;background:var(--surface-2);text-align:left;padding:9px 12px;color:var(--muted);font-size:12.5px;font-weight:600;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:10px 12px;border-bottom:1px solid var(--line-soft);vertical-align:middle;color:var(--text);font-variant-numeric:tabular-nums}
td strong{color:var(--ink);font-weight:600}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover td{background:var(--surface-2)}
table a:not(.btn){color:var(--brand-ink);font-weight:500;text-decoration:none}
table a:not(.btn):hover{text-decoration:underline}
.table-sub{display:block;color:var(--muted);font-size:12px}
td:first-child{min-width:170px}
td:first-child strong{white-space:nowrap}
td:has(> .btn),td:has(> form > .btn){white-space:nowrap}
td > .btn + .btn{margin-left:4px}
.card-title:has(+ .table-wrap),.card-title:has(+ .table-responsive){border-bottom:0;padding-bottom:0}
.kv{width:100%}.kv td{padding:8px 0;border-bottom:1px solid var(--line-soft)}
.kv td:first-child{width:190px;color:var(--muted)}
.kv tr:hover td{background:transparent}

/* ---------- Formulare ---------- */
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.form-grid.single{grid-template-columns:1fr}
.form-grid.triple{grid-template-columns:repeat(3,minmax(0,1fr))}
.form-group{display:flex;flex-direction:column;gap:5px}
.form-group.span2{grid-column:span 2}
label{font-size:13px;font-weight:500;color:var(--text)}
input,select,textarea{width:100%;min-height:38px;padding:7px 11px;border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--field-bg);color:var(--ink);font-size:14px;outline:none;transition:border-color .12s,box-shadow .12s}
input:hover,select:hover,textarea:hover{border-color:var(--muted-2)}
input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:var(--focus-ring)}
input::placeholder,textarea::placeholder{color:var(--muted-2)}
input[type=checkbox],input[type=radio]{width:17px;height:17px;min-height:0;padding:0;accent-color:var(--primary);vertical-align:-3px}
input[type=file]{padding:6px}
input:disabled,select:disabled,textarea:disabled{background:var(--surface-3);color:var(--muted);cursor:not-allowed}
select option{background:var(--surface);color:var(--ink)}
textarea{min-height:96px;resize:vertical;line-height:1.5}
.form-help,.form-hint,.required-note{font-size:12.5px;color:var(--muted);line-height:1.45}
.form-mono{min-height:420px;font-family:var(--mono);font-size:13px}
.filter-bar,.toolbar,.todo-filter form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.filter-bar form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;width:100%}
.filter-bar input,.filter-bar select,.toolbar input,.toolbar select,.todo-filter input,.todo-filter select{width:auto;min-width:170px}
.filter-bar .search-input,.toolbar input[name=q],.todo-filter .search-input{flex:1;min-width:220px}
.inline-edit{display:grid;gap:8px;margin-top:8px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-2)}
.inline-edit label{display:grid;gap:4px}
.rating-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 0;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}
.rating-row>div{display:flex;gap:6px}
.rating-choice{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid var(--line-strong);border-radius:var(--radius-control);cursor:pointer;font-variant-numeric:tabular-nums}
.rating-choice:has(input:checked){border-color:var(--brand);background:var(--brand-soft);color:var(--brand-ink)}
input.missing{border-color:var(--warning-line)}

/* ---------- Status-Badges ---------- */
.badge,.chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:var(--radius-pill);font-size:12px;font-weight:500;line-height:1.35;border:1px solid transparent;white-space:nowrap}
.badge{background:var(--surface-3);color:var(--text)}
.chip{background:var(--surface-2);border-color:var(--line);color:var(--muted)}
.chip.selected{background:var(--brand-soft);border-color:var(--brand-line);color:var(--brand-ink)}
.badge-aktiv,.badge-anwesend,.badge-durchgefuehrt,.badge-abg{background:var(--success-bg);color:var(--success);border-color:var(--success-line)}
.badge-pause,.badge-entschuldigt,.badge-warn,.badge-verschoben{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-line)}
.badge-abbruch,.badge-krank,.badge-unentschuldigt,.badge-ausgefallen,.badge-danger{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-line)}
.badge-urlaub{background:var(--violet-bg);color:var(--violet)}
.badge-geplant,.badge-info{background:var(--info-bg);color:var(--info);border-color:var(--info-line)}
.badge-stars{background:transparent;color:var(--warning);letter-spacing:1px}
.tiny-warning{font-size:11.5px;color:var(--warning)}

/* ---------- Hinweise ---------- */
.alert{padding:11px 14px;border-radius:var(--radius-control);margin-bottom:16px;font-size:13.5px;border:1px solid;border-left-width:3px;display:flex;gap:9px;align-items:flex-start;transition:opacity .35s}
.alert-success{background:var(--success-bg);color:var(--success);border-color:var(--success-line);border-left-color:var(--success)}
.alert-danger{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-line);border-left-color:var(--danger)}
.alert-info{background:var(--info-bg);color:var(--info);border-color:var(--info-line);border-left-color:var(--brand)}
.alert-warning{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-line);border-left-color:var(--warning)}
.alert strong{color:inherit}
.audit-note{border-left:3px solid var(--brand);background:var(--brand-soft);padding:11px 14px;border-radius:0 var(--radius-control) var(--radius-control) 0;color:var(--text);font-size:13px}
.audit-note strong{color:var(--ink)}
.empty-state{text-align:center;padding:26px;color:var(--muted);border:1px dashed var(--line-strong);border-radius:var(--radius-panel);background:var(--surface-2);font-size:13.5px}

/* ---------- Listen, Akten, Module ---------- */
.clean-list{list-style:none;padding:0;display:grid}.clean-list li{padding:9px 0;border-bottom:1px solid var(--line-soft)}.clean-list li:last-child{border-bottom:0}
.detail-list{display:grid}
.detail-list>div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line-soft);font-size:13.5px}
.detail-list>div:last-child{border-bottom:0}
.detail-list span{color:var(--muted)}
.detail-list strong{color:var(--ink);font-weight:500;text-align:right}
.profile-head{display:flex;justify-content:space-between;align-items:center;gap:20px}
.profile-head h2{font-size:22px;margin-bottom:4px}
.page-subnav{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px;position:sticky;top:calc(var(--topbar-h) + 1px);z-index:35;background:var(--bg);padding:8px 0}
.page-subnav a{text-decoration:none;color:var(--muted);background:var(--surface);border:1px solid var(--line);padding:5px 11px;border-radius:var(--radius-pill);font-size:13px;font-weight:500}
.page-subnav a:hover{color:var(--brand-ink);border-color:var(--brand-line);background:var(--brand-soft)}
.participation-strip{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px}
.participation-card{min-width:220px;max-width:310px;border:1px solid var(--line);border-radius:var(--radius-panel);padding:13px;color:var(--text);text-decoration:none;background:var(--surface)}
.participation-card:hover{border-color:var(--brand-line)}
.participation-card.selected{border-color:var(--brand);background:var(--brand-soft)}
.mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.mini-grid>div{border:1px solid var(--line);background:var(--surface-2);border-radius:var(--radius-control);padding:9px 11px;display:flex;justify-content:space-between;gap:8px;font-variant-numeric:tabular-nums}
.progress,.progress-bar{width:100%;height:6px;background:var(--surface-3);border-radius:var(--radius-pill);overflow:hidden}
.progress>span,.progress-bar>span,.progress-bar>div{display:block;height:100%;background:var(--brand);border-radius:var(--radius-pill)}
.portal-progress{margin-top:5px}
.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}
.module-card{border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface);overflow:hidden;display:flex}
.module-color{width:5px;flex:0 0 5px}
.module-body{padding:14px;flex:1}
.chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.completeness{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:500}
.completeness.ok{color:var(--success)}.completeness.open{color:var(--warning)}

/* ---------- Stundenplan & Anwesenheit ---------- */
.week-grid{display:grid;grid-template-columns:repeat(5,minmax(170px,1fr));gap:8px;overflow-x:auto}
.week-day{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-panel);padding:10px;min-height:220px}
.week-day-title{font-size:13px;font-weight:600;color:var(--ink);margin-bottom:8px}
.schedule-block{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:var(--radius-control);padding:8px 9px;margin-bottom:7px;font-size:12.5px}
.schedule-block strong{display:block;font-size:13px;color:var(--ink);margin-bottom:2px}
.lesson-card{display:grid;grid-template-columns:92px 1fr auto;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line-soft)}
.lesson-card:last-child{border-bottom:0}
.lesson-date{text-align:center;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-control);padding:8px}
.lesson-date strong{display:block;font-size:19px;color:var(--ink);font-variant-numeric:tabular-nums}
.lesson-date span{font-size:12px;color:var(--muted)}
.attendance-row{display:grid;grid-template-columns:minmax(180px,1.6fr) 110px 110px 160px minmax(160px,1fr);gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line-soft)}
.attendance-row.header{font-size:12.5px;font-weight:600;color:var(--muted);background:var(--surface-2);padding:8px 10px;border-radius:var(--radius-control);border-bottom:0}
.attendance-row input,.attendance-row select{width:100%}

/* ---------- Kalender ---------- */
.calendar-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.calendar-toolbar h2{margin:0 auto 0 0;font-size:18px}
.calendar-scroll{overflow-x:auto}
.p6-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius-panel);overflow:hidden}
.calendar-weekday{background:var(--surface-2);padding:8px;text-align:center;font-weight:600;font-size:12.5px;color:var(--muted)}
.calendar-day{min-height:140px;background:var(--surface);padding:8px;overflow:hidden}
.calendar-day.empty{background:var(--surface-2)}
.calendar-day.today{box-shadow:inset 0 0 0 2px var(--brand)}
.calendar-date{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink)}
.calendar-lesson,.calendar-marker{display:block;text-decoration:none;color:inherit;margin:4px 0;padding:5px 7px;border-radius:5px;font-size:12px;line-height:1.35}
.calendar-lesson{background:var(--brand-soft);border-left:3px solid var(--brand)}
.calendar-marker{background:var(--warning-bg);color:var(--warning)}
.calendar-time{font-variant-numeric:tabular-nums;color:var(--muted);font-size:11.5px}
.calendar-todo{display:block;text-decoration:none;color:inherit;margin:4px 0;padding:5px 7px;border-radius:5px;font-size:12px;line-height:1.35;background:var(--surface-3);border-left:3px solid var(--muted)}
.calendar-todo strong{display:block}
.calendar-todo small{display:block;color:var(--muted);margin-top:2px}
.calendar-todo.priority-dringend{border-left-color:var(--danger);background:var(--danger-bg)}
.calendar-todo.priority-hoch{border-left-color:var(--warning);background:var(--warning-bg)}
.calendar-todo.priority-normal{border-left-color:var(--brand);background:var(--brand-soft)}
.calendar-todo.priority-niedrig{border-left-color:var(--success);background:var(--success-bg)}

/* ---------- Seitennavigation ---------- */
.pagination{display:flex;gap:4px;align-items:center;margin-top:16px;justify-content:flex-end}
.page-btn{min-width:34px;height:34px;display:grid;place-items:center;padding:4px 9px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);cursor:pointer;font-size:13px;color:var(--text);text-decoration:none;font-variant-numeric:tabular-nums}
.page-btn.active{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}
.page-btn:hover:not(.active){background:var(--surface-2)}

/* ---------- Feedback-Bewertung 1–5 ---------- */
.score-critical{--score:var(--score-critical)}.score-low{--score:var(--score-low)}.score-medium{--score:var(--score-medium)}.score-good{--score:var(--score-good)}.score-excellent{--score:var(--score-excellent)}
.feedback-score-max{font-size:14px;font-weight:600;opacity:.8}
.feedback-overview-stars{margin-top:4px;font-size:17px;letter-spacing:2px;line-height:1;white-space:nowrap;color:var(--score,var(--muted))}
.feedback-badge-stars{font-size:12px;letter-spacing:1px;line-height:1;white-space:nowrap}
.feedback-score-caption{margin-top:8px;font-size:12px;font-weight:600;color:var(--score,var(--muted))}
.feedback-score-value{color:var(--score,var(--ink))!important}
.feedback-score-card{border-left:3px solid var(--score,var(--line))}
.feedback-score-badge{display:inline-flex;align-items:center;gap:8px;padding:4px 10px;border-radius:var(--radius-pill);white-space:nowrap;font-size:12px;line-height:1.2;color:var(--score);background:var(--surface-2);border:1px solid var(--line)}
.feedback-score-badge small{font-size:11px;opacity:.85}
.feedback-line{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid var(--line-soft)}
.feedback-line>span{font-weight:500;color:var(--text)}
.feedback-detail-rating{display:flex;align-items:center;gap:12px;text-align:right;color:var(--score,var(--text))}
.feedback-stars{font-size:21px;letter-spacing:2px;line-height:1;white-space:nowrap}
.feedback-detail-score{font-size:12px;font-weight:600;white-space:nowrap}

/* ---------- Firmen & Praktika ---------- */
.pb-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.pb-editor-grid{align-items:start}
.pb-contact{padding:11px 0;border-bottom:1px solid var(--line-soft);font-size:13px;line-height:1.5}.pb-contact:last-child{border-bottom:0}
.firm-tabs,.todo-tabs{display:flex;gap:6px;overflow-x:auto;padding:2px 0 4px;margin:0 0 16px;scrollbar-width:thin}
.firm-tab,.todo-tab{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;text-decoration:none;padding:6px 12px;border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--surface);color:var(--muted);font-size:13px;font-weight:500;transition:border-color .12s,color .12s}
.firm-tab b,.todo-tab b{min-width:22px;height:20px;padding:0 6px;display:grid;place-items:center;border-radius:var(--radius-pill);background:var(--surface-3);color:var(--text);font-size:11.5px;font-weight:600;font-variant-numeric:tabular-nums}
.firm-tab:hover,.todo-tab:hover{border-color:var(--brand-line);color:var(--ink)}
.firm-tab.active,.todo-tab.active{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-ink)}
.firm-tab.active b,.todo-tab.active b{background:var(--accent);color:#fff}
.firm-row-overdue td{background:var(--accent-soft)!important}
.firm-row-overdue td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
.selection-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;background:var(--surface-2);border:1px solid var(--line);border-bottom:0;border-radius:var(--radius-panel) var(--radius-panel) 0 0}
.selection-bar label{display:flex;align-items:center;gap:8px;font-size:13px}
.selection-bar input[type=checkbox],.firm-check{width:17px;height:17px}

.firm-hero,.todo-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px;margin-bottom:16px;border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:var(--radius-panel);background:var(--surface)}
.firm-hero-main{display:flex;align-items:center;gap:16px}
.firm-logo-orb{width:54px;height:54px;border-radius:10px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-ink);font-size:22px;font-weight:700}
.firm-hero h2,.todo-hero h2{font-size:22px;margin:0}
.todo-hero p{color:var(--muted);margin-top:4px}
.firm-hero-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:6px;color:var(--muted);font-size:13px}
.firm-hero-actions{display:flex;gap:8px;flex-wrap:wrap}
.todo-hero-number{min-width:120px;text-align:center}
.todo-hero-number strong{display:block;font-size:34px;font-weight:600;color:var(--brand-ink);line-height:1;font-variant-numeric:tabular-nums}
.todo-hero-number span{display:block;font-size:12px;color:var(--muted);margin-top:5px}
.firm-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.firm-metric{padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface)}
.firm-metric span{display:block;color:var(--muted);font-size:13px}
.firm-metric strong{display:block;color:var(--ink);font-size:26px;font-weight:600;line-height:1.15;margin:6px 0 3px;font-variant-numeric:tabular-nums}
.firm-metric strong.firm-metric-text{font-size:16px}
.firm-metric small{color:var(--muted-2);font-size:12px}
.firm-overview-grid{margin-bottom:16px}.firm-info-card{margin-bottom:0}
.firm-live-dot{width:9px;height:9px;border-radius:50%;background:var(--success)}
.firm-note-card{border-left:3px solid var(--accent)}
.firm-note-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.firm-note-grid>div{padding:12px;border-radius:var(--radius-control);background:var(--surface-2);border:1px solid var(--line)}
.firm-note-grid span{display:block;color:var(--muted);font-size:12.5px;font-weight:500;margin-bottom:6px}
.firm-note-grid p{color:var(--text);font-size:13.5px;line-height:1.6}
.firm-accordion{padding:0!important;overflow:hidden}
.firm-accordion>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 20px;color:var(--ink);font-weight:600}
.firm-accordion>summary::-webkit-details-marker{display:none}
.firm-accordion>summary span:first-child{display:flex;flex-direction:column}
.firm-accordion>summary small{color:var(--muted);font-size:12.5px;font-weight:400;margin-top:1px}
.firm-accordion-arrow{font-size:18px;color:var(--muted);transition:transform .15s}
.firm-accordion[open] .firm-accordion-arrow{transform:rotate(180deg)}
.firm-accordion-body{padding:18px 20px 20px;border-top:1px solid var(--line)}
.contact-workspace{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(420px,1.2fr);gap:20px}
.contact-compose{padding:15px;border-radius:var(--radius-panel);background:var(--surface-2);border:1px solid var(--line)}
.contact-timeline{position:relative;padding-left:20px}
.contact-timeline::before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:2px;background:var(--line)}
.contact-timeline-item{position:relative;padding:0 0 18px 12px}
.contact-dot{position:absolute;left:-20px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 3px var(--surface)}
.contact-time{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--ink)}
.contact-time span{color:var(--muted);font-size:12px}
.contact-timeline-item p{color:var(--text);margin-top:4px;font-size:13.5px;line-height:1.55}
.contact-timeline-item small{color:var(--accent-ink)}

/* ---------- Mailings ---------- */
.mailing-layout{display:grid;grid-template-columns:minmax(300px,.75fr) minmax(520px,1.25fr);gap:16px;align-items:start}
.recipient-list{max-height:520px;overflow:auto;border-top:1px solid var(--line);margin-top:12px}
.recipient-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:9px 2px;border-bottom:1px solid var(--line-soft)}
.recipient-row strong{display:block;font-size:13.5px;color:var(--ink)}
.recipient-row span:not(.badge){display:block;color:var(--muted);font-size:12.5px;margin-top:1px}
.mail-template{min-height:390px;line-height:1.55}
.placeholder-help{margin-top:10px;font-size:12.5px;color:var(--muted);line-height:1.9}
.placeholder-help code{display:inline-block;padding:1px 6px;border-radius:4px;background:var(--surface-3);color:var(--ink);margin:1px}
.mail-preview{margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-2)}
.mail-preview>strong{font-size:12.5px;color:var(--muted);font-weight:500}
.mail-preview-subject{font-weight:600;color:var(--ink);margin:8px 0 10px}
.mail-preview pre{white-space:pre-wrap;font:13px/1.55 var(--font);color:var(--text);margin:0;max-height:300px;overflow:auto}

/* ---------- To-dos ---------- */
.todo-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.todo-editor,.todo-dashboard-card{border-top:3px solid var(--brand)}
.todo-assignment-box{margin-top:18px;padding:14px;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-2)}
.todo-assignment-head strong{display:block;color:var(--ink)}
.todo-assignment-head span{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
.todo-user-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:8px;margin-top:12px}
.todo-user-card{display:block;padding:11px 12px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);transition:border-color .12s}
.todo-user-card:hover{border-color:var(--brand-line)}
.todo-user-card:has(.todo-user-main input:checked){border-color:var(--brand);background:var(--brand-soft)}
.todo-user-main{display:flex;align-items:center;gap:9px}
.todo-user-main strong{display:block;color:var(--ink);font-size:13.5px}
.todo-user-main small{display:block;color:var(--muted);font-size:12px}
.todo-permissions{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0 0 26px}
.todo-permissions span{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:12px}
.todo-permissions input{width:15px;height:15px;accent-color:var(--accent)}
.todo-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px}
.todo-card{position:relative;padding:15px 16px 14px 18px;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface);overflow:hidden;transition:border-color .12s}
.todo-card:hover{border-color:var(--line-strong)}
.todo-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--line-strong)}
.todo-card.priority-hoch::before{background:var(--accent)}
.todo-card.priority-dringend::before{background:var(--danger)}
.todo-card.priority-niedrig::before{background:var(--success)}
.todo-card.is-done{opacity:.68}.todo-card.is-done h3{text-decoration:line-through}
.todo-card.is-overdue{border-color:var(--danger-line)}
.todo-card-top{display:flex;gap:10px;align-items:flex-start}
.todo-priority-dot{width:9px;height:9px;border-radius:50%;background:var(--muted-2);margin-top:7px;flex:0 0 auto}
.priority-hoch .todo-priority-dot{background:var(--accent)}.priority-dringend .todo-priority-dot{background:var(--danger)}.priority-niedrig .todo-priority-dot{background:var(--success)}
.todo-title{min-width:0;flex:1}
.todo-title h3{font-size:15px;line-height:1.35}
.todo-meta{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:7px}
.todo-due{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.todo-due.danger{color:var(--danger);font-weight:600}
.todo-description{margin:12px 0;color:var(--text);font-size:13.5px;line-height:1.55}
.todo-people{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:var(--radius-control);background:var(--surface-2);color:var(--muted);font-size:12px}
.todo-people b{color:var(--text);font-weight:600}
.todo-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:12px}
.todo-actions form{display:inline-flex}
.todo-status-offen{background:var(--info-bg)!important;color:var(--info)!important}
.todo-status-in_arbeit{background:var(--warning-bg)!important;color:var(--warning)!important}
.todo-status-erledigt{background:var(--success-bg)!important;color:var(--success)!important}
.todo-priority-dringend{background:var(--danger-bg)!important;color:var(--danger)!important}
.todo-priority-hoch{background:var(--accent-soft)!important;color:var(--accent-ink)!important}
.todo-priority-normal{background:var(--surface-3)!important;color:var(--text)!important}
.todo-priority-niedrig{background:var(--success-bg)!important;color:var(--success)!important}
.todo-empty{grid-column:1/-1;text-align:center;padding:44px 20px;border:1px dashed var(--line-strong);border-radius:var(--radius-panel);background:var(--surface-2)}
.todo-empty strong{display:block;color:var(--ink);font-size:17px}
.todo-empty span{display:block;color:var(--muted);margin:5px 0 15px}
.todo-dashboard-row{text-decoration:none}
.todo-detail-fieldset{border:0;margin:0;padding:0;min-width:0}
.todo-detail-fieldset:disabled{opacity:.6}

/* ---------- Kooperationen & Aufträge (vorher als <style> in den Seiten) ---------- */
.ko-flow{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0 20px}
.ko-step{padding:16px;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface);color:var(--text)}
.ko-step strong{color:var(--ink)}
.ko-step .n{width:28px;height:28px;border-radius:50%;display:inline-grid;place-items:center;background:var(--primary);color:var(--on-primary);font-weight:600;margin-right:8px;font-variant-numeric:tabular-nums}
.ko-summary{display:grid;grid-template-columns:1.3fr .7fr;gap:16px}
.ko-money{font-size:2rem;font-weight:600;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}
.ko-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.ko-panel{scroll-margin-top:90px}
.ko-panel summary{cursor:pointer;font-weight:600;color:var(--ink)}
.ko-simple-list{display:grid;gap:10px}
.ko-simple-row{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--line-soft)}
.ko-simple-row:last-child{border-bottom:0}
.ko-invoice-preview{border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:var(--radius-panel);padding:18px;background:var(--surface);color:var(--text)}
.ko-invoice-preview strong{color:var(--ink)}
.ko-invoice-preview .total{font-size:1.6rem;font-weight:600;margin-top:10px;color:var(--ink);font-variant-numeric:tabular-nums}
.ko-help{padding:12px 14px;border-radius:var(--radius-control);background:var(--surface-2);border:1px solid var(--line);color:var(--text)}
.ko-help strong{color:var(--ink)}
.ko-secondary{opacity:.88}
.ko-hero{display:grid;grid-template-columns:1.4fr .9fr;gap:18px;margin-bottom:18px}
.ko-maincard{padding:22px}
.ko-maincard h2{margin:0 0 6px;font-size:1.35rem}
.ko-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.ko-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--line);color:var(--text);font-size:13px}
.ko-order-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.ko-order{border:1px solid var(--line);border-radius:var(--radius-panel);padding:18px;background:var(--surface);color:var(--text)}
.ko-order h3{margin:0 0 4px;font-size:1.05rem}
.ko-order .amount{font-size:1.25rem;font-weight:600;margin-top:12px;color:var(--ink);font-variant-numeric:tabular-nums}
.ko-empty{padding:28px;text-align:center}
.ko-new summary{cursor:pointer;list-style:none}
.ko-new summary::-webkit-details-marker{display:none}
.ko-new summary .btn{pointer-events:none}
@media (max-width:900px){.ko-flow,.ko-summary,.ko-hero,.ko-order-grid{grid-template-columns:1fr}.ko-simple-row{flex-direction:column;gap:4px}}

/* ---------- Anmeldung ---------- */
.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(380px,1.1fr) minmax(440px,.9fr);background:var(--bg)}
.auth-brand-panel{position:relative;padding:clamp(36px,5vw,72px);background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;gap:40px}
.auth-brand-panel::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--brand) 0 84%,var(--accent) 84% 100%)}
.auth-brand{display:flex;align-items:center;gap:13px}
.auth-brand-copy strong{font-size:18px;color:var(--ink)}.auth-brand-copy span{display:block;color:var(--muted);font-size:12px}
.auth-message{max-width:560px}
.auth-message .eyebrow{color:var(--brand-ink)}
.auth-message h1{font-size:clamp(34px,3.6vw,50px);line-height:1.08;letter-spacing:-.03em;font-weight:600;color:var(--ink)}
.auth-message h1 span{color:var(--muted)}
.auth-message p{margin-top:18px;color:var(--muted);font-size:15.5px;line-height:1.65;max-width:52ch}
.auth-points{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:32px;border-top:1px solid var(--line)}
.auth-point{padding:14px 16px 0 0}
.auth-point+.auth-point{padding-left:16px;border-left:1px solid var(--line)}
.auth-point strong{display:block;font-size:14px;color:var(--ink);font-weight:600}
.auth-point span{display:block;font-size:13px;color:var(--muted);margin-top:2px}
.auth-foot{color:var(--muted-2);font-size:12px}
.auth-form-panel{display:grid;place-items:center;padding:36px}
.login-card{width:min(420px,100%);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:32px;box-shadow:var(--shadow-pop)}
.login-brand-mini{display:none;margin-bottom:22px}
.login-title{font-size:24px;font-weight:600;letter-spacing:-.02em;color:var(--ink)}
.login-sub{color:var(--muted);font-size:14px;margin-top:6px;margin-bottom:24px}
.login-help{margin-top:18px;padding-top:15px;border-top:1px solid var(--line);color:var(--muted);font-size:12.5px;line-height:1.5}
.auth-switch{text-align:center;margin-top:14px;font-size:13.5px}
.auth-switch a{color:var(--brand-ink);text-decoration:none;font-weight:500}
.auth-switch a:hover{text-decoration:underline}

/* ---------- Teilnehmerportal ---------- */
.portal-body{background:var(--bg);min-height:100vh}
.portal-topbar{min-height:68px;background:var(--surface);border-bottom:1px solid var(--line);padding:0 clamp(16px,4vw,48px);display:flex;justify-content:space-between;align-items:center;gap:12px;position:sticky;top:0;z-index:50}
.portal-topbar::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--brand) 0 84%,var(--accent) 84% 100%)}
.portal-brand{display:flex;align-items:center;gap:11px;font-weight:600;color:var(--ink)}
.portal-brand-copy{display:flex;flex-direction:column;line-height:1.15}
.portal-brand-copy span{font-size:12px;color:var(--muted)}
.portal-shell{max-width:1240px;margin:0 auto;padding:24px clamp(16px,3vw,34px) 56px}
.portal-hero{position:relative;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:var(--radius-panel);padding:24px 26px;margin-bottom:18px}
.portal-hero .eyebrow{color:var(--brand-ink)}
.portal-hero h1{font-size:26px;letter-spacing:-.02em;margin-bottom:6px}
.portal-hero p{color:var(--muted)}
.portal-participation-switch{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 16px}
.portal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:16px}
.portal-tabs{display:flex;flex-wrap:wrap;gap:2px;margin:18px 0;border-bottom:1px solid var(--line)}
.portal-tab{border:0;background:transparent;padding:10px 14px;margin-bottom:-1px;border-bottom:2px solid transparent;cursor:pointer;color:var(--muted);font-size:14px;font-weight:500;transition:color .12s,border-color .12s}
.portal-tab:hover{color:var(--ink)}
.portal-tab.active{color:var(--brand-ink);border-bottom-color:var(--brand)}
.portal-panel{display:none}.portal-panel.active{display:block}
.portal-shell .stat-grid{grid-template-columns:repeat(4,minmax(150px,1fr))}
.portal-document-row,.portal-list-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line-soft)}
.portal-document-row:last-child,.portal-list-row:last-child{border-bottom:0}
.portal-copy-xs{font-size:12px;margin-top:8px}.portal-copy-sm{font-size:13px}
.portal-context{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px;margin:0 0 18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-panel)}
.portal-context-item{min-width:0}
.portal-context-item span{display:block;font-size:12.5px;color:var(--muted)}
.portal-context-item strong{display:block;margin-top:2px;color:var(--ink);font-size:14px;font-weight:600}
.portal-admin-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:var(--brand-soft);border:1px solid var(--brand-line);border-radius:var(--radius-panel);padding:12px 16px;margin-bottom:18px}
.portal-admin-main{display:flex;align-items:center;gap:12px;min-width:0}
.portal-admin-icon{width:38px;height:38px;border-radius:8px;display:grid;place-items:center;background:var(--surface);color:var(--brand-ink);flex:0 0 auto}
.portal-admin-title{font-weight:600;color:var(--ink)}
.portal-admin-meta{font-size:12.5px;color:var(--muted);margin-top:1px}
.portal-admin-actions{display:flex;gap:7px;flex-wrap:wrap}

/* ---------- Responsiv ---------- */
@media (max-width:1260px){
  .dashboard-layout{grid-template-columns:1fr}
  .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-primary-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .task-grid,.admin-hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mailing-layout{grid-template-columns:1fr}
}
@media (max-width:1100px){
  .firm-metric-grid,.todo-stat-grid,.pb-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .contact-workspace{grid-template-columns:1fr}
}
@media (max-width:980px){
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
  .attendance-row{grid-template-columns:1fr 90px 90px}
  .attendance-row>*:nth-child(4),.attendance-row>*:nth-child(5){grid-column:span 3}
  .auth-page{grid-template-columns:1fr}
  .auth-brand-panel{display:none}
  .login-brand-mini{display:flex;align-items:center;gap:10px}
  .auth-form-panel{min-height:100vh}
  .portal-shell .stat-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}
}
@media (max-width:860px){
  .main-content,body.sidebar-collapsed .main-content{margin-left:0}
  .sidebar{width:min(300px,88vw);transform:translateX(-102%);box-shadow:var(--shadow-pop)}
  body.sidebar-collapsed .sidebar{width:min(300px,88vw)}
  body.sidebar-collapsed .nav-label,body.sidebar-collapsed .nav-group,body.sidebar-collapsed .user-meta{display:initial}
  .sidebar.open{transform:translateX(0)}
  .sidebar-overlay.open{display:block;position:fixed;inset:0;background:var(--overlay);z-index:110}
  .sidebar-rail-toggle{display:none!important}
  .mobile-nav-toggle{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);color:var(--ink);cursor:pointer;flex:0 0 auto}
  .page-header{padding:12px 16px;min-height:64px;gap:12px}
  .page-heading{flex:1}
  .page-subtitle{white-space:normal}
  .content-body{padding:18px 16px 40px}
  .form-grid,.form-grid.triple{grid-template-columns:1fr}
  .form-group.span2{grid-column:auto}
  .profile-head{align-items:flex-start;flex-direction:column}
  .p6-calendar{min-width:760px}
  .dashboard-welcome{align-items:flex-start;flex-direction:column}
  .auth-form-panel{padding:20px}
  .firm-hero,.todo-hero{align-items:flex-start;flex-direction:column}
}
@media (max-width:760px){
  .dashboard-primary-stats,.task-grid,.admin-hub-grid,.firm-metric-grid,.todo-stat-grid,.pb-stat-grid,.todo-board,.todo-user-grid,.firm-note-grid{grid-template-columns:1fr}
  .firm-hero-actions{width:100%}
  .filter-bar input,.filter-bar select,.toolbar input,.toolbar select{min-width:0;flex:1 1 160px}
}
@media (max-width:620px){
  .stat-grid,.portal-shell .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat-card{min-height:92px;padding:13px 14px}
  .stat-value{font-size:24px}
  .page-actions{width:100%}
  .page-header{flex-wrap:wrap}
  .week-grid{grid-template-columns:repeat(5,minmax(220px,1fr))}
  .login-card{padding:24px 20px}
  .portal-topbar .text-muted{display:none}
  .portal-hero{padding:20px}
  .portal-tabs{overflow-x:auto;flex-wrap:nowrap}
  .portal-tab{white-space:nowrap}
  .portal-context{grid-template-columns:1fr}
  .portal-admin-actions{width:100%}
  .portal-admin-actions .btn{flex:1}
  .feedback-line{align-items:flex-start;flex-direction:column;gap:8px}
  .feedback-detail-rating{width:100%;justify-content:space-between;text-align:left}
}
@media (max-width:340px){.stat-grid,.portal-shell .stat-grid{grid-template-columns:1fr}}
@media (max-width:420px){
  .content-body,.portal-shell{padding-left:12px;padding-right:12px}
  .page-header h1{font-size:18px}
}

/* ---------- Druck ---------- */
@media print{
  :root{color-scheme:light}
  body{background:#fff;color:#000}
  .sidebar,.sidebar-rail-toggle,.page-header::before,.portal-topbar,.btn,.page-subnav,.mobile-nav-toggle,.app-footer{display:none!important}
  .main-content{margin:0!important}
  .page-header{position:static;border:0;padding:0 0 12px}
  .content-body,.portal-shell{max-width:none;padding:0}
  .card,.stat-card{box-shadow:none;break-inside:avoid;border-color:#ccc}
}
@media print{
  :root:root:root{--bg:#fff;--surface:#fff;--surface-2:#f5f5f5;--surface-3:#eee;--ink:#000;--text:#111;--muted:#555;--muted-2:#777;--line:#ccc;--line-soft:#ddd;--line-strong:#bbb;--field-bg:#fff;--brand-ink:#0b4f96;--brand-soft:#eef4fb}
}

/* ========================================================================
   WAGA P10.1 compatibility layer
   Neuere Verwaltungsbausteine aus P9.6–P10 bleiben mit Design System 2.0
   in Hell und Dunkel lesbar. Keine Fachlogik.
   ======================================================================== */
.ko-danger-zone{border:1px solid var(--danger-line)!important;background:var(--surface)!important}
.ko-danger-zone summary{cursor:pointer;color:var(--danger);font-weight:600}.ko-danger-zone form{display:inline-flex}

.calendar-page .card{background:var(--surface)!important;border-color:var(--line)!important}
.calendar-page .calendar-toolbar h2{color:var(--ink)!important}
.calendar-page .p6-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--line)!important;border:1px solid var(--line-strong)!important;border-radius:var(--radius-panel);overflow:hidden;box-shadow:var(--shadow-rest)!important}
.calendar-page .calendar-weekday{background:var(--surface-2)!important;color:var(--muted)!important;padding:11px 8px;text-align:center;font-weight:700;font-size:10px;text-transform:uppercase;letter-spacing:.05em}
.calendar-page .calendar-day{min-height:145px;background:var(--surface)!important;color:var(--text)!important;padding:8px;overflow:hidden}
.calendar-page .calendar-day:nth-child(odd){background:var(--surface-2)!important}.calendar-page .calendar-day.empty{background:var(--surface-3)!important}
.calendar-page .calendar-day.today{background:var(--brand-soft)!important;box-shadow:inset 0 0 0 2px var(--brand)!important}
.calendar-page .calendar-date strong{color:var(--muted)!important;font-size:12px}.calendar-page .calendar-day.today .calendar-date strong{color:var(--brand-ink)!important}
.calendar-page .calendar-date .chip{background:var(--surface-3)!important;border-color:var(--line-strong)!important;color:var(--text)!important}
.calendar-page .calendar-lesson,.calendar-page .calendar-marker{display:block;text-decoration:none;margin:4px 0;padding:7px 8px;border-radius:9px;font-size:10.5px;border:1px solid var(--line-strong)!important;box-shadow:none!important}
.calendar-page .calendar-lesson{background:var(--brand-soft)!important;color:var(--text)!important}.calendar-page .calendar-lesson:hover{border-color:var(--brand-line)!important}
.calendar-page .calendar-marker{background:var(--accent-soft)!important;color:var(--accent-ink)!important;border-color:var(--accent-line)!important}
.calendar-page .calendar-time{color:var(--brand-ink)!important;font-weight:700}.calendar-page .calendar-lesson strong{color:var(--ink)!important}.calendar-page .calendar-lesson small{color:var(--muted)!important}
.calendar-page .tiny-warning{display:inline-block;margin-top:4px;color:var(--warning)!important;font-weight:700}
.calendar-page .stat-card{background:var(--surface)!important;border-color:var(--line)!important}.calendar-page .stat-label{color:var(--muted)!important}.calendar-page .stat-value{color:var(--ink)!important}
.calendar-page .table-wrap,.calendar-page table{background:var(--surface)!important}.calendar-page thead th{background:var(--surface-2)!important;color:var(--muted)!important}.calendar-page tbody td{border-color:var(--line-soft)!important;color:var(--text)!important}
@media(max-width:900px){.calendar-page .card:has(.p6-calendar){overflow-x:auto}.calendar-page .p6-calendar{min-width:980px}}

.record-accordion{padding:0!important;overflow:hidden}
.record-accordion>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;color:var(--ink)!important;font-weight:600}
.record-accordion>summary::-webkit-details-marker{display:none}.record-accordion>summary::after{content:"⌄";font-size:18px;color:var(--brand-ink);transition:transform .18s}.record-accordion[open]>summary::after{transform:rotate(180deg)}
.record-accordion-meta{margin-left:auto;color:var(--muted);font-size:10.5px;font-weight:500}.record-accordion-body{padding:16px 18px 18px;border-top:1px solid var(--line)}.section-actions{display:flex;justify-content:flex-end;gap:8px;margin-bottom:12px}.record-accordion .grid-2{margin-bottom:0}.record-accordion:hover{border-color:var(--brand-line)!important}

.portal-admin-strip{background:var(--surface)!important;border-color:var(--line)!important;color:var(--text)!important;box-shadow:var(--shadow-rest)!important}
.portal-admin-icon{background:var(--brand-soft)!important;color:var(--brand-ink)!important;border:1px solid var(--brand-line)!important}
.portal-admin-title{color:var(--ink)!important}.portal-admin-meta{color:var(--muted)!important}.portal-admin-meta strong{color:var(--ink)!important}
.participation-card{background:var(--surface)!important;border-color:var(--line)!important;color:var(--text)!important;box-shadow:var(--shadow-rest)!important}
.participation-card:hover,.participation-card.selected{background:var(--brand-soft)!important;border-color:var(--brand)!important}.participation-card strong{color:var(--ink)!important}.participation-card .eyebrow{color:var(--brand-ink)!important}
.page-subnav{background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:var(--radius-panel)!important;padding:7px!important;box-shadow:var(--shadow-rest)!important}
.page-subnav a{background:var(--surface-2)!important;border-color:var(--line)!important;color:var(--muted)!important}.page-subnav a:hover{background:var(--brand-soft)!important;border-color:var(--brand)!important;color:var(--brand-ink)!important}
.mini-grid>div{background:var(--surface)!important;border-color:var(--line)!important;color:var(--text)!important}.mini-grid>div span{color:var(--muted)!important}.mini-grid>div strong{color:var(--ink)!important}.progress{background:var(--surface-3)!important}.clean-list li{border-color:var(--line)!important}

/* P10.3 – POST-Logout ohne Layoutbruch */
.logout-form{display:inline-flex;margin:0;padding:0}
.logout-form button{font:inherit}

/* ===== P11 Lernbereich ===== */
.learn-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:16px}
.learn-primary-card{position:relative;overflow:hidden}
.learn-primary-card::after{content:"";position:absolute;inset:auto -60px -70px auto;width:180px;height:180px;border-radius:50%;background:color-mix(in srgb,var(--primary) 13%,transparent);pointer-events:none}
.learn-inline-fields{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin:12px 0}
.learn-inline-fields label{display:grid;gap:6px;font-size:12px;color:var(--text-muted);min-width:190px}
.learn-topic-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin:14px 0}
.learn-topic-card{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);cursor:pointer;transition:.18s ease}
.learn-topic-card:hover{border-color:color-mix(in srgb,var(--primary) 55%,var(--border));transform:translateY(-1px)}
.learn-topic-card input{width:18px;height:18px;accent-color:var(--primary);flex:0 0 auto}
.learn-topic-main{display:grid;gap:3px;min-width:0;flex:1}.learn-topic-main small{color:var(--text-muted)}
.learn-score{font-weight:800;font-variant-numeric:tabular-nums}.learn-score.ueben{color:var(--danger)}.learn-score.festigen{color:var(--warning)}.learn-score.sicher{color:var(--success)}.learn-score.offen{color:var(--text-muted)}
.learn-weak-row,.learn-summary-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--border)}
.learn-weak-row:last-child,.learn-summary-row:last-child{border-bottom:0}.learn-topic-summary{display:grid}
.learn-badge.ueben{background:color-mix(in srgb,var(--danger) 16%,transparent);color:var(--danger)}.learn-badge.festigen{background:color-mix(in srgb,var(--warning) 16%,transparent);color:var(--warning)}.learn-badge.sicher{background:color-mix(in srgb,var(--success) 16%,transparent);color:var(--success)}.learn-badge.offen{background:var(--surface-2);color:var(--text-muted)}
.learn-session-shell{max-width:980px}.learn-session-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:12px}.learn-session-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.learn-timer{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.learn-timer.is-low{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 50%,var(--border))}.learn-progress{margin-bottom:18px}
.learn-question h2{font-size:clamp(20px,2.6vw,30px);line-height:1.3;margin:14px 0 18px}.learn-question-meta{display:flex;gap:8px;flex-wrap:wrap}.learn-option{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);margin:9px 0;cursor:pointer}.learn-option:hover{border-color:var(--primary)}.learn-option input{margin-top:3px;accent-color:var(--primary)}
.learn-feedback.is-correct{border-color:color-mix(in srgb,var(--success) 55%,var(--border))}.learn-feedback.is-wrong{border-color:color-mix(in srgb,var(--warning) 60%,var(--border))}.learn-explanation{margin-top:12px;padding:14px;border-radius:10px;background:var(--surface-2);border-left:3px solid var(--primary);line-height:1.55}.learn-finish{text-align:center;padding:28px}.learn-finish h2{font-size:40px;color:var(--primary);margin:8px 0}
@media(max-width:780px){.learn-dashboard-grid{grid-template-columns:1fr}.learn-session-head{align-items:flex-start;flex-direction:column}.learn-inline-fields{display:grid;grid-template-columns:1fr}.learn-inline-fields label{min-width:0}}


/* ---------- Portal-Kalender ---------- */
.portal-calendar-stats{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:14px}
.portal-calendar .calendar-day{min-height:118px}
.portal-calendar .calendar-todo{cursor:pointer}
.portal-calendar .portal-todo-done{opacity:.55;text-decoration:none}
.portal-calendar .portal-todo-done strong{text-decoration:line-through}
@media(max-width:760px){.portal-calendar-stats{grid-template-columns:1fr}.portal-calendar{min-width:760px}}
