:root{--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--space-xs: var(--space-2);--space-sm: var(--space-3);--space-md: var(--space-4);--space-lg: var(--space-6);--space-xl: var(--space-8);--space-2xl: var(--space-12);--space-3xl: var(--space-16);--radius-none: 0;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-3xl: 2rem;--radius-full: 9999px;--radius-button: var(--radius-xl);--radius-card: var(--radius-2xl);--radius-input: var(--radius-lg);--radius-badge: var(--radius-full);--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .05);--shadow-dark-sm: 0 1px 3px 0 rgba(0, 0, 0, .3), 0 1px 2px -1px rgba(0, 0, 0, .3);--shadow-dark-md: 0 4px 6px -1px rgba(0, 0, 0, .4), 0 2px 4px -2px rgba(0, 0, 0, .4);--shadow-dark-lg: 0 10px 15px -3px rgba(0, 0, 0, .5), 0 4px 6px -4px rgba(0, 0, 0, .5);--z-base: 0;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070;--z-toast: 1080;--z-max: 9999;--color-brand-50: #FFFBEB;--color-brand-100: #FEF3C7;--color-brand-200: #FDE68A;--color-brand-300: #FCD34D;--color-brand-400: #FBBF24;--color-brand-500: #FBBF24;--color-brand-600: #D97706;--color-brand-700: #B45309;--color-brand-800: #92400E;--color-brand-900: #78350F;--color-success-50: #ecfdf5;--color-success-100: #d1fae5;--color-success-500: #10b981;--color-success-600: #059669;--color-success-700: #047857;--color-warning-50: #fffbeb;--color-warning-100: #fef3c7;--color-warning-500: #f59e0b;--color-warning-600: #d97706;--color-warning-700: #b45309;--color-error-50: #fef2f2;--color-error-100: #fee2e2;--color-error-500: #ef4444;--color-error-600: #dc2626;--color-error-700: #b91c1c;--color-info-50: #eff6ff;--color-info-100: #dbeafe;--color-info-500: #3b82f6;--color-info-600: #2563eb;--color-info-700: #1d4ed8;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #111827;--font-sans: "Inter", ui-sans-serif, system-ui, sans-serif;--font-mono: "Roboto Mono", ui-monospace, monospace;--text-display-2xl: 4.5rem;--text-display-xl: 3.75rem;--text-display-lg: 3rem;--text-display-md: 2.25rem;--text-display-sm: 1.875rem;--text-heading-1: 2.25rem;--text-heading-2: 1.875rem;--text-heading-3: 1.5rem;--text-heading-4: 1.25rem;--text-heading-5: 1.125rem;--text-heading-6: 1rem;--text-body-xl: 1.25rem;--text-body-lg: 1.125rem;--text-body-md: 1rem;--text-body-sm: .875rem;--text-body-xs: .75rem;--text-caption: .75rem;--text-overline: .625rem;--text-child-display: 3rem;--text-child-title: 2rem;--text-child-subtitle: 1.5rem;--text-child-body: 1.125rem;--text-child-label: 1rem;--text-child-caption: .875rem;--size-child-button-height: 3rem;--size-child-input-height: 3rem;--size-child-icon: 1.5rem;--size-child-touch-target: 2.75rem;--leading-none: 1;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--leading-loose: 2;--font-thin: 100;--font-extralight: 200;--font-light: 300;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--font-black: 900;--duration-fast: .15s;--duration-normal: .2s;--duration-slow: .3s;--duration-slower: .5s;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.34, 1.56, .64, 1);--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--breakpoint-2xl: 1536px;--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1280px;--container-2xl: 1536px}@layer utilities{.space-xs{gap:var(--space-xs)}.space-sm{gap:var(--space-sm)}.space-md{gap:var(--space-md)}.space-lg{gap:var(--space-lg)}.space-xl{gap:var(--space-xl)}.p-xs{padding:var(--space-xs)}.p-sm{padding:var(--space-sm)}.p-md{padding:var(--space-md)}.p-lg{padding:var(--space-lg)}.p-xl{padding:var(--space-xl)}.m-xs{margin:var(--space-xs)}.m-sm{margin:var(--space-sm)}.m-md{margin:var(--space-md)}.m-lg{margin:var(--space-lg)}.m-xl{margin:var(--space-xl)}.rounded-button{border-radius:var(--radius-button)}.rounded-card{border-radius:var(--radius-card)}.rounded-input{border-radius:var(--radius-input)}.rounded-badge{border-radius:var(--radius-badge)}.shadow-card{box-shadow:var(--shadow-md)}.shadow-card-hover{box-shadow:var(--shadow-lg)}.shadow-button{box-shadow:var(--shadow-sm)}.shadow-button-hover{box-shadow:var(--shadow-md)}.text-display-2xl{font-size:var(--text-display-2xl);line-height:var(--leading-tight)}.text-display-xl{font-size:var(--text-display-xl);line-height:var(--leading-tight)}.text-display-lg{font-size:var(--text-display-lg);line-height:var(--leading-tight)}.text-heading-1{font-size:var(--text-heading-1);line-height:var(--leading-tight);font-weight:var(--font-bold)}.text-heading-2{font-size:var(--text-heading-2);line-height:var(--leading-tight);font-weight:var(--font-bold)}.text-heading-3{font-size:var(--text-heading-3);line-height:var(--leading-snug);font-weight:var(--font-semibold)}.text-heading-4{font-size:var(--text-heading-4);line-height:var(--leading-snug);font-weight:var(--font-semibold)}.text-body-xl{font-size:var(--text-body-xl);line-height:var(--leading-normal)}.text-body-lg{font-size:var(--text-body-lg);line-height:var(--leading-normal)}.text-body-md{font-size:var(--text-body-md);line-height:var(--leading-normal)}.text-body-sm{font-size:var(--text-body-sm);line-height:var(--leading-normal)}.text-caption{font-size:var(--text-caption);line-height:var(--leading-normal)}.text-child-display{font-size:var(--text-child-display);line-height:var(--leading-tight);font-weight:var(--font-bold)}.text-child-title{font-size:var(--text-child-title);line-height:var(--leading-tight);font-weight:var(--font-bold)}.text-child-subtitle{font-size:var(--text-child-subtitle);line-height:var(--leading-snug);font-weight:var(--font-semibold)}.text-child-body{font-size:var(--text-child-body);line-height:var(--leading-relaxed);font-weight:var(--font-medium)}.text-child-label{font-size:var(--text-child-label);line-height:var(--leading-normal);font-weight:var(--font-medium)}.text-child-caption{font-size:var(--text-child-caption);line-height:var(--leading-normal);font-weight:var(--font-medium)}.text-child-contrast{color:var(--color-gray-800)}.text-child-contrast-muted{color:var(--color-gray-700)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{min-width:320px;min-height:100vh;font-family:Manrope,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.5;color:#1f2937;background:#f8fafc}#root{width:100%;min-height:100vh}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:transparent;border:none;padding:0}button:disabled,input:disabled,select:disabled{cursor:not-allowed;opacity:.62}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--color-brand-400);outline-offset:2px;border-radius:var(--radius-md)}img,svg{display:block;max-width:100%}.shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;display:flex;flex-direction:column;gap:var(--space-6);height:100vh;padding:var(--space-5) var(--space-4);border-right:1px solid #E5E7EB;background:#fff}.brand{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2);border-radius:var(--radius-lg);transition:background-color var(--duration-fast) var(--ease-out)}.brand:hover{background:var(--color-brand-50)}.brand-logo{width:36px;height:36px;flex-shrink:0;color:var(--color-brand-500)}.brand-text{display:flex;flex-direction:column;line-height:1.2}.brand-text strong{font-size:15px;font-weight:var(--font-bold);color:#1f2937;letter-spacing:-.01em}.brand-text small{font-size:12px;color:#9ca3af;letter-spacing:.04em;text-transform:uppercase;font-weight:var(--font-medium)}.side-nav{display:flex;flex-direction:column;gap:var(--space-1);flex:1;padding-top:var(--space-2)}.side-nav a{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-3);border-radius:var(--radius-lg);font-size:14px;font-weight:var(--font-medium);color:#6b7280;transition:background-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.side-nav a:hover{background:#f9fafb;color:#1f2937}.side-nav a.active{background:var(--color-brand-50);color:var(--color-brand-700);font-weight:var(--font-semibold)}.external-link{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-3) var(--space-3);border-radius:var(--radius-lg);border:1px solid #E5E7EB;font-size:13px;font-weight:var(--font-semibold);color:#374151;letter-spacing:.01em;transition:border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out)}.external-link:hover{border-color:var(--color-brand-400);color:var(--color-brand-700);background:var(--color-brand-50)}.workspace{min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);padding:var(--space-5) var(--space-8);background:#f8fafcd9;backdrop-filter:saturate(180%) blur(10px);-webkit-backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid #E5E7EB}.topbar-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.topbar h1{font-size:18px;font-weight:var(--font-bold);color:#1f2937;letter-spacing:-.01em;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-hint{font-size:13px;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.content{padding:var(--space-8);width:100%}.shell-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;opacity:0;pointer-events:none;z-index:90;transition:opacity .2s ease}.topbar-burger{display:none;width:36px;height:36px;align-items:center;justify-content:center;border:1px solid #E5E7EB;border-radius:var(--radius-md);background:#fff;color:#1f2937;cursor:pointer;flex-shrink:0}.topbar-burger:hover{background:#f8fafc;border-color:#cbd5e1}@media (max-width: 880px){.shell{display:block;min-height:100vh}.sidebar{position:fixed;top:0;left:0;bottom:auto;width:280px;height:100vh;z-index:100;transform:translate(-100%);transition:transform .22s ease;box-shadow:4px 0 24px #0f172a14;overflow-y:auto}.shell.is-drawer-open .sidebar{transform:translate(0)}.shell.is-drawer-open .shell-backdrop{opacity:1;pointer-events:auto}.topbar-burger{display:inline-flex}.topbar{padding:var(--space-4) var(--space-4);gap:var(--space-3)}.topbar-logout-label{display:none}.topbar-logout{padding:0 var(--space-3)}.content{padding:var(--space-5) var(--space-4)}}@media (max-width: 520px){.topbar h1{font-size:16px}.topbar-hint{display:none}.content{padding:var(--space-4) var(--space-3)}}.page-stack{display:flex;flex-direction:column;gap:var(--space-6)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-6);flex-wrap:wrap}.page-header h2{font-size:28px;font-weight:var(--font-bold);color:#1f2937;letter-spacing:-.02em;line-height:1.2}.page-header>div>p:last-child{margin-top:var(--space-2);color:#6b7280;font-size:14px;max-width:620px;line-height:1.55}.actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:40px;padding:0 var(--space-4);border-radius:var(--radius-lg);font-size:14px;font-weight:var(--font-semibold);letter-spacing:.01em;white-space:nowrap;border:1px solid transparent;transition:all var(--duration-fast) var(--ease-out)}.button-primary{background:linear-gradient(180deg,var(--color-brand-300) 0%,var(--color-brand-500) 100%);color:#1f2937;border-color:#fff3;box-shadow:inset 0 1px #fff6,0 1px 2px #d9770626}.button-primary:hover{background:linear-gradient(180deg,var(--color-brand-200) 0%,var(--color-brand-500) 100%);transform:translateY(-1px)}.button-secondary{background:#fff;border-color:#e5e7eb;color:#374151}.button-secondary:hover{border-color:var(--color-brand-400);color:var(--color-brand-700);background:var(--color-brand-50)}.button-ghost{background:transparent;color:#6b7280}.button-google{width:100%;background:#fff;color:#1f2937;border-color:#d1d5db;font-weight:var(--font-semibold)}.button-google:hover{border-color:#9ca3af;background:#fafafa}.auth-divider{display:flex;align-items:center;gap:var(--space-3);color:#9ca3af;font-size:12px;letter-spacing:.06em;text-transform:uppercase;margin:var(--space-2) 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:#e5e7eb}.segmented{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;padding:4px;border:1px solid #E5E7EB;border-radius:var(--radius-lg);background:#f9fafb}.segmented button{height:34px;border-radius:var(--radius-md);color:#6b7280;font-size:13px;font-weight:var(--font-semibold)}.segmented button.active{background:#fff;color:#1f2937;box-shadow:0 1px 2px #0000000f}.panel{background:#fff;border:1px solid #E5E7EB;border-radius:var(--radius-2xl);overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-6);border-bottom:1px solid #F3F4F6;flex-wrap:wrap}.panel-header h3{font-size:16px;font-weight:var(--font-bold);color:#1f2937;letter-spacing:-.01em}.panel-header p{margin-top:4px;font-size:13px;color:#6b7280}.form-panel{padding:var(--space-2) var(--space-6) var(--space-6)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:var(--space-4)}.stat-card{position:relative;display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-5);padding-right:calc(var(--space-5) + 28px);background:#fff;border:1px solid #E5E7EB;border-radius:var(--radius-xl);transition:border-color var(--duration-fast) var(--ease-out);min-width:0;overflow:hidden}.stat-card:hover{border-color:var(--color-brand-300)}.stat-card>svg{position:absolute;top:var(--space-4);right:var(--space-4);color:var(--color-brand-500);opacity:.65}.stat-card>span{font-size:11px;color:#6b7280;font-weight:var(--font-semibold);letter-spacing:.04em;text-transform:uppercase}.stat-card>strong{font-size:clamp(18px,2.4vw,26px);font-weight:var(--font-extrabold);color:#1f2937;letter-spacing:-.01em;line-height:1.2;margin-top:var(--space-1);overflow-wrap:anywhere;word-break:break-word;-webkit-hyphens:auto;hyphens:auto}.empty-panel{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4);padding:var(--space-8) var(--space-6)}.empty-row{padding:var(--space-5) var(--space-6)}.registration-row{grid-template-columns:minmax(0,1fr) auto auto 20px}.registration-row:hover{background:#fafafa}.registration-row:hover .row-arrow{color:var(--color-brand-500)}.table-list{display:flex;flex-direction:column}.table-row{display:grid;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-6);border-bottom:1px solid #F3F4F6;color:#374151;font-size:14px;transition:background-color var(--duration-fast) var(--ease-out)}.table-row:last-child{border-bottom:none}.table-row-clickable{cursor:pointer}.table-row-edit{grid-template-columns:1fr;gap:10px;padding:var(--space-3)}.student-row,.teacher-row{grid-template-columns:minmax(0,1fr) auto auto;gap:var(--space-3)}.teacher-row.is-cancelled{opacity:.55}.row-main{min-width:0}.row-title-break{word-break:break-all}.row-subtitle-tight{margin-top:2px}.row-actions{display:flex;gap:6px}.row-actions-wide{display:flex;gap:var(--space-2)}.text-right{text-align:right}.olympiad-row{grid-template-columns:minmax(0,1fr) auto auto auto 20px}.org-row{grid-template-columns:minmax(0,1fr) auto auto}.olympiad-row:hover{background:#fafafa}.participant-row{grid-template-columns:minmax(0,1fr) auto auto}.row-title{font-weight:var(--font-semibold);color:#1f2937;font-size:15px;margin-bottom:2px}.row-title-with-icon{display:inline-flex;align-items:center;gap:var(--space-2)}.schedule-editor,.schedule-view{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-4);padding:var(--space-5) var(--space-6)}.schedule-editor-empty{padding:var(--space-5) var(--space-6)}.schedule-day{background:#f9fafb;border:1px solid #E5E7EB;border-radius:var(--radius-lg);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.schedule-day-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:#6b7280}.schedule-day-empty{font-size:13px;margin:0}.schedule-event-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-2)}.schedule-event{display:grid;grid-template-columns:100px minmax(0,1fr) 28px;gap:var(--space-2);align-items:center}.schedule-event>.schedule-event-time,.schedule-event>.schedule-event-title{min-width:0;width:100%}.schedule-event-time,.schedule-event-title{height:36px;padding:0 var(--space-3);border:1px solid #D1D5DB;border-radius:var(--radius-md);font-size:13px;background:#fff;font-family:inherit}.schedule-event-time:focus,.schedule-event-title:focus{outline:none;border-color:var(--color-brand-400);box-shadow:0 0 0 3px #fbbf2426}.schedule-add,.schedule-event>.button-ghost{height:28px;width:28px;padding:0;display:inline-flex;align-items:center;justify-content:center}.button-ghost{background:transparent;border:1px solid transparent;color:#6b7280;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out)}.button-ghost:hover{background:#f3f4f6;color:#1f2937}.schedule-event-list-readonly{gap:var(--space-1)}.schedule-event-readonly{display:grid;grid-template-columns:56px minmax(0,1fr);gap:var(--space-3);align-items:baseline;font-size:14px;color:#1f2937;padding:var(--space-2) 0;border-bottom:1px dashed #E5E7EB}.schedule-event-readonly:last-child{border-bottom:none}.schedule-event-time-read{color:#6b7280;font-variant-numeric:tabular-nums;font-weight:var(--font-semibold)}.form-tz-hint{font-size:13px;margin-top:calc(var(--space-2) * -1)}.form-section{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid #F3F4F6}.form-section-header{display:flex;flex-direction:column;gap:2px;font-size:13px;color:#374151}.form-section-header strong{font-weight:var(--font-semibold)}.form-section-header .muted{font-size:12px}.form-section .schedule-editor{padding:0}.location-chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.location-chip{display:inline-flex;align-items:center;gap:var(--space-2);min-height:32px;padding:4px 6px 4px 10px;border:1px solid #E5E7EB;border-radius:var(--radius-full);background:#f9fafb;color:#374151;font-size:13px;font-weight:var(--font-semibold)}.location-chip button{width:24px;height:24px;border:0;border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center;background:transparent;color:#6b7280;cursor:pointer}.location-chip button:hover{background:#f3f4f6;color:#b91c1c}.location-add-row{display:grid;grid-template-columns:minmax(160px,.8fr) minmax(180px,1fr) auto;gap:var(--space-3);align-items:center}.location-add-row .button{margin-top:0}@media (max-width: 720px){.location-add-row{grid-template-columns:minmax(0,1fr)}}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-4)}.info-grid-2col{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width: 720px){.info-grid-2col{grid-template-columns:minmax(0,1fr)}}.info-card{background:#fff;border:1px solid #E5E7EB;border-radius:var(--radius-lg);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}.info-card header{display:flex;align-items:center;gap:var(--space-2);color:#6b7280}.info-card h4{margin:0;font-size:13px;font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.04em;color:inherit}.info-card p{margin:0;font-size:15px;color:#1f2937}.info-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-2)}.info-list li{display:flex;justify-content:space-between;align-items:baseline;font-size:14px}.panel-body{padding:0 var(--space-6) var(--space-6)}.panel-body-separated{border-top:1px solid var(--color-gray-100);padding-top:var(--space-4);margin-top:var(--space-3)}.block-offset-md{margin-top:var(--space-4)}.inline-note{margin-left:var(--space-2);font-size:12px}.spread-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.price-line{display:inline-flex;align-items:baseline;gap:var(--space-2)}.price-old{text-decoration:line-through;font-size:13px}.discount-note{font-size:12px;margin-top:var(--space-2)}.price-disclaimer{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid #F3F4F6;font-size:11.5px;line-height:1.5;color:#6b7280}.price-disclaimer p{margin:0 0 6px}.price-disclaimer p:last-child{margin-bottom:0}.price-disclaimer strong{color:#1f2937;font-weight:var(--font-semibold)}.info-list li span{color:#6b7280}.info-list li strong{color:#1f2937;font-weight:var(--font-semibold)}.data-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4);margin:0;padding:var(--space-5) var(--space-6)}.data-list>div{display:flex;flex-direction:column;gap:var(--space-1)}.data-list dt{font-size:12px;font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.04em;color:#6b7280;margin:0}.data-list dd{margin:0;font-size:14px;color:#1f2937}.row-subtitle{font-size:13px;color:#6b7280}.row-meta{display:flex;gap:var(--space-4);color:#6b7280;font-size:13px;align-items:center;flex-wrap:wrap}.row-meta>span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.row-arrow{color:#d1d5db}.olympiad-row:hover .row-arrow{color:var(--color-brand-500)}.muted{color:#9ca3af;font-size:13px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;color:#4b5563}.status{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:var(--font-semibold);letter-spacing:.01em;white-space:nowrap}.status-green{background:#dcfce7;color:#15803d}.status-amber{background:var(--color-brand-100);color:var(--color-brand-700)}.status-gray{background:#f3f4f6;color:#6b7280}.status-red{background:#fee2e2;color:#b91c1c}.inline-link{display:inline-flex;align-items:center;gap:var(--space-2);font-size:14px;font-weight:var(--font-medium);color:#6b7280;width:fit-content;transition:color var(--duration-fast) var(--ease-out)}.inline-link:hover{color:var(--color-brand-700)}.auth-layout{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);background:#f8fafc}.auth-form-pane{display:grid;place-items:center;padding:var(--space-8) var(--space-6)}.auth-hero{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:var(--space-10);background:#fff;border-left:1px solid #F3F4F6;color:#1f2937}.auth-hero-brand{display:flex;align-items:center;gap:var(--space-3);font-weight:var(--font-bold);font-size:16px;letter-spacing:-.01em;color:#1f2937}.auth-hero-brand small{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:var(--font-medium);color:#9ca3af;margin-top:2px}.auth-hero-headline{font-size:clamp(32px,4vw,56px);font-weight:var(--font-bold);line-height:1.05;letter-spacing:-.03em;max-width:18ch;color:#0f172a}.auth-hero-headline em{font-style:normal;color:#f59e0b}.auth-hero-foot{display:flex;flex-direction:column;gap:var(--space-2);font-size:13px;color:#9ca3af}.auth-card{width:100%;max-width:420px;padding:var(--space-8);background:#fff;border:1px solid #E5E7EB;border-radius:var(--radius-2xl);box-shadow:0 1px 3px #0000000a,0 20px 40px -20px #0000001a;display:flex;flex-direction:column;gap:var(--space-3)}.auth-brand{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid #F3F4F6;margin-bottom:var(--space-2)}@media (max-width: 880px){.auth-layout{grid-template-columns:1fr}.auth-hero{justify-content:flex-start;gap:var(--space-2);padding:var(--space-5) var(--space-6);min-height:0;border-left:none;border-bottom:1px solid #F3F4F6}.auth-hero-headline{font-size:22px;line-height:1.2;max-width:none;margin:0}.auth-hero-foot{display:none}.auth-form-pane{padding:var(--space-6) var(--space-4)}}.auth-mode-toggle{display:none;text-align:center;margin-top:var(--space-5);font-size:14px;color:#6b7280;font-weight:600}.auth-mode-toggle-visible{display:block}.auth-mode-toggle button{color:var(--color-brand-600);font-weight:700;background:none;border:none;padding:0;cursor:pointer;font-size:inherit}.auth-mode-toggle button:hover{text-decoration:underline}.auth-form-link-row{display:flex;justify-content:flex-end;margin-top:calc(var(--space-2) * -1)}.auth-link-button{padding:0;border:none;background:transparent;color:var(--color-brand-600);font:inherit;font-size:13px;font-weight:var(--font-semibold);cursor:pointer}.auth-link-button:hover{text-decoration:underline}@media (max-width: 520px){.auth-hero{display:none}.auth-form-pane{padding:var(--space-6) var(--space-4);align-items:center;justify-content:center;background:#fff}.auth-card{padding:0;width:100%;max-width:380px;border:none;border-radius:0;box-shadow:none;background:transparent}.auth-card .segmented{display:none}.auth-mode-toggle{display:block}}.auth-brand>span{display:flex;flex-direction:column;line-height:1.2}.auth-brand strong{font-size:15px;font-weight:var(--font-bold);color:#1f2937;letter-spacing:-.01em}.auth-brand small{font-size:12px;color:#9ca3af;letter-spacing:.04em;text-transform:uppercase;font-weight:var(--font-medium)}.auth-card h2{font-size:24px;font-weight:var(--font-bold);color:#1f2937;letter-spacing:-.02em}.auth-card>p:nth-of-type(1){margin-top:var(--space-2);font-size:14px;color:#6b7280}.form-grid{margin-top:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4)}.form-grid label{display:flex;flex-direction:column;gap:var(--space-2);font-size:13px;font-weight:var(--font-semibold);color:#374151}.form-grid input,.form-grid textarea,.form-grid select{padding:0 var(--space-4);border:1px solid #D1D5DB;border-radius:var(--radius-lg);font-size:14px;font-weight:var(--font-normal);font-family:inherit;background:#fff;transition:border-color var(--duration-fast) var(--ease-out)}.form-grid input,.form-grid select{height:44px}.form-grid textarea{padding:var(--space-3) var(--space-4);resize:vertical;min-height:96px}.form-grid input:focus,.form-grid textarea:focus,.form-grid select:focus{outline:none;border-color:var(--color-brand-400);box-shadow:0 0 0 3px #fbbf2426}.form-grid input::placeholder,.form-grid textarea::placeholder{color:#9ca3af}.form-grid .button{margin-top:var(--space-2);height:44px}.inline-form{display:grid;grid-template-columns:minmax(180px,1fr) minmax(140px,.5fr) auto auto;gap:var(--space-3);padding:var(--space-5) var(--space-6);border-bottom:1px solid #F3F4F6}.inline-form input,.inline-form select{height:40px;min-width:0;padding:0 var(--space-3);border:1px solid #D1D5DB;border-radius:var(--radius-lg);background:#fff;font-size:14px}.inline-form input:focus,.inline-form select:focus{outline:none;border-color:var(--color-brand-400);box-shadow:0 0 0 3px #fbbf2426}@media (max-width: 900px){.student-row,.teacher-row,.org-row,.participant-row{grid-template-columns:1fr;row-gap:var(--space-2)}.student-row>*,.teacher-row>*,.org-row>*,.participant-row>*{justify-self:start}.student-row .row-actions,.teacher-row .row-actions,.org-row .row-actions,.participant-row .row-actions,.student-row .row-actions-wide,.teacher-row .row-actions-wide,.org-row .row-actions-wide,.participant-row .row-actions-wide{flex-wrap:wrap}.olympiad-row,.registration-row{grid-template-columns:minmax(0,1fr) auto;row-gap:var(--space-2)}.olympiad-row>.row-meta,.olympiad-row>.muted,.registration-row>.row-meta,.registration-row>.status{grid-column:1 / -1}.olympiad-row>.status{grid-column:1 / -1;justify-self:start}.registration-row>.status{justify-self:start}.row-arrow{display:none}.inline-form{grid-template-columns:1fr}}@media (max-width: 520px){.page-header h2{font-size:22px}.panel-header,.table-row{padding:var(--space-4)}}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.state-banner{display:flex;align-items:flex-start;gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-xl);border:1px solid transparent}.state-banner>svg{flex-shrink:0;margin-top:2px}.state-banner strong{display:block;font-size:15px;font-weight:var(--font-bold);color:#1f2937;margin-bottom:4px}.state-banner p{font-size:14px;color:#4b5563;line-height:1.5;margin:0}.state-banner-amber{background:#fffbeb;border-color:#fde68a;color:#92400e}.state-banner-amber>svg{color:#d97706}.state-banner-red{background:#fef2f2;border-color:#fecaca}.state-banner-red>svg{color:#dc2626}.state-banner-green{background:#f0fdf4;border-color:#bbf7d0}.state-banner-green>svg{color:#16a34a}.notice{padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);border:1px solid transparent;font-size:14px}.notice-error{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.notice-success{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}.notice-warning{background:#fffbeb;border-color:#fde68a;color:#92400e}.skeleton{display:inline-block;background:linear-gradient(90deg,#f3f4f6,#e5e7eb,#f3f4f6);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite;border-radius:var(--radius-sm);vertical-align:middle}.skeleton-sm{border-radius:var(--radius-sm)}.skeleton-md{border-radius:var(--radius-md)}.skeleton-lg{border-radius:var(--radius-lg)}.skeleton-full{border-radius:999px}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion: reduce){.skeleton{animation:none;background:#f3f4f6}}.skeleton-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}.skeleton-row-left{display:flex;flex-direction:column;gap:var(--space-2)}.skeleton-row-left>.skeleton{display:block}.skeleton-stack{display:flex;flex-direction:column;gap:var(--space-2)}.skeleton-stack>.skeleton{display:block}.skeleton-panel{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3)}.button-danger{background:#fef2f2;border:1px solid #FECACA;color:#b91c1c;height:44px;padding:0 var(--space-5);border-radius:var(--radius-lg);font-weight:var(--font-semibold);display:inline-flex;align-items:center;gap:var(--space-2);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out)}.button-danger:hover{background:#fee2e2}.button-danger:disabled{opacity:.5;cursor:not-allowed}.form-actions{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.panel-actions{padding:var(--space-5) var(--space-6);display:flex;flex-wrap:wrap;gap:var(--space-3)}.student-date-field{display:grid;grid-template-columns:28px minmax(76px,.45fr) minmax(132px,1fr) minmax(92px,.55fr) 32px;gap:var(--space-2);align-items:center}.student-date-icon{color:#6b7280;justify-self:center}.form-grid .student-date-field select{min-width:0;width:100%;padding:0 var(--space-3)}.student-date-clear{width:32px;height:32px;border:0;border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center;background:#f3f4f6;color:#6b7280;cursor:pointer}.student-date-clear:hover{background:#fee2e2;color:#b91c1c}@media (max-width: 640px){.student-date-field{grid-template-columns:28px minmax(0,1fr) minmax(0,1fr)}.student-date-field select:nth-of-type(3){grid-column:2 / 4}.student-date-clear{grid-column:1;grid-row:2}}.combobox{position:relative;width:100%}.combobox-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;height:44px;padding:0 var(--space-4);border:1px solid #D1D5DB;border-radius:var(--radius-lg);background:#fff;font-size:14px;color:#1f2937;text-align:left;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out)}.combobox-trigger:hover:not(:disabled){border-color:#9ca3af}.combobox-trigger:focus,.combobox-trigger[aria-expanded=true]{outline:none;border-color:var(--color-brand-400);box-shadow:0 0 0 3px #fbbf2426}.combobox-trigger:disabled{opacity:.6;cursor:not-allowed}.combobox-placeholder{color:#9ca3af}.combobox-value{color:#1f2937}.combobox-chevron{flex-shrink:0;color:#6b7280;margin-left:var(--space-3)}.combobox-popover{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:var(--z-popover, 50);max-height:320px;display:flex;flex-direction:column;background:#fff;border:1px solid #E5E7EB;border-radius:var(--radius-lg);box-shadow:0 12px 32px #0f172a1f;overflow:hidden}.combobox-popover.is-up{top:auto;bottom:calc(100% + 4px);box-shadow:0 -12px 32px #0f172a1f}.combobox-popover.is-fixed{position:fixed;right:auto;z-index:9999}.combobox-popover.is-fixed.is-up{top:auto}.combobox-search{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);border-bottom:1px solid #F3F4F6;color:#6b7280}.combobox-search input{flex:1;border:none;outline:none;font-size:14px;font-family:inherit;color:#1f2937;background:transparent}.combobox-search input::placeholder{color:#9ca3af}.combobox-list{list-style:none;margin:0;padding:var(--space-2) 0;overflow-y:auto;flex:1}.combobox-option{display:flex;align-items:center;gap:var(--space-3);padding:8px var(--space-4);font-size:14px;cursor:pointer;-webkit-user-select:none;user-select:none}.combobox-option-code{display:inline-flex;align-items:center;justify-content:center;min-width:32px;font-size:11px;font-weight:var(--font-semibold);color:#6b7280;background:#f3f4f6;border-radius:var(--radius-sm);padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.combobox-option.is-highlighted{background:#fef3c7}.combobox-option.is-selected{font-weight:var(--font-semibold)}.combobox-option-check{margin-left:auto;color:var(--color-brand-500)}.combobox-empty,.combobox-hint{margin:0;padding:var(--space-3) var(--space-4);font-size:13px}.combobox-hint{border-top:1px solid #F3F4F6;font-size:12px}.datepicker{position:relative;width:100%}.datepicker-value{display:inline-flex;align-items:center;gap:var(--space-2);min-width:0;flex:1}.datepicker-icon{flex-shrink:0;color:#9ca3af}.datepicker-popover{position:absolute;top:calc(100% + 4px);left:0;z-index:var(--z-popover, 50);width:320px;background:#fff;border:1px solid #E5E7EB;border-radius:var(--radius-lg);box-shadow:0 12px 32px #0f172a1f;overflow:hidden}.datepicker-popover.is-up{top:auto;bottom:calc(100% + 4px);box-shadow:0 -12px 32px #0f172a1f}.datepicker-popover.is-fixed{position:fixed;z-index:9999}.datepicker-popover.is-fixed.is-up{top:auto}.datepicker-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-3) var(--space-2);border-bottom:1px solid #F3F4F6}.datepicker-month-label{font-weight:var(--font-semibold);font-size:14px;color:#1f2937;text-transform:capitalize}.datepicker-nav{width:28px;height:28px;border-radius:var(--radius-md);display:inline-flex;align-items:center;justify-content:center;color:#6b7280;background:transparent;border:none;cursor:pointer}.datepicker-nav:hover{background:#f3f4f6;color:#1f2937}.datepicker-weekdays{display:grid;grid-template-columns:repeat(7,1fr);padding:0 var(--space-3);margin-top:var(--space-2);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:#9ca3af}.datepicker-weekdays span{text-align:center;padding:4px 0}.datepicker-grid{display:grid;grid-template-columns:repeat(7,1fr);padding:4px var(--space-2) var(--space-2);gap:2px}.datepicker-day{aspect-ratio:1;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-variant-numeric:tabular-nums;color:#1f2937;background:transparent;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.datepicker-day:hover:not(:disabled){background:#f3f4f6}.datepicker-day.is-other-month{color:#d1d5db}.datepicker-day.is-today:not(.is-picked){border-color:var(--color-brand-300);font-weight:var(--font-semibold)}.datepicker-day.is-picked{background:var(--color-brand-500);color:#fff;font-weight:var(--font-semibold)}.datepicker-day.is-disabled{opacity:.4;cursor:not-allowed}.datepicker-time{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-top:1px solid #F3F4F6}.datepicker-time-label{font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:#9ca3af}.datepicker-time-controls{display:inline-flex;align-items:center;gap:6px}.datepicker-time-controls select{height:32px;padding:0 8px;border:1px solid #D1D5DB;border-radius:var(--radius-md);background:#fff;font-size:14px;font-variant-numeric:tabular-nums;font-family:inherit;color:#1f2937}.datepicker-time-controls select:focus{outline:none;border-color:var(--color-brand-400);box-shadow:0 0 0 3px #fbbf2426}.datepicker-time-sep{font-weight:var(--font-bold);color:#6b7280}.datepicker-footer{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);border-top:1px solid #F3F4F6;background:#fafafa}.datepicker-link{font-size:13px;font-weight:var(--font-medium);color:var(--color-brand-600);background:transparent;border:none;cursor:pointer;padding:4px 8px;border-radius:var(--radius-md)}.datepicker-link:hover{background:#fbbf241f}.datepicker-link.is-muted{color:#6b7280}.datepicker-link.is-muted:hover{background:#f3f4f6;color:#1f2937}.datepicker-confirm{height:32px;padding:0 14px;font-size:13px}.membership-select{height:36px;padding:0 var(--space-3);border:1px solid #D1D5DB;border-radius:var(--radius-md);font-size:14px;font-family:inherit;background:#fff}.membership-select:focus{outline:none;border-color:var(--color-brand-400);box-shadow:0 0 0 3px #fbbf2426}.awards-scroll{overflow-x:auto;overflow-y:hidden}.awards-grid{display:grid;grid-template-columns:120px repeat(3,minmax(0,1fr));gap:0;min-width:620px;border:1px solid #E5E7EB;border-radius:var(--radius-lg);overflow:hidden;background:#fff}.awards-grid-header{background:#f9fafb;font-size:12px;font-weight:var(--font-semibold);color:#6b7280;text-transform:uppercase;letter-spacing:.04em;padding:var(--space-3) var(--space-4);border-bottom:1px solid #E5E7EB}.awards-grid-corner{background:#f3f4f6}.awards-row-label{background:#f9fafb;font-weight:var(--font-semibold);color:#1f2937;font-size:14px;padding:var(--space-4);border-top:1px solid #E5E7EB;border-right:1px solid #E5E7EB;display:flex;align-items:center}.awards-cell{padding:var(--space-3);border-top:1px solid #E5E7EB;border-right:1px solid #E5E7EB;display:flex;flex-direction:column;gap:var(--space-2);min-height:64px}.awards-grid>div:nth-child(4n){border-right:none}.awards-chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.awards-chip{display:inline-flex;align-items:center;gap:4px;max-width:100%;font-size:13px;font-weight:var(--font-semibold);line-height:1.25;padding:4px 8px;border-radius:999px;border:1px solid transparent}.awards-chip-tag{background:#fef3c7;color:#92400e;border-color:#fde68a}.awards-chip-money{background:#dcfce7;color:#166534;border-color:#bbf7d0;white-space:nowrap}.awards-chip-custom{background:#eef2ff;color:#3730a3;border-color:#c7d2fe}.awards-chip-remove{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:none;background:transparent;color:inherit;opacity:.6;cursor:pointer;border-radius:999px}.awards-chip-remove:hover{opacity:1;background:#00000014}.awards-chip-readonly .awards-chip-remove{display:none}.awards-add{align-self:flex-start;height:28px;width:28px;padding:0}.awards-picker{display:flex;flex-direction:column;gap:4px;padding:var(--space-2);background:#fff;border:1px solid #E5E7EB;border-radius:var(--radius-md);box-shadow:0 4px 14px #0f172a0f}.awards-picker-option{text-align:left;background:transparent;border:none;padding:6px 8px;font-size:13px;color:#1f2937;border-radius:var(--radius-sm);cursor:pointer}.awards-picker-option:hover{background:#f3f4f6}.awards-picker-option-money{border-top:1px solid #F3F4F6;margin-top:4px;padding-top:8px;color:#166534;font-weight:var(--font-semibold)}.awards-picker-option-custom{color:#3730a3;font-weight:var(--font-semibold)}.awards-picker-cancel{align-self:flex-end;background:transparent;border:none;font-size:12px;color:#6b7280;cursor:pointer;padding:2px 4px}.awards-money-form{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.awards-money-form input{width:100px;height:32px;padding:0 var(--space-2);border:1px solid #D1D5DB;border-radius:var(--radius-md);font-size:13px}.awards-money-add{height:32px;padding:0 var(--space-3);font-size:13px}.awards-grid-readonly .awards-cell-readonly{min-height:56px}.membership-block{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-5)}.membership-block .panel-header h3{display:flex;align-items:center;gap:var(--space-2)}.membership-period-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-3)}.period-card{display:flex;flex-direction:column;gap:4px;padding:var(--space-4);border:1px solid #E5E7EB;border-radius:var(--radius-xl);cursor:pointer;background:#fff;transition:border-color var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out)}.period-card:hover{border-color:var(--color-brand-300)}.period-card.is-active{border-color:var(--color-brand-500);background:var(--color-brand-50)}.period-card input[type=radio]{display:none}.period-card strong{font-size:16px;font-weight:var(--font-bold);color:#1f2937}.period-card span{font-size:13px;color:#6b7280}.membership-bank-details{padding:var(--space-4);background:#f9fafb;border:1px solid #E5E7EB;border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:var(--space-2)}.membership-bank-details>.muted{font-size:12px;font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.04em;color:#9ca3af}.membership-bank-details p{font-size:14px;color:#1f2937;line-height:1.55;margin:0}.payment-pending{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-4);align-items:flex-start;padding:var(--space-5)}.payment-pending-icon{width:40px;height:40px;border-radius:999px;background:#dcfce7;color:#15803d;display:grid;place-items:center;flex-shrink:0}.payment-pending-body{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.payment-pending-head{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.payment-pending-head h3{font-size:16px;font-weight:var(--font-semibold);color:#1f2937;margin:0}.payment-pending-pill{font-size:12px;font-weight:var(--font-medium);color:#15803d;background:#dcfce7;border:1px solid #BBF7D0;padding:2px 10px;border-radius:999px;white-space:nowrap}.payment-pending p{font-size:14px;color:#6b7280;margin:0;line-height:1.5}.students-row{grid-template-columns:minmax(0,1fr) auto auto auto;gap:var(--space-4)}.students-row .row-status{font-size:13px;color:#6b7280;white-space:nowrap}@media (max-width: 720px){.students-row{grid-template-columns:1fr;row-gap:var(--space-2)}}.oauth-callback{min-height:100vh;display:grid;place-items:center;background:#f8fafc}.spinner{width:32px;height:32px;border:3px solid #FDE68A;border-top-color:#f59e0b;border-radius:50%;animation:spinner-rotate .8s linear infinite}@keyframes spinner-rotate{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:2s}}.license-card .data-list{margin-top:var(--space-3)}.license-number{font-family:JetBrains Mono,SFMono-Regular,Menlo,monospace;font-size:13px;letter-spacing:.02em;color:#0f172a;font-weight:600}.license-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;padding:3px 10px;border-radius:999px;border:1px solid transparent;white-space:nowrap}.license-pill-ok{background:#dcfce7;color:#15803d;border-color:#bbf7d0}.license-pill-bad{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.license-pill-warning{background:var(--color-warning-100);color:var(--color-brand-800);border-color:var(--color-brand-200)}.license-pill-muted{background:#f1f5f9;color:#475569;border-color:#e2e8f0}.admin-filter-grid{display:grid;grid-template-columns:minmax(200px,1fr) 240px;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--color-gray-200);align-items:center}.admin-filter-grid input,.admin-filter-grid select{width:100%;height:44px;padding:0 var(--space-4);border:1px solid var(--color-gray-300);border-radius:var(--radius-lg);background:#fff;color:var(--color-gray-800);font-family:inherit;font-size:14px;font-weight:var(--font-normal);line-height:44px;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.admin-filter-grid input::placeholder{color:var(--color-gray-400)}.admin-filter-grid input:focus,.admin-filter-grid select:focus{outline:none;border-color:var(--color-brand-400);box-shadow:0 0 0 3px #fbbf2426}.search-field{position:relative;min-width:0}.search-field>svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--color-gray-400);pointer-events:none}.search-field input{padding-left:40px}.table-scroll{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th{text-align:left;padding:10px 12px;font-weight:var(--font-semibold);color:var(--color-gray-500);font-size:11px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--color-gray-200)}.admin-table td{padding:10px 12px;border-bottom:1px solid var(--color-gray-100);vertical-align:top}.admin-table-primary{font-weight:var(--font-semibold)}.admin-table-secondary{font-size:12px;color:var(--color-gray-500)}.admin-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-start;justify-content:center;padding:40px var(--space-4);background:#0f172a8c;z-index:var(--z-max);overflow-y:auto}.admin-modal{width:100%;max-width:880px;max-height:calc(100vh - 80px);display:flex;flex-direction:column;overflow:hidden;background:#fff;border-radius:var(--radius-xl);box-shadow:0 20px 60px #0003}.admin-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:20px var(--space-6);border-bottom:1px solid var(--color-gray-200)}.admin-modal-title-wrap{min-width:0}.admin-modal-title{display:flex;align-items:center;gap:var(--space-2);margin:0;font-size:20px;font-weight:var(--font-bold)}.admin-modal-meta{margin-top:var(--space-1);font-size:13px;color:var(--color-gray-500)}.admin-modal-close{padding:6px;color:var(--color-gray-500)}.admin-modal-close:hover{color:var(--color-gray-800)}.admin-modal-body{overflow-y:auto;flex:1}.admin-modal-loading,.admin-modal-empty{padding:60px var(--space-6);display:flex;flex-direction:column;align-items:center;gap:var(--space-3);color:var(--color-gray-500)}.admin-modal-empty-icon{color:var(--color-gray-400)}.admin-modal-error{padding:var(--space-6)}.admin-tabs{display:flex;border-bottom:1px solid var(--color-gray-200);background:#fafafa}.admin-tab{flex:1;padding:var(--space-3) var(--space-4);border-bottom:2px solid transparent;font-size:13px;font-weight:var(--font-semibold);color:var(--color-gray-500);letter-spacing:.01em}.admin-tab.is-active{border-bottom-color:var(--color-warning-500);color:#0f172a}.admin-tab-count{margin-left:6px;color:var(--color-gray-400);font-weight:var(--font-medium)}.admin-modal-content{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-5)}.admin-modal-form{padding:var(--space-6)}.admin-modal-form-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.admin-modal-table-wrap{padding:var(--space-4);overflow-x:auto}.admin-chip-row,.admin-inline-row{display:flex;gap:var(--space-3);flex-wrap:wrap}.admin-inline-row{align-items:center}.admin-spacer-link{margin-left:auto;display:inline-flex;align-items:center;gap:var(--space-1)}.admin-section-title{margin:0 0 var(--space-2);font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--color-gray-500);font-weight:var(--font-semibold)}.admin-data-list{margin:0;display:grid;grid-template-columns:180px 1fr;row-gap:6px;column-gap:var(--space-4)}.admin-data-list>div{display:contents}.admin-data-list dt{color:var(--color-gray-500);font-size:13px}.admin-data-list dd{margin:0;color:#0f172a;font-size:14px}.admin-location-list{margin:0;padding-left:18px;color:var(--color-gray-700)}.admin-modal-footer{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-gray-200);background:#fafafa}.admin-modal-footer-spacer{flex:1}@media (max-width: 720px){.admin-modal-backdrop{align-items:stretch;padding:var(--space-3)}.admin-modal{max-height:calc(100vh - var(--space-6));border-radius:var(--radius-lg)}.admin-modal-header,.admin-modal-content,.admin-modal-form,.admin-modal-error{padding:var(--space-4)}.admin-modal-title{font-size:18px}.admin-filter-grid{grid-template-columns:1fr}.admin-tabs{overflow-x:auto}.admin-tab{min-width:120px}.admin-data-list{grid-template-columns:1fr}.admin-modal-table-wrap{padding:var(--space-3)}.admin-modal-table-wrap .admin-table{min-width:620px}.admin-modal-footer{align-items:stretch;flex-direction:column;padding:var(--space-3)}.admin-modal-footer .button{width:100%;justify-content:center}.admin-modal-footer-spacer{display:none}}.public-license{min-height:100vh;background:#f8fafc;display:flex;flex-direction:column}.public-license-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid #E5E7EB;background:#fff}.public-license-brand{display:inline-flex;align-items:center;gap:var(--space-3);text-decoration:none;color:inherit}.public-license-brand strong{font-size:14px;font-weight:var(--font-bold);color:#1f2937;display:block;letter-spacing:-.01em}.public-license-brand small{font-size:11px;color:#9ca3af;letter-spacing:.06em;text-transform:uppercase;font-weight:var(--font-medium)}.public-license-main{flex:1;display:grid;place-items:center;padding:var(--space-8) var(--space-4)}.public-license-card{width:100%;max-width:520px;background:#fff;border:1px solid #E5E7EB;border-radius:var(--radius-2xl);padding:var(--space-8);display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-3);box-shadow:0 20px 40px -20px #0000001a}.public-license-card-ok>svg{color:#15803d}.public-license-card-warn>svg{color:#b45309}.public-license-card-bad>svg{color:#b91c1c}.public-license-card h1{font-size:22px;font-weight:var(--font-bold);color:#1f2937;margin:0;letter-spacing:-.02em}.public-license-card p{font-size:14px;color:#6b7280;margin:0;line-height:1.55}.public-license-data{margin:var(--space-4) 0 0;width:100%;display:flex;flex-direction:column;gap:var(--space-3);text-align:left}.public-license-data>div{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid #F3F4F6}.public-license-data>div:last-child{border-bottom:none;padding-bottom:0}.public-license-data dt{font-size:12px;color:#9ca3af;letter-spacing:.04em;flex:0 0 auto}.public-license-data dd{margin:0;font-size:13px;color:#1f2937;font-weight:var(--font-medium);text-align:right}.public-license-data .muted{margin-top:2px;color:#9ca3af;font-weight:400;font-size:12px}.public-license-meta{margin-top:var(--space-4);font-size:11px;color:#9ca3af;display:inline-flex;align-items:center;gap:6px}.public-license-foot{padding:var(--space-4) var(--space-6);border-top:1px solid #E5E7EB;background:#fff;font-size:12px;color:#9ca3af;display:flex;justify-content:space-between}.invite-card{display:flex;flex-direction:column;min-width:0}.invite-row{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4) var(--space-6);border-top:1px solid #F3F4F6;min-width:0}.invite-row-disabled .invite-row-title{color:#9ca3af}.invite-row-head{display:flex;flex-direction:column;gap:2px}.invite-row-title{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:var(--font-semibold);color:#1f2937}.invite-row-hint{font-size:12px;color:#6b7280}.invite-row-controls{display:flex;gap:var(--space-2);align-items:stretch;flex-wrap:wrap;min-width:0}.invite-input{flex:1 1 200px;min-width:0;width:100%;font-family:JetBrains Mono,SFMono-Regular,Menlo,monospace;font-size:13px;padding:8px 12px;border:1px solid #E5E7EB;border-radius:var(--radius-md);background:#f9fafb;color:#1f2937;outline:none;text-overflow:ellipsis}.invite-input:focus{border-color:#fbbf24;background:#fff}.invite-landing .invite-role-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;background:#fef3c7;color:#92400e;border:1px solid #FDE68A;font-size:12px;font-weight:var(--font-medium);margin:var(--space-2) 0 var(--space-4)}.tariff-preview{margin-top:var(--space-3);padding:var(--space-4);background:#fffbeb;border:1px solid #FDE68A;border-radius:var(--radius-lg)}.tariff-preview-title{font-size:14px;font-weight:var(--font-bold);color:#92400e;letter-spacing:-.01em}.tariff-preview-tagline{margin-top:4px;font-size:13px;color:#92400e;font-weight:var(--font-medium)}.tariff-preview-perks{margin:var(--space-3) 0 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}.tariff-preview-perks li{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:#1f2937;line-height:1.5}.tariff-preview-perks li>svg{flex-shrink:0;margin-top:2px;color:#15803d}.tier-cards{border:none;padding:0;margin:0}.tier-cards legend{font-size:13px;font-weight:var(--font-semibold);color:#1f2937;margin-bottom:var(--space-3);padding:0}.tier-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:var(--space-3)}.tier-card{display:flex;flex-direction:column;text-align:left;padding:var(--space-4);background:#fff;border:2px solid #E5E7EB;border-radius:var(--radius-lg);transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.tier-card-active{border-color:var(--color-brand-500);background:#fffbeb}.tier-card-cta{margin-top:var(--space-4);width:100%;height:38px;border-radius:var(--radius-md);background:#fff;color:#92400e;border:1.5px solid var(--color-brand-300);font-weight:var(--font-semibold);display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.tier-card-cta:hover{background:#fef3c7}.tier-card-cta-active{background:var(--color-brand-500);color:#fff;border-color:var(--color-brand-500);cursor:default}.tier-card-cta-active:hover{background:var(--color-brand-500)}.tier-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:4px}.tier-card-head strong{font-size:16px;font-weight:var(--font-bold);color:#0f172a;letter-spacing:-.01em}.tier-card-head>svg{color:var(--color-brand-600)}.tier-card-tagline{font-size:12px;color:#6b7280;line-height:1.5;margin:0 0 var(--space-3)}.tier-card-perks{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px;flex:1}.tier-card-perks li{display:flex;align-items:flex-start;gap:6px;font-size:12.5px;color:#1f2937;line-height:1.45}.tier-card-perks li>svg{flex-shrink:0;margin-top:2px;color:#15803d}.bulk-participants-modal{max-width:640px}.bulk-participants-body{padding:var(--space-5) var(--space-6);display:flex;flex-direction:column;gap:var(--space-4);overflow-y:auto;flex:1}.bulk-participants-controls{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.bulk-participants-controls label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:var(--font-semibold);color:var(--color-gray-600);text-transform:uppercase;letter-spacing:.04em}.bulk-participants-controls select{font-size:14px;padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--color-gray-300);background:#fff}.bulk-participants-search{display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--color-gray-300);border-radius:var(--radius-md);background:#fff}.bulk-participants-search>svg{color:var(--color-gray-400);flex-shrink:0}.bulk-participants-search input{flex:1;border:0;outline:none;padding:10px 0;background:transparent;font-size:14px}.bulk-participants-toolbar{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--color-gray-600)}.bulk-participants-checkbox{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-weight:var(--font-medium);color:var(--color-gray-700)}.bulk-participants-modal input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:18px;height:18px;flex-shrink:0;border:1.5px solid var(--color-gray-300);border-radius:5px;background:#fff;cursor:pointer;position:relative;transition:border-color .12s ease,background .12s ease}.bulk-participants-modal input[type=checkbox]:hover{border-color:var(--color-warning-400)}.bulk-participants-modal input[type=checkbox]:checked{background:var(--color-warning-500);border-color:var(--color-warning-500)}.bulk-participants-modal input[type=checkbox]:checked:after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid #FFFFFF;border-width:0 2px 2px 0;transform:rotate(45deg)}.bulk-participants-modal input[type=checkbox]:focus-visible{outline:2px solid var(--color-warning-300);outline-offset:2px}.bulk-participants-list{list-style:none;margin:0;display:flex;flex-direction:column;gap:4px;max-height:360px;overflow-y:auto;border:1px solid var(--color-gray-200);border-radius:var(--radius-md);padding:6px;background:#fafafa}.bulk-participants-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-sm);cursor:pointer;background:#fff;border:1px solid transparent;transition:border-color .12s ease,box-shadow .12s ease}.bulk-participants-row:hover{border-color:var(--color-warning-300)}.bulk-participants-row>div{flex:1;min-width:0}.bulk-participants-row .row-title{font-size:14px;font-weight:var(--font-semibold);color:#0f172a}.bulk-participants-row .row-subtitle{font-size:12.5px;color:var(--color-gray-500)}.bulk-participants-empty{padding:24px;border-radius:var(--radius-md);background:#fafafa;text-align:center;color:var(--color-gray-500);font-size:13px}.bulk-participants-footer{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-gray-200)}.participants-list{display:flex;flex-direction:column;gap:var(--space-2);padding:0 var(--space-6) var(--space-5)}.registration-participant-row{display:flex;align-items:center;gap:var(--space-3);padding:12px 16px;border:1px solid var(--color-gray-200);border-radius:var(--radius-md);background:#fff}.registration-participant-row>.participant-info{flex:1;min-width:0}.registration-participant-row .row-title{margin-bottom:2px}.registration-participant-row .row-subtitle{font-size:13px;color:var(--color-gray-500)}.participant-remove{padding:6px 8px;color:var(--color-error-600, #B91C1C);flex-shrink:0}.participant-remove:hover{background:#b91c1c14}.participants-empty{margin:0 var(--space-6) var(--space-5);padding:24px;border:1px dashed var(--color-gray-300);border-radius:var(--radius-md);text-align:center;color:var(--color-gray-500);font-size:14px}@media (max-width: 640px){.bulk-participants-controls{grid-template-columns:1fr}.bulk-participants-modal{max-width:100%}}
