@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap);*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#e4eef7;--surface:#e4eef7;--surface2:#d9e6f2;--bg-elevated:#eaf3fb;--border:#0000;--border-strong:#0000;--blue:#1173c4;--blue-dark:#0c5a9c;--blue-soft:#d6e8f7;--blue-soft-hover:#c8dff3;--blue-glow:#1173c447;--blue-border:#bcd8ef;--blue-border-strong:#9ec3e8;--green:#1e8e5a;--green-dark:#167147;--green-soft:#d8efe4;--green-glow:#1e8e5a38;--green-border:#9ed7b9;--green-border-soft:#bfe4d0;--yellow:#e8b923;--yellow-dark:#c99a12;--yellow-soft:#f7edc8;--yellow-text:#3d3208;--purple:var(--blue);--purple-dark:var(--blue-dark);--purple-soft:var(--blue-soft);--purple-glow:var(--blue-glow);--accent:var(--blue);--accent2:var(--green);--accent3:var(--blue-dark);--text:#1c2b3a;--text-muted:#4e6377;--success:var(--green);--error:#e03b3b;--error-dark:#c12f2f;--error-soft:#f5e0e0;--error-soft-strong:#f0d0d0;--error-border:#f0a8a8;--error-text:#b52a2a;--warning:#9a6b00;--warning-soft:#f3e9cc;--warning-border:#e2c882;--warning-text:#8a5f00;--upload-border:#a8c0d6;--ghost-hover-border:#0000;--scrollbar-thumb:#b4c7d8;--scrollbar-thumb-hover:#9bb0c4;--topbar-bg:#e4eef7;--radius:20px;--radius-sm:14px;--neo-light:#fff;--neo-dark:#c5d4e4;--shadow-out:8px 8px 18px var(--neo-dark),-8px -8px 18px var(--neo-light);--shadow-out-sm:4px 4px 10px var(--neo-dark),-4px -4px 10px var(--neo-light);--shadow-in:inset 5px 5px 12px var(--neo-dark),inset -5px -5px 12px var(--neo-light);--shadow-in-sm:inset 3px 3px 7px var(--neo-dark),inset -3px -3px 7px var(--neo-light);--shadow-side:6px 0 18px var(--neo-dark),-2px 0 10px var(--neo-light);--shadow-card:var(--shadow-out);--shadow-modal:12px 12px 28px #a0b4c88c,-8px -8px 22px var(--neo-light);color-scheme:light}html[data-theme=dark]{--bg:#1a222d;--surface:#1a222d;--surface2:#222b37;--bg-elevated:#1e2733;--border:#0000;--border-strong:#0000;--blue:#3b9ee0;--blue-dark:#7cc0f0;--blue-soft:#243447;--blue-soft-hover:#2a3c52;--blue-glow:#4da3e059;--blue-border:#4da3e059;--blue-border-strong:#4da3e080;--green:#2fa871;--green-dark:#5ccf96;--green-soft:#1e332c;--green-glow:#2fa8714d;--green-border:#5ccf9666;--green-border-soft:#5ccf9647;--yellow:#f0c43a;--yellow-dark:#ffd666;--yellow-soft:#3a3420;--yellow-text:#1a1608;--text:#e8eef4;--text-muted:#9fb0c0;--error:#ef5555;--error-dark:#d64545;--error-soft:#322428;--error-soft-strong:#3a282c;--error-border:#ef555566;--error-text:#f5a0a0;--warning:#e0b95c;--warning-soft:#322e22;--warning-border:#e0b95c59;--warning-text:#e8c67a;--upload-border:#3d5468;--ghost-hover-border:#0000;--scrollbar-thumb:#3d5468;--scrollbar-thumb-hover:#4e6a83;--topbar-bg:#1a222d;--neo-light:#242e3c;--neo-dark:#12171f;--shadow-out:8px 8px 18px var(--neo-dark),-8px -8px 18px var(--neo-light);--shadow-out-sm:4px 4px 10px var(--neo-dark),-4px -4px 10px var(--neo-light);--shadow-in:inset 5px 5px 12px var(--neo-dark),inset -5px -5px 12px var(--neo-light);--shadow-in-sm:inset 3px 3px 7px var(--neo-dark),inset -3px -3px 7px var(--neo-light);--shadow-side:6px 0 18px var(--neo-dark),-2px 0 10px var(--neo-light);--shadow-card:var(--shadow-out);--shadow-modal:14px 14px 32px #00000073,-6px -6px 18px var(--neo-light);color-scheme:dark}body{-webkit-font-smoothing:antialiased;background:#e4eef7;background:var(--bg);color:#1c2b3a;color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.55;min-height:100vh}h1,h2,h3,h4{font-family:inherit;font-weight:700;letter-spacing:-.02em}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #1173c447;outline:3px solid var(--blue-glow);outline-offset:2px}input::placeholder,textarea::placeholder{color:#4e6377;color:var(--text-muted);opacity:.55}html[data-theme=dark] input::placeholder,html[data-theme=dark] textarea::placeholder{color:#4e6377;color:var(--text-muted);opacity:.5}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#b4c7d8;background:var(--scrollbar-thumb);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#9bb0c4;background:var(--scrollbar-thumb-hover)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes slideIn{0%{opacity:0;transform:translateX(-12px)}to{opacity:1;transform:translateX(0)}}.animate-fade{animation:fadeIn .3s ease forwards}.animate-slide{animation:slideIn .25s ease forwards}@media (prefers-reduced-motion:reduce){.animate-fade,.animate-slide{animation:none}}.app-layout,.sidebar{display:flex;min-height:100vh}.sidebar{background:var(--bg);border-right:none;bottom:0;box-shadow:var(--shadow-side);flex-direction:column;left:0;position:fixed;top:0;transition:transform .25s ease;width:260px;z-index:100}@media(max-width:768px){.sidebar{transform:translateX(-100%)}.sidebar.open{box-shadow:var(--shadow-out);transform:translateX(0)}}.sidebar-overlay{display:none}@media(max-width:768px){.sidebar-overlay{background:#1c2b3a59;display:block;inset:0;position:fixed;z-index:99}}.sidebar-logo{align-items:center;border-bottom:none;display:flex;gap:10px;padding:22px 16px 22px 18px}.app-logo{background:#0000;border-radius:12px;flex-shrink:0;height:40px;object-fit:contain;width:40px}html[data-theme=dark] .app-logo{filter:brightness(1.35) saturate(1.05)}.app-wordmark{flex:1 1 auto;height:28px;max-width:160px;min-width:0;object-fit:contain;object-position:left center;width:auto}.login-brand .app-logo{border-radius:0;height:52px;width:52px}.login-brand .app-wordmark{height:36px;max-width:220px}html[data-theme=dark] .app-wordmark{filter:brightness(1.15) saturate(1.05)}.sidebar-nav{display:flex;flex:1 1;flex-direction:column;gap:8px;padding:18px 12px}.nav-item{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;display:flex;font-family:inherit;font-size:16px;font-weight:500;gap:12px;padding:12px 14px;text-align:left;transition:background .15s,color .15s,box-shadow .15s;width:100%}.nav-item:hover{box-shadow:var(--shadow-out-sm);color:var(--text)}.nav-item.active{background:var(--bg);box-shadow:var(--shadow-in-sm);color:var(--blue-dark);font-weight:600}.nav-item svg{stroke-width:1.75;background:var(--bg);border:none;border-radius:12px;box-shadow:var(--shadow-out-sm);box-sizing:initial;color:var(--text-muted);color:var(--nav-icon,var(--text-muted));flex-shrink:0;height:20px!important;padding:8px;width:20px!important}.nav-item[data-nav=guide]{--nav-icon:#e08a1e}.nav-item[data-nav=dashboard]{--nav-icon:var(--blue)}.nav-item[data-nav=groups]{--nav-icon:#8a5cd6}.nav-item[data-nav=exams]{--nav-icon:var(--blue)}.nav-item[data-nav=students]{--nav-icon:#d6763b}.nav-item[data-nav=grade]{--nav-icon:var(--green)}.nav-item[data-nav=plans]{--nav-icon:#d8a319}.nav-item.active svg{box-shadow:var(--shadow-in-sm);color:var(--blue);color:var(--nav-icon,var(--blue))}.nav-logout{color:var(--error)}.nav-logout svg{box-shadow:var(--shadow-out-sm);color:var(--error)!important}.nav-logout:hover{box-shadow:var(--shadow-in-sm);color:var(--error)}.sidebar-bottom{border-top:none;display:flex;flex-direction:column;gap:4px;padding:16px 12px}.sidebar-user{gap:12px;margin-top:4px;padding:10px 12px}.sidebar-user,.user-avatar{align-items:center;display:flex}.user-avatar{background:var(--bg);border:none;border-radius:50%;box-shadow:var(--shadow-out-sm);color:var(--blue-dark);flex-shrink:0;font-size:16px;font-weight:600;height:40px;justify-content:center;width:40px}.user-info{overflow:hidden}.user-name{font-size:15px;font-weight:600}.user-email,.user-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-email{color:var(--text-muted);font-size:13px}.main-content{background:var(--bg);display:flex;flex:1 1;flex-direction:column;margin-left:260px;min-height:100vh}@media(max-width:768px){.main-content{margin-left:0}}.topbar{align-items:center;background:var(--topbar-bg);border-bottom:none;box-shadow:none;display:flex;gap:12px;height:64px;padding:0 24px;position:-webkit-sticky;position:sticky;top:0;z-index:50}.menu-btn{background:none;border:none;color:var(--blue);cursor:pointer;display:none;padding:8px}@media(max-width:768px){.menu-btn{display:flex}}.topbar-title{color:var(--text);flex:1 1;font-size:17px;font-weight:600}.topbar-right{align-items:center;display:flex;gap:10px;margin-left:auto}.theme-toggle{border-radius:10px;flex-shrink:0;height:40px;width:40px}.theme-toggle:hover{background:var(--blue-soft);border-color:var(--blue-border-strong);color:var(--blue-dark)}.theme-toggle{color:#d8a319}.api-key-warning{align-items:center;background:var(--warning-soft);border:1px solid var(--warning-border);border-radius:var(--radius-sm);color:var(--warning);cursor:pointer;display:flex;font-family:inherit;font-size:14px;gap:6px;padding:8px 14px}.content-scroll{flex:1 1;overflow-y:auto}.page{max-width:1100px;padding:32px 28px}@media(max-width:600px){.page{padding:18px 16px}}.page-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:28px}.page-header h1{font-size:28px;font-weight:700;margin-bottom:4px}.page-header-actions{display:flex;flex-wrap:wrap;gap:10px}.exam-section{margin-bottom:40px}.exam-section-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:18px}.exam-section-header h2{font-size:22px;font-weight:700;margin:6px 0 4px}.board-actions{gap:8px;margin:0 0 10px}.board-actions,.board-filters{align-items:center;display:flex;flex-wrap:wrap}.board-filters{background:#0000;border:none;border-radius:0;gap:8px 12px;margin:0 0 12px;padding:0}.board-filter{align-items:center;display:flex;flex-direction:row;gap:6px;min-width:0}.board-filter-label{color:var(--blue-dark);font-size:12px;font-weight:700;letter-spacing:0;text-transform:none;white-space:nowrap}.board-filter .field-input{font-size:13px;height:32px;min-width:0;padding:5px 8px;width:auto}.board-filter-search{flex:1 1 160px;max-width:260px}.board-search{align-items:center;color:var(--text-muted);display:flex;flex:1 1;gap:6px;min-width:0}.board-search .field-input{flex:1 1;min-width:0;width:100%}.bulk-extract-banner{align-items:center;background:var(--green-soft);border:none;border-radius:var(--radius-sm);color:var(--text);display:flex;font-size:15px;gap:10px;margin-bottom:16px;padding:14px 16px}.extract-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.bulk-extract-stop{margin-left:auto}.bg-job-banner{align-items:center;background:var(--surface);border:none;border-radius:16px;bottom:20px;box-shadow:var(--shadow-modal);color:var(--text);display:flex;font-size:14px;gap:12px;left:50%;max-width:min(640px,calc(100vw - 24px));padding:14px 16px;position:fixed;transform:translateX(-50%);width:-webkit-max-content;width:max-content;z-index:1200}.bg-job-banner svg{color:var(--green)}.bg-job-banner-text{display:flex;flex-direction:column;gap:2px;min-width:0}.bg-job-banner-text strong{font-size:15px;font-weight:650}.bg-job-banner-text span{color:var(--text-muted);max-width:min(420px,60vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bg-job-banner-stop{flex-shrink:0;margin-left:4px}.grade-students{display:flex;flex-direction:column;gap:4px;margin-top:6px}.grade-student{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px 18px}.grade-student-head{align-items:flex-start;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:12px}.grade-student-info{display:flex;flex-direction:column;gap:4px}.grade-student-name{font-size:17px;font-weight:700}.grade-student-row .grade-student-name{font-size:14px;font-weight:650;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grade-student-meta{color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:14px;gap:4px 14px}.grade-student-meta b{color:var(--text);font-weight:600}.grade-student-score{align-items:center;display:flex;gap:10px}.grade-student-hint{font-size:15px;margin:0}.grade-badge{border-radius:999px;box-shadow:var(--shadow-out-sm);color:#fff;font-size:16px;padding:6px 14px;white-space:nowrap}.grade-subscore{color:var(--text-muted);font-size:14px;white-space:nowrap}.grade-table-wrap{overflow-x:auto}.grade-table{border-collapse:collapse;font-size:15px;width:100%}.grade-table td,.grade-table th{border-bottom:1px solid var(--border);padding:10px 12px;text-align:left;vertical-align:middle}.grade-table thead th{color:var(--text-muted);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.grade-table tfoot td{border-bottom:none;border-top:2px solid var(--border);font-weight:700}.grade-cell-num{color:var(--text-muted);width:36px}.grade-cell-pts{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.verdict{align-items:center;display:inline-flex;font-weight:600;gap:5px;white-space:nowrap}.verdict-ok{color:var(--green)}.verdict-bad{color:var(--error)}.verdict-partial{color:var(--warning)}.status-legend{align-items:center;border-radius:999px;box-shadow:var(--shadow-out-sm);display:inline-flex;font-size:12.5px;font-weight:700;gap:5px;letter-spacing:.01em;line-height:1.2;padding:4px 10px;white-space:nowrap}.status-legend--pending,.status-legend--uploaded{background:#fff4e5;color:#c26a10}.status-legend--extracted{background:var(--blue-soft);color:var(--blue-dark)}.status-legend--graded,.status-legend--ok{background:var(--green-soft);color:var(--green-dark)}.status-legend--partial{background:var(--warning-soft);color:var(--warning-text)}.status-legend--bad{background:var(--error-soft);color:var(--error-text)}html[data-theme=dark] .status-legend--pending,html[data-theme=dark] .status-legend--uploaded{background:#c26a1038;color:#f0b56a}.grade-student-score-inline{font-feature-settings:"tnum";color:var(--text);font-size:12.5px;font-variant-numeric:tabular-nums;font-weight:650;margin-left:8px}.section-step{background:var(--surface2);border:none;border-radius:8px;color:var(--text-muted);display:inline-block;font-size:11px;font-weight:600;letter-spacing:.06em;padding:4px 10px;text-transform:uppercase}.section-step--green{background:var(--green-soft);color:var(--green-dark)}.section-step--purple{background:var(--blue-soft);color:var(--blue-dark)}.student-upload-panel{align-items:flex-start;display:flex;flex-direction:column;gap:12px}.student-upload-panel-disabled{align-items:center;color:var(--text-muted);padding:32px 24px;text-align:center}.student-upload-panel-disabled h3{color:var(--text);margin-top:8px}.student-upload-meta{color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:14px;gap:16px}.student-upload-meta span{align-items:center;display:inline-flex;gap:6px}.card{background:var(--bg);border:none;border-radius:var(--radius);box-shadow:var(--shadow-out);margin-bottom:18px;padding:24px}.card:last-child{margin-bottom:0}.cards-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.cards-grid .card{margin-bottom:0}.btn{align-items:center;border:none;border-radius:var(--radius-sm);box-shadow:var(--shadow-out-sm);cursor:pointer;display:inline-flex;font-family:inherit;font-size:16px;font-weight:600;gap:8px;justify-content:center;padding:12px 20px;transition:background .15s,color .15s,filter .15s,box-shadow .15s;white-space:nowrap}.btn:active:not(:disabled){box-shadow:var(--shadow-in-sm);filter:none}.btn:disabled{cursor:not-allowed;filter:none;opacity:.45}.btn-primary{background:var(--blue);box-shadow:var(--shadow-out-sm);color:#fff}.btn-primary:hover:not(:disabled){background:var(--blue-dark)}.btn-primary:active:not(:disabled){box-shadow:var(--shadow-in-sm)}.btn-accent{background:var(--bg);border:none;box-shadow:var(--shadow-out-sm);color:var(--blue-dark)}.btn-accent:hover:not(:disabled){background:var(--blue-soft);box-shadow:var(--shadow-in-sm);color:var(--blue-dark)}.btn-purple{background:var(--green);color:#fff}.btn-purple,.btn-tour{box-shadow:var(--shadow-out-sm);font-weight:700}.btn-tour{background:var(--yellow);color:var(--yellow-text)}.btn-tour:hover:not(:disabled){background:var(--yellow-dark)}.btn-tour:active:not(:disabled){box-shadow:var(--shadow-in-sm)}.btn-purple:hover:not(:disabled){background:var(--green-dark);color:#fff}.btn-purple:active:not(:disabled){box-shadow:var(--shadow-in-sm)}.btn-ghost{background:var(--bg);border:none;box-shadow:var(--shadow-out-sm);color:var(--text)}.btn-ghost:hover:not(:disabled){background:var(--bg);box-shadow:var(--shadow-in-sm);color:var(--text)}.btn-danger{background:var(--error);border:none;box-shadow:var(--shadow-out-sm);color:#fff}.btn-danger:hover:not(:disabled){background:var(--error-dark)}.btn-danger:active:not(:disabled){box-shadow:var(--shadow-in-sm)}.btn-contrast{background:var(--bg);border:none;box-shadow:var(--shadow-out-sm);color:var(--text)}.btn-contrast:hover:not(:disabled){box-shadow:var(--shadow-in-sm)}html[data-theme=dark] .btn-contrast{background:var(--bg);color:#fff}html[data-theme=dark] .btn-contrast:hover:not(:disabled){box-shadow:var(--shadow-in-sm)}.btn-sm{font-size:14.5px;padding:8px 14px}.w-full{justify-content:center;width:100%}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.flex{display:flex}.flex.gap-2{gap:8px}.items-center{align-items:center}.justify-between{justify-content:space-between}.spin{animation:spin .8s linear infinite}.neo-select{display:inline-flex;flex-direction:column;font-family:inherit;min-width:0;position:relative;width:100%}.neo-select-trigger{align-items:center;background:var(--bg);border:none;border-radius:var(--radius-sm);box-shadow:var(--shadow-in-sm);color:var(--text);cursor:pointer;display:flex;font-family:inherit;font-size:16px;font-weight:500;gap:10px;min-height:46px;outline:none;padding:10px 14px;text-align:left;transition:box-shadow .15s,color .15s;width:100%}.neo-select-trigger:hover:not(:disabled){box-shadow:var(--shadow-in)}.neo-select-trigger:focus-visible{box-shadow:var(--shadow-in-sm),0 0 0 3px var(--blue-glow)}.neo-select.is-open .neo-select-trigger{box-shadow:var(--shadow-in),0 0 0 3px var(--blue-glow)}.neo-select.is-disabled .neo-select-trigger{cursor:not-allowed;opacity:.55}.neo-select-value{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.neo-select-value.is-placeholder{color:var(--text-muted);font-weight:500;opacity:.55}html[data-theme=dark] .neo-select-value.is-placeholder{opacity:.5}.neo-select-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .18s ease}.neo-select.is-open .neo-select-chevron{color:var(--blue);transform:rotate(180deg)}.neo-select-menu{animation:fadeIn .15s ease;background:var(--bg);border:none;border-radius:var(--radius-sm);box-shadow:var(--shadow-out);left:0;list-style:none;margin:0;max-height:min(280px,50vh);overflow-y:auto;padding:8px;position:absolute;right:0;top:calc(100% + 8px);z-index:80}.neo-select-option{background:#0000;border:none;border-radius:10px;color:var(--text);cursor:pointer;display:block;font-family:inherit;font-size:15.5px;font-weight:500;padding:11px 14px;text-align:left;transition:background .12s,color .12s,box-shadow .12s;width:100%}.neo-select-option:hover:not(:disabled){background:var(--bg)}.neo-select-option.is-active{background:var(--bg);box-shadow:var(--shadow-in-sm);color:var(--blue-dark);font-weight:650}.neo-select-option:disabled{cursor:not-allowed;opacity:.45}.neo-select--sm .neo-select-trigger{font-size:14px;min-height:36px;padding:6px 12px}.neo-select--sm .neo-select-option{font-size:14px;padding:9px 12px}.results-filter-select.neo-select{min-width:9.5rem;width:auto}.board-filter .neo-select{min-width:10rem;width:auto}.neo-select.field-input-missing .neo-select-trigger{border-color:var(--error);box-shadow:0 0 0 3px #e03b3b2e}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}.field-label{color:var(--text);font-size:15px;font-weight:600}.field-input{background:var(--bg);border:none;border-radius:var(--radius-sm);box-shadow:var(--shadow-in-sm);color:var(--text);font-family:inherit;font-size:16px;outline:none;padding:12px 14px;transition:box-shadow .15s}.field-input:focus{box-shadow:var(--shadow-in-sm),0 0 0 3px var(--blue-glow)}.upload-actions{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr}.upload-zone{align-items:center;background:var(--bg);border:2.5px dashed var(--upload-border);border-radius:var(--radius);box-shadow:var(--shadow-in);color:var(--blue-dark);cursor:pointer;display:flex;flex-direction:column;font-size:16px;font-weight:600;gap:12px;justify-content:center;min-height:130px;padding:28px;text-align:center;transition:all .15s}.upload-zone-btn{font:inherit;gap:8px;margin:0;min-height:120px;padding:20px 14px;width:100%}.upload-zone-title{font-size:15px;font-weight:750;line-height:1.2}.upload-zone-sub{color:var(--text-muted);font-size:12px;font-weight:500;line-height:1.3}.upload-zone-camera{background:linear-gradient(180deg,var(--green-soft),var(--surface2))}.upload-zone-camera,.upload-zone-camera:hover{border-color:var(--green-border);color:var(--green-dark)}.upload-zone-camera:hover{box-shadow:0 0 0 3px color-mix(in srgb,var(--green-border) 28%,#0000)}.upload-zone:hover{border-color:var(--blue);color:var(--blue)}.upload-zone-btn:disabled,.upload-zone-btn:disabled:hover{border-color:var(--border);box-shadow:none;color:var(--text-muted);cursor:not-allowed;opacity:.45}@media (max-width:560px){.upload-actions{grid-template-columns:1fr}.upload-zone-btn{min-height:96px;padding:16px 12px}}.upload-preview{border-radius:8px;max-height:180px;max-width:100%;object-fit:contain}.image-order-hint{font-size:14px;margin:6px 0 10px}.upload-validate-error{color:var(--error);font-size:15px;margin:8px 0 0}.image-order-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.image-order-item{align-items:center;background:var(--surface2);border:none;border-radius:var(--radius-sm);display:flex;gap:10px;padding:8px 10px}.image-order-item.draggable{cursor:grab}.image-order-item.draggable:active{border-color:var(--blue);cursor:grabbing}.drag-handle{color:var(--text-muted);flex-shrink:0}.page-badge{background:var(--blue-soft);border:none;border-radius:8px;color:var(--blue-dark);flex-shrink:0;font-size:12px;font-weight:600;padding:4px 9px}.image-order-thumb{border:1px solid var(--border);border-radius:8px;flex-shrink:0;height:60px;object-fit:cover;width:60px}.image-remove-btn{background:none;border:none;border-radius:8px;color:var(--text-muted);cursor:pointer;flex-shrink:0;margin-left:auto;padding:8px}.image-remove-btn:hover{background:var(--error-soft);color:var(--error)}.badge{align-items:center;border-radius:20px;display:inline-flex;font-size:13.5px;font-weight:600;gap:5px;padding:4px 12px}.badge-accent{color:var(--blue-dark)}.badge-accent,.badge-muted{background:var(--bg);border:none;box-shadow:var(--shadow-in-sm)}.badge-muted{color:var(--text-muted)}.toast{animation:fadeIn .3s ease;border:none;border-radius:var(--radius-sm);bottom:24px;box-shadow:var(--shadow-out);font-size:15px;font-weight:600;max-width:min(440px,calc(100vw - 32px));padding:14px 20px;position:fixed;right:24px;z-index:1100}.toast-success{background:var(--green-soft);color:var(--green-dark)}.toast-error{background:var(--error-soft);color:var(--error-text)}.modal-overlay{align-items:safe center;background:#1c2b3a47;box-sizing:border-box;display:flex;inset:0;justify-content:center;overflow:auto;padding:24px 16px 24px max(16px,276px);position:fixed;z-index:200}@media (max-width:768px){.modal-overlay{padding-left:16px}}.modal{animation:fadeIn .2s ease;background:var(--bg);border:none;border-radius:var(--radius);box-shadow:var(--shadow-modal);flex-shrink:0;height:auto;margin:0;max-height:none;overflow:visible;width:min(520px,100%)}.modal-header{align-items:center;border-bottom:none;display:flex;justify-content:space-between;padding:20px 24px}.modal-header h3{font-size:19px;font-weight:700}.modal-close{background:none;border:none;border-radius:8px;color:var(--error);cursor:pointer;padding:6px}.modal-close:hover{background:var(--error);color:#fff}.modal-body{overflow:visible;padding:24px}.modal-wide{width:min(1100px,100%)}.modal-handle{display:none}@media (max-width:768px){.modal-overlay{align-items:flex-end;overflow:hidden;padding:0}.modal{animation:sheet-up .28s cubic-bezier(.22,1,.36,1);border:none;border-radius:20px 20px 0 0;border-top:1px solid var(--border);max-height:92dvh;max-width:none;overflow-y:auto;overscroll-behavior:contain;padding-bottom:env(safe-area-inset-bottom);width:100%}.modal-handle{background:var(--border);border-radius:999px;display:block;flex-shrink:0;height:5px;margin:10px auto 0;width:44px}.modal-header{background:var(--bg);padding:14px 18px;position:-webkit-sticky;position:sticky;top:0;z-index:2}.modal-body{padding:18px}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.modal{animation:none}}.grade-student-row{align-items:center;background:var(--bg);border:none;border-radius:var(--radius-sm);box-shadow:var(--shadow-out-sm);display:flex;gap:8px;justify-content:space-between;padding:10px 12px}.grade-student-row.is-clickable{cursor:pointer;transition:box-shadow .15s,background .15s}.grade-student-row.is-clickable:active,.grade-student-row.is-clickable:hover{box-shadow:var(--shadow-in-sm)}.grade-student-row-main{display:flex;flex-direction:column;gap:4px;min-width:0}.grade-student-row-status{align-items:center;color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:12px;gap:4px;line-height:1.25}.grade-student-row-actions{align-items:center;display:flex;flex-shrink:0;gap:6px}.grade-badge-sm{border-radius:999px;box-shadow:var(--shadow-out-sm);color:#fff;font-size:12px;font-weight:700;min-width:2.2rem;padding:4px 10px;text-align:center}.results-viewer{display:flex;flex-direction:column;gap:14px}.results-toolbar{gap:10px;justify-content:space-between}.results-toolbar,.results-toolbar-filters{align-items:center;display:flex;flex-wrap:wrap}.results-toolbar-filters{flex:1 1;gap:8px;min-width:0}.results-toolbar-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.results-search,.results-sort{align-items:center;color:var(--text-muted);display:flex;gap:6px}.results-search{flex:1 1 180px;min-width:140px}.results-search .field-input{flex:1 1;min-width:0}.results-filter-select{min-width:9.5rem;width:auto}.results-split{grid-gap:14px;display:grid;gap:14px;grid-template-columns:1fr;min-height:280px}.results-split.has-detail{grid-template-columns:minmax(220px,.9fr) minmax(0,1.4fr)}.results-roster{display:flex;flex-direction:column;gap:6px;max-height:min(62vh,640px);overflow:auto;padding-right:2px}.results-roster-row{align-items:center;background:var(--bg);border:none;border-radius:var(--radius-sm);box-shadow:var(--shadow-out-sm);color:inherit;cursor:pointer;display:flex;font:inherit;gap:10px;justify-content:space-between;padding:10px 12px;text-align:left;width:100%}.results-roster-row.is-active,.results-roster-row:hover{box-shadow:var(--shadow-in-sm)}.results-roster-row.is-active{background:var(--blue-soft)}.results-roster-info{display:flex;flex-direction:column;gap:2px;min-width:0}.results-roster-right{align-items:center;display:flex;flex-shrink:0;gap:6px}.results-roster-chevron{color:var(--blue);opacity:.85}.board-search>svg,.results-search>svg,.results-sort>svg{color:var(--blue);flex-shrink:0}.results-detail-pane{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:none;max-height:min(62vh,640px);overflow:auto;padding:14px}.results-detail-top{justify-content:space-between;margin-bottom:12px}.results-detail-actions,.results-detail-top{align-items:center;display:flex;gap:8px}.incorrect-filter-switch{align-items:center;cursor:pointer;display:inline-flex;gap:10px;margin:0 0 14px;-webkit-user-select:none;user-select:none;width:-webkit-fit-content;width:fit-content}.incorrect-filter-switch input{height:1px;opacity:0;pointer-events:none;position:absolute;width:1px}.incorrect-filter-track{background:var(--bg);border:none;border-radius:999px;box-shadow:var(--shadow-in-sm);flex-shrink:0;height:24px;position:relative;transition:background .15s,box-shadow .15s;width:42px}.incorrect-filter-knob{background:var(--text-muted);border-radius:999px;box-shadow:var(--shadow-out-sm);height:16px;left:4px;position:absolute;top:4px;transition:transform .15s,background .15s;width:16px}.incorrect-filter-switch.is-on .incorrect-filter-track{background:var(--error-soft);box-shadow:var(--shadow-in-sm)}.incorrect-filter-switch.is-on .incorrect-filter-knob{background:var(--error);transform:translateX(18px)}.incorrect-filter-label{color:var(--text);display:flex;flex-direction:column;font-size:14px;font-weight:650;gap:1px;line-height:1.2}.incorrect-filter-title{color:var(--error-text);font-weight:700}.incorrect-filter-count{color:var(--error);font-size:12px;font-weight:600}.incorrect-filter-label small{color:var(--text-muted);font-size:12px;font-weight:500}.results-back{align-items:center;display:inline-flex;gap:4px}.student-result-head{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;margin-bottom:12px}.student-result-name{font-size:1.15rem;margin:0 0 6px}.student-result-meta-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}.student-result-exam{color:var(--text-muted);font-size:14px;font-weight:500}.student-result-score{align-items:flex-end;display:flex;flex-direction:column;gap:4px}.answer-review-list{display:flex;flex-direction:column;gap:10px}.answer-review-card{background:var(--bg);border:none;border-radius:var(--radius-sm);box-shadow:var(--shadow-out-sm);padding:12px}.answer-review-card.is-ok{background:color-mix(in srgb,var(--green) 8%,var(--bg));box-shadow:var(--shadow-out-sm)}.answer-review-card.is-partial{background:color-mix(in srgb,var(--warning) 10%,var(--bg))}.answer-review-card.is-bad{background:color-mix(in srgb,var(--error) 8%,var(--bg))}.answer-review-head{align-items:center;display:flex;flex-wrap:wrap;gap:8px 10px;margin-bottom:8px}.answer-review-num,.answer-review-type{color:var(--blue-dark);font-weight:700}.answer-review-type{background:var(--blue-soft);border:none;border-radius:999px;box-shadow:var(--shadow-out-sm);font-size:12px;padding:3px 9px}.answer-review-pts{font-feature-settings:"tnum";font-size:13px;font-variant-numeric:tabular-nums;font-weight:600;margin-left:auto}.answer-review-question{font-size:14px;font-weight:600;line-height:1.35;margin:0 0 10px}.answer-review-grid{grid-gap:10px;display:grid;font-size:14px;gap:10px;grid-template-columns:1fr 1fr;margin-bottom:8px}.answer-review-note{color:var(--text-muted);font-size:13px;line-height:1.4;margin:0}.answer-review-note .answer-extract-label{margin-bottom:2px}@media (max-width:720px){.results-split.has-detail{grid-template-columns:1fr}.results-roster{max-height:220px}.results-detail-pane{max-height:none}.answer-review-grid{grid-template-columns:1fr}.grade-student-row{align-items:stretch;flex-direction:column}.grade-student-row-actions{justify-content:flex-end}}.region-annotator{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:16px;overflow:hidden}.region-annotator-toolbar{border-bottom:1px solid var(--border);gap:10px;justify-content:space-between;padding:10px 12px}.region-annotator-toolbar,.region-tool-group{align-items:center;display:flex;flex-wrap:wrap}.region-tool-group{gap:8px}.region-tool{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:none;color:var(--text-muted);cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:6px;padding:8px 12px}.region-tool.active.question{background:var(--blue-soft);box-shadow:none;color:var(--blue-dark)}.region-tool.active.answer{background:var(--green-soft);box-shadow:none;color:var(--green-dark)}.region-tool:disabled{cursor:not-allowed;opacity:.55}.region-mode-tabs{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:none;display:inline-flex;gap:4px;margin-right:6px;padding:4px}.region-mode-tab{align-items:center;background:#0000;border:none;border-radius:10px;color:var(--text-muted);cursor:pointer;display:inline-flex;font-size:15px;font-weight:600;gap:8px;padding:10px 16px;transition:background .15s,color .15s,box-shadow .15s}.region-mode-tab:hover:not(.active){color:var(--text)}.region-mode-tab.active.answer{background:var(--surface);box-shadow:none;color:var(--green-dark)}.region-mode-tab.active.student{background:var(--surface);box-shadow:none;color:var(--warning-text)}.region-mode-steps{align-items:stretch;display:flex;flex-wrap:wrap;gap:8px;margin-right:8px}.region-mode-step{align-items:center;background:var(--surface);border:none;border-radius:16px;box-shadow:none;color:var(--text-muted);cursor:pointer;display:flex;gap:10px;min-width:min(220px,100%);padding:10px 14px;text-align:left;transition:background .15s,color .15s,box-shadow .15s,transform .15s}.region-mode-step:hover:not(.active){color:var(--text)}.region-mode-step-num{align-items:center;background:var(--surface2);border:none;border-radius:999px;color:var(--text-muted);display:inline-flex;flex-shrink:0;font-size:14px;font-weight:800;height:28px;justify-content:center;width:28px}.region-mode-step-body{display:flex;flex-direction:column;gap:2px;min-width:0}.region-mode-step-title{align-items:center;color:inherit;display:inline-flex;font-size:14px;font-weight:700;gap:6px}.region-mode-step-desc{font-size:12px;font-weight:500;line-height:1.25;opacity:.85}.region-mode-step-arrow{align-self:center;color:var(--text-muted);font-weight:700;opacity:.55}.region-mode-step.active.student{background:var(--warning-soft);box-shadow:none;color:var(--warning-text)}.region-mode-step.active.answer{background:var(--green-soft);box-shadow:none;color:var(--green-dark)}.region-mode-step.active .region-mode-step-num{background:currentColor;border-color:#0000;color:#fff}.region-phase-banner{align-items:flex-start;border:none;border-radius:14px;display:flex;gap:12px;margin:10px 12px 0;padding:12px 14px}.region-phase-banner.student{background:var(--warning-soft)}.region-phase-banner.answer{background:var(--green-soft)}.region-phase-badge{border:1px solid;border-radius:999px;flex-shrink:0;font-size:11px;font-weight:800;letter-spacing:.04em;padding:5px 9px;text-transform:uppercase}.region-phase-banner.student .region-phase-badge{color:var(--warning-text)}.region-phase-banner.answer .region-phase-badge{color:var(--green-dark)}.region-phase-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.region-phase-copy strong{color:var(--text);font-size:15px;font-weight:700}.region-phase-copy p{color:var(--text-muted);font-size:13px;line-height:1.35;margin:0}.region-list-head{align-items:center;display:flex;gap:8px;justify-content:space-between;padding:2px 4px 6px}.region-list-progress{background:var(--surface2);border-radius:999px;color:var(--text-muted);font-size:12px;font-weight:700;padding:2px 8px}.region-list-cta{align-items:center;border-radius:10px;display:flex;font-size:13px;font-weight:650;gap:10px;line-height:1.3;margin:0 0 8px;padding:10px 12px}.region-list-cta.student{background:var(--warning-soft);border:1.5px dashed var(--warning-border);color:var(--warning-text)}.region-list-cta.answer{background:var(--green-soft);border:1.5px dashed var(--green-border);color:var(--green-dark)}.region-q-item.student-item.selected{background:var(--warning-soft);border-color:var(--warning-border)}.region-q-item.answer-item.selected{background:var(--green-soft);border-color:var(--green-border)}.region-q-item.marked:not(.selected){border-color:color-mix(in srgb,var(--green-border) 55%,var(--border))}.region-progress{color:var(--text-muted);font-size:13px;margin-right:4px}.region-page-nav{align-items:center;color:var(--text-muted);display:flex;font-size:14px;gap:8px}.region-page-strip{align-items:stretch;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:10px;padding:10px 12px 0}.region-page-strip.reorderable{background:linear-gradient(180deg,#1e8e5a0d,#0000)}.region-page-strip-header{align-items:center;display:flex;flex-wrap:wrap;gap:6px 12px;justify-content:space-between;width:100%}.region-page-strip-title{align-items:center;color:var(--text);display:inline-flex;font-size:14px;font-weight:600;gap:8px}.region-page-strip-count{background:var(--surface);border:1px solid var(--border);border-radius:999px;color:var(--text-muted);font-size:12px;font-weight:600;padding:2px 9px}.region-page-strip-tip{color:var(--text-muted);font-size:13px}.region-page-thumbs{display:flex;flex-wrap:nowrap;gap:10px;min-height:148px;overflow-x:auto;overflow-y:hidden;padding:4px 2px 8px;width:100%}.region-page-thumb-wrap{align-items:center;border-radius:10px;display:flex;flex:0 0 auto;flex-direction:column;gap:4px;padding:2px;position:relative;transition:background .15s ease,box-shadow .15s ease}.region-page-thumb-wrap.drag-over{background:#1e8e5a1f;box-shadow:inset 0 0 0 2px #1e8e5a8c}.region-page-thumb-wrap.drag-source{opacity:.55}.region-page-order-badge{background:var(--green);border-radius:999px;box-shadow:0 2px 6px #1c2b3a40;color:#fff;font-size:11px;font-weight:700;height:20px;left:-2px;line-height:20px;min-width:20px;padding:0 5px;position:absolute;text-align:center;top:-2px;z-index:2}.region-page-strip-footer{align-items:center;display:flex;flex-wrap:wrap;gap:10px 12px;width:100%}.region-page-thumb{background:var(--surface);border:2px solid var(--border);border-radius:8px;cursor:pointer;display:flex;flex:0 0 auto;flex-direction:column;outline:none;overflow:hidden;padding:0;position:relative;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;width:84px}.region-page-thumb:focus-visible{box-shadow:0 0 0 3px var(--green-glow)}.region-page-thumb.reorderable{padding-top:20px}.region-page-delete-btn{align-items:center;background:#c43d3deb;border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;height:20px;justify-content:center;opacity:0;padding:0;position:absolute;right:3px;top:3px;transition:opacity .15s ease,transform .15s ease;width:20px;z-index:2}.region-page-delete-btn:focus-visible,.region-page-thumb-wrap:hover .region-page-delete-btn{opacity:1}.region-page-delete-btn:hover{background:var(--error);transform:scale(1.05)}.region-page-move-btns{display:flex;gap:4px}.region-page-move-btn{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text-muted);cursor:pointer;display:inline-flex;height:24px;justify-content:center;padding:0;width:26px}.region-page-move-btn:hover:not(:disabled){background:var(--green-soft);border-color:var(--green-border);color:var(--green-dark)}.region-page-move-btn:disabled{cursor:not-allowed;opacity:.35}.region-page-strip-status{color:var(--green-dark);flex:1 1 200px;font-size:13px;margin:0}.region-page-thumb:hover{border-color:var(--green-border)}.region-page-thumb.active{border-color:var(--green);box-shadow:0 0 0 1px #1e8e5a59}.region-page-thumb.missing{border-color:var(--error);box-shadow:0 0 0 1px #c43d3d4d}.region-page-thumb.missing .region-page-thumb-label{color:var(--error)}.region-page-thumb-preview{background:var(--surface2);min-height:88px;position:relative;width:100%}.region-page-thumb img{background:var(--surface2);display:block;height:88px;object-fit:cover;object-position:top center;width:100%}.region-page-thumb-fallback{align-items:center;color:var(--text-muted);display:flex;font-size:18px;font-weight:600;height:88px;justify-content:center}.region-page-thumb-label{background:var(--surface2);border-top:1px solid var(--border);color:var(--text-muted);font-size:11px;padding:4px 6px;text-align:center}.region-page-thumb.active .region-page-thumb-label{color:var(--green-dark);font-weight:600}.region-page-thumb.draggable{cursor:grab}.region-page-thumb.draggable:active{cursor:grabbing}.region-page-grip-handle{align-items:center;background:var(--surface2);border:1px solid var(--border);border-radius:4px;color:var(--text-muted);cursor:grab;display:inline-flex;height:16px;justify-content:center;left:50%;position:absolute;top:2px;transform:translateX(-50%);width:28px;z-index:1}.region-page-grip-handle:hover{background:var(--bg);color:var(--text)}.region-page-grip-handle:active{cursor:grabbing}.region-page-grip{color:var(--text-muted);left:4px;opacity:.85;pointer-events:none;position:absolute;top:4px}.region-canvas-error{margin:0;min-height:220px}.region-canvas-error,.region-canvas-loading{align-items:center;display:flex;justify-content:center}.region-canvas-loading{color:#ffffffbf;flex-direction:column;font-size:13px;font-weight:600;gap:12px;line-height:1.3;min-height:260px;width:100%}.region-canvas-loading-spinner{animation:region-loading-spin .8s linear infinite;border:3px solid #fff3;border-radius:999px;border-top-color:#4da3e0;height:30px;width:30px}@keyframes region-loading-spin{to{transform:rotate(1turn)}}.region-page-reorder-hint{flex:1 1 200px;font-size:13px;line-height:1.4;margin:0}.region-add-page-btn{align-items:center;align-self:center;background:var(--green-soft);border:1.5px dashed var(--green-border);border-radius:8px;color:var(--green-dark);cursor:pointer;display:inline-flex;flex:0 0 auto;font-size:13px;font-weight:600;gap:6px;padding:10px 12px;white-space:nowrap}.region-add-page-btn:hover{border-style:solid}.region-add-page-btn.disabled{opacity:.55;pointer-events:none}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.region-annotator-hint{font-size:13px;margin:8px 0 0;padding:0 12px 10px}.region-annotator-layout{grid-gap:0;border-top:1px solid var(--border);display:grid;gap:0;grid-template-columns:1fr 220px;min-height:280px}@media (max-width:720px){.region-annotator-layout{grid-template-columns:1fr}}.region-canvas-stage{min-width:0;position:relative}.region-gesture-overlay,.region-mobile-mode-label,.region-mobile-shell,.region-topbar-zoom{display:none}.region-page-thumb-placeholder{animation:region-thumb-shimmer 1.1s ease-in-out infinite;background:linear-gradient(90deg,var(--surface2) 25%,color-mix(in srgb,var(--surface2) 70%,#fff) 50%,var(--surface2) 75%);background-size:200% 100%;display:block;height:88px;width:100%}@keyframes region-thumb-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.region-canvas-wrap{background:#22303e;height:min(68dvh,720px);max-height:min(68dvh,720px);overflow-x:scroll;overflow-y:scroll;overscroll-behavior:contain;position:relative;scrollbar-color:#1173c4 #33414f;scrollbar-width:auto;touch-action:pan-x pan-y;-webkit-user-select:none;user-select:none}.region-canvas-wrap::-webkit-scrollbar{height:14px;width:14px}.region-canvas-wrap::-webkit-scrollbar-track{background:#33414f;border-radius:8px}.region-canvas-wrap::-webkit-scrollbar-thumb{background:#4da3e0;border:2px solid #33414f;border-radius:8px;min-height:40px}.region-canvas-wrap::-webkit-scrollbar-thumb:hover{background:#74bcec}.region-canvas-wrap::-webkit-scrollbar-corner{background:#33414f}.region-zoom-inner{display:block;height:-webkit-max-content;height:max-content;line-height:0;min-width:100%;width:100%;width:var(--region-zoom-width,100%)}.region-frame{cursor:crosshair;display:block;line-height:0;position:relative;touch-action:none;width:100%}.region-canvas-image{display:block;height:auto;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%}.region-overlay{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.region-box{border:2px solid;border-radius:4px;box-sizing:border-box;cursor:pointer;pointer-events:auto;position:absolute}.region-box span{border-radius:0 0 4px 0;color:#fff;font-size:10px;font-weight:700;left:0;padding:1px 4px;position:absolute;top:0}.region-box.question{background:#4a90d92e;border-color:#4a90d9}.region-box.question span{background:#4a90d9}.region-box.answer{background:#2fb6732e;border-color:#2fb673}.region-box.answer span{background:#2fb673}.region-box.student{background:#e6b13c38;border-color:#e6b13c}.region-box.student span{background:#e6b13c;color:#1a1508}.region-box.selected{outline:2px solid #fff;outline-offset:1px}.region-box.draft{border-style:dashed;opacity:.7;pointer-events:none}.region-box.draft.oversized{background:#c43d3d2e;border-color:var(--error)}.region-box-size-error{background:var(--error-soft);border:1px solid var(--error-border);border-radius:8px;color:var(--error);font-size:15px;margin:0 0 10px;padding:10px 14px}.region-tool.active.student{box-shadow:none}.region-q-flags span.on.student,.region-tool.active.student{background:var(--warning-soft);color:var(--warning-text)}.region-question-list{background:var(--surface2);border-left:none;display:flex;flex-direction:column;gap:4px;max-height:420px;overflow-y:auto;padding:8px}.region-list-title{color:var(--text);font-size:13px;font-weight:700;margin:0;padding:0}.region-required-legend{background:var(--error-soft);border:none;border-radius:var(--radius-sm);color:var(--error-text);font-size:13.5px;line-height:1.4;margin:0 6px 8px;padding:10px 12px}.region-q-item{grid-gap:6px;align-items:center;background:#0000;border:1px solid #0000;border-radius:8px;color:var(--text);cursor:pointer;display:grid;font-size:12.5px;gap:6px;grid-template-columns:auto 1fr auto auto;padding:8px;text-align:left}.region-q-item:hover{background:var(--surface)}.region-q-item.selected{background:var(--blue-soft);border-color:var(--blue-border-strong)}.region-q-item.missing{background:var(--error-soft);border-color:var(--error-border);color:var(--error-text)}.region-q-item.missing.selected{background:var(--error-soft-strong);border-color:var(--error)}.region-q-item.missing .region-q-num{color:var(--error)}.region-q-num{color:var(--text-muted);font-weight:700}.region-q-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.region-q-flags{display:flex;gap:3px}.region-q-flags span{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:4px;color:var(--text-muted);display:inline-flex;font-size:9px;font-weight:700;height:17px;justify-content:center;width:17px}.region-q-flags span.on{background:var(--green);border-color:var(--green);color:#fff}.region-q-flags span.missing{background:var(--error-soft);border-color:var(--error-border);color:var(--error)}.region-q-clear{color:var(--text-muted);display:inline-flex;padding:2px}.region-q-clear:hover{color:var(--error)}.region-add-q{align-items:center;background:linear-gradient(180deg,var(--green-soft),#0000);border:2px dashed var(--green-border);border-radius:12px;color:var(--green-dark);cursor:pointer;display:flex;font-size:14px;font-weight:700;gap:12px;margin-top:10px;padding:12px 14px;text-align:left;transition:background .15s,border-color .15s,transform .15s,box-shadow .15s;width:100%}.region-add-q-icon{align-items:center;background:var(--green-soft);border:1.5px solid var(--green-border);border-radius:10px;display:inline-flex;flex-shrink:0;height:34px;justify-content:center;width:34px}.region-add-q-text{display:flex;flex-direction:column;gap:1px;min-width:0}.region-add-q-text strong{font-size:14px;font-weight:800}.region-add-q-text small{font-size:12px;font-weight:500;opacity:.85}.region-add-q:hover{background:var(--green-soft);border-color:var(--green-border);box-shadow:0 0 0 3px color-mix(in srgb,var(--green-border) 25%,#0000);color:var(--green-dark);transform:translateY(-1px)}@media (max-width:768px){.modal:has(.region-annotator){border-radius:0;display:flex;flex-direction:column;height:100dvh;max-height:100dvh;overflow:hidden;padding-bottom:0;width:100%}.modal:has(.region-annotator) .modal-handle{display:none}.modal:has(.region-annotator) .modal-header{flex-shrink:0;padding:6px 12px}.modal:has(.region-annotator) .modal-header h3{font-size:15px}.modal:has(.region-annotator) .modal-close{padding:4px}.modal-body:has(.region-annotator){display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow:hidden;padding:0}.modal-body:has(.region-annotator)>.flex,.modal-body:has(.region-annotator)>.template-annotate-guide,.modal-body:has(.region-annotator)>.template-step-banner,.modal-body:has(.region-annotator)>.tour-demo-banner{flex-shrink:0;margin-left:8px;margin-right:8px}.modal-body:has(.region-annotator)>.template-annotate-guide,.modal-body:has(.region-annotator)>.template-step-banner{display:none}.modal-body:has(.region-annotator)>.tour-demo-banner{font-size:11px;gap:6px;line-height:1.2;margin-bottom:4px;margin-top:4px;padding:5px 8px}.modal-body:has(.region-annotator)>.region-annotator{flex:1 1 auto;min-height:0}.modal-body:has(.region-annotator)>.flex{display:flex;flex-wrap:nowrap;gap:6px!important;margin-bottom:0;margin-top:4px!important;padding:4px 8px calc(4px + env(safe-area-inset-bottom))}.modal-body:has(.region-annotator)>.flex>.btn,.modal-body:has(.region-annotator)>.flex>button{flex:1 1;font-size:12px;line-height:1.15;min-height:34px;padding:6px 8px;white-space:normal}.region-annotator{background:var(--bg);border:0;border-radius:0;display:flex;flex-direction:column;margin:0;min-height:0;overflow:hidden}.region-desktop-only{display:none!important}.region-annotator-toolbar.region-topbar{align-items:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:color-mix(in srgb,var(--bg) 96%,#0000);border-bottom:1px solid var(--border);display:flex;flex-shrink:0;gap:6px;justify-content:space-between;padding:4px 8px;position:relative;top:0;z-index:8}.region-mobile-mode-label{color:var(--text-muted);display:inline;font-size:11px;font-weight:700}.region-page-nav{align-items:center;display:flex;font-size:11px;gap:2px;margin-left:auto;white-space:nowrap}.region-page-nav .icon-btn{height:28px;width:28px}.region-box-size-error{flex-shrink:0;font-size:12px;margin:4px 8px}.region-annotator-layout{border-top:0;display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.region-canvas-stage{background:#172431;flex:1 1 auto;min-height:0;position:relative;width:100%}.region-canvas-wrap{background:radial-gradient(circle at center,#4da3e01c,#0000 58%),#172431;height:100%;inset:0;max-height:none;min-height:0;overflow:auto;position:absolute;scrollbar-width:none;touch-action:pan-x pan-y;width:100%}.region-canvas-wrap::-webkit-scrollbar{display:none}.region-frame{touch-action:none}.region-box{border-width:2px;min-height:16px;min-width:16px}.region-box.selected{outline-offset:1px;outline-width:2px}.region-topbar-zoom{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:999px;display:inline-flex;gap:1px;margin-right:4px;padding:1px}.region-topbar-zoom .icon-btn{height:26px;width:26px}.region-topbar-zoom-value{background:#0000;border:0;border-radius:999px;color:var(--text-muted);cursor:pointer;font:inherit;font-size:10px;font-weight:700;height:26px;min-width:38px;padding:0 4px}.region-topbar-zoom-value:disabled{cursor:default;opacity:.55}.region-gesture-overlay{align-items:center;animation:region-gesture-fade 5s ease forwards;display:flex;flex-direction:column;gap:10px;inset:0;justify-content:center;pointer-events:none;position:absolute;z-index:5}.region-gesture-fingers{animation:region-gesture-drift 1.6s ease-in-out infinite alternate;height:64px;position:relative;width:72px}.region-gesture-finger{background:#ffffff38;border:2px solid #ffffff73;border-radius:999px;height:28px;left:6px;position:absolute;top:22px;width:28px}.region-gesture-finger.second{left:38px;top:6px}.region-gesture-toast{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#14222fe0;border-radius:999px;color:#fff;font-size:11px;font-weight:600;line-height:1.25;max-width:84%;padding:6px 10px;text-align:center}@keyframes region-gesture-drift{0%{transform:translate(-8px,4px)}to{transform:translate(8px,-4px)}}@keyframes region-gesture-fade{0%,78%{opacity:1}to{opacity:0}}.region-mobile-shell{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:color-mix(in srgb,var(--bg) 96%,#0000);border-top:1px solid var(--border);box-shadow:0 -4px 14px #14222f1a;display:flex;flex-direction:column;flex-shrink:0;z-index:9}.region-mobile-panel{border-bottom:1px solid color-mix(in srgb,var(--border) 70%,#0000);padding:5px 8px 4px}.region-mobile-panel-head{align-items:center;color:var(--text-muted);display:flex;font-size:11px;gap:6px;justify-content:space-between;margin-bottom:4px}.region-mobile-panel-head strong{color:var(--text);font-size:12px}.region-mobile-thumbs{display:flex;gap:6px;overflow-x:auto;padding-bottom:1px;scrollbar-width:none}.region-mobile-thumbs::-webkit-scrollbar{display:none}.region-mobile-thumb{background:var(--surface);border:1.5px solid var(--border);border-radius:8px;color:inherit;cursor:pointer;flex:0 0 auto;font:inherit;overflow:hidden;padding:0;width:52px}.region-mobile-thumb.active{border-color:var(--green-border);box-shadow:0 0 0 2px color-mix(in srgb,var(--green-border) 28%,#0000)}.region-mobile-thumb-preview{background:var(--surface2);display:block;height:44px;overflow:hidden;width:100%}.region-mobile-thumb-preview .region-page-thumb-placeholder,.region-mobile-thumb-preview img{display:block;height:44px;object-fit:cover;object-position:top center;width:100%}.region-mobile-thumb-fallback{align-items:center;color:var(--text-muted);display:flex;font-size:14px;font-weight:700;height:44px;justify-content:center;width:100%}.region-mobile-thumb-label{background:var(--surface2);border-top:1px solid var(--border);color:var(--text-muted);display:block;font-size:10px;padding:2px 4px;text-align:center}.region-mobile-thumb-add{align-items:stretch;display:flex;flex-direction:column}.region-mobile-thumb-add .region-mobile-thumb-preview{align-items:center;color:var(--blue);display:flex;justify-content:center}.region-mobile-thumb-add.disabled{opacity:.5;pointer-events:none}.region-mobile-chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:1px;scrollbar-width:none}.region-mobile-chips::-webkit-scrollbar{display:none}.region-mobile-chip{background:var(--surface);border:1.5px solid var(--border);color:inherit;cursor:pointer;flex:0 0 auto;font:inherit;gap:4px;min-height:30px;padding:4px 8px}.region-mobile-chip,.region-mobile-chip span{align-items:center;border-radius:999px;display:inline-flex}.region-mobile-chip span{background:var(--surface2);font-size:10px;font-weight:700;height:18px;justify-content:center;min-width:18px;padding:0 4px}.region-mobile-chip em{font-size:11px;font-style:normal;font-weight:600}.region-mobile-chip.selected{border-width:2px}.region-mobile-chip.student.selected{background:var(--warning-soft);border-color:var(--warning)}.region-mobile-chip.answer.selected{background:var(--green-soft);border-color:var(--green-border)}.region-mobile-chip.marked span{background:var(--green-soft);color:var(--green-dark)}.region-mobile-chip.add{border-style:dashed;color:var(--blue)}.region-mobile-chip-clear{align-items:center;background:color-mix(in srgb,var(--error) 10%,#0000);border-radius:999px;color:var(--error);display:inline-flex;height:22px;justify-content:center;margin-left:1px;width:22px}.region-mobile-dock{grid-gap:2px;background:var(--bg);display:grid;gap:2px;grid-template-columns:repeat(3,1fr);padding:2px 4px calc(2px + env(safe-area-inset-bottom))}.region-mobile-dock button{align-items:center;background:#0000;border:0;border-radius:10px;color:var(--text-muted);cursor:pointer;display:flex;flex-direction:column;font:inherit;font-size:9px;font-weight:650;gap:1px;justify-content:center;min-height:40px;padding:4px 2px}.region-mobile-dock button.active{background:var(--blue-soft);color:var(--blue)}.region-mobile-dock button.active.student{background:var(--warning-soft);color:var(--warning)}.region-mobile-dock button.active.answer{background:var(--green-soft);color:var(--green-dark)}.region-mobile-dock button:disabled{opacity:.4}}.template-step-banner{align-items:center;color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:14px;gap:8px;margin-bottom:14px}.template-step-banner .step-pill{align-items:center;background:var(--surface2);border:none;border-radius:999px;display:inline-flex;font-weight:500;gap:6px;padding:7px 14px}.template-step-banner .step-pill.active{background:var(--blue-soft);box-shadow:none;color:var(--blue-dark);font-weight:700}.template-annotate-guide{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin:0 0 14px}.template-annotate-guide-item{align-items:flex-start;background:var(--surface);border:none;border-radius:14px;box-shadow:none;display:flex;gap:12px;padding:12px 14px}.template-annotate-guide-item.student{background:var(--warning-soft)}.template-annotate-guide-item.answer{background:var(--green-soft)}.template-annotate-guide-num{align-items:center;border-radius:999px;color:#fff;display:inline-flex;flex-shrink:0;font-size:14px;font-weight:800;height:28px;justify-content:center;width:28px}.template-annotate-guide-item.student .template-annotate-guide-num{background:var(--warning-text)}.template-annotate-guide-item.answer .template-annotate-guide-num{background:var(--green-dark)}.template-annotate-guide-item strong{color:var(--text);display:block;font-size:14px;font-weight:750;margin-bottom:2px}.template-annotate-guide-item p{color:var(--text-muted);font-size:13px;line-height:1.35;margin:0}.template-transcribe-bar{align-items:center;background:var(--bg);border:none;border-radius:var(--radius-sm);box-shadow:none;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px;padding:12px}.template-transcribe-bar p{color:var(--text-muted);flex:1 1;font-size:14px;margin:0;min-width:180px}.template-transcribe-stop{margin-left:auto}.template-review-flow{margin-top:8px;position:relative}.template-review-flow.gated .template-editor{filter:grayscale(.25) saturate(.7);opacity:.38;pointer-events:none;transition:opacity .35s ease,filter .35s ease}.template-flow-gate{align-items:flex-start;display:flex;inset:0;justify-content:center;padding-top:48px;pointer-events:none;position:absolute;z-index:2}.template-flow-gate p{animation:gate-pulse 2.2s ease-in-out infinite;background:var(--surface);border:1.5px dashed var(--blue);border-radius:12px;box-shadow:none;color:var(--text);font-size:15px;margin:0;max-width:420px;padding:12px 16px;text-align:center}@keyframes gate-pulse{0%,to{opacity:.85}50%{opacity:1}}.template-total.over-limit{color:var(--error);font-weight:700}.points-hint-banner{background:var(--warning-soft);border:none;border-radius:10px;color:var(--warning);font-size:14.5px;line-height:1.45;margin:0 0 10px;padding:11px 14px}.inline-icon{color:var(--green);display:inline;vertical-align:-2px}.transcribe-mode{display:flex;flex-direction:column;gap:6px;width:100%}.transcribe-mode-label{color:var(--text-muted);font-size:13px}.transcribe-mode-hint{color:var(--error);font-style:italic}.mode-symbols{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;font-weight:700;letter-spacing:1px;line-height:1}.transcribe-mode-tab,.transcribe-mode-tabs{display:inline-flex;gap:6px}.transcribe-mode-tab{align-items:center;background:var(--surface);border:none;border-radius:10px;box-shadow:none;color:var(--text-muted);cursor:pointer;font-family:inherit;font-size:14px;font-weight:500;padding:8px 15px;transition:all .15s}.transcribe-mode-tab:hover:not(:disabled){color:var(--text)}.transcribe-mode-tab.active{background:var(--green-soft);box-shadow:none;color:var(--green-dark)}.transcribe-mode-tab:disabled{cursor:not-allowed;opacity:.5}.align-editor{margin-top:4px}.align-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.align-canvas-wrap{background:#22303e;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:grab;max-height:480px;overflow:auto;touch-action:none;-webkit-user-select:none;user-select:none}.align-canvas-wrap:active{cursor:grabbing}.align-canvas{display:block;margin:0 auto;max-width:100%}.ai-config-summary{background:var(--bg);border:none;border-radius:var(--radius-sm);box-shadow:none;font-size:14px;line-height:1.6;padding:12px 14px}.ai-config-summary p{margin:0 0 4px}.ai-config-summary p:last-child{margin-bottom:0}.template-editor{display:flex;flex-direction:column;gap:14px}.template-editor-summary{background:var(--bg);border:none;border-radius:var(--radius-sm);box-shadow:none;color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:14px;gap:14px;padding:12px 14px}.template-total{color:var(--green-dark);font-weight:700;margin-left:auto}.template-questions{display:flex;flex-direction:column;gap:12px;max-height:420px;overflow-y:auto;padding-right:4px}.template-question-card{background:var(--bg);border:none;border-radius:var(--radius-sm);box-shadow:none;padding:14px}.template-question-card.missing{background:var(--error-soft);border-color:var(--error-border)}.field-missing .field-label{color:var(--error)}.field-input-missing{border-color:#d98080!important;box-shadow:0 0 0 1px #c43d3d33}.template-question-header{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-bottom:10px}.template-question-header strong{color:var(--blue-dark);font-size:15px}.template-question-meta{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.inline-field{align-items:center;color:var(--text-muted);display:flex;font-size:13px;gap:6px}.field-input-sm{font-size:15px;min-width:76px;padding:8px 10px;width:auto}.template-question-card select.field-input{cursor:pointer;width:100%}.field-textarea{font-family:inherit;min-height:56px;resize:vertical}.icon-btn{align-items:center;background:var(--bg);border:none;border-radius:12px;box-shadow:var(--shadow-out-sm);color:var(--text-muted);cursor:pointer;display:inline-flex;height:36px;justify-content:center;transition:color .15s,background .15s,box-shadow .15s;width:36px}.icon-btn:hover{background:var(--bg);color:var(--text)}.icon-btn:active:not(:disabled),.icon-btn:hover{box-shadow:var(--shadow-in-sm)}.icon-btn-danger{background:var(--error);border:none;box-shadow:var(--shadow-out-sm);color:#fff}.icon-btn-danger:hover{background:var(--error-dark);color:#fff}.icon-btn-danger:active:not(:disabled){box-shadow:var(--shadow-in-sm)}.icon-btn-lg{border-radius:12px;height:44px;width:44px}.icon-btn-ai{background:var(--green-soft);border-color:var(--green-border);color:var(--green-dark)}.icon-btn-ai:hover{background:var(--green);border-color:var(--green);color:#fff}.icon-btn-delete{background:var(--error);border:none;box-shadow:var(--shadow-out-sm);color:#fff}.icon-btn-delete:hover{background:var(--error-dark);color:#fff}.icon-btn-delete:active:not(:disabled){box-shadow:var(--shadow-in-sm)}.icon-btn-contrast{background:var(--bg);border:none;box-shadow:var(--shadow-out-sm);color:var(--text)}.icon-btn-contrast:hover{background:var(--bg);box-shadow:var(--shadow-in-sm);color:var(--text)}html[data-theme=dark] .icon-btn-contrast{background:var(--bg);color:#fff}html[data-theme=dark] .icon-btn-contrast:hover{background:var(--bg);box-shadow:var(--shadow-in-sm);color:#fff}.icon-btn-stop{background:var(--error);border:none;box-shadow:var(--shadow-out-sm);color:#fff}.icon-btn-stop:hover{background:var(--error-dark)}.icon-btn-stop:active:not(:disabled){box-shadow:var(--shadow-in-sm)}.icon-btn-stop .stop-icon{background:#fff;border-radius:1px;display:block;height:12px;width:12px}.icon-btn:disabled{cursor:not-allowed;opacity:.4}.template-add-btn{align-items:center;align-self:flex-start;background:none;border:1.5px dashed var(--green-border);border-radius:var(--radius-sm);color:var(--green-dark);cursor:pointer;display:inline-flex;font-family:inherit;font-size:15px;font-weight:600;gap:6px;padding:10px 14px}.template-add-btn:hover{background:var(--green-soft);border-color:var(--green)}.template-editor-note{font-size:14px;margin:0}@media (max-width:768px){.modal:has(.template-review-panel){border-radius:0;display:flex;flex-direction:column;height:100dvh;max-height:100dvh;overflow:hidden;padding-bottom:0;width:100%}.modal:has(.template-review-panel) .modal-handle{display:none}.modal:has(.template-review-panel) .modal-header{flex-shrink:0;padding:8px 12px}.modal:has(.template-review-panel) .modal-header h3{font-size:15px}.modal-body:has(.template-review-panel){display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow:hidden;padding:8px 10px calc(8px + env(safe-area-inset-bottom))}.template-review-panel{display:flex;flex:1 1 auto;flex-direction:column;gap:0;min-height:0}.template-review-panel>.tour-demo-banner{flex-shrink:0;font-size:11px;line-height:1.25;margin-bottom:6px;padding:6px 8px}.template-review-panel>.template-step-banner{flex-shrink:0;font-size:12px;gap:6px;margin-bottom:6px}.template-review-panel>.template-step-banner .step-pill{font-size:11px;padding:5px 10px}.template-review-lead{flex-shrink:0;font-size:12px;line-height:1.35;margin-bottom:8px!important}.template-review-panel .template-editor{display:flex;flex:1 1 auto;flex-direction:column;gap:8px;min-height:0}.template-review-panel .template-editor-summary{flex-shrink:0;font-size:12px;gap:8px;padding:8px 10px}.template-review-panel .template-questions{-webkit-overflow-scrolling:touch;flex:1 1 auto;gap:8px;max-height:none;min-height:0;padding-right:0}.template-review-panel .template-question-card{border-radius:12px;padding:10px}.template-review-panel .template-question-header{gap:6px;margin-bottom:8px}.template-review-panel .template-question-header strong{font-size:13px}.template-review-panel .template-question-meta{gap:6px}.template-review-panel .inline-field{font-size:11px;gap:4px}.template-review-panel .field-input-sm{font-size:13px;min-width:52px;padding:6px 8px;width:56px}.template-review-panel .icon-btn-lg{border-radius:10px;height:34px;width:34px}.template-review-panel .icon-btn-lg svg{height:16px;width:16px}.template-review-panel .field{margin-bottom:8px}.template-review-panel .field:last-child{margin-bottom:0}.template-review-panel .field-label{font-size:11px;margin-bottom:4px}.template-review-panel .field-input,.template-review-panel .neo-select-trigger{font-size:14px;min-height:38px;padding:8px 10px}.template-review-panel .neo-select-option{font-size:14px;padding:9px 12px}.template-review-panel .points-hint-banner,.template-review-panel .region-required-legend,.template-review-panel .template-editor-note{font-size:12px;line-height:1.35;padding:8px 10px}.template-review-panel .template-editor-note{flex-shrink:0;padding:0}.template-review-actions{display:flex;flex-shrink:0;flex-wrap:nowrap;gap:6px!important;margin-top:8px!important;padding-top:2px}.template-review-actions>.btn,.template-review-actions>button{flex:1 1;font-size:12px;line-height:1.15;min-height:36px;min-width:0;padding:7px 8px;white-space:normal}.template-review-actions>.btn svg{flex-shrink:0;height:14px;width:14px}}.error-box{background:var(--error-soft);border:1px solid var(--error-border);border-radius:var(--radius-sm);color:var(--error-text)}.error-box,.warning-box{align-items:center;display:flex;font-size:15px;gap:8px;margin-bottom:12px;padding:12px 14px}.warning-box{background:var(--warning-soft);border:1px solid var(--warning-border);border-radius:var(--radius-sm);color:var(--warning)}.warning-box.stack{align-items:flex-start;flex-direction:column;gap:8px}.bulk-warn-list{color:var(--text);display:flex;flex-direction:column;gap:6px;margin:0;padding-left:1.15rem}.bulk-warn-list li{line-height:1.4}.bulk-count-hint{color:var(--green-dark);font-size:15px;font-weight:600;margin:8px 0 4px}.bulk-count-hint.is-error{color:var(--error)}.bulk-confirm-check{align-items:flex-start;background:var(--bg);border:none;border-radius:var(--radius-sm);box-shadow:none;cursor:pointer;display:flex;font-size:15px;gap:10px;line-height:1.4;margin-top:12px;padding:12px 14px}.bulk-confirm-check input{accent-color:var(--blue);flex-shrink:0;height:18px;margin-top:3px;width:18px}.transcription-preview{background:var(--bg);border:none;border-radius:var(--radius-sm);box-shadow:none;margin-top:12px;overflow:hidden}.transcription-preview-header{align-items:flex-start;border-bottom:1px solid var(--border);display:flex;gap:12px;justify-content:space-between;padding:12px 14px}.preview-format-toggle{display:flex;gap:6px}.preview-format-toggle button{background:var(--surface);border:none;border-radius:999px;box-shadow:none;color:var(--text-muted);cursor:pointer;font-size:13px;padding:5px 12px}.preview-format-toggle button.active{background:var(--blue-soft);box-shadow:none;color:var(--blue-dark)}.transcription-preview-body{color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.5;margin:0;max-height:320px;overflow:auto;padding:14px;white-space:pre-wrap;word-break:break-word}.transcription-empty-warning{margin:12px 14px 0}.transcribe-progress{align-items:center;display:flex;flex-direction:column;gap:10px;justify-content:center;padding:36px 20px;text-align:center}.transcribe-progress svg{color:var(--blue)}.drafts-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.drafts-grid .card{margin-bottom:0}.draft-card{display:flex;flex-direction:column;gap:8px}.draft-card-header{align-items:center;display:flex;gap:8px;justify-content:space-between}.draft-card-meta{align-items:center;display:flex;font-size:13px;gap:4px}.draft-card-preview{background:var(--bg);border:none;border-radius:var(--radius-sm);box-shadow:none;color:var(--text-muted);font-size:12px;line-height:1.4;margin:0;max-height:100px;overflow:hidden;padding:10px;white-space:pre-wrap}.drafts-section{margin-bottom:28px}.transcribe-progress strong{font-size:17px}.transcription-preview-note{font-size:13px;padding:0 14px 14px}.stats-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));margin-bottom:24px}.stats-grid .card{margin-bottom:0}.stat-card{display:flex;flex-direction:column;gap:10px}.stat-icon{align-items:center;border:none;border-radius:14px;box-shadow:var(--shadow-in-sm);display:flex;height:48px;justify-content:center;width:48px}.stat-icon,html[data-theme=dark] .stat-icon{background:var(--bg)}.stat-icon--green{color:var(--green)}.stat-icon--purple{color:var(--blue)}.stat-icon--green,.stat-icon--purple,html[data-theme=dark] .stat-icon--green,html[data-theme=dark] .stat-icon--purple{background:var(--bg)}.stat-icon svg{stroke-width:1.75;height:22px;width:22px}.stat-value{font-size:32px;font-weight:700;letter-spacing:-.03em;line-height:1}.stat-label{color:var(--text-muted);font-size:14px}.section-title{font-size:18px;font-weight:700;margin-bottom:14px}.usage-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-bottom:14px}.usage-metric{align-items:center;background:var(--bg);border:none;border-radius:var(--radius-sm);box-shadow:var(--shadow-in-sm);color:var(--text-muted);display:flex;gap:10px;padding:14px}.usage-value{color:var(--text);font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1.1}.usage-label{color:var(--text-muted);font-size:12.5px;margin-top:3px}.usage-models{border-top:1px solid var(--border);display:flex;flex-direction:column;gap:0}.usage-model-row{align-items:center;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:12px 0}.usage-model-row:last-child{border-bottom:none}.usage-model-name{align-items:center;display:flex;font-family:ui-monospace,monospace;font-size:14px;gap:8px}.usage-model-stats{color:var(--text-muted);font-size:13px}.results-list{display:flex;flex-direction:column;gap:0}.result-row{align-items:center;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:12px;padding:12px 0}.result-row:last-child{border-bottom:none}.result-info{flex:1 1;min-width:120px}.result-student{display:block;font-size:16px;font-weight:600}.result-exam{color:var(--text-muted);display:block;font-size:13.5px}.result-grade{font-size:19px;font-weight:700;letter-spacing:-.02em}.result-pct{font-size:14px;font-weight:500}.result-date{color:var(--text-muted);font-size:13.5px}.empty-state{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;font-size:15px;gap:12px;padding:44px 20px;text-align:center}.empty-state h3{color:var(--text);font-size:19px;font-weight:700}.empty-state svg{color:#9fb2c2}.empty-state-img{border-radius:var(--radius);box-shadow:none;display:block;width:min(240px,70%)}.group-card{display:flex;flex-direction:column;gap:14px}.group-header{align-items:flex-start;display:flex;justify-content:space-between}.students-list{display:flex;flex-wrap:wrap;gap:6px;min-height:20px}.student-chip{align-items:center;background:var(--surface2);border:none;border-radius:20px;color:var(--text-muted);display:inline-flex;font-size:13.5px;gap:5px;padding:4px 11px}.add-student-row{display:flex;gap:8px}.page-header-sub{font-size:15px;margin:4px 0 0}.exam-groups{display:flex;flex-direction:column;gap:16px}.exam-groups-compact{gap:8px}.exam-groups .card{margin-bottom:0}.exam-group-card{display:flex;flex-direction:column;gap:14px}.exam-group-card-compact{gap:6px;padding:10px 12px}.exam-group-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.exam-group-card-compact .exam-group-header{align-items:center;gap:8px}.exam-group-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-user-pill{font-size:10px;margin-left:8px;vertical-align:middle}.admin-user-detail{display:flex;flex-direction:column;gap:14px}.admin-user-facts{display:flex;flex-direction:column;gap:6px;margin:0}.admin-user-facts>div{display:flex;font-size:13px;gap:10px}.admin-user-facts dt{color:var(--text-muted);flex:none;font-weight:600;width:78px}.admin-user-facts dd{margin:0;word-break:break-word}.admin-user-stats{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(96px,1fr))}.admin-user-stat{align-items:center;background:#7f7f7f0f;background:var(--bg-subtle,#7f7f7f0f);border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;gap:2px;padding:10px 6px}.admin-user-stat strong{font-size:18px;line-height:1}.admin-user-stat span{color:var(--text-muted);font-size:11px;text-align:center}.admin-user-usage{font-size:13px;margin:0}.exam-card{display:flex;flex-direction:column;gap:14px}.exam-header{align-items:flex-start;display:flex;gap:12px}.exam-meta h3{font-size:17px;margin-bottom:2px}.exam-group-card-compact .exam-meta h3{font-size:14px;font-weight:650;margin:0}.exam-group-card-compact .exam-meta .text-muted{font-size:12px}.exam-stats{color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:14px;gap:14px}.exam-stats span{align-items:center;display:flex;gap:5px}.exam-stats span:first-child svg{color:var(--blue)}.exam-stats span:nth-child(2) svg{color:#d6763b}.exam-stats span:nth-child(3) svg{color:var(--green)}.student-upload-meta span:first-child svg{color:var(--blue)}.student-upload-meta span:nth-child(2) svg{color:var(--green)}.exam-actions{display:flex;flex-wrap:wrap;gap:8px}.exam-group-students{border-top:1px solid var(--border);padding-top:12px}.exam-group-card-compact .exam-group-students{border-top:none;padding-top:0}.exam-group-students-title{align-items:center;display:flex;font-size:13px;gap:8px;justify-content:space-between;margin:4px 0 0}.link-btn{background:none;border:none;color:var(--blue);cursor:pointer;font-size:13px;font-weight:600;padding:0}.link-btn:hover{text-decoration:underline}.exam-group-empty{font-size:13px;margin:0}.student-submission-list{display:flex;flex-direction:column;gap:2px;list-style:none;margin:0;padding:0}.student-submission-row{grid-gap:8px;align-items:center;background:#0000;border:none;border-bottom:1px solid var(--border);border-radius:0;display:grid;gap:8px;grid-template-columns:1fr auto auto;padding:6px 8px}.student-submission-row:last-child{border-bottom:none}.student-submission-main{display:flex;flex-direction:column;gap:2px;min-width:0}.student-submission-name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-submission-actions{display:flex;gap:4px}.photo-tips{background:var(--bg);border:none;border-radius:var(--radius);box-shadow:var(--shadow-out);margin-bottom:14px;padding:18px 20px}.photo-tips-title{color:var(--text);display:block;font-size:17px;font-weight:700;letter-spacing:-.01em;margin-bottom:14px}.photo-tips-layout{grid-gap:18px 24px;align-items:center;display:grid;gap:18px 24px;grid-template-columns:1fr 190px}@media (max-width:560px){.photo-tips-layout{grid-template-columns:1fr}.photo-tips-anim{justify-self:center;order:-1}.photo-tips-svg{width:170px}}.photo-tips-anim{flex-shrink:0}.photo-tips-svg{border-radius:16px;box-shadow:none;display:block;height:auto;width:190px}.photo-tips-list{color:var(--text);display:flex;flex-direction:column;font-size:16px;gap:12px;line-height:1.45;list-style:none;margin:0;padding:0}.photo-tips-list li{align-items:flex-start;display:flex;gap:12px}.photo-tips-step{align-items:center;background:var(--blue);border-radius:50%;color:#fff;display:inline-flex;flex-shrink:0;font-size:15px;font-weight:700;height:28px;justify-content:center;line-height:1;margin-top:1px;width:28px}.photo-tips-list em{color:var(--blue-dark);font-style:normal;font-weight:700}.format-tips{background:var(--bg);border:none;border-radius:var(--radius);box-shadow:var(--shadow-out);margin-bottom:14px;overflow:hidden}.format-tips-head{align-items:center;background:#0000;border:none;color:var(--text);cursor:pointer;display:flex;font-family:inherit;font-size:16px;font-weight:600;gap:10px;justify-content:space-between;padding:14px 18px;text-align:left;width:100%}.format-tips-head:hover{background:var(--blue-soft)}.format-tips-head-left{align-items:center;display:flex;gap:9px}.format-tips-head-left svg{color:var(--blue);flex-shrink:0}.format-tips-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .18s ease}.format-tips.is-open .format-tips-chevron{transform:rotate(180deg)}.format-tips-body{border-top:none;padding:4px 18px 18px}.format-tips-intro{color:var(--text-muted);font-size:15px;line-height:1.45;margin:12px 0 14px}.format-tips-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:560px){.format-tips-grid{grid-template-columns:1fr}}.format-tips-card{background:var(--bg);border:none;border-radius:var(--radius-sm);box-shadow:var(--shadow-in-sm);padding:14px 16px}.format-tips-card-head{align-items:center;color:var(--text);display:flex;font-size:15.5px;gap:9px;margin-bottom:10px}.format-tips-card-icon{align-items:center;background:var(--bg);border:none;border-radius:12px;box-shadow:var(--shadow-out-sm);color:var(--blue);display:inline-flex;flex-shrink:0;height:32px;justify-content:center;width:32px}.format-tips-card-icon svg{stroke-width:1.75}html[data-theme=dark] .format-tips-card-icon{background:var(--bg)}.format-tips-list{color:var(--text-muted);display:flex;flex-direction:column;font-size:14.5px;gap:7px;line-height:1.45;margin:0;padding-left:18px}.format-tips-list li::marker{color:var(--blue)}.format-tips-illo{border-radius:10px;display:block;height:auto;margin:0 auto 12px;max-width:220px;width:100%}.guide-steps{grid-gap:18px;display:grid;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:640px){.guide-steps{grid-template-columns:1fr}}.guide-step{align-items:flex-start;display:flex;gap:12px}.guide-step-num{align-items:center;background:var(--blue);border:none;border-radius:50%;color:#fff;display:inline-flex;flex-shrink:0;font-size:17px;font-weight:700;height:34px;justify-content:center;line-height:1;width:34px}.guide-step-title{color:var(--text);display:block;font-size:17px;font-weight:700;margin-bottom:4px}.guide-step-desc{color:var(--text-muted);font-size:15px;line-height:1.5;margin:0}.guide-step-card{background:var(--bg);border:none;border-radius:var(--radius);box-shadow:var(--shadow-out);display:flex;flex-direction:column;gap:0;overflow:hidden}.guide-step-illo{background:#1189d1;display:block;height:auto;width:100%}.guide-step-body{display:flex;flex:1 1;flex-direction:column;gap:8px;padding:18px 20px 20px}.guide-step-head{align-items:center;display:flex;gap:12px}.guide-step-actions{margin-top:auto;padding-top:10px}.guide-intro{color:var(--text-muted);font-size:17px;line-height:1.6;max-width:640px}.pta-desk{fill:#1189d1}.pta-paper{animation:pta-paper-in 1.1s cubic-bezier(.22,1,.36,1) both;transform-origin:100px 110px}.pta-corner{stroke:#ffd84d;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;fill:none;animation:pta-corner-pop .45s ease forwards;opacity:0}.pta-c1{animation-delay:.55s}.pta-c2{animation-delay:.7s}.pta-c3{animation-delay:.85s}.pta-c4{animation-delay:1s}.pta-phone{animation:pta-phone-float 3.6s ease-in-out infinite;transform-origin:100px 134px}.pta-viewfinder{animation:pta-dash 2.4s linear infinite}.pta-shutter{fill:#fff0;animation:pta-shutter 3.6s ease-in-out infinite;pointer-events:none}@keyframes pta-paper-in{0%{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pta-corner-pop{0%{stroke-width:1;opacity:0}to{stroke-width:4;opacity:1}}@keyframes pta-phone-float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes pta-dash{to{stroke-dashoffset:-40}}@keyframes pta-shutter{0%,72%,to{fill:#fff0}76%{fill:#ffffff47}82%{fill:#fff0}}.gs-paper-in{animation:gs-paper-in 1s cubic-bezier(.22,1,.36,1) both}@keyframes gs-paper-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.gs-flash{animation:gs-flash 3.4s ease-in-out infinite}@keyframes gs-flash{0%,74%,to{opacity:0}78%{opacity:.45}84%{opacity:0}}.gs-float{animation:gs-float 3.4s ease-in-out infinite}@keyframes gs-float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.gs-box-draw{stroke-dasharray:200;stroke-dashoffset:200;animation:gs-box-draw .9s ease forwards}.gs-box-1{animation-delay:.3s}.gs-box-2{animation-delay:1.1s}.gs-box-3{animation-delay:1.9s}@keyframes gs-box-draw{to{stroke-dashoffset:0}}.gs-pencil{animation:gs-pencil 2.8s ease-in-out infinite;transform-origin:50% 50%}@keyframes gs-pencil{0%,to{transform:translate(0) rotate(0deg)}30%{transform:translate(-26px,16px) rotate(-6deg)}65%{transform:translate(-8px,34px) rotate(4deg)}}.gs-check{stroke-dasharray:40;stroke-dashoffset:40;animation:gs-check .6s ease forwards}.gs-check-1{animation-delay:.4s}.gs-check-2{animation-delay:1s}.gs-check-3{animation-delay:1.6s}@keyframes gs-check{to{stroke-dashoffset:0}}.gs-badge-pop{animation:gs-badge-pop .55s cubic-bezier(.34,1.56,.64,1) 2.2s both;transform-origin:center}@keyframes gs-badge-pop{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}.gs-bar{animation:gs-bar .9s cubic-bezier(.22,1,.36,1) both;transform-origin:bottom}.gs-bar-1{animation-delay:.3s}.gs-bar-2{animation-delay:.55s}.gs-bar-3{animation-delay:.8s}@keyframes gs-bar{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.fmt-write{stroke-dasharray:90;stroke-dashoffset:90;animation:fmt-write 1.6s ease .4s infinite}@keyframes fmt-write{0%{stroke-dashoffset:90;opacity:1}60%{stroke-dashoffset:0;opacity:1}85%{opacity:1}to{stroke-dashoffset:0;opacity:0}}.fmt-pick{animation:fmt-pick 2.6s ease-in-out infinite;transform-origin:center}@keyframes fmt-pick{0%,25%{opacity:0;transform:scale(.4)}40%,85%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.4)}}.fmt-vf-check{stroke-dasharray:30;stroke-dashoffset:30;animation:fmt-vf-check 2.6s ease infinite}@keyframes fmt-vf-check{0%,20%{stroke-dashoffset:30}50%,90%{stroke-dashoffset:0}to{stroke-dashoffset:0;opacity:0}}.fmt-letter{animation:fmt-letter 2.8s ease infinite}@keyframes fmt-letter{0%,30%{opacity:0}50%,90%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.fmt-letter,.fmt-pick,.fmt-vf-check,.fmt-write,.gs-badge-pop,.gs-bar,.gs-box-draw,.gs-check,.gs-flash,.gs-float,.gs-paper-in,.gs-pencil,.pta-corner,.pta-paper,.pta-phone,.pta-shutter,.pta-viewfinder{stroke-dashoffset:0;animation:none!important;opacity:1}}.extract-badge{color:var(--blue-dark);font-size:14px;font-weight:700;white-space:nowrap}.answer-extract-label{color:var(--text-muted);display:block;font-size:11px;font-weight:700;letter-spacing:.04em;margin-bottom:2px;text-transform:uppercase}.answer-extract-label--student{color:var(--blue-dark)}.answer-extract-label--correct{color:var(--green-dark)}.answer-extract-label--note{color:#8a5cd6}html[data-theme=dark] .answer-extract-label--note{color:#c4a8f0}.answers-extract-table{display:flex;flex-direction:column;gap:8px}.answer-extract-row{grid-gap:8px 10px;background:var(--bg);border:none;border-radius:10px;box-shadow:none;display:grid;font-size:15px;gap:8px 10px;grid-template-columns:auto 1fr;padding:10px}.answer-extract-num{color:var(--text-muted);font-weight:700}.answer-extract-cols{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}@media (max-width:560px){.answer-extract-cols{grid-template-columns:1fr}}.results-detail-list{display:flex;flex-direction:column;gap:16px}.result-detail-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px}.result-detail-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.grade-badge{font-size:18px;font-weight:700;letter-spacing:-.02em}.progress-bar{background:var(--surface2);border-radius:4px;height:8px;margin-bottom:10px;overflow:hidden}.progress-fill{border-radius:4px;height:100%;transition:width .5s ease}.result-feedback{color:var(--text-muted);font-size:15px;font-style:italic;margin-bottom:10px}.questions-breakdown{display:flex;flex-wrap:wrap;gap:6px}.q-row{align-items:center;border-radius:var(--radius-sm);display:flex;font-size:13.5px;font-weight:500;gap:5px;padding:5px 10px}.q-row.correct{background:var(--green-soft);color:var(--green-dark)}.q-row.incorrect{background:var(--error-soft);color:var(--error-text)}.q-pts{font-weight:600}.q-feedback{color:var(--text-muted);font-size:13px}.text-muted{color:var(--text-muted);font-size:15px}.plans-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.plans-grid .card{margin-bottom:0}.plan-card{display:flex;flex-direction:column;gap:16px;overflow:hidden;padding-top:28px;position:relative}.plan-active{border-color:var(--blue)!important;box-shadow:0 0 0 2px var(--blue-soft)}.plan-accent{height:5px;left:0;position:absolute;right:0;top:0}.plan-name{font-size:18px;font-weight:700}.plan-price{align-items:baseline;display:flex;gap:4px}.price-amount{font-size:32px;font-weight:700;letter-spacing:-.03em}.price-period{color:var(--text-muted);font-size:14px}.plan-features{display:flex;flex:1 1;flex-direction:column;gap:10px;list-style:none}.plan-features li{align-items:center;display:flex;font-size:15px;gap:9px}.plan-features li svg{color:var(--green);flex-shrink:0}.plan-features li.disabled svg{color:var(--text-muted)}.plan-features li.disabled{color:var(--text-muted);opacity:.55}.loading-center{align-items:center;color:var(--blue);display:flex;justify-content:center;min-height:300px}.extract-confirm{display:flex;flex-direction:column;gap:18px}.extract-confirm-lead{color:var(--text);font-size:17px;line-height:1.5;margin:0}.extract-confirm-lead strong{color:var(--blue-dark);font-weight:700}.extract-confirm-rows{background:var(--bg);border:none;border-radius:var(--radius);box-shadow:none;display:flex;flex-direction:column;gap:0;overflow:hidden}.extract-confirm-row{align-items:baseline;border-bottom:1px solid var(--border);display:flex;font-size:15px;gap:16px;justify-content:space-between;padding:14px 16px}.extract-confirm-row:last-child{border-bottom:none}.extract-confirm-row span{color:var(--text-muted)}.extract-confirm-row strong{font-feature-settings:"tnum";color:var(--text);font-size:17px;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.02em}.extract-confirm-row strong.is-warn{color:var(--error)}.extract-confirm-actions{display:flex;flex-wrap:wrap;gap:8px}.login-page{align-items:center;background:#0000;display:flex;justify-content:center;min-height:100vh;padding:24px;position:relative}.login-theme{position:absolute;right:18px;top:18px}.login-card{background:var(--bg);border:none;border-radius:var(--radius);box-shadow:var(--shadow-out);display:flex;flex-direction:column;gap:8px;max-width:400px;padding:32px 28px 28px;width:100%}.login-brand{align-items:center;display:flex;gap:12px;margin-bottom:4px}.login-subtitle{color:var(--text-muted);font-size:15px;margin-bottom:12px}.login-card .field-label{margin-top:6px}.login-error{background:var(--error-soft);border:none;border-radius:var(--radius-sm);color:var(--error-text);font-size:14px;margin-top:4px;padding:10px 12px}.login-submit{align-items:center;display:inline-flex;font-size:16px;gap:8px;justify-content:center;margin-top:14px;padding:12px 16px;width:100%}.tour-root{inset:0;position:fixed;z-index:1500}.tour-backdrop{background:#0000;cursor:default;inset:0;position:absolute;transition:background .2s ease}.tour-backdrop-dim{background:#0c18249e}html[data-theme=dark] .tour-backdrop-dim{background:#000000b3}.tour-spot{border-radius:var(--radius-sm);box-shadow:0 0 0 9999px #0c18249e;outline:3px solid var(--blue);outline-offset:2px;pointer-events:none;position:fixed;transition:top .22s ease,left .22s ease,width .22s ease,height .22s ease;z-index:1}html[data-theme=dark] .tour-spot{box-shadow:0 0 0 9999px #000000b3}.tour-tip{animation:fadeIn .22s ease;background:var(--bg);border-radius:var(--radius);box-shadow:var(--shadow-modal);padding:16px 18px;pointer-events:auto;position:fixed;z-index:2}.tour-tip-waiting{opacity:.92}.tour-arrow{background:var(--bg);height:14px;position:absolute;transform:rotate(45deg);width:14px}.tour-tip-right .tour-arrow{left:-7px;margin-top:-7px}.tour-tip-left .tour-arrow{margin-top:-7px;right:-7px}.tour-tip-bottom .tour-arrow{margin-left:-7px;top:-7px}.tour-tip-top .tour-arrow{bottom:-7px;margin-left:-7px}.tour-tip-head{align-items:center;display:flex;gap:10px;margin-bottom:8px}.tour-tip-head strong{flex:1 1;font-size:16.5px}.tour-tip-icon{background:var(--bg);border-radius:10px;box-shadow:var(--shadow-out-sm);color:#e08a1e;display:inline-flex;padding:7px}.tour-close{background:none;border:none;border-radius:8px;color:var(--text-muted);cursor:pointer;display:inline-flex;padding:4px}.tour-close:hover{background:var(--error);color:#fff}.tour-tip-body{color:var(--text-muted);font-size:14.5px;line-height:1.5;margin-bottom:14px}.tour-gesture-demo{background:linear-gradient(160deg,#1c2b3a,#0f1b28);border-radius:12px;height:118px;margin-bottom:10px;overflow:hidden;position:relative}.tgd-page{animation:tgdPage 5.2s ease-in-out infinite;background:#f7f5ef;border-radius:4px;box-shadow:0 4px 14px #00000073;height:76px;left:50%;margin:-38px 0 0 -28px;position:absolute;top:50%;width:56px}.tgd-page:before{background:repeating-linear-gradient(180deg,#283a4c59 0 2px,#0000 2px 10px);content:"";inset:12px 8px 10px;position:absolute}.tgd-page:after{background:#283a4c8c;border-radius:2px;content:"";height:3px;left:8px;position:absolute;right:22px;top:5px}.tgd-hand{align-items:center;color:#ffffffe6;display:flex;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4));flex-direction:column;left:50%;margin:-8px 0 0 -8px;pointer-events:none;position:absolute;top:50%}.tgd-hand svg{margin-top:-3px}.tgd-hand-a svg{transform:rotate(-14deg)}.tgd-hand-b svg{transform:rotate(14deg)}.tgd-hand-a{animation:tgdHandA 5.2s ease-in-out infinite}.tgd-hand-b{animation:tgdHandB 5.2s ease-in-out infinite}.tgd-touch{background:#fff6;border-radius:50%;box-shadow:0 0 0 5px #ffffff2e;height:15px;width:15px}.tgd-cap{bottom:7px;color:#ffffffeb;font-size:11.5px;font-weight:600;left:0;letter-spacing:.2px;opacity:0;pointer-events:none;position:absolute;right:0;text-align:center;text-shadow:0 1px 4px #0009}.tgd-cap-zoom{animation:tgdCapZoom 5.2s ease-in-out infinite}.tgd-cap-pan{animation:tgdCapPan 5.2s ease-in-out infinite}@keyframes tgdHandA{0%{opacity:0;transform:translate(-14px,-4px)}8%{opacity:1;transform:translate(-14px,-4px)}28%{transform:translate(-34px,-24px)}40%{transform:translate(-34px,-24px)}52%{transform:translate(-20px,-6px)}60%{transform:translate(-20px,-6px)}80%{opacity:1;transform:translate(8px,-6px)}92%{opacity:1;transform:translate(8px,-6px)}to{opacity:0;transform:translate(8px,-6px)}}@keyframes tgdHandB{0%{opacity:0;transform:translate(12px,10px)}8%{opacity:1;transform:translate(12px,10px)}28%{transform:translate(32px,28px)}40%{transform:translate(32px,28px)}52%{transform:translate(2px,12px)}60%{transform:translate(2px,12px)}80%{opacity:1;transform:translate(30px,12px)}92%{opacity:1;transform:translate(30px,12px)}to{opacity:0;transform:translate(30px,12px)}}@keyframes tgdPage{0%,8%{transform:scale(1) translateX(0)}28%,60%{transform:scale(1.24) translateX(0)}80%,92%{transform:scale(1.24) translateX(18px)}to{transform:scale(1) translateX(0)}}@keyframes tgdCapZoom{0%,5%{opacity:0}14%,40%{opacity:1}50%,to{opacity:0}}@keyframes tgdCapPan{0%,54%{opacity:0}64%,90%{opacity:1}to{opacity:0}}.tour-tip-foot{align-items:center;display:flex;gap:12px;justify-content:space-between}.tour-dots{display:flex;flex-wrap:wrap;gap:6px;max-width:120px}.tour-dot{background:var(--text-muted);border-radius:999px;height:7px;opacity:.4;transition:width .2s ease,opacity .2s ease;width:7px}.tour-dot.active{background:var(--blue);opacity:1;width:18px}.tour-actions{display:flex;flex-shrink:0;gap:8px}.tour-step-count{color:var(--text-muted);font-size:12px;margin:10px 0 0;text-align:right}.tour-cta-card{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;padding:18px 20px}.tour-cta-body{align-items:flex-start;display:flex;flex:1 1;gap:12px;min-width:220px}.tour-cta-body strong{display:block;font-size:16px}.tour-demo-banner{align-items:center;background:var(--blue-soft);border-radius:var(--radius-sm);box-shadow:var(--shadow-in-sm);color:var(--blue-dark);display:flex;font-size:14px;gap:10px;margin-bottom:14px;padding:11px 14px}.tour-demo-banner svg{flex:0 0 auto}.tour-demo-banner--inline{flex:1 1 100%;margin-bottom:0;margin-right:auto}@keyframes tourTipIn{0%{opacity:0}to{opacity:1}}@media (max-width:768px){.tour-root{height:100dvh}.tour-tip-mobile{animation:tourTipIn .22s ease;border-radius:18px;max-height:min(40dvh,300px);max-width:none;overflow-y:auto;overscroll-behavior:contain;padding:14px 16px;transform:translate(-50%,-50%)}.tour-tip-mobile .tour-tip-head{margin-bottom:5px}.tour-tip-mobile .tour-tip-head strong{font-size:15px}.tour-tip-mobile .tour-tip-icon{padding:5px}.tour-tip-mobile .tour-tip-body{font-size:13.5px;line-height:1.35;margin-bottom:9px}.tour-tip-mobile .tour-tip-foot{justify-content:flex-end}.tour-tip-mobile .tour-dots{display:none}.tour-tip-mobile .tour-actions .btn{min-height:38px;padding:8px 12px}.tour-tip-mobile .tour-step-count{bottom:18px;left:14px;margin:0;position:absolute}.tour-tip .tour-arrow{display:none}.tour-spot{outline-width:2px;transition:none}}@media (prefers-reduced-motion:reduce){.tour-spot,.tour-tip{animation:none;transition:none}.tgd-hand,.tgd-page{animation:none}.tgd-hand{opacity:.9}.tgd-cap{animation:none}.tgd-cap-zoom{opacity:1}}
/*# sourceMappingURL=main.00937686.css.map*/