*{box-sizing:border-box}body{margin:0;background:#f9fafb;color:#111827;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;letter-spacing:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{max-width:1152px;margin:0 auto;padding:32px}.app-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:32px}.app-header h1{margin:0;color:#111827;font-size:30px;font-weight:700;line-height:1.1}.app-header p{margin:4px 0 0;color:#6b7280;font-size:16px;font-weight:400}.header-actions{display:grid;justify-items:end;gap:12px}.date-switcher{display:flex;align-items:center;gap:12px;padding:8px 12px;border:1px solid #f3f4f6;border-radius:10px;background:#fff;box-shadow:0 1px 2px #10182808}.date-switcher button{border:0;background:transparent;color:#6b7280}.date-switcher button:last-child{min-height:30px;padding:0 12px;border-left:1px solid #f3f4f6;color:#6b7280;font-size:12px;font-weight:600}.date-switcher button:disabled{color:#c0c7d2;cursor:not-allowed}.date-switcher .invisible{visibility:hidden}.date-switcher div{display:grid;min-width:130px;text-align:center}.date-switcher strong{color:#111827;font-size:13px}.date-switcher span{color:#6b7280;font-size:12px}.tabs{display:flex;align-items:center;gap:8px;margin-top:18px;margin-bottom:0}.tab-button,.primary-button,.secondary-button,.icon-text-button,.icon-button,.link-button,.expand-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;background:transparent;color:#667085}.tab-button{height:40px;padding:0 14px;border-radius:7px;font-size:16px;font-weight:500}.tab-button.active,.primary-button{background:#5538ee;color:#fff}.primary-button,.secondary-button,.icon-text-button{min-height:38px;padding:8px 13px;border-radius:7px;font-weight:600}.primary-button:disabled{opacity:.45;cursor:not-allowed}.secondary-button,.icon-text-button{border:1px solid #dde2ea;background:#fff;color:#5f6878}.link-button{margin-top:14px;color:#5538ee;font-weight:500}.icon-button{width:24px;height:24px;border-radius:4px;color:#9ca3af}.icon-button:hover{background:#f9fafb;color:#374151}.icon-button.danger:hover{background:#fef2f2;color:#dc2626}.panel,.auth-card{background:#fff;border:1px solid #f3f4f6;border-radius:8px;box-shadow:0 1px 2px #10182808}.panel{padding:24px}.auth-card{max-width:430px;padding:28px}.auth-card h2{margin:0 0 18px}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.panel-header h2{display:flex;align-items:center;gap:9px;margin:0;color:#1f2937;font-size:20px;font-weight:600}.stack{display:grid;gap:24px}.category-grid,.routine-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.routine-grid{grid-template-columns:minmax(0,1fr) minmax(260px,.5fr) minmax(0,1fr)}.routine-stack{display:grid;gap:24px}.routine-top-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:24px}.routine-bottom-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}.routine-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.routine-card-header.compact{align-items:center;margin-bottom:14px}.routine-card-header h2,.gym-panel h2,.sleep-log h2,.routine-bottom-grid h2{display:flex;align-items:center;gap:8px;margin:0;color:#374151;font-size:18px;font-weight:600}.routine-card-header p{margin:4px 0 0;color:#6b7280}.routine-card-header span{color:#9ca3af;font-size:12px}.weight-input{min-width:260px}.weight-input div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.chart-card{min-height:300px;border:1px solid #f3f4f6;border-radius:8px;padding:16px}.chart-card h3{margin:0 0 10px;color:#374151;font-size:16px;font-weight:600}.chart-empty,.mini-chart-empty,.sleep-empty{display:flex;align-items:center;justify-content:center;min-height:220px;color:#9ca3af}.chart-grid-line{stroke:#f3f4f6;stroke-dasharray:4 4}.chart-axis-text{fill:#8b95a5;font-size:11px}.dose-axis-text{fill:#f43f5e;font-size:11px}.mini-axis-text{fill:#9ca3af;font-size:10px}.weight-line{fill:none;stroke:#6366f1;stroke-width:3;stroke-linecap:round}.weight-dot{fill:#6366f1}.dose-dot{fill:#f43f5e}.dose-line{fill:none;stroke:#fca5a5;stroke-width:1.5;stroke-linecap:round}.ozempic-card{display:flex;flex-direction:column;justify-content:space-between;gap:14px}.rate-box{display:grid;gap:10px;padding:16px;border-radius:8px;background:#f9fafb;text-align:center}.rate-box span{color:#6b7280;font-size:13px}.rate-box strong{color:#1f2937;font-size:30px;line-height:1}.rate-box small{color:#6b7280;font-size:13px;font-weight:400}.rate-box input{accent-color:#f43f5e}.mini-dose-chart{display:grid;gap:4px}.mini-dose-chart span{color:#9ca3af;font-size:12px;font-weight:600}.status-box{display:flex;align-items:flex-start;gap:8px;padding:12px;border-radius:8px;font-size:13px}.status-box.neutral{background:#f9fafb;color:#4b5563}.status-box.warning{background:#fffbeb;color:#92400e}.status-box.action{background:#fff1f2;color:#9f1239}.status-box.success{background:#ecfdf5;color:#047857}.dose-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:38px;border:2px solid #fecdd3;border-radius:8px;background:#fff;color:#be123c;font-weight:600}.dose-form{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px}.gym-panel h2{margin-bottom:18px}.gym-grid{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1fr);gap:32px;align-items:center}.gym-toggle-wrap{display:grid;justify-items:center;gap:14px}.gym-toggle{width:200px;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:4px solid #e5e7eb;border-radius:50%;background:#fff;color:#9ca3af}.gym-toggle.logged{border-color:#6366f1;background:#eef2ff;color:#4338ca}.gym-toggle strong{font-size:18px}.gym-toggle span,.gym-toggle-wrap p{margin:0;color:#9ca3af;font-size:12px}.weekly-chart{min-height:190px;display:grid;gap:12px}.weekly-chart strong{color:#4b5563;font-size:13px}.bar-chart{min-height:190px;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(34px,1fr);align-items:end;gap:10px;padding-top:10px}.bar-column{display:grid;grid-template-rows:1fr auto;gap:8px;height:190px}.bar-column div{display:flex;align-items:flex-end;border-bottom:1px solid #f3f4f6}.bar-column span{width:100%;border-radius:5px 5px 0 0;background:#818cf8}.bar-column small{color:#9ca3af;font-size:10px;text-align:center}.sleep-empty{flex-direction:column;gap:8px}.sleep-log{display:grid;gap:14px}.rating-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.rating-group{display:grid;gap:8px}.rating-group label{display:flex;align-items:center;gap:5px;text-transform:uppercase;letter-spacing:0}.rating-group div{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.rating-group button{min-height:34px;border:1px solid #e5e7eb;border-radius:8px;background:#f9fafb;color:#4b5563}.rating-group button.active{border-color:#5538ee;background:#5538ee;color:#fff;box-shadow:0 2px 8px #5538ee40}.notice,.error,.empty-state{margin-bottom:14px;padding:12px 14px;border-radius:7px}.notice{background:#eef4ff;color:#344b86}.error{background:#fff0f1;color:#be123c}.empty-state,.empty-list,.subtle{color:#9aa3b2}.task-list{display:grid;gap:8px}.task-row{border:1px solid #f3f4f6;border-radius:8px;background:#fff}.task-row.working{border-color:#e0e7ff;background:#eef2ff66}.task-row.completed{opacity:.6}.task-main{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:start;gap:8px;padding:8px 12px}.rank{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#eef2ff;color:#5538ee;font-size:14px;font-weight:600}.complete-button{width:22px;height:22px;padding:0;border:0;background:transparent;color:#9ca3af}.task-text{min-width:0}.task-title{overflow-wrap:anywhere;color:#374151;font-size:14px;font-weight:400;line-height:1.35}.badge-line,.meta-line,.row-actions,.editor-actions,.attachment-header{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.badge-line{margin-top:4px}.workout-notes{margin-top:4px;color:#6b7280;font-size:12px;line-height:1.4}.workout-result-fields{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}.workout-result-fields label{display:inline-flex;grid-template-columns:none;align-items:center;gap:6px;min-height:36px;border-radius:7px;background:#f5f3ff;color:#6d28d9;padding:6px 8px;font-size:11px;font-weight:500}.workout-result-fields input{width:64px;height:28px;border-color:#ddd6fe;background:#fff;padding:4px 7px}.workout-result-fields label:nth-child(2) input{width:112px}.workout-result-fields.saving{opacity:.65}.badge,.count-badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;background:#f3f4f6;color:#4b5563;padding:2px 8px;font-size:11px;line-height:1;font-weight:400}.badge.blue{background:#eff6ff;color:#1d4ed8}.badge.emerald{background:#ecfdf5;color:#047857}.badge.violet{background:#f5f3ff;color:#6d28d9}.badge.amber{background:#fffbeb;color:#b45309}.badge.red{background:#fef2f2;color:#b91c1c}.badge.purple{background:#eef2ff;color:#4338ca}.row-actions{justify-content:flex-end;flex-wrap:nowrap}.task-editor{display:grid;gap:8px;padding:12px;border-top:1px solid #f3f4f6;background:#fff}.task-editor.compact{border-top:0;padding:0;background:#fff}label{display:grid;gap:6px;color:#6b7280;font-size:11px;font-weight:600}input,select,textarea{width:100%;border:1px solid #e5e7eb;border-radius:7px;background:#fff;color:#374151;padding:6px 8px;outline:0}input:focus,select:focus,textarea:focus{border-color:#a5b4fc;box-shadow:0 0 0 1px #818cf8}.title-input{font-size:14px;font-weight:400}.field-grid,.project-edit-grid{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:12px}.notes-attachments{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}textarea{min-height:130px;resize:vertical}.journal-box{min-height:220px;margin-bottom:12px}.drop-zone{min-height:130px;display:grid;align-content:start;gap:8px;border:1px dashed #e5e7eb;border-radius:8px;background:#f9fafb;padding:12px}.drop-zone.dragging{border-color:#a5b4fc;background:#eef2ff}.file-button{position:relative;overflow:hidden}.file-button input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0}.attachment-row,.selected-blocker,.exercise-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;border-radius:7px;background:#fff;padding:6px 8px;font-size:12px}.attachment-row a,.attachment-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-row button,.selected-blocker button,.exercise-row button{border:0;background:transparent;color:#9ca3af}.blocker-control,.selected-blockers{display:grid;gap:8px}.selected-blocker{grid-template-columns:minmax(0,1fr) auto;background:#f3f4f6;color:#4b5563;font-size:12px;overflow-wrap:anywhere}.scheduled-block{margin-top:18px;padding-top:18px;border-top:1px solid #f3f4f6}.scheduled-block h3{display:flex;align-items:center;gap:8px;color:#9ca3af;font-size:12px;text-transform:uppercase}.project-list{display:grid;gap:12px}.project-card{border:1px solid #f3f4f6;border-radius:8px;padding:12px}.project-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:start;gap:10px}.project-title h3{margin:3px 0 5px;color:#374151;font-size:16px;font-weight:600}.meta-line{color:#9ca3af;font-size:13px}.done-text{color:#9ca3af;text-decoration:line-through}.add-row{display:grid;gap:10px;margin-bottom:12px}.add-row.two{grid-template-columns:minmax(0,1fr) auto}.exercise-list,.history-list{display:grid;gap:8px;margin:14px 0}@media(max-width:1100px){.app-shell{padding:32px 16px}.category-grid,.routine-grid,.routine-top-grid,.routine-bottom-grid,.gym-grid,.notes-attachments{grid-template-columns:1fr}.field-grid,.project-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.app-header,.routine-card-header,.task-main,.project-header,.add-row.two,.dose-form,.rating-grid{grid-template-columns:1fr;display:grid}.header-actions,.routine-card-header,.date-switcher{justify-items:start;width:100%}.tabs{overflow-x:auto}.field-grid,.project-edit-grid{grid-template-columns:1fr}.row-actions{justify-content:flex-start}}
