:root{--green:#183f35;--lime:#dcf2a0;--bg:#f5f5ef;--muted:#68766e;--line:#e1e6dd}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#223b32;font-family:'DM Sans',sans-serif;font-size:15px}header{display:flex;align-items:center;gap:14px;padding:24px 5%;border-bottom:1px solid var(--line);background:#fff}.brand{font-size:24px;font-weight:800;text-decoration:none;color:var(--green);letter-spacing:-1px}.tag{margin-right:auto;margin-left:20px;color:var(--muted);font-size:13px}main{max-width:1250px;margin:auto;padding:35px 36px}h1,h2,h3{font-family:Manrope,sans-serif}h1{font-size:52px;letter-spacing:-2.5px;margin:12px 0}h2{font-size:20px;letter-spacing:-.5px;margin:0 0 18px}p{color:var(--muted);line-height:1.65}.hero{display:flex;align-items:center;justify-content:space-between;padding:15px 0 35px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;color:#567953}.profile-pill{background:#e9eddf;padding:20px 25px;border-radius:18px;line-height:1.8;font-size:13px}nav{display:flex;gap:8px;border-bottom:1px solid var(--line);margin-bottom:30px;padding-bottom:14px}button,.button{font:inherit;cursor:pointer;border:1px solid var(--line);border-radius:9px;padding:10px 16px;background:#fff;color:var(--green);display:inline-block}button:hover,.button:hover{background:#eef3e7}nav button{border:0;background:transparent;padding:12px 24px}nav button.active,.primary{background:var(--green);color:#fff}.primary{border:0;margin-top:12px}.primary:hover{background:#2c5d4d}.section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:20px}.section-head h2{margin:0}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:22px 0}.card,article{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px}.card:first-child{background:var(--green);color:white}.card .big{font-family:Manrope,sans-serif;font-size:32px;font-weight:800;display:block;margin:16px 0 8px}.card small{opacity:.75}.track{height:6px;background:#e9ece3;border-radius:10px;margin:20px 0 12px;overflow:hidden}.fill{height:100%;background:#91b97e}.card:first-child .track{background:#436357}.card:first-child .fill{background:var(--lime)}.columns{display:grid;grid-template-columns:1fr 1fr;gap:22px}article{margin-bottom:22px}label{display:block;font-size:12px;font-weight:600;margin-bottom:14px;color:#4c6258}input,select{display:block;width:100%;margin-top:7px;padding:12px;border:1px solid #dbe1d7;border-radius:8px;background:#fcfdf9;color:#213c32;font:inherit;font-size:14px}input:focus,select:focus{outline:2px solid #9fbe89;outline-offset:2px}input[type=date]{width:auto}input[type=checkbox]{display:inline;width:auto;margin-right:8px}.row{display:flex;gap:14px;align-items:end}.row label{flex:1;min-width:0}.soft{padding:16px;background:#f0f4e9;border-radius:10px;margin:14px 0;color:#476044;line-height:1.6}.small{font-size:12px}.badge{font-size:11px;color:#638359;background:#f1f5e9;padding:7px 10px;border-radius:20px}.food-row{padding:14px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:10px}.food-row small{color:var(--muted);display:block;margin-top:5px}.food-row button{padding:6px 10px;font-size:12px}.empty{text-align:center;color:var(--muted);padding:48px 20px;line-height:1.8}.weight-row{display:flex;align-items:center;justify-content:space-between;gap:20px}.weight-row p{font-size:13px;margin-bottom:0}.weight-row form{align-items:center}.weight-row button{white-space:nowrap}footer{font-size:12px;line-height:1.8;color:var(--muted);padding:20px 0}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left}td,th{padding:14px;border-bottom:1px solid var(--line);font-size:13px}th{color:var(--muted);font-weight:500}a{color:#3e7048}#notice:not(:empty){padding:14px 20px;background:var(--lime);border-radius:10px;margin-bottom:20px}svg{width:100%;height:240px}#library{max-height:650px;overflow:auto}.check{margin-top:20px}button:focus-visible{outline:3px solid #80ab68;outline-offset:3px}[hidden]{display:none!important}@media(max-width:800px){main{padding:20px}.columns{grid-template-columns:1fr}.cards{grid-template-columns:1fr 1fr}.hero{display:block}.profile-pill{display:inline-block;margin-top:10px}h1{font-size:40px}.tag{display:none}header{flex-wrap:wrap;padding:18px}.brand{margin-right:auto}nav{overflow:auto}nav button{white-space:nowrap;padding:10px 13px}.weight-row{display:block}.section-head{flex-wrap:wrap}.card{padding:18px}.card .big{font-size:28px}.row{flex-wrap:wrap}.row label{min-width:80px}}

.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.photo-card img{width:100%;height:260px;object-fit:contain;background:#eef0e8;border-radius:12px}.photo-card button.image-open{border:0;padding:0;width:100%;background:transparent}.photo-card h3{margin-bottom:4px}.photo-card p{overflow-wrap:anywhere}dialog{border:0;border-radius:18px;max-width:90vw;max-height:95vh;padding:20px}dialog::backdrop{background:#102a22c9}dialog img{display:block;max-width:80vw;max-height:72vh;margin-top:15px}#photoGallery .empty{grid-column:1/-1}@media(max-width:800px){.photo-grid{grid-template-columns:1fr 1fr}}@media(max-width:480px){.photo-grid{grid-template-columns:1fr}}

.training-week{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:24px}.training-week button{text-align:left;font-size:12px;padding:14px 10px;line-height:1.7}.training-week .chosen{background:var(--green);color:#fff}.exercise{border-top:1px solid var(--line);padding:18px 0}.exercise h3{margin:0}.exercise input.exercise-name{font-weight:700;max-width:440px}.set-row{display:grid;grid-template-columns:60px 1fr 1fr 80px;gap:14px;align-items:center;max-width:600px}.set-row label{margin:5px 0}.set-row .check{margin-top:20px}@media(max-width:800px){.training-week{grid-template-columns:repeat(4,1fr)}.set-row{grid-template-columns:40px 1fr 1fr 55px;gap:8px}}

.profile-select{margin:0;min-width:115px}.profile-select select{padding:8px;margin-top:3px}header{flex-wrap:wrap}nav{overflow-x:auto}nav button{white-space:nowrap}

.sync-banner{position:sticky;top:0;z-index:10;padding:10px 20px;background:#e2edce;color:#28452d;font-size:13px}.sync-error{background:#fff0e7;color:#7e2f11;font-weight:700}.auth-shell{max-width:600px;padding-top:60px}.auth-shell h1{font-size:42px}textarea{width:100%;padding:14px;min-height:90px;font:inherit}