:root{--primary: #16a34a;--primary-hover: #15803d;--primary-soft: #dcfce7;--on-primary: #ffffff;--header-bg: #0e1a13;--header-text: #e6ede8;--bg: #f4f6f5;--surface: #ffffff;--surface-2: #f8faf9;--border: #e5e9e7;--border-strong: #d4dad6;--text: #0f172a;--text-2: #475569;--text-3: #64748b;--danger: #ef4444;--danger-soft: #fee2e2;--warning: #f59e0b;--warning-soft: #fef3c7;--info: #3b82f6;--info-soft: #dbeafe;--purple: #8b5cf6;--purple-soft: #ede9fe;--ev-training: #22c55e;--ev-match: #ef4444;--ev-theory: #f59e0b;--ev-recovery: #8b5cf6;--ev-other: #3b82f6;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--shadow-1: 0 1px 2px rgba(16, 24, 20, .06);--shadow-2: 0 8px 28px rgba(16, 24, 20, .14);--focus: 0 0 0 3px rgba(22, 163, 74, .35);--font: Inter, "Segoe UI Variable", "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;--nav-h: 64px;color-scheme:light}:root[data-theme=dark]{--primary: #22c55e;--primary-hover: #16a34a;--primary-soft: rgba(34, 197, 94, .16);--on-primary: #04140a;--header-bg: #08100b;--bg: #0b110d;--surface: #121a15;--surface-2: #18221c;--border: #243029;--border-strong: #2f3d35;--text: #e6ede8;--text-2: #a3b1a8;--text-3: #7d8c83;--danger-soft: rgba(239, 68, 68, .16);--warning-soft: rgba(245, 158, 11, .16);--info-soft: rgba(59, 130, 246, .16);--purple-soft: rgba(139, 92, 246, .18);--shadow-1: none;--shadow-2: 0 8px 28px rgba(0, 0, 0, .5);color-scheme:dark}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{font-family:var(--font);font-size:15px;line-height:1.4;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3{margin:0;line-height:1.2}h1{font-size:22px}h2{font-size:17px}h3{font-size:15px}a{color:var(--primary)}.app{min-height:100vh;display:flex;flex-direction:column}.header{position:sticky;top:0;z-index:10;background:var(--header-bg);color:var(--header-text);padding:calc(env(safe-area-inset-top) + 10px) 16px 10px;display:flex;align-items:center;gap:10px}.header .brand{font-weight:700;letter-spacing:.2px;flex:1;min-width:0}.header .brand-mark{width:26px;height:30px;flex:none}.header .brand small{display:block;font-weight:400;font-size:12px;opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.child-select{background:#ffffff14;border:1px solid rgba(255,255,255,.16);color:inherit;border-radius:999px;padding:6px 12px;max-width:55vw}.child-select option{color:#0f172a}.sync-dot{width:10px;height:10px;border-radius:50%;background:var(--primary);flex:none}.sync-dot.syncing{background:var(--info);animation:pulse 1s infinite}.sync-dot.offline{background:var(--warning)}.sync-dot.error{background:var(--danger)}@keyframes pulse{50%{opacity:.35}}.main{flex:1;width:100%;max-width:680px;margin:0 auto;padding:16px 16px calc(var(--nav-h) + env(safe-area-inset-bottom) + 24px);display:flex;flex-direction:column;gap:14px}.nav{position:fixed;left:0;right:0;bottom:0;z-index:10;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(5,1fr)}.nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--text-3);text-decoration:none;font-size:11px;position:relative}.nav a.active{color:var(--primary);font-weight:600}.nav .badge{position:absolute;top:8px;left:calc(50% + 6px)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-1);padding:14px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.stack{display:flex;flex-direction:column;gap:10px}.row{display:flex;align-items:center;gap:8px}.row.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.muted{color:var(--text-3)}.small{font-size:13px}.tiny{font-size:12px}.center{text-align:center}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 16px;border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-weight:600;cursor:pointer;text-decoration:none}.btn:focus-visible,.input:focus-visible,.chip:focus-visible{outline:none;box-shadow:var(--focus)}.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.btn.primary:hover{background:var(--primary-hover)}.btn.danger{color:var(--danger)}.btn.ghost{border-color:transparent;background:transparent}.btn.block{width:100%}.btn.sm{min-height:34px;padding:0 12px;font-size:13px}.btn:disabled{opacity:.55;cursor:default}.input{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface)}textarea.input{min-height:72px;resize:vertical}.field{display:flex;flex-direction:column;gap:6px}.field>span{font-size:13px;color:var(--text-2);font-weight:600}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{min-height:38px;min-width:38px;padding:0 12px;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface);cursor:pointer}.chip.on{background:var(--primary);border-color:var(--primary);color:var(--on-primary);font-weight:600}.segment{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px}.segment button{min-height:42px;border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--surface);font-weight:600;cursor:pointer}.segment button.yes.on{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.segment button.maybe.on{background:var(--warning);border-color:var(--warning);color:#1f1300}.segment button.no.on{background:var(--danger);border-color:var(--danger);color:#fff}.segment button:disabled{opacity:.5;cursor:default}.pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;background:var(--surface-2);color:var(--text-2)}.pill.green{background:var(--primary-soft);color:var(--primary)}.pill.red{background:var(--danger-soft);color:var(--danger)}.pill.amber{background:var(--warning-soft);color:#b45309}.pill.blue{background:var(--info-soft);color:var(--info)}:root[data-theme=dark] .pill.amber{color:var(--warning)}.badge{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--danger);color:#fff;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.alert{padding:10px 12px;border-radius:var(--r-md);font-size:14px}.alert.error{background:var(--danger-soft);color:var(--danger)}.alert.info{background:var(--info-soft);color:var(--info)}.alert.ok{background:var(--primary-soft);color:var(--primary)}.empty{text-align:center;color:var(--text-3);padding:28px 12px}.empty svg{opacity:.5;margin-bottom:6px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stat{background:var(--surface-2);border-radius:var(--r-md);padding:10px;text-align:center}.stat b{display:block;font-size:20px}.stat span{font-size:12px;color:var(--text-3)}.event{display:flex;gap:12px}.event .bar{width:4px;border-radius:2px;flex:none;background:var(--ev-other)}.event.training .bar{background:var(--ev-training)}.event.match .bar{background:var(--ev-match)}.event.theory .bar{background:var(--ev-theory)}.event.recovery .bar{background:var(--ev-recovery)}.event.cancelled .title{text-decoration:line-through;color:var(--text-3)}.day-label{font-size:13px;font-weight:700;color:var(--text-2);text-transform:capitalize;margin:6px 2px -4px}.meter{height:8px;border-radius:4px;background:var(--surface-2);overflow:hidden}.meter>i{display:block;height:100%;border-radius:4px;background:var(--primary)}.score{font-size:22px;font-weight:700}.spark{display:block;width:100%;height:40px}.avatar{width:56px;height:56px;border-radius:50%;flex:none;object-fit:cover;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:20px}.avatar.lg{width:72px;height:72px;font-size:26px}.auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px}.auth .card{width:100%;max-width:420px;padding:22px}.logo{width:56px;height:56px;margin:0 auto 10px;display:block}.link-btn{background:none;border:none;color:var(--primary);padding:4px;cursor:pointer;font-weight:600}.code-input{letter-spacing:6px;text-align:center;font-size:22px;font-weight:700;text-transform:uppercase}.splash{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--text-3)}
