@charset "UTF-8";@import"https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,400;12..96,600;12..96,700;12..96,800&family=Public+Sans:wght@400;500;600;700&display=swap";:root{--brand: #1f5fd6;--brand-hover: #1a52bd;--brand-tint: #eaf1fe;--brand-tint-border: #cfe0fb;--text-strong: #1b2435;--text-normal: #3a4660;--text-muted: #7b8499;--text-light: #9aa3b4;--text-on-brand: #ffffff;--surface-page: #f6f8fb;--surface-card: #ffffff;--surface-hover: #f9fafc;--surface-sunken: #f1f4f9;--border: #e9edf3;--border-light: #eef1f6;--border-strong: #d9e0ea;--success: #16915a;--success-bg: #e7f4ed;--warning: #d97a16;--warning-bg: #fdf0e1;--danger: #dc3545;--danger-bg: #fdf4f5;--info: #1f5fd6;--info-bg: #eaf1fe;--chart-1: #1f5fd6;--chart-2: #16915a;--chart-3: #d97a16;--chart-4: #7c5cd6;--chart-5: #0f9bb3;--chart-6: #dc3545;--radius-card: 14px;--radius-button: 10px;--radius-badge: 7px;--radius-pill: 20px;--radius-input: 10px;--shadow-xs: 0 1px 2px rgba(27, 36, 53, .04);--shadow-sm: 0 1px 3px rgba(27, 36, 53, .06), 0 1px 2px rgba(27, 36, 53, .04);--shadow-md: 0 4px 12px rgba(27, 36, 53, .08);--shadow-lg: 0 12px 28px rgba(27, 36, 53, .12);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--topbar-height: 64px;--sidebar-width: 268px;--sidebar-width-collapsed: 72px;--bottom-tab-height: 60px;--content-max-width: 1560px;--font-display: "Bricolage Grotesque", "Public Sans", system-ui, sans-serif;--font-body: "Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--text-xs: 12px;--text-sm: 13px;--text-base: 14px;--text-md: 15px;--text-lg: 18px;--text-xl: 22px;--text-2xl: 28px;--text-3xl: 34px;--leading-tight: 1.2;--leading-normal: 1.5;--leading-relaxed: 1.65;--transition-fast: .12s ease;--transition-base: .18s ease;--z-dropdown: 1000;--z-sticky: 1010;--z-sidebar: 1020;--z-topbar: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-toast: 1060}*,*:before,*:after{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text-normal);background:var(--surface-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;color:var(--text-strong);margin:0;line-height:var(--leading-tight)}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}h4{font-size:var(--text-md)}p{margin:0 0 var(--space-3)}a{color:var(--brand);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--brand-hover);text-decoration:underline}.numeric,.kpi-value,table td.numeric,.money{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:-9999px;z-index:var(--z-toast);padding:var(--space-3) var(--space-4);background:var(--brand);color:var(--text-on-brand);border-radius:var(--radius-button)}.skip-link:focus{left:var(--space-4);top:var(--space-4)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:10px;border:3px solid var(--surface-page)}::-webkit-scrollbar-thumb:hover{background:var(--text-light)}.card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-xs)}.card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-light)}.card__title{font-family:var(--font-display);font-size:var(--text-md);font-weight:700;letter-spacing:-.01em;color:var(--text-strong);margin:0}.card__subtitle{font-size:var(--text-sm);color:var(--text-muted);margin:2px 0 0}.card__body{padding:var(--space-6)}.card__footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--border-light)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:38px;padding:0 var(--space-4);font-family:var(--font-body);font-size:var(--text-base);font-weight:600;border-radius:var(--radius-button);border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--brand);color:var(--text-on-brand)}.btn--primary:hover:not(:disabled){background:var(--brand-hover)}.btn--secondary{background:var(--surface-card);color:var(--text-normal);border-color:var(--border-strong)}.btn--secondary:hover:not(:disabled){background:var(--surface-hover)}.btn--ghost{background:transparent;color:var(--text-normal)}.btn--ghost:hover:not(:disabled){background:var(--surface-sunken)}.btn--danger{background:var(--danger);color:#fff}.btn--danger:hover:not(:disabled){filter:brightness(.94)}.btn--sm{height:32px;padding:0 var(--space-3);font-size:var(--text-sm)}.btn--lg{height:44px;padding:0 var(--space-6);font-size:var(--text-md)}.btn--block{width:100%}.btn--icon{width:38px;padding:0}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:3px 10px;font-size:var(--text-xs);font-weight:600;line-height:1.5;border-radius:var(--radius-badge);white-space:nowrap}.badge--neutral{background:var(--surface-sunken);color:var(--text-muted)}.badge--success{background:var(--success-bg);color:var(--success)}.badge--warning{background:var(--warning-bg);color:var(--warning)}.badge--danger{background:var(--danger-bg);color:var(--danger)}.badge--info{background:var(--info-bg);color:var(--info)}.badge--pill{border-radius:var(--radius-pill)}.badge--live:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.field{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.field__label{font-size:var(--text-sm);font-weight:600;color:var(--text-normal)}.field__label--required:after{content:" *";color:var(--danger)}.field__hint{font-size:var(--text-xs);color:var(--text-muted)}.field__error{font-size:var(--text-xs);color:var(--danger)}.input,.select,.textarea{width:100%;min-height:38px;padding:8px var(--space-3);font-family:var(--font-body);font-size:var(--text-base);color:var(--text-strong);background:var(--surface-card);border:1px solid var(--border-strong);border-radius:var(--radius-input);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.input:focus,.select:focus,.textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint);outline:none}.input.is-invalid,.select.is-invalid{border-color:var(--danger)}.textarea{min-height:90px;resize:vertical}.field__control{position:relative;display:flex;align-items:center}.input--with-action{padding-right:44px}.field__reveal{position:absolute;right:4px;display:inline-grid;place-items:center;width:34px;height:34px;padding:0;border:0;border-radius:var(--radius-input);background:transparent;color:var(--text-muted);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}.field__reveal:hover{color:var(--text-strong);background:var(--brand-tint)}.field__reveal:focus-visible{outline:2px solid var(--brand);outline-offset:1px;color:var(--text-strong)}.field__reveal svg{width:18px;height:18px}.table-wrapper{width:100%;overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:var(--text-base)}.table th{padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--surface-sunken);border-bottom:1px solid var(--border);white-space:nowrap}.table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-light);color:var(--text-normal);vertical-align:middle}.table tbody tr:hover{background:var(--surface-hover)}.table tbody tr:last-child td{border-bottom:none}.table th.numeric,.table td.numeric{text-align:right;font-variant-numeric:tabular-nums}.state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-12) var(--space-6);text-align:center;color:var(--text-muted)}.state__title{font-family:var(--font-display);font-size:var(--text-lg);color:var(--text-strong)}.state__message{font-size:var(--text-base);max-width:420px}.spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--brand);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,var(--surface-sunken) 25%,var(--border-light) 50%,var(--surface-sunken) 75%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite;border-radius:6px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.page{padding:var(--space-6);max-width:var(--content-max-width);margin:0 auto}.page__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap}.page__title{font-size:var(--text-2xl)}.page__meta{font-size:var(--text-sm);color:var(--text-muted);margin-top:var(--space-1)}.page__actions{display:flex;gap:var(--space-3);flex-wrap:wrap}.grid{display:grid;gap:var(--space-5)}.grid--kpi{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.grid--2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.grid--3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.row{display:flex;align-items:center;gap:var(--space-3)}.row--between{justify-content:space-between}.row--wrap{flex-wrap:wrap}@media (max-width: 767px){.page{padding:var(--space-4) var(--space-3) calc(var(--bottom-tab-height) + var(--space-6))}.page__title{font-size:var(--text-xl)}.card__body,.card__header{padding:var(--space-4)}}.soocloo-logo{display:block;width:160px;height:60px;max-width:100%;object-fit:contain;flex-shrink:0;background:#fff;border-radius:8px}.soocloo-logo--large{width:240px;height:89px}.soocloo-logo--compact{width:108px;height:40px}@media print{.topbar,.sidebar,.bottom-tabs,eduops-toast-host,eduops-guided-tour,.coachmark-layer,.coachmark-help,.drawer,.drawer-backdrop{display:none!important}html,body{background:#fff;margin:0;padding:0}.shell,.content{display:block!important;margin:0!important;padding:0!important;max-width:none!important;overflow:visible!important}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
