*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0a0a0a;--surface: #141414;--surface2: #1e1e1e;--surface3: #252525;--border: #2a2a2a;--border2: #383838;--text: #f0f0f0;--text2: #a0a0a0;--text3: #666;--accent: #e8ff47;--accent2: #c8df20;--accent-dim: rgba(232,255,71,.12);--red: #ff4757;--green: #2ed573;--blue: #45b7f5;--orange: #ffa502;--radius: 8px;--radius-lg: 14px;--radius-xl: 20px;--nav-h: 56px;--safe-bottom: env(safe-area-inset-bottom, 0px)}html,body,#root{height:100%;background:var(--bg);color:var(--text);font-family:DM Sans,system-ui,sans-serif;font-size:15px;-webkit-font-smoothing:antialiased;overflow:hidden}h1,h2,h3,.bebas{font-family:Bebas Neue,sans-serif;letter-spacing:.03em}button{cursor:pointer;border:none;background:none;color:inherit;font-family:inherit;font-size:inherit}input,select,textarea{font-family:inherit;background:var(--surface2);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);padding:10px 12px;font-size:15px;outline:none;width:100%;transition:border-color .15s;-webkit-appearance:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px #e8ff471a}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}input::placeholder{color:var(--text3)}select option{background:var(--surface2)}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 18px;border-radius:var(--radius);font-size:14px;font-weight:500;transition:all .15s;cursor:pointer;border:none;white-space:nowrap}.btn-accent{background:var(--accent);color:#0a0a0a}.btn-accent:hover{background:var(--accent2)}.btn-accent:active{transform:scale(.97)}.btn-ghost{background:transparent;border:1px solid var(--border2);color:var(--text)}.btn-ghost:hover{background:var(--surface2);border-color:var(--border2)}.btn-danger{background:transparent;border:1px solid var(--red);color:var(--red)}.btn-danger:hover{background:#ff47571a}.btn-sm{padding:6px 12px;font-size:13px}.btn-xs{padding:4px 8px;font-size:12px}.btn-icon{padding:8px;border-radius:var(--radius);border:1px solid var(--border2)}.btn-icon:hover{background:var(--surface2)}.btn-full{width:100%}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px}.card-sm{padding:12px 14px;border-radius:var(--radius)}.tag{display:inline-flex;align-items:center;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.tag-push{background:#ff475726;color:#ff7b87}.tag-pull{background:#45b7f526;color:#45b7f5}.tag-legs{background:#e8ff4726;color:#c8df20}.tag-full{background:#2ed57326;color:#2ed573}.tag-other{background:#96969626;color:#aaa}.stat-pill{background:var(--surface2);border-radius:var(--radius);padding:12px;text-align:center}.stat-val{font-family:Bebas Neue,sans-serif;font-size:26px;color:var(--accent);line-height:1}.stat-lbl{font-size:11px;color:var(--text3);margin-top:4px;letter-spacing:.05em;text-transform:uppercase}.sec-label{font-size:11px;color:var(--text3);letter-spacing:.08em;text-transform:uppercase;font-weight:600;margin-bottom:10px;display:block}.form-group{margin-bottom:14px}.form-label{font-size:12px;color:var(--text2);letter-spacing:.04em;text-transform:uppercase;display:block;margin-bottom:6px}.form-row{display:grid;gap:10px}.form-row-2{grid-template-columns:1fr 1fr}.form-row-3{grid-template-columns:1fr 1fr 1fr}.divider{border:none;border-top:1px solid var(--border);margin:16px 0}.effort-bar-wrap{height:3px;background:var(--surface3);border-radius:2px;overflow:hidden;margin-top:8px}.effort-bar{height:100%;background:var(--accent);border-radius:2px;transition:width .4s ease}.pr-badge{display:inline-flex;align-items:center;gap:3px;padding:3px 7px;background:#ffa50226;color:var(--orange);border-radius:4px;font-size:11px;font-weight:700}.empty-state{text-align:center;padding:48px 24px;color:var(--text3)}.empty-state i{font-size:42px;margin-bottom:14px;display:block}.empty-state p{font-size:14px;line-height:1.6}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.cal-head{text-align:center;font-size:10px;color:var(--text3);padding:5px 0;letter-spacing:.06em;text-transform:uppercase}.cal-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:8px;font-size:13px;cursor:pointer;transition:background .1s;position:relative;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.cal-day:hover{background:var(--surface3)}.cal-day.today{border:1.5px solid var(--accent);color:var(--accent);font-weight:600}.cal-day.has-workout{background:var(--surface2)}.cal-day.has-workout:after{content:"";position:absolute;bottom:4px;width:4px;height:4px;border-radius:50%;background:var(--accent)}.cal-day.planned{opacity:.65;border:1px dashed var(--border2)}.cal-day.selected{background:var(--accent-dim)!important;border:1px solid var(--accent)}.cal-day.empty{cursor:default}.cal-day.empty:hover{background:transparent}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--border);display:flex;padding-bottom:var(--safe-bottom);z-index:50;height:calc(var(--nav-h) + var(--safe-bottom))}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;transition:color .15s;color:var(--text3);font-size:10px;letter-spacing:.04em;text-transform:uppercase;padding-top:6px;-webkit-tap-highlight-color:transparent}.nav-item.active{color:var(--accent)}.nav-item i{font-size:22px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;display:flex;align-items:flex-end;z-index:100;animation:fadeIn .15s ease}.modal-overlay.center{align-items:center;padding:16px}.modal-sheet{background:var(--surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-height:92vh;overflow-y:auto;padding:20px 18px calc(20px + var(--safe-bottom));animation:slideUp .25s ease}.modal-sheet.floating{border-radius:var(--radius-xl);max-width:500px;margin:0 auto}.modal-handle{width:36px;height:4px;background:var(--border2);border-radius:2px;margin:0 auto 20px}.modal-title{font-family:Bebas Neue,sans-serif;font-size:24px;margin-bottom:16px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}.compare-row{display:grid;grid-template-columns:1fr 70px 60px;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid var(--border);font-size:13px}.compare-row:last-child{border-bottom:none}.delta-pos{color:var(--green);font-weight:600;text-align:right}.delta-neg{color:var(--red);font-weight:600;text-align:right}.delta-neu{color:var(--text3);text-align:right}.plan-item{display:flex;align-items:center;gap:10px;padding:13px 14px;background:var(--surface2);border-radius:var(--radius);margin-bottom:8px;cursor:pointer;border:1px solid transparent;transition:border-color .15s;-webkit-tap-highlight-color:transparent}.plan-item:hover{border-color:var(--border2)}.plan-item:active{background:var(--surface3)}.page{height:100%;display:flex;flex-direction:column;overflow:hidden}.page-header{padding:16px 18px 8px;flex-shrink:0}.page-scroll{flex:1;overflow-y:auto;padding:8px 18px calc(var(--nav-h) + var(--safe-bottom) + 16px)}.page-title{font-size:30px;color:var(--accent);line-height:1;margin-bottom:4px}.page-sub{font-size:13px;color:var(--text3)}.set-row{display:grid;grid-template-columns:28px 1fr 1fr 56px;gap:8px;align-items:center;margin-bottom:8px}.set-num{width:28px;height:28px;background:var(--surface3);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--text3);flex-shrink:0}.sparkline{width:100%;overflow:visible;margin-top:8px;display:block}.up{color:var(--green)}.down{color:var(--red)}.same{color:var(--text3)}.stars{color:var(--orange);letter-spacing:2px}
