@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.grid{display:grid}.hidden{display:none}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.rounded{border-radius:.25rem}.uppercase{text-transform:uppercase}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}.key-set-tabs{color:var(--muted);align-items:center;gap:7px;margin:-8px 0 14px;font-size:11px;display:flex}.exam-roster-workspace{gap:16px;display:grid}.course-roster-workspace,.roster-workspace{gap:14px;display:grid}.workspace-help,.csv-format-note{color:var(--muted)}.workspace-message{color:var(--green);background:#eef7f1;border-radius:9px;padding:10px 12px}.roster-save-bar{border:1px solid var(--line);background:#f7faf8;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;display:flex}.roster-save-bar>div{gap:2px;display:grid}.roster-save-bar small{color:var(--muted)}.roster-save-bar.saved{background:#edf6f0;border-color:#b9d4c3}.roster-save-bar.saved b{color:var(--green)}.roster-preview,.seating-controls,.exam-set-controls,.print-controls{border:1px solid var(--line);background:#f8faf8;border-radius:13px;padding:16px}.roster-preview h3,.seating-controls h3,.exam-set-controls h3,.print-controls h3{margin:0 0 6px}.exam-set-controls{grid-template-columns:1fr auto;align-items:center;gap:12px;display:grid}.exam-set-controls p{color:var(--muted);margin:0;font-size:11px}.exam-set-controls>small{color:var(--muted);grid-column:1/-1;line-height:1.5}.exam-set-action-grid{flex-wrap:wrap;gap:8px;display:flex}.roster-set-select{min-width:92px;margin:0;padding:6px 28px 6px 9px}@media (max-width:760px){.exam-set-controls{grid-template-columns:1fr}.exam-set-controls>small{grid-column:auto}}.roster-summary{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.registration-summary-filter{color:var(--ink);background:#edf4ef;border:1px solid #0000;border-radius:99px;padding:7px 11px;font-weight:700;transition:all .15s}.registration-summary-filter:hover{filter:brightness(.98);transform:translateY(-1px)}.registration-summary-filter.all{color:var(--green);background:#dfece4}.registration-summary-filter.normal{color:#176444;background:#e2f3e9}.registration-summary-filter.late{color:#98620c;background:#fff0ce}.registration-summary-filter.withdrawn{color:#a4433a;background:#f9e1df}.registration-summary-filter.sit_in{color:#37679e;background:#e3edf9}.registration-summary-filter.active{border-color:currentColor;box-shadow:0 0 0 2px #fff,0 0 0 4px}.registration-summary-filter.all.active{background:var(--green);color:#fff}.roster-management-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.roster-action-menu{position:relative}.roster-action-menu summary{border:1px solid var(--green);min-width:110px;color:var(--green);text-align:center;cursor:pointer;background:#fff;border-radius:9px;padding:9px 14px;font-weight:700;list-style:none}.roster-action-menu summary::-webkit-details-marker{display:none}.roster-action-menu summary:after{content:"⌄";margin-left:9px}.roster-action-menu[open] summary:after{content:"⌃"}.roster-action-menu>div{z-index:5;border:1px solid var(--line);background:#fff;border-radius:10px;gap:6px;min-width:210px;padding:8px;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 30px #102a211f}.roster-action-menu button{white-space:nowrap;width:100%}.roster-bulk-actions,.key-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.registration-status{min-width:150px;height:34px;padding:4px 8px;font-weight:700}.registration-status.normal{color:#176444;background:#eef8f2;border-color:#a9d3ba}.registration-status.late{color:#98620c;background:#fffaf0;border-color:#e8c887}.registration-status.withdrawn{color:#a4433a;background:#fff3f1;border-color:#dfaaa5}.registration-status.sit_in{color:#37679e;background:#f1f6fc;border-color:#aac5e1}.course-domain-note{color:var(--green);background:#eef7f1;border:1px solid #cbded1;border-radius:10px;align-items:center;gap:10px;padding:11px 13px;display:flex}.course-domain-note span{color:var(--muted)}.course-create-row{border:1px solid var(--line);background:#f8faf8;border-radius:12px;grid-template-columns:minmax(140px,.5fr) minmax(240px,1fr) minmax(140px,.5fr) auto;align-items:end;gap:10px;padding:14px;display:grid}.course-create-row button{white-space:nowrap;height:44px}.course-scope-row{grid-template-columns:minmax(260px,1.4fr) minmax(150px,.55fr) minmax(150px,.55fr) auto;align-items:end;gap:10px;display:grid}.course-scope-row button{white-space:nowrap;height:44px}@media (max-width:1000px){.course-scope-row{grid-template-columns:1fr 1fr}.course-scope-row button{width:100%}}@media (max-width:760px){.course-create-row,.course-scope-row{grid-template-columns:1fr}.course-domain-note{flex-direction:column;align-items:flex-start}}.registration-badge{color:var(--green);background:#e7f4eb;border-radius:99px;padding:4px 7px;font-size:10px;display:inline-flex}.registration-badge.late{color:#8e5908;background:#fff0d6}.registration-badge.withdrawn,.registration-badge.sit_in{color:#a83832;background:#f8e1df}.excluded-row{opacity:.58;background:#fafafa}.workflow-cards{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr);gap:9px;display:grid}.workflow-cards article{border:1px solid var(--line);background:#fff;border-radius:12px;align-items:center;gap:10px;padding:12px;display:flex}.workflow-cards article>span{background:var(--green);color:#fff;border-radius:50%;place-items:center;width:27px;height:27px;font-weight:800;display:grid}.workflow-cards article>div{flex:1;display:grid}.workflow-cards small{color:var(--muted)}.workflow-cards article:has(>.workflow-card-actions){flex-wrap:wrap}.workflow-cards article:has(>.workflow-card-actions)>div:not(.workflow-card-actions){flex:160px;min-width:0}.workflow-cards article>.workflow-card-actions{flex-wrap:wrap;flex:100%;justify-content:flex-end;align-items:center;gap:6px;display:flex}.workflow-card-actions button{white-space:nowrap}.room-form-grid{grid-template-columns:.7fr 2fr 1.25fr 1.25fr .6fr;gap:10px;display:grid}.check-line{align-items:center;gap:8px;display:flex!important}.check-line input{width:17px;height:17px;margin:0}.room-cards{grid-template-columns:repeat(2,1fr);gap:9px;margin-top:14px;display:grid}.room-cards article{border:1px solid var(--line);border-radius:11px;align-items:center;gap:10px;padding:13px;display:flex}.room-cards article.priority{border-color:var(--green);background:#f3faf5}.room-cards article>div:first-child{flex:1;gap:3px;display:grid}.room-cards span,.room-cards small{color:var(--muted)}.room-priority-badge{background:var(--green);color:#fff;vertical-align:middle;border-radius:99px;margin-left:8px;padding:3px 7px;font-size:9px;font-style:normal;display:inline-flex}.room-card-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.roster-filters{grid-template-columns:minmax(260px,1fr) minmax(190px,.6fr) minmax(190px,.6fr)}.zone-editor{border:1px solid var(--line);background:var(--surface-soft);border-radius:12px;gap:8px;padding:10px;display:grid}.zone-editor-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.zone-editor-head>div{gap:1px;display:grid}.zone-editor-head small{color:var(--muted)}.zone-row-list{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:7px;display:grid}.zone-row{border:1px solid var(--line);background:var(--panel);border-radius:9px;grid-template-columns:minmax(72px,.7fr) minmax(92px,1fr) 34px;align-items:end;gap:6px;padding:7px;display:grid}.zone-row label{font-size:11px}.zone-row input{height:36px;padding:7px 9px}.zone-remove{width:34px;line-height:1;height:36px!important;padding:0!important;font-size:18px!important}.zone-total{color:var(--green);justify-self:end;font-size:12px}.room-choice-grid{grid-template-columns:repeat(2,1fr);gap:8px;margin:10px 0 13px;display:grid}.room-choice-card{border:1px solid var(--line);background:#fff;border-radius:10px;padding:11px}.room-choice-card.selected{border-color:var(--green);background:#eef7f1}.room-choice-select{align-items:center;gap:10px;display:flex}.room-choice-select input{width:17px;height:17px;margin:0}.room-choice-select span{display:grid}.room-choice-select small{color:var(--muted)}.seating-section-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.seating-section-head p{color:var(--muted);margin:0;font-size:11px}.seating-section-head strong{color:var(--green);font-size:12px}.room-override-fields{border-top:1px solid #cddbd2;grid-template-columns:minmax(110px,.45fr) minmax(110px,.45fr) minmax(220px,1.2fr) auto;align-items:end;gap:8px;margin-top:9px;padding-top:9px;display:grid}.room-override-fields label>small{color:var(--muted);margin-top:3px;display:block}.room-override-fields input{height:36px;padding:7px 9px}.room-override-summary{background:#e2efe7;border-radius:8px;align-content:center;min-height:36px;padding:6px 9px;display:grid}.room-override-summary span{color:var(--muted);font-size:9px;line-height:1.4}.room-override-fields button{height:36px}.print-controls{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.print-controls>div{flex:1;min-width:250px}.print-controls p{color:var(--muted);margin:0}.empty-inline{text-align:center;color:var(--muted);padding:22px}.exam-print-root{display:none}@media (max-width:1050px){.workflow-cards,.room-form-grid{grid-template-columns:1fr 1fr}.workflow-cards article:first-child{grid-column:1/-1}.room-choice-grid,.room-cards{grid-template-columns:1fr}.room-override-fields{grid-template-columns:1fr 1fr}}@media (max-width:700px){.workflow-cards,.room-form-grid{grid-template-columns:1fr}.workflow-cards article:first-child{grid-column:auto}.zone-editor-head,.seating-section-head,.roster-save-bar{flex-direction:column;align-items:stretch}.zone-row-list,.room-override-fields{grid-template-columns:1fr}}@media print{@page{size:A4 portrait;margin:0}html,body{background:#fff!important;margin:0!important;padding:0!important}body:has(>.exam-print-root)>:not(.exam-print-root){display:none!important}.exam-print-root,.exam-print-root *{visibility:visible!important}.exam-print-root{color:#000;width:210mm;margin:0;padding:0;font-family:TH Sarabun New,Tahoma,Noto Sans Thai,Arial,sans-serif;position:static;display:block!important}.exam-print-page{box-sizing:border-box;break-inside:avoid;page-break-inside:avoid;flex-direction:column;width:210mm;height:296.5mm;display:flex;overflow:hidden}.exam-print-page+.exam-print-page{break-before:page;page-break-before:always}.exam-print-page.attendance{padding:.5in}.exam-print-page.seating{padding:.37in}.exam-print-page header{text-align:center;margin-bottom:4.5mm;font-weight:700}.exam-print-page h1{margin:0 0 .7mm;font-size:18px;font-weight:700;line-height:1.05}.exam-print-page h2{margin:0;font-size:18px;font-weight:700;line-height:1.05}.exam-print-page header p{margin:1.5mm 0 .4mm;font-size:18px;font-weight:700;line-height:1.05}.exam-print-page table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:16px;line-height:1}.exam-print-page th,.exam-print-page td{color:#000;white-space:normal;text-overflow:clip;overflow-wrap:anywhere;background:#fff;border:1px solid #000;height:5.5mm;padding:.55mm 1.4mm;overflow:visible}.exam-print-page th{text-align:center;white-space:nowrap;font-size:16px;font-weight:700}.exam-print-page td:first-child,.exam-print-page td:nth-child(2),.exam-print-page td:nth-child(4),.exam-print-page td:nth-child(5){text-align:center}.exam-print-page td:first-child,.exam-print-page td:nth-child(2),.exam-print-page td:nth-child(5){white-space:nowrap}.exam-print-page.seating header{margin-bottom:6mm}.exam-print-page.seating h1{margin-bottom:1mm;font-size:22px}.exam-print-page.seating h2,.exam-print-page.seating header p{font-size:19px}.exam-print-page.seating table{font-size:18px}.exam-print-page.seating th{border-bottom-width:1.5px;font-size:18px}.exam-print-page.seating th,.exam-print-page.seating td{height:7mm;padding:.8mm 1.6mm}.exam-print-page.seating th:first-child{width:6%}.exam-print-page.seating th:nth-child(2){width:16%}.exam-print-page.seating th:nth-child(3){width:32%}.exam-print-page.seating th:nth-child(4){width:34%}.exam-print-page.seating th:nth-child(5){width:12%}.exam-print-page.seating td:nth-child(5) b{font-size:20px}.exam-print-page.attendance table,.exam-print-page.attendance th{font-size:18px}.exam-print-page.attendance th:first-child{width:6%}.exam-print-page.attendance th:nth-child(2){width:15%}.exam-print-page.attendance th:nth-child(3){width:27%}.exam-print-page.attendance th:nth-child(4){width:25%}.exam-print-page.attendance th:nth-child(5){width:9%}.exam-print-page.attendance th:nth-child(6),.exam-print-page.attendance .signature-cell{width:18%}.exam-print-page .exam-room-cell{white-space:nowrap;overflow-wrap:normal;font-size:16px}.exam-print-page .exam-room-cell span{white-space:nowrap;display:inline-block}.exam-print-page footer{justify-content:space-between;margin-top:auto;padding-top:8mm;font-size:12pt;display:flex}}.key-set-tabs button{width:34px;height:30px;color:var(--green);background:#fff;border:1px solid #cbd5cf;border-radius:8px;font-weight:800}.key-set-tabs button.active{border-color:var(--green);background:var(--green);color:#fff}.form-row.four{grid-template-columns:repeat(4,1fr)}.answer-row>div{overflow-x:auto}.answer-row button{min-width:29px}.answer-part-body .answer-row{grid-template-columns:32px minmax(0,1fr) auto 105px;gap:7px}.answer-score-rule{white-space:nowrap;align-items:center;gap:5px;font-size:9px;font-weight:800;display:inline-flex}.answer-score-rule span{color:var(--green);background:#e7f4eb;border-radius:6px;padding:4px 6px}.answer-score-rule span:last-child{color:var(--red);background:#fff0ee}.key-actions{align-items:center;gap:7px;display:flex}.import-button{cursor:pointer;align-items:center;display:inline-flex}.import-button input{display:none}.import-success{background:var(--green2);color:var(--green);border-radius:9px;margin:-8px 0 14px;padding:9px 12px;font-size:11px;font-weight:700}.results-panel{padding:18px}.results-panel .results-head{gap:10px;margin-bottom:12px}.results-panel .results-head h2{margin-top:2px;font-size:18px}.results-panel .filters{flex-wrap:wrap;align-items:stretch;gap:7px;margin-bottom:10px;display:flex}.results-panel .filters>.student-search,.results-panel .filters>select,.results-panel .filters>.batch-filter-control{flex:180px;min-width:0}.results-panel .filters>.result-history-mode,.results-panel .filters>.result-status-filter{flex:none}.results-head>div:last-child{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px}.results-head>div:last-child button{white-space:nowrap;border-radius:8px;min-height:32px;padding:6px 10px;font-size:11px}.results-head .results-export-select{margin:0;padding:6px 28px 6px 10px;font-size:11px;line-height:1.5}.results-export-select{field-sizing:content;border-color:var(--green);background:var(--green);color:#fff;cursor:pointer;border-radius:8px;width:auto;min-width:0;max-width:220px;min-height:32px;margin:0;padding:6px 28px 6px 10px;font-size:11px;font-weight:700}.results-export-select:hover,.results-export-select:focus{color:#fff;background:#0f563d}.results-export-select option{color:var(--ink);background:#fff}.results-export-select:disabled{cursor:not-allowed;opacity:.55}.results-action-select{border-color:var(--green);color:var(--green);background:#fff}.results-action-select:hover,.results-action-select:focus{color:var(--green);background:#eef7f1}.review-all-button{border-color:var(--amber)!important;background:var(--amber)!important;color:#fff!important}.review-all-button:hover,.review-all-button:focus{background:#b87416!important;border-color:#b87416!important}.results-panel .filters input,.results-panel .filters select{height:36px;margin:0;padding-block:7px;font-size:11px}.results-panel .table-wrap table{font-size:11px}.results-panel .table-wrap th,.results-panel .table-wrap td{padding:8px 9px}.app-shell .table-wrap{border:1px solid var(--line);border-radius:10px;max-height:calc(100vh - 220px)}.app-shell .table-wrap thead th{z-index:2;position:sticky;top:0}.results-panel .table-wrap th:first-child,.results-panel .table-wrap td:first-child{z-index:1;box-shadow:inset -1px 0 0 var(--line);background:#fff;position:sticky;left:0}.results-panel .table-wrap th:last-child,.results-panel .table-wrap td:last-child{z-index:1;box-shadow:inset 1px 0 0 var(--line);background:#fff;position:sticky;right:0}.results-panel .table-wrap thead th:first-child,.results-panel .table-wrap thead th:last-child{z-index:3;background:#f5f7f4}.results-panel .result-actions{gap:4px}.results-panel .result-actions button{min-height:30px;padding:5px 8px;font-size:10px}.rescan-status{color:var(--green);background:#edf8f1;border:1px solid #bcd8c8;border-radius:10px;gap:8px;margin:-6px 0 16px;padding:12px 14px;font-size:11px;display:grid}.scan-timing{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.rescan-status.has-errors{color:var(--red);background:#fff4f2;border-color:#ebc4bf}.rescan-status progress{width:100%;height:10px;accent-color:var(--green)}.rescan-status summary{cursor:pointer;font-weight:700}.rescan-status ul{margin:8px 0 0;padding-left:20px}.sheet-rescan-controls{background:#f5f9f6;border:1px solid #d6e2da;border-radius:11px;grid-template-columns:minmax(280px,1fr) auto;align-items:end;gap:8px 14px;margin:-6px 0 14px;padding:12px;display:grid}.sheet-threshold-row{grid-template-columns:auto minmax(120px,1fr) 48px auto;align-items:center;gap:8px;margin-top:7px;display:grid}.sheet-threshold-row span,.sheet-rescan-actions small{color:var(--muted);white-space:nowrap;font-size:9px}.sheet-threshold-row input{accent-color:var(--green);margin:0;padding:0}.sheet-threshold-row output{color:var(--green);text-align:center;background:#e2f0e7;border-radius:7px;padding:5px 7px;font-weight:800}.sheet-rescan-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.sheet-rescan-actions button{white-space:nowrap;flex:none}.sheet-rescan-actions .optimize-sheet,.optimize-sheet{background:#e3f2e8;border-color:#8fb8a2}.preview-panel{position:relative}.floating-scan-settings{z-index:12;pointer-events:none;position:absolute;top:66px;left:14px;right:14px}.scan-settings-toggle{width:34px;min-width:34px;padding:7px;font-size:15px;line-height:1}.scan-settings-toggle.active{background:var(--green);color:#fff}.floating-scan-settings .sheet-rescan-controls{pointer-events:auto;width:100%;margin:0;position:absolute;top:0;left:0;box-shadow:0 16px 42px #14251f33}.sheet-rescan-controls>p{color:var(--green);grid-column:1/-1;margin:0;font-size:10px}.sheet-rescan-controls .marker-help{color:#76510d}.sheet-rescan-actions .marker-apply{background:var(--green);color:#fff}.fill-coverage-control{color:var(--muted);gap:4px;margin-top:8px;font-size:10px;font-weight:500;display:grid}.fill-coverage-control>div{grid-template-columns:minmax(120px,1fr) 44px;align-items:center;gap:8px;display:grid}.fill-coverage-control input[type=range]{width:100%}.fill-coverage-control output{color:var(--green);text-align:right;font-weight:800}.marker-editor-layer,.marker-editor-layer svg{z-index:6;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.marker-editor-layer svg polygon{fill:#d18a2014;stroke:#d18a20;stroke-width:.35px;stroke-dasharray:1.2 .8;vector-effect:non-scaling-stroke}.marker-editor-layer .corner-handle{z-index:7;color:#fff;cursor:grab;touch-action:none;pointer-events:auto;background:#d18a20;border:3px solid #fff;border-radius:50%;width:34px;height:34px;padding:0;font-size:9px;font-weight:900;line-height:1;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 3px #d18a20b3,0 4px 12px #14251f4d}.marker-editor-layer .corner-handle:active{cursor:grabbing;transform:translate(-50%,-50%)scale(1.12)}.sheet-canvas.marker-editing{cursor:crosshair}.marker-editor-layer .corner-handle.selected{background:var(--green);box-shadow:0 0 0 4px #d9f26ae6,0 4px 14px #14251f66}.template-editor{border:1px solid var(--line);background:#f8faf8;border-radius:14px;margin:14px 0;padding:18px}.template-editor.collapsed{padding:13px 15px}.template-editor-head-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.template-expand-button{white-space:nowrap;min-width:118px}.template-editor-head,.template-toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.template-editor-head span{color:var(--muted);margin-top:4px;font-size:10px;line-height:1.5;display:block}.template-enabled{white-space:nowrap;align-items:center;gap:7px;display:flex}.template-enabled input{width:auto;margin:0}.template-toolbar{justify-content:flex-start;margin:14px 0}.template-toolbar>label:not(.import-button){align-items:center;gap:7px;display:flex}.template-toolbar input,.template-toolbar select{width:auto;margin:0}.template-toolbar input[type=number]{width:80px}.threshold-settings{grid-template-columns:minmax(260px,.7fr) minmax(360px,1.3fr);align-items:stretch;gap:12px;margin:-2px 0 14px;display:grid}.bubble-size-settings{background:#fff;border:1px solid #d7e4da;border-radius:10px;grid-template-columns:minmax(260px,.7fr) minmax(360px,1.3fr);align-items:center;gap:12px;margin:-2px 0 14px;padding:12px 13px;display:grid}.bubble-size-settings>div:last-child{color:#315a47;gap:3px;font-size:11px;line-height:1.55;display:grid}.bubble-size-settings>div:last-child span{color:var(--muted)}.threshold-settings>label{border:1px solid var(--line);background:#fff;border-radius:10px;padding:13px}.threshold-control{align-items:center;gap:10px;margin-top:10px;display:flex}.threshold-control input{accent-color:var(--green);flex:1;margin:0;padding:0}.threshold-control output{min-width:48px;color:var(--green);text-align:center;background:#edf4ef;border-radius:7px;padding:5px 8px;font-weight:800}.threshold-help{color:#315a47;background:#eaf4ed;border-radius:10px;gap:4px;margin:-2px 0 14px;padding:11px 13px;font-size:11px;line-height:1.55;display:grid}.threshold-help.fixed{margin:0}.threshold-help span{color:var(--muted)}.threshold-help small{color:#76510d}.threshold-scale{text-align:center;grid-template-columns:repeat(3,1fr);gap:4px;margin:7px 0 3px;display:grid}.threshold-scale span,.threshold-scale strong{background:#fff;border-radius:7px;padding:6px;font-size:9px;line-height:1.4}.threshold-scale strong{color:var(--green);background:#dff0e5}.template-pages{border:1px solid var(--line);background:#fff;border-radius:8px;gap:3px;padding:3px;display:flex}.template-pages button{color:var(--muted);background:0 0;border:0;border-radius:6px;padding:6px 8px;font-size:10px;font-weight:700}.template-pages button.active{background:var(--green);color:#fff}.template-error{color:var(--red);background:#f8e1df;border-radius:8px;margin-bottom:12px;padding:9px 11px;font-size:11px}.template-calibration-success{background:var(--green2);color:var(--green);border-radius:8px;margin-bottom:12px;padding:9px 11px;font-size:11px;font-weight:700}.template-corner-help{color:var(--green);background:#eef6f1;border:1px solid #d7e4da;border-radius:9px;align-items:baseline;gap:8px 14px;margin-bottom:12px;padding:10px 12px;font-size:10px;display:flex}.template-corner-help.invalid{color:#865a0e;background:#fff4de;border-color:#eed39e}.template-corner-help span{line-height:1.55}.audit-trail{grid-template-columns:220px 1fr;align-items:start;gap:18px;display:grid}.audit-trail h3{margin:4px 0 0}.audit-trail>p{color:var(--muted);margin:0}.audit-trail ol{gap:8px;margin:0;padding:0;list-style:none;display:flex;overflow-x:auto}.audit-trail li{border:1px solid var(--line);background:#f8faf8;border-radius:9px;min-width:190px;padding:10px 12px}.audit-trail li b,.audit-trail li small{display:block}.audit-trail li small{color:var(--muted);margin-top:3px;font-size:9px}.audit-action{color:var(--green);background:#e8f2eb;border-radius:99px;margin-bottom:6px;padding:3px 6px;font-size:9px;font-weight:800;display:inline-block}.audit-action.review_submitted{color:#94600e;background:#fff0d6}.audit-action.rescanned{color:#315e9b;background:#e7eef9}.audit-person b,.audit-person small{display:block}.audit-person small{color:var(--muted);margin-top:2px;font-size:9px}.template-workspace{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:14px;display:grid}.template-canvas{touch-action:none;background:#e7ece8;border:1px solid #bfcac3;border-radius:10px;min-height:520px;position:relative;overflow:hidden}.template-canvas.corner-editing{cursor:crosshair}.template-canvas .template-corner-layer{z-index:8}.template-canvas>img{-webkit-user-select:none;user-select:none;pointer-events:none;width:100%;height:auto;display:block}.template-placeholder{text-align:center;color:var(--muted);place-content:center;line-height:1.7;display:grid;position:absolute;inset:0}.template-region{cursor:move;background:#3d8bd124;border:2px solid #2f72b7;min-width:8px;min-height:8px;position:absolute}.template-region.answers{background:#f1a52b25;border-color:#d38212}.template-region.student-id{background:#9954c924;border-color:#8246af}.template-region.exam-set,.template-region.seat-number{background:#24a87824;border-color:#16805b}.template-region.absent-flag,.template-region.cancelled-flag,.template-region.spare-flag{background:#df725329;border-color:#b14e3b}.template-region.qr-code{background:#419ad52b;border-color:#2774a8}.template-region.selected{z-index:2;box-shadow:0 0 0 3px #fffc,0 0 0 5px}.template-region span{display:none}.template-region i{cursor:nwse-resize;background:currentColor;border:2px solid #fff;border-radius:50%;width:12px;height:12px;position:absolute;bottom:-6px;right:-6px}.template-region .template-sample-point{background:currentColor;border:1px solid;border-radius:50%;width:5px;height:5px;position:absolute}@supports (color:color-mix(in lab, red, red)){.template-region .template-sample-point{background:color-mix(in srgb, currentColor 16%, transparent)}}.template-region .template-sample-point{pointer-events:none;transform:translate(-50%,-50%)}.template-properties{gap:9px;display:grid}.template-region-list{border:1px solid var(--line);background:#fff;border-radius:9px;max-height:220px;display:grid;overflow:auto}.template-region-list button{text-align:left;background:0 0;border:0;border-bottom:1px solid #edf0ed;padding:9px 10px}.template-region-list button.active{color:var(--green);background:#e6f3eb}.template-region-list span,.template-region-list small{display:block}.template-region-list small{color:var(--muted);margin-top:2px;font-size:9px}.template-region-form{grid-template-columns:1fr 1fr;gap:8px;padding-top:4px;display:grid}.template-region-form>label:first-child,.template-region-form>.template-coordinates,.template-region-form>button{grid-column:1/-1}.template-region-form input{margin-top:4px;padding:7px 8px}.template-coordinates{grid-template-columns:repeat(4,1fr);gap:5px;display:grid}.template-coordinates.corner-point-coordinates{grid-template-columns:repeat(2,1fr)}.template-tip{color:var(--muted);margin:12px 0 0;font-size:10px;line-height:1.6}.result-history-mode,.result-status-filter{background:#f3f6f3;border:1px solid #ccd6d0;border-radius:8px;align-items:center;gap:3px;padding:3px;display:flex}.result-history-mode button,.result-status-filter button{min-height:28px;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:7px;padding:5px 8px;font-size:9px;font-weight:800}.result-history-mode button.active,.result-status-filter button.active{background:var(--green);color:#fff}.result-status-filter button span{color:var(--ink);background:#e2e9e4;border-radius:99px;margin-left:4px;padding:2px 6px}.latest-badge{color:var(--green);background:#dff2e8;border-radius:99px;margin-left:7px;padding:2px 7px;font-size:9px;font-weight:800;display:inline-flex}.batch-label{text-overflow:ellipsis;vertical-align:middle;max-width:190px;display:inline-block;overflow:hidden}.batch-filter-control{gap:6px;min-width:0;display:flex}.batch-filter-control select{flex:auto;min-width:0}.batch-filter-control .danger-button{white-space:nowrap;flex:none}.database-controls{grid-template-columns:minmax(280px,1fr) minmax(220px,1fr);gap:10px;margin-bottom:16px;display:grid}.database-controls select,.database-controls input{height:44px;margin:0}.database-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px;display:grid}.database-metrics article{border:1px solid var(--line);background:#f7faf7;border-radius:12px;padding:16px}.database-metrics span,.database-metrics small{color:var(--muted);font-size:10px;display:block}.database-metrics strong{margin:4px 0;font-size:26px;display:block}.scan-top,.score-banner{grid-template-columns:repeat(3,minmax(0,1fr))}.review-panel .score-banner{grid-template-columns:repeat(12,minmax(0,1fr));margin-bottom:12px;overflow:hidden}.review-panel{padding:18px}.score-banner>.score-total,.score-banner>.score-raw{border-bottom:1px solid #365248;grid-column:span 6;padding:12px 14px}.score-banner>.score-raw{border-right:0}.score-banner.has-bonus>.score-total,.score-banner.has-bonus>.score-raw,.score-banner.has-bonus>.score-bonus{grid-column:span 4}.score-banner.has-bonus>.score-raw{border-right:1px solid #365248}.score-banner>.score-bonus{border-bottom:1px solid #365248;border-right:0;padding:12px 14px}.review-panel .score-banner>.score-total strong,.review-panel .score-banner>.score-raw strong,.review-panel .score-banner>.score-bonus strong{font-size:28px;line-height:1.05}.review-panel>.form-row{gap:8px;margin-bottom:10px}.score-banner>.score-summary-row{border-bottom:1px solid #365248;border-right:0;grid-column:1/-1;grid-template-columns:1.15fr repeat(4,minmax(0,1fr));padding:0;display:grid}.score-banner>.score-summary-row:last-child{border-bottom:0}.score-banner>.score-summary-row.without-label{grid-template-columns:repeat(4,minmax(0,1fr))}.score-banner .score-section-label{color:#dbe9e1;letter-spacing:.02em;border-right:1px solid #365248;align-items:center;padding:9px 12px;font-size:10px;font-weight:800;display:flex}.score-banner>.score-summary-row.bonus .score-section-label{color:#f0c46f}.score-banner .score-state{text-align:center;border-right:1px solid #365248;padding:9px 8px}.score-banner .score-state:last-child{border-right:0}.score-banner .score-state strong{font-size:22px;line-height:1.05}.score-banner .score-state.correct strong{color:#8de0b4}.score-banner .score-state.wrong strong{color:#f0a09a}.score-banner .score-state.blank strong{color:#d6ded9}.score-banner .score-state.review strong{color:#e6a13b}.scan-top{grid-template-columns:repeat(4,minmax(0,1fr))}.scan-top>.primary{grid-column:1/-1}.app-shell .scan-top{align-items:start}.scan-top>div{flex-wrap:wrap}.scan-top>div>small{flex:1 0 100%;padding-left:36px}.scan-top .file-button{white-space:nowrap}.topbar-back{margin-left:auto}.content:has(.scan-layout.preview-active){padding-top:14px;padding-bottom:14px}.scan-layout.preview-active{gap:10px;height:calc(100dvh - 110px);min-height:0}.preview-active .review-grid{align-items:stretch;gap:10px;height:100%;min-height:0}.preview-active .preview-panel,.preview-active .review-panel{flex-direction:column;height:100%;min-height:0;padding:14px;display:flex;overflow:hidden}.preview-active .panel-head{margin-bottom:10px}.preview-active .panel-head h2{margin-top:2px;font-size:19px}.preview-active .sheet-rescan-controls{gap:5px 10px;padding:9px 10px}.preview-active .sheet-threshold-row{margin-top:4px}.preview-active .sheet-rescan-actions{gap:5px}.preview-active .sheet-rescan-actions .compact{padding:7px 10px}.preview-active .sheet-preview{flex:auto;min-height:0;max-height:none}.preview-active .score-banner{flex:none;margin-bottom:8px}.preview-active .review-panel>.form-row{margin-bottom:7px}.preview-active .review-panel>.form-row input{margin-top:3px;padding:7px 9px}.preview-active .identity-check{margin-top:5px;padding:7px 9px}.preview-active .review-toolbar{gap:6px;margin-top:5px}.review-toolbar-actions{flex-wrap:wrap;flex:auto;justify-content:flex-end;align-items:center;gap:4px;min-width:0;display:flex}.auto-check-button{white-space:nowrap;border-radius:7px;min-height:28px;margin-left:auto;padding:0 9px;font-size:9px}.preview-active .question-review{flex:auto;min-height:240px;max-height:none;margin-top:7px}.preview-active .review-answer-part{margin-bottom:6px}.preview-active .review-part-heading{padding-block:6px}.preview-active .question-review-row{padding-block:5px}.preview-active .review-panel>.primary.full{flex:none;margin-top:8px;padding-block:9px}.preview-active .review-panel{overflow-y:auto}.preview-active .review-panel>.primary.full{z-index:1;position:sticky;bottom:0;box-shadow:0 -8px 10px #fff}.app-shell>main:has(.scan-layout.reviewing-active) .topbar{display:none}.app-shell .content:has(.scan-layout.reviewing-active){max-width:none;height:100dvh;padding:10px 16px}.app-shell .scan-layout.reviewing-active{grid-template-rows:auto auto minmax(0,1fr);gap:8px;height:100%}.app-shell .reviewing-active .review-return{border-radius:11px;min-height:0;padding:9px 13px}.app-shell .reviewing-active .review-return>div:first-child{align-items:baseline;gap:7px;min-width:0;display:flex}.app-shell .reviewing-active .review-return h2{margin:0 8px 0 0;font-size:16px;display:inline}.app-shell .reviewing-active .review-return p{font-size:10px;display:inline}.app-shell .reviewing-active .review-person-navigation{flex-wrap:nowrap;gap:5px}.app-shell .reviewing-active .review-person-navigation button{white-space:nowrap;padding:7px 10px}.app-shell .reviewing-active .audit-trail{border-radius:11px;align-items:center;gap:10px;min-height:0;padding:7px 12px;display:flex}.app-shell .reviewing-active .audit-trail>div{min-width:150px}.app-shell .reviewing-active .audit-trail h3{margin:0 0 0 7px;font-size:13px;display:inline}.app-shell .reviewing-active .audit-trail ol{flex:1;gap:5px}.app-shell .reviewing-active .audit-trail li{align-items:center;gap:7px;min-width:max-content;padding:5px 8px;display:flex}.app-shell .reviewing-active .audit-trail li b,.app-shell .reviewing-active .audit-trail li small{margin:0;display:inline}.app-shell .reviewing-active .audit-action{margin:0}.app-shell .reviewing-active .review-grid{height:auto;min-height:0}.field-note{background:#f3f8f4;border:1px solid #d8e5dc;border-radius:10px;grid-column:span 2;align-self:end;min-height:62px;padding:10px 12px}.field-note b,.field-note span{font-size:10px;line-height:1.5;display:block}.field-note span{color:var(--muted)}.scan-straightening-note{background:#e8f4ec;border-radius:8px;grid-column:1/-1;padding:7px 10px;font-weight:700;color:var(--green)!important}.upload-straightening-note{color:var(--green);margin:-8px 0 18px;font-size:10px;font-weight:700;display:block}.sheet-preview .sheet-canvas{transition:width .18s;container-type:inline-size}.sheet-preview .sheet-canvas.wheel-zooming{transition:none}.sheet-preview.pdf-like-viewer{cursor:grab;overscroll-behavior:contain;touch-action:none;-webkit-user-select:none;user-select:none}.sheet-preview.pdf-like-viewer.is-panning{cursor:grabbing;scroll-behavior:auto}.sheet-preview.pdf-like-viewer .sheet-canvas.marker-editing{cursor:crosshair}.question-focus-target,.review-question-overlay{z-index:3;filter:drop-shadow(0 0 4px #d18a2059);pointer-events:none;background:#d18a2014;border:clamp(1.5px,.11cqw,3px) solid #d18a20;border-radius:clamp(3px,.3cqw,7px);position:absolute}.review-question-overlay{z-index:2;filter:none;background:#d18a2009}.question-focus-target{z-index:4}.question-review-row{cursor:pointer}.question-review-row.question-review-focused{box-shadow:inset 3px 0 var(--green);background:#eef7f1}.floating-zoom-controls{z-index:11;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#14251feb;border:1px solid #ffffff29;border-radius:11px;align-items:center;gap:3px;padding:5px;display:flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #14251f33}.floating-zoom-controls button{color:#fff;background:#ffffff1f;border:0;border-radius:7px;min-width:31px;height:31px;padding:0 8px;font-weight:800}.floating-zoom-controls button:hover:not(:disabled){background:var(--green);color:#fff}.floating-zoom-controls button:disabled{opacity:.38;cursor:not-allowed}.floating-zoom-controls output{color:#fff;text-align:center;min-width:46px;font-size:10px;font-weight:800}.floating-zoom-controls .fit-sheet{min-width:58px;color:var(--green);background:#fff;padding-inline:9px;font-size:10px}.exam-set-area{z-index:3;filter:drop-shadow(0 0 4px #3d6fb659);pointer-events:none;background:#3d6fb60f;border:clamp(1.5px,.11cqw,3px) solid #3d6fb6;border-radius:clamp(3px,.3cqw,7px);position:absolute}.exam-set-area>span{color:#fff;white-space:nowrap;background:#3d6fb6;border-radius:6px 6px 0 0;margin-bottom:2px;padding:2px 7px;font-size:clamp(9px,.55cqw,12px);font-weight:800;line-height:1.3;position:absolute;bottom:100%;right:-1px}.exam-set-mark{z-index:4;aspect-ratio:1;width:1.8%;height:auto;box-shadow:none;pointer-events:none;background:0 0;border:clamp(1.5px,.17cqw,3.5px) solid #1f6fe5;border-radius:clamp(1.5px,.12cqw,3px);position:absolute;transform:translate(-50%,-50%)scale(1.35)}.exam-set-mark.with-label:after{content:"";background:#3d6fb6;width:7px;height:2px;position:absolute;top:50%;left:100%;transform:translateY(-50%)}.exam-set-mark.with-label>span{transform-origin:0;color:#fff;white-space:nowrap;background:#3d6fb6;border-radius:99px;padding:4px 8px;font-size:10px;font-weight:800;line-height:1.2;position:absolute;top:50%;left:calc(100% + 7px);transform:translateY(-50%)scale(.740741);box-shadow:0 3px 10px #14251f40}.review-person-navigation{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.review-person-navigation span{text-align:center;min-width:48px;color:var(--muted);font-size:11px;font-weight:800}.review-person-navigation button:disabled{opacity:.45;cursor:not-allowed}.sheet-flag-confirmations{gap:7px;margin:-4px 0 12px;display:grid}.sheet-flag-confirmations button{border:1px solid var(--amber);color:#8e5908;background:#fffaf0;border-radius:9px;min-height:38px;font-weight:800}.sheet-flag-confirmations button.confirmed{border-color:var(--green);color:var(--green);background:#e7f5ec}.sheet-flag-confirmations button:disabled{opacity:1;cursor:default}@media (max-width:1250px){.audit-trail,.template-workspace{grid-template-columns:1fr}.results-panel .filters,.scan-top{grid-template-columns:repeat(2,minmax(0,1fr))}.batch-filter-control{flex-direction:column}.scan-top>.primary{grid-column:1/-1}}@media (max-width:1050px){.content:has(.scan-layout.preview-active){padding-top:22px;padding-bottom:60px}.scan-layout.preview-active,.preview-active .review-grid,.preview-active .preview-panel,.preview-active .review-panel{height:auto;overflow:visible}.preview-active .sheet-preview{max-height:70vh}.preview-active .question-review{max-height:47vh}}@media (max-width:760px){.template-editor-head{flex-direction:column;align-items:flex-start}.template-editor-head-actions{justify-content:space-between;width:100%}.sheet-rescan-controls,.sheet-threshold-row{grid-template-columns:1fr}.sheet-rescan-actions{flex-direction:column;align-items:stretch}.threshold-settings,.threshold-scale,.bubble-size-settings{grid-template-columns:1fr}.results-head>div:last-child{flex-wrap:wrap}.form-row.four{grid-template-columns:1fr}.key-actions{flex-wrap:wrap;justify-content:flex-end}.results-panel .filters,.database-controls,.database-metrics,.scan-top{grid-template-columns:1fr}.review-return{flex-direction:column;align-items:flex-start}.topbar-back{white-space:nowrap;padding-inline:10px}.review-person-navigation{justify-content:flex-start;width:100%}}.upload-zone{transition:border-color .16s,background-color .16s,box-shadow .16s}.upload-drop-content{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-width:0;display:flex}.upload-zone.has-files{text-align:left;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;align-items:stretch;gap:16px;min-height:440px;padding:18px;display:grid}.upload-zone.has-files .upload-drop-content{border:1px dashed #c3d0c8;border-radius:12px;padding:18px}.upload-zone.has-files .sheet-symbol{width:82px;height:104px;margin-bottom:14px;box-shadow:8px 8px #e2eee6}.upload-zone.has-files .sheet-symbol span{width:42px;height:4px;margin-top:22px;margin-bottom:-12px}.upload-zone.has-files h2{margin:8px 0 2px;font-size:18px}.upload-zone.has-files p{margin:5px 0;font-size:12px}.upload-zone.drag-active{border-color:var(--green);background:#eef8f1;box-shadow:inset 0 0 0 3px #146b4b1c}.upload-zone.drag-active .sheet-symbol{transform:translateY(-3px)}.upload-file-list{border:1px solid var(--line);text-align:left;background:#fff;border-radius:12px;width:min(720px,100%);margin-top:14px;padding:10px}.upload-zone.has-files .upload-file-list{flex-direction:column;width:100%;height:100%;min-height:0;margin-top:0;display:flex}.upload-zone.has-files .upload-file-list ul{flex:1;max-height:372px}.upload-file-list-head{justify-content:space-between;align-items:center;gap:12px;padding-bottom:8px;display:flex}.upload-file-list-head>b{color:var(--green);font-size:12px}.clear-upload-button{color:#c84c43;background:0 0;border:1px solid #c84c43;border-radius:9px;flex:0 0 34px;place-items:center;width:34px;height:34px;padding:0;font-size:16px;line-height:1;display:grid}.clear-upload-button:hover{color:#a83832;background:#fff1ef;border-color:#a83832}.clear-upload-button:disabled{opacity:.5;cursor:not-allowed}.upload-file-list ul{border-top:1px solid #edf1ee;max-height:158px;margin:0;padding:0;list-style:none;overflow:auto}.upload-file-list li{border-bottom:1px solid #edf1ee;grid-template-columns:25px minmax(0,1fr) auto 28px;align-items:center;gap:9px;padding:7px 5px;font-size:11px;display:grid}.upload-file-list li:last-child{border-bottom:0}.upload-file-list li>span{width:22px;height:22px;color:var(--green);background:#e7f1e8;border-radius:50%;place-items:center;font-size:10px;font-weight:800;display:grid}.upload-file-list li>b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.upload-file-list li>small{color:var(--muted);white-space:nowrap}.remove-upload-file{width:26px;height:26px;color:var(--red);background:0 0;border:1px solid #d9aaa6;border-radius:7px;place-items:center;padding:0;font-size:18px;font-weight:700;line-height:1;display:grid}.remove-upload-file:hover{border-color:var(--red);background:#fff1ef}.remove-upload-file:disabled{cursor:not-allowed;opacity:.45}.batch-processing-backdrop{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#172d25b8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.batch-processing-modal{text-align:center;background:#fff;border:1px solid #ffffff8c;border-radius:20px;flex-direction:column;align-items:center;width:min(500px,100%);padding:30px 32px 28px;display:flex;box-shadow:0 26px 65px #0c1f1857}.batch-processing-spinner{border:5px solid #dce9e1;border-right-color:var(--green);border-bottom-color:var(--green);border-radius:50%;width:46px;height:46px;margin-bottom:15px;animation:.9s linear infinite spin}.batch-processing-modal h2{margin:0;font-size:21px}.batch-processing-modal p{color:var(--muted);margin:8px 0 17px}.batch-processing-modal progress{width:100%;height:12px;accent-color:var(--green)}.batch-processing-eta{width:100%;color:var(--green);background:#edf6f0;border-radius:10px;margin-top:13px;padding:9px 12px;font-size:13px;font-weight:800}.batch-processing-modal>small{color:var(--muted);margin-top:10px;font-size:11px}.batch-processing-cancel{color:var(--red);background:0 0;border:0;margin-top:11px;padding:6px 10px;font-size:12px;font-weight:800}.batch-processing-cancel:hover:not(:disabled){background:#fff1ef}.batch-processing-cancel:disabled{cursor:wait;opacity:.6}.app-alert-backdrop{z-index:1500;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#172d25b8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.app-alert-modal{text-align:center;background:#fff;border:1px solid #ffffff8c;border-radius:20px;flex-direction:column;align-items:center;width:min(460px,100%);padding:30px 32px 28px;display:flex;box-shadow:0 26px 65px #0c1f1857}.app-alert-icon{width:46px;height:46px;color:var(--red);background:#fff0ee;border-radius:50%;place-items:center;margin-bottom:15px;font-size:24px;font-weight:900;display:grid}.app-alert-modal h2{margin:0;font-size:21px}.app-alert-modal p{color:var(--muted);white-space:pre-line;margin:10px 0 18px;line-height:1.65}.app-alert-modal small{color:var(--amber);margin:-7px 0 13px}.app-alert-modal button{min-width:120px}.app-confirm-modal .app-alert-icon{background:var(--soft);color:var(--primary)}.app-confirm-actions{justify-content:center;gap:10px;width:100%;display:flex}.app-confirm-danger{border-color:var(--red);background:var(--red);color:#fff}.app-confirm-danger:hover{filter:brightness(.92)}.admin-notice.success{color:#146b4b;background:#dff2e8}.admin-notice.error{color:#913c35;background:#f8e1df}.admin-page .admin-users article{grid-template-columns:1fr auto auto auto auto}.admin-page .admin-users .admin-delete-user{color:#a83832;border-color:#d9aaa6}.admin-page .admin-users .admin-delete-user:disabled{cursor:not-allowed;opacity:.45}@media (max-width:800px){.admin-page .admin-users article{grid-template-columns:1fr auto}}.exam-library-page,.exam-editor-page,.room-library-page,.room-editor-page{width:100%}.exam-library-head{align-items:flex-end;margin-bottom:16px}.exam-library-head p{color:var(--muted);margin:5px 0 0;font-size:12px}.room-library-head{align-items:flex-end;margin-bottom:16px}.room-library-head p,.room-editor-page .panel-head p{color:var(--muted);margin:5px 0 0;font-size:12px}.exam-library-grid,.room-library-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.room-building-groups{gap:18px;display:grid}.room-building-group{gap:9px;display:grid}.room-building-group+.room-building-group{border-top:1px solid var(--line);padding-top:17px}.room-building-group-head>div{align-items:center;gap:9px;display:flex}.room-building-group-head>div>span{width:30px;height:30px;color:var(--green);background:#e8f2eb;border-radius:8px;place-items:center;font-size:16px;display:grid}.room-building-group-head h3,.room-building-group-head small{margin:0}.room-building-group-head h3{font-size:15px}.room-building-group-head small{color:var(--muted);margin-top:1px;font-size:10px;display:block}.exam-library-card{border:1px solid var(--line);min-width:0;color:var(--ink);text-align:left;background:#fff;border-radius:12px;flex-direction:column;align-items:flex-start;padding:16px;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.room-library-card{border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;align-items:flex-start;min-width:0;padding:16px;display:flex}.room-library-card.priority{border-color:var(--green);background:#f8fcf9}.room-library-card-top{width:100%;color:var(--green);align-items:center;gap:7px;display:flex}.room-library-card>strong{text-overflow:ellipsis;white-space:nowrap;width:100%;margin-top:9px;font-size:16px;overflow:hidden}.room-library-card>span,.room-library-card>small{color:var(--muted);margin-top:5px;font-size:11px}.room-library-card-actions{justify-content:space-between;align-items:center;gap:8px;width:100%;margin-top:13px;display:flex}.room-library-card-actions .text-button{padding:0;font-size:11px}.room-library-card-actions .secondary{padding:6px 9px;font-size:10px}.exam-library-card:hover{border-color:var(--green);transform:translateY(-1px);box-shadow:0 8px 22px #146b4b1a}.exam-library-card-top{width:100%;color:var(--green);align-items:center;gap:7px;display:flex}.exam-library-card>strong{text-overflow:ellipsis;white-space:nowrap;width:100%;margin-top:9px;font-size:16px;overflow:hidden}.exam-library-card>span:not(.exam-library-card-top):not(.exam-library-audit),.exam-library-card>small{color:var(--muted);margin-top:5px;font-size:11px}.exam-library-card>i{color:var(--green);margin-top:13px;font-size:11px;font-style:normal;font-weight:700}.exam-library-empty,.room-library-empty{border:1px dashed var(--line);border-radius:12px}.room-library-empty h3,.room-library-empty p{margin:6px 0}.room-library-empty .primary{margin-top:10px}.exam-library-empty h3,.exam-library-empty p{margin:6px 0}.exam-library-empty .primary{margin-top:10px}.exam-editor-back{color:var(--green);background:0 0;border:0;margin:-3px 0 13px;padding:0;font-size:12px;font-weight:700}@media (max-width:900px){.exam-library-grid,.room-library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.upload-zone.has-files{grid-template-columns:1fr}.upload-zone.has-files .upload-file-list ul{max-height:220px}.batch-processing-modal,.app-alert-modal{padding:25px 20px 22px}}@media (max-width:600px){.exam-library-head,.room-library-head{flex-direction:column;align-items:stretch}.exam-library-grid,.room-library-grid{grid-template-columns:1fr}.room-library-card-actions{flex-direction:column;align-items:stretch}}.self-check{max-width:760px;margin:0 auto;padding:32px 16px 48px}.self-check h1{margin:0 0 8px;font-size:24px}.self-check>p{color:var(--muted);line-height:1.6}.self-check-verdict{border-radius:10px;padding:12px 14px;font-weight:700;line-height:1.5}.self-check-verdict.pending{color:var(--muted);background:#eef2ef}.self-check-verdict.pass{color:var(--green);background:#dff2e8}.self-check-verdict.fail{color:var(--red);background:#fff4f2}.self-check-device{grid-template-columns:max-content 1fr;gap:6px 14px;margin:18px 0;font-size:13px;display:grid}.self-check-device dt{color:var(--muted)}.self-check-device dd{margin:0}.self-check-agent{overflow-wrap:anywhere;font-size:11px}.self-check-table th,.self-check-table td{white-space:normal;overflow-wrap:anywhere}.self-check-table td+td{white-space:nowrap}.self-check small{color:var(--muted);overflow-wrap:anywhere;margin-top:14px;font-size:11px;display:block}.exam-audit-bar{flex-wrap:wrap;align-items:center;gap:6px 10px;margin:-6px 0 14px;display:flex}.exam-audit-bar .eyebrow{font-size:9px}.exam-audit-bar ol{flex-wrap:wrap;gap:5px;margin:0;padding:0;list-style:none;display:flex}.exam-audit-bar li{border:1px solid var(--line);white-space:nowrap;background:#f8faf8;border-radius:8px;align-items:center;gap:6px;padding:3px 8px;display:flex}.exam-audit-bar li b{font-size:11px}.exam-audit-bar li small{color:var(--muted);font-size:10px}.exam-audit-bar .audit-action{margin:0;padding:2px 6px;font-size:9px}.exam-audit-bar .audit-action.exam-updated{color:#315e9b;background:#e7eef9}.record-audit-bar{margin:0 0 12px}.exam-library-audit{margin:4px 0 2px}.exam-library-audit ol{flex-direction:column;align-items:flex-start;gap:4px}.exam-library-audit li{text-overflow:ellipsis;max-width:100%;overflow:hidden}.exam-audit-bar .audit-action.key-imported{color:#315e9b;background:#e7eef9}.exam-audit-bar .audit-action.key-edited{color:#94600e;background:#fff0d6}.key-history-bar .key-history-empty{color:var(--muted);font-size:10px}.key-history-bar .key-history-pending{color:var(--amber);font-size:10px;font-weight:700}.key-history-bar details{flex-basis:100%}.key-history-bar summary{cursor:pointer;color:var(--green);font-size:10px;font-weight:700}.key-history-bar details ol{flex-direction:column;align-items:flex-start;max-height:220px;margin-top:6px;overflow:auto}.question-options .question-key{color:var(--green);white-space:nowrap;align-self:center;margin-left:8px;font-size:11px}.question-options .question-key b{font-size:12px}.question-options .question-key.missing{color:var(--muted)}.app-shell .flow-card{align-items:flex-start}.app-shell .flow-card i{margin-top:17px}.designer-workspace{grid-template-columns:320px minmax(0,1fr);align-items:start;gap:16px;display:grid}.designer-controls{position:sticky;top:102px}.designer-controls h2{margin:5px 0 8px}.designer-controls>div:first-child p{color:var(--muted);margin:0 0 14px;font-size:11px;line-height:1.65}.designer-lock-note{color:#40554a;background:#eef6e6;border-radius:11px;gap:10px;margin-bottom:15px;padding:12px;display:flex}.designer-lock-note>span{color:var(--green)}.designer-lock-note b,.designer-lock-note small{display:block}.designer-lock-note b{font-size:11px}.designer-lock-note small{margin-top:3px;font-size:9px}.designer-fields{gap:9px;display:grid}.designer-field-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.designer-summary{grid-template-columns:repeat(3,1fr);gap:5px;margin-top:14px;display:grid}.designer-summary span{text-align:center;color:var(--muted);background:#f2f5f2;border-radius:9px;padding:9px 3px;font-size:9px}.designer-summary b{color:var(--ink);font-size:19px;display:block}.print-warning{color:var(--muted);text-align:center;margin-top:9px;line-height:1.5;display:block}.designer-preview{min-width:0}.designer-toolbar{justify-content:space-between;align-items:center;margin-bottom:16px;padding:13px 17px;display:flex}.designer-toolbar b{margin-top:3px;display:block}.designer-toolbar label{align-items:center;gap:8px;display:flex}.designer-toolbar input{width:130px;margin:0}.print-stack{justify-content:center;gap:22px;padding:4px 4px 50px;display:grid;overflow:auto}.designer-sheet{width:calc(210mm * var(--sheet-zoom));height:calc(297mm * var(--sheet-zoom));min-width:calc(210mm * var(--sheet-zoom));color:#050505;background:#fff;font-family:Tahoma,Noto Sans Thai,Arial,sans-serif;position:relative;overflow:hidden;box-shadow:0 12px 45px #102a2120}.designer-sheet>*{transform-origin:0 0}.registration-layer,.paper-content{width:210mm;height:297mm;transform:scale(var(--sheet-zoom));position:absolute;inset:0}.registration-layer{z-index:0}.registration-frame{border:.38mm solid #000;position:absolute;inset:15.1mm 9.8mm 23mm}.registration-corner{clip-path:polygon(0 0,100% 0,100% 45%,45% 45%,45% 100%,0 100%);background:#000;border-radius:.7mm;width:13.2mm;height:13.2mm;position:absolute}.registration-corner.top-right{top:12.1mm;right:6.6mm;transform:rotate(90deg)}.registration-corner.bottom-right{bottom:19.9mm;right:6.6mm;transform:rotate(180deg)}.registration-corner.bottom-left{bottom:19.9mm;left:6.6mm;transform:rotate(270deg)}.registration-divider{border-top:.38mm solid #000;position:absolute;top:104mm;left:9.8mm;right:9.8mm}.paper-content{z-index:1;flex-direction:column;padding:21mm 18mm 24mm;font-size:2.5mm;line-height:1.35;display:flex}.paper-title-row{justify-content:space-between;align-items:center;margin-bottom:2.5mm;display:flex}.paper-title-row h2{margin:0 0 0 34mm;font-size:4.3mm}.paper-state-boxes{border:.25mm solid #000;display:flex}.paper-state-boxes>span{border-right:.25mm solid #000;align-items:center;gap:1.5mm;height:7mm;padding:1.1mm 1.8mm;font-size:1.85mm;display:flex}.paper-state-boxes>span:last-child{border:0}.omr-bubble{background:#fff;border:.28mm solid #000;border-radius:50%;flex:none;place-items:center;width:4.2mm;height:4.2mm;font-size:2mm;font-weight:400;line-height:1;display:inline-grid}.omr-bubble.filled{color:#fff;background:#000}.paper-identity{grid-template-columns:1.12fr .88fr;gap:6mm;display:grid}.paper-fields{border:.3mm solid #000}.paper-fields>div{border-bottom:.25mm solid #000;grid-template-columns:17mm 1fr;min-height:8.8mm;display:grid}.paper-fields>div:last-child{border:0}.paper-fields b{border-right:.25mm solid #000;place-items:center;font-size:2.6mm;display:grid}.paper-fields span{padding:1.7mm 2.2mm;font-size:2.7mm;line-height:1.65}.candidate-grids{grid-template-columns:1fr 20mm;gap:4mm;display:grid}.student-grid,.seat-grid{border:.3mm solid #000}.student-grid>b,.seat-grid>b{text-align:center;border-bottom:.25mm solid #000;font-size:2.8mm;display:block}.student-columns,.seat-columns{display:flex}.student-columns>div,.seat-columns>div{border-right:.2mm solid #000;flex-direction:column;flex:1;align-items:center;gap:.55mm;display:flex}.student-columns>div:last-child,.seat-columns>div:last-child{border:0}.student-columns strong,.seat-columns strong{height:4mm}.identity-note{margin:2mm 0;font-size:1.55mm;text-decoration:underline}.paper-ack{text-align:center;grid-template-columns:26mm 1fr 55mm;align-items:end;gap:4mm;height:19mm;display:grid}.paper-qr{text-align:left;align-items:center;gap:3mm;display:flex}.paper-qr img{width:16mm;height:16mm;image-rendering:pixelated}.paper-qr u{white-space:nowrap;font-size:1.7mm}.paper-ack>div:nth-child(2),.paper-ack>div:nth-child(3){border:.25mm solid #000;min-height:13mm;padding:2.2mm 1.5mm;font-size:1.8mm}.paper-set-row{border:.3mm solid #000;grid-template-columns:28mm 48mm 1fr;height:15mm;margin:8mm 0 4mm;display:grid}.paper-set-row>b{border-right:.25mm solid #000;place-items:center;font-size:2.5mm;display:grid}.paper-set-row>div{border-right:.25mm solid #000;flex-wrap:wrap;justify-content:center;align-items:center;gap:1.4mm;padding:1mm;display:flex}.paper-set-row>div>span{align-items:center;gap:.7mm;font-size:1.65mm;display:flex}.paper-set-row .omr-bubble{width:3.6mm;height:3.6mm;font-size:1.6mm}.paper-set-row p{margin:0;padding:2mm;font-size:1.65mm;line-height:1.5}.paper-answers{flex:1;min-height:0}.paper-answers h4{margin:0 0 3mm;font-size:3.1mm}.paper-answer-columns{justify-content:center;gap:8mm;display:grid}.paper-answer-columns.columns-1{grid-template-columns:max-content}.paper-answer-columns.columns-2{grid-template-columns:repeat(2,max-content);gap:18mm}.paper-answer-columns.columns-4{grid-template-columns:repeat(4,max-content);gap:6mm}.paper-answer-heading,.paper-answer-row{grid-template-columns:10mm repeat(var(--options,5),5.5mm);align-items:center;display:grid}.paper-answer-heading b{text-align:center;font-size:2.7mm}.paper-answer-row strong{text-align:right;padding-right:2mm;font-size:2.6mm}.paper-answer-row .omr-bubble{justify-self:center;width:3.8mm;height:3.8mm;font-size:1.7mm}.paper-answer-column .paper-answer-heading>:nth-child(n+13),.paper-answer-column .paper-answer-row>:nth-child(n+13){display:none}.paper-page-footer{background:#fff;border:.25mm solid #000;align-items:center;min-height:5.5mm;display:flex;position:absolute;bottom:23.8mm;left:68mm}.paper-page-footer>span{border-right:.2mm solid #000;padding:1mm 2mm}.paper-page-footer .omr-bubble{width:3.5mm;height:3.5mm;margin:0 .8mm;font-size:1.55mm}.paper-page-footer>b{padding:0 1.5mm;font-size:1.8mm}.paper-continuation-header{min-height:37mm}.continuation-code{align-items:center;gap:.75mm;margin:0 8mm 5mm;display:flex}.continuation-code .omr-bubble{width:3.5mm;height:3.5mm;font-size:1.55mm}.continuation-identity{border:.3mm solid #000;grid-template-columns:1fr 20mm;width:82mm;margin-left:auto;display:grid}.continuation-identity>span{border-right:.25mm solid #000;padding:2mm;line-height:2}.continuation-identity>span:last-child{text-align:center;border:0}.continuation-identity strong{font-size:4mm}.paper-continuation-header h3{margin:6mm 0 2mm;font-size:3.4mm}.paper-answers.continuation{padding:5mm 5mm 0}.paper-answers.continuation .paper-answer-columns{justify-content:start}.paper-answers.continuation .paper-answer-columns.columns-2{grid-template-columns:repeat(2,1fr);gap:12mm}.paper-answers.continuation .paper-answer-columns.columns-4{grid-template-columns:repeat(4,1fr);gap:4mm}.print-scale-control{border:1px solid var(--line);background:#f8faf8;border-radius:9px;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;padding:10px 12px;display:flex}.print-scale-control>span{white-space:nowrap;align-items:center;gap:6px;display:flex}.print-scale-control input{text-align:center;width:70px;margin:0}@media (max-width:1050px){.designer-workspace{grid-template-columns:1fr}.designer-controls{position:static}.designer-sheet{--sheet-zoom:.62!important}}@media (max-width:760px){.designer-field-grid{grid-template-columns:1fr}.designer-toolbar{flex-direction:column;align-items:flex-start;gap:12px}.designer-sheet{--sheet-zoom:.43!important}.print-stack{justify-content:start}}@media print{@page{size:A4 portrait;margin:0}html,body{background:#fff!important}body *{visibility:hidden!important}.print-stack,.print-stack *{visibility:visible!important}.print-stack{padding:0;display:block;position:absolute;top:0;left:0;overflow:visible}.designer-sheet{break-inside:avoid;page-break-inside:avoid;width:210mm;min-width:210mm;height:296.8mm;box-shadow:none;transform:translate(var(--print-offset-x,0mm),var(--print-offset-y,0mm)) scale(var(--print-scale,1));transform-origin:0 0;break-after:page;page-break-after:always;overflow:hidden;--sheet-zoom:1!important}.designer-sheet:last-child{break-after:auto;page-break-after:auto}}.paper-answer-column .paper-answer-heading,.paper-answer-column .paper-answer-row{grid-template-columns:10mm repeat(var(--option-count), 5.5mm)}@font-face{font-family:TH Sarabun New;src:url(/fonts/THSarabunNew.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:TH Sarabun New;src:url(/fonts/THSarabunNew-Bold.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:OMR Circles;src:url(/fonts/OMRCircles.ttf)format("truetype");font-weight:400;font-style:normal;font-display:block}.designer-sheet{font-family:TH Sarabun New,Tahoma,Noto Sans Thai,Arial,sans-serif}.designer-mode-tabs{background:#f3f6f4;border:1px solid #dce5df;border-radius:12px;grid-template-columns:repeat(3,1fr);margin-bottom:10px;padding:3px;display:grid}.designer-mode-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;padding:8px 4px;font-family:inherit;font-size:10px;font-weight:700}.designer-mode-tabs button.active{color:var(--ink);background:#fff;box-shadow:0 2px 8px #16332614}.designer-mode-note{border:1px solid #dbe7df;border-left:4px solid var(--green);background:#f5faf6;border-radius:10px;margin-bottom:10px;padding:10px 11px}.designer-mode-note.spare{background:#fff9ec;border-color:#eddcb6 #eddcb6 #eddcb6 #b47a12}.designer-mode-note.blank{background:#f7f8f7;border-left-color:#68756e}.designer-mode-note b,.designer-mode-note small{display:block}.designer-mode-note b{font-size:11px}.designer-mode-note small{color:var(--muted);margin-top:3px;font-size:9px;line-height:1.55}.designer-toggle{background:#fff;border:1px solid #d9e4dc;border-radius:10px;align-items:center;gap:10px;margin-bottom:12px;padding:10px 11px;display:flex!important}.designer-toggle.disabled{opacity:.48}.designer-toggle input{height:16px;accent-color:var(--green);width:16px!important;margin:0!important}.designer-toggle span,.designer-toggle b,.designer-toggle small{display:block}.designer-toggle b{font-size:10px}.designer-toggle small{color:var(--muted);margin-top:2px;font-size:8.5px}.designer-set-options{background:#f8faf8;border:1px solid #d9e4dc;border-radius:10px;margin-bottom:12px;padding:8px}.designer-set-options .designer-toggle{background:0 0;border:0;margin-bottom:7px;padding:3px 2px}.designer-set-label-tabs{grid-template-columns:1fr 1fr;gap:5px;display:grid}.designer-set-label-tabs button{min-height:34px;color:var(--muted);background:#fff;border:1px solid #cad8cf;border-radius:8px;font-size:10px;font-weight:700}.designer-set-label-tabs button.active{border-color:var(--green);background:var(--green);color:#fff}.designer-set-options .designer-set-label-note{color:var(--muted);margin:2px 2px 0;font-size:10px;line-height:1.5}.designer-set-options .designer-set-label-note b{color:var(--ink);font-size:inherit}.designer-part-options{background:#f8faf8;border:1px solid #d9e4dc;border-radius:10px;gap:8px;padding:10px;display:grid}.designer-part-options>span,.designer-part-options b,.designer-part-options small{display:block}.designer-part-options b{font-size:10px}.designer-part-options small{color:var(--muted);margin-top:2px;font-size:8.5px;line-height:1.45}.designer-part-options>div{grid-template-columns:1fr 1fr;gap:5px;display:grid}.designer-part-options button{min-height:34px;color:var(--muted);background:#fff;border:1px solid #cad8cf;border-radius:8px;font-size:10px;font-weight:700}.designer-part-options button.active{border-color:var(--green);background:var(--green);color:#fff}.candidate-inputs{border:1px solid #dfe7e2;border-radius:10px;gap:9px;margin:2px 0 0;padding:10px;display:grid}.candidate-inputs:disabled{opacity:.48;background:#f5f6f5}.candidate-inputs legend{color:var(--muted);padding:0 6px;font-size:9px;font-weight:700}.designer-field-grid.three{grid-template-columns:.7fr 1fr 1fr}.qr-contract{color:#fff;background:#12251e;border-radius:10px;padding:11px}.qr-contract b,.qr-contract code,.qr-contract small{display:block}.qr-contract b{font-size:10px}.qr-contract code{overflow-wrap:anywhere;color:#cbf1dc;margin:6px 0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:7.5px;line-height:1.45}.qr-contract small{color:#a9c0b4;font-size:8px;line-height:1.45}.qr-contract.inactive{color:var(--ink);background:#eef2ef}.qr-contract.inactive small{color:var(--muted);margin-top:5px}.paper-title-row{margin-bottom:2.8mm}.paper-title-row h2{letter-spacing:.05mm;margin-left:33mm;font-size:5.2mm;font-weight:700}.paper-state-boxes>span{height:7.4mm;padding:.8mm 1.5mm;font-size:2.2mm}.paper-state-boxes .omr-bubble{width:4mm;height:4mm}.paper-fields>div{min-height:9.4mm}.paper-fields>div.subject-field{min-height:21mm}.student-grid>b,.seat-grid>b{padding:.25mm 0;font-size:3.1mm}.student-columns strong,.seat-columns strong{place-items:center;height:4.5mm;font-size:3.2mm;line-height:1;display:grid}.identity-note{margin:1.8mm 0 1.5mm;font-size:1.8mm}.paper-ack{grid-template-columns:42mm 1fr 55mm;align-items:center;gap:0;height:20mm}.paper-qr{gap:2.5mm;height:20mm;text-align:left!important;border:0!important;padding:0!important}.paper-qr img{border:.25mm solid #000;width:19mm;height:19mm}.paper-qr>span{flex-direction:column;gap:1.2mm;display:flex}.paper-qr small{max-width:20mm;font-size:1.45mm;line-height:1.15}.paper-qr-empty{visibility:hidden}.paper-ack>div:nth-child(2),.paper-ack>div:nth-child(3){place-items:center;min-height:15mm;font-size:2mm;display:grid}.paper-set-row{margin-top:8.5mm}.paper-set-row>b{font-size:3mm}.paper-set-row p{font-size:1.8mm}.paper-set-row>div>span{font-size:2mm}.paper-answer-row strong{font-size:2.9mm}.continuation-code{gap:.7mm;min-height:5mm}.continuation-code>span{margin-left:1.5mm;font-size:2mm;font-weight:700}.continuation-identity>span{font-size:2.5mm}.continuation-identity>span>strong{font-size:2.8mm}@media (max-width:760px){.designer-field-grid.three{grid-template-columns:1fr}}.designer-fields input,.designer-fields select{font-weight:400}.designer-structure-summary{background:#f5faf6;border:1px solid #d9e5dd;border-radius:10px;gap:6px;padding:11px;display:grid}.designer-structure-summary>b{font-size:10px}.designer-structure-summary>span{color:var(--muted);border-top:1px solid #e1ebe5;justify-content:space-between;gap:8px;padding-top:6px;font-size:8.5px;display:flex}.designer-structure-summary strong{color:var(--ink)}.designer-structure-summary small{color:var(--green);font-size:8px;line-height:1.45}.paper-part-sections{justify-content:center;align-items:flex-start;gap:7mm;height:100%;display:flex}.paper-answer-part{width:max-content;min-width:0}.paper-answer-part>h4{border-bottom:.3mm solid #000;justify-content:space-between;align-items:baseline;gap:5mm;padding:1.2mm 2mm;display:flex;margin:0 0 2mm!important;font-size:3.2mm!important}.paper-answer-part>h4 small{font-size:1.8mm;font-weight:400}.paper-answer-part .paper-answer-columns{justify-content:start}.paper-answers.continuation .paper-part-sections{justify-content:flex-start}.roster-source-state{color:var(--muted);background:#f4f7f5;border-radius:8px;gap:7px;padding:10px;font-size:9px;line-height:1.5;display:grid}.roster-source-state b{color:var(--ink);font-size:10px}.roster-source-state small{display:block}.roster-source-state.error{color:#a23d31;background:#fff1ef}.roster-person-summary{background:#eef6f1;border-radius:8px;grid-template-columns:1fr auto;gap:2px 8px;padding:9px 10px;display:grid}.roster-person-summary b{font-size:11px}.roster-person-summary span{color:var(--green);font-size:9px;font-weight:700}.roster-person-summary small{color:var(--muted);grid-column:1/-1;font-size:8.5px}.roster-count{color:var(--muted);border:1px solid #dfe7e2;border-radius:8px;place-items:center;font-size:8.5px;display:grid}.roster-count b{color:var(--green);font-size:16px}.designer-batch-print{margin-top:8px}.button-spinner,.inline-spinner,.loading-spinner,.paper-qr-pending>i{border-style:solid;border-color:#d5e2da;border-top-color:var(--green);border-radius:50%;animation:.75s linear infinite spin;display:inline-block}.button-spinner{vertical-align:-2px;border-width:2px;width:13px;height:13px;margin-right:7px}.inline-spinner{border-width:3px;width:24px;height:24px}.loading-state{grid-template-columns:auto 1fr;align-items:center}.loading-state div{min-width:0}.loading-state b,.loading-state small{display:block}.print-loading-overlay{z-index:120;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#102a21b8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.print-loading-card{text-align:center;background:#fff;border:1px solid #dce8df;border-radius:20px;width:min(500px,100vw - 32px);padding:30px 32px 28px;box-shadow:0 30px 90px #07140f66}.loading-spinner{border-width:4px;width:46px;height:46px;margin:0 auto 17px;display:block}.print-loading-card h2{margin:0;font-size:21px}.print-loading-card p{color:var(--muted);margin:8px 0 17px;font-size:12px;line-height:1.6}.print-loading-card progress{width:100%;height:12px;accent-color:var(--green);margin:0;display:block}.print-loading-card small{color:var(--muted);font-size:10px;line-height:1.5;display:block}.cancel-batch-print{margin-top:11px;font-size:12px}.paper-qr-pending,.paper-qr-error{text-align:center;align-content:center;place-items:center;gap:1mm;width:100%;height:100%;font-size:1.45mm;display:grid}.paper-qr-pending>i{border-width:.55mm;width:4mm;height:4mm}.batch-print-stack .designer-sheet{content-visibility:auto;contain-intrinsic-size:210mm 297mm}@media print{.batch-print-stack .designer-sheet{content-visibility:visible;contain-intrinsic-size:none}}.registration-divider{top:102.4mm}.paper-title-row{grid-template-columns:95mm 73mm;align-items:stretch;gap:6mm;height:7.2mm;margin:0 0 2.3mm;display:grid}.paper-title-row h2{letter-spacing:0;place-items:center;margin:0;font-size:4.5mm;font-weight:700;line-height:1;display:grid}.paper-state-boxes>span{white-space:nowrap;justify-content:center;gap:1mm;height:6.95mm;padding:.65mm 1.15mm;font-size:1.85mm}.paper-state-boxes .omr-bubble{width:3.8mm;height:3.8mm;font-size:1.8mm}.paper-fields-column{width:95mm;min-width:0}.paper-fields{width:95mm}.paper-fields>div{grid-template-columns:17mm 1fr;height:9.25mm;min-height:0}.paper-fields>div.subject-field{height:18.25mm;min-height:0}.paper-fields span{align-items:center;padding:1.2mm 2mm;font-size:3.05mm;line-height:1.45;display:flex}.paper-fields .subject-field span{padding-top:1.8mm;display:block}.identity-note{white-space:nowrap;width:95mm;margin:1.95mm 0 0;padding:0;font-size:1.35mm;line-height:1.1;display:block;overflow:visible}.candidate-grids{grid-template-columns:51mm 18mm;gap:4mm;width:73mm}.student-grid,.seat-grid{width:100%}.student-grid>b,.seat-grid>b{place-items:center;height:5.8mm;padding:0;font-size:2.9mm;line-height:1;display:grid}.student-columns strong,.seat-columns strong{height:4.1mm;font-size:3.05mm}.student-columns>div,.seat-columns>div{gap:.63mm}.student-columns .omr-bubble,.seat-columns .omr-bubble{width:3.6mm;height:3.6mm;font-size:1.65mm}.printed-seat-grid{grid-template-rows:5.8mm minmax(0,1fr);align-self:start;min-width:0;height:17mm;display:grid}.printed-seat-code{letter-spacing:.35mm;white-space:nowrap;place-items:center;min-width:0;padding:.4mm .4mm 0;font-size:8mm;font-weight:700;line-height:1;display:grid}.paper-ack{text-align:center;grid-template-columns:45mm 61.5mm 55mm;align-items:center;gap:0;width:161.5mm;height:17mm}.paper-qr{gap:2.8mm;height:17mm}.paper-ack>div:nth-child(2),.paper-ack>div:nth-child(3){height:11.5mm;min-height:11.5mm;padding:1mm;font-size:1.75mm;line-height:1.25}.paper-set-row{grid-template-columns:50mm 1fr;height:12mm;margin:6.7mm 0 4mm}.paper-set-row>.paper-set-control{border-right:.25mm solid #000;grid-template-rows:6mm 1fr;justify-content:stretch;align-items:stretch;gap:0;padding:0;display:grid}.paper-set-control>b{border-bottom:.25mm solid #000;place-items:center;font-size:2.7mm;line-height:1;display:grid}.paper-set-control>div{justify-content:center;align-items:center;gap:4mm;display:flex}.paper-set-control>div>span{align-items:center;gap:1.4mm;font-size:2.15mm;display:flex}.paper-set-control .omr-bubble{width:3.7mm;height:3.7mm;font-size:1.65mm}.paper-set-row p{padding:1.6mm 2.2mm;font-size:1.55mm;line-height:1.35}.omr-bubble{color:#000;font-synthesis:none;letter-spacing:0;background:0 0;border:0;border-radius:0;font-family:OMR Circles,sans-serif;font-size:4.2mm;font-weight:400;line-height:1}.omr-bubble.filled{color:#000!important;background:0 0!important;border-color:#0000!important}.student-columns .omr-bubble,.seat-columns .omr-bubble{font-size:3.6mm}.paper-set-control .omr-bubble{font-size:3.7mm}.paper-page-footer .omr-bubble,.continuation-code .omr-bubble{font-size:3.5mm}.paper-content{font-size:3.15mm;line-height:1.28}.paper-title-row h2{font-size:5.4mm}.paper-state-boxes>span{font-size:2.15mm}.paper-fields b{font-size:3.25mm}.paper-fields span{font-size:3.55mm;line-height:1.35}.identity-note{font-size:1.65mm;line-height:1.2}.student-grid>b,.seat-grid>b{font-size:3.35mm}.paper-ack>div:nth-child(2),.paper-ack>div:nth-child(3){font-size:2.15mm;line-height:1.3}.paper-qr u{font-size:1.9mm}.paper-set-control>b{font-size:3.25mm}.paper-part-sections{align-items:stretch;gap:10mm}.paper-answer-part{border:.35mm solid #000;align-self:flex-start;padding:0 2.4mm 2.8mm}.paper-answer-part>h4{border-bottom:.3mm solid #000;min-height:7mm;padding:.8mm 2.4mm;line-height:1;margin:0 -2.4mm 2mm!important;font-size:4.35mm!important}.paper-answer-part>h4 small{font-size:2.4mm}.paper-answer-columns.columns-2{gap:10mm}.paper-answer-heading b{font-size:3.55mm;line-height:1}.paper-answer-row strong{padding-right:1.5mm;font-size:3.45mm;line-height:1}.paper-page-footer>span{font-size:2.2mm}.paper-page-footer>b{font-size:2.1mm}.registration-timing-track{width:2.6mm;position:absolute;top:30mm;bottom:40mm}.registration-timing-track>i{background:#000;width:2.6mm;height:1.8mm;position:absolute;left:0;transform:translateY(-50%)}.designer-sheet{--paper-ink:#090909;--paper-rule:#1a1a1a;--paper-rule-inner:.28mm;--paper-rule-outer:.42mm;--paper-body-size:4.15mm;color:var(--paper-ink);-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff}.paper-content,.paper-title-row,.paper-state-boxes,.paper-fields,.candidate-grids,.student-grid,.seat-grid,.paper-ack,.paper-set-row,.paper-answer-part{color:var(--paper-ink);background:#fff}.paper-content{background:0 0}.paper-title-row h2{font-size:5.7mm;font-weight:700;line-height:1}.paper-state-boxes{border-width:var(--paper-rule-outer);border-color:var(--paper-rule)}.paper-state-boxes>span{border-right-width:var(--paper-rule-inner);border-right-color:var(--paper-rule);font-size:2.4mm;font-weight:700}.paper-fields,.student-grid,.seat-grid{border-width:var(--paper-rule-outer);border-color:var(--paper-rule)}.paper-fields>div{border-bottom-width:var(--paper-rule-inner);border-bottom-color:var(--paper-rule)}.paper-fields b{border-right-width:var(--paper-rule-inner);border-right-color:var(--paper-rule);font-size:3.8mm}.paper-fields span{font-size:var(--paper-body-size);padding:.65mm 1.2mm;line-height:1.15}.paper-fields>div:not(.subject-field) span{align-items:center;display:flex}.paper-fields>div.subject-field span{padding-top:.9mm;padding-bottom:.7mm}.student-grid>b,.seat-grid>b{border-bottom-width:var(--paper-rule-inner);border-bottom-color:var(--paper-rule);font-size:3.9mm}.student-columns>div,.seat-columns>div{box-sizing:border-box;border-right-width:.22mm;border-right-color:var(--paper-rule);gap:.432mm;padding-bottom:.432mm}.student-columns strong,.seat-columns strong{box-sizing:border-box;border-bottom:var(--paper-rule-inner) solid var(--paper-rule);place-items:center;width:100%;height:4.5mm;padding-top:.35mm;font-size:4.4mm;line-height:1;display:grid}.identity-note{color:var(--paper-ink);font-size:1.85mm}.paper-qr img{border-width:var(--paper-rule-inner);border-color:var(--paper-rule)}.paper-qr u{color:var(--paper-ink);font-size:2.1mm}.paper-qr small{color:var(--paper-ink);font-size:1.6mm}.paper-ack>div:nth-child(2),.paper-ack>div:nth-child(3){border-width:var(--paper-rule-inner);border-color:var(--paper-rule);font-size:2.4mm;line-height:1.25}.paper-ack>div:nth-child(3){border-left:0}.paper-set-row{border-width:var(--paper-rule-outer);border-color:var(--paper-rule)}.paper-set-row>.paper-set-control{border-right-width:var(--paper-rule-inner);border-right-color:var(--paper-rule)}.paper-set-control>b{border-bottom-width:var(--paper-rule-inner);border-bottom-color:var(--paper-rule);font-size:3.45mm}.paper-set-control>div>span{font-size:2.6mm}.paper-set-row p{font-size:2.35mm;line-height:1.3}.paper-answer-part{border-width:var(--paper-rule-outer);border-color:var(--paper-rule)}.paper-answer-part>h4{border-bottom-width:.34mm;border-bottom-color:var(--paper-rule);font-weight:700;font-size:4.75mm!important}.paper-answer-part>h4 small{color:var(--paper-ink);font-size:2.6mm}.paper-answer-heading b{font-size:3.7mm}.paper-answer-row strong{font-size:3.6mm;font-weight:700}.paper-page-footer{border-width:var(--paper-rule-inner);border-color:var(--paper-rule)}.registration-frame{inset:15.1mm 9.8mm 23mm}.registration-corner{width:13.2mm;height:13.2mm}.registration-corner.top-left{top:12.1mm;left:6.6mm}.registration-corner.top-right{top:12.1mm;right:6.6mm}.registration-corner.bottom-right{bottom:19.9mm;right:6.6mm}.registration-corner.bottom-left{bottom:19.9mm;left:6.6mm}.registration-divider{border-top-width:.65mm;top:92.86mm;left:9.8mm;right:9.8mm}.registration-timing-track{top:30mm;bottom:40mm}.registration-timing-track.left{left:5.4mm}.registration-timing-track.right{right:5.4mm}.paper-content{padding:21mm 18mm 24mm}.paper-fixed-zone{box-sizing:border-box;flex:0 0 84mm;height:84mm;min-height:84mm;max-height:84mm}.paper-first-header{box-sizing:border-box;flex:0 0 72mm;height:72mm;min-height:72mm;max-height:72mm}.paper-title-row{grid-template-columns:95mm 73mm;justify-content:start;gap:6mm;height:6.4mm;margin-bottom:.6mm}.paper-state-boxes{justify-self:end;width:max-content;max-width:73mm;height:6.4mm}.paper-state-boxes>span{box-sizing:border-box;flex:none;align-items:center;gap:.65mm;height:100%;padding:0 .8mm;line-height:1}.paper-state-label{line-height:1;display:inline-block;transform:translateY(-.2mm)}.paper-state-boxes .omr-bubble{font-size:3.65mm}.paper-identity{grid-template-columns:95mm 73mm;gap:6mm}.paper-fields-column,.paper-fields,.identity-note{width:95mm}.paper-fields>div{grid-template-columns:17mm 1fr}.paper-fields span{padding-left:2.2mm;padding-right:1.2mm}.paper-fields>div>span{box-sizing:border-box;min-width:0;overflow:hidden}.paper-fields>div:not(.subject-field)>span{white-space:nowrap;text-overflow:ellipsis}.paper-fields>div.subject-field>span{max-height:18.25mm}.paper-fields .subject-copy{grid-template-rows:auto auto;align-content:center;row-gap:1mm;padding:.7mm 1.2mm .7mm 2.2mm!important;line-height:1.05!important;display:grid!important}.paper-fields .subject-copy>.subject-name{-webkit-line-clamp:2;line-clamp:2;min-width:0;max-height:8.8mm;font:inherit;-webkit-box-orient:vertical;line-height:1.05;display:-webkit-box;overflow:hidden;padding:0!important}.paper-fields .subject-copy>.subject-term{min-width:0;font:inherit;white-space:nowrap;text-overflow:ellipsis;line-height:1.05;display:block;overflow:hidden;padding:0!important}.candidate-grids{grid-template-rows:17mm minmax(0,1fr);grid-template-columns:51mm 18mm;gap:0 4mm;width:73mm}.student-grid{grid-row:1/3;align-self:start}.candidate-qr{box-sizing:border-box;text-align:center;flex-direction:column;justify-content:center;align-self:stretch;align-items:center;gap:1mm;height:auto;display:flex}.candidate-qr u{white-space:normal;font-size:1.8mm;line-height:1.1}.paper-ack{grid-template-columns:44mm 64mm 66mm;width:174mm;height:11.8mm;margin-top:.5mm}.paper-qr{height:11.8mm}.paper-qr.candidate-qr{height:auto}.paper-qr img{width:9.2mm;height:9.2mm}.paper-qr.candidate-qr img{box-sizing:border-box;aspect-ratio:1;width:12.5mm;max-width:100%;height:auto}.paper-ack>.paper-set-control{box-sizing:border-box;border:var(--paper-rule-outer) solid var(--paper-rule);grid-template-rows:4.6mm minmax(0,1fr);align-self:center;width:44mm;height:11.8mm;min-height:0;display:grid;overflow:hidden}.paper-ack>div:nth-child(2),.paper-ack>div:nth-child(3){box-sizing:border-box;border-width:var(--paper-rule-outer);height:11.8mm;min-height:11.8mm;padding:.4mm 1mm;font-size:2.7mm;line-height:1.2}.paper-ack>div:nth-child(2){border-left:0}.paper-ack>.paper-signature{align-content:end;justify-items:center;padding:.4mm 1mm .65mm;font-size:2.8mm}.paper-set-row{box-sizing:border-box;grid-template-columns:1fr;height:11mm;margin:1mm 0 0}.paper-set-row>.paper-set-control{box-sizing:border-box;grid-template-rows:4.6mm minmax(0,1fr);height:100%;min-height:0;display:grid;overflow:hidden}.paper-set-control>b{box-sizing:border-box;min-height:0;padding:0;line-height:1}.paper-set-control>b>span{display:block;transform:translateY(-.25mm)}.paper-set-control>div{box-sizing:border-box;justify-content:center;align-items:center;gap:1.4mm;height:auto;min-height:0;padding:0;line-height:1;display:flex}.paper-set-option{flex:0 0 4.6mm;place-items:center;width:4.6mm;min-width:0;height:100%;line-height:1;display:grid;position:relative;transform:translateY(-.25mm)}.paper-set-option>small{white-space:nowrap;font-size:3.35mm;font-weight:400;line-height:1;position:absolute;right:calc(50% + 2.35mm)}.paper-set-option>.omr-bubble{line-height:1}.paper-set-control.full-width>div{grid-template-columns:repeat(var(--set-count),minmax(0,1fr));gap:0;width:100%;display:grid}.paper-set-control.full-width .paper-set-option{width:auto}.paper-set-control.without-labels .paper-set-option>small{display:none}.paper-set-control.full-width .omr-bubble{font-size:3.35mm}.designer-sheet .paper-set-row p{box-sizing:border-box;min-height:0;font-size:var(--paper-body-size);align-items:center;padding:.7mm 2mm;line-height:1.15;display:grid}.paper-instruction{display:block;transform:translateY(-.2mm)}.paper-set-row p .omr-bubble{vertical-align:-.75mm;margin:0 .65mm;font-size:3.7mm;display:inline-block}.paper-fixed-zone+.paper-answers{box-sizing:border-box;padding-top:1.2mm}.paper-part-sections{gap:10mm}.paper-answers.single-part .paper-answer-part{border:0;padding:0}.paper-answers.single-part .paper-answer-part>h4{display:none}.paper-answer-part{padding:0 2mm 2.4mm}.paper-answer-part>h4 small{display:none}.paper-answer-heading,.paper-answer-row,.paper-answer-column .paper-answer-heading,.paper-answer-column .paper-answer-row{grid-template-columns:7.5mm repeat(var(--option-count),4.75mm)}.paper-answer-heading span{width:7.5mm}.paper-answer-row{height:4.2mm}.paper-answer-row strong{padding-right:1mm}.paper-answer-row .omr-bubble{font-size:3.8mm}.paper-page-footer{align-items:stretch;height:5.5mm;min-height:5.5mm;bottom:25mm;left:50%;transform:translate(-50%)}.paper-page-footer>span:not(.omr-bubble),.paper-page-footer>b{box-sizing:border-box;place-items:center;height:100%;padding:0 1.5mm;display:grid}.paper-page-footer>span:not(.omr-bubble){border-right:var(--paper-rule-inner) solid var(--paper-rule)}.paper-page-footer>.omr-bubble{box-sizing:border-box;border-right:0;align-self:center;padding:0!important}.paper-part-sections{align-items:flex-start}.paper-answer-part{flex-direction:column;align-self:flex-start;display:flex}.paper-answer-columns{flex:none;align-items:start}.paper-answers.first{box-sizing:border-box;padding-bottom:8mm}.paper-answer-column{flex-direction:column;justify-content:flex-start;min-height:0;display:flex}.paper-answer-row{flex:0 0 4.2mm;height:4.2mm;min-height:4.2mm}.designer-sheet,.designer-sheet *{font-family:TH Sarabun New,Tahoma,Noto Sans Thai,Arial,sans-serif}.designer-sheet .omr-bubble{font-family:OMR Circles,sans-serif;font-size:3.8mm!important}.paper-state-boxes{height:5.9mm}.paper-state-boxes>span{gap:.4mm;padding:0 .55mm}.student-columns>div,.seat-columns>div{gap:.28mm;padding-bottom:.28mm}.paper-set-control>div{gap:3mm}.paper-set-option{flex-basis:4.8mm;width:4.8mm}.paper-set-option>small{font-size:3.35mm;right:calc(50% + 2.7mm)}.paper-set-control.full-width .paper-set-option>small{font-size:3.35mm;right:calc(50% + 2.8mm)}.paper-set-row p .omr-bubble{vertical-align:-.65mm;margin:0 .45mm}.paper-part-sections{flex-wrap:wrap;place-content:flex-start center;align-items:flex-start;gap:4mm 5mm;width:100%;height:auto;display:flex}.paper-answer-part{flex:none;max-width:100%;padding:0 1.6mm 1.8mm}.paper-answer-part>h4{min-height:5.8mm;padding:.45mm 1.6mm;margin:0 -1.6mm 1mm!important}.paper-answer-columns,.paper-answer-columns.columns-2{gap:5.5mm}.paper-answer-heading{margin-bottom:.45mm}.paper-answer-row{flex-basis:4.05mm;height:4.05mm;min-height:4.05mm}.paper-answer-columns{grid-template-columns:repeat(var(--answer-column-count),max-content)}@media screen{.designer-preview{position:relative}.print-stack:not(.batch-print-stack){padding-top:44px;position:relative}.print-stack:not(.batch-print-stack) .designer-sheet.preview-inactive{display:none}.preview-page-navigation{z-index:5;pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:absolute;inset:0 4px 50px}.preview-page-navigation>strong{color:var(--muted);background:#fff;border:1px solid #d8e2dc;border-radius:999px;padding:7px 12px;font-size:10px;position:absolute;top:8px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #102a2114}.preview-page-navigation button{min-width:54px;min-height:54px;color:var(--green);cursor:pointer;pointer-events:auto;background:#fff;border:1px solid #bfd0c5;border-radius:50%;justify-content:center;align-items:center;gap:6px;font-family:inherit;font-size:31px;font-weight:700;line-height:1;display:flex;box-shadow:0 8px 24px #102a2124}.preview-page-navigation button span{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.preview-page-navigation button:disabled{opacity:.32;cursor:not-allowed}}@media print{.preview-page-navigation{display:none!important}.print-stack .designer-sheet.preview-inactive{display:block!important}}.batch-print-options{background:#f5faf6;border:1px solid #d9e5dd;border-radius:10px;gap:8px;margin-top:10px;padding:11px;display:grid}.batch-print-options>b{font-size:10px}.batch-print-options label{font-size:9px}.batch-print-options small{color:var(--muted);font-size:8.5px;line-height:1.5}.batch-print-range-fields{grid-template-columns:1fr 1fr;gap:8px;display:grid}.preview-candidate-panel{gap:10px;margin-bottom:12px;padding:13px 17px;display:grid}.preview-candidate-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.preview-candidate-heading b{margin-top:3px;font-size:13px;display:block}.preview-candidate-heading>span{color:var(--green);white-space:nowrap;background:#edf5f0;border-radius:999px;padding:6px 10px;font-size:10px;font-weight:700}.preview-candidate-grid{grid-template-columns:minmax(150px,.7fr) minmax(280px,1.5fr) auto auto;align-items:end;gap:9px;display:grid}.preview-candidate-grid label,.preview-candidate-summary label{gap:5px;font-size:9px;font-weight:700;display:grid}.preview-candidate-grid input,.preview-candidate-grid select,.preview-candidate-summary select{min-height:38px;margin:0;font-weight:400}.candidate-step-button{white-space:nowrap;min-height:38px;padding:8px 12px}.preview-candidate-summary{grid-template-columns:minmax(0,1fr) minmax(150px,.34fr);align-items:stretch;gap:9px;display:grid}.preview-candidate-summary .roster-person-summary{grid-template-columns:1fr auto;padding:8px 10px}@media (max-width:1200px){.preview-candidate-grid{grid-template-columns:1fr 1fr}.candidate-step-button{width:100%}}@media (max-width:760px){.preview-candidate-grid,.preview-candidate-summary{grid-template-columns:1fr}}.answer-sheet-print-root{display:none}@media print{body:has(>.answer-sheet-print-root)>:not(.answer-sheet-print-root){display:none!important}.answer-sheet-print-root{display:block}.print-loading-overlay{display:none!important}.print-stack .registration-layer,.print-stack .paper-content,.print-stack.print-scale-full .designer-sheet{transform:none}}:root{--ink:#14251f;--muted:#68766f;--line:#dce3de;--paper:#f4f5f0;--white:#fff;--green:#146b4b;--green2:#dff3e9;--lime:#d9f26a;--red:#c84c43;--amber:#d18a20;--blue:#3d6fb6}*{box-sizing:border-box}html{background:var(--paper)}body{color:var(--ink);background:radial-gradient(circle at 92% 2%,#e5f1e9 0,transparent 28%),var(--paper);margin:0;font-family:Tahoma,Noto Sans Thai,Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.sidebar{color:#fff;z-index:20;background:#102a21;flex-direction:column;width:246px;padding:28px 18px 20px;display:flex;position:fixed;inset:0 auto 0 0}.brand{color:#fff;text-align:left;background:0 0;border:0;align-items:center;gap:11px;padding:0 8px 28px;display:flex}.brand-mark{background:var(--lime);color:#163025;border-radius:13px;place-items:center;width:42px;height:42px;font-weight:900;display:grid}.brand b{font-size:18px;display:block}.brand small{color:#a9beb4;margin-top:2px;font-size:10px;display:block}.sidebar nav{gap:5px;display:grid}.sidebar nav button{color:#c4d2cb;text-align:left;background:0 0;border:0;border-radius:11px;align-items:center;gap:12px;padding:12px 13px;display:flex}.sidebar nav button span{color:#739085;font:10px monospace}.sidebar nav button.active,.sidebar nav button:hover{color:#fff;background:#204238}.sidebar nav button.active span{color:var(--lime)}.side-card{border:1px solid #315247;border-radius:14px;margin-top:auto;padding:14px;font-size:12px}.side-card small{color:#9eb2a9;margin:7px 0 0 17px;line-height:1.5;display:block}.pulse,.live-pill i{background:#77e38d;border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block;box-shadow:0 0 0 4px #77e38d22}.side-foot{color:#71877e;padding:15px 4px 0;font-size:10px}.app-shell>main{min-height:100vh;margin-left:246px}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:10;background:#f9faf6cc;justify-content:space-between;align-items:center;height:82px;padding:0 4vw;display:flex;position:sticky;top:0}.topbar strong{margin-top:3px;font-size:17px;display:block}.eyebrow{color:var(--green);text-transform:uppercase;letter-spacing:.11em;font-size:10px;font-weight:800}.content{max-width:1540px;margin:auto;padding:38px 4vw 70px}.primary,.secondary{border:1px solid var(--green);border-radius:10px;padding:11px 17px;font-weight:700}.primary{background:var(--green);color:#fff}.primary:hover{background:#0f563d}.primary:disabled{opacity:.55;cursor:not-allowed}.secondary{color:var(--green);background:#fff}.compact{padding:9px 14px;font-size:12px}.full{width:100%;margin-top:16px}.text-button,.icon-button{color:var(--green);background:0 0;border:0;font-weight:700}.icon-button{font-size:25px}.menu-button{background:0 0;border:0;font-size:22px;display:none}.hero{border:1px solid var(--line);background:#fff;border-radius:24px;grid-template-columns:1.1fr .9fr;align-items:center;gap:40px;min-height:350px;padding:46px 5%;display:grid;position:relative;overflow:hidden}.hero:after{content:"";border:55px solid #e9f4ed;border-radius:50%;width:240px;height:240px;position:absolute;top:-100px;right:-85px}.hero h1,.scanner-hero h1{letter-spacing:-.05em;margin:12px 0 20px;font-size:clamp(38px,5vw,66px);line-height:1.02}.hero h1 em{color:var(--green);font-style:normal}.hero p,.scanner-hero p{color:var(--muted);max-width:600px;line-height:1.7}.hero-actions{gap:10px;margin-top:25px;display:flex}.flow-card{color:#fff;z-index:1;background:#122f25;border-radius:18px;align-items:center;padding:28px;display:flex;position:relative;box-shadow:0 24px 70px #102a2120}.flow-card div{text-align:center;flex:1}.flow-card div>span{background:var(--lime);color:#173027;border-radius:50%;place-items:center;width:34px;height:34px;margin:0 auto 12px;font-weight:900;display:grid}.flow-card b,.flow-card small{display:block}.flow-card small{color:#93aba1;margin-top:5px;font-size:10px}.flow-card i{background:#496158;width:32px;height:1px}.metrics{grid-template-columns:repeat(4,1fr);gap:14px;margin:16px 0;display:grid}.metrics article,.panel{background:var(--white);border:1px solid var(--line);border-radius:17px}.metrics article{padding:21px}.metrics span,.metrics small{color:var(--muted);font-size:11px;display:block}.metrics strong{margin:9px 0 3px;font-size:31px;display:block}.split{grid-template-columns:1.25fr .75fr;gap:16px;display:grid}.panel{padding:24px}.panel-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.panel-head h2{margin:4px 0 0;font-size:22px}.recent-list>div{border-top:1px solid #edf0ed;align-items:center;gap:13px;padding:13px 0;display:flex}.recent-list>div:first-child{border-top:0}.recent-list div div{flex:1}.recent-list b,.recent-list small{display:block}.recent-list small{color:var(--muted);margin-top:4px;font-size:10px}.status-dot{background:var(--green);border-radius:50%;width:9px;height:9px}.status-dot.review{background:var(--amber)}.status-dot.pending{background:var(--blue)}.paper-note{background:#f3f8db;position:relative;overflow:hidden}.paper-note:after{content:"";background:#faffdf;border:1px solid #bfd084;width:110px;height:145px;position:absolute;bottom:-35px;right:24px;transform:rotate(8deg)}.paper-note p{color:#5d6856;max-width:75%;line-height:1.7}.legend{flex-wrap:wrap;gap:8px;margin-top:17px;display:flex}.legend span,.badge{border-radius:99px;padding:5px 8px;font-size:10px}.legend .correct,.badge.ready{color:#146b4b;background:#dff2e8}.legend .wrong{color:#a83832;background:#f8e1df}.legend .blank{color:#66726c;background:#ecefed}.legend .review,.badge.review{color:#a3650a;background:#fff0d6}.warning-text{color:var(--amber)!important}.workspace-grid{grid-template-columns:290px 1fr;align-items:start;gap:16px;display:grid}.exam-list{position:sticky;top:102px}.exam-list>button:not(.icon-button){text-align:left;background:0 0;border:0;border-top:1px solid #edf0ed;width:100%;padding:14px 10px}.exam-list>button.selected{color:var(--green);background:#eef7f1;border-radius:10px}.exam-list button b,.exam-list button span,.exam-list button small{display:block}.exam-list button small{color:var(--muted);margin-top:4px;font-size:10px}.form-row{grid-template-columns:1fr 2fr;gap:12px;margin-bottom:14px;display:grid}.form-row.three{grid-template-columns:repeat(3,1fr)}label{font-size:11px;font-weight:700}input,select{width:100%;color:var(--ink);background:#fff;border:1px solid #ccd6d0;border-radius:9px;outline:none;margin-top:6px;padding:10px 11px}input:focus,select:focus{border-color:var(--green);box-shadow:0 0 0 3px #146b4b12}.key-help{color:#4b5b51;background:#eef6e6;border-radius:11px;margin:20px 0;padding:13px}.key-help b,.key-help span{font-size:11px;display:block}.key-help span{margin-top:4px}.answer-grid{grid-template-columns:repeat(2,1fr);gap:7px;max-height:56vh;padding-right:6px;display:grid;overflow:auto}.answer-row{border:1px solid #e1e7e3;border-radius:9px;grid-template-columns:32px 1fr 105px;align-items:center;padding:7px 9px;display:grid}.answer-row>div{gap:4px;display:flex}.answer-row button,.question-review button{background:#fff;border:1px solid #cbd5cf;border-radius:50%;width:29px;height:29px}.answer-row button.picked,.question-review button.picked{background:var(--green);border-color:var(--green);color:#fff}.answer-row select{margin:0;padding:5px;font-size:9px}.scan-layout{gap:16px;display:grid}.scan-top{grid-template-columns:1.4fr 1fr auto;align-items:end;gap:20px;display:grid}.scan-top>div{align-items:center;gap:10px;display:flex}.scan-top label{flex:1}.scan-top small{color:var(--muted);font-size:9px}.step{width:29px;height:29px;color:var(--green);background:#e7f1e8;border-radius:50%;place-items:center;font-weight:800;display:grid}.file-button{color:var(--green);text-align:center;border:1px dashed #9db3a6;border-radius:9px;padding:11px;display:block}.file-button input,.upload-zone input{display:none}.upload-zone{text-align:center;background:#ffffffa8;border:1px dashed #a9b9af;border-radius:21px;flex-direction:column;justify-content:center;align-items:center;min-height:520px;padding:40px;display:flex}.upload-zone p{color:var(--muted)}.upload-zone .secondary{margin-top:10px}.sheet-symbol{background:#fff;border:2px solid #83998d;border-radius:5px;width:110px;height:140px;margin-bottom:20px;position:relative;box-shadow:12px 12px #e2eee6}.sheet-symbol:before,.sheet-symbol:after{content:"";background:#173027;width:15px;height:15px;position:absolute}.sheet-symbol:before{top:7px;left:7px}.sheet-symbol:after{bottom:7px;right:7px}.sheet-symbol span{background:#cfdbd4;border-radius:5px;width:55px;height:5px;margin:28px auto -16px;display:block}.review-grid{grid-template-columns:1.2fr .8fr;align-items:start;gap:16px;display:grid}.preview-panel,.review-panel{min-width:0}.page-tabs{gap:4px;display:flex}.page-tabs button{border:0;border-radius:6px;padding:6px 9px}.page-tabs button.active{background:var(--green);color:#fff}.sheet-preview{text-align:center;background:#e8ebe7;border-radius:10px;max-height:70vh;position:relative;overflow:auto}.sheet-preview img{width:100%;height:auto;display:block}.mark{border:2px solid #fff;border-radius:50%;width:12px;height:12px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 2px}.mark.correct{color:#2aae6c;background:#2aae6c}.mark.wrong{color:#e04e45;background:#e04e45}.mark.blank{color:#7d8982;background:#7d8982}.mark.review{color:#e49b26;background:#e49b26}.score-banner{color:#fff;background:#122f25;border-radius:13px;grid-template-columns:1fr 1fr;margin-bottom:16px;display:grid}.score-banner>div{border-right:1px solid #365248;padding:17px}.score-banner>div:last-child{border:0}.score-banner span{color:#a9bcb3;font-size:10px;display:block}.score-banner strong{font-size:34px}.score-banner small{font-size:13px}.question-review{max-height:47vh;margin-top:15px;overflow:auto}.question-review>div{border-top:1px solid #e8ece9;grid-template-columns:31px 1fr 65px;align-items:center;padding:7px;font-size:10px;display:grid}.question-review>div>div{gap:4px;display:flex}.question-review>div>span{text-align:right}.question-review>div.correct>span{color:var(--green)}.question-review>div.wrong>span{color:var(--red)}.question-review>div.review>span{color:var(--amber)}.results-head>div:last-child{gap:8px;display:flex}.filters{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;display:grid}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;background:#f5f7f4;font-size:9px}th,td{white-space:nowrap;border-bottom:1px solid #e7ece8;padding:12px}.scanner-hero{color:#fff;background:#173228;border-radius:22px;grid-template-columns:1fr 1fr;align-items:center;gap:35px;margin-bottom:16px;padding:40px 5%;display:grid}.scanner-hero p{color:#b9c9c1}.scanner-flow{justify-content:center;align-items:center;gap:15px;display:flex}.scanner-flow div{text-align:center;background:#29483d;border:1px solid #486459;border-radius:13px;padding:20px}.scanner-flow b,.scanner-flow small{display:block}.scanner-flow small{color:#a9bab2;margin-top:5px;font-size:9px}.setup-steps ol{padding:0;list-style:none}.setup-steps li{border-top:1px solid #e9edea;gap:13px;padding:13px 0;display:flex}.setup-steps li>span{min-width:29px;height:29px;color:var(--green);background:#e4f0e5;border-radius:50%;place-items:center;font-weight:800;display:grid}.setup-steps b,.setup-steps small{display:block}.setup-steps small{color:var(--muted);margin-top:4px;line-height:1.6}.gateway-code{color:#dceadf;background:#142720;border-radius:12px;padding:15px}.gateway-code>span{color:#8ba297;margin-bottom:8px;font-size:9px;display:block}.gateway-code code{font-size:10px;line-height:1.7}.live-pill{color:var(--green);font-size:10px}.compat{border-top:1px solid #e7ece8;flex-wrap:wrap;gap:7px;margin-top:15px;padding-top:15px;display:flex}.compat b{width:100%;font-size:11px}.compat span{background:#eef4ef;border-radius:99px;padding:5px 8px;font-size:9px}.empty{text-align:center;color:var(--muted);padding:38px}.empty span{font-size:28px}.loading{text-align:center;min-height:60vh;color:var(--muted);place-content:center;display:grid}.loading span{border:3px solid #d9e3dc;border-top-color:var(--green);border-radius:50%;width:38px;height:38px;margin:auto;animation:.8s linear infinite spin}.toast{color:#fff;z-index:50;background:#173228;border-radius:11px;padding:13px 17px;position:fixed;bottom:25px;right:25px;box-shadow:0 12px 35px #0002}.toast.error{background:#9e382f}.scrim{display:none}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:1050px){.metrics{grid-template-columns:repeat(2,1fr)}.hero,.review-grid,.scanner-hero{grid-template-columns:1fr}.flow-card{max-width:600px}.workspace-grid{grid-template-columns:230px 1fr}.answer-grid,.split{grid-template-columns:1fr}.scan-top{grid-template-columns:1fr 1fr}.scan-top>.primary{grid-column:1/-1}}@media (max-width:760px){.sidebar{width:245px;transition:all .2s;transform:translate(-100%)}.sidebar-open{transform:none}.app-shell>main{margin-left:0}.menu-button{display:block}.topbar{padding:0 18px}.topbar .primary{display:none}.content{padding:22px 14px 60px}.scrim{z-index:15;background:#0006;border:0;display:block;position:fixed;inset:0}.hero{padding:31px 22px}.hero h1,.scanner-hero h1{font-size:40px}.flow-card{padding:18px 8px}.flow-card i{width:14px}.metrics{grid-template-columns:1fr 1fr}.workspace-grid{grid-template-columns:1fr}.exam-list{position:static}.form-row,.form-row.three,.filters,.scan-top{grid-template-columns:1fr}.scan-top>.primary{grid-column:auto}.review-grid{grid-template-columns:1fr}.results-head{flex-direction:column;align-items:flex-start}.scanner-flow{gap:5px}.scanner-flow div{padding:14px 8px}.scanner-flow span{font-size:10px}.answer-row{grid-template-columns:28px 1fr 90px}.paper-note p{max-width:100%}}body{font-family:Kanit,Tahoma,Noto Sans Thai,Arial,sans-serif}h1,h2,h3,.topbar strong,.panel-head h2{font-weight:500}.brand b{white-space:nowrap;font-size:15px}.brand-logo{object-fit:contain;background:#fff;border-radius:12px;flex:0 0 42px;width:42px;height:42px;padding:3px}.sidebar nav .nav-development{color:var(--lime);white-space:nowrap;background:#d9f26a1c;border-radius:99px;margin-left:auto;padding:3px 6px;font:700 8px Kanit,sans-serif}.sheet-canvas{width:100%;line-height:0;position:relative}.sheet-canvas img{width:100%;height:auto;display:block}.sheet-canvas .mark{z-index:2;pointer-events:none;aspect-ratio:1;width:1.7%;height:auto;box-shadow:none;background:0 0;border:clamp(1.5px,.17cqw,3.5px) solid;border-radius:clamp(1.5px,.12cqw,3px);transform:translate(-50%,-50%)scale(1.35)}.sheet-canvas .mark.correct{color:#00a651}.sheet-canvas .mark.wrong{color:#ee1c25}.sheet-canvas .mark.review{color:#ff8a00;border-style:dashed}.sheet-canvas .mark.blank{color:#9aa39e}.sheet-canvas .mark.ungraded{color:var(--blue)}.preview-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.page-navigator{grid-template-columns:32px minmax(96px,auto) 32px;align-items:center;gap:4px;display:grid}.page-navigator button{background:var(--green);color:#fff;border:0;border-radius:7px;width:32px;height:34px;padding:0;font-size:20px;line-height:1}.page-navigator button:disabled{opacity:.35;cursor:not-allowed}.page-number-input{white-space:nowrap;background:#fff;border:1px solid #cad5cf;border-radius:7px;justify-content:center;align-items:center;gap:6px;height:34px;padding:4px 8px;font-size:11px;font-weight:700;display:flex}.page-number-input input{text-align:center;width:42px;height:24px;font:inherit;color:var(--ink);background:#f3f6f3;border:0;border-radius:4px;outline:none;margin:0;padding:2px 4px}.page-number-input input:focus{box-shadow:0 0 0 2px #2c6c4d2e}.sidebar nav button .nav-icon{color:#739085;flex:0 0 20px;place-items:center;width:20px;height:20px;display:grid}.sidebar nav button .nav-icon svg{width:18px;height:18px;display:block}.question-review-row{border-top:1px solid #e8ece9;grid-template-columns:105px minmax(126px,1fr) minmax(82px,auto);align-items:center;gap:6px;padding:7px;font-size:10px;display:grid}.question-review-row>div{gap:4px;display:flex}.review-answer-part{border:1px solid #e0e8e3;border-radius:10px;margin-bottom:9px;display:block;overflow:hidden}.review-part-heading{color:var(--green);background:#edf5ef;justify-content:space-between;align-items:center;padding:8px 10px;font-size:10px;display:flex}.review-part-heading span{color:var(--muted);font-size:9px}.question-number{align-items:center;gap:7px;display:flex}.question-number>b{min-width:24px}.result-pill{white-space:nowrap;border-radius:99px;justify-content:center;align-items:center;min-width:44px;padding:4px 7px;font-size:9px;font-weight:500;display:inline-flex}.result-pill.correct{color:#146b4b;background:#dff2e8}.result-pill.wrong{color:#a83832;background:#f8e1df}.result-pill.blank{color:#66726c;background:#ecefed}.result-pill.review{color:#a3650a;background:#fff0d6}.result-pill.ungraded,.legend .ungraded{color:#315f9e;background:#e3ecfb}.review-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;display:flex}.review-toolbar .legend{margin-top:0}.review-filter{background:#f3f6f3;border:1px solid #d8e1dc;border-radius:9px;padding:3px;display:flex}.review-filter button{width:auto;height:28px;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:6px;padding:0 9px;font-size:9px;font-weight:700}.review-filter button.active{background:var(--green);color:#fff}.review-filter button span{min-width:17px;height:17px;color:inherit;background:#fff3;border-radius:9px;place-items:center;margin-left:4px;padding:0 4px;display:inline-grid}.question-review .review-filter-empty{text-align:center;color:var(--muted);padding:28px 10px;font-size:11px;display:block}.danger-button{color:var(--red);background:#fff6f5;border:1px solid #d9aaa6;border-radius:9px;font-weight:700}.danger-button:disabled{opacity:.5;cursor:not-allowed}.exam-id-field{background:#f5f8f5;border:1px solid #e0e7e2;border-radius:9px;align-items:center;gap:10px;margin:-5px 0 14px;padding:10px 12px;display:flex}.exam-id-field span{color:var(--muted);font-size:10px}.exam-id-field strong{color:var(--green);font:700 11px ui-monospace,SFMono-Regular,Consolas,monospace}.example-badge{color:#38531f;vertical-align:middle;background:#e5f2a5;border-radius:99px;margin-left:7px;padding:2px 6px;font-size:8px;font-style:normal;font-weight:700;display:inline-block}.answer-row .add-option-button{color:var(--green);border-style:dashed;font-size:15px;line-height:1}.answer-row>div{flex-wrap:wrap}.parts-editor{border:1px solid var(--line);background:#f8faf7;border-radius:14px;margin:14px 0;padding:14px}.parts-editor-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.parts-editor-head>div{flex-direction:column;gap:2px;display:flex}.parts-editor-head span{color:var(--muted);font-size:10px}.part-row{border-top:1px solid var(--line);grid-template-columns:28px minmax(0,1fr) 32px;align-items:start;gap:8px;padding:12px 0;display:grid}.part-row>strong{background:var(--green);color:#fff;border-radius:50%;align-self:start;place-items:center;width:26px;height:26px;margin-top:21px;font-size:11px;display:grid}.part-row-body{gap:10px;min-width:0;display:grid}.part-primary-fields{grid-template-columns:190px 90px 220px 260px;justify-content:start;gap:8px;display:grid}.part-score-fields{grid-template-columns:160px 170px 170px auto;justify-content:start;align-items:end;gap:8px;display:grid}.part-row label{white-space:nowrap;min-width:0;font-size:9px;display:block}.part-row input,.part-row select{height:34px;padding:0 9px;display:block}.part-row small{white-space:nowrap;color:var(--green);align-self:center;margin-left:6px;font-size:10px}.part-remove{color:#b54f43;background:#fff;border:1px solid #dfbdb8;border-radius:8px;align-self:start;width:28px;height:28px;margin-top:21px;font-size:17px}.part-remove:disabled{opacity:.3}.net-score-settings{background:#f2f8f4;border:1px solid #cdded3;border-radius:12px;grid-template-columns:minmax(0,1fr) minmax(0,.85fr) minmax(0,.8fr) minmax(0,1fr);align-items:end;gap:10px;margin:14px 0;padding:13px 14px;display:grid}.net-score-settings-head{grid-column:1/-1;align-items:baseline;gap:8px;display:flex}.net-score-settings-head b{color:var(--green);font-size:12px}.net-score-settings-head span,.net-score-settings small{color:var(--muted);font-size:9px}.net-score-settings label{font-size:9px;font-weight:700}.net-score-settings select{width:100%;height:36px;margin-top:4px;padding:0 10px;display:block}.net-score-settings small{background:#fff;border-radius:9px;align-self:center;padding:9px 11px;line-height:1.5}.net-score-settings small b{color:var(--green);font-size:12px}.answer-row.part-start{border-top:2px solid #b9c9bf;margin-top:25px;position:relative}.answer-part-label{color:var(--green);background:#e8f0eb;border-radius:99px;padding:2px 8px;font-size:9px;font-weight:700;position:absolute;top:-23px;left:0}@media (max-width:1250px){.part-primary-fields{grid-template-columns:minmax(150px,1fr) 90px minmax(170px,1fr) minmax(180px,1fr)}.part-score-fields{grid-template-columns:150px 150px 150px auto}}@media (max-width:900px){.part-primary-fields{grid-template-columns:1fr 90px}.part-primary-fields label:nth-child(3),.part-primary-fields label:nth-child(4){grid-column:auto}.part-score-fields{grid-template-columns:1fr 1fr}.part-score-fields small{grid-column:1/-1;margin-left:0}}@media (max-width:1280px){.net-score-settings{grid-template-columns:1fr 1fr}.net-score-settings small{grid-column:1/-1}}@media (max-width:760px){.part-primary-fields,.part-score-fields,.net-score-settings{grid-template-columns:1fr}.part-score-fields small,.net-score-settings small{grid-column:auto}.part-row>strong,.part-remove{margin-top:21px}.net-score-settings-head{flex-direction:column;align-items:flex-start}}.exam-skeleton{background:#fbfdfb;border:1px dashed #8eac9b;border-radius:10px;margin:8px 0;padding:14px 10px}.exam-skeleton i{background:#dce7e0;border-radius:99px;height:10px;margin:5px 0;display:block}.exam-skeleton i:first-child{width:34%}.exam-skeleton i:nth-child(2){width:76%;height:14px}.exam-skeleton i:nth-child(3){width:58%}.exam-skeleton small{color:var(--green);margin-top:8px;font-size:9px;display:block}.answer-grid{grid-template-columns:1fr}.answer-part{background:#fbfcfa;border:1px solid #dce5df;border-radius:12px;overflow:hidden}.answer-part-head{width:100%;color:var(--ink);text-align:left;background:#eaf3ed;border:0;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.answer-part-head span,.answer-part-head b,.answer-part-head small{display:block}.answer-part-head small{color:var(--muted);margin-top:2px;font-size:9px}.answer-part-head i{font-size:18px;font-style:normal;transition:transform .18s}.answer-part.collapsed .answer-part-head i{transform:rotate(-90deg)}.answer-part-body{grid-template-columns:repeat(2,1fr);gap:7px;padding:8px;display:grid}@media (max-width:1050px){.answer-part-body{grid-template-columns:1fr}}.question-options,.question-tools{gap:4px;display:flex}.question-tools{flex-wrap:wrap;justify-content:flex-end;align-items:center}.result-delete{color:#b54f43;background:#fff;border:1px solid #dfbdb8;border-radius:8px;padding:6px 10px;font-size:10px;font-weight:700}.result-delete:hover{background:#fff3f1}.result-delete:disabled{opacity:.5;cursor:not-allowed}.result-actions{white-space:nowrap;align-items:center;gap:6px;display:flex}.result-review{color:#255b3b;background:#f2f8f4;border:1px solid #a9c2b1;border-radius:8px;padding:6px 10px;font-size:10px;font-weight:800}.result-review:hover{background:#e4f1e8}.student-search{position:relative}.student-search>span{color:var(--muted);pointer-events:none;font-size:18px;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.student-search input{height:100%;margin:0;padding-left:38px;padding-right:38px}.student-search button{width:25px;height:25px;color:var(--muted);background:#e8eee9;border:0;border-radius:50%;font-size:17px;line-height:1;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.sort-button{width:100%;color:inherit;text-align:left;font:inherit;text-transform:inherit;letter-spacing:inherit;white-space:nowrap;background:0 0;border:0;align-items:center;gap:5px;padding:0;font-weight:800;display:inline-flex}.sort-button span{color:#9ba8a1;font-size:12px}.sort-button.active,.sort-button.active span{color:var(--green)}.review-return{justify-content:space-between;align-items:center;gap:18px;padding:20px 24px;display:flex}.review-return h2{margin:3px 0 2px}.review-return p{color:var(--muted);margin:0}.identity-confirm{margin-top:-2px}.question-tools button{width:auto;height:27px;color:var(--green);white-space:nowrap;background:#fff;border:1px solid #cad5cf;border-radius:6px;padding:0 7px;font-size:9px}.question-tools button:disabled{opacity:.4;cursor:not-allowed}.question-review-row.answer-change-pending{background:#fffaf0;box-shadow:inset 3px 0 #d18a20}.question-tools .answer-confirm{border-color:var(--green);background:var(--green);color:#fff;font-weight:800}.question-tools .answer-revert{color:#8e5908;background:#fffaf0;border-color:#d6b16f;width:27px;padding:0;font-size:16px;line-height:1}.answer-confirmed{height:27px;color:var(--green);white-space:nowrap;background:#dff2e8;border-radius:6px;align-items:center;padding:0 7px;font-size:9px;font-weight:800;display:inline-flex}.pending-confirm-note{color:#80530b;background:#fff7e5;border:1px solid #e6c887;border-radius:9px;margin-top:12px;padding:10px 12px;font-size:10px;line-height:1.5}@media (max-width:1050px){.question-review-row{grid-template-columns:105px minmax(126px,1fr) minmax(82px,auto)}}.scan-mode{gap:8px;padding:8px;display:flex}.scan-mode button{color:var(--muted);background:#eef2ef;border:0;border-radius:9px;flex:1;padding:10px;font-weight:700}.scan-mode button.active{background:var(--green);color:#fff}.batch-summary{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.batch-summary h2{margin:0 0 7px}.batch-summary p{color:var(--muted);margin:0}.batch-summary.has-errors{border-color:#e6b1ac}.batch-summary details{flex-basis:100%;margin-top:12px}.batch-summary li{color:var(--red);margin:5px 0;font-size:11px}.identity-check{border-radius:9px;justify-content:space-between;gap:12px;margin:-3px 0 12px;padding:9px 11px;font-size:10px;display:flex}.identity-check.matched{color:var(--green);background:#e7f5ec}.identity-check.mismatch{color:#8e5908;background:#fff0d6}.identity-check span{font-family:monospace}.sheet-flags{gap:7px;margin:-3px 0 12px;display:flex}.sheet-flags span{color:#8e5908;background:#fff0d6;border-radius:99px;padding:5px 8px;font-size:10px;font-weight:700}.sheet-status-selector{border:1px solid var(--line);background:#f8faf7;border-radius:10px;flex-wrap:wrap;align-items:center;gap:16px;margin:8px 0;padding:8px 10px;display:flex}.sheet-status-group{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.sheet-status-group>span{white-space:nowrap;color:var(--muted);font-size:10px;font-weight:800}.sheet-status-group>div{flex-wrap:wrap;gap:5px;display:flex}.sheet-status-selector button{border:1px solid var(--line);color:var(--ink);font:inherit;cursor:pointer;background:#fff;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:700}.sheet-status-selector button.sheet-status-present,.sheet-status-selector button.sheet-status-normal{border-color:var(--green);color:var(--green);background:#fff}.sheet-status-selector button.sheet-status-absent,.sheet-status-selector button.sheet-status-cancelled{border-color:var(--red);color:var(--red);background:#fff}.sheet-status-selector button.sheet-status-spare{border-color:var(--amber);color:#9a640d;background:#fff}.sheet-status-selector button.sheet-status-present.active,.sheet-status-selector button.sheet-status-normal.active{background:var(--green);border-color:var(--green);color:#fff}.sheet-status-selector button.sheet-status-absent.active,.sheet-status-selector button.sheet-status-cancelled.active{background:var(--red);border-color:var(--red);color:#fff}.sheet-status-selector button.sheet-status-spare.active{background:var(--amber);border-color:var(--amber);color:#fff}.exam-step-tabs{grid-template-columns:1fr 1fr;gap:8px;margin:2px 0 14px;display:grid}.exam-step-tabs button{border:1px solid var(--line);color:var(--muted);cursor:pointer;text-align:left;background:#f4f6f3;border-radius:10px;align-items:center;gap:8px;padding:10px 12px;display:flex}.exam-step-tabs button span{background:#e3ebe5;border-radius:50%;place-items:center;width:23px;height:23px;font-weight:800;display:grid}.exam-step-tabs button.active{border-color:var(--green);color:var(--green);background:#eef6f0}.exam-step-tabs button:disabled{cursor:not-allowed;opacity:.55}.answer-import-actions{justify-content:flex-end;margin:10px 0}.identity-warning{color:var(--amber);margin-top:3px;font-size:9px;display:block}.identity-warning.resolved{color:var(--muted)}.app-shell>main,.auth-page,.admin-page,.app-shell>main p,.auth-page p,.admin-page p{font-size:17px}.app-shell>main button,.app-shell>main input,.app-shell>main select,.app-shell>main textarea,.auth-page button,.auth-page input,.admin-page button,.admin-page input,.admin-page select{font-size:13px}.app-shell>main label,.auth-page label,.admin-page label{font-size:12px}.app-shell>main small,.app-shell>main .eyebrow,.app-shell>main th,.auth-page small,.auth-page .eyebrow,.admin-page .eyebrow{font-size:11px}.app-shell>main table{font-size:13px}.app-shell>main .topbar strong{font-size:18px}.app-shell>main .metrics span,.app-shell>main .metrics small,.app-shell>main .recent-list small,.app-shell>main .exam-list button small,.app-shell>main .key-help b,.app-shell>main .key-help span{font-size:12px}.app-shell>main .question-review,.app-shell>main .identity-check,.app-shell>main .sheet-flags span,.app-shell>main .pending-confirm-note{font-size:11px}.app-shell>main .question-tools button,.app-shell>main .answer-confirmed,.app-shell>main .result-delete,.app-shell>main .result-review{font-size:10px}.admin-page .admin-users article div span{font-size:12px}.admin-page .account-state{font-size:11px}.sidebar .brand b{font-size:13.5px}.sidebar .brand small{font-size:8.5px}.sidebar nav button{padding:9px 11px;font-size:12.5px}.sidebar nav .nav-development{padding:2px 5px;font-size:6.5px}.sidebar .profile-menu summary{border-radius:11px;grid-template-columns:37px minmax(0,1fr) 15px;gap:9px;padding:8px 9px}.sidebar .profile-avatar{width:37px;height:37px;font-size:15.5px}.sidebar .profile-identity b{font-size:11.5px}.sidebar .profile-identity small{margin-top:2px;font-size:8.5px}.workflow-next-step,.answer-structure-reference{border-left:4px solid var(--green);background:#eef7f1;border-radius:12px;gap:5px;margin-top:14px;padding:13px 15px;display:grid}.workflow-next-step b,.answer-structure-reference b{font-size:12px}.workflow-next-step span,.answer-structure-reference span,.answer-structure-reference small{color:var(--muted);font-size:9px;line-height:1.55}.answer-structure-reference{background:#f4f7f5;margin:0 0 14px}.answer-structure-reference small{color:var(--green)}.app-shell .sidebar{width:220px;padding:20px 14px 16px}.app-shell .brand{gap:9px;padding:0 6px 18px}.app-shell .brand-logo{border-radius:10px;flex-basis:38px;width:38px;height:38px}.app-shell .sidebar nav{gap:3px}.app-shell .sidebar nav button{border-radius:9px;gap:10px;padding:8px 10px}.app-shell .sidebar nav{gap:12px;min-height:0;overflow-y:auto}.sidebar .nav-group{gap:3px;display:grid}.sidebar .nav-group-label{color:#6f8a7f;padding:0 10px 3px;font-size:10px;font-weight:700}.app-shell .side-card{border-radius:11px;padding:10px}.app-shell .side-foot{gap:7px;padding-top:10px}.app-shell>main{margin-left:220px}.app-shell .topbar{height:68px;padding:0 28px}.app-shell .topbar strong{margin-top:1px;font-size:17px}.app-shell .content{max-width:1600px;padding:22px 28px 48px}.app-shell .panel{border-radius:14px;padding:18px}.app-shell .panel-head{gap:12px;margin-bottom:14px}.app-shell .panel-head h2{margin-top:2px;font-size:19px}.app-shell .primary,.app-shell .secondary{border-radius:8px;padding:8px 13px}.app-shell .compact{padding:7px 11px}.app-shell .full{margin-top:11px}.app-shell .metrics{gap:10px;margin:10px 0}.app-shell .metrics article{border-radius:13px;padding:15px}.app-shell .metrics strong{margin:5px 0 1px;font-size:26px}.app-shell .split,.app-shell .workspace-grid,.app-shell .review-grid,.app-shell .scan-layout{gap:12px}.app-shell .workspace-grid{grid-template-columns:260px minmax(0,1fr)}.app-shell .exam-list{top:82px}.app-shell .exam-list>button:not(.icon-button){padding:10px 8px}.app-shell .form-row{gap:8px;margin-bottom:10px}.app-shell input,.app-shell select,.app-shell textarea{border-radius:8px;margin-top:4px;padding:8px 9px}.app-shell .filters{gap:8px;margin-bottom:11px}.app-shell table{font-size:12px}.app-shell th,.app-shell td{padding:9px 10px}.app-shell .recent-list>div{gap:10px;padding:9px 0}.app-shell .key-help{margin:14px 0;padding:10px}.app-shell .hero{border-radius:18px;gap:28px;min-height:300px;padding:34px 4%}.app-shell .hero-actions{gap:7px;margin-top:17px}.app-shell .flow-card{border-radius:14px;padding:20px}.app-shell .flow-card div>span{margin-bottom:8px}@media (max-width:1500px){.app-shell .hero{grid-template-columns:1fr}.app-shell .flow-card{max-width:640px}}.app-shell .scanner-hero{border-radius:17px;gap:24px;margin-bottom:12px;padding:28px 4%}.app-shell .scan-top{gap:12px}.app-shell .scan-top>div{gap:7px}.app-shell .step{width:26px;height:26px}.app-shell .upload-zone{border-radius:16px;min-height:440px;padding:28px}.app-shell .scan-mode{gap:6px;padding:6px}.app-shell .scan-mode button{padding:8px}.app-shell .preview-active .preview-panel,.app-shell .preview-active .review-panel{padding:12px}.app-shell .preview-active .panel-head{margin-bottom:8px}.app-shell .designer-workspace{grid-template-columns:285px minmax(0,1fr);gap:12px}.app-shell .designer-controls{top:82px}.app-shell .designer-toolbar{margin-bottom:12px;padding:10px 13px}.app-shell .course-roster-workspace,.app-shell .roster-workspace,.app-shell .exam-roster-workspace{gap:10px}.app-shell .empty{padding:26px}@media (max-width:1050px){.app-shell .workspace-grid{grid-template-columns:220px minmax(0,1fr)}.app-shell .designer-workspace{grid-template-columns:1fr}}@media (max-width:760px){.app-shell .sidebar{width:235px;padding:18px 14px}.app-shell>main{margin-left:0}.app-shell .topbar{height:62px;padding:0 14px}.app-shell .content{padding:15px 10px 38px}.app-shell .panel{border-radius:12px;padding:14px}.app-shell .panel-head{margin-bottom:11px}.app-shell .workspace-grid{grid-template-columns:1fr}.app-shell .hero{padding:26px 18px}.app-shell .primary,.app-shell .secondary{min-height:38px}}:root{--control-h:36px;--control-radius:8px;--control-fs:13px;--title-fs:19px;--subtitle-fs:16px}@media (max-width:760px){:root{--control-h:40px}}.app-shell.app-shell>main :is(button.primary,button.secondary,button.danger-button,label.file-button){min-height:var(--control-h);border-radius:var(--control-radius);height:auto;font-size:var(--control-fs);justify-content:center;align-items:center;gap:6px;padding-block:6px;line-height:1.3;display:inline-flex}.app-shell.app-shell>main :is(input:not([type=checkbox],[type=radio],[type=file],[type=range],[type=color]),select):not(:is(table,.answer-row,.question-review,.answer-grid,[class*=sheet]) *){height:var(--control-h);border-radius:var(--control-radius);font-size:var(--control-fs);padding-block:0}.app-shell.app-shell>main .panel h2:not([class*=sheet] *){font-size:var(--title-fs)}.app-shell.app-shell>main .panel h3:not([class*=sheet] *){font-size:var(--subtitle-fs)}.app-shell.app-shell>main :is(.student-search,.result-history-mode,.result-status-filter){height:var(--control-h)}.app-shell.app-shell>main :is(.result-history-mode,.result-status-filter) button{height:28px;min-height:0;padding-block:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
