@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;600;700&family=IBM+Plex+Sans+Thai:wght@400;600;700&family=IBM+Plex+Mono:wght@400;600&display=swap";:root{--font-sans: "IBM Plex Sans", "IBM Plex Sans Thai", system-ui, -apple-system, sans-serif;--font-thai: "IBM Plex Sans Thai", "IBM Plex Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--gradient-stop-1: #e040fb;--gradient-stop-2: #7c3aed;--gradient-stop-3: #3b82f6;--gradient-brand: linear-gradient(135deg, #e040fb, #7c3aed 50%, #3b82f6);--gradient-soft: linear-gradient(135deg, rgba(224,64,251,.08), rgba(124,58,237,.08) 50%, rgba(59,130,246,.08));--color-bg: #fdfbff;--color-surface: #ffffff;--color-surface-2: #f4f0ff;--color-border: #e5e7eb;--color-border-2: #ddd6fe;--color-dark: #1a1a2e;--color-text: #1a1a2e;--color-text-2: #374151;--color-muted: #6b7280;--color-muted-2: #9ca3af;--color-success: #10b981;--color-warning: #f59e0b;--color-error: #ef4444;--color-info: #3b82f6;--color-success-soft: rgba(16,185,129,.15);--color-warning-soft: rgba(245,158,11,.15);--color-error-soft: rgba(239,68,68,.15);--color-info-soft: rgba(59,130,246,.15);--color-brand-magenta: #e040fb;--color-brand-violet: #7c3aed;--color-brand-blue: #3b82f6;--code-bg: #1a1a2e;--code-text: #e2e8f0;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-pill: 9999px;--shadow-sm: 0 1px 3px rgba(109, 40, 217, .06);--shadow-md: 0 4px 12px rgba(109, 40, 217, .1);--shadow-lg: 0 8px 24px rgba(109, 40, 217, .14);--shadow-xl: 0 16px 48px rgba(109, 40, 217, .18);--content-narrow: 520px;--content-default: 760px;--content-wide: 1120px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--leading-body: 1.7;--leading-heading: 1.2;--leading-mono: 1.5;--tracking-label: .1em;--tracking-button: .05em;--tracking-heading: -.01em;--tracking-normal: 0;--weight-regular: 400;--weight-semibold: 600;--weight-bold: 700}.skrc-gradient-text{background:var(--gradient-brand);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}.skrc-eyebrow{font-family:var(--font-mono);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-label);font-size:var(--text-xs)}.skrc-gradient-fill{background:var(--gradient-brand)}.skrc-accent-bar{height:4px;background:var(--gradient-brand);border-radius:var(--radius-pill)}#print-badge-area .badge-accent-bar{height:6px;background:var(--gradient-brand)}#print-badge-area .badge-content{padding:var(--space-5);display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-2)}#print-badge-area .badge-eyebrow{margin-bottom:var(--space-2)}#print-badge-area .badge-qr{width:220px;height:220px;margin:var(--space-2) 0}#print-badge-area .badge-competitor-id{font-family:var(--font-mono);background:var(--code-bg);color:var(--code-text);font-size:var(--text-xl);font-weight:var(--weight-bold);letter-spacing:.05em;padding:10px 18px;border-radius:var(--radius-sm)}#print-badge-area .badge-name{font-family:var(--font-thai);font-weight:var(--weight-bold);font-size:var(--text-lg);color:var(--color-text);margin-top:var(--space-2)}#print-badge-area .badge-category{font-size:var(--text-sm);color:var(--color-muted)}:root{color-scheme:light;font-synthesis:none;--paper: #faf9f6;--ink: var(--color-dark);--accent: var(--color-brand-violet);--hairline: #e7e4de;--hairline-2: #d8d4cb;--surface: #ffffff;--sunk: #f3f1ec}*{box-sizing:border-box}body{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit}::selection{background:var(--accent);color:#fff}:lang(th),.th{font-family:var(--font-thai)}h1,h2,h3,h4{line-height:var(--leading-heading);letter-spacing:var(--tracking-heading);margin:0;color:var(--ink)}a{color:var(--ink);font-weight:var(--weight-semibold);text-decoration:none;box-shadow:inset 0 -1px 0 var(--accent);transition:box-shadow .15s ease,color .15s ease}a:hover{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}.page{position:relative;width:100%;max-width:var(--content-narrow);margin:0 auto;padding:var(--space-12) var(--space-5) var(--space-16);min-height:100vh}.page:before{content:"";position:fixed;inset:0 0 auto 0;height:3px;background:var(--gradient-brand);z-index:10}.brand-header{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:var(--space-4);margin-bottom:var(--space-10);padding-bottom:var(--space-5);border-bottom:1px solid var(--hairline)}.brand-emblem{width:56px;height:56px;object-fit:contain;flex:0 0 auto}.brand-home{display:inline-flex;box-shadow:none;border-radius:var(--radius-sm);transition:transform .12s ease}.brand-home:hover{box-shadow:none;transform:translateY(-1px)}.brand-home:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.brand-copy{min-width:0}.brand-copy .skrc-eyebrow{display:block;margin-bottom:var(--space-2);letter-spacing:.24em}.brand-header h1{font-family:var(--font-thai);font-size:clamp(var(--text-2xl),4.5vw,var(--text-4xl));font-weight:var(--weight-bold);letter-spacing:-.02em;color:var(--ink)}.brand-title-en{display:inline-block;margin-left:var(--space-3);color:var(--color-muted);font-family:var(--font-mono);font-size:.5em;font-weight:var(--weight-regular);letter-spacing:0;vertical-align:middle}.brand-description{margin:var(--space-3) 0 0;max-width:56ch;color:var(--color-text-2);font-size:var(--text-base)}.section-heading{margin-bottom:var(--space-6)}.section-heading h2,.card h2{font-size:var(--text-2xl);letter-spacing:-.015em}.section-kicker{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}.section-kicker:before{content:"";width:18px;height:2px;background:var(--accent);flex:0 0 auto}.nav-bar{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;align-items:stretch;justify-content:space-between;gap:var(--space-3) var(--space-4);margin:0 0 var(--space-6);padding-top:var(--space-3);border-bottom:1px solid var(--hairline);background:var(--paper)}.nav-main{display:flex;min-width:0;flex:1 1 auto;align-items:center;gap:var(--space-4)}.nav-role{flex:0 0 auto;padding:3px 7px;border:1px solid var(--hairline-2);color:var(--color-muted);font-family:var(--font-mono);font-size:.65rem;font-weight:var(--weight-semibold);letter-spacing:.12em}.nav-role-admin{border-color:var(--accent);color:var(--accent)}.nav-role-committee{border-color:var(--color-brand-blue);color:var(--color-brand-blue)}.nav-role-competitor{border-color:var(--color-success);color:#047857}.nav-links{display:flex;flex-wrap:wrap;align-items:stretch;gap:var(--space-1) var(--space-4)}.nav-link{display:inline-flex;align-items:center;padding:var(--space-2) var(--space-1) var(--space-3);margin-bottom:-1px;box-shadow:none;border-bottom:2px solid transparent;color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}.nav-link:hover{color:var(--ink);box-shadow:none;border-bottom-color:var(--hairline-2)}.nav-link.active{color:var(--ink);border-bottom-color:var(--accent)}.nav-actions{display:flex;align-items:center;gap:var(--space-3);align-self:center;margin-bottom:var(--space-2)}.nav-signout{align-self:center;width:auto;padding:8px 16px}.lang-toggle{display:inline-flex;flex:0 0 auto;border:1px solid var(--hairline-2);border-radius:var(--radius-sm);overflow:hidden}.lang-toggle button{width:auto;padding:6px 11px;border:0;border-radius:0;background:transparent;color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase;line-height:1.4}.lang-toggle button+button{border-left:1px solid var(--hairline-2)}.lang-toggle button[aria-pressed=true]{background:var(--ink);color:#fff}.lang-toggle button:hover:not([aria-pressed=true]){background:var(--sunk);color:var(--ink);box-shadow:none}.field{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-5)}.field label{font-family:var(--font-mono);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.12em;font-size:var(--text-xs);color:var(--color-text-2)}.field small{color:var(--color-error);font-size:var(--text-sm)}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.registration-page{max-width:var(--content-default)}.form-section{padding:0 0 var(--space-8);margin-bottom:var(--space-8);border-bottom:1px solid var(--hairline)}.form-section>h2{margin-bottom:var(--space-5)}.form-section:last-of-type{border-bottom:0}.consent-section{padding:var(--space-5);border:1px solid var(--hairline-2);border-left:3px solid var(--accent);background:var(--sunk)}.consent-copy{color:var(--color-text-2);font-size:var(--text-sm)}.consent-copy p{margin:0 0 var(--space-3)}.consent-check{display:flex;align-items:center;gap:var(--space-4);min-height:56px;padding:var(--space-4);border:1px solid var(--hairline-2);background:var(--surface);cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.consent-check:hover{border-color:var(--accent)}.consent-check input{width:26px;height:26px;flex:0 0 auto;accent-color:var(--accent);cursor:pointer}.consent-check:has(input:checked){border-color:var(--accent);background:#7c3aed0f;box-shadow:inset 3px 0 0 var(--accent)}.consent-instruction{margin:0 0 var(--space-3);color:var(--color-text-2);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase}.student-review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);margin:var(--space-4) 0}.student-review-grid>div{display:grid;gap:var(--space-1);padding:var(--space-3);border:1px solid var(--hairline);background:var(--sunk)}.consent-proof{font-size:var(--text-xs);color:var(--color-muted)}.privacy-page{max-width:940px}.privacy-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3) var(--space-5);margin-bottom:var(--space-5);color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-sm)}.privacy-document{padding:clamp(var(--space-6),5vw,var(--space-12))}.privacy-document section{padding-bottom:var(--space-6);margin-bottom:var(--space-6);border-bottom:1px solid var(--hairline)}.privacy-document section:last-child{padding-bottom:0;margin-bottom:0;border-bottom:0}.privacy-document h2{font-size:var(--text-xl);color:var(--ink);margin-bottom:var(--space-3)}.privacy-document p,.privacy-document li{color:var(--color-text-2)}.privacy-document p[lang=th]{margin-bottom:var(--space-2)}.privacy-document p[lang=th]+p{margin-top:0;color:var(--color-muted)}.privacy-document li{margin-bottom:var(--space-2)}.privacy-contact{margin-top:var(--space-3);padding:var(--space-4);border-left:3px solid var(--accent);background:var(--sunk);font-size:var(--text-sm)}.privacy-acceptance{position:sticky;bottom:var(--space-3);z-index:2;padding:var(--space-6);border:1px solid var(--ink);box-shadow:var(--shadow-lg)}.privacy-acceptance .consent-check{margin-bottom:var(--space-3)}.privacy-footnote{color:var(--color-muted);font-size:var(--text-xs)}.consent-summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.consent-summary button{flex:0 0 auto}input,select,textarea{width:100%;background:var(--surface);border:1px solid var(--hairline-2);border-radius:0;padding:11px 14px;font-family:var(--font-sans);font-size:var(--text-base);color:var(--ink);outline:none;transition:border-color .15s ease,box-shadow .15s ease}input.technical,textarea.technical{font-family:var(--font-mono)}textarea{min-height:104px;resize:vertical}input::placeholder,textarea::placeholder{color:var(--color-muted-2)}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}button{cursor:pointer;font-family:var(--font-mono);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.08em;font-size:var(--text-xs);padding:12px 22px;border-radius:var(--radius-sm);border:1px solid var(--ink);background:var(--ink);color:#fff;transition:background .15s ease,color .15s ease,box-shadow .15s ease,transform .05s ease;line-height:1}.button-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-top:var(--space-5)}.button-row>*{margin:0}button:hover:not(:disabled){background:var(--accent);border-color:var(--accent);box-shadow:0 2px 0 var(--ink)}button:active:not(:disabled){transform:translateY(1px);box-shadow:none}button:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}button.secondary{background:transparent;border:1px solid var(--hairline-2);color:var(--ink)}button.secondary:hover:not(:disabled){background:transparent;border-color:var(--accent);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}button.danger{background:transparent;border-color:var(--color-error);color:var(--color-error)}button.danger:hover:not(:disabled){background:var(--color-error);border-color:var(--color-error);color:#fff;box-shadow:0 2px #7f1d1d}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.consent-check:focus-within{outline:2px solid var(--accent);outline-offset:2px}.error-banner,.notice-banner,.warning-banner{padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);font-size:var(--text-sm);border:1px solid;border-left-width:3px}.error-banner{background:var(--color-error-soft);color:#b91c1c;border-color:var(--color-error)}.notice-banner{background:var(--color-success-soft);color:#047857;border-color:var(--color-success)}.warning-banner{background:var(--color-warning-soft);color:#92400e;border-color:var(--color-warning)}.card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-sm);padding:var(--space-6);margin-bottom:var(--space-4)}.card h2,.card h3{margin-bottom:var(--space-3)}.card>:last-child{margin-bottom:0}.auth-page{max-width:var(--content-narrow)}.auth-card{padding:clamp(var(--space-6),5vw,var(--space-8))}.auth-switch{margin-top:var(--space-4)}.auth-card .button-row button{flex:1 1 auto}.lane-card{position:relative}.lane-card[data-state=RUNNING]{border-color:var(--color-success);box-shadow:inset 3px 0 0 var(--color-success)}.lane-card[data-state=ARMED]{border-color:var(--color-warning);box-shadow:inset 3px 0 0 var(--color-warning)}.lane-card h2{margin-top:var(--space-3)}.admin-config-grid{margin-bottom:var(--space-4)}.admin-config-grid form{margin-top:var(--space-5)}.rule-list{display:grid;gap:0;margin-top:var(--space-5);border-top:1px solid var(--hairline)}.rule-row{display:flex;gap:var(--space-3);justify-content:space-between;align-items:center;padding:var(--space-3) 0;border-bottom:1px solid var(--hairline)}.rule-row button{flex:0 0 auto}.lookup-row{display:grid;grid-template-columns:minmax(220px,1fr) auto;align-items:end;gap:var(--space-3)}.lookup-row .field{margin-bottom:0}.competitor-result>h3{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--hairline);font-size:var(--text-lg)}.attempt-row{padding:var(--space-4);margin-top:var(--space-3);border:1px solid var(--hairline);background:var(--sunk)}.competitor-select{display:block;width:100%;text-align:left;text-transform:none;letter-spacing:normal;font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--weight-regular);line-height:var(--leading-body);color:var(--ink);background:var(--surface);border:1px solid var(--hairline);padding:var(--space-4) var(--space-5)}.competitor-select:hover:not(:disabled){background:var(--surface);border-color:var(--accent);color:var(--ink);box-shadow:inset 3px 0 0 var(--accent)}.competitor-select[aria-pressed=true]{border-color:var(--ink);box-shadow:inset 3px 0 0 var(--accent)}.loading-screen{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:var(--space-4);color:var(--color-muted);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:var(--text-xs)}.loading-mark{width:48px;height:3px;background:var(--gradient-brand);animation:loading-pulse 1s ease-in-out infinite alternate}@keyframes loading-pulse{to{width:96px;opacity:.5}}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;min-height:0;z-index:50;background:#faf9f6e6}.status-badge{display:inline-flex;align-items:center;width:fit-content;padding:3px 8px;border:1px solid currentColor;border-radius:var(--radius-sm);background:transparent;color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.08em;text-transform:uppercase}.status-badge.success{color:#047857;background:var(--color-success-soft);border-color:transparent}.status-badge.warning{color:#92400e;background:var(--color-warning-soft);border-color:transparent}.status-badge.error{color:#b91c1c;background:var(--color-error-soft);border-color:transparent}.technical{font-family:var(--font-mono)}.toolbar{display:grid;grid-template-columns:minmax(220px,2fr) repeat(2,minmax(150px,1fr));gap:var(--space-4);align-items:end}.admin-search{grid-template-columns:minmax(220px,2fr) repeat(2,minmax(150px,1fr)) auto}.admin-search .field{margin-bottom:0}.admin-search>button{align-self:end}.split-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.8fr);gap:var(--space-5);align-items:start}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-4)}.card-grid>.card{margin-bottom:0}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:0;border:1px solid var(--hairline);margin:var(--space-4) 0}.metric{padding:var(--space-4);border-right:1px solid var(--hairline);background:var(--surface)}.metric-grid>.metric:last-child{border-right:0}.metric-label{display:block;color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em}.metric-value{display:block;margin-top:var(--space-2);font-family:var(--font-mono);font-size:var(--text-2xl);font-weight:var(--weight-semibold);letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}.portal-page,.page-mid{max-width:var(--content-default)}.page-wide{max-width:var(--content-wide)}.competitor-number{display:block;margin:var(--space-2) 0 var(--space-1);font-family:var(--font-mono);font-size:var(--text-4xl);font-weight:var(--weight-bold);letter-spacing:-.02em;line-height:1.05;color:var(--ink);font-variant-numeric:tabular-nums}.portal-page .metric-label{min-height:2.4em}.table-wrap{overflow-x:auto;margin-inline:calc(var(--space-2) * -1);padding-inline:var(--space-2)}table{width:100%;border-collapse:collapse}th,td{padding:var(--space-3);border-bottom:1px solid var(--hairline);text-align:left}td{font-variant-numeric:tabular-nums}th{color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;border-bottom:1px solid var(--ink)}tbody tr{transition:background .1s ease}tbody tr:hover{background:var(--sunk)}.rank-mark{display:inline-grid;place-items:center;width:30px;height:30px;border:1px solid var(--hairline-2);background:var(--surface);font-family:var(--font-mono);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums}.rank-1{border-color:var(--color-warning);color:#92400e;box-shadow:inset 0 0 0 1px var(--color-warning)}.rank-2{border-color:#94a3b8;color:#475569}.rank-3{border-color:#d97706;color:#9a3412}.dq-list{margin-top:var(--space-6);padding:var(--space-4);border:1px solid var(--color-error);border-left-width:3px;background:var(--color-error-soft)}.dq-list h3{margin-bottom:var(--space-2)}.empty-state{padding:var(--space-8);border:1px dashed var(--hairline-2);color:var(--color-muted);text-align:center;font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:.02em}#committee-scan-camera-reader{overflow:hidden;border:1px solid var(--hairline-2);background:var(--ink)}.timeline{list-style:none;padding:0;margin:0;font-family:var(--font-mono);font-size:var(--text-sm)}.timeline li{padding:var(--space-2) 0 var(--space-2) 1.75rem;position:relative;border-left:1px solid var(--hairline-2);margin-left:var(--space-2);color:var(--color-muted)}.timeline li:before{content:"";position:absolute;left:-5px;top:1.05rem;width:9px;height:9px;border-radius:50%;background:var(--paper);border:1px solid var(--hairline-2)}.timeline li.done{border-left-color:var(--accent);color:var(--ink)}.timeline li.done:before{background:var(--accent);border-color:var(--accent)}@media (max-width: 720px){.page{padding-top:var(--space-8);padding-inline:var(--space-4)}.brand-emblem{width:44px;height:44px}.brand-title-en{display:block;margin:var(--space-1) 0 0}.toolbar,.admin-search,.split-layout,.lookup-row,.field-grid,.student-review-grid{grid-template-columns:1fr}button{width:100%}.button-row>button{width:100%}.card{padding:var(--space-5)}.metric-grid{grid-template-columns:1fr 1fr}.metric{border-bottom:1px solid var(--hairline)}.privacy-acceptance{position:static}.consent-summary{align-items:stretch;flex-direction:column}.nav-main{align-items:flex-start;flex-direction:column;gap:var(--space-2)}.nav-links{width:100%;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}#print-badge-area{display:none}@media print{@page{size:105mm 148mm;margin:8mm}#admin-app-shell>*:not(#print-badge-area){display:none!important}#print-badge-area{display:block}}
