:root{--bg-color:#0f172a;--text-color:#f8fafc;--primary-color:#3b82f6;--primary-hover:#2563eb;--card-bg:#1e293b;--border-color:#334155;--danger-color:#ef4444;--success-color:#10b981}*{box-sizing:border-box;margin:0;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}body{background-color:var(--bg-color);color:var(--text-color);-webkit-font-smoothing:antialiased;line-height:1.6}a{color:var(--primary-color);text-decoration:none;transition:color .2s}a:hover{color:var(--primary-hover)}button{cursor:pointer;background-color:var(--primary-color);color:#fff;border:none;border-radius:.375rem;padding:.5rem 1rem;font-weight:500;transition:background-color .2s,transform .1s}button:hover{background-color:var(--primary-hover)}button:active{transform:scale(.98)}input{border:1px solid var(--border-color);width:100%;color:var(--text-color);background-color:#0f172a;border-radius:.375rem;margin-bottom:1rem;padding:.5rem .75rem;transition:border-color .2s}input:focus{border-color:var(--primary-color);outline:none}.card{background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:.5rem;padding:1.5rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.container{max-width:1200px;margin:0 auto;padding:2rem}.header{background-color:var(--card-bg);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-bottom:2rem;padding:1rem 2rem;display:flex}.nav-links{gap:1rem;display:flex}.page-title{background:linear-gradient(90deg,#60a5fa,#a78bfa);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:1.5rem;font-size:2rem;font-weight:700}.password-field{margin-bottom:1rem}.password-field-label{margin-bottom:.5rem;display:block}.password-field-row{align-items:stretch;gap:.5rem;display:flex}.password-field-row input{flex:1;margin-bottom:0}.password-field-toggle{white-space:nowrap;flex-shrink:0;align-self:stretch}.login-container{justify-content:center;align-items:center;height:100vh;display:flex}.login-card{width:100%;max-width:400px}.login-title{text-align:center}.login-error{color:var(--danger-color);text-align:center;margin-bottom:1rem}.login-label{margin-bottom:.5rem;display:block}.login-button{width:100%;margin-top:1rem}.login-footer{text-align:center;margin-top:1.25rem}.login-prompt-popup{border:1px solid var(--primary-color);text-align:center;background-color:#1e3a5f;border-radius:.375rem;margin-bottom:1rem;padding:.75rem 2rem .75rem 1rem;position:relative}.login-prompt-dismiss{color:var(--text-color);background:0 0;padding:.15rem .4rem;font-size:1.25rem;line-height:1;position:absolute;top:.25rem;right:.35rem}.login-prompt-dismiss:hover{color:var(--primary-color);background:0 0}.signup-container{justify-content:center;align-items:center;min-height:100vh;padding:1.5rem 1rem;display:flex}.signup-card{width:100%;max-width:480px}.signup-title{text-align:center}.signup-subtitle{text-align:center;color:#94a3b8;margin-bottom:1.25rem;font-size:.9rem}.signup-label{margin-bottom:.5rem;display:block}.signup-error{color:var(--danger-color);text-align:center;margin-bottom:1rem}.signup-success{color:var(--success-color);text-align:center;margin-bottom:1rem}.signup-hint{color:#94a3b8;margin-bottom:1rem;font-size:.85rem}.signup-button{width:100%}.signup-link-button{width:100%;margin-top:1rem}.signup-footer{text-align:center;margin-top:1.25rem}.signup-role-fieldset{border:1px solid var(--border-color);border-radius:.375rem;margin-bottom:1rem;padding:.75rem 1rem}.signup-role-option{cursor:pointer;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.signup-role-option input{width:auto;margin-bottom:0}.signup-role-fieldset legend{margin-bottom:.5rem}.home-page{flex-direction:column;min-height:calc(100vh - 8rem);display:flex;position:relative}.home-user-badge{text-align:right;flex-direction:column;align-items:flex-end;gap:.15rem;display:flex;position:absolute;top:0;right:0}.home-user-name{color:var(--text-color);font-size:.95rem;font-weight:600}.home-user-id{color:#94a3b8;font-size:.8rem}.home-main{flex:1;width:100%;max-width:42rem;margin:0 auto;padding-top:2.5rem}.home-today-heading{background:linear-gradient(90deg,#60a5fa,#a78bfa);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:.35rem;font-size:1.75rem;font-weight:700}.home-today-subtitle{color:#94a3b8;margin-bottom:1.5rem;font-size:1rem}.home-loading{color:#94a3b8}.home-empty-state{text-align:center}.home-empty-state p{color:#cbd5e1;margin-bottom:.75rem}.home-calendar-link{font-weight:500}.home-workout-list{flex-direction:column;gap:1rem;list-style:none;display:flex}.home-workout-card{color:inherit;text-decoration:none;transition:border-color .2s,transform .15s;display:block}.home-workout-card:hover{border-color:var(--primary-color);color:inherit;transform:translateY(-1px)}.home-workout-card.pending{border-left:4px solid var(--primary-color)}.home-workout-card.completed{border-left:4px solid var(--success-color);opacity:.9}.home-workout-card-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.5rem;display:flex}.home-workout-name{margin:0;font-size:1.25rem;font-weight:600}.home-workout-status{text-transform:uppercase;letter-spacing:.04em;color:var(--success-color);white-space:nowrap;font-size:.75rem;font-weight:600}.home-workout-meta{color:#94a3b8;margin:0;font-size:.875rem}.home-quote{text-align:center;margin-top:2.5rem;padding-top:1.5rem}.home-quote blockquote{color:#64748b;max-width:32rem;margin:0 auto;font-size:.9rem;font-style:italic;line-height:1.5}.calendar-controls{background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:.5rem;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding:1rem;display:flex}.calendar-nav-btn{color:var(--text-color);border:1px solid var(--border-color);background-color:#0000}.calendar-nav-btn:hover{background-color:var(--border-color)}.calendar-toggle-btn{color:var(--primary-color);border:1px solid var(--primary-color);background-color:#0000;margin-left:.5rem}.calendar-toggle-btn.active{background-color:var(--primary-color);color:#fff}.calendar-grid{background-color:var(--border-color);border:1px solid var(--border-color);border-radius:.5rem;grid-template-columns:repeat(7,1fr);gap:1px;display:grid;overflow:hidden}.calendar-day-header{background-color:var(--card-bg);text-align:center;color:#94a3b8;padding:.75rem;font-size:.9rem;font-weight:600}.calendar-cell{background-color:var(--card-bg);flex-direction:column;min-height:120px;padding:.5rem;display:flex}.calendar-cell.other-month{color:#64748b;background-color:#1e293b80}.calendar-date-label{margin-bottom:.5rem;font-size:.9rem;font-weight:500}.calendar-cell.today .calendar-date-label{color:var(--primary-color);font-weight:700}.calendar-workout-list{flex-direction:column;flex:1;gap:.25rem;padding:0;list-style:none;display:flex}.calendar-workout-item{border-radius:.25rem;justify-content:space-between;align-items:center;padding:.25rem .5rem;font-size:.8rem;text-decoration:none;display:flex}.calendar-workout-item.completed{border:1px solid var(--success-color);color:var(--text-color);background-color:#10b9811a}.calendar-workout-item.pending{border:1px solid var(--primary-color);color:var(--text-color);background-color:#3b82f61a}.calendar-workout-item:hover{filter:brightness(1.2)}.calendar-notes{color:#94a3b8;text-overflow:ellipsis;white-space:nowrap;margin-top:.5rem;font-size:.75rem;font-style:italic;overflow:hidden}.calendar-date-header-row{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.add-workout-btn{color:var(--primary-color);cursor:pointer;opacity:0;background:0 0;border:none;padding:0 4px;font-size:1.2rem;line-height:1;transition:opacity .2s}.group-hover-target:hover .add-workout-btn{opacity:1}.add-workout-btn:hover{filter:brightness(1.2)}.calendar-workout-row{position:relative}.calendar-workout-row .unschedule-btn{color:#ef4444;cursor:pointer;opacity:0;background:0 0;border:none;padding:0 4px;font-size:1rem;line-height:1;transition:opacity .2s;position:absolute;top:0;right:0}.calendar-workout-row:hover .unschedule-btn{opacity:1}.calendar-workout-row .unschedule-btn:hover{filter:brightness(1.3)}.modal-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--card-bg);border-radius:.5rem;width:90%;max-width:400px;padding:2rem}.modal-actions{justify-content:flex-end;gap:1rem;margin-top:1.5rem;display:flex}.workout-select{background:var(--bg-color,#0f172a);width:100%;color:var(--text-color,#f8fafc);border:1px solid var(--border-color,#334155);border-radius:.25rem;margin-top:.5rem;padding:.5rem}.workout-modal-overlay{z-index:2000;background:#000c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.workout-modal-content{background:var(--card-bg,#1e293b);border:1px solid var(--border-color,#334155);border-radius:.75rem;flex-direction:column;width:100%;max-width:600px;max-height:90vh;display:flex;box-shadow:0 10px 25px -5px #00000080}.workout-modal-header{border-bottom:1px solid var(--border-color,#334155);justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.workout-modal-header h2{color:var(--primary-color);margin:0}.close-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;font-size:1.5rem}.close-btn:hover{color:#fff}.workout-modal-form{padding:1.5rem;overflow-y:auto}.form-group{flex-direction:column;margin-bottom:1rem;display:flex}.form-group label{color:#cbd5e1;margin-bottom:.5rem;font-weight:500}.form-group input,.form-group select,.form-group textarea{background:var(--bg-color,#0f172a);border:1px solid var(--border-color,#334155);color:#fff;border-radius:.25rem;padding:.75rem}hr{border-color:var(--border-color,#334155);margin:1.5rem 0}.exercise-list{margin-bottom:1.5rem}.exercise-list-item{background:#ffffff0d;border-radius:.25rem;flex-direction:column;gap:.75rem;margin-bottom:.5rem;padding:.75rem;display:flex}.exercise-list-item-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.exercise-row-actions{flex-shrink:0;gap:.5rem;display:flex}.mini-btn{border:1px solid var(--border-color,#334155);color:#e2e8f0;cursor:pointer;background:#ffffff14;border-radius:.25rem;padding:.35rem .6rem}.mini-btn:disabled{opacity:.5;cursor:not-allowed}.ex-helper-text{color:#94a3b8;margin:.35rem 0 0;font-size:.8rem}.remove-btn{color:#ef4444;cursor:pointer;background:0 0;border:none;font-size:.8rem}.add-exercise-section{border:1px dashed var(--border-color,#334155);background:#0003;border-radius:.5rem;padding:1rem}.add-exercise-section h4{margin-top:0;margin-bottom:1rem}.exercise-inputs,.new-exercise-inputs{flex-direction:column;gap:.75rem;display:flex}.exercise-inputs select,.new-exercise-inputs input,.new-exercise-inputs select{background:var(--bg-color,#0f172a);border:1px solid var(--border-color,#334155);color:#fff;border-radius:.25rem;padding:.75rem}.exercise-targets{grid-template-columns:1fr 1fr 1fr auto;gap:.5rem;display:grid}.exercise-targets input{background:var(--bg-color,#0f172a);border:1px solid var(--border-color,#334155);color:#fff;border-radius:.25rem;padding:.75rem}.exercise-targets-editable{grid-template-columns:repeat(3,minmax(0,1fr))}.link-btn{color:var(--primary-color);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-size:.9rem;text-decoration:underline}.workout-modal-actions{border-top:1px solid var(--border-color,#334155);justify-content:flex-end;gap:1rem;margin-top:2rem;padding-top:1.5rem;display:flex}.modal-error{color:#fca5a5;margin:0 0 1rem}.workouts-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;display:grid}.workout-link{color:inherit;text-decoration:none}.workout-card-body{display:block}.workout-card{flex-direction:column;gap:1rem;transition:transform .2s;display:flex}.workout-card:hover{transform:translateY(-2px)}.workout-title{margin-bottom:.5rem}.workout-desc{color:#94a3b8;font-size:.9rem}.workout-card-actions{justify-content:flex-end;gap:.75rem;display:flex}.workout-card-link-button{text-decoration:none}.back-link{margin-bottom:1rem;font-size:.9rem;display:inline-block}.detail-card{margin-bottom:2rem}.detail-title{margin-bottom:.5rem}.detail-desc{color:#94a3b8;margin-bottom:1rem}.detail-date{color:var(--primary-color);margin-top:.5rem;font-weight:700}.detail-header-actions{align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.start-workout-btn{height:fit-content;padding:1rem 2rem;font-size:1.1rem}.exercises-header{margin-bottom:1rem}.exercises-container{flex-direction:column;gap:1.5rem;display:flex}.exercise-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:baseline;margin-bottom:1rem;padding-bottom:.5rem;display:flex}.exercise-title{margin:0}.exercise-target{color:#94a3b8;font-size:.9rem}.exercise-note{color:#cbd5e1;margin-bottom:1rem;font-size:.9rem}.logs-header{text-transform:uppercase;letter-spacing:.05em;color:#64748b;margin-bottom:.5rem;font-size:.85rem}.logs-list{padding:0;list-style:none}.log-item{background-color:#0003;border-radius:.25rem;gap:1rem;margin-bottom:.25rem;padding:.5rem;display:flex}.log-index{color:#94a3b8;width:20px}.no-logs{color:#64748b;font-size:.9rem}.active-mode-container{flex-direction:column;gap:1.5rem;display:flex}.active-header{background-color:var(--card-bg,#1e293b);border:1px solid var(--border-color,#334155);z-index:100;border-radius:.5rem;justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex;position:sticky;top:0;box-shadow:0 4px 6px -1px #0000001a}.active-timers{align-items:center;gap:2rem;display:flex}.main-timer,.rest-timer{align-items:center;gap:.75rem;display:flex}.timer-label{color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;font-size:.9rem}.timer-value{font-family:monospace;font-size:1.5rem;font-weight:700}.text-accent{color:#f59e0b}.timer-btn{border:1px solid var(--border-color);color:var(--text-color);cursor:pointer;background:0 0;border-radius:.25rem;padding:.25rem .5rem;font-size:.8rem}.timer-btn:hover{background:var(--border-color)}.active-actions{gap:1rem;display:flex}.finish-btn{background-color:var(--success-color,#10b981)}.finish-btn:hover{filter:brightness(1.1)}.active-exercises{flex-direction:column;gap:1.5rem;display:flex}.active-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:.5rem;padding:1.5rem}.active-card h3{color:var(--primary-color);margin-top:0;margin-bottom:1rem}.sets-container{flex-direction:column;gap:.5rem;display:flex}.sets-header{color:#94a3b8;text-transform:uppercase;border-bottom:1px solid var(--border-color);grid-template-columns:50px 100px 120px 100px;gap:1rem;margin-bottom:.5rem;padding-bottom:.5rem;font-size:.85rem;display:grid}.set-row{grid-template-columns:50px 100px 120px 100px;align-items:center;gap:1rem;padding:.5rem 0;display:grid}.set-num{color:#64748b;text-align:center;font-weight:700}.set-row input{background:var(--bg-color,#0f172a);border:1px solid var(--border-color,#334155);color:#fff;border-radius:.25rem;width:100%;padding:.5rem}.rest-btn{color:#f59e0b;cursor:pointer;background:#f59e0b1a;border:1px solid #f59e0b;border-radius:.25rem;padding:.5rem;font-size:.8rem}.rest-btn:hover{background:#f59e0b33}
