@font-face{font-family:Material Symbols Outlined;font-style:normal;font-weight:100 700;font-display:block;src:url("./media/material-symbols-outlined-KRC73COF.woff2") format("woff2")}.material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"liga"}:root{color-scheme:light dark}html{--mat-sys-background: light-dark(#fff8f3, #17130b);--mat-sys-error: light-dark(#b12a2e, #ffb3ae);--mat-sys-error-container: light-dark(#ffdad7, #8f0d19);--mat-sys-inverse-on-surface: light-dark(#faefe1, #353026);--mat-sys-inverse-primary: light-dark(#f8bd3d, #7b5800);--mat-sys-inverse-surface: light-dark(#353026, #ece1d3);--mat-sys-on-background: light-dark(#201b12, #ece1d3);--mat-sys-on-error: light-dark(#ffffff, #68000c);--mat-sys-on-error-container: light-dark(#8f0d19, #ffdad7);--mat-sys-on-primary: light-dark(#ffffff, #412d00);--mat-sys-on-primary-container: light-dark(#5d4200, #ffdea5);--mat-sys-on-primary-fixed: light-dark(#271900, #271900);--mat-sys-on-primary-fixed-variant: light-dark(#5d4200, #5d4200);--mat-sys-on-secondary: light-dark(#ffffff, #412d01);--mat-sys-on-secondary-container: light-dark(#594315, #ffdea5);--mat-sys-on-secondary-fixed: light-dark(#271900, #271900);--mat-sys-on-secondary-fixed-variant: light-dark(#594315, #594315);--mat-sys-on-surface: light-dark(#201b12, #ece1d3);--mat-sys-on-surface-variant: light-dark(#4f4534, #f0e0c9);--mat-sys-on-tertiary: light-dark(#ffffff, #0c305c);--mat-sys-on-tertiary-container: light-dark(#284774, #d5e3ff);--mat-sys-on-tertiary-fixed: light-dark(#001b3c, #001b3c);--mat-sys-on-tertiary-fixed-variant: light-dark(#284774, #284774);--mat-sys-outline: light-dark(#827562, #9c8f7b);--mat-sys-outline-variant: light-dark(#d3c4ae, #4f4534);--mat-sys-primary: light-dark(#7b5800, #f8bd3d);--mat-sys-primary-container: light-dark(#ffdea5, #5d4200);--mat-sys-primary-fixed: light-dark(#ffdea5, #ffdea5);--mat-sys-primary-fixed-dim: light-dark(#f8bd3d, #f8bd3d);--mat-sys-scrim: light-dark(#000000, #000000);--mat-sys-secondary: light-dark(#735b2b, #e3c288);--mat-sys-secondary-container: light-dark(#ffdea5, #594315);--mat-sys-secondary-fixed: light-dark(#ffdea5, #ffdea5);--mat-sys-secondary-fixed-dim: light-dark(#e3c288, #e3c288);--mat-sys-shadow: light-dark(#000000, #000000);--mat-sys-surface: light-dark(#fff8f3, #17130b);--mat-sys-surface-bright: light-dark(#fff8f3, #3e382f);--mat-sys-surface-container: light-dark(#f8ecde, #241f16);--mat-sys-surface-container-high: light-dark(#f2e7d8, #2f2920);--mat-sys-surface-container-highest: light-dark(#ece1d3, #3a342a);--mat-sys-surface-container-low: light-dark(#fdf2e4, #201b12);--mat-sys-surface-container-lowest: light-dark(#ffffff, #120e06);--mat-sys-surface-dim: light-dark(#e3d8cb, #17130b);--mat-sys-surface-tint: light-dark(#7b5800, #f8bd3d);--mat-sys-surface-variant: light-dark(#f0e0c9, #4f4534);--mat-sys-tertiary: light-dark(#415f8d, #aac8fc);--mat-sys-tertiary-container: light-dark(#d5e3ff, #284774);--mat-sys-tertiary-fixed: light-dark(#d5e3ff, #d5e3ff);--mat-sys-tertiary-fixed-dim: light-dark(#aac8fc, #aac8fc);--mat-sys-neutral-variant20: #382f1f;--mat-sys-neutral10: #201b12;--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-body-large: 400 1rem / 1.5rem -apple-system, BlinkMacSystemFont, "Segoe UI", "Leelawadee UI", Roboto, "Noto Sans Thai", sans-serif;--mat-sys-body-large-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Leelawadee UI", Roboto, "Noto Sans Thai", sans-serif;--mat-sys-body-large-line-height: 1.5rem;--mat-sys-body-large-size: 1rem;--mat-sys-body-large-tracking: .031rem;--mat-sys-body-large-weight: 400;--mat-sys-body-medium: 400 .875rem / 1.25rem -apple-system, BlinkMacSystemFont, "Segoe UI", "Leelawadee UI", Roboto, "Noto Sans Thai", sans-serif;--mat-sys-body-medium-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Leelawadee UI", Roboto, "Noto Sans Thai", sans-serif;--mat-sys-body-medium-line-height: 1.25rem;--mat-sys-body-medium-size: .875rem;--mat-sys-body-medium-tracking: .016rem;--mat-sys-body-medium-weight: 400;--mat-sys-body-small: 400 .75rem / 1rem -apple-system, BlinkMacSystemFont, "Segoe UI", "Leelawadee UI", Roboto, "Noto Sans Thai", sans-serif;--mat-sys-body-small-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Leelawadee UI", Roboto, "Noto Sans Thai", sans-serif;--mat-sys-body-small-line-height: 1rem;--mat-sys-body-small-size: .75rem;--mat-sys-body-small-tracking: .025rem;--mat-sys-body-small-weight: 400;--mat-sys-display-large: 400 3.562rem / 4rem ui-monospace, "Cascadia Code", "Segoe UI Mono", Consolas, "Liberation Mono", monospace;--mat-sys-display-large-font: ui-monospace, "Cascadia Code", "Segoe UI Mono", Consolas, "Liberation Mono", monospace;--mat-sys-display-large-line-height: 4rem;--mat-sys-display-large-size: 3.562rem;--mat-sys-display-large-tracking: -.016rem;--mat-sys-display-large-weight: 400;--mat-sys-display-medium: 400 2.812rem / 3.25rem ui-monospace, "Cascadia Code", "Segoe UI Mono", Consolas, "Liberation Mono", monospace;--mat-sys-display-medium-font: ui-monospace, "Cascadia Code", "Segoe UI Mono", Consolas, "Liberation Mono", monospace;--mat-sys-display-medium-line-height: 3.25rem;--mat-sys-display-medium-size: 2.812rem;--mat-sys-display-medium-tracking: 0;--mat-sys-display-medium-weight: 400;--mat-sys-display-small: 400 2.25rem / 2.75rem ui-monospace, "Cascadia Code", "Segoe UI Mono", Consolas, "Liberation Mono", monospace;--mat-sys-display-small-font: ui-monospace, "Cascadia Code", "Segoe UI Mono", Consolas, "Liberation Mono", monospace;--mat-sys-display-small-line-height: 2.75rem;--mat-sys-display-small-size: 2.25rem;--mat-sys-display-small-tracking: 0;--mat-sys-display-small-weight: 400;--mat-sys-headline-large: 400 2rem / 2.5rem ui-monospace, "Cascadia Code", "Segoe UI Mono", Consolas, "Liberation Mono", monospace;--mat-sys-headline-large-font: ui-monospace, "Cascadia Code", "Segoe UI Mono", Consolas, "Liberation Mono", monospace;--mat-sys-headline-large-line-height: 2.5rem;--mat-sys-headline-large-size: 2rem;--mat-sys-headline-large-tracking: 0;--mat-sys-headline-large-weight: 400;--mat-sys-headline-medium: 400 1.75rem / 2.25rem ui-monospace, "Cascadia Code", "Segoe UI Mono", Consolas, "Liberation Mono", monospace;--mat-sys-headline-medium-font: ui-monospace, "Cascadia Code", "Segoe UI Mono", Consolas, "Liberation Mono", monospace;--mat-sys-headline-medium-line-height: 2.25rem;--mat-sys-headline-medium-size: 1.75rem;--mat-sys-headline-medium-tracking: 0;--mat-sys-headline-medium-weight: 400;--mat-sys-headline-small: 400 1.5rem / 2rem ui-monospace, "Cascadia Code", "Segoe UI Mono", Consolas, "Liberation Mono", monospace;--mat-sys-headline-small-font: ui-monospace, "Cascadia Code", "Segoe UI Mono", Consolas, "Liberation Mono", monospace;--mat-sys-headline-small-line-height: 2rem;--mat-sys-headline-small-size: 1.5rem;--mat-sys-headline-small-tracking: 0;--mat-sys-headline-small-weight: 400;--mat-sys-label-large: 600 .875rem / 1.25rem -apple-system, BlinkMacSystemFont, "Segoe UI", "Leelawadee UI", Roboto, "Noto Sans Thai", sans-serif;--mat-sys-label-large-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Leelawadee UI", Roboto, "Noto Sans Thai", sans-serif;--mat-sys-label-large-line-height: 1.25rem;--mat-sys-label-large-size: .875rem;--mat-sys-label-large-tracking: .006rem;--mat-sys-label-large-weight: 600;--mat-sys-label-large-weight-prominent: 700;--mat-sys-label-medium: 600 .75rem / 1rem -apple-system, BlinkMacSystemFont, "Segoe UI", "Leelawadee UI", Roboto, "Noto Sans Thai", sans-serif;--mat-sys-label-medium-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Leelawadee UI", Roboto, "Noto Sans Thai", sans-serif;--mat-sys-label-medium-line-height: 1rem;--mat-sys-label-medium-size: .75rem;--mat-sys-label-medium-tracking: .031rem;--mat-sys-label-medium-weight: 600;--mat-sys-label-medium-weight-prominent: 700;--mat-sys-label-small: 600 .688rem / 1rem -apple-system, BlinkMacSystemFont, "Segoe UI", "Leelawadee UI", Roboto, "Noto Sans Thai", sans-serif;--mat-sys-label-small-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Leelawadee UI", Roboto, "Noto Sans Thai", sans-serif;--mat-sys-label-small-line-height: 1rem;--mat-sys-label-small-size: .688rem;--mat-sys-label-small-tracking: .031rem;--mat-sys-label-small-weight: 600;--mat-sys-title-large: 400 1.375rem / 1.75rem ui-monospace, "Cascadia Code", "Segoe UI Mono", Consolas, "Liberation Mono", monospace;--mat-sys-title-large-font: ui-monospace, "Cascadia Code", "Segoe UI Mono", Consolas, "Liberation Mono", monospace;--mat-sys-title-large-line-height: 1.75rem;--mat-sys-title-large-size: 1.375rem;--mat-sys-title-large-tracking: 0;--mat-sys-title-large-weight: 400;--mat-sys-title-medium: 600 1rem / 1.5rem -apple-system, BlinkMacSystemFont, "Segoe UI", "Leelawadee UI", Roboto, "Noto Sans Thai", sans-serif;--mat-sys-title-medium-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Leelawadee UI", Roboto, "Noto Sans Thai", sans-serif;--mat-sys-title-medium-line-height: 1.5rem;--mat-sys-title-medium-size: 1rem;--mat-sys-title-medium-tracking: .009rem;--mat-sys-title-medium-weight: 600;--mat-sys-title-small: 600 .875rem / 1.25rem -apple-system, BlinkMacSystemFont, "Segoe UI", "Leelawadee UI", Roboto, "Noto Sans Thai", sans-serif;--mat-sys-title-small-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Leelawadee UI", Roboto, "Noto Sans Thai", sans-serif;--mat-sys-title-small-line-height: 1.25rem;--mat-sys-title-small-size: .875rem;--mat-sys-title-small-tracking: .006rem;--mat-sys-title-small-weight: 600;--mat-sys-corner-extra-large: 16px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 3px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 10px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 8px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 6px;--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12}:root{--tups-space-1: 4px;--tups-space-2: 8px;--tups-space-3: 12px;--tups-space-4: 16px;--tups-space-6: 24px;--tups-space-8: 32px;--tups-space-12: 48px;--tups-space-16: 64px;--tups-font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", "Leelawadee UI", Roboto, "Noto Sans Thai", sans-serif;--tups-font-mono: ui-monospace, "Cascadia Code", "Segoe UI Mono", Consolas, "Liberation Mono", monospace;--tups-verdict-ac: light-dark(#1f9d55, #4ade80);--tups-verdict-wa: var(--mat-sys-error);--tups-verdict-tle: light-dark(#b8660a, #e3a13f);--tups-verdict-re: light-dark(#7c5cbf, #b6a1e8);--tups-verdict-ce: light-dark(#5c5347, #b3aa9d);--tups-verdict-pending: var(--mat-sys-tertiary)}body{margin:0;font-family:var(--tups-font-body);background:var(--mat-sys-surface);color:var(--mat-sys-on-surface)}.grecaptcha-badge{visibility:hidden}.app-body{margin-top:var(--tups-space-6)}footer{color:var(--mat-sys-on-surface-variant)}.hint{font-size:.85em;color:var(--mat-sys-on-surface-variant)}.section-divider{border-top:1px solid var(--mat-sys-outline-variant);margin:var(--tups-space-4) 0}.text-success{color:var(--tups-verdict-ac)!important}.text-danger{color:var(--tups-verdict-wa)!important}.text-muted{color:var(--mat-sys-on-surface-variant)!important}.monaco-editor-frame{height:400px;border:1px solid var(--mat-sys-outline-variant);border-radius:var(--mat-sys-corner-small);overflow:hidden}.admin-layout{display:flex;align-items:flex-start;gap:var(--tups-space-6);padding:var(--tups-space-4)}.admin-layout__sidebar{flex:0 0 220px;position:sticky;top:calc(64px + var(--tups-space-4))}.admin-layout__content{flex:1 1 auto;min-width:0}.admin-page__title{font-size:1.375rem;font-weight:600;margin:0 0 var(--tups-space-4);color:var(--mat-sys-on-surface)}.data-table-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:.875rem}.data-table th,.data-table td{padding:var(--tups-space-2) var(--tups-space-3);border-bottom:1px solid var(--mat-sys-outline-variant);text-align:left}.data-table th{color:var(--mat-sys-on-surface-variant);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.admin-page__add-btn{margin-top:var(--tups-space-4)}.admin-page__subtitle{font-size:1rem;font-weight:600;margin:0 0 var(--tups-space-2);color:var(--mat-sys-on-surface)}.problem-form{display:flex;flex-direction:column;gap:var(--tups-space-4);max-width:720px}.problem-form__row{display:flex;gap:var(--tups-space-4);flex-wrap:wrap}.problem-form__field{width:100%}.problem-form__field--narrow{max-width:180px}.problem-form__label{display:block;font-size:.8125rem;font-weight:600;color:var(--mat-sys-on-surface-variant);margin-bottom:var(--tups-space-2)}.problem-form__error{color:var(--mat-sys-error);font-size:.8125rem;margin:0 0 var(--tups-space-2)}.problem-form__actions{margin-top:var(--tups-space-2);display:flex;gap:var(--tups-space-3)}.problem-form__spinner{display:inline-block;margin-inline-end:var(--tups-space-2);vertical-align:middle}@media(max-width:599.98px){.problem-form__row{flex-direction:column}.problem-form__field--narrow{max-width:100%}}.side-nav{display:flex;flex-direction:column;gap:var(--tups-space-1);background:var(--mat-sys-surface-container);border:1px solid var(--mat-sys-outline-variant);border-radius:var(--mat-sys-corner-medium);padding:var(--tups-space-2)}.side-nav__label{font-family:var(--tups-font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.1em;color:var(--mat-sys-on-surface-variant);padding:var(--tups-space-2) var(--tups-space-2) 0}.side-nav__list{display:flex;flex-direction:column;gap:2px}.side-nav__link{display:block;padding:var(--tups-space-2);border-radius:var(--mat-sys-corner-small);color:var(--mat-sys-on-surface);text-decoration:none;font-size:.875rem;white-space:nowrap}button.side-nav__link{background:none;border:none;width:100%;text-align:left;cursor:pointer;font:inherit}.side-nav__link:hover,.side-nav__link:focus-visible{background:color-mix(in srgb,var(--mat-sys-on-surface) 6%,transparent)}.side-nav__link:focus-visible{outline:2px solid var(--mat-sys-primary);outline-offset:-2px}.side-nav__link--active{background:var(--mat-sys-secondary-container);color:var(--mat-sys-on-secondary-container);font-weight:600}.side-nav__link--muted{color:var(--mat-sys-on-surface-variant);border-top:1px solid var(--mat-sys-outline-variant);margin-top:var(--tups-space-1);padding-top:var(--tups-space-3)}@media(max-width:767.98px){.side-nav{flex-direction:row;align-items:center;overflow-x:auto;gap:var(--tups-space-2);-webkit-overflow-scrolling:touch}.side-nav__label{padding:0;flex:none}.side-nav__list{flex-direction:row;gap:var(--tups-space-1)}.side-nav__link--muted{border-top:none;border-left:1px solid var(--mat-sys-outline-variant);margin-top:0;padding-top:var(--tups-space-2);padding-left:var(--tups-space-3)}}@media(max-width:767.98px){.admin-layout{flex-direction:column;gap:var(--tups-space-3);padding:var(--tups-space-3)}.admin-layout__sidebar{flex:none;position:static;width:100%}}
