:root{
  --bg:#14171c; --panel:#1b1f26; --panel-alt:#20242c; --line:#2b3038;
  --text:#e7e9ec; --muted:#8b93a1; --accent:#d9a441; --accent-soft:#3a3120;
  --limit:#c0554a; --reserve:#4f9d6e; --ok:#4f9d6e;
}
*{box-sizing:border-box; -webkit-tap-highlight-color:transparent;}
body{margin:0; background:var(--bg); color:var(--text); font-family:-apple-system,'Helvetica Neue',Arial,sans-serif; line-height:1.4; padding-bottom:80px;}

.topbar{display:flex; align-items:center; justify-content:space-between; padding:16px 18px; border-bottom:1px solid var(--line); position:sticky; top:0; background:var(--bg); z-index:10;}
.section-nav{display:flex; gap:8px; flex-wrap:wrap; overflow-x:auto; padding:10px 0; margin-bottom:16px; position:sticky; top:57px; background:var(--bg); z-index:9; border-bottom:1px solid var(--line);}
[id^="section-"]{scroll-margin-top: 120px;}
.section-nav a{background:var(--panel); border:1px solid var(--line); border-radius:16px; padding:6px 14px; font-size:12.5px; color:var(--text); text-decoration:none; white-space:nowrap;}
.section-nav a:hover{border-color:var(--accent); color:var(--accent);}
.impersonate-banner{background:var(--accent); color:#14171c; text-align:center; padding:10px 16px; font-size:13px; font-weight:600;}
.impersonate-banner a{color:#14171c; text-decoration:underline;}
.topbar .eyebrow{font-size:13px; text-transform:uppercase; letter-spacing:.08em; color:var(--accent); font-weight:600;}
.breadcrumb-prefix{color:var(--muted); font-weight:400; text-decoration:none;}
.breadcrumb-prefix:hover{color:var(--accent);}
.topbar-links{display:flex; gap:14px;}
.back-link, .logout-link, .topbar-links a{color:var(--muted); text-decoration:none; font-size:14px;}
.topbar-nav{display:flex; align-items:center; gap:12px;}
.home-link{color:var(--muted); text-decoration:none; font-size:15px; opacity:0.85;}
.home-link:hover{opacity:1;}

main{max-width:600px; margin:0 auto; padding:20px 16px;}
main.wide{max-width:1180px;}

h1{font-size:22px; margin:4px 0 2px;}
h2.plan-day-heading{font-size:15px; color:var(--accent); margin:26px 0 10px; text-transform:uppercase; letter-spacing:.04em; display:flex; align-items:center; gap:8px;}
.section-divider{border:none; border-top:1px solid var(--line); margin:32px 0 8px;}
.checkbox-label{display:flex; align-items:center; gap:8px; font-size:13px; color:var(--text); padding:4px 0;}
.checkbox-label input[type="checkbox"]{width:16px; height:16px;}
.prompt-textarea{width:100%; background:var(--panel); border:1px solid var(--line); border-radius:10px; color:var(--text); padding:14px; font-size:12.5px; font-family:monospace; line-height:1.5; resize:vertical;}
.hint{color:var(--muted); font-size:13px; margin:0 0 18px;}
.muted{color:var(--muted); font-size:12px;}

/* Tageskacheln */
.day-grid{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:10px;}
.day-tile{background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:22px 14px; text-decoration:none; color:var(--text); display:flex; flex-direction:column; gap:4px; position:relative;}
.day-tile.today{border-color:var(--accent);}
.day-tile.block-next{border-color:var(--accent);}
.day-tile.block-done{opacity:0.55;}
.block-done-badge{position:absolute; top:10px; right:10px; background:var(--panel-alt); color:var(--muted); font-size:10px; padding:3px 8px; border-radius:20px;}
.day-tile .weekday{font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted);}
.day-tile .label{font-size:16px; font-weight:600;}
.today-badge{position:absolute; top:10px; right:10px; background:var(--accent-soft); color:var(--accent); font-size:10px; padding:3px 8px; border-radius:20px;}
.progress-link{display:block; text-align:center; margin-top:14px; color:var(--accent); text-decoration:none; font-size:14px;}

/* Wochenrückblick */
.week-review{display:flex; justify-content:space-between; gap:4px; margin:16px 0; background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:12px 10px;}
.week-day{display:flex; flex-direction:column; align-items:center; gap:4px; flex:1;}
.week-dot{width:22px; height:22px; border-radius:50%; background:var(--panel-alt); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; font-size:11px; color:var(--reserve);}
.week-day.trained .week-dot{background:rgba(79,157,110,0.18); border-color:var(--reserve);}
.week-day.due .week-dot{border-color:var(--accent); border-style:dashed;}
.week-day.rest-day-cell{opacity:0.4;}
.week-day.rest-day-cell .week-dot{color:var(--muted); font-size:10px;}
.week-day.is-today .week-label{color:var(--accent); font-weight:700;}
.week-label{font-size:10px; color:var(--muted); text-transform:uppercase;}

/* Trainingsverlauf */
.month-compare{background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:14px 16px; margin-bottom:20px;}
.compare-row{display:grid; grid-template-columns:90px 60px 24px 1fr; align-items:center; gap:8px; padding:8px 0; border-bottom:1px solid var(--line); font-size:13px;}
.compare-row:last-child{border-bottom:none;}
.compare-label{color:var(--muted); font-size:12px;}
.compare-val{font-weight:700; color:var(--text);}
.compare-trend{font-size:14px; text-align:center;}
.trend-up{color:var(--reserve);}
.trend-down{color:var(--limit);}
.trend-flat{color:var(--muted);}
.compare-prev{color:var(--muted); font-size:11px;}
.stats-overview{display:flex; justify-content:space-around; gap:8px; background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:16px 10px; margin-bottom:20px; text-align:center;}
.stats-overview div{display:flex; flex-direction:column; gap:2px;}
.stats-overview strong{font-size:18px; color:var(--accent);}
.stats-overview span{font-size:10.5px; color:var(--muted); text-transform:uppercase;}
.session-history-card{background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:12px 14px; margin-bottom:8px;}
.session-history-top{display:flex; justify-content:space-between; align-items:center; margin-bottom:4px;}
.session-delete-actions{display:flex; gap:2px;}
.session-delete-btn{background:none; border:none; color:var(--muted); font-size:14px; cursor:pointer; padding:2px 6px; border-radius:6px;}
.session-delete-btn:hover{color:var(--limit); background:rgba(192,85,74,0.12);}
.session-delete-full-btn{opacity:0.6;}
.session-delete-full-btn:hover{opacity:1;}
.session-history-date{font-size:11px; color:var(--accent); text-transform:uppercase; letter-spacing:.04em;}
.session-day-label{color:var(--muted); text-transform:none; letter-spacing:0; margin-left:6px;}
.session-history-line{font-size:13px; color:var(--text); line-height:1.6;}
.streak-row{display:flex; gap:10px; margin-bottom:20px;}
.streak-card{flex:1; background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:14px; text-align:center;}
.streak-card strong{display:block; font-size:22px; color:var(--accent);}
.streak-card span{font-size:10.5px; color:var(--muted); text-transform:uppercase;}
.heatmap-wrap{display:flex; align-items:flex-start;}
.heatmap-weekday-col{display:flex; flex-direction:column; gap:3px; margin-right:6px; flex-shrink:0;}
.heatmap-weekday-label{height:12px; line-height:12px; font-size:8px; color:var(--muted); text-align:right;}
.heatmap-weekday-spacer{height:26px;}
.heatmap{display:flex; gap:3px; overflow-x:auto; padding-bottom:4px;}
.heatmap-week{display:flex; flex-direction:column; align-items:center; gap:3px;}
.heatmap-cell{width:12px; height:12px; border-radius:3px; background:var(--panel-alt);}
.heatmap-cell.trained{background:var(--accent);}
.heatmap-cell.future{background:transparent;}
.heatmap-week-label{font-size:8px; color:var(--muted); margin-top:2px; writing-mode:vertical-rl; text-orientation:mixed; white-space:nowrap;}

/* Bestleistungen */
.sort-bar{display:flex; align-items:center; gap:10px; margin-bottom:16px; font-size:13px; color:var(--muted);}
.sort-bar select, .range-bar select{background:var(--panel-alt); border:1px solid var(--line); border-radius:8px; color:var(--text); padding:8px 10px; font-size:13px;}
.range-bar{display:flex; align-items:center; gap:10px; margin-top:12px; font-size:13px; color:var(--muted); flex-wrap:wrap;}
.range-bar input[type="date"]{background:var(--panel-alt); border:1px solid var(--line); border-radius:8px; color:var(--text); padding:7px 10px; font-size:13px;}
.pr-group-heading{font-size:12px; color:var(--accent); text-transform:uppercase; letter-spacing:.05em; margin:18px 0 8px; padding-bottom:4px; border-bottom:1px solid var(--line);}
.pr-group-heading:first-child{margin-top:0;}
.pr-card{background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:14px 16px; margin-bottom:10px; display:flex; justify-content:space-between; align-items:center; gap:10px;}
.pr-value{text-align:right; display:flex; flex-direction:column; gap:2px; font-size:12.5px;}
.pr-value strong{color:var(--accent); font-size:15px;}

/* Wochenvolumen */
.volume-list{display:flex; flex-direction:column; gap:16px; margin-top:16px;}
.volume-row{background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:14px 16px;}
.volume-row-head{display:flex; justify-content:space-between; font-size:13.5px; margin-bottom:8px; gap:10px;}
.volume-row-clickable{cursor:pointer;}
.volume-bar-track{background:var(--panel-alt); border-radius:8px; height:10px; overflow:hidden;}
.volume-bar-fill{height:100%; border-radius:8px;}
.volume-bar-green{background:#8fb996;}
.volume-bar-yellow{background:#d9b23a;}
.volume-bar-red{background:var(--limit);}
.volume-status{font-size:10.5px; padding:2px 7px; border-radius:10px; margin-left:6px; font-weight:600;}
.volume-status-green{background:rgba(143,185,150,0.15); color:#8fb996;}
.volume-status-yellow{background:rgba(217,178,58,0.15); color:#d9b23a;}
.volume-status-red{background:rgba(192,85,74,0.15); color:var(--limit);}
.volume-actual-line{font-size:11.5px; color:var(--muted); margin-top:8px;}
.volume-detail{margin-top:10px; padding-top:10px; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:4px;}
.volume-detail-row{display:flex; justify-content:space-between; font-size:12px; color:var(--muted);}
.volume-warning{font-size:12.5px; color:#d9b23a; background:rgba(217,178,58,0.12); padding:10px 14px; border-radius:10px; margin-bottom:16px;}
.pushpull-card{background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:14px 16px; margin-bottom:16px;}
.pushpull-row{display:flex; justify-content:space-between; font-size:13.5px; padding:4px 0;}
.volume-weekday-row{display:flex; gap:4px; margin-bottom:10px;}
.volume-weekday-cell{flex:1; background:var(--accent); border-radius:6px; padding:6px 0; text-align:center; font-size:10px; color:#14171c; font-weight:700;}
.volume-detail-link{display:inline-block; margin-top:8px; font-size:12px; color:var(--accent);}

/* Session-Tracking (Start/Stopp, Timer) */
.session-box{margin:16px 0;}
.start-btn{width:100%; background:var(--accent); color:#14171c; border:none; border-radius:12px; padding:16px; font-size:15px; font-weight:700; cursor:pointer;}
#session-running{background:var(--accent-soft); border:1px solid var(--accent); border-radius:12px; padding:14px 16px; display:flex; align-items:center; justify-content:space-between; gap:10px;}
.session-label{font-size:12px; color:var(--accent); text-transform:uppercase; letter-spacing:.04em;}
.session-timer{font-size:20px; font-weight:700; font-variant-numeric:tabular-nums; color:var(--text);}
#session-running button{background:var(--panel); border:1px solid var(--line); color:var(--limit); border-radius:8px; padding:8px 14px; font-size:13px; cursor:pointer;}
.session-done{background:var(--panel); border:1px solid var(--reserve); border-radius:12px; padding:14px 16px; display:flex; flex-wrap:wrap; align-items:center; gap:10px; font-size:13px;}
.session-done button{background:var(--accent-soft); border:none; color:var(--accent); border-radius:8px; padding:8px 14px; font-size:13px; cursor:pointer; margin-left:auto;}

/* Session-Zusammenfassung */
.summary-box{background:var(--accent-soft); border:1px solid var(--accent); border-radius:12px; padding:16px; margin:16px 0; display:flex; flex-direction:column; gap:8px; align-items:center; text-align:center;}
.summary-stats{display:flex; gap:16px; font-size:13px; color:var(--text);}
.summary-stats span{background:var(--panel); padding:6px 12px; border-radius:20px;}

/* Übungskarten */
.exercise-card{background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:16px; margin-bottom:14px; transition:border-color .2s, background .2s;}
.exercise-card.done{border-color:var(--reserve); background:rgba(79,157,110,0.06);}
.exercise-head{display:flex; justify-content:space-between; align-items:flex-start; gap:10px; margin-bottom:12px;}
.exercise-head h2{font-size:16px; margin:0 0 2px; text-transform:none; color:var(--text); letter-spacing:normal;}
.machine{font-size:12px; color:var(--muted);}
.flag{margin-left:6px; font-size:11px; padding:1px 6px; border-radius:10px;}
.flag-limit{color:var(--limit); background:rgba(192,85,74,0.15);}
.flag-reserve{color:var(--reserve); background:rgba(79,157,110,0.15);}
.flag-yellow{color:#d9b23a; background:rgba(217,178,58,0.15);}
.integrity-card{background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:14px 16px; margin-bottom:12px;}
.integrity-head{display:flex; justify-content:space-between; align-items:center; font-size:14px;}
.integrity-list{margin:0 0 8px; padding-left:18px; font-size:12.5px; color:var(--muted);}
.integrity-list li{margin-bottom:2px;}

/* Jahresrückblick */
.yearly-title{font-size:22px; margin:20px 0 16px; text-align:center;}
.yearly-grid{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
.yearly-stat{background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:16px; text-align:center;}
.yearly-stat strong{display:block; font-size:20px; color:var(--accent); margin-bottom:2px;}
.yearly-stat span{font-size:10.5px; color:var(--muted); text-transform:uppercase; letter-spacing:.03em;}
.highlight-grid{display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:20px;}
.highlight-card{background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:14px; display:flex; flex-direction:column; gap:2px;}
.highlight-icon{font-size:20px; margin-bottom:2px;}
.highlight-card strong{font-size:14px;}
.highlight-card span.muted{font-size:11px; line-height:1.4;}
@media (max-width:480px){ .highlight-grid{grid-template-columns:1fr;} }
.app-version{text-align:center; font-size:11px; color:var(--muted); margin-top:32px; padding-top:16px; border-top:1px solid var(--line);}
.legal-content{font-size:13.5px; line-height:1.7; color:var(--text);}
.legal-content p{margin:0 0 14px;}
.legal-content a{color:var(--accent);}
.legal-content h1, .legal-content h2, .legal-content h3{margin:20px 0 8px; color:var(--text);}
.faq-item{background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:14px 16px; margin-bottom:8px;}
.faq-item summary{cursor:pointer; font-weight:600; font-size:14px; list-style:none;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::before{content:"▸ "; color:var(--accent);}
.faq-item[open] summary::before{content:"▾ "; color:var(--accent);}
.faq-item p{margin:10px 0 0; font-size:13px; color:var(--muted); line-height:1.6;}
.ampel{margin-left:6px; font-size:10.5px; padding:1px 7px; border-radius:10px; font-weight:600; letter-spacing:.02em;}
.ampel-green{color:var(--reserve); background:rgba(79,157,110,0.15);}
.ampel-yellow{color:#d9b23a; background:rgba(217,178,58,0.15);}
.ampel-red{color:var(--limit); background:rgba(192,85,74,0.15);}
.target{font-size:11px; color:var(--accent); white-space:nowrap;}

.unlock-btn{background:var(--panel-alt); border:1px solid var(--line); color:var(--muted); border-radius:8px; padding:6px 10px; font-size:12px; margin-bottom:10px; cursor:pointer;}
.starter-hint{font-size:11.5px; color:var(--accent); background:var(--accent-soft); padding:8px 10px; border-radius:8px; margin:0 0 10px;}
.linked-hint{font-size:11.5px; color:#7aa8d9; background:rgba(122,168,217,0.12); padding:8px 10px; border-radius:8px; margin:0 0 10px;}
.stagnation-hint{font-size:11.5px; color:#d9b23a; background:rgba(217,178,58,0.12); padding:8px 10px; border-radius:8px; margin:0 0 10px;}
.deload-hint{font-size:12.5px; color:#d9b23a; background:rgba(217,178,58,0.12); padding:10px 14px; border-radius:10px; margin-bottom:14px; text-align:center;}

.sets{display:flex; flex-direction:column; gap:8px;}
.set-row{display:grid; grid-template-columns:50px 1fr 14px 1fr 40px; align-items:center; gap:6px;}
.set-row-stk{grid-template-columns:50px 1fr 40px 40px;}
.set-row.saved{opacity:0.85;}
.set-label{font-size:12px; color:var(--muted);}
.set-row input{width:100%; background:var(--panel-alt); border:1px solid var(--line); border-radius:8px; color:var(--text); padding:9px 6px; font-size:14px; text-align:center;}
.set-row input[readonly]{opacity:0.55;}
.set-row .x{text-align:center; color:var(--muted);}
.save-btn{background:var(--accent-soft); color:var(--accent); border:none; border-radius:8px; height:36px; font-size:16px;}
.save-btn:active{transform:scale(0.95);}
.save-btn:disabled{opacity:0.3;}
.chart-link{display:inline-block; margin-top:12px; font-size:12px; color:var(--muted); text-decoration:none;}

/* Ruhetimer */
.rest-timer{position:fixed; top:57px; left:0; right:0; background:var(--accent); color:#14171c; display:flex; align-items:center; justify-content:center; gap:16px; padding:14px; font-weight:700; font-size:18px; z-index:20; box-shadow:0 4px 10px rgba(0,0,0,0.25);}
.rest-timer button{background:none; border:none; color:#14171c; font-size:18px; cursor:pointer; font-weight:700;}

/* Toast */
#toast{position:fixed; bottom:90px; left:50%; transform:translateX(-50%) translateY(20px); background:var(--panel); border:1px solid var(--line); color:var(--text); padding:10px 18px; border-radius:20px; font-size:13px; opacity:0; transition:all .2s; pointer-events:none; max-width:85vw; text-align:center; z-index:30;}
#toast.show{opacity:1; transform:translateX(-50%) translateY(0);}
#toast.error{color:var(--limit); border-color:var(--limit);}

/* Fortschritt */
select#exercise-select{width:100%; background:var(--panel); border:1px solid var(--line); color:var(--text); padding:12px; border-radius:10px; font-size:14px;}
canvas{width:100%; max-height:260px;}
.log-table{margin-top:24px;}
.log-date-block{border-bottom:1px solid var(--line); padding:10px 0; font-size:13px;}
.log-date-block strong{display:block; margin-bottom:4px; color:var(--accent); font-size:12px;}
.log-set{display:inline-block; background:var(--panel-alt); padding:3px 8px; border-radius:6px; margin:2px 4px 2px 0; font-size:12.5px;}

/* Login */
.login-body{display:flex; align-items:center; justify-content:center; min-height:100vh; margin:0;}
.login-box{background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:32px 26px; width:280px; display:flex; flex-direction:column; gap:14px;}
.login-box h1{font-size:18px; text-align:center; margin:0 0 6px;}
.login-box input{background:var(--panel-alt); border:1px solid var(--line); border-radius:8px; color:var(--text); padding:12px; font-size:15px;}
.login-box button{background:var(--accent); color:#14171c; border:none; border-radius:8px; padding:12px; font-size:15px; font-weight:600;}
.login-box .error{color:var(--limit); font-size:13px; margin:0;}

/* Plan-Editor */
.day-header-edit{margin:26px 0 10px;}
.day-header-view{display:flex; align-items:center; gap:8px; font-size:15px;}
.edit-day-btn{background:none; border:none; cursor:pointer; font-size:13px; opacity:0.7;}
.day-header-form{display:flex; gap:6px;}
.day-header-form input, .day-header-form select{background:var(--panel-alt); border:1px solid var(--line); border-radius:6px; color:var(--text); padding:8px; font-size:13px; flex:1;}
.day-header-form button{background:var(--accent-soft); border:none; border-radius:6px; color:var(--accent); padding:0 10px;}

.plan-row{background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:12px; margin-bottom:8px; display:grid; grid-template-columns:1.7fr 2fr 50px 50px 50px 70px 70px 70px 40px 40px 40px; gap:8px; align-items:center;}
.link-toggle-btn{background:var(--panel-alt); border:1px solid var(--line); border-radius:6px; height:38px; font-size:15px; cursor:pointer; color:var(--muted);}
.link-toggle-btn.active{background:rgba(122,168,217,0.15); border-color:#7aa8d9; color:#7aa8d9;}
.link-bulk-actions{display:flex; align-items:center; gap:10px; flex-wrap:wrap; background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:12px 14px; margin-bottom:16px;}
.link-bulk-btn{background:var(--panel-alt); border:1px solid var(--line); border-radius:8px; color:var(--text); padding:8px 12px; font-size:12.5px; cursor:pointer;}
.link-bulk-btn:hover{border-color:#7aa8d9;}
.plan-row-header{background:none; border:none; padding:0 12px; margin-bottom:4px; font-size:10.5px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted);}
.plan-row input, .plan-row select{background:var(--panel-alt); border:1px solid var(--line); border-radius:6px; color:var(--text); padding:8px 8px; font-size:13px; width:100%; min-width:0;}
.plan-row input[type=number]{padding-right:4px;}
.plan-row .plan-save, .plan-row .plan-delete, .progress-row .plan-save, .progress-row .plan-delete, .muscle-target-row .plan-save, .muscle-target-row .plan-delete{background:var(--accent-soft); border:none; border-radius:6px; height:38px; font-size:15px; color:var(--accent); cursor:pointer;}
.plan-row .plan-delete{color:var(--limit); background:rgba(192,85,74,0.12);}
.plan-row-new{grid-template-columns:1fr; display:flex; flex-direction:column; gap:8px;}
.plan-row-new button{background:var(--accent); color:#14171c; border:none; border-radius:8px; padding:12px; font-weight:600; font-size:14px;}

@media (max-width:760px){
  .plan-row{grid-template-columns:1fr 1fr; grid-auto-rows:auto;}
  .plan-row-header{display:none;}
}

/* Admin / Listen */
.studio-heading{font-size:13px; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; margin:20px 0 8px; padding-bottom:6px; border-bottom:1px solid var(--line);}
.equipment-group-label{font-size:11px; color:var(--accent); text-transform:uppercase; letter-spacing:.04em; margin:14px 0 6px;}
.device-search-input{width:100%; background:var(--panel); border:1px solid var(--line); border-radius:10px; color:var(--text); padding:12px 14px; font-size:14px; margin-top:12px;}
.device-row{background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:10px 12px; margin-bottom:8px; display:grid; grid-template-columns:40px 1fr 65px 90px 100px 60px 65px 34px 34px; gap:5px; align-items:center;}
.device-row input, .device-row select{background:var(--panel-alt); border:1px solid var(--line); border-radius:6px; color:var(--text); padding:9px 8px; font-size:13px; width:100%; min-width:0;}
.device-row .plan-save, .device-row .plan-delete{background:var(--accent-soft); border:none; border-radius:6px; height:38px; font-size:14px; color:var(--accent); cursor:pointer;}
.device-row .plan-delete{color:var(--limit); background:rgba(192,85,74,0.12);}

.plan-row-header{background:none; border:none; padding:0 12px; margin-bottom:4px; font-size:10.5px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted);}

.device-row-readonly{grid-template-columns:44px 1fr 70px 90px 90px 65px;}
.device-row-readonly span{font-size:13px; color:var(--text);}
.device-row-own{grid-template-columns:1fr 85px 60px 70px 65px 34px 34px;}

.landscape-hint{display:none; background:var(--panel-alt); border:1px solid var(--line); border-radius:10px; padding:10px 14px; margin:16px 0; font-size:12.5px; color:var(--muted); text-align:center;}
.welcome-card{background:var(--panel); border:1px solid var(--accent); border-radius:14px; padding:20px; margin-top:20px; text-align:center;}
.onboarding-section{text-align:left; background:var(--panel-alt); border-radius:10px; padding:14px 16px; margin-top:10px;}
.onboarding-field{display:flex; flex-direction:column; margin-bottom:12px;}
.onboarding-field span:first-child{font-size:13px; font-weight:600; margin-bottom:2px;}
.onboarding-field input{background:var(--panel); border:1px solid var(--line); border-radius:8px; color:var(--text); padding:9px 10px; font-size:15px;}
.welcome-card h2{margin:0 0 8px; font-size:19px;}
.welcome-card p{margin:0 0 14px; color:var(--muted); font-size:13.5px;}
.settings-grid{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.settings-item{background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:12px;}
.settings-label{display:block; font-size:10.5px; text-transform:uppercase; letter-spacing:.03em; color:var(--muted); margin-bottom:6px;}
.settings-form{display:flex; gap:6px;}
.settings-form input{flex:1; min-width:0; background:var(--panel-alt); border:1px solid var(--line); border-radius:8px; color:var(--text); padding:8px; font-size:14px;}
.settings-form button{background:var(--panel-alt); border:1px solid var(--line); border-radius:8px; padding:8px 10px; cursor:pointer; flex-shrink:0;}
.hint-small{font-size:10.5px; color:var(--muted); margin:8px 0 0; line-height:1.4;}
.progress-group{background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:14px; margin-bottom:12px;}
.progress-group-head{margin-bottom:10px;}
.progress-group-head strong{display:block; font-size:14px;}
.progress-row{display:flex; align-items:center; gap:8px; padding:6px 0; border-top:1px solid var(--line); flex-wrap:wrap;}
.progress-row:first-of-type{border-top:none;}
.progress-input{width:65px; background:var(--panel-alt); border:1px solid var(--line); border-radius:8px; color:var(--text); padding:6px 8px; font-size:14px;}
.progress-input-small{width:50px;}
.progress-date{margin-left:auto; font-size:10.5px;}
.muscle-chip-row{display:flex; gap:6px; flex-wrap:wrap; margin-bottom:10px;}
.muscle-chip{background:var(--panel); border:1px solid var(--line); border-radius:20px; padding:6px 14px; font-size:12.5px; color:var(--muted); text-decoration:none;}
.muscle-chip.active{background:var(--accent-soft); border-color:var(--accent); color:var(--accent);}
.volume-charts-row{display:flex; gap:16px; flex-wrap:wrap; justify-content:center; margin:16px 0 8px;}
.volume-chart-box{flex:1; min-width:200px; max-width:300px;}
@media (max-width:480px){ .volume-charts-row{flex-direction:column; align-items:center;} }
@media (max-width:480px){ .settings-grid{grid-template-columns:1fr;} }
@media (max-width:600px) and (orientation:portrait){
  .landscape-hint{display:block;}
}

@media (max-width:600px){
  .device-row{grid-template-columns:1fr 1fr; grid-auto-rows:auto;}
  .device-row.plan-row-header{display:none;}
  .device-row-readonly, .device-row-own{grid-template-columns:1fr 1fr; grid-auto-rows:auto;}
}
.admin-user-row{background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:14px 16px; margin-bottom:10px; display:flex; justify-content:space-between; align-items:center; gap:10px;}
.admin-user-card{background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:16px 18px; margin-bottom:12px;}
.admin-user-inactive{opacity:0.55;}
.admin-user-info{margin-bottom:12px; display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
.admin-btn-row{display:flex; flex-wrap:wrap; gap:8px;}
.admin-btn-row-center{justify-content:center;}
.admin-btn{display:inline-flex; align-items:center; gap:4px; padding:8px 14px; border-radius:20px; font-size:12.5px; font-weight:600; text-decoration:none; border:1px solid var(--line); background:var(--panel-alt); color:var(--text); cursor:pointer; transition:transform .1s, border-color .15s;}
.admin-btn:hover{border-color:var(--accent); transform:translateY(-1px);}
.admin-btn-accent{background:var(--accent-soft); border-color:var(--accent); color:var(--accent);}
.admin-btn-danger{background:rgba(192,85,74,0.1); border-color:var(--limit); color:var(--limit);}
.admin-btn-danger:hover{border-color:var(--limit); background:rgba(192,85,74,0.2);}
.admin-password-form{display:none; gap:8px; margin-top:12px; padding-top:12px; border-top:1px solid var(--line);}
.admin-password-form input{flex:1; background:var(--panel-alt); border:1px solid var(--line); border-radius:8px; color:var(--text); padding:10px 12px; font-size:13px;}
.muscle-target-row{display:grid; grid-template-columns:100px 70px 30px 70px 44px 40px; align-items:center; gap:8px; background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:10px 12px; margin-bottom:8px;}
.muscle-target-row input{background:var(--panel-alt); border:1px solid var(--line); border-radius:6px; color:var(--text); padding:8px; font-size:13px; width:100%;}
.admin-new-user{display:flex; flex-direction:column; gap:10px; background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:16px; margin-top:10px;}
.admin-new-user input, .admin-new-user select{background:var(--panel-alt); border:1px solid var(--line); border-radius:8px; color:var(--text); padding:11px; font-size:14px;}
.admin-checkbox{font-size:13px; color:var(--muted); display:flex; align-items:center; gap:8px;}
.admin-new-user button{background:var(--accent); color:#14171c; border:none; border-radius:8px; padding:12px; font-weight:600;}

/* Pläne */
.plan-card{background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:14px 16px; margin-bottom:10px; display:flex; justify-content:space-between; align-items:center; gap:10px;}
.plan-card.active{border-color:var(--reserve); background:rgba(79,157,110,0.06);}
.plan-card.just-activated{animation:plan-highlight 1.8s ease-out;}
@keyframes plan-highlight{
  0%{background:rgba(79,157,110,0.35);}
  100%{background:rgba(79,157,110,0.06);}
}
.plan-card-actions{display:flex; flex-direction:column; gap:6px; align-items:flex-end;}
.plan-card-actions button, .plan-card-actions a{background:var(--panel-alt); border:1px solid var(--line); color:var(--text); border-radius:6px; padding:5px 10px; font-size:11.5px; text-decoration:none; cursor:pointer;}
.plan-card-actions button.danger{color:var(--limit);}

/* Import */
.import-error{background:rgba(192,85,74,0.1); border:1px solid var(--limit); color:var(--limit); border-radius:10px; padding:14px; margin-top:14px; font-size:13px; line-height:1.6;}
