:root{--bg:#080c11;--surface:#10161e;--surface-2:#161e28;--surface-3:#1e2834;--border:#212b37;--border-strong:#2c3846;--text:#e8eef4;--text-dim:#94a2b2;--text-faint:#627080;--accent:#34d399;--accent-strong:#10b981;--accent-soft:#34d39921;--blue:#60a5fa;--blue-soft:#60a5fa21;--warn:#fbbf24;--danger:#f87171;--danger-soft:#f8717121;--radius:18px;--radius-sm:12px;--nav-h:64px;--sidebar-w:236px;--font:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Inter", system-ui, "Segoe UI", Roboto, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:var(--font);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-size:16px;line-height:1.45}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);margin:0}body{overscroll-behavior-y:none;min-height:100dvh}h1,h2,h3,h4,p{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#root,.app{min-height:100dvh}.app-main{padding:calc(env(safe-area-inset-top,0px) + 18px) 16px calc(var(--nav-h) + env(safe-area-inset-bottom,0px) + 28px)}.page{flex-direction:column;gap:16px;width:100%;max-width:1080px;margin:0 auto;animation:.25s both page-in;display:flex}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;padding-top:4px;display:flex}.page-eyebrow{color:var(--text-dim);font-size:13px;font-weight:500}.page-title{letter-spacing:-.02em;font-size:28px;font-weight:700;line-height:1.15}.grid{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}@media (width>=760px){.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.span-2{grid-column:1/-1}}.stack{flex-direction:column;gap:10px;display:flex}.stack-lg{flex-direction:column;gap:16px;display:flex}.muted{color:var(--text-dim)}.small{font-size:13px}.bottom-nav{z-index:40;padding:6px 6px calc(env(safe-area-inset-bottom,0px) + 6px);-webkit-backdrop-filter:saturate(160%)blur(18px);border-top:1px solid var(--border);background:#080c11db;position:fixed;inset:auto 0 0}.nav-brand{display:none}.nav-list{justify-content:space-around;margin:0;padding:0;list-style:none;display:flex}.nav-list>li{flex:1;display:flex}.nav-item{min-height:52px;color:var(--text-faint);background:0 0;border:0;border-radius:14px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:4px 0;font-size:10.5px;font-weight:500;transition:color .15s;display:flex}.nav-icon-wrap{border-radius:999px;place-items:center;padding:3px 14px;transition:background .2s;display:grid}.nav-item.is-active{color:var(--accent)}.nav-item.is-active .nav-icon-wrap{background:var(--accent-soft)}@media (width>=900px){.bottom-nav{width:var(--sidebar-w);background:var(--surface);border-top:0;border-right:1px solid var(--border);flex-direction:column;gap:28px;padding:28px 14px;display:flex;inset:0 auto 0 0}.nav-brand{letter-spacing:-.01em;align-items:center;gap:10px;padding:0 10px;font-size:18px;font-weight:700;display:flex}.nav-brand-logo{color:#052e1f;background:linear-gradient(135deg, var(--accent), var(--blue));border-radius:10px;place-items:center;width:32px;height:32px;display:grid}.nav-list{flex-direction:column;gap:4px}.nav-item{flex-direction:row;justify-content:flex-start;gap:12px;min-height:44px;padding:8px 12px;font-size:15px}.nav-icon-wrap,.nav-item.is-active .nav-icon-wrap{background:0 0;padding:0}.nav-item:hover{color:var(--text);background:var(--surface-2)}.nav-item.is-active{background:var(--accent-soft)}.app-main{margin-left:var(--sidebar-w);padding:36px 36px 56px}.page-title{font-size:32px}}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:0;padding:16px}.card-head{align-items:center;gap:10px;margin-bottom:14px;display:flex}.card-icon{width:32px;height:32px;color:var(--accent);background:var(--accent-soft);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.card-heading{flex:1;min-width:0}.card-title{font-size:16px;font-weight:600}.card-subtitle{color:var(--text-dim);font-size:12.5px}.stat{align-items:flex-start;gap:10px;min-width:0;display:flex}.stat-icon{width:30px;height:30px;color:var(--blue);background:var(--blue-soft);border-radius:9px;flex-shrink:0;place-items:center;display:grid}.stat-text{flex-direction:column;min-width:0;display:flex}.stat-label{color:var(--text-dim);font-size:12px}.stat-value{letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:18px;font-weight:650}.stat-sub{color:var(--text-faint);font-size:11.5px}.kpi-grid,.week-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.kpi-grid>.stat,.week-stats>.stat{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);padding:12px}.week-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.week-stats .stat{flex-direction:column;gap:6px}.week-stats .stat-value{font-size:15px}@media (width>=760px){.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.empty-state{text-align:center;color:var(--text-faint);flex-direction:column;align-items:center;gap:8px;padding:28px 12px;font-size:14px;display:flex}.demo-notice{border-radius:var(--radius-sm);background:var(--blue-soft);color:#c4dcfb;border:1px solid #60a5fa47;align-items:flex-start;gap:10px;padding:10px 14px;font-size:13px;display:flex}.demo-notice svg{color:var(--blue);flex-shrink:0;margin-top:1px}.demo-notice strong{color:#e3eefc}.demo-tag{color:var(--blue);border:1px dashed #60a5fa80;border-radius:999px;padding:1px 7px;font-size:10.5px;font-weight:600}.disclaimer{color:var(--text-faint);margin-top:12px;font-size:11.5px}.pill{background:var(--surface-3);color:var(--text-dim);white-space:nowrap;border-radius:999px;align-items:center;padding:2px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.pill-accent{background:var(--accent-soft);color:var(--accent)}.btn{background:var(--surface-3);white-space:nowrap;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:6px;min-height:42px;padding:0 16px;font-size:14.5px;font-weight:600;transition:background .15s,border-color .15s,transform .1s;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.45}.btn-sm{border-radius:10px;min-height:34px;padding:0 12px;font-size:13px}.btn-primary{background:var(--accent);color:#04281b}.btn-primary:hover:not(:disabled){background:#4ee0ab}.btn-outline{border-color:var(--border-strong);background:0 0}.btn-outline:hover{border-color:var(--accent);color:var(--accent)}.btn-success{background:var(--accent-soft);color:var(--accent);border-color:#34d39966}.btn-ghost{color:var(--text-dim);background:0 0}.btn-ghost:hover{background:var(--surface-3);color:var(--text)}.btn-danger{background:var(--danger-soft);color:var(--danger);border-color:#f8717166}.icon-btn{border:1px solid var(--border);background:var(--surface-2);width:40px;height:40px;color:var(--text-dim);border-radius:12px;flex-shrink:0;place-items:center;display:grid}.icon-btn:hover{color:var(--text);border-color:var(--border-strong)}.icon-btn-sm{border-radius:10px;width:32px;height:32px}.link-btn{color:var(--accent);background:0 0;border:0;align-items:center;gap:2px;padding:4px 0;font-size:13.5px;font-weight:600;display:inline-flex}.link-btn-sm{padding:0;font-size:12px}.push-right{margin-left:auto}.confirm-inline{gap:6px;margin-left:auto;display:inline-flex}.segmented{border:1px solid var(--border);background:var(--surface);border-radius:14px;gap:4px;padding:4px;display:flex}.segmented-item{min-height:36px;color:var(--text-dim);white-space:nowrap;background:0 0;border:0;border-radius:10px;flex:1;padding:0 12px;font-size:14px;font-weight:600}.segmented-item.is-active{background:var(--surface-3);color:var(--text);box-shadow:0 1px 2px #0000004d}.segmented-compact .segmented-item{min-height:32px;padding:0 10px;font-size:13px}.chips{scrollbar-width:none;gap:8px;margin:0 -16px;padding:0 16px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.card .chips{flex-wrap:wrap;margin:0 0 12px;padding:0}.chip{--disc:var(--accent);border:1px solid var(--border);background:var(--surface);min-height:34px;color:var(--text-dim);border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:0 13px;font-size:13px;font-weight:600;display:inline-flex}.chips-sm .chip{min-height:30px;padding:0 11px;font-size:12.5px}.chip svg{color:var(--disc)}.chip.is-active{border-color:var(--disc);background:color-mix(in srgb, var(--disc) 15%, transparent);color:var(--text)}.race-banner{border-radius:var(--radius);background:radial-gradient(120% 140% at 0% 0%, #34d3992e, transparent 60%), radial-gradient(120% 140% at 100% 100%, #60a5fa2e, transparent 60%), var(--surface);border:1px solid #34d39940;align-items:center;gap:14px;padding:16px;display:flex}.race-icon{width:44px;height:44px;color:var(--accent);background:#34d39929;border-radius:14px;flex-shrink:0;place-items:center;display:grid}.race-text{flex-direction:column;flex:1;min-width:0;display:flex}.race-eyebrow{color:var(--text-dim);font-size:12px}.race-text strong{text-overflow:ellipsis;white-space:nowrap;font-size:16px;overflow:hidden}.race-date{color:var(--text-faint);font-size:12.5px}.race-count{flex-direction:column;align-items:flex-end;line-height:1.1;display:flex}.race-count strong{letter-spacing:-.03em;background:linear-gradient(135deg, var(--accent), var(--blue));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:30px;font-weight:750}.race-count span{color:var(--text-dim);font-size:12px}.summary{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.summary-stats{flex-direction:column;flex:1;gap:12px;min-width:170px;display:flex}.ring{flex-shrink:0;position:relative}.ring-track{stroke:var(--surface-3)}.ring-value-arc{transition:stroke-dashoffset .6s}.ring-center{text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.ring-value{letter-spacing:-.02em;font-size:22px;font-weight:700}.ring-value-sm{font-size:22px}.ring-label{max-width:80%;color:var(--text-dim);font-size:11px;line-height:1.2}.donut{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.donut-figure{flex-shrink:0;width:140px;height:140px;position:relative}.donut-svg{width:100%;height:100%}.donut-track{stroke:var(--surface-3)}.donut-center{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.donut-center strong{font-size:20px;font-weight:700}.donut-center span{color:var(--text-dim);font-size:11px}.legend{flex-direction:column;flex:1;gap:8px;min-width:180px;margin:0;padding:0;font-size:13.5px;list-style:none;display:flex}.legend li{align-items:center;gap:8px;display:flex}.legend i{border-radius:3px;flex-shrink:0;width:10px;height:10px}.legend-label{flex:1}.legend-value{font-variant-numeric:tabular-nums}.legend-pct{text-align:right;width:40px;color:var(--text-faint);font-variant-numeric:tabular-nums}.chart-svg{width:100%;height:auto;display:block;overflow:visible}.chart-grid{stroke:var(--border);stroke-dasharray:2 4}.chart-axis{fill:var(--text-faint);font-variant-numeric:tabular-nums;font-size:9.5px}.chart-axis.is-active{fill:var(--text);font-weight:700}.chart-cursor{stroke:var(--border-strong)}.chart-hit{cursor:pointer;transition:opacity .15s}.chart-detail{border-radius:var(--radius-sm);background:var(--surface-2);margin-top:10px;padding:10px 12px;font-size:12.5px}.chart-detail-head{color:var(--text-dim);justify-content:space-between;margin-bottom:6px;display:flex}.chart-detail-head strong{color:var(--text)}.chart-detail-items{flex-wrap:wrap;gap:6px 14px;display:flex}.chart-detail-item{color:var(--text-dim);align-items:center;gap:5px;display:inline-flex}.chart-detail-item i{border-radius:2px;width:8px;height:8px}.chart-detail-item b{color:var(--text);font-weight:600}.disc-icon{color:var(--disc);background:color-mix(in srgb, var(--disc) 15%, transparent);border-radius:12px;flex-shrink:0;place-items:center;display:grid;position:relative}.disc-icon-check{border:2px solid var(--surface-2);background:var(--accent);color:#04281b;border-radius:50%;place-items:center;width:17px;height:17px;display:grid;position:absolute;bottom:-4px;right:-4px}.session-card{border:1px solid var(--border);border-left:3px solid var(--disc);border-radius:var(--radius-sm);background:var(--surface-2);gap:12px;padding:12px;transition:opacity .2s;display:flex}.session-card.status-completada{background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 7%, var(--surface-2)), var(--surface-2))}.session-card.status-omitida{opacity:.6}.session-card.status-omitida .session-title{color:var(--text-dim);text-decoration:line-through}.session-body{flex:1;min-width:0}.session-top{flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.session-disc{color:var(--disc);font-weight:650}.session-date{color:var(--text-dim)}.session-title{margin:2px 0 6px;font-size:15px;font-weight:600;line-height:1.3}.session-meta{color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:12.5px;display:flex}.session-meta>span{align-items:center;gap:4px;display:inline-flex}.session-notes{color:var(--text-faint);margin-top:8px;font-size:12.5px}.session-actions{flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}.status-pill{background:var(--surface-3);color:var(--text-dim);border-radius:999px;margin-left:auto;padding:1px 8px;font-size:11px;font-weight:600}.status-pill-completada{background:var(--accent-soft);color:var(--accent)}.status-pill-omitida{background:var(--danger-soft);color:var(--danger)}.intensity{align-items:center;gap:5px;display:inline-flex}.intensity-bars{align-items:flex-end;gap:2px;display:inline-flex}.intensity-bars i{background:var(--surface-3);border-radius:1px;width:3px}.intensity-bars i:first-child{height:6px}.intensity-bars i:nth-child(2){height:9px}.intensity-bars i:nth-child(3){height:12px}.intensity-suave .intensity-bars i.on{background:var(--accent)}.intensity-moderada .intensity-bars i.on{background:var(--warn)}.intensity-alta .intensity-bars i.on{background:var(--danger)}.recovery-head{align-items:center;gap:16px;margin-bottom:14px;display:flex}.recovery-level{font-size:20px;font-weight:700}.tone-good{color:var(--accent)}.tone-mid{color:var(--warn)}.tone-low{color:var(--danger)}.recovery-sliders{gap:12px;display:grid}@media (width>=520px){.recovery-sliders{grid-template-columns:1fr 1fr;column-gap:18px}}.range-field{flex-direction:column;gap:4px;font-size:13px;display:flex}.range-top{color:var(--text-dim);justify-content:space-between;display:flex}.range-top b{color:var(--text)}.range-scale{color:var(--text-faint);justify-content:space-between;font-size:11px;display:flex}input[type=range]{width:100%;height:28px;accent-color:var(--accent);margin:0}.recovery-empty{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.recovery-load{border-top:1px solid var(--border);color:var(--text-dim);flex-wrap:wrap;gap:6px 16px;margin-top:14px;padding-top:12px;font-size:12.5px;display:flex}.recovery-load span{align-items:center;gap:5px;display:inline-flex}.recovery-load b{color:var(--text)}.week-nav{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);align-items:center;gap:12px;padding:10px;display:flex}.week-nav-label{text-align:center;flex-direction:column;flex:1;align-items:center;display:flex}.week-nav-label strong{font-size:16px}.week-nav-label span{color:var(--text-dim);font-size:12.5px}.week-strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.strip-day{border:1px solid var(--border);background:var(--surface);border-radius:14px;flex-direction:column;align-items:center;gap:2px;padding:8px 0;display:flex}.strip-day.is-today{border-color:var(--accent);background:var(--accent-soft)}.strip-day.is-done .strip-num{color:var(--accent)}.strip-wd{color:var(--text-faint);font-size:11px;font-weight:600}.strip-num{font-size:16px;font-weight:700}.strip-dots{gap:3px;height:6px;display:flex}.strip-dots i{border-radius:50%;width:6px;height:6px}.days-grid{grid-template-columns:minmax(0,1fr);gap:14px;display:grid}@media (width>=760px){.days-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}}.day-col{scroll-margin-top:calc(env(safe-area-inset-top,0px) + 12px);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:12px}.day-col.is-today{border-color:#34d39973;box-shadow:0 0 0 1px #34d39926}.day-head{align-items:center;gap:8px;margin-bottom:10px;display:flex}.day-head-text{flex:1;align-items:baseline;gap:8px;display:flex}.day-name{font-weight:650}.day-date{color:var(--text-dim);font-size:13px}.day-empty{color:var(--text-faint);padding:10px 2px;font-size:13px}.modal-backdrop{--modal-gap:16px;z-index:1000;padding:calc(env(safe-area-inset-top,0px) + var(--modal-gap)) calc(env(safe-area-inset-right,0px) + var(--modal-gap)) calc(env(safe-area-inset-bottom,0px) + var(--modal-gap)) calc(env(safe-area-inset-left,0px) + var(--modal-gap));overscroll-behavior:contain;-webkit-backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;animation:.2s fade;display:flex;position:fixed;inset:0;overflow:hidden}.modal{width:100%;max-width:560px;max-height:calc(100vh - 2 * var(--modal-gap) - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 2 * var(--modal-gap) - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));border:1px solid var(--border);background:var(--surface);border-radius:22px;flex-direction:column;animation:.25s sheet-up;display:flex;overflow:hidden}@keyframes fade{0%{opacity:0}}@keyframes sheet-up{0%{opacity:0;transform:translateY(30px)}}.modal-head{flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 16px 8px;display:flex}.modal-head h2{font-size:18px}.modal-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:auto;min-height:0;padding:8px 16px 0;overflow-y:auto}.modal-body .form-actions{border-top:1px solid var(--border);background:var(--surface);margin:0 -16px;padding:12px 16px 16px;position:sticky;bottom:0}.form{flex-direction:column;gap:14px;display:flex}.form-row{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;display:grid}.form-actions{justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.field{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.field-label{color:var(--text-dim);font-size:13px;font-weight:600}.field-hint{color:var(--text-faint);font-size:12px}.input{border:1px solid var(--border);background:var(--surface-2);border-radius:12px;width:100%;min-height:44px;padding:10px 12px;font-size:16px;transition:border-color .15s}.input:focus{border-color:var(--accent);outline:none}.input.is-invalid{border-color:var(--danger)}textarea.input{resize:vertical}select.input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a2b2' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:34px}input[type=date].input{-webkit-appearance:none;min-width:0}.input-group{position:relative}.input-group .input{padding-right:52px}.input-suffix{color:var(--text-faint);pointer-events:none;font-size:13px;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.disc-picker{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.disc-option{border:1px solid var(--border);background:var(--surface-2);color:var(--text-dim);border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;font-size:12px;font-weight:600;display:flex}.disc-option svg{color:var(--disc)}.disc-option.is-active{border-color:var(--disc);background:color-mix(in srgb, var(--disc) 14%, transparent);color:var(--text)}.toggle-row{cursor:pointer;align-items:center;gap:12px;display:flex;position:relative}.toggle-text{flex-direction:column;flex:1;display:flex}.toggle-label{font-size:14.5px;font-weight:600}.toggle-desc{color:var(--text-faint);font-size:12px}.toggle-input{opacity:0;pointer-events:none;position:absolute}.toggle-switch{background:var(--surface-3);border-radius:999px;flex-shrink:0;width:50px;height:30px;transition:background .2s;position:relative}.toggle-switch:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0006}.toggle-input:checked+.toggle-switch{background:var(--accent)}.toggle-input:checked+.toggle-switch:after{transform:translate(20px)}.toggle-input:focus-visible+.toggle-switch{outline:2px solid var(--accent);outline-offset:2px}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13.5px}.table th,.table td{border-bottom:1px solid var(--border);text-align:right;white-space:nowrap;padding:9px 8px}.table th:first-child,.table td:first-child{text-align:left;padding-left:0}.table thead th{color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em;font-size:11.5px;font-weight:600}.table tbody th{font-weight:500}.table tbody tr:last-child th,.table tbody tr:last-child td{border-bottom:0}.table-compact{font-size:12.5px}.table-compact th,.table-compact td{padding:7px 6px}.table-compact tbody th{white-space:normal;min-width:130px}.table-disc{align-items:center;gap:10px;display:inline-flex}.table-disc .disc-icon{border-radius:9px}.day-tabs{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.day-tab{border:1px solid var(--border);background:var(--surface);min-height:42px;color:var(--text-dim);border-radius:12px;font-weight:700;position:relative}.day-tab.is-today:after{content:"";background:var(--accent);border-radius:50%;width:4px;height:4px;position:absolute;bottom:5px;left:50%;transform:translate(-50%)}.day-tab.is-active{border-color:var(--accent);background:var(--accent);color:#04281b}.day-tab.is-active:after{background:#04281b}@media (width>=760px){.nutrition-grid{grid-template-columns:minmax(0,2fr) minmax(0,3fr);align-items:start}.nutrition-grid>.card{position:sticky;top:24px}}.kcal-row{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.kcal-value{letter-spacing:-.03em;font-size:34px;font-weight:750}.kcal-unit{color:var(--text-dim);font-weight:600}.bar{background:var(--surface-3);border-radius:999px;height:8px;margin:10px 0 16px;overflow:hidden}.bar>span{border-radius:inherit;background:linear-gradient(90deg, var(--accent), var(--blue));height:100%;transition:width .4s;display:block}.macro-stack{border-radius:6px;gap:2px;height:12px;display:flex;overflow:hidden}.macro-stack>span{height:100%;transition:width .4s;display:block}.macro-list{flex-direction:column;gap:8px;margin:14px 0 0;padding:0;font-size:14px;list-style:none;display:flex}.macro-list li{align-items:center;gap:8px;display:flex}.macro-list i{border-radius:3px;width:10px;height:10px}.macro-list li>span:first-of-type{flex:1}.macro-list b{font-variant-numeric:tabular-nums}.macro-list .muted{text-align:right;width:38px;font-size:12.5px}.meal-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.meal-card summary{cursor:pointer;align-items:center;gap:12px;padding:14px 16px;list-style:none;display:flex}.meal-card summary::-webkit-details-marker{display:none}.meal-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.meal-type{text-transform:uppercase;letter-spacing:.05em;font-size:11.5px;font-weight:700}.meal-type-desayuno{color:var(--warn)}.meal-type-comida{color:var(--accent)}.meal-type-snack{color:#f472b6}.meal-type-cena{color:var(--blue)}.meal-name{font-size:15px;font-weight:600;line-height:1.3}.meal-macros{color:var(--text-faint);font-size:12px}.meal-kcal{flex-direction:column;align-items:flex-end;line-height:1.1;display:flex}.meal-kcal strong{font-size:18px}.meal-kcal span{color:var(--text-dim);font-size:11px}.meal-chevron{color:var(--text-faint);flex-shrink:0;transition:transform .2s}.meal-card[open] .meal-chevron{transform:rotate(180deg)}.meal-card .table-wrap{border-top:1px solid var(--border);padding:0 16px 12px}.shopping-progress{color:var(--text-dim);flex-direction:column;font-size:13px;display:flex}.shopping-progress .bar{margin-bottom:0}.shopping-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.shopping-item{border-bottom:1px solid var(--border);cursor:pointer;align-items:center;gap:12px;min-height:44px;padding:6px 0;font-size:14.5px;display:flex;position:relative}.shopping-list li:last-child .shopping-item{border-bottom:0}.shopping-item input{opacity:0;pointer-events:none;position:absolute}.checkbox{border:2px solid var(--border-strong);color:#0000;border-radius:7px;flex-shrink:0;place-items:center;width:22px;height:22px;transition:all .15s;display:grid}.shopping-item input:checked+.checkbox{border-color:var(--accent);background:var(--accent);color:#04281b}.shopping-item input:focus-visible+.checkbox{outline:2px solid var(--accent);outline-offset:2px}.shopping-name{flex:1}.shopping-qty{color:var(--text-dim);font-variant-numeric:tabular-nums}.shopping-item.is-checked .shopping-name,.shopping-item.is-checked .shopping-qty{color:var(--text-faint);text-decoration:line-through}.profile-hero{border:1px solid var(--border);border-radius:var(--radius);background:radial-gradient(100% 160% at 0% 0%, #60a5fa29, transparent 60%), var(--surface);align-items:center;gap:14px;padding:16px;display:flex}.avatar{background:linear-gradient(135deg, var(--accent), var(--blue));color:#04281b;border-radius:18px;flex-shrink:0;place-items:center;width:56px;height:56px;font-size:20px;font-weight:800;display:grid}.profile-hero-text{flex-direction:column;flex:1;min-width:0;display:flex}.profile-hero-text strong{font-size:18px}.profile-hero-text span{color:var(--text-dim);font-size:13px}.saved-badge{color:var(--accent);align-items:center;gap:4px;font-size:12px;font-weight:600;display:inline-flex}.goal-row{align-items:flex-end;gap:12px;display:flex}.goal-row .disc-icon{margin-bottom:4px}.integrations{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.integrations li{border:1px dashed var(--border-strong);border-radius:var(--radius-sm);align-items:center;gap:12px;padding:10px 12px;display:flex}.integrations li>div{flex-direction:column;flex:1;min-width:0;display:flex}.integrations li span:not(.pill):not(.integration-logo){color:var(--text-faint);font-size:12px}.integration-logo{background:var(--surface-3);width:34px;height:34px;color:var(--text-dim);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.info-row{color:var(--text-dim);align-items:flex-start;gap:10px;font-size:13px;display:flex}.info-row svg{color:var(--blue);flex-shrink:0}.danger-zone{border-radius:var(--radius-sm);background:#f871710d;border:1px solid #f8717140;flex-wrap:wrap;align-items:center;gap:12px;padding:12px;display:flex}.danger-zone>div:first-child{flex:1;min-width:180px}.backup-section{flex-direction:column;gap:8px;display:flex}.backup-section+.backup-section{border-top:1px solid var(--border);padding-top:14px}.backup-title{font-size:14.5px;font-weight:600}.backup-actions{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.backup-actions-end{justify-content:flex-end}.file-btn{cursor:pointer;position:relative}.file-btn input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.file-btn:focus-within{outline:2px solid var(--accent);outline-offset:2px}.file-btn.is-busy{opacity:.6;cursor:progress}.backup-preview{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);flex-direction:column;gap:12px;margin-top:4px;padding:12px;display:flex}.backup-preview h4{margin:0;font-size:14px}.backup-summary{grid-template-columns:auto minmax(0,1fr);gap:6px 14px;margin:0;font-size:13px;display:grid}.backup-summary dt{color:var(--text-faint)}.backup-summary dd{overflow-wrap:anywhere;margin:0}.notice{border-radius:10px;align-items:flex-start;gap:8px;margin:0;padding:9px 12px;font-size:13px;display:flex}.notice svg{flex-shrink:0;margin-top:1px}.notice-success{background:var(--accent-soft);color:var(--accent)}.notice-error{background:var(--danger-soft);color:var(--danger)}.notice-info{background:var(--blue-soft);color:#c4dcfb}.notice-warn{color:#fcd877;background:#fbbf241a}.check-row{cursor:pointer;align-items:flex-start;gap:10px;font-size:13.5px;display:flex}.check-row input{width:18px;height:18px;accent-color:var(--danger);flex-shrink:0;margin:1px 0 0}.success-text{color:var(--accent);font-size:13px}.app-version{text-align:center;color:var(--text-faint);padding:8px 0;font-size:12px}.pwa-toast{left:calc(env(safe-area-inset-left,0px) + 12px);right:calc(env(safe-area-inset-right,0px) + 12px);bottom:calc(var(--nav-h) + env(safe-area-inset-bottom,0px) + 16px);z-index:900;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-2);flex-wrap:wrap;align-items:center;gap:10px 12px;max-width:520px;margin:0 auto;padding:12px 14px;animation:.25s sheet-up;display:flex;position:fixed;box-shadow:0 12px 32px #00000080}.pwa-toast-icon{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.pwa-toast-text{flex-direction:column;flex:1;min-width:160px;font-size:13px;display:flex}.pwa-toast-text span{color:var(--text-dim)}.pwa-toast-actions{gap:6px;margin-left:auto;display:flex}@media (width>=900px){.pwa-toast{left:calc(var(--sidebar-w) + 24px);bottom:24px;right:24px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
