@charset "UTF-8";:root{--mgmt-font-sans: "Inter", system-ui, -apple-system, sans-serif}body{color:var(--mgmt-text-main);font-family:var(--mgmt-font-sans)}.mgmt-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh;padding-top:56px}.mgmt-shell.is-left-hidden{grid-template-columns:1fr}@media(min-width:1025px){.mgmt-shell.is-left-hidden .mgmt-left{display:none}}.mgmt-left{border-right:1px solid var(--mgmt-border);background:var(--mgmt-sidebar-bg, rgba(255, 255, 255, .76));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:10px;transition:width .18s ease,transform .18s ease}.mgmt-left.is-left-hidden{width:0;padding:0;border-right:0;transform:translate(-8px);overflow:hidden}.mgmt-main{padding:10px;min-width:0}@media(max-width:1024px){.mgmt-shell{grid-template-columns:1fr}.mgmt-left{position:fixed;top:56px;left:0;bottom:0;width:min(280px,86vw);z-index:1400;box-shadow:0 16px 40px #0f172a24}.mgmt-left.is-left-hidden{transform:translate(-110%);width:min(280px,86vw);border-right:1px solid var(--mgmt-border)}}.mgmt-topbar{position:fixed;top:0;left:0;right:0;z-index:1500;background:var(--mgmt-topbar-bg, rgba(255, 255, 255, .92));border-bottom:1px solid var(--mgmt-border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.mgmt-topbar__inner{height:56px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 12px}.mgmt-topbar__left,.mgmt-topbar__center,.mgmt-topbar__right{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:nowrap}.mgmt-topbar__center{flex:1 1 auto;justify-content:center}.mgmt-w-100{width:100px}.mgmt-w-120{width:120px}.mgmt-w-140{width:140px}.mgmt-w-160{width:160px}.mgmt-w-220{width:220px}.mgmt-w-search{width:120px}.mgmt-w-clear{width:80px}.mgmt-w-grid-action{width:60px}.mgmt-spacer{flex-grow:1}.mgmt-w-30{width:30px;padding-left:0;padding-right:0;text-align:center}.mgmt-search-row{display:flex;align-items:center;gap:12px}.mgmt-search-row .mgmt-field__control{flex:1 1 auto;min-width:0}.mgmt-action-row{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:10px;margin-top:10px;width:100%}.mgmt-action-group{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.btn-mgmt-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;padding:0 14px;border-radius:12px;border:1px solid var(--mgmt-action-border);background:var(--mgmt-action-bg);color:var(--mgmt-action-text);font-weight:800;font-size:13px;box-shadow:var(--mgmt-action-shadow, none);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .15s ease}.btn-mgmt-action:hover{background:var(--mgmt-action-hover)}.btn-mgmt-action:active{background:var(--mgmt-action-active)}.btn-mgmt-secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:38px;padding:0 14px;border-radius:12px;border:1px solid var(--mgmt-border);background:#fff;color:var(--mgmt-text-muted);font-size:13px;font-weight:800;cursor:pointer}.btn-mgmt-secondary:hover{background:var(--mgmt-bg-subtle)}.btn-mgmt-icon{width:34px;height:34px;border-radius:12px;border:1px solid var(--mgmt-border);background:#fff;color:var(--mgmt-text-muted);font-weight:900;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center}.btn-mgmt-icon:hover{background:var(--mgmt-bg-subtle)}.btn-mgmt-danger{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid rgba(239,68,68,.35);background:#ef444414;padding:8px 12px;color:#b91c1c;font-size:12px;font-weight:900;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background-color .15s ease}.btn-mgmt-danger:hover{background:#ef44441f}.btn-mgmt-gradient{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:800;height:38px;line-height:normal;border-radius:4px;padding:8px 12px;color:#666;font-size:12px;border:1px solid #B6B6B6;background-image:linear-gradient(#fff,#e7e7e7);cursor:pointer;-webkit-user-select:none;user-select:none}.btn-mgmt-gradient:hover{border-color:#9a9a9a;background-image:linear-gradient(#fff,#dcdcdc)}.btn-mgmt-gradient:active{background-image:linear-gradient(#e7e7e7,#fff);box-shadow:inset 0 1px 2px #0000002e}.btn-mgmt-gradient:focus{outline:none}.btn-mgmt-gradient:focus:before{content:"";position:absolute;inset:3px;border:1px dotted #666;border-radius:2px;pointer-events:none}.btn-mgmt-small{display:inline-flex;align-items:center;justify-content:center;gap:4px;height:30px;padding:0 10px;border-radius:4px;color:#666;font-size:11px;font-weight:800;border:1px solid #B6B6B6;background-image:linear-gradient(#fff,#e7e7e7);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.btn-mgmt-small:hover{border-color:#9a9a9a;background-image:linear-gradient(#fff,#dcdcdc)}.btn-mgmt-grid-nav{display:inline-flex;align-items:center;justify-content:center;gap:4px;height:30px;padding:0 10px;border-radius:4px;color:#666;font-size:11px;font-weight:800;border:1px solid #B6B6B6;background-image:linear-gradient(#fff,#e7e7e7);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.btn-mgmt-grid-nav:hover{border-color:#9a9a9a;background-image:linear-gradient(#fff,#dcdcdc)}.btn-mgmt-grid-nav:active{background-image:linear-gradient(#e7e7e7,#fff)}.btn-mgmt-grid-nav:disabled,.btn-mgmt-gradient:disabled,.btn-mgmt-action:disabled,.btn-mgmt-secondary:disabled,.btn-mgmt-danger:disabled,.btn-mgmt-small:disabled{opacity:.5;cursor:not-allowed;pointer-events:none;box-shadow:none}.mgmt-search-box{background:#fff;border:1px solid var(--mgmt-border);border-radius:16px;padding:10px 12px}.mgmt-input-group{display:flex;flex-direction:column;gap:6px}.mgmt-label{font-size:11px;font-weight:900;color:var(--mgmt-text-muted)}.mgmt-field{background:#fff;border:1px solid var(--mgmt-border, #e2e8f0);border-radius:16px;padding:10px 12px}.mgmt-field--plain{border-color:transparent;padding-top:0;padding-bottom:0}.mgmt-field__label{display:block;font-size:11px;font-weight:900;color:var(--mgmt-text-muted, #64748b);margin-bottom:6px}.mgmt-field__control{width:100%;border:1px solid #cbd5e1;border-radius:12px;padding:10px 12px;outline:none;font-size:13px;background:#fff}.mgmt-field__control:focus{border-color:#93c5fd;box-shadow:0 0 0 2px #3b82f659}.mgmt-input{border-radius:12px;border:1px solid #cbd5e1;background:#fff;padding:10px 12px;font-size:13px;outline:none;width:100%}.mgmt-input:focus{border-color:#93c5fd;box-shadow:0 0 0 2px #3b82f659}.mgmt-ro{border-radius:12px;border:1px solid var(--mgmt-border-soft, rgba(148, 163, 184, .35));background:var(--mgmt-bg-subtle);padding:10px 12px;font-size:13px;font-weight:800;color:var(--mgmt-text-main);display:flex;align-items:center}.mgmt-select-md{height:38px;min-width:220px;border-radius:12px;border:1px solid rgba(148,163,184,.55);background:#fff;padding:0 12px;font-size:13px;font-weight:900;outline:none}.mgmt-select-md:focus{border-color:var(--mgmt-focus-ring);box-shadow:0 0 0 3px var(--mgmt-focus-shadow)}.mgmt-divider{border-top:2px dashed rgba(100,116,139,.35)}.mgmt-status{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:900;line-height:1;white-space:nowrap}.mgmt-status--active{background:var(--mgmt-bg-subtle-hover, #eaf6f0);color:var(--mgmt-primary-darker, #15803d);border:1px solid var(--mgmt-primary, #86efac)}.mgmt-status--inactive{background:#f1f5f9;color:#64748b;border:1px solid #cbd5e1}.mgmt-status--suspend{background:#fef2f2;color:#ef4444;border:1px solid #fca5a5}.mgmt-card{border:1px solid var(--mgmt-border);background:#fff;border-radius:18px;box-shadow:0 10px 30px #0f172a0f;overflow:hidden}.mgmt-card__head{padding:14px 14px 10px;border-bottom:1px solid var(--mgmt-card-head-border, rgba(0, 0, 0, .05));background:var(--mgmt-card-head-bg, transparent);display:flex;align-items:center;justify-content:space-between;gap:10px}.mgmt-card__kicker{font-size:11px;font-weight:900;color:var(--mgmt-text-muted);line-height:1.2}.mgmt-card__title{font-size:14px;font-weight:1000;color:var(--mgmt-text-main);line-height:1.2}.mgmt-card__body{padding:14px}.mgmt-breadcrumb{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:900;white-space:nowrap}.mgmt-breadcrumb__link{color:var(--mgmt-link);text-decoration:none;cursor:pointer}.mgmt-breadcrumb__link:hover{text-decoration:underline}.mgmt-breadcrumb__sep{color:var(--mgmt-text-muted-light, #94a3b8)}.mgmt-page-loading{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:2000;background:#ffffffb8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.mgmt-page-loading__panel{min-width:220px;border:1px solid var(--mgmt-border);background:#fff;border-radius:16px;padding:18px 20px;box-shadow:0 10px 30px #0f172a14;display:flex;align-items:center;gap:12px}.mgmt-page-loading__spinner{width:18px;height:18px;border-radius:999px;border:2px solid rgba(134,191,160,.22);border-top-color:var(--mgmt-primary, #86bfa0);animation:mgmt-spin .9s linear infinite}@keyframes mgmt-spin{to{transform:rotate(360deg)}}.mgmt-page-loading__text{font-size:12px;color:var(--mgmt-text-muted);font-weight:700}.mgmt-section-title{font-size:12px;font-weight:1000;color:var(--mgmt-text-muted);margin-bottom:8px}.excel-confirm-note{color:#dc2626;font-weight:800;font-size:14px;text-align:center;margin-top:12px}.mgmt-modal{position:fixed;inset:0;z-index:2100}.mgmt-modal__backdrop{position:absolute;inset:0;background:#0f172a59}.mgmt-modal__panel{position:relative;width:min(560px,calc(100vw - 24px));max-height:86vh;margin:12vh auto 0;background:#fff;border:1px solid var(--mgmt-border);border-radius:18px;box-shadow:0 18px 60px #0f172a2e;overflow-y:auto;display:flex;flex-direction:column}.mgmt-modal__close{position:absolute;top:10px;right:10px;z-index:1;width:34px;height:34px;border-radius:10px;border:1px solid var(--mgmt-border);background:#fff;color:#475569;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;transition:background-color .15s ease}.mgmt-modal__close:hover{background:var(--mgmt-bg-subtle, #f3fbf7)}.mgmt-modal__head{padding:14px 52px 10px 18px;border-bottom:1px solid var(--mgmt-border)}.mgmt-modal__title{font-weight:800;font-size:16px;color:var(--mgmt-text-main)}.mgmt-modal__body{padding:20px 52px 10px 18px;font-size:13px;line-height:1.6;color:#0f172a;font-weight:800;white-space:pre-wrap}.mgmt-modal__footer{padding:10px 14px 14px;display:flex;justify-content:flex-end;gap:10px;background:transparent}.mgmt-menu-list{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:12px}.mgmt-menu-title{font-size:14px;font-weight:800;margin-bottom:12px;color:var(--mgmt-text-muted)}.mgmt-menu-separator{border-top:1px solid var(--mgmt-border);margin:4px 0}.mgmt-alert-message{white-space:pre-wrap;font-weight:800;color:#0f172a;font-size:13px;line-height:1.625}:root{--rdg-selection-color: transparent;--rdg-header-background-color: #f8f8f8}.rdg-cell[aria-selected=true]{outline:none!important;box-shadow:none!important}.rdg-header-row{background-color:#f8f8f8;background:-webkit-linear-gradient(#fff,#eee);background:-moz-linear-gradient(#fff,#eee);background:-o-linear-gradient(#fff,#eee);background:linear-gradient(#fff,#eee);font-weight:800;color:#444;border-bottom:1px solid #ccc}.rdg-cell{padding:4px 8px;background:inherit;border-right:1px solid #e2e8f0;display:flex;align-items:center}.rdg-row:nth-child(2n){background-color:#f8fafc}.rdg-row[aria-selected=true]{background-color:#e6f1fc!important}.rdg-cell[role=columnheader]>span:first-child{display:flex!important;align-items:center;width:100%;position:relative}.rdg-header-sort-name{flex-grow:1;text-align:center}.rdg-header-sort-name+span{margin-left:auto;display:flex;align-items:center;justify-content:center;color:#9cacba;opacity:.7;min-width:16px}.rdg-sort-arrow{fill:currentColor}.theme-operator{--mgmt-primary: #86bfa0;--mgmt-primary-dark: #78b392;--mgmt-primary-darker: #6aa786;--mgmt-bg-subtle: #f3fbf7;--mgmt-bg-subtle-hover: #eaf6f0;--mgmt-border: #d7e7dd;--mgmt-border-soft: rgba(148, 163, 184, .35);--mgmt-text-main: #1f2937;--mgmt-text-muted: #475569;--mgmt-text-muted-light: #94a3b8;--mgmt-link: #2563eb;--mgmt-action-bg: var(--mgmt-primary);--mgmt-action-hover: var(--mgmt-primary-dark);--mgmt-action-active: var(--mgmt-primary-darker);--mgmt-action-text: #0b2a1c;--mgmt-action-border: rgba(134, 191, 160, .45);--mgmt-action-shadow: 0 6px 18px rgba(134, 191, 160, .18);--mgmt-input-border: rgba(148, 163, 184, .55);--mgmt-focus-ring: rgba(134, 191, 160, .7);--mgmt-focus-shadow: rgba(134, 191, 160, .28);--mgmt-sidebar-bg: rgba(255, 255, 255, .76);--mgmt-topbar-bg: rgba(255, 255, 255, .92);--mgmt-card-head-bg: transparent;--mgmt-card-head-border: rgba(215, 231, 221, .65)}@layer rdg{@layer Defaults,FocusSink,CheckboxInput,CheckboxIcon,CheckboxLabel,Cell,HeaderCell,SummaryCell,EditCell,Row,HeaderRow,SummaryRow,GroupedRow,Root;}@layer rdg.MeasuringCell{.rdg-7-0-0-beta-58-fa71d63e{contain:strict;grid-row:1;visibility:hidden}}@layer rdg.Cell{.rdg-7-0-0-beta-58-85c48527{position:relative;padding-block:0;padding-inline:8px;border-inline-end:var(--rdg-border-width) solid var(--rdg-border-color);border-block-end:var(--rdg-border-width) solid var(--rdg-border-color);grid-row-start:var(--rdg-grid-row-start);align-content:center;background-color:inherit;white-space:nowrap;overflow:clip;text-overflow:ellipsis;outline:none}.rdg-7-0-0-beta-58-85c48527[aria-selected=true]{outline:var(--rdg-selection-width) solid var(--rdg-selection-color);outline-offset:calc(var(--rdg-selection-width) * -1)}}@layer rdg.Cell{.rdg-7-0-0-beta-58-17a9a6d4{position:sticky;z-index:1}.rdg-7-0-0-beta-58-17a9a6d4:nth-last-child(1 of.rdg-7-0-0-beta-58-17a9a6d4){box-shadow:var(--rdg-cell-frozen-box-shadow)}}@layer rdg.DragHandle{.rdg-7-0-0-beta-58-bfba19bc{--rdg-drag-handle-size: 8px;z-index:0;cursor:move;inline-size:var(--rdg-drag-handle-size);block-size:var(--rdg-drag-handle-size);background-color:var(--rdg-selection-color);place-self:end}.rdg-7-0-0-beta-58-bfba19bc:hover{--rdg-drag-handle-size: 16px;border:2px solid var(--rdg-selection-color);background-color:var(--rdg-background-color)}}@layer rdg.DragHandle{.rdg-7-0-0-beta-58-7abddb3e{z-index:1;position:sticky}}@layer rdg.CheckboxInput{.rdg-7-0-0-beta-58-3b807ead{display:block;margin:auto;inline-size:20px;block-size:20px}.rdg-7-0-0-beta-58-3b807ead:focus-visible{outline:2px solid var(--rdg-checkbox-focus-color);outline-offset:-3px}.rdg-7-0-0-beta-58-3b807ead:enabled{cursor:pointer}}@layer rdg.GroupCellContent{.rdg-7-0-0-beta-58-07919382{outline:none}}@layer rdg.GroupCellCaret{.rdg-7-0-0-beta-58-02a50147{margin-inline-start:4px;stroke:currentColor;stroke-width:1.5px;fill:transparent;vertical-align:middle}.rdg-7-0-0-beta-58-02a50147>path{transition:d .1s}}@layer rdg.SortableHeaderCell{.rdg-7-0-0-beta-58-56a248e4{display:flex}}@layer rdg.SortableHeaderCellName{.rdg-7-0-0-beta-58-7fad8c83{flex-grow:1;overflow:clip;text-overflow:ellipsis}}@layer rdg.Cell{.rdg-7-0-0-beta-58-35ccb4c8{background-color:#ccf}}@layer rdg.EditCell{.rdg-7-0-0-beta-58-46f9ea88{padding:0}}@layer rdg.HeaderRow{.rdg-7-0-0-beta-58-0dbd5994{display:contents;background-color:var(--rdg-header-background-color);font-weight:700}.rdg-7-0-0-beta-58-0dbd5994>.rdg-7-0-0-beta-58-85c48527{z-index:2;position:sticky}.rdg-7-0-0-beta-58-0dbd5994>.rdg-7-0-0-beta-58-17a9a6d4{z-index:3}}@layer rdg.HeaderCell{.rdg-7-0-0-beta-58-2a7e240d{cursor:pointer}}@layer rdg.HeaderCell{.rdg-7-0-0-beta-58-1893dc0f{touch-action:none}}@layer rdg.HeaderCell{.rdg-7-0-0-beta-58-4e60db91{cursor:col-resize;position:absolute;inset-block-start:0;inset-inline-end:0;inset-block-end:0;inline-size:10px}}@layer rdg.HeaderCell{.rdg-7-0-0-beta-58-3e1a4ad4{background-color:var(--rdg-header-draggable-background-color)}}@layer rdg.HeaderCell{.rdg-7-0-0-beta-58-51abd8b8{background-color:var(--rdg-header-draggable-background-color)}}@layer rdg.HeaderCell{.rdg-7-0-0-beta-58-c8d7aa64{border-radius:4px;width:fit-content;outline:2px solid hsl(207,100%,50%);outline-offset:-2px}}@layer rdg.Row{.rdg-7-0-0-beta-58-3c083f1b{display:contents;background-color:var(--rdg-background-color)}.rdg-7-0-0-beta-58-3c083f1b:hover{background-color:var(--rdg-row-hover-background-color)}.rdg-7-0-0-beta-58-3c083f1b[aria-selected=true]{background-color:var(--rdg-row-selected-background-color)}.rdg-7-0-0-beta-58-3c083f1b[aria-selected=true]:hover{background-color:var(--rdg-row-selected-hover-background-color)}}@layer rdg.FocusSink{.rdg-7-0-0-beta-58-3fe773c3{outline:2px solid var(--rdg-selection-color);outline-offset:-2px}}@layer rdg.FocusSink{.rdg-7-0-0-beta-58-97ce3fde:before{content:"";display:inline-block;block-size:100%;position:sticky;inset-inline-start:0;border-inline-start:2px solid var(--rdg-selection-color)}}@layer rdg.SortIcon{.rdg-7-0-0-beta-58-3d5115f3{fill:currentColor}.rdg-7-0-0-beta-58-3d5115f3>path{transition:d .1s}}@layer rdg.Defaults{.rdg-7-0-0-beta-58-ccd2e5d9 *,.rdg-7-0-0-beta-58-ccd2e5d9 *:before,.rdg-7-0-0-beta-58-ccd2e5d9 *:after{box-sizing:inherit}}@layer rdg.Root{.rdg-7-0-0-beta-58-ccd2e5d9{--rdg-selection-width: 2px;--rdg-selection-color: hsl(207, 75%, 66%);--rdg-font-size: 14px;--rdg-cell-frozen-box-shadow: 2px 0 5px -2px rgba(136, 136, 136, .3);--rdg-border-width: 1px;--rdg-summary-border-width: calc(var(--rdg-border-width) * 2);--rdg-color: light-dark(#000, #ddd);--rdg-border-color: light-dark(#ddd, #444);--rdg-summary-border-color: light-dark(#aaa, #555);--rdg-background-color: light-dark(hsl(0deg 0% 100%), hsl(0deg 0% 13%));--rdg-header-background-color: light-dark(hsl(0deg 0% 97.5%), hsl(0deg 0% 10.5%));--rdg-header-draggable-background-color: light-dark(hsl(0deg 0% 90.5%), hsl(0deg 0% 17.5%));--rdg-row-hover-background-color: light-dark(hsl(0deg 0% 96%), hsl(0deg 0% 9%));--rdg-row-selected-background-color: light-dark(hsl(207deg 76% 92%), hsl(207deg 76% 42%));--rdg-row-selected-hover-background-color: light-dark(hsl(207deg 76% 88%), hsl(207deg 76% 38%));--rdg-checkbox-focus-color: hsl(207deg 100% 69%);color-scheme:var(--rdg-color-scheme, light dark);display:grid;accent-color:light-dark(hsl(207deg 100% 29%),hsl(207deg 100% 79%));contain:content;content-visibility:auto;block-size:350px;border:1px solid var(--rdg-border-color);box-sizing:border-box;overflow:auto;background-color:var(--rdg-background-color);color:var(--rdg-color);font-size:var(--rdg-font-size)}.rdg-7-0-0-beta-58-ccd2e5d9.rdg-dark{--rdg-color-scheme: dark}.rdg-7-0-0-beta-58-ccd2e5d9.rdg-light{--rdg-color-scheme: light}.rdg-7-0-0-beta-58-ccd2e5d9:dir(rtl){--rdg-cell-frozen-box-shadow: -2px 0 5px -2px rgba(136, 136, 136, .3)}.rdg-7-0-0-beta-58-ccd2e5d9:before{content:"";grid-column:1/-1;grid-row:1/-1}.rdg-7-0-0-beta-58-ccd2e5d9>:nth-last-child(1 of.rdg-top-summary-row)>.rdg-7-0-0-beta-58-85c48527{border-block-end:var(--rdg-summary-border-width) solid var(--rdg-summary-border-color)}.rdg-7-0-0-beta-58-ccd2e5d9>:nth-child(1 of.rdg-bottom-summary-row)>.rdg-7-0-0-beta-58-85c48527{border-block-start:var(--rdg-summary-border-width) solid var(--rdg-summary-border-color)}}@layer rdg.Root{.rdg-7-0-0-beta-58-e9b0e1c9{-webkit-user-select:none;user-select:none}.rdg-7-0-0-beta-58-e9b0e1c9 .rdg-7-0-0-beta-58-3c083f1b{cursor:move}}@layer rdg.FocusSink{.rdg-7-0-0-beta-58-dbb8b3c5{grid-column:1/-1;pointer-events:none;z-index:1}}@layer rdg.FocusSink{.rdg-7-0-0-beta-58-e9f55541{z-index:3}}@layer rdg.SummaryRow{.rdg-7-0-0-beta-58-0b90c82c>.rdg-7-0-0-beta-58-85c48527{position:sticky}}@layer rdg.SummaryRow{.rdg-7-0-0-beta-58-d0520eab>.rdg-7-0-0-beta-58-85c48527{z-index:2}.rdg-7-0-0-beta-58-d0520eab>.rdg-7-0-0-beta-58-17a9a6d4{z-index:3}}@layer rdg.SummaryCell{.rdg-7-0-0-beta-58-d907aa87{inset-block-start:var(--rdg-summary-row-top);inset-block-end:var(--rdg-summary-row-bottom)}}@layer rdg.GroupedRow{.rdg-7-0-0-beta-58-e74a2be3:not([aria-selected=true]){background-color:var(--rdg-header-background-color)}.rdg-7-0-0-beta-58-e74a2be3>.rdg-7-0-0-beta-58-85c48527:not(:last-child,.rdg-7-0-0-beta-58-17a9a6d4),.rdg-7-0-0-beta-58-e74a2be3>:nth-last-child(n+2 of.rdg-7-0-0-beta-58-17a9a6d4){border-inline-end:none}}@layer rdg.TextEditor{.rdg-7-0-0-beta-58-2f8db206{appearance:none;box-sizing:border-box;inline-size:100%;block-size:100%;padding-block:0;padding-inline:6px;border:2px solid #ccc;vertical-align:top;color:var(--rdg-color);background-color:var(--rdg-background-color);font-family:inherit;font-size:var(--rdg-font-size)}.rdg-7-0-0-beta-58-2f8db206:focus{border-color:var(--rdg-selection-color);outline:none}.rdg-7-0-0-beta-58-2f8db206::placeholder{color:#999;opacity:1}}.operator-grid-org,.operator-grid-teacher{height:min(58vh,540px)}.operator-grid-student{height:min(56vh,560px)}.operator-grid-student-excel{height:min(42vh,380px)}.operator-grid-class{height:min(52vh,520px)}.operator-grid-excel-preview{height:min(40vh,360px)}.operator-grid-class .rdg,.operator-grid-org .rdg,.operator-grid-teacher .rdg,.operator-grid-student .rdg,.operator-grid-student-excel .rdg,.operator-grid-excel-preview .rdg{block-size:100%!important}.theme-teacher{--mgmt-primary: #2F6FA3;--mgmt-primary-dark: #285F8B;--mgmt-primary-darker: #214F73;--mgmt-bg-subtle: #f8fafc;--mgmt-bg-subtle-hover: #eff6ff;--mgmt-border: #e2e8f0;--mgmt-border-soft: #cbd5e1;--mgmt-text-main: #0f172a;--mgmt-text-muted: #64748b;--mgmt-text-muted-light: #94a3b8;--mgmt-link: #2563eb;--mgmt-action-bg: var(--mgmt-primary);--mgmt-action-hover: var(--mgmt-primary-dark);--mgmt-action-active: var(--mgmt-primary-darker);--mgmt-action-text: #FFFFFF;--mgmt-action-border: #2F6FA3;--mgmt-action-shadow: 0 1px 2px rgba(47, 111, 163, .3);--mgmt-input-border: #cbd5e1;--mgmt-focus-ring: #93c5fd;--mgmt-focus-shadow: rgba(59, 130, 246, .35);--mgmt-sidebar-bg: rgba(255, 255, 255, .76);--mgmt-topbar-bg: rgba(249, 250, 251, .95);--mgmt-card-head-bg: #f8fafc;--mgmt-card-head-border: #e2e8f0}.teacher-grid-class-list{height:min(62vh,560px)}.teacher-grid-student-list{height:min(58vh,520px)}.teacher-grid-excel-preview{height:min(40vh,360px)}.cell-diff{position:relative;display:inline-block}.cell-diff:after{content:"";position:absolute;top:-4px;left:-6px;width:6px;height:6px;border-radius:50%;background:red}.teacher-grid-class-list .rdg,.teacher-grid-student-list .rdg,.teacher-grid-excel-preview .rdg{block-size:100%!important}.teacher-progress-modal__backdrop{position:fixed;inset:0;background:#0f172a59;display:flex;align-items:center;justify-content:center;z-index:9999}.teacher-progress-modal{width:min(520px,calc(100vw - 32px));background:#fff;border-radius:16px;box-shadow:0 20px 60px #0f172a40;padding:24px}.teacher-progress-modal__title{font-size:18px;font-weight:800;color:#0f172a;margin-bottom:10px}.teacher-progress-modal__text{font-size:15px;font-weight:700;color:#1d4ed8;margin-bottom:8px}.teacher-progress-modal__note{font-size:13px;color:#475569;line-height:1.6}.teacher-score-jobs-modal{width:min(1100px,calc(100vw - 32px));max-height:calc(100vh - 64px);display:flex;flex-direction:column;gap:12px}.teacher-score-jobs-modal__header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.teacher-score-jobs-modal__table-wrap{overflow:auto;border:1px solid var(--mgmt-border);border-radius:10px}.teacher-score-jobs-table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}.teacher-score-jobs-table th,.teacher-score-jobs-table td{border-bottom:1px solid var(--mgmt-border);padding:8px 10px;text-align:left;vertical-align:top}.teacher-score-jobs-table th{background:#f8fafc;font-weight:800;color:#334155}.teacher-score-jobs-table__empty{text-align:center!important;color:#64748b;padding:20px!important}.teacher-score-jobs-table__error{max-width:260px;white-space:normal;color:#dc2626;font-weight:700}.bulk-result-viewer .teacher-result-card{--student-accent: #0ea5e9;--student-accent-2: #38bdf8;border-color:#bae6fd}.bulk-result-viewer .teacher-result-card .student-card__head,.bulk-result-viewer .teacher-result-card .drill-block__head{background:linear-gradient(180deg,#e0f2fe,#f0f9ff);border-color:#bae6fd}.bulk-result-viewer .teacher-result-card .student-pill--primary{background:linear-gradient(180deg,#0ea5e9,#0284c7);border-color:#0284c7;color:#fff}.bulk-result-viewer .teacher-result-card .student-pill--primary.is-disabled{background:#e5e7eb;border-color:#d1d5db;color:#94a3b8}.bulk-result-viewer .teacher-result-card .drillresult-meta__label,.bulk-result-viewer .teacher-result-card .drillresult-stat__k{color:#0369a1}.bulk-result-viewer .drillresult-page-image{position:relative;margin:12px 0;border:1px solid #bae6fd;border-radius:16px;overflow:hidden;background:#f8fafc;text-align:center}.bulk-result-viewer .drillresult-page-image img{max-width:100%;max-height:620px;object-fit:contain;display:inline-block}.bulk-result-viewer .drillresult-page-image .drill-block__zoombtn{position:absolute;right:12px;bottom:12px}.bulk-result-viewer .teacher-page-eval{margin-top:12px;margin-bottom:12px;padding:18px 20px;border-radius:16px;border:1px solid #bae6fd;background:linear-gradient(180deg,#f0f9ff,#e0f2fe);box-shadow:0 10px 24px #0ea5e914}.bulk-result-viewer .teacher-page-eval__head{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:16px;font-weight:800;color:#0369a1}.bulk-result-viewer .teacher-page-eval__body{color:#334155;line-height:1.8;white-space:pre-wrap}.drillresult-head{position:relative;display:flex;align-items:flex-start;justify-content:flex-end;gap:12px;min-height:52px}.drillresult-identitybar{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;max-width:calc(100% - 220px)}.drillresult-nav{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:10px}@media(max-width:780px){.drillresult-head{flex-direction:column;align-items:center;justify-content:flex-start;min-height:0}.drillresult-identitybar{position:static;transform:none;max-width:100%}.drillresult-nav{margin-left:0;align-self:flex-end}}.drillresult-meta__row--identity{margin-top:2px;padding:7px 10px;border-radius:12px;background:#0ea5e914;border:1px solid rgba(14,165,233,.22)}.drillresult-meta__value--identity{font-size:15px;font-weight:900;color:#0369a1fa}.qa-item__comment{margin-top:8px;font-size:12.5px;color:#475569f2;line-height:1.55}.student-login-card{background-color:var(--student-card-bg, #FFFEFA)!important;border:1px solid var(--student-border-soft, #F3E2B8)!important;box-shadow:var(--student-shadow)!important}.student-login-card h1{color:var(--student-text-title, #7A5614)}.student-login-card input[type=text],.student-login-card input[type=password]{border-color:var(--student-input-border, #C7CDD3)!important}.student-login-card input[type=text]:focus,.student-login-card input[type=password]:focus{border-color:var(--student-input-border, #C7CDD3)!important;--tw-ring-color:var(--student-ring) !important;box-shadow:0 0 0 2px var(--student-ring)!important}@layer components;@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-rose-600:oklch(58.6% .253 17.585);--color-rose-700:oklch(51.4% .222 16.935);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--container-3xl:48rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--leading-tight:1.25;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing)*0)}.z-40{z-index:40}.mx-1{margin-inline:calc(var(--spacing)*1)}.mx-auto{margin-inline:auto}.my-3{margin-block:calc(var(--spacing)*3)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-6{margin-top:calc(var(--spacing)*6)}.mr-auto{margin-right:auto}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-24{height:calc(var(--spacing)*24)}.h-28{height:calc(var(--spacing)*28)}.h-40{height:calc(var(--spacing)*40)}.max-h-\[100px\]{max-height:100px}.max-h-\[360px\]{max-height:360px}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-24{width:calc(var(--spacing)*24)}.w-28{width:calc(var(--spacing)*28)}.w-32{width:calc(var(--spacing)*32)}.w-40{width:calc(var(--spacing)*40)}.w-48{width:calc(var(--spacing)*48)}.w-\[92vw\]{width:92vw}.w-\[200px\]{width:200px}.w-\[560px\]{width:560px}.w-\[min\(720px\,96vw\)\]{width:min(720px,96vw)}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-\[480px\]{max-width:480px}.max-w-\[500px\]{max-width:500px}.max-w-\[1600px\]{max-width:1600px}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-blue-600{border-color:var(--color-blue-600)}.border-emerald-600{border-color:var(--color-emerald-600)}.border-rose-600{border-color:var(--color-rose-600)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-300{border-color:var(--color-slate-300)}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black)40%,transparent)}}.bg-blue-600{background-color:var(--color-blue-600)}.bg-blue-700{background-color:var(--color-blue-700)}.bg-emerald-600{background-color:var(--color-emerald-600)}.bg-emerald-700{background-color:var(--color-emerald-700)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-red-500{background-color:var(--color-red-500)}.bg-rose-600{background-color:var(--color-rose-600)}.bg-rose-700{background-color:var(--color-rose-700)}.bg-slate-50{background-color:var(--color-slate-50)}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-200{background-color:var(--color-slate-200)}.bg-white{background-color:var(--color-white)}.object-contain{object-fit:contain}.p-0{padding:calc(var(--spacing)*0)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-slate-800{color:var(--color-slate-800)}.text-white{color:var(--color-white)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-emerald-700:hover{background-color:var(--color-emerald-700)}.hover\:bg-rose-700:hover{background-color:var(--color-rose-700)}.hover\:bg-slate-50:hover{background-color:var(--color-slate-50)}.hover\:bg-slate-100:hover{background-color:var(--color-slate-100)}.hover\:bg-slate-200:hover{background-color:var(--color-slate-200)}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}@media(min-width:40rem){.sm\:ml-3{margin-left:calc(var(--spacing)*3)}.sm\:inline{display:inline}.sm\:w-32{width:calc(var(--spacing)*32)}.sm\:w-40{width:calc(var(--spacing)*40)}.sm\:w-48{width:calc(var(--spacing)*48)}.sm\:w-\[560px\]{width:560px}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:p-5{padding:calc(var(--spacing)*5)}.sm\:p-6{padding:calc(var(--spacing)*6)}.sm\:px-4{padding-inline:calc(var(--spacing)*4)}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}}@media(min-width:48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-4{grid-column:span 4/span 4}.md\:mb-4{margin-bottom:calc(var(--spacing)*4)}.md\:h-28{height:calc(var(--spacing)*28)}.md\:w-28{width:calc(var(--spacing)*28)}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:gap-4{gap:calc(var(--spacing)*4)}.md\:p-4{padding:calc(var(--spacing)*4)}.md\:p-5{padding:calc(var(--spacing)*5)}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media(min-width:64rem){.lg\:p-5{padding:calc(var(--spacing)*5)}}}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}:root{--student-bg-main:#FFF9E8;--student-card-bg:#FFFEFA;--student-border-soft:#F3E2B8;--student-shadow:0 10px 26px rgba(146, 98, 18, .1);--student-accent:#FFE066;--student-accent-hover:#FFD43B;--student-accent-active:#FCC419;--student-button-text:#8A5200;--student-text-title:#7A5614;--student-ring:rgba(255, 224, 102, .45);--student-input-border:#C7CDD3;--student-topbar-h: 58px;--student-gap: 12px;--student-frame-bg: rgba(255, 254, 250, .96);--student-frame-border: rgba(243, 226, 184, .95)}html,body{height:100%;margin:0;background-color:#fff}.student-bg{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--student-bg-main)}.aidrill-page-loading{display:none;position:fixed;inset:0;z-index:9999;background:#fff9e8bd;align-items:center;justify-content:center}.aidrill-page-loading.is-open{display:flex}.aidrill-page-loading__panel{display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px 20px;border-radius:14px;background:#fffefaf0;border:1px solid rgba(243,226,184,.95);box-shadow:0 14px 34px #00000024}.aidrill-page-loading__spinner{width:34px;height:34px;border-radius:9999px;border:4px solid rgba(0,0,0,.16);border-top-color:#0000009e;animation:aidrillSpin .9s linear infinite}.aidrill-page-loading__text{font-weight:900;color:#111827;font-size:13px}@keyframes aidrillSpin{to{transform:rotate(360deg)}}.ph-modal.hidden{display:none}.ph-modal{position:fixed;inset:0;z-index:10000}.ph-modal__backdrop{position:absolute;inset:0;background:#0f172a73}.ph-modal__panel{position:relative;width:min(640px,92vw);margin:10vh auto 0;background:#fffefaf5;border-radius:18px;box-shadow:0 22px 56px #0000003d;border:1px solid rgba(243,226,184,.95);padding:14px 14px 12px}.ph-modal__close{position:absolute;right:10px;top:10px;width:36px;height:36px;border-radius:9999px;border:1px solid #cbd5e1;background:#fff;color:#64748b;cursor:pointer}.ph-modal__body{padding:22px 8px 10px}.ph-modal__text{font-size:13px;font-weight:900;color:#0f172a;line-height:1.6}.ph-modal__footer{display:flex;justify-content:flex-end;gap:8px;padding:10px 4px 2px}.ifei-btn{border-radius:12px;border:1px solid #cbd5e1;background:#fff;padding:10px 12px;font-weight:900;font-size:12px}.ifei-btn--secondary{background:#fff2d8;border-color:#f1d7a6;color:#6b4b12}.btn-student-action{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border-radius:14px;background:var(--student-accent);border:1px solid var(--student-accent-hover);color:var(--student-button-text);font-weight:900;letter-spacing:.05em;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;box-shadow:0 10px 18px #9262122e;transition:background-color .15s ease,box-shadow .15s ease,transform .02s ease}.btn-student-action:hover{background:var(--student-accent-hover)}.btn-student-action:active{background:var(--student-accent-active);transform:translateY(1px);box-shadow:0 6px 12px #9262122e}.btn-student-action:focus{outline:none}.btn-student-action:focus-visible{box-shadow:0 0 0 3px var(--student-ring),0 10px 18px #9262122e}.student-topbar{position:fixed;top:0;left:0;right:0;height:var(--student-topbar-h);z-index:9000;background:#fffefae6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(243,226,184,.9)}.student-topbar__inner{height:100%;max-width:1600px;margin:0 auto;padding:0 12px;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px}.student-topbar__center{grid-column:2;display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;flex-wrap:nowrap}.student-topbar__tab{width:120px;min-width:120px;max-width:120px;padding:8px 10px;display:inline-flex;align-items:center;justify-content:center}.student-topbar__tab-label{display:block;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-topbar__right{grid-column:3;justify-self:end;display:flex;align-items:center;gap:8px;justify-content:flex-end;min-width:0;max-width:100%;flex-wrap:nowrap}.student-account{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;line-height:1.1;min-width:0;max-width:min(360px,100%);flex:1 1 auto}.student-account__org{font-size:12px;font-weight:900;color:#6b4b12;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;text-align:right}.student-account__nick{font-size:11px;font-weight:800;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;text-align:right}.student-chip{border-radius:999px;border:1px solid rgba(203,213,225,.9);background:#fff;padding:8px 12px;font-weight:900;font-size:12px;white-space:nowrap;transition:transform .05s ease,background .15s ease,border-color .15s ease}.student-chip:active{transform:translateY(1px)}.student-chip.is-active{border-color:#f6a73a8c;background:#ffe06640}.student-chip--danger{border-color:#fecacaf2;background:#fff1f2e6;color:#9f1239}.student-topbar__logout{flex:0 0 auto}.student-shell{flex:1 1 auto;min-height:100vh;min-height:100dvh;padding-top:calc(var(--student-topbar-h) + var(--student-gap));max-width:1600px;width:100%;margin:0 auto;display:grid;grid-template-columns:320px 1fr;gap:var(--student-gap);background:var(--student-bg-main)}.student-shell,.student-main{background:var(--student-bg-main)}.student-left{display:block}.student-left__panel{position:sticky;top:calc(var(--student-topbar-h) + var(--student-gap));border-radius:18px;background:var(--student-frame-bg);border:1px solid var(--student-frame-border);box-shadow:var(--student-shadow);overflow:hidden}.student-left.is-left-hidden{display:none}.student-shell.is-left-hidden{grid-template-columns:1fr}.student-shell.is-left-hidden .student-left{display:none}.student-main{min-width:0}.student-pill{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 14px;border-radius:14px;border:1px solid rgba(203,213,225,.9);background:#fff;color:#334155;font-weight:900;font-size:13px;line-height:1;cursor:pointer;transition:transform .05s ease,filter .15s ease,background .15s ease,border-color .15s ease}.student-pill:hover{filter:brightness(1.01)}.student-pill:active{transform:translateY(1px)}.student-pill:disabled{opacity:.6;cursor:not-allowed}.student-pill--primary{background:var(--student-accent);border-color:#f6a73a8c;color:var(--student-button-text)}.student-pill--primary:hover{background:var(--student-accent-hover)}.student-pill--accent{background:#ffe066eb;border-color:#f6a73a8c;color:#7a3d00}.student-pill--accent:hover{filter:brightness(1.03)}.student-pill--ghost{background:#fffefad9;border-color:#cbd5e1e6;color:#334155}@media(max-width:1024px){:root{--student-topbar-h: 66px;--student-gap: 10px}.student-topbar__inner{padding:0 8px;gap:8px;display:flex;flex-wrap:nowrap}.student-topbar__center{flex:1 1 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.student-topbar__tab{width:100%;min-width:0;max-width:none;padding:7px 4px;font-size:11px}.student-topbar__right{flex:0 0 auto;gap:6px;min-width:0}.student-account{flex:0 1 88px;max-width:88px}.student-account__org,.student-account__nick{font-size:10px}.student-topbar__logout{padding:7px 8px;font-size:11px}.student-shell,.student-shell.is-left-hidden{grid-template-columns:1fr;padding-left:8px;padding-right:8px}.student-left,.student-shell .student-left,.student-shell.is-left-hidden .student-left{display:none}}.camera-grid{display:grid;grid-template-columns:1fr 260px;gap:12px;align-items:start}@media(max-width:920px){.camera-grid{grid-template-columns:1fr}}.camera-stage__label{font-size:12px;font-weight:900;color:#6b4b12;margin-bottom:6px}.camera-stage__frame{position:relative;border-radius:18px;overflow:hidden;background:#0f172a;border:1px solid rgba(243,226,184,.85);box-shadow:0 10px 26px #00000024;max-height:calc(100vh - var(--student-topbar-h) - 190px)}.camera-video,.camera-image{width:100%;height:auto;display:block}.camera-image{position:absolute;inset:0;object-fit:contain;background:#0f172a}.camera-hint{margin-top:8px;font-size:12px;font-weight:800;color:#64748b}.camera-actions{display:flex;flex-direction:column;gap:10px;align-items:stretch}.camera-note{margin-top:2px;font-size:11px;font-weight:700;color:#64748b;line-height:1.5}@media(orientation:portrait){.camera-stage__frame{max-height:calc(100vh - var(--student-topbar-h) - 230px)}}:root{--crop-green: #34d399;--crop-green-deep: #10b981;--crop-dim: rgba(2, 6, 23, .42)}.preview-grid{display:grid;grid-template-columns:1fr 280px;gap:12px;align-items:start}@media(max-width:980px){.preview-grid{grid-template-columns:1fr}}.preview-stage__label{font-size:12px;font-weight:900;color:#6b4b12;margin-bottom:6px}.preview-frame{position:relative;border-radius:18px;overflow:hidden;background:#0f172a;border:1px solid rgba(243,226,184,.85);box-shadow:0 10px 26px #00000024;max-height:calc(100vh - var(--student-topbar-h) - 190px)}.preview-image{width:100%;height:auto;display:block;object-fit:contain;background:#0f172a}.preview-hint{position:absolute;left:10px;bottom:10px;font-size:12px;font-weight:900;color:#ffffffd9;background:#02061766;padding:8px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.16);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.preview-actions{display:flex;flex-direction:column;gap:10px;align-items:stretch}.preview-note{margin-top:2px;font-size:11px;font-weight:700;color:#64748b;line-height:1.5}.preview-meta{margin-top:4px;padding:10px 12px;border-radius:14px;border:1px solid rgba(203,213,225,.85);background:#fffefac7}.preview-meta__row{display:flex;align-items:center;justify-content:space-between;gap:10px}.preview-meta__label{font-size:11px;font-weight:900;color:#6b4b12}.preview-meta__value{font-size:11px;font-weight:900;color:#0f172a}.crop-overlay{position:absolute;inset:0;pointer-events:none}.crop-dim{position:absolute;background:var(--crop-dim)}.crop-dim--top{left:0;right:0;top:0;height:0}.crop-dim--left{left:0;top:0;width:0;height:0}.crop-dim--right{right:0;top:0;width:0;height:0}.crop-dim--bottom{left:0;right:0;bottom:0;height:0}.crop-box{position:absolute;left:10%;top:12%;width:80%;height:70%;border:2px solid rgba(52,211,153,.95);border-radius:14px;box-shadow:0 0 0 2px #0206173d inset,0 14px 30px #00000038;cursor:move;touch-action:none;-webkit-user-select:none;user-select:none}.crop-box__grid{position:absolute;inset:0;border-radius:12px;background:linear-gradient(to right,rgba(255,255,255,.12) 1px,transparent 1px) 0 0 / 33.333% 100%,linear-gradient(to bottom,rgba(255,255,255,.12) 1px,transparent 1px) 0 0 / 100% 33.333%;pointer-events:none}.crop-handle{position:absolute;width:18px;height:18px;border-radius:10px;background:#ffffffeb;border:2px solid rgba(52,211,153,.95);box-shadow:0 6px 14px #0000002e;pointer-events:auto}.crop-handle--nw{left:-9px;top:-9px;cursor:nwse-resize}.crop-handle--ne{right:-9px;top:-9px;cursor:nesw-resize}.crop-handle--sw{left:-9px;bottom:-9px;cursor:nesw-resize}.crop-handle--se{right:-9px;bottom:-9px;cursor:nwse-resize}.crop-handle--n{left:50%;top:-9px;transform:translate(-50%);cursor:ns-resize}.crop-handle--s{left:50%;bottom:-9px;transform:translate(-50%);cursor:ns-resize}.crop-handle--w{left:-9px;top:50%;transform:translateY(-50%);cursor:ew-resize}.crop-handle--e{right:-9px;top:50%;transform:translateY(-50%);cursor:ew-resize}@media(orientation:portrait){.preview-frame{max-height:calc(100vh - var(--student-topbar-h) - 230px)}}:root{--grading-ok: #16a34a;--grading-warn: #dc2626;--grading-ink: #0f172a;--grading-soft: rgba(203, 213, 225, .55);--grading-queued: #c2410c}.grading-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;flex-wrap:wrap}.grading-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;border-radius:999px;border:1px solid rgba(243,226,184,.95);background:#fffefac7;box-shadow:0 8px 18px #92621214}.grading-badge__dot{width:10px;height:10px;border-radius:999px;background:#f6a73af2;box-shadow:0 0 0 3px #ffe06666}.grading-badge__text{font-size:12px;font-weight:1000;color:#6b4b12}.grading-btn-sm{min-height:40px;padding:8px 12px;font-size:12px}.grading-grid-wrap{border-radius:16px;overflow:hidden;border:1px solid rgba(243,226,184,.85);background:#fffefab8;box-shadow:0 12px 26px #00000014}#grid_grading.grading-table-host{height:min(62vh,520px);min-height:320px;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-x pan-y;background:#fffefae6}@media(max-width:520px){#grid_grading.grading-table-host{height:58vh;min-height:260px}}.grading-table{width:100%;border-collapse:separate;border-spacing:0;color:var(--grading-ink);min-width:900px}.grading-table thead th{position:sticky;top:0;z-index:2;background:#fffefaf2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-weight:1000;font-size:13px;text-align:left;padding:12px;border-bottom:1px solid rgba(243,226,184,.85);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none}.grading-table thead th.is-sorted{box-shadow:inset 0 -2px #f6a73a8c}.grading-table thead th .sort-ind{margin-left:6px;opacity:.65;font-weight:1000}.grading-table tbody td{font-weight:900;font-size:14px;padding:10px 12px;border-bottom:1px solid rgba(243,226,184,.85);vertical-align:middle;height:72px;overflow:visible;white-space:nowrap}.grading-table tbody tr{background:#fff}.grading-table tbody tr:hover{background:#ffe4ebbf}.grading-table tbody tr.is-selected{outline:2px solid rgba(243,226,184,.85);outline-offset:-2px;background:#fff}@media(max-width:520px){.grading-table{min-width:860px}.grading-table tbody td{font-size:13px;height:70px;padding:9px 12px}}.grading-status{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;border:1px solid var(--grading-soft);background:#ffffffc7;white-space:nowrap}.grading-status__text{font-weight:1000;font-size:12px}.grading-status__body{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}.grading-status__detail{max-width:260px;font-size:10px;line-height:1.25;font-weight:600;color:#7f1d1d;opacity:.82;white-space:normal;word-break:break-word}.grading-status__icon-button{display:inline-flex;align-items:center;justify-content:center;margin:0;padding:0;border:0;background:transparent;cursor:pointer}.grading-status__icon-button:focus-visible{outline:2px solid rgba(37,99,235,.55);outline-offset:2px;border-radius:999px}.grading-status__icon-button:hover .grading-icon--check{transform:scale(1.06)}.grading-status__icon-button:active .grading-icon--check{transform:scale(.98)}.grading-icon{transition:transform .15s ease}.grading-spin{width:14px;height:14px;border-radius:999px;border:3px solid rgba(15,23,42,.18);border-top-color:#0f172aa6;animation:gradingSpin .9s linear infinite}@keyframes gradingSpin{to{transform:rotate(360deg)}}.grading-status--queued{border-color:#f59e0b47;background:#fffbebeb}.grading-status--running{border-color:#3b82f640;background:#eff6ffb8}.grading-status--success{border-color:#22c55e40;background:#f0fdf4cc}.grading-status--error{border-color:#dc262640;background:#fef2f2e6}.grading-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:999px;font-size:12px;line-height:1;font-weight:1000}.grading-icon--queued{color:#fff;background:var(--grading-queued);font-size:11px}.grading-icon--check{color:#fff;background:var(--grading-ok)}.grading-icon--error{color:#fff;background:var(--grading-warn)}.grading-note{margin-top:10px;font-size:11px;font-weight:800;color:#64748b;line-height:1.5}.grading-status--link{appearance:none;-webkit-appearance:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.grading-status--link:hover .grading-icon--check{transform:scale(1.06)}.grading-status--link:active .grading-icon--check{transform:scale(.98)}.grading-status--link:focus-visible{outline:2px solid rgba(37,99,235,.55);outline-offset:2px}.grading-status-cell{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.grading-download-btn{appearance:none;-webkit-appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:auto;padding:0;border:0;background:transparent;color:#6b7280;font-size:12px;font-weight:700;line-height:1.2;cursor:pointer;transition:opacity .15s ease,color .15s ease}.grading-download-btn:hover{color:#4b5563;opacity:.92}.grading-download-btn:active{opacity:.8}.grading-download-btn:focus-visible{outline:2px solid rgba(107,114,128,.28);outline-offset:2px;border-radius:6px}.grading-download-btn:disabled{opacity:.56;cursor:wait}.grading-download-btn__icon{display:inline-flex;align-items:center;justify-content:center;width:auto;height:auto;border-radius:0;background:transparent;color:inherit;font-size:13px;font-weight:400}.grading-download-btn__text{white-space:nowrap;font-size:10px}.grading-download-btn--demo{text-decoration:none}.grading-td--status{min-width:320px}.grading-status-cell{display:flex;align-items:center;justify-content:flex-start;gap:10px;flex-wrap:nowrap}.grading-status-cell>*{flex:0 0 auto}.grading-download-btn{display:inline-flex!important;visibility:visible!important;flex:0 0 auto}@media(max-width:520px){.grading-td--status{min-width:300px}.grading-status__detail{max-width:180px}}:root{--drills-ink: #0f172a}#grid_drills.drills-table-host{height:min(62vh,520px);min-height:320px;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-x pan-y;background:#fffefae6;border-radius:16px;border:1px solid rgba(243,226,184,.85);box-shadow:0 12px 26px #00000014}@media(max-width:520px){#grid_drills.drills-table-host{height:58vh;min-height:260px}}.drills-table{width:100%;min-width:760px;border-collapse:separate;border-spacing:0;color:var(--drills-ink)}.drills-table thead th{position:sticky;top:0;z-index:2;background:#fffefaf2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-weight:1000;font-size:13px;text-align:left;padding:12px;border-bottom:1px solid rgba(243,226,184,.85);white-space:nowrap}.drills-table thead th.col-no{width:56px;text-align:right;padding-right:10px}.drills-table tbody td{font-weight:900;font-size:14px;padding:10px 12px;border-bottom:1px solid rgba(243,226,184,.85);vertical-align:middle;height:72px;white-space:nowrap}.drills-table tbody tr{background:#fff;transition:background-color .18s ease}.drills-tr--clickable{cursor:pointer}.drills-table tbody tr:hover{background:#ffe4ebbf}.drills-table tbody td.col-no{text-align:right;padding-right:10px;color:#475569f2;font-weight:1000}.drills-error{margin-top:8px;color:#dc2626}.drills-list-sentinel{width:100%;height:1px}.drills-loading-more,.drills-end{padding:12px 4px 0;font-size:12px;font-weight:800;color:#64748b}@media(max-width:520px){.drills-table{min-width:680px}.drills-table tbody td{font-size:13px;height:70px;padding:9px 12px}}.drillresult-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.drillresult-nav{display:flex;align-items:center;gap:10px}.student-pill[disabled],.student-pill.is-disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.drillresult-meta{display:grid;grid-template-columns:1.2fr .8fr;gap:12px;padding:12px;border:1px solid rgba(148,163,184,.35);background:#ffffffbf;border-radius:16px;margin-bottom:14px}.drillresult-meta__row{display:flex;gap:10px;align-items:baseline;line-height:1.4}.drillresult-meta__label{min-width:4.5em;font-weight:800;color:#0f172ab3}.drillresult-meta__value{font-weight:700;color:#0f172aeb}.drillresult-meta__right{display:grid;grid-template-columns:1fr;gap:8px;justify-items:end}.drillresult-stat{width:100%;display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:14px;background:#f1f5f9bf;border:1px solid rgba(148,163,184,.25)}.drillresult-stat__k{font-size:12px;font-weight:800;color:#334155d9}.drillresult-stat__v{font-size:13px;font-weight:900;color:#0f172af2}.drillresult-blocks{display:flex;flex-direction:column;gap:14px}.drill-block{border:1px solid rgba(148,163,184,.28);border-radius:18px;background:#ffffffdb;overflow:hidden}.drill-block__head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:#f8fafce6;border-bottom:1px solid rgba(148,163,184,.22)}.drill-block__title{font-weight:900;color:#0f172ae6}.drill-block__scored{font-size:12px;color:#64748be6;font-weight:700}.drill-block__body{display:grid;grid-template-columns:320px 1fr;gap:12px;padding:12px}.drill-block__imgwrap{position:relative;align-self:start;height:fit-content;border-radius:14px;overflow:hidden;border:1px solid rgba(148,163,184,.25);background:#fff}.drill-block__thumb{width:100%;height:auto;object-fit:contain;display:block;background:#fff;border-radius:14px}.drill-block__imgtools{position:absolute;top:8px;right:8px;display:flex;gap:8px}.drill-block__zoombtn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:999px;border:1px solid rgba(148,163,184,.45);background:#ffffffeb;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;font-size:18px;font-weight:900}.drill-block__zoombtn:active{transform:scale(.98)}.drill-block__qa{display:flex;flex-direction:column;gap:10px}.qa-item{border-radius:14px;border:1px solid rgba(148,163,184,.25);background:#f8fafcbf;padding:10px 12px}.qa-item__top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.qa-item__q{font-weight:900;color:#0f172ae6}.qa-item__judge{display:inline-flex;align-items:center;gap:6px;font-weight:1000;letter-spacing:.02em}.qa-item__judge.is-ok{color:#16a34af2}.qa-item__judge.is-ng{color:#dc2626f2}.qa-item__mid{margin-top:6px;display:grid;grid-template-columns:84px 1fr;gap:8px 10px;align-items:start;font-size:13px}.qa-item__k{font-weight:800;color:#334155d9}.qa-item__v{font-weight:800;color:#0f172aeb;word-break:break-word}.qa-item__comment{margin-top:8px;font-size:12.5px;color:#475569f2;line-height:1.65;white-space:pre-line}.qa-item__comment p{margin:0}.qa-item__comment p+p{margin-top:4px}.qa-feedback{margin-top:10px;padding:12px 14px;border-radius:12px;border:1px solid rgba(251,191,36,.32);background:linear-gradient(180deg,#fffbebf5,#fff7edf5);box-shadow:inset 0 1px #ffffffbf}.qa-feedback__head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.qa-feedback__icon{font-size:15px;line-height:1}.qa-feedback__label{font-size:12px;font-weight:900;letter-spacing:.04em;color:#92400eeb}.qa-feedback__body{color:#78350ff2;font-size:13px;line-height:1.7}.qa-feedback__body p{margin:0}.qa-feedback__body p+p{margin-top:4px}.aidrill-image-modal{width:min(1100px,calc(100vw - 24px));height:min(82vh,820px);border-radius:18px;overflow:hidden;position:relative}.aidrill-image-modal__toolbar{display:flex;gap:8px;padding:10px 12px;border-bottom:1px solid rgba(148,163,184,.25);background:#ffffffeb}.aidrill-image-modal__toolbar button{min-height:38px;padding:0 12px;border-radius:999px;border:1px solid rgba(148,163,184,.45);background:#fff;font-weight:900;cursor:pointer}.aidrill-image-modal__toolbar button:active{transform:scale(.98)}.aidrill-image-modal__canvas{position:relative;width:100%;height:calc(100% - 82px);background:#0206170a;overflow:hidden;touch-action:none}.aidrill-image-modal__image{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(1);transform-origin:center center;max-width:none;max-height:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.aidrill-image-modal__hint{height:26px;display:flex;align-items:center;justify-content:center;font-size:12px;color:#64748bf2;background:#f8fafce6;border-top:1px solid rgba(148,163,184,.2)}@media(max-width:920px){.drillresult-meta{grid-template-columns:1fr}.drillresult-meta__right{justify-items:start}.drill-block__body{grid-template-columns:1fr}.drill-block__thumb{height:auto}}@media(max-width:520px){.drillresult-meta,.drill-block__body{padding:10px}.drill-block__thumb{height:auto}}
