*,:before,:after{box-sizing:border-box}:root{--bg:#0f1115;--bg-card:#1a1d24;--bg-input:#22262e;--text:#c8ccd4;--text-dim:#6b7280;--text-bright:#f0f2f5;--accent:#f97316;--accent-dim:#f9731626;--accent-hover:#fb923c;--border:#2a2e38;--danger:#ef4444;--success:#22c55e;--radius:8px;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}body{font-family:var(--sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5}#root{min-height:100dvh}.app{max-width:800px;margin:0 auto;padding:0 16px 80px}.header{text-align:center;padding:24px 0 8px}.logo{color:var(--accent);letter-spacing:-.5px;margin:0;font-size:28px;font-weight:700}.nav{background:var(--bg-card);border-radius:var(--radius);z-index:10;gap:4px;margin-bottom:24px;padding:4px;display:flex;position:sticky;top:0}.nav-btn{color:var(--text-dim);font-size:14px;font-weight:500;font-family:var(--sans);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;padding:10px 8px;transition:background .15s,color .15s}.nav-btn:hover{color:var(--text)}.nav-btn.active{background:var(--accent);color:#fff}.main{animation:.2s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.section-title{color:var(--text-bright);margin:0 0 16px;font-size:18px;font-weight:600}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-bottom:32px;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:4px;padding:16px;display:flex}.stat-card.accent{border-color:var(--accent);background:var(--accent-dim)}.stat-value{color:var(--text-bright);font-size:24px;font-weight:700}.stat-card.accent .stat-value{color:var(--accent)}.stat-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;font-size:12px}.chart{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);align-items:flex-end;gap:8px;height:180px;margin-bottom:24px;padding:16px 12px 8px;display:flex}.chart-bar-wrapper{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;height:100%;display:flex}.chart-value{color:var(--text-dim);min-height:16px;font-size:11px}.chart-bar{background:var(--accent);border-radius:4px 4px 0 0;width:100%;max-width:40px;min-height:2px;transition:height .3s}.chart-label{color:var(--text-dim);white-space:nowrap;margin-top:4px;font-size:10px}.log-form,.goals-form{flex-direction:column;gap:16px;max-width:480px;display:flex}.log-form label,.goals-form label{color:var(--text-dim);flex-direction:column;gap:6px;font-size:13px;font-weight:500;display:flex}.log-form input,.log-form textarea,.goals-form input{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-bright);font-size:15px;font-family:var(--sans);outline:none;padding:10px 12px;transition:border-color .15s}.log-form input:focus,.log-form textarea:focus,.goals-form input:focus{border-color:var(--accent)}.log-form textarea{resize:vertical}.row{gap:12px;display:flex}.row label{flex:1}.speed-preview{background:var(--accent-dim);border-radius:var(--radius);color:var(--accent);padding:12px;font-size:15px}.speed-preview strong{color:var(--text-bright)}.btn-primary{background:var(--accent);color:#fff;border-radius:var(--radius);font-size:15px;font-weight:600;font-family:var(--sans);cursor:pointer;border:none;padding:12px 24px;transition:background .15s}.btn-primary:hover{background:var(--accent-hover)}.toast{background:var(--success);color:#fff;border-radius:var(--radius);padding:10px 16px;font-weight:500;animation:.2s fadeIn}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}thead{border-bottom:2px solid var(--border)}th{text-align:left;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;padding:10px 12px;font-size:12px;font-weight:600}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--accent)}td{border-bottom:1px solid var(--border);color:var(--text);white-space:nowrap;padding:10px 12px}.route-cell{text-overflow:ellipsis;max-width:120px;overflow:hidden}tr:hover td{background:var(--bg-card)}.btn-delete{border:1px solid var(--danger);color:var(--danger);cursor:pointer;width:28px;height:28px;font-size:12px;font-weight:700;font-family:var(--sans);background:0 0;border-radius:4px;justify-content:center;align-items:center;transition:background .15s;display:flex}.btn-delete:hover{background:var(--danger);color:#fff}.goals{max-width:480px}.goal-progress{margin-bottom:20px}.goal-header{color:var(--text);justify-content:space-between;margin-bottom:8px;font-size:14px;display:flex}.progress-bar{background:var(--bg-input);border-radius:6px;height:12px;overflow:hidden}.progress-fill{background:var(--accent);border-radius:6px;height:100%;transition:width .3s}.empty-state{text-align:center;color:var(--text-dim);padding:48px 16px;font-size:15px}@media (width<=480px){.stat-grid{grid-template-columns:repeat(2,1fr)}.chart{height:140px}.chart-label{font-size:9px}th,td{padding:8px 6px;font-size:12px}}
