/* Shared legacy administrator design. Screen-only: never styles export SVG/PDF. */
@media screen {
:root{background:#faf9f6;--ab-sidebar:222px;--ab-topbar:58px;--ab-canvas:#faf9f6;--ab-surface:#fff;--ab-ink:#111827;--ab-muted:#6f6a61;--ab-line:#e7e2da;--ab-strong:#d6d0c7;--ab-button-height:32px;--ab-input-height:30px;--ab-radius:8px;--ab-font:13px;--ab-small:11px;--ab-table-font:12px;--ab-space:8px}
body.admin-ui{font:var(--ab-font)/1.45 Inter,'Noto Sans KR','Segoe UI','Malgun Gothic',sans-serif;color:var(--ab-ink);background:var(--ab-canvas);margin:0}
.admin-ui button,.admin-ui input,.admin-ui select,.admin-ui textarea{font-family:inherit;font-size:12px;color:var(--ab-ink);border:1px solid var(--ab-strong);border-radius:var(--ab-radius);padding:5px 8px;min-height:var(--ab-input-height);max-width:100%;background:white;line-height:1.4}
.admin-ui button{min-height:var(--ab-button-height);padding:6px 12px;font-weight:700;cursor:pointer;width:auto;margin:0;box-shadow:none}
.admin-ui button:hover{background:#f5f3ef;color:var(--ab-ink)}.admin-ui button:disabled{opacity:.5;cursor:not-allowed}
.admin-ui button.primary{background:#111827;border-color:#111827;color:white}.admin-ui button.danger{color:#b91c1c;border-color:#f2b6b6;background:#fff1f2}
.admin-ui :is(input,select,textarea,button,a):focus-visible{outline:2px solid #534ab7;outline-offset:2px}
.admin-ui :is(input,select,textarea){font-weight:400}
.admin-ui label:has(>input[type=checkbox]){display:flex;flex-direction:row;align-items:center;gap:6px}
.admin-ui #carryovers{display:grid;gap:6px}.admin-ui #carryovers label{margin:0;padding:4px 0}
.admin-ui .admin-sidebar #recent{margin-top:10px}
.admin-ui input[type=checkbox]{width:auto;min-height:0;flex:none;accent-color:#111827}.admin-ui textarea{resize:vertical;height:auto;min-height:60px}
.admin-ui label{font-size:12px;font-weight:600;gap:5px;margin:0;min-width:0;line-height:1.4}.admin-ui h1{font-size:15px;margin:0 0 8px;font-weight:800}.admin-ui h2{font-size:13px;margin:0 0 8px;font-weight:800}.admin-ui h3{font-size:12px;margin:12px 0 6px}.admin-ui p{margin:6px 0}.admin-ui small,.admin-ui .hint{font-size:var(--ab-small);color:var(--ab-muted)}
body.admin-ui>header.admin-topbar{margin-left:var(--ab-sidebar);height:var(--ab-topbar);min-height:var(--ab-topbar);padding:8px 18px;background:white;color:var(--ab-ink);border-bottom:1px solid var(--ab-line);display:flex;align-items:center;gap:10px;flex-wrap:nowrap;justify-content:flex-start}
.admin-topbar a{color:var(--ab-ink);font-size:11px}.admin-topbar .work-title{display:block;font-size:15px;font-weight:800;white-space:nowrap}.admin-topbar>strong:not(.work-title),.admin-topbar>b,.admin-topbar>.brand,.admin-topbar>a,.admin-topbar>.sandbox{display:none}.admin-topbar #identity{margin-left:auto;font-size:11px;display:flex;gap:6px;align-items:center}.admin-topbar button{white-space:nowrap;font-size:11px}
body.admin-ui #legacy-menu.admin-sidebar{position:fixed!important;inset:0 auto 0 0!important;width:var(--ab-sidebar);min-height:100vh;background:#111827;color:#fff;padding:16px 12px;border:0;margin:0;overflow:auto;z-index:6;display:block}
.admin-sidebar .sidebar-brand{display:block;color:#fff;font-size:15px;font-weight:800;padding:0 2px 14px}.admin-sidebar .sidebar-brand small{display:block;font-size:11px;color:#aeb3bd;margin-top:4px}.admin-sidebar>label{display:flex;width:100%;margin:0 0 8px;font-size:11px}.admin-sidebar select{width:100%;height:36px;background:white;color:var(--ab-ink)}
body.admin-ui #legacy-menu nav{display:flex;flex-direction:column;align-items:stretch;gap:2px;margin:10px 0 0;padding:0;overflow:visible;flex-wrap:nowrap;width:auto}
body.admin-ui #legacy-menu nav>*{display:block;min-height:36px;width:100%;padding:9px 10px;border:0;border-radius:8px;background:transparent;color:#b9bec8;font-size:12px;font-weight:600;line-height:18px;text-decoration:none;text-align:left;white-space:normal;margin:0}
body.admin-ui #legacy-menu nav>.selected,body.admin-ui #legacy-menu nav>*:hover{background:#ffffff21;color:white;box-shadow:inset 0 0 0 1px #ffffff14}
.admin-sidebar .aside-note{font-size:10px;line-height:1.5;margin-top:12px;color:#aeb3bd}
body.admin-ui main#app,body.admin-ui[data-admin-page=accounts]>main{max-width:none;margin:0 0 0 var(--ab-sidebar);padding:12px 18px;min-width:0}
body.admin-ui #app>.workspace{margin-left:var(--ab-sidebar);padding:12px 18px;max-width:none;min-width:0}
.admin-ui>.banner,.admin-ui>.notice{margin:0 0 0 var(--ab-sidebar);padding:5px 18px;font-size:11px;background:#fff8e7;color:#77571b}
.admin-ui :is(.controls,.toolbar){display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 8px;padding:0}
.admin-ui .controls>label{display:flex;flex-direction:row;align-items:center;gap:6px}.admin-ui .controls input:not([type=checkbox]),.admin-ui .controls select{width:auto;max-width:240px}.admin-ui .controls input[type=number]{width:75px}
.admin-ui :is(.panel,#content,#output,#comment-panel){border:1px solid var(--ab-line);border-radius:8px;background:white;padding:10px;box-shadow:none;min-width:0;overflow:auto}
.admin-ui #output:has(>svg){padding:20px}
.admin-ui :is(#comment-panel, #backup-status){margin-top:10px}.admin-ui #comment-panel>label{display:inline-flex;margin:4px 8px 4px 0;vertical-align:middle}.admin-ui #comment-panel>label:has(textarea){display:flex}.admin-ui #comment{width:100%;max-width:900px}.admin-ui #comment-panel button{margin:3px 4px 3px 0}
.admin-ui :is(#content,#output,#students-panel) table{font-size:var(--ab-table-font);width:100%;border-collapse:collapse}
.admin-ui :is(#content,#output,#students-panel) :is(th,td){padding:6px 8px;border:1px solid var(--ab-line);font-size:12px;line-height:18px;text-align:left}
.admin-ui :is(#content,#output,#students-panel) th{font-size:11px;font-weight:800;background:#f4f2ee;position:sticky;top:0;z-index:1}
.admin-ui :is(#content,#output,#students-panel) td button{min-height:26px;font-size:11px;padding:3px 8px}.admin-ui :is(#content,#output,#students-panel) td input{min-height:25px;height:25px;padding:3px 6px}
.admin-ui #content td:has([data-history]){min-width:145px}.admin-ui #content td:has([data-history])>span{display:block;font-size:11px}.admin-ui #content td input[type=number]{max-width:100px}
.admin-ui #content table:has(pre){min-width:800px}.admin-ui #content table:has(pre) pre{min-width:220px}.admin-ui #content table:has([data-saveclass]){min-width:640px}.admin-ui #content table:has([data-history]) :is(th,td):first-child{min-width:110px}
.admin-ui pre{font:11px/1.45 Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;max-width:360px;margin:0}
.admin-ui :is(#status,#context,#message){font-size:11px;overflow-wrap:anywhere;min-height:0;margin:6px 0;padding:0}.admin-ui #status:empty{display:none}
.admin-ui .warning,.admin-ui .notice,.admin-ui .error{font-size:12px;padding:8px;border-radius:6px}.admin-ui .empty{padding:20px;text-align:center;font-size:12px;color:var(--ab-muted)}
.admin-ui dialog{width:min(680px,94vw);border:1px solid var(--ab-line);border-radius:12px;padding:16px;max-width:min(940px,94vw);max-height:90vh;overflow:auto;color:var(--ab-ink);background:white;font-size:13px;line-height:1.5}.admin-ui dialog::backdrop{background:#1118276b}.admin-ui dialog form{margin:8px 0;gap:8px}.admin-ui dialog h2{font-size:16px}
.admin-ui[data-admin-page=accounts] section,.admin-ui[data-admin-page=accounts] details{padding:12px;margin:10px 0;border:1px solid var(--ab-line);border-radius:8px}.admin-ui[data-admin-page=accounts] #signed{padding:0;border:0;background:transparent}.admin-ui[data-admin-page=accounts] form{display:flex;gap:8px;align-items:end;flex-wrap:wrap;margin:8px 0}.admin-ui[data-admin-page=accounts] label{min-width:160px;flex:1}.admin-ui[data-admin-page=accounts] input,.admin-ui[data-admin-page=accounts] select{min-height:30px;height:30px}.admin-ui[data-admin-page=accounts] .notice{padding:6px 10px;font-size:11px}.admin-ui[data-admin-page=accounts] ul{margin:5px 0;padding-left:20px}
.admin-ui #contact-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px}.admin-ui #content>label{margin:4px 8px 4px 0}.admin-ui #students-panel td small{display:inline;font-size:10px;margin-left:6px}.admin-ui #students-panel td{height:36px;padding:3px 8px}.admin-ui #students-panel th{height:30px}.admin-ui #students-panel td:first-child{min-width:160px}.admin-ui #content .check-label{display:flex;flex-direction:row;align-items:center}.admin-ui #classes{display:flex;flex-wrap:wrap;gap:4px 24px;max-height:120px;overflow:auto}.admin-ui #classes li{min-width:200px}.admin-ui #contact-fields input{width:100%}
/* The classroom grid retains its proven 25px controls and shared draft geometry. */
.admin-ui #grid :is(input,select){height:25px;min-height:25px;font-size:12px;padding:3px 6px}.admin-ui #grid textarea{min-height:25px}.admin-ui #lesson-form textarea{min-height:30px}.admin-ui #header-details{padding:0}.admin-ui #grid{padding:0}.admin-ui .quickbar button{min-height:24px;padding:2px 8px;font-size:11px}
@media(max-width:850px){
 .admin-ui #contact-fields{grid-template-columns:1fr}.admin-ui #classes{max-height:160px}
 body.admin-ui>header.admin-topbar{margin:0;padding:6px 10px;height:auto;min-height:58px;flex-wrap:wrap;gap:6px}.admin-topbar .work-title{font-size:13px;flex:1}.admin-topbar #identity{font-size:10px;margin-left:0}.admin-topbar button{font-size:10px;padding:4px 7px;min-height:28px}
 body.admin-ui #legacy-menu.admin-sidebar{position:static!important;inset:auto!important;width:100%;min-height:0;max-height:none;padding:10px 12px;overflow:visible}.admin-sidebar .sidebar-brand{display:none}.admin-sidebar>label{margin:0 0 6px}.admin-sidebar select{height:32px}
 body.admin-ui #legacy-menu nav{flex-direction:row;overflow-x:auto;gap:3px;margin-top:6px}body.admin-ui #legacy-menu nav>*{width:auto;min-height:32px;padding:7px 9px;white-space:nowrap;flex-shrink:0;font-size:11px}.admin-sidebar .aside-note{display:none}
 body.admin-ui main#app,body.admin-ui[data-admin-page=accounts]>main{margin:0;padding:0 10px 10px}body.admin-ui #app>.workspace{margin:0;padding:10px;width:100%}body.admin-ui #app{display:block}body.admin-ui main#app>#legacy-menu{margin:0 -10px 10px;width:calc(100% + 20px)}body.admin-ui[data-admin-page=accounts]>main>#legacy-menu{margin:0 -10px 10px;width:calc(100% + 20px)}
 .admin-ui>.banner,.admin-ui>.notice{margin:0;padding:5px 10px}.admin-ui .controls>label{flex-wrap:wrap;min-width:0;flex:0 1 auto}.admin-ui .controls :is(input,select){max-width:100%;min-width:0}.admin-ui :is(#content,#output,#comment-panel){padding:8px}.admin-ui[data-admin-page=accounts] form{display:flex}.admin-ui[data-admin-page=accounts] label{min-width:0;flex-basis:100%}.admin-ui[data-admin-page=accounts] button{width:auto}
 .admin-ui dialog{padding:12px;max-width:94vw}.admin-ui dialog input,.admin-ui dialog select{min-width:0}.admin-ui #output:has(>svg){padding:5px}
}
}
.admin-help{margin:0;padding:6px 18px;background:#fff9e8;border-bottom:1px solid var(--admin-line,#e7e2da);font-size:12px;line-height:1.4}.admin-help[hidden]{display:none}#admin-help-toggle{margin-left:6px}@media print{#admin-help,#admin-help-toggle{display:none!important}}
