:root{--gf-primary: #2563eb;--gf-primary-hover: #1d4ed8;--gf-primary-active: #1e40af;--gf-primary-subtle: rgba(37, 99, 235, .08);--gf-primary-ring: rgba(37, 99, 235, .18);--gf-text: #172b4d;--gf-text-secondary: #42526e;--gf-text-muted: #5e6c84;--gf-text-faint: #8993a4;--gf-text-inverse: #ffffff;--gf-bg: #f4f5f7;--gf-surface: #ffffff;--gf-surface-sunken: #fafbfc;--gf-surface-hover: #f4f5f7;--gf-surface-active: #ebecf0;--gf-surface-selected: #e9f2ff;--gf-border: #dfe1e6;--gf-border-subtle: #ebecf0;--gf-border-strong: #c1c7d0;--gf-success-bg: #e3fcef;--gf-success-text: #006644;--gf-success-border: #abf5d1;--gf-info-bg: #deebff;--gf-info-text: #0747a6;--gf-info-border: #b3d4ff;--gf-neutral-bg: #eaedf0;--gf-neutral-text: #42526e;--gf-neutral-border: #dfe1e6;--gf-warning-bg: #fffae6;--gf-warning-text: #974f0c;--gf-warning-border: #fff0b3;--gf-danger-bg: #ffebe6;--gf-danger-text: #bf2600;--gf-danger-border: #ffbdad;--gf-accent-bg: #eae6ff;--gf-accent-text: #403294;--gf-danger: #de350b;--gf-danger-hover: #bf2600;--gf-radius-xs: 3px;--gf-radius-sm: 4px;--gf-radius-md: 6px;--gf-radius-lg: 8px;--gf-radius-full: 999px;--gf-shadow-pop: 0 4px 12px rgba(9, 30, 66, .15);--gf-shadow-modal: 0 8px 28px rgba(9, 30, 66, .24);--gf-header-h: 48px;--gf-sidebar-w: 264px;--gf-sidebar-w-collapsed: 64px;--gf-tabs-h: 40px;--gf-font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--gf-mono: ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;--gf-page-title: 20px;--gf-section-title: 15px;--gf-body: 13.5px;--gf-meta: 12.5px;--gf-micro: 11.5px}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--gf-font);font-size:var(--gf-body);line-height:1.45;color:var(--gf-text);background:var(--gf-bg);-webkit-font-smoothing:antialiased}#app{min-height:100vh}button,input,select,textarea{font-family:inherit}a{color:var(--gf-primary)}:focus-visible{outline:2px solid var(--gf-primary);outline-offset:1px}.gf-app{min-height:100vh;display:flex;flex-direction:column}.gf-shell{display:flex;flex:1;min-height:calc(100vh - var(--gf-header-h))}.gf-workspace{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--gf-surface)}.gf-main{flex:1;min-width:0;padding:16px 24px 40px;background:var(--gf-surface)}.gf-global-header{height:var(--gf-header-h);flex:0 0 var(--gf-header-h);display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--gf-surface);border-bottom:1px solid var(--gf-border);position:sticky;top:0;z-index:60}.gf-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid transparent;border-radius:var(--gf-radius-md);background:transparent;color:var(--gf-text-secondary);cursor:pointer;position:relative;flex:0 0 auto}.gf-icon-btn:hover{background:var(--gf-surface-hover);color:var(--gf-text)}.gf-icon-btn svg{width:18px;height:18px}.gf-icon-btn .dot{position:absolute;top:6px;right:7px;width:7px;height:7px;border-radius:50%;background:var(--gf-danger);border:1.5px solid #fff}.gf-brand{display:flex;align-items:center;gap:8px;border:0;background:transparent;cursor:pointer;padding:4px 8px 4px 4px;border-radius:var(--gf-radius-md);color:var(--gf-text);font-weight:700;font-size:15px;letter-spacing:-.01em;white-space:nowrap}.gf-brand:hover{background:var(--gf-surface-hover)}.gf-brand-mark{width:26px;height:26px;border-radius:7px;flex:0 0 auto;background:var(--gf-primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:800}.gf-brand svg.chev{width:14px;height:14px;color:var(--gf-text-faint)}.gf-global-search{flex:1;display:flex;justify-content:center;min-width:0;padding:0 8px}.gf-searchbox{display:flex;align-items:center;gap:8px;width:min(480px,100%);height:32px;padding:0 8px;background:var(--gf-surface-sunken);border:1px solid var(--gf-border);border-radius:var(--gf-radius-md);color:var(--gf-text-muted)}.gf-searchbox:focus-within{border-color:var(--gf-primary);background:#fff;box-shadow:0 0 0 2px var(--gf-primary-ring)}.gf-searchbox svg{width:15px;height:15px;flex:0 0 auto}.gf-searchbox input{flex:1;min-width:0;border:0;background:transparent;outline:none;font-size:13px;color:var(--gf-text);padding:0}.gf-searchbox kbd{font-family:inherit;font-size:11px;color:var(--gf-text-faint);border:1px solid var(--gf-border);border-bottom-width:2px;border-radius:4px;padding:0 5px;line-height:18px;background:#fff;flex:0 0 auto}.gf-header-actions{display:flex;align-items:center;gap:4px;margin-left:auto}.gf-academic-context{display:flex;align-items:center;gap:6px;min-width:0;flex:0 1 auto}.gf-context-controls{display:flex;align-items:center;gap:6px;min-width:0}.gf-context-field{display:flex;align-items:center;gap:4px;min-width:0;position:relative}.gf-context-label{font-size:11px;font-weight:600;color:var(--gf-text-muted);letter-spacing:.03em;white-space:nowrap}.gf-context-label-short{display:none}.gf-context-field select,.gf-context-field input[type=search]{height:28px;min-width:0;max-width:132px;border:1px solid var(--gf-border);border-radius:var(--gf-radius-md);background:var(--gf-surface-sunken);color:var(--gf-text);font-size:12px;padding:0 4px}.gf-context-field input[type=search]{width:132px}.gf-context-field select:focus-visible,.gf-context-field input[type=search]:focus-visible{outline:2px solid var(--gf-primary);outline-offset:1px;border-color:var(--gf-primary)}.gf-context-field select:disabled,.gf-context-field input[type=search]:disabled{opacity:.6;cursor:default}.gf-context-reset{width:28px;height:28px;font-size:15px;line-height:1}.gf-context-reset:disabled{opacity:.4;cursor:default}.gf-context-hint{font-size:11px;color:var(--gf-warning-text);background:var(--gf-warning-bg);border:1px solid var(--gf-warning-border);border-radius:var(--gf-radius-full);padding:1px 6px;white-space:nowrap}.gf-context-note{font-size:10px;color:var(--gf-text-muted);white-space:nowrap}.gf-context-options{position:absolute;top:100%;left:0;right:0;z-index:80;margin:2px 0 0;padding:4px 0;list-style:none;background:#fff;border:1px solid var(--gf-border);border-radius:var(--gf-radius-md);box-shadow:var(--gf-shadow-modal);max-height:220px;overflow:auto}.gf-context-options li{padding:6px 10px;font-size:12px;cursor:pointer}.gf-context-options li.active{background:var(--gf-surface-selected);color:var(--gf-primary)}.gf-notif-badge{position:absolute;top:3px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:var(--gf-radius-full);background:var(--gf-danger-hover);color:#fff;border:1.5px solid #fff;font-size:10px;font-weight:700;line-height:1;display:inline-flex;align-items:center;justify-content:center;pointer-events:none}.gf-notif-badge[hidden]{display:none}.gf-notif-panel{position:absolute;top:calc(100% + 6px);right:12px;width:min(380px,calc(100vw - 24px));max-height:min(70vh,520px);display:flex;flex-direction:column;background:#fff;border:1px solid var(--gf-border);border-radius:var(--gf-radius-lg);box-shadow:var(--gf-shadow-modal);z-index:85;overflow:hidden}.gf-notif-panel>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 8px 10px 14px;border-bottom:1px solid var(--gf-border-subtle)}.gf-notif-panel>header h2{margin:0;font-size:14px;font-weight:650}.gf-notif-actions{display:flex;align-items:center;gap:4px}.gf-notif-list{flex:1;min-height:0;overflow-y:auto}.gf-notif-item{display:flex;align-items:flex-start;gap:4px;padding-right:8px;border-bottom:1px solid var(--gf-border-subtle)}.gf-notif-item:last-child{border-bottom:0}.gf-notif-hit{flex:1;min-width:0;display:flex;align-items:flex-start;gap:10px;padding:10px 4px 10px 14px;border:0;background:transparent;text-align:left;font-family:inherit;font-size:inherit;line-height:inherit;color:inherit}.gf-notif-item[data-clickable=true] .gf-notif-hit{cursor:pointer}.gf-notif-item[data-clickable=true]:hover{background:var(--gf-surface-hover)}.gf-notif-item[data-clickable=true] .gf-notif-hit:focus-visible{outline:2px solid var(--gf-primary);outline-offset:-2px}.gf-notif-item.unread{background:var(--gf-surface-selected)}.gf-notif-dot{width:7px;height:7px;margin-top:5px;flex:0 0 auto;border-radius:50%;background:transparent}.gf-notif-item.unread .gf-notif-dot{background:var(--gf-primary)}.gf-notif-main{flex:1;min-width:0}.gf-notif-title{font-size:13px;font-weight:500;color:var(--gf-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gf-notif-item.unread .gf-notif-title{font-weight:650}.gf-notif-body{margin:2px 0 0;font-size:12.5px;color:var(--gf-text-secondary);display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.gf-notif-meta{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:var(--gf-micro);color:var(--gf-text-muted)}.gf-notif-link{color:var(--gf-primary);font-weight:600}.gf-notif-item>.gf-btn{flex:0 0 auto;align-self:center}.gf-notif-more{padding:8px;text-align:center}.gf-notif-error{display:flex;flex-direction:column;gap:8px;padding:12px}.gf-notif-error .gf-error-box{padding:10px 12px}.gf-notif-error .gf-btn{align-self:flex-start}.gf-notif-notice{padding:8px 14px;font-size:12.5px;background:var(--gf-warning-bg);color:var(--gf-warning-text);border-bottom:1px solid var(--gf-warning-border)}@media (max-width: 640px){.gf-notif-panel{right:8px;width:calc(100vw - 16px);max-height:min(75vh,480px)}}.gf-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 12px;font-size:13px;font-weight:500;line-height:1;border-radius:var(--gf-radius-sm);border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:background .12s ease,border-color .12s ease,color .12s ease}.gf-btn svg{width:15px;height:15px}.gf-btn-primary{background:var(--gf-primary);color:#fff}.gf-btn-primary:hover{background:var(--gf-primary-hover)}.gf-btn-default{background:var(--gf-surface);border-color:var(--gf-border);color:var(--gf-text)}.gf-btn-default:hover{background:var(--gf-surface-hover)}.gf-btn-subtle{background:transparent;color:var(--gf-text-secondary)}.gf-btn-subtle:hover{background:var(--gf-surface-hover);color:var(--gf-text)}.gf-btn-danger{background:transparent;color:var(--gf-danger);border-color:transparent}.gf-btn-danger:hover{background:var(--gf-danger-bg)}.gf-btn-sm{height:28px;padding:0 10px;font-size:12.5px}.gf-btn:disabled{opacity:.55;cursor:not-allowed}.gf-sidebar{width:var(--gf-sidebar-w);flex:0 0 var(--gf-sidebar-w);background:var(--gf-surface-sunken);border-right:1px solid var(--gf-border);display:flex;flex-direction:column;min-height:0;position:sticky;top:var(--gf-header-h);height:calc(100vh - var(--gf-header-h));overflow-y:auto;overflow-x:hidden}.gf-sidebar nav{padding:12px 8px 8px;display:flex;flex-direction:column;gap:16px}.gf-side-label{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#5e6c84;padding:0 8px;margin-bottom:4px}.gf-side-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}.gf-side-item{display:flex;align-items:center;gap:10px;width:100%;padding:0 8px;height:34px;border:0;background:transparent;border-radius:var(--gf-radius-md);color:var(--gf-text-secondary);font-size:13.5px;font-weight:400;cursor:pointer;text-align:left;text-decoration:none}.gf-side-item:hover{background:var(--gf-surface-active);color:var(--gf-text)}.gf-side-item.active{background:var(--gf-surface-selected);color:var(--gf-primary-active);font-weight:500}.gf-side-item svg{width:17px;height:17px;flex:0 0 auto;color:var(--gf-text-muted)}.gf-side-item.active svg{color:var(--gf-primary)}.gf-side-item .grow{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gf-count{font-size:11px;font-weight:600;color:#44546f;background:var(--gf-surface-active);border-radius:var(--gf-radius-full);padding:1px 7px;flex:0 0 auto}.gf-side-item.active .gf-count{background:#fff;color:var(--gf-primary-active)}.gf-soon{font-size:10.5px;font-weight:700;color:var(--gf-text-faint);border:1px solid var(--gf-border);border-radius:var(--gf-radius-full);padding:0 6px;line-height:18px;flex:0 0 auto}.gf-side-group{border-radius:var(--gf-radius-md)}.gf-side-group>.gf-side-item{font-weight:600;color:var(--gf-text)}.gf-side-children{margin:1px 0 2px 18px;padding-left:8px;border-left:1px solid var(--gf-border);display:flex;flex-direction:column;gap:1px}.gf-side-foot{margin-top:auto;border-top:1px solid var(--gf-border-subtle);padding:8px;display:flex;flex-direction:column;gap:2px}.gf-plan-card{background:var(--gf-surface);border:1px solid var(--gf-border-subtle);border-radius:var(--gf-radius-md);padding:10px;font-size:12px;color:var(--gf-text-secondary)}.gf-plan-card strong{display:block;color:var(--gf-text);font-size:12.5px;margin-bottom:2px}.gf-sidebar.collapsed{width:var(--gf-sidebar-w-collapsed);flex-basis:var(--gf-sidebar-w-collapsed)}.gf-sidebar.collapsed .grow,.gf-sidebar.collapsed .gf-count,.gf-sidebar.collapsed .gf-soon,.gf-sidebar.collapsed .gf-side-label span,.gf-sidebar.collapsed .gf-side-children,.gf-sidebar.collapsed .gf-plan-card,.gf-sidebar.collapsed .gf-side-group>.gf-side-item .chev{display:none}.gf-sidebar.collapsed .gf-side-item{justify-content:center;padding:0}.gf-sidebar.collapsed .gf-side-label{justify-content:center}.scrim{display:none}.gf-ws-header{padding:12px 24px 0;border-bottom:1px solid var(--gf-border);background:var(--gf-surface)}.gf-crumbs{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--gf-text-muted);margin-bottom:6px;flex-wrap:wrap}.gf-crumbs button{border:0;background:none;padding:0;color:inherit;cursor:pointer;font-size:inherit}.gf-crumbs button:hover{color:var(--gf-primary);text-decoration:underline}.gf-crumbs .sep{color:var(--gf-text-faint)}.gf-ws-title-row{display:flex;align-items:center;gap:12px}.gf-ws-avatar{width:32px;height:32px;border-radius:8px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:14px}.gf-ws-title{min-width:0;flex:1}.gf-ws-title h1{margin:0;font-size:var(--gf-page-title);font-weight:650;letter-spacing:-.01em;line-height:1.25}.gf-ws-sub{margin:1px 0 0;font-size:var(--gf-meta);color:var(--gf-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gf-ws-actions{display:flex;align-items:center;gap:4px;margin-left:auto;flex:0 0 auto}.gf-tabs{display:flex;align-items:center;gap:2px;margin-top:10px;overflow-x:auto;scrollbar-width:thin}.gf-tab{display:inline-flex;align-items:center;gap:7px;height:var(--gf-tabs-h);padding:0 12px;border:0;background:transparent;cursor:pointer;color:var(--gf-text-secondary);font-size:13.5px;font-weight:450;border-bottom:2px solid transparent;white-space:nowrap}.gf-tab svg{width:15px;height:15px;color:var(--gf-text-faint)}.gf-tab:hover{color:var(--gf-primary)}.gf-tab:hover svg{color:var(--gf-primary)}.gf-tab.active{color:var(--gf-primary-active);font-weight:600;border-bottom-color:var(--gf-primary)}.gf-tab.active svg{color:var(--gf-primary)}.gf-page-head{display:flex;align-items:center;gap:12px;margin:16px 0 12px}.gf-page-head h2{margin:0;font-size:16px;font-weight:650}.gf-page-head .meta{font-size:12.5px;color:var(--gf-text-muted)}.gf-page-head .spacer{flex:1}.gf-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 0 12px}.gf-toolbar .tb-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.gf-toolbar .tb-right{margin-left:auto;display:flex;align-items:center;gap:8px}.gf-selection-actions{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.gf-tb-search{display:flex;align-items:center;gap:7px;height:32px;padding:0 8px;border:1px solid var(--gf-border);border-radius:var(--gf-radius-sm);background:var(--gf-surface);min-width:200px;flex:0 1 260px;color:var(--gf-text-muted)}.gf-tb-search:focus-within{border-color:var(--gf-primary);box-shadow:0 0 0 2px var(--gf-primary-ring)}.gf-tb-search svg{width:14px;height:14px;flex:0 0 auto}.gf-tb-search input{border:0;outline:0;background:transparent;flex:1;min-width:0;font-size:13px;color:var(--gf-text)}.gf-chip-btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;border:1px solid var(--gf-border);border-radius:var(--gf-radius-sm);background:var(--gf-surface);color:var(--gf-text-secondary);font-size:13px;font-weight:450;cursor:pointer;white-space:nowrap}.gf-chip-btn:hover{background:var(--gf-surface-hover);color:var(--gf-text)}.gf-chip-btn.on{border-color:var(--gf-primary);color:var(--gf-primary-active);background:var(--gf-surface-selected)}.gf-chip-btn svg{width:14px;height:14px}.gf-chip-btn .n{min-width:18px;height:18px;padding:0 5px;border-radius:var(--gf-radius-full);background:var(--gf-primary);color:#fff;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.gf-seg{display:inline-flex;border:1px solid var(--gf-border);border-radius:var(--gf-radius-sm);overflow:hidden;background:var(--gf-surface)}.gf-seg button{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border:0;background:transparent;color:var(--gf-text-secondary);font-size:12.5px;font-weight:500;cursor:pointer;white-space:nowrap}.gf-seg button+button{border-left:1px solid var(--gf-border-subtle)}.gf-seg button:hover{background:var(--gf-surface-hover)}.gf-seg button.active{background:var(--gf-surface-selected);color:var(--gf-primary-active)}.gf-seg svg{width:14px;height:14px}.gf-filter-panel{border:1px solid var(--gf-border);border-radius:var(--gf-radius-md);background:var(--gf-surface-sunken);padding:10px 12px;margin-bottom:12px}.gf-filter-panel h4{margin:0 0 8px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--gf-text-secondary)}.gf-filter-row{display:flex;flex-wrap:wrap;gap:6px}.gf-filter-fields{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.gf-filter-field{display:flex;flex-direction:column;gap:3px;min-width:150px;font-size:11px;font-weight:600;color:var(--gf-text-secondary)}.gf-filter-field input,.gf-filter-field select{height:30px;padding:0 8px;border:1px solid var(--gf-border);border-radius:var(--gf-radius-sm);background:#fff;color:var(--gf-text);font-size:12.5px;font-weight:400;min-width:150px}.gf-filter-field input:disabled,.gf-filter-field select:disabled{background:var(--gf-surface-sunken);color:var(--gf-text-faint)}.gf-pill{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border:1px solid var(--gf-border);border-radius:var(--gf-radius-full);background:#fff;color:var(--gf-text-secondary);font-size:12.5px;cursor:pointer}.gf-pill:hover{background:var(--gf-surface-hover)}.gf-pill.on{background:var(--gf-primary);border-color:var(--gf-primary);color:#fff}.gf-table-card{border:1px solid var(--gf-border);border-radius:var(--gf-radius-md);background:#fff;overflow:hidden}.gf-table-scroll{overflow:auto;max-width:100%}table.gf-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;min-width:760px}.gf-table thead th{position:sticky;top:0;z-index:5;background:var(--gf-surface-sunken);text-align:left;font-size:11.5px;font-weight:650;letter-spacing:.02em;text-transform:uppercase;color:var(--gf-text-muted);padding:8px 12px;border-bottom:1px solid var(--gf-border);white-space:nowrap;-webkit-user-select:none;user-select:none}.gf-table thead th.sortable{cursor:pointer}.gf-table thead th.sortable:hover{color:var(--gf-text);background:var(--gf-surface-active)}.gf-table thead th .sort-ind{color:var(--gf-primary);margin-left:4px}.gf-table tbody td{padding:8px 12px;border-bottom:1px solid var(--gf-border-subtle);vertical-align:middle}.gf-table tbody tr:last-child td{border-bottom:0}.gf-table tbody tr:hover td{background:#f8faff}.gf-table tbody tr.selected td{background:var(--gf-surface-selected)}.gf-table tbody tr{cursor:pointer}.gf-check{width:15px;height:15px;accent-color:var(--gf-primary);cursor:pointer}.gf-cell-main{display:flex;align-items:center;gap:8px;min-width:0}.gf-type-icon{width:22px;height:22px;border-radius:5px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;background:var(--gf-surface-active);color:var(--gf-text-secondary)}.gf-type-icon svg{width:13px;height:13px}.gf-work-id{font-family:var(--gf-mono);font-size:11.5px;color:var(--gf-text-muted);white-space:nowrap}a.gf-work-id:hover{color:var(--gf-primary)}.gf-cell-title{font-weight:500;color:var(--gf-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:340px}.gf-cell-trunc{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px;color:var(--gf-text-secondary)}.gf-cell-muted{color:var(--gf-text-faint)}.gf-group-row td{background:var(--gf-surface-sunken)!important;font-weight:650;font-size:12.5px;color:var(--gf-text-secondary);cursor:default}.gf-group-toggle{display:inline-flex;align-items:center;justify-content:center;width:auto;min-width:18px;height:24px;margin:0 8px 6px 0;padding:0 10px;border:1px solid var(--gf-border);border-radius:var(--gf-radius-sm);background:#fff;color:var(--gf-text-secondary);font-size:12.5px;font-weight:550;cursor:pointer;white-space:nowrap}.gf-group-toggle:hover{background:var(--gf-surface-hover)}.gf-group-label{margin-right:8px}.gf-group-count{display:inline-flex;align-items:center;height:18px;padding:0 7px;border-radius:var(--gf-radius-full);background:var(--gf-surface-active);color:var(--gf-text-muted);font-size:11px;font-weight:600}.gf-usage-badge{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:20px;padding:0 7px;border-radius:var(--gf-radius-full);background:var(--gf-accent-bg);color:var(--gf-accent-text);border:1px solid var(--gf-border-subtle);font-size:11.5px;font-weight:700}.gf-badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:var(--gf-radius-xs);font-size:11.5px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;border:1px solid transparent;white-space:nowrap}.gf-badge .b-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.gf-badge-success{background:var(--gf-success-bg);color:var(--gf-success-text);border-color:var(--gf-success-border)}.gf-badge-info{background:var(--gf-info-bg);color:var(--gf-info-text);border-color:var(--gf-info-border)}.gf-badge-neutral{background:var(--gf-neutral-bg);color:var(--gf-neutral-text);border-color:var(--gf-neutral-border)}.gf-badge-warning{background:var(--gf-warning-bg);color:var(--gf-warning-text);border-color:var(--gf-warning-border)}.gf-badge-danger{background:var(--gf-danger-bg);color:var(--gf-danger-text);border-color:var(--gf-danger-border)}.gf-badge-accent{background:var(--gf-accent-bg);color:var(--gf-accent-text);border-color:#c0b6f2}.gf-avatar{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:50%;color:#fff;font-weight:700;width:24px;height:24px;font-size:10px}.gf-avatar.xs{width:20px;height:20px;font-size:9px}.gf-avatar.lg{width:32px;height:32px;font-size:12px}.gf-avatar-cell{display:inline-flex;align-items:center;gap:7px;min-width:0}.gf-avatar-cell span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px;color:var(--gf-text-secondary)}.gf-avatar-group{display:inline-flex}.gf-avatar-group .gf-avatar{margin-left:-6px;border:2px solid #fff}.gf-avatar-group .gf-avatar:first-child{margin-left:0}.gf-pagination{display:flex;align-items:center;gap:12px;justify-content:flex-end;padding:8px 12px;border-top:1px solid var(--gf-border-subtle);font-size:12.5px;color:var(--gf-text-muted);background:#fff}.gf-pagination select{height:28px;border:1px solid var(--gf-border);border-radius:var(--gf-radius-sm);font-size:12.5px;color:var(--gf-text);background:#fff;padding:0 6px}.gf-pop{position:absolute;z-index:80;min-width:200px;background:#fff;border:1px solid var(--gf-border);border-radius:var(--gf-radius-md);box-shadow:var(--gf-shadow-pop);padding:6px}.gf-pop button{display:flex;align-items:center;gap:8px;width:100%;border:0;background:none;padding:8px 10px;border-radius:var(--gf-radius-sm);font-size:13px;color:var(--gf-text);cursor:pointer;text-align:left}.gf-pop button:hover{background:var(--gf-surface-hover)}.gf-pop button.danger{color:var(--gf-danger)}.gf-pop .pop-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--gf-text-faint);padding:6px 10px 4px}.gf-modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#091e427a;z-index:100;display:flex;align-items:center;justify-content:center;padding:16px}.gf-modal{background:#fff;border-radius:var(--gf-radius-lg);box-shadow:var(--gf-shadow-modal);width:100%;max-width:440px;overflow:hidden}.gf-modal header{padding:16px 20px 0;font-size:15px;font-weight:650}.gf-modal .body{padding:8px 20px 16px;font-size:13.5px;color:var(--gf-text-secondary)}.gf-modal footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px 16px}.gf-toasts{position:fixed;right:16px;bottom:16px;z-index:120;display:flex;flex-direction:column;gap:8px;max-width:min(360px,calc(100vw - 32px))}.gf-toast{display:flex;align-items:flex-start;gap:10px;background:#fff;border:1px solid var(--gf-border);border-left:4px solid var(--gf-primary);border-radius:var(--gf-radius-md);box-shadow:var(--gf-shadow-pop);padding:10px 12px;font-size:13px;animation:gf-slide-in .18s ease}.gf-toast.success{border-left-color:#00875a}.gf-toast.error{border-left-color:var(--gf-danger)}.gf-toast.info{border-left-color:var(--gf-primary)}.gf-toast strong{display:block;font-size:13px}.gf-toast p{margin:2px 0 0;color:var(--gf-text-secondary);font-size:12.5px}@keyframes gf-slide-in{0%{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}.gf-empty{padding:48px 24px;text-align:center;color:var(--gf-text-muted)}.gf-empty .art{width:44px;height:44px;border-radius:12px;margin:0 auto 12px;background:var(--gf-surface-active);display:flex;align-items:center;justify-content:center;color:var(--gf-text-faint)}.gf-empty .art svg{width:22px;height:22px}.gf-empty h3{margin:0 0 4px;font-size:14px;color:var(--gf-text)}.gf-empty p{margin:0 0 14px;font-size:13px}.gf-error-box{border:1px solid var(--gf-danger-border);background:var(--gf-danger-bg);color:var(--gf-danger-text);border-radius:var(--gf-radius-md);padding:14px 16px;font-size:13px}.gf-skeleton-row{display:flex;gap:12px;padding:12px}.gf-skel{height:14px;border-radius:4px;background:linear-gradient(90deg,#ebecf0 25%,#f4f5f7,#ebecf0 75%);background-size:200% 100%;animation:gf-shimmer 1.1s infinite}@keyframes gf-shimmer{to{background-position:-200% 0}}.gf-form-wrap{max-width:1100px;margin:0 auto}.gf-form-panel{border:1px solid var(--gf-border);border-radius:var(--gf-radius-md);background:#fff;margin-bottom:12px;overflow:hidden}.gf-form-panel>legend,.gf-form-panel-title{font-size:13px;font-weight:650;color:var(--gf-text);padding:10px 16px;border-bottom:1px solid var(--gf-border-subtle);background:var(--gf-surface-sunken);margin:0;width:100%}.gf-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;padding:16px}.gf-form-grid .span-2{grid-column:span 2}.field-widget{display:flex;flex-direction:column;gap:5px;margin:0;min-width:0}.field-widget label{font-size:12.5px;font-weight:550;color:var(--gf-text-secondary)}.field-widget label.required:after{content:" *";color:var(--gf-danger)}.field-widget input,.field-widget select,.field-widget textarea{height:32px;padding:0 10px;font-size:13px;border:1px solid var(--gf-border-strong);border-radius:var(--gf-radius-sm);background:#fff;color:var(--gf-text);width:100%}.field-widget textarea{height:auto;min-height:84px;padding:8px 10px;resize:vertical}.field-widget input:focus,.field-widget select:focus,.field-widget textarea:focus{outline:none;border-color:var(--gf-primary);box-shadow:0 0 0 2px var(--gf-primary-ring)}.field-widget input[disabled],.field-widget select[disabled]{background:var(--gf-surface-hover);color:var(--gf-text-muted)}.field-err{font-size:12px;color:var(--gf-danger)}.field-widget.invalid input,.field-widget.invalid select,.field-widget.invalid textarea{border-color:var(--gf-danger)}.checkbox-label{flex-direction:row!important;align-items:center;gap:8px;font-weight:450!important}.checkbox-label input[type=checkbox]{width:15px;height:15px;accent-color:var(--gf-primary)}.readonly-value{font-size:13px;color:var(--gf-text);padding:6px 0}.readonly-value.multiline{white-space:pre-wrap}.field-image .gf-image-frame{display:flex;align-items:center;justify-content:center;min-height:120px;padding:8px;border:1px dashed var(--gf-border-strong);border-radius:var(--gf-radius-sm);background:var(--gf-surface-sunken)}.field-image .gf-image-thumb{max-width:100%;max-height:240px;object-fit:contain;display:block}.field-image .gf-image-thumb[hidden]{display:none}.field-image .gf-image-placeholder{font-size:12.5px;color:var(--gf-text-muted)}.field-image .gf-image-actions{display:flex;align-items:center;gap:8px}.field-image .gf-image-remove{color:var(--gf-danger-text)}.field-image.invalid .gf-image-frame{border-color:var(--gf-danger-border)}.gf-math-preview{border:1px solid var(--gf-border);border-radius:var(--gf-radius-sm);background:var(--gf-surface-sunken);padding:10px 12px;margin-top:8px}.gf-math-preview-help{font-size:11.5px;color:var(--gf-text-muted);line-height:1.4;margin-bottom:6px}.gf-math-preview-content{font-size:14px;line-height:1.5;color:var(--gf-text);min-height:1.2em;word-break:break-word;max-height:240px;overflow:auto;background:#fff;border:1px solid var(--gf-border-subtle);border-radius:var(--gf-radius-xs);padding:8px 10px}.gf-math-preview-content .katex-error{color:var(--gf-danger-text);background:var(--gf-danger-bg);padding:1px 4px;border-radius:3px;font-size:12.5px}.gf-math-preview-content .katex-display{margin:.6em 0;overflow-x:auto;overflow-y:hidden;padding-bottom:4px}.gf-math-preview-content .katex{overflow-x:auto}.gf-tabs-form{border-bottom:1px solid var(--gf-border);background:var(--gf-surface-sunken);display:flex;gap:2px;padding:0 8px}.gf-tabs-form button{border:0;background:none;padding:10px 12px;font-size:13px;font-weight:500;color:var(--gf-text-secondary);border-bottom:2px solid transparent;cursor:pointer}.gf-tabs-form button.active{color:var(--gf-primary-active);border-bottom-color:var(--gf-primary);font-weight:600}.gf-x2many{display:flex;flex-direction:column;gap:6px;min-width:0}.gf-x2many-label>label{font-size:12.5px;font-weight:550;color:var(--gf-text-secondary)}.gf-x2many-head{display:flex;align-items:center;gap:8px}.gf-x2many-head:empty{display:none}.gf-x2many-body{min-width:0}.gf-x2many-table{min-width:560px}.gf-x2many-table thead th{text-align:left;font-size:12px;color:var(--gf-text-secondary);padding:6px 8px;border-bottom:1px solid var(--gf-border-subtle)}.gf-x2many-table tbody td{padding:6px 8px;vertical-align:top}.gf-x2many-table td .field-widget>label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.gf-x2many-table .field-widget input,.gf-x2many-table .field-widget select{height:30px}.gf-x2many-table td.invalid{background:var(--gf-danger-bg)}.gf-x2many-table tfoot td{padding:6px 8px;border-top:1px solid var(--gf-border-subtle)}.gf-x2many-sum{font-weight:600;color:var(--gf-text);font-variant-numeric:tabular-nums}.gf-x2many-col-actions{width:44px;text-align:right}.gf-x2many-remove{color:var(--gf-text-muted);font-size:13px}.gf-x2many-remove:hover{color:var(--gf-danger-text)}.gf-x2many-chips{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:4px 0;margin:0}.gf-x2many-chip{background:var(--gf-neutral-bg);color:var(--gf-neutral-text);border-radius:12px;padding:2px 10px;font-size:12px}.gf-x2many-empty,.gf-x2many-empty-line{color:var(--gf-text-muted);font-size:12.5px}.gf-x2many-empty-line{padding:8px 0}.gf-x2many-unsupported,.gf-x2many-disabled-cell .gf-x2many-value{color:var(--gf-text-muted)}.gf-x2many-unsupported{border:1px dashed var(--gf-border-strong);border-radius:var(--gf-radius-sm);padding:8px 10px;font-size:12.5px;background:var(--gf-surface-sunken)}.field-handle{display:flex;align-items:center;gap:2px}.gf-handle{cursor:grab;color:var(--gf-text-muted);font-size:14px;line-height:1;padding:2px 4px;border-radius:var(--gf-radius-sm, 4px);-webkit-user-select:none;user-select:none}.gf-handle:focus-visible{outline:2px solid var(--gf-primary);outline-offset:1px}.gf-handle.gf-handle-dragging{opacity:.5;cursor:grabbing}.gf-handle-drop-target .gf-handle{background:var(--gf-primary-soft, #e6f0ff)}.gf-handle-btn{border:0;background:transparent;color:var(--gf-text-muted);cursor:pointer;font-size:9px;line-height:1;padding:2px;border-radius:3px}.gf-handle-btn:hover:not(:disabled){background:var(--gf-surface-hover, #f4f5f7);color:var(--gf-text)}.gf-handle-btn:disabled{opacity:.3;cursor:default}.gf-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.gf-login{--gf-primary-hover: color-mix(in srgb, var(--gf-primary) 86%, #000);--gf-primary-active: color-mix(in srgb, var(--gf-primary) 72%, #000);--gf-primary-subtle: color-mix(in srgb, var(--gf-primary) 8%, transparent);--gf-primary-ring: color-mix(in srgb, var(--gf-primary) 24%, transparent)}.gf-login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(1200px 500px at 50% -10%,rgba(37,99,235,.1),transparent),var(--gf-bg)}.gf-login-card{background:#fff;border:1px solid var(--gf-border);border-radius:12px;box-shadow:var(--gf-shadow-pop);width:100%;max-width:380px;padding:28px}.gf-login-brand{display:flex;align-items:center;gap:10px;margin-bottom:16px}.gf-login-brand .gf-brand-mark{width:32px;height:32px;font-size:17px}.gf-login-brand .gf-brand-logo{width:32px;height:32px;border-radius:7px;flex:0 0 auto;object-fit:contain}.gf-login-brand strong{font-size:16px}.gf-login-card h2{margin:0 0 4px;font-size:18px}.gf-login-sub{margin:0 0 18px;font-size:13px;color:var(--gf-text-muted)}.gf-login-card .field-widget{margin-bottom:12px}.gf-login-error{color:var(--gf-danger);background:var(--gf-danger-bg);border:1px solid var(--gf-danger-border);border-radius:var(--gf-radius-sm);font-size:12.5px;padding:8px 10px;margin:4px 0 12px;min-height:0}.gf-login-error:empty{display:none}.gf-login-success{color:var(--gf-success-text);background:var(--gf-success-bg);border:1px solid var(--gf-success-border);border-radius:var(--gf-radius-sm);font-size:12.5px;padding:8px 10px;margin:4px 0 12px}.gf-login-forgot{text-align:right;font-size:12.5px;margin:-4px 0 12px}.gf-login-forgot a{color:var(--gf-primary);text-decoration:none}.gf-login-forgot a:hover{text-decoration:underline}.gf-login-success+.gf-login-forgot{margin-top:0}.mock-badge{display:inline-block;background:var(--gf-warning-bg);color:var(--gf-warning-text);border:1px solid var(--gf-warning-border);font-size:11px;font-weight:700;padding:2px 8px;border-radius:var(--gf-radius-full);margin-bottom:12px}.mock-hint,.field-hint{font-size:12px;color:var(--gf-text-muted);margin:8px 0 0}.full-width{width:100%}.gf-register-prompt{font-size:12.5px;color:var(--gf-text-muted);text-align:center;margin:12px 0 0}.gf-login-card.gf-register-card{max-width:520px}.gf-register-stepper{display:flex;align-items:center;gap:8px;margin:0 0 18px}.gf-register-step{flex:1;text-align:center;font-size:12px;font-weight:600;color:var(--gf-text-muted);padding:6px 8px;border-radius:var(--gf-radius-md);background:var(--gf-surface-sunken)}.gf-register-step.active{background:var(--gf-primary-subtle);color:var(--gf-primary-active)}.gf-register-form{display:flex;flex-direction:column;gap:2px}.gf-register-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.gf-register-actions{display:flex;gap:10px;margin-top:14px}.gf-register-actions .gf-btn-primary{flex:1}.gf-slug-status{font-size:11.5px;margin-top:4px;min-height:16px}.gf-slug-status.available{color:var(--gf-success-text)}.gf-slug-status.unavailable{color:var(--gf-danger-text)}.gf-register-footer{font-size:12.5px;color:var(--gf-text-muted);text-align:center;margin:14px 0 0}.gf-register-plan-list{display:flex;flex-direction:column;gap:10px;margin:4px 0 14px}.gf-register-plan{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--gf-border);border-radius:var(--gf-radius-md);background:#fff;padding:14px;cursor:pointer}.gf-register-plan:hover:not(.disabled){border-color:var(--gf-primary);background:var(--gf-primary-subtle)}.gf-register-plan.selected{border-color:var(--gf-primary);background:var(--gf-primary-subtle);box-shadow:0 0 0 1px var(--gf-primary-ring)}.gf-register-plan.disabled{opacity:.65;cursor:not-allowed;background:var(--gf-surface-sunken)}.gf-register-plan input[type=radio]{margin-top:2px}.gf-register-plan-body{flex:1;min-width:0}.gf-register-plan-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}.gf-register-plan-header strong{font-size:14px}.gf-register-plan-price{font-size:15px;font-weight:700;color:var(--gf-text);margin-bottom:4px}.gf-register-plan-body p{margin:0 0 8px;font-size:12.5px;color:var(--gf-text-secondary)}.gf-register-plan-body ul{margin:0;padding-left:18px;font-size:12px;color:var(--gf-text-secondary)}.gf-register-plan-body li{margin-bottom:2px}@media (max-width: 768px){.gf-register-row{grid-template-columns:1fr}}.gf-exam-lobby h2,.gf-exam-intro h2{margin:0;font-size:18px}.gf-exam-cards{display:flex;flex-direction:column;gap:10px}.gf-exam-card{display:flex;align-items:center;gap:16px;border:1px solid var(--gf-border);border-radius:var(--gf-radius-md);background:#fff;padding:14px 16px}.gf-exam-card:hover{border-color:var(--gf-border-strong)}.gf-exam-card-main{flex:1;min-width:0}.gf-exam-card h3{margin:0 0 2px;font-size:14.5px;font-weight:650}.gf-exam-subject{margin:0;font-size:12.5px;color:var(--gf-text-muted)}.gf-exam-meta{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:8px;font-size:12px;color:var(--gf-text-muted)}.gf-exam-card-side{display:flex;align-items:center;gap:10px;flex:0 0 auto}.gf-exam-progress{font-size:12.5px;color:var(--gf-text-secondary);white-space:nowrap}.gf-exam-flags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.gf-exam-card-track{margin-top:10px}.gf-exam-card-action{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.gf-exam-window-note{font-size:11.5px;color:var(--gf-text-muted);text-align:right}.gf-exam-intro{max-width:640px;border:1px solid var(--gf-border);border-radius:var(--gf-radius-md);background:#fff;padding:20px}.gf-exam-intro-grid{display:grid;grid-template-columns:minmax(120px,180px) 1fr;gap:6px 16px;margin:16px 0;padding:12px 0;border-top:1px solid var(--gf-border-subtle);border-bottom:1px solid var(--gf-border-subtle);font-size:13px}.gf-exam-intro-grid dt{color:var(--gf-text-muted)}.gf-exam-intro-grid dd{margin:0;color:var(--gf-text)}.gf-exam-intro-actions{display:flex;align-items:center;gap:8px}.gf-exam-runner{width:100%;max-width:1080px;margin:0 auto}.gf-exam-runner-head{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid var(--gf-border);border-radius:var(--gf-radius-md);background:var(--gf-surface-sunken)}.gf-exam-runner-title{flex:1;min-width:0}.gf-exam-runner-title h2{margin:0;font-size:15.5px;font-weight:650}.gf-exam-timer{font-family:var(--gf-mono);font-size:17px;font-weight:700;color:var(--gf-primary-active);background:#fff;border:1px solid var(--gf-border);border-radius:var(--gf-radius-sm);padding:4px 12px;flex:0 0 auto}.gf-exam-timer.danger{color:var(--gf-danger-text);background:var(--gf-danger-bg);border-color:var(--gf-danger-border)}.gf-exam-timer.pulse{animation:gf-exam-timer-pulse 2s ease-in-out infinite}@keyframes gf-exam-timer-pulse{0%,to{opacity:1}50%{opacity:.55}}@media (prefers-reduced-motion: reduce){.gf-exam-timer.pulse{animation:none}}.gf-exam-progress-row{display:flex;align-items:center;gap:10px;margin:12px 0;font-size:12.5px;color:var(--gf-text-muted)}.gf-exam-progress-track{flex:1;height:6px;border-radius:var(--gf-radius-full);background:var(--gf-surface-active);overflow:hidden}.gf-exam-progress-fill{height:100%;background:var(--gf-primary);transition:width .2s ease}.gf-exam-columns{display:grid;grid-template-columns:1fr 220px;gap:24px;align-items:start}.gf-exam-question{border:1px solid var(--gf-border);border-radius:var(--gf-radius-md);background:#fff;padding:28px 32px;min-height:360px;display:flex;flex-direction:column}.gf-exam-question-number{font-size:12px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--gf-text-muted)}.gf-exam-question-text{margin:10px 0 18px;font-size:15px;line-height:1.5;white-space:pre-wrap}.gf-exam-question-image{margin:0 0 18px;padding:8px;min-height:140px;display:flex;align-items:center;justify-content:center;border:1px solid var(--gf-border);border-radius:var(--gf-radius-sm);background:var(--gf-surface-sunken)}.gf-exam-question-image[hidden]{display:none}.gf-exam-question-image-img{max-width:100%;max-height:320px;object-fit:contain;display:block}.gf-exam-options{display:flex;flex-direction:column;gap:8px}.gf-exam-option{display:flex;align-items:center;gap:10px;width:100%;border:1px solid var(--gf-border);border-radius:var(--gf-radius-sm);background:#fff;padding:10px 12px;font-size:13.5px;text-align:left;color:var(--gf-text);cursor:pointer}.gf-exam-option:hover:not(:disabled){border-color:var(--gf-primary);background:var(--gf-surface-selected)}.gf-exam-option:disabled{cursor:default;opacity:.85}.gf-exam-option.selected{border-color:var(--gf-primary);background:var(--gf-surface-selected);box-shadow:0 0 0 1px var(--gf-primary-ring)}.gf-exam-option-letter{width:24px;height:24px;border-radius:var(--gf-radius-full);flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;background:var(--gf-surface-active);color:var(--gf-text-secondary);font-size:12px;font-weight:700}.gf-exam-option.selected .gf-exam-option-letter{background:var(--gf-primary);color:#fff}.gf-exam-option-text{flex:1;min-width:0}.gf-exam-option-check{color:var(--gf-primary);display:inline-flex;flex:0 0 auto}.gf-exam-inline-error{margin-top:12px;font-size:12.5px;color:var(--gf-danger-text);background:var(--gf-danger-bg);border:1px solid var(--gf-danger-border);border-radius:var(--gf-radius-sm);padding:8px 10px;display:flex;align-items:center;justify-content:space-between;gap:10px}.gf-exam-answer-text-wrap{margin-top:4px}.gf-exam-answer-text{width:100%;box-sizing:border-box;min-height:180px;resize:vertical;border:1px solid var(--gf-border);border-radius:var(--gf-radius-sm);background:var(--gf-surface);color:var(--gf-text);font-family:inherit;font-size:14px;line-height:1.5;padding:10px 12px}.gf-exam-answer-text:focus{outline:0;border-color:var(--gf-primary);box-shadow:0 0 0 2px var(--gf-primary-ring)}.gf-exam-answer-text-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px;font-size:12px;color:var(--gf-text-muted)}.gf-exam-answer-count.over,.gf-exam-answer-too-long{color:var(--gf-danger-text);font-weight:600}.gf-exam-question-footer{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:18px}.gf-exam-question-footer .spacer{flex:1}.gf-exam-palette{border:1px solid var(--gf-border);border-radius:var(--gf-radius-md);background:var(--gf-surface-sunken);padding:12px}.gf-exam-palette h4{margin:0 0 10px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--gf-text-faint)}.gf-exam-palette-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.gf-exam-palette-btn{height:32px;border:1px solid var(--gf-border);border-radius:var(--gf-radius-sm);background:#fff;color:var(--gf-text-secondary);font-size:12.5px;font-weight:600;cursor:pointer}.gf-exam-palette-btn:hover:not(:disabled){border-color:var(--gf-primary);color:var(--gf-primary)}.gf-exam-palette-btn.answered{background:var(--gf-success-bg);border-color:var(--gf-success-border);color:var(--gf-success-text)}.gf-exam-palette-btn.current{outline:2px solid var(--gf-primary);outline-offset:1px;color:var(--gf-primary-active)}.gf-exam-palette-btn.pending{background:var(--gf-warning-bg);border-color:var(--gf-warning-border);color:var(--gf-warning-text)}.gf-exam-palette-btn:disabled{opacity:.7;cursor:default}.gf-exam-palette-legend{display:flex;flex-direction:column;gap:4px;margin-top:10px;font-size:11.5px;color:var(--gf-text-muted)}.gf-exam-palette-legend .swatch{display:inline-block;width:10px;height:10px;border:1px solid var(--gf-border);border-radius:3px;margin-right:6px;vertical-align:-1px}.gf-exam-palette-legend .swatch.answered{background:var(--gf-success-bg);border-color:var(--gf-success-border)}.gf-exam-palette-legend .swatch.current{outline:2px solid var(--gf-primary);outline-offset:0}.gf-exam-palette-legend .swatch.pending{background:var(--gf-warning-bg);border-color:var(--gf-warning-border)}.gf-exam-sync{color:var(--gf-warning-text);font-weight:600}.gf-exam-state{border:1px solid var(--gf-border);border-radius:var(--gf-radius-md);background:#fff;padding:24px;text-align:center;max-width:560px}.gf-exam-state h3{margin:0 0 6px;font-size:15px}.gf-exam-state p{margin:0 0 14px;color:var(--gf-text-secondary);font-size:13px}.gf-exam-submitted{border:1px solid var(--gf-border);border-radius:var(--gf-radius-md);background:#fff;padding:40px 24px;text-align:center;max-width:640px;margin:0 auto}.gf-exam-submitted .art{width:48px;height:48px;border-radius:50%;margin:0 auto 14px;background:var(--gf-success-bg);color:var(--gf-success-text);display:flex;align-items:center;justify-content:center}.gf-exam-submitted h2{margin:0 0 6px;font-size:18px}.gf-exam-submitted-status{margin:0 0 4px;color:var(--gf-text-secondary);font-size:13px}.gf-exam-submitted-counts{margin:0 0 18px;font-weight:600;color:var(--gf-text);font-size:13.5px}body.gf-distraction-mode .gf-global-header,body.gf-distraction-mode .gf-sidebar,body.gf-distraction-mode .gf-ws-header,body.gf-distraction-mode .scrim,body.gf-distraction-mode .gf-skip-link{display:none!important}body.gf-distraction-mode .gf-app,body.gf-distraction-mode .gf-shell,body.gf-distraction-mode .gf-workspace{min-height:100vh}body.gf-distraction-mode .gf-main{padding:16px;background:var(--gf-bg)}.gf-exam-palette-submit{width:100%;margin-top:12px}@media (max-width: 900px){.gf-exam-columns{grid-template-columns:1fr}.gf-exam-palette-grid{grid-template-columns:repeat(8,1fr)}}@media (max-width: 640px){.gf-exam-card{flex-direction:column;align-items:stretch}.gf-exam-card-side{justify-content:flex-start}}.loading{padding:32px;text-align:center;color:var(--gf-text-muted)}.error{background:var(--gf-danger-bg);color:var(--gf-danger-text);border:1px solid var(--gf-danger-border);padding:14px;border-radius:var(--gf-radius-md)}.gf-menu-toggle{display:none}@media (max-width: 1180px){.gf-sidebar{width:220px;flex-basis:220px}.gf-main{padding:12px 16px 32px}.gf-ws-header{padding:10px 16px 0}}@media (max-width: 900px){.gf-global-search kbd{display:none}.gf-searchbox{min-width:0}.gf-ws-sub{display:none}}@media (max-width: 1100px){body.gf-has-academic-context{--gf-header-h: 96px}body.gf-has-academic-context .gf-global-header{height:var(--gf-header-h);flex:0 0 var(--gf-header-h);flex-wrap:wrap;align-content:center;row-gap:2px}body.gf-has-academic-context .gf-academic-context{order:10;flex:1 0 100%;padding:0 12px}.gf-academic-context .gf-context-controls{flex:1 1 auto}.gf-academic-context .gf-context-field{flex:1 1 0;flex-direction:column;align-items:stretch;gap:2px}.gf-academic-context .gf-context-label-full{display:none}.gf-academic-context .gf-context-label-short{display:inline}.gf-academic-context .gf-context-label{font-size:10px}.gf-academic-context .gf-context-field select,.gf-academic-context .gf-context-field input[type=search]{max-width:none;width:100%;height:26px}.gf-context-note,.gf-context-hint{display:none}}@media (min-width: 901px){.gf-searchbox{min-width:220px}}@media (max-width: 768px){.gf-menu-toggle{display:inline-flex}body.gf-has-academic-context .gf-brand>span:not(.gf-brand-mark):not(.chev){display:none}.gf-sidebar{position:fixed;left:0;top:var(--gf-header-h);bottom:0;z-index:70;transform:translate(-100%);transition:transform .18s ease;width:min(300px,84vw);flex-basis:auto;height:calc(100vh - var(--gf-header-h));box-shadow:var(--gf-shadow-modal)}.gf-sidebar.open{transform:none}.gf-sidebar.collapsed{width:min(300px,84vw);flex-basis:auto}.gf-sidebar.collapsed .grow,.gf-sidebar.collapsed .gf-count,.gf-sidebar.collapsed .gf-soon,.gf-sidebar.collapsed .gf-side-label span,.gf-sidebar.collapsed .gf-side-children,.gf-sidebar.collapsed .gf-plan-card{display:revert}.gf-sidebar.collapsed .gf-side-item{justify-content:flex-start;padding:0 8px}.scrim.on{display:block;position:fixed;inset:var(--gf-header-h) 0 0 0;background:#091e4266;z-index:65}.gf-main{padding:12px 12px 32px}.gf-ws-header{padding:10px 12px 0}.gf-ws-actions .gf-btn span.lbl{display:none}.gf-ws-actions .gf-btn{padding:0 8px}.gf-form-grid{grid-template-columns:1fr}.gf-form-grid .span-2{grid-column:span 1}}@media (max-width: 640px){.gf-table-scroll{overflow:visible}table.gf-table{display:block;min-width:0}table.gf-table thead{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}table.gf-table tbody,table.gf-table tbody tr{display:block}table.gf-table tbody tr{border:1px solid var(--gf-border);border-radius:var(--gf-radius-md);margin:10px;padding:4px 12px;background:#fff}table.gf-table tbody tr:hover td,table.gf-table tbody tr.selected td{background:transparent}table.gf-table tbody td{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px dashed var(--gf-border-subtle);text-align:right}table.gf-table tbody td:last-child{border-bottom:0}table.gf-table tbody td[data-label]:before{content:attr(data-label);flex:0 0 auto;text-align:left;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--gf-text-faint)}table.gf-table tbody td.gf-cell-select{justify-content:flex-start}table.gf-table tbody td.gf-cell-actions{justify-content:flex-end;padding-top:10px}table.gf-table tbody td.gf-cell-group{display:block;text-align:left;padding:8px 0}.gf-table tbody tr.gf-group-row{background:var(--gf-surface-sunken)}.gf-table tbody tr.gf-group-row td{background:transparent!important}}.gf-report-wrap{display:flex;flex-direction:column;gap:16px}.gf-report-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:14px 16px;background:var(--gf-surface, #fff);border:1px solid var(--gf-border, #dfe3e8);border-radius:10px}.gf-report-field{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:var(--gf-text-muted, #5e6c84)}.gf-report-field select,.gf-report-field input{min-width:150px;padding:7px 10px;border:1px solid var(--gf-border, #dfe3e8);border-radius:6px;background:#fff;font:inherit;font-weight:400;color:var(--gf-text, #172b4d)}.gf-report-field input.gf-report-year{min-width:110px}.gf-academic-year-field{display:flex;flex-direction:column;gap:6px}.gf-academic-year-field select{min-width:150px}.gf-readonly-badge{display:inline-flex;align-items:center;padding:3px 8px;background:var(--gf-info-bg, #e3f2fd);color:var(--gf-info, #0288d1);border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase}.gf-report-hint{font-weight:400;color:var(--gf-danger, #de350b);min-height:14px}.gf-report-hint:empty{min-height:0}.gf-report-table{overflow-x:auto}.gf-report-pager{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--gf-text-muted, #5e6c84)}.gf-report-actions{display:flex;flex-wrap:wrap;gap:6px}.gf-report-table--busy{opacity:.7;pointer-events:none}.gf-btn-sm{padding:4px 10px;font-size:12px}.gf-btn-secondary{background:#fff;color:var(--gf-text);border:1px solid var(--gf-border)}.gf-btn-secondary:hover{background:var(--gf-surface-hover)}.gf-report-preview-modal{width:min(92vw,960px);height:min(84vh,720px);max-width:none;display:flex;flex-direction:column}.gf-report-preview-modal header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--gf-border)}.gf-report-preview-close{background:transparent;border:0;font-size:22px;line-height:1;color:var(--gf-text-muted);cursor:pointer}.gf-report-preview-close:hover{color:var(--gf-text)}.gf-report-preview-modal iframe{flex:1;border:0;width:100%;background:#fff}.gf-report-unavailable-modal{max-width:420px}.gf-report-unavailable .body{padding:16px 18px}.gf-report-unavailable{color:var(--gf-text-muted, #5e6c84);font-size:13px}.gf-report-unavailable p{margin:0}.gf-parent-portal{display:flex;flex-direction:column;gap:16px}.gf-parent-portal-layout{display:grid;grid-template-columns:minmax(220px,280px) 1fr;gap:16px;align-items:start}.gf-parent-children,.gf-parent-reports{padding:14px 16px;background:var(--gf-surface, #fff);border:1px solid var(--gf-border, #dfe3e8);border-radius:10px}.gf-parent-section-title{margin:0;font-size:14px;color:var(--gf-text, #172b4d)}.gf-parent-children-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.gf-parent-child{width:100%;display:flex;flex-direction:column;gap:2px;text-align:left;padding:9px 11px;border:1px solid var(--gf-border, #dfe3e8);border-radius:8px;background:#fff;cursor:pointer;font:inherit}.gf-parent-child:hover{background:var(--gf-surface-hover)}.gf-parent-child.active{border-color:var(--gf-primary);box-shadow:0 0 0 2px var(--gf-primary-ring)}.gf-parent-child-name{font-weight:600;color:var(--gf-text, #172b4d)}.gf-parent-child-meta{font-size:12px;color:var(--gf-text-muted, #5e6c84)}.gf-parent-reports-head{margin-bottom:10px}.gf-parent-reports-table{width:100%}.gf-parent-report-actions{display:flex;flex-wrap:wrap;gap:6px}@media (max-width: 900px){.gf-parent-portal-layout{grid-template-columns:1fr}}.gf-report-email-field{display:flex;flex-direction:column;gap:5px;margin:12px 0 0}.gf-report-email-field input,.gf-report-email-field textarea{padding:8px 10px;border:1px solid var(--gf-border);border-radius:6px;font:inherit;font-size:13px;color:var(--gf-text);background:#fff}.gf-report-email-field textarea{min-height:120px;resize:vertical}.gf-report-email-field input:focus,.gf-report-email-field textarea:focus{outline:none;border-color:var(--gf-primary);box-shadow:0 0 0 2px var(--gf-primary-ring)}.gf-settings-modal{max-width:560px;max-height:min(84vh,720px);display:flex;flex-direction:column}.gf-settings-modal .body{overflow-y:auto}.gf-settings-section{border:1px solid var(--gf-border-subtle);border-radius:var(--gf-radius-md);padding:12px 14px;margin:12px 0 0}.gf-settings-section legend{font-size:12px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--gf-text-muted);padding:0 4px}.gf-settings-field{display:flex;flex-direction:column;gap:5px;margin-top:10px}.gf-settings-field.checkbox-label{flex-direction:row!important;align-items:center;gap:8px;font-weight:450!important}.gf-settings-field input[type=text],.gf-settings-field input[type=number],.gf-settings-field input[type=password],.gf-settings-field input[type=email],.gf-settings-field select{padding:7px 10px;border:1px solid var(--gf-border);border-radius:6px;font:inherit;font-size:13px;color:var(--gf-text);background:#fff}.gf-settings-field input[type=checkbox]{width:15px;height:15px;accent-color:var(--gf-primary)}.gf-settings-view{display:flex;flex-direction:column;gap:16px;max-width:720px}.gf-settings-view-header h2{margin:0;font-size:20px}.gf-settings-view-header p{margin:4px 0 0;color:var(--gf-text-muted)}.gf-settings-form{background:var(--gf-surface-raised, #fff);border:1px solid var(--gf-border);border-radius:var(--gf-radius-md);padding:16px 20px 20px}.gf-settings-actions{display:flex;justify-content:flex-end;margin-top:16px}.gf-settings-help{margin:6px 0 0;font-size:12.5px;color:var(--gf-text-muted)}.gf-settings-readonly{margin-top:10px;padding:8px 10px;font-size:12.5px;color:var(--gf-warning-text, #974f0c);background:var(--gf-warning-bg, #fff7e6);border:1px solid var(--gf-warning-border, #f5c56b);border-radius:var(--gf-radius-sm)}.gf-settings-traits{display:flex;flex-direction:column;gap:8px;margin-top:10px}.gf-settings-trait-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.gf-settings-trait-row .field-err{flex-basis:100%}.gf-settings-trait-row input{padding:7px 10px;border:1px solid var(--gf-border);border-radius:6px;font:inherit;font-size:13px;color:var(--gf-text);background:#fff}.gf-settings-trait-row input:focus{outline:none;border-color:var(--gf-primary);box-shadow:0 0 0 2px var(--gf-primary-ring)}.gf-settings-trait-row input[disabled]{background:var(--gf-surface-hover);color:var(--gf-text-muted)}.gf-settings-trait-row.invalid input{border-color:var(--gf-danger)}.gf-settings-trait-name{flex:1 1 220px;min-width:0}.gf-settings-trait-max{width:96px;flex:0 0 auto}.gf-2fa-qr-wrap{margin-top:10px}.gf-2fa-qr{width:160px;height:160px;display:block;border:1px solid var(--gf-border-subtle);border-radius:var(--gf-radius-sm);background:#fff}.gf-2fa-value-row{display:flex;align-items:flex-end;gap:8px;margin-top:10px}.gf-2fa-value-row .gf-settings-field{flex:1 1 auto;min-width:0;margin-top:0}.gf-2fa-value-row input{padding:7px 10px;border:1px solid var(--gf-border);border-radius:6px;font:inherit;font-size:13px;color:var(--gf-text);background:var(--gf-surface-hover);width:100%}.gf-2fa-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.gf-2fa-codes{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;margin-top:10px}.gf-2fa-code{font-family:var(--gf-font-mono, monospace);font-size:13px;padding:6px 8px;border:1px solid var(--gf-border-subtle);border-radius:var(--gf-radius-sm);background:var(--gf-surface-hover, #f8fafc)}.gf-branding-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px;align-items:start;margin-top:10px}@media (max-width: 900px){.gf-branding-grid{grid-template-columns:1fr}}.gf-branding-block{margin-top:16px}.gf-branding-block h4{margin:0 0 4px;font-size:13.5px}.gf-branding-asset-row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;margin-top:8px}.gf-branding-thumb{width:72px;height:72px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;border:1px dashed var(--gf-border-strong);border-radius:var(--gf-radius-sm);background:var(--gf-surface-sunken);overflow:hidden}.gf-branding-thumb img{max-width:100%;max-height:100%}.gf-branding-thumb-placeholder{padding:4px;font-size:11px;color:var(--gf-text-muted);text-align:center}.gf-branding-asset-meta{flex:1 1 220px;min-width:0;display:flex;flex-direction:column;gap:6px}.gf-branding-url{padding:4px 6px;font-size:11.5px;color:var(--gf-text-muted);word-break:break-all;background:var(--gf-surface-sunken);border:1px solid var(--gf-border-subtle);border-radius:var(--gf-radius-xs)}.gf-branding-legacy{padding:6px 8px;font-size:12px;color:var(--gf-warning-text);background:var(--gf-warning-bg);border:1px solid var(--gf-warning-border);border-radius:var(--gf-radius-sm)}.gf-branding-file{font-size:12.5px}.gf-branding-status{font-size:12.5px;color:var(--gf-text-secondary)}.gf-branding-status.error{color:var(--gf-danger-text)}.gf-branding-status.success{color:var(--gf-success-text)}.gf-branding-color-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}.gf-branding-color-row input[type=color]{width:44px;height:34px;padding:2px;cursor:pointer;border:1px solid var(--gf-border);border-radius:6px;background:#fff}.gf-branding-color-row input[type=text]{width:120px;padding:7px 10px;border:1px solid var(--gf-border);border-radius:6px;font:inherit;font-size:13px;color:var(--gf-text);background:#fff}.gf-branding-color-row input[type=text]:focus{outline:none;border-color:var(--gf-primary);box-shadow:0 0 0 2px var(--gf-primary-ring)}.gf-branding-copy{display:flex;flex-direction:column;gap:4px;margin-top:12px}.gf-branding-copy-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.gf-branding-copy-head .gf-settings-field{margin-top:0}.gf-branding-copy input,.gf-branding-copy textarea{padding:7px 10px;border:1px solid var(--gf-border);border-radius:6px;font:inherit;font-size:13px;color:var(--gf-text);background:#fff}.gf-branding-copy textarea{min-height:64px;resize:vertical}.gf-branding-copy input:focus,.gf-branding-copy textarea:focus{outline:none;border-color:var(--gf-primary);box-shadow:0 0 0 2px var(--gf-primary-ring)}.gf-branding-counter{font-size:11.5px;color:var(--gf-text-muted)}.gf-branding-preview{position:sticky;top:16px}.gf-branding-preview h4{margin:0 0 8px;font-size:13.5px}.gf-branding-preview-card{display:flex;flex-direction:column;gap:8px;padding:18px 16px;background:var(--gf-surface);border:1px solid var(--gf-border);border-radius:var(--gf-radius-md);box-shadow:0 1px 2px #091e4214}.gf-branding-preview-brand{display:flex;align-items:center;gap:8px}.gf-branding-preview-logo{width:28px;height:28px;object-fit:contain;border-radius:4px}.gf-branding-preview-mark{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;background:var(--gf-primary);color:#fff;font-size:14px;font-weight:700}.gf-branding-preview-card h5{margin:2px 0 0;font-size:16px}.gf-branding-preview-sub{margin:0;font-size:12.5px;color:var(--gf-text-muted)}.gf-branding-preview-btn{display:block;margin-top:6px;padding:8px 12px;border-radius:6px;background:var(--gf-primary);color:#fff;font-size:13px;font-weight:600;text-align:center}.gf-branding-preview-note{margin:8px 0 0;font-size:11.5px;color:var(--gf-text-muted)}.gf-domain-list{display:flex;flex-direction:column;gap:10px;margin-top:12px}.gf-domain-row{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border:1px solid var(--gf-border);border-radius:var(--gf-radius-md);background:var(--gf-surface)}.gf-domain-row-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}.gf-domain-name{font-weight:600;font-size:14px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.gf-domain-meta{font-size:12.5px;color:var(--gf-text-muted)}.gf-domain-actions{display:flex;flex-wrap:wrap;gap:8px}.gf-domain-message{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 10px;font-size:12.5px;border-radius:var(--gf-radius-sm)}.gf-domain-message.info{background:var(--gf-info-bg);color:var(--gf-info-text)}.gf-domain-message.success{background:var(--gf-success-bg);color:var(--gf-success-text)}.gf-domain-message.error{background:var(--gf-danger-bg);color:var(--gf-danger-text)}.gf-domain-dns{margin-top:2px;padding-top:10px;border-top:1px dashed var(--gf-border);font-size:12.5px}.gf-domain-dns summary{cursor:pointer;font-weight:600;font-size:13px}.gf-domain-record{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}.gf-domain-record-kind{flex:0 0 46px;font-weight:600}.gf-domain-record code{padding:2px 6px;background:var(--gf-surface-sunken);border:1px solid var(--gf-border-subtle);border-radius:var(--gf-radius-xs);font-size:12px;word-break:break-all}.gf-domain-arrow{color:var(--gf-text-muted)}.gf-domain-expiry{margin:8px 0 0;color:var(--gf-text-muted)}.gf-domain-add{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:16px}.gf-domain-add .gf-settings-field{flex:1 1 260px;margin-top:0}.gf-domain-add .gf-settings-field input{padding:8px 10px;border:1px solid var(--gf-border);border-radius:6px;font:inherit;font-size:13px;color:var(--gf-text);background:#fff}.gf-domain-add .gf-settings-field input:focus{outline:none;border-color:var(--gf-primary);box-shadow:0 0 0 2px var(--gf-primary-ring)}.gf-domain-hint{flex-basis:100%;font-size:12px;color:var(--gf-warning-text)}.gf-domain-add .field-err{flex-basis:100%}.gf-domain-add-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.gf-domain-quota{font-size:12px;color:var(--gf-text-muted)}.gf-email-status-host{margin-top:10px}.gf-email-status{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.gf-email-meta{font-size:12.5px;color:var(--gf-text-muted)}.gf-email-message{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 10px;font-size:12.5px;border-radius:var(--gf-radius-sm)}.gf-email-message.error{background:var(--gf-danger-bg);color:var(--gf-danger-text)}.gf-email-form{margin-top:4px}.gf-email-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 16px;align-items:start}.gf-email-cell{min-width:0}.gf-email-grid .gf-settings-field{margin-top:10px}.gf-email-grid .gf-settings-help{margin:4px 0 6px}.gf-email-grid .field-err{margin-top:2px}.gf-email-grid .checkbox-label{grid-column:1 / -1}.gf-email-note{margin:2px 0 6px;padding:6px 8px;font-size:12px;color:var(--gf-warning-text, #974f0c);background:var(--gf-warning-bg, #fff7e6);border:1px solid var(--gf-warning-border, #f5c56b);border-radius:var(--gf-radius-sm)}.gf-email-note[hidden]{display:none}.gf-email-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px}.gf-email-test{margin-top:18px;padding-top:14px;border-top:1px dashed var(--gf-border)}.gf-email-test h4{margin:0;font-size:13.5px}.gf-email-test-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:8px}.gf-email-test-row .gf-settings-field{flex:1 1 260px;margin-top:0}.gf-email-result{margin-top:10px;padding:8px 10px;font-size:12.5px;border-radius:var(--gf-radius-sm)}.gf-email-result.success{background:var(--gf-success-bg);color:var(--gf-success-text)}.gf-email-result.info{background:var(--gf-info-bg);color:var(--gf-info-text)}.gf-email-result.error{background:var(--gf-danger-bg);color:var(--gf-danger-text)}.gf-email-result[hidden]{display:none}.gf-score-wrap{display:flex;flex-direction:column;gap:16px}.gf-score-config-warning-host:empty{display:none}.gf-config-warning{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--gf-warning-border, #f5c56b);background:var(--gf-warning-bg, #fff7e6);color:var(--gf-warning-text, #7a4f01);border-radius:var(--gf-radius-md);font-size:13px}.gf-config-warning span{flex:1 1 260px}.gf-score-meta{display:flex;flex-wrap:wrap;gap:16px;padding:10px 14px;background:var(--gf-surface-sunken);border:1px solid var(--gf-border);border-radius:var(--gf-radius-md);font-size:13px;color:var(--gf-text-secondary)}.gf-score-meta strong{color:var(--gf-text)}.gf-score-table table{min-width:720px}.gf-score-input{width:72px;padding:5px 7px;border:1px solid var(--gf-border-strong);border-radius:var(--gf-radius-sm);font-size:13px;color:var(--gf-text);background:#fff}.gf-score-input:focus{outline:none;border-color:var(--gf-primary);box-shadow:0 0 0 2px var(--gf-primary-ring)}.gf-score-input.invalid{border-color:var(--gf-danger);background:var(--gf-danger-bg)}.gf-score-cell-hint{display:block;font-size:11px;color:var(--gf-danger);min-height:14px;margin-top:2px}.gf-score-total{font-weight:700;color:var(--gf-text)}.gf-score-grade{font-weight:700;color:var(--gf-primary-active)}.gf-report-assess-modal,.gf-report-comments-modal{max-width:520px;max-height:min(84vh,720px);display:flex;flex-direction:column}.gf-report-assess-modal .body,.gf-report-comments-modal .body{overflow-y:auto}.gf-report-assess-section{border:1px solid var(--gf-border-subtle);border-radius:var(--gf-radius-md);padding:12px 14px;margin:12px 0 0}.gf-report-assess-section legend{font-size:12px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--gf-text-muted);padding:0 4px}.gf-report-assess-field{display:flex;flex-direction:column;gap:5px;margin-top:10px}.gf-report-assess-field input{width:120px;padding:6px 10px;border:1px solid var(--gf-border);border-radius:var(--gf-radius-sm);font-size:13px;color:var(--gf-text);background:#fff}.gf-report-assess-field input:focus{outline:none;border-color:var(--gf-primary);box-shadow:0 0 0 2px var(--gf-primary-ring)}.gf-report-comments-field{display:flex;flex-direction:column;gap:5px;margin:12px 0 0}.gf-report-comments-field textarea{min-height:90px;padding:8px 10px;border:1px solid var(--gf-border);border-radius:var(--gf-radius-sm);font:inherit;font-size:13px;color:var(--gf-text);background:#fff;resize:vertical}.gf-report-comments-field textarea:focus{outline:none;border-color:var(--gf-primary);box-shadow:0 0 0 2px var(--gf-primary-ring)}.gf-report-preview-meta{padding:12px 18px;border-bottom:1px solid var(--gf-border);background:var(--gf-surface-sunken);font-size:12.5px}.gf-report-preview-meta strong{display:block;font-size:13.5px;margin-bottom:6px}.gf-report-preview-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.gf-report-preview-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--gf-radius-full);font-size:11.5px;font-weight:600;background:var(--gf-neutral-bg);color:var(--gf-neutral-text)}.gf-report-preview-chip.on{background:var(--gf-success-bg);color:var(--gf-success-text)}.gf-report-preview-chip.off{opacity:.7}.gf-report-preview-layout{display:inline-block;color:var(--gf-text-muted);font-size:11.5px}.gf-status{display:inline-block;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:700;text-transform:capitalize;background:#eef1f5;color:#42526e}.gf-status--draft{background:#eef1f5;color:#42526e}.gf-status--calculated{background:#deebff;color:#0747a6}.gf-status--reviewed{background:#eae6ff;color:#403294}.gf-status--finalized{background:#e3fcef;color:#064}.gf-status--published{background:#d3f5e0;color:#064;border:1px solid #57d9a3}.gf-side-row{display:flex;align-items:center;gap:2px}.gf-side-row .gf-side-item{flex:1;min-width:0}.gf-side-star{opacity:0;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:0;border-radius:6px;background:transparent;cursor:pointer;color:var(--gf-text-muted, #5e6c84)}.gf-side-row:hover .gf-side-star,.gf-side-star:focus-visible,.gf-side-star.on{opacity:1}.gf-side-star.on{color:#f5a623}.gf-side-star:hover{background:#091e4214}.gf-sidebar.collapsed .gf-side-star{display:none}.gf-side-empty{display:flex;flex-direction:column;gap:8px;align-items:flex-start;padding:18px 14px;color:var(--gf-text-muted, #5e6c84);font-size:13px}.gf-side-empty p{margin:0}.gf-side-empty .muted{font-size:12px;opacity:.8}.gf-m2o{position:relative}.gf-m2o-input{width:100%}.gf-m2o-list{position:fixed;z-index:60;margin:0;padding:4px;list-style:none;max-height:260px;overflow-y:auto;background:#fff;border:1px solid var(--gf-border, #dfe3e8);border-radius:var(--gf-radius-md, 6px);box-shadow:var(--gf-shadow-modal, 0 8px 28px rgba(9, 30, 66, .24))}.gf-m2o-list[hidden]{display:none}.gf-m2o-option{padding:7px 10px;border-radius:var(--gf-radius-sm, 4px);font-size:13.5px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gf-m2o-option:hover,.gf-m2o-option.active{background:var(--gf-surface-hover, #f4f5f7)}.gf-m2o-option[aria-selected=true]{font-weight:600}.gf-m2o-option.gf-m2o-clear{color:var(--gf-text-muted, #5e6c84)}.gf-m2o-option.gf-m2o-unavailable{color:var(--gf-warning-text, #974f0c)}.gf-m2o-empty{padding:7px 10px;font-size:13px;color:var(--gf-text-muted, #5e6c84)}.field-many2many-tags{position:relative}.gf-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:34px;padding:4px 6px;border:1px solid var(--gf-border, #dfe3e8);border-radius:var(--gf-radius-sm, 4px);background:var(--gf-surface, #fff)}.gf-tag{display:inline-flex;align-items:center;gap:4px;background:var(--gf-neutral-bg);color:var(--gf-neutral-text);border-radius:12px;padding:2px 6px 2px 10px;font-size:12px;max-width:100%}.gf-tag-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gf-tag.gf-tag-unavailable{background:var(--gf-warning-bg, #fff4e5);color:var(--gf-warning-text, #974f0c)}.gf-tag-remove{border:0;background:transparent;cursor:pointer;color:inherit;font-size:13px;line-height:1;padding:0 2px;border-radius:50%}.gf-tag-remove:hover{background:#091e4214}.gf-tags-input{flex:1 1 120px;min-width:120px;border:0;outline:none;background:transparent;font-size:13.5px;height:26px}.gf-tags-empty{color:var(--gf-text-muted, #5e6c84);font-size:12.5px;padding:0 2px}.gf-tags-list{position:absolute;z-index:60;margin:4px 0 0;padding:4px;list-style:none;max-height:260px;overflow-y:auto;min-width:220px;background:#fff;border:1px solid var(--gf-border, #dfe3e8);border-radius:var(--gf-radius-md, 6px);box-shadow:var(--gf-shadow-modal, 0 8px 28px rgba(9, 30, 66, .24))}.gf-tags-list[hidden]{display:none}.gf-tags-option{padding:7px 10px;border-radius:var(--gf-radius-sm, 4px);font-size:13.5px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gf-tags-option:hover,.gf-tags-option.active{background:var(--gf-surface-hover, #f4f5f7)}.gf-tags-empty-option{padding:7px 10px;font-size:13px;color:var(--gf-text-muted, #5e6c84)}.gf-permission-matrix-wrap{max-height:380px;overflow:auto;border:1px solid var(--gf-border-subtle);border-radius:var(--gf-radius-sm, 4px)}.gf-permission-matrix{width:100%;border-collapse:collapse;font-size:13px}.gf-permission-matrix thead th{text-align:left;font-size:12px;color:var(--gf-text-secondary);padding:6px 10px;border-bottom:1px solid var(--gf-border-subtle);position:sticky;top:0;background:var(--gf-surface, #fff);z-index:1}.gf-permission-matrix thead th:last-child{width:84px;text-align:center}.gf-permission-matrix tbody th{text-align:left;font-weight:400;padding:5px 10px}.gf-permission-matrix tbody td{padding:5px 10px;text-align:center}.gf-permission-matrix tr.gf-permission-matrix-domain th{font-weight:600;font-size:12px;color:var(--gf-text-secondary);background:var(--gf-surface-sunken);border-top:1px solid var(--gf-border-subtle);padding:6px 10px}.gf-permission-matrix tr.gf-permission-matrix-desc td{font-size:12px;color:var(--gf-text-muted);padding:2px 10px 6px}.gf-permission-matrix input[type=checkbox]{width:15px;height:15px;cursor:pointer}.gf-permission-matrix input[type=checkbox]:disabled{cursor:not-allowed}.gf-permission-matrix tr.gf-permission-matrix-unknown-row th{color:var(--gf-warning-text, #974f0c)}.gf-permission-matrix-unknown-note{margin-top:6px;font-size:12px;color:var(--gf-warning-text, #974f0c)}.gf-permission-matrix-note{margin-top:6px;font-size:12.5px;color:var(--gf-text-muted, #5e6c84)}.gf-dirty-label{margin-right:4px;font-size:12px;opacity:0;color:var(--gf-text-muted, #5e6c84)}.gf-dirty-dot{width:8px;height:8px;border-radius:50%;background:#f5a623;opacity:0}.gf-dirty-dot.on,.gf-dirty-label.on{opacity:1}.gf-toast{position:relative;padding-right:34px}.gf-toast-close{position:absolute;top:6px;right:8px;border:0;background:transparent;color:inherit;font-size:16px;line-height:1;cursor:pointer;opacity:.7}.gf-toast-close:hover{opacity:1}.gf-toast-action{margin-top:6px;border:0;background:#fff3;color:inherit;font-weight:700;padding:3px 10px;border-radius:5px;cursor:pointer}.gf-toast-action:hover{background:#ffffff59}.gf-login-card,.gf-login-card .field-widget{position:relative}.gf-pw-toggle{position:absolute;right:10px;top:29px;border:0;background:transparent;color:var(--gf-primary, #0052cc);font-size:12px;font-weight:700;cursor:pointer}@media print{.gf-sidebar,.gf-header,.gf-ws-header,.gf-toasts,.gf-toolbar,.gf-pagination{display:none!important}.gf-main,.gf-workspace,body{padding:0!important;margin:0!important;background:#fff!important}a[href]:after{content:""}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.gf-skip-link{position:absolute;left:-9999px;top:0;z-index:100;padding:8px 14px;background:#172b4d;color:#fff;border-radius:0 0 6px;font-weight:600;text-decoration:none}.gf-skip-link:focus{left:0;outline:2px solid #4c9aff}#gf-main:focus{outline:none}.gf-gradebook-wrap{display:flex;flex-direction:column;gap:16px}.gf-gradebook-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 14px;background:var(--gf-surface-sunken);border:1px solid var(--gf-border);border-radius:var(--gf-radius-md)}.gf-gradebook-toolbar .gf-btn{min-width:90px}.gf-gradebook-toolbar .gf-btn[hidden]{display:none}.gf-gradebook-status{display:flex;flex-wrap:wrap;gap:16px;font-size:13px;color:var(--gf-text-secondary)}.gf-gradebook-status strong{color:var(--gf-text)}.gf-gradebook-legend{display:inline-flex;align-items:center;gap:6px;margin-left:auto;font-size:12px;color:var(--gf-text-muted)}.gf-gradebook-missing-dot{width:8px;height:8px;border-radius:50%;background:var(--gf-warning-text)}.gf-gradebook-table{overflow-x:auto}.gf-gradebook-table--busy{opacity:.7;pointer-events:none}.gf-gradebook-grid table{min-width:900px}.gf-gradebook-grid th{white-space:nowrap}.gf-gradebook-cell{min-width:120px}.gf-gradebook-cell-wrap{display:flex;align-items:flex-start;gap:6px}.gf-gradebook-input{width:64px;padding:5px 7px;border:1px solid var(--gf-border-strong);border-radius:var(--gf-radius-sm);font-size:13px;color:var(--gf-text);background:#fff}.gf-gradebook-input:focus{outline:none;border-color:var(--gf-primary);box-shadow:0 0 0 2px var(--gf-primary-ring)}.gf-gradebook-input.invalid{border-color:var(--gf-danger);background:var(--gf-danger-bg)}.gf-gradebook-input:disabled{background:var(--gf-surface-hover);color:var(--gf-text-muted)}.gf-gradebook-status-select{width:90px;padding:5px 6px;border:1px solid var(--gf-border-strong);border-radius:var(--gf-radius-sm);font-size:12px;color:var(--gf-text);background:#fff}.gf-gradebook-status-select:focus{outline:none;border-color:var(--gf-primary);box-shadow:0 0 0 2px var(--gf-primary-ring)}.gf-gradebook-status-select:disabled{background:var(--gf-surface-hover);color:var(--gf-text-muted)}.gf-gradebook-missing{background:var(--gf-warning-bg)}.gf-gradebook-total{font-weight:700;color:var(--gf-text);white-space:nowrap}.gf-gradebook-grade{font-weight:700;color:var(--gf-primary-active);white-space:nowrap}.gf-status--active{background:#deebff;color:#0747a6}.gf-status--archived{background:var(--gf-neutral-bg);color:var(--gf-neutral-text)}.gf-status--submitted{background:#deebff;color:#0747a6}.gf-status--under_review{background:#eae6ff;color:#403294}.gf-status--approved{background:#e3fcef;color:#064}.gf-status--locked{background:#172b4d;color:#fff}.gf-gradebook-status-line{display:inline-flex;align-items:center;gap:6px}.gf-gradebook-workflow-actions{display:inline-flex;flex-wrap:wrap;gap:6px}.gf-gradebook-workflow-actions .gf-btn{min-width:0}.gf-gradebook-readonly-host:empty{display:none}.gf-gradebook-readonly{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 14px;font-size:13px;background:var(--gf-warning-bg);color:var(--gf-warning-text);border:1px solid #ffe380;border-radius:var(--gf-radius-md)}.gf-gradebook-readonly .gf-btn{margin-left:auto}.gf-gradebook-sync-host:empty{display:none}.gf-gradebook-sync-guidance{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;padding:10px 14px;font-size:13px;background:var(--gf-accent-bg, #eef4ff);color:var(--gf-text);border:1px solid var(--gf-border-strong);border-radius:var(--gf-radius-md)}.gf-gradebook-sync-guidance>strong{white-space:nowrap}.gf-gradebook-sync-pointers{display:inline-flex;flex-wrap:wrap;gap:4px;align-items:baseline}.gf-gradebook-sync-count{color:var(--gf-text-muted);font-size:12.5px}.gf-link-button{border:0;padding:0;background:none;cursor:pointer;color:var(--gf-primary-active);font:inherit;font-weight:600;text-decoration:underline}.gf-link-button:focus-visible{outline:2px solid var(--gf-primary);outline-offset:2px;border-radius:2px}.gf-gradebook-reopen-modal{max-width:520px}.gf-gradebook-reopen-message{margin:0 0 12px}.gf-gradebook-reopen-field,.gf-gradebook-correction-field{display:flex;flex-direction:column;gap:5px;margin:10px 0 0;font-size:13px;font-weight:600}.gf-gradebook-reopen-field textarea,.gf-gradebook-correction-field input,.gf-gradebook-correction-field select,.gf-gradebook-correction-field textarea{padding:7px 9px;border:1px solid var(--gf-border-strong);border-radius:var(--gf-radius-sm);font-size:13px;font-family:inherit;color:var(--gf-text);background:#fff}.gf-gradebook-reopen-field textarea{resize:vertical}.gf-gradebook-reopen-field textarea:focus,.gf-gradebook-correction-field input:focus,.gf-gradebook-correction-field select:focus,.gf-gradebook-correction-field textarea:focus{outline:none;border-color:var(--gf-primary);box-shadow:0 0 0 2px var(--gf-primary-ring)}.gf-gradebook-reopen-field textarea.invalid{border-color:var(--gf-danger);background:var(--gf-danger-bg)}.gf-gradebook-reopen-hint,.gf-gradebook-correction-hint{display:block;min-height:16px;color:var(--gf-danger);font-size:12px}.gf-gradebook-correction-modal{max-width:520px}.gf-gradebook-correction-current{margin-top:12px;font-size:13px;color:var(--gf-text-secondary)}.gf-gradebook-correction-current strong{color:var(--gf-text)}.gf-gradebook-history-modal{width:min(92vw,980px);max-width:none;height:min(84vh,680px);display:flex;flex-direction:column}.gf-gradebook-history-modal header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--gf-border)}.gf-gradebook-history-close{background:transparent;border:0;font-size:22px;line-height:1;color:var(--gf-text-muted);cursor:pointer}.gf-gradebook-history-close:hover{color:var(--gf-text)}.gf-history-tabs{display:flex;gap:4px;padding:8px 14px 0;border-bottom:1px solid var(--gf-border)}.gf-history-tab{padding:8px 14px;border:0;background:transparent;cursor:pointer;font-size:13px;font-weight:600;color:var(--gf-text-secondary);border-bottom:2px solid transparent}.gf-history-tab:hover{color:var(--gf-text)}.gf-history-tab.active{color:var(--gf-primary-active);border-bottom-color:var(--gf-primary)}.gf-history-body{flex:1;overflow:auto;padding:14px 18px}.gf-history-table{min-width:720px;font-size:12.5px}.gf-history-actions{display:flex;gap:6px}.gf-correction-status--pending{background:#fffae6;color:#974f0c}.gf-correction-status--approved{background:#e3fcef;color:#064}.gf-correction-status--rejected{background:#ffebe6;color:#bf2600}.gf-gradebook-import-modal{width:min(94vw,1000px);max-width:none;max-height:88vh;display:flex;flex-direction:column}.gf-gradebook-import-modal .body{flex:1;overflow:auto}.gf-import-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}.gf-import-field{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600}.gf-import-field input{font-size:13px}.gf-import-status{margin-top:10px;font-size:13px;color:var(--gf-text-secondary)}.gf-import-status.error{color:var(--gf-danger)}.gf-import-errors{margin:10px 0 0;padding-left:18px;color:var(--gf-danger);font-size:12.5px}.gf-import-preview{margin-top:12px}.gf-import-summary{margin:0 0 8px;font-size:13px;font-weight:600;color:var(--gf-text)}.gf-import-table-scroll{overflow:auto;max-height:46vh}.gf-import-table{min-width:720px;font-size:12.5px}.gf-import-table tr.invalid{background:var(--gf-danger-bg)}.gf-import-row-error{color:var(--gf-danger)}.gf-ranking-wrap,.gf-invitations-wrap,.gf-billing-wrap{display:flex;flex-direction:column;gap:16px}.gf-invitations-header{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.gf-invitations-header h2{margin:0}.gf-invitations-header p{margin:0;color:var(--gf-text-muted);font-size:13px}.gf-ranking-grid input[type=number]{width:80px;padding:5px 7px;border:1px solid var(--gf-border-strong);border-radius:var(--gf-radius-sm);font-size:13px;color:var(--gf-text);background:#fff}.gf-ranking-table--busy,.gf-invitations-table--busy{opacity:.7;pointer-events:none}.gf-invitations-form{padding:16px;background:var(--gf-surface-sunken);border:1px solid var(--gf-border);border-radius:var(--gf-radius-md);display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.gf-invitations-link{padding:12px 14px;background:var(--gf-warning-bg);border:1px solid var(--gf-warning-border);border-radius:var(--gf-radius-md)}.gf-invitations-link p{margin:0 0 8px;font-size:12.5px;color:var(--gf-warning-text)}.gf-invitations-link-row{display:flex;gap:10px}.gf-invitations-link-row input{flex:1;min-width:0;padding:6px 8px;font-size:12.5px;border:1px solid var(--gf-border-strong);border-radius:var(--gf-radius-sm);background:#fff;color:var(--gf-text)}.gf-invitations-actions{grid-column:1 / -1;display:flex;gap:10px;justify-content:flex-end}.gf-invitations-actions .gf-btn-danger{background:var(--gf-danger);color:#fff}.gf-billing-card{padding:18px;background:var(--gf-surface-sunken);border:1px solid var(--gf-border);border-radius:var(--gf-radius-md)}.gf-billing-card h3{margin:0 0 10px}.gf-billing-card>p{margin:0 0 8px;font-size:13px;color:var(--gf-text-secondary)}.gf-billing-details{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:12px 0 0;font-size:13px}.gf-billing-details dt{color:var(--gf-text-muted)}.gf-billing-details dd{margin:0;overflow-wrap:anywhere}.gf-billing-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.gf-billing-actions .gf-btn{text-decoration:none;display:inline-flex;align-items:center}.gf-billing-error{color:var(--gf-danger-text)}.gf-audit-wrap{display:flex;flex-direction:column;gap:16px}.gf-audit-header{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.gf-audit-header h2{margin:0}.gf-audit-header p{margin:0;color:var(--gf-text-muted);font-size:13px}.gf-audit-table--busy{opacity:.7;pointer-events:none}.gf-audit-category--auth{background:#deebff;color:#0747a6}.gf-audit-category--exam{background:#eae6ff;color:#403294}.gf-audit-category--report-card{background:#e3fcef;color:#064}.gf-audit-category--subscription{background:#fffae6;color:#974f0c}.gf-audit-category--grading{background:#ffeceb;color:#bf2600}.gf-audit-category--rbac{background:#e6f5fb;color:#0b4f6c}.gf-audit-category--other{background:var(--gf-neutral-bg);color:var(--gf-neutral-text)}.gf-audit-mono{display:inline-block;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;color:var(--gf-text-secondary)}.gf-audit-pager{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.gf-audit-pager[hidden]{display:none}.gf-audit-page-label{font-size:13px;color:var(--gf-text-muted)}.gf-audit-total{font-size:12.5px;color:var(--gf-text-muted);margin-left:auto}.gf-audit-detail-modal{width:min(94vw,680px)}.gf-audit-detail{display:grid;grid-template-columns:150px minmax(0,1fr);gap:8px 14px;margin:0;font-size:13px}.gf-audit-detail dt{color:var(--gf-text-muted)}.gf-audit-detail dd{margin:0;overflow-wrap:anywhere}.gf-audit-detail .gf-audit-mono{max-width:100%}.gf-audit-detail-heading{margin:16px 0 0;font-size:13px}.gf-audit-detail-json{margin:8px 0 0;padding:10px 12px;max-height:280px;overflow:auto;background:var(--gf-surface-sunken);border:1px solid var(--gf-border);border-radius:var(--gf-radius-sm);font-size:12px;white-space:pre-wrap}.gf-audit-detail-status{margin:0;color:var(--gf-text-muted);font-size:13px}.gf-exams-wrap{display:flex;flex-direction:column;gap:16px}.gf-exams-header{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.gf-exams-header h2{margin:0}.gf-exams-header p{margin:0;color:var(--gf-text-muted);font-size:13px}.gf-exams-actions{display:flex;gap:6px;flex-wrap:wrap}.gf-exams-table--busy{opacity:.7;pointer-events:none}.gf-status--scheduled{background:#deebff;color:#0747a6}.gf-status--completed{background:#e3fcef;color:#064}.gf-exams-pager{display:flex;align-items:center;gap:10px;margin-top:12px}.gf-exams-count{margin:8px 0 0;font-size:12.5px;color:var(--gf-text-muted)}.gf-exams-pager-label{font-size:13px;color:var(--gf-text-muted)}.gf-exams-form{padding:16px;background:var(--gf-surface-sunken);border:1px solid var(--gf-border);border-radius:var(--gf-radius-md);display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.gf-exams-form h3{grid-column:1 / -1;margin:0}.gf-exams-form .gf-setup-error,.gf-exams-form .gf-report-hint{grid-column:1 / -1}.gf-exams-form-actions{grid-column:1 / -1;display:flex;gap:10px;justify-content:flex-end}.gf-exams-questions{grid-column:1 / -1}.gf-exams-questions-label{font-weight:600;font-size:13px;margin-bottom:6px}.gf-exams-question-list{display:grid;gap:6px;max-height:220px;overflow:auto;padding:8px 10px;background:var(--gf-surface);border:1px solid var(--gf-border);border-radius:var(--gf-radius-sm)}.gf-exams-question-item{display:flex;gap:8px;align-items:flex-start;font-size:13px}.gf-exams-monitor-modal{width:min(92vw,880px);max-width:none;max-height:min(84vh,720px);display:flex;flex-direction:column}.gf-exams-monitor-modal>header{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--gf-border)}.gf-exams-monitor-modal>header>span{flex:1;font-weight:650}.gf-exams-monitor-body{padding:16px 18px;overflow:auto}.gf-exams-monitor-grid{min-width:680px}.gf-marking-wrap{display:flex;flex-direction:column;gap:16px}.gf-marking-header{display:flex;flex-direction:column;gap:4px}.gf-marking-header h2{margin:0}.gf-marking-header p{margin:0;color:var(--gf-text-muted);font-size:13px}.gf-marking-count{margin:8px 0 0;font-size:12.5px;color:var(--gf-text-muted)}.gf-marking-pager{display:flex;align-items:center;gap:10px;margin-top:12px}.gf-marking-pager-label{font-size:13px;color:var(--gf-text-muted)}.gf-marking-grid{min-width:720px}.gf-status--pending_marking{background:var(--gf-warning-bg);color:var(--gf-warning-text)}.gf-status--partially_marked{background:#deebff;color:#0747a6}.gf-status--fully_marked{background:#e3fcef;color:#064}.gf-marking-blind-label{color:var(--gf-text-muted);font-style:italic}.gf-marking-detail{display:flex;flex-direction:column;gap:14px;align-items:flex-start}.gf-marking-detail>*{max-width:100%}.gf-marking-detail-header{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.gf-marking-detail-header h2{margin:0;font-size:18px}.gf-marking-meta{width:100%;margin:0;color:var(--gf-text-muted);font-size:12.5px}.gf-marking-student{width:100%;margin:0;font-size:13px;font-weight:600}.gf-marking-blind-notice{width:100%;padding:10px 12px;font-size:13px;background:var(--gf-warning-bg);color:var(--gf-warning-text);border:1px solid var(--gf-warning-border);border-radius:var(--gf-radius-md)}.gf-marking-subtotals{width:100%;display:flex;flex-wrap:wrap;gap:6px 20px;padding:10px 12px;font-size:13px;background:var(--gf-surface-sunken);border:1px solid var(--gf-border);border-radius:var(--gf-radius-md)}.gf-marking-total{font-weight:700}.gf-marking-answers{width:100%;display:flex;flex-direction:column;gap:14px}.gf-marking-answer{display:flex;flex-direction:column;gap:10px;padding:14px 16px;background:var(--gf-surface);border:1px solid var(--gf-border);border-radius:var(--gf-radius-md)}.gf-marking-answer>header{display:flex;align-items:center;gap:8px}.gf-marking-answer h4{margin:0;font-size:14px}.gf-marking-type{font-size:12px;color:var(--gf-text-muted)}.gf-marking-max{margin-left:auto;font-size:12px;color:var(--gf-text-muted)}.gf-marking-question{margin:0;font-weight:600;white-space:pre-wrap;overflow-wrap:anywhere}.gf-marking-answer-text{max-height:320px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;padding:12px;font-size:13px;line-height:1.55;background:var(--gf-surface-sunken);border:1px solid var(--gf-border-subtle);border-radius:var(--gf-radius-sm)}.gf-marking-answer-empty{color:var(--gf-text-muted);font-style:italic;font-size:13px}.gf-marking-marked{font-size:12.5px;color:var(--gf-success-text)}.gf-marking-marked p{margin:0}.gf-marking-marked-feedback{color:var(--gf-text-secondary)}.gf-marking-mark-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.gf-marking-mark-input{width:84px;padding:6px 8px;font-size:13px;border:1px solid var(--gf-border-strong);border-radius:var(--gf-radius-sm)}.gf-marking-mark-input:focus,.gf-marking-feedback:focus{outline:none;border-color:var(--gf-primary);box-shadow:0 0 0 2px var(--gf-primary-ring)}.gf-marking-mark-max{font-size:12px;color:var(--gf-text-muted)}.gf-marking-feedback{flex:1 1 240px;min-height:38px;padding:7px 9px;font:inherit;font-size:13px;border:1px solid var(--gf-border-strong);border-radius:var(--gf-radius-sm)}.gf-marking-mark-controls .gf-setup-error{flex-basis:100%;margin-top:0}.gf-marking-choice{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:13px}.gf-marking-choice p{margin:0}.gf-marking-choice-score{color:var(--gf-text-muted)}.gf-marking-remark{width:100%;display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;border:1px dashed var(--gf-border-strong);border-radius:var(--gf-radius-md)}.gf-marking-remark-label{width:100%;display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:600;color:var(--gf-text-secondary)}.gf-marking-remark textarea{width:100%;padding:7px 9px;font:inherit;font-size:13px;border:1px solid var(--gf-border-strong);border-radius:var(--gf-radius-sm)}.gf-marking-remark .gf-setup-error{width:100%;margin:0}.gf-marking-remark-actions{display:flex;gap:8px;margin-left:auto}.gf-marking-audit{width:100%;padding-top:12px;border-top:1px solid var(--gf-border-subtle)}.gf-marking-audit h3{margin:0 0 8px;font-size:14px}.gf-marking-audit-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--gf-text-secondary)}.gf-exams-detail-modal{width:min(92vw,960px);max-width:none;max-height:min(88vh,780px);display:flex;flex-direction:column}.gf-exams-detail-modal>header{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--gf-border)}.gf-exams-detail-modal>header>span{flex:1;font-weight:650}.gf-exams-detail-body{padding:16px 18px;overflow:auto;display:grid;gap:18px}.gf-exams-detail-meta dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px 18px;margin:0}.gf-exams-detail-meta dt{font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--gf-text-muted)}.gf-exams-detail-meta dd{margin:2px 0 0;font-size:13.5px}.gf-exams-detail-marking h3{margin:0 0 8px}.gf-exams-detail-summary{margin:0 0 10px;font-size:13px;color:var(--gf-text-secondary)}.gf-exams-detail-empty{margin:0;font-size:13px;color:var(--gf-text-muted)}.gf-exams-detail-hint{margin:8px 0 0;font-size:12.5px;color:var(--gf-text-muted)}.gf-exams-detail-reg{color:var(--gf-text-muted);font-size:12.5px}.gf-exams-detail-grid{min-width:720px}.gf-exams-detail-grid tbody tr{cursor:pointer}.gf-exams-detail-grid tbody tr:focus-visible{outline:2px solid var(--gf-primary);outline-offset:-2px}.gf-exams-detail-grid tbody tr.selected{background:var(--gf-accent-bg, #eef4ff)}.gf-exams-detail-breakdown-host{margin-top:16px}.gf-exams-detail-breakdown-host h4{margin:0 0 8px}.gf-exams-detail-breakdown-host .gf-marking-subtotals{margin-bottom:12px}.gf-settings-tabs{display:flex;gap:4px;border-bottom:1px solid var(--gf-border)}.gf-settings-tab{padding:8px 14px;border:0;background:transparent;cursor:pointer;font-size:13px;font-weight:600;color:var(--gf-text-secondary);border-bottom:2px solid transparent}.gf-settings-tab:hover{color:var(--gf-text)}.gf-settings-tab.active{color:var(--gf-primary-active);border-bottom-color:var(--gf-primary)}.gf-settings-view--wide{max-width:1100px}.gf-setup{display:flex;flex-direction:column;gap:16px}.gf-setup-card{border:1px solid var(--gf-border);border-radius:var(--gf-radius-md);background:var(--gf-surface)}.gf-setup-card-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px;padding:12px 16px;border-bottom:1px solid var(--gf-border-subtle)}.gf-setup-card-header h3{margin:0;font-size:15px}.gf-setup-card-header p{margin:2px 0 0;color:var(--gf-text-muted);font-size:12.5px}.gf-setup-card-body{padding:12px 16px 16px}.gf-setup-table{min-width:700px}.gf-setup-table .gf-cell-actions{white-space:nowrap}.gf-setup-table .gf-cell-actions .gf-btn+.gf-btn{margin-left:6px}.gf-setup-empty{text-align:center;color:var(--gf-text-muted);padding:18px 0}.gf-setup-dialog{max-width:680px;max-height:min(88vh,760px);display:flex;flex-direction:column}.gf-setup-dialog .body{overflow-y:auto}.gf-setup-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 14px}.gf-setup-field{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:600;color:var(--gf-text-secondary)}.gf-setup-field input,.gf-setup-field select{padding:7px 9px;border:1px solid var(--gf-border-strong);border-radius:var(--gf-radius-sm);font:inherit;font-size:13px;font-weight:400;color:var(--gf-text);background:#fff}.gf-setup-field input:focus,.gf-setup-field select:focus{outline:none;border-color:var(--gf-primary);box-shadow:0 0 0 2px var(--gf-primary-ring)}.gf-setup-field.checkbox-label{flex-direction:row;align-items:center;gap:8px;font-weight:450}.gf-setup-field input[type=checkbox]{width:15px;height:15px;accent-color:var(--gf-primary)}.gf-setup-subheading{margin:16px 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--gf-text-muted)}.gf-setup-rows{display:flex;flex-direction:column;gap:8px}.gf-setup-row{display:flex;align-items:center;gap:8px}.gf-setup-row select{flex:1 1 auto;min-width:0;padding:6px 8px;border:1px solid var(--gf-border-strong);border-radius:var(--gf-radius-sm);font-size:13px;background:#fff}.gf-setup-row input[type=number]{width:90px;padding:6px 8px;border:1px solid var(--gf-border-strong);border-radius:var(--gf-radius-sm);font-size:13px}.gf-setup-row input.gf-setup-order-input{width:70px}.gf-setup-band-row{display:grid;grid-template-columns:70px repeat(3,90px) 1fr auto;gap:8px;align-items:center}.gf-setup-band-row input{min-width:0;padding:6px 8px;border:1px solid var(--gf-border-strong);border-radius:var(--gf-radius-sm);font-size:13px}.gf-setup-band-row input:focus,.gf-setup-row select:focus,.gf-setup-row input[type=number]:focus{outline:none;border-color:var(--gf-primary);box-shadow:0 0 0 2px var(--gf-primary-ring)}.gf-setup-weight-total{margin-top:10px;font-size:13px;font-weight:700;color:var(--gf-success-text)}.gf-setup-weight-total.invalid{color:var(--gf-danger)}.gf-setup-error{display:block;min-height:16px;margin-top:10px;color:var(--gf-danger);font-size:12.5px;font-weight:400}.gf-setup-assignments{display:flex;flex-direction:column;gap:16px}@media (max-width: 640px){.gf-setup-band-row{grid-template-columns:1fr 1fr}.gf-setup-row{flex-wrap:wrap}.gf-setup-row select{flex-basis:100%}.gf-setup-dialog .body{padding:12px}}.gf-rbac-wrap{display:flex;flex-direction:column;gap:14px}.gf-rbac-header h2{margin:0 0 4px;font-size:18px;color:var(--gf-text)}.gf-rbac-header p{margin:0;font-size:13px;color:var(--gf-text-muted)}.gf-rbac-header .gf-status{display:inline-block;margin-top:8px}.gf-rbac-back{align-self:flex-start}.gf-rbac-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;padding:12px;background:var(--gf-surface);border:1px solid var(--gf-border);border-radius:var(--gf-radius-sm)}.gf-rbac-search{flex:1 1 220px}.gf-rbac-invite{margin-left:auto}.gf-rbac-table{display:flex;flex-direction:column;gap:10px}.gf-rbac-pager{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--gf-text-muted)}.gf-rbac-perm-cell{max-width:320px}.gf-rbac-perm-cell strong{display:block;font-size:12.5px;color:var(--gf-text)}.gf-rbac-perm-preview{display:block;margin-top:2px;font-size:12px;color:var(--gf-text-muted)}.gf-rbac-card{padding:16px;background:var(--gf-surface);border:1px solid var(--gf-border);border-radius:var(--gf-radius-sm);display:flex;flex-direction:column;gap:10px}.gf-rbac-card h3{margin:0;font-size:14px;color:var(--gf-text)}.gf-rbac-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.gf-rbac-note{margin:0;font-size:12.5px;color:var(--gf-text-muted)}.gf-rbac-actions{display:flex;flex-wrap:wrap;gap:8px}.gf-rbac-group-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.gf-rbac-group-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--gf-border-subtle);border-radius:var(--gf-radius-sm);background:var(--gf-surface-sunken)}.gf-rbac-group-name{font-size:13px;font-weight:600;color:var(--gf-text)}.gf-rbac-group-description{flex:1 1 200px;font-size:12.5px;color:var(--gf-text-muted)}.gf-rbac-group-row .gf-btn{margin-left:auto}.gf-rbac-add-group{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.gf-rbac-add-group select{flex:1 1 200px;min-width:0;padding:7px 9px;border:1px solid var(--gf-border-strong);border-radius:var(--gf-radius-sm);font:inherit;font-size:13px;background:#fff}.gf-rbac-grant-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:6px 14px}.gf-rbac-grant-list li{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:4px 0;border-bottom:1px dashed var(--gf-border-subtle);font-size:12.5px}.gf-status--inactive{background:var(--gf-danger-bg);color:var(--gf-danger-text)}.gf-status--system{background:var(--gf-neutral-bg);color:var(--gf-neutral-text)}.gf-status--custom{background:var(--gf-accent-bg);color:var(--gf-accent-text)}.gf-perms{display:flex;flex-direction:column;gap:10px;border:1px solid var(--gf-border);border-radius:var(--gf-radius-sm);padding:12px;background:var(--gf-surface-sunken)}.gf-perms-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.gf-perms-search{flex:1 1 200px;min-width:0;padding:7px 9px;border:1px solid var(--gf-border-strong);border-radius:var(--gf-radius-sm);font:inherit;font-size:13px;background:#fff}.gf-perms-total{font-size:12.5px;font-weight:600;color:var(--gf-text-secondary)}.gf-perms-body{display:flex;flex-direction:column;gap:12px}.gf-perms-domain{padding:10px;background:#fff;border:1px solid var(--gf-border-subtle);border-radius:var(--gf-radius-sm)}.gf-perms-domain-header{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.gf-perms-domain-header h4{margin:0;font-size:13px;color:var(--gf-text)}.gf-perms-count{font-size:12px;color:var(--gf-text-muted)}.gf-perms-domain-note{margin:4px 0 8px;font-size:12px;color:var(--gf-text-muted)}.gf-perms-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:6px 14px}.gf-perms-option{display:flex;align-items:flex-start;gap:8px;padding:4px 6px;border-radius:var(--gf-radius-xs);cursor:pointer;min-width:0}.gf-perms-option:hover{background:var(--gf-surface-hover)}.gf-perms-option input{margin-top:2px;width:15px;height:15px;accent-color:var(--gf-primary);flex:0 0 auto}.gf-perms-option input:disabled{cursor:not-allowed}.gf-perms-option-text{display:flex;flex-direction:column;min-width:0}.gf-perms-option-label{font-size:12.5px;color:var(--gf-text)}.gf-perms-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--gf-text-muted);overflow-wrap:anywhere}.gf-perms-custom{display:flex;gap:8px;flex-wrap:wrap}.gf-perms-custom input{flex:1 1 220px;min-width:0;padding:7px 9px;border:1px solid var(--gf-border-strong);border-radius:var(--gf-radius-sm);font:inherit;font-size:13px;background:#fff}.gf-perms-other{border-color:var(--gf-warning-border);background:var(--gf-warning-bg)}@media (max-width: 640px){.gf-rbac-toolbar{flex-direction:column;align-items:stretch}.gf-rbac-invite{margin-left:0}.gf-rbac-form-grid{grid-template-columns:1fr}.gf-rbac-group-row{flex-direction:column;align-items:flex-start}.gf-rbac-group-row .gf-btn{margin-left:0}.gf-perms-grid{grid-template-columns:1fr}}.gf-upload{display:flex;flex-direction:column;gap:18px;max-width:980px}.gf-upload-head{padding:0 2px}.gf-wizard-steps{display:flex;flex-wrap:wrap;gap:8px 20px;margin:0;padding:0;list-style:none}.gf-wizard-steps li{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--gf-text-faint)}.gf-wizard-steps li.done{color:var(--gf-success-text)}.gf-wizard-steps li.active{color:var(--gf-text);font-weight:600}.gf-wizard-marker{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:1px solid var(--gf-border-strong);background:var(--gf-surface);font-size:11px;line-height:1}.gf-wizard-steps li.active .gf-wizard-marker{background:var(--gf-primary);border-color:var(--gf-primary);color:#fff}.gf-wizard-steps li.done .gf-wizard-marker{background:var(--gf-success-bg);border-color:var(--gf-success-border);color:var(--gf-success-text)}.gf-wizard-steps--terminal li.terminal-failed{color:var(--gf-danger-text)}.gf-wizard-steps--terminal li.terminal-failed .gf-wizard-marker{background:var(--gf-danger-bg);border-color:var(--gf-danger-border);color:var(--gf-danger-text)}.gf-wizard-steps--terminal li.terminal-cancelled{color:var(--gf-text-muted)}.gf-wizard-steps--terminal li.terminal-cancelled .gf-wizard-marker{background:var(--gf-surface);border-color:var(--gf-border-strong);color:var(--gf-text-muted)}.gf-wizard-steps--terminal li.terminal-not-found{opacity:.6}.gf-upload-card{background:var(--gf-surface);border:1px solid var(--gf-border);border-radius:var(--gf-radius-md);padding:20px;display:flex;flex-direction:column;gap:12px}.gf-upload-title{margin:0;font-size:15px;color:var(--gf-text)}.gf-upload-hint{margin:0;font-size:12.5px;color:var(--gf-text-muted)}.gf-upload-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.gf-upload-error{margin:0}.gf-upload-form{display:flex;flex-wrap:wrap;gap:12px}.gf-upload-field{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--gf-text-muted);flex:1 1 180px;min-width:0}.gf-upload-field input,.gf-upload-field select{height:32px;padding:0 9px;font:inherit;font-size:13px;border:1px solid var(--gf-border-strong);border-radius:var(--gf-radius-sm);background:var(--gf-surface);color:var(--gf-text)}.gf-upload-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.gf-upload-file{align-self:flex-start;font-size:12.5px;color:var(--gf-text);background:var(--gf-surface-sunken);border:1px solid var(--gf-border-subtle);border-radius:var(--gf-radius-sm);padding:6px 10px}.gf-upload-processing-line{display:flex;align-items:center;gap:12px}.gf-upload-elapsed{font-size:12.5px;color:var(--gf-text-muted);font-variant-numeric:tabular-nums}.gf-spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--gf-border-strong);border-top-color:var(--gf-primary);animation:gf-upload-spin .8s linear infinite;flex:0 0 auto}@keyframes gf-upload-spin{to{transform:rotate(360deg)}}.gf-upload-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0}.gf-upload-count{background:var(--gf-surface-sunken);border:1px solid var(--gf-border-subtle);border-radius:var(--gf-radius-sm);padding:10px 12px}.gf-upload-count dt{font-size:11.5px;color:var(--gf-text-muted)}.gf-upload-count dd{margin:2px 0 0;font-size:18px;font-weight:600;color:var(--gf-text)}.gf-upload-summary{display:flex;flex-wrap:wrap;gap:8px}.gf-upload-chip{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:12px;font-size:12px;background:var(--gf-neutral-bg);color:var(--gf-neutral-text)}.gf-upload-chip[data-count=valid]{background:var(--gf-success-bg);color:var(--gf-success-text)}.gf-upload-chip[data-count=errors]{background:var(--gf-danger-bg);color:var(--gf-danger-text)}.gf-upload-chip[data-count=duplicates]{background:var(--gf-warning-bg);color:var(--gf-warning-text)}.gf-upload-filter{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--gf-text-secondary)}.gf-upload-rows td,.gf-upload-rows th{font-size:12.5px}.gf-upload-rows .gf-upload-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px}.gf-upload-blocked{margin:0;font-size:12.5px;color:var(--gf-danger-text)}.gf-upload-sample{font-size:12.5px;color:var(--gf-text-secondary)}.gf-upload-sample summary{cursor:pointer}.gf-upload-sample ul{margin:8px 0 0;padding-left:18px}.gf-upload-sample li{margin-bottom:4px}.gf-upload-success{display:flex;align-items:center;gap:8px;border:1px solid var(--gf-success-border);background:var(--gf-success-bg);color:var(--gf-success-text);border-radius:var(--gf-radius-md);padding:12px 14px;font-size:13px}.gf-status--pending{background:var(--gf-neutral-bg);color:var(--gf-neutral-text)}.gf-status--processing{background:var(--gf-info-bg);color:var(--gf-info-text)}.gf-status--preview{background:var(--gf-warning-bg);color:var(--gf-warning-text)}.gf-status--committed{background:var(--gf-success-bg);color:var(--gf-success-text)}.gf-status--failed{background:var(--gf-danger-bg);color:var(--gf-danger-text)}.gf-status--cancelled{background:var(--gf-neutral-bg);color:var(--gf-neutral-text)}@media (max-width: 640px){.gf-upload-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.gf-upload-card{padding:16px}}.gf-color-field{display:flex;align-items:center;gap:8px}.gf-color-field input[type=color].gf-color-swatch{width:44px;height:30px;padding:2px;cursor:pointer;flex:0 0 auto}.gf-color-field input[type=text]{flex:1 1 auto;min-width:0}.field-dns-instructions .gf-dns-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 0;border-bottom:1px solid var(--gf-border)}.field-dns-instructions .gf-dns-row:last-of-type{border-bottom:0}.gf-dns-kind{flex:0 0 auto;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--gf-text-secondary)}.gf-dns-host,.gf-dns-value{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;word-break:break-all}.gf-dns-host{color:var(--gf-text-muted)}.gf-dns-copied[hidden]{display:none}.field-password .gf-password-field{display:flex;align-items:center;gap:8px}.field-password .gf-password-field input{flex:1 1 auto;min-width:0}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2) format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/inter-latin-800-normal-BYj_oED-.woff2) format("woff2"),url(/assets/inter-latin-800-normal-D1mf63XC.woff) format("woff")}
