:root{color:#e8eef5;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--bg:#0f1419;--panel:#1a2332;--border:#2a3a4f;--accent:#3d9cf0;--accent-dim:#2563a8;--muted:#8b9cb3;--danger:#f07178;--ok:#7fd99a;--run:#3d9cf0;--hike:#7fd99a;--stair:#f0a06a;--cardio:#e6b450;--strength:#c792ea;background:#0f1419;font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5}*{box-sizing:border-box}body{background:radial-gradient(ellipse at top, #1a2740 0%, var(--bg) 55%);min-height:100vh;margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;background:#0f1419d9;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.5rem;display:flex;position:sticky;top:0}.brand{letter-spacing:.02em;color:#fff;font-weight:700;text-decoration:none}.nav{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.nav a{color:var(--muted);font-weight:500;text-decoration:none}.nav a.active{color:#fff}.user-email{color:var(--muted);font-size:.85rem}.linkish{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:none;padding:0}.sync-banner{border-bottom:1px solid var(--accent-dim);color:#d6e8fb;text-align:center;z-index:9;background:#1e3a5f;padding:.55rem 1.5rem;font-size:.92rem;position:sticky;top:3.2rem}.main{flex:1;width:min(1200px,100%);margin:0 auto;padding:1.5rem}h1{margin:0 0 .35rem;font-size:1.6rem}h2{margin:0 0 .75rem;font-size:1.15rem}.muted{color:var(--muted)}.small{font-size:.85rem}.error{color:var(--danger)}.ok{color:var(--ok);margin-left:.5rem}.banner{border:1px solid var(--border);background:#243044;border-radius:8px;padding:.75rem 1rem}button,select,input{font:inherit}button{background:var(--panel);color:#fff;border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:.45rem .85rem}button:hover{border-color:var(--accent)}button.primary{background:var(--accent-dim);border-color:var(--accent)}button.danger{border-color:var(--danger);color:#ffd6d9;background:#3a1f24}button.danger:hover{border-color:#ff9aa2}button:disabled{opacity:.6;cursor:not-allowed}.danger-zone{border-color:color-mix(in srgb, var(--danger) 45%, var(--border))}.danger-zone h2{color:var(--danger)}label{color:var(--muted);flex-direction:column;gap:.35rem;font-size:.9rem;display:flex}input,select{border:1px solid var(--border);color:#fff;background:#0d1218;border-radius:8px;padding:.55rem .7rem}.auth-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;max-width:400px;margin:3rem auto;padding:1.75rem}.auth-card form{flex-direction:column;gap:1rem;display:flex}.week-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.week-actions{flex-wrap:wrap;gap:.5rem;display:flex}.unit-choices{flex-direction:column;gap:.6rem;margin-top:.75rem;display:flex}.unit-choices label{cursor:pointer;align-items:center;gap:.5rem;display:flex}.week-table-wrap{border:1px solid var(--border);background:var(--panel);border-radius:12px;overflow-x:auto}.weeks-list-table{border-collapse:collapse;width:100%;min-width:520px}.weeks-list-table th,.weeks-list-table td{text-align:left;border-bottom:1px solid var(--border);padding:.75rem 1rem}.weeks-list-table th{color:var(--muted);background:#121a26;font-size:.85rem;font-weight:600}.weeks-list-table th.num,.weeks-list-table td.num{text-align:right;font-variant-numeric:tabular-nums}.weeks-list-table tbody tr:hover{background:#3d9cf014}.weeks-list-table tbody tr.current-week{background:#3d9cf01a}.weeks-list-table tfoot th{color:#fff;background:#152033;border-bottom:none;font-size:.95rem}.week-link{color:inherit;align-items:center;gap:.5rem;font-weight:600;text-decoration:none;display:inline-flex}.week-link:hover{color:var(--accent);text-decoration:none}.badge-current{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);background:#3d9cf033;border-radius:4px;padding:.15rem .4rem;font-size:.65rem;font-weight:600}.week-table{border-collapse:collapse;width:100%;min-width:900px}.week-table th,.week-table td{border-right:1px solid var(--border);border-bottom:1px solid var(--border);vertical-align:top;width:11%;padding:.65rem .55rem}.week-table th:last-child,.week-table td:last-child{border-right:none}.week-table thead th{text-align:left;z-index:2;background:#121a26;font-weight:600;position:sticky;top:0}.years-table{min-width:1100px}.years-table .total-num{font-size:.85rem}.week-table.stacked-weeks .week-label-col{white-space:nowrap;background:#121a26;width:9%;min-width:7.5rem;font-size:.8rem;font-weight:600}.week-table.stacked-weeks tbody .week-label-col{vertical-align:middle;background:#152033}.week-label{flex-direction:column;align-items:flex-start;gap:.35rem;display:flex}.day-cell-date{margin-bottom:.35rem}.th-date{color:var(--muted);font-size:.8rem;font-weight:400}.totals-col{background:#152033;width:10%!important}.total-num{font-size:1rem;font-weight:700}.week-table tbody tr.current-week td{background:#3d9cf00f}.week-table tbody tr.current-week .totals-col,.week-table tbody tr.current-week .week-label-col{background:#1a2a42}@media (width<=700px){.week-table.stacked-weeks{min-width:0}.week-table.stacked-weeks .day-col,.years-table .day-col{display:none}.week-table.stacked-weeks .week-label-col,.week-table.stacked-weeks .totals-col{width:auto!important}.week-table.stacked-weeks .week-label-col{min-width:0}.week-table.stacked-weeks th,.week-table.stacked-weeks td{padding:.75rem 1rem}.week-table.stacked-weeks .total-num{font-size:.95rem}}.empty{color:var(--muted)}.act-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.act-list a{color:inherit;border-radius:6px;flex-direction:column;gap:.15rem;padding:.35rem;text-decoration:none;display:flex}.act-list a:hover{background:#3d9cf01f;text-decoration:none}.act-name{font-size:.9rem}.act-type{color:var(--muted);font-size:.75rem}.act-stats{color:var(--muted);font-size:.8rem}.badge{text-transform:uppercase;letter-spacing:.04em;background:#2a3a4f;border-radius:4px;width:fit-content;padding:.1rem .4rem;font-size:.7rem;display:inline-block}.badge.run{color:var(--run);background:#3d9cf040}.badge.hike{color:var(--hike);background:#7fd99a33}.badge.stair{color:var(--stair);background:#f0a06a38}.badge.cardio{color:var(--cardio);background:#e6b45033}.badge.strength{color:var(--strength);background:#c792ea33}.data-table{border-collapse:collapse;background:var(--panel);border:1px solid var(--border);border-radius:12px;width:100%;overflow:hidden}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border);padding:.65rem .75rem}.data-table th{color:var(--muted);background:#121a26;font-size:.85rem}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;margin:1rem 0;padding:1.25rem}.stack{flex-direction:column;gap:.85rem;max-width:360px;margin-top:1rem;display:flex}.plain{padding-left:1.1rem}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;margin:1.25rem 0;display:grid}.charts-page .year-totals{margin-top:.5rem;margin-bottom:1.25rem}.range-toggle{border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;gap:0;display:flex;overflow:hidden}.range-toggle button{background:var(--panel);color:var(--muted);border:none;border-right:1px solid var(--border);font:inherit;cursor:pointer;padding:.45rem .85rem}.range-toggle button:last-child{border-right:none}.range-toggle button.active{color:#fff;background:#1e3a5f}.range-toggle button:hover:not(.active){color:#fff}.shared-banner{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.75rem 1rem;display:flex}.shared-nav a{margin-right:.75rem}.act-static{flex-direction:column;gap:.15rem;padding:.35rem;display:flex}.share-url{word-break:break-all;color:var(--muted);font-size:.75rem}.chart-card{margin-bottom:1rem}.chart-card h2{margin-bottom:.5rem;font-size:1.05rem}.chart-wrap{width:100%;min-height:260px}.recharts-default-tooltip{background:var(--panel)!important;border-color:var(--border)!important}.stat{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:.85rem}.stat-label{color:var(--muted);font-size:.8rem}.stat-value{font-size:1.25rem;font-weight:700}.relabel{background:var(--panel);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:.75rem;max-width:360px;padding:1.25rem;display:flex}
