@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap');
:root{--bg:#f3f5f8;--ink:#172235;--muted:#697589;--line:#e4e8ef;--blue:#2457d6;--navy:#101827;--white:#fff;--green:#16845b;--shadow:0 12px 32px rgba(23,34,53,.06)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:15px;padding-bottom:env(safe-area-inset-bottom)}
.topbar{height:70px;background:var(--navy);color:white;display:flex;align-items:center;justify-content:space-between;padding:0 max(18px,calc((100vw - 960px)/2));position:sticky;top:0;z-index:5}
.brand{display:flex;align-items:center;gap:11px}.brand-mark{display:grid;place-items:center;width:39px;height:39px;border-radius:12px;background:#315ee7;font-weight:800;font-family:Manrope}.brand strong{display:block;font-family:Manrope;font-size:15px}.brand small{display:block;color:#aeb8c8;font-size:11px;margin-top:2px}
main{max-width:960px;margin:28px auto;padding:0 18px;min-height:70vh}.panel{background:white;border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:var(--shadow);margin-bottom:18px}
.auth-panel{max-width:440px;margin:9vh auto}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.35px;color:var(--blue);margin-bottom:8px}h1,h2{font-family:Manrope;margin:0 0 10px;letter-spacing:-.6px}h1{font-size:clamp(28px,5vw,42px);line-height:1.12}h2{font-size:23px}.muted{color:var(--muted);line-height:1.55;margin:0 0 18px}.welcome{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin:8px 0 22px}.status-pill{white-space:nowrap;background:#e8f6ef;color:var(--green);padding:8px 12px;border-radius:30px;font-size:12px;font-weight:700}.dot{display:inline-block;width:7px;height:7px;background:#20a36e;border-radius:50%;margin-right:6px}
label{display:block;font-size:13px;font-weight:600;margin:15px 0;color:#39465a}input,select{display:block;width:100%;margin-top:7px;border:1px solid #dce2eb;background:#fff;border-radius:11px;padding:13px 12px;color:var(--ink);font:inherit;min-height:47px;outline:none}input:focus,select:focus{border-color:#7292ed;box-shadow:0 0 0 3px #e9efff}input[type=checkbox]{width:21px;height:21px;min-height:21px;margin:0;accent-color:var(--blue)}
button{font:inherit;cursor:pointer;border:0}.primary,.secondary{border-radius:12px;min-height:48px;padding:13px 18px;font-weight:700}.primary{background:var(--blue);color:white}.primary:active{transform:scale(.99)}.secondary{background:#edf2ff;color:#2049b8}.full{width:100%;margin-top:10px}.text-button{background:transparent;color:#c8d1df;font-weight:600}.message{font-size:13px;color:var(--muted);min-height:18px;margin:12px 0 0;line-height:1.45}.message.error{color:#b42318}.message.success{color:#13835a}
.tabs{display:flex;gap:6px;overflow:auto;padding:5px;background:#e9edf3;border-radius:13px;margin-bottom:16px;scrollbar-width:none}.tab{flex:1;white-space:nowrap;background:transparent;color:#667287;padding:11px 13px;border-radius:10px;font-weight:700;font-size:13px}.tab.active{background:white;color:var(--blue);box-shadow:0 2px 8px #17223512}
.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.round-icon{width:42px;height:42px;border-radius:13px;background:#edf2ff;color:var(--blue);display:grid;place-items:center;font-size:22px}.date-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0 14px}.summary-grid div{background:#f5f7fb;border-radius:13px;padding:15px}.summary-grid strong{display:block;font:800 23px Manrope}.summary-grid span{font-size:11px;color:var(--muted)}
.workout-list{margin-top:16px}.day-heading{font-weight:800;font-family:Manrope;margin:20px 0 9px}.workout{border:1px solid var(--line);border-radius:13px;padding:13px;margin:8px 0;display:flex;gap:11px}.sport-icon{width:38px;height:38px;border-radius:11px;background:#eef2fa;display:grid;place-items:center;flex:none}.workout h3{font-size:14px;margin:0 0 5px}.workout p{font-size:12px;color:var(--muted);margin:0;line-height:1.5}.workout a{font-size:12px;color:var(--blue);text-decoration:none;display:inline-block;margin-top:5px}
.upload-box{border:1.5px dashed #aebde1;background:#f7f9ff;border-radius:16px;padding:25px 16px;text-align:center;display:block;cursor:pointer}.upload-box input{margin-top:15px}.upload-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#e8eeff;color:var(--blue);font-size:25px;margin:0 auto 10px}.upload-box strong,.upload-box small{display:block}.upload-box small{color:var(--muted);font-weight:400;margin-top:5px}.notice{background:#fff8e8;border:1px solid #f2dfb3;border-radius:13px;padding:14px 16px;margin-bottom:16px;font-size:13px;color:#70531b}.notice p{margin:5px 0 0;line-height:1.5}.notice.compact{margin-top:20px}.switch-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.switch-row small{display:block;color:var(--muted);font-weight:400;margin-top:4px}.switch-row input{width:22px}
.history-item{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:14px 0}.history-item:last-child{border:0}.history-item .pdf{font-size:24px}.history-item div{flex:1}.history-item strong{display:block;font-size:13px}.history-item small{color:var(--muted)}.history-item a{color:var(--blue);font-weight:700;text-decoration:none;font-size:12px}
footer{max-width:960px;margin:30px auto;padding:0 18px 25px;color:#8993a3;font-size:11px;display:flex;justify-content:space-between}
.hidden{display:none!important}code{font-size:12px;background:#f0eadc;padding:2px 4px;border-radius:4px}
@media(max-width:600px){main{margin:18px auto;padding:0 12px}.panel{padding:19px;border-radius:17px}.welcome{display:block}.status-pill{display:inline-block;margin-top:12px}.tabs{margin-left:-2px;margin-right:-2px}.tab{padding:10px 12px}.date-grid{gap:8px}.summary-grid div{padding:12px 9px}.summary-grid strong{font-size:20px}footer{font-size:10px;gap:12px}.auth-panel{margin:6vh auto}}
