:root{--bg: #0a0a0f;--surface: #111118;--card: #16161f;--card2: #1c1c28;--border: #2a2a3a;--accent: #7c5cfc;--accent2: #fc5c7c;--accent3: #5cfcb4;--accent4: #fca85c;--text: #f0eeff;--muted: #7a7a9a;--dev: #5c9dfc;--dj: #fc5c7c;--social: #5cfcb4;--artdir: #fca85c;--font-display: "Space Grotesk", sans-serif;--font-body: "Inter", sans-serif;--r: 14px;--r-sm: 8px;--sidebar-w: 240px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{height:100%}body{font-family:var(--font-body);background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}button{cursor:pointer;font-family:var(--font-body)}@keyframes slideUp{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.anim-up{animation:slideUp .3s cubic-bezier(.4,0,.2,1) both}.anim-fade{animation:fadeIn .25s ease both}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}.btn{display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border-radius:var(--r-sm);border:none;font-size:14px;font-weight:500;transition:all .2s;font-family:var(--font-body);white-space:nowrap}.btn--primary{background:var(--accent);color:#fff}.btn--primary:hover{opacity:.85;transform:translateY(-1px);box-shadow:0 4px 16px #7c5cfc4d}.btn--ghost{background:var(--card2);color:var(--text);border:1px solid var(--border)}.btn--ghost:hover{background:var(--border)}.btn--danger{background:#fc5c7c26;color:var(--dj);border:1px solid rgba(252,92,124,.3)}.btn--danger:hover{background:#fc5c7c40}.btn--success{background:#5cfcb426;color:var(--accent3);border:1px solid rgba(92,252,180,.3)}.btn--success:hover{background:#5cfcb440}.btn--sm{padding:6px 12px;font-size:12px}.btn--icon{padding:8px;border-radius:var(--r-sm);background:var(--card2);color:var(--muted);border:1px solid var(--border)}.btn--icon:hover{color:var(--text)}.form-group{margin-bottom:18px}.label{display:block;font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.8px;margin-bottom:7px}.input,.select,.textarea{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-family:var(--font-body);font-size:14px;padding:10px 14px;transition:border-color .2s;outline:none}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent)}.input option,.select option,.textarea option{background:var(--card)}.textarea{resize:vertical;min-height:80px}.form-row{display:flex;gap:12px}.form-row .form-group{flex:1}@media (max-width: 500px){.form-row{flex-direction:column}}.tag{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;padding:3px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:.5px}.tag--dev{background:#5c9dfc26;color:var(--dev)}.tag--dj{background:#fc5c7c26;color:var(--dj)}.tag--social{background:#5cfcb426;color:var(--social)}.tag--artdir{background:#fca85c26;color:var(--artdir)}.tag--high{background:#fc5c7c1f;color:var(--dj)}.tag--med{background:#fca85c1f;color:var(--accent4)}.tag--low{background:#5cfcb41f;color:var(--accent3)}.tag--pending{background:#fca85c26;color:var(--accent4)}.tag--accepted{background:#5cfcb426;color:var(--accent3)}.tag--rejected{background:#fc5c7c26;color:var(--dj)}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;gap:10px;color:var(--muted)}.empty__icon{font-size:40px}.empty__text{font-size:14px}.section-title{font-family:var(--font-display);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--muted);padding-bottom:10px;border-bottom:1px solid var(--border);margin-bottom:16px}.overlay{position:fixed;inset:0;background:#000000b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:300;display:flex;align-items:center;justify-content:center;padding:16px;animation:fadeIn .2s ease}.modal{background:var(--card);border:1px solid var(--border);border-radius:var(--r);width:100%;max-width:520px;max-height:90vh;overflow-y:auto;animation:slideUp .3s cubic-bezier(.4,0,.2,1)}.modal__head{padding:20px 24px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.modal__title{font-family:var(--font-display);font-size:16px;font-weight:700}.modal__body{padding:24px}.modal__foot{padding:16px 24px;border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end}.toast-bar{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom,0px));right:calc(24px + env(safe-area-inset-right,0px));z-index:999;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{background:var(--card);border:1px solid var(--border);border-radius:var(--r-sm);padding:12px 16px;font-size:14px;min-width:260px;max-width:360px;animation:slideInRight .3s ease;box-shadow:0 4px 24px #0006;pointer-events:all}.toast--success{border-left:3px solid var(--accent3)}.toast--error{border-left:3px solid var(--dj)}.toast--info{border-left:3px solid var(--accent)}.progress-bar{height:4px;background:var(--border);border-radius:2px;overflow:hidden}.progress-bar__fill{height:100%;border-radius:2px;background:linear-gradient(90deg,var(--accent),var(--accent2));transition:width .5s ease}.tabs{display:flex;gap:4px;background:var(--card);border-radius:var(--r-sm);padding:4px;border:1px solid var(--border);margin-bottom:24px}.tab{flex:1;padding:8px;border-radius:6px;border:none;background:none;color:var(--muted);font-size:13px;font-family:var(--font-body);font-weight:500;transition:all .2s;text-align:center}.tab.active{background:var(--accent);color:#fff}.cat-selector{display:flex;gap:8px;flex-wrap:wrap}.cat-btn{padding:6px 14px;border-radius:20px;border:2px solid transparent;font-size:12px;font-weight:600;transition:all .2s;font-family:var(--font-body);background:var(--card2);color:var(--muted)}.cat-btn.dev.active{border-color:var(--dev);color:var(--dev);background:#5c9dfc1f}.cat-btn.dj.active{border-color:var(--dj);color:var(--dj);background:#fc5c7c1f}.cat-btn.social.active{border-color:var(--social);color:var(--social);background:#5cfcb41f}.cat-btn.artdir.active{border-color:var(--artdir);color:var(--artdir);background:#fca85c1f}.prio-selector{display:flex;gap:8px}.prio-btn{flex:1;padding:8px;border-radius:var(--r-sm);border:2px solid var(--border);background:var(--bg);color:var(--muted);font-size:12px;font-weight:600;font-family:var(--font-body);transition:all .2s;text-align:center}.prio-btn.low.active{border-color:var(--accent3);color:var(--accent3);background:#5cfcb41a}.prio-btn.med.active{border-color:var(--accent4);color:var(--accent4);background:#fca85c1a}.prio-btn.high.active{border-color:var(--dj);color:var(--dj);background:#fc5c7c1a}.filter-bar{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap;align-items:center}.filter-bar .search{flex:1;min-width:160px}.filter-chip{padding:6px 14px;border-radius:20px;border:1px solid var(--border);background:var(--card);color:var(--muted);font-size:12px;font-family:var(--font-body);font-weight:500;transition:all .2s}.filter-chip.active,.filter-chip:hover{background:var(--accent);border-color:var(--accent);color:#fff}.header-actions{display:flex;gap:8px;flex-wrap:wrap}.fin-card--piggy{border-color:#fca85c47;box-shadow:0 0 0 1px #fca85c14 inset}.section-head--piggy{margin-top:20px}.modal--piggy{max-width:720px}.modal__sub{color:var(--muted);font-size:12px;margin-top:4px}.piggy-summary{padding:18px 20px;border:1px solid rgba(252,168,92,.24);border-radius:var(--r);background:linear-gradient(135deg,#fca85c1f,#7c5cfc14);margin-bottom:20px}.piggy-summary__label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}.piggy-summary__amount{font-family:var(--font-display);font-size:34px;font-weight:800;color:var(--accent4);margin-top:8px}.piggy-summary__amount--negative{color:var(--dj)}.piggy-summary__meta{color:var(--muted);font-size:12px;margin-top:8px}.piggy-list{border:1px solid var(--border);border-radius:var(--r);overflow:hidden}.piggy-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid var(--border)}.piggy-row:last-child{border-bottom:none}.piggy-row__info{flex:1;min-width:0}.piggy-row__topline{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.piggy-row__date{color:var(--muted);font-size:11px}.piggy-row__reason{margin-top:6px;font-size:13px;color:var(--text);line-height:1.45}.piggy-chip{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.35px;color:var(--accent3);background:#5cfcb424;border:1px solid rgba(92,252,180,.24)}.piggy-chip--subtract{color:var(--dj);background:#fc5c7c24;border-color:#fc5c7c3d}.empty--compact{padding:32px 20px}@media (max-width: 768px){.hide-mobile{display:none!important}}@media (max-width: 640px){.piggy-row{align-items:flex-start}}@keyframes spin{to{transform:rotate(360deg)}}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:56px 24px;gap:14px;color:var(--muted);font-size:14px}.spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.page-title{line-height:1.2}@media (max-width: 768px){.page-title{font-size:20px!important;line-height:1.2}}.routine-page .page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.routine-page .page-title{font-size:28px;font-weight:800}.routine-page .page-sub{color:var(--muted);font-size:14px;margin-top:4px;max-width:720px;line-height:1.6}.routine-page .header-actions{display:flex;gap:10px;flex-wrap:wrap}.routine-page .hero-card{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:24px;padding:24px;background:radial-gradient(circle at top right,rgba(124,92,252,.25),transparent 35%),linear-gradient(180deg,#ffffff05,#fff0),var(--card);margin-bottom:22px}.routine-page .eyebrow{font-size:11px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--accent3);margin-bottom:10px}.routine-page .hero-title{font-family:var(--font-display);font-size:30px;line-height:1.15;margin-bottom:10px}.routine-page .hero-text{color:var(--muted);line-height:1.7;max-width:700px}.routine-page .hero-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.routine-page .hero-tag{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;background:#7c5cfc1f;border:1px solid rgba(124,92,252,.22);font-size:12px;color:var(--text)}.routine-page .hero-stats{display:grid;gap:12px;align-content:start}.routine-page .hero-stat{padding:14px;border-radius:12px;background:#111118d1;border:1px solid var(--border)}.routine-page .hero-stat__label{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-bottom:6px}.routine-page .hero-stat__value{font-size:18px;font-weight:700;line-height:1.3}.routine-page .quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:28px}.routine-page .quick-card{padding:18px;border-radius:var(--r);border:1px solid var(--border);background:var(--card);min-height:150px}.routine-page .quick-card--action{width:100%;text-align:left;color:inherit;cursor:pointer}.routine-page .quick-card--accent{background:linear-gradient(180deg,#7c5cfc24,#7c5cfc08),var(--card)}.routine-page .quick-card--soft{background:linear-gradient(180deg,#fc5c7c1f,#fc5c7c08),var(--card)}.routine-page .quick-card--mint{background:linear-gradient(180deg,#5cfcb41f,#5cfcb408),var(--card)}.routine-page .quick-card--sun{background:linear-gradient(180deg,#fca85c1f,#fca85c08),var(--card)}.routine-page .quick-label{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-bottom:8px}.routine-page .quick-title{font-family:var(--font-display);font-size:20px;line-height:1.2}.routine-page .quick-text{font-size:13px;color:var(--text);margin-top:10px;line-height:1.6}.routine-page .quick-meta{font-size:12px;color:var(--muted);margin-top:14px;line-height:1.5}.routine-page .quick-link{margin-top:14px;font-size:12px;font-weight:700;color:var(--text)}.routine-page .routine-error-card{padding:28px 24px;text-align:center}.routine-page .routine-sync-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;margin-bottom:18px;background:linear-gradient(180deg,#fca85c1f,#fca85c0a),var(--card)}.routine-page .routine-sync-card__title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--accent4)}.routine-page .routine-sync-card__text{flex:1;color:var(--muted);line-height:1.6;font-size:13px}.routine-page .routine-sync-card__actions{display:flex;gap:10px;flex-wrap:wrap}.routine-page .routine-error-card__icon{font-size:34px;margin-bottom:10px}.routine-page .routine-error-card__title{font-family:var(--font-display);font-size:22px}.routine-page .routine-error-card__text{max-width:620px;margin:10px auto 0;color:var(--muted);line-height:1.7}.routine-page .routine-error-card__actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:18px}.routine-page .section-block+.section-block{margin-top:28px}.routine-page .section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px}.routine-page .section-note{color:var(--muted);font-size:12px;line-height:1.5}.routine-page .schedule-card{padding:8px 20px}.routine-page .schedule-row{display:grid;grid-template-columns:130px minmax(0,1fr);gap:18px;padding:16px 0;border-bottom:1px solid var(--border)}.routine-page .schedule-row:last-child{border-bottom:none}.routine-page .schedule-row.is-today{background:linear-gradient(90deg,rgba(124,92,252,.08),transparent);margin:0 -20px;padding-left:20px;padding-right:20px}.routine-page .schedule-day__name{font-size:14px;font-weight:700}.routine-page .schedule-day__badge{display:inline-flex;align-items:center;margin-top:8px;padding:4px 8px;border-radius:999px;background:#7c5cfc26;color:var(--accent);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px}.routine-page .schedule-main__title{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:15px;font-weight:700}.routine-page .schedule-main__text{color:var(--muted);margin-top:6px;line-height:1.6;font-size:13px}.routine-page .type-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase}.routine-page .type-pill--workout{background:#7c5cfc1f;color:var(--accent)}.routine-page .type-pill--walk{background:#5cfcb41f;color:var(--accent3)}.routine-page .type-pill--free{background:#fca85c1f;color:var(--accent4)}.routine-page .type-pill--rest{background:#7a7a9a1f;color:var(--muted)}.routine-page .workout-grid,.routine-page .meal-grid,.routine-page .lifestyle-grid,.routine-page .progress-grid{display:grid;gap:18px}.routine-page .workout-grid,.routine-page .progress-grid,.routine-page .meal-grid,.routine-page .lifestyle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.routine-page .workout-card,.routine-page .meal-card,.routine-page .info-card,.routine-page .progress-card{padding:20px}.routine-page .workout-card--today{border-color:#7c5cfc73;box-shadow:0 0 0 1px #7c5cfc2e}.routine-page .workout-card__head,.routine-page .meal-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.routine-page .workout-card__eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-bottom:6px}.routine-page .workout-card__title,.routine-page .meal-card__title,.routine-page .info-card__title,.routine-page .progress-card__title{font-family:var(--font-display);font-size:22px;line-height:1.2}.routine-page .workout-chip,.routine-page .meal-card__time{padding:6px 10px;border-radius:999px;background:#ffffff0a;border:1px solid var(--border);font-size:11px;color:var(--muted);white-space:nowrap}.routine-page .workout-card__sub,.routine-page .meal-card__intro{color:var(--muted);font-size:13px;margin-top:10px;line-height:1.6}.routine-page .today-focus-banner{margin-top:14px;padding:12px 14px;border-radius:12px;background:#7c5cfc1a;border:1px solid rgba(124,92,252,.2)}.routine-page .today-focus-banner__title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--accent)}.routine-page .today-focus-banner__text{margin-top:4px;color:var(--text);font-size:13px}.routine-page .exercise-list,.routine-page .meal-list,.routine-page .stack-list,.routine-page .milestone-list,.routine-page .timeline-list{margin-top:16px}.routine-page .exercise-row,.routine-page .meal-item,.routine-page .stack-item,.routine-page .milestone-row,.routine-page .timeline-phase{border-top:1px solid var(--border);padding-top:14px;margin-top:14px}.routine-page .exercise-row:first-child,.routine-page .meal-item:first-child,.routine-page .stack-item:first-child,.routine-page .milestone-row:first-child,.routine-page .timeline-phase:first-child{border-top:none;padding-top:0;margin-top:0}.routine-page .exercise-row__name{font-size:15px;font-weight:600}.routine-page .exercise-row--trackable{display:flex;gap:12px;align-items:flex-start}.routine-page .exercise-row__meta,.routine-page .exercise-row__note,.routine-page .meal-card__note,.routine-page .milestone-row__note{color:var(--muted);font-size:12px;line-height:1.6;margin-top:5px}.routine-page .meal-item,.routine-page .stack-item{color:var(--text);line-height:1.6;font-size:14px}.routine-page .check-control,.routine-page .check-row{display:flex;align-items:center;gap:10px}.routine-page .check-control{margin-top:2px}.routine-page .check-control input,.routine-page .check-row input{width:18px;height:18px;accent-color:var(--accent3);flex-shrink:0}.routine-page .check-row{margin-top:14px;padding:12px 14px;border-radius:12px;background:#ffffff08;border:1px solid var(--border);color:var(--text);line-height:1.5}.routine-page .check-row--compact{margin-top:18px}.routine-page .hydration-meter{margin-top:14px}.routine-page .hydration-meter__value{font-family:var(--font-display);font-size:28px;line-height:1}.routine-page .hydration-meter__sub{margin-top:8px;color:var(--muted);font-size:13px}.routine-page .hydration-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}.routine-page .hydration-chip{min-height:44px;border-radius:12px;border:1px solid var(--border);background:#ffffff08;color:var(--text);font-size:13px;font-weight:600;transition:all .2s ease}.routine-page .hydration-chip.is-active{background:#5cfcb424;border-color:#5cfcb452;color:var(--accent3)}.routine-page .meal-card__note{margin-top:16px;padding-top:16px;border-top:1px solid var(--border);font-weight:600;color:var(--accent4)}.routine-page .info-card__subhead{margin-top:18px;margin-bottom:8px;font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}.routine-page .stack-list--compact .stack-item,.routine-page .timeline-phase .stack-item{font-size:13px}.routine-page .milestone-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;align-items:start}.routine-page .milestone-row__week{font-size:14px;font-weight:600}.routine-page .milestone-row__weight{font-family:var(--font-display);font-size:18px;color:var(--accent3)}.routine-page .milestone-row__note{grid-column:1/-1}.routine-page .timeline-phase__label{font-size:15px;font-weight:700;margin-bottom:12px}.routine-overlay .routine-modal{max-width:980px}.routine-overlay .modal__sub{color:var(--muted);font-size:12px;margin-top:4px;line-height:1.5}.routine-overlay .routine-editor{display:grid;gap:20px}.routine-overlay .editor-section{border:1px solid var(--border);border-radius:14px;padding:18px;background:#ffffff05}.routine-overlay .editor-section__title{font-family:var(--font-display);font-size:18px;margin-bottom:16px}.routine-overlay .editor-card{padding:16px;border-radius:12px;background:var(--bg);border:1px solid var(--border)}.routine-overlay .editor-card+.editor-card{margin-top:14px}.routine-overlay .editor-card__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.routine-overlay .editor-card__head--tight{margin-bottom:0}.routine-overlay .editor-card__title{font-size:15px;font-weight:700}.routine-overlay .exercise-editor,.routine-overlay .milestone-editor,.routine-overlay .timeline-editor{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.routine-overlay .exercise-editor:first-of-type,.routine-overlay .milestone-editor:first-of-type,.routine-overlay .timeline-editor:first-of-type{margin-top:0;padding-top:0;border-top:none}.routine-overlay .exercise-editor__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.routine-overlay .exercise-editor__label{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}.routine-overlay .editor-actions{display:flex;justify-content:flex-end}.routine-overlay .form-row--3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}@media (max-width: 1100px){.routine-page .quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.routine-page .hero-card,.routine-page .workout-grid,.routine-page .meal-grid,.routine-page .lifestyle-grid,.routine-page .progress-grid{grid-template-columns:1fr}}@media (max-width: 760px){.routine-page .hero-card,.routine-page .quick-card,.routine-page .workout-card,.routine-page .meal-card,.routine-page .info-card,.routine-page .progress-card{padding:18px}.routine-page .routine-sync-card{flex-direction:column;align-items:flex-start}.routine-page .quick-grid,.routine-page .hydration-grid{grid-template-columns:1fr}.routine-page .schedule-row{grid-template-columns:1fr;gap:10px}.routine-overlay .form-row--3{grid-template-columns:1fr}}
