:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#f2f5f9;--surface:#f8fafc;--surface-strong:#fff;--surface-muted:#e9eff5;--border:#ccd7e2;--border-strong:#aebdcc;--text:#17212b;--text-muted:#536476;--accent:#1769aa;--accent-strong:#0f548e;--accent-soft:#e6f0f8;--success:#1d6f42;--success-soft:#e8f4ec;--warning:#8a4b08;--warning-soft:#fdf3e4;--danger:#a4262c;--danger-soft:#fbeaea;--radius:12px;--radius-small:8px;--shadow-card:0 1px 2px #17212b0f, 0 6px 18px #17212b0d;--touch-target:44px;--z-shell-header:20;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans KR,Arial,sans-serif}*{box-sizing:border-box}html{background:var(--page);min-width:320px}body{background:var(--page);min-height:100dvh;color:var(--text);margin:0}button,input,select,textarea{font:inherit}.fluent-root{background:0 0;min-height:100dvh}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.console-shell,.history-shell{height:100dvh;overflow:hidden}.topbar{z-index:var(--z-shell-header);border-bottom:1px solid var(--border);background:var(--surface-strong);min-height:68px;padding:calc(10px + env(safe-area-inset-top,0px)) calc(clamp(16px, 4vw, 40px) + env(safe-area-inset-right,0px)) 10px calc(clamp(16px, 4vw, 40px) + env(safe-area-inset-left,0px));flex-wrap:wrap;flex:none;justify-content:space-between;align-items:center;gap:12px 20px;display:flex;position:sticky;top:0}.brand-block{align-items:center;gap:12px;display:flex}.brand-block div{gap:1px;display:grid}.brand-block strong{letter-spacing:-.01em;font-size:16px}.brand-block div span{color:var(--text-muted);font-size:12px}.topbar-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.topbar-link{min-height:var(--touch-target);border-radius:var(--radius-small);color:var(--accent-strong);align-items:center;padding:0 14px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.topbar-link:hover{background:var(--accent-soft)}.topbar-link:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}.practice-badge{background:var(--warning-soft);padding:10px calc(clamp(16px, 4vw, 40px) + env(safe-area-inset-right,0px)) 10px calc(clamp(16px, 4vw, 40px) + env(safe-area-inset-left,0px));color:var(--warning);border-bottom:1px solid #f0d6ab;flex:none;margin:0;font-size:13px;font-weight:650}.console-frame{width:100%;min-height:0;padding:clamp(16px, 2.5vw, 28px) max(calc(clamp(16px, 4vw, 40px) + env(safe-area-inset-right,0px)), calc(50% - 640px + env(safe-area-inset-right,0px))) calc(clamp(28px, 4vw, 48px) + env(safe-area-inset-bottom,0px)) max(calc(clamp(16px, 4vw, 40px) + env(safe-area-inset-left,0px)), calc(50% - 640px + env(safe-area-inset-left,0px)));flex:auto;margin:0 auto;overflow-y:auto}.console-state{gap:16px;max-width:520px;margin:clamp(24px,6vw,64px) auto 0;display:grid}.console-grid{grid-template-columns:minmax(0,55fr) minmax(0,45fr);align-items:start;gap:clamp(16px,2vw,24px);display:grid}.console-list,.console-detail{min-width:0}.console-detail{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-strong);max-height:calc(100dvh - 68px - clamp(16px,2.5vw,28px) - clamp(28px,4vw,48px));box-shadow:var(--shadow-card);padding:clamp(16px,2vw,22px);position:sticky;top:0;overflow-y:auto}.console-detail-empty{min-height:220px;color:var(--text-muted);text-align:center;place-content:center;margin:0;font-size:14px;display:grid}.console-drawer-body{gap:16px;display:grid}.console-drawer-body .detail-clear-selection{display:none}.console-drawer-footer{border-top:1px solid var(--border);background:var(--surface-strong);padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}.console-drawer-close{width:100%;min-height:var(--touch-target);font-weight:600}.console-shell button,.console-drawer-body button,.auth-card button{min-height:var(--touch-target)}.maintenance-shell{justify-content:center}.maintenance-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-strong);width:min(520px,100% - 32px);box-shadow:var(--shadow-card);gap:16px;margin:0 auto;padding:clamp(24px,5vw,36px);display:grid}.maintenance-card h1{letter-spacing:-.02em;margin:0;font-size:24px;font-weight:680}.maintenance-card p{color:var(--text-muted);margin:0;font-size:15px;line-height:1.7}.teacher-list{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-strong);max-height:calc(100dvh - 68px - clamp(16px,2.5vw,28px) - clamp(28px,4vw,48px));box-shadow:var(--shadow-card);flex-direction:column;display:flex;overflow:hidden}.teacher-list>*{flex:none}.teacher-list-toolbar{border-bottom:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;background:var(--surface-strong);gap:10px 12px;padding:14px 16px;display:grid}.teacher-filter{width:100%;min-height:var(--touch-target)}.teacher-toolbar-controls{flex-wrap:wrap;align-items:end;gap:10px 12px;display:flex}.teacher-control-group{border:0;gap:5px;min-width:0;margin:0;padding:0;display:grid}.teacher-control-group legend{color:var(--text-muted);margin:0;padding:0;font-size:11px;font-weight:650;line-height:1.4}.teacher-segmented-control{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface-muted);align-items:stretch;gap:2px;width:fit-content;padding:2px;display:inline-flex}.teacher-segmented-control>.teacher-segment{min-width:58px;height:26px;min-height:26px;color:var(--text-muted);border-radius:5px;padding:0 12px;font-size:13px;font-weight:600}.teacher-toolbar-controls>button{height:32px;min-height:32px;padding:0 14px;font-size:13px;font-weight:600}.teacher-segment-selected{box-shadow:0 1px 3px #17212b1f;background:var(--surface-strong)!important;color:var(--accent-strong)!important}.teacher-segment:focus-visible{outline:2px solid var(--accent-strong);outline-offset:1px}.teacher-selection-notice{background:var(--warning-soft);color:var(--warning);border-bottom:1px solid #f0d6ab;margin:0;padding:10px 16px;font-size:13px}.teacher-bulk-failures{gap:4px;margin:8px 0 0;padding-left:20px;font-size:12px;display:grid}.teacher-count{border-bottom:1px solid var(--border);color:var(--text-muted);margin:0;padding:10px 16px;font-size:13px}.teacher-rows{flex:0 auto;min-height:0;display:block;overflow-y:auto}.teacher-row{width:100%;min-height:var(--touch-target);border:0;border-bottom:1px solid var(--border);color:inherit;text-align:left;cursor:pointer;background:0 0;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:12px 16px;display:grid}.teacher-row:last-child{border-radius:0 0 var(--radius) var(--radius);border-bottom:0}.teacher-row:hover{background:var(--surface)}.teacher-row:focus-visible{outline:2px solid var(--accent-strong);outline-offset:-2px}.teacher-row-selected{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.teacher-row-selected:hover{background:var(--accent-soft)}.teacher-row>strong,.teacher-row-choice>strong{overflow-wrap:anywhere;align-self:center;font-size:15px;font-weight:650}.teacher-row-multiple{cursor:default;grid-template-columns:auto minmax(0,1fr);gap:0;padding:0 8px}.teacher-row-multiple>.fui-Checkbox{align-self:center}.teacher-row-choice{width:100%;min-width:0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:12px 8px;display:grid}.teacher-row-choice:focus-visible{outline:2px solid var(--accent-strong);outline-offset:-2px}.teacher-row-choice:disabled{cursor:wait}.teacher-row-meta{color:var(--text-muted);overflow-wrap:anywhere;grid-column:1;font-size:13px;line-height:1.5}.teacher-status-chip{background:var(--success-soft);color:var(--success);white-space:nowrap;border-radius:999px;grid-area:1/2/span 2;align-self:center;align-items:center;padding:2px 10px;font-size:12px;font-weight:650;display:inline-flex}.teacher-status-chip-disabled{background:var(--surface-muted);color:var(--text-muted)}.teacher-empty,.teacher-error{color:var(--text-muted);justify-items:start;gap:10px;margin:0;padding:28px 16px;font-size:14px;line-height:1.6;display:grid}.teacher-error{color:var(--danger)}.teacher-list>.fui-Spinner{justify-content:flex-start;padding:28px 16px}.bulk-panel{gap:16px;display:grid}.bulk-roster{border:1px solid var(--border);border-radius:var(--radius-small);max-height:260px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.bulk-roster li{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:flex}.bulk-roster li:last-child{border-bottom:0}.bulk-roster-meta{color:var(--text-muted);overflow-wrap:anywhere;margin-left:auto}.bulk-note{color:var(--text-muted);margin:0;font-size:13px;line-height:1.6}.bulk-passwords{border-radius:var(--radius-small);background:var(--warning-soft);border:1px solid #f0d6ab;gap:8px;padding:12px 14px;font-size:13px;display:grid}.bulk-passwords>span[role=status]{color:var(--warning)}.bulk-password-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.bulk-password-name{overflow-wrap:anywhere;min-width:0}.bulk-password-row code{border:1px solid var(--border);background:var(--surface-strong);border-radius:4px;padding:2px 8px;font-size:14px}.selection-bar{z-index:var(--z-shell-header);border-top:1px solid var(--border);background:var(--surface-strong);padding:10px calc(16px + env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) calc(16px + env(safe-area-inset-left,0px));align-items:center;gap:10px;display:flex;position:fixed;inset:auto 0 0;box-shadow:0 -4px 16px #17212b1a}.selection-bar-summary{flex:auto;min-width:0;font-size:14px}.auth-frame{width:min(460px,100% - 32px);margin:0 auto;padding:clamp(40px,6vw,72px) 0 32px}.auth-service-title{color:var(--text);letter-spacing:-.02em;text-align:center;margin:0 0 18px;font-size:25px;font-weight:680}.auth-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-strong);box-shadow:var(--shadow-card);padding:clamp(24px,4vw,32px)}.auth-card h1{letter-spacing:-.02em;margin:0;font-size:24px;font-weight:680}.auth-body{gap:16px;margin-top:24px;display:grid}.auth-form{gap:16px;display:grid}.auth-hint{color:var(--text-muted);margin:0;font-size:13px;line-height:1.6}.auth-reason-banner{border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-small);background:var(--accent-soft);color:var(--accent-strong);margin:0;padding:12px 14px;font-size:13px;line-height:1.6}.auth-lock-note{border-radius:var(--radius-small);background:var(--warning-soft);color:var(--warning);margin:0;padding:12px 14px;font-size:13px;font-weight:600;line-height:1.6}.auth-footer{color:var(--text-muted);text-align:center;margin:20px 0 0;font-size:12px;line-height:1.6}.auth-footer a{color:var(--accent-strong)}.auth-card>.auth-hint{margin-top:10px}.loading-state{gap:12px;padding-top:18px;display:grid}.loading-state>span:not(.visually-hidden){border-radius:var(--radius-small);background:linear-gradient(90deg, var(--surface-muted) 25%, #f6f9fb 45%, var(--surface-muted) 65%);background-size:300% 100%;height:40px}@media (prefers-reduced-motion:no-preference){.loading-state>span:not(.visually-hidden){animation:1.25s ease-in-out infinite loading-sweep}}@keyframes loading-sweep{0%{background-position:100% 0}to{background-position:0 0}}.detail-panel,.wizard,.history-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);gap:18px;padding:20px;display:grid}.console-detail .detail-panel{background:0 0;border:0;padding:0}.detail-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.detail-heading h3{letter-spacing:-.01em;margin:0;font-size:18px}.detail-heading p{color:var(--text-muted);margin:6px 0 0;font-size:13px;line-height:1.5}.detail-identity{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px 20px;margin:0;display:grid}.detail-identity dt{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.detail-identity dd{overflow-wrap:anywhere;margin:4px 0 0;font-size:13px}.operation-id{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.detail-actions,.wizard-form-actions,.wizard-recovery-actions,.detail-recovery-actions,.history-row-actions,.operation-actions{flex-wrap:wrap;gap:10px;display:flex}.detail-state,.wizard-state,.history-state{gap:14px;display:grid}.detail-state:empty,.wizard-state:empty,.history-state:empty{display:none}.wizard-form{gap:14px;display:grid}.user-status{align-items:center;font-weight:650;display:inline-flex}.user-status-active{color:var(--success)}.user-status-disabled{color:var(--danger)}.operation-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-strong);gap:14px;padding:16px;display:grid}.operation-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.operation-head strong{font-size:14px}.operation-status{border-radius:999px;padding:3px 10px;font-size:12px;font-weight:650}.operation-status-RUNNING{background:var(--surface-muted);color:var(--accent-strong)}.operation-status-SUCCEEDED{background:var(--success-soft);color:var(--success)}.operation-status-FAILED{background:var(--danger-soft);color:var(--danger)}.operation-status-MANUAL_ACTION_REQUIRED{background:var(--warning-soft);color:var(--warning)}.operation-status-MANUAL_ACTION_RESOLVED{background:var(--success-soft);color:var(--success)}.operation-progress{justify-content:flex-start;display:flex}.action-progress{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-strong);gap:10px;padding:16px;display:grid}.action-progress strong{font-size:13px}.action-progress span{color:var(--text-muted);font-size:12px;line-height:1.5}.secret-block{border:1px solid var(--warning);border-radius:var(--radius);background:var(--warning-soft);gap:8px;padding:16px;display:grid}.secret-block strong{font-size:13px}.secret-block code{letter-spacing:.04em;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:16px}.secret-block span{color:var(--text-muted);font-size:12px;line-height:1.5}.secret-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.confirm-body{gap:12px;display:grid}.confirm-list{gap:6px;margin:0;padding-left:18px;font-size:13px;line-height:1.55;display:grid}.confirm-note{color:var(--text-muted);margin:0;font-size:12px;line-height:1.5}.logout-control{align-items:center;gap:10px;display:inline-flex}.logout-error{color:var(--danger);font-size:12px}.fui-MessageBar{white-space:normal;min-width:0;max-width:100%}.fui-MessageBar .fui-MessageBarBody{white-space:normal;overflow-wrap:anywhere}.topbar-link-primary{border-color:var(--accent);background:var(--accent);color:var(--surface-strong)}.topbar-link-primary:hover{border-color:var(--accent-strong);background:var(--accent-strong);color:var(--surface-strong)}.tech-info{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface-muted);padding:8px 12px;font-size:12px}.tech-info summary{cursor:pointer;color:var(--text-muted)}.tech-info-body{color:var(--text-muted);white-space:pre-wrap;word-break:break-all;margin:8px 0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.6;overflow-x:auto}.tech-info-fields{gap:4px;margin:8px 0;display:grid}.detail-troubleshoot{border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface-muted);padding:12px 16px;font-size:13px}.detail-troubleshoot summary{cursor:pointer;font-weight:600}.detail-troubleshoot p{color:var(--text-muted);margin:10px 0;line-height:1.6}.detail-history-link,.wizard-summary-link,.history-target-link{min-height:32px;color:var(--accent);text-underline-offset:3px;align-items:center;font-weight:600;text-decoration:underline;display:inline-flex}.detail-history-link:hover,.wizard-summary-link:hover,.history-target-link:hover{color:var(--accent-strong)}.secret-actions{flex-wrap:wrap;gap:8px;display:flex}.wizard-heading{gap:6px;display:grid}.wizard-heading h1,.wizard-heading h2{margin:0;font-size:20px}.wizard-heading p{max-width:62ch;color:var(--text-muted);margin:0;font-size:13px;line-height:1.6}.wizard-progress{gap:10px;padding:2px 0 4px;display:grid}.wizard-progress-heading{color:var(--text-muted);justify-content:space-between;align-items:center;font-size:12px;font-weight:650;display:flex}.wizard-progress-heading span:last-child{font-variant-numeric:tabular-nums}.wizard-steps{grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.wizard-step{min-width:0;min-height:36px;color:var(--text-muted);align-items:center;gap:7px;padding-right:8px;font-size:13px;display:flex;position:relative}.wizard-step:not(:last-child):after{z-index:0;background:var(--border);content:"";height:2px;position:absolute;top:50%;left:30px;right:-15px;transform:translateY(-50%)}.wizard-step[data-status=complete]:after{background:var(--accent)}.wizard-step-number,.wizard-step-label{z-index:1;position:relative}.wizard-step-number{border:2px solid var(--border-strong);background:var(--surface);border-radius:50%;flex:0 0 30px;place-items:center;width:30px;height:30px;font-size:12px;font-weight:700;display:grid}.wizard-step-label{background:var(--surface);white-space:nowrap;padding-right:6px}.wizard-step[data-status=complete] .wizard-step-number{border-color:var(--accent);background:var(--accent);color:var(--surface-strong)}.wizard-step[data-status=complete] .wizard-step-label{color:var(--accent-strong);font-weight:600}.wizard-step[data-status=current] .wizard-step-number{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong);box-shadow:0 0 0 3px var(--surface)}.wizard-step[data-status=current] .wizard-step-label{color:var(--text);font-weight:600}.wizard-advanced{border:1px dashed var(--border-strong);border-radius:var(--radius-small);background:var(--surface-muted);padding:10px 14px;font-size:13px}.wizard-advanced summary{cursor:pointer;color:var(--text-muted)}.wizard-note{color:var(--text-muted);margin:0;font-size:12px;line-height:1.6}.wizard-cancel-link{min-height:var(--touch-target);border:1px solid var(--border-strong);border-radius:var(--radius-small);background:var(--surface-strong);color:var(--text);justify-content:center;align-items:center;padding:0 16px;font-size:14px;font-weight:600;text-decoration:none;transition:background-color .12s,border-color .12s,color .12s,transform 80ms;display:inline-flex}.wizard-cancel-link:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.wizard-cancel-link:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}.wizard-cancel-link:active{transform:translateY(1px)}.wizard-input-actions{align-items:stretch}.wizard-input-actions>button{min-height:var(--touch-target)}.wizard-echo{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-strong);gap:12px;padding:16px;display:grid}.wizard-echo>strong{font-size:13px}.wizard-summary{border:1px solid var(--success);border-radius:var(--radius);background:var(--success-soft);gap:12px;padding:16px;display:grid}.wizard-summary>strong{color:var(--success)}.history-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.history-heading h1,.history-heading h2{margin:0;font-size:20px}.history-chips{flex-wrap:wrap;gap:8px;display:flex}.history-count{color:var(--text-muted);font-size:12px}.history-empty{border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--text-muted);text-align:center;margin:0;padding:24px 16px;font-size:13px}.history-rows{gap:12px;margin:0;padding:0;list-style:none;display:grid}.history-row{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-strong);gap:10px;padding:14px 16px;display:grid}.history-row-actions>button{min-height:var(--touch-target)}.history-row-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.history-row-head strong{font-size:14px}.history-row-time{color:var(--text-muted);font-size:12px}.history-row-target{margin:0;font-size:13px}.history-row-guidance{color:var(--text-muted);margin:0;font-size:13px;line-height:1.6}.history-row-monitor{gap:12px;display:grid}@media (max-width:1023px){.console-grid{grid-template-columns:minmax(0,1fr)}.console-detail{max-height:none;position:static;overflow:visible}.console-frame{padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}.teacher-list{max-height:calc(100dvh - 156px - clamp(16px,2.5vw,28px))}}@media (max-width:640px){.topbar{padding:calc(10px + env(safe-area-inset-top,0px)) calc(16px + env(safe-area-inset-right,0px)) 10px calc(16px + env(safe-area-inset-left,0px));align-items:flex-start}.topbar-actions{width:100%}.console-frame{padding-left:calc(12px + env(safe-area-inset-left,0px));padding-right:calc(12px + env(safe-area-inset-right,0px))}.teacher-list{max-height:none}.teacher-rows{overflow-y:visible}.teacher-toolbar-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;display:grid}.teacher-toolbar-controls>.teacher-control-group:first-child{grid-column:1/-1}.teacher-segmented-control{width:100%}.teacher-segmented-control>.teacher-segment{flex:1 1 0;min-width:0}.teacher-toolbar-controls>button{width:100%}.detail-heading{flex-direction:column;align-items:stretch}.detail-identity{grid-template-columns:minmax(0,1fr)}.wizard{padding:16px}.wizard-step{gap:4px;padding-right:4px;font-size:12px}.wizard-step:not(:last-child):after{left:26px;right:-13px}.wizard-step-number{flex-basis:26px;width:26px;height:26px;font-size:11px}.wizard-step-label{padding-right:4px}.wizard-input-actions{grid-template-columns:minmax(0,1fr);display:grid}.wizard-input-actions>*{width:100%}}
