/* ============================================================
   DESIGN SYSTEM — "Helvetica Grid"
   Swiss / International Typographic Style, restrained & precise.
   ============================================================ */
:root{
  --paper:#FBFAF7;
  --paper-2:#FFFFFF;
  --ink:#13130F;
  --grey:#5E5C55;
  --faint:#A29E94;
  --line:#E5E2D9;
  --line-strong:#16150F;
  --accent:#E5402B;          /* signal red — used sparingly */
  --accent-tint:#FBEDE9;
  --ok:#3A7D44;
  --ok-tint:#EDF4EE;          /* light green tint for CV relevance markers */
  --warn:#B8860B;
  --maxw:1240px;
  --gut:40px;
  --font:'Inter',-apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif;
  --display:var(--font);
  --mono:'IBM Plex Mono',ui-monospace,'SF Mono',Menlo,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--font);
  background:var(--paper);
  color:var(--ink);
  line-height:1.5;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  letter-spacing:-0.01em;
}
a{color:inherit}
button{font-family:var(--font);cursor:pointer}
.mono{font-family:var(--mono);letter-spacing:0}
.idx{font-family:var(--mono);font-size:12px;color:var(--faint);letter-spacing:0.04em}
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent)}
.label-cap{font-family:var(--mono);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--grey)}

/* ---------- TOP BAR ---------- */
.topbar{
  position:sticky;top:0;z-index:50;
  background:rgba(251,250,247,0.88);
  backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--line);
}
.cvwarn{background:#c0271c;color:#fff;text-align:center;padding:9px var(--gut);font-size:13px;font-weight:600;line-height:1.4;letter-spacing:.01em}
.cvwarn-cta{background:#fff;color:#c0271c;border:0;border-radius:3px;padding:3px 10px;margin-left:8px;font:inherit;font-weight:700;cursor:pointer;vertical-align:baseline}
.cvwarn-cta:hover{opacity:.9}
/* Cockpit-Kapitel (01–03): .row-Muster der CV-Ansicht — die Überschrift sitzt an der Oberkante
   ihrer Sektion, .col-label .sticky nimmt sie beim Scrollen am Viewport-Top mit, bis die Sektion
   endet. Große Kapitel-Typo, Nummer in Akzentrot wie .sec-num. */
.ck-sec .ckj-t{font-size:clamp(19px,1.6vw,26px);font-weight:700;letter-spacing:-.02em;line-height:1.12}
.ck-sec .sec-num{margin-bottom:4px}
.ck-sec{padding:38px 0}
@media(max-width:1080px){ .ck-sec{grid-template-columns:minmax(0,1fr);gap:14px} .ck-sec .col-label .sticky{position:static} .ck-sec-b{min-width:0} }
.topbar-inner{
  max-width:var(--maxw);margin:0 auto;padding:0 var(--gut);
  height:64px;display:flex;align-items:center;gap:28px;
}
.brand{display:flex;align-items:baseline;gap:12px;font-weight:700;letter-spacing:-0.02em}
.monogram{
  width:30px;height:30px;border:1.5px solid var(--ink);
  display:grid;place-items:center;font-family:var(--mono);font-size:12px;font-weight:500;
  transform:translateY(2px);
}
.brand small{font-family:var(--mono);font-size:10px;letter-spacing:0.18em;color:var(--faint);text-transform:uppercase;font-weight:400}
nav.mainnav{display:flex;gap:4px;margin-left:8px}
nav.mainnav button{
  background:none;border:none;font-size:13.5px;font-weight:500;color:var(--grey);
  padding:8px 12px;border-radius:2px;letter-spacing:-0.01em;position:relative;
}
nav.mainnav button:hover{color:var(--ink)}
nav.mainnav button.active{color:var(--ink)}
nav.mainnav button.active::after{
  content:"";position:absolute;left:12px;right:12px;bottom:2px;height:2px;background:var(--accent);
}
/* active-application switcher (primary nav) */
.navswitch{position:relative;display:inline-flex}
.navswitch-btn{background:none;border:none;font-size:13.5px;font-weight:600;color:var(--ink);padding:8px 12px;border-radius:2px;letter-spacing:-0.01em;display:inline-flex;align-items:center;gap:8px;max-width:620px}
.navswitch-btn:hover{color:var(--ink)}
.navswitch-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.navswitch-logo{width:22px;height:22px;border-radius:5px;border:1px solid var(--line);background:var(--paper-2);overflow:hidden;flex:none;display:grid;place-items:center;position:relative}
.navswitch-logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff}
.navswitch-logo span{font-family:var(--mono);font-size:10px;color:var(--faint)}
.navswitch-caret{font-size:10px;opacity:.55;transition:transform .15s}
.navswitch.open .navswitch-caret{transform:rotate(180deg)}
.navswitch-pop{position:absolute;left:0;top:42px;background:var(--paper);border:1px solid var(--line-strong);border-radius:4px;padding:7px;display:none;flex-direction:column;gap:2px;z-index:60;min-width:248px;max-width:360px;max-height:72vh;overflow:auto;box-shadow:0 16px 44px rgba(0,0,0,.18)}
.navswitch.open .navswitch-pop{display:flex}
.navswitch-head{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);padding:5px 10px 2px}
.navswitch-item{background:none;border:none;text-align:left;padding:8px 10px;border-radius:3px;font-size:13px;color:var(--ink);display:flex;flex-direction:row;align-items:flex-start;gap:9px;cursor:pointer;width:100%}
.navswitch-item:hover{background:var(--accent-tint)}
.navswitch-item.cur{background:var(--accent-tint)}
.navswitch-item small{color:var(--grey);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.navswitch-sep{height:1px;background:var(--line);margin:5px 2px}
.navswitch-new{background:none;border:none;text-align:left;padding:8px 10px;border-radius:3px;font-size:13px;font-weight:600;color:var(--accent);cursor:pointer;width:100%}
.navswitch-new:hover{background:var(--accent-tint)}
/* Bewerbungs-Dropdown: Logo + voller Titel ohne Abschneiden */
.navswitch-item .nsw-logo{width:24px;height:24px;border-radius:5px;border:1px solid var(--line);background:var(--paper-2);overflow:hidden;flex:none;display:grid;place-items:center;position:relative;margin-top:1px}
.navswitch-item .nsw-logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff}
.navswitch-item .nsw-logo span{font-family:var(--mono);font-size:11px;color:var(--faint)}
.navswitch-item .nsw-txt{display:flex;flex-direction:column;gap:1px;min-width:0}
.navswitch-item .nsw-txt b{white-space:normal;overflow:visible}
.navswitch-item .nsw-txt small{white-space:normal;overflow:visible;text-overflow:clip}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:6px}
.lang-toggle{display:flex;border:1px solid var(--line);border-radius:2px;overflow:hidden}
.acct-row{display:flex;align-items:center;gap:8px;margin-top:8px}
.lang-toggle button{background:none;border:none;padding:6px 9px;font-family:var(--mono);font-size:11px;color:var(--faint);font-weight:500}
.lang-toggle button.active{background:var(--ink);color:var(--paper)}
.icon-btn{
  background:none;border:1px solid var(--line);width:34px;height:34px;border-radius:2px;
  display:grid;place-items:center;color:var(--grey);font-size:15px;transition:.15s;
}
.icon-btn:hover{border-color:var(--ink);color:var(--ink)}
/* themed display headings */
.hero h1,.page-head h2,.role-head h3{font-family:var(--display)}
/* theme picker */
.theme-pop{position:absolute;right:0;top:42px;background:var(--paper);border:1px solid var(--line-strong);border-radius:4px;padding:7px;display:none;flex-direction:column;gap:3px;z-index:60;min-width:184px;box-shadow:0 16px 44px rgba(0,0,0,.18)}
.theme-pop.open{display:flex}
/* ---- Topbar: Profil-Nav, Konto-Menü, Profil-Werkzeuge ---- */
.acct-wrap{position:relative;display:inline-flex}
.acct-btn{background:none;border:1px solid var(--line);border-radius:999px;display:inline-flex;align-items:center;gap:5px;padding:4px 8px 4px 5px;cursor:pointer;color:var(--ink)}
.acct-btn:hover{border-color:var(--ink)}
.acct-ini{width:24px;height:24px;border-radius:999px;background:var(--ink);color:var(--paper);display:grid;place-items:center;font-size:11px;font-weight:700;letter-spacing:.02em}
.acct-pop{min-width:200px;padding:11px}
.acct-id{display:flex;flex-direction:column;gap:6px;padding:2px 2px 10px;border-bottom:1px solid var(--line)}
.nav-profil{background:none;border:none;font-size:14px;font-weight:600;color:var(--grey);padding:8px 10px;cursor:pointer;border-radius:4px}
.nav-profil:hover{color:var(--ink)}
.nav-profil.active{color:var(--ink)}
.profil-tools{display:none;gap:8px;margin:0 0 16px}
body.mode-candidate.no-active-job.authed .profil-tools{display:flex}
.stock-head{display:flex;align-items:baseline;gap:12px;border-bottom:1px solid var(--line-strong);padding-bottom:8px;margin:38px 0 6px}
.stock-head h2{font-size:16px}
.dash-sumline{margin-left:auto;font-size:11.5px;color:var(--grey)}
.stock-actions{display:flex;gap:8px;margin-top:14px}

/* active job ribbon */
.ck-head{border:1px solid var(--line);border-radius:3px;padding:16px 18px;margin-bottom:14px}
.ck-head-top{display:flex;justify-content:space-between;gap:14px;align-items:baseline;flex-wrap:wrap}
.ck-co{font-family:var(--display);font-size:19px;font-weight:700;letter-spacing:-0.02em;min-width:0}
.ck-role{color:var(--grey);font-size:13.5px}
.ck-bilanz{margin-top:11px;font-size:14.5px;font-weight:600}
.ck-bilanz .muted{font-weight:400;color:var(--faint)}
.ck-detail{border:1px solid var(--line);border-radius:3px;padding:14px 18px;margin-bottom:14px}
.ck-detail>summary{cursor:pointer;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--grey)}
.ck-detail>summary:hover{color:var(--ink)}
.ck-detail[open]>summary{margin-bottom:4px}
.ck-detail-sub{font-size:13px;color:var(--grey);margin:10px 0 0;max-width:62ch;line-height:1.5}
/* Analyse-Schritte im Wartekopf: ehrliche Phasenliste statt Prozent-Fiktion */
.ck-steps{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:7px}
.ck-steps li{display:flex;align-items:center;gap:9px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.ck-steps li .st-ic{width:14px;height:14px;display:grid;place-items:center;flex:none;font-size:12px}
.ck-steps li.done{color:var(--grey)}
.ck-steps li.done .st-ic{color:var(--ok)}
.ck-steps li.active{color:var(--ink)}
.ck-err{color:var(--accent);font-size:13.5px;margin-top:10px}
.ck-share{margin-top:22px;border:1px solid var(--line);border-radius:3px;padding:14px 16px}
.ck-share-p{font-size:12.5px;color:var(--grey);margin:0 0 12px;max-width:62ch;line-height:1.5}
.ck-share-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.ck-share-row input{max-width:240px;font-family:var(--mono);letter-spacing:.12em}
.ck-strip{position:sticky;bottom:0;border:2px solid var(--ink);border-radius:3px;padding:12px 16px;font-weight:700;background:var(--paper);margin-top:16px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.ck-strip.ready{border-color:var(--ok);color:var(--ok)}
.ck-strip-sp{flex:1}
.ck-h{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin:0 0 8px}
.ck-item{border:1px solid var(--line);border-radius:2px;padding:11px 13px;margin-bottom:7px}
.ck-item.open{border-width:2px;border-color:var(--ink)}
.ck-item.done{opacity:.45;text-decoration:line-through}
.ck-item-top{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.ck-item-q{color:var(--grey);font-size:13px;margin:8px 0 0;line-height:1.5}
.ck-ic{display:inline-block;width:15px;height:15px;vertical-align:-2px;opacity:.6}
.ck-ic svg{width:100%;height:100%}
.ck-lq{margin-top:12px}

/* ---------- LAYOUT ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut)}
.view{display:none;animation:fade .4s ease}
.view.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* section row: label column + content column */
.row{display:grid;grid-template-columns:200px 1fr;gap:48px;padding:46px 0;border-top:1px solid var(--line)}
.row:first-child{border-top:none}
.row .col-label{position:relative}
.row .col-label .sticky{position:sticky;top:96px}
.sec-num{font-family:var(--mono);font-size:12px;color:var(--accent);display:block;margin-bottom:8px}
.sec-title{font-size:14px;font-weight:600;letter-spacing:-0.01em}
.sec-sub{font-size:12.5px;color:var(--faint);margin-top:4px;line-height:1.4}

/* ---------- HERO ---------- */
.hero{padding:72px 0 30px}
.hero .eyebrow{margin-bottom:22px}
.hero h1{
  font-size:clamp(48px,8vw,104px);line-height:0.92;font-weight:800;letter-spacing:-0.045em;
}
.hero .role{font-size:clamp(18px,2.4vw,26px);font-weight:400;color:var(--grey);margin-top:18px;letter-spacing:-0.02em}
.hero .role b{color:var(--ink);font-weight:600}
.metarow{display:flex;flex-wrap:wrap;gap:8px 30px;margin-top:30px;font-family:var(--mono);font-size:12.5px;color:var(--grey)}
.metarow span{display:flex;align-items:center;gap:7px}
.metarow span::before{content:"";width:5px;height:5px;background:var(--accent);display:inline-block}
.metarow span.cvmeta-add::before{display:none}   /* der +-Knopf ist kein Kontakt-Eintrag — kein Trenner-Quadrat */
.actionbar{display:flex;flex-wrap:wrap;gap:10px;margin-top:38px}
.btn{
  border:1px solid var(--line-strong);background:var(--ink);color:var(--paper);
  font-size:13.5px;font-weight:500;padding:11px 18px;border-radius:2px;display:inline-flex;align-items:center;gap:9px;transition:.15s;
}
.btn:hover{background:#000}
.btn.ghost{background:none;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--paper)}
.btn.sm{padding:8px 13px;font-size:12.5px}
.btn svg{width:15px;height:15px}

/* ---------- PROFILE / TEXT ---------- */
.lede{font-size:19px;line-height:1.55;letter-spacing:-0.015em;max-width:640px}

/* experience */
.role-item{padding:22px 0;border-bottom:1px solid var(--line);position:relative}
.role-item:last-child{border-bottom:none}
/* experience grouped by company: company is the block header, positions stack beneath */
.exp-group{border-top:1px solid var(--line)}
.exp-group:first-child{border-top:none}
.exp-co{font-family:var(--display);font-size:18px;font-weight:700;letter-spacing:-0.02em;padding-top:22px}
.exp-group .role-item{border-bottom:none;padding:12px 0 0}
.exp-group .role-head h3{font-size:15.5px;font-weight:600}
.role-head{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:baseline}
.role-head h3{font-size:18px;font-weight:600;letter-spacing:-0.02em}
.role-head .co{color:var(--grey);font-weight:400}
.role-head .when{font-family:var(--mono);font-size:12px;color:var(--faint);white-space:nowrap}
.role-head .role-loc{font-weight:400;color:var(--grey)}
.pcv-role-head .pcv-loc{font-weight:400;color:#666}
.bullets{list-style:none;margin-top:12px;display:flex;flex-direction:column;gap:8px}
.bullets li{position:relative;padding-left:28px;font-size:15px;color:var(--grey);line-height:1.5;transition:.2s;border-radius:2px}
.bullets li::before{content:"—";position:absolute;left:0;top:0;width:20px;color:var(--faint)}
.bullets li.hl{padding-left:28px}
/* relevance highlight */
.hl{background:var(--ok-tint);color:var(--ink);box-shadow:inset 3px 0 0 var(--ok);padding:6px 10px 6px 20px;margin-left:-10px}
.hl::before{left:10px;color:var(--ok)}

/* skills */
.tags{display:flex;flex-wrap:wrap;gap:8px;align-items:center}   /* align-items:center: Lösch-Buttons strecken sich nicht auf Chip-Höhe */
.tag{border:1px solid var(--line);padding:7px 13px;border-radius:2px;font-size:13px;color:var(--grey);transition:.2s;background:var(--paper-2)}
.tag.hl{border-color:var(--ok);color:var(--ink);background:var(--ok-tint);box-shadow:none;padding:7px 13px;margin:0}
.tag.hl::before{display:none}

/* education / simple list */
.simple{display:flex;flex-direction:column;gap:18px}
.simple .it{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:baseline}   /* 3. Spalte für den Lösch-Button im Edit-Modus (sonst volle Zeile) */
.simple .it h4{font-size:15.5px;font-weight:600}
.simple .it p{font-size:13.5px;color:var(--grey)}
.simple .it .when{font-family:var(--mono);font-size:12px;color:var(--faint)}

/* ---------- PANELS (job + letter) ---------- */
.page-head{padding:64px 0 8px;max-width:760px}
.page-head .eyebrow{margin-bottom:16px}
.page-head h2{font-size:clamp(32px,5vw,52px);line-height:1;font-weight:800;letter-spacing:-0.04em}
.page-head p{font-size:16px;color:var(--grey);margin-top:18px;line-height:1.55;max-width:620px}

.panel{border:1px solid var(--line);background:var(--paper-2);border-radius:3px;padding:28px;margin-top:26px}

.field{margin-bottom:18px}
.field > label{display:block;font-size:13px;font-weight:500;margin-bottom:7px}
.field > label .hint{display:block;font-weight:400;color:var(--faint);font-size:12px;margin-top:3px;line-height:1.45}
.field .why{font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;color:var(--accent);margin-top:7px;display:flex;gap:7px}
.field .why::before{content:"⌖"}
input[type=text],input[type=email],input[type=url],input[type=password],textarea,select{
  width:100%;border:1px solid var(--line);background:var(--paper);border-radius:2px;
  padding:11px 13px;font-size:14px;font-family:var(--font);color:var(--ink);transition:.15s;
}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--ink)}
textarea{resize:vertical;min-height:74px;line-height:1.5}
.seg{display:flex;gap:0;border:1px solid var(--line);border-radius:2px;overflow:hidden;width:max-content;margin-bottom:16px}
.seg button{background:var(--paper);border:none;padding:9px 16px;font-size:13px;color:var(--grey);font-weight:500;border-right:1px solid var(--line)}
.seg button:last-child{border-right:none}
.seg button.active{background:var(--ink);color:var(--paper)}
.dropzone{border:1.5px dashed var(--line);border-radius:3px;padding:30px;text-align:center;color:var(--faint);font-size:13.5px;transition:.15s;cursor:pointer}
.dropzone:hover{border-color:var(--ink);color:var(--grey)}
.dropzone.has{border-style:solid;border-color:var(--ok);color:var(--ok)}

/* requirement chips + match list */
.reqgrid{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.req.dis{opacity:.55}
.req-act{margin-top:9px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.req-act .btn{flex:none}
.req-btns{display:flex;gap:8px;flex-wrap:wrap}
/* roter Aktivitäts-Spinner auf Papiergrund. Doppelklasse für höhere Spezifität: die
   Basis-.spinner-Regel (weiß, für dunkle Buttons) steht SPÄTER im Stylesheet und gewann
   sonst per Reihenfolge — der Spinner war auf Papier unsichtbar. */
.spinner.spin-acc{border-color:rgba(0,0,0,.14);border-top-color:var(--accent);vertical-align:-2px;margin-right:4px}
.req{display:grid;grid-template-columns:22px 1fr auto;gap:12px;align-items:start;padding:13px 14px;border:1px solid var(--line);border-radius:2px;background:var(--paper)}
.req .st{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:11px;color:#fff;margin-top:1px}
.req .st.full{background:var(--ok)}
.req .st.part{background:var(--warn)}
.req .st.gap{background:var(--accent)}
.req .txt{font-size:14px}
.req .txt small{display:block;color:var(--faint);font-size:12.5px;margin-top:3px;line-height:1.45}
.req .mtag{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);white-space:nowrap;margin-top:3px}

.qcard{border-left:2px solid var(--accent);padding:4px 0 4px 18px;margin-bottom:22px}
.qcard .q{font-size:14.5px;font-weight:500;margin-bottom:9px}
/* Einklappbar: <details>/<summary> statt eigener Klapp-Logik. Beantwortete Fragen starten
   zugeklappt (grüne Nummer als Merkmal), offene bleiben offen. */
.qcard>summary{list-style:none;cursor:pointer;display:flex;align-items:baseline}
.qcard>summary::-webkit-details-marker{display:none}
.qcard>summary::after{content:'▸';margin-left:auto;padding-left:12px;color:var(--faint);font-size:12px}
.qcard[open]>summary::after{content:'▾'}
.qcard.answered>summary .num{color:var(--ok)}
.qcard .q .num{font-family:var(--mono);font-size:11px;color:var(--accent);margin-right:9px}
/* cover-letter answer analysis (web-researched) */
.letter-research{font-size:13px;line-height:1.5;color:var(--grey);background:var(--paper-2);border:1px solid var(--line);border-radius:3px;padding:11px 14px;margin-bottom:18px}
.qana:empty{display:none}
.qana{margin-top:12px;border-top:1px dashed var(--line);padding-top:12px;font-size:13px}
.qana-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.qana-cov{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;padding:2px 8px;border-radius:999px;border:1px solid var(--line-strong);color:var(--grey)}
.qana-cov.cov-stark{color:var(--ok,#3a7d44);border-color:var(--ok,#3a7d44)}
.qana-cov.cov-teilweise{color:#9a7b18;border-color:#cbb26a}
.qana-cov.cov-schwach,.qana-cov.cov-leer{color:var(--accent);border-color:var(--accent)}
.qana-assess{color:var(--ink);line-height:1.45}
.qana-block{margin-top:9px}
.qana-lbl{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-bottom:4px}
.qana-block ul{margin:0;padding-left:18px;color:var(--grey);line-height:1.5}
.qana-rw{background:var(--accent-tint);border-radius:3px;padding:10px 12px}
.qana-rw p{margin:0 0 9px;color:var(--ink);line-height:1.5}
/* Q3 proof-points expander */
.proof-sugg{margin:10px 0 4px;font-size:13px}
.proof-sugg>summary{cursor:pointer;color:var(--accent);font-weight:500;list-style:none;user-select:none}
.proof-sugg>summary::-webkit-details-marker{display:none}
.proof-body{margin-top:10px}
.proof-note{color:var(--grey);font-size:12.5px;display:flex;align-items:center;gap:8px}
.proof-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:11px}
.proof-list li{border-left:2px solid var(--line-strong);padding-left:12px}
.proof-cv{font-weight:500;color:var(--ink);line-height:1.45}
.proof-req{font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;color:var(--accent);margin-top:3px}
.proof-why{font-size:12px;color:var(--grey);margin-top:3px;line-height:1.4}
/* improve-existing-letter scorecard */
.letter-score{margin:8px 0 16px;border:1px solid var(--line);border-radius:3px;padding:12px 14px;background:var(--paper-2)}
.score-row{display:flex;align-items:baseline;gap:10px;padding:5px 0;font-size:13px;flex-wrap:wrap}
.score-row b{min-width:120px;font-weight:600}
.score-note{color:var(--grey);flex:1;min-width:170px;line-height:1.4}

.result{border:1px solid var(--line-strong);border-radius:3px;padding:30px 32px;margin-top:24px;background:var(--paper-2);display:none}
.result.on{display:block}
.result .letterbody{font-size:15.5px;line-height:1.7;white-space:pre-wrap;letter-spacing:-0.01em;font-family:'Inter',serif}
.notice{font-family:var(--mono);font-size:11px;letter-spacing:.03em;color:var(--grey);background:var(--accent-tint);border:1px solid var(--accent);border-radius:2px;padding:9px 12px;display:flex;gap:9px;align-items:flex-start;margin-bottom:20px}
.notice b{color:var(--accent)}

.spinner{display:inline-block;width:13px;height:13px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}
.btn.ghost .spinner{border:2px solid rgba(0,0,0,.18);border-top-color:var(--accent)}   /* Hintergrund-Aktivität einheitlich in Signalrot */
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- PROCESSING / PROGRESS ---------- */
.proc-bg{position:fixed;inset:0;background:rgba(19,19,15,.45);backdrop-filter:blur(3px);z-index:400;display:none;place-items:center;padding:24px}
.proc-bg.on{display:grid}
.proc{background:var(--paper);border:1px solid var(--line-strong);border-radius:4px;width:100%;max-width:430px;padding:26px 28px;box-shadow:0 24px 60px rgba(0,0,0,.18)}
.proc-title{font-size:15px;font-weight:600;letter-spacing:-.01em;margin-bottom:18px;display:flex;align-items:center;gap:11px}
.proc-title .spinner{border:2px solid rgba(0,0,0,.16);border-top-color:var(--accent);width:14px;height:14px}
.proc-track{height:6px;background:var(--line);border-radius:4px;overflow:hidden}
.proc-track i{display:block;height:100%;width:0;background:var(--accent);transition:width .35s ease}
.proc-step{font-family:var(--mono);font-size:11.5px;color:var(--grey);margin-top:13px;letter-spacing:.02em;min-height:14px}

/* ---------- MODAL (settings) ---------- */
.modal-bg{position:fixed;inset:0;background:rgba(19,19,15,.45);backdrop-filter:blur(3px);z-index:100;display:none;place-items:center;padding:24px}
.modal-bg.on{display:grid}
.modal{background:var(--paper);border:1px solid var(--line-strong);border-radius:4px;max-width:480px;width:100%;padding:30px;max-height:90vh;overflow:auto;position:relative}
.modal.modal-wide{max-width:660px}
/* keep save/cancel rows pinned to the bottom of a scrolling modal */
.modal .ce-actions{position:sticky;bottom:-30px;background:var(--paper);margin:8px -30px -30px;padding:18px 30px;border-top:1px solid var(--line-strong);z-index:2}
.modal h3{font-size:18px;font-weight:700;letter-spacing:-0.02em;margin-bottom:6px}
.modal .sub{font-size:13px;color:var(--grey);margin-bottom:22px;line-height:1.5}
.modal .close{position:relative;float:right;margin-top:-6px}
.vbar{display:flex}
.ver-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.ver-row small{display:block;color:var(--grey)}
.switch{width:42px;height:24px;border-radius:14px;background:var(--line);border:none;position:relative;transition:.2s;flex:none}
.switch.on{background:var(--accent)}
.switch::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.2s}
.switch.on::after{left:21px}

/* ---------- NORMALIZED REQUIREMENTS ---------- */
.req .txt .lvl,.aw-skm-title .lvl{display:inline-block;font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;padding:2px 7px;border-radius:2px;margin-left:8px;vertical-align:middle}
.lv-must{background:var(--ink);color:#fff}
.lv-imp{background:var(--line);color:var(--grey)}
.lv-nice{border:1px solid var(--line);color:var(--faint)}
.req .mtag{font-family:var(--mono);font-size:13px;color:var(--ink);letter-spacing:0}
.fitcard .big em{font-style:normal;font-size:12px;color:var(--faint)}
/* insights (strengths / gaps / recommendations) */
.ins-none{font-size:12.5px;color:var(--faint)}

/* ATS */
.atschip{font-family:var(--mono);font-size:11.5px;letter-spacing:.02em;padding:6px 11px;border-radius:2px;border:1px solid var(--line)}
.atschip.has{color:var(--ok);border-color:var(--ok);background:rgba(58,125,68,.06)}
.atschip.miss{color:var(--accent);border-color:var(--accent);background:var(--accent-tint)}
.lib-tags{display:flex;flex-wrap:wrap;gap:6px;padding:2px 0 8px}
.lib-tags .atschip{font-size:10px;padding:2px 8px;color:var(--grey)}

/* ---------- FIT ANALYSIS ---------- */
.dim{margin-bottom:16px}
.dim .bar{height:5px;background:var(--line);border-radius:3px;overflow:hidden}
.dim .bar i{display:block;height:100%;background:var(--ink);width:0;transition:width .8s cubic-bezier(.2,.7,.2,1)}
.dim .note{font-size:12.5px;color:var(--faint);margin-top:5px;line-height:1.45}
/* kompakte Score-Karte (Anschreiben-Passung unter der Ergebnis-Kachel) */
.fitcard.fitcard-sm{padding:14px 18px;margin-top:10px}
.fitcard.fitcard-sm .big{font-size:28px}
/* Formular-Antworten: Antwortkörper editierbar, ruhig gerahmt */
.fq-a{white-space:pre-wrap;font-size:13.5px;line-height:1.6;margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:3px}
.fq-a:focus{outline:none;border-color:var(--line-strong)}
/* Vorschlag aus früheren Anschreiben unter leeren Fragefeldern */
.rv-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-height:46vh;overflow:auto}
@media(max-width:560px){.rv-cols{grid-template-columns:1fr}}
.rv-ch{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}
.rv-list{list-style:none;display:flex;flex-direction:column;gap:9px}
.rv-list li{font-size:13px;line-height:1.4;border-bottom:1px solid var(--line);padding-bottom:9px}
.rv-list b{font-weight:600}
.req[data-openreq]{cursor:pointer}
.lq-note{margin-top:5px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.fitcard{border:1px solid var(--line-strong);border-radius:3px;padding:20px 22px;margin-top:24px;display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap}
.fitcard .big{font-family:var(--mono);font-size:36px;font-weight:500;letter-spacing:-.02em;line-height:.95}
.fitcard .big span{font-size:14px;color:var(--faint)}
.fitcard .verdict{flex:1;min-width:230px}
.fitcard .vlabel{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:4px 10px;border-radius:2px;margin-bottom:10px;color:#fff}
.v-strong{background:var(--ok)}.v-selective{background:var(--ink)}.v-stretch{background:var(--warn)}.v-misfit{background:var(--accent)}
.fitcard .vr{font-size:14px;line-height:1.55}
.fitcard .conf{font-family:var(--mono);font-size:10.5px;color:var(--faint);letter-spacing:.06em;margin-top:10px;text-transform:uppercase}

/* ---------- MODE SEPARATION (Recruiter / Kandidat) ---------- */
body.mode-reader .candidate-only{display:none !important}
/* reader view: hide competence/relevance highlighting + badges (candidate-only signals) */
body.mode-reader li.hl{background:none !important;box-shadow:none !important;padding:0 0 0 28px !important;margin-left:0 !important}
body.mode-reader .tag.hl{border-color:var(--line) !important;background:var(--paper-2) !important;color:var(--grey) !important}
/* reader view: hide the coverage % + 'tailored' note in the active-application bar */
body.mode-candidate .reader-only{display:none !important}
/* PIN-Recruiter: komplette App-Chrome aus — die Sicht hat ihren eigenen Kopf (#recHead) */
body.mode-recruiter .topbar,body.mode-recruiter .cv-menu-wrap{display:none !important}
/* Recruiter-Kopf: Kontext (wer · wofür) + PDF + Sprache */
.rec-head{position:sticky;top:0;z-index:60;background:rgba(251,250,247,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.rec-head-in{max-width:var(--maxw);margin:0 auto;padding:10px 20px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.rec-ctx{min-width:0}
.rec-ctx b{font-weight:700;font-size:15px}
.rec-ctx-for{display:block;color:var(--grey);font-size:12.5px}
.rec-acts{margin-left:auto;display:flex;align-items:center;gap:10px}
/* Anschreiben inline in der Recruiter-Sicht (Ein-Seiten-Erlebnis) */
.rec-letter{margin-top:44px;border-top:2px solid var(--line-strong);padding-top:26px}
.rec-letter h2{font-size:15px;letter-spacing:.02em;margin:0 0 6px}
.rec-letter-meta{font-family:var(--mono);font-size:11px;color:var(--faint);letter-spacing:.08em;text-transform:uppercase;margin-bottom:16px}
.rec-letter-body{max-width:70ch;font-size:15px;line-height:1.66;white-space:pre-wrap}
#logoutBtn{line-height:1}

/* ---------- DASHBOARD ---------- */
.dash-list{display:flex;flex-direction:column}
.dash-row{display:grid;grid-template-columns:46px 1fr auto auto 150px auto;gap:18px;align-items:center;padding:16px 4px;border-bottom:1px solid var(--line)}
.dash-row .logo{width:46px;height:46px;border:1px solid var(--line);border-radius:6px;position:relative;display:grid;place-items:center;background:var(--paper-2);overflow:hidden}
.dash-row .logo span{font-family:var(--mono);font-size:16px;color:var(--faint)}
.dash-row .logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff;padding:5px}
.drole{min-width:0}
.drole b{display:block;font-size:15px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.drole span{font-size:12.5px;color:var(--faint)}
.covchip{font-family:var(--mono);font-size:12px;border:1px solid var(--line);border-radius:2px;padding:4px 9px;color:var(--ink)}
.covchip.stale{border-style:dashed;color:var(--faint)}
.covrefresh{margin-left:6px;vertical-align:middle}
.ddate{font-family:var(--mono);font-size:11.5px;color:var(--faint);white-space:nowrap}
select.dstatus{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:7px 9px;border-radius:2px;border:1px solid var(--line);background:var(--paper);cursor:pointer}
select.dstatus.sv-applied{color:#2b6cb0;border-color:#2b6cb0}
select.dstatus.sv-interview{color:var(--warn);border-color:var(--warn)}
select.dstatus.sv-offer{color:var(--ok);border-color:var(--ok)}
select.dstatus.sv-rejected{color:var(--accent);border-color:var(--accent)}
.dactions{display:flex;gap:7px;align-items:center}
.dash-del{width:30px;height:30px;font-size:12px}
.dash-empty{font-size:14px;color:var(--faint);padding:30px 0}
.emp-row{grid-template-columns:46px 1fr auto !important}
.emp-jobs{padding:2px 4px 16px 64px}
.emp-jobs-head{display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--faint);margin:4px 0 8px}
.ej-count{font-family:var(--mono);color:var(--ink);background:var(--paper-2);border:1px solid var(--line);border-radius:10px;padding:1px 8px;font-size:11px}
.ej-badge{background:var(--accent,#2f6df6);color:#fff;border-radius:10px;padding:1px 8px;font-size:10.5px;letter-spacing:.02em;text-transform:uppercase;font-weight:600}
.ej-row{padding:9px 0;border-top:1px dashed var(--line)}
.ej-row:first-of-type{border-top:none}
.ej-main{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ej-main a{font-weight:600;color:var(--ink);text-decoration:none}
.ej-main a:hover{text-decoration:underline}
.ej-score{font-family:var(--mono);font-size:12px;border:1px solid var(--line);border-radius:5px;padding:1px 7px;min-width:42px;text-align:center}
.ej-score.ej-strong{background:#e8f5ec;border-color:#9bd3ad;color:#1d7a3e}
.ej-score.ej-ok{background:#eef4ff;border-color:#a9c5f5;color:#2f6df6}
.ej-score.ej-stretch{background:#fff6e6;border-color:#f0d199;color:#a9760a}
.ej-score.ej-low{background:var(--paper-2);color:var(--faint)}
.ej-meta{display:flex;gap:12px;font-size:12px;color:var(--faint);margin-top:3px}
.ej-snip{font-size:12.5px;color:var(--muted,#555);margin-top:4px;line-height:1.45}
.ej-actions{display:flex;gap:8px;margin-top:7px}
@media(max-width:760px){.emp-jobs{padding-left:8px}}
@media(max-width:760px){
  .dash-row{grid-template-columns:40px 1fr auto;grid-template-areas:'logo role status' 'logo meta actions';gap:6px 14px}
  .dash-row .logo{grid-area:logo;width:40px;height:40px}
  .drole{grid-area:role}.dcov{grid-area:meta}.ddate{display:none}
  select.dstatus{grid-area:status}.dactions{grid-area:actions;justify-self:end}
}

/* ---------- WORK RESULTS ---------- */
.works-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}
.work-card{border:1px solid var(--line);border-radius:4px;overflow:hidden;background:var(--paper-2);display:flex;flex-direction:column}
.work-media{display:block;width:100%;aspect-ratio:16/9;background:#0d0d10;border:none;position:relative;overflow:hidden;object-fit:cover}
/* every card preview banner is forced to 16:9 and the media is cropped (cover), never letterboxed/fitted */
.work-media img,.work-media video,.work-media iframe{width:100%;height:100%;object-fit:cover;display:block;border:none}
a.work-media{display:grid;place-items:center;color:#fff;text-decoration:none}
.work-media .work-go{position:absolute;top:8px;right:9px;background:rgba(0,0,0,.55);color:#fff;font-size:12px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center}
.work-media.app-shot img{object-position:top center}   /* show the top section of the screenshot in the 16:9 frame */
.work-linkbox{font-family:var(--mono);font-size:13px;background:var(--ink)}
.work-body{padding:13px 14px 15px}
.work-type{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}
.work-body b{font-size:14.5px;font-weight:600;letter-spacing:-.01em;display:block}
.work-body p{font-size:12.5px;color:var(--grey);margin-top:5px;line-height:1.45}
.work-foot{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.work-rel{font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--faint)}
.role-works{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;margin-bottom:18px}
.workchip{display:inline-flex;align-items:center;gap:9px;text-align:left;color:var(--ink);background:var(--paper-2);border:1px solid var(--line-strong);border-radius:14px;padding:7px 14px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.workchip:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.workchip .wc-ic{font-size:13px;opacity:.8}
.workchip .wc-text{display:flex;flex-direction:column;line-height:1.18}
.workchip .wc-type{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.workchip:hover .wc-type{color:rgba(255,255,255,.85)}
.workchip .wc-title{font-size:12.5px;font-weight:600}
@keyframes chipPulse{0%{transform:scale(1);box-shadow:0 0 0 0 var(--accent-tint)}30%{transform:scale(1.06);box-shadow:0 0 0 5px var(--accent-tint)}100%{transform:scale(1);box-shadow:0 0 0 0 transparent}}
.workchip.pulse{animation:chipPulse 1s ease}
.work-url{font-family:var(--mono);font-size:11px;color:var(--accent);text-decoration:none;word-break:break-all}
/* app card (compact) */
.app-card .app-head{display:flex;gap:12px;align-items:center;padding:14px 14px 0}
.app-icon{width:46px;height:46px;border-radius:11px;object-fit:cover;border:1px solid var(--line);flex:none}
.app-icon.ph{background:linear-gradient(135deg,#e9e6dd,#d8d3c6)}
/* app cover picker: selectable screenshot thumbnails in the works editor */
.shots-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.shots-strip .shot-pick{position:relative;width:84px;height:54px;border:2px solid var(--line);border-radius:4px;overflow:hidden;cursor:pointer;background:#0d0d10;padding:0;flex:none}
.shots-strip .shot-pick img{width:100%;height:100%;object-fit:cover;display:block}
.shots-strip .shot-pick.sel{border-color:var(--accent)}
.shots-strip .shot-pick .cov-badge{position:absolute;top:0;left:0;right:0;font-family:var(--mono);font-size:8px;letter-spacing:.1em;text-transform:uppercase;background:var(--accent);color:#fff;text-align:center;padding:1px 0;display:none}
.shots-strip .shot-pick.sel .cov-badge{display:block}
.app-meta b{font-size:14.5px;font-weight:600}
.app-plat{display:flex;gap:5px;margin-top:4px}
.plat-badge{font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--grey);border:1px solid var(--line);border-radius:2px;padding:2px 6px}
.app-card p{padding:0 14px;font-size:12.5px;color:var(--grey);margin-top:8px;line-height:1.45}
.app-card .work-foot{padding:0 14px 14px}

/* ---------- shared form bits (bilingual grid, action bar, copy rows) ---------- */
.ce-actions{display:flex;gap:10px;padding:18px 0;border-top:1px solid var(--line-strong);margin-top:8px;position:sticky;bottom:0;background:var(--paper);z-index:2}

/* ---------- PHOTO / PORTRAIT ---------- */
.hero{position:relative}
/* Portrait fills the right side of the hero, sits slightly transparent, and its
   edges fade gradually to fully transparent via a radial mask (no hard frame). */
.portrait{
  width:min(40vw,460px);height:min(46vw,560px);object-fit:cover;object-position:center top;
  position:absolute;top:96px;right:0;display:none;
  opacity:.88;
  filter:var(--photo-filter,none);
  /* organic blob shape, intersected with soft edge-fades so ALL sides (incl. top) reach 0% */
  --mblob:radial-gradient(60% 48% at 58% 38%, #000 34%, rgba(0,0,0,.4) 66%, transparent 100%);
  --mtop:linear-gradient(to bottom, transparent 0%, #000 20%, #000 100%);
  --mbot:linear-gradient(to top, transparent 0%, #000 16%, #000 100%);
  --mside:linear-gradient(to left, transparent 0%, #000 12%, #000 88%, transparent 100%);
  -webkit-mask-image:var(--mblob),var(--mtop),var(--mbot),var(--mside);
          mask-image:var(--mblob),var(--mtop),var(--mbot),var(--mside);
  -webkit-mask-composite:source-in;mask-composite:intersect;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;mask-size:100% 100%;-webkit-mask-size:100% 100%;
  pointer-events:none;transition:filter .4s ease,opacity .4s ease;
}
.portrait.on{display:block}
/* analysis results as two-column tiles */
.hero.has-portrait .eyebrow,.hero.has-portrait h1,.hero.has-portrait .role,.hero.has-portrait .metarow{padding-right:340px}
@media(max-width:820px){
  .portrait{position:static;margin:0 0 22px;width:160px;height:200px;opacity:1;
    -webkit-mask-image:none;mask-image:none}
  .hero.has-portrait .eyebrow,.hero.has-portrait h1,.hero.has-portrait .role,.hero.has-portrait .metarow{padding-right:0}
}
@media print{.portrait{top:0;width:32mm;height:40mm;opacity:1;-webkit-mask-image:none;mask-image:none}.hero.has-portrait h1{padding-right:38mm}}

/* footer */
footer{border-top:1px solid var(--line);margin-top:50px}
.footer-inner{max-width:var(--maxw);margin:0 auto;padding:30px var(--gut);display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;font-family:var(--mono);font-size:11px;color:var(--faint);letter-spacing:.05em}

/* ---------- RESPONSIVE ---------- */
@media(max-width:820px){
  :root{--gut:22px}
  .row{grid-template-columns:1fr;gap:14px;padding:34px 0}
  .row .col-label .sticky{position:static}
  nav.mainnav button{padding:8px 8px;font-size:13px}
  .brand small{display:none}
}
@media(max-width:560px){
  .topbar-inner{gap:12px;height:58px}
  .brand{font-size:14px}
}

/* ---------- PRINT (CV → PDF) ---------- */
@media print{
  @page{size:A4;margin:0}   /* no browser headers/footers (date, page numbers, URL); margins come from #printRoot padding */
  .topbar,nav,footer,.actionbar,.no-print{display:none !important}
  body{background:#fff;font-size:11pt}
  .view{display:none !important}
  #view-cv{display:block !important}
  .wrap{max-width:none;padding:0}
  .hero{padding:0 0 12px}
  .hero h1{font-size:34pt}
  .hero .role{font-size:13pt}
  .row{grid-template-columns:150px 1fr;gap:24px;padding:18px 0;break-inside:avoid}
  .lede{font-size:12pt}
  .hl{background:none !important;box-shadow:inset 2px 0 0 #000 !important}
  .role-item{break-inside:avoid}
  a{text-decoration:none}
}
/* ---------- COMPACT PDF (buildPrintCv → #printRoot, auto-scaled to ≤3 pages) ---------- */
#printRoot{position:fixed;left:-99999px;top:0;box-sizing:border-box;width:210mm;padding:0 18mm;font-size:calc(10.5pt * var(--pscale,1));
  color:#111;background:#fff;line-height:1.4;-webkit-print-color-adjust:exact;print-color-adjust:exact}
/* table wrapper: empty thead/tfoot repeat on every printed page → per-page top/bottom margins
   (the only way to get page margins while @page margin:0 suppresses browser headers/footers) */
.pcv-page{width:100%;border-collapse:collapse}
.pcv-page td{padding:0;vertical-align:top}
.pcv-page tbody,.pcv-page tr,.pcv-page td{break-inside:auto;page-break-inside:auto}
.pcv-vspace{height:16mm}
/* recruiter link + PIN footer: tfoot cell only RESERVES the space per page (Chrome setzt den
   tfoot auf der letzten Seite direkt hinter den Inhalt, nicht ans Blattende) — die sichtbare
   Fußzeile ist .pcv-foot-fix: position:fixed wiederholt sie im Druck auf jeder Seite ganz unten */
.pcv-foot-cell{height:16mm}
.pcv-foot-fix{display:none}
@media print{.pcv-foot-fix{display:block;position:fixed;left:0;right:0;bottom:0;padding:0 18mm 3mm;box-sizing:border-box;background:#fff}}
.pcv-foot{font-family:var(--mono);font-size:7.2pt;letter-spacing:.02em;color:#888;text-align:center;line-height:1.45;border-top:.5px solid #ddd;padding-top:1.4mm;max-width:100%;overflow-wrap:anywhere}
.pcv-foot b{color:#555;font-weight:600}
.pcv-foot a{color:#555;text-decoration:underline;text-underline-offset:2px}
.pcv-hero{display:flex;align-items:flex-start;gap:1.3em;padding-bottom:.4em;margin-bottom:.8em}
.pcv-hero-main{flex:1;min-width:0}
.pcv-portrait{width:7.4em;height:9.4em;object-fit:cover;object-position:center top;border:1px solid #ccc;flex:none;filter:var(--photo-filter,none)}
.pcv-hero h1{font-family:var(--display);font-size:2.05em;line-height:1.04;margin:0 0 .12em;letter-spacing:-.01em}
.pcv-eyebrow{font-family:var(--mono);font-size:.7em;letter-spacing:.16em;text-transform:uppercase;color:#666;margin-bottom:.4em}
.pcv-role{font-size:1.04em;color:#333;margin:.08em 0 .32em;line-height:1.25}
.pcv-role b{font-weight:600;color:#111}
.pcv-meta{font-family:var(--mono);font-size:.7em;color:#555;display:flex;flex-wrap:wrap;gap:.15em .9em}
.pcv-sec{margin-top:1.6em}
.pcv-sec>h2{font-family:var(--mono);font-size:.72em;letter-spacing:.14em;text-transform:uppercase;color:#888;border-bottom:.5px solid #ccc;padding-bottom:.2em;margin:0 0 .6em;break-after:avoid}
.pcv-profile{font-size:1.0em;line-height:1.5;margin:0}
.pcv-group{margin-bottom:1em}
.pcv-group:last-child{margin-bottom:0}
.pcv-group-head{font-size:1.06em;font-weight:700;color:#111;border-bottom:.5px solid #e2e2e2;padding-bottom:.14em;margin-bottom:.45em;break-after:avoid}
.pcv-role-item{margin-bottom:.55em;break-inside:avoid}
.pcv-role-item:last-child{margin-bottom:0}
.pcv-role-head{display:flex;justify-content:space-between;align-items:baseline;gap:1em}
.pcv-role-head b{font-size:.96em;font-weight:600;color:#222}
.pcv-when{font-family:var(--mono);font-size:.7em;color:#777;white-space:nowrap}
.pcv-bullets{margin:.25em 0 0;padding-left:1.1em}
.pcv-bullets li{font-size:.92em;line-height:1.42;margin-bottom:.2em}
.pcv-tags{display:flex;flex-wrap:wrap;gap:.28em}
.pcv-tag{font-size:.8em;border:.5px solid #bbb;border-radius:2px;padding:.1em .48em}
.pcv-simple{display:grid;grid-template-columns:1fr 1fr;gap:.22em 1.4em}
.pcv-simple.pcv-1col{grid-template-columns:1fr}   /* education: one column */
.pcv-it{display:flex;justify-content:space-between;gap:.6em;font-size:.92em;padding:.14em 0}
.pcv-it b{font-weight:600}
.pcv-it p{margin:0;color:#555;display:inline}
/* inline-flex cards wrap and fragment across pages (unlike CSS grid, which Chrome won't page-break) */
.pcv-qrgrid{margin-top:.2em}
.pcv-qrcard{display:inline-flex;flex-direction:column;gap:.45em;align-items:stretch;width:31.8%;margin:0 .9% 1.1% 0;vertical-align:top;box-sizing:border-box;
  border:.5px solid #ccc;border-radius:3px;padding:.7em;break-inside:avoid}
.pcv-qrtop{display:flex;gap:.5em;align-items:center}
.pcv-qrdesc{border-top:.5px solid #e2e2e2;padding-top:.5em;font-size:.78em;line-height:1.4;color:#555}
.pcv-qrcode{width:4.6em;height:4.6em;flex:none;background:#fff}
.pcv-qrcode svg{width:100%;height:100%;display:block}
.pcv-qrmeta{min-width:0;flex:1}
.pcv-qrmeta b{font-size:.8em;display:block;line-height:1.18;overflow-wrap:anywhere}
.pcv-qrmeta span{font-family:var(--mono);font-size:.64em;color:#777;text-transform:uppercase;letter-spacing:.06em}
body.printing>*{display:none !important}
body.printing #printRoot{display:block !important;position:static !important;left:auto !important;width:210mm;margin:0}
/* sample-data watermark: only while printing (fixed = repeats on every page) */
.pcv-wm{display:none}
body.printing .pcv-wm{display:block;position:fixed;top:38%;left:4%;font-size:58pt;font-weight:800;letter-spacing:.12em;color:rgba(200,40,30,.14);transform:rotate(-22deg);z-index:99;pointer-events:none;white-space:nowrap}

/* locked tabs (no application selected) */
nav.mainnav button.locked{opacity:.38;cursor:not-allowed}
nav.mainnav button.locked::after{display:none !important}
/* transient hint toast */
.lock-toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%) translateY(12px);
  background:var(--ink);color:var(--paper);font-size:13px;font-weight:500;padding:11px 18px;border-radius:3px;
  box-shadow:0 14px 40px rgba(0,0,0,.28);opacity:0;pointer-events:none;transition:.25s;z-index:200}
.lock-toast.on{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto}
.lock-toast.ok{background:var(--ok)}
.lock-toast.err{background:var(--accent)}
.lock-toast button{margin-left:12px;background:none;border:1px solid rgba(255,255,255,.55);color:inherit;border-radius:2px;padding:3px 10px;font-size:12px;font-weight:600;cursor:pointer}
/* ---------- MASTER-CV NOTE (no application selected) ---------- */
.cv-master-note{display:none;font-size:11px;letter-spacing:.05em;color:var(--grey);border:1px dashed var(--line-strong);border-radius:3px;padding:9px 13px;margin:0 0 16px;max-width:560px}
body.no-active-job.mode-candidate .cv-master-note{display:block}
/* ---------- DISCLOSURES (advanced sections) ---------- */
details.adv{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}
details.adv summary{cursor:pointer;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--grey)}
details.adv summary:hover{color:var(--ink)}
details.adv[open] summary{margin-bottom:6px}
/* ---------- SCORE BREAKDOWN ---------- */
.breakdown{margin-top:10px;font-size:12.5px;color:var(--grey)}
.breakdown table{border-collapse:collapse;margin-top:8px}
.breakdown td{padding:3px 14px 3px 0;vertical-align:top}
.breakdown td:last-child{font-family:var(--mono);font-size:11.5px;white-space:nowrap}
/* ---------- A11Y / INTERACTION STATES ---------- */
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
button:disabled,.btn:disabled{opacity:.45;cursor:not-allowed}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  html{scroll-behavior:auto !important}
}
/* ---------- PRESENTATION VIEWER ---------- */
.pres-shell{background:var(--paper);border:1px solid var(--line-strong);border-radius:6px;width:100%;max-width:1100px;height:84vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 70px rgba(0,0,0,.3)}
.pres-bar{display:flex;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid var(--line);flex:none}
.pres-bar b{font-size:14px;font-weight:600;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#presFrame{flex:1;width:100%;border:none;background:#fff}
.shot-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:40px;height:40px;border-radius:999px;border:none;background:rgba(0,0,0,.55);color:#fff;font-size:24px;line-height:1;cursor:pointer;display:grid;place-items:center}
.shot-nav:hover{background:rgba(0,0,0,.8)}
/* ---------- AUTH GATE ---------- */
.authchip{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--grey);border:1px solid var(--line);border-radius:2px;padding:4px 8px}
.auth-bg{position:fixed;inset:0;background:var(--paper);z-index:300;display:grid;place-items:center;padding:24px}
/* 1128 = 200px Kapitel-Spalte + 48px Lücke + 880px Arbeitsfläche (unverändert breit) */
.aw-wrap{max-width:1128px;margin:0 auto;padding:8px var(--gut) 40px}
.aw-foot{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;gap:12px;margin-top:28px;border-top:1px solid var(--line);background:var(--paper);padding:14px 0}
.aw-foot-sp{flex:1}
/* gleiche grüne Schattierung wie die ATS-Nuggets (.atschip.has) */
@keyframes awHlPulse{0%{box-shadow:0 0 0 0 rgba(58,125,68,.45)}70%{box-shadow:0 0 0 6px rgba(58,125,68,0)}100%{box-shadow:0 0 0 0 rgba(58,125,68,0)}}
.atschip.pulse{animation:awHlPulse 1.1s ease-out infinite}
@media (prefers-reduced-motion:reduce){.atschip.pulse{animation:none}}
.aw-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:30px 0;color:var(--grey);font-size:13px}
.aw-loading .spinner{width:22px;height:22px;border:2px solid var(--line);border-top-color:var(--accent)}
.aw-skm-title{font-size:15px;margin:0 0 6px}
.aw-skm-pct{font-family:var(--mono);font-size:13px;margin:0 0 14px}
.aw-skm-pct.t-ok{color:var(--ok)} .aw-skm-pct.t-mid{color:var(--warn)} .aw-skm-pct.t-gap{color:var(--accent)}
.aw-skm-row{display:flex;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:13px;line-height:1.5}
.aw-skm-k{flex:none;width:80px;color:var(--faint);font-size:11.5px;text-transform:uppercase;letter-spacing:.04em}
.aw-skm-chips{display:flex;flex-wrap:wrap;gap:5px}
.aw-ev{margin:0 0 12px}
.aw-ev-station{font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;color:var(--faint);margin-bottom:3px}
.aw-ev-text{font-size:13px;line-height:1.55}
.aw-evmore{margin:0 0 12px}
.aw-evmore>summary{list-style:none;cursor:pointer;font-size:12px;color:var(--accent);margin:0 0 8px}
.aw-evmore>summary::-webkit-details-marker{display:none}
.aw-evmore .aw-ev{padding-top:9px;border-top:1px solid var(--line)}
body.authed .auth-bg{display:none}
.auth-card{width:100%;max-width:392px;border:1px solid var(--line-strong);border-radius:5px;background:var(--paper-2);padding:30px 30px 26px;box-shadow:0 24px 70px rgba(0,0,0,.12)}
.auth-brand{display:flex;align-items:center;gap:11px;margin-bottom:22px;font-weight:700;letter-spacing:-.02em}
.auth-brand .monogram{transform:none}
.auth-brand small{font-family:var(--mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);font-weight:400;margin-left:auto}
.auth-sub{font-size:13px;color:var(--grey);margin-bottom:18px;line-height:1.5}
.auth-msg{font-size:12.5px;border-radius:2px;padding:9px 12px;margin-bottom:14px;line-height:1.45}
.auth-link{display:block;width:100%;margin-top:12px;background:none;border:none;color:var(--accent);font-size:12.5px;cursor:pointer;text-align:center;padding:4px}
.auth-link:hover{text-decoration:underline}
.auth-msg.err{color:var(--accent);background:var(--accent-tint);border:1px solid var(--accent)}
.auth-msg.ok{color:var(--ok);background:rgba(58,125,68,.08);border:1px solid var(--ok)}
.bl-card{border:1px solid var(--line);border-radius:10px;padding:18px;margin:14px 0;max-width:680px}
.lib-toggle{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--grey);margin:0 0 14px;cursor:pointer}
/* „Bausteinbibliothek" passt bei 390px in keine Zeile und schob die Seite 40px breit. */
#view-library .hero h1{overflow-wrap:anywhere}
.lib-controls{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:0 0 14px}
.lib-controls .lib-toggle{margin:0}
#libFilter{border:1px solid var(--line);border-radius:5px;padding:6px 10px;font:inherit;font-size:13px;background:var(--paper-2);color:inherit;min-width:230px}
.lib-grp{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin:18px 0 6px;font-weight:400}
.lib-station{font-weight:600;margin:10px 0 4px;font-size:inherit}
summary.lib-station{cursor:pointer;list-style:none;user-select:none}
summary.lib-station::-webkit-details-marker{display:none}
summary.lib-station::before{content:"▸ ";color:var(--faint)}
details.lib-stwrap[open] summary.lib-station::before{content:"▾ "}
.lib-stn{color:var(--faint);font-weight:400}
.lib-block{border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin:0 0 8px;max-width:760px}
.lib-block.arch{opacity:.55}
/* Kopf und Variantenzeile brechen umbruchgesteuert statt per Breakpoint: reicht der Platz für den
   Text nicht mehr, rutschen Meta bzw. Aktionen auf eine eigene Zeile — statt sich zu überlagern. */
.lib-bhead{display:flex;justify-content:space-between;align-items:flex-start;gap:4px 10px;flex-wrap:wrap}
.lib-bmeta{color:var(--grey);font-size:12px;white-space:nowrap;flex:none}
.lib-vars{margin:8px 0 0;border-top:1px solid var(--line);padding-top:8px;display:none}
.lib-block.open .lib-vars{display:block}
.lib-var{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px dashed var(--line);flex-wrap:wrap}
.lib-var:last-child{border-bottom:none}
.lib-var .v-txt{font-size:13px;line-height:1.45;flex:1;min-width:min(100%,20rem)}
.lib-var .v-txt b{font-family:var(--mono);font-size:10px;color:var(--faint);margin-right:5px}
.lib-act{font-size:11px;color:var(--grey);white-space:nowrap;display:flex;gap:8px;flex-wrap:wrap;flex:none;align-content:flex-start}
.lib-act button,.lib-barch{background:none;border:none;padding:0;font:inherit;font-size:11px;color:var(--grey);cursor:pointer}
.lib-act button:hover:not(:disabled),.lib-barch:hover{text-decoration:underline}
.lib-act button:disabled{opacity:.55;cursor:default}
.lib-move select{max-width:min(520px,100%);font:inherit;font-size:12.5px;padding:4px 6px;border:1px solid var(--line);border-radius:4px;background:var(--paper-2);color:inherit}
.lib-btoggle{background:none;border:none;padding:0;font:inherit;text-align:left;color:inherit;cursor:pointer;display:flex;gap:7px;align-items:baseline;flex:1;min-width:min(100%,17rem)}
.lib-btoggle:focus-visible,.lib-act button:focus-visible,.lib-barch:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}
.lib-btoggle .chev{flex:none;color:var(--faint);transition:transform .15s;transform:translateY(.5px)}
.lib-block.open .lib-btoggle .chev{transform:rotate(90deg) translateX(.5px)}
.lib-elab{display:block}
.lib-elab b{font-family:var(--mono);font-size:10px;color:var(--faint)}
.lib-edit textarea{width:100%;margin:3px 0;font:inherit}
.lib-move{margin-top:6px;flex-basis:100%}   /* eigene Zeile: als drittes Flex-Item quetschte die Box den Variantentext */
@media (max-width:480px){.lib-controls{gap:10px}#libFilter{flex:1;min-width:0}}
.bl-card h3{margin:0 0 4px}
.bl-card .sub{color:var(--grey);margin:0 0 12px}
.bl-summary{max-width:680px;border:1px solid var(--line);border-radius:10px;padding:16px;margin:14px 0;background:var(--paper-2)}
.bl-summary ul{margin:8px 0 0;padding-left:18px}
.bl-summary li{margin:2px 0}
/* Phase 2 WYSIWYG */
#view-cv [contenteditable="true"]{outline:none;border-radius:3px;transition:background .12s}
#view-cv [contenteditable="true"]:hover{background:rgba(0,0,0,.03)}
#view-cv [contenteditable="true"]:focus{background:#fff7df;box-shadow:0 0 0 2px #e0c98a}
.wy-ctrls{display:none;gap:3px;margin-left:8px;vertical-align:middle}
.bullets li:hover .wy-ctrls{display:inline-flex}
.wy-hov:hover .wy-ctrls{display:inline-flex}   /* Einzeltexte (Rollenzeile, Kurzprofil) */
.wy-b{cursor:pointer;border:1px solid var(--line,#d8d3c7);border-radius:4px;padding:0 5px;font-size:11px;color:var(--grey,#6b6557);background:#fff;line-height:1.6;user-select:none}
.wy-b:hover{background:#f3efe6}
.wy-newbadge{position:absolute;top:-9px;right:-9px;display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--ok);color:#fff;font-size:10px;font-weight:700;line-height:1;z-index:2}
.cvb-title{margin:0 0 2px;font-size:17px}
.cvb-h{font-size:13px;color:var(--faint,#A29E94);margin-bottom:4px}
.cvb-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.cvb-row{padding:10px 12px;border:1px solid var(--line,#E5E2D9);border-radius:8px;cursor:pointer;font-size:14px;line-height:1.45}
.cvb-row:hover{border-color:var(--accent,#E5402B);background:var(--accent-tint,#FBEDE9)}
.cvb-add{font-weight:600;color:var(--accent,#E5402B);text-align:center}
.cvb-ta{width:100%;box-sizing:border-box;padding:9px 11px;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:14px;line-height:1.45;resize:vertical}
/* Projekt-Detail im Modal: editorial Blatt — Kopf, Fakten-Raster, Fließtext auf Lesebreite.
   Gleiche Mono-Mikrolabels und Linien wie CV-Sektionen; keine Karten in Karten. */
.wd-head{border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:18px}
.wd-eyebrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.wd-vis{border:1px solid var(--line-strong);border-radius:2px;padding:2px 7px;color:var(--grey)}
.wd-vis.priv{border-color:var(--accent);color:var(--accent);background:var(--accent-tint)}
.wd-title{margin:8px 0 0;font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1.15}
.wd-sub{margin-top:6px;font-family:var(--mono);font-size:11.5px;color:var(--grey);word-break:break-all}
.wd-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px 24px;margin:0 0 20px}
.wd-facts>div>dt{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:4px}
.wd-facts>div>dd{margin:0;font-size:13px;line-height:1.45}
.wd-body{font-size:13.5px;line-height:1.7;max-width:68ch}
.wd-body p{margin:0 0 12px}
.wd-body p:last-child{margin-bottom:0}
.wd-body .wd-h{display:block;margin:22px 0 6px;font-weight:650}   /* Luft ÜBER der Zwischenüberschrift, wenig darunter */
.wd-body p:first-child .wd-h:first-child{margin-top:0}
.wd-body code{font-family:var(--mono);font-size:12px;background:var(--paper-2);border:1px solid var(--line);border-radius:3px;padding:1px 5px}
/* Tabellen im Blatt-Look: Linien statt Kästen, Mono-Mikrokopf wie die Fakten-Labels.
   Eigener Scroll-Container, damit breite Repo-Tabellen das Modal nicht aufspreizen. */
.wd-body table{width:100%;border-collapse:collapse;margin:6px 0 16px;font-size:12.5px;line-height:1.5;display:block;overflow-x:auto}
.wd-body thead th{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-weight:400;text-align:left;white-space:nowrap;padding:0 18px 6px 0;border-bottom:1px solid var(--line-strong)}
.wd-body tbody td{padding:7px 18px 7px 0;border-bottom:1px solid var(--line);vertical-align:top}
.wd-body th:last-child,.wd-body td:last-child{padding-right:0}
.wd-body tbody tr:last-child td{border-bottom:none}
.wd-foot{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.wd-empty{font-size:13.5px;color:var(--faint)}
.wy-add{position:relative;cursor:pointer;color:#b08d2e;border:1px dashed #d9b441;border-radius:5px;padding:2px 8px;font-size:11px;display:inline-block;list-style:none;margin-top:4px}
/* „+ Stichpunkt" deutlicher: breiter, gestrichelter Akzent-Button statt Mini-Chip */
.bullets li.wy-add{display:inline-block;align-self:flex-start;margin:10px 0 20px;padding:7px 12px;font-size:12.5px;font-weight:600;color:var(--grey,#6b6557);border:1.5px dashed var(--line-strong);border-radius:6px;background:#F4F3F0}
.bullets li.wy-add::before{display:none}
.bullets li.wy-add:hover{background:transparent}
/* „✕ Station" oben rechts neben dem Datum */
.role-head-r{display:flex;align-items:baseline;gap:10px;flex:none}
.wy-stdel{color:var(--accent);border-color:rgba(229,64,43,.4)}
.wy-stdel:hover{background:var(--accent-tint)}
.wy-add-block{margin-top:10px}
.wy-tag-del{margin-left:2px}
.wy-tagpop{background:#fff;border:1px solid var(--line,#d8d3c7);border-radius:8px;padding:10px;box-shadow:0 8px 24px rgba(0,0,0,.14);display:flex;flex-direction:column;gap:6px;min-width:240px}
.wy-tagpop label{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--grey,#9a9488)}
.wy-tagpop input{padding:6px 8px;border:1px solid var(--line,#d8d3c7);border-radius:5px}
/* Anschreiben-Aktionen als ⋮-Menü oben rechts im Ergebnis-Kasten */
#letterResult{position:relative}
.lt-actions{position:absolute;top:16px;right:18px;z-index:20;display:flex;gap:8px;align-items:center}
.lt-menu-btn{width:34px;height:34px;border-radius:7px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.lt-menu-btn:hover{background:var(--paper-2);border-color:var(--ink)}
.lt-menu{position:absolute;top:40px;right:0;min-width:210px;background:var(--paper);border:1px solid var(--line-strong);border-radius:9px;box-shadow:0 10px 28px rgba(0,0,0,.13);padding:6px;display:none}
.lt-menu.on{display:block}
.lt-menu button{display:block;width:100%;text-align:left;background:none;border:0;padding:9px 12px;border-radius:6px;font:inherit;font-size:13px;color:var(--ink);cursor:pointer}
.lt-menu button:hover{background:var(--accent-tint)}
.lt-menu-sep{height:1px;background:var(--line);margin:5px 4px}
.cv-menu-wrap{position:absolute;top:34px;right:0;z-index:6;display:flex;gap:8px;align-items:center}
.cv-menu-wrap .lt-menu-btn{width:52px;height:52px;font-size:30px;border-radius:9px}
.cv-menu-wrap .lt-menu{right:0;left:auto;top:60px}
/* Fußleiste war an die Klasse .result-only gebunden, die seit dem Cockpit-Umbau NIEMAND mehr
   setzt (nur noch entfernt) — damit gab es beim Bearbeiten des Anschreibens weder Zurück noch
   ein explizites Sichern. Jetzt haengt sie am View; mode-reader blendet sie ueber .candidate-only aus. */
.cv-foot{display:flex}
body.no-active-job .cv-foot{display:none}   /* CV-Bottom-Nav nur im Bewerbungs-Kontext */
.cv-foot .btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}
/* Kompaktere CV-Darstellung — nur Bildschirm, Druck/PDF & andere Views unberührt */
@media screen{
  #view-cv .hero{padding:34px 0 22px}
  #view-cv .hero h1{font-size:clamp(38px,5.5vw,68px)}
  #view-cv .hero .role{margin-top:12px}
  #view-cv .metarow{margin-top:16px}
  #view-cv .actionbar{margin-top:22px}
  #view-cv .row{padding:26px 0;gap:40px}
  #view-cv .role-item{padding:14px 0}
  #view-cv .exp-co{padding-top:16px}
  #view-cv .exp-group .role-item{padding:9px 0 0}
}
@media print{.wy-ctrls,.wy-add,.wy-add-block,.wy-addstation,.wy-tag-del,.wy-b{display:none !important}}
.bw-chips{display:flex;gap:6px;flex-wrap:wrap;margin:.4em 0}
.bw-chip{padding:4px 10px;border:1px solid var(--line);border-radius:999px;background:none;cursor:pointer;font-size:.8em}
.bw-chip.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.bw-field.emph textarea{border-color:var(--line-strong)}
.bw-field.bw-req label::after{content:" *";color:var(--accent)}   /* NICHT .req — das ist die Grid-Klasse des Anforderungs-Rasters (343) */
.bw-origin{border-left:2px solid var(--ink);padding:8px 0 8px 12px;margin:0 0 16px}
.bw-origin b{display:block;font-size:12.5px;margin-bottom:3px}
.bw-origin p{margin:0;color:var(--grey);font-size:13px;line-height:1.5}
.bw-seed-hint{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--grey);margin:.3em 0;font-style:italic}
.bw-seed-hint .spinner{border-color:rgba(0,0,0,.16);border-top-color:var(--accent);width:12px;height:12px}
.bw-var{border:1px solid var(--line);border-radius:6px;padding:8px;margin:6px 0;cursor:pointer}
.bw-var.on{border-color:var(--accent)}
.bw-flag{color:#b8860b;font-weight:700}
.bw-var.has-flag{background:#fff8e1}
.bw-work{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--line);border-radius:6px;padding:4px 8px;margin:3px;cursor:pointer;font-size:.78em}
.bw-work.on{border-color:var(--accent)}
.bw-card{max-width:560px}
.bw-works{display:flex;flex-wrap:wrap;gap:6px;margin:.4em 0}
.bw-fields{display:flex;flex-direction:column;gap:.5em;margin:.4em 0}
.bw-fields textarea{width:100%}
.bw-actions{margin-top:.6em}
.bw-variants{margin:.4em 0}

/* ---------- MOBILE (am Sheet-Ende, damit Quellreihenfolge gegen alle Spezialregeln gewinnt) ---------- */
@media(max-width:820px){
  /* iOS Safari zoomt beim Fokus in Felder <16px — auf schmalen Breiten immer 16px */
  input[type=text],input[type=email],input[type=url],input[type=password],textarea,select,.lib-edit textarea{font-size:16px}
}
@media(any-pointer:coarse){
  .btn{min-height:44px}
  .btn.sm,.seg button{min-height:40px}
  .lt-menu-btn{width:44px;height:44px}
  .lt-menu button{padding:12px 14px}
}
@media(max-width:560px){
  .seg{max-width:100%;overflow-x:auto}
  .breakdown table{display:block;overflow-x:auto;max-width:100%}
  .ck-share-row #recLinkField{max-width:none;flex:1 1 100%}
  .lt-actions{position:static;justify-content:flex-end;margin:0 0 12px}
  .modal-bg{padding:12px}
  .modal{padding:22px}
  .modal .ce-actions{margin:8px -22px -22px;padding:14px 22px}
}
