@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: #184db0;--brand-active: #133e8f;--brand-tint: #eef4ff;--brand-tint-border: #c7dcfe;--brand-gradient: linear-gradient(135deg, #1f5fd6 0%, #3b76e8 55%, #0f9bb3 100%);--brand-soft-gradient: linear-gradient(135deg, #eef4ff 0%, #f4f8ff 60%, #ecfdf8 100%);--text-strong: #0f172a;--text-normal: #334155;--text-muted: #64748b;--text-light: #94a3b8;--text-on-brand: #ffffff;--surface-page: #f4f7fb;--surface-card: #ffffff;--surface-hover: #f8fafc;--surface-sunken: #eef2f7;--surface-glass: rgba(255, 255, 255, .88);--border: #e2e8f0;--border-light: #eef2f6;--border-strong: #cbd5e1;--success: #0d9458;--success-bg: #e6f7ef;--warning: #d97706;--warning-bg: #fef3c7;--danger: #dc2626;--danger-bg: #fee2e2;--info: #1f5fd6;--info-bg: #eef4ff;--purple: #6d28d9;--purple-bg: #f3e8ff;--chart-1: #1f5fd6;--chart-2: #0d9458;--chart-3: #d97706;--chart-4: #7c3aed;--chart-5: #0891b2;--chart-6: #dc2626;--radius-card: 16px;--radius-button: 10px;--radius-badge: 8px;--radius-pill: 999px;--radius-input: 10px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .04);--shadow-sm: 0 2px 6px rgba(15, 23, 42, .05), 0 1px 2px rgba(15, 23, 42, .03);--shadow-md: 0 8px 20px -4px rgba(15, 23, 42, .08), 0 2px 6px -1px rgba(15, 23, 42, .04);--shadow-lg: 0 20px 38px -8px rgba(15, 23, 42, .14), 0 4px 12px -2px rgba(15, 23, 42, .06);--shadow-brand: 0 8px 20px -4px rgba(31, 95, 214, .28);--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: 272px;--sidebar-width-collapsed: 72px;--bottom-tab-height: 62px;--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: 26px;--text-3xl: 32px;--leading-tight: 1.22;--leading-normal: 1.5;--leading-relaxed: 1.65;--transition-fast: .14s cubic-bezier(.2, .8, .2, 1);--transition-base: .22s cubic-bezier(.2, .8, .2, 1);--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);transition:box-shadow var(--transition-base),border-color var(--transition-base)}.card--interactive{cursor:pointer}.card--interactive:hover{border-color:var(--brand-tint-border);box-shadow:var(--shadow-md)}.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);background:var(--surface-hover);border-radius:0 0 var(--radius-card) var(--radius-card)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:40px;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;text-decoration:none;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}.btn:hover:not(:disabled){text-decoration:none}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--brand);color:var(--text-on-brand);box-shadow:0 2px 6px #1f5fd638}.btn--primary:hover:not(:disabled){background:var(--brand-hover);color:var(--text-on-brand);box-shadow:var(--shadow-brand)}.btn--secondary{background:var(--surface-card);color:var(--text-strong);border-color:var(--border-strong);box-shadow:var(--shadow-xs)}.btn--secondary:hover:not(:disabled){background:var(--surface-hover);border-color:var(--text-light);color:var(--text-strong)}.btn--ghost{background:transparent;color:var(--text-normal)}.btn--ghost:hover:not(:disabled){background:var(--surface-sunken);color:var(--text-strong)}.btn--danger{background:var(--danger);color:#fff}.btn--danger:hover:not(:disabled){filter:brightness(.94);color:#fff}.btn--sm{height:34px;padding:0 var(--space-3);font-size:var(--text-sm);border-radius:8px}.btn--lg{height:46px;padding:0 var(--space-6);font-size:var(--text-md);border-radius:12px}.btn--block{width:100%}.btn--icon{width:40px;padding:0}.badge{display:inline-flex;align-items:center;gap:5px;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:6px;margin-bottom:var(--space-4)}.field__label{font-size:var(--text-sm);font-weight:600;color:var(--text-strong)}.field__label--required:after{content:" *";color:var(--danger)}.field__hint{font-size:var(--text-xs);color:var(--text-muted);line-height:1.45}.field__error{font-size:var(--text-xs);color:var(--danger);font-weight:500}.input,.select,.textarea{width:100%;min-height:40px;padding:8px 12px;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),background var(--transition-fast)}.input:hover:not(:disabled):not(:focus),.select:hover:not(:disabled):not(:focus),.textarea:hover:not(:disabled):not(:focus){border-color:var(--text-light)}.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:12px var(--space-4);text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:var(--surface-hover);border-bottom:1px solid var(--border);white-space:nowrap}.table td{padding:13px var(--space-4);border-bottom:1px solid var(--border-light);color:var(--text-normal);vertical-align:middle}.table tbody tr{transition:background var(--transition-fast)}.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}}@keyframes pageEnter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.page{padding:var(--space-6) var(--space-8);max-width:var(--content-max-width);margin:0 auto;animation:pageEnter .22s cubic-bezier(.2,.8,.2,1)}.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);letter-spacing:-.025em}.page__meta{font-size:var(--text-sm);color:var(--text-muted);margin-top:4px}.page__actions{display:flex;align-items:center;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}}
