@import"https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;500;600;700&display=swap";:root{font-family:Noto Sans,Segoe UI,sans-serif;color:#1d232c;background-color:#f1f2f6;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink-muted: #5b6674;--panel: rgba(255, 255, 255, .9);--panel-border: rgba(14, 25, 47, .12);--accent: #2c60ff;--danger: #d2462f;--success: #217a57;--shadow-soft: 0 18px 45px rgba(18, 26, 45, .08)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at top,rgba(44,96,255,.08),transparent 55%),linear-gradient(120deg,#f1f2f6,#eef3ff 45%,#f8f1e6)}#root{min-height:100vh}h1,h2,h3{font-family:Noto Sans,Segoe UI,sans-serif;color:#111822}button,input{font-family:inherit}@layer rdg{@layer Defaults,FocusSink,CheckboxInput,CheckboxIcon,CheckboxLabel,Cell,HeaderCell,SummaryCell,EditCell,Row,HeaderRow,SummaryRow,GroupedRow,Root;}@layer rdg.MeasuringCell{.rdg-7-0-0-beta-58-fa71d63e{contain:strict;grid-row:1;visibility:hidden}}@layer rdg.Cell{.rdg-7-0-0-beta-58-85c48527{position:relative;padding-block:0;padding-inline:8px;border-inline-end:var(--rdg-border-width) solid var(--rdg-border-color);border-block-end:var(--rdg-border-width) solid var(--rdg-border-color);grid-row-start:var(--rdg-grid-row-start);align-content:center;background-color:inherit;white-space:nowrap;overflow:clip;text-overflow:ellipsis;outline:none}.rdg-7-0-0-beta-58-85c48527[aria-selected=true]{outline:var(--rdg-selection-width) solid var(--rdg-selection-color);outline-offset:calc(var(--rdg-selection-width) * -1)}}@layer rdg.Cell{.rdg-7-0-0-beta-58-17a9a6d4{position:sticky;z-index:1}.rdg-7-0-0-beta-58-17a9a6d4:nth-last-child(1 of.rdg-7-0-0-beta-58-17a9a6d4){box-shadow:var(--rdg-cell-frozen-box-shadow)}}@layer rdg.DragHandle{.rdg-7-0-0-beta-58-bfba19bc{--rdg-drag-handle-size: 8px;z-index:0;cursor:move;inline-size:var(--rdg-drag-handle-size);block-size:var(--rdg-drag-handle-size);background-color:var(--rdg-selection-color);place-self:end}.rdg-7-0-0-beta-58-bfba19bc:hover{--rdg-drag-handle-size: 16px;border:2px solid var(--rdg-selection-color);background-color:var(--rdg-background-color)}}@layer rdg.DragHandle{.rdg-7-0-0-beta-58-7abddb3e{z-index:1;position:sticky}}@layer rdg.CheckboxInput{.rdg-7-0-0-beta-58-3b807ead{display:block;margin:auto;inline-size:20px;block-size:20px}.rdg-7-0-0-beta-58-3b807ead:focus-visible{outline:2px solid var(--rdg-checkbox-focus-color);outline-offset:-3px}.rdg-7-0-0-beta-58-3b807ead:enabled{cursor:pointer}}@layer rdg.GroupCellContent{.rdg-7-0-0-beta-58-07919382{outline:none}}@layer rdg.GroupCellCaret{.rdg-7-0-0-beta-58-02a50147{margin-inline-start:4px;stroke:currentColor;stroke-width:1.5px;fill:transparent;vertical-align:middle}.rdg-7-0-0-beta-58-02a50147>path{transition:d .1s}}@layer rdg.SortableHeaderCell{.rdg-7-0-0-beta-58-56a248e4{display:flex}}@layer rdg.SortableHeaderCellName{.rdg-7-0-0-beta-58-7fad8c83{flex-grow:1;overflow:clip;text-overflow:ellipsis}}@layer rdg.Cell{.rdg-7-0-0-beta-58-35ccb4c8{background-color:#ccf}}@layer rdg.EditCell{.rdg-7-0-0-beta-58-46f9ea88{padding:0}}@layer rdg.HeaderRow{.rdg-7-0-0-beta-58-0dbd5994{display:contents;background-color:var(--rdg-header-background-color);font-weight:700}.rdg-7-0-0-beta-58-0dbd5994>.rdg-7-0-0-beta-58-85c48527{z-index:2;position:sticky}.rdg-7-0-0-beta-58-0dbd5994>.rdg-7-0-0-beta-58-17a9a6d4{z-index:3}}@layer rdg.HeaderCell{.rdg-7-0-0-beta-58-2a7e240d{cursor:pointer}}@layer rdg.HeaderCell{.rdg-7-0-0-beta-58-1893dc0f{touch-action:none}}@layer rdg.HeaderCell{.rdg-7-0-0-beta-58-4e60db91{cursor:col-resize;position:absolute;inset-block-start:0;inset-inline-end:0;inset-block-end:0;inline-size:10px}}@layer rdg.HeaderCell{.rdg-7-0-0-beta-58-3e1a4ad4{background-color:var(--rdg-header-draggable-background-color)}}@layer rdg.HeaderCell{.rdg-7-0-0-beta-58-51abd8b8{background-color:var(--rdg-header-draggable-background-color)}}@layer rdg.HeaderCell{.rdg-7-0-0-beta-58-c8d7aa64{border-radius:4px;width:fit-content;outline:2px solid hsl(207,100%,50%);outline-offset:-2px}}@layer rdg.Row{.rdg-7-0-0-beta-58-3c083f1b{display:contents;background-color:var(--rdg-background-color)}.rdg-7-0-0-beta-58-3c083f1b:hover{background-color:var(--rdg-row-hover-background-color)}.rdg-7-0-0-beta-58-3c083f1b[aria-selected=true]{background-color:var(--rdg-row-selected-background-color)}.rdg-7-0-0-beta-58-3c083f1b[aria-selected=true]:hover{background-color:var(--rdg-row-selected-hover-background-color)}}@layer rdg.FocusSink{.rdg-7-0-0-beta-58-3fe773c3{outline:2px solid var(--rdg-selection-color);outline-offset:-2px}}@layer rdg.FocusSink{.rdg-7-0-0-beta-58-97ce3fde:before{content:"";display:inline-block;block-size:100%;position:sticky;inset-inline-start:0;border-inline-start:2px solid var(--rdg-selection-color)}}@layer rdg.SortIcon{.rdg-7-0-0-beta-58-3d5115f3{fill:currentColor}.rdg-7-0-0-beta-58-3d5115f3>path{transition:d .1s}}@layer rdg.Defaults{.rdg-7-0-0-beta-58-ccd2e5d9 *,.rdg-7-0-0-beta-58-ccd2e5d9 *:before,.rdg-7-0-0-beta-58-ccd2e5d9 *:after{box-sizing:inherit}}@layer rdg.Root{.rdg-7-0-0-beta-58-ccd2e5d9{--rdg-selection-width: 2px;--rdg-selection-color: hsl(207, 75%, 66%);--rdg-font-size: 14px;--rdg-cell-frozen-box-shadow: 2px 0 5px -2px rgba(136, 136, 136, .3);--rdg-border-width: 1px;--rdg-summary-border-width: calc(var(--rdg-border-width) * 2);--rdg-color: light-dark(#000, #ddd);--rdg-border-color: light-dark(#ddd, #444);--rdg-summary-border-color: light-dark(#aaa, #555);--rdg-background-color: light-dark(hsl(0deg 0% 100%), hsl(0deg 0% 13%));--rdg-header-background-color: light-dark(hsl(0deg 0% 97.5%), hsl(0deg 0% 10.5%));--rdg-header-draggable-background-color: light-dark(hsl(0deg 0% 90.5%), hsl(0deg 0% 17.5%));--rdg-row-hover-background-color: light-dark(hsl(0deg 0% 96%), hsl(0deg 0% 9%));--rdg-row-selected-background-color: light-dark(hsl(207deg 76% 92%), hsl(207deg 76% 42%));--rdg-row-selected-hover-background-color: light-dark(hsl(207deg 76% 88%), hsl(207deg 76% 38%));--rdg-checkbox-focus-color: hsl(207deg 100% 69%);color-scheme:var(--rdg-color-scheme, light dark);display:grid;accent-color:light-dark(hsl(207deg 100% 29%),hsl(207deg 100% 79%));contain:content;content-visibility:auto;block-size:350px;border:1px solid var(--rdg-border-color);box-sizing:border-box;overflow:auto;background-color:var(--rdg-background-color);color:var(--rdg-color);font-size:var(--rdg-font-size)}.rdg-7-0-0-beta-58-ccd2e5d9.rdg-dark{--rdg-color-scheme: dark}.rdg-7-0-0-beta-58-ccd2e5d9.rdg-light{--rdg-color-scheme: light}.rdg-7-0-0-beta-58-ccd2e5d9:dir(rtl){--rdg-cell-frozen-box-shadow: -2px 0 5px -2px rgba(136, 136, 136, .3)}.rdg-7-0-0-beta-58-ccd2e5d9:before{content:"";grid-column:1/-1;grid-row:1/-1}.rdg-7-0-0-beta-58-ccd2e5d9>:nth-last-child(1 of.rdg-top-summary-row)>.rdg-7-0-0-beta-58-85c48527{border-block-end:var(--rdg-summary-border-width) solid var(--rdg-summary-border-color)}.rdg-7-0-0-beta-58-ccd2e5d9>:nth-child(1 of.rdg-bottom-summary-row)>.rdg-7-0-0-beta-58-85c48527{border-block-start:var(--rdg-summary-border-width) solid var(--rdg-summary-border-color)}}@layer rdg.Root{.rdg-7-0-0-beta-58-e9b0e1c9{-webkit-user-select:none;user-select:none}.rdg-7-0-0-beta-58-e9b0e1c9 .rdg-7-0-0-beta-58-3c083f1b{cursor:move}}@layer rdg.FocusSink{.rdg-7-0-0-beta-58-dbb8b3c5{grid-column:1/-1;pointer-events:none;z-index:1}}@layer rdg.FocusSink{.rdg-7-0-0-beta-58-e9f55541{z-index:3}}@layer rdg.SummaryRow{.rdg-7-0-0-beta-58-0b90c82c>.rdg-7-0-0-beta-58-85c48527{position:sticky}}@layer rdg.SummaryRow{.rdg-7-0-0-beta-58-d0520eab>.rdg-7-0-0-beta-58-85c48527{z-index:2}.rdg-7-0-0-beta-58-d0520eab>.rdg-7-0-0-beta-58-17a9a6d4{z-index:3}}@layer rdg.SummaryCell{.rdg-7-0-0-beta-58-d907aa87{inset-block-start:var(--rdg-summary-row-top);inset-block-end:var(--rdg-summary-row-bottom)}}@layer rdg.GroupedRow{.rdg-7-0-0-beta-58-e74a2be3:not([aria-selected=true]){background-color:var(--rdg-header-background-color)}.rdg-7-0-0-beta-58-e74a2be3>.rdg-7-0-0-beta-58-85c48527:not(:last-child,.rdg-7-0-0-beta-58-17a9a6d4),.rdg-7-0-0-beta-58-e74a2be3>:nth-last-child(n+2 of.rdg-7-0-0-beta-58-17a9a6d4){border-inline-end:none}}@layer rdg.TextEditor{.rdg-7-0-0-beta-58-2f8db206{appearance:none;box-sizing:border-box;inline-size:100%;block-size:100%;padding-block:0;padding-inline:6px;border:2px solid #ccc;vertical-align:top;color:var(--rdg-color);background-color:var(--rdg-background-color);font-family:inherit;font-size:var(--rdg-font-size)}.rdg-7-0-0-beta-58-2f8db206:focus{border-color:var(--rdg-selection-color);outline:none}.rdg-7-0-0-beta-58-2f8db206::placeholder{color:#999;opacity:1}}.app{min-height:100vh;padding:1.75rem clamp(1rem,2.6vw,2.5rem) 2rem;display:flex;flex-direction:column;gap:1.35rem}.app-page{padding-bottom:2.5rem}.admin-shell{min-height:100vh;display:grid;grid-template-columns:minmax(240px,280px) minmax(0,1fr);background:radial-gradient(circle at top left,rgba(44,96,255,.12),transparent 28%),linear-gradient(180deg,#f7f9ffe0,#eff3faeb)}.admin-sidebar{display:flex;flex-direction:column;gap:1rem;padding:1.4rem 1rem;border-right:1px solid rgba(14,25,47,.08);background:#ffffffb3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.admin-sidebar-brand{display:grid;gap:.5rem}.admin-sidebar-brand h2{margin:0;font-size:1.18rem}.admin-sidebar-nav{display:grid;gap:.45rem}.admin-nav-link{display:block;padding:.78rem .88rem;border-radius:12px;text-decoration:none;color:#1b2430;font-weight:600;border:1px solid transparent;background:#f7f9ffbd}.admin-nav-link:hover{border-color:#2c60ff29;background:#2c60ff14}.admin-nav-link.active{color:var(--accent);border-color:#2c60ff3d;background:#2c60ff1f}.admin-sidebar-status{margin-top:auto}.admin-shell-content{padding:1.15rem clamp(.9rem,2.2vw,1.8rem) 1.4rem;display:flex;flex-direction:column;gap:1rem}.admin-page-header{display:grid;gap:.3rem}.admin-page-title-row{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.admin-page-title-block{display:grid;gap:.3rem}.admin-page-actions{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center}.admin-page-header h1{margin:0;font-size:1.45rem;line-height:1.2}.app-header{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:1rem;align-items:start}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:.65rem;color:var(--ink-muted);margin:0 0 .45rem}.app-header h1{font-size:clamp(1.6rem,2.4vw,2.25rem);line-height:1.15;margin:0 0 .55rem}.lede{font-size:.96rem;color:var(--ink-muted);margin:0}.status-card{background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;padding:1rem;box-shadow:var(--shadow-soft);display:flex;flex-direction:column;gap:.45rem}.status-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.16em;color:var(--ink-muted)}.status-value{font-size:1rem;font-weight:600}.status-meta{color:var(--ink-muted);font-size:.86rem}.status-error{color:var(--danger);font-size:.86rem}.app-main{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.app-main-single{grid-template-columns:minmax(0,1fr)}.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;padding:1.1rem;box-shadow:var(--shadow-soft);display:flex;flex-direction:column;gap:.95rem}.panel.muted{background:#ffffff94;border-style:dashed}.panel h2{margin:0;font-size:1.12rem}.panel-subtitle{color:var(--ink-muted);margin:0;font-size:.9rem}.panel-subtitle.slim{font-size:.84rem}.form,.form-grid{display:grid;gap:.75rem}.form-grid.two-up{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.form label{display:grid;gap:.35rem;font-weight:600;color:var(--ink-muted);font-size:.88rem}.form input,.form select{border-radius:10px;border:1px solid var(--panel-border);padding:.58rem .72rem;font-size:.9rem;font-family:inherit;background:#fffc}.form textarea{border-radius:10px;border:1px solid var(--panel-border);padding:.58rem .72rem;font-size:.9rem;font-family:inherit;background:#fffc;resize:vertical;min-height:6.5rem}.form input:focus{outline:2px solid rgba(44,96,255,.2);border-color:var(--accent)}.form select:focus{outline:2px solid rgba(44,96,255,.2);border-color:var(--accent)}.form textarea:focus{outline:2px solid rgba(44,96,255,.2);border-color:var(--accent)}.switch{display:flex;align-items:center;gap:.6rem;font-weight:500}.switch input{width:42px;height:22px;accent-color:var(--accent)}.primary-button{background:var(--accent);color:#fff;border:none;border-radius:10px;padding:.55rem .75rem;font-weight:600;font-size:.86rem;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;box-shadow:0 8px 18px #2c60ff38}.primary-button:hover{transform:translateY(-1px);box-shadow:0 10px 20px #2c60ff40}.primary-button:disabled,.ghost-button:disabled{opacity:.65;cursor:not-allowed;transform:none;box-shadow:none}.primary-link-button,.ghost-link-button{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.primary-link-button{background:var(--accent);color:#fff;border:none;border-radius:10px;padding:.55rem .75rem;font-weight:600;font-size:.86rem;box-shadow:0 8px 18px #2c60ff38}.ghost-link-button{background:transparent;color:var(--ink-muted);border:1px solid var(--panel-border);border-radius:999px;padding:.45rem .8rem;font-size:.84rem}.action-links{display:flex;flex-wrap:wrap;gap:.7rem}.learner-form-panel,.learner-summary-panel,.learner-result-panel{max-width:980px}.learner-form{gap:.9rem}.learner-form-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.learner-form-column{display:grid;gap:.75rem}.bulk-toolbar-panel,.bulk-grid-panel{max-width:100%}.bulk-toolbar-row{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap}.result-grid.compact{grid-template-columns:repeat(3,minmax(120px,1fr));min-width:min(100%,420px)}.bulk-grid-sheet{border:1px solid var(--panel-border);border-radius:12px;overflow:hidden;background:#ffffffd1}.bulk-data-grid{--rdg-font-size: 13px;--rdg-border-color: rgba(14, 25, 47, .08);--rdg-selection-color: var(--accent);--rdg-background-color: rgba(255, 255, 255, .94);--rdg-header-background-color: rgba(242, 246, 255, .96)}.bulk-data-grid .bulk-grid-cell-error,.bulk-data-grid .bulk-grid-cell-error input,.bulk-data-grid .bulk-grid-cell-error .rdg-text-editor{background:#ffe8e8eb}.bulk-data-grid .bulk-grid-row-has-errors{box-shadow:inset 3px 0 #c6282873}.bulk-error-list{display:grid;gap:.45rem}.bulk-error-item{margin:0;padding:.55rem .65rem;border-radius:10px;background:#fff1f1e6;border:1px solid rgba(198,40,40,.14);color:#7f1d1d;font-size:.84rem}.ghost-button{background:transparent;color:var(--ink-muted);border:1px solid var(--panel-border);border-radius:999px;padding:.35rem .72rem;font-size:.84rem;cursor:pointer;align-self:flex-start}.inline-link{color:var(--accent);text-decoration:none;font-weight:600}.inline-link:hover{text-decoration:underline}.form-status{margin:0;font-size:.86rem}.form-status.success{color:var(--success)}.form-status.error{color:var(--danger)}.form-status.loading{color:var(--ink-muted)}.form-actions-row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.search-select,.search-select-box{position:relative}.search-select-menu{position:absolute;top:calc(100% + .35rem);left:0;right:0;display:grid;gap:.35rem;padding:.45rem;border-radius:12px;border:1px solid var(--panel-border);background:#fffffffa;box-shadow:var(--shadow-soft);z-index:10;max-height:220px;overflow-y:auto}.search-select-option{border:1px solid rgba(14,25,47,.08);background:#f7f9ffe6;border-radius:10px;padding:.55rem .65rem;text-align:left;cursor:pointer;display:grid;gap:.2rem}.search-select-option span{font-weight:600;color:#111822}.search-select-option small,.search-select-empty{color:var(--ink-muted);font-size:.82rem}.search-select-empty{padding:.35rem .2rem}.result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem}.result-item{display:grid;gap:.25rem;padding:.8rem;border-radius:12px;border:1px solid rgba(14,25,47,.08);background:#f7f9ffc7}.result-item strong{font-size:1rem;color:#111822}.users-panel{grid-column:1 / -1}.users-search-form{display:grid;gap:.7rem}.users-search-label{display:grid;gap:.35rem;font-weight:600;color:var(--ink-muted);font-size:.87rem}.users-search-label textarea{border-radius:10px;border:1px solid var(--panel-border);padding:.58rem .72rem;font-size:.9rem;line-height:1.35;font-family:inherit;background:#fffc}.users-search-label textarea:focus{outline:2px solid rgba(44,96,255,.2);border-color:var(--accent)}.users-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:.45rem}.users-field{display:flex;align-items:center;gap:.45rem;font-size:.84rem;color:var(--ink-muted);border:1px solid var(--panel-border);border-radius:10px;padding:.42rem .52rem;background:#ffffffa6}.users-field input{accent-color:var(--accent)}.users-search-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.users-summary{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem}.users-table-wrap{border:1px solid var(--panel-border);border-radius:12px;background:#ffffffb8;overflow:auto}.users-table{width:100%;border-collapse:collapse;min-width:620px}.users-table th,.users-table td{text-align:left;padding:.52rem .62rem;border-bottom:1px solid rgba(14,25,47,.08);font-size:.84rem}.users-table th{font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);background:#f2f6ffcc;position:sticky;top:0;z-index:1}.users-table tr:last-child td{border-bottom:none}.users-empty{text-align:center;color:var(--ink-muted);padding:.9rem}.users-pagination{display:flex;justify-content:flex-end;gap:.45rem}.reset-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.reset-shell{width:min(100%,520px)}ul{margin:0;padding-left:1.2rem;color:var(--ink-muted);display:grid;gap:.35rem;font-size:.88rem}@media(max-width:960px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{border-right:none;border-bottom:1px solid rgba(14,25,47,.08)}.admin-sidebar-status{margin-top:0}.app-header{grid-template-columns:1fr}}@media(max-width:720px){.admin-page-title-row{flex-direction:column}.admin-shell-content{padding:1.2rem .85rem 1.5rem}.learner-form-columns{grid-template-columns:1fr}.bulk-toolbar-row{flex-direction:column}.app{padding:1.2rem .85rem 1.5rem}.panel{padding:.9rem}.users-fields,.form-grid.two-up{grid-template-columns:1fr}.users-summary{flex-direction:column}.users-pagination{justify-content:flex-start}.reset-page{align-items:flex-start;padding-top:2rem}}
