*{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#0f1117;--bg2:#161820;--bg3:#1c1f2a;--bg4:#232637;
  --bd:rgba(255,255,255,.07);--tx:#e8eaf0;--tx2:#9ea3b8;--tx3:#585e78;
  --ac:#4f8ef7;--gn:#2ecc71;--am:#f59e0b;--rd:#ef4444;--tl:#14b8a6;
  --pu:#8b5cf6;
}
body{font-family:'Pretendard','Apple SD Gothic Neo',system-ui,sans-serif;background:var(--bg);color:var(--tx);min-height:100vh;font-size:14px}
#app{display:flex;min-height:100vh}

/* 사이드바 */
#sb{width:220px;min-height:100vh;background:var(--bg2);border-right:1px solid var(--bd);display:flex;flex-direction:column;flex-shrink:0;transition:all .25s}
#sb.closed{width:0;overflow:hidden}
#sb-backdrop{display:none}
.sb-logo{padding:18px 16px 12px;border-bottom:1px solid var(--bd)}
.sb-logo div:first-child{font-size:15px;font-weight:700;color:var(--tx);letter-spacing:-.3px}
.sb-ver{font-size:10px;color:var(--tx3)}
nav{flex:1;padding:10px 8px;overflow-y:auto}
.ni{display:flex;align-items:center;gap:8px;width:100%;padding:9px 10px;border-radius:9px;border:none;background:transparent;color:var(--tx2);font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .15s;margin-bottom:2px;text-align:left}
.ni:hover{background:rgba(255,255,255,.05);color:var(--tx)}
.ni.on{background:rgba(79,142,247,.15);color:var(--ac)}
.ni-ico{font-size:15px;width:20px;text-align:center;flex-shrink:0}
.ni-badge{margin-left:auto;background:var(--rd);color:#fff;border-radius:99px;padding:1px 7px;font-size:10px;font-weight:700}
.sb-foot{padding:12px 14px;border-top:1px solid var(--bd);font-size:11px}
.sb-saved{font-size:10px;color:var(--tl);margin-top:4px}

/* 메인 */
#main{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}
#hdr{display:flex;align-items:center;padding:12px 20px;border-bottom:1px solid var(--bd);background:var(--bg2);gap:10px;position:sticky;top:0;z-index:10}
.spacer{flex:1}
.hdr-alert{background:rgba(239,68,68,.15);color:#f87171;border:1px solid rgba(239,68,68,.25);border-radius:8px;padding:5px 12px;font-size:12px;cursor:pointer}
#ct{padding:22px 24px;overflow-y:auto;flex:1}

/* 페이지 */
.pg{display:none}
.pg.on{display:block}
h2{font-size:20px;font-weight:700;margin-bottom:4px}
.sub{font-size:13px;color:var(--tx2);margin-bottom:18px}

/* 카드 */
.card{background:var(--bg3);border:1px solid var(--bd);border-radius:12px;padding:16px;margin-bottom:14px}
.ct{font-size:13px;font-weight:600;color:var(--tx2);margin-bottom:12px;letter-spacing:.3px}

/* 그리드 */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.row-sb{display:flex;align-items:center;justify-content:space-between;gap:8px}

/* 버튼 */
.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:8px;border:1px solid var(--bd);background:var(--bg4);color:var(--tx);font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .15s;white-space:nowrap}
.btn:hover{background:rgba(255,255,255,.06)}
.btn.ac{background:rgba(79,142,247,.2);border-color:rgba(79,142,247,.4);color:#6ba3ff}
.btn.ac:hover{background:rgba(79,142,247,.3)}
.btn.gn{background:rgba(46,204,113,.15);border-color:rgba(46,204,113,.35);color:#4ddb8a}
.btn.gh{background:var(--bg4);border-color:var(--bd);color:var(--tx2)}
.btn.gh:hover{color:var(--tx)}
.btn.rd{background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.25);color:#f87171}
.btn.sm{padding:4px 10px;font-size:12px}

/* 배지 */
.bd-b{background:rgba(79,142,247,.15);color:#6ba3ff;border-radius:5px;padding:2px 7px;font-size:11px;font-weight:600}
.bd-g{background:rgba(46,204,113,.15);color:#4ddb8a;border-radius:5px;padding:2px 7px;font-size:11px;font-weight:600}
.bd-r{background:rgba(239,68,68,.15);color:#f87171;border-radius:5px;padding:2px 7px;font-size:11px;font-weight:600}
.bd-a{background:rgba(245,158,11,.15);color:#fbbf24;border-radius:5px;padding:2px 7px;font-size:11px;font-weight:600}
.bd-p{background:rgba(139,92,246,.15);color:#a78bfa;border-radius:5px;padding:2px 7px;font-size:11px;font-weight:600}
.bd-gr{background:rgba(255,255,255,.07);color:var(--tx2);border-radius:5px;padding:2px 7px;font-size:11px;font-weight:600}
.bd-tl{background:rgba(20,184,166,.15);color:#2dd4bf;border-radius:5px;padding:2px 7px;font-size:11px;font-weight:600}

/* 탭 */
.tabs{display:flex;gap:6px;margin-bottom:14px;border-bottom:1px solid var(--bd);padding-bottom:10px;flex-wrap:wrap}
.tab{padding:6px 14px;border-radius:7px;border:none;background:transparent;color:var(--tx2);font-size:13px;font-weight:500;cursor:pointer;font-family:inherit}
.tab.on{background:rgba(79,142,247,.15);color:var(--ac)}

/* 입력 */
.inp{width:100%;background:var(--bg4);border:1px solid var(--bd);border-radius:8px;color:var(--tx);padding:8px 11px;font-size:13px;font-family:inherit;outline:none;transition:border-color .15s}
.sr-grid-edit{background:transparent;border:1px solid transparent;border-radius:4px;color:var(--tx);outline:none}
.sr-grid-edit:hover{background:rgba(79,142,247,.06);border-color:var(--bd)}
.sr-grid-edit:focus{background:var(--bg4);border-color:var(--ac);box-shadow:0 0 0 1px var(--ac)}
.sr-grid-edit.sr-empty:before{content:attr(data-placeholder);color:var(--tx3);opacity:.55;pointer-events:none}
.inp:focus{border-color:rgba(79,142,247,.5)}
.frow{margin-bottom:12px}
.lbl{display:block;font-size:12px;color:var(--tx2);margin-bottom:5px;font-weight:500}
.fe{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}

/* 아바타 */
.av{border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;flex-shrink:0}

/* 학생 카드 */
.sc{background:var(--bg3);border:1px solid var(--bd);border-radius:11px;padding:14px;margin-bottom:10px;cursor:pointer;transition:border-color .15s}
.sc:hover{border-color:rgba(79,142,247,.3)}
.sc.open{border-color:rgba(79,142,247,.4);background:rgba(79,142,247,.04)}

/* 학생관리 업무형 상세 화면 */
.stu-work{background:var(--bg3);color:var(--tx);border:1px solid var(--bd);border-radius:10px;overflow:hidden;min-height:70vh}
.stu-work *{letter-spacing:0}
.stu-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;background:var(--bg3);border-bottom:1px solid var(--bd)}
.stu-title{display:flex;align-items:center;gap:8px;min-width:0}
.stu-title h3{font-size:18px;font-weight:800;color:var(--tx);margin:0}
.stu-meta{font-size:12px;color:var(--tx2);white-space:nowrap}
.stu-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:12px 18px;background:var(--bg4);border-bottom:1px solid var(--bd)}
.stu-work .inp{background:var(--bg4);color:var(--tx);border-color:var(--bd)}
.stu-layout{display:grid;grid-template-columns:320px minmax(0,1fr);min-height:620px}
.stu-listpane{background:var(--bg3);border-right:1px solid var(--bd);min-width:0}
.stu-list-head{padding:11px 14px;border-bottom:1px solid var(--bd);display:flex;justify-content:space-between;align-items:center}
.stu-list{max-height:calc(100vh - 270px);overflow:auto}
.stu-row{display:flex;align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid var(--bd);cursor:pointer;background:var(--bg3)}
.stu-row:hover{background:rgba(79,142,247,.08)}
.stu-row.on{background:rgba(79,142,247,.16);border-left:3px solid var(--ac);padding-left:11px}
.stu-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:13px;flex:0 0 auto}
.stu-name{font-size:13px;font-weight:800;color:var(--tx)}
.stu-small{font-size:11px;color:var(--tx2);margin-top:2px}
.stu-scoreline{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-top:4px}
.stu-chip{font-size:10px;font-weight:700;border-radius:4px;padding:2px 6px;border:1px solid transparent}
.stu-chip.blue{background:#dbeafe;color:#1d4ed8;border-color:#bfdbfe}
.stu-chip.green{background:#dcfce7;color:#15803d;border-color:#bbf7d0}
.stu-chip.amber{background:#fef3c7;color:#b45309;border-color:#fde68a}
.stu-chip.red{background:#fee2e2;color:#b91c1c;border-color:#fecaca}
.stu-detail{background:var(--bg3);min-width:0;color:var(--tx)}
.stu-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 20px;border-bottom:1px solid var(--bd)}
.stu-person{display:flex;align-items:center;gap:14px;min-width:0}
.stu-big-avatar{width:74px;height:74px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:24px;font-weight:900}
.stu-person h3{font-size:20px;color:var(--tx);margin:0 0 4px}
.stu-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.stu-actions .btn{background:var(--bg4);color:var(--tx);border-color:var(--bd)}
.stu-body{display:grid;grid-template-columns:118px minmax(0,1fr)}
.stu-side-tabs{border-right:1px solid var(--bd);background:var(--bg2);padding:8px 0}
.stu-side-tab{display:block;width:100%;border:0;background:transparent;text-align:left;padding:12px 20px;color:var(--tx2);font-size:13px;font-weight:700;cursor:pointer;font-family:inherit}
.stu-side-tab:hover{background:rgba(255,255,255,.05);color:var(--tx)}
.stu-side-tab.on{background:rgba(79,142,247,.15);color:var(--ac);border-right:3px solid var(--ac)}
.stu-panel{padding:18px 20px 28px;min-width:0}
.stu-section-title{font-size:15px;font-weight:900;color:var(--tx);margin:0 0 10px}
.stu-info-table{width:100%;border-collapse:collapse;border:1px solid var(--bd);font-size:13px}
.stu-info-table th{background:var(--bg4);color:var(--tx2);text-align:left;width:132px;padding:11px 13px;border:1px solid var(--bd);font-weight:800}
.stu-info-table td{color:var(--tx);padding:11px 13px;border:1px solid var(--bd);vertical-align:top;min-height:42px}
.stu-data-table{width:100%;border-collapse:collapse;border:1px solid var(--bd);font-size:12px}
.stu-data-table th{background:var(--bg4);color:var(--tx2);padding:9px 10px;border:1px solid var(--bd);font-weight:800;text-align:left}
.stu-data-table td{padding:9px 10px;border:1px solid var(--bd);color:var(--tx);vertical-align:top}
.stu-empty{padding:28px;border:1px dashed var(--bd);border-radius:8px;color:var(--tx2);background:var(--bg4);text-align:center;font-size:13px}
.stu-cal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.stu-cal-nav{display:flex;align-items:center;gap:7px}.stu-cal-title{min-width:108px;text-align:center;font-size:16px;font-weight:900;color:var(--tx)}
.stu-cal-btn{width:34px;height:34px;border:1px solid var(--bd);border-radius:6px;background:var(--bg4);color:var(--tx);cursor:pointer;font-family:inherit;font-size:15px}
.stu-cal-today{width:auto;padding:0 10px;font-size:12px;font-weight:800}
.stu-cal-legend{display:flex;gap:8px;flex-wrap:wrap;color:var(--tx2);font-size:11px}.stu-cal-legend span{display:inline-flex;align-items:center;gap:4px}.stu-cal-legend i{width:8px;height:8px;border-radius:2px;display:inline-block}
.stu-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--bd);border-left:1px solid var(--bd);background:var(--bd);gap:1px}
.stu-cal-week{padding:7px 4px;background:var(--bg4);color:var(--tx2);text-align:center;font-size:11px;font-weight:800}
.stu-cal-day{min-height:88px;padding:7px;background:var(--bg3);color:var(--tx);min-width:0}.stu-cal-day.out{background:var(--bg2);opacity:.45}.stu-cal-day.no-class{background:rgba(148,163,184,.06)}
.stu-cal-date{font-size:11px;color:var(--tx2);margin-bottom:8px}.stu-cal-day.today .stu-cal-date{color:var(--ac);font-weight:900}
.stu-cal-state{display:inline-flex;max-width:100%;padding:3px 6px;border-radius:4px;font-size:11px;font-weight:900;white-space:nowrap}.stu-cal-state.present{background:#dcfce7;color:#15803d}.stu-cal-state.late{background:#fef3c7;color:#b45309}.stu-cal-state.absent{background:#fee2e2;color:#b91c1c}.stu-cal-state.paused{background:#e0e7ff;color:#4338ca}.stu-cal-state.missing{background:var(--bg4);color:var(--tx3)}.stu-cal-state.off{color:var(--tx3);padding-left:0;background:transparent;font-weight:600}
.stu-cal-note{margin-top:6px;font-size:10px;color:var(--tx3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stu-cal-summary{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.stu-cal-summary span{padding:5px 8px;border:1px solid var(--bd);border-radius:5px;background:var(--bg4);color:var(--tx2);font-size:11px}
.stu-performance-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}.stu-performance-card{border:1px solid var(--bd);background:var(--bg4);padding:12px;border-radius:7px;min-width:0}.stu-performance-label{font-size:11px;color:var(--tx2);font-weight:800}.stu-performance-value{font-size:21px;color:var(--tx);font-weight:900;margin:5px 0 2px;white-space:nowrap}.stu-performance-date{font-size:10px;color:var(--tx3)}
.stu-performance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.stu-performance-block{border:1px solid var(--bd);background:var(--bg3);border-radius:7px;overflow:hidden;min-width:0}.stu-performance-head{padding:9px 11px;background:var(--bg4);border-bottom:1px solid var(--bd);font-size:12px;font-weight:900;color:var(--tx)}.stu-performance-list{padding:6px 10px}.stu-performance-row{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:7px;padding:7px 0;border-bottom:1px solid var(--bd);font-size:11px}.stu-performance-row:last-child{border-bottom:0}.stu-performance-row time{color:var(--tx3)}.stu-performance-bar{height:6px;border-radius:4px;background:var(--bg4);overflow:hidden}.stu-performance-bar i{display:block;height:100%;border-radius:4px;background:var(--ac)}.stu-performance-score{color:var(--tx);font-weight:900;white-space:nowrap}.stu-performance-empty{padding:18px 10px;text-align:center;color:var(--tx3);font-size:11px}
.stu-history-warning{padding:10px 12px;margin-bottom:12px;border:1px solid rgba(245,158,11,.38);border-radius:7px;background:rgba(245,158,11,.08);color:var(--am);font-size:12px;line-height:1.55}
.mcp-panel{margin-top:16px;border:1px solid rgba(79,142,247,.24);border-radius:12px;background:linear-gradient(180deg,rgba(79,142,247,.08),rgba(255,255,255,.02));overflow:hidden}
.mcp-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:13px 14px;border-bottom:1px solid var(--bd)}
.mcp-title{font-size:13px;font-weight:900;color:var(--tx)}
.mcp-sub{font-size:11px;color:var(--tx2);margin-top:3px;line-height:1.5}
.mcp-score{min-width:58px;text-align:center;border-radius:10px;padding:7px 9px;background:rgba(79,142,247,.14);border:1px solid rgba(79,142,247,.25);color:var(--ac);font-weight:900}
.mcp-body{padding:12px 14px}
.mcp-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.mcp-item{border:1px solid var(--bd);border-radius:8px;background:var(--bg3);padding:9px 10px;min-height:54px}
.mcp-item.ok{border-color:rgba(46,204,113,.28)}.mcp-item.warn{border-color:rgba(245,158,11,.36)}.mcp-item.bad{border-color:rgba(239,68,68,.32)}
.mcp-item b{display:block;font-size:12px;color:var(--tx);margin-bottom:4px}.mcp-item span{font-size:11px;color:var(--tx2);line-height:1.45}
.mcp-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.mcp-output{margin-top:12px;border:1px solid var(--bd);border-radius:9px;background:var(--bg4);padding:11px 12px;color:var(--tx);font-size:12px;line-height:1.75;white-space:pre-wrap;max-height:360px;overflow:auto}
.mcp-empty{color:var(--tx3);font-size:12px;border:1px dashed var(--bd);border-radius:9px;padding:12px;background:var(--bg4)}
@media(max-width:980px){.mcp-grid{grid-template-columns:1fr}.mcp-head{flex-direction:column}.mcp-score{text-align:left}}
@media(max-width:980px){.stu-layout{grid-template-columns:1fr}.stu-listpane{border-right:0;border-bottom:1px solid var(--bd)}.stu-list{max-height:320px}.stu-body{grid-template-columns:1fr}.stu-side-tabs{display:flex;overflow:auto;border-right:0;border-bottom:1px solid var(--bd)}.stu-side-tab{white-space:nowrap;width:auto}.stu-detail-head{align-items:flex-start;flex-direction:column}.stu-performance-grid{grid-template-columns:1fr}.stu-calendar{min-width:560px}.stu-cal-scroll{overflow-x:auto}.stu-cal-day{min-height:78px}.stu-performance-summary{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:560px){.stu-panel{padding:14px 12px 22px}.stu-performance-summary{grid-template-columns:1fr}.stu-cal-toolbar{align-items:flex-start}.stu-cal-legend{width:100%}.stu-performance-value{font-size:18px}}
#pg-stu>.tabs,#pg-stu>#stu-cls-filter{display:none!important}
#pg-stu{background:var(--bg)!important;margin:-18px;padding:18px;min-height:calc(100vh - 76px)}
#pg-stu>.row-sb{background:var(--bg)}

/* 학생관리 목록형 데이터 그리드 */
.stu-grid-wrap{background:var(--bg3);color:var(--tx);border:1px solid var(--bd);border-radius:10px;overflow:hidden;min-height:calc(100vh - 190px)}
.stu-grid-wrap *{letter-spacing:0}
.stu-grid-top{display:none}
.stu-grid-title{font-size:16px;font-weight:800;color:var(--tx)}
.lms-tool-frame{width:100%;height:clamp(560px,72vh,900px);border:1px solid var(--bd);border-radius:10px;background:var(--bg)}
@media(max-width:620px){.lms-tool-frame{height:calc(100vh - 180px);min-height:500px}}
.stu-grid-sub{font-size:12px;color:var(--tx2);margin-top:2px}
.stu-grid-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:12px 14px;background:var(--bg3);border-bottom:1px solid var(--bd)}
.stu-grid-wrap .inp{background:var(--bg4);color:var(--tx);border-color:var(--bd);border-radius:7px}
.stu-grid-main{display:grid;grid-template-columns:minmax(0,1fr);min-height:620px;background:var(--bg3)}
.stu-grid-main.has-detail{grid-template-columns:minmax(620px,1fr) minmax(520px,46%)}
.stu-grid-left{min-width:0;background:var(--bg3);border-right:1px solid var(--bd)}
.stu-detail-drawer{min-width:0;background:var(--bg3);box-shadow:-12px 0 24px rgba(0,0,0,.24);z-index:3}
.stu-detail-drawer .stu-detail-head{border-top:0}
.stu-detail-drawer-close{border:0;background:transparent;color:var(--tx3);font-size:22px;line-height:1;cursor:pointer;padding:4px 8px;font-family:inherit}
.stu-detail-drawer-close:hover{color:var(--ac)}
.stu-grid-scroll{overflow:auto;position:relative;min-height:420px}
.stu-grid{width:100%;border-collapse:collapse;min-width:1280px;font-size:13px}
.stu-grid th{position:sticky;top:0;z-index:2;background:var(--bg4);color:var(--tx);border-bottom:1px solid var(--bd);border-right:1px solid var(--bd);padding:0;text-align:left;white-space:nowrap;font-weight:800;overflow:visible}
.stu-grid td{border-bottom:1px solid var(--bd);padding:11px 12px;vertical-align:middle;color:var(--tx);white-space:nowrap}
.stu-grid tr:hover td{background:rgba(255,255,255,.035)}
.stu-grid tr.on td{background:rgba(79,142,247,.15)!important}
.stu-grid th:last-child,.stu-grid td:last-child{border-right:0}
.stu-th{display:flex;align-items:center;gap:7px;justify-content:space-between;padding:10px 12px}
.stu-th button{border:0;background:transparent;color:var(--tx3);cursor:pointer;font-size:12px;padding:0;font-family:inherit}
.stu-th button.on{color:var(--ac)}
.stu-filter-mark{color:var(--tx3);font-size:12px}
.stu-filter-mark.on{color:var(--ac)}
.stu-filter-cell{position:relative}
.stu-filter-btn{border:0;background:transparent;color:var(--tx3);cursor:pointer;font-size:12px;padding:0 2px;font-family:inherit}
.stu-filter-btn.on{color:var(--ac)}
.stu-filter-pop{position:absolute;top:34px;left:10px;width:230px;background:var(--bg3);border:1px solid var(--bd);box-shadow:0 10px 28px rgba(0,0,0,.32);z-index:200;padding:8px;color:var(--tx);max-height:320px;overflow:hidden;border-radius:8px}
.stu-filter-search{width:100%;height:32px;border:1px solid var(--bd);border-radius:6px;background:var(--bg4);color:var(--tx);padding:6px 8px;font-size:12px;font-family:inherit;box-sizing:border-box;margin-bottom:8px}
.stu-filter-list{max-height:220px;overflow:auto;padding:2px 0}
.stu-filter-item{display:flex;align-items:center;gap:7px;padding:6px 2px;font-size:12px;font-weight:600;color:var(--tx2)}
.stu-filter-item input{width:14px;height:14px;accent-color:var(--ac)}
.stu-filter-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--bd);margin-top:7px;padding-top:8px}
.stu-filter-reset{border:0;background:transparent;color:var(--tx3);font-size:12px;cursor:pointer;font-family:inherit}
.stu-filter-confirm{border:0;background:var(--ac);color:#fff;border-radius:5px;font-size:12px;font-weight:800;padding:5px 10px;cursor:pointer;font-family:inherit}
.stu-check{width:20px;height:20px;border:1px solid var(--bd);border-radius:3px;accent-color:var(--ac)}
.stu-name-link{border:0;background:transparent;color:var(--tx);font-weight:800;font-family:inherit;font-size:13px;cursor:pointer;padding:0}
.stu-name-link:hover{color:var(--ac);text-decoration:underline}
.stu-tag{display:inline-flex;align-items:center;border:1px solid var(--bd);border-radius:4px;padding:3px 8px;background:var(--bg4);color:var(--tx);font-size:12px;font-weight:700}
.stu-pill{display:inline-flex;align-items:center;border-radius:4px;padding:2px 7px;font-size:11px;font-weight:800}
.stu-pill.ok{background:#dcfce7;color:#15803d}.stu-pill.warn{background:#fef3c7;color:#b45309}.stu-pill.bad{background:#fee2e2;color:#b91c1c}.stu-pill.info{background:#dbeafe;color:#1d4ed8}.stu-pill.mute{background:#f3f4f6;color:#6b7280}
.stu-grid-foot{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;background:var(--bg3);border-top:1px solid var(--bd);color:var(--tx2)}
.stu-page-btn{min-width:36px;height:36px;border:1px solid var(--bd);background:var(--bg4);border-radius:7px;cursor:pointer;color:var(--tx);font-family:inherit}
.stu-page-btn.on{border-color:rgba(79,142,247,.5);color:var(--ac);background:rgba(79,142,247,.16)}
.stu-page-btn:disabled{opacity:.45;cursor:not-allowed}
.stu-page-size{width:auto!important;min-width:94px;height:36px;padding:6px 8px!important}
.stu-grid-empty{min-height:260px;padding:36px;text-align:center;color:var(--tx2);background:var(--bg3);display:flex;align-items:center;justify-content:center;flex-direction:column}
@media(max-width:1280px){.stu-grid-main.has-detail{grid-template-columns:1fr}.stu-detail-drawer{border-top:1px solid var(--bd);box-shadow:none}}

/* 통계 카드 */
.stat-card{background:var(--bg3);border:1px solid var(--bd);border-radius:11px;padding:16px}
.stat-n{font-size:26px;font-weight:700;margin-bottom:2px}
.stat-l{font-size:12px;color:var(--tx2)}

/* 바 */
.bw{flex:1;height:6px;background:var(--bg4);border-radius:3px;overflow:hidden}
.bf{height:100%;border-radius:3px;transition:width .3s}

/* 출석 */
.att-o{background:rgba(46,204,113,.2);color:#4ddb8a;padding:3px 9px;border-radius:5px;font-size:12px;font-weight:600;cursor:pointer}
.att-l{background:rgba(245,158,11,.2);color:#fbbf24;padding:3px 9px;border-radius:5px;font-size:12px;font-weight:600;cursor:pointer}
.att-x{background:rgba(239,68,68,.2);color:#f87171;padding:3px 9px;border-radius:5px;font-size:12px;font-weight:600;cursor:pointer}
.att-{background:var(--bg4);color:var(--tx3);padding:3px 9px;border-radius:5px;font-size:12px;font-weight:600;cursor:pointer}

/* 점수 입력 */
.score-inp{width:56px;background:var(--bg4);border:1px solid var(--bd);border-radius:6px;color:var(--tx);padding:4px 7px;font-size:12px;text-align:center;font-family:inherit}
.score-inp:focus{outline:none;border-color:rgba(79,142,247,.5)}

/* 피드백 */
.fbck{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:8px;cursor:pointer;transition:all .12s;margin-bottom:4px;border:1px solid transparent}
.fbck:hover{background:rgba(79,142,247,.07)}
.fbck.sel{background:rgba(79,142,247,.1);border-color:rgba(79,142,247,.25)}

/* 업로드 존 */
.upz{border:2px dashed var(--bd);border-radius:12px;padding:40px;text-align:center;cursor:pointer;transition:all .2s}
.upz:hover{border-color:var(--ac);background:rgba(79,142,247,.05)}

/* 스텝바 */
.stepbar{display:flex;gap:6px;margin-bottom:18px;flex-wrap:wrap}
.step{padding:6px 14px;border-radius:7px;border:1px solid var(--bd);background:transparent;color:var(--tx2);font-size:12px;cursor:pointer;font-family:inherit}
.step.on{background:rgba(79,142,247,.15);border-color:rgba(79,142,247,.35);color:var(--ac);font-weight:600}
.step.dn{background:rgba(46,204,113,.1);border-color:rgba(46,204,113,.3);color:#4ddb8a}

/* 문항 */
.qrow{display:flex;align-items:center;gap:8px;padding:9px 11px;border-radius:8px;cursor:pointer;margin-bottom:4px;border:1px solid transparent;transition:all .15s}
.qrow:hover{background:rgba(255,255,255,.04)}
.qrow.sel{background:rgba(79,142,247,.1);border-color:rgba(79,142,247,.25)}
.qnum{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}

/* 모달 */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:200;padding:16px}
.modal{background:var(--bg2);border:1px solid var(--bd);border-radius:14px;width:100%;max-width:460px;max-height:90vh;overflow-y:auto}
.mh{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--bd)}
.mb{padding:18px 20px}
hr.divider{border:none;border-top:1px solid var(--bd);margin:12px 0}

/* 토스트 */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:rgba(46,204,113,.2);border:1px solid rgba(46,204,113,.4);color:#4ddb8a;padding:9px 20px;border-radius:10px;font-size:13px;font-weight:500;opacity:0;pointer-events:none;transition:all .25s;z-index:999;white-space:nowrap}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* 반 색상 도트 */
.cls-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;display:inline-block}

/* 반 카드 */
.cls-card{background:var(--bg3);border:1px solid var(--bd);border-radius:11px;padding:14px;margin-bottom:8px}

/* daily check data grid */
.daily-grid-page .row-sb:first-child{padding:14px 16px;border:1px solid var(--bd);border-radius:12px;background:linear-gradient(180deg,rgba(79,142,247,.08),rgba(255,255,255,.02));margin-bottom:12px!important}
.daily-filter-panel{background:var(--bg3);border:1px solid var(--bd);border-radius:12px;padding:13px 14px;margin-bottom:10px}
.daily-filter-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
.daily-filter-title{font-size:13px;font-weight:800;color:var(--tx)}
.daily-filter-sub{font-size:11px;color:var(--tx3);margin-top:3px}
.daily-filter-grid{display:grid;grid-template-columns:minmax(180px,1.1fr) minmax(150px,.8fr) minmax(150px,.8fr);gap:8px}
.daily-filter-grid label{display:flex;flex-direction:column;gap:5px;font-size:11px;color:var(--tx2);font-weight:700}
.daily-grid-card{background:var(--bg3);border:1px solid var(--bd);border-radius:12px;overflow:hidden;margin-bottom:14px;min-height:360px}
.daily-grid-scroll{overflow-x:auto;overflow-y:auto;min-height:360px;max-height:68vh}
.daily-grid-top{padding:10px 14px;border-bottom:1px solid var(--bd);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.daily-grid-count{font-size:12px;color:var(--tx2);font-weight:600}
.daily-th{position:relative;text-align:left;padding:9px 10px;color:var(--tx2);font-weight:700;white-space:nowrap;border-bottom:1px solid var(--bd);background:var(--bg4)}
.daily-th button{border:0;background:transparent;color:inherit;font:inherit;cursor:pointer;padding:0;display:inline-flex;align-items:center;gap:5px}
.daily-th button:hover{color:var(--tx)}
.daily-sort-mark{font-size:10px;color:var(--tx3)}
.daily-filter-mark{font-size:11px;color:var(--tx3);margin-left:5px}
.daily-filter-mark.on{color:var(--ac)}
.daily-filter-btn{border:0;background:transparent;color:var(--tx3);cursor:pointer;font-size:11px;padding:0;margin-left:5px;font-family:inherit}
.daily-filter-btn.on{color:var(--ac)}
.daily-head-filter{position:relative;overflow:visible!important}
.daily-head-pop{position:absolute;top:32px;left:8px;width:230px;background:var(--bg3);border:1px solid var(--bd);box-shadow:0 10px 24px rgba(0,0,0,.28);z-index:80;padding:8px;color:var(--tx);border-radius:8px}
.daily-head-search{width:100%;height:31px;border:1px solid var(--bd);background:var(--bg4);color:var(--tx);border-radius:6px;padding:6px 8px;font-size:12px;font-family:inherit;box-sizing:border-box;margin-bottom:7px}
.daily-head-list{max-height:220px;overflow:auto;padding:2px 0}
.daily-head-item{display:flex;align-items:center;gap:7px;padding:6px 2px;font-size:12px;font-weight:600;color:var(--tx2)}
.daily-head-item input{width:14px;height:14px;accent-color:var(--ac)}
.daily-head-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--bd);margin-top:7px;padding-top:8px}
.daily-head-reset{border:0;background:transparent;color:var(--tx3);font-size:12px;cursor:pointer;font-family:inherit}
.daily-head-confirm{border:0;background:var(--ac);color:white;border-radius:5px;font-size:12px;font-weight:800;padding:5px 10px;cursor:pointer;font-family:inherit}
.daily-row-check{width:16px;height:16px;accent-color:var(--ac)}
.daily-grid-pager{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;border-top:1px solid var(--bd);color:var(--tx2);font-size:12px;flex-wrap:wrap}
.daily-page-btn{min-width:34px;height:32px;border-radius:7px;border:1px solid var(--bd);background:var(--bg4);color:var(--tx);cursor:pointer;font-family:inherit}
.daily-page-btn.on{background:rgba(79,142,247,.18);border-color:rgba(79,142,247,.5);color:var(--ac);font-weight:800}
.daily-page-btn:disabled{opacity:.4;cursor:not-allowed}
.daily-status-chip{display:inline-flex;align-items:center;justify-content:center;border-radius:5px;padding:2px 7px;font-size:11px;font-weight:700}
.daily-target-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid rgba(79,142,247,.35);background:rgba(79,142,247,.12);border-radius:999px;padding:3px 8px;color:var(--ac);font-size:11px;font-weight:700}
.daily-mobile-toolbar{position:sticky;top:48px;z-index:25;background:var(--bg);border-bottom:1px solid var(--bd);padding:0 0 10px;margin-bottom:10px}
.daily-mobile-toolbar-inner{background:var(--bg3);border:1px solid var(--bd);border-radius:8px;padding:11px}
.daily-mobile-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:9px}
.daily-mobile-title{font-size:14px;font-weight:800;color:var(--tx)}
.daily-mobile-summary{font-size:11px;color:var(--tx3);margin-top:3px}
.daily-mobile-class-list{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}
.daily-mobile-class-list::-webkit-scrollbar{display:none}
.daily-mobile-class-btn{height:32px;padding:0 11px;border:1px solid var(--bd);border-radius:6px;background:var(--bg4);color:var(--tx2);font:600 12px inherit;white-space:nowrap;cursor:pointer}
.daily-mobile-class-btn.on{border-color:var(--ac);background:rgba(79,142,247,.16);color:var(--ac)}
.daily-mobile-search{margin-top:8px}
.daily-mobile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-bottom:68px}
.daily-mobile-card{border:1px solid var(--bd);border-radius:8px;background:var(--bg3);overflow:hidden;min-width:0}
.daily-mobile-card.done{border-color:rgba(46,204,113,.42)}
.daily-mobile-card-head{display:flex;align-items:center;gap:9px;padding:10px 11px;border-bottom:1px solid var(--bd);background:var(--bg4)}
.daily-mobile-card-name{font-size:14px;font-weight:800;color:var(--tx)}
.daily-mobile-card-meta{font-size:10px;color:var(--tx3);margin-top:2px}
.daily-mobile-progress{margin-left:auto;font-size:10px;font-weight:800;color:var(--tx3);white-space:nowrap}
.daily-mobile-progress.done{color:var(--gn)}
.daily-mobile-card-body{padding:10px 11px;display:flex;flex-direction:column;gap:11px}
.daily-mobile-section{display:grid;grid-template-columns:82px minmax(0,1fr);gap:8px;align-items:start}
.daily-mobile-label{font-size:11px;font-weight:800;color:var(--tx2);padding-top:7px}
.daily-mobile-segment{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;min-width:0}
.daily-mobile-segment button{min-width:0;min-height:34px;padding:6px 4px;border:1px solid var(--bd);border-radius:6px;background:var(--bg4);color:var(--tx3);font:700 11px inherit;cursor:pointer;white-space:nowrap}
.daily-mobile-segment button.on.attend{border-color:rgba(46,204,113,.55);background:rgba(46,204,113,.18);color:var(--gn)}
.daily-mobile-segment button.on.late{border-color:rgba(245,158,11,.55);background:rgba(245,158,11,.18);color:var(--am)}
.daily-mobile-segment button.on.absent,.daily-mobile-segment button.on.retest{border-color:rgba(239,68,68,.55);background:rgba(239,68,68,.16);color:var(--rd)}
.daily-mobile-segment button.on.pass{border-color:rgba(46,204,113,.55);background:rgba(46,204,113,.18);color:var(--gn)}
.daily-mobile-segment button.on.exempt{border-color:rgba(139,92,246,.5);background:rgba(139,92,246,.16);color:#a78bfa}
.daily-mobile-score-row{display:grid;grid-template-columns:48px 62px 10px 62px;gap:5px;align-items:center}
.daily-mobile-round{font-size:11px;font-weight:800;color:var(--tx2)}
.daily-mobile-score{width:100%;height:34px!important;text-align:center;padding:5px!important}
.daily-mobile-result{margin-top:5px}
.daily-mobile-extra{border-top:1px dashed var(--bd);padding-top:7px}
.daily-mobile-extra summary{cursor:pointer;color:var(--ac);font-size:11px;font-weight:800;list-style:none}
.daily-mobile-extra summary::-webkit-details-marker{display:none}
.daily-mobile-extra[open] summary{margin-bottom:8px}
.daily-mobile-stars{display:flex;gap:3px}
.daily-mobile-stars button{border:0;background:transparent;color:var(--tx3);font-size:20px;padding:2px;cursor:pointer}
.daily-mobile-stars button.on{color:var(--am)}
.daily-mobile-empty{padding:56px 18px;text-align:center;color:var(--tx3);border:1px dashed var(--bd);border-radius:8px;background:var(--bg3)}
.daily-mobile-footer{position:sticky;bottom:8px;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:-56px;padding:9px 11px;border:1px solid var(--bd);border-radius:8px;background:rgba(24,25,33,.96);box-shadow:0 8px 24px rgba(0,0,0,.3);backdrop-filter:blur(10px)}
.daily-mobile-footer-status{font-size:11px;color:var(--tx2)}
.account-permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
@media(max-width:768px){
  .daily-filter-grid{grid-template-columns:1fr}
  .daily-mobile-grid{grid-template-columns:1fr}
  .daily-mobile-toolbar{top:45px}
  .daily-mobile-section{grid-template-columns:72px minmax(0,1fr)}
  .account-permission-grid{grid-template-columns:1fr}
}
@media(min-width:769px) and (max-width:1180px){.daily-mobile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){
  .daily-mobile-card-body{padding:10px 9px}
  .daily-mobile-section{grid-template-columns:1fr;gap:5px}
  .daily-mobile-label{padding-top:0}
  .daily-mobile-score-row{grid-template-columns:42px minmax(54px,1fr) 8px minmax(54px,1fr)}
  .daily-mobile-toolbar-inner{padding:9px}
}

/* 반응형 */
@media(max-width:768px){
  body{overflow-x:hidden}
  #app{display:block;min-height:100vh}
  .g4{grid-template-columns:1fr 1fr}
  .g2{grid-template-columns:1fr}
  .g3{grid-template-columns:1fr 1fr}
  #sb{position:fixed;top:0;left:0;width:min(82vw,320px);height:100dvh;min-height:100dvh;z-index:120;box-shadow:18px 0 40px rgba(0,0,0,.35);transform:translateX(0);overflow:hidden}
  #sb.closed{width:min(82vw,320px);transform:translateX(-105%)}
  #sb-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:110;opacity:1;transition:opacity .2s}
  #sb.closed + #sb-backdrop{opacity:0;pointer-events:none}
  #main{width:100%;min-height:100vh}
  #hdr{padding:10px 12px}
  #ct{padding:16px 12px}
  .card{padding:14px;border-radius:10px}
  .row-sb{align-items:flex-start}
  h2{font-size:19px}
  .sub{font-size:12px}
}
@media(max-width:480px){
  .g4,.g3{grid-template-columns:1fr}
  .btn{font-size:12px;padding:7px 10px}
  .tabs{gap:5px}
  .tab{font-size:12px;padding:6px 10px}
  #ag-items{grid-template-columns:repeat(auto-fill,minmax(88px,1fr))!important}
}
@media(max-width:820px){
  #wta-page-grid{grid-template-columns:1fr!important}
  #wta-history{min-height:180px!important;max-height:280px!important}
}
.wta-readonly input,.wta-readonly select,.wta-readonly button{pointer-events:none;opacity:.72}
.daily-search-control{display:flex;align-items:center;gap:6px;height:36px;padding:0 8px;border:1px solid var(--bd);border-radius:7px;background:var(--bg4)}
.daily-search-control:focus-within{border-color:var(--ac);box-shadow:0 0 0 2px rgba(79,142,247,.12)}
.daily-search-control .daily-search-icon{color:var(--tx3);font-size:13px;flex:0 0 auto}
.daily-search-control .inp{height:32px!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;min-width:0;width:100%}
.daily-search-clear{width:24px;height:24px;padding:0;border:0;background:transparent;color:var(--tx3);font-size:17px;line-height:1;cursor:pointer;flex:0 0 auto}
.daily-search-clear:hover{color:var(--tx)}
.wta-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:10px 0}
.wta-step{padding:8px 10px;border:1px solid var(--bd);border-radius:6px;background:var(--bg4);font-size:11px;color:var(--tx2)}
.wta-step b{color:var(--ac);margin-right:4px}
.wta-drop{border:1px dashed var(--bd);border-radius:7px;padding:10px;background:var(--bg4);cursor:pointer;min-width:0;transition:.15s}
.wta-drop:hover,.wta-drop.drag{border-color:var(--ac);background:rgba(79,142,247,.08)}
.wta-file{display:flex;align-items:center;gap:5px;margin-top:5px;padding:4px 6px;border-radius:5px;background:var(--bg3);font-size:10px;color:var(--tx2)}
.wta-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.wta-file button{border:0;background:transparent;color:var(--tx3);cursor:pointer;font-size:14px;padding:0 2px}
@media(max-width:640px){.wta-steps{grid-template-columns:1fr}}
.weekly-test-frame{display:none;width:100%;height:calc(100vh - 76px);min-height:720px;border:0;background:var(--bg)}
#pg-wtanalysis{margin:-18px;min-height:calc(100vh - 58px);overflow:hidden}
@media(max-width:768px){
  #pg-wtanalysis{margin:-12px;min-height:calc(100dvh - 54px)}
  .weekly-test-frame{height:calc(100dvh - 54px);min-height:620px;max-width:100%}
}

/* 시험지 사진 복원 */
.exam-model{width:auto;min-width:130px}
.exam-drop{display:block;margin-top:14px;text-align:center;cursor:pointer}
.exam-drop.drag{border-color:var(--ac);background:rgba(79,142,247,.1)}
.exam-file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:14px}
.exam-file-card{border:1px solid var(--bd);border-radius:10px;background:var(--bg4);padding:8px;min-width:0}
.exam-file-card img{width:100%;height:150px;object-fit:cover;border-radius:7px;background:#fff}
.exam-file-meta{display:flex;flex-direction:column;gap:2px;margin:7px 0;font-size:11px;min-width:0}
.exam-file-meta span{color:var(--tx3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.exam-progress{height:8px;border-radius:999px;background:var(--bg4);overflow:hidden;margin:16px 0}
.exam-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--ac),var(--gn));transition:width .2s}
.exam-queue{border:1px solid var(--bd);border-radius:9px;overflow:hidden}
.exam-queue-row{display:flex;justify-content:space-between;gap:10px;padding:9px 11px;border-bottom:1px solid var(--bd);font-size:12px}
.exam-queue-row:last-child{border-bottom:0}.exam-queue-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.exam-queue-row b{color:var(--tx3);flex:0 0 auto}.exam-queue-row b.ok{color:var(--gn)}.exam-queue-row b.run{color:var(--ac)}.exam-queue-row b.err{color:var(--rd)}
.exam-library-list{display:flex;flex-direction:column;gap:8px}.exam-library-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px;border:1px solid var(--bd);border-radius:10px;background:var(--bg4)}.exam-library-item>b{font-size:13px}.exam-library-item .muted{margin-top:3px}@media(max-width:700px){.exam-library-item{align-items:flex-start;flex-direction:column}.exam-library-item>.row{width:100%;flex-wrap:wrap}}
.exam-page-tabs{display:flex;gap:5px;overflow-x:auto;margin-bottom:10px;padding-bottom:4px}
.exam-page-tabs button{border:1px solid var(--bd);background:var(--bg4);color:var(--tx2);border-radius:7px;padding:7px 10px;white-space:nowrap;cursor:pointer}
.exam-page-tabs button.on{border-color:var(--ac);background:rgba(79,142,247,.15);color:var(--ac)}
.exam-review-grid{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(520px,1.2fr);gap:12px;align-items:start}
.exam-source{position:sticky;top:74px}.exam-source img{display:block;width:100%;max-height:calc(100vh - 150px);object-fit:contain;background:#111;border-radius:8px}
.exam-paper{background:#fff;color:#111;border-radius:4px;padding:22px 18px;min-height:800px;font-family:"함초롬바탕","Batang",serif;font-size:12px;line-height:1.55;box-shadow:0 2px 14px rgba(0,0,0,.25)}
.exam-paper-header,.exam-paper-footer{text-align:center;font-weight:700;padding:7px;outline:none}.exam-paper-header{border-bottom:1px solid #555;margin-bottom:12px}.exam-paper-footer{border-top:1px solid #777;margin-top:12px;font-size:11px}
.exam-columns{display:grid;grid-template-columns:1fr 1fr;gap:0}.exam-columns.one{grid-template-columns:1fr}.exam-column{padding:0 12px;min-width:0}.exam-column+.exam-column{border-left:1px solid #777}
.exam-block{position:relative;margin:0 0 10px;padding:3px;white-space:pre-wrap;outline:none;border:1px solid transparent;border-radius:3px}.exam-block:hover,.exam-block:focus-within{border-color:#8ab4f8}.exam-block-edit{outline:none;min-height:1em}.exam-block.low{background:#fff4c2;border-color:#e3b341}.exam-block.title{text-align:center;font-weight:700;font-size:15px}.exam-block.instruction,.exam-block.question{font-weight:700}.exam-block.passage,.exam-block.box,.exam-block.answer{border:1px solid #777;padding:8px}.exam-block.choice{padding-left:12px}.exam-block.note{font-size:11px}
.exam-block-del{display:none;position:absolute;right:-7px;top:-8px;width:19px;height:19px;padding:0;border:0;border-radius:50%;background:#dc2626;color:#fff;cursor:pointer;line-height:19px}.exam-block:hover>.exam-block-del{display:block}.exam-block.table{padding:0}.exam-block table{width:100%;border-collapse:collapse}.exam-block td{border:1px solid #777;padding:5px;min-width:36px;outline:none}
@media(max-width:1050px){.exam-review-grid{grid-template-columns:1fr}.exam-source{position:static}.exam-source img{max-height:65vh}}
@media(max-width:620px){.exam-file-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.exam-file-card img{height:120px}.exam-columns{grid-template-columns:1fr}.exam-column+.exam-column{border-left:0;border-top:1px dashed #999;padding-top:12px;margin-top:10px}.exam-paper{padding:14px 8px}.exam-column{padding:0 6px}}
/* 수업 영상 관리 */
.video-page-head{margin-bottom:18px}.video-filter-card{display:grid;grid-template-columns:minmax(180px,2fr) repeat(4,minmax(120px,1fr));gap:8px;padding:12px}.video-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.video-admin-card{margin:0}.video-card-top{display:flex;justify-content:space-between;gap:12px}.video-title{font-size:16px;font-weight:800}.video-meta,.video-desc,.video-counts{font-size:12px;color:var(--tx2)}.video-meta{margin-top:4px}.video-desc{min-height:38px;margin:12px 0}.video-counts{display:flex;gap:14px;flex-wrap:wrap;padding:9px 0;border-top:1px solid var(--bd);border-bottom:1px solid var(--bd)}.video-counts b{color:var(--tx)}.video-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:11px}.video-state,.video-watch-badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:800;white-space:nowrap}.video-state.open,.video-watch-badge.done{background:rgba(46,204,113,.14);color:#86efac}.video-state.closed{background:rgba(239,68,68,.13);color:#fca5a5}.video-watch-badge.watching{background:rgba(79,142,247,.15);color:#93c5fd}.video-watch-badge.new{background:rgba(148,163,184,.14);color:#cbd5e1}.video-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.video-field{display:flex;flex-direction:column;gap:5px}.video-field.full,.video-check.full{grid-column:1/-1}.video-field>span{font-size:12px;color:var(--tx2);font-weight:700}.video-field small{font-size:11px;color:var(--tx3)}.video-check{display:flex;align-items:center;gap:7px;font-size:13px}.video-submit{width:100%;justify-content:center;margin-top:14px}.video-error{min-height:20px;color:#fca5a5;font-size:12px;margin-top:8px}.video-assign-tools{display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px;margin-top:14px}.video-student-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-height:300px;overflow:auto;border:1px solid var(--bd);border-radius:9px;padding:7px}.video-student{display:flex;align-items:center;gap:8px;padding:8px;border-radius:7px}.video-student:hover{background:var(--bg3)}.video-student span,.video-status-table small{display:block}.video-student small,.video-status-table small{font-size:11px;color:var(--tx3);margin-top:2px}.video-status-wrap{overflow:auto;max-height:65vh;margin-top:12px}.video-status-table{min-width:1050px}.video-status-table tr.inactive{opacity:.55}.video-progress{height:6px;background:var(--bg4);border-radius:999px;overflow:hidden;margin-top:5px}.video-progress i{display:block;height:100%;background:var(--ac)}
.video-student-link{border:0;background:none;color:var(--ac);font:inherit;font-weight:800;padding:0;cursor:pointer;text-align:left}.video-student-link:hover{text-decoration:underline}
@media(max-width:900px){.video-filter-card{grid-template-columns:1fr 1fr}.video-admin-grid{grid-template-columns:1fr}.video-student-list{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.video-page-head{align-items:stretch}.video-page-head .btn{width:100%;justify-content:center}.video-filter-card,.video-form-grid,.video-assign-tools{grid-template-columns:1fr}.video-field.full,.video-check.full{grid-column:auto}.video-student-list{grid-template-columns:1fr}.video-actions .btn{flex:1}.video-status-wrap{max-height:58vh}}

/* 학습과제 관리 */
.homework-page-head{margin-bottom:18px}.homework-admin-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:14px;align-items:start}.homework-list-pane{position:sticky;top:68px;margin:0;max-height:calc(100vh - 104px);overflow:auto}.homework-list-filter{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:10px}.homework-post-button{display:block;width:100%;border:1px solid var(--bd);border-radius:9px;background:var(--bg4);color:var(--tx);padding:11px;text-align:left;font:inherit;cursor:pointer;margin-bottom:7px}.homework-post-button:hover,.homework-post-button.on{border-color:var(--ac);background:rgba(79,142,247,.1)}.homework-post-button b,.homework-post-button small{display:block}.homework-post-button small{color:var(--tx3);font-size:11px;margin-top:4px}.homework-editor-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.homework-field{display:flex;flex-direction:column;gap:5px;min-width:0}.homework-field>span{font-size:11px;font-weight:800;color:var(--tx2)}.homework-field.wide{grid-column:span 2}.homework-field.full{grid-column:1/-1}.homework-quick{min-height:120px;resize:vertical;white-space:pre-wrap}.homework-toolbar{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:12px 0}.homework-item{border:1px solid var(--bd);border-radius:11px;background:var(--bg3);margin-bottom:10px;overflow:hidden}.homework-item-head{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:8px;align-items:center;padding:10px 12px;background:var(--bg4)}.homework-item-head input[type=checkbox]{width:16px;height:16px}.homework-item-title{font-weight:850}.homework-item-actions{display:flex;gap:4px;flex-wrap:wrap}.homework-item-body{padding:12px}.homework-item-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.homework-student-picker{grid-column:1/-1;border:1px solid var(--bd);border-radius:8px;padding:8px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;max-height:190px;overflow:auto}.homework-student-choice{display:flex;align-items:center;gap:6px;padding:5px 6px;border-radius:6px;background:var(--bg4);font-size:11px}.homework-attachments{display:flex;gap:7px;flex-wrap:wrap}.homework-file-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--bd);border-radius:999px;background:var(--bg4);padding:5px 9px;font-size:11px}.homework-file-chip button{border:0;background:transparent;color:var(--rd);cursor:pointer}.homework-preview-phone{width:min(390px,100%);margin:auto;border:8px solid #20232d;border-radius:24px;background:#f1f5f9;color:#111827;padding:15px;max-height:70vh;overflow:auto}.homework-preview-notice{background:#fff;border:1px solid #dbe2ea;border-radius:12px;padding:15px;white-space:pre-wrap;line-height:1.65}.homework-preview-notice h3{font-size:17px;margin:0 0 6px}.homework-preview-item{border-top:1px solid #e5e7eb;padding-top:9px;margin-top:9px}.homework-preview-item b{display:block}.homework-preview-item small{display:block;color:#64748b;margin-top:3px}.homework-read-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:10px 0}.homework-read-summary>div{background:var(--bg4);border-radius:8px;padding:10px;text-align:center}.homework-read-summary b,.homework-read-summary small{display:block}.homework-read-summary small{color:var(--tx3);font-size:10px}.homework-read-table{width:100%;min-width:680px;border-collapse:collapse}.homework-read-table th,.homework-read-table td{padding:8px;border-bottom:1px solid var(--bd);text-align:left;font-size:12px}.homework-warning{border:1px solid rgba(245,158,11,.35);background:rgba(245,158,11,.08);color:#fbbf24;border-radius:8px;padding:9px;font-size:12px;margin:8px 0}.homework-version-list{display:flex;gap:5px;flex-wrap:wrap;font-size:10px;color:var(--tx3)}
@media(max-width:1080px){.homework-admin-layout{grid-template-columns:1fr}.homework-list-pane{position:static;max-height:none}.homework-editor-grid{grid-template-columns:1fr 1fr}.homework-item-grid{grid-template-columns:1fr 1fr}.homework-student-picker{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.homework-page-head{align-items:stretch;flex-direction:column}.homework-page-head>.row .btn{flex:1}.homework-editor-grid,.homework-item-grid{grid-template-columns:1fr}.homework-field.wide,.homework-field.full{grid-column:auto}.homework-student-picker{grid-template-columns:1fr 1fr}.homework-item-head{grid-template-columns:22px minmax(0,1fr)}.homework-item-actions{grid-column:1/-1}.homework-read-summary{grid-template-columns:1fr 1fr}}

/* 반별 숙제 자동 생성 */
.hg-class-tabs{display:flex;gap:7px;overflow-x:auto;padding:2px 0 12px;margin-bottom:12px;scrollbar-width:thin}.hg-class-tab{flex:0 0 auto;border:1px solid var(--bd);border-radius:999px;background:var(--bg3);color:var(--tx2);padding:8px 13px;font:700 12px inherit;cursor:pointer}.hg-class-tab.on{border-color:var(--ac);background:rgba(79,142,247,.17);color:#6ba3ff}.hg-class-tab.add{border-style:dashed}.hg-subtabs{align-items:center}.hg-source{margin-left:auto;color:var(--tx3);font-size:10px}.hg-toolbar{display:flex;align-items:end;justify-content:space-between;gap:12px}.hg-toolbar>div:first-child{width:min(300px,100%)}.hg-toolbar-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.hg-generation-status{display:flex;align-items:center;gap:7px;margin-top:8px;color:var(--ac);font-size:12px;font-weight:700}.hg-generation-status .spinner{width:14px;height:14px;border:2px solid rgba(79,142,247,.25);border-top-color:var(--ac);border-radius:50%;animation:hg-spin .8s linear infinite}@keyframes hg-spin{to{transform:rotate(360deg)}}.hg-editor{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}.hg-item{display:grid;grid-template-columns:42px minmax(0,1fr);border:1px solid var(--bd);border-radius:12px;background:var(--bg3);overflow:hidden}.hg-item.suggestion{border-color:rgba(245,158,11,.45);background:rgba(245,158,11,.05)}.hg-item-number{display:flex;align-items:flex-start;justify-content:center;padding-top:18px;background:var(--bg4);font-size:18px;font-weight:900;color:var(--ac)}.hg-item-content{padding:12px}.hg-item-type{width:auto;min-width:110px}.hg-item-text{margin-top:8px;resize:vertical;line-height:1.5}.hg-quick-add{flex-wrap:wrap;margin-top:9px}.hg-sublines{display:flex;flex-direction:column;gap:6px;margin-top:8px}.hg-subline{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}.hg-history pre{white-space:pre-wrap;font:500 12px/1.65 inherit;background:var(--bg4);border-radius:8px;padding:12px;margin:10px 0;color:var(--tx)}.hg-sync-list{display:flex;flex-direction:column;gap:7px;margin:12px 0}.hg-sync-row{display:flex;align-items:center;gap:10px;border:1px solid var(--bd);background:var(--bg4);border-radius:9px;padding:10px;cursor:pointer}.hg-sync-row span,.hg-sync-row b,.hg-sync-row small{display:block}.hg-sync-row small{color:var(--tx2);margin-top:3px}.hg-setting-block{border:1px solid var(--bd);border-radius:10px;padding:10px;margin-bottom:9px}.hg-setting-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:7px;align-items:center;margin-bottom:7px}.hg-setting-row:last-child{margin-bottom:0}.hg-setting-six{grid-template-columns:repeat(5,minmax(0,1fr)) auto}.hg-track-row{grid-template-columns:1.1fr .8fr 1fr .8fr .8fr .45fr 1.3fr auto auto}.hg-book-part{grid-template-columns:.55fr .75fr .7fr 1.1fr .75fr .65fr 1.15fr auto;padding-left:12px;border-left:2px solid var(--bd)}
@media(max-width:900px){.hg-setting-row,.hg-setting-six,.hg-track-row,.hg-book-part{grid-template-columns:1fr 1fr}.hg-setting-row>.btn{justify-content:center}.hg-toolbar{align-items:stretch;flex-direction:column}.hg-toolbar-actions{justify-content:flex-start}.hg-source{width:100%;margin-left:0}.hg-item{grid-template-columns:34px minmax(0,1fr)}}
@media(max-width:600px){.hg-setting-row,.hg-setting-six,.hg-track-row,.hg-book-part{grid-template-columns:1fr}.hg-item-content .row-sb{align-items:flex-start;flex-direction:column}.hg-item-content .row{width:100%}.hg-item-content .row .btn{flex:1;justify-content:center}.hg-toolbar-actions .btn{width:100%;justify-content:center}.hg-class-tab{padding:8px 11px}}

/* Homework titles must keep a usable horizontal track inside narrow flex/grid cards. */
.homework-item-title{min-width:0;overflow-wrap:anywhere;word-break:keep-all;white-space:normal;line-height:1.4}
.hg-item-content{min-width:0}
.hg-item-content>.row-sb,.hg-item-content>.row-sb>*,.hg-item-content>.row-sb>.row{min-width:0}
.hg-item-text{display:block;min-width:0;width:100%}

/* 단어 DB 기반 시험 출제 */
.ag-builder-grid{display:grid;grid-template-columns:minmax(270px,.9fr) minmax(330px,1.15fr) minmax(300px,1fr);gap:12px;align-items:start}
.ag-builder-card{margin:0;min-width:0}.ag-builder-card .lbl{margin-top:9px}.ag-full{width:100%;justify-content:center;margin-top:9px}
.ag-unit-toolbar{display:flex;justify-content:space-between;gap:8px;align-items:center;margin:9px 0 6px;font-size:11px;color:var(--tx2)}
.ag-unit-list,.ag-scope-list{height:330px;overflow:auto;border:1px solid var(--bd);border-radius:8px;background:var(--bg4)}
.ag-unit-row{display:grid;grid-template-columns:24px minmax(0,1fr) 54px;gap:7px;align-items:center;padding:8px 9px;border-bottom:1px solid var(--bd);font-size:12px}.ag-unit-row:last-child{border-bottom:0}.ag-unit-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ag-unit-row small{text-align:right;color:var(--tx3)}
.ag-scope-row{display:grid;grid-template-columns:24px minmax(0,1fr) 54px 80px;gap:6px;align-items:center;padding:8px;border-bottom:1px solid var(--bd);font-size:11px}.ag-scope-row:last-child{border-bottom:0}.ag-scope-row-main{min-width:0}.ag-scope-row-main b,.ag-scope-row-main span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ag-scope-row-main span{color:var(--tx3);margin-top:2px}.ag-scope-actions{display:flex;gap:3px}.ag-scope-actions button{padding:4px 6px}
.ag-scope-summary,.ag-number-strip{display:flex;gap:7px;align-items:center;padding:10px;border:1px solid var(--bd);border-radius:8px;background:var(--bg4);font-size:12px;color:var(--tx2);margin-bottom:9px}.ag-scope-summary b,.ag-number-strip b{font-size:18px;color:var(--ac)}
.ag-number-strip{justify-content:space-around}.ag-direction-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ag-quick-buttons,.ag-actions,.ag-inline{display:flex;gap:6px}.ag-quick-buttons{margin:7px 0 10px;flex-wrap:wrap}.ag-inline .inp{flex:1}.ag-actions .btn{flex:1;justify-content:center}
.ag-options{margin:10px 0;padding:9px;border:1px solid var(--bd);border-radius:8px;background:var(--bg4)}.ag-options summary{cursor:pointer;font-size:12px;font-weight:800;color:var(--tx2);margin-bottom:5px}.ag-options label,.ag-check{display:block;font-size:11px;color:var(--tx2);padding:4px 0}.ag-error{min-height:18px;margin:7px 0;color:var(--rd);font-size:11px}.ag-status{min-height:18px;margin-top:8px;font-size:12px}.ag-empty{padding:28px 12px;text-align:center;color:var(--tx3);font-size:12px}.ag-created-card{margin-top:12px}.ag-import-preview{margin:9px 0;border:1px solid var(--bd);border-radius:8px;max-height:280px;overflow:auto;background:var(--bg4)}
.ag-capture-panel{margin:14px 0;padding:13px;border:1px solid rgba(79,142,247,.35);border-radius:12px;background:rgba(79,142,247,.06)}.ag-capture-panel>.lbl{margin-top:10px}.ag-capture-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}.ag-capture-card{display:grid;grid-template-columns:170px minmax(0,1fr);gap:13px;margin-top:12px;padding-top:12px;border-top:1px solid var(--bd)}.ag-capture-qr{width:170px;max-width:100%;aspect-ratio:1;background:#fff;border:8px solid #fff;border-radius:10px}.ag-capture-meta{display:grid;grid-template-columns:100px minmax(0,1fr);gap:6px 9px;font-size:12px;align-content:start}.ag-capture-meta dt{color:var(--tx3)}.ag-capture-meta dd{margin:0;color:var(--tx);font-weight:700;overflow-wrap:anywhere}.ag-capture-targets{display:grid;gap:7px;margin-top:10px}.ag-capture-target{display:grid;grid-template-columns:minmax(110px,1fr) auto auto;align-items:center;gap:7px;padding:8px 9px;border:1px solid var(--bd);border-radius:9px;background:var(--bg4);font-size:11px}.ag-capture-target b{font-size:12px}.ag-capture-target small{display:block;color:var(--tx3);margin-top:2px}.ag-capture-target-actions{display:flex;gap:5px}.ag-direct-upload{border:1px dashed var(--bd);border-radius:10px;padding:10px}.ag-direct-upload.drag{border-color:var(--ac);background:rgba(79,142,247,.08)}
.ag-import-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:9px}.ag-import-stats span{padding:8px;border-radius:7px;background:var(--bg3);font-size:10px;color:var(--tx3);text-align:center}.ag-import-stats b{display:block;color:var(--tx);font-size:16px;margin-bottom:2px}.ag-preview-table{width:100%;border-collapse:collapse;font-size:11px}.ag-preview-table th,.ag-preview-table td{padding:7px;border-bottom:1px solid var(--bd);text-align:left;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ag-preview-table th{position:sticky;top:0;background:var(--bg3);color:var(--tx2)}
.ag-test-item{padding:12px;background:var(--bg4);border:1px solid var(--bd);border-radius:9px;margin-top:8px}.ag-test-item h4{margin:0;font-size:13px}.ag-test-item-meta{font-size:11px;color:var(--tx3);margin:5px 0 9px}.ag-test-actions{display:flex;gap:5px;flex-wrap:wrap}
.ag-assignment-card{margin-top:12px}.ag-range-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:8px;margin-top:12px}.ag-range-group{border:1px solid var(--bd);border-radius:9px;padding:10px;background:var(--bg4)}.ag-range-group.default{border-color:var(--ac)}.ag-range-group-head{display:flex;align-items:center;gap:6px}.ag-range-group-head .inp{flex:1}.ag-range-group-meta{font-size:11px;color:var(--tx3);line-height:1.55;margin:7px 0}.ag-student-assignments{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:6px;margin-top:10px}.ag-student-assignment{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:7px;align-items:center;border:1px solid var(--bd);border-radius:8px;padding:7px 9px;background:var(--bg4);font-size:12px}.ag-student-assignment small{display:block;color:var(--tx3);margin-top:2px}.ag-student-assignment.unassigned{border-color:var(--rd);background:color-mix(in srgb,var(--rd) 8%,var(--bg4))}
@media(max-width:1180px){.ag-builder-grid{grid-template-columns:1fr 1fr}.ag-builder-card:last-child{grid-column:1/-1}.ag-unit-list,.ag-scope-list{height:290px}}
@media(max-width:760px){.ag-builder-grid{grid-template-columns:1fr}.ag-builder-card:last-child{grid-column:auto}.ag-unit-list,.ag-scope-list{height:260px}.ag-import-stats{grid-template-columns:1fr 1fr}.ag-direction-grid{grid-template-columns:1fr}.ag-test-actions .btn{flex:1}.ag-scope-row{grid-template-columns:24px minmax(0,1fr) 44px 70px}.ag-capture-actions,.ag-capture-card{grid-template-columns:1fr}.ag-capture-qr{margin:0 auto}.ag-capture-target{grid-template-columns:1fr auto}.ag-capture-target-actions{grid-column:1/-1}}
.daily-link-badges{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-top:4px}.daily-link-badges.mobile{padding:0 14px 9px;margin-top:-2px}.daily-link-btn{border:1px solid var(--bd);background:var(--bg4);color:var(--tx2);border-radius:999px;padding:3px 7px;font:600 10px/1.2 inherit;cursor:pointer;white-space:nowrap}.daily-link-btn.homework{border-color:rgba(96,165,250,.38);color:#60a5fa}.daily-link-btn.word{border-color:rgba(45,212,191,.38);color:#2dd4bf}.daily-link-conflict,.daily-link-updated{display:inline-flex;align-items:center;border-radius:999px;padding:3px 7px;background:rgba(245,158,11,.16);color:#fbbf24;font-size:10px;font-weight:700;white-space:nowrap}.daily-link-post{margin-top:14px;padding:14px;border:1px solid var(--bd);border-radius:12px;background:var(--bg4)}.daily-link-post-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.daily-link-post-title h4{margin:0 0 3px;font-size:16px}.daily-link-post-title span{color:var(--tx3);font-size:11px}.daily-link-meta{display:grid;grid-template-columns:82px minmax(0,1fr);gap:5px 10px;margin:12px 0;font-size:12px}.daily-link-meta dt{color:var(--tx3)}.daily-link-meta dd{margin:0;color:var(--tx)}.daily-link-note{padding:10px 12px;border-radius:9px;background:rgba(96,165,250,.08);font-size:12px;line-height:1.6;margin-bottom:10px}.daily-link-item{padding:10px 0;border-top:1px solid var(--bd);font-size:12px;line-height:1.55}.daily-link-item-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.daily-link-item-head span{color:#a78bfa;font-size:10px;font-weight:700}.daily-link-item dl{display:grid;grid-template-columns:90px minmax(0,1fr);gap:3px 8px;margin:7px 0 0}.daily-link-item dt{color:var(--tx3)}.daily-link-item dd{margin:0}.daily-link-file{display:flex;align-items:center;gap:7px;width:100%;margin-top:6px;padding:8px 10px;border:1px solid var(--bd);border-radius:8px;background:transparent;color:var(--tx);font:500 11px inherit;text-align:left;cursor:pointer}.daily-word-detail{padding-top:14px}.daily-word-score{font-size:24px;font-weight:800;color:#2dd4bf;margin:8px 0 14px}.modal-bg.daily-link-sheet{align-items:flex-end;padding:0}.modal-bg.daily-link-sheet .modal{width:100%;max-width:none!important;max-height:86vh;overflow:auto;border-radius:18px 18px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom));animation:dailySheetUp .18s ease-out}@keyframes dailySheetUp{from{transform:translateY(16px);opacity:.6}to{transform:none;opacity:1}}@media(max-width:600px){.daily-link-badges.mobile .daily-link-btn{min-height:32px;padding:6px 9px}.daily-link-post{padding:12px}.daily-link-meta{grid-template-columns:72px minmax(0,1fr)}}
