:root{
  --bg:#050505;--panel:#121212;--panel2:#181818;--line:#2b2b2b;
  --text:#f5f5f5;--muted:#8f8f8f;--yellow:#fff200;--green:#26d06f;--red:#ff5e5e;
  --radius:22px;--shadow:0 18px 50px rgba(0,0,0,.28)
}
*{box-sizing:border-box}
html{background:var(--bg);color-scheme:dark}
body{margin:0;background:radial-gradient(circle at 20% -10%,rgba(255,242,0,.06),transparent 30%),var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit}
.topbar{height:78px;display:flex;align-items:center;gap:22px;padding:10px max(18px,calc((100vw - 1240px)/2));border-bottom:1px solid var(--line);background:rgba(5,5,5,.92);backdrop-filter:blur(12px);position:sticky;top:0;z-index:50}
.brand img{width:148px;display:block}
.nav{display:flex;gap:8px;align-items:center;margin-left:auto}
.nav a{padding:10px 12px;border-radius:12px;color:#c9c9c9;font-weight:700;font-size:14px}
.nav a:hover{background:var(--panel2);color:var(--yellow)}
.user-chip{border:1px solid var(--line);border-radius:99px;padding:9px 13px;color:#aaa;font-size:13px}
.menu-toggle{display:none;background:none;border:0;color:white;font-size:24px}
.shell{width:min(1240px,calc(100% - 28px));margin:0 auto;padding:34px 0 70px}
.footer{padding:30px;text-align:center;color:#555;border-top:1px solid #151515;font-size:13px}
h1{font-size:clamp(34px,5vw,68px);line-height:.95;margin:8px 0 12px;letter-spacing:-.05em}
h2{margin:5px 0 12px;letter-spacing:-.025em}
p{line-height:1.55}
.eyebrow{font-size:12px;color:var(--yellow);font-weight:900;letter-spacing:.14em;margin:0 0 5px}
.lead{color:#b8b8b8;font-size:18px;margin:0}
.muted{color:var(--muted)}
.tiny{font-size:12px}
.center{text-align:center}
.hero-grid{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:28px}
.date-jump{display:flex;align-items:end;gap:8px}
.date-jump label{min-width:180px}
.card,.exercise-card,.history-item,.user-card{background:linear-gradient(180deg,#151515,#111);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.card{padding:24px;margin-bottom:20px}
.featured{border-top:3px solid var(--yellow)}
.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}
.metric{background:#101010;border:1px solid #242424;border-radius:18px;padding:20px}
.metric span{display:block;color:#777;font-size:11px;font-weight:900;letter-spacing:.08em}
.metric strong{display:block;margin-top:8px;font-size:25px}
.good{color:var(--green)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.btn{display:inline-flex;justify-content:center;align-items:center;min-height:48px;padding:0 18px;border-radius:14px;border:1px solid var(--line);font-weight:900;cursor:pointer}
.btn.primary{background:var(--yellow);color:#050505;border-color:var(--yellow)}
.btn.ghost{background:#151515;color:white}
.btn.danger{background:#2a1111;color:#ff8a8a;border-color:#592121}
.btn.good-btn,.good-btn{background:#0f2b1a;color:var(--green);border-color:#205d38}
.full{width:100%}
.stack{display:grid;gap:14px}
.top-gap{margin-top:16px}
label{display:grid;gap:7px;color:#aaa;font-size:12px;font-weight:800;letter-spacing:.03em}
input,select{width:100%;background:#0d0d0d;border:1px solid #323232;color:white;border-radius:13px;padding:14px 15px;outline:none}
input:focus,select:focus{border-color:var(--yellow);box-shadow:0 0 0 3px rgba(255,242,0,.08)}
.progress{height:9px;border-radius:99px;background:#292929;overflow:hidden;margin:16px 0}
.progress.big{height:14px}
.progress i{display:block;height:100%;background:var(--yellow);border-radius:inherit}
.muscle-tags{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 20px}
.muscle-tags span,.pill{display:inline-flex;padding:7px 10px;border:1px solid #333;border-radius:99px;font-size:11px;font-weight:900;color:#aaa}
.good-pill{color:var(--green);border-color:#1f673a;background:#0d2115}
.goal-ring{--p:0;width:170px;height:170px;border-radius:50%;margin:12px auto 18px;background:conic-gradient(var(--yellow) calc(var(--p)*1%),#242424 0);display:grid;place-items:center;position:relative}
.goal-ring:before{content:"";position:absolute;inset:14px;border-radius:50%;background:#121212}
.goal-ring>div{position:relative;text-align:center}
.goal-ring strong{display:block;font-size:34px}
.goal-ring span{font-size:10px;color:#888;font-weight:900;letter-spacing:.1em}
.goal-ring.large{width:230px;height:230px}
.goal-row{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;gap:10px;color:#777;font-size:12px}
.goal-row b{color:white;font-size:16px}
.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.cal-label{text-align:center;color:#555;font-size:11px;font-weight:900;padding:6px}
.cal-day{min-height:88px;border:1px solid #242424;border-radius:14px;padding:10px;background:#0d0d0d;display:flex;flex-direction:column;gap:5px}
.cal-day b{font-size:15px}
.cal-day span{font-size:11px;color:#aaa;margin-top:auto}
.cal-day small{font-size:9px;color:var(--green);font-weight:800}
.cal-day.trained{border-color:#485100;background:#121500}
.cal-day.selected{outline:2px solid var(--yellow)}
.cal-day.future{opacity:.25;pointer-events:none}
.chart-card{min-height:280px}
.workout-list{display:grid;gap:18px}
.exercise-card{padding:22px}
.exercise-top{display:flex;justify-content:space-between;gap:12px}
.slot-no{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--yellow);color:#050505;font-weight:1000;float:left;margin-right:10px}
.done-toggle input{display:none}
.done-toggle span{width:48px;height:48px;border:1px solid #3a3a3a;border-radius:14px;display:grid;place-items:center;font-size:20px;color:#5b5b5b;cursor:pointer}
.done-toggle input:checked + span{background:var(--green);border-color:var(--green);color:#06140b}
.custom-exercise{margin:12px 0}
.custom-exercise summary{color:#8f8f8f;cursor:pointer;font-size:13px}
.custom-exercise label{margin-top:10px}
.exercise-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}
.exercise-stats span{background:#0d0d0d;border:1px solid #242424;border-radius:12px;padding:12px;color:#777;font-size:11px}
.exercise-stats b{display:block;color:white;font-size:15px;margin-top:3px}
.set-head,.set-row{display:grid;grid-template-columns:55px 1fr 1fr 38px;gap:8px;align-items:center}
.set-head{color:#666;font-size:10px;font-weight:900;padding:6px 0}
.set-row{margin:7px 0}
.set-row b{text-align:center;color:#666}
.set-row input{padding:12px}
.set-remove{height:42px;border:0;background:none;color:#666;font-size:24px;cursor:pointer}
.text-btn{background:none;border:0;color:var(--yellow);font-weight:900;font-size:12px;padding:10px 0;cursor:pointer}
.sticky-action{position:sticky;bottom:14px;margin-top:24px;border:1px solid #333;border-radius:18px;padding:12px 14px;background:rgba(15,15,15,.94);backdrop-filter:blur(12px);display:flex;justify-content:space-between;align-items:center;gap:15px;z-index:20}
.sticky-action small{display:block;color:#777;margin-top:3px}
.history-list{display:grid;gap:12px}
.history-item{padding:16px;display:flex;align-items:center;gap:18px}
.history-item:hover{border-color:#4a4a4a}
.history-date{width:58px;text-align:center;background:#0c0c0c;border:1px solid #292929;border-radius:14px;padding:9px}
.history-date b{display:block;font-size:25px}
.history-date span{font-size:10px;color:#777}
.grow{flex:1}
.history-item h2{margin:2px 0}
.history-item p{margin:2px 0}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:13px;border-bottom:1px solid #242424;white-space:nowrap}
th{font-size:10px;color:#777;letter-spacing:.08em}
td{font-size:14px}
td a{color:var(--yellow);font-weight:800}
.admin-create{display:grid;grid-template-columns:2fr 2fr 2fr 1fr 1fr auto;gap:10px;align-items:end}
.user-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.user-card{padding:22px}
.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:15px 0}
.mini-stats span{background:#0c0c0c;border-radius:12px;padding:12px;color:#777;font-size:10px}
.mini-stats b{display:block;color:white;font-size:16px;margin-top:4px}
.line-item{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #242424}
.alert{padding:13px 15px;border-radius:13px;margin:12px 0 18px;font-weight:700}
.alert.success{background:#0e2717;color:#6ce99a;border:1px solid #1c5733}
.alert.error{background:#2a1111;color:#ff9696;border:1px solid #5c2525}
.login-body{display:grid;place-items:center;min-height:100vh;padding:24px}
.login-wrap{width:min(470px,100%)}
.login-card{background:linear-gradient(180deg,#141414,#0c0c0c);border:1px solid #292929;border-radius:28px;padding:32px;box-shadow:0 30px 100px rgba(0,0,0,.5)}
.login-logo{width:min(330px,100%);display:block;margin:0 auto 26px}
.login-card h1{font-size:42px}
code{color:var(--yellow)}
@media(max-width:950px){
  .metric-grid{grid-template-columns:repeat(2,1fr)}
  .two-col,.user-grid{grid-template-columns:1fr}
  .admin-create{grid-template-columns:1fr 1fr}
  .nav{
    display:none;
    position:absolute;
    top:100%;
    left:10px;
    right:10px;
    background:#0a0a0a;
    padding:12px;
    flex-direction:column;
    align-items:stretch;
    border:1px solid #292929;
    border-radius:0 0 16px 16px;
    box-shadow:0 20px 45px rgba(0,0,0,.55);
    z-index:1000;
  }
  .nav-open .nav{display:flex}
  .menu-toggle{
    display:grid;
    place-items:center;
    margin-left:auto;
    width:48px;
    height:48px;
    min-width:48px;
    padding:0;
    border-radius:12px;
    position:relative;
    z-index:1001;
    cursor:pointer;
    pointer-events:auto;
    touch-action:manipulation;
    -webkit-tap-highlight-color:transparent;
  }
  .menu-toggle:active{background:#171717}
  .user-chip{display:none}
}
@media(max-width:620px){
  .shell{width:min(100% - 20px,1240px);padding-top:22px}
  .topbar{height:68px;padding:8px 12px}
  .brand img{width:125px}
  .hero-grid{align-items:stretch;flex-direction:column}
  h1{font-size:39px}
  .lead{font-size:15px}
  .metric-grid{grid-template-columns:1fr 1fr;gap:8px}
  .metric{padding:15px}
  .metric strong{font-size:19px}
  .card,.exercise-card{padding:17px;border-radius:18px}
  .calendar{gap:4px}
  .cal-day{min-height:67px;padding:7px;border-radius:10px}
  .cal-day span{font-size:9px}
  .cal-day small{font-size:0}
  .cal-day small:after{content:"✓";font-size:10px}
  .exercise-stats{grid-template-columns:1fr 1fr 1fr}
  .exercise-stats span{padding:9px;font-size:9px}
  .exercise-stats b{font-size:13px}
  .set-head,.set-row{grid-template-columns:38px 1fr 1fr 30px}
  .sticky-action{bottom:8px}
  .sticky-action div{display:none}
  .sticky-action .btn{width:100%}
  .history-item{gap:10px;padding:12px}
  .history-item .pill{display:none}
  .admin-create{grid-template-columns:1fr}
  .login-card{padding:24px 18px}
}


/* iPhone / PWA */
@supports (padding: max(0px)) {
  .topbar {
    padding-left: max(12px, env(safe-area-inset-left));
    padding-right: max(12px, env(safe-area-inset-right));
  }
  .shell {
    padding-bottom: max(70px, calc(70px + env(safe-area-inset-bottom)));
  }
  .sticky-action {
    bottom: max(8px, env(safe-area-inset-bottom));
  }
}
@media (display-mode: standalone) {
  body { min-height: 100dvh; }
  .topbar{
    height:auto;
    min-height:72px;
    padding-top:10px;
    padding-bottom:10px;
  }
}
@media (display-mode: standalone) and (max-width:620px){
  .topbar{
    min-height:76px;
    padding-top:10px;
    padding-bottom:10px;
  }
  .brand{
    display:flex;
    align-items:center;
    min-width:0;
  }
  .brand img{
    width:118px;
    max-height:58px;
    object-fit:contain;
  }
}


/* Header iPhone V2 */
.topbar{isolation:isolate}
.menu-toggle{user-select:none;-webkit-user-select:none}
.nav a{touch-action:manipulation}
