:root{--navy-950:#060e21;--navy-900:#0b1830;--navy-800:#122448;--navy-700:#1a3363;--blue-700:#1d4ed8;--blue-600:#2563eb;--blue-500:#3b82f6;--blue-400:#60a5fa;--blue-300:#93c5fd;--blue-200:#bfdbfe;--blue-100:#dbeafe;--blue-50:#eff6ff;--white:#fff;--border:var(--blue-200);--border-strong:var(--blue-300);--text-primary:var(--navy-900);--text-secondary:#4a5b7c;--text-muted:#8fa3c4;--danger:#dc2626;--danger-bg:#fef2f2;--danger-border:#fecaca;--warning:#d97706;--warning-bg:#fffbeb;--warning-border:#fde68a;--success:#16a34a;--success-bg:#f0fdf4;--success-border:#bbf7d0;--page-bg:var(--blue-50);--surface:var(--white);--surface-muted:var(--blue-50);--sans:"Inter", system-ui, "Segoe UI", Roboto, sans-serif;--ui-zoom:1;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text-primary);background:var(--page-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=dark]{--border:#1e3a6b;--border-strong:#2a4a86;--text-primary:#eef4ff;--text-secondary:#a9bedd;--text-muted:#6f86ab;--page-bg:var(--navy-950);--surface:var(--navy-900);--surface-muted:var(--navy-800);--danger:#f87171;--danger-bg:#f871711f;--danger-border:#f8717166;--warning:#fbbf24;--warning-bg:#fbbf241f;--warning-border:#fbbf2466;--success:#4ade80;--success-bg:#4ade801f;--success-border:#4ade8066;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{font-family:var(--sans);margin:0}#root{min-height:100svh}h1,h2,h3,p,ul{margin:0;padding:0}ul{list-style:none}button{font-family:inherit}.welcome-overlay{z-index:999;background:radial-gradient(circle at 50% 40%, var(--navy-800) 0%, var(--navy-950) 70%);cursor:pointer;opacity:1;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.welcome-overlay--leaving{animation:.4s both welcome-fade-out}@keyframes welcome-fade-out{0%{opacity:1}to{opacity:0}}.welcome-grid{background-image:linear-gradient(var(--blue-500) 1px, transparent 1px), linear-gradient(90deg, var(--blue-500) 1px, transparent 1px);opacity:.08;background-size:42px 42px;animation:16s linear infinite welcome-grid-drift;position:absolute;inset:-10%}@keyframes welcome-grid-drift{0%{transform:translate(0)}to{transform:translate(42px,42px)}}.welcome-stage{text-align:center;flex-direction:column;align-items:center;padding:24px;display:flex;position:relative}.welcome-rings{width:1px;height:1px;position:absolute;top:50%;left:50%}.welcome-ring{border:1px solid var(--blue-400);opacity:0;border-radius:50%;width:140px;height:140px;margin:-70px 0 0 -70px;animation:2.8s ease-out infinite welcome-ring-pulse;position:absolute;top:0;left:0}.welcome-ring--2{animation-delay:.7s}.welcome-ring--3{animation-delay:1.4s}@keyframes welcome-ring-pulse{0%{opacity:.6;transform:scale(.5)}to{opacity:0;transform:scale(2.6)}}.welcome-flag-frame{aspect-ratio:3/2;border:1px solid var(--blue-400);width:168px;animation:.9s cubic-bezier(.16,1,.3,1) both welcome-flag-in;position:relative;overflow:hidden;box-shadow:0 0 0 6px #3b82f614,0 0 40px #3b82f673}@keyframes welcome-flag-in{0%{opacity:0;filter:blur(8px);transform:scale(.82)}to{opacity:1;filter:blur();transform:scale(1)}}.welcome-flag{object-fit:cover;width:100%;height:100%;display:block}.welcome-flag-sweep{background:linear-gradient(115deg,#0000 40%,#ffffff8c 50%,#0000 60%);animation:2.6s ease-in-out .9s infinite welcome-sweep;position:absolute;inset:0;transform:translate(-120%)}@keyframes welcome-sweep{0%{transform:translate(-120%)}40%,to{transform:translate(120%)}}.welcome-eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--blue-400);opacity:0;margin:28px 0 6px;font-size:11px;font-weight:700;animation:.7s .5s both welcome-rise}.welcome-title{letter-spacing:.01em;color:var(--white);text-shadow:0 0 24px #3b82f680;opacity:0;margin:0;font-size:26px;font-weight:800;animation:.7s .65s both welcome-rise}@keyframes welcome-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.welcome-scanbar{opacity:0;background:#ffffff1f;width:220px;height:2px;margin-top:32px;animation:.7s .8s both welcome-rise;position:relative;overflow:hidden}.welcome-scanbar-fill{background:linear-gradient(90deg, transparent, var(--blue-400), transparent);width:40%;animation:1.6s ease-in-out infinite welcome-scan;position:absolute;inset:0}@keyframes welcome-scan{0%{transform:translate(-100%)}to{transform:translate(350%)}}@media (width<=480px){.welcome-flag-frame{width:132px}.welcome-title{font-size:21px}}.institution-blocked{text-align:center;background:var(--page-bg);flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:100svh;padding:32px;display:flex}.institution-blocked-logo{height:56px;margin-bottom:12px}.institution-blocked-icon{background:var(--danger-bg);border:1px solid var(--danger-border);width:56px;height:56px;color:var(--danger);justify-content:center;align-items:center;margin-bottom:8px;display:flex}.institution-blocked h1{color:var(--text-primary);margin:0;font-size:20px;font-weight:700}.institution-blocked p{max-width:420px;color:var(--text-secondary);margin:0 0 16px;font-size:14px}.institution-blocked-logout{background:var(--surface);border:1px solid var(--border);height:40px;color:var(--text-secondary);cursor:pointer;align-items:center;gap:8px;padding:0 18px;font-size:13.5px;font-weight:600;display:flex}.institution-blocked-logout:hover{border-color:var(--danger);color:var(--danger)}.auth-splash{background:var(--page-bg);flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:100svh;display:flex}.auth-splash-logo{height:48px;animation:1.4s ease-in-out infinite auth-splash-pulse}.auth-splash-ring{border:3px solid var(--border);border-top-color:var(--blue-500);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite auth-splash-spin}@keyframes auth-splash-spin{to{transform:rotate(360deg)}}@keyframes auth-splash-pulse{0%,to{opacity:1}50%{opacity:.55}}.back-link{width:fit-content;color:var(--text-secondary);align-items:center;gap:6px;font-size:13px;font-weight:500;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--blue-600)}.theme-toggle{background:var(--surface-muted);border:1px solid var(--border);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;justify-content:center;align-items:center;display:flex}.two-factor{flex-direction:column;align-items:stretch;gap:14px;display:flex}.two-factor-text{color:var(--text-secondary);margin:0;font-size:13.5px;line-height:1.55}.two-factor-steps{color:var(--text-secondary);margin:0;padding-left:20px;font-size:13.5px;line-height:1.55}.two-factor-qr{border:1px solid var(--border);background:#fff;align-self:center;padding:10px;line-height:0}.two-factor-manual code{background:var(--surface-muted);border:1px solid var(--border);color:var(--text-primary);letter-spacing:.08em;word-break:break-all;-webkit-user-select:all;user-select:all;margin-top:6px;padding:8px 10px;font-family:Courier New,monospace;font-size:14px;display:block}.two-factor-form{flex-direction:column;gap:8px;display:flex}.two-factor-form label{color:var(--text-secondary);font-size:13px;font-weight:600}.two-factor-form input{background:var(--surface-muted);border:1px solid var(--border);height:46px;color:var(--text-primary);letter-spacing:.25em;text-align:center;padding:0 12px;font-family:Courier New,monospace;font-size:20px}.two-factor-form input:focus{border-color:var(--blue-500);outline:none}.two-factor-primary,.two-factor-secondary{cursor:pointer;justify-content:center;align-items:center;gap:8px;height:42px;padding:0 16px;font-family:inherit;font-size:14px;font-weight:600;display:inline-flex}.two-factor-primary{background:var(--blue-600);border:1px solid var(--blue-600);color:var(--white)}.two-factor-primary:hover:not(:disabled){background:var(--blue-700)}.two-factor-secondary{background:var(--surface);border:1px solid var(--border);height:36px;color:var(--text-primary)}.two-factor-secondary:hover{border-color:var(--blue-500)}.two-factor-primary:disabled{opacity:.55;cursor:not-allowed}.two-factor-link{color:var(--blue-600);cursor:pointer;background:0 0;border:none;align-self:center;padding:0;font-family:inherit;font-size:12.5px;text-decoration:underline}.two-factor-error{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger);margin:0;padding:10px 12px;font-size:13px}.two-factor-success{background:var(--success-bg);border:1px solid var(--success-border);color:var(--success);align-items:center;gap:8px;padding:10px 12px;font-size:13.5px;display:flex}.two-factor-codes{background:var(--surface-muted);border:1px dashed var(--border-strong);letter-spacing:.06em;color:var(--text-primary);grid-template-columns:repeat(2,1fr);gap:6px 14px;margin:0;padding:12px 14px;font-family:Courier New,monospace;font-size:15px;list-style:none;display:grid}.two-factor-codes li{-webkit-user-select:all;user-select:all}.two-factor-actions{gap:8px;display:flex}.two-factor-check{color:var(--text-primary);cursor:pointer;align-items:center;gap:8px;font-size:13.5px;font-weight:600;display:flex}.login-page{background:var(--page-bg);grid-template-columns:1.1fr 1fr;min-height:100svh;display:grid;position:relative}.login-theme-toggle{z-index:10;position:absolute;top:24px;right:24px}.login-showcase{background:var(--navy-950);flex-direction:column;min-height:100svh;display:flex;position:relative;overflow:hidden}.login-showcase-frame{flex:1;min-height:0;position:relative;overflow:hidden}.login-showcase-frame:after{content:"";z-index:1;pointer-events:none;background:linear-gradient(180deg, transparent, var(--navy-950));height:72px;position:absolute;bottom:0;left:0;right:0}.login-showcase-track{height:100%;transition:transform .85s cubic-bezier(.22,1,.36,1);display:flex;position:absolute;inset:0}.login-showcase-photo{object-fit:cover;object-position:center 30%;flex:0 0 100%;width:100%;height:100%}.login-showcase-dots{z-index:2;gap:8px;display:flex;position:absolute;bottom:16px;left:40px}.login-showcase-dots button{cursor:pointer;background:#ffffff73;border:0;border-radius:2px;width:22px;height:3px;padding:0;transition:width .25s,background .25s}.login-showcase-dots button.is-active{background:#fff;width:36px}.login-showcase:after{content:"";z-index:2;background:linear-gradient(90deg, var(--blue-600) 0 33.333%, #f7d618 33.333% 66.666%, #ce1126 66.666% 100%);height:4px;position:absolute;bottom:0;left:0;right:0}.login-showcase-content{z-index:1;flex-direction:column;flex:none;align-items:flex-start;gap:12px;padding:8px 40px 28px;display:flex;position:relative}.login-showcase-logo{width:132px;height:auto}.login-showcase-tagline{color:#fff;max-width:18ch;margin:0;font-size:26px;font-weight:600;line-height:1.3}.login-form-section{background:var(--surface);justify-content:center;align-items:center;padding:32px;display:flex}.login-form-wrap{width:100%;max-width:360px}.login-form-logo{width:140px;height:auto;margin-bottom:24px;display:none}.login-form-wrap h1{color:var(--text-primary);font-size:28px;font-weight:700}.login-subtitle{color:var(--text-muted);margin-top:8px;font-size:14px}.login-error{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-border);margin-top:20px;padding:12px 14px;font-size:13px}.login-suggestions{background:var(--surface-muted);border:1px solid var(--border);flex-direction:column;align-items:flex-start;gap:8px;margin-top:14px;padding:14px 16px;display:flex}.login-suggestions p{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 2px;font-size:12.5px;font-weight:600}.login-suggestion{color:var(--blue-600);align-items:center;gap:8px;font-size:13.5px;font-weight:600;text-decoration:none;display:inline-flex}.login-suggestion:hover{color:var(--blue-700);text-decoration:underline}.login-form{flex-direction:column;gap:18px;margin-top:28px;display:flex}.login-field{flex-direction:column;gap:8px;display:flex}.login-field label{color:var(--text-secondary);font-size:13px;font-weight:600}.login-input{background:var(--surface-muted);border:1px solid var(--border);height:46px;color:var(--text-muted);align-items:center;gap:10px;padding:0 12px;transition:border-color .15s;display:flex}.login-input:focus-within{border-color:var(--blue-500);color:var(--blue-500)}.login-input input{height:100%;color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:14px}.login-input input::placeholder{color:var(--text-muted)}.login-input-toggle{color:inherit;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:flex}.login-forgot{color:var(--blue-600);cursor:pointer;background:0 0;border:none;align-self:flex-end;margin-top:-6px;padding:0;font-family:inherit;font-size:13px;font-weight:600}.login-forgot:hover{color:var(--blue-700)}.login-note{color:var(--success);background:var(--success-bg);border:1px solid var(--success-border);margin-top:20px;padding:12px 14px;font-size:13px;line-height:1.5}.login-submit{background:var(--blue-600);height:46px;color:var(--white);border:1px solid var(--blue-600);cursor:pointer;justify-content:center;align-items:center;gap:8px;margin-top:8px;font-size:14px;font-weight:600;transition:background .15s;display:flex}.login-submit:hover:not(:disabled){background:var(--blue-700)}.login-submit:disabled{opacity:.7;cursor:not-allowed}@media (width<=900px){.login-page{grid-template-rows:auto 1fr;grid-template-columns:1fr}.login-showcase{min-height:0}.login-showcase-frame{flex:none;height:188px}.login-showcase-content{gap:8px;padding:14px 24px 22px}.login-showcase-dots{bottom:12px;left:24px}.login-showcase-logo{width:92px}.login-showcase-tagline{max-width:none;font-size:16px}.login-form-section{padding:24px}}@media (prefers-reduced-motion:reduce){.login-showcase-track{transition:none}}.card{background:var(--surface);border:1px solid var(--border);border-radius:0;flex-direction:column;padding:20px;display:flex}.card-title{color:var(--text-primary);margin:0 0 16px;font-size:15px;font-weight:600}.card-empty{border:1px dashed var(--border-strong);background:repeating-linear-gradient(135deg, var(--surface-muted), var(--surface-muted) 10px, var(--surface) 10px, var(--surface) 20px);flex:1;width:100%;min-height:60px}:root{--skeleton-base:color-mix(in srgb, var(--border) 55%, transparent);--skeleton-shine:color-mix(in srgb, var(--border) 18%, transparent)}.skeleton{background:linear-gradient(90deg, var(--skeleton-base) 25%, var(--skeleton-shine) 50%, var(--skeleton-base) 75%);background-size:300% 100%;width:100%;height:12px;animation:1.4s ease-in-out infinite skeleton-shimmer;display:block}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:0 0}}.skeleton-row td{padding-top:14px;padding-bottom:14px}.skeleton-sr{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.loading-state{color:var(--text-secondary);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:36px 16px;font-size:13px;display:flex}.loading-state--compact{flex-direction:row;justify-content:flex-start;gap:10px;padding:12px 0}.loading-spinner{border:3px solid var(--skeleton-base);border-top-color:var(--blue-500);border-radius:50%;flex:none;width:26px;height:26px;animation:.8s linear infinite loading-spin}.loading-state--compact .loading-spinner{border-width:2px;width:16px;height:16px}@keyframes loading-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}.loading-spinner{animation-duration:2.4s}}.stats-bar{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;width:100%;min-width:0;margin-bottom:20px;display:grid}.stats-tile{background:var(--surface);border:1px solid var(--border);border-top:2px solid var(--blue-500);flex-direction:column;gap:6px;padding:14px 16px;display:flex}.stats-tile-value{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:24px;font-weight:700;line-height:1.1}.stats-tile-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;line-height:1.2}.stats-tile-value--loading{align-items:center;min-height:26px;display:flex}.province-chart-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.province-chart-row{grid-template-columns:minmax(90px,140px) 1fr auto;align-items:center;gap:12px;font-size:13px;display:grid}.province-chart-label{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.province-chart-track{background:var(--surface-muted);border:1px solid var(--border);height:10px;display:block}.province-chart-bar{background:var(--blue-500);height:100%;display:block}.province-chart-value{text-align:right;min-width:24px;color:var(--text-primary);font-weight:600}.province-chart-empty{color:var(--text-muted);font-size:13px}.nstats{background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:16px;padding:24px;display:flex}.nstats-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.nstats-head h2{font-size:18px;font-weight:700}.nstats-head p{color:var(--text-secondary);margin-top:4px;font-size:13px}.nstats-reset,.nstats-toggle{color:var(--blue-600);border:1px solid var(--border-strong);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:600;display:inline-flex}.nstats-reset:hover,.nstats-toggle:hover{background:var(--surface-muted)}.nstats-filters{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.nstats-filters--advanced{background:var(--surface-muted);border:1px solid var(--border);padding:14px}.nstats-field{min-width:170px;color:var(--text-muted);flex-direction:column;gap:4px;font-size:12px;font-weight:600;display:flex}.nstats-field select,.nstats-search input{color:var(--text-primary);background:var(--surface);border:1px solid var(--border-strong);padding:8px 10px;font-size:13.5px}.nstats-school{min-width:260px}.nstats-search{align-items:center;display:flex;position:relative}.nstats-search>svg{color:var(--text-muted);position:absolute;left:9px}.nstats-search input{width:100%;padding-left:28px}.nstats-hits{z-index:20;background:var(--surface);border:1px solid var(--border-strong);max-height:260px;margin:0;padding:0;list-style:none;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0b18302e}.nstats-hits button{text-align:left;width:100%;color:var(--text-primary);cursor:pointer;background:0 0;border:0;flex-direction:column;padding:8px 10px;display:flex}.nstats-hits button:hover{background:var(--surface-muted)}.nstats-hits small,.nstats-hit--empty{color:var(--text-muted);font-size:11.5px;font-weight:400}.nstats-hit--empty{padding:10px}.nstats-chip{color:var(--blue-700);background:var(--blue-100);border:1px solid var(--blue-300);cursor:pointer;align-items:center;gap:6px;padding:8px 10px;font-size:13px;font-weight:600;display:inline-flex}.nstats-error{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-border);padding:10px 12px;font-size:13px}.nstats-body{flex-direction:column;gap:16px;transition:opacity .15s;display:flex}.nstats-body--loading{opacity:.55}.nstats-empty{color:var(--text-secondary);padding:16px 4px;font-size:13.5px}.nstats-kpis{grid-template-columns:1.6fr repeat(5,1fr);gap:12px;display:grid}.nstats-kpi{background:var(--surface-muted);border:1px solid var(--border);border-top:3px solid var(--blue-500);flex-direction:column;gap:2px;padding:14px 16px;display:flex}.nstats-kpi--main{border-top-color:var(--success)}.nstats-kpi-value{color:var(--text-primary);font-size:26px;font-weight:800;line-height:1.15}.nstats-kpi--main .nstats-kpi-value{color:var(--success);font-size:34px}.nstats-kpi-label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary);font-size:12px;font-weight:700}.nstats-kpi-sub{color:var(--text-muted);font-size:12px}.nstats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.nstats-card{background:var(--surface);border:1px solid var(--border);min-width:0;padding:16px}.nstats-card--wide{grid-column:1/-1}.nstats-card header{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:12px;display:flex}.nstats-card h3{font-size:14px;font-weight:700}.nstats-card small{color:var(--text-muted);font-size:11.5px}.nstats-tooltip{color:var(--text-primary);background:var(--surface);border:1px solid var(--border-strong);flex-direction:column;gap:2px;padding:8px 10px;font-size:12.5px;display:flex}.nstats-table-wrap{overflow-x:auto}.nstats-table{border-collapse:collapse;width:100%;font-size:13px}.nstats-table th,.nstats-table td{text-align:right;border-bottom:1px solid var(--border);padding:7px 10px}.nstats-table th:first-child,.nstats-table td:first-child{text-align:left}.nstats-table th{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-size:11.5px;font-weight:700}.nstats-ranking{counter-reset:rank;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.nstats-ranking li{border-bottom:1px solid var(--border);counter-increment:rank;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:7px 4px;font-size:13px;display:grid}.nstats-ranking li:before{content:none}.nstats-ranking-name{flex-direction:column;min-width:0;font-weight:600;display:flex}.nstats-ranking-rate{color:var(--text-primary);font-weight:800}.nstats-ranking-count{text-align:right;min-width:70px;color:var(--text-muted);font-size:12px}@media (width<=1100px){.nstats-kpis{grid-template-columns:repeat(3,1fr)}.nstats-kpi--main{grid-column:1/-1}.nstats-grid{grid-template-columns:1fr}}@media (width<=600px){.nstats{padding:16px}.nstats-kpis{grid-template-columns:1fr 1fr}.nstats-head{flex-direction:column}.nstats-field{min-width:100%}}.nstats-head-actions{flex-wrap:wrap;gap:8px;display:flex}.avatar-image{color:var(--blue-700);background:var(--blue-100);border:1px solid var(--blue-300);-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:600;display:inline-flex;overflow:hidden}.avatar-image img{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.avatar-image--chrome{color:var(--blue-200);background:var(--navy-800);border-color:var(--blue-600)}.details-modal-backdrop{z-index:100;background:#060e218c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.details-modal{background:var(--surface);border:1px solid var(--border);flex-direction:column;width:100%;max-width:520px;max-height:85vh;display:flex}.details-modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.details-modal-header h3{color:var(--text-primary);font-size:15px;font-weight:600}.details-modal-close{background:var(--surface-muted);border:1px solid var(--border);width:30px;height:30px;color:var(--text-secondary);cursor:pointer;justify-content:center;align-items:center;display:flex}.details-modal-close:hover{color:var(--danger)}.details-modal-body{flex-direction:column;gap:20px;padding:20px;display:flex;overflow-y:auto}.details-modal-section h4{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:10px;font-size:12px;font-weight:700}.details-modal-grid{grid-template-columns:minmax(110px,auto) 1fr;gap:6px 16px;font-size:13px;display:grid}.details-modal-grid dt{color:var(--text-muted)}.details-modal-grid dd{color:var(--text-primary);overflow-wrap:anywhere;margin:0}@media (width<=360px){.details-modal-grid{grid-template-columns:1fr;gap:2px 0}.details-modal-grid dd{margin-bottom:8px}}.details-modal-subtitle{color:var(--text-muted);margin:10px 0 4px;font-size:12px;font-weight:600}.details-modal-json{background:var(--surface-muted);border:1px solid var(--border);white-space:pre-wrap;word-break:break-word;color:var(--text-primary);margin:0;padding:10px;font-size:12px;line-height:1.5;overflow-x:auto}.details-modal-tags{flex-wrap:wrap;gap:6px;margin-top:10px;padding:0;display:flex}.details-modal-tags li{background:var(--blue-100);color:var(--blue-700);padding:3px 8px;font-size:11px}.details-modal--wide{max-width:980px}.user-activity-error{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-border);margin:0;padding:10px 12px;font-size:13px}.user-activity-summary{background:var(--surface-muted);border:1px solid var(--border);flex-direction:column;gap:14px;padding:14px 16px;display:flex}.user-activity-summary h4{color:var(--text-primary);align-items:center;gap:10px;margin:0 0 2px;font-size:15px;display:flex}.user-activity-summary p{color:var(--text-secondary);margin:0;font-size:12.5px}.user-activity-summary dl{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px 16px;margin:0;display:grid}.user-activity-summary dt{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin-bottom:2px;font-size:10.5px;font-weight:600}.user-activity-summary dd{color:var(--text-primary);overflow-wrap:anywhere;margin:0;font-size:13px}.user-activity-device{align-items:center;gap:6px;display:inline-flex}.user-activity-badge{padding:2px 8px;font-size:11px;font-weight:600}.user-activity-badge--online{color:var(--success);background:var(--success-bg);border:1px solid var(--success-border)}.user-activity-badge--offline{color:var(--text-secondary);background:var(--surface);border:1px solid var(--border)}.user-activity-heading{color:var(--text-primary);align-items:center;gap:8px;margin:0 0 10px;font-size:13px;font-weight:600;display:flex}.user-activity-muted{color:var(--text-muted);margin:0;font-size:12.5px}.user-activity-list{border:1px solid var(--border);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.user-activity-item{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 14px;display:flex}.user-activity-item:last-child{border-bottom:none}.user-activity-item--alert{background:var(--danger-bg)}.user-activity-icon{width:30px;height:30px;color:var(--blue-600);background:var(--blue-100);border:1px solid var(--blue-300);flex:none;justify-content:center;align-items:center;display:flex}.user-activity-item--alert .user-activity-icon{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-border)}.user-activity-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.user-activity-label{color:var(--text-primary);align-items:center;gap:8px;font-size:13px;font-weight:500;display:flex}.user-activity-resource{color:var(--text-secondary);background:var(--surface-muted);border:1px solid var(--border);padding:1px 6px;font-size:10.5px;font-weight:600}.user-activity-meta{color:var(--text-muted);font-size:11.5px}.user-activity-time{color:var(--text-secondary);white-space:nowrap;flex:none;font-size:12px}.user-activity-meta code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.user-activity-identity{align-items:center;gap:14px;display:flex}.online-users{background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:16px;padding:20px;display:flex}.online-users-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.online-users-title{color:var(--text-primary);align-items:center;gap:10px;margin:0 0 4px;font-size:15px;font-weight:600;display:flex}.online-users-subtitle{max-width:620px;color:var(--text-secondary);margin:0;font-size:12.5px;line-height:1.5}.online-users-live{color:var(--success);background:var(--success-bg);border:1px solid var(--success-border);align-items:center;gap:6px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.online-users-dot{background:var(--success);border-radius:50%;flex:none;width:8px;height:8px;position:relative}.online-users-dot:after{content:"";background:var(--success);border-radius:50%;animation:1.8s ease-out infinite online-pulse;position:absolute;inset:0}@keyframes online-pulse{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(2.6)}}.online-users-search{min-width:220px;height:36px;color:var(--text-muted);background:var(--surface-muted);border:1px solid var(--border);align-items:center;gap:8px;padding:0 10px;display:flex}.online-users-search input{min-width:0;color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:13px}.online-users-error{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-border);margin:0;padding:10px 12px;font-size:13px}.online-users-table-wrap{border:1px solid var(--border);overflow-x:auto}.online-users-table{border-collapse:collapse;width:100%;font-size:13px}.online-users-table th{text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);background:var(--surface-muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 14px;font-size:11px;font-weight:600}.online-users-table td{color:var(--text-primary);border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 14px}.online-users-table tbody tr:last-child td{border-bottom:none}.online-users-row{cursor:pointer;transition:background .12s}.online-users-row:hover,.online-users-row:focus-visible{background:var(--surface-muted);outline:none}.online-users-row:focus-visible{box-shadow:inset 2px 0 0 var(--blue-500)}.online-users-name,.online-users-device{align-items:center;gap:8px;display:inline-flex}.online-users-device{color:var(--text-secondary)}.online-users-sub{color:var(--text-muted);margin-top:2px;font-size:11.5px;display:block}.online-users-name+.online-users-sub{margin-left:16px}.online-users-you{color:var(--blue-700);background:var(--blue-100);border:1px solid var(--blue-300);padding:1px 6px;font-size:10.5px;font-weight:600}.online-users-open{text-align:right;width:36px;color:var(--text-muted)}.online-users-row:hover .online-users-open{color:var(--blue-600)}.online-users-empty{text-align:center;color:var(--text-muted);padding:28px 14px}@media (prefers-reduced-motion:reduce){.online-users-dot:after{animation:none}}.online-users-table td:first-child{min-width:190px}.online-users-avatar{display:inline-flex;position:relative}.online-users-dot--badge{box-shadow:0 0 0 2px var(--surface);position:absolute;bottom:-2px;right:-2px}.online-users-name+.online-users-sub--indent{margin-left:40px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:0;align-items:center;gap:16px;padding:20px;display:flex}.stat-card--clickable{cursor:pointer;text-decoration:none;transition:border-color .15s,box-shadow .15s}.stat-card--clickable:hover{border-color:var(--blue-600);box-shadow:0 0 0 1px color-mix(in srgb, var(--blue-600) 28%, transparent)}.stat-card-icon{background:var(--blue-100);border:1px solid var(--blue-300);width:44px;height:44px;color:var(--blue-600);flex-shrink:0;justify-content:center;align-items:center;display:flex}.stat-card-lines{flex-direction:column;flex:1;gap:10px;display:flex}.stat-line{background:var(--blue-100);height:10px;display:block}.stat-line--label{background:var(--border);width:55%;height:8px}.stat-line--value{background:var(--text-primary);opacity:.15;width:35%;height:16px}.stat-card-content{flex-direction:column;gap:4px;display:flex}.stat-card-label{color:var(--text-muted);font-size:12px}.stat-card-value{color:var(--text-primary);font-size:22px;font-weight:700}.dashboard{flex-direction:column;gap:24px;padding:32px;display:flex}.stat-grid{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.panel-grid{grid-template-columns:2fr 1fr;gap:20px;display:grid}.table-grid{grid-template-columns:1fr;display:grid}@media (width<=1100px){.stat-grid{grid-template-columns:repeat(2,1fr)}.panel-grid{grid-template-columns:1fr}}@media (width<=600px){.stat-grid{grid-template-columns:1fr}.dashboard{padding:20px}}.my-allocations{flex-direction:column;gap:28px;padding:32px;display:flex}.my-allocations-hero{background:radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--blue-500) 22%, transparent), transparent 55%), linear-gradient(135deg, color-mix(in srgb, var(--blue-600) 14%, var(--surface)), var(--surface));border:1px solid var(--border);border-left:4px solid var(--blue-600);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;padding:28px 32px;display:flex}.my-allocations-kicker{letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--blue-600)!important;margin:0 0 6px!important;font-size:11.5px!important}.my-allocations-hero h1{color:var(--text-primary);margin:0 0 6px;font-size:26px;font-weight:700}.my-allocations-hero p{max-width:54ch;color:var(--text-secondary);margin:0;font-size:14px;line-height:1.5}.my-allocations-kpis{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}.my-allocations-kpis li{background:var(--surface);border:1px solid var(--border);flex-direction:column;min-width:108px;padding:10px 14px;display:flex}.my-allocations-kpis strong{color:var(--text-primary);font-size:22px;font-weight:700;line-height:1.1}.my-allocations-kpis span{color:var(--text-muted);margin-top:2px;font-size:11.5px}.my-allocations-empty{background:var(--surface-muted);border:1px dashed var(--border-strong);color:var(--text-muted);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:48px 16px;display:flex}.my-allocations-empty-title{color:var(--text-primary);margin:0;font-size:14.5px;font-weight:700}.my-allocations-empty-text{max-width:42ch;margin:0;font-size:13px;line-height:1.5}.my-allocations-year h2{border-bottom:1px solid var(--border);color:var(--text-primary);align-items:center;gap:8px;margin:0 0 14px;padding-bottom:10px;font-size:16px;font-weight:700;display:flex}.my-allocations-year h2 svg{color:var(--blue-600)}.my-allocations-year-count{color:var(--text-muted);margin-left:auto;font-size:12px;font-weight:600}.my-allocations-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.class-card{background:var(--surface);border:1px solid var(--border);transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.class-card:not(.class-card--ended):hover{border-color:var(--blue-500);transform:translateY(-2px);box-shadow:0 8px 24px #0f172a1a}.class-card--ended{opacity:.72}.class-card-link{color:inherit;flex-direction:column;flex:1;gap:10px;padding:20px 18px 16px;text-decoration:none;display:flex;position:relative}.class-card-link--static{cursor:default}.class-card-band{background:var(--border-strong);height:4px;position:absolute;inset:0 0 auto}.class-card-band--PRIM{background:linear-gradient(90deg,#2563eb,#0891b2)}.class-card-band--SEC{background:linear-gradient(90deg,#7c3aed,#db2777)}.class-card-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.class-card-top h3{color:var(--text-primary);margin:0;font-size:17px;font-weight:700;line-height:1.25}.class-card-status{letter-spacing:.04em;text-transform:uppercase;flex-shrink:0;padding:2px 8px;font-size:10.5px;font-weight:700}.class-card-status--active{color:var(--success);background:var(--success-bg)}.class-card-status--ended{color:var(--text-muted);background:var(--surface-muted)}.class-card-tags{flex-wrap:wrap;gap:6px;display:flex}.class-card-cycle,.class-card-tutor{letter-spacing:.03em;text-transform:uppercase;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.class-card-cycle--PRIM{color:#1d4ed8;background:#2563eb1f}.class-card-cycle--SEC{color:#6d28d9;background:#7c3aed1f}.class-card-tutor{color:var(--blue-700);background:var(--blue-100)}.class-card-school{color:var(--text-secondary);align-items:center;gap:6px;margin:0;font-size:13px;display:flex}.class-card-stats{color:var(--text-secondary);flex-wrap:wrap;gap:16px;font-size:13px;display:flex}.class-card-stats span{align-items:center;gap:5px;display:inline-flex}.class-card-stats strong{color:var(--text-primary)}.class-card-courses{flex-wrap:wrap;gap:6px;display:flex}.class-card-course{color:var(--text-primary);background:var(--surface-muted);border:1px solid var(--border);padding:3px 9px;font-size:12px}.class-card-course--more{color:var(--text-muted)}.class-card-open{color:var(--blue-600);align-items:center;gap:6px;margin-top:auto;padding-top:6px;font-size:13px;font-weight:600;display:inline-flex}@media (width<=600px){.my-allocations,.my-allocations-hero{padding:20px}}.toast-viewport{z-index:400;pointer-events:none;flex-direction:column;gap:10px;width:min(380px,100vw - 40px);display:flex;position:fixed;top:20px;right:20px}.toast{background:var(--surface);border:1px solid var(--success-border);border-left:4px solid var(--success);box-shadow:0 12px 32px color-mix(in srgb, var(--navy-950) 18%, transparent);color:var(--text-primary);pointer-events:auto;align-items:flex-start;gap:10px;padding:14px 12px 14px 14px;animation:.18s ease-out toast-in;display:flex}.toast svg{color:var(--success);flex-shrink:0;margin-top:1px}.toast-body{flex:1;min-width:0}.toast-body p{margin:0;font-size:13.5px;font-weight:600;line-height:1.45}.toast-action{color:var(--success);cursor:pointer;background:0 0;border:none;margin-top:8px;padding:0;font-family:inherit;font-size:13px;font-weight:600}.toast-action:hover{text-decoration:underline}.toast-close{width:24px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.toast-close:hover{color:var(--text-primary)}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.grade-entry{flex-direction:column;gap:16px;display:flex}.grade-entry-pickers{flex-wrap:wrap;align-items:flex-end;gap:16px;display:flex}.grade-entry-pickers label,.grade-entry-reopen label{color:var(--text-muted);flex-direction:column;gap:4px;font-size:12px;font-weight:600;display:flex}.grade-entry-pickers select,.grade-entry-reopen input{min-width:220px;color:var(--text-primary);background:var(--surface);border:1px solid var(--border-strong);padding:8px 10px;font-size:13.5px}.grade-entry-meta{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:14px;font-size:13px;display:flex}.grade-entry-badge{letter-spacing:.04em;text-transform:uppercase;padding:2px 9px;font-size:11px;font-weight:700}.grade-entry-badge--open{color:var(--success);background:var(--success-bg)}.grade-entry-badge--closed,.grade-entry-badge--validated{color:var(--text-muted);background:var(--surface-muted)}.grade-entry-note{color:#92400e;background:#fef3c7;border:1px solid #fcd34d;align-items:center;gap:6px;margin:0;padding:10px 14px;font-size:13px;display:flex}.grade-entry-table td:last-child{width:140px}.grade-entry-input{text-align:right;width:100px;color:var(--text-primary);background:var(--surface);border:1px solid var(--border-strong);padding:6px 8px;font-size:14px}.grade-entry-input:disabled{background:var(--surface-muted);color:var(--text-secondary)}.grade-entry-input--bad{color:#b91c1c;border-color:#dc2626}.grade-entry-actions,.grade-entry-reopen{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.grade-entry-btn{color:var(--text-primary);background:var(--surface);border:1px solid var(--border-strong);cursor:pointer;align-items:center;gap:6px;padding:8px 16px;font-size:13.5px;font-weight:600;display:inline-flex}.grade-entry-btn--primary{color:#fff;background:var(--blue-600);border-color:var(--blue-600)}.grade-entry-btn:disabled{opacity:.5;cursor:not-allowed}.grade-entry-many{background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:8px;padding:14px 16px;display:flex}.grade-entry-many h3{color:var(--text-primary);margin:0;font-size:14px}.grade-entry-many p{margin:0}.grade-entry-many ul{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.grade-entry-many li{border-bottom:1px solid var(--border);color:var(--text-primary);justify-content:space-between;align-items:center;gap:12px;padding:6px 0;font-size:13.5px;display:flex}.grade-entry-many label{align-items:center;gap:8px;display:inline-flex}.grade-entry-chip{white-space:nowrap;padding:2px 10px;font-size:12px;font-weight:700}.grade-entry-chip--ready{color:var(--success);background:var(--success-bg)}.grade-entry-chip--incomplete{color:var(--warning);background:var(--warning-bg)}.grade-entry-chip--submitted{color:var(--text-muted);background:var(--surface-muted)}.apl-levels{border-collapse:collapse;width:100%;font-size:13px}.apl-levels th,.apl-levels td{text-align:left;vertical-align:top;border-bottom:1px solid var(--border);color:var(--text-primary);padding:8px 10px}.apl-levels th{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-size:11.5px;font-weight:700}.apl-code{text-align:center;min-width:34px;color:var(--blue-600);background:var(--surface-muted);border:1px solid var(--border-strong);padding:2px 8px;font-weight:800;display:inline-block}.apg{background:var(--surface);border:1px solid var(--blue-600)}.apg-head{width:100%;color:var(--blue-600);background:var(--surface-muted);cursor:pointer;text-align:left;border:none;align-items:center;gap:8px;padding:10px 14px;font-size:13.5px;font-weight:700;display:flex}.apg-head span{flex:1}.apg-body{color:var(--text-secondary);flex-direction:column;gap:10px;padding:14px 16px;font-size:13px;line-height:1.55;display:flex}.apg-body p,.apg-body h3,.apg-body ul{margin:0}.apg-body h3{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-size:12px;font-weight:700}.apg-body ul{padding-left:18px}.apg-body .grade-entry-btn{align-self:flex-start}.rc-sheet{color:#000;background:#fff;border:1px solid #000;padding:0;font-family:Calibri,Segoe UI,Arial,sans-serif;font-size:12px;position:relative;box-shadow:0 4px 18px #0f172a14}.rc-draft{letter-spacing:.06em;text-transform:uppercase;color:#b45309;background:#fef3c7;border:1px dashed #d97706;padding:2px 10px;font-family:system-ui,sans-serif;font-size:11px;font-weight:700;position:absolute;top:8px;right:92px}.rc-head{border-bottom:1px solid #000;justify-content:space-between;align-items:center;gap:12px;padding:6px 12px;display:flex}.rc-flag{width:84px;height:auto}.rc-arms{width:68px;height:auto}.rc-head-title{text-align:center;margin:0;font-size:17px;font-weight:700;line-height:1.25}.rc-line{border-bottom:1px solid #000;align-items:center;gap:8px;padding:2px 6px;display:flex}.rc-boxes{display:inline-flex}.rc-box{text-align:center;border:1px solid #000;width:16px;height:14px;margin-right:-1px;font-size:11px;line-height:14px;display:inline-block}.rc-identity{border-bottom:1px solid #000;grid-template-columns:1fr 1fr;gap:2px 18px;padding:3px 6px;display:grid}.rc-identity>div{border-bottom:1px dotted #6b7280;padding-bottom:1px}.rc-sex{float:right}.rc-bull{text-align:center;border-bottom:1px solid #000;margin:0;padding:3px 0;font-size:12px;font-weight:700}.rc-scroll{overflow-x:auto}.rc-table{table-layout:fixed;border-collapse:collapse;width:100%;min-width:720px;font-size:11px}.rc-table th,.rc-table td{text-align:center;vertical-align:middle;border:1px solid #000;padding:1px 2px;line-height:1.2;overflow:hidden}.rc-table th{font-size:10px}.rc-h-small{font-size:9px!important}.rc-h-black,.rc-c-black{background:#000}.rc-label{white-space:nowrap;text-overflow:clip;font-weight:700;overflow:hidden;text-align:left!important;padding-left:3px!important}.rc-c-max{font-weight:700}.rc-c-na{background:repeating-linear-gradient(45deg,#f9fafb,#f9fafb 4px,#e5e7eb 4px 8px)}.rc-row-domain td,.rc-row-sub td{text-transform:uppercase;font-weight:700}.rc-row-sub td{text-transform:none}.rc-row-subtotal .rc-label,.rc-row-maxima .rc-label{font-weight:700}.rc-row-subtotal td{font-size:13px;font-weight:800}.rc-c-box{font-size:10px;line-height:1.55;text-align:left!important;vertical-align:top!important;padding:3px 4px!important}.rc-struck{text-decoration:line-through}.rc-verdicts{margin:6px 0 0;padding:0 10px 0 22px;font-size:11.5px;list-style:"- "}.rc-final{margin:4px 10px;font-size:12px}.rc-foot{flex-wrap:wrap;justify-content:space-between;gap:4px 16px;padding:8px 10px 6px;font-size:11.5px;display:flex}.rc-foot p{color:#4b5563;flex-basis:100%;margin:0;font-size:10px}@media print{.rc-sheet{box-shadow:none;border:none}}.rc-list-wrap{background:var(--surface);border:1px solid var(--border);overflow-x:auto}.rc-list{border-collapse:collapse;width:100%;font-size:13.5px}.rc-list th,.rc-list td{text-align:left;border-bottom:1px solid var(--border);color:var(--text-primary);white-space:nowrap;padding:10px 14px}.rc-list th{letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);background:var(--surface-muted);font-size:11.5px;font-weight:700}.rc-list tbody tr:last-child td{border-bottom:none}.rc-list-action{text-align:right!important}.rc-list-action a,.rc-list-action button{color:var(--blue-600);cursor:pointer;background:0 0;border:none;font-size:13px;font-weight:600;text-decoration:none}.rc-list-action a:hover,.rc-list-action button:hover{text-decoration:underline}.rc-list-empty{color:var(--text-muted);margin:0;font-size:13.5px}.rc-status{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);background:var(--surface-muted);padding:2px 8px;font-size:11px;font-weight:700}.rc-status--draft{color:#b45309;background:#fef3c7}.rc-status--published{color:var(--success);background:var(--success-bg)}.rc-download{color:var(--text-primary);background:var(--surface);border:1px solid var(--border-strong);cursor:pointer;align-self:flex-start;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;display:inline-flex}.rc-download:hover{border-color:var(--blue-500);color:var(--blue-600)}.gs-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.gs-periods{flex-wrap:wrap;gap:6px;display:flex}.gs-period{color:var(--text-secondary);background:var(--surface);border:1px solid var(--border);cursor:pointer;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:600;display:inline-flex}.gs-period:hover{border-color:var(--border-strong)}.gs-period--active{color:var(--blue-600);border-color:var(--blue-600);box-shadow:inset 0 -2px 0 var(--blue-600)}.gs-period--validated{color:var(--success)}.gs-period-state{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.gs-cell-input{width:140px;color:var(--text-primary);background:var(--surface);border:1px solid var(--border-strong);padding:6px 8px;font-size:13px}.gs-cell-input:disabled{background:var(--surface-muted);color:var(--text-muted)}.gs-cell-error{color:var(--danger);white-space:normal;margin-top:2px;font-size:11.5px;display:block}.delib-badge{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);background:var(--surface-muted);padding:2px 9px;font-size:11px;font-weight:700}.delib-badge--planned{color:#1d4ed8;background:#2563eb1f}.delib-badge--open{color:#92400e;background:#fef3c7}.delib-badge--closed{color:var(--success);background:var(--success-bg)}.delib-closing{text-transform:uppercase;color:#6d28d9;background:#7c3aed1f;margin-left:8px;padding:1px 7px;font-size:10.5px;font-weight:700}.delib-page{flex-direction:column;gap:18px;display:flex}.delib-card{background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:12px;padding:18px 20px;display:flex}.delib-card h2{color:var(--text-primary);margin:0;font-size:15px;font-weight:700}.delib-form{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));align-items:end;gap:12px;display:grid}.delib-form label{color:var(--text-muted);flex-direction:column;gap:4px;font-size:12px;font-weight:600;display:flex}.delib-form input,.delib-table input,.delib-table select{color:var(--text-primary);background:var(--surface);border:1px solid var(--border-strong);padding:7px 9px;font-size:13px}.delib-jury{color:var(--text-secondary);flex-wrap:wrap;gap:18px;margin:0;font-size:13.5px;display:flex}.delib-jury strong{color:var(--text-primary)}.delib-table input[type=text]{width:220px}.delib-table .delib-exam{text-align:right;width:70px}.delib-diff{color:#b45309;font-weight:700}.delib-checks{color:#b91c1c;flex-direction:column;gap:6px;margin:0;padding:0;font-size:13.5px;list-style:none;display:flex}.delib-checks li{align-items:center;gap:6px;display:flex}.delib-actions{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.delib-when{color:var(--text-muted);flex-direction:column;gap:4px;font-size:12px;font-weight:600;display:flex}.delib-when input{color:var(--text-primary);background:var(--surface);border:1px solid var(--border-strong);padding:7px 9px;font-size:13px}.delib-ready{color:var(--success);font-size:10px;line-height:1}.teaching-page{flex-direction:column;gap:22px;padding:32px;display:flex}.teaching-hero{background:var(--surface);border:1px solid var(--border);border-top:4px solid var(--border-strong);padding:24px 28px}.teaching-hero--PRIM{border-top-color:#2563eb}.teaching-hero--SEC{border-top-color:#7c3aed}.teaching-hero h1{color:var(--text-primary);margin:10px 0 6px;font-size:26px;font-weight:700}.teaching-hero p{color:var(--text-secondary);align-items:center;gap:6px;margin:0;font-size:13.5px;display:flex}.teaching-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:4px;display:flex}.teaching-tabs button{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:8px;margin-bottom:-1px;padding:10px 16px;font-size:13.5px;font-weight:600;display:inline-flex}.teaching-tabs button:hover{color:var(--text-primary)}.teaching-tabs button.active{color:var(--blue-600);border-bottom-color:var(--blue-600)}.teaching-soon{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--surface-muted);padding:1px 6px;font-size:10px;font-weight:700}.teaching-overview{flex-direction:column;gap:22px;display:flex}.teaching-stats{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.teaching-stat{background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:2px;padding:14px 16px;display:flex}.teaching-stat-icon{color:var(--blue-600)}.teaching-stat strong{color:var(--text-primary);font-size:24px;font-weight:700}.teaching-stat>span:last-child{color:var(--text-muted);font-size:12px}.teaching-block{background:var(--surface);border:1px solid var(--border);padding:20px 22px}.teaching-block h2{color:var(--text-primary);margin:0 0 14px;font-size:15px;font-weight:700}.teaching-muted{color:var(--text-muted);margin:0;font-size:13.5px}.teaching-teachers{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.teaching-teachers li{border-bottom:1px solid var(--border);flex-direction:column;gap:6px;padding-bottom:12px;display:flex}.teaching-teachers li:last-child{border-bottom:none;padding-bottom:0}.teaching-teachers-name{color:var(--text-primary);align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.teaching-chips{flex-wrap:wrap;gap:6px;display:flex}.teaching-courses{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.teaching-courses li{background:var(--surface-muted);border:1px solid var(--border);color:var(--text-primary);flex-direction:column;gap:2px;padding:10px 12px;font-size:13.5px;display:flex}.teaching-courses li span{color:var(--text-muted);font-size:12px}.teaching-table-wrap{background:var(--surface);border:1px solid var(--border);overflow-x:auto}.teaching-table{border-collapse:collapse;width:100%;font-size:13.5px}.teaching-table th,.teaching-table td{text-align:left;border-bottom:1px solid var(--border);color:var(--text-primary);white-space:nowrap;padding:10px 14px}.teaching-table th{letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);background:var(--surface-muted);font-size:11.5px;font-weight:700}.teaching-table tbody tr:last-child td{border-bottom:none}@media (width<=600px){.teaching-page{padding:20px}}.teaching-sheet{flex-direction:column;gap:14px;display:flex}.teaching-sheet-back{color:var(--blue-600);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:13.5px;font-weight:600}.rc-page{flex-direction:column;gap:18px;display:flex}.rc-page-empty{text-align:center;color:var(--text-muted);background:var(--surface-muted);border:1px dashed var(--border-strong);margin:0;padding:36px 16px;font-size:13.5px}.rc-page-wrap{background:var(--surface);border:1px solid var(--border);overflow-x:auto}.rc-page-table{border-collapse:collapse;width:100%;font-size:13.5px}.rc-page-table th,.rc-page-table td{text-align:left;border-bottom:1px solid var(--border);color:var(--text-primary);white-space:nowrap;padding:11px 14px}.rc-page-table th{letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);background:var(--surface-muted);font-size:11.5px;font-weight:700}.rc-page-table tbody tr:last-child td{border-bottom:none}.rc-page-table a{color:var(--blue-600);font-weight:600;text-decoration:none}.rc-page-warn{font-weight:700;color:#b45309!important}.rc-page-badge{color:var(--text-muted);background:var(--surface-muted);padding:2px 8px;font-size:11.5px;font-weight:700}.rc-page-badge--ok{color:var(--success);background:var(--success-bg)}.rc-page-actions{justify-content:flex-end;gap:8px;display:flex}.rc-page-actions button{color:var(--text-primary);background:var(--surface);border:1px solid var(--border-strong);cursor:pointer;align-items:center;gap:6px;padding:6px 12px;font-size:12.5px;font-weight:600;display:inline-flex}.rc-page-actions button:hover:not(:disabled){border-color:var(--blue-500);color:var(--blue-600)}.rc-page-actions button:disabled{opacity:.5;cursor:not-allowed}.rc-page-badge--warn{color:#92400e;background:#fef3c7;margin-left:6px}.confirm-dialog-backdrop{z-index:100;background:#060e218c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.confirm-dialog{background:var(--surface);border:1px solid var(--border);width:100%;max-width:360px;padding:20px}.confirm-dialog h3{color:var(--text-primary);margin:0 0 8px;font-size:15px;font-weight:600}.confirm-dialog p{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.confirm-dialog-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.confirm-dialog-cancel{border:1px solid var(--border);height:34px;color:var(--text-secondary);cursor:pointer;background:0 0;padding:0 14px;font-size:13px}.confirm-dialog-confirm{background:var(--blue-600);border:1px solid var(--blue-600);height:34px;color:var(--white);cursor:pointer;padding:0 14px;font-size:13px;font-weight:600}.confirm-dialog-confirm:hover{background:var(--blue-700)}.confirm-dialog-confirm.danger{background:var(--danger);border-color:var(--danger)}.confirm-dialog-confirm.danger:hover{opacity:.88}.gmp{background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:10px;padding:16px 18px;display:flex}.gmp h3{color:var(--text-primary);align-items:center;gap:8px;margin:0;font-size:15px;display:flex}.gmp-note{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.55}.gmp-note--warn{color:var(--warning);background:var(--warning-bg);padding:8px 12px}.gmp-counts{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}.gmp-counts li{border:1px solid var(--border);flex-direction:column;min-width:120px;padding:8px 12px;display:flex}.gmp-counts strong{color:var(--text-primary);font-size:20px}.gmp-counts span{color:var(--text-muted);font-size:11.5px}.gmp-bad strong{color:var(--danger)}.gmp-actions{flex-wrap:wrap;gap:8px;display:flex}.gmp-status{color:var(--text-secondary);background:var(--surface-muted);padding:2px 8px;font-size:12px;font-weight:700}.gmp-status--delivered,.gmp-status--read{color:var(--success);background:var(--success-bg)}.gmp-status--failed,.gmp-status--refused{color:var(--danger);background:var(--danger-bg)}.gmp-error{color:var(--danger);font-size:11.5px}.rcs-grid{grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:16px;display:grid}.rcs-card{background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:12px;padding:18px 20px;display:flex}.rcs-card h2{color:var(--text-primary);margin:0;font-size:16px;font-weight:700}.rcs-card h3{letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);margin:4px 0 0;font-size:12px;font-weight:700}.rcs-kpis{grid-template-columns:repeat(4,1fr);gap:8px;margin:0;padding:0;list-style:none;display:grid}.rcs-kpis li{background:var(--surface-muted);border:1px solid var(--border);flex-direction:column;padding:8px 10px;display:flex}.rcs-kpis strong{color:var(--text-primary);font-size:18px}.rcs-kpis span{color:var(--text-muted);font-size:11px}.rcs-bars{align-items:flex-end;gap:4px;height:110px;display:flex}.rcs-bar{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;padding-bottom:16px;display:flex;position:relative}.rcs-bar-fill{background:var(--blue-500);width:100%;min-height:2px}.rcs-bar-fill--low{background:#f59e0b}.rcs-bar-count{color:var(--text-primary);font-size:11px;font-weight:700}.rcs-bar-label{color:var(--text-muted);font-size:10.5px;position:absolute;bottom:0}.rcs-courses{color:var(--text-secondary);flex-direction:column;gap:6px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.rcs-courses li{grid-template-columns:140px 1fr 60px;align-items:center;gap:10px;display:grid}.rcs-course-bar{background:var(--surface-muted);border:1px solid var(--border);height:8px}.rcs-course-bar>span{background:var(--blue-600);height:100%;display:block}@media (width<=600px){.rcs-grid{grid-template-columns:1fr}}.rcs-trend{border-collapse:collapse;width:100%;font-size:13px}.rcs-trend th,.rcs-trend td{text-align:left;border-bottom:1px solid var(--border);color:var(--text-primary);padding:6px 8px}.rcs-trend th{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-size:11.5px;font-weight:700}.gj-panel{flex-direction:column;gap:12px;display:flex}.gj-panel h2{color:var(--text-primary);margin:0;font-size:15px;font-weight:700}.gj-intro{color:var(--text-secondary);margin:0;font-size:13px}.gj-filters{flex-wrap:wrap;gap:12px;display:flex}.gj-filters label{color:var(--text-muted);flex-direction:column;gap:4px;font-size:12px;font-weight:600;display:flex}.gj-filters select,.gj-filters input{min-width:200px;color:var(--text-primary);background:var(--surface);border:1px solid var(--border-strong);padding:7px 10px;font-size:13px}.gj-table td{white-space:nowrap}.gj-sub{color:var(--text-muted);font-size:11.5px;font-weight:400;display:block}.gj-warn{color:var(--warning)}.gj-late{color:var(--warning);font-weight:700}.gj-empty{text-align:center;color:var(--text-secondary);padding:16px}.gj-origin{letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:5px;padding:2px 9px;font-size:11px;font-weight:700;display:inline-flex}.gj-origin--direct{color:var(--success);background:var(--success-bg)}.gj-origin--offline_sync{color:var(--warning);background:var(--warning-bg)}.gp-panel{flex-direction:column;gap:12px;display:flex}.gp-panel h2{color:var(--text-primary);margin:0;font-size:15px;font-weight:700}.gp-badge{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);background:var(--surface-muted);padding:2px 9px;font-size:11px;font-weight:700}.gp-badge--open{color:var(--success);background:var(--success-bg)}.gp-progress{color:var(--text-secondary);align-items:center;gap:10px;font-size:12.5px;display:flex}.gp-progress-bar{background:var(--surface-muted);border:1px solid var(--border);width:120px;height:6px}.gp-progress-bar>span{background:var(--blue-600);height:100%;display:block}.school-card{background:var(--surface);border:1px solid var(--border);cursor:pointer;flex-direction:column;gap:6px;padding:16px;display:flex}.school-card:hover{border-color:var(--blue-500)}.school-card--locked{opacity:.85}.school-card--archived{opacity:.6}.school-card-header{justify-content:space-between;align-items:center;display:flex}.school-card-icon{background:var(--blue-100);border:1px solid var(--blue-300);width:34px;height:34px;color:var(--blue-600);justify-content:center;align-items:center;display:flex}.school-status{text-transform:uppercase;letter-spacing:.03em;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.school-status--active{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}.school-status--locked{background:var(--warning-bg);color:var(--warning);border:1px solid var(--warning-border)}.school-status--archived{background:var(--surface-muted);color:var(--text-muted);border:1px solid var(--border)}.school-card-name{color:var(--text-primary);margin-top:4px;font-size:15px;font-weight:600}.school-card-national-id,.school-card-address,.school-card-locality{color:var(--text-muted);font-size:12px}.school-card-tags{flex-wrap:wrap;gap:5px;margin-top:2px;padding:0;display:flex}.school-card-tags li{letter-spacing:.02em;background:var(--blue-100);color:var(--blue-700);padding:2px 8px;font-size:10.5px;font-weight:600}.school-card-actions{border-top:1px solid var(--border);gap:6px;margin-top:10px;padding-top:10px;display:flex}.school-card-actions button{background:var(--surface-muted);border:1px solid var(--border);width:30px;height:30px;color:var(--text-secondary);cursor:pointer;justify-content:center;align-items:center;display:flex}.school-card-actions button:hover{border-color:var(--blue-500);color:var(--blue-600)}.school-card-delete:hover{border-color:var(--danger-border)!important;color:var(--danger)!important}.school-modal-backdrop{z-index:100;background:#060e218c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0;overflow-y:auto}.school-modal{background:var(--surface);border:1px solid var(--border);flex-direction:column;width:100%;max-width:440px;max-height:90vh;display:flex}.school-modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.school-modal-header h3{color:var(--text-primary);font-size:15px;font-weight:600}.school-modal-close{background:var(--surface-muted);border:1px solid var(--border);width:30px;height:30px;color:var(--text-secondary);cursor:pointer;justify-content:center;align-items:center;display:flex}.school-modal-close:hover{color:var(--danger)}.school-modal-error{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-border);margin:16px 20px 0;padding:10px 12px;font-size:13px}.school-modal-form{flex-direction:column;gap:14px;padding:20px;display:flex;overflow-y:auto}.school-modal-form label{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:13px;font-weight:500;display:flex}.school-modal-form input,.school-modal-form select{background:var(--surface-muted);border:1px solid var(--border);height:38px;color:var(--text-primary);padding:0 10px;font-family:inherit;font-size:13px}.school-modal-field{flex-direction:column;gap:8px;display:flex}.school-modal-label{color:var(--text-secondary);font-size:13px;font-weight:500}.school-modal-tags{flex-wrap:wrap;gap:8px;display:flex}.school-modal-tag{background:var(--surface-muted);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;align-items:center;gap:6px;padding:6px 10px;font-size:12.5px;display:flex}.school-modal-tag input{width:auto;height:auto;margin:0}.school-modal-actions{justify-content:flex-end;gap:8px;margin-top:6px;display:flex}.school-modal-cancel{border:1px solid var(--border);height:36px;color:var(--text-secondary);cursor:pointer;background:0 0;padding:0 14px;font-size:13px}.school-modal-submit{background:var(--blue-600);border:1px solid var(--blue-600);height:36px;color:var(--white);cursor:pointer;padding:0 16px;font-size:13px;font-weight:600}.school-modal-submit:hover:not(:disabled){background:var(--blue-700)}.school-modal-submit:disabled{opacity:.7;cursor:not-allowed}.reject-dialog-reason{background:var(--surface-muted);border:1px solid var(--border);width:100%;color:var(--text-primary);resize:vertical;margin-top:14px;padding:10px 12px;font-family:inherit;font-size:13px}.confirm-dialog-confirm.danger:disabled{opacity:.5;cursor:not-allowed}.registrations-tab{flex-direction:column;gap:20px;display:flex}.registrations-toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.registrations-search{background:var(--surface);border:1px solid var(--border);min-width:240px;height:38px;color:var(--text-muted);flex:1;align-items:center;gap:8px;padding:0 10px;display:flex}.registrations-search input{height:100%;color:var(--text-primary);background:0 0;border:none;flex:1;padding:0;font-family:inherit;font-size:13px}.registrations-toolbar select{background:var(--surface);border:1px solid var(--border);height:38px;color:var(--text-primary);padding:0 10px;font-family:inherit;font-size:13px}.registrations-error{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-border);padding:10px 12px;font-size:13px}.registrations-table-wrap{background:var(--surface);border:1px solid var(--border);overflow-x:auto}.registrations-table{border-collapse:collapse;width:100%;font-size:13px}.registrations-table th,.registrations-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:12px 14px}.registrations-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--surface-muted);font-size:11px;font-weight:600}.registrations-table tbody tr:last-child td{border-bottom:none}.registrations-cell-uid{color:var(--text-secondary);font-family:monospace}.registrations-cell-date{color:var(--text-muted)}.registrations-applicant{flex-direction:column;gap:2px;display:flex}.registrations-applicant-email{color:var(--text-muted);font-size:11.5px}.registrations-school{white-space:normal;flex-direction:column;gap:4px;display:flex}.registrations-school-tags{flex-wrap:wrap;gap:4px;display:flex}.registrations-tag-chip{color:var(--text-secondary);background:var(--surface-muted);border:1px solid var(--border);white-space:nowrap;padding:2px 7px;font-size:10.5px;font-weight:500}.registration-status{white-space:nowrap;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.registration-status--pending_email_validation,.registration-status--email_validated{background:var(--surface-muted);color:var(--text-muted);border:1px solid var(--border)}.registration-status--ready_for_signature{background:var(--warning-bg);color:var(--warning);border:1px solid var(--warning-border)}.registration-status--under_review{color:var(--blue-500);background:#3b82f61f;border:1px solid #3b82f666}.registration-status--approved{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}.registration-status--rejected{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border)}.registrations-actions{align-items:center;gap:8px;display:flex}.registrations-action{border:1px solid var(--border-strong);width:30px;height:30px;color:var(--text-secondary);cursor:pointer;background:0 0;justify-content:center;align-items:center;display:flex}.registrations-action:hover{border-color:var(--blue-500);color:var(--blue-600)}.registrations-approve{background:var(--blue-600);border:1px solid var(--blue-600);height:30px;color:var(--white);cursor:pointer;padding:0 12px;font-size:12px;font-weight:600}.registrations-approve:hover{background:var(--blue-700)}.registrations-reject{border:1px solid var(--danger-border);height:30px;color:var(--danger);cursor:pointer;background:0 0;padding:0 12px;font-size:12px;font-weight:600}.registrations-reject:hover{background:var(--danger-bg)}.registrations-empty{text-align:center;color:var(--text-muted);padding:32px 14px}.schools-page{flex-direction:column;gap:20px;padding:32px;display:flex}.schools-page-tabs{border-bottom:1px solid var(--border);gap:6px;display:flex}.schools-page-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-bottom:none;padding:8px 14px;font-size:13px;font-weight:500;transform:translateY(1px)}.schools-page-tab.active{color:var(--blue-600);border-color:var(--border);border-bottom:1px solid var(--surface);background:var(--surface)}.schools-toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.schools-search{background:var(--surface);border:1px solid var(--border);min-width:240px;height:38px;color:var(--text-muted);flex:1;align-items:center;gap:8px;padding:0 10px;display:flex}.schools-search input{height:100%;color:var(--text-primary);background:0 0;border:none;flex:1;padding:0;font-family:inherit;font-size:13px}.schools-toolbar select{background:var(--surface);border:1px solid var(--border);height:38px;color:var(--text-primary);padding:0 10px;font-family:inherit;font-size:13px}.schools-add{background:var(--blue-600);border:1px solid var(--blue-600);height:38px;color:var(--white);cursor:pointer;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:600;display:flex}.schools-add:hover{background:var(--blue-700)}.schools-error{color:var(--danger);font-size:13px}.schools-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.schools-empty{text-align:center;color:var(--text-muted);grid-column:1/-1;padding:40px 0;font-size:14px}@media (width<=600px){.schools-page{padding:20px}}.agent-file{grid-template-columns:minmax(240px,.9fr) minmax(280px,1.1fr);gap:16px;display:grid}.agent-file-fields,.agent-file-json{flex-direction:column;gap:10px;display:flex}.agent-file-fields label,.agent-file-pair label{color:var(--text-muted);flex-direction:column;gap:5px;font-size:11px;font-weight:600;display:flex}.agent-file-fields input{background:var(--surface);border:1px solid var(--border);height:34px;color:var(--text-primary);padding:0 10px;font-family:inherit;font-size:13px;font-weight:400}.agent-file-fields input:focus,.agent-file-json textarea:focus{outline:2px solid var(--blue-300);border-color:var(--blue-600)}.agent-file-pair{grid-template-columns:1fr 1fr;gap:10px;display:grid}.agent-file-hint{color:var(--text-muted);margin:0;font-size:12px;line-height:1.45}.agent-file-hint code,.agent-token-reveal-warning strong{font-weight:600}.agent-file-json-bar{justify-content:space-between;align-items:center;gap:8px;display:flex}.agent-file-json-bar span{letter-spacing:.03em;color:var(--text-secondary);font-size:12px;font-weight:700}.agent-file-json-bar div{gap:6px;display:flex}.agent-file-json-bar button,.agent-file-download{background:var(--surface);border:1px solid var(--border);height:30px;color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;padding:0 10px;font-family:inherit;font-size:12px;font-weight:600;display:inline-flex}.agent-file-download{background:var(--blue-600);border-color:var(--blue-600);color:var(--white)}.agent-file-json-bar button:hover:not(:disabled),.agent-file-download:hover:not(:disabled){border-color:var(--blue-600)}.agent-file-download:hover:not(:disabled){background:var(--blue-700)}.agent-file-json-bar button:disabled,.agent-file-download:disabled{opacity:.5;cursor:default}.agent-file-json textarea{resize:vertical;background:var(--surface-muted);border:1px solid var(--border);min-height:240px;color:var(--text-primary);padding:12px;font-family:Courier New,monospace;font-size:12.5px;line-height:1.5}.agent-guide-lead{color:var(--text-secondary);margin:0 0 14px;font-size:13px;line-height:1.5}.agent-commands{flex-direction:column;align-items:flex-start;gap:8px;margin-top:8px;display:flex}.agent-command-copy-all,.agent-step-command button{background:var(--surface);border:1px solid var(--border);height:28px;color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;padding:0 10px;font-family:inherit;font-size:12px;font-weight:600;display:inline-flex}.agent-command-copy-all:hover,.agent-step-command button:hover{border-color:var(--blue-600);color:var(--blue-600)}.agent-step-command{background:var(--surface-muted);border:1px solid var(--border);align-items:center;gap:8px;width:100%;margin-top:0;padding:6px 8px 6px 10px;display:flex}.agent-step-command code{min-width:0;color:var(--text-primary);flex:1;font-family:Courier New,monospace;font-size:12px;line-height:1.4;overflow-x:auto}.agent-step-command button{flex-shrink:0;justify-content:center;width:28px;padding:0}.agent-steps{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.agent-step{grid-template-columns:28px 1fr;gap:12px;padding-bottom:16px;display:grid;position:relative}.agent-step:not(:last-child):before{content:"";background:var(--border);width:1px;position:absolute;top:28px;bottom:0;left:13px}.agent-step-index{background:var(--blue-600);width:28px;height:28px;color:var(--white);justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.agent-step h3{margin:4px 0;font-size:14px;font-weight:600}.agent-step p{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.agent-issues{border-top:1px solid var(--border);margin-top:4px;padding-top:16px}.agent-issues h3{margin:0 0 12px;font-size:14px;font-weight:600}.agent-issues ul{flex-direction:column;gap:16px;margin:0;padding:0;list-style:none;display:flex}.agent-issue-message{background:var(--surface-muted);border:1px solid var(--border);color:var(--text-primary);margin-bottom:6px;padding:3px 8px;font-family:Courier New,monospace;font-size:12px;display:inline-block}.agent-issues p{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}@media (width<=860px){.agent-file{grid-template-columns:1fr}}.configuration-card{gap:14px}.configuration-card .card-title{margin:0}.configuration-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:6px;display:flex}.configuration-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-bottom:none;padding:8px 14px;font-size:13px;font-weight:500;transform:translateY(1px)}.configuration-tab.active{color:var(--blue-600);border-color:var(--border);border-bottom:1px solid var(--surface);background:var(--surface)}.configuration-error{color:var(--danger);font-size:13px}.configuration-table-wrap{border:1px solid var(--border);flex:1;overflow:auto}.configuration-table{border-collapse:collapse;width:100%;font-size:13px}.configuration-table thead th{text-align:left;background:var(--surface-muted);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);padding:10px 12px;font-size:11px;font-weight:600;position:sticky;top:0}.configuration-table tbody td{border-bottom:1px solid var(--border);color:var(--text-primary);padding:9px 12px}.configuration-table tbody tr:last-child td{border-bottom:none}.configuration-cell-uid{font-variant-numeric:tabular-nums;color:var(--text-secondary);white-space:nowrap;font-weight:600}.configuration-cell-date{color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.configuration-empty{text-align:center;color:var(--text-muted);padding:20px 12px!important}.school-pupils-row--link{cursor:pointer}.school-pupils-row--link:hover{background:var(--surface-muted)}.school-pupils-row--link:hover .configuration-cell-uid{color:var(--blue-600)}.school-pupils-filters{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.school-pupils-search{background:var(--surface-muted);border:1px solid var(--border);height:36px;color:var(--text-muted);flex:240px;align-items:center;gap:8px;padding:0 12px;display:flex}.school-pupils-search:focus-within{border-color:var(--blue-600);color:var(--blue-600)}.school-pupils-search input{min-width:0;height:100%;color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;padding:0;font-family:inherit;font-size:13px}.school-pupils-search input::-webkit-search-cancel-button{display:none}.school-pupils-filters select{background:var(--surface-muted);border:1px solid var(--border);height:36px;color:var(--text-primary);padding:0 10px;font-family:inherit;font-size:13px}.school-pupils-reset{border:1px solid var(--border);height:36px;color:var(--text-secondary);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:0 12px;font-family:inherit;font-size:13px;display:inline-flex}.school-pupils-reset:hover{border-color:var(--danger-border);color:var(--danger)}.school-pupils-status{white-space:nowrap;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.school-pupils-status--active{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}.school-pupils-status--inactive{background:var(--surface-muted);color:var(--text-muted);border:1px solid var(--border)}.school-pupils-pagination{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding-top:14px;display:flex}.school-pupils-pagination span{color:var(--text-muted);font-size:12.5px}.school-pupils-pagination button{background:var(--surface);border:1px solid var(--border);height:32px;color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;padding:0 12px;font-family:inherit;font-size:12.5px;font-weight:600;display:inline-flex}.school-pupils-pagination button:hover:not(:disabled){border-color:var(--blue-500);color:var(--blue-600)}.school-pupils-pagination button:disabled{opacity:.5;cursor:not-allowed}.school-users-status{white-space:nowrap;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.school-users-status--active{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}.school-users-status--blocked{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border)}.school-users-actions button{border:1px solid var(--border);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:0 0;justify-content:center;align-items:center;display:flex}.school-users-actions button:hover{background:var(--surface-muted);border-color:var(--blue-500);color:var(--blue-600)}.school-users-actions button:disabled{opacity:.4;cursor:not-allowed}.school-users-actions button:disabled:hover{border-color:var(--border);color:var(--text-secondary);background:0 0}.school-profile-page{flex-direction:column;gap:20px;padding:32px;display:flex}.school-profile-header{align-items:center;gap:14px;display:flex}.school-profile-icon{background:var(--blue-100);width:44px;height:44px;color:var(--blue-600);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.school-profile-identity h2{color:var(--text-primary);margin:0;font-size:17px;font-weight:700}.school-profile-identity p{color:var(--text-secondary);align-items:center;gap:6px;margin:4px 0 0;font-size:13px;display:flex}.school-profile-tabs{border-bottom:1px solid var(--border);gap:4px;display:flex}.school-profile-tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 14px;font-size:13px;font-weight:600}.school-profile-tab.active{color:var(--blue-600);border-bottom-color:var(--blue-600)}.school-profile-subtabs{gap:4px;display:flex}.school-profile-subtab{background:var(--surface-muted);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;padding:6px 12px;font-size:12.5px;font-weight:600}.school-profile-subtab.active{background:var(--blue-600);border-color:var(--blue-600);color:var(--white)}.school-profile-placeholder{color:var(--text-muted);text-align:center;padding:24px 12px}.school-profile-unavailable{background:var(--surface-muted);border:1px dashed var(--border);color:var(--text-muted);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:40px 16px;display:flex}.school-profile-unavailable-title{color:var(--text-primary);margin:0;font-size:14px;font-weight:600}.school-profile-unavailable-text{max-width:36ch;margin:0;font-size:13px;line-height:1.5}.agent-token-panel{flex-direction:column;gap:16px;display:flex}.agent-token-status{align-items:center;gap:8px;display:flex}.agent-token-status-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:11px;font-weight:600}.agent-token-status-value{color:var(--text-secondary);font-size:13px;font-weight:600}.agent-token-status-value--ok{color:var(--success)}.agent-token-generate-button{background:var(--blue-600);border:1px solid var(--blue-600);height:34px;color:var(--white);cursor:pointer;align-self:flex-start;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:600;display:flex}.agent-token-generate-button:hover:not(:disabled){background:var(--blue-700)}.agent-token-generate-button:disabled{opacity:.6;cursor:wait}.agent-token-spinner{animation:.8s linear infinite agent-token-spin}@keyframes agent-token-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.agent-token-reveal{background:var(--warning-bg);border:1px solid var(--warning-border);flex-direction:column;gap:10px;padding:14px;display:flex}.agent-token-reveal-warning{color:var(--text-secondary);margin:0;font-size:12.5px}.agent-token-reveal-warning code{font-family:Courier New,monospace}.agent-token-value-row{align-items:center;gap:8px;display:flex}.agent-token-value{background:var(--surface);border:1px solid var(--border);word-break:break-all;flex:1;padding:8px 10px;font-family:Courier New,monospace;font-size:12.5px}.agent-token-copy-button{background:var(--surface);border:1px solid var(--border);height:32px;color:var(--text-secondary);cursor:pointer;flex-shrink:0;align-items:center;gap:6px;padding:0 12px;font-size:12.5px;font-weight:600;display:flex}.agent-token-copy-button:hover{border-color:var(--blue-500);color:var(--blue-600)}.agent-token-dismiss-button{border:1px solid var(--border);height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;align-self:flex-start;padding:0 12px;font-size:12.5px;font-weight:600}.agent-token-dismiss-button:hover{background:var(--surface-muted)}.permission-picker{flex-direction:column;gap:8px;width:100%;display:flex}.permission-picker-empty-selection{color:var(--text-muted);margin:0;font-size:12px}.permission-picker-selected{flex-wrap:wrap;gap:6px;max-height:120px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.permission-chip{background:var(--surface);border:1px solid var(--border);max-width:100%;color:var(--text-secondary);align-items:center;gap:6px;padding:3px 6px 3px 8px;font-family:Courier New,monospace;font-size:12px;display:inline-flex}.permission-chip span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.permission-chip button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.permission-chip button:hover{color:var(--danger)}.permission-picker-search{background:var(--surface);border:1px solid var(--border);height:34px;color:var(--text-muted);align-items:center;gap:8px;padding:0 10px;display:flex}.authentication-form .permission-picker-search input{min-width:0;height:auto;color:var(--text-primary);background:0 0;border:none;flex:1;padding:0}.permission-picker-list{background:var(--surface);border:1px solid var(--border);max-height:240px;margin:0;padding:4px 0;list-style:none;overflow-y:auto}.permission-picker-option{text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:8px 12px;display:flex}.permission-picker-option:hover,.permission-picker-option.selected{background:var(--surface-muted)}.permission-picker-option-code{color:var(--text-primary);align-items:center;gap:6px;font-family:Courier New,monospace;font-size:12px;display:inline-flex}.permission-picker-option.selected .permission-picker-option-code{color:var(--blue-600)}.permission-picker-option-details{color:var(--text-muted);font-size:12px}.permission-picker-status,.permission-picker-more{color:var(--text-muted);padding:8px 12px;font-size:12px}.permission-picker-more{border:none;border-top:1px solid var(--border);width:100%;color:var(--blue-600);cursor:pointer;background:0 0;font-weight:600}.permission-picker-more:disabled{cursor:not-allowed;opacity:.7}.udd-intro{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.udd-empty{color:var(--text-secondary);background:var(--surface-muted);border:1px solid var(--border);align-items:center;gap:8px;margin:0;padding:14px;font-size:13.5px;display:flex}.udd-wrap{overflow-x:auto}.udd-table{border-collapse:collapse;width:100%;font-size:13px}.udd-table th,.udd-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--border);padding:9px 10px}.udd-table th{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-size:11.5px;font-weight:700}.udd-sub{color:var(--text-muted);font-size:11.5px;display:block}.udd-badge{margin-top:2px;padding:1px 8px;font-size:11px;font-weight:700;display:inline-block}.udd-badge--ok{color:var(--success);background:var(--success-bg)}.udd-badge--soon{color:var(--warning);background:var(--warning-bg)}.udd-badge--expired{color:var(--danger);background:var(--danger-bg)}.udd-actions{white-space:nowrap}.udd-actions button{color:var(--danger);border:1px solid var(--danger-border);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:6px 10px;font-size:12.5px;font-weight:600;display:inline-flex}.udd-actions button:hover{background:var(--danger-bg)}.searchable-select{position:relative}.searchable-select input{background:var(--surface);border:1px solid var(--border);width:100%;height:36px;color:var(--text-primary);padding:0 10px;font-family:inherit;font-size:13px;font-weight:400}.searchable-select input:disabled{opacity:.6;cursor:not-allowed}.searchable-select-list{z-index:20;background:var(--surface);border:1px solid var(--border);max-height:220px;margin:0;padding:4px 0;list-style:none;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 20px #060e212e}.searchable-select-option{color:var(--text-primary);cursor:pointer;padding:8px 12px;font-size:13px}.searchable-select-option:hover,.searchable-select-option.active{background:var(--surface-muted);color:var(--blue-600)}.searchable-select-empty{color:var(--text-muted);padding:8px 12px;font-size:12.5px}.searchable-select-status{padding:4px 12px}.searchable-select--async input{padding-right:32px}.searchable-select-clear{width:34px;height:100%;color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:0;right:0}.searchable-select-clear:hover{color:var(--danger)}.user-form{flex-direction:column;gap:16px;display:flex}.user-form-field{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:13px;font-weight:500;display:flex}.user-form-field label,.user-form-label{color:var(--text-secondary);font-size:13px;font-weight:500;display:block}.user-form-field em{color:var(--blue-600);margin-left:6px;font-size:11px;font-style:normal;font-weight:600}.user-form-field input{background:var(--surface-muted);border:1px solid var(--border);width:100%;height:38px;color:var(--text-primary);padding:0 10px;font-family:inherit;font-size:13px}.user-form-field input:focus-visible,.user-form-password button:focus-visible{outline:2px solid var(--blue-500);outline-offset:-1px}.user-form-field input:disabled{opacity:.65;cursor:not-allowed}.user-form-field input[aria-invalid=true]{border-color:var(--danger)}.user-form-field small{color:var(--text-muted);align-items:center;gap:5px;font-size:12px;font-weight:400;line-height:1.45;display:flex}.user-form-field .user-form-invalid{color:var(--danger)}.user-form-field .user-form-hint{color:var(--blue-700)}.user-form-password{position:relative}.user-form-password input{padding-right:38px}.user-form-password button{width:38px;height:38px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:0;right:0}.user-form-password button:hover{color:var(--blue-600)}.user-form-notice{color:var(--text-secondary);background:var(--blue-50);border:1px solid var(--border);border-left:3px solid var(--blue-500);gap:10px;margin:0;padding:12px 14px;font-size:12.5px;line-height:1.55;display:flex}.user-form-notice svg{color:var(--blue-600);flex:none;margin-top:1px}.user-form-error{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-border);margin:0;padding:10px 12px;font-size:13px}.user-form-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;margin-top:4px;padding-top:16px;display:flex}.user-form-cancel,.user-form-submit{cursor:pointer;height:38px;padding:0 16px;font-family:inherit;font-size:13px;font-weight:600}.user-form-cancel{border:1px solid var(--border);color:var(--text-secondary);background:0 0}.user-form-cancel:hover{border-color:var(--border-strong)}.user-form-submit{background:var(--blue-600);border:1px solid var(--blue-600);color:#fff}.user-form-submit:hover:not(:disabled){background:var(--blue-700)}.user-form-submit:disabled{opacity:.55;cursor:not-allowed}.authentication-card{gap:14px}.authentication-card .card-title{margin:0}.authentication-tabs{border-bottom:1px solid var(--border);gap:6px;display:flex}.authentication-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-bottom:none;padding:8px 14px;font-size:13px;font-weight:500;transform:translateY(1px)}.authentication-tab.active{color:var(--blue-600);border-color:var(--border);border-bottom:1px solid var(--surface);background:var(--surface)}.authentication-error{color:var(--danger);font-size:13px}.authentication-add{background:var(--blue-600);border:1px solid var(--blue-600);height:34px;color:var(--white);cursor:pointer;align-self:flex-start;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;display:flex}.authentication-add:hover{background:var(--blue-700)}.authentication-form{background:var(--surface-muted);border:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:12px;display:flex}.authentication-form--role{flex-direction:column;align-items:stretch}.authentication-form input,.authentication-form select,.authentication-form textarea{background:var(--surface);border:1px solid var(--border);height:34px;color:var(--text-primary);min-width:180px;padding:0 10px;font-family:inherit;font-size:13px}.authentication-form textarea{resize:vertical;min-width:100%;height:60px;padding:8px 10px}.authentication-form-actions{gap:8px;display:flex}.authentication-form-submit{background:var(--blue-600);border:1px solid var(--blue-600);height:34px;color:var(--white);cursor:pointer;padding:0 14px;font-size:13px;font-weight:600}.authentication-form-submit:hover{background:var(--blue-700)}.authentication-form-cancel{border:1px solid var(--border);height:34px;color:var(--text-secondary);cursor:pointer;background:0 0;padding:0 12px;font-size:13px}.authentication-form--role>input,.authentication-form--role>textarea{width:100%;min-width:0}.authentication-form--role input:disabled{opacity:.75;cursor:not-allowed;background:var(--surface-muted)}.authentication-field-hint{color:var(--text-muted);margin:0;font-size:12px}.authentication-search{background:var(--surface-muted);border:1px solid var(--border);height:36px;color:var(--text-muted);align-items:center;gap:8px;margin-bottom:14px;padding:0 10px;display:flex}.authentication-search input{min-width:0;height:34px;color:var(--text-primary);background:0 0;border:none;flex:1;padding:0;font-family:inherit;font-size:13px}.authentication-pagination{color:var(--text-secondary);flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:16px;margin-top:14px;font-size:13px;display:flex}.authentication-pagination p{font-variant-numeric:tabular-nums;margin:0}.authentication-pagination-pages{align-items:center;gap:6px;display:flex}.authentication-pagination-gap{text-align:center;min-width:16px;color:var(--text-muted)}.authentication-pagination button{background:var(--surface);border:1px solid var(--border);min-width:32px;height:32px;color:var(--text-secondary);font-variant-numeric:tabular-nums;cursor:pointer;justify-content:center;align-items:center;padding:0 8px;font-size:13px;display:inline-flex}.authentication-pagination button:disabled{opacity:.45;cursor:not-allowed}.authentication-pagination button:hover:not(:disabled){border-color:var(--blue-500);color:var(--blue-600)}.authentication-pagination button[aria-current=page]{background:var(--blue-600);border-color:var(--blue-600);color:var(--white)}.authentication-table-wrap{border:1px solid var(--border);flex:1;overflow:auto}.authentication-table{border-collapse:collapse;width:100%;font-size:13px}.authentication-table thead th{text-align:left;background:var(--surface-muted);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);padding:10px 12px;font-size:11px;font-weight:600;position:sticky;top:0}.authentication-table tbody td{border-bottom:1px solid var(--border);color:var(--text-primary);padding:9px 12px}.authentication-table tbody tr:last-child td{border-bottom:none}.authentication-cell-uid{font-variant-numeric:tabular-nums;color:var(--text-secondary);white-space:nowrap;font-weight:600}.authentication-status{white-space:nowrap;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.authentication-status--active{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}.authentication-status--locked{color:var(--warning);background:var(--warning-bg);border:1px solid var(--warning-border);margin-left:6px}.authentication-status--2fa{background:var(--blue-100);color:var(--blue-700);border:1px solid var(--blue-300);margin-left:6px}.authentication-status--blocked{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border)}.authentication-actions{white-space:nowrap;gap:6px;display:flex}.authentication-actions button{border:1px solid var(--border);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:0 0;justify-content:center;align-items:center;display:flex}.authentication-actions button:hover{background:var(--surface-muted);border-color:var(--blue-500);color:var(--blue-600)}.authentication-actions button:disabled{opacity:.4;cursor:not-allowed}.authentication-actions button:disabled:hover{border-color:var(--border);color:var(--text-secondary);background:0 0}.authentication-empty{text-align:center;color:var(--text-muted);padding:20px 12px!important}.authentication-status--pending_email{background:var(--warning-bg);color:var(--warning);border:1px solid var(--warning-border)}.authentication-page{flex-direction:column;gap:16px;padding:32px;display:flex}@media (width<=600px){.authentication-page{padding:20px}}.course-fields-tab{flex-direction:column;gap:12px;display:flex}.course-fields-toolbar{align-items:center;gap:10px;display:flex}.course-fields-search{background:var(--surface);border:1px solid var(--border);height:34px;color:var(--text-primary);flex:1;padding:0 10px;font-family:inherit;font-size:13px}.course-fields-add{background:var(--blue-600);border:1px solid var(--blue-600);height:34px;color:var(--white);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;display:flex}.course-fields-add:hover{background:var(--blue-700)}.course-fields-exchange{flex-wrap:wrap;gap:8px;display:flex}.course-fields-exchange button{background:var(--surface);border:1px solid var(--border);height:34px;color:var(--text-primary);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex}.course-fields-exchange button:hover:not(:disabled){border-color:var(--blue-500);color:var(--blue-600)}.course-fields-exchange button:disabled{opacity:.6;cursor:default}.course-fields-report{background:var(--surface-muted);border:1px solid var(--border);color:var(--text-secondary);margin:0;padding:10px 12px;font-size:13px}.course-fields-report p{margin:0}.course-fields-report ul{margin:8px 0 0;padding-left:18px}.course-fields-report--warn{border-color:var(--blue-300)}.course-fields-form{background:var(--surface-muted);border:1px solid var(--border);flex-wrap:wrap;align-items:flex-end;gap:12px;padding:12px;display:flex}.course-fields-field{color:var(--text-muted);flex-direction:column;gap:5px;font-size:11px;font-weight:600;display:flex}.course-fields-field input,.course-fields-field select{background:var(--surface);border:1px solid var(--border);min-width:220px;height:32px;color:var(--text-primary);padding:0 10px;font-family:inherit;font-size:13px;font-weight:400}.course-fields-field select:disabled{color:var(--text-muted)}.course-fields-form-actions{gap:8px;display:flex}.course-fields-submit,.course-fields-cancel{cursor:pointer;height:32px;padding:0 14px;font-size:13px}.course-fields-submit{background:var(--blue-600);border:1px solid var(--blue-600);color:var(--white);font-weight:600}.course-fields-submit:hover{background:var(--blue-700)}.course-fields-cancel{border:1px solid var(--border);color:var(--text-secondary);background:0 0}.course-fields-hint{color:var(--text-muted);flex-basis:100%;margin:0;font-size:12px}.course-fields-child td:nth-child(2){color:var(--text-secondary);padding-left:28px}.course-fields-child td:nth-child(2) svg{vertical-align:-2px;color:var(--text-muted);margin-right:6px}.course-fields-kind{white-space:nowrap;border:1px solid var(--border);padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.course-fields-kind--root{background:var(--surface);color:var(--blue-600);border-color:var(--blue-300)}.course-fields-kind--sub{background:var(--surface-muted);color:var(--text-secondary)}.course-fields-actions{gap:6px;display:flex}.course-fields-actions button{border:1px solid var(--border);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:0 0;justify-content:center;align-items:center;display:flex}.course-fields-actions button:hover{background:var(--surface-muted);border-color:var(--blue-500);color:var(--blue-600)}.course-fields-grip{width:24px;height:24px;color:var(--text-muted);cursor:grab;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.course-fields-grip:hover{color:var(--blue-600)}.course-fields-grip-cell{width:32px;padding-left:6px;padding-right:0}.course-fields-link{color:inherit;font-weight:500;text-decoration:none}.course-fields-link:hover{color:var(--primary,#1d4ed8);text-decoration:underline}.class-course-page{flex-direction:column;gap:16px;padding:32px;display:flex}.class-course-heading h2{font-size:22px;font-weight:600}.class-course-heading p{color:var(--text-muted);margin-top:4px;font-size:13px}.class-courses{flex-direction:column;gap:14px;display:flex}.class-course-group h3{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px;font-size:12px;font-weight:700}.class-course-card{background:var(--surface);border:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;padding:12px;display:flex}.class-course-card strong{font-size:14px}.class-course-card span{color:var(--text-muted);margin-left:8px;font-size:12px}.class-course-card p{color:var(--text-secondary);margin-top:4px;font-size:12px}.class-course-add{align-self:flex-start;width:auto}.class-course-card-actions{gap:6px;display:flex}.class-course-card button{border:1px solid var(--border);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:0 0;justify-content:center;align-items:center;display:flex}.class-course-card button[aria-pressed=true]{border-color:var(--blue-600);color:var(--blue-600)}.class-course-preview{background:var(--surface-muted);border:1px solid var(--border);border-top:none;margin:-4px 0 8px;padding:12px}.class-course-preview-field{color:var(--text-secondary);margin-bottom:8px;font-size:12px}.class-course-preview-formulas{flex-direction:column;gap:4px;margin-top:10px;font-size:12px;display:flex}.class-course-preview-formulas li{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.class-course-preview-formulas span{color:var(--text-secondary)}.class-course-preview-formulas strong{font-variant-numeric:tabular-nums;font-weight:500}.class-course-actions{gap:8px;margin-top:10px;display:flex}.course-editor{background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:14px;padding:14px;display:flex}.course-editor-identity{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.course-editor-field{color:var(--text-muted);flex-direction:column;gap:5px;font-size:11px;font-weight:600;display:flex}.course-editor-field input,.course-editor-field select,.course-editor-row input[type=text],.course-editor-row input[type=number],.course-editor-row select,.course-expression input[type=number]{background:var(--surface);border:1px solid var(--border);min-width:160px;height:32px;color:var(--text-primary);padding:0 10px;font-family:inherit;font-size:13px;font-weight:400}.course-editor-preset,.course-editor-block header button{border:1px solid var(--blue-600);height:32px;color:var(--blue-600);cursor:pointer;background:0 0;padding:0 12px;font-size:12px;font-weight:600}.course-editor-block header{justify-content:space-between;align-items:center;gap:8px;display:flex}.course-editor-block h3{font-size:14px}.course-editor-hint,.course-editor-empty,.course-editor-formula{color:var(--text-muted);font-size:12px}.course-editor-formula{font-variant-numeric:tabular-nums;color:var(--text-secondary)}.course-editor-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.course-editor-row label{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:flex}.course-editor-remove{border:1px solid var(--border);height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;padding:0 10px;font-size:12px}.course-editor-card{background:var(--surface-muted);border:1px solid var(--border);margin-top:8px;padding:10px}.course-expression{flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:8px;font-size:13px;display:flex}.course-expression>label,.course-expression-refs label{align-items:center;gap:6px;display:flex}.course-expression-refs{flex-wrap:wrap;flex-basis:100%;gap:8px;display:flex}.course-expression-refs span{color:var(--text-muted);font-variant-numeric:tabular-nums}.course-preview{flex-direction:column;gap:10px;display:flex}.course-preview p{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.course-preview-cols{gap:8px;display:flex;overflow-x:auto}.course-preview-cols span{background:var(--surface-muted);border:1px solid var(--border);flex-direction:column;gap:4px;min-width:120px;padding:8px;font-size:12px;display:flex}.course-preview-total{border-color:var(--blue-300)}.course-preview-cols strong{font-variant-numeric:tabular-nums}@media (width<=600px){.class-course-page{padding:20px}}.class-course-subgroup{color:var(--text-secondary);border-left:3px solid var(--blue-500);margin:12px 0 6px;padding-left:8px;font-size:12px;font-weight:700}.class-course-card-body{flex:1}.class-course-card .course-fields-grip{cursor:grab;border:none;width:24px}.domain-courses-class h3{align-items:center;gap:8px;display:flex}.domain-courses-class-link{color:inherit;text-decoration:none}.domain-courses-class-link:hover{text-decoration:underline}.domain-courses-count{background:var(--surface-muted,#eef2f7);letter-spacing:0;border-radius:999px;padding:1px 8px;font-size:11px}.domain-courses-list{margin:0;padding:0;list-style:none}.template-tab{flex-direction:column;gap:12px;display:flex}.template-tab-add{background:var(--blue-600);border:1px solid var(--blue-600);height:34px;color:var(--white);cursor:pointer;align-self:flex-start;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;display:flex}.template-tab-add:hover{background:var(--blue-700)}.template-tab-form{background:var(--surface-muted);border:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;display:flex}.template-tab-form input[type=text],.template-tab-form input[type=number],.template-tab-form select{background:var(--surface);border:1px solid var(--border);height:32px;color:var(--text-primary);min-width:140px;padding:0 10px;font-family:inherit;font-size:13px}.template-tab-form-submit{background:var(--blue-600);border:1px solid var(--blue-600);height:32px;color:var(--white);cursor:pointer;padding:0 14px;font-size:13px;font-weight:600}.template-tab-form-submit:hover{background:var(--blue-700)}.template-tab-form-cancel{border:1px solid var(--border);height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;padding:0 12px;font-size:13px}.template-tab-status{white-space:nowrap;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.template-tab-status--active{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}.template-tab-status--inactive{background:var(--surface-muted);color:var(--text-muted);border:1px solid var(--border)}.template-tab-actions{white-space:nowrap;gap:6px;display:flex}.template-tab-actions button{border:1px solid var(--border);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:0 0;justify-content:center;align-items:center;display:flex}.template-tab-actions button:hover{background:var(--surface-muted);border-color:var(--blue-500);color:var(--blue-600)}.class-template-section-filter{flex-wrap:wrap;gap:6px;display:flex}.class-template-section-chip{background:var(--surface);border:1px solid var(--border);height:30px;color:var(--text-secondary);cursor:pointer;padding:0 12px;font-size:12.5px;font-weight:600}.class-template-section-chip:hover{border-color:var(--blue-500);color:var(--blue-600)}.class-template-section-chip.active{background:var(--blue-600);border-color:var(--blue-600);color:var(--white)}.class-template-section{flex-direction:column;gap:10px;display:flex}.class-template-section-title{color:var(--text-primary);border-bottom:1px solid var(--border);margin:4px 0 0;padding-bottom:6px;font-size:14px;font-weight:700}.class-template-group{background:var(--surface-muted);border:1px solid var(--border);flex-direction:column;gap:8px;padding:12px;display:flex}.class-template-group-header{color:var(--text-primary);justify-content:space-between;align-items:center;gap:10px;font-size:13px;font-weight:600;display:flex}.class-template-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.class-template-row{background:var(--surface);border:1px solid var(--border);align-items:center;gap:10px;padding:8px 10px;display:flex}.class-template-row--inactive{background:var(--surface-muted);opacity:.7;border-style:dashed}.class-template-row--inactive .class-template-name{color:var(--text-muted);text-decoration:line-through}.class-template-grip{width:24px;height:24px;color:var(--text-muted);cursor:grab;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.class-template-name{color:var(--text-primary);flex:1;font-size:13px;text-decoration:none}a.class-template-name:hover{color:var(--blue-600)}.class-template-badge{background:var(--blue-50,var(--surface-muted));border:1px solid var(--blue-500);color:var(--blue-600);white-space:nowrap;padding:2px 7px;font-size:10.5px;font-weight:600}.class-template-checkbox{color:var(--text-secondary);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:flex}.class-template-empty{color:var(--text-muted);text-align:center;margin:0;padding:10px;font-size:12.5px}.class-template-copy{justify-content:center;align-items:center;gap:8px;padding-bottom:4px;display:flex}.class-template-copy select{background:var(--surface);border:1px solid var(--border);height:32px;color:var(--text-primary);min-width:200px;padding:0 10px;font-family:inherit;font-size:13px}.class-template-copy button:disabled{opacity:.5;cursor:not-allowed}.course-reference{border:1px solid var(--border);background:var(--surface);flex-direction:column;gap:10px;padding:14px 16px;display:flex}.course-reference-title{color:var(--text-primary);margin:0;font-size:14px;font-weight:600}.course-reference-actions{flex-wrap:wrap;gap:8px;display:flex}.course-reference-actions button{background:var(--surface);border:1px solid var(--border);height:34px;color:var(--text-primary);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex}.course-reference-actions button:hover:not(:disabled){border-color:var(--blue-500);color:var(--blue-600)}.course-reference-actions button:disabled{opacity:.6;cursor:default}.course-reference-hint{color:var(--text-muted);margin:0;font-size:12px}.course-reference-report{background:var(--surface-muted);border:1px solid var(--border);color:var(--text-secondary);margin:0;padding:10px 12px;font-size:13px}.course-reference-report p{margin:0}.course-reference-report ul{margin:8px 0 0;padding-left:18px}.course-reference-report--warn{border-color:var(--blue-300)}.class-template-cycle{background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:14px;padding:16px;display:flex}.class-template-cycle--unclassified{border-color:var(--warning-border)}.class-template-cycle-header{border-bottom:2px solid var(--blue-600);justify-content:space-between;align-items:center;gap:10px;padding-bottom:10px;display:flex}.class-template-cycle--unclassified .class-template-cycle-header{border-bottom-color:var(--warning)}.class-template-cycle-title{letter-spacing:.04em;text-transform:uppercase;color:var(--text-primary);margin:0;font-size:15px;font-weight:800}.class-template-cycle-count{color:var(--text-secondary);font-size:12.5px;font-weight:600}.class-template-cycle-hint{color:var(--text-secondary);margin:0;font-size:12.5px}.class-template-cycle-select{height:30px}.class-template-select{cursor:pointer;margin:0}.class-template-row--selected{background:var(--blue-50,var(--surface-muted));outline:1px solid var(--blue-500)}.class-template-cycle-selectall{margin-left:auto}.class-template-bulk{z-index:5;background:var(--surface);border:1px solid var(--blue-600);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 14px;display:flex;position:sticky;bottom:12px;box-shadow:0 6px 20px #00000024}.class-template-bulk-count{color:var(--text-primary);font-size:13px;font-weight:700}.class-template-bulk-group{align-items:center;gap:6px;display:flex}.class-template-bulk-clear{border:1px solid var(--border);height:30px;color:var(--text-secondary);cursor:pointer;background:0 0;align-items:center;gap:4px;margin-left:auto;padding:0 10px;font-size:12.5px;font-weight:600;display:inline-flex}.accounting-pages{flex-direction:column;gap:14px;display:flex}.accounting-subtitle{color:var(--text-primary);margin:6px 0 0;font-size:14px;font-weight:700}.accounting-kind-badge{background:var(--surface-muted);border:1px solid var(--border);color:var(--text-muted);margin-left:8px;padding:2px 8px;font-size:11px;font-weight:600}.accounting-inline-form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.accounting-inline-form input{background:var(--surface);border:1px solid var(--border);width:130px;height:32px;color:var(--text-primary);padding:0 10px;font-family:inherit;font-size:13px}.accounting-status{padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.accounting-status--active{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}.accounting-status--inactive{background:var(--surface-muted);color:var(--text-muted);border:1px solid var(--border)}.accounting-label-input{background:var(--surface);border:1px solid var(--border);width:220px;height:32px;color:var(--text-primary);padding:0 10px;font-family:inherit;font-size:13px}.account-header{background:var(--surface);border:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.account-header-title{color:var(--text-primary);margin:0 0 4px;font-size:18px;font-weight:700}.account-header-balance{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.account-header-label{letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:600}.account-header-balance strong{color:var(--text-primary);font-size:20px}.accounts-row-link{cursor:pointer}.accounts-row-link:hover{background:var(--surface-muted)}.pupil-payments-summary{background:var(--surface);border:1px solid var(--border);flex-wrap:wrap;gap:28px;padding:14px 16px;display:flex}.pupil-payments-summary>div{flex-direction:column;gap:2px;display:flex}.pupil-payments-summary strong{color:var(--text-primary);font-size:18px}.pupil-payment-receipt{border:1px solid var(--border);color:var(--blue-600);cursor:pointer;background:0 0;align-items:center;gap:4px;padding:2px 6px;font-size:12px;display:inline-flex}.system-option-card{background:var(--surface);border:1px solid var(--border);color:inherit;flex-direction:column;align-items:flex-start;gap:10px;padding:20px;text-decoration:none;transition:border-color .15s;display:flex}.system-option-card:hover{border-color:var(--blue-500)}.system-option-icon{background:var(--blue-100);border:1px solid var(--blue-300);width:44px;height:44px;color:var(--blue-600);justify-content:center;align-items:center;display:flex}.system-option-label{color:var(--text-primary);font-size:15px;font-weight:600}.system-option-description{color:var(--text-muted);font-size:13px;line-height:1.4}.system-option-card--soon{opacity:.6;cursor:not-allowed}.system-option-card--soon:hover{border-color:var(--border)}.system-option-soon-badge{background:var(--surface-muted);border:1px solid var(--border);color:var(--text-muted);vertical-align:middle;margin-left:8px;padding:2px 7px;font-size:10.5px;font-weight:600}.configuration-page{flex-direction:column;gap:16px;padding:32px;display:flex}.configuration-tools{grid-template-columns:repeat(auto-fill,minmax(220px,260px));gap:16px;display:grid}@media (width<=600px){.configuration-page{padding:20px}}.aps{flex-direction:column;gap:18px;display:flex}.aps-intro{color:var(--text-secondary);margin:0;font-size:13.5px;line-height:1.6}.aps-scale{background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:8px;padding:16px 18px;display:flex}.aps-scale h3{color:var(--text-primary);margin:0;font-size:15px}.aps-scale h4{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:6px;margin:8px 0 0;font-size:12px;font-weight:700;display:flex}.aps-scale p,.aps-scale ul{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.6}.aps-scale ul{padding-left:18px}.aps-why{background:var(--surface-muted);border-left:3px solid var(--blue-600);margin-top:6px;padding:12px 14px}.aps-why h4{color:var(--blue-600);margin-top:0}.currencies-tab{flex-direction:column;gap:14px;display:flex}.currency-rate{color:var(--text-primary);align-items:center;gap:6px;font-size:13px;display:inline-flex}.currency-base-badge{background:var(--surface-muted);border:1px solid var(--border);color:var(--text-muted);margin-left:8px;padding:2px 8px;font-size:11px;font-weight:600}.currency-rate-form{flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.currency-rate-form input{background:var(--surface);border:1px solid var(--border);width:140px;height:32px;color:var(--text-primary);padding:0 10px;font-family:inherit;font-size:13px}.currency-history-header{justify-content:space-between;align-items:center;gap:10px;margin-top:6px;display:flex}.currency-history-title{color:var(--text-primary);margin:0;font-size:14px;font-weight:700}.currency-history-header select{background:var(--surface);border:1px solid var(--border);height:32px;color:var(--text-primary);padding:0 8px;font-size:13px}.currency-official-note{color:var(--text-muted);margin-left:8px;font-size:11.5px}.scholar-years-tab{flex-direction:column;gap:12px;display:flex}.scholar-year-add{background:var(--blue-600);border:1px solid var(--blue-600);height:34px;color:var(--white);cursor:pointer;align-self:flex-start;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;display:flex}.scholar-year-add:hover{background:var(--blue-700)}.scholar-year-form{background:var(--surface-muted);border:1px solid var(--border);flex-wrap:wrap;align-items:flex-end;gap:12px;padding:12px;display:flex}.scholar-year-field{color:var(--text-muted);flex-direction:column;gap:5px;font-size:11px;font-weight:600;display:flex}.scholar-year-field input{background:var(--surface);border:1px solid var(--border);height:34px;color:var(--text-primary);min-width:180px;padding:0 10px;font-family:inherit;font-size:13px}.scholar-year-form-actions{gap:8px;display:flex}.scholar-year-form-submit{background:var(--blue-600);border:1px solid var(--blue-600);height:34px;color:var(--white);cursor:pointer;padding:0 14px;font-size:13px;font-weight:600}.scholar-year-form-submit:hover{background:var(--blue-700)}.scholar-year-form-cancel{border:1px solid var(--border);height:34px;color:var(--text-secondary);cursor:pointer;background:0 0;padding:0 12px;font-size:13px}.scholar-year-created-at{color:var(--text-muted);margin-top:2px;font-size:10.5px;font-weight:400;display:block}.scholar-year-status{white-space:nowrap;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.scholar-year-status--open{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}.scholar-year-status--closed{background:var(--surface-muted);color:var(--text-muted);border:1px solid var(--border)}.scholar-year-actions{white-space:nowrap;gap:6px;display:flex}.scholar-year-actions button{border:1px solid var(--border);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:0 0;justify-content:center;align-items:center;display:flex}.scholar-year-actions button:hover{background:var(--surface-muted);border-color:var(--blue-500);color:var(--blue-600)}.drivers-page{flex-direction:column;gap:16px;padding:32px;display:flex}.drivers-heading{align-items:flex-start;gap:12px;display:flex}.drivers-heading-icon{background:var(--blue-100);border:1px solid var(--blue-300);width:40px;height:40px;color:var(--blue-600);justify-content:center;align-items:center;display:flex}.drivers-heading h2{font-size:22px;font-weight:600}.drivers-heading p{color:var(--text-muted);margin-top:4px;font-size:13px}.drivers-browser{background:var(--surface);border:1px solid var(--border)}.drivers-toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px 14px;padding:12px 14px;display:flex}.drivers-up,.drivers-sort button,.drivers-download{background:var(--surface);border:1px solid var(--border);height:32px;color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;padding:0 10px;font-family:inherit;font-size:12px;display:inline-flex}.drivers-up:hover:not(:disabled),.drivers-download:hover:not(:disabled),.drivers-sort button:hover{border-color:var(--blue-300);color:var(--blue-600)}.drivers-up:disabled,.drivers-download:disabled{opacity:.45;cursor:default}.drivers-breadcrumb{flex-wrap:wrap;align-items:center;gap:2px;min-width:0;font-size:13px;display:flex}.drivers-crumb{color:var(--text-muted);align-items:center;gap:2px;display:inline-flex}.drivers-breadcrumb button{max-width:180px;color:var(--blue-600);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:0 0;border:none;padding:2px 4px;font-family:inherit;font-size:13px;overflow:hidden}.drivers-breadcrumb button:hover:not(:disabled){text-decoration:underline}.drivers-breadcrumb button:disabled{color:var(--text-primary);cursor:default;font-weight:600}.drivers-search{background:var(--surface);border:1px solid var(--border);height:34px;color:var(--text-muted);flex:240px;align-items:center;gap:8px;margin-left:auto;padding:0 8px 0 10px;display:flex}.drivers-search:focus-within{border-color:var(--blue-600);color:var(--blue-600)}.drivers-search input{min-width:0;height:100%;color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;padding:0;font-family:inherit;font-size:13px}.drivers-search input::-webkit-search-cancel-button{display:none}.drivers-search button{width:22px;height:22px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.drivers-subbar{background:var(--surface-muted);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 14px;display:flex}.drivers-subbar p{color:var(--text-muted);font-size:12px}.drivers-sort{display:flex}.drivers-sort button{border-radius:0;height:26px;margin-left:-1px}.drivers-sort button:first-child{margin-left:0}.drivers-sort button.active{background:var(--blue-100);border-color:var(--blue-300);color:var(--blue-600);font-weight:600;position:relative}.drivers-error{padding:10px 14px}.drivers-list{animation:.18s drivers-enter}.drivers-list--pending{opacity:.55;pointer-events:none}.drivers-row{border:none;border-bottom:1px solid var(--border);width:100%;color:inherit;font:inherit;text-align:left;background:0 0;grid-template-columns:minmax(0,1fr) 72px 108px 36px;align-items:center;gap:8px;padding:8px 14px;display:grid}li:last-child .drivers-row{border-bottom:none}.drivers-row-main{min-width:0;color:inherit;font:inherit;text-align:left;cursor:default;background:0 0;border:none;align-items:center;gap:12px;padding:0;display:flex}button.drivers-row,button.drivers-row-main{cursor:pointer}.drivers-row:hover,button.drivers-row:hover{background:var(--surface-muted)}.drivers-icon{background:var(--surface-muted);border:1px solid var(--border);width:34px;height:34px;color:var(--text-secondary);flex:none;justify-content:center;align-items:center;display:flex}.drivers-icon--folder{background:var(--blue-100);border-color:var(--blue-300);color:var(--blue-600)}.drivers-row-text{flex-direction:column;gap:2px;min-width:0;display:flex}.drivers-row-text strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.drivers-row-text strong mark{background:var(--blue-100);color:inherit;padding:0 1px}.drivers-row-text span,.drivers-location{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.drivers-location{cursor:pointer;background:0 0;border:none;width:fit-content;max-width:100%;padding:0;font-family:inherit}.drivers-location:hover{color:var(--blue-600);text-decoration:underline}.drivers-size,.drivers-when{font-variant-numeric:tabular-nums;color:var(--text-muted);text-align:right;font-size:12px}.drivers-download{justify-content:center;width:32px;padding:0}.drivers-chevron{color:var(--text-muted);justify-content:center;display:flex}.drivers-empty{color:var(--text-muted);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:48px 16px;display:flex}.drivers-empty p{font-size:13px}.drivers-skeleton{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 14px;display:flex}@keyframes drivers-enter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes drivers-pulse{50%{opacity:.45}}@media (width<=720px){.drivers-row{grid-template-columns:minmax(0,1fr) auto 36px}.drivers-when{display:none}}@media (width<=600px){.drivers-page{padding:20px}.drivers-search{flex-basis:100%;margin-left:0}}@media (prefers-reduced-motion:reduce){.drivers-list,.drivers-skeleton span{animation:none}}.locality-form{background:var(--surface-muted);border:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.locality-form input,.locality-form select{background:var(--surface);border:1px solid var(--border);height:34px;color:var(--text-primary);min-width:160px;padding:0 10px;font-family:inherit;font-size:13px}.locality-form-submit{background:var(--blue-600);border:1px solid var(--blue-600);height:34px;color:var(--white);cursor:pointer;padding:0 14px;font-size:13px;font-weight:600}.locality-form-submit:hover{background:var(--blue-700)}.locality-form-cancel{border:1px solid var(--border);height:34px;color:var(--text-secondary);cursor:pointer;background:0 0;padding:0 12px;font-size:13px}.localities-card{gap:14px}.localities-card .card-title{margin:0}.localities-tabs{border-bottom:1px solid var(--border);gap:6px;display:flex}.localities-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-bottom:none;padding:8px 14px;font-size:13px;font-weight:500;transform:translateY(1px)}.localities-tab.active{color:var(--blue-600);border-color:var(--border);border-bottom:1px solid var(--surface);background:var(--surface)}.localities-error{color:var(--danger);font-size:13px}.localities-filters{flex-wrap:wrap;gap:8px;display:flex}.localities-filters select{background:var(--surface);border:1px solid var(--border);height:34px;color:var(--text-primary);padding:0 10px;font-family:inherit;font-size:13px}.localities-search{background:var(--surface);border:1px solid var(--border);height:34px;color:var(--text-muted);flex:220px;align-items:center;gap:8px;padding:0 10px;display:flex}.localities-search:focus-within{border-color:var(--blue-600);color:var(--blue-600)}.localities-search input{min-width:0;height:100%;color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;padding:0;font-family:inherit;font-size:13px}.localities-search input::-webkit-search-cancel-button{display:none}.localities-pagination{justify-content:space-between;align-items:center;gap:12px;display:flex}.localities-pagination span{color:var(--text-muted);font-size:12.5px}.localities-pagination button{background:var(--surface);border:1px solid var(--border);height:32px;color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;padding:0 12px;font-family:inherit;font-size:12.5px;font-weight:600;display:inline-flex}.localities-pagination button:hover:not(:disabled){border-color:var(--blue-500);color:var(--blue-600)}.localities-pagination button:disabled{opacity:.5;cursor:not-allowed}.localities-add{background:var(--blue-600);border:1px solid var(--blue-600);height:34px;color:var(--white);cursor:pointer;align-self:flex-start;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;display:flex}.localities-add:hover{background:var(--blue-700)}.localities-table-wrap{border:1px solid var(--border);flex:1;overflow:auto}.localities-table{border-collapse:collapse;width:100%;font-size:13px}.localities-table thead th{text-align:left;background:var(--surface-muted);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);padding:10px 12px;font-size:11px;font-weight:600;position:sticky;top:0}.localities-table tbody td{border-bottom:1px solid var(--border);color:var(--text-primary);padding:9px 12px}.localities-table tbody tr:last-child td{border-bottom:none}.localities-cell-date{color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.localities-actions{white-space:nowrap;gap:6px;display:flex}.localities-actions button{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:flex}.localities-actions button:hover{background:var(--surface-muted);border-color:var(--border);color:var(--blue-600)}.localities-actions button:last-child:hover{color:var(--danger)}.localities-empty{text-align:center;color:var(--text-muted);padding:20px 12px!important}.localities-page{flex-direction:column;gap:16px;padding:32px;display:flex}@media (width<=600px){.localities-page{padding:20px}}.logger-card{gap:16px}.logger-header{justify-content:space-between;align-items:center;display:flex}.logger-header .card-title{margin:0}.logger-live{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:flex}.logger-live-dot{background:var(--success);border-radius:50%;width:7px;height:7px;animation:1.6s ease-in-out infinite logger-pulse}@keyframes logger-pulse{0%,to{opacity:1}50%{opacity:.35}}.logger-filters{flex-wrap:wrap;gap:10px;display:flex}.logger-filters select,.logger-filters input{background:var(--surface-muted);border:1px solid var(--border);height:36px;color:var(--text-primary);padding:0 10px;font-family:inherit;font-size:13px}.logger-filters select{min-width:140px}.logger-filters input{min-width:160px}.logger-search{background:var(--surface-muted);border:1px solid var(--border);min-width:220px;color:var(--text-muted);flex:1;align-items:center;gap:8px;padding:0 10px;display:flex}.logger-search input{height:36px;color:var(--text-primary);background:0 0;border:none;flex:1;padding:0;font-family:inherit;font-size:13px}.logger-date-field{background:var(--surface-muted);border:1px solid var(--border);height:36px;color:var(--text-muted);align-items:center;gap:6px;padding:0 10px;font-size:12px;display:flex}.logger-date-field input{min-width:0;height:auto;color:var(--text-primary);background:0 0;border:none;padding:0;font-family:inherit;font-size:13px}.logger-reset{border:1px solid var(--border);height:36px;color:var(--text-secondary);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:0 12px;font-size:13px;display:flex}.logger-reset:hover{border-color:var(--danger-border);color:var(--danger)}.logger-error{color:var(--danger);font-size:13px}.logger-table-wrap{border:1px solid var(--border);flex:1;overflow:auto}.logger-table{border-collapse:collapse;width:100%;font-size:13px}.logger-table thead th{text-align:left;background:var(--surface-muted);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);padding:10px 12px;font-size:11px;font-weight:600;position:sticky;top:0}.logger-sort-button{color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;display:inline-flex}.logger-sort-button:hover{color:var(--blue-600)}.logger-details-button{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:flex}.logger-details-button:hover{background:var(--surface-muted);border-color:var(--border);color:var(--blue-600)}.logger-table tbody td{border-bottom:1px solid var(--border);color:var(--text-primary);white-space:nowrap;padding:9px 12px}.logger-table tbody tr:last-child td{border-bottom:none}.logger-table tbody tr.logger-page-break td{background:var(--page-bg);border-top:1px solid var(--border);border-bottom:1px solid var(--border);height:14px;padding:0}.logger-row--failure td{background:var(--danger-bg);color:var(--danger);font-weight:600}.logger-row--failure .logger-cell-time,.logger-row--failure .logger-cell-client{color:var(--danger)}.logger-row--failure .logger-badge--access{background:var(--danger);color:var(--white)}.logger-row--failure .logger-details-button{color:var(--danger)}.logger-cell-time,.logger-cell-client{color:var(--text-muted);font-variant-numeric:tabular-nums}.logger-badge{text-transform:uppercase;letter-spacing:.03em;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.logger-badge--access{background:var(--blue-100);color:var(--blue-700)}.logger-badge--crud{background:var(--navy-800);color:var(--blue-200)}.logger-status{font-variant-numeric:tabular-nums;padding:3px 8px;font-size:12px;font-weight:600;display:inline-flex}.logger-status--ok{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}.logger-status--warn{background:var(--warning-bg);color:var(--warning);border:1px solid var(--warning-border)}.logger-status--error{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border)}.logger-load-more{background:var(--surface-muted);border:1px solid var(--border);height:36px;color:var(--text-secondary);cursor:pointer;align-self:center;padding:0 20px;font-size:13px;font-weight:600}.logger-load-more:hover:not(:disabled){border-color:var(--blue-500);color:var(--blue-600)}.logger-load-more:disabled{opacity:.7;cursor:not-allowed}.logger-empty{text-align:center;color:var(--text-muted);white-space:normal!important;padding:24px 12px!important}.logger-page{flex-direction:column;gap:16px;padding:32px;display:flex}@media (width<=600px){.logger-page{padding:20px}}.system-page{padding:32px}.system-options-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;display:grid}.system-empty{color:var(--text-muted);font-size:14px}@media (width<=600px){.system-page{padding:20px}}.coming-soon-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:200;background:#060e2199;justify-content:center;align-items:center;padding:20px;animation:.18s coming-soon-fade;display:flex;position:fixed;inset:0}.coming-soon-card{background:var(--surface);border:1px solid var(--border);text-align:center;flex-direction:column;align-items:center;gap:12px;width:100%;max-width:380px;padding:32px 28px 28px;animation:.28s cubic-bezier(.34,1.56,.64,1) coming-soon-pop;display:flex;position:relative;box-shadow:0 24px 60px #060e2159}.coming-soon-close{background:var(--surface-muted);border:1px solid var(--border);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;justify-content:center;align-items:center;display:flex;position:absolute;top:10px;right:10px}.coming-soon-close:hover{color:var(--danger)}.coming-soon-icon{background:var(--warning-bg);border:1px solid var(--warning-border);width:60px;height:60px;color:var(--warning);justify-content:center;align-items:center;animation:1.8s ease-in-out infinite coming-soon-wiggle;display:flex}.coming-soon-card h3{color:var(--text-primary);font-size:17px;font-weight:700}.coming-soon-card p{color:var(--text-secondary);font-size:13.5px;line-height:1.6}.coming-soon-card p strong{color:var(--text-primary)}.coming-soon-action{background:var(--navy-900);color:var(--white);cursor:pointer;border:none;margin-top:8px;padding:10px 24px;font-size:13.5px;font-weight:600}.coming-soon-action:hover{background:var(--blue-700)}@keyframes coming-soon-fade{0%{opacity:0}to{opacity:1}}@keyframes coming-soon-pop{0%{opacity:0;transform:scale(.85)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes coming-soon-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}.showcase-navbar{z-index:50;background:0 0;transition:background .25s,box-shadow .25s;position:sticky;top:0}.showcase-navbar:after{content:"";background:linear-gradient(90deg, var(--blue-600) 0 33.333%, #f7d618 33.333% 66.666%, #ce1126 66.666% 100%);opacity:0;transform-origin:50%;height:3px;transition:opacity .3s,transform .45s cubic-bezier(.16,1,.3,1);position:absolute;bottom:0;left:0;right:0;transform:scaleX(.35)}.showcase-navbar.scrolled{background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 8px 24px #060e211f}.showcase-navbar.scrolled:after{opacity:1;transform:scaleX(1)}.showcase-navbar-inner{align-items:center;gap:32px;max-width:1180px;margin:0 auto;padding:14px 24px;display:flex}.showcase-navbar-brand{transition:transform .25s;display:flex}.showcase-navbar-brand:hover{transform:translateY(-1px)}.showcase-navbar-brand img{height:56px;display:block}.showcase-navbar-links{flex:1;align-items:center;gap:8px;display:flex}.showcase-navbar-links a{color:var(--text-secondary);padding:8px 12px;font-size:13.5px;font-weight:600;text-decoration:none;transition:color .2s,transform .2s,background .2s;position:relative}.showcase-navbar-links a:after{content:"";background:linear-gradient(90deg, var(--blue-600), #f7d618 58%, #ce1126);transform-origin:0;border-radius:2px;height:2px;transition:transform .28s cubic-bezier(.16,1,.3,1);position:absolute;bottom:4px;left:12px;right:12px;transform:scaleX(0)}.showcase-navbar-links a:hover,.showcase-navbar-links a:focus-visible{color:var(--text-primary);transform:translateY(-1px)}.showcase-navbar-links a:hover:after,.showcase-navbar-links a:focus-visible:after{transform:scaleX(1)}.showcase-navbar-links a:focus-visible{outline:2px solid var(--blue-600);outline-offset:2px}.showcase-navbar-actions{align-items:center;gap:14px;display:flex}.showcase-navbar-cta{background:var(--blue-600);color:var(--white);white-space:nowrap;align-items:center;gap:8px;padding:9px 18px;font-size:13.5px;font-weight:600;text-decoration:none;transition:background .2s,transform .2s,box-shadow .2s;display:inline-flex}.showcase-navbar-cta svg{transition:transform .22s}.showcase-navbar-cta:hover{background:var(--blue-700);transform:translateY(-1px);box-shadow:0 8px 18px #2563eb52}.showcase-navbar-cta:hover svg{transform:translate(3px)}.showcase-navbar-cta:focus-visible{outline:2px solid var(--blue-400);outline-offset:3px}.showcase-navbar-burger{border:1px solid var(--border);color:var(--text-primary);cursor:pointer;background:0 0;justify-content:center;align-items:center;width:38px;height:38px;transition:border-color .2s,color .2s,transform .2s;display:none}.showcase-navbar-burger:hover{border-color:var(--blue-600);color:var(--blue-600);transform:translateY(-1px)}.showcase-drawer-backdrop{z-index:90;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;visibility:hidden;background:#060e218c;transition:opacity .3s,visibility .3s;position:fixed;inset:0}.showcase-drawer-backdrop.open{opacity:1;visibility:visible}.showcase-drawer{z-index:91;background:var(--navy-950);border-right:1px solid #ffffff1a;flex-direction:column;width:min(84vw,320px);padding:20px 22px 28px;transition:transform .32s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:24px 0 60px #060e2159}.showcase-drawer.open{transform:translate(0)}.showcase-drawer-header{justify-content:space-between;align-items:center;margin-bottom:32px;display:flex}.showcase-drawer-header img{height:48px}.showcase-drawer-close{color:#eef4ff;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff26;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.showcase-drawer-links{flex-direction:column;flex:1;gap:2px;display:flex}.showcase-drawer-links a{color:#cdd9f2;opacity:0;border-bottom:1px solid #ffffff14;padding:14px 4px;font-size:15px;font-weight:600;text-decoration:none;transition:opacity .3s,transform .3s,color .15s;transform:translate(-14px)}.showcase-drawer.open .showcase-drawer-links a{opacity:1;transform:translate(0)}.showcase-drawer.open .showcase-drawer-links a:hover,.showcase-drawer.open .showcase-drawer-links a:focus-visible{color:#fff;transform:translate(6px)}.showcase-drawer-cta{background:var(--blue-500);color:#fff;justify-content:center;align-items:center;gap:8px;margin-top:20px;padding:13px 18px;font-size:14px;font-weight:700;text-decoration:none;transition:background .2s,transform .2s;display:flex}.showcase-drawer-cta svg{transition:transform .22s}.showcase-drawer-cta:hover{background:var(--blue-600);transform:translateY(-1px)}.showcase-drawer-cta:hover svg{transform:translate(3px)}.showcase-drawer-footer{justify-content:center;margin-top:20px;display:flex}@media (width<=860px){.showcase-navbar-links,.showcase-navbar-actions .showcase-navbar-cta{display:none}.showcase-navbar-burger{display:flex}}@media (width>=861px){.showcase-drawer,.showcase-drawer-backdrop{display:none}}@media (prefers-reduced-motion:reduce){.showcase-navbar:after,.showcase-navbar-brand,.showcase-navbar-links a,.showcase-navbar-links a:after,.showcase-navbar-cta,.showcase-navbar-cta svg,.showcase-navbar-burger,.showcase-drawer,.showcase-drawer-links a,.showcase-drawer-cta,.showcase-drawer-cta svg,.showcase-drawer-backdrop{transition:none}.showcase-navbar-links a:hover,.showcase-navbar-cta:hover,.showcase-navbar-burger:hover,.showcase-drawer-cta:hover{transform:none}}.hero-section{align-items:center;min-height:680px;display:flex;position:relative;overflow:hidden}.hero-media{z-index:0;position:absolute;inset:0}.hero-media img{object-fit:cover;object-position:center 20%;width:100%;height:100%;animation:22s ease-in-out infinite alternate hero-ken-burns}.hero-media-overlay{background:linear-gradient(100deg,#060e21f0 0%,#060e21db 32%,#0b18308c 60%,#0b18304d 100%);position:absolute;inset:0}.hero-content{z-index:1;width:100%;max-width:1180px;margin:0 auto;padding:80px 24px 120px;animation:.9s cubic-bezier(.16,1,.3,1) hero-content-in;position:relative}.hero-badge{color:#eef4ff;background:#ffffff1a;border:1px solid #ffffff40;align-items:center;gap:8px;margin-bottom:24px;padding:6px 14px;font-size:12.5px;font-weight:600;display:inline-flex}.hero-badge img{width:16px;height:auto}.hero-content h1{color:#fff;max-width:720px;margin-bottom:20px;font-size:clamp(32px,5vw,52px);font-weight:800;line-height:1.15}.hero-highlight{background:linear-gradient(100deg, var(--blue-400), var(--blue-300));color:#0000;-webkit-background-clip:text;background-clip:text}.hero-content p{color:#cdd9f2;max-width:560px;margin-bottom:36px;font-size:16px;line-height:1.7}.hero-actions{flex-wrap:wrap;gap:16px;margin-bottom:56px;display:flex}.hero-cta-primary,.hero-cta-secondary{cursor:pointer;border:none;align-items:center;gap:10px;padding:14px 26px;font-size:14.5px;font-weight:700;text-decoration:none;transition:transform .15s,background .15s,box-shadow .15s;display:inline-flex}.hero-cta-primary{background:var(--blue-500);color:#fff}.hero-cta-primary:hover{background:var(--blue-600);transform:translateY(-2px);box-shadow:0 14px 30px #3b82f659}.hero-cta-secondary{color:#fff;background:#ffffff14;border:1px solid #ffffff59}.hero-cta-secondary:hover{background:#ffffff29;transform:translateY(-2px)}.hero-floating-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0b18308c;border:1px solid #ffffff2e;align-items:center;gap:14px;padding:16px 20px;animation:4s ease-in-out infinite hero-float;display:inline-flex}.hero-floating-icon{width:38px;height:38px;color:var(--blue-400);background:#60a5fa2e;border:1px solid #60a5fa66;flex-shrink:0;justify-content:center;align-items:center;display:flex}.hero-floating-card strong{color:#fff;margin-bottom:2px;font-size:13.5px;display:block}.hero-floating-card span{color:#a9bedd;font-size:12px}.hero-scroll-cue{z-index:1;color:#ffffffbf;animation:1.8s ease-in-out infinite hero-bounce;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}@keyframes hero-ken-burns{0%{transform:scale(1)}to{transform:scale(1.12)}}@keyframes hero-content-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes hero-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes hero-bounce{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,8px)}}@media (prefers-reduced-motion:reduce){.hero-media img,.hero-content,.hero-floating-card,.hero-scroll-cue{animation:none}}@media (width<=640px){.hero-section{min-height:600px}.hero-content{padding:56px 20px 100px}.hero-floating-card{display:none}}.problem-section{background:var(--surface);padding:96px 24px}.problem-inner{grid-template-columns:1.3fr .9fr;align-items:start;gap:56px;max-width:1180px;margin:0 auto;display:grid}.problem-text h2{color:var(--text-primary);max-width:560px;margin:10px 0 16px;font-size:clamp(24px,3.2vw,34px);font-weight:800;line-height:1.25}.problem-text>p{color:var(--text-secondary);max-width:560px;margin-bottom:36px;font-size:15px;line-height:1.75}.problem-grid{grid-template-columns:repeat(2,1fr);gap:18px;display:grid}.problem-card{background:var(--surface-muted);border:1px solid var(--border);flex-direction:column;gap:8px;padding:20px;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex}.problem-card:hover{border-color:var(--danger-border);transform:translateY(-3px);box-shadow:0 16px 30px #dc262614}.problem-card-icon{background:var(--danger-bg);border:1px solid var(--danger-border);width:38px;height:38px;color:var(--danger);justify-content:center;align-items:center;margin-bottom:4px;display:flex}.problem-card h3{color:var(--text-primary);font-size:14.5px;font-weight:700}.problem-card p{color:var(--text-secondary);font-size:13px;line-height:1.6}.problem-figure{margin:0;position:sticky;top:96px}.problem-figure figure{margin:0}.problem-figure img{object-fit:cover;border:1px solid var(--border);filter:grayscale(.25)saturate(1.05);width:100%;height:360px;transition:filter .3s,transform .5s;display:block}.problem-figure:hover img{filter:grayscale(0);transform:scale(1.02)}.problem-figure figcaption{color:var(--text-muted);margin-top:10px;font-size:12.5px;font-style:italic}@media (width<=980px){.problem-inner{grid-template-columns:1fr}.problem-figure{order:-1;position:static}}@media (width<=560px){.problem-section{padding:64px 20px}.problem-grid{grid-template-columns:1fr}}.browser-frame{background:var(--surface);border:1px solid var(--border);overflow:hidden;box-shadow:0 30px 70px #060e2140}.browser-frame-bar{background:var(--surface-muted);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 14px;display:flex}.browser-frame-dots{gap:6px;display:flex}.browser-frame-dots span{background:var(--border-strong);border-radius:50%;width:9px;height:9px}.browser-frame-url{text-align:center;color:var(--text-muted);background:var(--surface);border:1px solid var(--border);flex:1;margin-right:40px;padding:3px 10px;font-size:11.5px}.browser-frame-body{line-height:0}.browser-frame-body img{width:100%;height:auto;display:block}.product-mockup{background:var(--page-bg);flex-direction:column;gap:14px;padding:20px;display:flex}.mockup-tiles{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.mockup-tile{background:var(--surface);border:1px solid var(--border);border-top:2px solid var(--blue-500);flex-direction:column;gap:5px;padding:12px;display:flex}.mockup-tile svg{color:var(--blue-600)}.mockup-tile-value{color:var(--text-primary);font-size:16px;font-weight:800}.mockup-tile-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:9.5px}.mockup-panel{background:var(--surface);border:1px solid var(--border);padding:16px}.mockup-panel-header span{color:var(--text-secondary);font-size:11.5px;font-weight:700}.mockup-chart{align-items:flex-end;gap:8px;height:72px;margin-top:14px;display:flex}.mockup-bar{background:linear-gradient(180deg, var(--blue-400), var(--blue-600));flex:1;animation:1.2s cubic-bezier(.16,1,.3,1) backwards mockup-grow}.mockup-bar:first-child{animation-delay:50ms}.mockup-bar:nth-child(2){animation-delay:.1s}.mockup-bar:nth-child(3){animation-delay:.15s}.mockup-bar:nth-child(4){animation-delay:.2s}.mockup-bar:nth-child(5){animation-delay:.25s}.mockup-bar:nth-child(6){animation-delay:.3s}.mockup-bar:nth-child(7){animation-delay:.35s}.mockup-rows{flex-direction:column;gap:8px;display:flex}.mockup-row{background:var(--surface);border:1px solid var(--border);align-items:center;gap:10px;padding:10px 14px;display:flex}.mockup-row-dot{background:var(--success);border-radius:50%;flex-shrink:0;width:8px;height:8px}.mockup-row-name{color:var(--text-primary);flex:1;font-size:12px;font-weight:600}.mockup-row-badge{text-transform:uppercase;color:var(--success);background:var(--success-bg);border:1px solid var(--success-border);padding:2px 8px;font-size:10px;font-weight:700}@keyframes mockup-grow{0%{transform-origin:bottom;transform:scaleY(0)}to{transform-origin:bottom;transform:scaleY(1)}}@media (width<=460px){.mockup-tiles{grid-template-columns:repeat(2,1fr)}}.solution-section{background:var(--surface-muted);padding:96px 24px}.solution-inner{grid-template-columns:.9fr 1.1fr;align-items:center;gap:56px;max-width:1180px;margin:0 auto;display:grid}.solution-text h2{color:var(--text-primary);margin:10px 0 16px;font-size:clamp(24px,3.2vw,34px);font-weight:800;line-height:1.25}.solution-text>p{color:var(--text-secondary);max-width:480px;margin-bottom:32px;font-size:15px;line-height:1.75}.solution-comparison{flex-direction:column;gap:14px;padding:0;display:flex}.solution-comparison li{border-bottom:1px solid var(--border);flex-direction:column;gap:6px;padding-bottom:14px;display:flex}.solution-comparison li:last-child{border-bottom:none}.comparison-before,.comparison-after{align-items:center;gap:8px;font-size:13.5px;display:flex}.comparison-before{color:var(--text-muted);text-decoration:line-through}.comparison-before svg{color:var(--danger);flex-shrink:0}.comparison-after{color:var(--text-primary);font-weight:600}.comparison-after svg{color:var(--success);flex-shrink:0}.solution-preview{perspective:1400px}.solution-preview .browser-frame{transform:rotateY(-6deg)rotateX(2deg)}@media (width<=980px){.solution-inner{grid-template-columns:1fr}.solution-preview .browser-frame{transform:none}}@media (width<=560px){.solution-section{padding:64px 20px}}.features-section{background:var(--surface);padding:96px 24px}.features-inner{max-width:1180px;margin:0 auto}.features-header{text-align:center;max-width:600px;margin:0 auto 48px}.features-header h2{color:var(--text-primary);margin:10px 0 16px;font-size:clamp(24px,3.2vw,34px);font-weight:800;line-height:1.25}.features-header p{color:var(--text-secondary);font-size:15px;line-height:1.7}.features-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;display:grid}a.feature-card{color:inherit;text-decoration:none}.feature-card{text-align:left;background:var(--surface);border:1px solid var(--border);cursor:pointer;flex-direction:column;gap:10px;width:100%;padding:24px 20px;font-family:inherit;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex;position:relative}.feature-card:hover{border-color:var(--blue-400);transform:translateY(-4px);box-shadow:0 18px 34px #060e211a}.feature-card:hover .feature-card-icon{background:var(--blue-600);color:#fff;border-color:var(--blue-600)}.feature-card-icon{background:var(--blue-100);border:1px solid var(--blue-200);width:42px;height:42px;color:var(--blue-600);justify-content:center;align-items:center;transition:background .2s,color .2s,border-color .2s;display:flex}.feature-card h3{color:var(--text-primary);font-size:15px;font-weight:700}.feature-card p{color:var(--text-secondary);font-size:13px;line-height:1.6}.feature-badge{text-transform:uppercase;letter-spacing:.03em;padding:3px 9px;font-size:10.5px;font-weight:700;position:absolute;top:16px;right:16px}.feature-badge--available{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}.feature-badge--soon{background:var(--warning-bg);color:var(--warning);border:1px solid var(--warning-border)}@media (width<=560px){.features-section{padding:64px 20px}}.stats-section{background:var(--navy-950);color:#fff;padding:96px 24px}.stats-inner{max-width:1180px;margin:0 auto}.stats-inner h2{color:#fff;max-width:560px;margin:10px 0 48px;font-size:clamp(24px,3.2vw,34px);font-weight:800}.stats-highlights{grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:64px;display:grid}.stats-highlight{background:#ffffff0a;border:1px solid #ffffff1f;flex-direction:column;gap:8px;padding:24px 20px;transition:background .2s,border-color .2s,transform .2s;display:flex}.stats-highlight:hover{background:#ffffff14;border-color:#60a5fa66;transform:translateY(-3px)}.stats-highlight-value{color:var(--blue-400);font-size:34px;font-weight:800}.stats-highlight-label{color:#a9bedd;font-size:12.5px;line-height:1.5}.stats-comparison{background:#ffffff0a;border:1px solid #ffffff1f;padding:32px}.stats-comparison-note{color:#8fa3c4;margin-bottom:24px;font-size:12.5px;font-style:italic}.stats-comparison-row{flex-direction:column;gap:10px;margin-bottom:24px;display:flex}.stats-comparison-row:last-child{margin-bottom:0}.stats-comparison-label{color:#eef4ff;font-size:13.5px;font-weight:600}.stats-comparison-bars{flex-direction:column;gap:8px;display:flex}.comparison-track{background:#ffffff0f;height:22px;position:relative}.comparison-fill{width:0;height:100%;transition:width 1.1s cubic-bezier(.16,1,.3,1);display:block}.reveal--visible .comparison-fill{width:var(--bar-width,0%)}.comparison-fill--paper{background:#f87171}.comparison-fill--digital{background:var(--blue-400)}.comparison-tag{color:#0b1830;font-size:11px;font-weight:700;position:absolute;top:50%;left:10px;transform:translateY(-50%)}@media (width<=860px){.stats-highlights{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.stats-section{padding:64px 20px}.stats-comparison{padding:22px 18px}}.cta-section{background:var(--surface-muted);padding:96px 24px}.cta-inner{background:var(--surface);border:1px solid var(--border);grid-template-columns:1.1fr .9fr;align-items:center;gap:48px;max-width:1180px;margin:0 auto;padding:56px;display:grid}.cta-text h2{color:var(--text-primary);max-width:460px;margin-bottom:14px;font-size:clamp(24px,3.2vw,32px);font-weight:800;line-height:1.25}.cta-text>p{color:var(--text-secondary);max-width:440px;margin-bottom:28px;font-size:15px;line-height:1.7}.cta-actions{flex-wrap:wrap;gap:14px;margin-bottom:20px;display:flex}.cta-primary,.cta-secondary{cursor:pointer;border:none;align-items:center;gap:8px;padding:13px 24px;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.cta-primary{background:var(--navy-900);color:var(--white)}.cta-primary:hover{background:var(--blue-700)}.cta-secondary{color:var(--text-primary);border:1px solid var(--border-strong);background:0 0}.cta-secondary:hover{border-color:var(--blue-500);color:var(--blue-600)}.cta-existing{color:var(--text-muted);font-size:13px}.cta-existing a{color:var(--blue-600);font-weight:600}.cta-image-frame{position:relative}.cta-image-frame:before{content:"";border:2px solid var(--blue-400);z-index:0;position:absolute;inset:14px -14px -14px 14px}.cta-image{z-index:1;object-fit:cover;border:1px solid var(--border);width:100%;height:280px;transition:transform .3s;position:relative}.cta-image-frame:hover .cta-image{transform:translate(-4px,4px)}@media (width<=980px){.cta-inner{grid-template-columns:1fr;padding:36px 28px}.cta-image{order:-1;height:220px}}@media (width<=560px){.cta-section{padding:64px 20px}}.showcase-footer{background:linear-gradient(180deg, #2563eb2e, transparent 140px), var(--navy-950);color:#cdd9f2;padding:72px 24px 28px;position:relative}.showcase-footer:before{content:"";background:linear-gradient(90deg, var(--blue-600) 0 33.333%, #f7d618 33.333% 66.666%, #ce1126 66.666% 100%);height:6px;position:absolute;top:0;left:0;right:0}.showcase-footer-inner{border-bottom:1px solid #ffffff1a;grid-template-columns:1fr 2fr;align-items:start;gap:56px;max-width:1180px;margin:0 auto;padding-bottom:36px;display:grid}.showcase-footer-brand img{height:72px;margin-bottom:18px}.showcase-footer-brand p{color:#b7c7e3;max-width:280px;margin:0;font-size:14px;line-height:1.65}.showcase-footer-socials{flex-wrap:wrap;gap:8px;max-width:300px;margin-top:18px;display:flex}.showcase-footer-social{color:#cdd9f2;cursor:pointer;background:0 0;border:1px solid #ffffff29;justify-content:center;align-items:center;width:36px;height:36px;padding:0;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.showcase-footer-social svg{width:16px;height:16px;display:block}.showcase-footer-social:hover{background:var(--blue-600);border-color:var(--blue-600);color:var(--white)}.showcase-footer-social:focus-visible{outline:2px solid var(--blue-400);outline-offset:2px}.showcase-footer-links{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;display:grid}.showcase-footer-contact-actions{flex-direction:column;align-items:flex-start;gap:8px;margin-top:6px;display:flex}.showcase-footer-links h4{text-transform:uppercase;letter-spacing:.08em;color:#eef4ff;border-bottom:1px solid #ffffff1a;margin:0 0 16px;padding-bottom:10px;font-size:11px;font-weight:700}.showcase-footer-links a,.showcase-footer-links button{color:#a9bedd;cursor:pointer;text-align:left;background:0 0;border:none;margin-bottom:10px;padding:0;font-family:inherit;font-size:13.5px;line-height:1.45;text-decoration:none;transition:color .15s;display:block}.showcase-footer-links a:hover,.showcase-footer-links button:hover{color:#fff}.showcase-footer-links a:focus-visible,.showcase-footer-links button:focus-visible{outline:2px solid var(--blue-400);outline-offset:3px}.showcase-footer-links .showcase-footer-contact-actions button{color:#cdd9f2;border:1px solid #ffffff29;align-items:center;gap:8px;width:auto;height:34px;margin-bottom:0;padding:0 12px 0 10px;font-size:12.5px;font-weight:600;line-height:1;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.showcase-footer-links .showcase-footer-contact-actions button svg{width:16px;height:16px;display:block}.showcase-footer-links .showcase-footer-contact-actions button:hover{background:var(--blue-600);border-color:var(--blue-600);color:var(--white)}.showcase-footer-links .showcase-footer-contact-actions button:focus-visible{outline:2px solid var(--blue-400);outline-offset:2px}.showcase-footer-bottom{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;max-width:1180px;margin:0 auto;padding-top:18px;padding-right:72px;display:flex}.showcase-footer-bottom p{color:#8fa3c4;margin:0;font-size:12px}@media (width<=860px){.showcase-footer{padding:48px 20px 24px}.showcase-footer-inner{grid-template-columns:1fr;gap:36px}.showcase-footer-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px}}.showcase-back-to-top{z-index:40;background:var(--blue-600);width:46px;height:46px;color:var(--white);box-shadow:0 10px 24px color-mix(in srgb, var(--navy-950) 28%, transparent);cursor:pointer;opacity:0;pointer-events:none;border:none;justify-content:center;align-items:center;padding:0;transition:opacity .2s,transform .2s,background .2s,box-shadow .2s;display:flex;position:fixed;bottom:24px;right:24px;transform:translateY(10px)}.showcase-back-to-top.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.showcase-back-to-top:hover{background:var(--blue-700);box-shadow:0 14px 28px color-mix(in srgb, var(--navy-950) 34%, transparent);transform:translateY(-2px)}.showcase-back-to-top:focus-visible{outline:2px solid var(--blue-500);outline-offset:3px}@media (width<=700px){.showcase-back-to-top{bottom:16px;right:16px}}@media (prefers-reduced-motion:reduce){.showcase-back-to-top,.showcase-back-to-top:hover{transition:none;transform:none}}.showcase-page{background:var(--page-bg);color:var(--text-primary)}.section-eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--blue-600);font-size:12px;font-weight:700;display:inline-block}.section-eyebrow--light{color:var(--blue-400)}.reveal{opacity:0;will-change:opacity, transform;transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transform:translateY(24px)}.reveal--visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}}.registration-layout{background:var(--page-bg);flex-direction:column;min-height:100svh;display:flex}.registration-header{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;padding:18px 28px;display:flex}.registration-brand img{height:32px;display:block}.registration-main{flex:1;justify-content:center;align-items:flex-start;padding:48px 20px;display:flex}.registration-card{background:var(--surface);border:1px solid var(--border);width:100%;max-width:560px;padding:40px}.registration-card--broad{max-width:880px}.registration-main--wide{width:100%;padding:0;display:block}@media (width<=600px){.registration-main{padding:24px 16px}.registration-card{padding:24px}}.registration-title{color:var(--text-primary);margin-bottom:8px;font-size:20px;font-weight:700}.registration-subtitle{color:var(--text-secondary);margin-bottom:24px;font-size:13.5px;line-height:1.7}.registration-error{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-border);margin-bottom:16px;padding:10px 12px;font-size:13px}.registration-form{flex-direction:column;gap:16px;display:flex}.registration-form label{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:13px;font-weight:500;display:flex}.registration-phone{align-items:stretch;display:flex}.registration-phone-prefix{background:var(--surface);border:1px solid var(--border);height:40px;color:var(--text-muted);border-right:none;align-items:center;padding:0 12px;font-size:14px;font-weight:600;display:flex}.registration-phone input{flex:1;min-width:0}.registration-form input,.registration-form select{background:var(--surface-muted);border:1px solid var(--border);height:40px;color:var(--text-primary);padding:0 12px;font-family:inherit;font-size:14px}.registration-field{color:var(--text-secondary);flex-direction:column;gap:8px;font-size:13px;font-weight:500;display:flex}.registration-field-label{align-items:baseline;gap:6px;display:flex}.registration-tags{flex-wrap:wrap;gap:8px;display:flex}.registration-tag{background:var(--surface-muted);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;align-items:center;gap:6px;padding:6px 10px;font-size:12.5px;font-weight:400;display:flex}.registration-tag input{width:auto;height:auto;margin:0}.registration-submit{background:var(--blue-600);height:44px;color:var(--white);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;margin-top:4px;padding:0 20px;font-size:14px;font-weight:700;text-decoration:none;display:flex}.registration-submit:hover:not(:disabled){background:var(--blue-700)}.registration-submit:disabled{opacity:.7;cursor:not-allowed}.registration-secondary{border:1px solid var(--border-strong);width:100%;height:44px;color:var(--text-primary);cursor:pointer;background:0 0;justify-content:center;align-items:center;margin-top:12px;padding:0 20px;font-size:13.5px;font-weight:600;display:flex}.registration-secondary:hover{border-color:var(--blue-500);color:var(--blue-600)}.registration-download{margin-top:4px}.registration-link-button{margin-top:8px;display:inline-flex}.registration-success{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:12px 0;display:flex}.registration-success h1{color:var(--text-primary);font-size:19px;font-weight:700}.registration-success p{color:var(--text-secondary);max-width:400px;font-size:13.5px;line-height:1.7}.registration-hint{color:var(--text-muted)!important;font-size:12px!important}.registration-success-icon{background:var(--success-bg);border:1px solid var(--success-border);width:56px;height:56px;color:var(--success);justify-content:center;align-items:center;margin-bottom:6px;display:flex}.registration-success-icon--error{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger)}.step-indicator{align-items:center;gap:8px;margin:0 0 32px;padding:0;display:flex}.step-indicator-item{flex:1;align-items:center;gap:8px;display:flex}.step-indicator-item:not(:last-child):after{content:"";background:var(--border);flex:1;height:1px;margin-left:8px}.step-indicator-dot{background:var(--surface-muted);border:1px solid var(--border);width:24px;height:24px;color:var(--text-muted);flex-shrink:0;justify-content:center;align-items:center;font-size:11.5px;font-weight:700;display:flex}.step-indicator-item--active .step-indicator-dot{background:var(--blue-600);border-color:var(--blue-600);color:#fff}.step-indicator-item--done .step-indicator-dot{background:var(--success-bg);border-color:var(--success-border);color:var(--success)}.step-indicator-label{color:var(--text-muted);white-space:nowrap;font-size:12px;font-weight:600}.step-indicator-item--active .step-indicator-label{color:var(--text-primary)}@media (width<=480px){.step-indicator-label{display:none}}.image-cropper{flex-direction:column;align-items:center;gap:14px;display:flex}.image-cropper-stage{cursor:grab;touch-action:none;background:repeating-conic-gradient(var(--surface-muted) 0% 25%, var(--surface) 0% 50%) 50% / 20px 20px;border:1px solid var(--border-strong);max-width:100%;position:relative;overflow:hidden}.image-cropper-stage:active{cursor:grabbing}.image-cropper-stage:focus-visible{outline:2px solid var(--blue-500);outline-offset:2px}.image-cropper-stage canvas{width:100%;height:100%;display:block}.image-cropper-mask{pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #ffffff59}.image-cropper-zoom{align-items:center;gap:10px;width:100%;max-width:320px;display:flex}.image-cropper-zoom input[type=range]{accent-color:var(--blue-600);flex:1}.image-cropper-zoom button{width:32px;height:32px;color:var(--text-secondary);background:var(--surface-muted);border:1px solid var(--border);cursor:pointer;justify-content:center;align-items:center;padding:0;display:flex}.image-cropper-zoom button:hover:not(:disabled){color:var(--blue-600);border-color:var(--blue-500)}.image-cropper-zoom button:disabled{opacity:.45;cursor:not-allowed}.image-cropper-hint{text-align:center;max-width:320px;color:var(--text-muted);margin:0;font-size:12px;line-height:1.5}.image-cropper-confirm{color:#fff;background:var(--blue-600);border:1px solid var(--blue-600);cursor:pointer;width:100%;max-width:320px;height:40px;font-family:inherit;font-size:13px;font-weight:600}.image-cropper-confirm:hover:not(:disabled){background:var(--blue-700)}.image-cropper-confirm:disabled{opacity:.6;cursor:not-allowed}.picture-editor{flex-direction:column;gap:20px;display:flex}.picture-editor-main{display:flex}.picture-editor-drop{color:var(--text-secondary);text-align:left;background:var(--surface-muted);border:1px solid var(--border);flex-wrap:wrap;flex:1;align-items:center;gap:8px 14px;padding:14px 16px;transition:border-color .12s,background .12s;display:flex}.picture-editor-drop--active{border-color:var(--blue-500);background:var(--blue-50)}.picture-editor-drop p{margin:0;font-size:13px}.picture-editor-drop small{color:var(--text-muted);flex-basis:100%;font-size:11.5px;line-height:1.5}.picture-editor-pick{color:#fff;background:var(--blue-600);border:1px solid var(--blue-600);cursor:pointer;align-items:center;gap:8px;height:36px;padding:0 16px;font-family:inherit;font-size:13px;font-weight:600;display:inline-flex}.picture-editor-pick:hover{background:var(--blue-700)}.picture-editor-error{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-border);margin:0;padding:10px 12px;font-size:13px}.picture-editor-history h4{color:var(--text-primary);align-items:center;gap:8px;margin:0 0 4px;font-size:13px;display:flex}.picture-editor-history p{color:var(--text-muted);margin:0 0 12px;font-size:12px}.picture-editor-history ul{flex-wrap:wrap;gap:12px;margin:0;padding:0;list-style:none;display:flex}.picture-editor-history-item{flex-direction:column;align-items:center;gap:6px;width:88px;display:flex}.picture-editor-history-item--current .avatar-image{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--blue-600)}.picture-editor-history-date{color:var(--text-muted);font-size:11px}.picture-editor-history-badge{color:var(--blue-700);background:var(--blue-100);border:1px solid var(--blue-300);padding:2px 8px;font-size:10.5px;font-weight:600}.picture-editor-history-item button{color:var(--text-secondary);background:var(--surface-muted);border:1px solid var(--border);cursor:pointer;align-items:center;gap:4px;padding:3px 8px;font-family:inherit;font-size:11px;display:inline-flex}.picture-editor-history-item button:hover:not(:disabled){color:var(--blue-600);border-color:var(--blue-500)}.picture-editor-history-item button:disabled{opacity:.5;cursor:wait}.profile-page{flex-direction:column;gap:20px;padding:32px;display:flex}.profile-identity{background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:20px;padding:24px 28px;display:flex}.profile-identity-main{align-items:center;gap:20px;display:flex}.profile-identity h2{color:var(--text-primary);margin:0 0 4px;font-size:22px;font-weight:600}.profile-identity-main p{color:var(--text-secondary);margin:0 0 12px;font-size:13.5px}.profile-badges{flex-wrap:wrap;gap:8px;display:flex}.profile-badge{color:var(--blue-700);background:var(--blue-100);border:1px solid var(--blue-300);padding:3px 10px;font-size:11.5px;font-weight:600}.profile-badge--active,.profile-badge--ok{color:var(--success);background:var(--success-bg);border-color:var(--success-border)}.profile-badge--blocked{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-border)}.profile-badge--pending_email{color:var(--warning);background:var(--warning-bg);border-color:var(--warning-border)}.profile-badge--muted{color:var(--text-secondary);background:var(--surface-muted);border-color:var(--border)}.profile-grid{grid-template-columns:1fr 1fr;align-items:start;gap:20px;display:grid}.profile-card{background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:14px;padding:20px 24px;display:flex}.profile-card h3{color:var(--text-primary);margin:0;font-size:15px}.profile-notice{color:var(--warning);background:var(--warning-bg);border:1px solid var(--warning-border);border-left-width:3px;margin:0;padding:10px 14px;font-size:13px;line-height:1.5}.profile-facts{grid-template-columns:1fr 1fr;gap:18px 28px;margin:0;display:grid}.profile-facts>div{flex-direction:column;gap:4px;min-width:0;display:flex}.profile-facts dt{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:600}.profile-facts dd{color:var(--text-primary);overflow-wrap:anywhere;margin:0;font-size:13.5px}.profile-verified{color:var(--success);align-items:center;gap:4px;margin-left:8px;font-size:11.5px;display:inline-flex}.profile-muted{color:var(--text-muted);margin:0;font-size:12.5px;line-height:1.5}.profile-security-block{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding-top:14px;display:flex}.profile-security-block:first-of-type{border-top:none;padding-top:0}.profile-security-block h4{color:var(--text-primary);align-items:center;gap:8px;margin:0;font-size:13.5px;display:flex}.profile-form{flex-direction:column;gap:12px;display:flex}.profile-field{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:13px;font-weight:500;display:flex}.profile-field input{height:38px;color:var(--text-primary);background:var(--surface-muted);border:1px solid var(--border);padding:0 10px;font-family:inherit;font-size:13px}.profile-field input:focus-visible{outline:2px solid var(--blue-500);outline-offset:-1px}.profile-field input[aria-invalid=true]{border-color:var(--danger)}.profile-field small{color:var(--text-muted);font-size:12px;font-weight:400}.profile-field .profile-invalid{color:var(--danger)}.profile-form-actions{justify-content:space-between;gap:8px;display:flex}.profile-primary,.profile-ghost{cursor:pointer;align-items:center;gap:6px;height:36px;padding:0 16px;font-family:inherit;font-size:13px;font-weight:600;display:inline-flex}.profile-primary{color:#fff;background:var(--blue-600);border:1px solid var(--blue-600);align-self:flex-start}.profile-primary:hover:not(:disabled){background:var(--blue-700)}.profile-primary:disabled{opacity:.55;cursor:not-allowed}.profile-ghost{color:var(--text-secondary);border:1px solid var(--border);background:0 0}.profile-error{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-border);margin:0;padding:10px 12px;font-size:13px}.profile-devices ul{border:1px solid var(--border);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.profile-devices li{color:var(--text-secondary);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 12px;display:flex}.profile-devices li:last-child{border-bottom:none}.profile-devices li>div{flex-direction:column;flex:1;gap:2px;min-width:0;font-size:12px;display:flex}.profile-devices li strong{color:var(--text-primary);font-size:13px}.profile-devices li button{color:var(--text-secondary);background:var(--surface-muted);border:1px solid var(--border);cursor:pointer;align-items:center;gap:6px;padding:5px 10px;font-family:inherit;font-size:12px;display:inline-flex}.profile-devices li button:hover{color:var(--danger);border-color:var(--danger-border)}@media (width<=900px){.profile-grid{grid-template-columns:1fr}.profile-page{padding:20px}.profile-identity-main{align-items:flex-start}.profile-facts{grid-template-columns:1fr}}.two-factor-banner{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--warning);color:var(--text-primary);align-items:center;gap:16px;margin:24px 32px 0;padding:16px 18px;display:flex}.two-factor-banner-icon{background:var(--warning-bg);width:40px;height:40px;color:var(--warning);flex-shrink:0;justify-content:center;align-items:center;display:flex}.two-factor-banner-copy{flex:1;min-width:0}.two-factor-banner-copy strong{font-size:14px;font-weight:600;line-height:1.3;display:block}.two-factor-banner-copy p{color:var(--text-muted);margin:4px 0 0;font-size:13px;line-height:1.45}.two-factor-banner button{background:var(--blue-600);border:1px solid var(--blue-600);height:34px;color:var(--white);cursor:pointer;flex-shrink:0;padding:0 14px;font-family:inherit;font-size:13px;font-weight:600;transition:background .15s,transform .15s}.two-factor-banner button:hover{background:var(--blue-700);transform:translateY(-1px)}@media (width<=700px){.two-factor-banner{flex-wrap:wrap;align-items:flex-start;margin:16px 20px 0}.two-factor-banner button{margin-left:56px}}@media (prefers-reduced-motion:reduce){.two-factor-banner button:hover{transform:none}}.picture-banner{color:var(--warning);background:var(--warning-bg);border-bottom:1px solid var(--warning-border);align-items:center;gap:12px;padding:10px 24px;display:flex}.picture-banner p{color:var(--text-primary);flex:1;margin:0;font-size:13px}.picture-banner a{color:#fff;background:var(--blue-600);padding:6px 14px;font-size:12.5px;font-weight:600;text-decoration:none}.picture-banner a:hover{background:var(--blue-700)}.picture-gate{justify-content:center;padding:32px 16px;display:flex}.picture-gate-card{width:100%;max-width:640px;color:var(--blue-600);background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--blue-500);flex-direction:column;gap:14px;padding:28px;display:flex}.picture-gate-card h2{color:var(--text-primary);margin:0;font-size:18px}.picture-gate-card>p{color:var(--text-secondary);margin:0;font-size:13.5px;line-height:1.55}.picture-gate-error{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-border);padding:10px 12px;font-size:13px}.zoom-controls{align-items:center;gap:4px;display:flex}.zoom-controls-button{background:var(--surface-muted);border:1px solid var(--border);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;justify-content:center;align-items:center;display:flex}.zoom-controls-button:disabled{opacity:.4;cursor:not-allowed}.schoolboard-tabs{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:2px;padding:0 28px;display:flex}.schoolboard-tabs-track{scrollbar-width:none;align-items:center;gap:2px;display:flex;overflow-x:auto}.schoolboard-tabs-track::-webkit-scrollbar{display:none}.schoolboard-tab{color:var(--text-muted);white-space:nowrap;cursor:not-allowed;opacity:.55;border-bottom:2px solid #0000;flex-shrink:0;align-items:center;gap:8px;padding:14px 16px;font-size:13px;font-weight:600;display:flex}.schoolboard-tab--enabled{color:var(--text-secondary);cursor:pointer;opacity:1;text-decoration:none;transition:color .15s,border-color .15s}.schoolboard-tab--enabled:hover{color:var(--blue-600)}.schoolboard-tab--enabled.active{color:var(--blue-600);border-bottom-color:var(--blue-600)}.schoolboard-tabs-arrow{background:var(--surface-muted);border:1px solid var(--border);width:26px;height:26px;color:var(--text-secondary);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;display:flex}.schoolboard-tabs-arrow--left{margin-right:6px}.schoolboard-tabs-arrow--right{margin-left:6px}.schoolboard-tabs-arrow:hover{border-color:var(--blue-500);color:var(--blue-600)}@media (width<=700px){.schoolboard-tabs{padding:0 16px}}.schoolboard-loading{color:var(--text-muted);padding:48px 32px;font-size:13.5px}.schoolboard{zoom:var(--ui-zoom,1);min-height:calc(100svh / var(--ui-zoom,1));flex-direction:column;display:flex}.schoolboard-sticky-header{z-index:20;background:var(--surface);position:sticky;top:0}.schoolboard-topbar{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 32px;display:flex}.schoolboard-topbar-brand{align-items:center;gap:16px;display:flex}.schoolboard-topbar-logo{height:42px;display:block}.schoolboard-topbar-title h1{color:var(--text-primary);margin:0;font-size:22px;font-weight:600}.schoolboard-topbar-title p{color:var(--text-muted);margin:4px 0 0;font-size:13px}.schoolboard-topbar-actions{align-items:center;gap:12px;display:flex}.schoolboard-tools{border-right:1px solid var(--border);align-items:center;gap:2px;padding-right:12px;display:flex}.schoolboard-tools .zoom-controls{gap:0}.schoolboard-tools .schoolboard-icon-button,.schoolboard-tools .zoom-controls-button,.schoolboard-tools .theme-toggle{width:34px;height:34px;color:var(--text-secondary);background:0 0;border:none}.schoolboard-icon-button{cursor:pointer;justify-content:center;align-items:center;text-decoration:none;display:flex}.schoolboard-tools .schoolboard-icon-button:hover,.schoolboard-tools .schoolboard-icon-button--active,.schoolboard-tools .zoom-controls-button:hover:not(:disabled),.schoolboard-tools .theme-toggle:hover{background:var(--surface-muted);color:var(--text-primary)}.schoolboard-avatar{background:0 0;border:none;text-decoration:none;display:inline-flex}.schoolboard-avatar:hover .avatar-image{border-color:var(--blue-400)}.schoolboard-logout-button{width:34px;height:34px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.schoolboard-logout-button:hover{background:var(--danger-bg);color:var(--danger)}.schoolboard-content{flex-direction:column;flex:1;gap:24px;padding:32px;display:flex}@media (width<=700px){.schoolboard-topbar,.schoolboard-content{padding:16px 20px}}.schoolboard-hero{background:linear-gradient(135deg, var(--navy-900), var(--navy-950));border:1px solid var(--navy-700);color:var(--white);align-items:center;gap:20px;padding:24px;display:flex}.schoolboard-hero-icon{border:1px solid var(--blue-500);width:56px;height:56px;color:var(--blue-300);background:#3b82f629;flex-shrink:0;justify-content:center;align-items:center;display:flex}.schoolboard-hero-info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.schoolboard-hero-label{text-transform:uppercase;letter-spacing:.08em;color:var(--blue-300);font-size:11px;font-weight:700}.schoolboard-hero-name{color:var(--white);margin:0;font-size:21px;font-weight:700}.schoolboard-hero-meta{color:var(--blue-200);margin:2px 0 0;font-size:12.5px}.schoolboard-hero-meta strong{color:var(--white)}.schoolboard-stat-grid{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.schoolboard-stat-card{background:var(--surface);border:1px solid var(--border);align-items:center;gap:16px;padding:20px;display:flex}.schoolboard-stat-icon{background:var(--blue-100);border:1px solid var(--blue-300);width:44px;height:44px;color:var(--blue-600);flex-shrink:0;justify-content:center;align-items:center;display:flex}.schoolboard-stat-lines{flex-direction:column;flex:1;gap:8px;display:flex}.schoolboard-stat-line-label{color:var(--text-muted);font-size:12px}.schoolboard-stat-line-value{background:var(--border);width:40%;height:14px;display:block}.schoolboard-stat-line-number{color:var(--text-primary);font-size:20px;font-weight:700}.schoolboard-section{flex-direction:column;gap:12px;display:flex}.schoolboard-section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0;font-size:13px;font-weight:700}.schoolboard-class-totals{grid-template-columns:repeat(3,1fr);gap:10px;margin:0;padding:0;list-style:none;display:grid}.schoolboard-class-totals li{background:var(--surface);border:1px solid var(--border);color:var(--text-primary);justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;font-size:13.5px;display:flex}.schoolboard-class-totals-value{color:var(--blue-600);font-weight:700}@media (width<=1100px){.schoolboard-stat-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=700px){.schoolboard-hero{flex-wrap:wrap}.schoolboard-stat-grid,.schoolboard-class-totals{grid-template-columns:1fr}}.options-add{background:var(--blue-600);border:1px solid var(--blue-600);height:34px;color:var(--white);cursor:pointer;align-self:flex-start;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;display:flex}.options-add:hover{background:var(--blue-700)}.options-form{background:var(--surface-muted);border:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.options-form input,.options-form select{background:var(--surface);border:1px solid var(--border);height:34px;color:var(--text-primary);min-width:200px;padding:0 10px;font-family:inherit;font-size:13px}.options-form-submit{background:var(--blue-600);border:1px solid var(--blue-600);height:34px;color:var(--white);cursor:pointer;padding:0 14px;font-size:13px;font-weight:600}.options-form-submit:hover{background:var(--blue-700)}.options-form-cancel{border:1px solid var(--border);height:34px;color:var(--text-secondary);cursor:pointer;background:0 0;padding:0 12px;font-size:13px}.options-table-wrap{background:var(--surface);border:1px solid var(--border);overflow-x:auto}.options-table{border-collapse:collapse;width:100%;font-size:13px}.options-table th,.options-table td{text-align:left;border-bottom:1px solid var(--border);padding:10px 12px}.options-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--surface-muted);font-size:11px;font-weight:600}.options-table tbody tr:last-child td{border-bottom:none}.options-cell-name{color:var(--text-primary);font-weight:600}.options-status{white-space:nowrap;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.options-status--active{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}.options-status--inactive{background:var(--surface-muted);color:var(--text-muted);border:1px solid var(--border)}.options-actions{gap:6px;display:flex}.options-actions button{border:1px solid var(--border);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:0 0;justify-content:center;align-items:center;display:flex}.options-actions button:hover{background:var(--surface-muted);border-color:var(--blue-500);color:var(--blue-600)}.options-empty{text-align:center;color:var(--text-muted);padding:24px 12px}.sections-add{background:var(--blue-600);border:1px solid var(--blue-600);height:34px;color:var(--white);cursor:pointer;align-self:flex-start;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;display:flex}.sections-add:hover{background:var(--blue-700)}.sections-form{background:var(--surface-muted);border:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.sections-form input{background:var(--surface);border:1px solid var(--border);height:34px;color:var(--text-primary);min-width:200px;padding:0 10px;font-family:inherit;font-size:13px}.sections-form-submit{background:var(--blue-600);border:1px solid var(--blue-600);height:34px;color:var(--white);cursor:pointer;padding:0 14px;font-size:13px;font-weight:600}.sections-form-submit:hover{background:var(--blue-700)}.sections-form-cancel{border:1px solid var(--border);height:34px;color:var(--text-secondary);cursor:pointer;background:0 0;padding:0 12px;font-size:13px}.sections-table-wrap{background:var(--surface);border:1px solid var(--border);overflow-x:auto}.sections-table{border-collapse:collapse;width:100%;font-size:13px}.sections-table th,.sections-table td{text-align:left;border-bottom:1px solid var(--border);padding:10px 12px}.sections-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--surface-muted);font-size:11px;font-weight:600}.sections-table tbody tr:last-child td{border-bottom:none}.sections-cell-name{color:var(--text-primary);font-weight:600}.sections-status{white-space:nowrap;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.sections-status--active{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}.sections-status--inactive{background:var(--surface-muted);color:var(--text-muted);border:1px solid var(--border)}.sections-actions{gap:6px;display:flex}.sections-actions button{border:1px solid var(--border);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:0 0;justify-content:center;align-items:center;display:flex}.sections-actions button:hover{background:var(--surface-muted);border-color:var(--blue-500);color:var(--blue-600)}.sections-empty{text-align:center;color:var(--text-muted);padding:24px 12px}.classes-add{background:var(--blue-600);border:1px solid var(--blue-600);height:34px;color:var(--white);cursor:pointer;align-self:flex-start;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;display:flex}.classes-add:hover{background:var(--blue-700)}.classes-form{background:var(--surface-muted);border:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.classes-form input,.classes-form select{background:var(--surface);border:1px solid var(--border);height:34px;color:var(--text-primary);min-width:160px;padding:0 10px;font-family:inherit;font-size:13px}.classes-form input[type=number]{min-width:120px}.classes-form-submit{background:var(--blue-600);border:1px solid var(--blue-600);height:34px;color:var(--white);cursor:pointer;padding:0 14px;font-size:13px;font-weight:600}.classes-form-submit:hover{background:var(--blue-700)}.classes-form-cancel{border:1px solid var(--border);height:34px;color:var(--text-secondary);cursor:pointer;background:0 0;padding:0 12px;font-size:13px}.classes-group{flex-direction:column;gap:8px;display:flex}.classes-group-title{color:var(--text-secondary);margin:0;font-size:13px;font-weight:700}.classes-table-wrap{background:var(--surface);border:1px solid var(--border);overflow-x:auto}.classes-table{border-collapse:collapse;width:100%;font-size:13px}.classes-table th,.classes-table td{text-align:left;border-bottom:1px solid var(--border);padding:10px 12px}.classes-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--surface-muted);font-size:11px;font-weight:600}.classes-table tbody tr:last-child td{border-bottom:none}.classes-cell-name{color:var(--text-primary);font-weight:600}.classes-status{white-space:nowrap;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.classes-status--active{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}.classes-status--inactive{background:var(--surface-muted);color:var(--text-muted);border:1px solid var(--border)}.classes-actions{gap:6px;display:flex}.classes-actions button{border:1px solid var(--border);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:0 0;justify-content:center;align-items:center;display:flex}.classes-actions button:hover{background:var(--surface-muted);border-color:var(--blue-500);color:var(--blue-600)}.classes-empty{text-align:center;color:var(--text-muted);padding:24px 12px}.classes-cycle{background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:14px;padding:16px;display:flex}.classes-cycle--unclassified{border-color:var(--warning-border)}.classes-cycle-header{border-bottom:2px solid var(--blue-600);justify-content:space-between;align-items:center;gap:10px;padding-bottom:10px;display:flex}.classes-cycle--unclassified .classes-cycle-header{border-bottom-color:var(--warning)}.classes-cycle-title{letter-spacing:.04em;text-transform:uppercase;color:var(--text-primary);margin:0;font-size:15px;font-weight:800}.classes-cycle-count{color:var(--text-secondary);font-size:12.5px;font-weight:600}.scholar-years-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.scholar-years-tabs{gap:6px;display:inline-flex}.scholar-years-tabs button{background:var(--surface);border:1px solid var(--border);height:34px;color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;padding:0 12px;font-family:inherit;font-size:13px;font-weight:600;display:inline-flex}.scholar-years-tabs button:hover{border-color:var(--blue-500);color:var(--blue-600)}.scholar-years-tabs button.active{background:var(--blue-600);border-color:var(--blue-600);color:var(--white)}.scholar-years-add{background:var(--blue-600);border:1px solid var(--blue-600);height:34px;color:var(--white);cursor:pointer;align-items:center;gap:6px;padding:0 12px;font-family:inherit;font-size:13px;font-weight:600;display:inline-flex}.scholar-years-add:hover{background:var(--blue-700)}.scholar-years-list{flex-direction:column;gap:14px;display:flex}.scholar-years-item{background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:10px;padding:20px;display:flex}.scholar-years-item-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.scholar-years-item-title{color:var(--text-primary);margin:0;font-size:16px;font-weight:700}.scholar-years-refresh{border:1px solid var(--border);height:30px;color:var(--text-secondary);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:0 10px;font-size:12.5px;font-weight:600;display:flex}.scholar-years-refresh:hover:not(:disabled){border-color:var(--blue-500);color:var(--blue-600)}.scholar-years-refresh:disabled{opacity:.5;cursor:not-allowed}.scholar-years-refresh-result{color:var(--text-muted);margin:0;font-size:12.5px}.scholar-years-refresh-result--error{color:var(--danger)}.scholar-years-item-classes{flex-wrap:wrap;gap:8px;display:flex}.scholar-years-chip{background:var(--surface-muted);border:1px solid var(--border);color:var(--text-secondary);padding:4px 10px;font-size:12px;font-weight:600}.scholar-years-item-empty{color:var(--text-secondary);font-size:13px}.scholar-years-empty{background:var(--surface);border:1px dashed var(--border-strong);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:36px 20px;display:flex}.scholar-years-empty svg{color:var(--blue-600)}.scholar-years-empty-title{color:var(--text-primary);margin:0;font-size:15px;font-weight:700}.scholar-years-empty-text{max-width:36ch;color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.scholar-years-form{background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:18px;max-width:480px;padding:20px;display:flex}.scholar-years-form-field{color:var(--text-secondary);flex-direction:column;gap:8px;font-size:13px;font-weight:600;display:flex}.scholar-years-form-field select{background:var(--surface);border:1px solid var(--border);height:38px;color:var(--text-primary);padding:0 10px;font-family:inherit;font-size:13px;font-weight:400}.scholar-years-form-hint{color:var(--text-muted);margin:0;font-size:12.5px;font-weight:400}.scholar-years-class-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;display:grid}.scholar-years-class-option{background:var(--surface-muted);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;align-items:center;gap:8px;padding:8px 10px;font-size:13px;font-weight:400;display:flex;position:relative}.scholar-years-class-check{color:var(--blue-600);position:absolute;right:8px}.scholar-years-class-badge{background:var(--surface);border:1px solid var(--blue-500);color:var(--blue-600);white-space:nowrap;padding:2px 6px;font-size:10px;font-weight:600}.scholar-years-form-actions{gap:8px;display:flex}.scholar-years-form-submit{background:var(--blue-600);border:1px solid var(--blue-600);height:38px;color:var(--white);cursor:pointer;padding:0 18px;font-size:13.5px;font-weight:600}.scholar-years-form-submit:hover:not(:disabled){background:var(--blue-700)}.scholar-years-form-submit:disabled{opacity:.5;cursor:not-allowed}.scholar-years-form-cancel{border:1px solid var(--border);height:38px;color:var(--text-secondary);cursor:pointer;background:0 0;padding:0 14px;font-size:13.5px}.scholar-years-form-cancel:hover{background:var(--surface-muted)}.scholar-years-outdated{background:var(--warning-bg);border:1px solid var(--warning-border);color:var(--warning);margin-right:auto;padding:3px 9px;font-size:12px;font-weight:600}.pupils-tabs{gap:6px;display:flex}.pupils-tabs button{border:1px solid var(--border);height:34px;color:var(--text-secondary);cursor:pointer;background:0 0;padding:0 14px;font-family:inherit;font-size:13px;font-weight:600}.pupils-tabs button.active{background:var(--blue-600);border-color:var(--blue-600);color:var(--white)}.teachers-page-toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.pupils-add{background:var(--blue-600);border:1px solid var(--blue-600);height:34px;color:var(--white);cursor:pointer;align-self:flex-start;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;display:flex}.pupils-add:hover{background:var(--blue-700)}.pupils-form{flex-direction:column;gap:16px;display:flex}.pupils-form-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.pupils-field{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:12.5px;font-weight:600;display:flex}.pupils-field--wide{grid-column:1/-1}.pupils-field-hint{color:var(--text-muted);font-size:12px;font-weight:400;line-height:1.4}.pupils-field input,.pupils-field select{background:var(--surface);border:1px solid var(--border);height:36px;color:var(--text-primary);padding:0 10px;font-family:inherit;font-size:13px;font-weight:400}.pupils-form-actions{gap:8px;display:flex}.pupils-form-submit{background:var(--blue-600);border:1px solid var(--blue-600);height:34px;color:var(--white);cursor:pointer;padding:0 14px;font-size:13px;font-weight:600}.pupils-form-submit:hover:not(:disabled){background:var(--blue-700)}.pupils-form-submit:disabled{opacity:.5;cursor:not-allowed}.pupils-form-cancel{border:1px solid var(--border);height:34px;color:var(--text-secondary);cursor:pointer;background:0 0;padding:0 12px;font-size:13px}.pupils-table-wrap{background:var(--surface);border:1px solid var(--border);overflow-x:auto}.pupils-table{border-collapse:collapse;width:100%;font-size:13px}.pupils-table th,.pupils-table td{text-align:left;border-bottom:1px solid var(--border);padding:10px 12px}.pupils-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--surface-muted);font-size:11px;font-weight:600}.pupils-table tbody tr:last-child td{border-bottom:none}.pupils-cell-matricule{color:var(--text-muted);white-space:nowrap;font-family:Courier New,monospace;font-size:12px}.pupils-cell-name{color:var(--text-primary);font-weight:600}.pupils-row--link{cursor:pointer}.pupils-row--link:hover{background:var(--surface-muted)}.pupils-row--link:hover .pupils-cell-name{color:var(--blue-600);text-decoration:underline}.pupils-status{white-space:nowrap;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.pupils-status--active{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}.pupils-status--inactive{background:var(--surface-muted);color:var(--text-muted);border:1px solid var(--border)}.pupils-status--closed{background:var(--surface-muted);color:var(--text-secondary);border:1px solid var(--border)}.pupils-actions{gap:6px;display:flex}.pupils-actions button{border:1px solid var(--border);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:0 0;justify-content:center;align-items:center;display:flex}.pupils-actions button:hover{background:var(--surface-muted);border-color:var(--blue-500);color:var(--blue-600)}.pupils-empty{text-align:center;color:var(--text-muted);padding:24px 12px}.pupils-add-group{flex-wrap:wrap;gap:8px;display:flex}.inscriptions-filters{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.inscriptions-filters select{background:var(--surface-muted);border:1px solid var(--border);height:36px;color:var(--text-primary);min-width:160px;padding:0 10px;font-family:inherit;font-size:13px}.inscriptions-date-field{background:var(--surface-muted);border:1px solid var(--border);height:36px;color:var(--text-muted);align-items:center;gap:6px;padding:0 10px;font-size:12px;display:flex}.inscriptions-date-field input{min-width:0;height:auto;color:var(--text-primary);background:0 0;border:none;padding:0;font-family:inherit;font-size:13px}.inscriptions-reset{border:1px solid var(--border);height:36px;color:var(--text-secondary);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:0 12px;font-size:13px;display:flex}.inscriptions-reset:hover{border-color:var(--danger-border);color:var(--danger)}.inscriptions-table-wrap{background:var(--surface);border:1px solid var(--border);overflow-x:auto}.inscriptions-table{border-collapse:collapse;width:100%;font-size:13px}.inscriptions-table th,.inscriptions-table td{text-align:left;border-bottom:1px solid var(--border);padding:10px 12px}.inscriptions-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--surface-muted);font-size:11px;font-weight:600}.inscriptions-table tbody tr:last-child td{border-bottom:none}.inscriptions-cell-date{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--text-secondary)}.inscriptions-open{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border);margin-left:8px;padding:2px 6px;font-size:11px;font-weight:600}.inscriptions-cell-uid{color:var(--text-muted);white-space:nowrap;font-family:Courier New,monospace;font-size:12px}.inscriptions-cell-name{color:var(--text-primary);font-weight:600}.inscriptions-empty{text-align:center;color:var(--text-muted);padding:24px 12px}.pupil-transfers{flex-direction:column;gap:16px;display:flex}.pupil-transfers-tabs{gap:6px;display:flex}.pupil-transfers-tabs button{border:1px solid var(--border);height:34px;color:var(--text-secondary);cursor:pointer;background:0 0;padding:0 14px;font-family:inherit;font-size:13px;font-weight:600}.pupil-transfers-tabs button.active{background:var(--blue-600);border-color:var(--blue-600);color:var(--white)}.pupil-transfer-status{font-size:12px;font-weight:600}.pupil-transfer-status--pending{color:var(--blue-600)}.pupil-transfer-status--accepted{color:var(--text-primary)}.pupil-transfer-status--cancelled{color:var(--text-muted)}.pupil-transfer-status--refused{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger);padding:3px 8px;display:inline-flex}.pupil-transfer-row--refused{background:var(--danger-bg)}.pupil-transfer-actions{white-space:nowrap;justify-content:flex-end;gap:6px;display:flex}.pupil-transfer-actions button{background:var(--surface);border:1px solid var(--blue-600);height:30px;color:var(--blue-600);cursor:pointer;padding:0 10px;font-family:inherit;font-size:12px;font-weight:600}.pupil-transfer-actions button.danger{border-color:var(--border);color:var(--text-secondary)}.pupil-transfer-actions button:disabled{opacity:.5;cursor:not-allowed}.notification-page{flex-direction:column;align-items:flex-start;gap:8px;width:100%;max-width:640px;display:flex}.app-main .notification-page{box-sizing:border-box;max-width:none;padding:32px}.app-main .notification-page>*{max-width:640px}@media (width<=768px){.app-main .notification-page{padding:20px 16px}}.notification-page-card{background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:18px;width:100%;padding:24px;display:flex}.notification-page-head{align-items:flex-start;gap:14px;display:flex}.notification-page-icon{background:var(--blue-100);width:42px;height:42px;color:var(--blue-600);flex:none;justify-content:center;align-items:center;display:flex}.notification-page-icon--pupil_transfer_accepted,.notification-page-icon--teacher_service_accepted{background:var(--success-bg);color:var(--success)}.notification-page-icon--pupil_transfer_refused,.notification-page-icon--pupil_transfer_cancelled,.notification-page-icon--teacher_service_declined{background:var(--danger-bg);color:var(--danger)}.notification-page-kicker{color:var(--blue-600);letter-spacing:.12em;text-transform:uppercase;margin:0 0 4px;font-size:11px;font-weight:700}.notification-page h2{margin:0;font-size:18px;font-weight:700;line-height:1.35}.notification-page-meta{border-top:1px solid var(--border);grid-template-columns:minmax(90px,auto) 1fr;gap:6px 16px;margin:0;padding-top:14px;font-size:13px;display:grid}.notification-page-meta dt{color:var(--text-muted)}.notification-page-meta dd{color:var(--text-primary);overflow-wrap:anywhere;margin:0}.notification-page-status{color:var(--text-secondary);margin:0;font-size:13px}.notification-page-mark{border:1px solid var(--border);height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;align-self:flex-start;padding:0 12px;font-family:inherit;font-size:12.5px;font-weight:600}.notification-page-answer{align-items:center;gap:8px;margin:0;padding:10px 14px;font-size:13px;font-weight:600;display:flex}.notification-page-answer--accepted{background:var(--success-bg);border:1px solid var(--success-border);color:var(--success)}.notification-page-answer--declined{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger)}.notification-page-actions{flex-wrap:wrap;gap:8px;margin-top:2px;display:flex}.notification-page-actions a,.notification-page-actions button{background:var(--surface);border:1px solid var(--blue-600);height:36px;color:var(--blue-600);cursor:pointer;align-items:center;gap:6px;padding:0 14px;font-family:inherit;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.notification-page-actions button{background:var(--blue-600);color:var(--white)}.notification-page-actions button:disabled{opacity:.6;cursor:wait}.notification-page-accept{background:var(--success)!important;border-color:var(--success)!important;color:var(--white)!important}.notification-page-decline{background:var(--surface)!important;border-color:var(--danger)!important;color:var(--danger)!important}.notification-procedure{flex-direction:column;gap:12px;margin-top:18px;display:flex}.notification-procedure h2{color:var(--text-primary);margin:0;font-size:15px;font-weight:700}.notification-procedure-steps{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.notification-procedure-step{background:var(--surface);border:1px solid var(--border);border-left-width:4px;gap:12px;padding:12px 14px;display:flex}.notification-procedure-step--done{border-left-color:var(--success)}.notification-procedure-step--todo{border-left-color:#d97706}.notification-procedure-step--manual{border-left-color:var(--border-strong)}.notification-procedure-mark{color:var(--text-muted);flex-shrink:0;padding-top:1px}.notification-procedure-step--done .notification-procedure-mark{color:var(--success)}.notification-procedure-step--todo .notification-procedure-mark{color:#d97706}.notification-procedure-label{color:var(--text-primary);flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 2px;font-size:14px;font-weight:700;display:flex}.notification-procedure-state{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);background:var(--surface-muted);padding:1px 8px;font-size:10.5px;font-weight:700}.notification-procedure-step--todo .notification-procedure-state{color:#92400e;background:#fef3c7}.notification-procedure-step--done .notification-procedure-state{color:var(--success);background:var(--success-bg)}.notification-procedure-text,.notification-procedure-detail{color:var(--text-secondary);margin:0 0 4px;font-size:13px}.notification-procedure-detail{color:#92400e;font-weight:600}.notification-procedure-step a{color:var(--blue-600);font-size:13px;font-weight:600;text-decoration:none}.notifications-center{flex-direction:column;gap:20px;display:flex}.app-main .notifications-center{padding:32px}.notifications-center-stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;display:grid}.notifications-center-stat{background:var(--surface);border:1px solid var(--border);border-top:2px solid var(--blue-500);align-items:center;gap:12px;padding:14px 16px;display:flex}.notifications-center-stat-icon{background:color-mix(in srgb, var(--blue-600) 12%, var(--surface));width:36px;height:36px;color:var(--blue-600);flex:0 0 36px;justify-content:center;align-items:center;display:flex}.notifications-center-stat--unread{border-top-color:var(--danger)}.notifications-center-stat--unread .notifications-center-stat-icon{background:var(--danger-bg);color:var(--danger)}.notifications-center-stat--read{border-top-color:var(--success)}.notifications-center-stat--read .notifications-center-stat-icon{background:var(--success-bg);color:var(--success)}.notifications-center-stat--month{border-top-color:var(--warning)}.notifications-center-stat--month .notifications-center-stat-icon{background:var(--warning-bg);color:var(--warning)}.notifications-center-stat-text{flex-direction:column;gap:2px;min-width:0;display:flex}.notifications-center-stat-value{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:22px;font-weight:700;line-height:1.1}.notifications-center-stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;line-height:1.2}.notifications-center-filters{background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:12px;padding:14px;display:flex}.notifications-center-toolbar,.notifications-center-dates{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.notifications-center-dates{border-top:1px solid var(--border);padding-top:12px}.notifications-center-search{background:var(--surface-muted);border:1px solid var(--border);height:36px;color:var(--text-muted);flex:240px;align-items:center;gap:8px;padding:0 12px;display:flex}.notifications-center-search:focus-within{border-color:var(--blue-600);color:var(--blue-600)}.notifications-center-search input{min-width:0;height:100%;color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;padding:0;font-family:inherit;font-size:13px}.notifications-center-search input::-webkit-search-cancel-button{display:none}.notifications-center-status{border:1px solid var(--border);background:var(--surface-muted);display:flex}.notifications-center-status button{border:none;border-right:1px solid var(--border);height:36px;color:var(--text-secondary);cursor:pointer;background:0 0;padding:0 14px;font-family:inherit;font-size:13px;font-weight:600}.notifications-center-status button:last-child{border-right:none}.notifications-center-status button.is-active{background:var(--blue-600);color:var(--white)}.notifications-center-dates select,.notifications-center-date{background:var(--surface-muted);border:1px solid var(--border);height:36px;color:var(--text-primary);font-family:inherit;font-size:13px}.notifications-center-dates select{min-width:180px;padding:0 10px}.notifications-center-date{color:var(--text-muted);align-items:center;gap:8px;padding:0 10px;font-size:12px;display:flex}.notifications-center-date input{min-width:0;height:auto;color:var(--text-primary);background:0 0;border:none;padding:0;font-family:inherit;font-size:13px}.notifications-center-reset{border:1px solid var(--border);height:36px;color:var(--text-secondary);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:0 12px;font-family:inherit;font-size:13px;display:inline-flex}.notifications-center-reset:hover{border-color:var(--danger-border);color:var(--danger)}.notifications-center-count,.notifications-center-loading,.notifications-center-empty{color:var(--text-muted);margin:0;font-size:13px}.notifications-center-empty{background:var(--surface);border:1px dashed var(--border);color:var(--text-muted);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:48px 16px;display:flex}.notifications-center-empty p{margin:0;font-size:13.5px}.notifications-center-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.notifications-center-item{background:var(--surface);border:1px solid var(--border)}.notifications-center-item--unread{border-left:3px solid var(--blue-600);background:color-mix(in srgb, var(--blue-600) 5%, var(--surface))}.notifications-center-open{text-align:left;cursor:pointer;background:0 0;border:none;align-items:flex-start;gap:12px;width:100%;padding:14px;font-family:inherit;display:flex}.notifications-center-item:hover{border-color:var(--blue-600)}.notifications-center-icon{background:color-mix(in srgb, var(--blue-600) 12%, var(--surface));width:36px;height:36px;color:var(--blue-600);flex:0 0 36px;justify-content:center;align-items:center;display:flex}.notifications-center-icon--pupil_transfer_accepted{background:var(--success-bg);color:var(--success)}.notifications-center-icon--pupil_transfer_refused{background:var(--danger-bg);color:var(--danger)}.notifications-center-icon--pupil_transfer_cancelled{background:var(--warning-bg);color:var(--warning)}.notifications-center-body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.notifications-center-kicker{color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:8px;font-size:11px;font-weight:700;display:flex}.notifications-center-badge{letter-spacing:0;text-transform:none;background:var(--surface-muted);color:var(--text-muted);border:1px solid var(--border);padding:2px 6px;font-size:11px;font-weight:600}.notifications-center-badge--unread{background:color-mix(in srgb, var(--blue-600) 12%, var(--surface));color:var(--blue-600);border-color:#0000}.notifications-center-message{color:var(--text-primary);font-size:14px;font-weight:600;line-height:1.4}.notifications-center-meta{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:12px}.notifications-center-chevron{color:var(--text-muted);flex:none;margin-top:10px}.notifications-center-read{color:var(--blue-600);cursor:pointer;background:0 0;border:none;margin:0 14px 12px 62px;padding:0;font-family:inherit;font-size:12px;font-weight:700}.notifications-center-read:hover{text-decoration:underline}@media (width<=768px){.app-main .notifications-center{padding:20px 16px}}@media (width<=700px){.notifications-center-status,.notifications-center-status button,.notifications-center-dates select,.notifications-center-date,.notifications-center-reset{width:100%}.notifications-center-status button{flex:1}}.enrollment-payment{background:var(--surface-muted);border:1px solid var(--border);flex-direction:column;gap:10px;padding:14px;display:flex}.enrollment-payment-toggle,.enrollment-payment-receipts,.enrollment-payment-line label{color:var(--text-primary);align-items:center;gap:8px;font-size:13px;display:inline-flex}.enrollment-payment-hint{color:var(--text-muted);margin:0;font-size:13px}.enrollment-payment-currency{color:var(--text-secondary);align-items:center;gap:8px;font-size:13px;display:flex}.enrollment-payment-currency select,.enrollment-payment-line input[type=text]{background:var(--surface);border:1px solid var(--border);height:32px;color:var(--text-primary);padding:0 10px;font-family:inherit;font-size:13px}.enrollment-payment-line{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.enrollment-payment-line input[type=text]{width:130px}.enrollment-payment-fee{color:var(--text-muted);font-size:12px}.enrollment-payment-total{color:var(--text-secondary);font-size:13px}.pupil-lookup{background:linear-gradient(var(--surface), var(--surface)) padding-box, linear-gradient(120deg, var(--blue-600), transparent 62%) border-box;box-shadow:0 0 0 1px color-mix(in srgb, var(--blue-600) 28%, transparent);border:1px solid #0000;flex-direction:column;gap:14px;margin-bottom:0;padding:18px;display:flex}.pupil-lookup-kicker{color:var(--blue-600);letter-spacing:.14em;text-transform:uppercase;margin-bottom:6px;font-size:11px;font-weight:700;display:inline-block}.pupil-lookup-heading h3{margin:0 0 6px;font-size:16px;font-weight:600}.pupil-lookup-heading p,.pupil-lookup-note,.pupil-lookup-result p{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.pupil-lookup-bar{background:var(--surface-muted);border:1px solid color-mix(in srgb, var(--blue-600) 45%, var(--border));height:52px;color:var(--blue-600);align-items:center;gap:10px;padding:0 8px 0 14px;display:flex}.pupil-lookup-bar input{min-width:0;height:48px;color:var(--text-primary);letter-spacing:.04em;background:0 0;border:none;flex:1;padding:0;font-family:Courier New,monospace;font-size:16px}.pupil-lookup-bar input:focus{outline:none}.pupil-lookup-bar button,.pupil-lookup-request button{background:var(--blue-600);border:1px solid var(--blue-600);height:36px;color:var(--white);cursor:pointer;align-items:center;gap:6px;padding:0 14px;font-family:inherit;font-size:13px;font-weight:600;display:inline-flex}.pupil-lookup-bar button:disabled,.pupil-lookup-request button:disabled{opacity:.5;cursor:not-allowed}.pupil-lookup-result{flex-direction:column;gap:12px;padding-top:4px;display:flex}.pupil-lookup-id{letter-spacing:.06em;font-family:Courier New,monospace;font-size:12px;color:var(--blue-600)!important}.pupil-lookup-result h4{margin:2px 0 4px;font-size:18px;font-weight:600}.pupil-lookup-request{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.pupil-lookup-request label{min-width:220px;color:var(--text-secondary);flex-direction:column;gap:6px;font-size:12.5px;font-weight:600;display:flex}.pupil-lookup-request select{background:var(--surface);border:1px solid var(--border);height:36px;color:var(--text-primary);padding:0 10px;font-family:inherit;font-size:13px;font-weight:400}.pupil-lookup-note a{color:var(--blue-600);font-weight:600}.pupil-lookup-success{background:var(--success-bg);border:1px solid var(--success-border);color:var(--text-primary);align-items:flex-start;gap:10px;margin:0;padding:12px 14px;font-size:13.5px;font-weight:600;line-height:1.5;display:flex}.pupil-lookup-success svg{color:var(--success);flex-shrink:0;margin-top:1px}.pupil-lookup-success a{color:var(--success);font-weight:600}.pupil-lookup-pending{background:var(--warning-bg);border:1px solid var(--warning-border);border-left:4px solid var(--warning);color:var(--text-primary);align-items:flex-start;gap:10px;margin:0;padding:12px 14px;font-size:13.5px;font-weight:600;line-height:1.5;display:flex}.pupil-lookup-pending svg{color:var(--warning);flex-shrink:0;margin-top:1px}.pupil-lookup-empty{background:var(--surface-muted);border:1px dashed var(--border-strong);color:var(--text-muted);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:32px 16px;display:flex}.pupil-lookup-empty svg{color:var(--text-muted)}.pupil-lookup-empty-title{color:var(--text-primary);margin:0;font-size:14.5px;font-weight:700}.pupil-lookup-empty-text{max-width:42ch;margin:0;font-size:13px;line-height:1.5}.pupil-form-page{flex-direction:column;gap:16px;max-width:760px;display:flex}.pupil-form-title{color:var(--text-primary);margin:0;font-size:18px;font-weight:700}.pupil-form-back-search{color:var(--blue-600);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-family:inherit;font-size:13px;font-weight:600}.pupil-form-guardians{background:var(--surface-muted);border:1px solid var(--border);flex-direction:column;gap:10px;padding:14px;display:flex}.pupil-form-guardians-header{color:var(--text-secondary);justify-content:space-between;align-items:center;gap:10px;font-size:12.5px;font-weight:600;display:flex}.pupil-form-guardian-add{background:var(--blue-600);border:1px solid var(--blue-600);height:30px;color:var(--white);cursor:pointer;align-items:center;gap:6px;padding:0 10px;font-size:12.5px;font-weight:600;display:flex}.pupil-form-guardian-add:hover{background:var(--blue-700)}.pupil-form-guardians-hint{color:var(--text-muted);margin:0;font-size:12.5px}.pupil-form-guardian-row{align-items:center;gap:0;display:flex}.pupil-form-guardian-prefix{background:var(--surface);border:1px solid var(--border);height:36px;color:var(--text-muted);border-right:none;align-items:center;padding:0 10px;font-size:13px;font-weight:600;display:flex}.pupil-form-guardian-row input{background:var(--surface);border:1px solid var(--border);height:36px;color:var(--text-primary);flex:1;min-width:0;padding:0 10px;font-family:inherit;font-size:13px}.pupil-form-guardian-row input.pupil-form-guardian-invalid{border-color:var(--danger)}.pupil-form-guardian-remove{border:1px solid var(--border);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;background:0 0;border-left:none;justify-content:center;align-items:center;padding:0;display:flex}.pupil-form-guardian-remove:hover{background:var(--surface);color:var(--blue-600)}.pupil-journey{margin:0;padding:4px 0 0;list-style:none}.pupil-journey-step{grid-template-columns:32px minmax(0,1fr);column-gap:14px;display:grid}.pupil-journey-marker{justify-content:center;display:flex;position:relative}.pupil-journey-marker:before{content:"";background:var(--border);width:2px;position:absolute;top:0;bottom:0}.pupil-journey-step:first-child .pupil-journey-marker:before{top:18px}.pupil-journey-step:last-child .pupil-journey-marker:before{height:18px;bottom:auto}.pupil-journey-step:only-child .pupil-journey-marker:before{display:none}.pupil-journey-dot{z-index:1;background:var(--surface);border:2px solid var(--border-strong);width:28px;height:28px;color:var(--text-secondary);justify-content:center;align-items:center;margin-top:4px;font-size:12px;font-weight:700;display:flex;position:relative}.pupil-journey-step--current .pupil-journey-dot{background:var(--blue-600);border-color:var(--blue-600);color:var(--white)}.pupil-journey-card{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--border-strong);margin-bottom:16px;padding:14px 16px}.pupil-journey-step--current .pupil-journey-card{border-left-color:var(--blue-600);background:color-mix(in srgb, var(--blue-600) 6%, var(--surface))}.pupil-journey-kicker{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;font-size:11px;font-weight:700;display:flex}.pupil-journey-current{background:var(--success-bg);border:1px solid var(--success-border);color:var(--success);letter-spacing:.04em;padding:2px 8px}.pupil-journey-card h3{color:var(--text-primary);margin:0;font-size:16px;font-weight:700}.pupil-journey-uid{color:var(--blue-600);letter-spacing:.04em;margin:4px 0 0;font-family:Courier New,monospace;font-size:12px}.pupil-journey-class{color:var(--text-primary);margin:8px 0 0;font-size:14px;font-weight:600}.pupil-journey-period,.pupil-journey-move{color:var(--text-secondary);margin:4px 0 0;font-size:13px;line-height:1.45}.pupil-journey-move{font-weight:600}.pupil-attendance-panel{flex-direction:column;gap:14px;display:flex}.pupil-attendance-sync-button{border:1px solid var(--border);height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;align-self:flex-start;align-items:center;gap:6px;padding:0 12px;font-size:12.5px;font-weight:600;display:flex}.pupil-attendance-sync-button:hover:not(:disabled){background:var(--surface-muted);border-color:var(--blue-500);color:var(--blue-600)}.pupil-attendance-sync-button:disabled{opacity:.6;cursor:wait}.pupil-attendance-spinner{color:var(--blue-600);animation:.8s linear infinite pupil-attendance-spin}@keyframes pupil-attendance-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pupil-attendance-skeleton{flex-direction:column;gap:10px;display:flex}.pupil-attendance-skeleton-row{border-bottom:1px solid var(--border);gap:24px;padding:10px 12px;display:flex}.pupil-attendance-skeleton-row:last-child{border-bottom:none}.pupil-attendance-skeleton-cell{background:var(--surface-muted);border-radius:2px;height:12px;animation:1.4s ease-in-out infinite pupil-attendance-pulse;display:block}.pupil-attendance-skeleton-cell--date{width:90px}.pupil-attendance-skeleton-cell--time{width:60px}@keyframes pupil-attendance-pulse{0%,to{opacity:.5}50%{opacity:1}}.pupil-profile-page{flex-direction:column;gap:20px;display:flex}.app-main .pupil-profile-page{padding:32px}.pupil-profile-header{align-items:center;gap:14px;display:flex}.pupil-profile-gender{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.pupil-profile-gender--male{background:var(--blue-50,#2563eb1a);color:var(--blue-600)}.pupil-profile-gender--female{color:#db2777;background:#db27771a}.pupil-profile-identity h2{color:var(--text-primary);margin:0;font-size:17px;font-weight:700}.pupil-profile-identity p{color:var(--text-secondary);align-items:center;gap:6px;margin:4px 0 0;font-size:13px;display:flex}.pupil-profile-tabs{border-bottom:1px solid var(--border);gap:4px;display:flex}.pupil-profile-tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 14px;font-size:13px;font-weight:600}.pupil-profile-tab.active{color:var(--blue-600);border-bottom-color:var(--blue-600)}.pupil-profile-placeholder{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}@media (width<=768px){.app-main .pupil-profile-page{padding:20px 16px}}.pupil-card-panel{flex-direction:column;gap:16px;display:flex}.pupil-card-current{flex-direction:column;gap:4px;display:flex}.pupil-card-current-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:11px;font-weight:600}.pupil-card-current-value{color:var(--text-primary);font-family:Courier New,monospace;font-size:16px;font-weight:600}.pupil-card-device-status{border:1px solid var(--border);margin:0;padding:8px 12px;font-size:12.5px}.pupil-card-device-status--ok{background:var(--success-bg);color:var(--success);border-color:var(--success-border)}.pupil-card-device-status--warn{background:var(--surface-muted);color:var(--text-secondary)}.pupil-card-device-status--pending{background:var(--blue-50,#2563eb1a);color:var(--blue-600);border-color:var(--blue-300,var(--border))}.pupil-card-scan{flex-direction:column;gap:10px;display:flex}.pupil-card-scan-button{background:var(--blue-600);border:1px solid var(--blue-600);height:34px;color:var(--white);cursor:pointer;align-self:flex-start;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:600;display:flex}.pupil-card-scan-button:hover:not(:disabled){background:var(--blue-700)}.pupil-card-scan-button:disabled{opacity:.6;cursor:wait}.pupil-card-scan-result{color:var(--text-primary);align-items:center;gap:12px;font-size:13px;display:flex}.pupil-card-scan-empty{color:var(--text-muted);margin:0;font-size:13px}.pupil-card-manual{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding-top:12px;display:flex}.pupil-card-manual label{color:var(--text-secondary);font-size:12.5px;font-weight:600}.pupil-card-manual-row{gap:8px;display:flex}.pupil-card-manual-row input{background:var(--surface);border:1px solid var(--border);height:36px;color:var(--text-primary);flex:1;padding:0 10px;font-family:inherit;font-size:13px}.pupil-guardians{flex-direction:column;gap:12px;display:flex}.pupil-guardians-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.pupil-guardians-list label{color:var(--text-primary);align-items:center;gap:10px;font-size:13.5px;display:inline-flex}.pupil-guardians-list li{color:var(--text-primary);flex-wrap:wrap;align-items:center;gap:8px;font-size:13.5px;display:flex}.pupil-guardians-subtitle{color:var(--text-primary);margin:20px 0 0;font-size:14px}.pupil-guardians-status{font-weight:600}.pupil-guardians-status--pending{color:var(--warning,#b45309)}.pupil-guardians-status--verified{color:var(--success,#15803d)}.pupil-guardians-status--unsubscribed{color:var(--text-muted)}.pupil-guardians-add{flex-wrap:wrap;gap:8px;display:flex}.pupil-guardians-add input{background:var(--surface);border:1px solid var(--border);height:36px;color:var(--text-primary);flex:200px;min-width:0;padding:0 10px;font-family:inherit;font-size:13px}.platform-access-page{flex-direction:column;gap:16px;display:flex}.platform-access-card-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.platform-access-card-header .card-title{margin:0}.teacher-directory-screen{z-index:10;background:color-mix(in srgb, var(--page-bg) 94%, transparent);-webkit-backdrop-filter:blur(12px);color:var(--text-primary);flex-direction:column;display:flex;position:fixed;inset:0}.teacher-directory-screen-header{background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:18px 32px;display:flex}.teacher-directory-screen-header p{letter-spacing:.08em;text-transform:uppercase;color:var(--blue-600);margin:0 0 2px;font-size:11px;font-weight:700}.teacher-directory-screen-header h1{margin:0;font-size:22px;font-weight:600;line-height:1.2}.teacher-directory-screen-close{background:var(--surface-muted);border:1px solid var(--border);height:36px;color:var(--text-secondary);cursor:pointer;align-items:center;gap:8px;padding:0 12px;font-family:inherit;font-size:13px;display:inline-flex}.teacher-directory-screen-close:hover{border-color:var(--blue-600);color:var(--text-primary)}.teacher-directory-screen-body{flex:1;padding:32px;overflow:auto}.teacher-directory-screen-inner{flex-direction:column;gap:16px;width:min(980px,100%);margin:0 auto;display:flex}.teacher-directory-lead{max-width:62ch;color:var(--text-secondary);margin:0;font-size:14px;line-height:1.5}.teacher-directory-form{background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);grid-template-columns:minmax(0,1.3fr) minmax(0,1.3fr) 170px minmax(140px,1fr) auto;align-items:end;gap:14px 12px;padding:20px;display:grid}.teacher-directory-form label{flex-direction:column;gap:6px;min-width:0;display:flex}.teacher-directory-form label>span:first-child{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.teacher-directory-field{background:var(--surface-muted);border:1px solid var(--border);height:44px;color:var(--text-muted);align-items:center;gap:8px;padding:0 12px;display:flex}.teacher-directory-field:focus-within{border-color:var(--blue-600);color:var(--blue-600)}.teacher-directory-field input{min-width:0;height:100%;color:var(--text-primary);font:inherit;background:0 0;border:0;outline:none;flex:1;padding:0;font-size:14px}.teacher-directory-submit{background:var(--blue-600);height:44px;color:var(--white);cursor:pointer;white-space:nowrap;border:0;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-family:inherit;font-size:14px;font-weight:600;display:inline-flex}.teacher-directory-submit:hover:not(:disabled){background:var(--blue-700)}.teacher-directory-submit:disabled{opacity:.65;cursor:default}.teacher-directory-count,.teacher-directory-note,.teacher-directory-error{margin:0;font-size:13px}.teacher-directory-count{color:var(--text-secondary)}.teacher-directory-error{color:var(--danger)}.teacher-directory-note{color:var(--text-muted)}.teacher-directory-empty{background:color-mix(in srgb, var(--surface) 90%, transparent);-webkit-backdrop-filter:blur(12px);border:1px dashed var(--border);color:var(--text-muted);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:48px 16px;display:flex}.teacher-directory-empty p{margin:0;font-size:14px}.teacher-directory-results{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.teacher-directory-results li{background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);align-items:center;gap:14px;padding:14px 16px;display:flex}.teacher-directory-avatar{background:color-mix(in srgb, var(--blue-600) 12%, var(--surface));width:40px;height:40px;color:var(--blue-600);flex:0 0 40px;justify-content:center;align-items:center;display:flex}.teacher-directory-result-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.teacher-directory-result-body strong{font-size:15px;font-weight:600}.teacher-directory-result-body span{color:var(--text-secondary);overflow-wrap:anywhere;font-size:13px}.teacher-directory-request{background:var(--blue-600);height:32px;color:var(--white);cursor:pointer;white-space:nowrap;border:0;flex:none;align-items:center;gap:6px;padding:0 12px;font-family:inherit;font-size:12.5px;font-weight:600;display:inline-flex}.teacher-directory-request:hover:not(:disabled){background:var(--blue-700)}.teacher-directory-request:disabled{opacity:.6;cursor:default}@media (width<=860px){.teacher-directory-screen-header,.teacher-directory-screen-body{padding:16px}.teacher-directory-form{grid-template-columns:1fr}.teacher-directory-submit{width:100%}.teacher-directory-results li{flex-wrap:wrap;align-items:flex-start}.teacher-directory-request{margin-left:54px}}.course-board-option-card{background:var(--surface);border:1px solid var(--border);color:inherit;flex-direction:column;align-items:flex-start;gap:10px;padding:20px;text-decoration:none;transition:border-color .15s;display:flex}.course-board-option-card:hover{border-color:var(--blue-500)}.course-board-option-icon{background:var(--blue-100);border:1px solid var(--blue-300);width:44px;height:44px;color:var(--blue-600);justify-content:center;align-items:center;display:flex}.course-board-option-label{color:var(--text-primary);font-size:15px;font-weight:600}.course-board-option-description{color:var(--text-muted);font-size:13px;line-height:1.4}.courses-options-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;display:grid}.courses-empty{color:var(--text-muted);font-size:14px}.accounting-sync-banner{background:var(--warning-bg);border:1px solid var(--warning-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.accounting-sync-title{color:var(--warning);margin:0;font-size:14px;font-weight:700}.accounting-sync-text{color:var(--text-secondary);margin:4px 0 0;font-size:13px}.accounting-sync-error{color:var(--danger);margin:6px 0 0;font-size:13px}.accounting-sync-banner button{background:var(--blue-600);border:1px solid var(--blue-600);height:34px;color:var(--white);cursor:pointer;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:600;display:inline-flex}.accounting-sync-banner button:disabled{opacity:.6;cursor:progress}.accounting-option-card{background:var(--surface);border:1px solid var(--border);min-height:72px;color:inherit;align-items:center;gap:12px;padding:12px 14px;text-decoration:none;transition:border-color .15s,background .15s;display:flex}.accounting-option-card:hover{border-color:var(--blue-600);background:color-mix(in srgb, var(--blue-600) 5%, var(--surface))}.accounting-option-card:focus-visible{outline:2px solid var(--blue-500);outline-offset:3px}.accounting-option-icon{border:1px solid #0000;flex:0 0 36px;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.accounting-option-icon--balance-flows,.accounting-option-icon--transactions{background:var(--blue-100);color:var(--blue-700)}.accounting-option-icon--accounts,.accounting-option-icon--invoices{background:var(--warning-bg);color:var(--warning)}.accounting-option-icon--currencies,.accounting-option-icon--fees{background:var(--success-bg);color:var(--success)}:root[data-theme=dark] .accounting-option-icon--balance-flows,:root[data-theme=dark] .accounting-option-icon--transactions{color:var(--blue-300);background:#2563eb2e}.accounting-option-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.accounting-option-label{color:var(--text-primary);font-size:14px;font-weight:600;line-height:1.25}.accounting-option-description{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12.5px;line-height:1.35;display:-webkit-box;overflow:hidden}.accounting-option-chevron{color:var(--text-muted);flex:none;transition:color .15s,transform .15s}.accounting-option-card:hover .accounting-option-chevron{color:var(--blue-600);transform:translate(2px)}.accounting-tools{flex-direction:column;gap:10px;display:flex}.accounting-tools h3{color:var(--text-primary);margin:0;font-size:14px;font-weight:700}.accounting-options-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}@media (width<=1100px){.accounting-options-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=680px){.accounting-options-grid{grid-template-columns:1fr}}.accounting-empty{color:var(--text-secondary);font-size:14px}.accounts-board{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.accounts-card{background:linear-gradient(180deg, color-mix(in srgb, var(--blue-600) 8%, transparent), transparent 48%), var(--surface);border:1px solid var(--border);border-top:2px solid var(--blue-600);flex-direction:column;gap:12px;min-height:148px;padding:16px 16px 14px;display:flex}.accounts-card--inactive{border-top-color:var(--border-strong);background:var(--surface)}.accounts-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.accounts-card-code{letter-spacing:.08em;color:var(--blue-600);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;font-weight:600}.accounts-card h3{color:var(--text-primary);margin:0;font-size:16px;font-weight:600;line-height:1.3}.accounts-card-balance{flex-direction:column;gap:2px;margin:0;display:flex}.accounts-card-balance span{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:600}.accounts-card-balance strong{letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--text-primary);font-size:22px;font-weight:600}.accounts-card-balance strong.is-negative{color:var(--danger)}.accounts-card-meter{align-items:center;gap:8px;margin-top:auto;display:flex}.accounts-card-track{background:color-mix(in srgb, var(--blue-600) 14%, var(--surface-muted));flex:1;height:3px}.accounts-card-track span{background:var(--blue-600);height:100%;display:block}.accounts-card--inactive .accounts-card-track span{background:var(--text-muted)}.accounts-card-share{font-variant-numeric:tabular-nums;color:var(--text-muted);flex:none;font-size:11px}.accounts-empty{border:1px dashed var(--border-strong);background:var(--surface);color:var(--text-secondary);text-align:center;margin:0;padding:28px 16px;font-size:14px}.accounts-loading{color:var(--text-secondary);margin:0;font-size:13px}@media (width<=980px){.accounts-board{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.accounts-board{grid-template-columns:1fr}}.accounts-card--link{cursor:pointer}.accounts-card--link:hover,.accounts-card--link:focus-visible{border-color:var(--blue-500);outline:none}.accounting-filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.accounting-filters input,.accounting-filters select{background:var(--surface);border:1px solid var(--border);height:32px;color:var(--text-primary);padding:0 8px;font-family:inherit;font-size:13px}.transaction-form{background:var(--surface-muted);border:1px solid var(--border);flex-direction:column;gap:10px;padding:14px;display:flex}.transaction-form-head,.transaction-line,.transaction-form-options,.transaction-form-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.transaction-form select,.transaction-form input[type=text],.transaction-form input:not([type]),.transaction-form input[inputmode]{background:var(--surface);border:1px solid var(--border);height:34px;color:var(--text-primary);padding:0 10px;font-family:inherit;font-size:13px}.transaction-line input[aria-label=Libellé]{flex:200px}.transaction-line input[aria-label=Montant]{width:120px}.transaction-line-remove,.transaction-add-line{border:1px solid var(--border);height:30px;color:var(--text-secondary);cursor:pointer;background:0 0;align-items:center;gap:4px;padding:0 10px;font-size:12.5px;display:inline-flex}.transaction-add-line{align-self:flex-start}.transaction-summary{color:var(--text-secondary);font-size:13px}.transaction-form-options label{color:var(--text-secondary);align-items:center;gap:6px;font-size:13px;display:inline-flex}.transaction-row{cursor:pointer}.transaction-row:hover{background:var(--surface-muted)}.transaction-type{font-size:12px;font-weight:600}.transaction-type--cash_in{color:var(--success)}.transaction-type--cash_out{color:var(--danger)}.transaction-usd{color:var(--text-muted);font-size:11.5px}.transaction-detail{grid-template-columns:max-content 1fr;gap:6px 14px;margin:0 0 14px;font-size:13px;display:grid}.transaction-detail dt{color:var(--text-muted)}.transaction-detail dd{color:var(--text-primary);margin:0}.transaction-lines-table{margin-bottom:12px}.transaction-refusal{background:var(--warning-bg);border:1px solid var(--warning-border);color:var(--text-secondary);margin:0 0 12px;padding:8px 10px;font-size:12.5px}.transaction-detail-actions{flex-wrap:wrap;gap:8px;display:flex}.transaction-danger{border:1px solid var(--danger);height:34px;color:var(--danger);cursor:pointer;background:0 0;padding:0 14px;font-size:13px;font-weight:600}.transaction-pupil{color:var(--text-muted);flex-direction:column;gap:4px;font-size:12px;font-weight:600;display:flex}.allocations-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.allocations-toolbar .pupils-add{align-self:center}.allocations-cell-courses{color:var(--text-secondary);font-size:13px}.allocations-cell-tutor{color:var(--text-muted)}.allocations-cell-tutor svg{display:block}.allocation-form-page{max-width:720px}.allocation-form{flex-direction:column;gap:20px;display:flex}.allocation-form-field{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.allocation-lines{flex-direction:column;gap:16px;display:flex}.allocation-line{background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:12px;padding:16px;display:flex}.allocation-line-head{align-items:flex-end;gap:10px;display:flex}.allocation-line-head .allocation-form-field{flex:1}.allocation-line-remove{border:1px solid var(--border);width:36px;height:36px;color:var(--text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;display:flex}.allocation-line-remove:hover{border-color:var(--danger-border);color:var(--danger)}.allocation-line-hint{color:var(--text-muted);margin:0;font-size:13px}.allocation-line-courses{flex-wrap:wrap;gap:8px;display:flex}.allocation-course-chip{background:var(--surface-muted);border:1px solid var(--border);height:32px;color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;padding:0 10px;font-family:inherit;font-size:13px;display:inline-flex}.allocation-course-chip:hover{border-color:var(--blue-500)}.allocation-course-chip.checked{background:color-mix(in srgb, var(--blue-600) 12%, var(--surface));border-color:var(--blue-600);color:var(--blue-600)}.allocation-line-tutor{color:var(--text-secondary);cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.allocation-add-line{border:1px dashed var(--border);height:34px;color:var(--text-secondary);cursor:pointer;background:0 0;align-self:flex-start;align-items:center;gap:6px;padding:0 12px;font-family:inherit;font-size:13px;font-weight:600;display:inline-flex}.allocation-add-line:hover{border-color:var(--blue-500);color:var(--blue-600)}.course-catalog-filters{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.course-catalog-search{background:var(--surface-muted);border:1px solid var(--border);height:36px;color:var(--text-muted);flex:240px;align-items:center;gap:8px;padding:0 12px;display:flex}.course-catalog-search:focus-within{border-color:var(--blue-600);color:var(--blue-600)}.course-catalog-search input{min-width:0;height:100%;color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;padding:0;font-family:inherit;font-size:13px}.course-catalog-search input::-webkit-search-cancel-button{display:none}.course-catalog-filters select{background:var(--surface-muted);border:1px solid var(--border);height:36px;color:var(--text-primary);padding:0 10px;font-family:inherit;font-size:13px}.course-catalog-reset{border:1px solid var(--border);height:36px;color:var(--text-secondary);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:0 12px;font-family:inherit;font-size:13px;display:inline-flex}.course-catalog-reset:hover{border-color:var(--danger-border);color:var(--danger)}.course-catalog-status{white-space:nowrap;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.course-catalog-status--configured{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}.course-catalog-status--pending{background:var(--surface-muted);color:var(--text-muted);border:1px solid var(--border)}.course-catalog-pagination{justify-content:space-between;align-items:center;gap:12px;display:flex}.course-catalog-pagination span{color:var(--text-muted);font-size:12.5px}.course-catalog-pagination button{background:var(--surface);border:1px solid var(--border);height:32px;color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;padding:0 12px;font-family:inherit;font-size:12.5px;font-weight:600;display:inline-flex}.course-catalog-pagination button:hover:not(:disabled){border-color:var(--blue-500);color:var(--blue-600)}.course-catalog-pagination button:disabled{opacity:.5;cursor:not-allowed}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;top:0;left:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:0 0}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{-webkit-transform-origin:0 0;width:1600px;height:1600px}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{width:auto;padding:0;max-width:none!important;max-height:none!important}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:#33b5e566}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{box-sizing:border-box;z-index:800;width:0;height:0}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{z-index:800;pointer-events:visiblePainted;pointer-events:auto;position:relative}.leaflet-top,.leaflet-bottom{z-index:1000;pointer-events:none;position:absolute}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{outline-offset:1px;background:#ddd}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{background:#ffffff80;border:2px dotted #38f}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:.75rem;line-height:1.5}.leaflet-bar{border-radius:4px;box-shadow:0 1px 5px #000000a6}.leaflet-bar a{text-align:center;color:#000;background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;text-decoration:none;display:block}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom:none;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.leaflet-bar a.leaflet-disabled{cursor:default;color:#bbb;background-color:#f4f4f4}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{text-indent:1px;font:700 18px Lucida Console,Monaco,monospace}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{background:#fff;border-radius:5px;box-shadow:0 1px 5px #0006}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{color:#333;background:#fff;padding:6px 10px 6px 6px}.leaflet-control-layers-scrollbar{padding-right:5px;overflow:hidden scroll}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{font-size:1.08333em;display:block}.leaflet-control-layers-separator{border-top:1px solid #ddd;height:0;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{color:#333;padding:0 5px;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{width:1em;height:.6669em;vertical-align:baseline!important;display:inline!important}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{white-space:nowrap;box-sizing:border-box;text-shadow:1px 1px #fff;background:#fffc;border:2px solid #777;border-top:none;padding:2px 5px 1px;line-height:1.1}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{background-clip:padding-box;border:2px solid #0003}.leaflet-popup{text-align:center;margin-bottom:20px;position:absolute}.leaflet-popup-content-wrapper{text-align:left;border-radius:12px;padding:1px}.leaflet-popup-content{min-height:1px;margin:13px 24px 13px 20px;font-size:1.08333em;line-height:1.3}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{pointer-events:none;width:40px;height:20px;margin-top:-1px;margin-left:-20px;position:absolute;left:50%;overflow:hidden}.leaflet-popup-tip{pointer-events:auto;width:17px;height:17px;margin:-10px auto 0;padding:1px;transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{color:#333;background:#fff;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{text-align:center;color:#757575;background:0 0;border:none;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;text-decoration:none;position:absolute;top:0;right:0}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";width:24px;filter:progid:DXImageTransform.Microsoft.Matrix(M11=.707107, M12=.707107, M21=-.707107, M22=.707107);margin:0 auto}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{color:#222;white-space:nowrap;-webkit-user-select:none;user-select:none;pointer-events:none;background-color:#fff;border:1px solid #fff;border-radius:3px;padding:6px;position:absolute;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{pointer-events:none;content:"";background:0 0;border:6px solid #0000;position:absolute}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{margin-left:-6px;left:50%}.leaflet-tooltip-top:before{border-top-color:#fff;margin-bottom:-12px;bottom:0}.leaflet-tooltip-bottom:before{border-bottom-color:#fff;margin-top:-12px;margin-left:-6px;top:0}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{margin-top:-6px;top:50%}.leaflet-tooltip-left:before{border-left-color:#fff;margin-right:-12px;right:0}.leaflet-tooltip-right:before{border-right-color:#fff;margin-left:-12px;left:0}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.map-page{flex-direction:column;gap:16px;height:calc(100svh - 110px);display:flex}.map-page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.map-page-title{color:var(--text-primary);align-items:center;gap:10px;display:flex}.map-page-title h1{margin:0;font-size:18px;font-weight:600}.map-breadcrumb{align-items:center;gap:4px;font-size:13px;display:flex}.map-breadcrumb-segment{color:var(--text-muted);align-items:center;gap:4px;display:flex}.map-breadcrumb button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px 6px;font-size:13px;font-weight:500}.map-breadcrumb button.active{color:var(--blue-600);font-weight:700}.map-breadcrumb button:hover{color:var(--blue-600)}.map-page-body{flex:1;grid-template-columns:1fr 340px;gap:16px;min-height:0;display:grid}.map-page-body--sectors{grid-template-columns:1fr 420px}.map-canvas{background:var(--surface-muted);border:1px solid var(--border);width:100%;height:100%}.map-sidebar{background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:12px;padding:16px;display:flex;overflow-y:auto}.map-sidebar h2{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0;font-size:13px;font-weight:700}.map-sidebar-loading{color:var(--text-muted);font-size:13px}.map-sidebar-list{flex-direction:column;flex:1;gap:4px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.map-sidebar-item{width:100%;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:8px;padding:7px 8px;font-size:13px;display:flex}.map-sidebar-item:not(:disabled):hover{background:var(--surface-muted);border-color:var(--border)}.map-sidebar-item:disabled{cursor:default}.map-sidebar-swatch{border:1px solid var(--border);flex-shrink:0;width:10px;height:10px}.map-sidebar-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.map-sidebar-count{color:var(--blue-600);font-variant-numeric:tabular-nums;font-weight:700}.map-sidebar-empty{color:var(--text-muted);font-size:13px}.map-sidebar-totals{color:var(--text-secondary);margin:0;font-size:12px;line-height:1.45}.map-card{border:1px solid var(--border);background:var(--surface);flex-direction:column;gap:6px;padding:8px;display:flex}.map-card-stats{grid-template-columns:1fr 1fr;gap:4px 8px;margin:0;display:grid}.map-card-stats div{justify-content:space-between;align-items:baseline;gap:8px;min-width:0;display:flex}.map-card-stats dt{color:var(--text-muted);margin:0;font-size:11px;font-weight:600}.map-card-stats dd{font-variant-numeric:tabular-nums;color:var(--text-primary);margin:0;font-size:13px;font-weight:700}.map-sector-open{color:var(--blue-600);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:12px;font-weight:600}.map-sector-open:hover{text-decoration:underline}.map-sectors{flex-direction:column;flex:1;gap:12px;min-height:0;display:flex}.map-sectors-header h2{text-transform:none;letter-spacing:0;color:var(--text-primary);font-size:16px}.map-sectors-header p,.map-sector header p{color:var(--text-secondary);margin:4px 0 0;font-size:12px;line-height:1.4}.map-sectors-back{color:var(--blue-600);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;font-weight:600}.map-sectors-search{border:1px solid var(--border);background:var(--surface-muted);height:34px;color:var(--text-muted);align-items:center;gap:6px;padding:0 8px;display:flex}.map-sectors-search input{min-width:0;height:100%;color:var(--text-primary);font:inherit;background:0 0;border:none;flex:1;font-size:13px}.map-sectors-search button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;display:flex}.map-sectors-list{flex-direction:column;gap:12px;min-height:0;display:flex;overflow-y:auto}.map-sector header h3{color:var(--text-primary);margin:0;font-size:13px}.map-sector ul{flex-direction:column;gap:4px;margin:8px 0 0;padding:0;list-style:none;display:flex}.map-sector a{border:1px solid var(--border);color:inherit;flex-direction:column;gap:2px;padding:8px;text-decoration:none;display:flex}.map-sector a:hover{border-color:var(--blue-500)}.map-school-name{color:var(--text-primary);font-size:13px;font-weight:600}.map-school-id,.map-school-pupils{color:var(--text-muted);font-size:11px}.map-legend{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding-top:12px;display:flex}.map-legend-switch{gap:4px;display:flex}.map-legend-switch button{border:1px solid var(--border);height:26px;color:var(--text-secondary);cursor:pointer;background:0 0;padding:0 8px;font-size:11px;font-weight:600}.map-legend-switch button.active{background:var(--blue-600);border-color:var(--blue-600);color:var(--white)}.map-legend-scale{color:var(--text-muted);align-items:center;gap:4px;font-size:11px;display:flex}.map-legend-scale span{border:1px solid var(--border);width:16px;height:10px}@media (width<=900px){.map-page-body,.map-page-body--sectors{grid-template-rows:1fr auto;grid-template-columns:1fr}.map-sidebar{max-height:50vh}}.subscriptions-page,.subscriptions-review{flex-direction:column;gap:24px;padding:32px;display:flex}.subscriptions-page .stats-bar{margin-bottom:0}.subscriptions-toolbar{flex-wrap:wrap;gap:10px;display:flex}.subscriptions-search{background:var(--surface);border:1px solid var(--border);height:36px;color:var(--text-muted);flex:240px;align-items:center;gap:8px;padding:0 10px;display:flex}.subscriptions-search input,.subscriptions-toolbar select{height:36px;color:var(--text-primary);background:0 0;border:none;font-family:inherit;font-size:13px}.subscriptions-search input{outline:none;flex:1;padding:0}.subscriptions-toolbar select{background:var(--surface);border:1px solid var(--border);padding:0 10px}.subscriptions-table-wrap{background:var(--surface);border:1px solid var(--border);overflow-x:auto}.subscriptions-table{border-collapse:collapse;width:100%;font-size:13px}.subscriptions-table th,.subscriptions-table td{text-align:left;border-bottom:1px solid var(--border);padding:10px 12px}.subscriptions-table th{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);background:var(--surface-muted);font-size:11px}.subscriptions-table tbody tr{cursor:pointer}.subscriptions-table tbody tr:hover{background:color-mix(in srgb, var(--blue-600) 5%, var(--surface))}.subscriptions-empty{color:var(--text-muted);text-align:center}.subscriptions-status{border:1px solid var(--border);padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.subscriptions-status--under_review{color:var(--warning);background:var(--warning-bg);border-color:var(--warning-border)}.subscriptions-status--approved{color:var(--success);background:var(--success-bg);border-color:var(--success-border)}.subscriptions-status--rejected{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-border)}.subscriptions-review-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.subscriptions-review-head h2{text-transform:uppercase;margin:0 0 6px;font-size:22px;font-weight:700;line-height:1.2}.subscriptions-review-head p{color:var(--text-secondary);margin:0;font-size:14px}.subscriptions-review-layout{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:20px;display:grid}.subscriptions-review-main{flex-direction:column;gap:16px;min-width:0;display:flex}.subscriptions-review section,.subscriptions-decide{background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:16px;padding:20px;display:flex}.subscriptions-review h3{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin:0;font-size:13px;font-weight:700}.subscriptions-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px;margin:0;display:grid}.subscriptions-facts div{flex-direction:column;gap:6px;min-width:0;display:flex}.subscriptions-facts dt{color:var(--text-muted);margin:0;font-size:12px}.subscriptions-facts dd{color:var(--text-primary);margin:0;font-size:14px;font-weight:600}.subscriptions-files{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.subscriptions-files li{background:var(--surface-muted);border:1px solid var(--border);align-items:center;gap:12px;padding:12px 14px;display:flex}.subscriptions-file-icon{background:var(--surface);border:1px solid var(--border);width:36px;height:36px;color:var(--blue-600);flex:0 0 36px;justify-content:center;align-items:center;display:flex}.subscriptions-file-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.subscriptions-file-text strong{color:var(--text-primary);font-size:14px}.subscriptions-file-text span{color:var(--text-secondary);font-size:13px}.subscriptions-files button,.subscriptions-decide-actions button{background:var(--surface);border:1px solid var(--blue-600);height:36px;color:var(--blue-600);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-family:inherit;font-size:13px;font-weight:600;display:inline-flex}.subscriptions-chip-block{flex-direction:column;gap:8px;display:flex}.subscriptions-chip-block p,.subscriptions-muted,.subscriptions-note{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.subscriptions-chips{flex-wrap:wrap;gap:8px;display:flex}.subscriptions-chip{background:var(--surface-muted);border:1px solid var(--border);color:var(--text-primary);padding:6px 10px;font-size:13px;font-weight:600}.subscriptions-decide{position:sticky;top:16px}.subscriptions-decide label{color:var(--text-secondary);flex-direction:column;gap:8px;font-size:13px;font-weight:600;display:flex}.subscriptions-decide input{background:var(--surface-muted);border:1px solid var(--border);height:40px;color:var(--text-primary);padding:0 12px;font-family:inherit;font-size:14px;font-weight:400}.subscriptions-decide-actions{flex-direction:column;gap:8px;display:flex}.subscriptions-decide-actions button:first-child{background:var(--blue-600);color:var(--white)}.subscriptions-decide-actions button:disabled{opacity:.6;cursor:wait}.subscriptions-reject{border-color:var(--danger-border);color:var(--danger);background:0 0}@media (width<=900px){.subscriptions-page,.subscriptions-review{padding:20px 16px}.subscriptions-review-layout,.subscriptions-facts{grid-template-columns:1fr}.subscriptions-review-head{align-items:flex-start}}.teacher-gate{flex-direction:column;gap:12px;margin-top:8px;display:flex}.teacher-gate .registration-submit,.teacher-gate .registration-secondary{width:100%;margin-top:0;text-decoration:none}.teacher-gate .registration-secondary{gap:8px}.teacher-gate p{text-align:center;color:var(--text-secondary);margin:8px 0 0;font-size:13px}.registration-card--broad .registration-form{gap:28px}.teacher-registration-block{flex-direction:column;gap:14px;display:flex}.teacher-registration-block h2,.teacher-registration-courses strong{color:var(--text-primary);margin:0;font-size:16px;font-weight:700}.teacher-registration-block p{color:var(--text-secondary);margin:-6px 0 0;font-size:13px;line-height:1.5}.teacher-registration-block-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.teacher-registration-add,.teacher-registration-diploma-head button{background:var(--surface);border:1px solid var(--blue-600);height:36px;color:var(--blue-600);cursor:pointer;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-family:inherit;font-size:13px;font-weight:600;display:inline-flex}.teacher-registration-add:hover,.teacher-registration-diploma-head button:hover{background:var(--blue-50)}.teacher-registration-diploma{background:var(--surface-muted);border:1px solid var(--border);flex-direction:column;gap:16px;padding:18px;display:flex}.teacher-registration-diploma-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.teacher-registration-diploma-head strong{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin:0;font-size:12px;font-weight:700}.teacher-registration-diploma-head button{border-color:var(--border);width:36px;color:var(--text-secondary);background:var(--surface);padding:0}.teacher-registration-diploma-head button:hover{border-color:var(--danger-border);color:var(--danger);background:var(--danger-bg)}.teacher-registration-diploma-grid{grid-template-columns:1fr 1fr;gap:14px 16px;display:grid}.registration-form .teacher-registration-diploma input:not(.teacher-file-input),.registration-form .teacher-registration-diploma select{background:var(--surface)}.registration-form .teacher-registration-diploma input:not(.teacher-file-input):focus,.registration-form .teacher-registration-diploma select:focus,.teacher-file:focus-within .teacher-file-row{outline:2px solid var(--blue-600);outline-offset:1px;border-color:var(--blue-600)}.teacher-file{cursor:pointer;flex-direction:column;gap:8px;display:flex}.teacher-file-row{background:var(--surface);border:1px dashed var(--border-strong);align-items:center;gap:12px;min-height:52px;padding:8px;display:flex}.teacher-file--chosen .teacher-file-row{border-style:solid;border-color:var(--blue-300)}.registration-form .teacher-file-input{clip:rect(0, 0, 0, 0);white-space:nowrap;background:0 0;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.teacher-file-action{background:var(--blue-600);height:36px;color:var(--white);flex:none;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex}.teacher-file-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-secondary);font-size:13px;font-weight:500;overflow:hidden}button.teacher-file-action{cursor:pointer;border:none;font-family:inherit}.teacher-photo-options{flex-wrap:wrap;gap:10px;display:flex}.teacher-photo-options .teacher-file{flex:none}.teacher-photo-options .teacher-file-row{border:none;min-height:auto;padding:0}.teacher-photo-preview{align-items:center;gap:14px;display:flex}.teacher-photo-preview img{object-fit:cover;border:1px solid var(--border-strong);width:76px;height:76px}.teacher-photo-camera{flex-direction:column;gap:10px;display:flex}.teacher-photo-video{aspect-ratio:4/3;object-fit:cover;background:#000;width:100%;max-width:320px}.teacher-photo-camera-actions{gap:10px;display:flex}.teacher-file-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.teacher-file-list li{background:var(--surface-muted);border:1px solid var(--border);color:var(--text-primary);padding:8px 12px;font-size:13px}.teacher-tree{flex-direction:column;gap:10px;display:flex}.teacher-tree-class{border:1px solid var(--border);background:var(--surface)}.teacher-tree-class--open{border-color:var(--blue-600)}.teacher-tree-courses{border-left:2px solid var(--blue-300);flex-direction:column;gap:8px;margin:0 12px 12px 28px;padding:12px 0 4px 14px;display:flex}.teacher-tree-courses p{margin:0}.registration-form .teacher-tree-courses .teacher-choice{width:100%}.registration-form .teacher-choice{background:var(--surface);border:1px solid var(--border);min-height:40px;color:var(--text-primary);cursor:pointer;flex-direction:row;justify-content:flex-start;align-items:center;gap:8px;padding:8px 12px;font-size:13px;font-weight:600}.registration-form .teacher-choice--class{background:0 0;border:none;min-height:48px;padding:8px 14px}.teacher-tree-class--open .teacher-choice--class{background:var(--blue-100);color:var(--blue-700)}.registration-form .teacher-choice input{width:16px;height:16px;accent-color:var(--blue-600);background:0 0;border:none;margin:0;padding:0}.teacher-choice:has(input:checked){border-color:var(--blue-600);background:var(--blue-100);color:var(--blue-700)}.teacher-choice:focus-within{outline:2px solid var(--blue-600);outline-offset:2px}.teacher-registration-footer{padding-top:4px}.teacher-registration-footer .registration-submit{width:100%;height:48px;margin-top:0}:root[data-theme=dark] .teacher-tree-class--open .teacher-choice--class{color:var(--blue-300);background:#2563eb38}:root[data-theme=dark] .teacher-choice:has(input:checked){color:var(--blue-300);background:#2563eb38}:root[data-theme=dark] .teacher-registration-add:hover{background:var(--navy-800)}@media (width<=700px){.teacher-registration-diploma-grid{grid-template-columns:1fr}.teacher-file-row{flex-direction:column;align-items:flex-start}}.sidebar{background:var(--navy-900);border-right:1px solid var(--navy-800);flex-direction:column;width:260px;min-width:260px;height:100vh;display:flex;position:sticky;top:0}.sidebar-logo{border-bottom:1px solid var(--navy-800);justify-content:center;align-items:center;padding:20px;display:flex}.logo-img{object-fit:contain;width:100%;height:140px;display:block}.sidebar-nav{flex:1;padding:16px 12px;overflow-y:auto}.sidebar-nav ul{flex-direction:column;gap:4px;display:flex}.nav-item{width:100%;color:var(--blue-200);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:12px;padding:10px 12px;font-size:14px;text-decoration:none;display:flex}.nav-item:hover{background:var(--navy-800);color:var(--white)}.nav-item.active{background:var(--navy-700);border-color:var(--blue-600);color:var(--white)}.nav-item--soon{opacity:.45;cursor:not-allowed}.nav-item--soon:hover{color:var(--blue-200);background:0 0}.nav-icon{color:var(--blue-400);flex-shrink:0}.nav-item.active .nav-icon{color:var(--blue-300)}.sidebar-footer{border-top:1px solid var(--navy-800);align-items:center;gap:12px;padding:16px 20px;display:flex}.avatar{background:var(--navy-700);border:1px solid var(--blue-600);width:36px;height:36px;color:var(--blue-300);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-footer-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.footer-email{color:var(--white);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.footer-role{color:var(--blue-300);font-size:12px}@media (width<=768px){.sidebar{border-right:none;border-bottom:1px solid var(--navy-800);width:100%;min-width:0;height:auto;position:static}.sidebar-nav{padding:8px;overflow-x:auto}.sidebar-nav ul{flex-direction:row}.nav-item{white-space:nowrap}.sidebar-footer{display:none}}a.sidebar-footer{color:inherit;text-decoration:none;transition:background .12s}a.sidebar-footer:hover{background:var(--navy-800)}.register-search{position:relative}.search-box{background:var(--surface-muted);border:1px solid var(--border);width:220px;height:36px;color:var(--text-muted);cursor:pointer;text-align:left;align-items:center;gap:8px;padding:0 10px;display:flex}.search-box span{font-size:13px}.search-box:hover,.search-box[aria-expanded=true]{border-color:var(--blue-600);color:var(--text-primary)}.register-search-panel{z-index:30;background:var(--surface);border:1px solid var(--border);width:420px;max-width:calc(100vw - 32px);position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 32px #060e2124}.register-search-field{border-bottom:1px solid var(--border);height:36px;color:var(--text-muted);align-items:center;gap:8px;padding:0 12px;display:flex}.register-search-field input{min-width:0;height:100%;color:var(--text-primary);font:inherit;background:0 0;border:0;outline:none;flex:1;font-size:13px}.register-search-field input::placeholder{color:var(--text-muted)}.register-search-results{max-height:min(360px,70vh);padding:4px 0 6px;overflow:auto}.register-search-heading{color:var(--text-primary);justify-content:space-between;align-items:baseline;margin:0;padding:8px 12px 2px;font-size:13px;font-weight:600;display:flex}.register-search-heading span:last-child:not(:first-child){color:var(--text-muted);font-size:12px;font-weight:500}.register-search-menu{margin:0;padding:0;list-style:none}.register-search-row{width:100%;min-height:40px;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:4px 12px;font-size:13px;line-height:1.2;text-decoration:none;display:flex}.register-search-row>span:last-child{flex-direction:column;gap:1px;min-width:0;display:flex}.register-search-row strong{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.register-search-row small{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;line-height:1.3;overflow:hidden}.register-search-row:hover{background:var(--surface-muted)}.register-search-icon{border-radius:6px;flex-shrink:0;place-items:center;width:26px;height:26px;display:grid}.register-search-icon--blue{background:var(--blue-100);color:var(--blue-700)}.register-search-icon--warning{background:var(--warning-bg);color:var(--warning)}.register-search-icon--success{background:var(--success-bg);color:var(--success)}:root[data-theme=dark] .register-search-icon--blue{color:var(--blue-300);background:#2563eb2e}.register-search-empty{color:var(--text-secondary);margin:0;padding:10px 12px 8px;font-size:13px}.register-screen{z-index:25;pointer-events:none;background:color-mix(in srgb, var(--navy-950) 16%, transparent);color:var(--text-primary);justify-content:center;align-items:flex-start;padding:16px 24px 24px;display:flex;position:fixed;bottom:0;right:0}.register-screen-dialog{pointer-events:auto;background:color-mix(in srgb, var(--surface) 88%, transparent);border:1px solid color-mix(in srgb, var(--border) 80%, transparent);-webkit-backdrop-filter:blur(8px);flex-direction:column;width:min(880px,100%);max-height:100%;display:flex;box-shadow:0 12px 32px #060e2114}.register-screen-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 16px 12px;display:flex}.register-screen-header p{letter-spacing:.08em;text-transform:uppercase;color:var(--blue-600);margin:0 0 2px;font-size:11px;font-weight:700}.register-screen-header h1{margin:0;font-size:18px;font-weight:600;line-height:1.2}.register-screen-close{border:1px solid var(--border);height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;flex-shrink:0;align-items:center;gap:6px;padding:0 10px;font-family:inherit;font-size:13px;display:inline-flex}.register-screen-close:hover{border-color:var(--blue-600);color:var(--text-primary)}.register-screen-body{flex:1;padding:14px 16px 16px;overflow:auto}.register-screen-inner{flex-direction:column;gap:12px;width:100%;display:flex}.register-screen-header .register-screen-lead{max-width:62ch;color:var(--text-secondary);letter-spacing:0;text-transform:none;margin:6px 0 0;font-size:13px;font-weight:400;line-height:1.45}.register-screen-form{background:0 0;border:0;grid-template-columns:minmax(0,1.6fr) 132px minmax(160px,1fr) auto;align-items:start;gap:10px 12px;padding:0;display:grid}.register-screen-form label{flex-direction:column;gap:6px;min-width:0;display:flex}.register-screen-form label>span:first-child{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.register-screen-field{background:color-mix(in srgb, var(--surface) 70%, transparent);border:1px solid var(--border);height:38px;color:var(--text-muted);align-items:center;gap:8px;padding:0 10px;display:flex}.register-screen-field:focus-within{border-color:var(--blue-600);color:var(--blue-600)}.register-screen-field input{min-width:0;height:100%;color:var(--text-primary);font:inherit;background:0 0;border:0;outline:none;flex:1;padding:0;font-size:14px}.register-screen-submit{background:var(--blue-600);height:38px;color:var(--white);cursor:pointer;white-space:nowrap;border:0;justify-content:center;align-items:center;gap:8px;margin-top:21px;padding:0 14px;font-family:inherit;font-size:14px;font-weight:600;display:inline-flex}.register-screen-submit:hover:not(:disabled){background:var(--blue-700)}.register-screen-submit:disabled{opacity:.65;cursor:default}.register-screen-hint,.register-screen-count,.register-screen-note,.register-screen-error{margin:0;font-size:13px}.register-screen-hint{color:var(--text-muted);letter-spacing:0;text-transform:none;font-size:11px;font-weight:500}.register-screen-count{color:var(--text-secondary)}.register-screen-error{color:var(--danger)}.register-screen-note{color:var(--text-muted)}.register-screen-empty{border:1px dashed var(--border);color:var(--text-muted);text-align:center;background:0 0;flex-direction:column;align-items:center;gap:8px;padding:28px 16px;display:flex}.register-screen-empty p{margin:0;font-size:14px}.register-screen-results{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.register-screen-results li{background:color-mix(in srgb, var(--surface) 55%, transparent);border:1px solid var(--border);align-items:center;gap:12px;padding:8px 10px;display:flex}.register-screen-view{background:var(--blue-600);height:32px;color:var(--white);cursor:pointer;white-space:nowrap;border:0;flex:none;align-items:center;gap:6px;padding:0 12px;font-family:inherit;font-size:12.5px;font-weight:600;display:inline-flex}.register-screen-view:hover{background:var(--blue-700)}.register-screen-avatar{background:color-mix(in srgb, var(--blue-600) 12%, var(--surface));width:40px;height:40px;color:var(--blue-600);flex:0 0 40px;justify-content:center;align-items:center;display:flex}.register-screen-avatar--inactive{background:var(--surface-muted);color:var(--text-muted)}.register-screen-result-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.register-screen-result-body strong{font-size:15px;font-weight:600}.register-screen-result-body span{color:var(--text-secondary);overflow-wrap:anywhere;font-size:13px}.register-screen-badge{letter-spacing:.04em;text-transform:uppercase;border:1px solid #0000;flex:none;padding:3px 8px;font-size:11px;font-weight:700}.register-screen-badge--active{color:var(--success);background:var(--success-bg);border-color:var(--success-border)}.register-screen-badge--inactive{color:var(--text-muted);background:var(--surface-muted);border-color:var(--border)}@media (width<=860px){.register-screen,.register-screen-header,.register-screen-body{padding:12px}.register-screen-form{grid-template-columns:1fr}.register-screen-submit{width:100%;margin-top:0}.register-screen-results li{flex-wrap:wrap;align-items:flex-start}.register-screen-view{margin-left:54px}}.topbar{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 32px;display:flex}.topbar-title h1{color:var(--text-primary);font-size:22px;font-weight:600}.topbar-title p{color:var(--text-muted);margin-top:4px;font-size:13px}.topbar-actions{align-items:center;gap:12px;display:flex}.topbar-tools{border-right:1px solid var(--border);align-items:center;gap:2px;padding-right:12px;display:flex}.topbar-tools .zoom-controls{gap:0}.topbar-tools .icon-button,.topbar-tools .zoom-controls-button,.topbar-tools .theme-toggle{width:34px;height:34px;color:var(--text-secondary);background:0 0;border:none}.icon-button{cursor:pointer;justify-content:center;align-items:center;text-decoration:none;display:flex}.topbar-tools .icon-button:hover,.topbar-tools .icon-button--active,.topbar-tools .zoom-controls-button:hover:not(:disabled),.topbar-tools .theme-toggle:hover{background:var(--surface-muted);color:var(--text-primary)}.logout-button{width:34px;height:34px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.logout-button:hover{background:var(--danger-bg);color:var(--danger)}.topbar-avatar{flex:none;text-decoration:none;display:inline-flex}.topbar-avatar:hover .avatar-image{border-color:var(--blue-400)}.app-shell{background:var(--page-bg);min-height:100vh;display:flex}.app-content{zoom:var(--ui-zoom,1);min-width:0;min-height:calc(100vh / var(--ui-zoom,1));flex-direction:column;flex:1;display:flex}.app-main{flex:1}@media (width<=768px){.app-shell{flex-direction:column}}.root-error-page{text-align:center;background:var(--page-bg);flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:100svh;padding:32px;display:flex}.root-error-logo{height:56px;margin-bottom:12px}.root-error-icon{background:var(--surface-muted);border:1px solid var(--border);width:56px;height:56px;color:var(--blue-600);justify-content:center;align-items:center;margin-bottom:8px;display:flex}.root-error-page h1{color:var(--text-primary);margin:0;font-size:20px;font-weight:700}.root-error-page p{max-width:360px;color:var(--text-muted);margin:0 0 12px;font-size:13.5px}.root-error-link{background:var(--blue-600);border:1px solid var(--blue-600);height:40px;color:var(--white);align-items:center;gap:8px;padding:0 18px;font-size:13.5px;font-weight:600;text-decoration:none;display:flex}.root-error-link:hover{background:var(--blue-700)}.notification-bell{z-index:400;position:fixed;bottom:20px;right:20px}.notification-bell-button{background:var(--blue-600);width:52px;height:52px;color:var(--white);box-shadow:0 12px 32px color-mix(in srgb, var(--navy-950) 22%, transparent);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative}.notification-bell-button:hover{background:var(--blue-700)}.notification-bell-badge{background:var(--danger);border:2px solid var(--surface);min-width:20px;height:20px;color:var(--white);border-radius:10px;justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:700;display:flex;position:absolute;top:-4px;right:-4px}.notification-panel{background:var(--surface);border:1px solid var(--border);width:min(340px,100vw - 40px);max-height:420px;box-shadow:0 16px 40px color-mix(in srgb, var(--navy-950) 20%, transparent);flex-direction:column;display:flex;position:absolute;bottom:64px;right:0;overflow:hidden}.notification-panel-header{background:var(--surface-muted);border-bottom:1px solid var(--border);color:var(--text-primary);padding:12px 14px;font-size:13.5px;font-weight:700}.notification-panel-list{flex:1;overflow-y:auto}.notification-panel-item{border-bottom:1px solid var(--border);padding:10px 14px}.notification-panel-item--unread{border-left:3px solid var(--blue-600);background:color-mix(in srgb, var(--blue-600) 6%, var(--surface))}.notification-panel-open{text-align:left;cursor:pointer;background:0 0;border:none;width:100%;padding:0;font-family:inherit;display:block}.notification-panel-read{color:var(--blue-600);cursor:pointer;background:0 0;border:none;margin-top:6px;padding:0;font-family:inherit;font-size:12px;font-weight:700}.notification-panel-item:last-child{border-bottom:none}.notification-panel-item p{color:var(--text-primary);margin:0 0 4px;font-size:13px;line-height:1.4}.notification-panel-item span{color:var(--text-muted);font-size:11.5px}.notification-panel-empty{text-align:center;color:var(--text-muted);margin:0;padding:24px 14px;font-size:13px}
