:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#ebf1f8;background:#08111d;font-synthesis:none;--panel:#132439;--panel2:#182b43;--border:#2b4157;--sub:#9aafc4;--mint:#b6f85e;--dark:#0b1522;--warm:#ffc27b;--danger:#ff8e8e}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}a{color:var(--mint)}.topbar{height:80px;position:sticky;top:0;z-index:20;backdrop-filter:blur(16px);background:#0b1626ed;border-bottom:1px solid #203248;display:flex;align-items:center;justify-content:space-between;padding:0 max(18px,calc((100vw - 1060px)/2))}.brand{display:flex;align-items:center;gap:11px}.brand-mark{height:43px;width:43px;border-radius:14px;background:var(--mint);color:#13241b;display:grid;place-items:center;font-size:27px;font-weight:950;letter-spacing:-4px;padding-right:3px}.brand-mark span{font-size:14px;margin-left:-3px}.brand strong{font-size:21px;letter-spacing:1.1px}.brand strong em{font-style:normal;color:var(--mint)}.brand small{display:block;font-size:10px;letter-spacing:3px;color:#8fa4b9;margin-top:1px;font-weight:750}.top-info{display:flex;align-items:center;gap:10px}.chip{background:#1f3548;border:1px solid #344c61;border-radius:999px;color:#cfe8e6;padding:7px 11px;font-size:12px;font-weight:800}.icon-btn{background:#17283c;border:1px solid #36485a;color:white;width:42px;height:42px;border-radius:14px;font-size:20px}.app-main{max-width:1060px;margin:auto;padding:29px 21px 115px}.hero{padding:30px;border-radius:28px;background:radial-gradient(circle at 95% 0%,#446343 0%,transparent 39%),linear-gradient(125deg,#213b36,#13233c 70%);border:1px solid #3b5955;position:relative;overflow:hidden}.eyebrow{color:var(--mint);font-size:11px;letter-spacing:2.8px;font-weight:850;text-transform:uppercase}.hero h1{font-size:clamp(30px,6vw,54px);margin:12px 0 5px;line-height:1.03;letter-spacing:-1.7px}.hero p{max-width:560px;color:#d0e1e2;margin:10px 0 25px;line-height:1.55}.hero-stamp{position:absolute;right:35px;top:52px;font-size:100px;line-height:1;opacity:.1;transform:rotate(-17deg)}.btn{border:0;border-radius:13px;padding:12px 18px;background:var(--mint);color:#1c291e;font-weight:850;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;min-height:43px}.btn.alt{background:#294058;color:#edf6fb;border:1px solid #415970}.btn.outline{background:transparent;color:#d3e4f2;border:1px solid #3b536b}.btn.danger{background:#6b2e3b;color:#ffe4e8}.btn.small{font-size:12px;padding:9px 12px;min-height:36px}.btn:focus-visible,.nav-btn:focus-visible,.check:focus-visible{outline:3px solid #9add54;outline-offset:2px}.section-title{display:flex;align-items:end;justify-content:space-between;gap:10px;margin:26px 0 14px}.section-title h2,.section-title h3{font-size:21px;letter-spacing:-.6px;margin:0}.muted{color:var(--sub)}.tiny{font-size:12px;color:var(--sub)}.lead{font-size:15px;line-height:1.6;color:#b5c8d9}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:15px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.stat-card,.panel,.unit-tile{border:1px solid var(--border);background:var(--panel);border-radius:20px;padding:19px}.stat-card small{font-size:12px;color:var(--sub)}.stat-card strong{display:block;font-size:32px;letter-spacing:-1.7px;margin-top:5px}.stat-card span{display:block;font-size:11px;margin-top:4px;color:#aec7ad}.panel h3{margin:0 0 9px}.unit-tile{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:11px}.unit-tile h3{margin:0;font-size:20px}.unit-tile p{color:var(--sub);font-size:13px;line-height:1.5;margin:0;flex:1}.unit-tile .row{justify-content:space-between}.unit-letter{width:34px;height:34px;border-radius:10px;background:#365444;color:var(--mint);font-weight:900;display:grid;place-items:center}.unit-tile.status-approved{border-color:#52714c}.unit-tile.status-pending{border-color:#a5784c}.status-pill{font-size:11px;color:#a9c3d6;font-weight:750;border:1px solid #385067;border-radius:999px;padding:5px 9px;display:inline-flex;align-items:center}.status-pill.approved{color:var(--mint);border-color:#607e49}.status-pill.pending{color:var(--warm);border-color:#8b6746}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.row.between{justify-content:space-between}.progress{height:9px;background:#273d50;border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;background:linear-gradient(90deg,#77c98b,var(--mint));border-radius:999px}.notice{padding:14px 17px;border-radius:14px;border:1px solid #41566b;background:#1b2e42;color:#c4d5e0;line-height:1.5;font-size:13px}.notice.warm{background:#3a3028;border-color:#7d5d35;color:#f7d5aa}.notice.good{background:#253f31;border-color:#446d4b;color:#d8f6ce}.section-gap{margin-top:24px}.week-selector{display:flex;gap:7px;overflow:auto;padding:2px 1px 9px;margin-bottom:14px}.week-pill{min-width:65px;white-space:nowrap;border:1px solid #385067;border-radius:11px;background:#193047;color:#bed0e0;padding:10px 9px;font-size:12px;font-weight:750}.week-pill.selected{border-color:var(--mint);color:#172819;background:var(--mint)}.tabs{display:flex;gap:9px;margin:18px 0 18px}.tab{flex:1;border-radius:14px;border:1px solid #3c5067;background:#1a2e43;color:#c2d1df;padding:13px 12px;font-weight:850;text-align:left}.tab.selected{background:#b6f85e;color:#18231c;border-color:#b6f85e}.tab small{display:block;font-size:10px;font-weight:600;margin-top:4px}.group{border:1px solid var(--border);background:#14283c;border-radius:18px;margin:14px 0;overflow:hidden}.group-head{padding:15px 17px;background:#1a3045;display:flex;align-items:center;justify-content:space-between;gap:10px}.group-head h3{margin:0;font-size:15px}.group-head small{color:#9eb5c8}.ex{border-top:1px solid #2b4056;display:flex;align-items:flex-start;gap:12px;padding:14px 16px}.check{appearance:none;-webkit-appearance:none;width:25px;height:25px;flex:0 0 25px;border:2px solid #587084;border-radius:8px;display:grid;place-items:center;margin:2px 0 0;background:#0d1a2b}.check:checked{background:var(--mint);border-color:var(--mint)}.check:checked:before{content:'✓';font-size:18px;font-weight:900;color:#182919}.ex-body{flex:1;min-width:0}.ex-title{font-weight:800;color:#e8f1f8;font-size:14px;line-height:1.45}.ex.done .ex-title{text-decoration:line-through;color:#91a7a5}.ex-dose{color:var(--mint);font-weight:700;font-size:12px;margin:3px 0}.ex-detail{font-size:12px;line-height:1.55;color:#b7c9d6;margin:6px 0 0}.ex-actions{display:flex;align-items:center;gap:7px;margin-top:9px;flex-wrap:wrap}.text-btn{color:#b6f85e;background:transparent;border:0;padding:0;font-size:12px;font-weight:800}.tip{color:#9fb7c4;font-size:12px;line-height:1.4}.warning{color:#ffd18e;font-size:12px;line-height:1.5}.bottom-action{background:#0f1e30;border:1px solid #3b5368;border-radius:20px;padding:17px;margin-top:19px;position:sticky;bottom:91px;z-index:5;box-shadow:0 5px 18px #0005}.bottom-action .row{justify-content:space-between}.bottom-action .btn{max-width:100%}.mob-row{padding:11px 0;border-bottom:1px solid #2a3c50;display:flex;align-items:center;gap:13px}.mob-row:last-child{border-bottom:0}.bottom-nav{height:76px;padding-bottom:env(safe-area-inset-bottom);position:fixed;bottom:0;left:0;right:0;background:#0c1927f5;border-top:1px solid #314358;z-index:15;display:flex;justify-content:center;backdrop-filter:blur(15px)}.nav-btn{width:min(20%,172px);border:0;background:transparent;color:#9aabbc;padding:9px 3px 4px;display:flex;flex-direction:column;align-items:center;gap:4px}.nav-btn>span{font-weight:900;font-size:25px;line-height:29px}.nav-btn small{font-size:10px;font-weight:750}.nav-btn.active{color:var(--mint)}.wallet-number{font-size:52px;font-weight:900;letter-spacing:-3px;margin:10px 0 0}.ledger{display:flex;justify-content:space-between;gap:15px;padding:13px 0;border-bottom:1px solid #304356}.ledger:last-child{border-bottom:0}.ledger strong{color:var(--mint)}.ledger.minus strong{color:var(--warm)}.bars{display:flex;align-items:end;gap:10px;height:165px;margin-top:28px;border-bottom:1px solid #47596c}.barcol{flex:1;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;height:100%}.bar{width:65%;min-width:16px;max-width:63px;background:linear-gradient(0deg,#4d9584,#b6f85e);border-radius:8px 8px 0 0;min-height:2px}.barcol small{color:var(--sub);font-size:11px;margin-bottom:-23px}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field{display:flex;flex-direction:column;gap:5px;font-size:12px;color:#bdd0de}.field input,.field select,.field textarea{background:#0b1b2b;border:1px solid #3a5268;border-radius:11px;color:#fff;padding:12px;width:100%;min-width:0;outline:none}.field input:focus,.field textarea:focus{border-color:var(--mint)}.field textarea{resize:vertical;min-height:75px}.field.full{grid-column:1/-1}.divider{border-top:1px solid var(--border);margin:20px 0}.parent-pending{border-left:3px solid var(--warm);padding:14px;margin:11px 0;background:#1c2c3d;border-radius:12px}.badge-mint{background:#334b3a;border:1px solid #6c9664;border-radius:999px;color:var(--mint);padding:4px 9px;font-size:11px;font-weight:750}.notefooter{font-size:12px;line-height:1.6;color:#95acc0;margin:16px 0}dialog{max-width:520px;width:calc(100% - 24px);max-height:85vh;overflow:auto;background:#12243a;color:#ecf2f8;border:1px solid #4b6177;border-radius:24px;padding:23px;box-shadow:0 20px 90px #000b}dialog::backdrop{background:#050b15c5;backdrop-filter:blur(5px)}dialog h2{margin:0 0 7px;font-size:24px}#toast{position:fixed;bottom:93px;left:50%;transform:translateX(-50%) translateY(15px);background:#c8fa92;color:#172a1d;font-size:13px;font-weight:850;padding:10px 18px;border-radius:15px;z-index:30;opacity:0;pointer-events:none;transition:.2s;max-width:90%;text-align:center}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.timer{display:inline-flex;align-items:center;gap:7px;border:1px solid #526b7a;color:#d3f2bd;padding:7px 10px;border-radius:9px;background:#173047;font-size:12px}.timer.active{background:#b6f85e;color:#132818}.page-intro{margin:0 0 20px}.page-intro h1{font-size:33px;letter-spacing:-1.2px;margin:8px 0}.kicker{font-size:11px;color:var(--mint);font-weight:850;text-transform:uppercase;letter-spacing:2px}.week-plan-label{font-size:14px;color:#c1d2e0;margin:0 0 12px}.footer-actions{display:flex;flex-wrap:wrap;gap:9px}.testrow{display:grid;grid-template-columns:1fr 90px 90px;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid #314356;font-size:13px}.testrow input{background:#0b1b2b;color:white;border:1px solid #3c5165;padding:8px;border-radius:8px;width:100%}.testhead{font-weight:850;color:#a8c0cf}.flexgrow{flex:1}@media(max-width:680px){.topbar{height:70px;padding:0 16px}.brand strong{font-size:17px}.brand small{font-size:9px;letter-spacing:1.8px}.brand-mark{width:39px;height:39px}.chip{font-size:10px}.app-main{padding:19px 14px 110px}.hero{padding:25px 19px}.hero-stamp{right:6px;top:50px}.grid3{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}.stat-card{padding:15px}.stat-card strong{font-size:27px}.unit-tile{padding:15px}.fields{grid-template-columns:1fr}.bottom-action{bottom:78px}.nav-btn>span{font-size:22px}.nav-btn small{font-size:9px}.testrow{grid-template-columns:1fr 75px 75px}.page-intro h1{font-size:28px}}@media(min-width:681px){.bottom-nav{bottom:0;max-width:720px;margin:auto;border-left:1px solid #314358;border-right:1px solid #314358;border-radius:19px 19px 0 0}.app-main{padding-bottom:130px}}@media print{.topbar,.bottom-nav,.btn,.bottom-action,.week-selector{display:none!important}.app-main{max-width:100%;padding:0}body{background:white;color:black}.panel,.stat-card,.group,.unit-tile{background:white!important;color:#111!important;border:1px solid #aaa!important}.ex-title,.group-head h3,.lead{color:#111!important}.ex-detail,.tiny,.muted{color:#555!important}}

/* v1.2: prevent overlay of exercise inputs on phones */
.bottom-action{position:static;bottom:auto}

.cloud-panel{border:1px solid rgba(152,224,182,.38);margin-bottom:16px}
.cloud-message{border:1px solid rgba(122,168,204,.35);border-radius:12px;background:rgba(57,105,144,.1);padding:11px 14px;margin:0 0 16px;color:var(--ink,#e6edf5);font-size:13px}
.cloud-error{border-color:#e7ac69}
.cloud-message button{background:none;color:inherit;text-decoration:underline;border:0;cursor:pointer}
