:root{color:#26344a;font-synthesis:none;--coral:#ff6f61;--coral-dark:#ed594e;--navy:#26344a;--navy-2:#172235;--line:#dde3ec;--muted:#68758a;--sky:#dff4ff;--white:#fff;background:#f4f6f9;font-family:Pretendard,Noto Sans KR,system-ui,sans-serif;line-height:1.6}*{box-sizing:border-box}body{background:#f4f6f9;min-width:320px;margin:0}button,input,select{font:inherit}:where(.app-shell,.login-layout,.login-shell) button{cursor:pointer;background:var(--coral);min-height:44px;color:var(--white);border:0;border-radius:12px;padding:10px 16px;font-weight:800;transition:all .18s;box-shadow:0 7px 18px #ff6f6133}:where(.app-shell,.login-layout,.login-shell) button:hover:not(:disabled){transform:translateY(-1px)}:where(.app-shell,.login-layout,.login-shell) button:where(:not(.secondary,.ghost,.danger,.text-button)):hover:not(:disabled){background:var(--coral-dark)}:where(.app-shell,.login-layout,.login-shell) button.secondary{color:var(--navy);border:1px solid var(--line);box-shadow:none;background:#f1f4f8}:where(.app-shell,.login-layout,.login-shell) button.secondary:hover:not(:disabled){background:#e7edf4;border-color:#cbd5e1}:where(.app-shell,.login-layout,.login-shell) button.ghost{color:var(--navy);box-shadow:none;background:#f1f4f8}:where(.app-shell,.login-layout,.login-shell) button.danger{color:#c74438;box-shadow:none;background:#fff0ee;border:1px solid #ffd2ce}:where(.app-shell,.login-layout,.login-shell) button:disabled{opacity:.55;cursor:not-allowed;transform:none}:where(.app-shell,.login-layout,.login-shell) input,:where(.app-shell,.login-layout,.login-shell) select{border:1px solid var(--line);width:100%;min-width:0;min-height:48px;color:var(--navy);background:var(--white);border-radius:12px;padding:13px 14px}:where(.app-shell,.login-layout,.login-shell) input:focus,:where(.app-shell,.login-layout,.login-shell) select:focus{border-color:var(--coral);box-shadow:0 0 0 3px #ff6f6124}:where(.app-shell,.login-layout,.login-shell) input[type=checkbox]{width:18px;height:18px;min-height:auto;accent-color:var(--coral);flex:none;padding:0}label{color:var(--navy);gap:8px;font-size:14px;font-weight:700;display:grid}.checkbox{align-items:center;gap:10px;margin-block:12px;display:flex}fieldset{border:0;min-width:0;margin:0;padding:0}fieldset fieldset{margin-block:14px}.app-shell{grid-template-columns:292px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--navy-2);height:100vh;color:var(--white);flex-direction:column;gap:16px;padding:20px 18px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar>*{flex-shrink:0}.brand-row{text-align:center;border-bottom:1px solid #ffffff1a;flex-direction:column;justify-content:center;align-items:center;gap:16px;width:100%;padding:8px 0 20px;display:flex}.sidebar-logo{object-fit:contain;width:220px;max-width:100%;height:auto;margin:0 auto;display:block}.brand-row h1{width:100%;color:var(--white);letter-spacing:-.02em;text-align:center;white-space:nowrap;margin:0;font-size:21px;font-weight:900;line-height:1.4}.section-tabs{background:#ffffff12;border-radius:16px;flex:none;grid-template-columns:1fr;gap:6px;padding:6px;display:grid}.section-tabs .section-tab{color:#aab4c5;text-align:left;white-space:nowrap;border-radius:10px;align-items:center;gap:12px;min-height:48px;padding:10px 14px;font-size:14px;font-weight:800;line-height:1.2;text-decoration:none;display:flex}.section-tabs .section-tab:hover{background:#ffffff0f}.section-tabs .section-tab.active{background:var(--white);color:var(--navy);box-shadow:0 5px 15px #00000021}.section-tab-icon{color:#ff9c91;background:#ffffff14;border-radius:8px;flex:none;place-items:center;width:26px;height:26px;font-size:15px;display:grid}.section-tab.active .section-tab-icon{color:var(--coral);background:#fff0ee}.account-box{border-top:1px solid #ffffff1a;justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:18px;display:flex}.account-box>div{overflow-wrap:anywhere;min-width:0}.account-box strong{font-size:14px;display:block}.sidebar .text-button,.sidebar .text-button:hover:not(:disabled){color:#ff9c91;min-height:44px;box-shadow:none;background:0 0;border:0;flex:none;padding:7px 0;font-size:13px;font-weight:800;transform:none}.workspace{min-width:0;padding:30px 36px 54px}.topbar{justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px;display:flex}.topbar h2{margin:0;font-size:30px}.page-title{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}h1{margin:0;font-size:clamp(1.4rem,4vw,1.9rem)}h2{margin:0 0 16px;font-size:1.45rem}h3{margin-top:0}.eyebrow{letter-spacing:.16em;color:#8993a5;margin:0 0 6px;font-size:12px;font-weight:800}.eyebrow.coral{color:var(--coral)}.mock-banner{color:#59491c;background:#fff8dd;border:1px solid #dfcf8f;border-radius:8px;margin-block:20px;padding:12px 16px;font-weight:700}.mock-banner span{margin-left:16px;font-size:.85rem;font-weight:400;display:inline-block}main{min-width:0}.card,.panel{background:var(--white);border:1px solid #e3e8ef;border-radius:22px;margin-block:16px;padding:24px;box-shadow:0 8px 26px #26344a0d}.count-pill{color:#637086;background:#f0f3f7;border-radius:999px;padding:6px 10px;font-size:13px;font-weight:800}.login-layout{background:#f7f8fb;flex-direction:column;min-height:100vh;display:flex}.login-layout>main{flex-direction:column;flex:1;display:flex}.login-layout>main>.mock-banner{margin:16px 18px 0}.login-shell{background:radial-gradient(circle at 15% 20%,#ffe5df 0,#0000 28%),radial-gradient(circle at 90% 80%,#dff4ff 0,#0000 30%),#f7f8fb;place-items:center;min-height:100vh;padding:32px;display:grid}.login-layout .login-shell{flex:1;min-height:0}.login-card{background:var(--white);border:1px solid #fffc;border-radius:28px;width:min(100%,460px);min-width:0;padding:44px;box-shadow:0 24px 70px #26344a24}.login-logo{object-fit:contain;width:min(100%,330px);height:auto;margin:0 auto 28px;display:block}.login-card h1{color:var(--navy);text-align:center;margin-bottom:8px;font-size:36px}.login-card h2,.login-card .eyebrow{text-align:center}.login-copy{color:var(--muted);text-align:center;margin-bottom:30px;font-size:16px}.login-form,.login-form>fieldset{gap:16px;display:grid}.login-card .wide{width:100%}.login-card .form-error{color:#c74438;min-height:22px;margin:4px 0;font-size:14px}.form-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end;gap:16px;margin-bottom:16px;display:grid}.actions{flex-wrap:wrap;gap:8px;display:flex}.deployment-status-header{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.deployment-status-header h3{margin-top:0}.deployment-status-header p{color:var(--muted);margin-bottom:0}.deployment-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px;display:grid}.deployment-grid-production{grid-template-columns:minmax(0,1fr)}.deployment-grid-production .deployment-card>*{max-width:960px}.deployment-card{min-width:0;box-shadow:none;margin:0}.deployment-card-title{justify-content:space-between;align-items:center;gap:12px;display:flex}.deployment-card-title h4{margin:0;font-size:18px}.deployment-version{color:var(--navy);margin:16px 0 8px;font-size:28px;display:block}.deployment-card p{margin:8px 0}.deployment-release-id{overflow-wrap:anywhere}.deployment-audience{border-top:1px solid var(--line);color:var(--muted);padding-top:10px;font-size:14px}.deployment-empty{color:var(--muted)}.audience-selector{border:1px solid var(--line);border-radius:16px;margin-top:18px;padding:18px}.audience-selector legend{color:var(--navy);padding:0 8px;font-weight:800}.audience-selection-tools{flex-wrap:wrap;align-items:end;gap:10px;margin:6px 0 14px;display:flex}.audience-selection-tools label{min-width:190px}.audience-selection-tools .count-pill{margin-left:auto}.audience-teacher-list{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px 16px;padding:12px 0;display:grid}.audience-teacher-list .checkbox{margin:0;padding:7px 4px}.audience-teacher-list small{color:var(--muted);font-size:12px;font-weight:600}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.stats strong{font-size:2rem;display:block}.shortcut-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.shortcut-grid a{color:var(--navy);margin:0;text-decoration:none}.dashboard-note{color:var(--muted);font-size:14px}.dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr));margin:20px 0 28px}.dashboard-stats .card{margin:0;padding:20px}.dashboard-stats .card>span{color:var(--muted);font-size:14px;font-weight:700}.dashboard-stats strong{margin-top:6px;font-size:28px;line-height:1.3}.dashboard-stats p{margin:8px 0 0}.dashboard-page .shortcut-grid a{justify-content:space-between;align-items:center;gap:12px;padding:18px 20px;font-weight:700;display:flex}.dashboard-page .shortcut-grid a>span{color:var(--coral)}.dashboard-page .shortcut-grid a:hover{border-color:var(--coral)}.table-scroll{border:1px solid #dce2ec;border-radius:8px;margin-top:16px;overflow-x:auto}.workspace table{border-collapse:collapse;background:#fff;width:100%}.workspace :is(th,td){text-align:left;border-bottom:1px solid #e2e6ed;min-width:100px;padding:14px}.workspace th{background:#eef1f7;font-size:.9rem}.workspace caption{text-align:left;padding:12px 14px;font-weight:700}.employee-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:20px 0 16px;display:grid}.employee-stats .card{margin:0;padding:20px}.employee-stats dt{color:var(--muted);font-size:14px;font-weight:700}.employee-stats dd{margin:8px 0 0;font-size:28px;font-weight:800}.employee-filters{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:end;gap:16px;display:grid}.employee-result-count{color:var(--muted);margin:16px 0 8px;font-size:14px}.employee-directory .table-scroll{border-radius:16px;margin-top:12px}.employee-directory table{min-width:820px}.employee-directory td{vertical-align:top;overflow-wrap:anywhere}.employee-directory td .actions button{min-height:36px;padding:8px 10px;font-size:13px}.employee-status{white-space:nowrap;border-radius:999px;padding:5px 10px;font-size:13px;font-weight:700;display:inline-block}.employee-status-running{color:#216b46;background:#e9f6ee}.employee-status-needsChange{color:#805c08;background:#fff4d6}.employee-status-stopped{color:#526174;background:#eef1f5}.employee-status-unknown{color:#68758a;background:#f4f5f7}.employee-pagination{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;margin-top:16px;font-size:14px;display:flex}.lesson-name{color:var(--navy);text-underline-offset:3px;font-weight:800}.lesson-back{border:1px solid var(--line);color:var(--navy);background:#f1f4f8;border-radius:12px;margin:16px 0;padding:8px 14px;font-weight:800;text-decoration:none;display:inline-block}.lesson-back:hover{background:#e7edf4}.lesson-group th{background:#f4f6f9}.lesson-group h3{margin:0;font-size:16px}small{color:var(--muted);display:block}.scenario{background:#edf0f6;border-radius:8px;margin-bottom:24px;padding:12px 16px}summary{cursor:pointer;font-weight:600}[role=alert]{color:#9e2824;border:1px solid #e0b5b3;border-radius:6px;padding:12px}[role=status]{overflow-wrap:anywhere}.dialog-backdrop{z-index:10;background:#16223788;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.dialog{width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 16px 60px #0003}.skip-link{background:#fff;padding:10px;position:absolute;top:-100px}.skip-link:focus{z-index:20;top:8px}:focus-visible{outline:3px solid var(--coral);outline-offset:3px}@media (width<=880px){.app-shell{grid-template-columns:minmax(0,1fr)}.sidebar{height:auto;padding:18px;position:relative}.brand-row{border-bottom:0;gap:14px;padding:6px 0 16px}.brand-row h1{font-size:20px}.section-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.section-tabs .section-tab{justify-content:center;padding:10px 8px}.section-tab-icon{display:none}.workspace{padding:24px 18px 50px}.topbar{align-items:flex-start}.login-card{padding:32px 24px}}@media (width<=760px){.mock-banner span{margin-left:0;display:block}.stats,.shortcut-grid,.deployment-grid{grid-template-columns:minmax(0,1fr)}.deployment-status-header{flex-direction:column}.deployment-status-header button{width:100%}.audience-selection-tools{align-items:stretch}.audience-selection-tools label,.audience-selection-tools button{width:100%}.audience-selection-tools .count-pill{text-align:center;margin-left:0}.form-grid{grid-template-columns:minmax(0,1fr)}.stats .card{margin-block:0}}@media (width<=560px){.section-tabs{grid-template-columns:1fr}.section-tabs .section-tab{justify-content:flex-start;padding-left:14px}.section-tab-icon{display:grid}.brand-row h1{font-size:19px}.workspace{padding-inline:12px}}@media (width<=520px){.card,.panel{padding:18px}.section-tabs .section-tab{padding:9px 5px;font-size:12px}.topbar h2{font-size:24px}.login-logo{width:min(100%,290px)}}.publication-badge{border-radius:999px;padding:4px 10px;font-size:13px;font-weight:700;display:inline-block}.publication-public{color:#286447;background:#e8f4ed}.publication-private,.publication-unknown{color:#526174;background:#eef1f5}.publication-scheduled{color:#805817;background:#fff1db}.cover-preview{aspect-ratio:1;object-fit:contain;width:min(100%,520px);height:auto;margin:16px 0;display:block}.cover-generator>label{max-width:680px;margin-block:12px}.cover-generator textarea{width:100%;min-width:0;font:inherit;border:1px solid var(--line);resize:vertical;border-radius:12px;padding:12px}.audio-preview audio{width:min(100%,420px);margin:12px 0}.audio-drop-zone{border:1px dashed var(--line);color:var(--navy);background:#f7f9fc;border-radius:14px;margin:12px 0;padding:16px}.audio-drop-zone.is-dragging{border-color:var(--coral);background:#fff4f1}.audio-drop-zone p{margin:0 0 8px}.audio-drop-zone[aria-disabled=true]{opacity:.6}.device-page .device-account dl{grid-template-columns:max-content 1fr;gap:8px 20px;display:grid}.device-page dd{margin:0;font-weight:700}.device-details{color:var(--muted);overflow-wrap:anywhere;margin:12px 0}.device-details summary{cursor:pointer}.device-actions{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}.device-actions h4{margin:0 0 12px}.device-help{color:var(--muted);font-size:14px}.device-page .table-scroll{border-radius:14px}.device-page :is(th,td){vertical-align:top;font-size:13px}.device-id{white-space:nowrap;font-family:ui-monospace,monospace;font-size:12px}.device-badge{white-space:nowrap;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:700;display:inline-block}.device-badge-active,.device-badge-current{color:#286447;background:#e8f4ed}.device-badge-closed,.device-badge-old{color:#526174;background:#eef1f5}.device-badge-unknown{color:#805817;background:#fff1db}
