:root{--bg-base:#0d1117;--bg-surface:#141d27;--bg-elevated:#1a2535;--border:#1e2d3d;--border-subtle:#ffffff0d;--accent:#ff6030;--accent-alt:#e8394d;--accent-glow:#ff603024;--accent-glow2:#e8394d1a;--text-primary:#f0f5f8;--text-secondary:#7a95a8;--text-muted:#4a6478;--green:#22c55e;--teal:#12cdb7;--yellow:#f59e0b;--red:#ef4444;--nav-h:62px;--sidebar-w:72px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.5}button,input,select,textarea{font:inherit}button{cursor:pointer;background:0 0;border:0}a{color:inherit;text-decoration:none}p{margin:0}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.page-body{padding:20px 16px calc(var(--nav-h) + 16px);flex:1;overflow-y:auto}.bottom-nav{height:var(--nav-h);background:var(--bg-surface);border-top:1px solid var(--border);z-index:100;padding-bottom:env(safe-area-inset-bottom,0px);align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-item{color:var(--text-muted);flex-direction:column;flex:1;align-items:center;gap:3px;padding:8px 0;transition:color .15s;display:flex}.nav-item svg{stroke-width:1.7px;width:22px;height:22px}.nav-item span{letter-spacing:.02em;font-size:10px;font-weight:500}.nav-item.active{color:var(--accent)}@media (width>=768px){.app-shell{flex-direction:row}.bottom-nav{width:var(--sidebar-w);border-top:0;border-right:1px solid var(--border);flex-direction:column;height:100dvh;padding-bottom:0;position:fixed;inset:0 auto 0 0}.nav-logo{background:linear-gradient(135deg, var(--accent), var(--accent-alt));border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;margin-bottom:8px;display:flex}.nav-logo svg{stroke:#fff;stroke-width:2px;width:20px;height:20px}.nav-item{border-radius:var(--radius-sm);flex:none;width:46px;height:46px;padding:0}.nav-item span{display:none}.nav-item.active{background:var(--accent-glow);color:var(--accent)}.nav-item:hover:not(.active){background:var(--bg-elevated);color:var(--text-secondary)}.nav-spacer{flex:1}.page-body{margin-left:var(--sidebar-w);padding:28px 28px 40px}}.page-max{max-width:900px;margin:0 auto}.page-header{margin-bottom:24px}.page-header h1{color:var(--text-primary);font-size:22px;font-weight:600}.page-header p{color:var(--text-secondary);margin-top:2px;font-size:13px}.section-label{letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px;font-size:11px;font-weight:700}.readiness-card{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-alt) 100%);border-radius:var(--radius-lg);margin-bottom:20px;padding:20px}.readiness-card .label{color:#ffffffbf;text-transform:uppercase;letter-spacing:.07em;font-size:11px;font-weight:700}.readiness-score{color:#fff;margin:6px 0 4px;font-size:60px;font-weight:700;line-height:1}.readiness-desc{color:#ffffffd9;font-size:13px}.readiness-pills{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.readiness-pill{background:#ffffff2e;border-radius:20px;align-items:center;gap:5px;padding:5px 12px;display:flex}.readiness-pill .pill-label{color:#fffc;font-size:11px}.readiness-pill .pill-value{color:#fff;font-size:11px;font-weight:600}.readiness-placeholder{background:var(--bg-surface);border:1px dashed var(--border);border-radius:var(--radius-lg);align-items:center;gap:14px;margin-bottom:20px;padding:20px;display:flex}.readiness-placeholder svg{color:var(--text-muted);flex-shrink:0}.readiness-placeholder p{color:var(--text-secondary);font-size:13px}.readiness-placeholder a{color:var(--accent)}.stat-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:20px;display:grid}.stat-tile{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 12px}.stat-tile-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;font-size:10px;font-weight:700}.stat-tile-value{color:var(--text-primary);font-size:22px;font-weight:600;line-height:1}.stat-tile-unit{color:var(--text-secondary);margin-top:3px;font-size:10px}.stat-tile-trend{margin-top:4px;font-size:11px}.stat-tile-trend.up{color:var(--green)}.stat-tile-trend.down{color:var(--accent)}.panel-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:16px;padding:18px}.panel-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:16px;display:flex}.panel-card-title{color:var(--text-primary);font-size:15px;font-weight:600}.panel-card-sub{color:var(--text-secondary);margin-top:2px;font-size:12px}.badge{background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border);border-radius:20px;flex-shrink:0;padding:4px 10px;font-size:11px;font-weight:600}.badge.accent{background:var(--accent-glow);color:var(--accent);border-color:#ff603040}.activity-list{flex-direction:column;gap:10px;display:flex}.activity-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px;transition:border-color .15s}.activity-card:hover{border-color:#ff603059}.activity-card-top{align-items:flex-start;gap:12px;display:flex}.activity-icon{background:var(--accent-glow);border:1px solid #ff603040;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.activity-icon svg{width:20px;height:20px;stroke:var(--accent);stroke-width:1.8px}.activity-meta{flex:1;min-width:0}.activity-sport{color:var(--text-primary);font-size:15px;font-weight:600}.activity-date{color:var(--text-muted);margin-top:1px;font-size:12px}.activity-filename{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11px;overflow:hidden}.activity-primary{text-align:right;flex-shrink:0}.activity-dist{color:var(--text-primary);font-size:16px;font-weight:600}.activity-pace{color:var(--text-secondary);margin-top:2px;font-size:12px}.activity-metrics{border-top:1px solid var(--border-subtle);gap:16px;margin-top:12px;padding-top:12px;display:flex}.activity-metric-item{flex:1}.activity-metric-item dt{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:10px;font-weight:700}.activity-metric-item dd{color:var(--text-secondary);margin-top:2px;font-size:13px;font-weight:600}.activity-actions{gap:8px;margin-top:12px;display:flex}.analysis-panel{background:var(--bg-elevated);border-radius:var(--radius-sm);border:1px solid var(--border);margin-top:12px;padding:14px}.analysis-panel-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.analysis-eyebrow{color:var(--teal);text-transform:uppercase;letter-spacing:.07em;font-size:10px;font-weight:700}.analysis-model{color:var(--text-muted);font-size:11px}.analysis-text{color:var(--text-secondary);white-space:pre-wrap;font-size:13px;line-height:1.65}.btn{border-radius:var(--radius-sm);align-items:center;gap:6px;padding:9px 16px;font-size:13px;font-weight:600;transition:opacity .15s,background .15s;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn svg{stroke-width:2px;width:15px;height:15px}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:#e8542a}.btn-ghost{background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--bg-surface);color:var(--text-primary)}.btn-danger{color:var(--red);background:#ef44441f;border:1px solid #ef444433}.btn-danger:hover:not(:disabled){background:#ef444433}.btn-sm{padding:6px 12px;font-size:12px}.btn-sm svg{width:13px;height:13px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}@media (width<=480px){.form-grid{grid-template-columns:1fr}}.form-field{flex-direction:column;gap:5px;display:flex}.form-field.span-2{grid-column:1/-1}.form-label{color:var(--text-secondary);align-items:center;gap:5px;font-size:12px;font-weight:600;display:flex}.form-label .unit{color:var(--text-muted);font-weight:400}.form-input,.form-select,.form-textarea{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);width:100%;padding:9px 12px;font-size:14px;transition:border-color .15s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent);outline:none}.form-input::placeholder{color:var(--text-muted)}.form-select option{background:var(--bg-surface)}.form-textarea{resize:vertical}.file-picker{background:var(--bg-elevated);border:1px dashed var(--border);border-radius:var(--radius-md);text-align:center;cursor:pointer;padding:20px;transition:border-color .15s,background .15s;display:block}.file-picker:hover{border-color:var(--accent);background:var(--accent-glow)}.file-picker input[type=file]{display:none}.file-picker-icon{background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;margin:0 auto 10px;display:flex}.file-picker-icon svg{width:20px;height:20px;stroke:var(--text-muted);stroke-width:1.7px}.file-picker-title{color:var(--text-primary);font-size:13px;font-weight:600}.file-picker-sub{color:var(--text-muted);margin-top:3px;font-size:12px}.file-picker.has-file{background:var(--accent-glow);border-color:#ff603066}.file-picker.has-file .file-picker-icon{background:var(--accent-glow);border-color:#ff60304d}.file-picker.has-file .file-picker-icon svg{stroke:var(--accent)}.notice{border-radius:var(--radius-sm);margin-top:12px;padding:11px 14px;font-size:13px}.notice.success{color:#4ade80;background:#22c55e1a;border:1px solid #22c55e33}.notice.error{color:#f87171;background:#ef44441a;border:1px solid #ef444433}.notice.warning{color:#fbbf24;background:#f59e0b1a;border:1px solid #f59e0b33}.notice.info{background:var(--accent-glow);color:var(--accent);border:1px solid #ff603033}.daily-layout{grid-template-columns:1fr;gap:16px;display:grid}@media (width>=640px){.daily-layout{grid-template-columns:1fr 1fr}}.daily-saved-card{background:var(--bg-elevated);border-radius:var(--radius-md);border:1px solid var(--border);padding:14px}.daily-saved-date{color:var(--text-primary);margin-bottom:2px;font-size:15px;font-weight:600}.daily-saved-status{color:var(--text-muted);margin-bottom:12px;font-size:11px}.metric-group{margin-bottom:14px}.metric-group-label{text-transform:uppercase;letter-spacing:.07em;color:var(--accent);margin-bottom:8px;font-size:10px;font-weight:700}.metric-group-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.metric-item{background:var(--bg-surface);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);padding:10px}.metric-item dt{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:10px;font-weight:700}.metric-item dd{color:var(--text-primary);margin-top:3px;font-size:14px;font-weight:600}.daily-metric-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}@media (width>=640px){.daily-metric-form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.chat-shell{height:calc(100dvh - var(--nav-h) - 48px);flex-direction:column;display:flex}@media (width>=768px){.chat-shell{height:calc(100dvh - 56px)}}.chat-messages{flex-direction:column;flex:1;gap:12px;padding-bottom:8px;display:flex;overflow-y:auto}.chat-bubble{border-radius:var(--radius-md);max-width:80%;padding:11px 14px;font-size:14px;line-height:1.6}.chat-bubble.user{background:var(--accent);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.chat-bubble.ai{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-primary);border-bottom-left-radius:4px;align-self:flex-start}.chat-empty{color:var(--text-muted);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;display:flex}.chat-empty svg{stroke-width:1.3px;opacity:.5;width:36px;height:36px}.chat-empty p{font-size:13px}.chat-input-row{border-top:1px solid var(--border);gap:8px;margin-top:8px;padding-top:12px;display:flex}.chat-input{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);resize:none;flex:1;min-height:44px;max-height:120px;padding:10px 14px;font-size:14px;transition:border-color .15s}.chat-input:focus{border-color:var(--accent);outline:none}.chat-send-btn{border-radius:var(--radius-sm);background:var(--accent);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;transition:background .15s;display:flex}.chat-send-btn:hover:not(:disabled){background:#e8542a}.chat-send-btn:disabled{opacity:.4;cursor:not-allowed}.chat-send-btn svg{stroke:#fff;stroke-width:2px;width:18px;height:18px}.profile-summary{background:var(--bg-elevated);border-radius:var(--radius-md);border:1px solid var(--border);align-items:center;gap:16px;margin-bottom:20px;padding:16px;display:flex}.profile-avatar{background:linear-gradient(135deg, var(--accent), var(--accent-alt));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:20px;font-weight:700;display:flex}.profile-name{color:var(--text-primary);font-size:17px;font-weight:600}.profile-meta{color:var(--text-secondary);margin-top:2px;font-size:13px}.upload-result{background:var(--bg-elevated);border-radius:var(--radius-md);border:1px solid #ff603040;margin-top:14px;padding:14px}.upload-result-title{color:var(--text-primary);margin-bottom:10px;font-size:13px;font-weight:600}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.summary-item dt{color:var(--text-muted);font-size:11px;font-weight:600}.summary-item dd{color:var(--text-primary);margin-top:1px;font-size:13px}.state-loading,.state-empty{color:var(--text-muted);text-align:center;padding:32px 16px;font-size:13px}.state-loading{justify-content:center;align-items:center;gap:8px;display:flex}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width>=768px){.dashboard-cols{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}}.suggestion-card{background:var(--bg-surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-md);margin-bottom:20px;padding:16px}.suggestion-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.suggestion-eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);align-items:center;gap:4px;font-size:10px;font-weight:700;display:flex}.suggestion-text{color:var(--text-secondary);white-space:pre-wrap;font-size:13px;line-height:1.75}.suggestion-placeholder{color:var(--text-muted);margin:0;font-size:13px}.suggestion-model{color:var(--text-muted);margin-top:10px;font-size:10px}.activity-expand-area{border-top:1px solid var(--border-subtle);margin-top:12px;padding-top:8px}.activity-card.is-expanded{border-color:#ff60304d}.chart-section{margin-top:16px}.chart-section:first-child{margin-top:6px}.chart-section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:6px;font-size:10px;font-weight:700}.btn-share{background:var(--accent-glow);color:var(--accent);border:1px solid #ff60304d}.btn-share:hover:not(:disabled){background:#ff603033}.share-modal-overlay{z-index:200;background:#000000c7;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.share-modal{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:640px;overflow:hidden}.share-modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.share-modal-title{color:var(--text-primary);font-size:14px;font-weight:600}.share-modal-close{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--text-muted);justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.share-modal-close:hover{background:var(--bg-base);color:var(--text-primary)}.share-modal-close svg{stroke-width:2px;width:18px;height:18px}.share-preview-wrap{background:#000;line-height:0}.share-preview{width:100%;display:block}.share-modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:14px 18px;display:flex}.bc-form-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;display:grid}.bc-records-list{flex-direction:column;gap:10px;margin-top:4px;display:flex}.bc-record-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 14px}.bc-record-header{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:10px;display:flex}.bc-record-date{color:var(--text-primary);margin-right:8px;font-size:14px;font-weight:700}.bc-record-time{color:var(--text-muted);margin-right:8px;font-size:12px}.bc-record-tags{flex-wrap:wrap;gap:4px;display:inline-flex}.bc-stats-grid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:6px;display:grid}.bc-stat-item{background:var(--bg-base);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:7px 9px}.bc-stat-item.highlight{background:var(--accent-glow);border-color:#ff603040}.bc-stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px;font-size:10px;font-weight:600;display:block}.bc-stat-value{color:var(--text-primary);font-size:13px;font-weight:700;display:block}.bc-stat-item.highlight .bc-stat-value{color:var(--accent)}.btn-icon-danger{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-muted);flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.btn-icon-danger:hover{color:var(--red);background:#ef444426}.btn-icon-danger svg{width:15px;height:15px}.analysis-modal{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;width:100%;max-width:680px;max-height:85vh;display:flex;overflow:hidden}.analysis-modal-body{flex:1;padding:20px 22px 28px;overflow-y:auto}.analysis-preview{color:var(--text-secondary);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:8px;font-size:13px;line-height:1.65;display:-webkit-box;overflow:hidden}.btn-text-link{color:var(--accent);cursor:pointer;letter-spacing:.01em;background:0 0;border:none;margin-top:6px;padding:0;font-size:12px;font-weight:600;display:inline-block}.btn-text-link:hover{text-decoration:underline}
