:root{--bg:#0f172a;--card:#1e293b;--card-2:#0f172a;--border:#334155;--input-bg:#0f172a;--accent:#10b981;--accent-hover:#059669;--on-accent:#0f172a;--text-primary:#fff;--text-secondary:#94a3b8;--brand:#7cc4a0;--brand-deep:#163722;--success:#10b981;--success-emphasis:#10b981;--warning:#fbbf24;--warning-emphasis:#fbbf24;--warning-soft-label:#fcd34d;--warning-action:#d97706;--info:#60a5fa;--info-strong:#3b82f6;--danger:#f43f5e;--danger-text:#f87171;--danger-text-strong:#e11d48;--danger-soft-label:#fda4af;--danger-button:#fca5a5;--danger-button-hover:#fecaca;--neutral:#94a3b8;--streak:#ea580c;--success-bg:#10b9811f;--success-bg-strong:#10b98126;--success-border-soft:#10b98159;--success-border:#10b98166;--success-border-active:#10b98173;--success-border-strong:#10b98180;--warning-bg:#fbbf241f;--warning-border-soft:#fbbf2466;--warning-border:#fbbf2480;--info-bg:#3b82f626;--info-chip-bg:#3b82f61f;--info-border:#3b82f666;--info-chip-border:#3b82f680;--info-soft-bg:#60a5fa1f;--info-soft-border:#60a5fa66;--danger-bg:#f43f5e0d;--danger-bg-mid:#f43f5e1f;--danger-bg-strong:#f43f5e26;--danger-border-soft:#f43f5e59;--danger-border:#f43f5e66;--danger-border-strong:#f43f5e80;--danger-border-blink:#f43f5ee6;--danger-button-border:#ef444466;--danger-button-border-hover:#ef4444;--neutral-bg:#94a3b826;--neutral-bg-soft:#94a3b81f;--neutral-border:#94a3b866;--streak-bg:#fb923c1a;--streak-border:#fb923c4d;--overlay:#0f172ad9;--hover-bg:#10b98114;--hover-border:#10b9814d;--today-bg:#10b9810d;--focus-ring:0 0 0 2px #10b98133;--disc-1:#10b981;--disc-2:#34d399;--disc-3:#60a5fa;--disc-4:#a78bfa;--disc-5:#fbbf24;--disc-6:#22d3ee;--disc-7:#f472b6;--disc-8:#fb923c;--font-sans:"Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--radius-5:5px;--radius-6:6px;--radius-8:8px;--radius-10:10px;--radius-12:12px;--radius-14:14px;--radius-pill:999px;--page-max:1500px;--space-page-x:16px;--space-page-y:20px;--space-card:20px;--gap-card:16px;--gap-kpi:12px;--z-modal:100;--z-toast:200;--z-timer:400;--z-confirm:500;--z-wizard:600;--shadow-knob:0 1px 2px #0003;--ease-standard:cubic-bezier(.4, 0, .2, 1)}body.light{--bg:#f8fafc;--card:#fff;--card-2:#f8fafc;--border:#e2e8f0;--input-bg:#f8fafc;--text-primary:#0f172a;--text-secondary:#64748b;--success:#059669;--success-emphasis:#047857;--warning:#d97706;--warning-emphasis:#b45309;--warning-action:#b45309;--info:#2563eb;--info-strong:#1d4ed8;--danger-text:#e11d48;--danger-text-strong:#be123c;--danger-soft-label:#be123c;--danger-button:#e11d48;--danger-button-hover:#be123c;--neutral:#64748b;--overlay:#0f172a8c}@media (width>=768px){:root{--space-page-x:24px}}@font-face{font-family:Inter;font-style:normal;font-weight:400 900;font-display:swap;src:url(/assets/inter-latin-ext-DO1Apj_S.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:400 900;font-display:swap;src:url(/assets/inter-latin-Dx4kXJAl.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}.screen{min-height:100vh;padding:1.5rem}.center{place-items:center;display:grid}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-12)}.auth-card{width:min(100%,420px);padding:2rem}.brand{margin-bottom:1rem}.auth-header{text-align:center}.auth-header .brand{justify-content:center;display:flex}.brand-screen{align-items:center;gap:.625rem;display:flex}.brand-mark{border-radius:var(--radius-10);background:var(--accent);flex:none;place-items:center;width:40px;height:40px;display:grid}.brand-symbol{background:var(--on-accent);width:26px;height:35px;display:block;-webkit-mask:url(/assets/simbolo-Dw7XH31Z.svg) 50%/contain no-repeat;mask:url(/assets/simbolo-Dw7XH31Z.svg) 50%/contain no-repeat}.brand-wordmark{text-align:left;color:var(--text-primary);gap:3px;line-height:1;display:grid}.brand-wordmark>:first-child{letter-spacing:.05em;font-size:14px;font-weight:700}.brand-wordmark>:last-child{letter-spacing:.1em;font-size:10px;font-weight:500}.brand-lockup{width:180px;height:auto;display:none}body.light .brand-screen{display:none}body.light .brand-lockup{display:block}body.light .header-brand .brand-screen{display:flex}.header-brand{margin:0}h1{letter-spacing:-.02em;margin:0 0 .5rem;font-size:1.7rem}.muted{color:var(--text-secondary);line-height:1.5}form{gap:.45rem;margin-top:1.4rem;display:grid}.button{border-radius:var(--radius-8);font:inherit;cursor:pointer;border:0;padding:.48rem .9rem;font-size:.77rem;font-weight:700;transition:color .18s,background .18s,border-color .18s,transform .18s}.button:active:not(:disabled){transform:translateY(1px)}.button:disabled,.button[aria-disabled=true]{cursor:not-allowed;opacity:.5}.button[aria-busy=true]{cursor:wait}.auth-card .button{margin-top:1rem}.button.primary{background:var(--accent);color:var(--on-accent)}.button.primary:hover:not(:disabled){background:var(--accent-hover)}.button.ghost{border:1px solid var(--border);color:var(--text-primary);background:0 0;font-weight:600}.button.ghost:hover:not(:disabled){border-color:var(--accent);color:var(--success-emphasis)}.button.danger{border:1px solid var(--danger-button-border);color:var(--danger-button);background:0 0}.button.danger:hover:not(:disabled){border-color:var(--danger-button-border-hover);color:var(--danger-button-hover)}.field{gap:.45rem;display:grid}.field-label{margin-top:.5rem;font-size:.78rem;font-weight:700}.input{border-radius:var(--radius-8);border:1px solid var(--border);background:var(--input-bg);width:100%;color:var(--text-primary);font:inherit;padding:.5rem .7rem;font-size:.8rem}.input::placeholder{color:var(--text-secondary)}.input:focus{border-color:var(--accent);outline:none}.input:disabled{opacity:.5}.choice:has(:disabled){opacity:.5}.range-row:has(:disabled){opacity:.5}.password-field{position:relative}.password-field .input{padding-right:2.6rem}.choice{border:1px solid var(--border);border-radius:var(--radius-8);cursor:pointer;align-items:center;gap:.6rem;margin-top:.5rem;padding:.5rem .7rem;font-size:.8rem;display:flex}.choice input[type=checkbox]{accent-color:var(--accent);margin:0}.switch-input{opacity:0;width:1px;height:1px;margin:0;position:absolute}.switch-track{border-radius:var(--radius-pill);background:var(--border);flex:none;width:32px;height:18px;transition:background .18s;position:relative}.switch-knob{border-radius:var(--radius-pill);background:var(--text-primary);width:14px;height:14px;box-shadow:var(--shadow-knob);transition:transform .18s;position:absolute;top:2px;left:2px}body.light .switch-knob{background:var(--card)}.switch-input:checked+.switch-track{background:var(--accent)}.switch-input:checked+.switch-track .switch-knob{transform:translate(14px)}.choice.switch:has(:checked){background:var(--today-bg);border-color:var(--success-border-active)}.choice.switch:has(:focus-visible){border-color:var(--accent);box-shadow:var(--focus-ring)}.choice:has(input[type=checkbox]:not(.switch-input):focus-visible){border-color:var(--accent)}.range-row{align-items:center;gap:.75rem;display:flex}.range-row input[type=range]{appearance:none;background:var(--border);border-radius:var(--radius-pill);flex:1;height:6px;margin:0}.range-row input[type=range]::-webkit-slider-thumb{appearance:none;border-radius:var(--radius-pill);background:var(--accent);border:2px solid var(--bg);cursor:pointer;width:16px;height:16px}.range-row input[type=range]::-moz-range-thumb{border-radius:var(--radius-pill);background:var(--accent);border:2px solid var(--bg);cursor:pointer;width:16px;height:16px}body.light .range-row input[type=range]::-webkit-slider-thumb{border-color:var(--card)}body.light .range-row input[type=range]::-moz-range-thumb{border-color:var(--card)}.range-row input[type=range]:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.range-value{min-width:2.5ch;color:var(--success-emphasis);font-variant-numeric:tabular-nums;font-weight:900}.reveal-button{border-radius:var(--radius-6);width:2rem;height:2rem;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;padding:0;display:grid;position:absolute;top:50%;right:.25rem;transform:translateY(-50%)}.reveal-button:hover{color:var(--text-primary)}.reveal-button:focus-visible{border-color:var(--accent);box-shadow:var(--focus-ring);color:var(--text-primary);outline:none}.icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.link-button{color:var(--success-emphasis);font:inherit;cursor:pointer;background:0 0;border:0;margin:0;padding:0;font-weight:700}.link-button:disabled{cursor:wait;opacity:.6}.link-button:hover:not(:disabled){text-underline-offset:2px;text-decoration:underline}.link-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-5)}.auth-switch{text-align:center;color:var(--text-secondary);margin:1rem 0 0;font-size:.82rem}.hint{color:var(--text-secondary);margin:.3rem 0 .2rem;font-size:11px;line-height:1.5}.error{color:var(--danger-text);margin:.6rem 0 0;font-size:.82rem}.unavailable-card{text-align:center;display:grid}.unavailable-card .error{line-height:1.5}.field-error{margin:.2rem 0 0;font-size:.78rem;line-height:1.5}.session-notice{color:var(--warning-emphasis);margin:.6rem 0 0;font-size:.82rem}.account{gap:.8rem;margin:.8rem 0 0;display:grid}.account div{gap:.15rem;display:grid}dt{color:var(--text-secondary);letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;font-weight:800}dd{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0}.app{flex-direction:column;min-height:100vh;display:flex}.app-header{z-index:10;background:var(--bg);border-bottom:1px solid var(--border);position:sticky;top:0}.app-header-inner,.app-body{width:100%;max-width:var(--page-max);padding:0 var(--space-page-x);margin:0 auto}.app-header-inner{justify-content:space-between;align-items:center;gap:.75rem;padding-block:.75rem;display:flex}.header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.header-error{max-width:var(--page-max);padding:0 var(--space-page-x) .6rem;margin:0 auto}.app-body{padding-block:var(--space-page-y);flex-direction:column;flex:1;display:flex}.app-main{align-content:start;gap:var(--gap-card);margin-top:var(--gap-card);flex:1;display:grid}.app-footer{text-align:center;color:var(--text-secondary);letter-spacing:.1em;text-transform:uppercase;margin-top:2.5rem;font-size:10px}.button.mini{border:1px solid var(--border);border-radius:var(--radius-6);color:var(--text-secondary);background:0 0;padding:.28rem .6rem}.button.mini:hover:not(:disabled){border-color:var(--accent);color:var(--success-emphasis)}.theme-toggle{min-width:2rem;font-size:.9rem;line-height:1}.button:focus-visible,.tab:focus-visible,.text-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tabs{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-12);flex-wrap:wrap;gap:2px;padding:4px;display:flex}.tab{border-radius:var(--radius-8);color:var(--text-secondary);border:1px solid #0000;padding:.48rem .9rem;font-size:.78rem;font-weight:600;text-decoration:none;transition:color .15s,background .15s,border-color .15s}.tab:hover{color:var(--text-primary)}.tab.tab-active{background:var(--success-bg);border-color:var(--success-border-soft);color:var(--success-emphasis)}.page-title{margin:0;font-size:1.4rem}.page-subtitle{margin:-.5rem 0 0;font-size:.85rem}.panel{padding:var(--space-card)}.panel h2{margin:0;font-size:1rem}.empty{text-align:center;background:var(--card);border:1px dashed var(--border);border-radius:var(--radius-14);padding:3rem 1.5rem}.empty-title{margin:0 0 .4rem;font-size:1rem;font-weight:700}.empty .muted{margin:0;font-size:.85rem}.text-link{color:var(--success-emphasis);margin-top:1rem;font-weight:700;display:inline-block}@media (width<=640px){.tabs{grid-template-columns:1fr 1fr;display:grid}.tab{text-align:center;padding:.42rem .7rem;font-size:.72rem}}.overlay{background:var(--overlay);place-items:center;padding:1rem;animation:.16s overlay-in;display:grid;position:fixed;inset:0}.overlay.layer-modal{z-index:var(--z-modal)}.overlay.layer-confirm{z-index:var(--z-confirm)}.modal-panel{overscroll-behavior:contain;width:100%;max-width:640px;max-height:92vh;padding:var(--space-card);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-14);animation:.2s panel-in;overflow:auto}.modal-panel:focus{outline:none}.modal-panel h2{margin:0 0 .5rem;font-size:1rem}.modal-panel>.muted{margin:0 0 1rem;font-size:.85rem}.confirm-panel{border-top:2px solid var(--accent);max-width:440px}.confirm-panel.destructive{border-color:var(--danger-border);border-top-color:var(--danger)}.confirm-details{gap:.5rem;font-size:.85rem;display:grid}.confirm-details p{margin:0}.confirm-warnings{color:var(--warning-emphasis);margin:0;padding-left:1.1rem}.confirm-actions{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-top:1rem;padding-top:1rem;display:flex}.toast-region{z-index:var(--z-toast);pointer-events:none;width:max-content;max-width:calc(100vw - 2rem);position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%)}.toast{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-10);animation:toast-in .28s var(--ease-standard);align-items:center;gap:.55rem;padding:.7rem 1rem;font-size:.78rem;font-weight:600;display:flex}.toast-dot{border-radius:var(--radius-pill);background:var(--accent);flex:none;width:6px;height:6px}@keyframes overlay-in{0%{opacity:0}}@keyframes panel-in{0%{opacity:0;transform:translateY(8px)}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.overlay.layer-wizard{z-index:var(--z-wizard)}.wizard-overlay{z-index:var(--z-wizard);background:var(--bg);justify-content:center;align-items:flex-start;padding:1.5rem;animation:.28s overlay-in;display:flex;position:fixed;inset:0;overflow-y:auto}.wizard-shell{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-14);width:100%;max-width:780px;margin:auto;overflow:hidden}.wizard-progress{background:var(--border);height:4px}.wizard-progress-bar{background:var(--accent);height:100%;transition:width .45s var(--ease-standard)}.wizard-head{justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem .5rem;display:flex}.wizard-dots{gap:.35rem;display:flex}.wizard-dot{border-radius:var(--radius-pill);background:var(--border);width:8px;height:8px;transition:background .25s}.wizard-dot.on{background:var(--accent)}.wizard-step-label{color:var(--text-secondary);letter-spacing:.15em;text-transform:uppercase;font-size:10px;font-weight:800}.wizard-body{gap:1rem;min-width:0;padding:1.25rem 1.5rem;display:grid}.wizard-title{letter-spacing:-.02em;margin:0;font-size:1.35rem;font-weight:900;line-height:1.2}.wizard-title:focus{outline:none}.wizard-subtitle{color:var(--text-secondary);margin:-.5rem 0 0;font-size:.84rem;line-height:1.6}.wizard-subtitle b{color:var(--text-primary)}.wizard-foot{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:.6rem;padding:.9rem 1.5rem 1.25rem;display:flex}.wizard-foot .button{padding:.65rem 1.3rem;font-size:.85rem}.wizard-error{margin:0;padding:0 1.5rem .6rem}.wizard-info{color:var(--text-secondary);background:var(--hover-bg);border:1px solid var(--hover-border);border-radius:var(--radius-10);margin:0;padding:.85rem 1rem;font-size:.78rem;line-height:1.6}.wizard-info p{margin:0}.wizard-info b,.wizard-info code{color:var(--success-emphasis)}.wizard-info-blue{background:var(--info-soft-bg);border-color:var(--info-soft-border)}.wizard-info-blue b{color:var(--info)}.wizard-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:0 .75rem;display:grid}.wizard-choices{flex-wrap:wrap;gap:.5rem;display:flex}.chip{border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;padding:.4rem .85rem;font-size:.78rem;font-weight:600}.chip[aria-pressed=true]{background:var(--success-bg);border-color:var(--success-border-soft);color:var(--success-emphasis)}.chip:focus-visible,.wizard-metric:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.wizard-options{gap:.55rem;display:grid}.wizard-metric{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;background:var(--card-2);border:1px solid var(--border);border-radius:var(--radius-10);gap:.2rem;padding:.85rem 1rem;transition:border-color .15s,background .15s;display:grid}.wizard-metric:hover{border-color:var(--accent)}.wizard-metric[aria-pressed=true],.wizard-metric[aria-expanded=true]{border-color:var(--accent);background:var(--hover-bg)}.wizard-metric-lbl{color:var(--text-secondary);letter-spacing:.13em;text-transform:uppercase;font-size:10px;font-weight:800}.wizard-metric-val{color:var(--text-primary);letter-spacing:-.02em;overflow-wrap:anywhere;font-size:1.35rem;font-weight:900;line-height:1.1}.wizard-metric-val span{color:var(--text-secondary);margin-left:.35rem;font-size:.7rem;font-weight:700}.wizard-metric-val.is-info{color:var(--info)}.wizard-metric-val-sm{font-size:1.1rem}.wizard-metric-hint{color:var(--text-secondary);font-size:10px;font-weight:600}.wizard-metric[aria-pressed=true] .wizard-metric-hint,.wizard-metric[aria-expanded=true] .wizard-metric-hint{color:var(--success-emphasis)}.wizard-manual{border:0;border-top:1px dashed var(--border);min-width:0;margin:0;padding:1rem 0 0}.wizard-manual-row{grid-template-columns:1fr 1fr 1.4fr auto;align-items:end;gap:.4rem;display:grid}.wizard-section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.wizard-section-head .field-label{margin:0}h3.field-label{margin-bottom:0}.wizard-list{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.wizard-list-item{background:var(--input-bg);border:1px solid var(--border);border-radius:var(--radius-8);align-items:center;gap:.55rem;padding:.55rem .75rem;font-size:.8rem;display:flex}.wizard-list-item.is-inactive{opacity:.55}.wizard-list-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.wizard-list-meta{color:var(--text-secondary);white-space:nowrap;font-size:10px}.wizard-empty{text-align:center;margin:0;padding:1rem 0;font-size:.78rem;font-style:italic}.wizard-freq{min-width:2.5ch;color:var(--success-emphasis);text-align:center;font-variant-numeric:tabular-nums;font-weight:900}.disc-dot{border-radius:var(--radius-pill);flex:none;width:10px;height:10px}.badge-warning{border:1px solid var(--warning-border-soft);border-radius:var(--radius-5);background:var(--warning-bg);color:var(--warning-emphasis);letter-spacing:.05em;text-transform:uppercase;padding:.1rem .5rem;font-size:9px;font-weight:800}.wizard-inativas{border-top:1px dashed var(--border);padding-top:1rem}.wizard-fieldset{border:0;min-width:0;margin:0;padding:0}.wizard-days{grid-template-columns:repeat(auto-fill,minmax(5.5rem,1fr));gap:0 .4rem;display:grid}.wizard-diag{background:var(--card-2);border:1px solid var(--success-border-soft);border-radius:var(--radius-12);gap:.4rem;padding:1rem 1.15rem;display:grid}.wizard-diag>.button{justify-self:start;margin-top:.4rem}.wizard-diag-title{color:var(--success-emphasis);margin:0;font-size:.85rem;font-weight:800}.wizard-diag-text{color:var(--text-secondary);margin:0;font-size:.78rem;line-height:1.65}.wizard-lever{background:var(--input-bg);border:1px solid var(--border);border-radius:var(--radius-10);padding:0 .85rem .7rem}textarea.input{resize:vertical;font-family:inherit;line-height:1.5}@media (width<=640px){.wizard-overlay{padding:.5rem}.wizard-shell{border-radius:var(--radius-12)}.wizard-head{padding:1rem 1rem .5rem}.wizard-body{padding:1rem}.wizard-title{font-size:1.1rem}.wizard-subtitle{font-size:.78rem}.wizard-foot{flex-wrap:wrap;padding:.75rem 1rem 1rem}.wizard-foot .button{flex:1}.wizard-error{padding:0 1rem .6rem}.wizard-manual-row{grid-template-columns:1fr}}.modal-eyebrow{color:var(--text-secondary);letter-spacing:.13em;text-transform:uppercase;margin:0 0 .25rem;font-size:10px;font-weight:800}.modal-panel .modal-eyebrow+h2{font-size:1.15rem;font-weight:900}.guide-panel b{color:var(--success-emphasis)}.guide-cards{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.guide-card{background:var(--card-2);border:1px solid var(--border);border-radius:var(--radius-10);gap:.85rem;padding:.7rem .85rem;display:flex}.guide-icon{flex:none;font-size:1.35rem;line-height:1.2}.guide-card-title{margin:0;font-size:.82rem;font-weight:700}.guide-card-text{color:var(--text-secondary);margin:.15rem 0 0;font-size:.74rem;line-height:1.55}.guide-actions{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;gap:.5rem;margin-top:1rem;padding-top:1rem;display:flex}.wizard-body .range-value{text-align:right;min-width:4.5rem}.guide-cards:focus{outline:none}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.badge-success,.badge-info{border-radius:var(--radius-5);letter-spacing:.05em;text-transform:uppercase;border:1px solid;padding:.1rem .5rem;font-size:9px;font-weight:800}.badge-success{border-color:var(--success-border);background:var(--success-bg-strong);color:var(--success-emphasis)}.badge-info{border-color:var(--info-soft-border);background:var(--info-soft-bg);color:var(--info)}.dashboard-banner{min-width:0;padding:var(--space-card);border-top:2px solid var(--accent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.banner-main{gap:.5rem;min-width:0;display:grid}.banner-badges{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.banner-countdown{color:var(--info);font-size:.78rem;font-weight:700}.banner-title{letter-spacing:-.02em;overflow-wrap:anywhere;margin:0;font-size:1.25rem;font-weight:900}.banner-meta{color:var(--text-secondary);overflow-wrap:anywhere;flex-wrap:wrap;gap:.25rem 1rem;margin:0;font-size:.82rem;display:flex}.banner-end{background:var(--input-bg);border:1px solid var(--border);border-radius:var(--radius-10);align-items:center;gap:.75rem;min-width:0;padding:.75rem 1rem;display:flex}.banner-end p{margin:0}.banner-end-icon{color:var(--info);flex:none}.banner-end-label{color:var(--text-secondary);letter-spacing:.13em;text-transform:uppercase;font-size:10px;font-weight:800}.banner-end-date{font-variant-numeric:tabular-nums;font-size:1.1rem;font-weight:900}.banner-end-sub,.banner-end-slack{color:var(--text-secondary);font-size:.75rem}.banner-end-slack{color:var(--info);font-weight:700}.kpi-grid{gap:var(--gap-kpi);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.kpi-grid>:not(.kpi){grid-column:1/-1}.kpi{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-12);border-left-width:2px;min-width:0;padding:1rem}.kpi p{margin:0}.kpi-warning{border-left-color:var(--warning)}.kpi-info{border-left-color:var(--info-strong)}.kpi-accent{border-left-color:var(--accent)}.kpi-danger{border-left-color:var(--danger)}.kpi-label{color:var(--text-secondary);letter-spacing:.13em;text-transform:uppercase;font-size:10px;font-weight:800}.kpi-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:.3rem 0 .15rem;font-size:1.55rem;font-weight:800}.kpi-value.is-danger{color:var(--danger)}.kpi-sub{color:var(--text-secondary);overflow-wrap:anywhere;font-size:.74rem;line-height:1.4}.kpi-blink{animation:1.7s ease-in-out infinite kpi-blink}@keyframes kpi-blink{0%,to{border-color:var(--danger-border-soft)}50%{border-color:var(--danger-border-blink)}}.dashboard-grid{gap:var(--gap-card);grid-template-columns:minmax(0,1fr);display:grid}.dashboard-section{align-content:start;gap:1rem;min-width:0;display:grid}.dashboard-empty{margin:0;font-size:.85rem}.donut{justify-items:center;gap:.75rem;display:grid}.donut-chart{aspect-ratio:1;width:160px;position:relative}.donut-ring{width:100%;height:100%;display:block}.donut-ring circle{fill:none}.donut-track{stroke:var(--border)}.donut-arc{stroke:var(--accent)}.donut-center{text-align:center;place-content:center;display:grid;position:absolute;inset:0}.donut-value{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:30px;font-weight:900;line-height:1}.donut-caption{color:var(--text-secondary);letter-spacing:.15em;text-transform:uppercase;margin-top:.25rem;font-size:10px}.donut-legend{color:var(--text-secondary);text-align:center;margin:0;font-size:.8rem}.chart{gap:.5rem;min-width:0;padding-left:2rem;display:grid}.chart-plot{height:180px;position:relative}.chart-svg{width:100%;height:100%;display:block;overflow:visible}.chart-grid{stroke:var(--border);stroke-width:1px}.chart-area{fill:var(--success-bg)}.chart-done{fill:none;stroke:var(--accent);stroke-width:2px}.chart-goal{fill:none;stroke:var(--text-secondary);stroke-width:1.2px;stroke-dasharray:4 4}.chart-point{border-radius:var(--radius-pill);background:var(--accent);width:6px;height:6px;margin:-3px 0 0 -3px;position:absolute}.chart-y-label,.chart-x span,.chart-legend{color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:10px}.chart-y-label{position:absolute;right:calc(100% + .4rem);transform:translateY(-50%)}.chart-x{height:1rem;position:relative}.chart-x span{white-space:nowrap;position:absolute;transform:translate(-50%)}.chart-legend{justify-content:center;gap:1rem;margin:0;display:flex}.chart-key{align-items:center;gap:.35rem;display:inline-flex}.chart-key:before{content:"";border-top:2px solid var(--accent);width:14px;height:0}.chart-key-goal:before{border-top:1.2px dashed var(--text-secondary)}.subject-list,.alert-list{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.subject-row{gap:.35rem;min-width:0;display:grid}.subject-row.is-inactive{opacity:.55}.subject-head{align-items:center;gap:.5rem;min-width:0;font-size:.85rem;display:flex}.subject-name{overflow-wrap:anywhere;flex:1;min-width:0;font-weight:600}.subject-inactive{color:var(--text-secondary);font-weight:400}.subject-count,.subject-percent{color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.75rem}.subject-percent{min-width:3.5ch;color:var(--text-primary);text-align:right;font-weight:800}.subject-bar{background:var(--border);border-radius:var(--radius-pill);height:6px;overflow:hidden}.subject-bar>div{border-radius:var(--radius-pill);height:100%;transition:width .45s var(--ease-standard)}.alert-row{background:var(--input-bg);border:1px solid var(--border);border-radius:var(--radius-10);align-items:center;gap:.6rem;min-width:0;padding:.6rem .75rem;display:flex}.alert-row.is-late{background:var(--danger-bg);border-color:var(--danger-border)}.alert-body{min-width:0}.alert-body p{margin:0}.alert-name{overflow-wrap:anywhere;font-size:.85rem;font-weight:600}.alert-when{color:var(--text-secondary);font-size:.74rem}.alert-row.is-late .alert-when{color:var(--danger-text)}.alerts-empty{text-align:center}.alerts-empty p{margin:0}.alerts-ok{color:var(--accent);font-size:1.5rem;font-weight:900}.alerts-empty-title{margin-top:.25rem;font-weight:700}.alerts-empty .muted{font-size:.8rem}@media (width>=1024px){.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-grid>.span-2{grid-column:span 2}}@media (width<=640px){.kpi-grid{grid-template-columns:minmax(0,1fr)}.kpi-value{font-size:1.2rem}.banner-end{flex:100%}}@media (prefers-reduced-motion:reduce){.kpi-blink{border-color:var(--danger-border);animation:none}}.kpi-clickable{transition:border-color .22s;position:relative}.kpi-clickable:hover{border-color:var(--danger-border)}.kpi-action{color:var(--danger-text);font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;margin:.35rem 0 0;padding:0;font-size:.72rem;font-weight:700}.kpi-action:after{content:"";border-radius:var(--radius-12);position:absolute;inset:0}.kpi-action:focus-visible{outline:none}.kpi-action:focus-visible:after{outline:2px solid var(--accent);outline-offset:2px}.empty-actions{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:1.25rem;display:flex}a.button{text-decoration:none;display:inline-block}.schedule-banner{padding:var(--space-card)}.schedule-banner p{margin:0}.schedule-banner-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.schedule-banner-end{align-items:center;gap:.75rem;min-width:0;display:flex}.schedule-banner-icon{color:var(--info);flex:none}.schedule-banner-text{flex:18rem;gap:.3rem;min-width:0;display:grid}.schedule-banner-label{color:var(--text-secondary);letter-spacing:.13em;text-transform:uppercase;margin:0;font-size:10px;font-weight:800}.schedule-banner-date{color:var(--info);font-variant-numeric:tabular-nums;font-size:1.1rem;font-weight:900}.schedule-banner-body{overflow-wrap:anywhere;font-size:.82rem;line-height:1.5}.schedule-banner-sub{color:var(--text-secondary);overflow-wrap:anywhere;font-size:.75rem}.schedule-banner-slack{color:var(--info);font-weight:700}.schedule-banner-dist{gap:.15rem;min-width:0;display:grid}.schedule-limit{background:var(--warning-bg);border:1px solid var(--warning-border-soft);border-radius:var(--radius-10);color:var(--text-primary);padding:.75rem 1rem;font-size:.8rem;line-height:1.5}.schedule-limit p{margin:0}.schedule-limit-title{color:var(--warning-emphasis);font-weight:800}.schedule-subjects{gap:.75rem;padding:1rem;display:grid}.schedule-subjects-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.schedule-subjects-total{color:var(--text-secondary);margin:0;font-size:11px}.schedule-subjects-total b{color:var(--text-primary)}.schedule-subjects-list{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.subject-chip{background:color-mix(in srgb, var(--chip-color) 12%, transparent);border:1px solid color-mix(in srgb, var(--chip-color) 40%, transparent);border-radius:var(--radius-8);align-items:center;gap:.5rem;max-width:100%;padding:.35rem .75rem;font-size:.72rem;font-weight:700;display:inline-flex}.subject-chip-dot{border-radius:var(--radius-pill);background:var(--chip-color);flex:none;width:8px;height:8px}.subject-chip-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.subject-chip-count{font-variant-numeric:tabular-nums;font-weight:900}.schedule-filters{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.schedule-filter-group{flex-wrap:wrap;gap:.5rem;display:flex}.filter-chip{border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-secondary);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;align-items:center;gap:.45rem;padding:.5rem 1rem;font-size:.74rem;font-weight:700;transition:color .16s,background .16s,border-color .16s;display:inline-flex}.filter-chip:hover{border-color:var(--accent);color:var(--success-emphasis)}.filter-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.filter-chip-dot{border-radius:var(--radius-pill);background:currentColor;width:6px;height:6px}.filter-chip-count{background:var(--neutral-bg);border-radius:var(--radius-pill);text-align:center;min-width:18px;padding:1px 6px;font-size:.65rem;font-weight:800}.filter-chip-pendentes[aria-pressed=true]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-emphasis)}.filter-chip-revisar[aria-pressed=true]{background:var(--info-chip-bg);border-color:var(--info-chip-border);color:var(--info)}.schedule-summary{color:var(--text-secondary);margin:0;font-size:.8rem;line-height:1.6}.schedule-summary b{color:var(--text-primary)}.schedule-summary .is-info{color:var(--info)}.schedule-summary .is-success{color:var(--success-emphasis)}.schedule-summary .is-warning{color:var(--warning-emphasis)}.schedule-summary .is-danger{color:var(--danger-text)}.day-grid{gap:var(--gap-card);grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));align-items:start;display:grid}.day-card{min-width:0;overflow:hidden}.day-card:focus{outline:none}.day-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.day-card.is-today{border-color:var(--accent)}.day-head{border-bottom:1px solid var(--border);align-items:center;gap:.6rem;padding:.6rem .75rem;display:flex}.day-card.is-today .day-head{background:var(--today-bg)}.day-mark{background:var(--card-2);border:1px solid var(--border);border-radius:var(--radius-8);width:2.25rem;height:2.25rem;color:var(--text-secondary);text-align:center;flex:none;place-items:center;margin:0;font-weight:900;line-height:1.1;display:grid}.day-mark span:first-child{letter-spacing:.05em;font-size:8px}.day-mark span:last-child{font-size:11px}.day-mark.is-today{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.day-mark.is-late{background:var(--danger-bg-strong);border-color:var(--danger-border);color:var(--danger-text-strong)}.day-info{flex:1;min-width:0}.day-date{margin:0;font-size:.78rem;font-weight:700;line-height:1.3}.day-sub{color:var(--text-secondary);margin:0;font-size:.68rem}.day-badge{border-radius:var(--radius-5);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;border:1px solid;flex:none;padding:.1rem .45rem;font-size:9px;font-weight:800}.day-badge-today{background:var(--success-bg-strong);border-color:var(--success-border-strong);color:var(--success-emphasis)}.day-badge-done{background:var(--success-bg);border-color:var(--success-border-soft);color:var(--success-emphasis)}.day-badge-late{background:var(--danger-bg-strong);border-color:var(--danger-border);color:var(--danger-text-strong)}.day-badge-neutral{background:var(--neutral-bg);border-color:var(--border);color:var(--text-secondary)}.day-empty{color:var(--text-secondary);text-align:center;margin:0;padding:.75rem;font-size:.72rem;font-style:italic}.block-list{gap:.1rem;margin:0;padding:.35rem;list-style:none;display:grid}.block-row{border-radius:var(--radius-8);align-items:center;gap:.55rem;min-width:0;padding:.55rem .7rem;display:flex}.block-row.is-done{opacity:.85}.block-row.is-done .block-name{color:var(--success-emphasis);text-decoration:line-through;-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 50%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 50%, transparent)}.status-dot{border-radius:var(--radius-pill);flex:none;width:9px;height:9px}.status-dot.is-progress{background:var(--warning)}.status-dot.is-review{background:var(--info-strong)}.block-body{flex:1;min-width:0}.block-body p{margin:0}.block-name{overflow-wrap:anywhere;font-size:.75rem}.block-review{color:var(--warning-emphasis);margin-right:.3rem;font-size:9px;font-weight:800}.block-meta{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;overflow-wrap:anywhere;font-size:9px}.block-time{color:var(--text-secondary);font-variant-numeric:tabular-nums;flex:none;font-size:10px}.domain-badge{border-radius:var(--radius-5);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;border:1px solid;flex:none;padding:.18rem .45rem;font-size:8px;font-weight:800}.domain-not_mastered{background:var(--danger-bg-mid);border-color:var(--danger-border);color:var(--danger-text)}.domain-intermediate{background:var(--warning-bg);border-color:var(--warning-border-soft);color:var(--warning-emphasis)}.domain-mastered{background:var(--success-bg-strong);border-color:var(--success-border);color:var(--success-emphasis)}.schedule-more{justify-content:center;display:flex}.config-section{align-content:start;gap:.75rem;display:grid}.config-section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.config-section-head h2{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.config-lead{color:var(--text-secondary);margin:0;font-size:.82rem;line-height:1.5}.config-note,.config-alert{color:var(--text-secondary);background:var(--card-2);border:1px solid var(--border);border-radius:var(--radius-10);margin:0;padding:.7rem .9rem;font-size:.72rem;line-height:1.6}.config-note b{color:var(--success-emphasis);font-weight:800}.config-alert{color:var(--text-primary);background:var(--warning-bg);border-color:var(--warning-border-soft)}.config-alert b{color:var(--warning-emphasis);font-weight:800}.config-methods{gap:.55rem;display:grid}.config-stat{background:var(--input-bg);border:1px solid var(--border);border-radius:var(--radius-10);gap:.2rem;padding:.7rem .85rem;display:grid}.config-stat .hint{margin:0}.config-stat-label{color:var(--text-secondary);letter-spacing:.13em;text-transform:uppercase;margin:0;font-size:10px;font-weight:800}.config-stat-value{color:var(--success-emphasis);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:1.15rem;font-weight:900}.config-stats{grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr));gap:.5rem;display:grid}.config-hero{background:var(--card-2);border:1px solid var(--border);border-radius:var(--radius-10);grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:.75rem;padding:.85rem 1rem;display:grid}.config-hero p{margin:0}.config-hero-date{letter-spacing:-.02em;font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:.5rem;font-size:1.35rem;font-weight:900;display:flex}.config-hero-date .is-info{color:var(--info)}.config-hero-date .is-success{color:var(--success-emphasis)}.config-hero-unit{color:var(--text-secondary);font-size:.7rem;font-weight:700}.config-hero-sub{color:var(--text-secondary);overflow-wrap:anywhere;font-size:.75rem;line-height:1.5}.config-arrow{color:var(--info);font-size:.8rem;font-weight:800}.config-status{background:var(--card-2);border:1px solid var(--border);border-radius:var(--radius-10);padding:.75rem 1rem}.config-status.is-unapplied{background:var(--warning-bg);border-color:var(--warning-border)}.config-status.is-current{background:var(--success-bg);border-color:var(--success-border-soft)}.config-status-text{margin:0;font-size:.82rem;line-height:1.5}.config-status-text b{color:var(--success-emphasis)}.config-status.is-unapplied b{color:var(--warning-emphasis)}.config-section>.button.primary{justify-self:start}@media (width>=640px){.config-methods{grid-template-columns:1fr 1fr}}
