/* Round 10c – Fortschritt (portal-progress.js) and Rookie-Pfad (portal-rookie.js). Design A "Nachtschicht".
   CSP: no inline styles in the markup; every colour and size lives here. Only scoped class selectors. */

/* --- Fortschritt: charts ------------------------------------------------------------------- */
.progress-page{min-width:0}
.progress-head .r4-tools{margin-left:auto}
.pg-chart-scroll{overflow-x:auto;max-width:100%;padding-bottom:4px}
.pg-chart{display:block;height:auto;max-width:none}
.pg-tick line{stroke:#2a2e37;stroke-width:1}
.pg-tick text,.pg-x{fill:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}
.pg-step{fill:none;stroke:#9fcbff;stroke-width:2.2;stroke-linejoin:round}
.pg-dot{fill:#46c969;stroke:var(--panel);stroke-width:2}
.pg-dot.first{fill:#9fcbff}
.pg-gain{fill:#8de3a3;font-size:10.5px;font-weight:700;font-variant-numeric:tabular-nums}
.pg-bar.good{fill:#46c969}
.pg-bar.ok{fill:#9fcbff}
.pg-bar.warn{fill:#f0b24a}
.pg-bar.bad{fill:#e32833}
.pg-bar.none{fill:#7f8696}
.pg-race{stroke-width:3;stroke-linecap:round}
.pg-race.gain{stroke:#2a5b38}
.pg-race.loss{stroke:#71101a}
.pg-race.same{stroke:#3a404c}
.pg-start{fill:var(--panel);stroke:#aab2c0;stroke-width:2}
.pg-finish{stroke:var(--panel);stroke-width:1.5}
.pg-finish.gain{fill:#46c969}
.pg-finish.loss{fill:#e32833}
.pg-finish.same{fill:#9fcbff}
.pg-inc{fill:var(--muted);font-size:10.5px;font-variant-numeric:tabular-nums}
.pg-inc.hot{fill:#f3cf8a;font-weight:700}
.pg-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:8px 0 2px;font-size:11.5px;color:var(--muted)}
.pg-legend span{display:inline-flex;align-items:center;gap:6px}
.pg-key{display:inline-block;width:10px;height:10px;border-radius:2px}
.pg-key.good,.pg-key.gain{background:#46c969}
.pg-key.ok{background:#9fcbff}
.pg-key.warn{background:#f0b24a}
.pg-key.bad,.pg-key.loss{background:#e32833}
.pg-key.start{background:transparent;border:2px solid #aab2c0;border-radius:50%}
.pg-summary{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:12.5px;color:var(--muted);margin:0 0 8px}
.pg-summary b{color:var(--text,#f5f5f5);margin-left:4px}
.progress-foot{margin:0}
.pg-select{height:30px;max-width:min(420px,100%);min-width:0;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--text,#f5f5f5);font:inherit;font-size:12.5px;letter-spacing:normal;color-scheme:dark}
.progress-page .r4-table tr.pg-sel td{background:var(--panel2)}
.progress-page .r4-table tr.pg-sel td:first-child{box-shadow:inset 3px 0 var(--red)}
.progress-page .r4-table tr[data-progress-combo]{cursor:pointer}
.progress-empty{line-height:1.6}
.progress-empty .r4-ctl{margin-top:10px}
.pg-fav{display:grid;gap:10px}
.pg-fav-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(60px,1fr) auto;gap:12px;align-items:center;font-size:13px}
.pg-fav-row b{display:block;overflow-wrap:anywhere}
.pg-fav-row small{display:block;color:var(--muted);font-size:11.5px}
.pg-fav-bar{width:100%;height:6px}
.pg-fav-bar .bg,.rk-bar .bg{fill:#252a34}
.pg-fav-bar .fg{fill:#9fcbff}

/* --- Rookie-Pfad ---------------------------------------------------------------------------- */
.rk-bar{display:block;width:100%;height:8px;margin-top:6px}
.rk-bar .fg{fill:#d8071d}
.rk-bar .fg.done{fill:#46c969}
.rk-card{display:grid;gap:10px}
.rk-head{display:flex;justify-content:space-between;align-items:center;gap:14px}
.rk-head > div{flex:1;min-width:0}
.rk-count{font-size:13px;color:var(--muted)}
.rk-count b{font-size:20px;color:var(--text,#f5f5f5);margin-right:2px}
.rk-next{margin:0;font-size:13px;padding:9px 12px;border-radius:9px;background:#132235;border:1px solid #2b4a6d;color:#d6e8ff}
.rk-next.ready{background:#15291c;border-color:#2a5b38;color:#bff0cc}
.rk-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.rk-list li{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:10px;align-items:center;padding:7px 0;border-top:1px solid var(--line);font-size:13px}
.rk-list li:first-child{border-top:0}
.rk-list li.done .rk-check{color:#46c969}
.rk-list li.open .rk-check{color:var(--muted)}
.rk-list li.done b{color:#bff0cc}
.rk-list .rk-bar{height:5px;margin-top:4px}
.rk-check{font-weight:800;text-align:center}
.rk-value{font-size:12px;color:var(--muted);white-space:nowrap}
.rk-progress-cell{display:grid;grid-template-columns:minmax(80px,1fr) auto;gap:8px;align-items:center;min-width:140px}
.rk-progress-cell .rk-bar{margin-top:0}
.rk-chips{display:flex;flex-wrap:wrap;gap:4px}
.rk-chip{font-size:11px;padding:1px 7px;border-radius:999px;border:1px solid var(--line);white-space:nowrap}
.rk-chip.done{background:#15291c;border-color:#2a5b38;color:#8de3a3}
.rk-chip.open{color:var(--muted)}
.rookie-page .r4-table tr.rk-ready td{background:rgb(70 201 105/.06)}
.rookie-page .r4-table tr.rk-ready td:first-child{box-shadow:inset 3px 0 #46c969}
.rookie-page .rk-next-label{display:block;font-weight:600;font-size:12.5px}
.rookie-page .rk-chips{max-width:360px}
.rookie-page .r4-table button.ghost,.rk-member button.ghost,.rk-config button.ghost{width:auto;margin:0}
.rk-member{display:grid;gap:10px}
.rk-races{display:grid;gap:2px}
.rk-races h3{font-size:13px;margin:6px 0 2px}
.rk-race{display:grid;grid-template-columns:128px minmax(0,1fr) auto;gap:10px;align-items:center;padding:7px 0;border-top:1px solid var(--line);font-size:13px}
.rk-race b{overflow-wrap:anywhere}
.rk-race small{display:block;color:var(--muted);font-size:11.5px;overflow-wrap:anywhere}
.rk-race-result{white-space:nowrap;font-size:12.5px;color:var(--muted)}
.rk-race-result b{color:var(--text,#f5f5f5)}
.progress-page .race-crew,.rk-races .race-crew{display:block;color:var(--muted);font-size:11.5px;margin-top:2px}
.rk-confirm .rk-hours{flex:0 0 110px;min-width:0}
.rk-confirm{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.rk-confirm label{display:grid;gap:4px;flex:1;min-width:220px;font-size:12px;color:var(--muted)}
.rk-confirmations h3{font-size:13px;margin:4px 0}
.rk-confirmation{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 0;border-top:1px solid var(--line);font-size:13px}
.rk-confirmation small{display:block;color:var(--muted);font-size:11.5px}
.rk-config{display:grid;gap:8px}
.rk-config-row{display:grid;grid-template-columns:28px minmax(150px,1.3fr) 110px 120px minmax(160px,1.6fr) auto;gap:10px;align-items:end;padding:8px 0;border-top:1px solid var(--line)}
.rk-config-row:first-child{border-top:0}
.rk-config-row label{display:grid;gap:4px;font-size:11.5px;color:var(--muted);min-width:0}
.rk-config-row .rk-enabled{align-self:center}
.rk-config-row .rk-hidden{visibility:hidden}
.rk-row-actions{display:flex;gap:4px}
.rk-config-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding-top:10px;border-top:1px solid var(--line)}
.rk-config-actions .spacer{flex:1}
.rk-config .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media(max-width:899px){
 .rk-config-row{grid-template-columns:28px minmax(0,1fr) minmax(0,1fr)}
 .rk-config-row .rk-label{grid-column:2 / -1}
 .rk-config-row .rk-hidden{display:none}
 .rk-row-actions{grid-column:2 / -1}
 .pg-fav-row{grid-template-columns:minmax(0,1fr) auto}
 .rk-race{grid-template-columns:minmax(0,1fr) auto}
 .rk-race .rk-race-type{grid-column:1 / -1}
 .pg-fav-row .pg-fav-bar{grid-column:1 / -1;grid-row:2}
}
