:root{--green:#264e40;--lime:#d7ed9c;--muted:#79817b;--line:#e3e7de}*{box-sizing:border-box}body{margin:0;background:#f7f8f2;color:#26392e;font-family:'DM Sans',sans-serif}button,input,select{font:inherit}button{cursor:pointer}aside{position:fixed;width:235px;height:100vh;padding:38px 26px;background:#fff;border-right:1px solid var(--line)}.brand{font-family:Manrope,sans-serif;font-size:36px;font-weight:800;color:var(--green);text-decoration:none;letter-spacing:-3px}.brand i{font-size:15px;color:#a1bf60;margin-left:5px}aside>small{display:block;font-size:9px;letter-spacing:2px;margin:32px 9px 16px;color:var(--muted)}nav button{border:0;background:transparent;text-align:left;width:100%;padding:14px 12px;border-radius:9px;color:#748077;margin-bottom:7px}nav button.active{background:#eef3e7;color:var(--green);font-weight:700}.side-bottom{position:absolute;bottom:25px;left:26px;right:26px}.mini-icon{font-size:30px;margin-bottom:15px}.side-bottom b{font-size:13px}.side-bottom p{font-size:11px;color:var(--muted)}.profile{border-top:1px solid var(--line);padding-top:22px;margin-top:28px;display:flex;gap:12px;align-items:center;font-size:13px}.profile>span{background:#e9eddf;border-radius:50%;padding:12px}.profile small{font-size:10px;color:var(--muted)}main{margin-left:235px;padding:0 46px 50px;max-width:1600px}header{height:86px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:1.5px;color:var(--muted)}.save-note{letter-spacing:0;font-size:11px}.save-note:first-letter{color:#75a276}.heading{display:flex;justify-content:space-between;align-items:center;margin:34px 0 25px}h1{font-family:Manrope,sans-serif;font-size:31px;letter-spacing:-1px;margin:0 0 8px}p{color:var(--muted);font-size:13px;line-height:1.6;margin:0}h2{font-family:Manrope,sans-serif;font-size:18px;margin:0}h3{font-size:16px;margin:0}.primary{background:var(--green);color:white;border:0;border-radius:8px;padding:12px 18px;font-size:12px;font-weight:600}.secondary{background:white;border:1px solid var(--line);border-radius:8px;padding:10px 15px;color:var(--green);font-size:12px}.hero{background:var(--green);border-radius:15px;padding:32px;color:white;display:flex;justify-content:space-between;align-items:center;overflow:hidden;position:relative}.hero small{font-size:9px;letter-spacing:2px;color:#d7ed9c}.hero h2{font-size:28px;max-width:420px;margin:14px 0;line-height:1.3}.hero p{color:#c6d4ca;max-width:430px}.hero .primary{background:var(--lime);color:var(--green);margin-top:22px}.hero-art{width:230px;height:150px;position:relative;transform:rotate(-20deg);opacity:.9}.bar{position:absolute;top:68px;left:35px;width:170px;height:14px;background:#adc58a;border-radius:7px}.plate{position:absolute;top:20px;width:28px;height:115px;background:#d7ed9c;border:3px solid #264e40;border-radius:8px}.p1{left:28px}.p2{left:57px}.p3{right:22px}.p4{right:51px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:22px 0 30px}.stat,.panel,.routine{background:white;border:1px solid var(--line);border-radius:12px;padding:22px}.stat-label{font-size:11px;color:var(--muted);display:flex;justify-content:space-between}.stat strong{display:block;font-family:Manrope,sans-serif;font-size:30px;margin:12px 0 5px}.stat strong small{font-size:14px;font-weight:500;color:var(--muted)}.stat p{font-size:11px}.section-top{display:flex;justify-content:space-between;align-items:center;margin:26px 0 16px}.text-button{border:0;background:none;color:var(--green);font-size:12px}.routines{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.routine{padding:0;overflow:hidden}.routine-top{height:86px;background:#edf0e3;padding:20px;display:flex;justify-content:space-between;align-items:center}.routine:nth-child(2n) .routine-top{background:#ece9e1}.routine:nth-child(3n) .routine-top{background:#e3eeea}.routine-symbol{font-size:27px;color:var(--green)}.tag{border:1px solid #ccd3bf;border-radius:20px;padding:4px 8px;font-size:9px;letter-spacing:1px}.routine-body{padding:19px}.routine p{font-size:11px;margin:8px 0 18px}.routine-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:14px;font-size:11px;color:var(--muted)}.routine-footer button{border:0;background:none;color:var(--green);font-weight:700}.bottom-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:20px;margin-top:26px}.days{display:flex;justify-content:space-between;margin-top:24px}.day{text-align:center;font-size:10px;color:var(--muted)}.day span{display:flex;margin:9px 0;width:35px;height:35px;border-radius:50%;background:#f2f4ed;align-items:center;justify-content:center;font-size:13px}.day.done span{background:var(--lime);color:var(--green)}.empty{padding:25px 0;text-align:center;font-size:12px;color:var(--muted)}.row{padding:16px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px}.row p{font-size:11px;margin-top:4px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0}.filters button{border:1px solid var(--line);background:white;border-radius:20px;padding:8px 16px;font-size:12px}.filters .selected{background:var(--green);color:white}.search{width:100%;padding:13px;border:1px solid var(--line);border-radius:8px;background:white}.exercise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.exercise{background:white;border:1px solid var(--line);padding:20px;border-radius:12px}.exercise .tag{display:inline-block;margin-bottom:15px}.exercise p{margin:8px 0 16px}.log-inputs{display:flex;gap:8px;align-items:center}.log-inputs label{font-size:10px;color:var(--muted)}.log-inputs input{display:block;width:65px;padding:10px;border:1px solid var(--line);border-radius:6px;margin-top:4px}dialog{border:0;border-radius:16px;padding:28px;width:420px;max-width:90vw;color:var(--green);box-shadow:0 30px 100px #0003}dialog::backdrop{background:#152c2466}dialog h2{margin-bottom:18px}dialog label{display:block;font-size:12px;margin:14px 0 6px}dialog input,dialog select{width:100%;padding:12px;border:1px solid var(--line);border-radius:6px}dialog .actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--green);color:white;padding:12px 22px;border-radius:9px;font-size:13px;display:none}.notice{background:#eef3e7;padding:12px 16px;border-radius:8px;font-size:12px;margin:15px 0}.danger{color:#a34838}.progress-line{height:5px;background:#edf0e6;border-radius:5px;margin-top:16px;overflow:hidden}.progress-line span{height:100%;display:block;background:#91af63}@media(max-width:1000px){aside{width:190px;padding:30px 18px}main{margin-left:190px;padding:0 24px 40px}.routines,.exercise-grid{grid-template-columns:repeat(2,1fr)}.hero-art{width:180px}.bottom-grid{grid-template-columns:1fr}}@media(max-width:650px){aside{position:static;width:auto;height:auto;padding:18px;border-bottom:1px solid var(--line)}.brand{font-size:28px}aside>small,.side-bottom{display:none}nav{display:flex;margin-top:15px}nav button{padding:9px 5px;font-size:10px;text-align:center}main{margin:0;padding:0 18px 30px}header{height:55px;font-size:8px}.heading{margin-top:24px}h1{font-size:25px}.hero{padding:24px}.hero h2{font-size:23px}.hero-art{display:none}.stats{gap:8px}.stat{padding:13px}.stat strong{font-size:24px}.stat-label{font-size:10px}.routines,.exercise-grid{grid-template-columns:1fr}.log-inputs{flex-wrap:wrap}.row{flex-wrap:wrap}}

.library-controls{display:flex;gap:12px;margin:20px 0 12px}.library-controls select{padding:12px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--green);min-width:160px}.result-count{margin-bottom:18px}button:disabled{opacity:.45;cursor:default}.stats{margin-top:0}.hero,.hero-art{display:none}@media(max-width:650px){.library-controls{flex-direction:column}.heading{gap:15px;align-items:flex-start}.heading .primary{white-space:nowrap}.stat-label{flex-wrap:wrap;gap:5px}}

@media(max-width:650px){button{min-height:44px}input,select{font-size:16px}dialog{max-height:90dvh;overflow:auto}dialog .actions{flex-wrap:wrap}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stats .stat:first-child{grid-column:1/-1}.stat{padding:18px}.stat strong{margin-top:10px}.log-inputs{width:100%}.log-inputs label{flex:1}.log-inputs input{width:100%;min-height:44px}.row>div:first-child{min-width:0;overflow-wrap:anywhere}h3{overflow-wrap:anywhere}.heading{flex-wrap:wrap}.heading p{max-width:100%}nav button{min-height:44px}.day span{width:32px;height:32px}}

.theme-toggle{display:block;margin-top:20px;background:transparent;border:1px solid var(--line);border-radius:8px;padding:10px 14px;color:var(--green);font-size:12px;min-height:44px}
:root{color-scheme:light}
:root[data-theme="dark"]{color-scheme:dark;--green:#c9e5b0;--lime:#d7ed9c;--muted:#a9b6ad;--line:#38453c}
[data-theme="dark"] body{background:#151c18;color:#e8eee9}
[data-theme="dark"] aside,[data-theme="dark"] .stat,[data-theme="dark"] .panel,[data-theme="dark"] .routine,[data-theme="dark"] .exercise,[data-theme="dark"] dialog{background:#202a23}
[data-theme="dark"] nav button{color:#a9b6ad}
[data-theme="dark"] nav button.active,[data-theme="dark"] .profile>span,[data-theme="dark"] .day span,[data-theme="dark"] .notice{background:#334535;color:#d7ed9c}
[data-theme="dark"] .primary,[data-theme="dark"] #toast{background:#d7ed9c;color:#1b3021}
[data-theme="dark"] .secondary,[data-theme="dark"] .search,[data-theme="dark"] .library-controls select,[data-theme="dark"] input,[data-theme="dark"] select{background:#18211b;color:#e8eee9;border-color:var(--line)}
[data-theme="dark"] input::placeholder{color:#9eafa2}
[data-theme="dark"] .routine-top{background:#30402e}
[data-theme="dark"] .routine:nth-child(2n) .routine-top{background:#3a372e}
[data-theme="dark"] .routine:nth-child(3n) .routine-top{background:#2b4039}
[data-theme="dark"] .tag{border-color:#586b55}
[data-theme="dark"] .progress-line{background:#38453c}
[data-theme="dark"] .day.done span{background:#d7ed9c;color:#1b3021}
[data-theme="dark"] .danger{color:#f4a994}
:focus-visible{outline:2px solid #88a85c;outline-offset:3px}
@media(max-width:650px){aside{position:relative}.theme-toggle{position:absolute;top:16px;right:18px;margin:0}}

[hidden]{display:none!important}@media(max-width:650px){.install-button{position:static;margin-top:14px}}

dialog ol{padding-left:22px;font-size:14px;line-height:1.7}dialog li{margin:10px 0}
