:root{--blite-magenta-50: #fff0f7;--blite-magenta-100: #ffd9ec;--blite-magenta-200: #ffb1d7;--blite-magenta-300: #ff86bd;--blite-magenta-400: #ff579f;--blite-magenta-500: #ff2993;--blite-magenta-600: #e01277;--blite-magenta-700: #ae1c64;--blite-magenta-800: #8a0040;--blite-magenta-900: #5e0030;--blite-rose-soft: #f0a6c1;--blite-rose: #e879a1;--blite-rose-strong: #c25f87;--blite-rose-deep: #9d4a6c;--blite-mint-50: #e7faf1;--blite-mint-100: #c4f3df;--blite-mint-200: #93e9c4;--blite-mint-300: #5fdda6;--blite-mint-400: #34d399;--blite-mint-500: #1faa67;--blite-mint-600: #178a53;--blite-mint-700: #126b41;--blite-mint-800: #0d4d2f;--blite-mint-900: #0a2e1d;--blite-violet-50: #f3eefe;--blite-violet-100: #e4d7fd;--blite-violet-200: #c9b2fb;--blite-violet-300: #a78bf8;--blite-violet-400: #8a38f5;--blite-violet-500: #7a2ce0;--blite-violet-600: #6822c0;--blite-violet-700: #531c99;--blite-violet-800: #3d1570;--blite-violet-900: #2a0f4d;--blite-neutral-0: #ffffff;--blite-neutral-50: #fafaf9;--blite-neutral-100: #f4f4f3;--blite-neutral-200: #e9e9e7;--blite-neutral-300: #d4d4d1;--blite-neutral-400: #c5c5c5;--blite-neutral-500: #8a8a8a;--blite-neutral-600: #5a5a5a;--blite-neutral-700: #3a3a3a;--blite-neutral-800: #1a171a;--blite-neutral-900: #121212;--blite-neutral-950: #060506;--blite-green: #34d399;--blite-amber: #fbbf24;--blite-red: #f87171;--blite-blue: #60a5fa;--ds-bg: #0f1115;--ds-bg-elevated: #14171d;--ds-surface-1: #181b22;--ds-surface-2: #1e222a;--ds-surface-3: #252932;--ds-surface-raised:#1b1e26;--ds-border: #21252e;--ds-border-strong: #2d313c;--ds-border-accent: rgba(232, 121, 161, .5);--ds-text: #e6e8ee;--ds-text-muted: #9aa3b2;--ds-text-dim: #6b7385;--ds-text-inverse: #0f1115;--ds-accent: #e879a1;--ds-accent-soft: #f0a6c1;--ds-accent-strong: #c25f87;--ds-accent-bg: rgba(232, 121, 161, .1);--ds-success: #34d399;--ds-success-bg: rgba(52, 211, 153, .12);--ds-warning: #fbbf24;--ds-warning-bg: rgba(251, 191, 36, .12);--ds-danger: #f87171;--ds-danger-bg: rgba(248, 113, 113, .12);--ds-info: #60a5fa;--ds-info-bg: rgba(96, 165, 250, .12);--ds-radius-sm: 6px;--ds-radius-md: 10px;--ds-radius-lg: 14px;--ds-radius-xl: 20px;--ds-radius-pill: 9999px;--ds-shadow-1: 0 2px 6px rgba(0, 0, 0, .25);--ds-shadow-2: 0 8px 28px rgba(0, 0, 0, .35);--ds-shadow-3: 0 18px 48px rgba(0, 0, 0, .5);--ds-shadow-accent: 0 4px 14px rgba(232, 121, 161, .22);--ds-dur-fast: .12s;--ds-dur-normal: .18s;--ds-dur-slow: .3s;--ds-ease: cubic-bezier(.2, .8, .2, 1);--ds-font-sans: "Inter", "DM Sans", system-ui, -apple-system, sans-serif;--ds-font-mono: "JetBrains Mono", ui-monospace, "Fira Code", monospace;--ds-ring-width: 2px;--ds-ring-color: rgba(232, 121, 161, .35);--ds-ring-offset: 2px;--ds-space-1: 4px;--ds-space-2: 8px;--ds-space-3: 12px;--ds-space-4: 16px;--ds-space-5: 24px;--ds-space-6: 32px;--ds-space-7: 48px;--ds-space-8: 64px;--ds-space-9: 96px}[data-theme=light]{--ds-bg: #fafaf9;--ds-bg-elevated: #ffffff;--ds-surface-1: #ffffff;--ds-surface-2: #f4f4f3;--ds-surface-3: #e9e9e7;--ds-surface-raised:#ffffff;--ds-border: #e8e8e6;--ds-border-strong: #d4d4d1;--ds-border-accent: rgba(194, 95, 135, .5);--ds-text: #1f2024;--ds-text-muted: #5a6270;--ds-text-dim: #8a93a0;--ds-text-inverse: #ffffff;--ds-accent: #c25f87;--ds-accent-soft: #d98eac;--ds-accent-strong: #9d4a6c;--ds-accent-bg: rgba(194, 95, 135, .1);--ds-success: #0f9d63;--ds-success-bg: rgba(15, 157, 99, .1);--ds-warning: #d68d0c;--ds-warning-bg: rgba(214, 141, 12, .1);--ds-danger: #dc3a3a;--ds-danger-bg: rgba(220, 58, 58, .1);--ds-info: #3073c9;--ds-info-bg: rgba(48, 115, 201, .1);--ds-shadow-1: 0 1px 2px rgba(15, 17, 21, .06);--ds-shadow-2: 0 6px 20px rgba(15, 17, 21, .08);--ds-shadow-3: 0 16px 40px rgba(15, 17, 21, .12);--ds-shadow-accent: 0 4px 14px rgba(194, 95, 135, .22);--ds-ring-color: rgba(194, 95, 135, .35)}[data-brand=vivid]{--ds-accent: #ff2993;--ds-accent-soft: #ffb1d7;--ds-accent-strong: #ae1c64;--ds-accent-bg: rgba(255, 41, 147, .12);--ds-border-accent: rgba(255, 41, 147, .5);--ds-ring-color: rgba(255, 41, 147, .35);--ds-shadow-accent: 0 4px 14px rgba(255, 41, 147, .28)}:root{--blite-gradient-brand: linear-gradient(135deg, #ff2993 0%, #ae1c64 60%, #8a0040 100%);--blite-gradient-soft: linear-gradient(135deg, #e879a1 0%, #c25f87 100%);--blite-gradient-mix: linear-gradient(135deg, #ff2993 0%, #8a38f5 100%)}[data-deck=vidro]{--deck-bg: radial-gradient(ellipse at 50% 0%, #ffffff, #f4f4f6 55%, #efeff3);--deck-glow-a: #ff299324;--deck-glow-b: #c8aaff1f;--deck-ink: #17171a;--deck-ink-2: #5d5d5d;--deck-faint: #9a9daa;--deck-page: #b0b3be;--deck-line: #e4e4ea;--deck-accent: #ff2993;--deck-accent-grad: linear-gradient(180deg,#ff4fa6,#ff2993);--deck-accent-light: #ff7cbd;--deck-accent-text: #e8207f;--deck-accent-deep: #c8006a;--deck-tag-bg: #ffe6f2;--deck-tag-border: #ffc2df;--deck-blue: #2f6bff;--deck-blue-grad: linear-gradient(180deg,#5b93ff,#2f6bff);--deck-blue-bg: #eef3ff;--deck-card: linear-gradient(180deg,#fdfdfe,#efeff3);--deck-card-border: 2px solid #ffffff;--deck-card-radius: 20px;--deck-card-shadow: 0 12px 28px #1e1e321f;--deck-dark-card: linear-gradient(160deg,#24222e,#17171a);--deck-dark-border: #3a3846}[data-deck=tecnico]{--deck-bg: #ffffff;--deck-topbar: linear-gradient(90deg,#ff2993,#8a38f5 62%,#5b7cfa);--deck-ink: #1f2024;--deck-ink-2: #3a3c43;--deck-muted: #5a6270;--deck-faint: #8a909c;--deck-line: #e4e4e1;--deck-line-2: #efefec;--deck-wash: #f7f7f5;--deck-accent: #ff2993;--deck-accent-deep: #ae1c64;--deck-accent-800: #8a0040;--deck-accent-bg: #fff0f7;--deck-violet: #8a38f5;--deck-violet-bg: #f4edfe;--deck-ok: #0f9d63;--deck-ok-bg: #ebf9f2;--deck-warn: #b4780a;--deck-warn-bg: #fdf6e7;--deck-bad: #dc3a3a;--deck-bad-bg: #fdeeee;--deck-info: #3073c9;--deck-info-bg: #edf3fc;--deck-card-radius: 16px;--deck-band: #1f2024}:root{--color-bg: var(--ds-bg);--color-bg-elevated: var(--ds-bg-elevated);--color-surface: var(--ds-surface-1);--color-surface-muted: var(--ds-surface-2);--color-track: var(--ds-surface-3);--color-border: var(--ds-border);--color-border-strong: var(--ds-border-strong);--color-text: var(--ds-text);--color-text-muted: var(--ds-text-muted);--color-text-dim: var(--ds-text-dim);--color-primary: var(--ds-accent);--color-primary-hover: var(--ds-accent-soft);--color-primary-strong: var(--ds-accent-strong);--color-primary-soft: var(--ds-accent-bg);--color-on-primary: var(--ds-text-inverse);--color-success: var(--ds-success);--color-success-soft: var(--ds-success-bg);--color-warning: var(--ds-warning);--color-warning-soft: var(--ds-warning-bg);--color-danger: var(--ds-danger);--color-danger-soft: var(--ds-danger-bg);--color-info: var(--ds-info);--color-info-soft: var(--ds-info-bg);--color-violet: var(--blite-violet-300);--color-violet-soft: rgb(138 56 245 / 14%);--radius-sm: var(--ds-radius-sm);--radius: var(--ds-radius-md);--radius-lg: var(--ds-radius-lg);--shadow-sm: var(--ds-shadow-1);--shadow: var(--ds-shadow-2);--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: var(--ds-font-mono);--ease: var(--ds-ease);--dur: var(--ds-dur-normal);--dur-slow: var(--ds-dur-slow);color-scheme:dark}[data-theme=light]{--color-primary-hover: var(--ds-accent-strong);--color-warning: #b4780a;--color-violet: var(--blite-violet-400);--color-violet-soft: #f4edfe;color-scheme:light}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:var(--font-sans);font-size:15px;line-height:1.5;color:var(--color-text);background:var(--color-bg);font-feature-settings:"cv11","ss01","ss03";-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;line-height:1.25;letter-spacing:-.01em}h1{font-size:1.6rem;font-weight:700}.mono{font-family:var(--font-mono);font-size:.85em}h3{font-size:1rem}a{color:var(--color-primary)}code{padding:.1rem .35rem;font-size:.85em;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:4px}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.icon{display:inline-flex;flex:none}.muted{color:var(--color-text-muted)}.eyebrow{display:inline-flex;align-items:center;gap:.35rem;margin-bottom:.4rem;font:600 .72rem var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary)}.stack{display:grid;gap:1rem;align-content:start}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.6rem 1rem;font:inherit;font-weight:600;color:var(--color-text);text-decoration:none;white-space:nowrap;cursor:pointer;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius);transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.btn:hover:not(:disabled){background:var(--color-surface-muted);border-color:var(--color-text-dim)}.btn:disabled{cursor:not-allowed;opacity:.55}.btn--primary{color:var(--color-on-primary);background:var(--color-primary);border-color:var(--color-primary)}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover);box-shadow:var(--ds-shadow-accent)}.btn--danger:hover:not(:disabled){color:var(--color-danger);background:var(--color-danger-soft);border-color:var(--color-danger)}.row-actions{display:inline-flex;justify-content:flex-end;gap:.35rem}.btn--sm{padding:.35rem .7rem;font-size:.85rem}.btn--block{width:100%}.btn--icon{padding:.45rem}.form{display:grid;gap:1rem}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:.25rem;margin-bottom:1.5rem;padding:.25rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface-muted)}.segmented__option{padding:.55rem .75rem;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font:inherit;font-weight:600;cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.segmented__option:hover:not(.is-active){color:var(--color-text)}.segmented__option:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.segmented__option.is-active{background:var(--color-primary-soft);color:var(--color-primary)}.dev-login{margin-top:.75rem;border-style:dashed}.form-header{margin-bottom:1.5rem}.form-header h2{margin-bottom:.35rem;font-size:1.5rem}.form-header p{margin:0}.form-footer{margin:1.25rem 0 0;text-align:center}.form-footer--subtle{margin-top:.5rem;font-size:.875rem;color:var(--color-text-muted)}.field{display:grid;gap:.35rem}.field__label{font-size:.875rem;font-weight:600}.field__hint{font-size:.8rem;color:var(--color-text-muted)}.field__error{font-size:.8rem;color:var(--color-danger)}.input{width:100%;padding:.6rem .75rem;font:inherit;color:var(--color-text);background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);border-radius:var(--radius);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.input::placeholder{color:var(--color-text-dim)}.input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--ds-ring-color)}.input.ng-touched.ng-invalid{border-color:var(--color-danger)}.input-group{display:flex;gap:.5rem}.input-icon{position:relative;display:flex;align-items:center;flex:1}.input-icon app-icon{position:absolute;left:.75rem;color:var(--color-text-muted)}.input-icon .input{padding-left:2.25rem}.checkbox{display:flex;align-items:flex-start;gap:.5rem;font-size:.875rem}.checkbox input{margin-top:.2rem;accent-color:var(--color-primary)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem}.form-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}.form-card{max-width:52rem}textarea.input{resize:vertical}.color-field{display:flex;gap:.5rem}.color-field input[type=color]{width:2.75rem;height:auto;padding:.2rem;cursor:pointer;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius)}.topic-preview{display:flex;align-items:center;gap:.9rem;padding:1rem;border:1px dashed var(--color-border-strong);border-radius:var(--radius)}.topic-preview div{display:grid;gap:.2rem}.alert{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;padding:.75rem 1rem;margin-bottom:1rem;font-size:.9rem;border-radius:var(--radius)}.alert--danger{color:var(--color-danger);background:var(--color-danger-soft)}.alert--success{justify-content:flex-start;color:var(--color-success);background:var(--color-success-soft)}.alert--info{color:var(--color-info);background:var(--color-info-soft)}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:500;white-space:nowrap;color:var(--color-text-muted);background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--ds-radius-pill)}.badge:before{width:6px;height:6px;content:"";background:currentColor;border-radius:50%}.badge--danger{margin-left:.4rem;color:var(--color-danger);background:var(--color-danger-soft);border-color:transparent}.badge--primary{color:var(--color-primary);background:var(--color-primary-soft);border-color:transparent}.badge--success{color:var(--color-success);background:var(--color-success-soft);border-color:transparent}.badge--warning{color:var(--color-warning);background:var(--color-warning-soft);border-color:transparent}.spinner{display:inline-block;width:1rem;height:1rem;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite}.spinner--light{border-color:color-mix(in srgb,var(--color-on-primary) 30%,transparent);border-top-color:var(--color-on-primary)}@keyframes spin{to{transform:rotate(360deg)}}.state-box{display:flex;align-items:center;justify-content:center;gap:.6rem;padding:3rem 1rem;color:var(--color-text-muted)}.empty-state{padding:1.25rem;text-align:center;color:var(--color-text-muted)}.page-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.page-header p{margin:.35rem 0 0}.back-link{display:inline-flex;align-items:center;gap:.35rem;margin-bottom:1rem;font:500 .8rem var(--font-mono);color:var(--color-text-muted);text-decoration:none}.back-link:hover{color:var(--color-primary)}.card{padding:1.25rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card--flush{padding:0;overflow:hidden}.card__title{margin-bottom:1rem;font-size:15px;font-weight:600}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:1rem;margin-bottom:1rem}.toolbar{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.toolbar__form{display:flex;flex:1 1 18rem;flex-wrap:wrap;align-items:center;gap:.5rem}.toolbar__form .input{flex:1 1 12rem}.department-picker{display:flex;flex-direction:column;gap:.5rem;margin:0;padding:0;border:0}.toolbar__select{width:auto;min-width:14rem}.meta{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1rem;margin-top:.6rem;font-size:.85rem;color:var(--color-text-muted)}.meta span{display:inline-flex;align-items:center;gap:.3rem}@media(max-width:960px){.grid-2{grid-template-columns:1fr}}.stat-card{display:flex;align-items:center;gap:1rem}.stat-card>div{display:grid}.stat-card__icon{display:grid;place-items:center;width:2.75rem;height:2.75rem;color:var(--color-primary);background:var(--color-primary-soft);border-radius:var(--radius)}.stat-card--success .stat-card__icon{color:var(--color-success);background:var(--color-success-soft)}.stat-card--warning .stat-card__icon{color:var(--color-warning);background:var(--color-warning-soft)}.stat-card--danger .stat-card__icon{color:var(--color-danger);background:var(--color-danger-soft)}.is-archived{opacity:.65}.certificate{display:grid;justify-items:center;gap:.75rem;max-width:52rem;padding:3rem 2rem;margin:0 auto;text-align:center;border:2px solid var(--color-primary)}.certificate h1{margin:0;font-size:2rem}.certificate__lead{max-width:40rem;margin:0;font-size:1.05rem}.certificate__name{margin:0;font-size:1.75rem;font-weight:700}.certificate__footer{display:grid;gap:.2rem;padding-top:1rem;margin-top:1rem;border-top:1px solid var(--color-border)}.card__title--padded{padding:1rem 1.25rem 0}@media print{.sidebar,.topbar,.tour,.no-print{display:none!important}*,*:before,*:after{transition:none!important;animation:none!important}.shell{display:block!important}.card{break-inside:avoid;box-shadow:none}.card--flush,.table-wrap{overflow:visible}.card--flush{break-inside:auto;border:0;border-radius:0}.card__title{break-after:avoid}.table thead{display:table-header-group}.table tr{break-inside:avoid}.table th,.table td{padding:.45rem .75rem}}.confirm-dialog{width:min(28rem,100vw - 2rem);padding:1.5rem;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.confirm-dialog::backdrop{background:#00000073}.confirm-dialog p{margin:.5rem 0 1.25rem}.tour{position:fixed;right:24px;bottom:24px;z-index:50;width:min(24rem,100vw - 32px);padding:1.25rem;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-top:4px solid var(--color-violet);border-radius:var(--radius-lg);box-shadow:0 18px 48px #00000059;animation:tour-in var(--dur) var(--ease)}.tour__header{display:flex;align-items:center;justify-content:space-between}.tour__count{font-size:12px;font-weight:600;color:var(--color-violet);text-transform:uppercase;letter-spacing:.04em}.tour__title{margin:.25rem 0 .5rem;font-size:1.1rem}.tour__text{margin:0 0 1rem;line-height:1.55;color:var(--color-text-muted)}.tour__dots{display:flex;gap:6px;margin-bottom:1rem}.tour__dot{width:8px;height:8px;background:var(--color-track);border-radius:50%;transition:width var(--dur) var(--ease),background var(--dur) var(--ease)}.tour__dot.is-active{width:20px;background:var(--color-violet);border-radius:4px}.tour__actions{display:flex;justify-content:flex-end;gap:8px}@keyframes tour-in{0%{opacity:0;transform:translateY(12px)}}@media(max-width:640px){.tour{right:16px;bottom:16px}}@media(prefers-reduced-motion:reduce){.tour{animation:none}}.btn--danger-solid{color:#fff;background:var(--color-danger);border-color:var(--color-danger)}.btn--danger-solid:hover:not(:disabled){background:var(--color-danger);filter:brightness(.92);box-shadow:none}.pagination{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem}.due--late{font-weight:600;color:var(--color-danger)}.stat-card--neutral .stat-card__icon{color:var(--color-violet);background:var(--color-violet-soft)}.stat-card__label{font-size:13px;font-weight:500;color:var(--color-text-muted)}.stat-card__value{margin-top:2px;font-size:1.75rem;font-weight:700;line-height:1.2;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.progress{width:100%;height:.5rem;overflow:hidden;background:var(--color-track);border-radius:var(--ds-radius-pill)}.progress__fill{display:block;height:100%;background:var(--color-primary);border-radius:inherit;transition:width var(--dur-slow) var(--ease)}.progress-list{display:grid;gap:1rem;padding:0;margin:0;list-style:none}.progress-list__head{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.4rem;font-size:13px;font-weight:500}.progress-list__head .muted{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.progress-list__head a{color:inherit;text-decoration:none}.progress-list__head a:hover{color:var(--color-primary)}.list{display:grid;padding:0;margin:0;list-style:none}.list__item{display:flex;align-items:center;gap:.75rem;padding:.65rem .5rem;color:inherit;text-decoration:none;border-radius:var(--radius-sm)}.list__item:hover{background:var(--color-surface-muted)}.list__main{display:grid;flex:1;min-width:0}.timeline{display:grid;gap:.85rem;padding:0;margin:0;list-style:none}.timeline li:not(.empty-state){display:grid;padding-left:.9rem;border-left:2px solid var(--ds-border-accent)}.table-wrap{overflow-x:auto}.table{width:100%;font-size:.9rem;border-collapse:collapse}.table th,.table td{padding:.7rem 1rem;text-align:left;border-bottom:1px solid var(--color-border)}.table th{font:600 11px var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-dim);background:var(--color-surface-muted)}.table tbody tr:hover{background:var(--color-surface-muted)}.table tbody tr:last-child td{border-bottom:0}.table .num{font-family:var(--font-mono);font-size:.85em;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.card:not(.card--flush) .table th,.card:not(.card--flush) .table td{padding-inline:.5rem}.cell-progress{min-width:10rem}.cell-progress app-progress-bar{display:inline-block;width:calc(100% - 3.5rem);vertical-align:middle}.cell-progress .cell-progress__count{display:inline-block;width:3.25rem;font:500 12px var(--font-mono);text-align:right;color:var(--color-text-muted)}.cell-progress .cell-progress__overdue,.cell-progress .cell-progress__done{display:block;font-size:12px;font-weight:500}.cell-progress .cell-progress__overdue{color:var(--color-danger)}.cell-progress .cell-progress__done{color:var(--color-success)}.topic-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1rem}.topic-card{--accent: var(--color-primary);display:flex;flex-direction:column;gap:.6rem;color:inherit;text-decoration:none;transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.topic-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 45%,var(--color-border));box-shadow:var(--shadow)}.topic-card p{flex:1;margin:0;font-size:.875rem}.topic-card__icon{display:grid;flex:none;place-items:center;width:2.75rem;height:2.75rem;color:var(--accent, var(--color-primary));background:color-mix(in srgb,var(--accent, var(--color-primary)) 14%,transparent);border-radius:var(--radius)}.topic-card__icon--lg{width:3.5rem;height:3.5rem}.topic-card__footer{display:flex;align-items:center;justify-content:space-between;font:500 12px var(--font-mono);color:var(--color-text-muted)}.topic-hero{display:flex;gap:1.25rem;margin-bottom:1.25rem;border-top:4px solid var(--accent)}.topic-hero p{margin:.4rem 0 1rem}.topic-hero__body{flex:1}.topic-hero__progress{display:flex;align-items:center;gap:1rem;max-width:28rem;font:500 12px var(--font-mono);white-space:nowrap}.course-row{display:flex;align-items:center;gap:1rem}.course-row p{margin:.25rem 0 0;font-size:.875rem}.course-row__index{display:grid;flex:none;place-items:center;width:2.25rem;height:2.25rem;font:600 13px var(--font-mono);color:var(--color-text-muted);background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:50%}.course-row__body{flex:1;min-width:0}.course-content{max-width:72ch;line-height:1.65}.course-content h2{margin:1.5rem 0 .5rem;font-size:1.15rem}.course-content h2:first-child{margin-top:0}.course-content p,.course-content ul{margin:0 0 .85rem}.course-content ul{padding-left:1.25rem}.course-content li+li{margin-top:.35rem}ul.checklist{display:grid;gap:.4rem;padding:0;list-style:none}.checklist__item{display:flex;gap:.6rem;align-items:flex-start;padding:.55rem .8rem;border-radius:var(--radius)}.checklist__item .icon{flex-shrink:0;margin-top:.2rem}.checklist__item.is-good{background:var(--color-success-soft)}.checklist__item.is-good .icon{color:var(--color-success)}.checklist__item.is-bad{background:var(--color-danger-soft)}.checklist__item.is-bad .icon{color:var(--color-danger)}.checklist__item+.checklist__item{margin-top:0}.callout{display:flex;gap:.75rem;align-items:flex-start;padding:.85rem 1rem;margin:0 0 .85rem;border-left:4px solid var(--callout-accent);border-radius:var(--radius);background:var(--callout-bg);--callout-accent: var(--color-info);--callout-bg: var(--color-info-soft)}.callout>.icon{flex-shrink:0;margin-top:.15rem;color:var(--callout-accent)}.callout p{margin:0}.callout__title{display:block;color:var(--callout-accent)}.callout--warning{--callout-accent: var(--color-warning);--callout-bg: var(--color-warning-soft)}.callout--scenario{--callout-accent: var(--color-violet);--callout-bg: var(--color-violet-soft)}.callout--note{--callout-accent: var(--color-text-muted);--callout-bg: var(--color-surface-muted)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.quiz{margin-top:1rem}.quiz__header p{margin:0 0 1rem}.quiz__form{display:grid;gap:1rem}.quiz__question{display:grid;gap:.5rem;min-width:0;padding:1rem;margin:0;border:1px solid var(--color-border);border-radius:var(--radius)}.quiz__question legend{padding:0 .35rem;font-weight:600}.quiz__option{display:flex;gap:.6rem;align-items:flex-start;padding:.55rem .75rem;cursor:pointer;border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}.quiz__option:hover{border-color:var(--color-border-strong)}.quiz__option:has(input:checked){background:var(--color-primary-soft);border-color:var(--color-primary)}.quiz__option.is-correct{background:var(--color-success-soft);border-color:var(--color-success)}.quiz__option.is-wrong{background:var(--color-danger-soft);border-color:var(--color-danger)}.quiz__option input{margin-top:.2rem;accent-color:var(--color-primary)}.quiz__explanation{margin:.25rem 0 0;font-size:.9rem;color:var(--color-success)}.quiz__explanation.is-wrong{color:var(--color-danger)}.quiz-editor__question{display:grid;gap:.75rem;padding:1rem;border:1px solid var(--color-border);border-radius:var(--radius)}.quiz-editor__head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.quiz-editor__option{display:flex;align-items:center;gap:.5rem}.quiz-editor__option .input{flex:1}.course-actions{display:flex;flex-direction:column;align-items:flex-end;margin-top:1rem}.catalog-topic__body{flex:1;min-width:12rem}.catalog-topic{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border)}.catalog-topic .card__title{margin:0}@media(max-width:640px){.course-row{flex-wrap:wrap}.course-row .btn{width:100%}.topic-hero{flex-direction:column}}.not-found{display:grid;place-content:center;justify-items:center;gap:.75rem;min-height:100dvh;padding:1rem;text-align:center}.not-found p{margin:0 0 .5rem}.not-found__code{font:600 4rem var(--font-mono);letter-spacing:-.04em;color:var(--color-primary)}.brand-logo{display:block;height:22px;width:auto}[data-theme=light] .brand-logo{filter:brightness(0)}
