:root{--bg:#111315;--surface:#202327;--raised:#272c32;--field:#252a2f;--border:#50565d;--text:#f2f2ef;--muted:#aab1b9;--accent:#f1f1ee;--on-accent:#111315;--success:#d7dfd8;}
:root[data-theme="gruvbox"]{--bg:#282828;--surface:#32302f;--raised:#3c3836;--field:#3c3836;--border:#7c6f64;--text:#ebdbb2;--muted:#bdae93;--accent:#fabd2f;--on-accent:#282828;--success:#b8bb26;}
:root[data-theme="catppuccin"]{--bg:#1e1e2e;--surface:#181825;--raised:#313244;--field:#313244;--border:#6c7086;--text:#cdd6f4;--muted:#bac2de;--accent:#cba6f7;--on-accent:#1e1e2e;--success:#a6e3a1;}
:root[data-theme="nord"]{--bg:#2e3440;--surface:#3b4252;--raised:#434c5e;--field:#3b4252;--border:#7b88a1;--text:#eceff4;--muted:#d8dee9;--accent:#88c0d0;--on-accent:#2e3440;--success:#a3be8c;}
:root[data-theme="dracula"]{--bg:#282a36;--surface:#21222c;--raised:#44475a;--field:#343746;--border:#7c86ad;--text:#f8f8f2;--muted:#c2c8df;--accent:#bd93f9;--on-accent:#282a36;--success:#50fa7b;}
:root[data-theme="tokyo-night"]{--bg:#1a1b26;--surface:#16161e;--raised:#292e42;--field:#24283b;--border:#68759a;--text:#c0caf5;--muted:#a9b1d6;--accent:#7aa2f7;--on-accent:#1a1b26;--success:#9ece6a;}
:root[data-theme="rose-pine"]{--bg:#191724;--surface:#1f1d2e;--raised:#26233a;--field:#26233a;--border:#797593;--text:#e0def4;--muted:#b8b4ce;--accent:#ebbcba;--on-accent:#191724;--success:#9ccfd8;}
:root[data-theme="crimson"]{--bg:#0d0d0f;--surface:#1c1c21;--raised:#29292f;--field:#242429;--border:#686870;--text:#f3f3f5;--muted:#b8b8c2;--accent:#ff6b72;--on-accent:#160a0c;--success:#ff8c92;}
:root[data-theme="neon"]{--bg:#090b0a;--surface:#191c1b;--raised:#242927;--field:#202522;--border:#65716a;--text:#e6eee9;--muted:#b0beb5;--accent:#b0ff37;--on-accent:#11180a;--success:#b0ff37;}
:root[data-theme="burzum"]{--bg:#000000;--surface:#111111;--raised:#222222;--field:#181818;--border:#505050;--text:#f1f1f1;--muted:#aaaaaa;--accent:#ddeecc;--on-accent:#101310;--success:#99bbaa;}
:root{color-scheme:dark;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{cursor:pointer}#app{max-width:760px;margin:auto;min-height:100dvh;padding:28px 20px 60px}header{display:flex;justify-content:space-between;align-items:center;padding-bottom:22px;border-bottom:1px solid var(--border)}.brand{font-size:24px;letter-spacing:-1.4px;font-weight:800;cursor:pointer}.brand span{font-size:10px;font-weight:500;color:var(--muted);letter-spacing:1.1px}.topright,.eyebrow,.sectionhead{font-size:10px;letter-spacing:1.3px;font-weight:700;color:var(--muted)}.heading{margin:42px 0 26px}.heading h1,.login h1{font-size:clamp(34px,8vw,58px);line-height:1.04;letter-spacing:-2px;margin:8px 0 0;font-weight:700}.back,.link{border:0;background:none;color:var(--muted);padding:0;margin:0 0 30px;font-size:11px;letter-spacing:1px}.link{margin-top:26px}.profiles,.routines{display:grid;gap:9px}.profile,.routine,.history{border:1px solid var(--border);background:var(--surface);color:inherit;text-align:left;display:flex;align-items:center;gap:20px;width:100%;padding:21px;border-radius:5px}.profile strong,.routine strong{display:block;font-size:19px;letter-spacing:-.5px}.profile small,.routine small,.next small{display:block;color:var(--muted);font-size:11px;margin-top:6px}.index,.letter{color:var(--muted);font-size:17px;font-weight:700;min-width:32px}.arrow,.routine>span:last-child{margin-left:auto;font-size:24px}.sectionhead{margin:30px 0 12px}.next{width:100%;border:1px solid var(--border);background:var(--raised);color:var(--text);text-align:left;padding:22px;border-radius:5px}.next strong{font-size:25px;letter-spacing:-1px;display:block;margin-top:14px}.next .go{display:block;margin-top:25px;font-size:11px;letter-spacing:1px}.history{padding:15px 16px;margin:7px 0;font-size:12px;justify-content:space-between}.history small{display:block;color:var(--muted);margin-top:6px}.muted{color:var(--muted);font-size:12px;line-height:1.6}.toolbar{display:flex;gap:8px;margin-bottom:28px}.primary,.ghost,.add{border:1px solid var(--text);padding:13px 16px;font-size:11px;font-weight:700;letter-spacing:.7px;border-radius:4px}.primary{background:var(--text);color:var(--bg)}.ghost,.add{background:transparent;color:var(--text);border-color:var(--border)}.toolbar>*{flex:1}.spaced{margin:28px 0 12px}.exercise{display:flex;gap:15px;padding:14px 0;border-bottom:1px solid var(--border)}.thumb{flex:0 0 94px;width:94px;height:90px;background:var(--raised);display:grid;place-items:center;text-align:center;color:var(--muted);font-size:10px;line-height:1.6;cursor:pointer;overflow:hidden;border-radius:3px}.thumb img{width:100%;height:100%;object-fit:cover}.exbody{flex:1;min-width:0}.exbody strong{font-size:16px;display:block}.exbody small,.settitle small{display:block;color:var(--muted);font-size:10px;letter-spacing:.6px;margin-top:7px}.exbody p{font-size:12px;color:var(--muted);line-height:1.5;margin:8px 0 0}.actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.actions button{background:var(--raised);border:1px solid var(--border);color:var(--text);font-size:10px;padding:7px}.add{width:100%;margin-top:20px}.tip{margin-top:26px}.progress{font-size:10px;letter-spacing:1px;color:var(--muted);margin:0 0 24px}.progress strong{font-size:18px;color:var(--text)}.track{height:4px;background:var(--border);margin-top:12px}.track>div{background:var(--accent);height:100%}.setgroup{border-bottom:1px solid var(--border);padding-bottom:20px;margin-bottom:24px}.settitle{display:flex;gap:12px;align-items:center;margin-bottom:13px}.thumb.small{width:55px;height:55px;flex-basis:55px;font-size:8px}.settitle strong{font-size:15px}.setrow{display:grid;grid-template-columns:54px 1fr 1fr 60px;gap:7px;align-items:center;margin:7px 0}.setrow span{font-size:10px;color:var(--muted)}.setrow input{width:100%;background:var(--field);border:1px solid var(--border);border-radius:4px;padding:12px 6px;color:var(--text);text-align:center;font-size:14px;min-width:0}.logbtn,.logged{background:var(--raised);color:var(--text);border:0;border-radius:4px;padding:14px 4px;font-size:11px}.logged{background:var(--success);color:var(--bg)}.wide{width:100%}footer{font-size:10px;color:var(--muted);letter-spacing:1px;border-top:1px solid var(--border);padding-top:22px;margin-top:60px}.overlay{position:fixed;inset:0;background:#000c;z-index:5;display:grid;place-items:center;padding:16px;overflow:auto}.modal{background:var(--surface);border:1px solid var(--border);padding:25px;position:relative;width:min(100%,520px);max-height:90dvh;overflow:auto}.modal h2{font-size:27px;letter-spacing:-1px;margin:10px 0 24px}.close{position:absolute;top:12px;right:12px;border:0;background:transparent;color:var(--text);font-size:20px}.modal label,.login label{display:block;color:var(--muted);font-size:10px;letter-spacing:1px;margin:15px 0}.modal input,.modal textarea,.login input{display:block;width:100%;background:var(--raised);border:1px solid var(--border);color:var(--text);padding:13px;margin-top:7px;border-radius:3px;font-size:15px}.modal textarea{height:80px;resize:vertical}.twocol{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal .check{display:flex;gap:12px;align-items:center}.check input{width:auto;margin:0}.modal .primary{width:100%}.photo-upload{display:block;border:1px dashed var(--border);padding:18px;margin-top:25px!important;cursor:pointer}.photo-upload input{font-size:11px}.largephoto{width:100%;max-height:45vh;object-fit:contain}.placeholder{height:170px;background:var(--raised);display:grid;place-items:center;text-align:center;color:var(--muted);font-size:13px}.historyline{border-bottom:1px solid var(--border);padding:12px 0}.historyline strong,.historyline span{display:block;font-size:12px}.historyline span{color:var(--muted);margin-top:5px}.login{padding-top:16vh}.login h1{margin:22px 0 35px}.login form{max-width:380px}.login .primary{width:100%;margin:20px 0}.loading{font-size:28px;font-weight:bold;padding:20vh 0}@media(max-width:380px){#app{padding:20px 13px}.thumb{flex-basis:75px;width:75px}.profile{padding:16px}.setrow{grid-template-columns:43px 1fr 1fr 50px}}

/* Keep editable text large enough to avoid iPhone focus zoom. */
.login input,.modal input,.modal textarea,.setrow input,.photo-upload input{font-size:16px}

/* Clear, finger-sized back navigation, matching the existing dark controls. */
.backnav{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 26px}
.navback{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:12px 16px;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text);font-size:13px;font-weight:700;letter-spacing:.7px;line-height:1.3}
.navback:hover{background:var(--raised);border-color:var(--muted)}
.navback:focus-visible{outline:2px solid var(--text);outline-offset:3px}
@media(max-width:480px){.navback{flex:1}}

.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.logged{background:var(--success);color:var(--bg)}
.next{border-left:4px solid var(--accent)}
.next .eyebrow,.next .go,.letter,.index{color:var(--accent)}
.track>div{background:var(--accent)}
input,textarea,select{caret-color:var(--accent);accent-color:var(--accent)}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}
::selection{background:var(--accent);color:var(--on-accent)}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.header-tools{display:flex;align-items:center;justify-content:flex-end;min-width:0;margin-left:auto}
.theme-control,.login .theme-control{display:inline-flex;position:relative;align-items:center;justify-content:flex-end;min-height:44px;max-width:100%;margin:0;padding:4px 0 4px 8px;cursor:pointer}
.theme-caption{display:block;font-size:10px;line-height:1.5;letter-spacing:1px;font-weight:700;color:var(--muted);white-space:nowrap}
.theme-caption [data-theme-name]{color:var(--text);font:inherit}
.theme-control select{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;opacity:0;font-size:16px;cursor:pointer}
.theme-control option{background:var(--surface);color:var(--text)}
.theme-control:focus-within{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}
.login{padding-top:0}
.login>.eyebrow{margin-top:12vh}
.ui-arrow{display:inline-block;width:18px;height:18px;vertical-align:middle;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;flex-shrink:0}
.primary .ui-arrow{width:17px;height:17px;padding:3px;margin-left:4px;border-radius:3px;background:#111315}
@media(max-width:600px){header{align-items:center;gap:12px;flex-wrap:wrap}.brand span{display:block;margin-top:5px}}
