:root{--bg:#eaeef3;--card:#fff;--surface-2:#f4f7fb;--line:#e0e6ee;--line-strong:#cbd3df;--border:#e0e6ee;--text:#1a2331;--muted:#59636f;--soft:#f4f7fb;--primary:#5b4bd6;--accent:#5b4bd6;--accent-strong:#4a3cb8;--accent-soft:#ece9fb;--accent-soft-ink:#4436a8;--danger:#b4291d;--ok:#10805a;--blue:#5b4bd6;--radius:20px;--fs-display:28px;--fs-h2:20px;--fs-h3:16px;--fs-body:15px;--fs-label:13px;--fs-caption:12px;--fs-kpi:34px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Pretendard,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Segoe UI,Roboto,sans-serif;font-size:var(--fs-body);line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{border:0;cursor:pointer}.app-shell{min-height:100vh}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:rgba(245,245,247,.84);border-bottom:1px solid rgba(229,231,235,.8)}.topbar-inner{max-width:1180px;margin:0 auto;padding:16px 20px;display:flex;gap:12px;align-items:center;justify-content:space-between}.brand{font-weight:800;font-size:22px;letter-spacing:-.04em}.container{max-width:1180px;margin:0 auto;padding:28px 20px 80px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 12px 34px rgba(15,23,42,.06);padding:22px}.card+.card{margin-top:18px}.grid{display:grid;grid-gap:18px;gap:18px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-5{grid-template-columns:repeat(5,minmax(0,1fr))}.h1{margin:0 0 8px;font-size:var(--fs-display);line-height:1.2;letter-spacing:-.03em;text-wrap:balance}.h1,.h2{font-weight:800}.h2{margin:0 0 14px;font-size:var(--fs-h2);letter-spacing:-.02em}.h3{margin:0 0 10px;font-size:var(--fs-h3);letter-spacing:-.01em;font-weight:700}.muted{color:var(--muted)}.stat{padding:20px;border-radius:20px;background:var(--soft);border:1px solid var(--line)}.stat .num{font-size:var(--fs-kpi);font-weight:800;letter-spacing:-.03em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.05}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 18px;border-radius:12px;background:var(--primary);color:#fff;font-weight:800;font-size:var(--fs-body);white-space:nowrap;transition:filter .15s ease,transform .05s ease}.btn:hover{filter:brightness(1.07)}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn.secondary{background:#fff;color:var(--text);border:1px solid var(--line-strong)}.btn.secondary:hover{background:var(--surface-2);filter:none}.btn.soft{background:var(--accent-soft);color:var(--accent-soft-ink)}.btn.soft:hover{filter:brightness(.98)}.btn.danger{background:#fdecec;color:var(--danger);border:1px solid #f6d4d4}.btn.danger:hover{background:#fbe0e0;filter:none}.btn.full{width:100%}.btn.sm{min-height:34px;padding:6px 12px;font-size:var(--fs-label);border-radius:10px}.btn.lg{min-height:50px;padding:13px 22px;font-size:var(--fs-h3);border-radius:14px}.btn-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.btn-row.end{justify-content:flex-end}.btn-row .btn{min-height:38px;padding:8px 14px;font-size:var(--fs-label);border-radius:10px}.btn-row .input,.btn-row .select{min-height:38px;padding:8px 12px;width:auto}.quick-actions{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:10px;gap:10px}.quick-actions .btn{width:100%;min-height:48px}@media (max-width:520px){.quick-actions{grid-template-columns:1fr 1fr}}.admin-shell{display:grid;grid-template-columns:286px minmax(0,1fr);min-height:100vh}.side-menu{position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow:auto;padding:22px 18px;background:hsla(0,0%,100%,.92);border-right:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.side-brand-block{padding:4px 6px 18px;border-bottom:1px solid var(--line)}.side-brand{font-size:26px;font-weight:900;letter-spacing:-.06em}.side-subtitle{margin-top:2px;color:var(--muted);font-weight:700}.version-pill{display:inline-flex;align-items:center;margin-top:10px;min-height:26px;padding:4px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent-soft-ink);font-size:12px;font-weight:900}.side-user{margin:16px 0;padding:12px;border-radius:16px;background:var(--soft);border:1px solid var(--line);display:grid;grid-gap:3px;gap:3px}.side-user span{color:var(--muted);font-size:13px}.side-nav{display:grid;grid-gap:14px;gap:14px}.side-group{padding:10px;border-radius:18px;border:1px solid transparent}.side-group.active{border-color:var(--accent-soft);background:#f8fafc}.side-main{width:100%;text-align:left;padding:4px 2px 8px;background:transparent;color:var(--text)}.side-main span{display:block;font-size:15px;font-weight:900;letter-spacing:-.04em}.side-main small{display:block;margin-top:3px;color:var(--muted);font-size:11px;line-height:1.35}.side-subnav{display:grid;grid-gap:5px;gap:5px;margin-top:6px}.side-sub{width:100%;text-align:left;min-height:34px;padding:8px 10px;border-radius:12px;background:transparent;color:#475569;font-size:13px;font-weight:800}.side-sub.active{background:var(--accent);color:#fff}.side-actions{display:grid;grid-gap:8px;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.admin-main{min-width:0}.admin-shell .topbar{position:-webkit-sticky;position:sticky;top:0;z-index:9}.admin-shell .topbar-inner{max-width:none;padding:16px 28px}.admin-content{max-width:none;padding:24px 28px 80px}.page-title{font-size:var(--fs-display);font-weight:800;line-height:1.2;letter-spacing:-.03em;text-wrap:balance}.tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px}.tab{border-radius:10px;padding:10px 15px;background:#fff;border:1px solid var(--line);font-weight:700;font-size:var(--fs-label);color:var(--muted);white-space:nowrap}.tab.active{background:var(--accent);color:#fff}.input,.select,.textarea{width:100%;border:1px solid var(--line);border-radius:16px;padding:13px 14px;background:#fff;outline:none}.textarea{min-height:110px;resize:vertical}.input:disabled,.select:disabled,.textarea:disabled{background:#f3f4f6;color:#9ca3af;cursor:not-allowed}.label{display:block;font-weight:800;margin-bottom:8px}.form-row{margin-top:16px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:18px}table{width:100%;border-collapse:collapse;background:#fff;min-width:760px}td,th{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;font-size:14px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}th{position:-webkit-sticky;position:sticky;top:0;color:var(--muted);font-weight:800;font-size:var(--fs-caption);letter-spacing:.03em;border-bottom:1px solid var(--line-strong)}tbody tr:hover td,th{background:var(--surface-2)}td.num,th.num{text-align:right}td .input,td .select{padding:8px 11px;border-radius:10px;min-width:0}.row-actions{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}.row-actions .btn{min-height:34px;padding:6px 12px;font-size:var(--fs-label);border-radius:9px;white-space:nowrap}.row-actions.wrap{flex-wrap:wrap}.badge{display:inline-flex;align-items:center;min-height:26px;padding:4px 10px;border-radius:999px;background:#f3f4f6;color:#374151;font-size:13px;font-weight:800;white-space:nowrap}.badge.ok{background:#d1fae5;color:#065f46}.badge.warn{background:#fef3c7;color:#92400e}.badge.danger{background:#fee2e2;color:#991b1b}.notice{border-radius:18px;padding:16px;background:#f8fafc;border:1px solid var(--line);color:#334155}.survey-wrap{max-width:760px;margin:0 auto;padding:24px 16px 80px}.choice-grid{display:grid;grid-gap:8px;gap:8px;margin-top:10px}.choice{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);border-radius:16px;padding:13px 14px;background:#fff}.choice input{width:20px;height:20px}.question{padding:18px;border-radius:20px;border:1px solid var(--line);background:#fff}.question+.question{margin-top:14px}.complete-mark{width:74px;height:74px;border-radius:24px;display:grid;place-items:center;background:#d1fae5;color:#047857;font-size:42px;font-weight:900}.qr-card{border:1px solid var(--line);border-radius:22px;padding:22px;background:#fff;page-break-inside:avoid;break-inside:avoid}.qr-academy{font-size:17px;font-weight:800;letter-spacing:-.03em}.qr-image{width:210px;height:210px;object-fit:contain;border-radius:16px;padding:10px}.qr-image,.report-page{border:1px solid var(--line);background:#fff}.report-page{border-radius:18px;padding:24px;margin-bottom:18px;min-height:auto;page-break-inside:avoid;break-inside:avoid}.bar-row{display:grid;grid-template-columns:120px 1fr 72px;grid-gap:10px;gap:10px;align-items:center;margin:10px 0}.bar-track{height:30px;border-radius:999px;background:#eef2f7;overflow:hidden}.bar-fill{height:100%;border-radius:999px;background:var(--accent)}.trend-card{border:1px solid var(--line);border-radius:22px;padding:18px;background:#fff}.trend-legend{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end;margin-bottom:14px;color:#475569;font-size:13px;font-weight:800}.trend-legend-item{display:inline-flex;align-items:center;gap:6px}.trend-legend-item i{display:inline-block;width:12px;height:12px;border-radius:4px}.trend-chart{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));grid-gap:16px;gap:16px;align-items:flex-end}.trend-group{min-width:0;break-inside:avoid;page-break-inside:avoid}.trend-bars{height:310px;display:flex;align-items:flex-end;justify-content:center;gap:10px;padding:12px 8px 8px;border-radius:18px;background-size:100% 25%;border:1px solid #eef2f7}.trend-bar-column{flex:1 1;max-width:48px;height:100%;display:flex;flex-direction:column;align-items:center}.trend-value{min-height:20px;margin-bottom:5px;font-size:12px;font-weight:900;color:#334155}.trend-bar-shell{width:100%;flex:1 1;display:flex;align-items:flex-end;justify-content:center}.trend-bar{width:100%;min-height:3px;border-radius:8px 8px 2px 2px;box-shadow:inset 0 -10px 18px hsla(0,0%,100%,.16)}.trend-month{margin-top:6px;font-size:11px;color:#64748b;font-weight:800;white-space:nowrap}.trend-class-name{margin-top:10px;text-align:center;font-size:13px;font-weight:900;line-height:1.25;word-break:keep-all}.report-output{margin-top:18px}.report-teacher-set+.report-teacher-set{margin-top:28px}.teacher-report{width:100%}.report-page-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:18px}.report-meta{min-width:150px;padding:12px 14px;border-radius:16px;background:#f8fafc;border:1px solid var(--line);color:#334155;text-align:right}.report-table{min-width:760px}.report-score-table{min-width:680px}.report-response-section{margin-top:18px;page-break-inside:avoid;break-inside:avoid}.report-response-section+.report-response-section{padding-top:12px;border-top:1px solid var(--line)}.report-footnote{margin-top:14px;font-size:13px}@media (max-width:800px){.grid-2,.grid-3,.grid-4,.grid-5{grid-template-columns:1fr}.h1{font-size:28px}.topbar-inner{align-items:flex-start;flex-direction:column}.admin-shell{grid-template-columns:1fr}.side-menu{position:relative;height:auto;border-right:0;border-bottom:1px solid var(--line)}.side-subnav{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-content{padding:18px 16px 64px}}@page{size:A4 landscape;margin:10mm}@media print{body,html{background:#fff}body{-webkit-print-color-adjust:exact;print-color-adjust:exact}.btn,.no-print,.notice.no-print,.side-menu,.tabs,.topbar{display:none!important}.admin-content,.admin-main,.admin-shell,.app-shell{display:block!important;min-height:0!important;height:auto!important}.container{max-width:none;padding:0!important;margin:0}.card{box-shadow:none;border:0;padding:0}.report-output,.report-teacher-set,.teacher-report{margin:0!important}.report-teacher-set{break-after:auto;page-break-after:auto}.qr-card,.report-page{border:0;border-radius:0;box-shadow:none}.qr-grid{display:block!important}.qr-grid .qr-card{display:inline-block;width:47%;vertical-align:top;margin:0 1% 12px;padding:14px;border:1px solid #cbd3df!important;border-radius:12px;page-break-inside:avoid;break-inside:avoid}.qr-grid .qr-card .qr-image{width:168px;height:168px}.qr-grid.qr-fit-page{display:flex!important;flex-wrap:wrap;gap:2.5%;align-content:flex-start}.qr-grid.qr-fit-page .qr-card{display:block;flex:0 0 31.6%;max-width:31.6%;width:31.6%!important;margin:0 0 10px!important;padding:8px!important;border:1px solid #cbd3df!important;border-radius:10px;text-align:center;box-sizing:border-box}.qr-grid.qr-fit-page .qr-card .qr-image{width:96px;height:96px;padding:3px;margin:3px auto 0;display:block}.qr-grid.qr-fit-page .qr-card-head{display:block!important}.qr-grid.qr-fit-page .qr-subtitle{display:block;font-size:6.5pt}.qr-grid.qr-fit-page .qr-card h3{font-size:9.5pt;margin:2px 0 0}.qr-grid.qr-fit-page .qr-card>p{margin:1px 0;font-size:8pt}.qr-grid.qr-fit-page .qr-card .qr-guide{font-size:6.5pt;line-height:1.25;padding:5px 6px;margin-top:5px;text-align:left}.qr-grid.qr-fit-page .qr-card .no-print,.qr-grid.qr-fit-page .qr-card .qr-url{display:none!important}.report-page{width:100%;min-height:0;margin:0;padding:0;page-break-after:auto;break-after:auto;page-break-inside:avoid;break-inside:avoid;background:#fff}.report-page+.report-page{page-break-before:always;break-before:page}.report-page-header{margin-bottom:8mm}.report-page .h1{font-size:22pt;margin-bottom:3mm}.report-page .h2{font-size:12pt;margin-bottom:3mm}.report-page .h3{font-size:10pt;margin-bottom:2mm}.report-meta{min-width:38mm;padding:3mm;border-radius:3mm;font-size:9pt}.report-table-wrap,.table-wrap{overflow:visible!important;border-radius:0}.report-page .report-table,.report-page table{min-width:0!important;width:100%!important;table-layout:fixed;font-size:8.5pt}.report-page td,.report-page th{padding:2.2mm 1.8mm;word-break:keep-all;overflow-wrap:anywhere;vertical-align:top}.report-response-table td:first-child,.report-response-table th:first-child{width:10mm}.report-response-table td:nth-child(2),.report-response-table th:nth-child(2){width:70mm}.report-response-table td:nth-child(3),.report-response-table th:nth-child(3){width:22mm}.report-response-section{margin-top:5mm;break-inside:avoid;page-break-inside:avoid}.report-comment-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:4mm}.report-page .notice{padding:3mm;border-radius:3mm;font-size:9pt}.report-page .notice ul{margin:2mm 0 0;padding-left:5mm}.trend-card{padding:0;border:0}.trend-legend{margin-bottom:4mm;font-size:8.5pt}.trend-chart{grid-template-columns:repeat(4,minmax(0,1fr));gap:4mm}.trend-bars{height:92mm;padding:3mm 2mm 2mm;border-radius:3mm}.trend-value{font-size:8pt;min-height:5mm}.trend-month{font-size:7pt}.trend-class-name{font-size:8.5pt}.bar-row{grid-template-columns:55mm 1fr 24mm;gap:3mm;margin:2.4mm 0;break-inside:avoid;page-break-inside:avoid;font-size:10pt}.bar-track{height:8mm}.muted{color:#475569}.report-footnote{font-size:8.5pt}}.notice.danger{background:#fef2f2;border-color:#fecaca;color:#991b1b}.small{font-size:13px;line-height:1.55}.notice.small{font-size:13px;padding:10px}.section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px}.compact-summary .stat{padding:14px 16px;text-align:left}.stat{text-align:left}.stat:disabled{cursor:default}.stat.clickable{background:#fff;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.stat.clickable:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(15,23,42,.08)}.compact-summary .stat .num{font-size:26px}.teacher-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:14px;gap:14px}.teacher-summary-card{border:1px solid var(--line);border-radius:18px;background:var(--soft);padding:16px}.teacher-summary-title{font-weight:900;font-size:17px;margin-bottom:10px}.teacher-summary-row{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-top:1px solid #e5e7eb}.teacher-summary-row span{color:var(--muted);font-size:13px}.teacher-summary-row b{font-size:14px}.mapping-flow{display:grid;grid-template-columns:1fr auto 1fr;align-items:flex-end;grid-gap:12px;gap:12px}.mapping-arrow{font-weight:900;color:var(--muted);padding-bottom:10px}.upload-example{white-space:pre-wrap;background:#0f172a;color:#e5e7eb;border-radius:14px;padding:14px;overflow:auto;font-size:12px}@media (max-width:1100px){.summary-grid,.teacher-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mapping-flow{grid-template-columns:1fr}.mapping-arrow{padding-bottom:0}}@media (max-width:700px){.summary-grid,.teacher-summary-grid{grid-template-columns:1fr}}.report-page{position:relative;overflow:hidden}.report-page:before{content:"";position:absolute;inset:0 auto auto 0;width:7px;height:100%;background:linear-gradient(180deg,#111827,var(--accent));opacity:.92}.report-page-header-designed{padding-bottom:14px;border-bottom:1px solid #e5e7eb}.report-kicker{display:inline-flex;align-items:center;min-height:26px;padding:4px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent-soft-ink);font-size:12px;font-weight:900;letter-spacing:.02em;margin-bottom:10px}.report-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px;margin:16px 0 18px}.report-kpi{border:1px solid #e5e7eb;border-radius:18px;padding:14px 15px;background:linear-gradient(180deg,#fff,#f8fafc)}.report-kpi span{display:block;color:#64748b;font-size:12px;font-weight:800}.report-kpi b{display:block;margin-top:5px;font-size:24px;line-height:1.1;letter-spacing:-.04em}.report-kpi small{display:block;margin-top:6px;color:#64748b;font-size:11px;font-weight:700}.report-cover-page{min-height:650px;padding:34px;background:radial-gradient(circle at 84% 12%,rgba(37,99,235,.16),transparent 30%),linear-gradient(135deg,#fff,#f8fafc)}.report-cover-hero{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:30px}.report-cover-title{margin:0;font-size:44px;letter-spacing:-.07em}.report-cover-subtitle{margin:14px 0 0;font-size:18px;color:#475569;font-weight:800}.report-cover-badge{min-width:160px;padding:18px;border-radius:22px;background:#111827;color:#fff;text-align:right;box-shadow:0 18px 32px rgba(15,23,42,.18)}.report-cover-badge span{display:block;color:#93c5fd;font-size:12px;font-weight:900}.report-cover-badge b{display:block;margin-top:5px;font-size:20px}.cover-kpis{margin-top:22px;margin-bottom:26px}.report-cover-section-grid{display:grid;grid-template-columns:1.1fr .9fr;grid-gap:16px;gap:16px}.report-cover-section{border:1px solid #dbe3ef;border-radius:22px;background:hsla(0,0%,100%,.78);padding:18px}.report-cover-section b{font-size:17px}.report-cover-section ol,.report-cover-section p{margin-bottom:0;color:#475569}.designed-trend-card{padding:20px;background:linear-gradient(180deg,#fff,#f8fafc)}.trend-card-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:14px}.trend-axis-labels{display:grid;grid-template-columns:38px 1fr;grid-gap:8px;gap:8px;float:left;width:36px;height:310px;margin-top:0;color:#94a3b8;font-size:10px;font-weight:800;align-content:space-between}.trend-axis-labels span{display:block;text-align:right}.designed-trend-card .trend-chart{margin-left:46px}.trend-class-average{margin-top:6px;text-align:center;color:#475569;font-size:12px;font-weight:800}.response-section-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:8px}.response-section-title span{border-radius:999px;padding:4px 10px;background:#f1f5f9;color:#475569;font-size:12px;font-weight:900}.ranking-card{padding:12px 14px;border:1px solid #e5e7eb;border-radius:20px;background:#fff}.bar-row{grid-template-columns:180px 1fr 78px}.bar-label{font-weight:850}.bar-value{text-align:right;font-weight:900}.bar-row.highlight{padding:8px 10px;margin-left:-10px;margin-right:-10px;border-radius:16px;background:#eff6ff;border:1px solid #bfdbfe}.bar-row.highlight .bar-fill{background:linear-gradient(90deg,#1d4ed8,#60a5fa)}.bar-row.withdrawal .bar-fill{background:linear-gradient(90deg,#059669,#34d399)}.report-footer{display:flex;justify-content:space-between;gap:12px;margin-top:18px;padding-top:10px;border-top:1px solid #e5e7eb;color:#64748b;font-size:12px;font-weight:800}@media print{.report-page:before{width:2mm}.report-cover-page{min-height:0;padding:0 0 0 5mm;background:#fff!important}.report-cover-title{font-size:30pt}.report-cover-subtitle{font-size:12pt}.report-cover-badge{box-shadow:none;border-radius:5mm}.report-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:3mm;margin:4mm 0 5mm}.report-kpi{border-radius:4mm;padding:3mm}.report-kpi b{font-size:16pt}.report-kpi small,.report-kpi span{font-size:7.5pt}.report-cover-section-grid{grid-template-columns:1fr 1fr;gap:4mm}.report-cover-section{border-radius:4mm;padding:4mm}.trend-card-head{margin-bottom:3mm}.trend-card-head .h2{font-size:13pt}.trend-axis-labels{width:9mm;height:92mm;font-size:7pt}.designed-trend-card .trend-chart{margin-left:12mm}.response-section-title span,.trend-class-average{font-size:7.5pt}.bar-label,.bar-value{font-size:9pt}.bar-row.highlight{padding:1.6mm 2mm;margin-left:-2mm;margin-right:-2mm;border-radius:3mm}.report-footer{margin-top:4mm;padding-top:2mm;font-size:7.5pt}}.report-page-score .designed-trend-card{overflow:hidden}@media print{.report-page-score{page-break-inside:avoid;break-inside:avoid}.report-page-score .report-page-header{margin-bottom:3mm}.report-page-score .report-kicker{min-height:0;padding:1mm 2mm;margin-bottom:1.5mm;font-size:6.5pt}.report-page-score .h1{font-size:17pt;margin-bottom:1mm}.report-page-score .muted{font-size:7.4pt}.report-page-score .report-meta{padding:2mm;min-width:30mm;font-size:7.4pt}.report-page-score .report-kpi-grid{gap:2mm;margin:2mm 0 2.5mm}.report-page-score .report-kpi{padding:1.8mm 2mm;border-radius:2.5mm}.report-page-score .report-kpi b{margin-top:1mm;font-size:11pt}.report-page-score .report-kpi small,.report-page-score .report-kpi span{font-size:6.2pt}.report-page-score .trend-card{padding:0!important;border:0}.report-page-score .trend-card-head{display:grid;grid-template-columns:1fr;grid-gap:1mm;gap:1mm;margin-bottom:1.5mm}.report-page-score .trend-card-head .h2{font-size:9.5pt;margin-bottom:.8mm}.report-page-score .trend-legend{justify-content:flex-start;gap:2.5mm;margin-bottom:1.5mm;font-size:6.5pt}.report-page-score .trend-axis-labels{display:none}.report-page-score .designed-trend-card .trend-chart{margin-left:0}.report-page-score .trend-chart{grid-template-columns:repeat(var(--trend-columns),minmax(0,1fr));gap:2mm;align-items:end}.report-page-score .trend-bars{height:var(--trend-bar-height);padding:1.6mm 1mm 1mm;gap:1mm;border-radius:2mm}.report-page-score .trend-bar-column{max-width:none}.report-page-score .trend-value{min-height:3.6mm;margin-bottom:.7mm;font-size:5.7pt}.report-page-score .trend-month{margin-top:1mm;font-size:5.2pt}.report-page-score .trend-class-name{margin-top:1.2mm;font-size:6.1pt;line-height:1.12}.report-page-score .trend-class-average{margin-top:.7mm;font-size:5.6pt}.report-page-score .report-footnote{margin-top:1.5mm;font-size:6pt}.report-page-score .report-footer{margin-top:1.5mm;padding-top:1mm;font-size:6pt}.report-page-responses .report-page-header{margin-bottom:3mm}.report-page-responses .report-kicker{min-height:0;padding:1mm 2mm;margin-bottom:1.5mm;font-size:6.5pt}.report-page-responses .h1{font-size:17pt;margin-bottom:1mm}.report-page-responses .report-meta{padding:2mm;min-width:24mm;font-size:7.2pt}.report-page-responses .report-response-section{margin-top:2.2mm;padding-top:0!important;break-inside:auto;page-break-inside:auto}.report-page-responses .report-response-section+.report-response-section{border-top:0}.report-page-responses .response-section-title{margin-bottom:1mm}.report-page-responses .response-section-title .h2{font-size:8.4pt;margin-bottom:0}.report-page-responses .response-section-title span{padding:.5mm 1.5mm;font-size:5.8pt}.report-page-responses table.report-response-table{font-size:5.9pt!important;line-height:1.08}.report-page-responses .report-response-table td,.report-page-responses .report-response-table th{padding:.75mm .55mm!important;vertical-align:middle}.report-page-responses .report-response-table td:first-child,.report-page-responses .report-response-table th:first-child{width:7mm}.report-page-responses .report-response-table td:nth-child(2),.report-page-responses .report-response-table th:nth-child(2){width:54mm}.report-page-responses .report-response-table td:nth-child(3),.report-page-responses .report-response-table th:nth-child(3){width:14mm}.report-page-responses .report-comment-grid{gap:2mm;margin-top:3mm!important}.report-page-responses .notice{padding:2mm!important;font-size:6.6pt!important}.report-page-responses .notice ul{margin-top:1mm;padding-left:4mm}.report-page-responses .report-footer{margin-top:2mm;padding-top:1mm;font-size:6pt}}.report-page-score .report-page-header{margin-bottom:10px}.report-page-score .report-kicker{min-height:0;padding:4px 9px;margin-bottom:6px;font-size:11px}.report-page-score .h1{font-size:26px;margin-bottom:4px}.report-page-score .report-meta{padding:8px 10px;min-width:120px;font-size:12px}.report-page-score .report-kpi-grid{gap:8px;margin:8px 0 10px}.report-page-score .report-kpi{padding:8px 10px;border-radius:12px}.report-page-score .report-kpi b{margin-top:3px;font-size:18px}.report-page-score .report-kpi small,.report-page-score .report-kpi span{font-size:10px}.report-page-score .trend-card{padding:8px}.report-page-score .trend-card-head{display:grid;grid-template-columns:1fr;grid-gap:4px;gap:4px;margin-bottom:6px}.report-page-score .trend-card-head .h2{font-size:18px;margin-bottom:3px}.report-page-score .trend-card-head .muted{font-size:12px}.report-page-score .trend-legend{justify-content:flex-start;gap:8px;margin-bottom:4px;font-size:11px}.report-page-score .trend-axis-labels{display:none}.report-page-score .designed-trend-card .trend-chart{margin-left:0}.report-page-score .trend-chart{grid-template-columns:repeat(var(--trend-columns),minmax(0,1fr));gap:8px;align-items:end}.report-page-score .trend-bars{height:var(--trend-bar-height);padding:6px 4px 4px;gap:4px;border-radius:10px}.report-page-score .trend-bar-column{max-width:none}.report-page-score .trend-value{min-height:14px;margin-bottom:2px;font-size:9px}.report-page-score .trend-month{margin-top:3px;font-size:8px}.report-page-score .trend-class-name{margin-top:5px;font-size:10px;line-height:1.12}.report-page-score .trend-class-average{margin-top:2px;font-size:9px}.report-page-score .report-footnote{margin-top:6px;font-size:10px}.report-page-score .report-footer{margin-top:6px;padding-top:4px;font-size:10px}.report-page-responses .report-page-header{margin-bottom:10px}.report-page-responses .report-kicker{min-height:0;padding:4px 9px;margin-bottom:6px;font-size:11px}.report-page-responses .h1{font-size:26px;margin-bottom:4px}.report-page-responses .report-meta{padding:8px 10px;min-width:90px;font-size:12px}.report-page-responses .report-response-section{margin-top:8px;padding-top:0!important;break-inside:auto;page-break-inside:auto}.report-page-responses .report-response-section+.report-response-section{border-top:0}.report-page-responses .response-section-title{margin-bottom:4px}.report-page-responses .response-section-title .h2{font-size:15px;margin-bottom:0}.report-page-responses .response-section-title span{padding:2px 7px;font-size:10px}.report-page-responses table.report-response-table{font-size:10px!important;line-height:1.08}.report-page-responses .report-response-table td,.report-page-responses .report-response-table th{padding:3px!important;vertical-align:middle}.report-page-responses .report-response-table td:first-child,.report-page-responses .report-response-table th:first-child{width:26px}.report-page-responses .report-response-table td:nth-child(2),.report-page-responses .report-response-table th:nth-child(2){width:200px}.report-page-responses .report-response-table td:nth-child(3),.report-page-responses .report-response-table th:nth-child(3){width:52px}.report-page-responses .report-comment-grid{gap:8px;margin-top:10px!important}.report-page-responses .notice{padding:8px!important;font-size:11px!important}.report-page-responses .notice ul{margin-top:4px;padding-left:16px}.report-page-responses .report-footer{margin-top:8px;padding-top:4px;font-size:10px}.academy-brand{display:inline-flex;align-items:center;gap:10px;text-align:left}.academy-brand.compact{gap:9px}.academy-logo-mark{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#111827,var(--accent));color:#fff;font-weight:950;letter-spacing:-.08em;box-shadow:0 10px 30px rgba(37,99,235,.22)}.academy-brand.compact .academy-logo-mark{width:34px;height:34px;border-radius:12px}.academy-name{font-size:17px;font-weight:950;letter-spacing:-.05em;color:var(--text);line-height:1.15}.academy-subname{margin-top:2px;color:var(--muted);font-size:12px;font-weight:800}.topbar-title-wrap{display:flex;align-items:center;gap:16px}.danger-notice{border-color:#fecaca!important;background:#fff1f2!important;color:#7f1d1d}.report-academy-brand{display:flex;gap:10px;margin-bottom:14px;color:#111827}.report-logo-mark{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#111827,var(--accent));color:#fff;font-weight:950;letter-spacing:-.08em}.report-academy-brand b{display:block;font-size:15px;font-weight:950;letter-spacing:-.05em}.report-academy-brand span{display:block;color:#64748b;font-size:11px;font-weight:800}.academy-brand.official-logo{display:inline-flex;flex-direction:column;align-items:flex-start;gap:5px}.academy-brand.official-logo .academy-logo-img{width:138px;max-width:100%;height:auto;display:block;object-fit:contain}.academy-brand.official-logo.compact .academy-logo-img{width:118px}.academy-brand.official-logo .academy-subname{margin-top:0;padding-left:2px}.report-logo-img{width:108px;height:auto;display:block;object-fit:contain}.report-academy-brand{align-items:center}.checklist-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:12px;gap:12px}.checklist-item{border:1px solid var(--border);background:#fff;border-radius:18px;padding:14px;display:flex;gap:12px;text-align:left;cursor:pointer;box-shadow:0 12px 30px rgba(15,23,42,.04)}.checklist-item.done{background:#f8fafc}.checklist-item.todo{background:#fff7ed;border-color:#fed7aa}.checklist-step{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:#111827;color:#fff;font-weight:900;flex:0 0 auto}.checklist-body{min-width:0;flex:1 1}.checklist-title{display:flex;justify-content:space-between;gap:8px;align-items:center;font-weight:900}.checklist-value{font-size:22px;font-weight:950;letter-spacing:-.04em;margin:4px 0}.template-guide-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));grid-gap:10px;gap:10px}.toast-notice{position:fixed;right:24px;bottom:24px;z-index:2000;max-width:min(520px,calc(100vw - 32px));padding:16px 18px;border-radius:18px;background:rgba(17,24,39,.94);color:#fff;box-shadow:0 20px 70px rgba(15,23,42,.28);border:1px solid hsla(0,0%,100%,.12);font-weight:800;line-height:1.55}.report-page-header-designed .h1{font-size:40px}.report-page:not(.report-cover-page) .report-page-header-designed{padding-top:4px}.internal-report .report-page{page-break-inside:auto;break-inside:auto}.internal-summary-table td:first-child,.internal-summary-table th:first-child{width:68px;text-align:center}.internal-summary-table td:nth-child(3),.internal-summary-table td:nth-child(4),.internal-summary-table th:nth-child(3),.internal-summary-table th:nth-child(4){width:140px;white-space:nowrap}.internal-teacher-grid{display:grid;grid-template-columns:1fr;grid-gap:14px;gap:14px}.internal-teacher-card{border:1px solid #e5e7eb;border-radius:20px;background:#fff;padding:16px;break-inside:avoid;page-break-inside:avoid}.internal-teacher-card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding-bottom:12px;border-bottom:1px solid #e5e7eb;margin-bottom:12px}.internal-teacher-card-head b{font-size:28px;letter-spacing:-.04em;white-space:nowrap}.internal-class-comment-list{display:grid;grid-gap:12px;gap:12px}.internal-class-comment{padding:12px;border-radius:16px;background:#f8fafc;border:1px solid #eef2f7}.internal-class-comment>b{display:block;margin-bottom:8px;font-size:16px}.internal-comment-columns{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.internal-comment-columns span{display:inline-flex;margin-bottom:6px;font-size:12px;font-weight:900;color:#475569}.internal-comment-columns ul,.internal-issues ul{margin:6px 0 0;padding-left:18px}.internal-comment-columns li,.internal-issues li{margin:3px 0}.internal-issues{margin-top:12px;padding:12px;border-radius:16px;background:#fff7ed;border:1px solid #fed7aa}.internal-risk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px;margin:16px 0}.internal-risk-card{border:1px solid #e5e7eb;border-radius:18px;padding:16px;background:#fff;break-inside:avoid;page-break-inside:avoid}.internal-risk-card.warn{background:#fff7ed;border-color:#fed7aa}.internal-risk-card b{display:block;margin-bottom:8px;font-size:17px}.internal-risk-card ul{margin:8px 0 0;padding-left:18px}.internal-ranking-table td:first-child,.internal-ranking-table th:first-child,.internal-stability-table td:first-child,.internal-stability-table th:first-child{width:94px;text-align:center;white-space:nowrap}.internal-ranking-table td:nth-child(3),.internal-ranking-table td:nth-child(4),.internal-ranking-table td:nth-child(5),.internal-ranking-table th:nth-child(3),.internal-ranking-table th:nth-child(4),.internal-ranking-table th:nth-child(5),.internal-stability-table td:nth-child(3),.internal-stability-table td:nth-child(4),.internal-stability-table td:nth-child(5),.internal-stability-table th:nth-child(3),.internal-stability-table th:nth-child(4),.internal-stability-table th:nth-child(5){width:130px;white-space:nowrap}.internal-keyword-panel{margin:16px 0;padding:16px;border:1px solid #dbe3ef;border-radius:18px;background:#f8fafc}.internal-keyword-panel>b{display:block;margin-bottom:10px;font-size:17px}.internal-keyword-list{display:flex;gap:8px;flex-wrap:wrap}.internal-keyword-list span{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent-soft-ink);font-size:13px;font-weight:900}.internal-comment-note{margin:16px 0;padding:12px 14px;border-radius:14px;background:#f8fafc;color:#475569;font-size:14px;font-weight:800}.internal-comment-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px;align-items:start}.internal-comment-group{border:1px solid #e5e7eb;border-radius:18px;padding:16px;background:#fff;break-inside:avoid;page-break-inside:avoid}.internal-comment-group-head{display:flex;justify-content:space-between;gap:10px;align-items:center;padding-bottom:10px;border-bottom:1px solid #e5e7eb;margin-bottom:12px}.internal-comment-group-head b{font-size:18px}.internal-comment-group-head span{padding:5px 10px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:12px;font-weight:900;white-space:nowrap}.internal-comment-item-list{display:grid;grid-gap:10px;gap:10px}.internal-comment-item{padding:12px;border-radius:14px;background:#f8fafc;border:1px solid #eef2f7}.internal-comment-meta{display:grid;grid-gap:4px;gap:4px;margin-bottom:7px}.internal-comment-meta b{font-size:14px}.internal-comment-meta span{color:#64748b;font-size:12px;font-weight:800}.internal-comment-text{font-size:15px;line-height:1.55;word-break:keep-all;overflow-wrap:anywhere}.internal-action-panel{margin:16px 0;padding:16px 18px;border-radius:18px;background:#f8fafc;border:1px solid #dbe3ef;break-inside:avoid;page-break-inside:avoid}.director-memo-box>b,.internal-action-panel>b,.internal-priority-comments-head>b,.internal-relation-head>b{display:block;font-size:17px;margin-bottom:8px}.internal-action-panel ol{margin:8px 0 0;padding-left:22px}.internal-action-panel li{margin:5px 0;line-height:1.45}.director-memo-box{margin-top:16px;padding:14px 16px;border-radius:18px;border:1px dashed #cbd5e1;background:#fff;break-inside:avoid;page-break-inside:avoid}.director-memo-box.compact{margin-top:14px;padding:12px 14px}.director-memo-lines{display:grid;grid-gap:12px;gap:12px;margin-top:10px}.director-memo-lines span{display:block;height:22px;border-bottom:1px solid #cbd5e1}.internal-relation-panel{margin:16px 0;padding:16px;border-radius:20px;border:1px solid #dbe3ef;background:#fff;break-inside:avoid;page-break-inside:avoid}.internal-relation-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.internal-relation-head span{display:inline-flex;border-radius:999px;padding:6px 10px;background:#f1f5f9;color:#475569;font-size:13px;font-weight:900}.internal-comment-category-grid,.internal-insight-grid,.internal-relation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px;align-items:stretch}.internal-comment-category-card,.internal-relation-card{padding:14px;border-radius:16px;border:1px solid #e5e7eb;background:#f8fafc;break-inside:avoid;page-break-inside:avoid}.internal-comment-category-card b,.internal-relation-card b{display:block;font-size:15px}.internal-relation-card strong{display:block;margin-top:6px;font-size:28px;letter-spacing:-.04em}.internal-comment-category-card p,.internal-comment-category-card small,.internal-relation-card small,.internal-relation-card span{display:block;margin-top:5px;color:#475569;font-weight:800;line-height:1.35}.internal-comment-item.risk,.internal-relation-card.danger{background:#fff1f2;border-color:#fecdd3}.internal-comment-item.negative,.internal-comment-item.watch,.internal-keyword-panel.warn,.internal-relation-card.warn{background:#fff7ed;border-color:#fed7aa}.internal-comment-item.positive,.internal-relation-card.ok{background:#f0fdf4;border-color:#bbf7d0}.internal-comment-item.priority,.internal-priority-comments{background:#eff6ff;border-color:#bfdbfe}.internal-priority-comments{margin:16px 0;padding:16px;border-radius:20px;border:1px solid #bfdbfe;break-inside:avoid;page-break-inside:avoid}.internal-comment-category-card>div,.internal-priority-comments-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.internal-comment-category-card>div span,.internal-priority-comments-head span{border-radius:999px;padding:5px 10px;background:#fff;color:#475569;font-size:12px;font-weight:900;white-space:nowrap}.internal-comment-category-grid{margin:16px 0}.internal-comment-tags{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 8px}.internal-comment-tags span{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;background:#fff;border:1px solid #e5e7eb;color:#475569;font-size:11px;font-weight:900}.internal-comment-tags .tone.negative,.internal-comment-tags .tone.risk,.internal-keyword-list.risk span{background:#ffe4e6;border-color:#fecdd3;color:#be123c}.internal-comment-tags .tone.positive{background:#dcfce7;border-color:#bbf7d0;color:#15803d}.internal-comment-tags .tone.watch{background:#ffedd5;border-color:#fed7aa;color:#c2410c}@media (max-width:800px){.toast-notice{left:16px;right:16px;bottom:16px}.internal-comment-category-grid,.internal-comment-columns,.internal-comment-summary-grid,.internal-insight-grid,.internal-relation-grid,.internal-risk-grid{grid-template-columns:1fr}}button:disabled,input:disabled,select:disabled{opacity:.58;cursor:not-allowed}.delivery-policy-panel{border:1px solid #dbe3ef;background:linear-gradient(180deg,#fff,#f8fafc);border-radius:20px;padding:16px}.delivery-policy-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.delivery-policy-head b{display:block;font-size:18px;font-weight:950;letter-spacing:-.04em}.delivery-policy-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.delivery-policy-card{border:1px solid #e5e7eb;background:#fff;border-radius:16px;padding:14px}.delivery-policy-card.warn{background:#fff7ed;border-color:#fed7aa}.delivery-policy-card b,.delivery-policy-card span{display:block}.delivery-policy-card b{font-weight:950;letter-spacing:-.03em}.delivery-policy-card span{margin-top:4px;color:var(--accent-soft-ink);font-size:13px;font-weight:900}.delivery-policy-card p{margin:8px 0 0;color:#475569;font-size:13px;line-height:1.45}.report-footer{align-items:center}.report-footer-brand{display:inline-flex;align-items:center;gap:8px;min-width:0}.report-footer-logo{width:74px;height:auto;object-fit:contain;display:block;opacity:.88}.report-page table tbody tr:nth-child(2n) td{background:#fbfdff}.internal-comments-page .internal-comment-group,.internal-comments-page .internal-comment-item{break-inside:avoid;page-break-inside:avoid}@media print{.report-footer-logo{width:18mm}.report-page:not(.report-cover-page) .report-logo-img{width:24mm}.report-page table tbody tr:nth-child(2n) td{background:#fbfdff!important}}@media (max-width:800px){.delivery-policy-head{flex-direction:column}.delivery-policy-grid{grid-template-columns:1fr}}.report-output .report-page,.teacher-report .report-page{display:flex;flex-direction:column;overflow:visible}.report-output .report-footer,.teacher-report .report-footer{margin-top:auto;flex-shrink:0;break-inside:avoid;page-break-inside:avoid}.report-cover-page .report-cover-hero{margin-top:14px;margin-bottom:20px;gap:20px}.report-cover-title{font-size:36px;line-height:1.08;letter-spacing:-.06em}.report-cover-subtitle{margin-top:10px;font-size:15px;line-height:1.45}.report-cover-badge{min-width:136px;padding:14px;border-radius:18px}.report-cover-badge span{font-size:11px}.report-cover-badge b{font-size:17px}.cover-kpis{margin-top:16px;margin-bottom:18px}.report-cover-page .report-kpi{padding:12px;border-radius:15px}.report-cover-page .report-kpi b{font-size:20px}.report-cover-page .report-kpi small,.report-cover-page .report-kpi span{font-size:11px}.report-cover-section-grid{gap:12px}.report-cover-section{padding:14px;border-radius:18px;break-inside:avoid;page-break-inside:avoid}.report-cover-section b{font-size:15px}.report-cover-section ol,.report-cover-section p{margin-top:8px;font-size:14px;line-height:1.45}.report-cover-section li{margin:3px 0}@media print{.report-output .report-page,.teacher-report .report-page{display:flex!important;flex-direction:column!important;min-height:186mm!important;overflow:visible!important}.report-output .report-footer,.teacher-report .report-footer{margin-top:auto!important;flex-shrink:0!important;break-inside:avoid!important;page-break-inside:avoid!important;font-size:7pt!important}.report-cover-page{min-height:186mm!important;padding-left:4mm!important}.report-cover-page .report-cover-hero{margin-top:3mm!important;margin-bottom:5mm!important;gap:5mm!important}.report-cover-title{font-size:23pt!important;line-height:1.08!important}.report-cover-subtitle{margin-top:2.4mm!important;font-size:9.5pt!important;line-height:1.4!important}.report-cover-badge{min-width:34mm!important;padding:3.5mm!important;border-radius:4mm!important}.report-cover-badge span{font-size:6.5pt!important}.report-cover-badge b{font-size:11pt!important}.cover-kpis{margin:3mm 0 4mm!important}.report-cover-page .report-kpi{padding:2.1mm 2.3mm!important;border-radius:3mm!important}.report-cover-page .report-kpi b{font-size:12pt!important}.report-cover-page .report-kpi small,.report-cover-page .report-kpi span{font-size:6.6pt!important}.report-cover-section-grid{gap:3mm!important}.report-cover-section{padding:3mm!important;border-radius:3.5mm!important}.report-cover-section b{font-size:9pt!important}.report-cover-section ol,.report-cover-section p{margin:1.4mm 0 0!important;font-size:8pt!important;line-height:1.38!important}.report-cover-section li{margin:.5mm 0!important}}.grid>.card+.card{margin-top:0}.toast-notice{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:start;padding-right:12px}.toast-close{width:28px;height:28px;border:0;border-radius:999px;background:hsla(0,0%,100%,.16);color:#fff;font-size:20px;font-weight:900;line-height:1;cursor:pointer}.toast-close:hover{background:hsla(0,0%,100%,.26)}@media print{.toast-notice{display:none!important}}.diagnostics-panel{border-radius:24px;background:#fff;border:1px solid var(--line);box-shadow:0 12px 34px rgba(15,23,42,.06);padding:22px}.diagnostics-panel .table-wrap{max-height:420px;overflow:auto}.diagnostics-summary .stat{padding:14px 16px}.diagnostics-summary .stat .num{font-size:24px}@media print{.diagnostics-panel{display:none!important}}.toast-message,.toast-notice{white-space:pre-line}.toast-message{min-width:0}.toast-busy{background:rgba(30,64,175,.96);border-color:rgba(191,219,254,.32)}.toast-spinner{display:inline-block;width:14px;height:14px;margin-right:8px;border-radius:999px;border:2px solid hsla(0,0%,100%,.45);border-top-color:#fff;vertical-align:-2px;animation:toast-spin .85s linear infinite}@keyframes toast-spin{to{transform:rotate(1turn)}}.scoped-mapping-panel{border:1px solid #dbe3ef;border-radius:22px;background:#f8fafc;padding:18px}.report-average-only-table td:first-child,.report-average-only-table th:first-child{width:52px;text-align:center}.report-average-only-table td:nth-child(3),.report-average-only-table td:nth-child(4),.report-average-only-table th:nth-child(3),.report-average-only-table th:nth-child(4){width:130px;text-align:center;white-space:nowrap}.internal-student-response-panel,.internal-teacher-comment-section{margin:12px 0;border:1px solid #e5e7eb;border-radius:16px;background:#fff;padding:12px;break-inside:avoid;page-break-inside:avoid}.internal-student-response-table td,.internal-student-response-table th{font-size:8pt;white-space:nowrap}.internal-student-response-table td:first-child,.internal-student-response-table th:first-child{width:22mm}.internal-teacher-comment-split{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin:12px 0;align-items:start}.internal-teacher-comment-list{display:grid;grid-gap:8px;gap:8px}.internal-teacher-comment-card{border:1px solid #eef2f7;border-radius:12px;background:#f8fafc;padding:9px;break-inside:avoid;page-break-inside:avoid}.internal-teacher-comment-card>b{display:block;font-size:9pt;margin-bottom:4px}.internal-teacher-comment-card ul{margin:0;padding-left:16px}.internal-teacher-comment-card li{margin:5px 0}.internal-teacher-comment-card li span{display:block;color:#64748b;font-size:7pt;font-weight:900}.internal-teacher-comment-card li p{margin:2px 0 0;font-size:8pt;line-height:1.45;word-break:keep-all;overflow-wrap:anywhere}.scoped-mapping-panel .grid-5{gap:12px}.internal-insight-grid.single{grid-template-columns:1fr}.internal-teacher-comment-card summary{display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;list-style:none}.internal-teacher-comment-card summary::-webkit-details-marker{display:none}.internal-teacher-comment-card summary b{font-size:9pt}.internal-teacher-comment-card summary span{display:inline-flex;border-radius:999px;padding:4px 8px;background:var(--accent-soft);color:var(--accent-soft-ink);font-size:7pt;font-weight:900;white-space:nowrap}.internal-teacher-comment-card[open] summary{padding-bottom:6px;border-bottom:1px solid #e5e7eb;margin-bottom:6px}.internal-teacher-comment-card:not([open]) ul{display:none}@media print{.internal-teacher-comment-card:not([open]) ul{display:none}}@media (max-width:900px){.internal-teacher-comment-split{grid-template-columns:1fr}}.trend-legend-stack{display:grid;grid-gap:8px;gap:8px;justify-items:end}.trend-mapping-legend{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;max-width:620px;color:#475569;font-size:11px;font-weight:900}.trend-mapping-legend>b{color:#0f172a;margin-right:2px}.trend-mapping-legend span{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:4px 8px;background:#f1f5f9;border:1px solid #e2e8f0;white-space:nowrap}.trend-mapping-legend small{color:#64748b;font-size:10px;font-weight:900}.trend-bars{background:linear-gradient(0deg,rgba(148,163,184,.28) 1px,transparent 0);background-size:100% 20%}.internal-student-response-list{display:grid;grid-gap:10px;gap:10px;margin-top:10px}.internal-student-response-card{border:1px solid #eef2f7;border-radius:12px;background:#f8fafc;padding:9px;break-inside:avoid;page-break-inside:avoid}.internal-student-response-card summary{display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;list-style:none}.internal-student-response-card summary::-webkit-details-marker{display:none}.internal-student-response-card summary b{font-size:9pt}.internal-student-response-card summary span{display:inline-flex;border-radius:999px;padding:4px 8px;background:var(--accent-soft);color:var(--accent-soft-ink);font-size:7pt;font-weight:900;white-space:nowrap}.internal-student-response-card[open] summary{padding-bottom:6px;border-bottom:1px solid #e5e7eb;margin-bottom:6px}.internal-student-response-card:not([open]) .table-wrap{display:none}@media print{.trend-legend-stack{justify-items:start}.trend-mapping-legend{justify-content:flex-start;gap:1mm;max-width:100%;font-size:5.8pt}.trend-mapping-legend span{padding:.8mm 1.5mm}.trend-mapping-legend small{font-size:5.3pt}.internal-student-response-card:not([open]) .table-wrap{display:none}}@media screen and (max-width:720px){.report-output,.teacher-report,.web-report-output{width:100%!important;max-width:100%!important;overflow-x:hidden!important}.report-output .report-page,.teacher-report .report-page,.web-report-output .report-page{padding:16px!important;border-radius:18px!important;margin-bottom:14px!important}.report-output .internal-comment-group-head,.report-output .internal-relation-head,.report-output .report-cover-hero,.report-output .report-page-header,.report-output .trend-card-head,.teacher-report .internal-comment-group-head,.teacher-report .internal-relation-head,.teacher-report .report-cover-hero,.teacher-report .report-page-header,.teacher-report .trend-card-head,.web-report-output .internal-comment-group-head,.web-report-output .internal-relation-head,.web-report-output .report-cover-hero,.web-report-output .report-page-header,.web-report-output .trend-card-head{display:block!important}.report-output .h1,.teacher-report .h1,.web-report-output .h1{font-size:24px!important;line-height:1.18!important}.report-output .h2,.teacher-report .h2,.web-report-output .h2{font-size:19px!important;line-height:1.25!important}.report-output .muted,.report-output .report-meta,.report-output p,.teacher-report .muted,.teacher-report .report-meta,.teacher-report p,.web-report-output .muted,.web-report-output .report-meta,.web-report-output p{font-size:14px!important;line-height:1.55!important}.report-output .report-meta,.teacher-report .report-meta,.web-report-output .report-meta{width:100%!important;min-width:0!important;text-align:left!important;margin-top:12px!important}.report-output .internal-comment-category-grid,.report-output .internal-comment-summary-grid,.report-output .internal-insight-grid,.report-output .internal-relation-grid,.report-output .internal-risk-grid,.report-output .internal-teacher-comment-split,.report-output .report-cover-section-grid,.report-output .report-kpi-grid,.teacher-report .internal-comment-category-grid,.teacher-report .internal-comment-summary-grid,.teacher-report .internal-insight-grid,.teacher-report .internal-relation-grid,.teacher-report .internal-risk-grid,.teacher-report .internal-teacher-comment-split,.teacher-report .report-cover-section-grid,.teacher-report .report-kpi-grid,.web-report-output .internal-comment-category-grid,.web-report-output .internal-comment-summary-grid,.web-report-output .internal-insight-grid,.web-report-output .internal-relation-grid,.web-report-output .internal-risk-grid,.web-report-output .internal-teacher-comment-split,.web-report-output .report-cover-section-grid,.web-report-output .report-kpi-grid{grid-template-columns:1fr!important}.report-output .cover-kpis,.teacher-report .cover-kpis,.web-report-output .cover-kpis{grid-template-columns:1fr 1fr!important;gap:10px!important}.report-cover-page .report-kpi{padding:12px!important}.report-cover-page .report-kpi b{font-size:20px!important;margin-top:2px!important}.report-cover-page .report-kpi small,.report-cover-page .report-kpi span{font-size:11px!important;line-height:1.4!important}.report-output .trend-legend-stack,.teacher-report .trend-legend-stack,.web-report-output .trend-legend-stack{justify-items:start!important}.report-output .trend-legend,.report-output .trend-mapping-legend,.teacher-report .trend-legend,.teacher-report .trend-mapping-legend,.web-report-output .trend-legend,.web-report-output .trend-mapping-legend{justify-content:flex-start!important;max-width:100%!important}.report-output .trend-chart,.teacher-report .trend-chart,.web-report-output .trend-chart{grid-template-columns:1fr!important;gap:12px!important}.report-output .trend-bars,.teacher-report .trend-bars,.web-report-output .trend-bars{height:190px!important}.report-output .bar-row,.teacher-report .bar-row,.web-report-output .bar-row{grid-template-columns:1fr!important;gap:8px!important;padding:12px!important;border:1px solid #e5e7eb!important;border-radius:14px!important;background:#fff!important}.report-output .report-table-wrap,.report-output .table-wrap,.teacher-report .report-table-wrap,.teacher-report .table-wrap,.web-report-output .report-table-wrap,.web-report-output .table-wrap{overflow-x:visible!important;border:0!important;border-radius:0!important}.report-output .internal-ranking-table,.report-output .internal-stability-table,.report-output .internal-student-response-table,.report-output .internal-summary-table,.report-output .report-average-only-table,.teacher-report .internal-ranking-table,.teacher-report .internal-stability-table,.teacher-report .internal-student-response-table,.teacher-report .internal-summary-table,.teacher-report .report-average-only-table,.web-report-output .internal-ranking-table,.web-report-output .internal-stability-table,.web-report-output .internal-student-response-table,.web-report-output .internal-summary-table,.web-report-output .report-average-only-table{display:block!important;width:100%!important;min-width:0!important;table-layout:auto!important}.report-output .internal-ranking-table thead,.report-output .internal-stability-table thead,.report-output .internal-student-response-table thead,.report-output .internal-summary-table thead,.report-output .report-average-only-table thead,.teacher-report .internal-ranking-table thead,.teacher-report .internal-stability-table thead,.teacher-report .internal-student-response-table thead,.teacher-report .internal-summary-table thead,.teacher-report .report-average-only-table thead,.web-report-output .internal-ranking-table thead,.web-report-output .internal-stability-table thead,.web-report-output .internal-student-response-table thead,.web-report-output .internal-summary-table thead,.web-report-output .report-average-only-table thead{display:none!important}.report-output .internal-ranking-table tbody,.report-output .internal-stability-table tbody,.report-output .internal-student-response-table tbody,.report-output .internal-summary-table tbody,.report-output .report-average-only-table tbody,.teacher-report .internal-ranking-table tbody,.teacher-report .internal-stability-table tbody,.teacher-report .internal-student-response-table tbody,.teacher-report .internal-summary-table tbody,.teacher-report .report-average-only-table tbody,.web-report-output .internal-ranking-table tbody,.web-report-output .internal-stability-table tbody,.web-report-output .internal-student-response-table tbody,.web-report-output .internal-summary-table tbody,.web-report-output .report-average-only-table tbody{display:grid!important;grid-gap:10px!important;gap:10px!important}.report-output .internal-ranking-table tr,.report-output .internal-stability-table tr,.report-output .internal-student-response-table tr,.report-output .internal-summary-table tr,.report-output .report-average-only-table tr,.teacher-report .internal-ranking-table tr,.teacher-report .internal-stability-table tr,.teacher-report .internal-student-response-table tr,.teacher-report .internal-summary-table tr,.teacher-report .report-average-only-table tr,.web-report-output .internal-ranking-table tr,.web-report-output .internal-stability-table tr,.web-report-output .internal-student-response-table tr,.web-report-output .internal-summary-table tr,.web-report-output .report-average-only-table tr{display:block!important;width:100%!important;padding:12px!important;border:1px solid #e5e7eb!important;border-radius:16px!important;background:#fff!important;box-shadow:0 6px 18px rgba(15,23,42,.04)!important}.report-output .internal-ranking-table td,.report-output .internal-stability-table td,.report-output .internal-student-response-table td,.report-output .internal-summary-table td,.report-output .report-average-only-table td,.teacher-report .internal-ranking-table td,.teacher-report .internal-stability-table td,.teacher-report .internal-student-response-table td,.teacher-report .internal-summary-table td,.teacher-report .report-average-only-table td,.web-report-output .internal-ranking-table td,.web-report-output .internal-stability-table td,.web-report-output .internal-student-response-table td,.web-report-output .internal-summary-table td,.web-report-output .report-average-only-table td{display:grid!important;grid-template-columns:92px minmax(0,1fr)!important;grid-gap:10px!important;gap:10px!important;width:100%!important;padding:7px 0!important;border:0!important;border-bottom:1px solid #f1f5f9!important;text-align:left!important;white-space:normal!important;word-break:keep-all!important;overflow-wrap:anywhere!important;font-size:14px!important;line-height:1.45!important;background:transparent!important}.report-output .internal-ranking-table td:last-child,.report-output .internal-stability-table td:last-child,.report-output .internal-student-response-table td:last-child,.report-output .internal-summary-table td:last-child,.report-output .report-average-only-table td:last-child,.teacher-report .internal-ranking-table td:last-child,.teacher-report .internal-stability-table td:last-child,.teacher-report .internal-student-response-table td:last-child,.teacher-report .internal-summary-table td:last-child,.teacher-report .report-average-only-table td:last-child,.web-report-output .internal-ranking-table td:last-child,.web-report-output .internal-stability-table td:last-child,.web-report-output .internal-student-response-table td:last-child,.web-report-output .internal-summary-table td:last-child,.web-report-output .report-average-only-table td:last-child{border-bottom:0!important}.report-output .internal-ranking-table td:before,.report-output .internal-stability-table td:before,.report-output .internal-student-response-table td:before,.report-output .internal-summary-table td:before,.report-output .report-average-only-table td:before,.teacher-report .internal-ranking-table td:before,.teacher-report .internal-stability-table td:before,.teacher-report .internal-student-response-table td:before,.teacher-report .internal-summary-table td:before,.teacher-report .report-average-only-table td:before,.web-report-output .internal-ranking-table td:before,.web-report-output .internal-stability-table td:before,.web-report-output .internal-student-response-table td:before,.web-report-output .internal-summary-table td:before,.web-report-output .report-average-only-table td:before{color:#64748b!important;font-size:12px!important;font-weight:900!important}.internal-summary-table td:first-child:before{content:"No."}.internal-summary-table td:nth-child(2):before{content:"평가 항목"}.internal-summary-table td:nth-child(3):before{content:"응답 수"}.internal-summary-table td:nth-child(4):before{content:"평균/결과"}.internal-ranking-table td:first-child:before{content:"순위"}.internal-ranking-table td:nth-child(2):before{content:"선생님"}.internal-ranking-table td:nth-child(3):before{content:"응답/반"}.internal-ranking-table td:nth-child(4):before{content:"강의평가"}.internal-ranking-table td:nth-child(5):before{content:"점수 변화"}.internal-ranking-table td:nth-child(6):before{content:"순위 변화"}.internal-ranking-table td:nth-child(7):before{content:"상태"}.internal-stability-table td:first-child:before{content:"퇴원율 순위"}.internal-stability-table td:nth-child(2):before{content:"선생님"}.internal-stability-table td:nth-child(3):before{content:"강의평가"}.internal-stability-table td:nth-child(4):before{content:"퇴원율"}.internal-stability-table td:nth-child(5):before{content:"응답/반"}.internal-stability-table td:nth-child(6):before{content:"관계 신호"}.internal-stability-table td:nth-child(7):before{content:"내부 판단"}.report-average-only-table td:first-child:before{content:"No."}.report-average-only-table td:nth-child(2):before{content:"평가 내용"}.report-average-only-table td:nth-child(3):before{content:"해당월 AVG"}.report-average-only-table td:nth-child(4):before{content:"응답 수"}.internal-student-response-table td:first-child:before{content:"학생"}.internal-student-response-table td:nth-child(2):before{content:"반"}.internal-student-response-table td:nth-child(3):before{content:"T1"}.internal-student-response-table td:nth-child(4):before{content:"T2"}.internal-student-response-table td:nth-child(5):before{content:"T3"}.internal-student-response-table td:nth-child(6):before{content:"T4"}.internal-student-response-table td:nth-child(7):before{content:"T5"}.internal-student-response-table td:nth-child(8):before{content:"선생님 AVG"}.internal-student-response-table td:nth-child(9):before{content:"공통 AVG"}.internal-student-response-table td:nth-child(10):before{content:"압박 응답"}.internal-student-response-table td:nth-child(11):before{content:"제출 시각"}}.internal-retention-scatter-card{margin:14px 0;padding:16px;border-radius:20px;border:1px solid #dbe3ef;background:#fff;break-inside:avoid;page-break-inside:avoid}.scatter-axis-guide{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px;color:#475569;font-size:13px;font-weight:900}.retention-scatter-shell{display:grid;grid-template-columns:70px 1fr;grid-gap:10px;gap:10px;align-items:stretch}.retention-y-axis-block{position:relative;min-height:420px}.retention-y-axis-title{position:absolute;left:2px;top:50%;transform:translateY(-50%) rotate(-90deg);transform-origin:left top;color:#334155;font-size:13px;font-weight:950;white-space:nowrap}.retention-y-axis-ticks{position:absolute;inset:0 0 44px 0}.retention-y-axis-ticks span{position:absolute;right:0;transform:translateY(-50%);color:#64748b;font-size:12px;font-weight:900}.retention-y-axis-ticks .top{top:0}.retention-y-axis-ticks .mid{top:50%}.retention-y-axis-ticks .bottom{top:100%}.retention-plot-block{display:flex;flex-direction:column;gap:8px}.retention-scatter{position:relative;height:420px;min-height:420px;border-radius:20px;border:1px solid #dbe3ef;overflow:hidden;background:linear-gradient(90deg,rgba(148,163,184,.12) 1px,transparent 0),linear-gradient(0deg,rgba(148,163,184,.12) 1px,transparent 0),#fff;background-size:25% 100%,100% 25%,auto}.scatter-zone{position:absolute;z-index:1;padding:14px;pointer-events:none;border:1px solid rgba(148,163,184,.18)}.scatter-zone b{display:block;font-size:14px;font-weight:950}.scatter-zone span{display:block;margin-top:4px;color:#475569;font-size:12px;font-weight:900}.scatter-zone-safe{left:50%;right:0;top:0;bottom:50%;background:rgba(220,252,231,.68)}.scatter-zone-watch{left:0;right:50%;top:0;bottom:50%;background:rgba(239,246,255,.7)}.scatter-zone-danger{left:0;right:50%;top:50%;bottom:0;background:rgba(255,241,242,.75)}.scatter-zone-warn{left:50%;right:0;top:50%;bottom:0;background:rgba(255,247,237,.74)}.scatter-threshold{position:absolute;z-index:3;pointer-events:none}.scatter-threshold.vertical{top:0;bottom:0;border-left:2px solid #64748b}.scatter-threshold.horizontal{left:0;right:0;border-top:2px solid #64748b}.scatter-point{position:absolute;z-index:10;transform:translate(-50%,50%);width:32px;height:32px;border-radius:999px;border:2px solid #fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 18px rgba(15,23,42,.18);color:#fff;font-size:12px;font-weight:950}.scatter-point-list-item.safe .scatter-point-list-number,.scatter-point.safe{background:#22c55e}.scatter-point-list-item.watch .scatter-point-list-number,.scatter-point.watch{background:#3b82f6}.scatter-point-list-item.danger .scatter-point-list-number,.scatter-point.danger{background:#ef4444}.scatter-point-list-item.warn .scatter-point-list-number,.scatter-point.warn{background:#f59e0b}.retention-x-axis-block{padding-left:4px}.retention-x-axis-title{margin-bottom:4px;color:#334155;font-size:13px;font-weight:950;text-align:center}.retention-x-axis-ticks{display:grid;grid-template-columns:repeat(3,1fr);color:#64748b;font-size:12px;font-weight:900}.retention-x-axis-ticks span:first-child{text-align:left}.retention-x-axis-ticks span:nth-child(2){text-align:center}.retention-x-axis-ticks span:nth-child(3){text-align:right}.scatter-clamp-note{margin-top:8px;color:#64748b;font-size:12px;font-weight:800}.scatter-point-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px;margin-top:12px}.scatter-point-list-item{padding:10px 12px;border:1px solid #e5e7eb;border-radius:14px;background:#f8fafc}.scatter-point-list-item b,.scatter-point-list-item small,.scatter-point-list-item span{display:block;line-height:1.35}.scatter-point-list-item b{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:950}.scatter-point-list-number{display:inline-flex;align-items:center;justify-content:center;flex:0 0 24px;width:24px;min-width:24px;height:24px;min-height:24px;margin-right:0;padding:0;border-radius:999px;color:#fff;font-size:11px;line-height:1;font-weight:950;text-align:center;vertical-align:middle}.scatter-point-list-item span{margin-top:3px;color:#111827;font-size:12px;font-weight:900}.scatter-point-list-item small{margin-top:3px;color:#475569;font-size:11px;font-weight:800}@media screen and (max-width:720px){.retention-scatter-shell{grid-template-columns:52px 1fr;gap:8px}.retention-scatter,.retention-y-axis-block{min-height:340px;height:340px}.retention-y-axis-title{font-size:11px}.retention-x-axis-ticks span,.retention-y-axis-ticks span,.scatter-clamp-note{font-size:10px}.scatter-axis-guide{display:grid;grid-template-columns:1fr;grid-gap:4px;gap:4px;font-size:12px}.scatter-zone{padding:8px}.scatter-zone b{font-size:11px}.scatter-zone span{font-size:10px}.scatter-point-list{grid-template-columns:1fr}}