:root{--bg:#f2efe9;--paper:#fcfbf8;--paper2:#e8e3da;--ink:#191a19;--muted:#706b64;--line:#d4cec4;--brand:#5f5b55;--skate:#4f87ae;--bike:#3f705a;--gym:#b66f45;--nutrition:#c87391;font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--bg)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:.72rem 1rem;font-weight:750}button:hover{filter:brightness(.97)}button.primary{background:var(--ink);color:white;border-color:var(--ink)}input,select,textarea{width:100%;min-height:44px;border:1px solid var(--line);border-radius:10px;padding:.7rem;background:var(--paper)}textarea{resize:vertical}label{display:grid;gap:.35rem;font-size:.82rem;font-weight:750;color:var(--muted)}h1{font-size:clamp(2rem,4vw,3.4rem);margin:.15rem 0;letter-spacing:-.04em}h2{margin:.2rem 0 1rem}.auth{min-height:100vh;display:grid;grid-template-columns:1fr minmax(340px,540px);gap:7vw;align-items:center;padding:7vw;background:linear-gradient(135deg,#aaa398 0 42%,var(--bg) 42%)}.auth aside{max-width:540px}.auth aside h1{font-size:clamp(3rem,9vw,8rem)}.auth aside p{font-size:1.25rem}.logo{display:grid;place-items:center;width:64px;height:64px;border:2px solid;border-radius:18px;font-weight:900}.auth-card,.panel{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:1.35rem}.tabs,.segmented,.actions,.toolbar,.savebar,.section-head{display:flex;gap:.6rem;align-items:center}.tabs button{flex:1}.tabs .active,.segmented .active{background:var(--brand);color:white}.auth form{display:grid;gap:1rem}.error{color:#a33d3d;min-height:1.2rem}header{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:1.4rem;padding:.75rem 1.25rem;background:#aaa398eF;backdrop-filter:blur(12px);border-bottom:1px solid #938c82}.brand{display:flex;align-items:center;gap:.6rem;color:inherit;text-decoration:none}.brand span{display:grid;place-items:center;width:42px;height:42px;background:var(--paper);border-radius:12px;font-weight:900}nav{display:flex;gap:.2rem;flex:1;overflow:auto}nav a{color:inherit;text-decoration:none;padding:.65rem .75rem;border-radius:10px;font-weight:750;white-space:nowrap}nav a.active{background:var(--paper)}.identity{display:grid;grid-template-columns:1fr auto;align-items:center;text-align:right}.identity small{grid-column:1}.identity button{grid-row:1/3;grid-column:2;margin-left:.6rem}.page{max-width:1500px;margin:auto;padding:2rem}.view{display:none}.view.active{display:block}.title{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.4rem}.title p{margin:.25rem 0;color:var(--muted)}.eyebrow{font-size:.72rem;letter-spacing:.16em;font-weight:900;color:var(--muted)}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin:1rem 0}.metric{padding:1.1rem;border:1px solid var(--line);border-radius:18px;background:var(--paper)}.metric small{display:block;color:var(--muted)}.metric strong{font-size:1.8rem}.toolbar{justify-content:space-between;margin:1rem 0}.toolbar label{min-width:250px}.calendar{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:.65rem;overflow:auto}.calendar.month{grid-template-columns:repeat(7,minmax(130px,1fr))}.day{min-height:180px;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:.7rem}.day.today{outline:2px solid var(--ink)}.day>strong{display:block;margin-bottom:.6rem}.event{display:block;width:100%;text-align:left;margin:.35rem 0;padding:.55rem;border-left:5px solid}.event small{display:block;margin-top:.2rem}.speed_skating{--sport:var(--skate)}.road_cycling{--sport:var(--bike)}.gym{--sport:var(--gym)}.nutrition{--sport:var(--nutrition)}.event.speed_skating{background:#eaf3f8;border-color:var(--skate)}.event.road_cycling{background:#eaf2ed;border-color:var(--bike)}.event.gym{background:#f8eee8;border-color:var(--gym)}.event.nutrition{background:#f9eaf0;border-color:var(--nutrition)}.sport-speed_skating{box-shadow:inset 0 5px var(--skate)}.sport-road_cycling{box-shadow:inset 0 5px var(--bike)}.sport-gym{box-shadow:inset 0 5px var(--gym)}.sport-nutrition{box-shadow:inset 0 5px var(--nutrition)}.formgrid{display:grid;grid-template-columns:1fr 1fr 2fr;gap:.8rem;margin-bottom:1rem}.wide{grid-column:auto}.subpanel{background:color-mix(in srgb,var(--sport) 9%,var(--paper));border:1px solid color-mix(in srgb,var(--sport) 28%,var(--line));border-radius:18px;padding:1rem}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:900px}th,td{padding:.5rem;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}td input,td textarea{min-width:82px}.mini{width:75px}.savebar{justify-content:flex-end;margin-top:1rem}.check{display:flex;align-items:center;margin-right:auto}.check input{width:auto;min-height:auto}.cols2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.8rem}.card,.row{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:1rem}.card{border-top:5px solid var(--sport,var(--brand))}.card p,.row small{color:var(--muted)}.row{display:flex;justify-content:space-between;align-items:center;margin:.55rem 0}.badge{display:inline-block;border-radius:999px;padding:.25rem .55rem;background:var(--paper2);font-size:.72rem;font-weight:800}dialog{width:min(900px,calc(100% - 2rem));max-height:90vh;overflow:auto;border:1px solid var(--line);border-radius:22px;background:var(--paper);padding:1.3rem}dialog::backdrop{background:#17181788;backdrop-filter:blur(3px)}.close{float:right}#toast{position:fixed;right:1rem;bottom:1rem;z-index:50;background:var(--ink);color:white;padding:.8rem 1rem;border-radius:12px;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none}#toast.show{opacity:1;transform:none}@media(max-width:900px){.auth{grid-template-columns:1fr;background:var(--bg);padding:1rem}.auth aside{display:none}header{align-items:flex-start;flex-wrap:wrap}.brand b,.identity small{display:none}nav{order:3;width:100%}.identity{margin-left:auto}.page{padding:1rem}.metrics{grid-template-columns:1fr 1fr}.cols2,.formgrid{grid-template-columns:1fr}.calendar{grid-template-columns:repeat(7,170px)}.title{align-items:flex-start}.toolbar{align-items:stretch;flex-direction:column}.toolbar label{min-width:0}}@media(max-width:520px){.metrics{grid-template-columns:1fr 1fr}.title{display:block}.title .actions{margin-top:.8rem}.savebar{flex-wrap:wrap}.savebar .check{width:100%}}
