: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:40px;}

.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;}
.topbar .eyebrow{font-size:13px; text-transform:uppercase; letter-spacing:.08em; color:var(--accent); font-weight:600;}
.topbar-links{display:flex; gap:14px;}
.back-link, .logout-link, .topbar-links a{color:var(--muted); text-decoration:none; font-size:14px;}

main{max-width:560px; margin:0 auto; padding:20px 16px;}

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;}
.hint{color:var(--muted); font-size:13px; margin:0 0 18px;}
.muted{color:var(--muted); font-size:12px;}

/* Startseite: 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 .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:16px; color:var(--accent); text-decoration:none; font-size:14px;}

/* Übungskarten (Tagesansicht) */
.exercise-card{background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:16px; margin-bottom:14px;}
.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);}
.target{font-size:11px; color:var(--accent); white-space:nowrap;}

.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.saved{opacity:0.6;}
.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 .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);}
.chart-link{display:inline-block; margin-top:12px; font-size:12px; color:var(--muted); text-decoration:none;}

/* Toast */
#toast{position:fixed; bottom:20px; 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:80vw; text-align:center;}
#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 */
.plan-row{background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:10px; margin-bottom:8px; display:grid; grid-template-columns:1fr 1fr 40px 40px 40px 34px 34px; gap:6px; align-items:center;}
.plan-row input{background:var(--panel-alt); border:1px solid var(--line); border-radius:6px; color:var(--text); padding:8px 6px; font-size:12.5px; width:100%;}
.plan-row .plan-save, .plan-row .plan-delete{background:var(--accent-soft); border:none; border-radius:6px; height:34px; font-size:14px; 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 input{}
.plan-row-new button{background:var(--accent); color:#14171c; border:none; border-radius:8px; padding:12px; font-weight:600; font-size:14px;}

/* Admin */
.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-links{display:flex; flex-direction:column; gap:6px; text-align:right;}
.admin-user-links a{color:var(--accent); text-decoration:none; font-size:12.5px;}
.admin-new-user{display:flex; flex-direction:column; gap:10px; background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:16px;}
.admin-new-user input{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;}

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