:root{--bg-primary: #0f0f0f;--bg-secondary: #1a1a1a;--bg-card: #222222;--bg-input: #2a2a2a;--text-primary: #f0f0f0;--text-secondary: #a0a0a0;--text-muted: #666666;--accent: #6c63ff;--accent-hover: #5a52d5;--accent-light: rgba(108, 99, 255, .15);--success: #4ade80;--danger: #f87171;--warning: #fbbf24;--border: #333333;--radius: 12px;--radius-sm: 8px}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg-primary);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}.app-layout{display:flex;flex-direction:column;min-height:100vh}.app-header{background:var(--bg-secondary);border-bottom:1px solid var(--border);padding:0 1.5rem;height:60px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100}.app-header h1{font-size:1.25rem;font-weight:700;display:flex;align-items:center;gap:.5rem}.app-nav{display:flex;gap:.25rem}.app-nav a{padding:.5rem 1rem;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.875rem;font-weight:500;transition:all .2s;display:flex;align-items:center;gap:.4rem}.app-nav a:hover,.app-nav a.active{background:var(--accent-light);color:var(--accent)}.app-main{flex:1;padding:1.5rem;max-width:1200px;width:100%;margin:0 auto}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;margin-bottom:1rem}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.card-title{font-size:1.125rem;font-weight:600}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem 1.2rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;border:none;transition:all .2s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{border-color:var(--text-muted)}.btn-danger{background:transparent;color:var(--danger);border:1px solid var(--danger)}.btn-danger:hover{background:#f871711a}.btn-sm{padding:.35rem .75rem;font-size:.8rem}.btn-icon{padding:.5rem;background:transparent;border:none;color:var(--text-secondary);border-radius:var(--radius-sm)}.btn-icon:hover{background:var(--bg-input);color:var(--text-primary)}.form-group{margin-bottom:1rem}.form-label{display:block;font-size:.8rem;font-weight:500;color:var(--text-secondary);margin-bottom:.35rem;text-transform:uppercase;letter-spacing:.5px}.form-input{width:100%;padding:.6rem .8rem;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.9rem}.form-input:focus{outline:none;border-color:var(--accent)}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.tag{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .6rem;background:var(--accent-light);color:var(--accent);border-radius:999px;font-size:.75rem;font-weight:500}.tag-success{background:#4ade8026;color:var(--success)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;text-align:center}.stat-value{font-size:2rem;font-weight:700;color:var(--accent)}.stat-label{font-size:.8rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--border)}.table th{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.table tr:hover td{background:var(--bg-secondary)}.empty-state{text-align:center;padding:3rem;color:var(--text-muted)}.empty-state svg{margin-bottom:1rem}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1rem}.login-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:2.5rem;width:100%;max-width:400px}.login-card h1{text-align:center;margin-bottom:.5rem}.login-card p{text-align:center;color:var(--text-secondary);margin-bottom:2rem}.error-text{color:var(--danger);font-size:.85rem;margin-top:.5rem}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;width:100%;max-width:600px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.modal-title{font-size:1.25rem;font-weight:600}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}@media(max-width:768px){.app-header{flex-direction:column;height:auto;padding:.75rem 1rem;gap:.5rem}.app-nav{width:100%;overflow-x:auto}.app-main{padding:1rem}.form-row{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}}.spinner{width:24px;height:24px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite;margin:2rem auto}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}.set-row{display:grid;grid-template-columns:60px repeat(3,1fr) 80px 40px;gap:.5rem;align-items:center;padding:.35rem 0}.set-row .form-input{padding:.4rem .6rem;font-size:.85rem;text-align:center}.set-number{font-size:.85rem;color:var(--text-muted);text-align:center;font-weight:600}.day-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;margin-bottom:.75rem}.day-card h3{font-size:1rem;margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem}.day-card .exercise-item{padding:.5rem 0;border-bottom:1px solid var(--border)}.day-card .exercise-item:last-child{border-bottom:none}.checkbox-wrapper{display:flex;align-items:center;gap:.5rem}.checkbox-wrapper input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.dash-week-card{padding:1rem 1.5rem;margin-bottom:1.5rem}.week-dots{display:flex;justify-content:space-between;gap:.5rem;margin-top:.75rem}.week-dot-col{display:flex;flex-direction:column;align-items:center;gap:.35rem;flex:1}.week-dot{width:28px;height:28px;border-radius:50%;background:var(--bg-input);border:2px solid var(--border);transition:all .2s}.week-dot.active{background:var(--accent);border-color:var(--accent);box-shadow:0 0 8px #6c63ff66}.week-dot.today{border-color:var(--accent)}.week-dot.future{opacity:.35}.week-dot-label{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.stat-card{position:relative;overflow:hidden}.stat-icon{color:var(--text-muted);margin-bottom:.5rem}.stat-card--accent .stat-icon{color:var(--accent)}.stat-card--green .stat-icon{color:var(--success)}.stat-card--orange .stat-icon{color:var(--warning)}.stat-card--blue .stat-icon{color:#3b82f6}.stat-card--accent .stat-value{color:var(--accent)}.stat-card--green .stat-value{color:var(--success)}.stat-card--orange .stat-value{color:var(--warning)}.stat-card--blue .stat-value{color:#3b82f6}.stat-card--accent:before,.stat-card--green:before,.stat-card--orange:before,.stat-card--blue:before{content:"";position:absolute;top:0;left:0;right:0;height:3px}.stat-card--accent:before{background:var(--accent)}.stat-card--green:before{background:var(--success)}.stat-card--orange:before{background:var(--warning)}.stat-card--blue:before{background:#3b82f6}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.dashboard-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}.stats-grid{display:flex;flex-wrap:wrap;gap:.75rem}.stats-grid .stat-card{flex:1 1 120px;min-width:110px}.stat-card--purple:before{background:#a855f7}.dashboard-col{display:flex;flex-direction:column;gap:1rem}.dashboard-col>.card{margin-bottom:0}.workout-list{display:flex;flex-direction:column}.workout-list-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--border);color:var(--text-primary);transition:background .15s;text-decoration:none}.workout-list-item:last-child{border-bottom:none}.workout-list-item:hover{background:var(--bg-secondary);margin:0 -1.5rem;padding:.75rem 1.5rem}.workout-list-info{display:flex;flex-direction:column;gap:.15rem}.workout-list-name{font-weight:500;font-size:.9rem}.workout-list-meta{font-size:.75rem;color:var(--text-muted)}.pr-list{display:flex;flex-direction:column;gap:.25rem}.pr-item{display:flex;align-items:center;gap:.75rem;padding:.6rem 0;border-bottom:1px solid var(--border)}.pr-item:last-child{border-bottom:none}.pr-rank{font-size:.75rem;color:var(--text-muted);font-weight:700;width:28px;text-align:center}.pr-info{flex:1;display:flex;flex-direction:column;gap:.1rem}.pr-name{font-size:.9rem;font-weight:500}.pr-date{font-size:.7rem;color:var(--text-muted)}.pr-weight{font-size:1rem;font-weight:700;color:var(--warning)}.muscle-legend{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-top:.75rem}.muscle-legend-item{display:flex;align-items:center;gap:.35rem;font-size:.75rem}.muscle-legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.muscle-legend-name{color:var(--text-secondary)}.muscle-legend-val{color:var(--text-muted);font-weight:600}@media(max-width:768px){.dashboard-header{flex-direction:column;align-items:flex-start;gap:1rem}.dashboard-grid,.dashboard-grid-3{grid-template-columns:1fr}.week-dot{width:22px;height:22px}}@media(min-width:769px)and (max-width:1100px){.dashboard-grid-3{grid-template-columns:1fr 1fr}}.chat-card{display:flex;flex-direction:column;max-height:75vh}.chat-messages{flex:1;overflow-y:auto;padding:.5rem 0;display:flex;flex-direction:column;gap:.5rem;min-height:200px;max-height:55vh}.chat-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;flex:1;color:var(--text-muted);font-size:.85rem}.chat-bubble{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.5rem .75rem;max-width:95%;position:relative}.chat-bubble--exercise{border-left:3px solid var(--accent)}.chat-bubble--rest{border-left:3px solid var(--warning);opacity:.8}.chat-bubble--note{border-left:3px solid var(--border)}.chat-delete{position:absolute;top:4px;right:4px;background:none;border:none;color:var(--text-muted);opacity:0;transition:opacity .15s;padding:2px;cursor:pointer;border-radius:4px}.chat-delete:hover{color:var(--danger);background:#f8717126}.chat-bubble:hover .chat-delete{opacity:1}.note-highlight{background:var(--accent-light);color:var(--accent);font-weight:600;padding:0 3px;border-radius:3px;font-size:.9em}.chat-quick-actions{display:flex;gap:.35rem;padding-bottom:.5rem;border-bottom:1px solid var(--border);flex-wrap:wrap}.chat-quick-btn{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-secondary);font-size:.7rem;padding:.2rem .5rem;border-radius:12px;cursor:pointer;transition:all .15s;white-space:nowrap}.chat-quick-btn:hover{background:var(--accent-light);color:var(--accent);border-color:var(--accent)}.chat-text{font-size:.85rem;line-height:1.4;word-break:break-word}.chat-time{font-size:.65rem;color:var(--text-muted);margin-top:.2rem}.chat-input-row{display:flex;gap:.4rem;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border)}.chat-input{flex:1;font-size:.85rem!important;padding:.5rem .75rem!important}.chat-send{flex-shrink:0;width:36px;height:36px;padding:0!important;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm)}.btn-icon{display:inline-flex;align-items:center;justify-content:center}.garmin-activities{display:flex;flex-direction:column}.garmin-activity-row{display:flex;align-items:center;gap:.75rem;padding:.75rem 0;border-bottom:1px solid var(--border)}.garmin-activity-row:last-child{border-bottom:none}.garmin-activity-icon{font-size:1.5rem;width:36px;text-align:center;flex-shrink:0}.garmin-activity-info{flex:1;display:flex;flex-direction:column;gap:.1rem;min-width:0}.garmin-activity-name{font-weight:500;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.garmin-activity-meta{font-size:.7rem;color:var(--text-muted)}.garmin-activity-stats{display:flex;gap:.75rem;flex-shrink:0}.garmin-stat{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;color:var(--text-secondary);white-space:nowrap}@media(max-width:768px){.garmin-activity-row{flex-wrap:wrap}.garmin-activity-stats{width:100%;padding-left:2.75rem;flex-wrap:wrap;gap:.5rem}}
