/* Design-System aus prototyp/index.html, erweitert um Portal-, Admin- und Formularelemente */
:root{
  --bg:#EEF2F5; --surface:#FFFFFF; --surface-2:#F6F8FA; --fg:#172230; --muted:#5A6B7B; --line:#D5DDE5;
  --accent:#0E5C8A; --accent-fg:#FFFFFF; --accent-soft:#DCEAF4;
  --ext:#6A3D9A; --ext-soft:#EDE4F6;
  --ok:#1F7A4D; --ok-soft:#DDF1E5; --warn:#A5690F; --warn-soft:#F8EAD0; --crit:#B2302B; --crit-soft:#F6DBDA;
  --display:"IBM Plex Sans Condensed",system-ui,sans-serif; --body:"IBM Plex Sans",system-ui,sans-serif; --mono:"IBM Plex Mono",ui-monospace,monospace;
  --radius:10px; --shadow:0 8px 30px rgba(23,34,48,.12);
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --bg:#0F161D; --surface:#172029; --surface-2:#1E2932; --fg:#E5ECF2; --muted:#98A8B8; --line:#2C3945;
  --accent:#5FB0E8; --accent-fg:#0B1A26; --accent-soft:#17344A;
  --ext:#B48AE0; --ext-soft:#2E2340;
  --ok:#5CC48C; --ok-soft:#173526; --warn:#E0B255; --warn-soft:#3A2E13; --crit:#F08A85; --crit-soft:#3F1F1E; --shadow:0 8px 30px rgba(0,0,0,.5); color-scheme:dark } }
:root[data-theme="dark"]{
  --bg:#0F161D; --surface:#172029; --surface-2:#1E2932; --fg:#E5ECF2; --muted:#98A8B8; --line:#2C3945;
  --accent:#5FB0E8; --accent-fg:#0B1A26; --accent-soft:#17344A;
  --ext:#B48AE0; --ext-soft:#2E2340;
  --ok:#5CC48C; --ok-soft:#173526; --warn:#E0B255; --warn-soft:#3A2E13; --crit:#F08A85; --crit-soft:#3F1F1E; --shadow:0 8px 30px rgba(0,0,0,.5); color-scheme:dark }

*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.5 var(--body);-webkit-text-size-adjust:100%}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--accent)}
h1,h2,h3{font-family:var(--display);line-height:1.2;text-wrap:balance;margin:0}
h1{font-size:1.25rem;font-weight:600}
h2{font-size:1.45rem;font-weight:600}
h3{font-size:1.05rem;font-weight:600}
p{margin:0}
.eyebrow{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
.mono{font-family:var(--mono);font-size:.85em}
.muted{color:var(--muted)}
.small{font-size:.85rem}
.right{text-align:right}
.nowrap{white-space:nowrap}
.hidden{display:none!important}
.stack{display:flex;flex-direction:column;gap:12px}
.row{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}
.row.between{justify-content:space-between}
.spacer{flex:1}
.wrap{word-break:break-word}

/* Topbar */
.topbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--surface);border-bottom:1px solid var(--line);padding:10px 16px;display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center}
.brand{display:flex;flex-direction:column;gap:0;text-decoration:none;color:inherit}
.brand .sub{font-size:.78rem;color:var(--muted)}
.tabs{display:flex;flex-wrap:wrap;gap:4px;margin-left:auto}
.tab{border:1px solid transparent;background:transparent;border-radius:6px;padding:6px 10px;cursor:pointer;font-weight:500;color:var(--muted);text-decoration:none}
.tab:hover{background:var(--surface-2);color:var(--fg)}
.tab[aria-selected="true"],.tab.active{background:var(--accent-soft);color:var(--accent)}
.tab:focus-visible,.btn:focus-visible,.node:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.devbar{display:flex;gap:6px;align-items:center;font-size:.8rem;background:var(--warn-soft);color:var(--warn);padding:4px 8px;border-radius:6px}
.devbar select,.devbar input{font-size:.8rem;padding:2px 6px;background:var(--surface);border:1px solid var(--line);border-radius:5px;color:var(--fg);max-width:220px}
.userbox{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--muted)}

/* Layout */
.app{padding:20px 16px;max-width:1180px;margin:0 auto;display:flex;flex-direction:column;gap:16px;min-width:0}
.app.narrow{max-width:720px}
.app.wide{max-width:1400px}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media (max-width:760px){.grid2,.grid3{grid-template-columns:1fr}}
.admin-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:20px;align-items:start}
@media (max-width:900px){.admin-layout{grid-template-columns:1fr}}
.sidenav{display:flex;flex-direction:column;gap:2px;position:sticky;top:calc(env(safe-area-inset-top,0px) + 72px)}
@media (max-width:900px){.sidenav{position:static;flex-direction:row;flex-wrap:wrap}}
.sidenav a{padding:8px 12px;border-radius:7px;color:var(--muted);text-decoration:none;font-weight:500}
.sidenav a:hover{background:var(--surface-2);color:var(--fg)}
.sidenav a.active{background:var(--accent-soft);color:var(--accent)}
.sidenav .group{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:12px 12px 4px}

/* Cards */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;display:flex;flex-direction:column;gap:12px;min-width:0}
.card.flat{background:var(--surface-2);border-style:dashed}
.card.ext{border:2px solid var(--ext)}
.card.compact{padding:12px 14px;gap:8px}
.screen-head{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:baseline;justify-content:space-between}
.steps{display:flex;flex-wrap:wrap;gap:6px}
.step{font-size:.78rem;padding:3px 9px;border-radius:999px;border:1px solid var(--line);color:var(--muted);background:var(--surface)}
.step[aria-current="step"]{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}
.step.done{border-color:var(--ok);color:var(--ok)}
.nav{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;align-items:center;margin-top:4px}

/* Buttons */
.btn{border:1px solid var(--line);background:var(--surface);border-radius:7px;padding:8px 14px;cursor:pointer;font-weight:500;text-decoration:none;display:inline-flex;align-items:center;gap:6px;color:var(--fg)}
.btn:hover{background:var(--surface-2)}
.btn.primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}
.btn.primary:hover{filter:brightness(1.08)}
.btn.ext{background:var(--ext);color:#fff;border-color:var(--ext)}
.btn.ghost{background:transparent}
.btn.danger{color:var(--crit);border-color:var(--crit)}
.btn.danger.primary{background:var(--crit);color:#fff}
.btn.ok{color:var(--ok);border-color:var(--ok)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.btn.sm{padding:4px 10px;font-size:.85rem}
.btn.xs{padding:2px 8px;font-size:.78rem}
.btn.block{width:100%;justify-content:center}
.btnrow{display:flex;flex-wrap:wrap;gap:8px}

/* Chips */
.chip{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:600;padding:2px 9px;border-radius:999px;background:var(--surface-2);color:var(--muted);border:1px solid var(--line);white-space:nowrap}
.chip::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.chip.nodot::before{display:none}
.chip.ok{background:var(--ok-soft);color:var(--ok);border-color:transparent}
.chip.warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}
.chip.crit{background:var(--crit-soft);color:var(--crit);border-color:transparent}
.chip.info{background:var(--accent-soft);color:var(--accent);border-color:transparent}
.chip.ext{background:var(--ext-soft);color:var(--ext);border-color:transparent}
.chips{display:flex;flex-wrap:wrap;gap:4px}

/* Notes */
.note{border-left:3px solid var(--accent);background:var(--accent-soft);padding:10px 14px;border-radius:0 8px 8px 0;font-size:.9rem;display:flex;flex-direction:column;gap:4px}
.note.ext{border-color:var(--ext);background:var(--ext-soft)}
.note.warn{border-color:var(--warn);background:var(--warn-soft)}
.note.crit{border-color:var(--crit);background:var(--crit-soft)}
.note.ok{border-color:var(--ok);background:var(--ok-soft)}
.note b{font-weight:600}

/* KV */
.kv{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:4px 16px;font-size:.92rem;margin:0}
.kv dt{color:var(--muted)} .kv dd{margin:0;font-variant-numeric:tabular-nums;min-width:0;word-break:break-word}
.kv dd.match{color:var(--ok);font-weight:600} .kv dd.miss{color:var(--crit);font-weight:600}
@media (max-width:480px){.kv{grid-template-columns:1fr}.kv dt{margin-top:6px}}

/* Mail */
.mail{border:1px solid var(--line);border-radius:8px;overflow:hidden}
.mail .hdr{background:var(--surface-2);padding:10px 14px;font-size:.85rem;display:grid;grid-template-columns:max-content 1fr;gap:2px 10px}
.mail .hdr span:nth-child(odd){color:var(--muted)}
.mail iframe{width:100%;border:0;min-height:260px;background:#fff}
.linkbox{font-family:var(--mono);font-size:.8rem;background:var(--surface-2);padding:8px 10px;border-radius:6px;word-break:break-all}

/* Externer Provider */
.ident{border:2px solid var(--ext);border-radius:10px;padding:16px 18px;display:flex;flex-direction:column;gap:12px;background:var(--surface)}
.ident .brandline{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;align-items:center;color:var(--ext);font-family:var(--display);font-weight:600}
.scan{min-height:120px;border:2px dashed var(--ext);border-radius:8px;display:grid;place-items:center;color:var(--ext);font-size:.9rem;background:var(--ext-soft);text-align:center;padding:10px}

/* QR */
.qrbox{display:flex;flex-wrap:wrap;gap:16px;align-items:center}
.qr{background:#fff;padding:10px;border-radius:8px;border:1px solid var(--line);display:inline-block;line-height:0}
.qr img,.qr canvas{display:block}
.qrmeta{display:flex;flex-direction:column;gap:8px;min-width:0;flex:1}

/* Progress */
.progress{height:6px;background:var(--surface-2);border-radius:3px;overflow:hidden}
.progress>i{display:block;height:100%;background:var(--accent);border-radius:3px}
.progress.ext>i{background:var(--ext)}
.progress.ok>i{background:var(--ok)}
@media (prefers-reduced-motion:no-preference){.progress>i{transition:width .5s ease}}
.bar{display:grid;grid-template-columns:200px 1fr 56px;gap:10px;align-items:center;font-size:.88rem}
.bar .pct{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}
.bar .progress{height:10px}
.bar .progress>i{background:var(--ok)}
@media (max-width:560px){.bar{grid-template-columns:1fr 56px}.bar .tn{grid-column:1/-1}}

/* Tables */
table{width:100%;border-collapse:collapse;font-size:.9rem}
th,td{text-align:left;padding:8px 8px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;white-space:nowrap}
td.num,th.num{font-variant-numeric:tabular-nums;text-align:right}
tr.clickable{cursor:pointer}
tr.clickable:hover td{background:var(--surface-2)}
tr.selected td{background:var(--surface-2)}
.acclist{list-style:none;padding:0;margin:8px 0;display:flex;flex-direction:column;gap:6px}
.acclist li{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;font-size:.9rem}
.tablewrap{overflow-x:auto;min-width:0;-webkit-overflow-scrolling:touch}

/* Forms */
.field{display:flex;flex-direction:column;gap:4px;min-width:0}
.field label{font-size:.82rem;color:var(--muted);font-weight:500}
.field .hint{font-size:.78rem;color:var(--muted)}
input[type=text],input[type=search],input[type=email],input[type=number],input[type=password],input[type=url],input[type=date],input[type=datetime-local],input[type=tel],select,textarea{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:7px 10px;width:100%;min-width:0;color:var(--fg)}
textarea{min-height:80px;resize:vertical}
select.sm,input.sm{padding:3px 6px;font-size:.85rem;width:auto}
input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}
.check{display:flex;gap:8px;align-items:center;font-size:.9rem}
.formgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.toggle{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:.88rem;padding:6px 0;border-top:1px solid var(--line)}
.toggle:first-child{border-top:0}
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:end}
.filters .field{min-width:140px}
.filters .field.grow{flex:1;min-width:200px}

/* Tiles */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.tile{background:var(--surface-2);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;text-decoration:none;color:inherit}
.tile .v{font-family:var(--display);font-size:1.5rem;font-weight:600;font-variant-numeric:tabular-nums}
.tile .l{font-size:.78rem;color:var(--muted)}
.tile.ok .v{color:var(--ok)} .tile.warn .v{color:var(--warn)} .tile.crit .v{color:var(--crit)} .tile.info .v{color:var(--accent)}
a.tile:hover{outline:1px solid var(--accent)}

/* Sequence / timeline */
.seq{display:flex;flex-direction:column;gap:0}
.node{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:10px 14px;display:flex;flex-direction:column;gap:2px;text-align:left;min-width:0}
.node .t{font-weight:600}
.node .d{font-size:.82rem;color:var(--muted)}
.seq .node{border-radius:0;border-top:0}
.seq .node:first-child{border-radius:8px 8px 0 0;border-top:1px solid var(--line)}
.seq .node:last-child{border-radius:0 0 8px 8px}
.seq .node.ok{border-left:3px solid var(--ok)}
.seq .node.fail{border-left:3px solid var(--crit)}
.timeline{display:flex;flex-direction:column;gap:6px;font-size:.85rem}
.timeline .ev{display:grid;grid-template-columns:150px 1fr;gap:10px;padding:4px 0;border-top:1px solid var(--line)}
.timeline .ev:first-child{border-top:0}
.timeline .ev .t{color:var(--muted);font-family:var(--mono);font-size:.75rem}
@media (max-width:560px){.timeline .ev{grid-template-columns:1fr}}
.log{font-family:var(--mono);font-size:.74rem;display:flex;flex-direction:column;gap:3px;max-height:300px;overflow:auto}
pre.json{font-family:var(--mono);font-size:.75rem;background:var(--surface-2);padding:8px 10px;border-radius:6px;overflow:auto;max-height:260px;margin:0;white-space:pre-wrap;word-break:break-word}

/* Portal landing */
.hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.entry{display:flex;flex-direction:column;gap:6px;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--surface);text-decoration:none;color:inherit}
.entry:hover{border-color:var(--accent)}
.entry .t{font-family:var(--display);font-weight:600;font-size:1.05rem}
.entry .d{font-size:.85rem;color:var(--muted)}
.entry.ext{border-color:var(--ext)}

/* TAP */
.tap{font-family:var(--mono);font-size:1.5rem;letter-spacing:.12em;padding:12px 16px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);text-align:center}
.pin{font-family:var(--mono);font-size:1.6rem;letter-spacing:.25em;padding:10px 16px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);text-align:center}

/* Toasts & modal */
.toasts{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:50;max-width:min(420px,calc(100vw - 32px))}
.toast{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:8px;padding:10px 14px;box-shadow:var(--shadow);font-size:.9rem}
.toast.err{border-left-color:var(--crit)}
.toast.ok{border-left-color:var(--ok)}
.modal-bg{position:fixed;inset:0;background:rgba(10,20,30,.5);display:grid;place-items:center;z-index:40;padding:16px}
.modal{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px;max-width:560px;width:100%;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow);max-height:90vh;overflow:auto}
.modal.wide{max-width:900px}

/* Loading */
.loading{color:var(--muted);font-size:.9rem;padding:20px;text-align:center}
.spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;vertical-align:-2px;margin-right:6px}
@keyframes spin{to{transform:rotate(360deg)}}
.pager{display:flex;gap:8px;align-items:center;justify-content:flex-end;font-size:.85rem}
.detail-head{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}
.detail-head h2{margin-right:auto}
.roles{display:flex;flex-direction:column;gap:2px;font-size:.82rem}
.help{font-size:.82rem;color:var(--muted)}
.actions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.actions-grid .btn{justify-content:flex-start}
.subtabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--line);padding-bottom:6px}
.subtabs .tab{padding:5px 10px}

/* Einzelpflege HR-Datensatz */
.pform{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
@media (max-width:640px){.pform{grid-template-columns:1fr}}

.livephoto{max-width:120px;max-height:150px;border-radius:8px;border:1px solid var(--line);display:block;margin:0 auto 6px}
.photo-row{display:flex;align-items:center;gap:12px;margin-bottom:8px}.photo-row .livephoto{margin:0}
.camera .camvideo,.camera .camshot{display:block;width:min(100%,360px);aspect-ratio:1/1;object-fit:cover;border-radius:12px;border:1px solid var(--line);margin:8px auto;background:#000;transform:scaleX(-1)}
.camera .camshot{transform:none}
.pin-input{font-family:ui-monospace,monospace;font-size:1.3rem;letter-spacing:.3em;width:9em}

/* Piktogramme und Startseite */
.ico{display:inline-flex;width:34px;height:34px;flex:none;align-items:center;justify-content:center;border-radius:10px;background:var(--surface-2);color:var(--accent)}
.ico svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ico.sm{width:18px;height:18px;border-radius:6px;background:transparent;color:inherit;margin-right:4px;vertical-align:-4px}
.ico.sm svg{width:14px;height:14px}
.step{display:inline-flex;align-items:center}
.hero-card h2{font-size:1.45rem;line-height:1.3;margin:6px 0 10px}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-top:12px}
.facts>div{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;line-height:1.35}
.agenda{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.agenda li{display:flex;gap:12px;align-items:flex-start}
.agenda li div{display:flex;flex-direction:column;gap:2px}
.agenda li span{font-size:.9rem;color:var(--muted);line-height:1.4}
.btnrow{display:flex;flex-wrap:wrap;gap:8px}
/* Manager: Teamliste */
.teamlist{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:8px}
.teamlist li{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1.2fr);gap:10px;align-items:start;padding:10px 12px;border:1px solid var(--line);border-radius:10px;border-left-width:4px}
.teamlist li.ok{border-left-color:var(--ok)} .teamlist li.dev{border-left-color:var(--warn)}
.teamlist .who{display:flex;flex-direction:column;gap:2px}
.teamlist .choice{display:flex;flex-direction:column;gap:4px}
.center{text-align:center}
@media (max-width:640px){.teamlist li{grid-template-columns:1fr}}

/* ===== Prozessweg für Endnutzer (.pf): thyssenkrupp-Palette, Gesicht, Stufen, Callouts ===== */
.pf{--tk:#00a0f5;--tk-dark:#008dd8;--tk-light:#73c3f0;--tk-lightest:#f3faff;--navy:#003c7d;--navy-dark:#00224b;--ink:#222430;--signal:#ffb400;--neutral:#7a8189;--neutral-soft:#eef0f2;
  --accent:var(--navy);--accent-fg:#fff;--accent-soft:var(--tk-lightest);--line:#dfe6ee;font-size:16px}
.pf .card{border-radius:18px;padding:22px 22px;box-shadow:0 10px 30px rgba(0,60,125,.08);border-color:var(--line)}
.pf .card.flat{background:var(--tk-lightest);border:1px solid #cfe9fb;box-shadow:none}
.pf .hero{display:flex;gap:18px;align-items:center;background:linear-gradient(135deg,var(--navy) 0%,var(--navy-dark) 100%);color:#fff;border-radius:22px;padding:26px 24px;margin-bottom:14px}
.pf .hero.compact{padding:16px 20px;gap:14px}
.pf .hero .eyebrow{color:var(--tk-light);letter-spacing:.14em}
.pf .hero h1{margin:4px 0 6px;font-family:var(--display);font-size:1.7rem;line-height:1.2;font-weight:600}
.pf .hero.compact h1{font-size:1.35rem;margin:2px 0 0}
.pf .hero p{margin:0;color:#dbeefc;font-size:1rem;line-height:1.45}
.pf .hero .face .face-head{fill:var(--tk);stroke:none}
.pf .hero .face .face-feat,.pf .hero .face .face-pins,.pf .hero .face .face-scan{stroke:#fff}
.pf .hero .face .face-dot{fill:var(--signal)}
/* Gesicht */
.face{flex:none;display:block}
.face .face-head{fill:var(--tk-lightest);stroke:var(--tk);stroke-width:2.5}
.face .face-feat{fill:none;stroke:var(--navy);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.face .face-feat circle{fill:var(--navy);stroke:none}
.face-alert .face-feat circle:last-of-type{fill:none;stroke:var(--navy)}
.face .face-pins{fill:none;stroke:var(--tk);stroke-width:2;stroke-linecap:round}
.face .face-scan{fill:none;stroke:var(--tk);stroke-width:2;stroke-dasharray:4 4;animation:scanmove 1.6s linear infinite}
.face .face-dot{fill:var(--signal)}
.face-happy .face-head{fill:#e6f6e9;stroke:var(--ok)} .face-happy .face-dot{fill:var(--ok)}
.face-alert .face-head{fill:#fff6dd;stroke:var(--signal)} .face-alert .face-dot{fill:var(--signal)}
.face-sad .face-head{fill:var(--crit-soft);stroke:var(--crit)}
.face-wait .face-feat circle{animation:blink 1.2s ease-in-out infinite} .face-wait .face-feat circle:last-of-type{animation-delay:.3s}
@keyframes scanmove{from{stroke-dashoffset:0}to{stroke-dashoffset:-16}}
@keyframes blink{0%,100%{opacity:.2}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.face .face-scan,.face-wait .face-feat circle{animation:none}}
/* Stufenleiste */
.pf .stages{list-style:none;margin:0 0 14px;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:0;position:relative}
.pf .stages li{display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;text-align:center}
.pf .stages li::before{content:"";position:absolute;top:19px;left:-50%;width:100%;height:3px;background:var(--line);z-index:0}
.pf .stages li:first-child::before{display:none}
.pf .stages li.done::before,.pf .stages li.now::before{background:var(--tk)}
.pf .stages .dot{position:relative;z-index:1;width:40px;height:40px;border-radius:50%;background:#fff;border:3px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--neutral)}
.pf .stages .dot svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pf .stages li.done .dot{background:var(--tk);border-color:var(--tk);color:#fff}
.pf .stages li.now .dot{background:var(--navy);border-color:var(--navy);color:#fff;box-shadow:0 0 0 6px rgba(0,160,245,.18)}
.pf .stages .lbl{font-size:.74rem;color:var(--neutral);line-height:1.15}
.pf .stages li.now .lbl{color:var(--navy);font-weight:600}
.pf .stages li.done .lbl{color:var(--tk-dark)}
@media (max-width:480px){.pf .stages .lbl{font-size:.66rem}.pf .stages .dot{width:34px;height:34px}.pf .stages li::before{top:16px}}
/* Bildschirm */
.pf .screen{gap:16px}
.pf .screen-top{display:flex;gap:16px;align-items:flex-start}
.pf .screen-top h2{margin:4px 0 6px;font-family:var(--display);font-size:1.45rem;line-height:1.25;color:var(--ink)}
.pf .lead{font-size:1.05rem;line-height:1.5;margin:0;color:#3b4350}
.pf .nav.big{justify-content:flex-end;flex-wrap:wrap;gap:10px}
.pf .btn{border-radius:12px;padding:10px 18px;font-size:1rem}
.pf .btn.primary{background:var(--navy);border-color:var(--navy)}
.pf .btn.primary:hover{background:var(--navy-dark)}
.pf .btn.xl{padding:14px 24px;font-size:1.1rem;font-weight:600;width:100%;justify-content:center}
@media (min-width:560px){.pf .btn.xl{width:auto;min-width:260px}}
.pf .btn.ext{background:var(--tk-dark);border-color:var(--tk-dark)}
.pf details.more{border-top:1px solid var(--line);padding-top:10px}
.pf details.more summary{cursor:pointer;color:var(--tk-dark);font-weight:500;font-size:.95rem}
.pf details.more p{color:var(--neutral);font-size:.95rem}
/* Listen */
.pf .checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.pf .checklist li{display:flex;gap:12px;align-items:center;font-size:1rem}
.pf .checklist.num{counter-reset:n}
.pf .checklist.num li{counter-increment:n}
.pf .checklist.num li::before{content:counter(n);width:22px;height:22px;border-radius:50%;background:var(--navy);color:#fff;font-size:.8rem;display:inline-flex;align-items:center;justify-content:center;flex:none}
.pf .checklist.done .ico{background:#e6f6e9;color:var(--ok)}
.pf .ico{background:var(--tk-lightest);color:var(--navy)}
/* Callout */
.pf .callout{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:14px;background:var(--tk-lightest);border:1px solid #cfe9fb;margin:4px 0}
.pf .callout>div{display:flex;flex-direction:column;gap:3px;font-size:.98rem;line-height:1.45}
.pf .callout b{color:var(--ink)}
.pf .callout span{color:#3b4350}
.pf .callout.ok{background:#e9f7ee;border-color:#bfe6cc}
.pf .callout.warn{background:#fff6dd;border-color:#ffe08a}
.pf .callout.crit{background:var(--crit-soft);border-color:#f0b8b5}
.pf .callout.wait{background:#f1f5fa;border-color:#d8e2ee}
/* PIN, Fakten, Agenda */
.pf .pinbox{display:flex;align-items:center;justify-content:space-between;background:var(--navy);color:#fff;border-radius:14px;padding:12px 18px;margin:4px 0}
.pf .pinbox b{font-family:ui-monospace,monospace;font-size:1.8rem;letter-spacing:.35em}
.pf .facts{margin-top:0}
.pf .agenda li b{color:var(--ink)}
.pf .agenda li span{font-size:.95rem}
.pf .qr{border-radius:16px}
.pf .scan{border-radius:14px}
.pf .pin-input{font-size:1.5rem}
.pf .camera .screen-head .ico{width:40px;height:40px}
/* QR-Block im Prozessweg: auf schmalen Bildschirmen untereinander, Hauptaktion groß, Link-Text versteckt */
.pf .qrbox{display:flex;flex-direction:column;align-items:center;gap:12px;background:var(--tk-lightest);border:1px solid #cfe9fb;border-radius:16px;padding:16px}
.pf .qrbox .qr{border-radius:14px;padding:12px}
.pf .qrmeta{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}
.pf .qrmeta .linkbox{display:none}
.pf .qrmeta p.small{margin:0;text-align:center;color:var(--neutral)}
.pf .qrmeta .btnrow{display:flex;flex-direction:column;gap:8px;width:100%}
.pf .qrmeta .btnrow .btn{justify-content:center;width:100%}
.pf .qrmeta .btnrow .btn.primary,.pf .qrmeta .btnrow .btn.ext{padding:14px 20px;font-size:1.05rem;font-weight:600}
@media (min-width:560px){.pf .qrbox{flex-direction:row;align-items:flex-start}.pf .qrmeta{align-items:stretch}.pf .qrmeta p.small{text-align:left}}
.pf label.check{align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:12px;gap:10px;font-size:1rem}
.pf label.check>span{display:flex;flex-direction:column}
.pf label.check .small{display:block;font-size:.88rem}
