/* Gemeinsame Gestaltung von Anmeldung und Webapp. Fachliche Zustandsfarben bleiben erhalten. */
:root{--ek-card-radius:20px;--ek-control-radius:10px;--ek-section-gap:16px}
#app .card,#app .tile,#dlg .tile{border-radius:var(--ek-card-radius);padding:20px;gap:14px}
#app .card>h2{font-size:18px;line-height:1.3;font-weight:600;letter-spacing:0}
#app .card>h2.ctog{margin-top:-4px;margin-bottom:0;min-height:40px}
#app .card.collapsed{padding:12px 20px}
#app .card.collapsed>h2.ctog{min-height:36px;margin:0}
#app .field{gap:6px}
#app .field label{font-size:13px;font-weight:500;letter-spacing:0;text-transform:none}
#app .field input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
#app .field select,#app .field textarea{border-radius:var(--ek-control-radius);min-height:44px;padding:10px 12px;max-width:100%}
#app .field textarea{line-height:1.5}
#app button:not(.strava-connect-button):not(.chat-send):not(.chat-clear):not(.mini-cal-day):not(.set-item){border-radius:var(--ek-control-radius);min-height:40px;font-size:14px;padding:9px 13px}
#app button.primary{font-weight:600}
/* Navigation behält ihre eigene kompakte Schrift, sonst werden die Beschriftungen auf dem Telefon abgeschnitten. */
#app #nav button,dialog#dlg.page #nav button{min-height:48px;font-size:12px;padding:4px 8px;border-radius:8px}
@media(max-width:799px){#app #nav button,dialog#dlg.page #nav button{min-height:52px;padding:4px 1px;font-size:clamp(9px,2.55vw,11px);letter-spacing:-.01em}}
#app .text-action{background:transparent;border:0;padding:4px 0;min-height:32px}
#app .row{gap:10px}
#app .sub,#app .note{line-height:1.5}
#app .lbl,#dlg .tile .lbl{letter-spacing:0;text-transform:none;font-size:12px}
#app .vsec{font-size:12px;font-weight:500;letter-spacing:.08em;color:var(--ink2)}
#app .seg{padding:4px;gap:4px;border-radius:12px}
#app .seg button{border-radius:8px;min-height:40px;padding:8px 12px}
#app .seg button[aria-checked="true"]{font-weight:600}
#app .aibox,#app .aiadv,#app .coach-export-setting,#app .coach-primary-card,
#app .coach-secondary-event,#app .training-state-tile,#app .strava-description{border-radius:14px}
#app .adv .cday,#app .cday{border-radius:14px}
#app .training-state-tile>span{text-transform:none;letter-spacing:0;font-size:12px}
#app .set-item{border-radius:12px;padding:12px 14px;min-height:52px}
#app .set-item span{font-weight:500}
#app .set-item small{font-size:12px;line-height:1.4}
#v-set .card{padding:18px;gap:14px}
#v-set .account-card-head{gap:12px}
#v-set .account-card-copy strong{font-size:18px;line-height:1.3}
#app .connection-head h2{font-size:18px;line-height:1.3}
#app .connection-copy .note{font-size:13px}
#app .connection-state{padding:5px 9px}
.status{border-radius:16px;line-height:1.5}
.chatbox{border-radius:20px;overflow:hidden}
.chat-m{border-radius:14px;line-height:1.55}
dialog:not(#account-dialog){border-radius:20px}
dialog:not(#account-dialog) .dhead{padding:18px 20px;gap:12px}
dialog:not(#account-dialog) .dhead h2{line-height:1.3}
dialog input:not([type="checkbox"]):not([type="radio"]),dialog select,dialog textarea{border-radius:10px}
#nav{border-color:var(--grid)}
#nav button{border-radius:12px}
@media(min-width:800px){#nav{border-radius:20px 20px 0 0}}
@media(max-width:600px){
  #app .card,#app .tile,#dlg .tile,#v-set .card{padding:16px;gap:12px}
  #app .card>h2,#app .connection-head h2{font-size:17px}
  #app .card.collapsed{padding:10px 16px}
  #app .row{gap:8px}
  #app .seg button{padding:8px 10px}
  dialog:not(#account-dialog) .dhead{padding:16px}
}
@media(prefers-reduced-motion:no-preference){
  #app button,#nav button{transition:background-color .15s,border-color .15s,color .15s}
}
/* Einheitliche Verbindungskarten mit Status und zustandsabhängigen Aktionen. */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.connection-head .connection-state{margin-left:auto;font-size:12px;padding:6px 10px}
#v-set .connection-card .connection-body{padding-left:0;gap:18px}
#v-set .connection-card .connection-actions{min-width:180px;align-items:stretch}
#v-set .connection-card .connection-actions button:not(.strava-connect-button){min-height:40px;width:100%;font-size:14px}
#v-set #strava-settings .connection-actions #strava-connect:not(.strava-connect-button){width:100%;height:auto}
.connection-card[data-state="offline"] .connection-state{color:var(--ink2)}
#v-set .strava-auto-setting{background:color-mix(in srgb,var(--s1) 4%,var(--surface));border:1px solid var(--grid);border-radius:12px;padding:14px}
#v-set .strava-auto-setting .preference-toggle{padding:0;border:0}
#v-set .strava-auto-setting .note{margin:6px 0 0}
#v-set .strava-auto-setting .preference-toggle strong{font-size:14px}
#v-set .connection-card .connection-actions [hidden]{display:none!important}
@media(max-width:600px){#v-set .connection-card .connection-actions{flex-direction:column;align-items:stretch;min-width:0}#v-set .connection-card .connection-actions button{flex:none}#v-set .connection-head .connection-state{font-size:11px}#v-set .connection-card .connection-actions .strava-connect-button{align-self:flex-start}}

/* Verbindungen: gemeinsamer grüner Aktivzustand, Markenfarben bei Logo und Verwaltung. */
#intervals-settings{--connection-accent:#e60046}
#strava-settings{--connection-accent:#fc5200}
#v-set .connection-card{border-left:3px solid var(--connection-accent);background:linear-gradient(120deg,color-mix(in srgb,var(--connection-accent) 4%,transparent),transparent 45%),var(--surface)}
#v-set .connection-card[data-state="connected"]{border-color:color-mix(in srgb,var(--good) 35%,var(--grid));border-left-color:var(--connection-accent);background:linear-gradient(110deg,color-mix(in srgb,var(--good) 8%,transparent),transparent 65%),var(--surface)}
#v-set .connection-card .connection-actions{flex-direction:row;align-items:center;gap:10px;min-width:0}
#v-set .connection-card .connection-actions button:not(.strava-connect-button){width:auto;white-space:nowrap;border-color:color-mix(in srgb,var(--connection-accent) 45%,var(--grid));background:color-mix(in srgb,var(--connection-accent) 9%,var(--surface));color:var(--ink)}
#v-set .connection-card .connection-actions .connection-disconnect{background:transparent;border-color:transparent;color:var(--ink2)}
#connection-dialog{width:min(560px,calc(100% - 24px));max-height:calc(100dvh - 32px)}
.connection-dialog-body{padding:0 20px 20px;display:grid;gap:14px}
.connection-dialog-body .note{font-size:13px;line-height:1.5}
.connection-dialog-body .preference-toggle{padding:14px 0;border-bottom:1px solid var(--grid)}
.connection-dialog-body .strava-auto-setting{background:transparent;border:0;padding:0}
.connection-dialog-body .strava-auto-setting .preference-toggle{border-bottom:0}
.connection-dialog-body .preference-toggle small{font-size:13px;line-height:1.5}
#connection-strava .preference-toggle input:checked{background:#fc5200}
#connection-intervals .preference-toggle input:checked{background:#e60046}
.athlete-profile .training-settings-grid{margin-top:4px}
.athlete-profile h3{margin:0 0 12px;font-size:14px;color:var(--ink2)}
.athlete-profile .training-background{border-left:1px solid var(--grid);padding-left:18px}
@media(max-width:700px){#v-set .connection-body{grid-template-columns:1fr}#v-set .connection-card .connection-actions{flex-wrap:wrap;justify-content:flex-start}#v-set .connection-card .connection-actions button:not(.strava-connect-button){flex:1 1 auto}#v-set .training-settings-grid{grid-template-columns:1fr}.athlete-profile .training-background{border-left:0;border-top:1px solid var(--grid);padding:16px 0 0}}

/* ===== EndurKI-Design: dunkle Flächen, ruhige Ränder, Blau für Aktionen, Violett für KI ===== */
:root{
  --plane:#f3f3f1;--surface:#ffffff;--field:#f6f6f4;--raised:#efefec;--grid:#e5e4de;--axis:#cfcec7;
  --border:rgba(11,11,11,.08);--btn:#2a69bd;--s1:#2a78d6;
  --ki:#7c4ddb;--ki-ink:#6a3cc9;--ki-on:#ffffff;
  --sport-indoor:#0f9f9a;--sport-outdoor:#3f9b45;
  --shadow:0 1px 2px rgba(0,0,0,.04),0 8px 24px rgba(0,0,0,.05);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --plane:#0e0e0e;--surface:#1b1b1b;--field:#171717;--raised:#262626;--grid:#2a2a2a;--axis:#383838;
    --ink2:#b9b8b2;--border:rgba(255,255,255,.08);--btn:#2d6cc0;--s1:#4a8fe7;
    --ki:#8b5cf6;--ki-ink:#b9a3fc;--ki-on:#ffffff;
    --sport-indoor:#2cc4bd;--sport-outdoor:#5bbf62;
    --shadow:0 1px 0 rgba(255,255,255,.03) inset,0 10px 30px rgba(0,0,0,.35);
  }
}
:root[data-theme="dark"]{
  --plane:#0e0e0e;--surface:#1b1b1b;--field:#171717;--raised:#262626;--grid:#2a2a2a;--axis:#383838;
  --ink2:#b9b8b2;--border:rgba(255,255,255,.08);--btn:#2d6cc0;--s1:#4a8fe7;
  --ki:#8b5cf6;--ki-ink:#b9a3fc;--ki-on:#ffffff;
  --sport-indoor:#2cc4bd;--sport-outdoor:#5bbf62;
  --shadow:0 1px 0 rgba(255,255,255,.03) inset,0 10px 30px rgba(0,0,0,.35);
}
html,body{background:var(--plane)}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}

/* Karten und Kacheln */
.card,.tile,#app .card,#app .tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--ek-card-radius);box-shadow:var(--shadow)}
.card .card{box-shadow:none}
.status{background:var(--surface);border:1px solid var(--border)}
dialog,dialog:not(#account-dialog){background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:0 24px 60px rgba(0,0,0,.45)}
dialog::backdrop{background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.dhead{background:var(--surface);border-bottom-color:var(--border)}
.training-state-tile,.te .c,.coach-tss-metric,.checkin-feeling{background:var(--field);border-color:var(--border)}

/* Eingabefelder mit dunkler Füllung */
select,input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),textarea,#coach-memo{background:var(--field);border:1px solid color-mix(in srgb,var(--ink) 13%,transparent);color:var(--ink)}
input::placeholder,textarea::placeholder{color:var(--muted)}
select:focus-visible,input:focus-visible,textarea:focus-visible{outline:0;border-color:var(--s1);box-shadow:0 0 0 3px color-mix(in srgb,var(--s1) 28%,transparent)}
.preference-toggle input{background:var(--raised)}

/* Schaltflächen: neutral gefüllt, Primär blau, KI violett */
button{background:var(--raised);border:1px solid var(--border);color:var(--ink)}
button:hover:not(:disabled){border-color:color-mix(in srgb,var(--ink) 22%,transparent)}
.primary,#app button.primary,dialog button.primary{background:var(--btn);border-color:var(--btn);color:#fff;font-weight:600}
.primary:hover:not(:disabled){background:color-mix(in srgb,#fff 8%,var(--btn));border-color:color-mix(in srgb,#fff 8%,var(--btn));filter:none}
.primary.ki,#app button.primary.ki,dialog button.primary.ki{background:var(--ki);border-color:var(--ki);color:var(--ki-on)}
.primary.ki:hover:not(:disabled){background:color-mix(in srgb,#fff 10%,var(--ki));border-color:color-mix(in srgb,#fff 10%,var(--ki))}
button:disabled:hover{border-color:var(--border)}
.text-action,#app .text-action,.mini-cal-all.active{background:transparent;border-color:transparent}
.text-action{color:var(--ink2);text-decoration:underline;text-underline-offset:3px}
.text-action:hover:not(:disabled){color:var(--ink);background:transparent;border-color:transparent}
.menu summary{background:var(--raised);border-color:var(--border)}
.menu-pop{background:var(--surface);border-color:var(--border);border-radius:14px}
.menu-pop button{background:transparent;border:0}
.menu-pop button:hover:not(:disabled){background:var(--raised)}
.ai-ride,.note .more-btn,.more-btn{color:var(--s1)}

/* Segment-Umschalter wie bei der Anmeldung */
.seg,#app .seg,#account-modes{background:var(--field);border:1px solid var(--border);border-radius:12px;padding:4px;gap:4px}
.seg button,#app .seg button{background:transparent;border:0;color:var(--ink2);font-weight:500;box-shadow:none}
.seg button:hover:not(:disabled){background:color-mix(in srgb,var(--ink) 4%,transparent);color:var(--ink)}
.seg button[aria-checked="true"],#app .seg button[aria-checked="true"],#account-modes button[aria-pressed="true"]{background:var(--raised);color:var(--ink);font-weight:600;box-shadow:0 1px 4px rgba(0,0,0,.18)}

/* Abschnittspillen, Abzeichen und Chips */
.jump button{background:var(--raised);border:1px solid var(--border);color:var(--ink2)}
.jump button:hover:not(:disabled){color:var(--ink)}
.badge{background:var(--raised);color:var(--ink2)}
.badge.indoor{background:color-mix(in srgb,var(--sport-indoor) 18%,transparent);color:var(--ink)}
.badge.vac{background:color-mix(in srgb,var(--s2) 20%,transparent);color:var(--ink)}
.cs-chip{background:var(--raised)}
.cdays label{background:var(--field);border-color:var(--border)}
.cdays label:has(input:checked){border-color:color-mix(in srgb,var(--s1) 55%,var(--border));background:color-mix(in srgb,var(--s1) 12%,var(--field))}

/* Navigation */
.nav{background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);border-top:1px solid var(--border)}
@media(min-width:800px){.nav,#nav{border:1px solid var(--border);border-bottom:0}}
.nav button,#nav button{background:transparent;border:0}
.nav button:hover:not(:disabled):not([aria-current="page"]){background:transparent;color:var(--ink)}
.nav button[aria-current="page"]{color:var(--s1)}
.nav button[data-v="chat"][aria-current="page"]{color:var(--ki-ink)}

/* ===== KI, Bewertungen und Coach-Gespräch: durchgehend Violett ===== */
#app #c-aihome,#app #c-chat,#app #aidlg,#c-aihome,#c-chat,#aidlg{border-color:color-mix(in srgb,var(--ki) 30%,var(--border));background:radial-gradient(120% 70% at 0 0,color-mix(in srgb,var(--ki) 11%,transparent),transparent 60%),var(--surface)}
#c-aihome>h2::before,#aidlg>h2::before,#c-chat .chat-title-row h2::before{content:'✦';color:var(--ki-ink);margin-right:8px;font-weight:400}
#c-aihome>h2.ctog::before{order:-1}
#c-aihome>h2.ctog{justify-content:flex-start}#c-aihome>h2.ctog::after{margin-left:auto}
.chat-eyebrow{color:var(--ki-ink)}
.chat-status-dot{background:var(--ki)}
.chatbox,#app .chatbox{border-color:color-mix(in srgb,var(--ki) 26%,var(--border));background:var(--field)}
.chat-conv-head{border-bottom-color:var(--border)}
.chat-m.me{background:var(--ki);border-color:var(--ki);color:var(--ki-on)}
.chat-m.ai{background:var(--surface);border-color:var(--border)}
.chat-f textarea{background:var(--surface)}
.aibox{border:1px solid color-mix(in srgb,var(--ki) 30%,var(--border));border-left:4px solid var(--ki);background:color-mix(in srgb,var(--ki) 8%,var(--surface))}
#d-ai-h,.aibox h4,.kibox .csum-k{color:var(--ki-ink)}
.aiadv,.kibox{border-left-color:var(--ki);background:color-mix(in srgb,var(--ki) 9%,transparent)}
.ai-ride{color:var(--ki-ink)}
.ai-status,.ai-lockbar{border-color:color-mix(in srgb,var(--ki) 28%,var(--border));background:color-mix(in srgb,var(--ki) 7%,var(--surface))}
.badge.ai{background:color-mix(in srgb,var(--ki) 24%,transparent);color:var(--ink)}
#d-chat-go{border-color:color-mix(in srgb,var(--ki) 45%,var(--border));background:color-mix(in srgb,var(--ki) 10%,var(--raised))}
#d-jump button[data-target="d-ai-h"]{border-color:color-mix(in srgb,var(--ki) 45%,var(--border));background:color-mix(in srgb,var(--ki) 16%,var(--raised));color:var(--ink)}
#aidlg .dh,#aidlg .ai-group h3{color:var(--ki-ink)}
.fbr button.on{background:var(--ki);border-color:var(--ki);color:var(--ki-on)}
.fbl{color:var(--ki-ink)}
/* eigene Bewertung nach der Fahrt (Check-in) */
.ride-checkin .checkin-heading h2::before{content:'✦';color:var(--ki-ink);margin-right:8px;font-weight:400}
.checkin-choices label{background:var(--field);border-color:var(--border)}
.checkin-choices label:has(input:checked){border-color:var(--ki);background:color-mix(in srgb,var(--ki) 14%,var(--field))}
.checkin-choices input,.checkin-feeling .chk input{accent-color:var(--ki)}

/* ===== Workouts und Aktivitäten: Akzent nach Typ (Intensität) ===== */
.act,#app .act{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow)}
.act:hover{border-color:color-mix(in srgb,var(--ink) 18%,transparent)}
.act.has-int,#app .act.has-int{border-left:1px solid var(--border);box-shadow:inset 4px 0 0 var(--int),var(--shadow);background:linear-gradient(100deg,color-mix(in srgb,var(--int) 12%,transparent),transparent 45%),var(--surface)}
.act .ic,.act.has-int .ic{border-radius:12px;background:color-mix(in srgb,var(--int,var(--s1)) 20%,var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--int,var(--s1)) 35%,transparent)}
.act .ic svg{stroke:var(--int,var(--s1))}
.act .ic.v{background:color-mix(in srgb,var(--sport-indoor) 20%,var(--surface))}
.act .ic.v svg{stroke:var(--sport-indoor)}
.act.sel{outline:2px solid var(--s1);outline-offset:1px}
.cday.cx{background:linear-gradient(100deg,color-mix(in srgb,var(--int,var(--axis)) 12%,transparent),transparent 55%),var(--field);border:1px solid var(--border);border-left:4px solid var(--int,var(--axis));border-radius:14px}
.tplan{border-radius:14px;border:1px solid color-mix(in srgb,var(--int,var(--axis)) 30%,var(--border));border-left:4px solid var(--int,var(--axis))}
#dlg .dhead{border-top:0;background:linear-gradient(180deg,color-mix(in srgb,var(--int,transparent) 16%,transparent),transparent 80%),var(--surface);box-shadow:inset 0 4px 0 var(--int,transparent)}
.ipill{background:color-mix(in srgb,var(--int,var(--axis)) 18%,transparent)}
.workout-step{border-radius:12px}

/* Tabellen und Linien ruhiger */
th{border-bottom-color:var(--grid)}td{border-bottom-color:color-mix(in srgb,var(--grid) 70%,transparent)}
tr.click:hover td{background:var(--raised)}
.tip{background:var(--surface);border-color:var(--border);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.3)}

.permission-required{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid var(--grid)}
.permission-required strong,.permission-required small{display:block}.permission-required small{font-size:13px;color:var(--ink2);line-height:1.5;margin-top:6px}
.permission-badge{flex:none;font-size:11px;padding:5px 8px;border-radius:8px;color:var(--ink2);background:var(--plane)}
#app .upd-row{flex-direction:row;align-items:center;justify-content:space-between;gap:12px;background:var(--raised);border:1px solid var(--border);color:var(--ink)}.upd-row>div{display:flex;flex-direction:column;gap:2px;min-width:0}#app .upd-row>button{flex:0 0 auto;white-space:nowrap}.upd-row:has(#upd-check[data-update="available"]) small{color:var(--s1);font-weight:600}
.training-status-hero{--status-color:var(--s1);padding:20px;border-radius:16px;border:1px solid color-mix(in srgb,var(--status-color) 35%,var(--grid));background:linear-gradient(125deg,color-mix(in srgb,var(--status-color) 12%,var(--surface)),var(--surface))}
.training-status-hero[data-tone="good"]{--status-color:var(--good)}.training-status-hero[data-tone="warn"]{--status-color:#e8a329}.training-status-hero[data-tone="bad"]{--status-color:var(--bad)}.training-status-hero[data-tone="muted"]{--status-color:var(--ink2)}
.training-status-top{display:flex;justify-content:space-between;gap:12px;font-size:11px;color:var(--ink2);letter-spacing:.06em}
.training-status-label{display:flex;align-items:center;gap:14px;margin:18px 0 10px;color:var(--status-color)}
.training-status-label strong{font-size:34px;line-height:1.1;overflow-wrap:anywhere}
.training-status-symbol{display:grid;place-items:center;width:42px;height:42px;flex:none;border-radius:50%;font-size:26px;background:color-mix(in srgb,var(--status-color) 16%,transparent)}
.training-status-hero p{margin:0;font-size:14px;line-height:1.5}.training-status-daily{display:flex;justify-content:space-between;gap:14px;font-size:13px;color:var(--ink2)}.training-status-daily strong{color:var(--ink);text-align:right;font-weight:500}
.training-status-details summary{font-size:13px;color:var(--ink2);cursor:pointer}.training-status-details>.note{margin:12px 0}.training-status-details .load-status-metrics{margin-top:12px}
@media(max-width:500px){.training-status-label strong{font-size:28px}.training-status-hero{padding:16px}.permission-required{align-items:flex-start}}

/* ===== Einheitliche Farbverläufe (0.1.50) =====
   Typ: farbiger Rand links und Verlauf von der Typfarbe in die Fläche.
   KI: violetter Rand links und Verlauf, KI-Karten mit violettem Schimmer oben links. */
.tplan,.tplans .tplan,.workout-step,.adv .cday,.cday:not(.cx)[style*="--int"]{
  border:1px solid var(--border);border-left:4px solid var(--int,var(--axis));border-radius:14px;
  background:linear-gradient(100deg,color-mix(in srgb,var(--int,var(--axis)) 14%,transparent),transparent 58%),var(--field)}
.workout-step{border-radius:12px}
.tplan.selectable:hover{border-color:color-mix(in srgb,var(--int,var(--axis)) 45%,var(--border));border-left-color:var(--int,var(--axis))}
.cblock{border-left:4px solid var(--s1);border-radius:10px;background:linear-gradient(100deg,color-mix(in srgb,var(--s1) 16%,transparent),transparent 65%),var(--field)}
.cs-d,.mini-calendar .mini-cal-day{background:linear-gradient(180deg,color-mix(in srgb,var(--int,var(--axis)) 4%,transparent),color-mix(in srgb,var(--int,var(--axis)) 20%,transparent)),var(--field)}
.cday.vac{border-left-color:var(--s2)}
/* KI-Inhaltsboxen: gleiche Form wie die Plan-Tage, nur in Violett */
.aibox,.kibox,.aiadv,.ai-status,.ai-lockbar,.chat-ride-panel{
  border:1px solid color-mix(in srgb,var(--ki) 30%,var(--border));border-left:4px solid var(--ki);border-radius:14px;
  background:linear-gradient(100deg,color-mix(in srgb,var(--ki) 18%,transparent),transparent 60%),var(--field)}
.aiadv-clamp{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;line-clamp:4;overflow:hidden}
.xbox .csum{cursor:inherit}.xbox.can-x{cursor:pointer}
.xbox.open .aiadv-clamp,.xbox.open .csum{display:block;-webkit-line-clamp:unset;line-clamp:none}
.xbox.can-x>.aiadv-h,.xbox.can-x>.csum-k{display:flex;align-items:center;justify-content:space-between;gap:8px}
.xbox.can-x>.aiadv-h::after,.xbox.can-x>.csum-k::after{content:'';width:7px;height:7px;border-right:2px solid var(--ink2);border-bottom:2px solid var(--ink2);transform:rotate(45deg);flex:none;margin:0 4px 3px 0;transition:transform .15s}
.xbox.can-x.open>.aiadv-h::after,.xbox.can-x.open>.csum-k::after{transform:rotate(-135deg);margin-bottom:-3px}
.kibox .csum-k,.aiadv-h{color:var(--ki-ink);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:600}
/* KI-Karten */
#app #c-aihome,#app #c-chat,#app #aidlg,#c-aihome,#c-chat,#aidlg,.ride-checkin{
  border-color:color-mix(in srgb,var(--ki) 32%,var(--border));
  background:radial-gradient(130% 80% at 0 0,color-mix(in srgb,var(--ki) 14%,transparent),transparent 62%),var(--surface)}
/* Aktivitäten: Verlauf auch wenn keine Intensität bekannt ist (Fallback Blau) */
.act,#app .act{box-shadow:inset 4px 0 0 var(--int,var(--s1)),var(--shadow);background:linear-gradient(100deg,color-mix(in srgb,var(--int,var(--s1)) 12%,transparent),transparent 48%),var(--surface)}
.act:has(.ic.v):not(.has-int){--int:var(--sport-indoor)}
/* Planerfüllung im Abzeichen-Stil, damit die Zeile gleich hoch bleibt */
.act .badges{align-items:center}
.act .badges .completion{min-width:0;padding:3px 8px;border-radius:999px;gap:2px 6px;flex-wrap:nowrap}
.act .badges .completion strong{font-size:13px}
.act .badges .completion-label{font-size:11px}
.act .badges .completion-track{display:none}

/* ===== Feedbackrunde 3 (0.1.52) ===== */
/* Navigation im Browser exakt mittig */
@media(min-width:800px){.nav,#nav{left:50%;right:auto;width:min(520px,calc(100% - 32px));max-width:none;margin:0;transform:translateX(-50%)}}

/* Kalender: Farbe links wie bei den übrigen Karten */
.cs-d::after,.mini-calendar .mini-cal-day::after{left:0;right:auto;top:0;bottom:0;width:4px;height:auto}
.cs-d,.mini-calendar .mini-cal-day{background:linear-gradient(100deg,color-mix(in srgb,var(--int,var(--axis)) 20%,transparent),transparent 75%),var(--field);border-radius:12px}

/* Monats- und Jahresübersicht */
.period-seg{align-self:flex-start;margin-bottom:4px}
.period-seg button{min-width:96px}

/* Fahrt als eigene Seite */
dialog#dlg.page{position:fixed;inset:0;width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;padding:0 0 calc(32px + env(safe-area-inset-bottom));border:0;border-radius:0;box-shadow:none;background:var(--plane)}
dialog#dlg.page::backdrop{background:var(--plane)}
dialog#dlg.page>*:not(.dhead){width:min(980px,calc(100% - 32px));margin-left:auto;margin-right:auto}
dialog#dlg.page .dhead>div:first-child{order:2;flex:1 1 100%}
dialog#dlg.page .dhead>.back-btn{order:1;flex:none;align-self:flex-start;min-height:36px;padding:6px 12px 6px 8px;border-radius:999px;font-weight:600;background:var(--raised);border:1px solid var(--border)}
dialog#dlg.page .dhead>.back-btn span{font-size:20px;line-height:1;margin-right:2px}
dialog#dlg.page .dhead>.jump{order:3}
dialog#dlg.page #d-title{font-size:24px;line-height:1.2;margin-top:6px}
body.ride-open{overflow:hidden}
dialog#dlg.page{padding-bottom:calc(88px + env(safe-area-inset-bottom))}
/* Untere Leiste in der Fahrtansicht wie auf den übrigen Seiten (nicht wie Inhalt der Fahrt) */
dialog#dlg.page>#nav{margin:0;width:auto}
@media(min-width:800px){dialog#dlg.page>#nav{width:min(520px,calc(100% - 32px))}}
/* Kacheln ohne sinnvolle Farbe: weiß (Grau nur für Ruhe/Erholung) */
:root{--tc-neutral:color-mix(in srgb,var(--ink) 85%,transparent)}
/* Fahrtseite: Kennzahlen als Kacheln, Abschnitte als aufklappbare Kacheln (0.1.85) */
#d-actions{gap:8px}
#d-te.te{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}
#dlg #d-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}
/* Kopf als Kachel in der Typfarbe (Zurück, Titel, Etikett, Daten, Abschnitte) */
dialog#dlg.page>.dhead.tile{--tc:var(--int,var(--tc-neutral));position:relative;top:auto;z-index:auto;width:min(980px,calc(100% - 32px));margin:max(16px,env(safe-area-inset-top)) auto 0;padding:20px;box-sizing:border-box;-webkit-backdrop-filter:none;backdrop-filter:none}
@media(max-width:600px){dialog#dlg.page>.dhead.tile{padding:16px}}
/* Fahrtkacheln nutzen die Kachelklasse der Übersicht (#dlg .tile, siehe Kacheln unten); hier nur Inhalt */
#dlg .tile>b{font-size:24px;font-weight:600;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#dlg .tile>span{font-size:12px;line-height:1.35;color:var(--ink2)}
#dlg #d-te .val small{color:var(--ink2)}
#dlg #d-te .d-main .val{font-size:28px;overflow-wrap:anywhere}
#dlg .dbody>.dstats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media(max-width:600px){#d-te.te,#dlg #d-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}#d-te.te .d-main{grid-column:1/-1}#dlg .tile>b{font-size:20px}#dlg .dbody>.dstats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}
/* Abschnitte: Kopfzeile und Inhalt bilden eine Kachel, ganze Zeile tippbar, Pfeil rechts */
dialog#dlg.page h3.dh{--tc:var(--tc-neutral);margin-top:12px;margin-bottom:0;padding:0 16px 0 18px;min-height:52px;font-size:15px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--ink);border:1px solid color-mix(in srgb,var(--tc) 40%,var(--border));border-radius:16px;box-shadow:inset 4px 0 0 var(--tc);background:linear-gradient(90deg,color-mix(in srgb,var(--tc) 14%,var(--surface)),var(--surface) 55%);box-sizing:border-box}
dialog#dlg.page h3.dh.ctog{min-height:52px}
dialog#dlg.page h3.dh:not(.closed){border-bottom:0;border-radius:16px 16px 0 0}
dialog#dlg.page .dbody{--tc:var(--tc-neutral);margin-top:0;padding:2px 16px 16px 18px;border:1px solid color-mix(in srgb,var(--tc) 40%,var(--border));border-top:0;border-radius:0 0 16px 16px;box-shadow:inset 4px 0 0 var(--tc);background:linear-gradient(90deg,color-mix(in srgb,var(--tc) 14%,var(--surface)),var(--surface) 55%);box-sizing:border-box}
dialog#dlg.page #d-ai-h,dialog#dlg.page #d-ai-h+.dbody{--tc:var(--ki)}
dialog#dlg.page #d-ai-h{color:var(--ki-ink)}
dialog#dlg.page .dbody>.aibox{border:0;border-radius:0;box-shadow:none;background:none;padding:0;margin:0}
dialog#dlg.page .aibox h4{margin:16px 0 4px;font-size:15px}
dialog#dlg.page .aibox h4:first-child{margin-top:4px}
dialog#dlg.page .aibox hr{display:none}
dialog#dlg.page .aibox>.row{margin-top:12px}
dialog#dlg.page #d-fb .fbr{margin-top:2px}
dialog#dlg.page #d-fb .fbsaved:empty{display:none}
dialog#dlg.page #d-fb .note{margin:10px 0 0}
/* Strava: Aktionskachel in der Markenfarbe, Titel und Knöpfe in einer Zeile */
dialog#dlg.page .strava-description{--tc:#fc4c02;margin-top:8px;padding:10px 14px 10px 18px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid color-mix(in srgb,var(--tc) 40%,var(--border));border-radius:14px;box-shadow:inset 4px 0 0 var(--tc);background:linear-gradient(90deg,color-mix(in srgb,var(--tc) 12%,var(--surface)),var(--surface) 55%)}
dialog#dlg.page .strava-description>*{grid-column:1/-1}
dialog#dlg.page .strava-description>h3{grid-column:1;grid-row:1}
dialog#dlg.page .strava-description>.row{grid-column:2;grid-row:1;justify-content:flex-end}
dialog#dlg.page .strava-description:has(textarea:not([hidden]),.field:not(.strava-title-field):not([hidden]))>.row{grid-column:1/-1;grid-row:auto;justify-content:flex-start}
dialog#dlg.page .strava-description .note:empty{display:none}
@media(max-width:520px){dialog#dlg.page .strava-description>.row{grid-column:1/-1;grid-row:auto;justify-content:flex-start}}
/* Fahrtseite oben (0.1.88): gleiche Formen wie in der App: Knöpfe mit Kontrollradius, Abschnitte als Segmentleiste, Kacheln wie FTP-Kacheln */
dialog#dlg.page button{border-radius:var(--ek-control-radius);min-height:40px;font-size:14px;padding:9px 13px}
dialog#dlg.page .dhead>.back-btn{border-radius:var(--ek-control-radius);min-height:40px;padding:8px 13px 8px 9px}
dialog#dlg.page .jump{flex:0 1 auto;max-width:100%;width:max-content;gap:4px;padding:4px;background:var(--field);border:1px solid var(--border);border-radius:12px;-webkit-mask-image:none;mask-image:none}
dialog#dlg.page .jump button,dialog#dlg.page #d-jump button[data-target="d-ai-h"]{min-height:36px;padding:6px 12px;border:0;border-radius:8px;background:transparent;color:var(--ink2);font-weight:500;box-shadow:none}
dialog#dlg.page .jump button:hover{background:color-mix(in srgb,var(--ink) 5%,transparent);color:var(--ink)}
dialog#dlg.page #d-jump button[data-target="d-ai-h"]{color:var(--ki-ink)}
dialog#dlg.page .jump button[aria-current="true"]{background:color-mix(in srgb,var(--s1) 20%,var(--raised));color:color-mix(in srgb,var(--s1) 70%,var(--ink));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--s1) 45%,transparent);font-weight:600}
dialog#dlg.page #d-jump button[data-target="d-ai-h"][aria-current="true"]{background:color-mix(in srgb,var(--ki) 20%,var(--raised));color:var(--ki-ink);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ki) 45%,transparent)}
@media(max-width:600px){dialog#dlg.page .jump{width:auto;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}}
dialog#dlg.page #d-actions{margin-top:16px!important}
dialog#dlg.page .strava-description,dialog#dlg.page h3.dh{border-radius:var(--ek-card-radius)}
dialog#dlg.page h3.dh:not(.closed){border-radius:var(--ek-card-radius) var(--ek-card-radius) 0 0}
dialog#dlg.page .dbody{border-radius:0 0 var(--ek-card-radius) var(--ek-card-radius)}
dialog#dlg.page .strava-description{margin-top:10px}
.fbr button{border-radius:999px}

/* Erholung und Tagesform */
#readiness .adv{--tone:var(--s1);padding:16px;border-radius:16px;border:1px solid color-mix(in srgb,var(--tone) 30%,var(--border));border-left:4px solid var(--tone);background:linear-gradient(110deg,color-mix(in srgb,var(--tone) 16%,transparent),transparent 60%),var(--field);gap:10px}
#readiness .adv:has(.lv.ok),#readiness .adv:has(.lv.rest){--tone:var(--i-rest)}
#readiness .adv:has(.lv.warn){--tone:var(--i-vo2)}
#readiness .adv .lv{font-size:24px;color:var(--tone)}
#readiness .adv>.sm{margin:0;font-size:14px;line-height:1.5}
.rd-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin-top:4px}
.rd-tiles>div{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px 12px;min-width:0}
.rd-tiles b{font-size:20px;display:block}
.rd-tiles span{font-size:12px;color:var(--ink2)}
.rd-tiles em{display:block;font-style:normal;font-size:11px;color:var(--ink2);margin-top:4px}
.rd-well>div{background:var(--field)}
.rd-k{margin:16px 0 6px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2)}

/* Trainingsstatus */
.training-status-hero{border-left:4px solid var(--status-color);border-radius:16px;background:linear-gradient(110deg,color-mix(in srgb,var(--status-color) 18%,transparent),transparent 60%),var(--field)}
.training-status-label{margin:12px 0 8px}
#load-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0}
#load-metrics>div{--m:var(--s1);background:linear-gradient(160deg,color-mix(in srgb,var(--m) 12%,transparent),transparent 70%),var(--surface);border:1px solid var(--border);border-top:3px solid var(--m);border-radius:14px;padding:12px}
#load-metrics>[data-metric="fat"]{--m:var(--s2)}
#load-metrics>[data-metric="form"]{--m:var(--i-rest)}
#load-metrics>[data-metric="load"]{--m:var(--i-tempo)}
#load-metrics span small{font-size:10px;letter-spacing:.06em;color:var(--muted)}
#load-metrics b{font-size:28px;margin-top:2px}
#load-metrics em{display:block;font-style:normal;font-size:11px;color:var(--ink2);margin-top:2px}
.training-status-daily{--d:var(--ink2);align-items:center;padding:12px 14px;border-radius:14px;border:1px solid var(--border);background:var(--field)}
.training-status-daily[data-tone="good"]{--d:var(--i-rest)}.training-status-daily[data-tone="warn"]{--d:var(--i-tempo)}.training-status-daily[data-tone="bad"]{--d:var(--i-vo2)}
.training-status-daily strong{display:inline-flex;align-items:center;gap:8px;color:var(--ink)}
.training-status-daily strong::before{content:'';width:9px;height:9px;border-radius:50%;background:var(--d)}
@media(max-width:600px){#load-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Analyse: Karten mit Rubrikfarbe */
#v-perf .card{border-left:4px solid var(--sec,var(--border));background:linear-gradient(105deg,color-mix(in srgb,var(--sec,transparent) 10%,transparent),transparent 45%),var(--surface)}
#v-perf .card.collapsed{padding-top:14px;padding-bottom:14px;transition:border-color .15s,transform .15s}
#v-perf .card.collapsed:hover{border-color:color-mix(in srgb,var(--sec,var(--ink)) 45%,var(--border));border-left-color:var(--sec,var(--border))}
#v-perf .card>h2.ctog .hsum{font-size:13px;font-weight:600;color:var(--ink);background:color-mix(in srgb,var(--sec,var(--ink2)) 18%,transparent);padding:4px 10px;border-radius:999px;max-width:60%;box-sizing:border-box}
@media(min-width:360px){#v-perf .card>h2.ctog .hsum{flex-shrink:0}}
#v-perf>.vsec{display:flex;align-items:center;gap:8px}
#v-perf>.vsec::before{content:'';width:8px;height:8px;border-radius:50%;background:currentColor;opacity:.7}

/* Einstellungen */
.athlete-profile .training-settings-grid{gap:12px}
.athlete-profile .training-lab,.athlete-profile .training-background{grid-column:1/-1}
@media(min-width:701px){#v-set .training-lab .set-fields,#v-set .training-background .set-fields{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){#v-set .set-fields .field:has(#coach-years),#v-set .set-fields .field:has(#athlete-sex){grid-column:1/-1}}
.athlete-profile .training-profile,.athlete-profile .training-background,.athlete-profile .training-lab,.athlete-profile .training-power,.athlete-profile .training-hr{background:var(--field);border:1px solid var(--border);border-radius:16px;padding:16px}
.athlete-profile h3{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2);font-weight:600}
#v-set .set-fields input{background:var(--surface)}
#display-settings .preference-toggle{padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:var(--field);margin-bottom:8px}
#display-settings .preference-toggle:last-of-type{margin-bottom:0}
#display-settings>.cbody>.note,#display-settings>.note{margin-top:4px}
#v-set .vsec{display:flex;align-items:center;gap:8px}
#v-perf .card>h2.ctog .hsum:empty{display:none}

/* Plan-Einstellungen im EndurKI-Design (0.1.54): Abschnitte, einheitliche Zeilen, Schalter statt Kästchen. */
#coach-set .csettings-b{display:flex;flex-direction:column;gap:10px;padding:16px}
#coach-set .cs-sec{display:flex;align-items:center;gap:10px;margin:12px 2px 0;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink2)}
#coach-set .cs-sec::after{content:'';flex:1;height:1px;background:var(--border)}
#coach-set .csettings-b>.cs-sec:first-of-type{margin-top:0}
#coach-set .cgroup{display:flex;flex-direction:column;gap:8px}
#coach-set details.cmore{border:1px solid var(--border);border-radius:14px;background:var(--field);padding:0 14px;overflow:hidden}
#coach-set details.cmore[open]{padding-bottom:14px}
#coach-set details.cmore>summary{display:flex;align-items:center;gap:10px;min-height:50px;margin:0;color:var(--ink);font-weight:600;font-size:14px;list-style:none}
#coach-set details.cmore>summary::-webkit-details-marker{display:none}
#coach-set details.cmore>summary::before{order:2;margin:0 4px 0 auto;color:var(--ink2);transform:rotate(45deg)}
#coach-set details.cmore[open]>summary::before{transform:rotate(-135deg)}
#coach-set details.cmore[open]>summary{border-bottom:1px solid var(--border);margin:0 -14px 12px;padding:0 14px}
#coach-set details.cmore>*:not(summary){margin-top:0}
#coach-set details.cmore .note{margin:8px 0 0}
#coach-set details.cmore>.filters+.filters{margin-top:10px}
/* Saisonziel: hinzufügen als gestrichelte Zeile mit Plus */
#coach-set #season-plan-settings:not([open]){border-style:dashed;background:transparent}
#coach-set #season-plan-settings:not([open])>summary{color:var(--s1)}
#coach-set #season-plan-settings:not([open])>summary::before{content:'+';order:0;margin:0;width:auto;height:auto;border:0;transform:none;font-size:20px;font-weight:500;line-height:1;color:var(--s1)}
#coach-set .season-goal-editor .filters{padding-top:0}
/* Schalterzeilen */
#coach-set .cs-switch{padding:12px 0;border:0;border-top:1px solid var(--border);margin:10px 0 0;gap:16px}
#coach-set .season-goal-editor .cs-switch{grid-column:1/-1}
#coach-set .cs-switch strong{font-size:14px;font-weight:600;color:var(--ink)}
#coach-set .cs-switch small{font-size:12px;line-height:1.4}
#coach-set .cs-switch+.cs-switch{margin-top:0}
/* Felder in voller Breite und gleicher Höhe */
#coach-set .filters .field select,#coach-set .filters .field input:not([type=checkbox]){width:100%!important;min-height:44px}
#coach-set details.cmore>.filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
#coach-set details.cmore>.filters:has(#coach-autoweek){grid-template-columns:minmax(0,1fr)}
#coach-set #coach-goal-field select,#coach-set #coach-notes,#coach-set #coach-memo{min-height:44px;border-radius:12px}
#coach-set .csettings-b>.note{margin:-2px 2px 0}
#coach-set #coach-goal-note:empty{display:none}
@media(max-width:760px){#coach-set details.cmore>.filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){#coach-set .csettings-b{padding:12px}#coach-set details.cmore>.filters{grid-template-columns:1fr}}
/* Übersicht: Tagesform und Trainingsstatus in einer Kachel */
/* Kennzahl-Kacheln nach Wert: blau (niedrig) über grün, gelb, orange bis rot (hoch) */
.rd-tiles>div.tone{border-color:color-mix(in srgb,var(--tone) 40%,var(--border));box-shadow:inset 4px 0 0 var(--tone);background:linear-gradient(100deg,color-mix(in srgb,var(--tone) 16%,var(--surface)),var(--surface) 62%)}
.rd-tiles>div.tone b{color:color-mix(in srgb,var(--tone) 70%,var(--ink))}
#load-metrics>div.tone{--m:var(--tone)}
/* Tagesform und Trainingsstatus kompakt (0.1.54) */
body{padding-bottom:calc(112px + env(safe-area-inset-bottom))}
#c-readiness{gap:10px}
#c-readiness #readiness .adv{padding:12px 14px;border-radius:14px}
#c-readiness #readiness .adv .lv{font-size:18px}
#c-readiness #readiness .adv>.sm{font-size:13px;line-height:1.4}
#c-readiness .rd-tiles{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:6px;margin-top:8px}
#c-readiness .rd-tiles>div{padding:8px 10px;border-radius:10px}
#c-readiness .rd-tiles b{font-size:17px}
#c-readiness .rd-tiles span{font-size:11px}
#c-readiness .rd-tiles em{font-size:10px;margin-top:2px;line-height:1.3}
#c-readiness .rd-k{margin:10px 0 0;font-size:10px}
#c-status .training-status-hero{padding:10px 14px;border-radius:14px;display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"label label top" "note note note";align-items:center;column-gap:10px;row-gap:2px}
#c-status .training-status-top{grid-area:top;align-self:start}
#c-status .training-status-top>span{display:none}
#c-status .training-status-label{grid-area:label;margin:0;gap:10px}
#c-status .training-status-label strong{font-size:20px}
#c-status .training-status-symbol{width:28px;height:28px;font-size:16px}
#c-status .training-status-hero>p{grid-area:note;font-size:13px;line-height:1.4;color:var(--ink2)}
#c-status #load-metrics{gap:6px}
#c-status #load-metrics>div{padding:8px 10px;border-radius:10px;border-top-width:2px}
#c-status #load-metrics b{font-size:20px;line-height:1.2}
#c-status #load-metrics em{font-size:10px}
#c-status .training-status-daily{display:none}
@media(max-width:600px){#c-status #load-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}#c-status #load-metrics b{font-size:17px}#c-status #load-metrics span{font-size:10px}#c-status #load-metrics span small{display:none}}
#c-status .load-history{margin-top:0}
#c-status .training-status-details>.note{margin:6px 0}
#c-status #load-status{gap:8px}
#c-readiness .rd-tiles em{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:600px){#c-readiness .rd-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}#c-readiness #readiness .adv{padding:10px 12px}}
#c-status #load-status{margin:0;padding:0}
/* Trainingsstatus als eigene Karte unter Heute und FTP (0.1.71): Kacheln und Verlauf im aufklappbaren Bereich */
#c-status{gap:10px}
#c-status #load-status-card{display:flex;flex-direction:column;gap:8px}
#c-status .training-status-details,#c-status .load-history{border:1px solid var(--border);border-radius:12px;background:var(--field);padding:0 12px;margin:0}
#c-status .training-status-details>summary,#c-status .load-history>summary{min-height:44px;margin:0;display:flex;align-items:center;gap:10px;color:var(--ink);font-size:13px;font-weight:500;list-style:none}
#c-status .training-status-details>summary::before,#c-status .load-history>summary::before{order:2;margin:0 4px 0 auto;color:var(--ink2)}
#c-status .training-status-details[open],#c-status .load-history[open]{padding-bottom:12px}
#c-status .training-status-details[open]>summary,#c-status .load-history[open]>summary{border-bottom:1px solid var(--border);margin:0 -12px 10px;padding:0 12px}
#c-status .training-status-details>.note{margin:0}
#c-status #load-metrics{margin:0 0 12px}
#c-status .load-history .legend{margin-top:0}
#c-status .load-history details>summary{color:var(--ink2);font-weight:500}
@media(max-width:600px){#c-status #load-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}#c-status #load-metrics span small{display:inline}}

/* Auswahl- und Datumsfelder im EndurKI-Stil (0.1.56): eigener Pfeil und Kalendersymbol statt Browser-Optik */
select:not([multiple]){-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%238d8c87' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 14px center!important;background-size:12px 8px!important;padding-right:38px!important;cursor:pointer}
select:not([multiple]):hover{border-color:color-mix(in srgb,var(--ink) 24%,transparent)}
select::-ms-expand{display:none}
input[type="date"],input[type="time"]{position:relative;cursor:pointer}
input[type="date"]::-webkit-calendar-picker-indicator,input[type="time"]::-webkit-calendar-picker-indicator{width:18px;height:18px;margin-left:8px;padding:0;opacity:1;cursor:pointer;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238d8c87' stroke-width='1.8' stroke-linecap='round'%3E%3Crect x='3.5' y='5' width='17' height='15.5' rx='3'/%3E%3Cpath d='M3.5 10h17M8 3v4M16 3v4'/%3E%3C/svg%3E") center/18px 18px no-repeat}
input[type="date"]::-webkit-datetime-edit{padding:0}
input[type="date"]::-webkit-datetime-edit-fields-wrapper{padding:0}
/* Saisonziel-Formular: Beschriftungen auf einer Linie, Felder gleich hoch */
#coach-set .season-goal-editor .filters{align-items:start;row-gap:12px}
#coach-set .season-goal-editor .field{display:flex;flex-direction:column;gap:6px;margin:0}
#coach-set .season-goal-editor .field>label{margin:0;line-height:1.3;min-height:16px}
#coach-set .season-goal-editor .field input,#coach-set .season-goal-editor .field select{height:44px;min-height:44px;box-sizing:border-box;border-radius:12px;padding-top:0;padding-bottom:0}
#coach-set .season-goal-editor .field input::placeholder{color:var(--muted,var(--ink2))}
#coach-set .season-goal-editor #sp-goal-note{margin-top:-4px}

/* Wertfarben auch auf Startseiten-Kacheln, Wochendetails, Belastung und Hitze (0.1.57) */
#app .kpis>.tile.tone{border-color:color-mix(in srgb,var(--tone) 40%,var(--border));box-shadow:inset 4px 0 0 var(--tone),var(--shadow);background:linear-gradient(110deg,color-mix(in srgb,var(--tone) 14%,var(--surface)),var(--surface) 60%)}
#app .kpis>.tile.tone .val,#dlg .tile.tone .val,#dlg .tile.tone>b{color:color-mix(in srgb,var(--tone) 70%,var(--ink))}
#ramp,#d-heat,#k-week-x>.dstats{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}
#ramp>div,#d-heat>div,#k-week-x>.dstats>div{background:var(--field);border:1px solid var(--border);border-radius:12px;padding:10px 12px;min-width:0}
#ramp>div.tone,#d-heat>div.tone,#k-week-x>.dstats>div.tone,.dstats>div.tone{border-color:color-mix(in srgb,var(--tone) 40%,var(--border));box-shadow:inset 4px 0 0 var(--tone);background:linear-gradient(100deg,color-mix(in srgb,var(--tone) 16%,var(--field)),var(--field) 62%)}
#ramp>div.tone b,#d-heat>div.tone b,#k-week-x>.dstats>div.tone b,.dstats>div.tone b{color:color-mix(in srgb,var(--tone) 70%,var(--ink))}

/* Plan-Einstellungen: ganze Kopfzeile klickbar, dezenter Pfeil statt blauem „Ändern“ (0.1.57) */
#coach-set.csettings{border:1px solid var(--border);border-radius:16px;background:var(--surface)}
#coach-set.csettings>summary{cursor:pointer;border-radius:16px;transition:background .15s}
#coach-set.csettings>summary:hover{background:color-mix(in srgb,var(--ink) 4%,transparent)}
#coach-set .cs-head b{color:var(--ink);font-size:15px}
#coach-set .cs-head svg{stroke:var(--ink2)}
#coach-set .cs-edit{font-size:0;color:var(--ink2);width:28px;height:28px;justify-content:center;border-radius:50%;background:var(--field);border:1px solid var(--border)}
#coach-set .cs-edit::after{width:6px;height:6px;margin-top:-3px}
#coach-set[open] .cs-edit::after{margin-top:3px}
#coach-set[open]>summary{border-bottom-left-radius:0;border-bottom-right-radius:0}
/* Saisonziel hinzufügen: normale Zeile wie die übrigen, Plus dezent im Kreis */
#coach-set #season-plan-settings:not([open]){border-style:solid;background:var(--field)}
#coach-set #season-plan-settings:not([open])>summary{color:var(--ink)}
#coach-set #season-plan-settings:not([open])>summary::before{order:2;content:'';margin:0 4px 0 auto;width:6px;height:6px;border:0;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);font-size:0;color:var(--ink2)}
#coach-set #season-plan-settings>summary::after{content:'+';order:-1;display:grid;place-items:center;flex:none;width:24px;height:24px;border-radius:50%;background:var(--raised);border:1px solid var(--border);color:var(--ink2);font-size:16px;font-weight:500;line-height:1}
#coach-set #season-plan-settings[open]>summary::after{content:'';display:none}
#coach-set details.cmore>summary:hover{background:color-mix(in srgb,var(--ink) 4%,transparent)}

/* Übersicht: Stufen statt Halbkreis-Skala (0.1.58) */
#app .kpis .gauge.tier{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin:2px 0 4px}
#app .kpis .tier-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;color:color-mix(in srgb,var(--tone) 75%,var(--ink));background:color-mix(in srgb,var(--tone) 16%,transparent);border:1px solid color-mix(in srgb,var(--tone) 35%,transparent)}
#app .kpis .tier-pill::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--tone)}
#app .kpis .tier-steps{display:flex;gap:4px;width:100%;max-width:220px}
#app .kpis .tier-steps i{flex:1;height:5px;border-radius:3px;background:color-mix(in srgb,var(--ink) 12%,transparent)}
#app .kpis .tier-steps i.past{background:color-mix(in srgb,var(--c) 45%,transparent)}
#app .kpis .tier-steps i.on{background:var(--c);box-shadow:0 0 0 2px color-mix(in srgb,var(--c) 30%,transparent)}

/* Plan-Tageskarte: Anpassen-Bereich im Kartenstil (0.1.58) */
#app .unit-controls{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}
#app .unit-controls .unit-h{font-size:12px;font-weight:600;color:var(--ink2);margin:0 0 8px}
#app .unit-controls .cday-a{display:flex;flex-wrap:wrap;gap:8px;margin:0}
#app .unit-controls .cday-a button{min-height:40px;padding:8px 14px;white-space:nowrap;font-size:14px;font-weight:500;border-radius:var(--ek-control-radius)}
#app .unit-controls .cday-a button.primary{font-weight:600}
#app .unit-controls .cday-a button.unit-lock::before{content:"";display:inline-block;width:12px;height:12px;margin-right:7px;vertical-align:-1px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='11' width='16' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='11' width='16' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E") center/contain no-repeat}
#app .unit-controls .unit-dur{display:flex;align-items:center;gap:10px;margin-top:10px;padding:8px 8px 8px 14px;background:var(--raised);border:1px solid var(--border);border-radius:12px}
#app .unit-controls .unit-dur>label{flex:1;margin:0;font-size:14px;font-weight:500;color:var(--ink);text-transform:none;letter-spacing:0}
#app .unit-controls .unit-dur-in{position:relative;display:inline-flex;align-items:center}
#app .unit-controls .unit-dur-in input{width:104px;min-height:42px;padding:0 40px 0 12px;margin:0;text-align:right;font-variant-numeric:tabular-nums;-moz-appearance:textfield}
#app .unit-controls .unit-dur-in input::-webkit-inner-spin-button,#app .unit-controls .unit-dur-in input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
#app .unit-controls .unit-dur-u{position:absolute;right:12px;font-size:13px;color:var(--ink2);pointer-events:none}
#app .unit-controls .unit-dur>button{min-height:42px;margin:0;white-space:nowrap}
@media(max-width:600px){#app .unit-controls .cday-a{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}#app #coach-out .unit-controls .cday-a button{width:100%;padding:8px 4px;font-size:13px;white-space:nowrap}#app .unit-controls .unit-dur{padding-left:12px;gap:8px}#app .unit-controls .unit-dur-in input{width:92px}}
/* Sehr schmale Telefone (320 px): Wochentage und Urlaubszeile nicht abschneiden */
@media(max-width:359px){.cweek{grid-template-columns:28px minmax(0,1fr) minmax(0,1fr);gap:6px}.cvac-add input,.cvac-add select{max-width:100%;min-width:0}}

#aidlg .note:empty{display:none}

/* ===== Kacheln (0.1.81) =====
   Jede Kachel: farbiger Rand links und Verlauf in die Fläche. Ohne eigene Farbe grau wie der Ruhetag. */
#app .card,#app .tile,#dlg .tile{--tc:var(--tc-neutral);border:1px solid color-mix(in srgb,var(--tc) 40%,var(--border));box-shadow:inset 4px 0 0 var(--tc),var(--shadow);background:linear-gradient(110deg,color-mix(in srgb,var(--tc) 14%,var(--surface)),var(--surface) 60%)}
#app .card .card{box-shadow:inset 4px 0 0 var(--tc)}
#app .tile.tone,#dlg .tile.tone{--tc:var(--tone)}
#app #v-perf .card{--tc:var(--sec,var(--tc-neutral))}
#app #c-aihome,#app #c-chat,#app #aidlg{--tc:var(--ki)}
#app .connection-card{--tc:var(--connection-accent)}
.dstats>div:not(.tone),.rd-tiles>div:not(.tone),.coach-tss-metric,.cseason-week{border:1px solid var(--border);box-shadow:inset 3px 0 0 var(--tc-neutral);background:linear-gradient(100deg,color-mix(in srgb,var(--tc-neutral) 10%,var(--field)),var(--field) 62%)}
.cseason,.coach-tss{border:1px solid var(--border);background:var(--field)}

/* Bereitschaft (Tagesform) färbt Tagesform und Trainingsplan; KI-Boxen bleiben violett */
body{--ready:var(--tc-neutral)}
body[data-ready="ok"]{--ready:var(--i-rest)}body[data-ready="mid"]{--ready:var(--s1)}body[data-ready="warn"]{--ready:var(--i-vo2)}
#app #c-readiness{--tc:var(--ready)}#app #c-coach{--tc:var(--tc-neutral)}
#c-readiness>h2{font-size:12px!important;font-weight:400!important;color:var(--ink2);margin:0}
#c-readiness #readiness .adv{border:0;background:none;padding:0;box-shadow:none;--tone:var(--ready)}
#c-readiness #readiness .adv .lv{font-size:22px;color:color-mix(in srgb,var(--ready) 80%,var(--ink))}

/* Trainingsstatus als eigene Kachel, aufklappbar zu Fitness und Ermüdung */
#c-status{--tc:var(--s1);padding:0!important;display:block}
#app #c-status{--tc:var(--s1)}#app #c-status[data-tone="good"]{--tc:var(--good)}#app #c-status[data-tone="warn"]{--tc:#e8a329}#app #c-status[data-tone="bad"]{--tc:var(--bad)}#app #c-status[data-tone="muted"]{--tc:var(--tc-neutral)}
#c-status .load-history{border:0!important;background:none!important;padding:0!important;margin:0}
#c-status .load-history>summary{display:block!important;min-height:0;padding:16px 48px 16px 20px;cursor:pointer;position:relative;list-style:none;border:0!important;margin:0!important}
#c-status .load-history>summary::-webkit-details-marker{display:none}
#c-status .load-history>summary::before{content:''!important;position:absolute;right:22px;top:50%;width:7px;height:7px;margin:-5px 0 0;border-right:2px solid var(--ink2);border-bottom:2px solid var(--ink2);transform:rotate(45deg);transition:transform .15s}
#c-status .load-history[open]>summary::before{transform:rotate(225deg);margin-top:0}
#c-status .load-history[open]{padding:0 20px 16px!important}
#c-status .load-history[open]>summary{margin:0 -20px!important;padding:16px 48px 12px 20px}
#c-status .training-status-hero{padding:0;border:0;background:none;grid-template-areas:"top top top" "label label label" "note note note";row-gap:8px}
#c-status .training-status-top{font-size:12px;letter-spacing:0}
#c-status .training-status-top>span{display:inline}
#c-status .training-status-label strong{font-size:26px;color:color-mix(in srgb,var(--tc) 80%,var(--ink))}
#c-status .training-status-symbol{color:var(--tc);background:color-mix(in srgb,var(--tc) 18%,transparent)}
#c-status .ts-h{margin:4px 0 10px;font-size:13px;font-weight:600}
#c-status .load-history[open]>.ts-h{padding-top:12px;border-top:1px solid var(--border)}

/* Heute: jede Einheit eine eigene Kachel, ohne äußere Karte */
#c-today .tplans{margin:0;gap:12px}
#c-today .tplan,#c-today .tplans .tplan{padding:16px 20px;border-radius:var(--ek-card-radius);border:1px solid color-mix(in srgb,var(--int,var(--tc-neutral)) 30%,var(--border));border-left:1px solid color-mix(in srgb,var(--int,var(--tc-neutral)) 30%,var(--border));box-shadow:inset 4px 0 0 var(--int,var(--tc-neutral)),var(--shadow);background:linear-gradient(110deg,color-mix(in srgb,var(--int,var(--tc-neutral)) 14%,var(--surface)),var(--surface) 60%)}
#c-today .coach-progress:not([hidden]){border-radius:var(--ek-card-radius);background:var(--surface)}

/* Laden: drehendes Symbol statt Balken */
.ptr.spin{transform:translate(-50%,0)!important}
.ptr.spin span{display:none}
.ptr.spin::after,#reload.loading>span::after{content:'';width:16px;height:16px;border-radius:50%;border:2px solid color-mix(in srgb,var(--ink) 18%,transparent);border-top-color:var(--s1);animation:ek-spin .8s linear infinite;box-sizing:border-box}
#reload.loading>span::after{display:inline-block;width:12px;height:12px;margin-left:8px;vertical-align:-1px}
@keyframes ek-spin{to{transform:rotate(360deg)}}

/* Aufklappen einheitlich: Pfeil nach unten, offen nach oben; Analyse: offene Kachel über die ganze Breite */
.card>h2.ctog::after{transform:rotate(225deg);margin-top:4px}
.card.collapsed>h2.ctog::after{transform:rotate(45deg);margin-top:-4px}
#c-status:has(#load-status:empty){display:none}
#c-status #n-load{display:none}
/* Segmentschalter: aktive Auswahl blau */
.seg button[aria-checked="true"],#app .seg button[aria-checked="true"],#account-modes button[aria-pressed="true"]{background:color-mix(in srgb,var(--s1) 20%,var(--raised));color:color-mix(in srgb,var(--s1) 70%,var(--ink));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--s1) 45%,transparent)}
/* Rahmenplanung: Wochen nach TSS gefärbt, Entlastung grau, aktuelle Woche dezent markiert */
.cseason-r .cw.tone{background:linear-gradient(180deg,var(--tone),color-mix(in srgb,var(--tone) 55%,transparent))}
.cseason-r .cw{border-radius:6px 6px 2px 2px!important}
.cseason-r .cw-rest{background:color-mix(in srgb,var(--ty-rest) 45%,var(--field))}
.cw.now,.cw.selected{outline:0!important}
.cw.now{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--ink) 35%,transparent)!important}
.cw.selected{box-shadow:inset 0 0 0 2px var(--ink)!important}
/* Antippbare Kacheln: kein Markieren von Text, Fokusrahmen folgt den runden Ecken */
#c-status summary,.tplan.selectable,.card>h2.ctog{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
#c-status summary:focus{outline:0}
#app #c-status:has(summary:focus-visible){outline:2px solid var(--s1);outline-offset:2px}
/* Heute: Einheit klappt in der Übersicht auf, Pfeil oben rechts wie beim Trainingsstatus (0.1.84) */
#c-today .tplan.selectable{padding-right:48px}
#c-today .tplan.selectable::after{content:'';position:absolute;right:22px;top:22px;width:7px;height:7px;border-right:2px solid var(--ink2);border-bottom:2px solid var(--ink2);transform:rotate(45deg);transition:transform .15s}
#c-today .tplan.selectable.open::after{transform:rotate(225deg);top:26px}
#c-today .tplan-x:empty{display:none}
#c-today .tplan-x{margin:12px -28px 0 0;padding-top:12px;border-top:1px solid var(--border);cursor:default}
#c-today .tplan-x>button{margin:8px 8px 0 0}
#c-today .tplan.selectable:focus{outline:0}
#c-today .tplan.selectable:focus-visible{outline:2px solid var(--s1);outline-offset:2px}
#c-status .load-history>summary::before{top:22px!important;margin-top:0!important}
#c-status .load-history[open]>summary::before{top:26px!important}
/* Trainingsplan: weniger Kasten in Kasten, weniger Hinweise (0.1.84) */
#c-coach .cseason,#c-coach .coach-tss{border:0;background:none;padding:0;box-shadow:none}
#c-coach .cseason-h,#c-coach .coach-tss-kicker{font-size:12px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--ink2)}
#c-coach .coach-tss-top{margin-bottom:8px}
#coach-goal-note,#coach-tss-now-note,#coach-tss-foot{display:none}
#c-coach .cseason-week.tone{border-color:color-mix(in srgb,var(--tone) 40%,var(--border));box-shadow:inset 3px 0 0 var(--tone);background:linear-gradient(100deg,color-mix(in srgb,var(--tone) 14%,var(--field)),var(--field) 62%)}
#c-coach .cseason-week.tone>b{color:color-mix(in srgb,var(--tone) 75%,var(--ink))}
#coach-set .cs-sec{font-size:12px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--ink2)}
/* Plan-Einstellungen in Farbe: Kachel in Trainingsplan-Farbe, Abschnitte mit eigener Akzentfarbe (0.1.86) */
#app #coach-set.csettings{border-color:color-mix(in srgb,var(--tc) 40%,var(--border));box-shadow:inset 4px 0 0 var(--tc);background:linear-gradient(110deg,color-mix(in srgb,var(--tc) 12%,var(--surface)),var(--surface) 60%)}
#coach-set .cs-head svg{stroke:color-mix(in srgb,var(--tc) 75%,var(--ink))}
#coach-set .csettings-b>.cs-sec:nth-of-type(1),#coach-set .csettings-b>.cs-sec:nth-of-type(1)~*{--sc:var(--goal,var(--ty-thr))}
#coach-set .csettings-b>.cs-sec:nth-of-type(2),#coach-set .csettings-b>.cs-sec:nth-of-type(2)~*{--sc:var(--tc-neutral)}
#coach-set .csettings-b>.cs-sec:nth-of-type(3),#coach-set .csettings-b>.cs-sec:nth-of-type(3)~*{--sc:var(--tc-neutral)}
#coach-set .csettings-b>.cs-sec:nth-of-type(4),#coach-set .csettings-b>.cs-sec:nth-of-type(4)~*{--sc:var(--ki)}
#coach-set .cs-sec{color:color-mix(in srgb,var(--sc) 70%,var(--ink))}
#coach-set .cs-sec::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--sc);flex:none}
#coach-set .cs-sec::after{background:linear-gradient(90deg,color-mix(in srgb,var(--sc) 45%,transparent),var(--border) 40%)}
#coach-set details.cmore,#coach-set #season-plan-settings:not([open]){border-color:color-mix(in srgb,var(--sc) 30%,var(--border));box-shadow:inset 3px 0 0 var(--sc);background:linear-gradient(100deg,color-mix(in srgb,var(--sc) 12%,var(--field)),var(--field) 60%)}
#coach-set details.cmore[open]>summary{border-bottom-color:color-mix(in srgb,var(--sc) 25%,var(--border))}
#coach-set #season-plan-settings>summary::after{border-color:color-mix(in srgb,var(--sc) 50%,var(--border));color:var(--sc)}
#coach-set .csettings-b>.field select,#coach-set .csettings-b>.field input,#coach-set .csettings-b>.filters select{border-color:color-mix(in srgb,var(--sc) 30%,var(--border));box-shadow:inset 3px 0 0 var(--sc)}
/* Einheit anpassen: Dauer in Einheitenfarbe, Aktionen neutral weiß, Neu planen violett, Übernehmen blau */
#app .unit-controls .unit-dur{--uc:var(--int,var(--tc-neutral));border-color:color-mix(in srgb,var(--uc) 35%,var(--border));box-shadow:inset 3px 0 0 var(--uc);background:linear-gradient(100deg,color-mix(in srgb,var(--uc) 14%,var(--raised)),var(--raised) 60%)}
#app .unit-controls .cday-a button[data-how]{--bc:var(--tc-neutral)}
#app .unit-controls .cday-a button[data-how]:not(.primary){border-color:color-mix(in srgb,var(--bc) 30%,var(--border));background:var(--raised);color:var(--ink)}
#app .unit-controls .cday-a button[data-how]:not(.primary):hover:not(:disabled){border-color:color-mix(in srgb,var(--bc) 55%,var(--border))}
/* Analyse: eine Kachel pro Reihe, Aufklappen an Ort und Stelle, Pfeil unten/oben (0.1.98) */
#v-perf:not([hidden]){columns:auto!important;display:flex!important;flex-direction:column;gap:10px}
#v-perf .grid2{display:flex!important;flex-direction:column;gap:10px;margin:0!important;padding:0!important}
#v-perf .grid2>.card,#v-perf>.card{margin:0!important}
#v-perf .note{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;max-width:none}
#v-perf .note:empty{display:none}
#v-perf #n-ftpm,#v-perf #n-streams{display:none}
#v-perf #n-streams:not([hidden]){display:block;-webkit-line-clamp:unset}
#app #coach-set .coach-primary-card{--sc:var(--goal,var(--ty-thr));border-color:color-mix(in srgb,var(--sc) 35%,var(--border));box-shadow:inset 3px 0 0 var(--sc);background:linear-gradient(100deg,color-mix(in srgb,var(--sc) 14%,var(--field)),var(--field) 60%)}
/* Kacheln ohne sinnvolle Farbe sind weiß (hell im dunklen Design); grau bleibt Ruhe und Erholung (0.1.89) */
/* Fitness und Ermüdung: Farbe von links wie alle Kacheln; Fitness und Ermüdung in Linienfarbe, Form und Last nach Stufe */
#app #load-metrics>div{--m:var(--tc-neutral);border:1px solid color-mix(in srgb,var(--m) 40%,var(--border));box-shadow:inset 4px 0 0 var(--m);background:linear-gradient(110deg,color-mix(in srgb,var(--m) 14%,var(--surface)),var(--surface) 60%);padding:12px 12px 12px 16px}
#app #load-metrics>[data-metric="fit"]{--m:var(--s1)}
#app #load-metrics>[data-metric="fat"]{--m:var(--s2)}
#app #load-metrics>[data-metric="form"].tone,#app #load-metrics>[data-metric="load"].tone{--m:var(--tone)}
/* Wochenlast: neutrale Kacheln weiß, gleich kräftig wie andere Kacheln (0.1.95) */
#app .coach-tss-metric{border:1px solid color-mix(in srgb,var(--tc-neutral) 35%,var(--border));box-shadow:inset 4px 0 0 var(--tc-neutral);background:linear-gradient(110deg,color-mix(in srgb,var(--tc-neutral) 12%,var(--surface)),var(--surface) 60%);padding-left:16px}
/* Analyse-Prüfung: Unterkacheln mit Innenabstand und ohne farbigen Rahmen, Formulare und Tabellen ohne Überlauf */
#app #v-perf .dstats>div{padding:10px 12px;border-radius:12px;min-width:0}
#app .dstats>div.tone,#app #ramp>div.tone,#app #d-heat>div.tone{border-color:var(--border)}
#app #c-climb .filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:end}
#app #c-climb .field{min-width:0}#app #c-climb .field input{width:100%!important;max-width:none}
#app #c-dura th{white-space:normal;vertical-align:bottom}
#app #v-perf .legend span{min-width:0;overflow-wrap:anywhere}
/* ===== Feinschliff iPhone (0.21.18) ===== */
/* Kalender: Kopfzeile mit Wochentag und Häkchen nebeneinander, Prozent als farbige Zahl, heute ohne Rahmen */
#app .mini-calendar .mini-cal-day{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:1px;min-width:0;min-height:80px;padding:5px 3px 8px 8px;box-shadow:none;overflow:hidden}
#app .mini-calendar .mini-cal-day:has(.mini-cal-percent){min-height:80px}
#app .mini-calendar .cs-top{display:flex;align-items:center;justify-content:space-between;align-self:stretch;gap:2px;min-height:16px}
#app .mini-calendar .cs-w{align-self:auto;margin:0;padding:0;font-size:10px;line-height:16px;color:var(--ink2)}
#app .mini-calendar .mini-cal-day .ck{position:static;width:15px;height:15px;line-height:15px;font-size:9px}
#app .mini-calendar .cs-n{display:inline-grid;place-items:center;min-width:28px;height:26px;margin:2px 0 1px;padding:0 3px;font-size:17px;line-height:1;border-radius:8px}
#app .mini-calendar .cs-k{max-width:100%;margin:0;font-size:10px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:clip}
#app .mini-calendar .completion.compact{display:block;width:auto;min-width:0;max-width:100%;margin:3px 0 0;padding:0;border:0;border-radius:0;background:none}
#app .mini-calendar .completion.compact strong{font-size:11px;font-weight:700;color:var(--completion-color);white-space:nowrap}
#app .mini-calendar .mini-cal-day.now{box-shadow:none}
#app .mini-calendar .mini-cal-day.now .cs-w{color:var(--ink);font-weight:600}
#app .mini-calendar .mini-cal-day.now .cs-n{background:var(--ink);color:var(--surface)}
#app .mini-calendar .mini-cal-day.selected{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--s1) 70%,transparent)}
#app .mini-cal-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:10px;font-size:12px;color:var(--ink2)}
@media(min-width:601px){#app .mini-calendar .mini-cal-day{min-height:92px;padding:7px 6px 10px 10px}#app .mini-calendar .cs-w{font-size:12px}#app .mini-calendar .cs-n{font-size:20px;height:30px;min-width:32px}#app .mini-calendar .cs-k,#app .mini-calendar .completion.compact strong{font-size:12px}#app .mini-calendar .mini-cal-day .ck{width:18px;height:18px;line-height:18px;font-size:11px}}
/* Aktivitätenliste: Planerfüllung als gewöhnliche Pille ohne Rahmen */
#app .act .badges{gap:6px}
#app .act .badges .completion{min-width:0;min-height:0;padding:4px 8px;border:0;border-radius:999px;background:color-mix(in srgb,var(--completion-color) 20%,transparent);gap:4px;line-height:1}
#app .act .badges .completion strong,#app .act .badges .completion-label{font-size:12px;font-weight:600;line-height:1;color:var(--ink)}
/* Heute: keine leere Fläche zwischen zwei Linien, Aktionen auf dem Handy umbrechen statt abschneiden */
#c-today .tplan-x>.unit-controls:first-child{margin-top:0;padding-top:0;border-top:0}
@media(max-width:600px){#app .unit-controls .cday-a button{width:100%;min-width:0;padding:8px 6px;font-size:13px;line-height:1.2;white-space:normal;text-align:center}}
/* Datumsfelder auf dem iPhone: volle Breite, gleiche Höhe wie andere Felder, auch leer */
#app input[type="date"],#app input[type="time"]{-webkit-appearance:none;appearance:none;display:block;width:100%;min-width:0;max-width:100%;box-sizing:border-box;min-height:44px;line-height:1.3}
#app .cvac-add input[type="date"]{display:inline-block;width:auto;flex:1 1 130px}
#app input[type="date"]::-webkit-date-and-time-value,#app input[type="time"]::-webkit-date-and-time-value{min-height:1.3em;text-align:left;margin:0}
/* Fahrtansicht: Titel bekommt beim Öffnen den Fokus ohne Rahmen; Trainingsnutzen-Kacheln gleich hoch, Balken unten bündig */
#d-title:focus{outline:0}
#d-te.te>.tile{display:flex;flex-direction:column;min-width:0}
#d-te.te>.tile>.lbl{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#d-te.te>.tile>.tr{margin-top:auto}
/* „Mehr erfahren“ im Fließtext: kein Button-Kasten, der die Zeile aufreißt */
#app .note .more-btn,#dlg .note .more-btn{display:inline!important;min-height:0!important;margin:0 0 0 4px!important;padding:0!important;border:0!important;background:none!important;font-size:inherit!important;line-height:inherit!important}
/* Analyse: aufgeklappte Hinweise ganz zeigen statt mit „…“ abzuschneiden */
#v-perf .note{display:block;-webkit-line-clamp:unset;line-clamp:none;overflow:visible}
/* Verbindungen: Kachel wie überall (Rand und Streifen in der Markenfarbe), Status nur in der Pille, Aktionen neutral */
#app #v-set .connection-card,#app #v-set .connection-card[data-state="connected"]{border:1px solid color-mix(in srgb,var(--tc) 40%,var(--border));box-shadow:inset 4px 0 0 var(--tc),var(--shadow);background:linear-gradient(110deg,color-mix(in srgb,var(--tc) 14%,var(--surface)),var(--surface) 60%)}
#app #v-set .connection-card .connection-actions button:not(.strava-connect-button),#app #v-set .connection-card .connection-actions .connection-disconnect{border-color:var(--border);background:var(--raised);color:var(--ink)}
/* „Verbindung trennen“ bleibt in der Markenfarbe getönt (Wunsch von Matthias) */
#app #v-set .connection-card .connection-actions button.connection-disconnect:not(.strava-connect-button){border-color:color-mix(in srgb,var(--connection-accent) 45%,var(--grid));background:color-mix(in srgb,var(--connection-accent) 9%,var(--surface));color:var(--ink)}
#app .unit-controls:empty,#c-today .tplan-x:has(>.unit-controls:only-child:empty){display:none}
