/* Training ohne Netz: Statusanzeige, Rückfragen, Trainingsansicht aus dem Gerätespeicher, Satz-Zustand. */

/* Statusanzeige: ein Satz, bleibt beim Scrollen oben sichtbar. */
.pwa-status{position:sticky;top:8px;z-index:60;display:flex;align-items:center;gap:10px;padding:10px 14px;margin:0 0 16px;border:1px solid #3c3c3c;border-radius:12px;color:#d6d6d6;background:#191919f2;backdrop-filter:blur(10px);font-size:14px;line-height:1.35;overflow-wrap:anywhere}
.pwa-status[hidden]{display:none}
.pwa-status>i{font-size:18px;flex:none}
.pwa-status>span{flex:1;min-width:0}
.pwa-status[data-state=ok]{border-color:#356e4e;color:#9be0b8}
.pwa-status[data-state=warning]{border-color:#ad7429;color:#ffd08f}
.pwa-status[data-state=error]{border-color:#b45f5f;color:#ffc2c2}
.pwa-status[data-state=info]{border-color:#3d5a80;color:#bcd6f5}
.pwa-status-action{flex:none;min-height:44px;padding-inline:14px;white-space:nowrap}
.is-capture .pwa-status,.offline-shell .pwa-status{top:8px}

.pwa-controls{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:0 0 16px}
.pwa-controls[hidden]{display:none}
.pwa-controls .btn{min-height:48px;font-size:14px}

/* Rückfragen mit eindeutig beschrifteten Schaltflächen. */
.pwa-dialog{width:min(520px,calc(100vw - 32px));border:1px solid #555;border-radius:16px;background:#191919;color:#f1f1f1;padding:24px}
.pwa-dialog::backdrop{background:#000b}
.pwa-dialog h2{font-size:20px;margin:0 0 10px}
.pwa-dialog p{color:#cfcfcf;margin:0 0 20px}
.pwa-dialog-actions{display:flex;flex-direction:column;gap:10px}
.pwa-dialog-actions .btn{min-height:52px;font-size:16px}
.btn-outline-danger{--bs-btn-color:#ff9c9c;--bs-btn-border-color:#b45f5f;--bs-btn-hover-bg:#7a2c2c;--bs-btn-hover-border-color:#b45f5f;--bs-btn-hover-color:#fff}

/* Trainingsansicht aus dem Gerätespeicher: gleiches Gerüst wie die Online-Seiten. */
.offline-shell{background:var(--app-bg)}
.offline-header{display:flex;align-items:center;justify-content:space-between;padding:15px 20px;border-bottom:1px solid #2a2a2a;background:#141414}
.offline-header .studio-brand{font-size:17px}
.offline-header .brand-symbol{height:34px;width:34px;font-size:21px}
.offline-workspace{max-width:900px;margin:auto;padding:22px 16px 120px}
.offline-shell .mobile-bottom{position:fixed;bottom:0;left:0;right:0;z-index:80;display:flex;justify-content:space-around;border-top:1px solid #333;background:#161616f8;padding:6px 10px max(7px,env(safe-area-inset-bottom));backdrop-filter:blur(16px)}
.offline-shell .mobile-bottom .studio-nav-link{display:flex;flex-direction:column;gap:3px;align-items:center;justify-content:center;width:25%;padding:4px;border:0;font-size:12px;min-height:50px;background:transparent;color:#b0b4bb;margin:0;font-weight:500;text-decoration:none}
.offline-shell .mobile-bottom .studio-nav-link.active{color:#ff8917}
.offline-shell .mobile-bottom i{font-size:20px}
.offline-shell.is-capture .mobile-bottom{display:none}
.offline-shell .capture-action-bar{left:0}
.offline-loading{color:#b0b4bb;padding:24px 4px}
.offline-card{padding:22px;border:1px solid #333;border-radius:14px;background:#191919;margin-bottom:16px;overflow-wrap:anywhere}
.offline-card p{color:#cfcfcf}
.offline-note-card{border-color:#ad7429}
.offline-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.offline-actions:empty{display:none}
.offline-actions .btn{min-height:48px}
.offline-actions .btn-link{color:#ff8917;padding-inline:4px}
.offline-finish{margin-top:24px}
.exercise-card{border:1px solid var(--app-border);color:var(--app-text);min-height:72px}
.exercise-card:disabled{opacity:.75}
.exercise-card>div>.bi-chevron-right{align-self:center;color:#b0b4bb}
@media(max-width:600px){.offline-actions .btn:not(.btn-link){flex:1 1 100%}}

/* Abweichende Eingaben nebeneinander, in normaler Sprache. */
.conflict-sides{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin:16px 0}
.conflict-side{border:1px solid #3b3b3b;border-radius:12px;padding:14px;background:#141414;margin:0}
.conflict-list{margin:4px 0 0;padding-left:18px;color:#d6d6d6;font-size:14px}

/* Satz-Zustand: „Satz fertig“ ist das größte Ziel der Karte. */
.set-done-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:56px;margin-top:14px;border:1px solid var(--app-border-strong);border-radius:12px;background:var(--app-primary-soft);color:#ffbd73;font-size:17px;font-weight:700}
.set-done-button:hover,.set-done-button:focus-visible{background:rgba(255, 137, 23,.24);color:#ffd4a3;border-color:var(--app-primary)}
.training-set-card.is-done{border-color:#356e4e;background:linear-gradient(180deg,rgba(53,110,78,.16),rgba(53,110,78,0)),var(--app-surface-soft)}
.training-set-card.is-done .set-done-button{background:rgba(53,110,78,.28);border-color:#3f8a60;color:#a9e7c4}
.training-set-card.is-done .training-set-number::after{content:" ✓";color:#7fd6a5}
.set-done-help{color:#ffd08f;font-size:14px;margin-top:6px}
.set-done-help:empty{display:none}
.training-set-card .form-control{min-height:52px;font-size:18px}
.weight-step-button,.quick-value{min-height:48px;min-width:48px}
.rest-timer-actions .btn{min-height:48px;min-width:52px}
.rest-timer-bar[hidden]{display:none}
.rest-timer-bar:has(.rest-timer-running[hidden]){display:block;padding:0;border:0;background:transparent}
.rest-timer-running{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%}
.rest-timer-running[hidden],.rest-timer-start[hidden]{display:none}
.rest-timer-start{width:100%;min-height:48px;border:1px solid #2c4a6e;border-radius:12px;background:#101c2c;color:#8ec1ff;font-weight:600}
.capture-form{padding-bottom:11rem}
.previous-details>summary{list-style:none;display:inline-flex;align-items:center;min-height:48px}
.previous-details>summary::-webkit-details-marker{display:none}
.previous-details>summary::before{content:"▸";margin-right:8px}
.previous-details[open]>summary::before{content:"▾"}

/* Gesperrte Felder bleiben im dunklen Design (z. B. wenn das Training in einem anderen Fenster offen ist). */
.capture-form .form-control:disabled{background:#141414;color:#8d8d8d;border-color:#2c2c2c;opacity:1}
.capture-form button:disabled{opacity:.5}

.offline-logout{min-height:44px;display:inline-flex;align-items:center;font-size:14px}

/* Wiederherstellungscodes der Zwei-Faktor-Anmeldung */
.recovery-codes{list-style:none;padding:0;margin:20px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.recovery-codes code{display:block;text-align:center;padding:12px;border:1px solid #3b3b3b;border-radius:10px;background:#141414;color:#f1f1f1;font-size:17px;letter-spacing:1px}

/* Sichtbarer Tastaturfokus überall (WCAG 2.4.7), auch auf eigenen Knöpfen und Karten. */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible,.btn:focus-visible,.set-done-button:focus-visible,.exercise-card:focus-visible{outline:3px solid var(--nv-focus) !important;outline-offset:2px;box-shadow:none}
