:root{--color-bg:#080808;--color-surface:#0f0f0f;--color-surface-2:#1a1a1a;--color-surface-3:#242424;--color-border:#2a2a2a;--color-border-bright:#3d3d3d;--color-green:#39ff14;--color-green-dim:#1a7a06;--color-green-glow:#39ff1426;--color-green-text:#57ff33;--color-text-primary:#e8e8e8;--color-text-secondary:#888;--color-text-muted:#444;--color-danger:#ff2d2d;--color-warning:#fa0;--color-success:var(--color-green);--radius:0px;--radius-sm:0px;--radius-lg:0px;--border:1px solid var(--color-border);--border-green:1px solid var(--color-green);--border-bright:1px solid var(--color-border-bright);--glow-green:0 0 12px var(--color-green-glow), 0 0 40px #39ff140f;--glow-green-strong:0 0 20px #39ff1466, 0 0 60px #39ff1426;--glow-text:0 0 8px #39ff1499;--font-display:"Bebas Neue", "Impact", sans-serif;--font-body:"DM Mono", "Fira Mono", monospace;--font-ui:"Inter", system-ui, sans-serif;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--transition-fast:80ms ease;--transition-base:.15s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--color-bg);color:var(--color-text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;min-height:100dvh;font-size:14px;line-height:1.5;overflow-x:hidden}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-primary)}h1{font-size:2.4rem}h2{font-size:1.8rem}h3{font-size:1.3rem}a{color:var(--color-green-text);text-decoration:none}::selection{background:var(--color-green);color:var(--color-bg)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-green-dim)}.app-shell{border-left:var(--border);border-right:var(--border);max-width:480px;min-height:100dvh;margin:0 auto;padding-bottom:90px;position:relative}.page-header{padding:var(--space-5) var(--space-4) var(--space-4);border-bottom:var(--border);justify-content:space-between;align-items:center;display:flex}.page-header h1{color:var(--color-text-primary);font-size:2rem;font-family:var(--font-display)}.page-content{padding:var(--space-4);gap:var(--space-4);flex-direction:column;display:flex}.section-label{font-family:var(--font-display);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.15em;margin-bottom:var(--space-2);font-size:.75rem}.card{background:var(--color-surface);border:var(--border);padding:var(--space-4) var(--space-5);position:relative;border-radius:0!important}button{font-family:var(--font-display);cursor:pointer;border:none;border-radius:0!important}.btn-primary{background:var(--color-green);color:var(--color-bg);font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;padding:var(--space-3) var(--space-5);cursor:pointer;transition:box-shadow var(--transition-base), filter var(--transition-base);text-align:center;border:none;font-size:1.1rem;display:inline-block;border-radius:0!important}.btn-primary:hover,.btn-primary:focus-visible{box-shadow:var(--glow-green-strong)}.btn-primary:active{filter:brightness(.85)}.btn-secondary{background:var(--color-surface-2);color:var(--color-text-primary);border:var(--border-bright);font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;padding:var(--space-3) var(--space-5);cursor:pointer;transition:color var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base);text-align:center;font-size:1rem;display:inline-block;border-radius:0!important}.btn-secondary:hover{color:var(--color-green-text);border-color:var(--color-green);box-shadow:var(--glow-green)}.btn-ghost{color:var(--color-text-secondary);border:var(--border-bright);font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;padding:var(--space-3) var(--space-5);cursor:pointer;transition:color var(--transition-base), border-color var(--transition-base);text-align:center;background:0 0;font-size:1rem;display:inline-block;border-radius:0!important}.btn-ghost:hover{color:var(--color-green-text);border-color:var(--color-green)}input,textarea,select{background:var(--color-surface-2);color:var(--color-text-primary);font-family:var(--font-body);padding:var(--space-3) var(--space-4);width:100%;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;font-size:.9rem;border:var(--border-bright)!important;border-radius:0!important}input:focus,textarea:focus,select:focus{box-shadow:var(--glow-green);border-color:var(--color-green)!important}input::placeholder,textarea::placeholder{color:var(--color-text-muted)}.progress-track{background:var(--color-surface-3);width:100%;height:6px;overflow:hidden;border-radius:0!important}.progress-fill{background:var(--color-green);height:100%;transition:width .4s cubic-bezier(.16,1,.3,1);box-shadow:4px 0 12px #39ff1480;border-radius:0!important}.progress-fill.warning{background:var(--color-warning);box-shadow:4px 0 12px #ffaa0080}.stat-value{font-family:var(--font-display);color:var(--color-green-text);text-shadow:var(--glow-text);font-size:3rem;line-height:1}.stat-label{font-family:var(--font-body);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.1em;margin-top:var(--space-1);font-size:.7rem}.tab-bar{background:var(--color-surface);border-top:var(--border-bright);z-index:100;max-width:480px;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.tab-item{padding:var(--space-2) var(--space-1);color:var(--color-text-muted);font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;transition:color var(--transition-base), border-color var(--transition-base);cursor:pointer;border-top:2px solid #0000;flex-direction:column;flex:1;align-items:center;font-size:.65rem;display:flex}.tab-item.active{color:var(--color-green-text);border-top-color:var(--color-green)}.next-session-card{background:var(--color-surface);border:var(--border-bright);padding:var(--space-5);position:relative;overflow:hidden;border-radius:0!important}.next-session-card:after{content:"";pointer-events:none;background:radial-gradient(at 0 0,#39ff140a 0%,#0000 60%);position:absolute;inset:0}.next-session-split{font-family:var(--font-display);color:var(--color-green-text);letter-spacing:.2em;text-transform:uppercase;margin-bottom:var(--space-2);font-size:.75rem}.next-session-title{font-family:var(--font-display);color:var(--color-text-primary);text-transform:uppercase;margin-bottom:var(--space-4);font-size:2rem}.exercise-row{align-items:baseline;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:var(--border);display:flex}.exercise-role{font-family:var(--font-display);color:var(--color-green-text);letter-spacing:.15em;flex-shrink:0;width:28px;font-size:.7rem}.exercise-name{font-family:var(--font-body);color:var(--color-text-primary);flex:1}.exercise-target{font-family:var(--font-body);color:var(--color-text-secondary);font-size:.8rem}.streak-badge{align-items:center;gap:var(--space-2);background:var(--color-surface-2);border:var(--border-green);box-shadow:var(--glow-green);padding:var(--space-2) var(--space-4);display:inline-flex;border-radius:0!important}.streak-number{font-family:var(--font-display);color:var(--color-green-text);text-shadow:var(--glow-text);font-size:2.2rem}.streak-unit{font-family:var(--font-body);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.1em;font-size:.7rem}.log-input-wrapper{background:var(--color-surface);border-top:2px solid var(--color-green);padding:var(--space-3) var(--space-4);z-index:90;position:sticky;bottom:56px;border-radius:0!important}.log-input-wrapper textarea{resize:none;background:var(--color-bg);min-height:56px;border-color:var(--color-border-bright)!important;border-radius:0!important}.log-submit-btn{margin-top:var(--space-2);width:100%}.sync-indicator{align-items:center;gap:var(--space-2);font-family:var(--font-body);text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;display:inline-flex}.sync-dot{background:var(--color-green);width:6px;height:6px;box-shadow:0 0 6px var(--color-green);animation:2s infinite pulse;border-radius:0!important}.sync-dot.offline{background:var(--color-danger);box-shadow:0 0 6px var(--color-danger);animation:none}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.shoulder-banner{border-left:3px solid var(--color-warning);border-bottom:var(--border);padding:var(--space-3) var(--space-4);font-family:var(--font-body);color:var(--color-warning);text-transform:uppercase;letter-spacing:.05em;background:#ffaa0014;font-size:.8rem;border-radius:0!important}.achievement-item{background:var(--color-surface);border:var(--border);padding:var(--space-3) var(--space-4);gap:var(--space-3);transition:border-color var(--transition-base);align-items:flex-start;display:flex;border-radius:0!important}.achievement-item.earned{border-color:var(--color-green);box-shadow:var(--glow-green)}.achievement-item.locked{opacity:.45;filter:grayscale()}.achievement-name{font-family:var(--font-display);color:var(--color-text-primary);text-transform:uppercase;font-size:1.2rem}.achievement-desc{font-family:var(--font-body);color:var(--color-text-secondary);margin-top:var(--space-1);font-size:.75rem}.achievement-toast{bottom:72px;left:var(--space-4);right:var(--space-4);background:var(--color-surface);border:var(--border-green);box-shadow:var(--glow-green-strong);padding:var(--space-4) var(--space-5);z-index:200;animation:3s cubic-bezier(.16,1,.3,1) forwards toast-in-out;position:fixed;border-radius:0!important}@keyframes toast-in-out{0%{transform:translateY(120%)}12%{transform:translateY(0)}80%{transform:translateY(0)}to{transform:translateY(120%)}}.achievement-toast-title{font-family:var(--font-display);color:var(--color-green-text);letter-spacing:.2em;text-transform:uppercase;margin-bottom:var(--space-1);font-size:.65rem}.achievement-toast-name{font-family:var(--font-display);color:var(--color-text-primary);text-transform:uppercase;font-size:1.3rem}.progression-track{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.step{background:var(--color-surface-3);flex-shrink:0;width:10px;height:10px;border-radius:0!important}.step.completed{background:var(--color-green-dim)}.step.current-b{background:var(--color-border-bright);outline:1px solid var(--color-border-bright)}.step.current-a{background:var(--color-green);box-shadow:0 0 8px #39ff1499}.heatmap-grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.heatmap-day{aspect-ratio:1;font-size:11px;font-weight:700;font-family:var(--font-display);transition:var(--transition-base);border:1px solid var(--color-border);flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;border-radius:0!important}.heatmap-day.xp-none{background:var(--color-surface);color:var(--color-text-muted)}.heatmap-day.xp-low{color:var(--color-green-text);background:#39ff141a;border-color:#39ff1433}.heatmap-day.xp-medium{color:#fff;background:#39ff1459;border-color:#39ff1480}.heatmap-day.xp-high{background:var(--color-green);color:var(--color-bg);border-color:var(--color-green)}.shoulder-dot{background:var(--color-warning);width:3px;height:3px;position:absolute;bottom:2px;border-radius:0!important}.tab-item.svelte-1wwzsr0 svg:where(.svelte-1wwzsr0){margin-bottom:var(--space-1);opacity:.5;transition:opacity var(--transition-base), transform var(--transition-base)}.tab-item.svelte-1wwzsr0:hover svg:where(.svelte-1wwzsr0){opacity:.85}.tab-item.active.svelte-1wwzsr0 svg:where(.svelte-1wwzsr0){opacity:1;stroke:var(--color-green);filter:drop-shadow(0 0 4px var(--color-green-glow));transform:scale(1.05)}
