:root{
  --bg:#f5f7fb; --card:#ffffff; --ink:#111827; --sub:#5b6474; --line:#e3e8f0; --soft:#eef3ff;
  --blue:#1f5eff; --blue-ink:#ffffff; --blue-soft:rgba(31,94,255,.12); --blue-band:rgba(31,94,255,.10);
  --gray-dot:#b8c0cc; --ok:#11845b; --warn:#b45309; --bad:#c2410c; --shadow:0 1px 2px rgba(16,24,40,.06),0 4px 16px rgba(16,24,40,.06);
  --r:16px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0f1420; --card:#171d2b; --ink:#e8ecf3; --sub:#9aa4b6; --line:#2a3245; --soft:#1d2840;
    --blue:#5b8cff; --blue-ink:#0b1020; --blue-soft:rgba(91,140,255,.18); --blue-band:rgba(91,140,255,.14);
    --gray-dot:#4a5468; --ok:#3ccf91; --warn:#f0a648; --bad:#ff8a5c; --shadow:none;
  }
}
:root[data-theme="dark"]{
  --bg:#0f1420; --card:#171d2b; --ink:#e8ecf3; --sub:#9aa4b6; --line:#2a3245; --soft:#1d2840;
  --blue:#5b8cff; --blue-ink:#0b1020; --blue-soft:rgba(91,140,255,.18); --blue-band:rgba(91,140,255,.14);
  --gray-dot:#4a5468; --ok:#3ccf91; --warn:#f0a648; --bad:#ff8a5c; --shadow:none;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 -apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR",sans-serif;word-break:keep-all;overflow-wrap:anywhere}
a{color:var(--blue)}
button,input,select{font:inherit;color:inherit}
.wrap{max-width:640px;margin:0 auto;padding:12px 16px 120px}
.wrap.wide{max-width:1040px}

/* 상단 */
.top{position:sticky;top:0;z-index:5;background:var(--card);border-bottom:1px solid var(--line)}
.top-in{max-width:1040px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{font-weight:800;font-size:20px;text-decoration:none;color:var(--ink)}
.brand .b1{color:var(--blue)}
.top-nav{display:none;gap:4px}
.top-nav button,.top-nav a{background:none;border:0;padding:8px 10px;border-radius:10px;color:var(--sub);text-decoration:none;cursor:pointer;font-size:14px}
.top-nav button:hover,.top-nav a:hover{background:var(--soft);color:var(--ink)}
.fav-n{color:var(--blue);font-weight:700}

/* 하단 탭(모바일) */
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:5;display:grid;grid-template-columns:repeat(4,1fr);background:var(--card);border-top:1px solid var(--line);padding:4px 0 calc(4px + env(safe-area-inset-bottom))}
.tabbar button,.tabbar a{background:none;border:0;display:flex;flex-direction:column;align-items:center;gap:1px;font-size:11px;color:var(--sub);text-decoration:none;padding:6px 0;cursor:pointer}
.tabbar .ico{font-size:18px;line-height:1}
.tabbar .on{color:var(--blue);font-weight:700}
.foot{max-width:640px;margin:0 auto;padding:0 16px 96px;color:var(--sub);font-size:12px;text-align:center}

/* 진행 표시 */
.prog{display:flex;align-items:center;gap:10px;margin:6px 0 18px}
.prog .back{background:none;border:0;font-size:22px;line-height:1;padding:4px 8px 4px 0;cursor:pointer;color:var(--ink)}
.prog .back[disabled]{visibility:hidden}
.bar{flex:1;height:6px;border-radius:6px;background:var(--line);overflow:hidden}
.bar i{display:block;height:100%;background:var(--blue);border-radius:6px;transition:width .25s}
.prog .lab{font-size:12px;color:var(--sub);white-space:nowrap}

/* 질문 화면 */
.q h1{font-size:26px;line-height:1.3;margin:4px 0 6px;letter-spacing:-.01em}
.q .lead{color:var(--sub);margin:0 0 18px}
.opts{display:grid;gap:10px}
.opts.two{grid-template-columns:1fr 1fr}
.opt{position:relative;display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--card);border:1.5px solid var(--line);border-radius:var(--r);padding:16px;cursor:pointer;box-shadow:var(--shadow);min-height:64px}
.opt:hover{border-color:var(--blue)}
.opt[aria-pressed="true"],.opt[aria-checked="true"]{border-color:var(--blue);background:var(--blue-soft)}
.opt .oi{flex:none;width:40px;height:40px;border-radius:12px;background:var(--soft);display:grid;place-items:center;font-size:20px}
.opt .ot{font-weight:700;font-size:17px}
.opt .os{display:block;font-weight:400;font-size:13px;color:var(--sub)}
.opt .ck{margin-left:auto;flex:none;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;font-size:14px;color:transparent}
.opt[aria-pressed="true"] .ck,.opt[aria-checked="true"] .ck{background:var(--blue);border-color:var(--blue);color:var(--blue-ink)}
.opts.two .opt{flex-direction:column;align-items:flex-start;gap:6px}
.opts.two .opt .ck{position:absolute;top:10px;right:10px}
.opt.small{min-height:48px;padding:10px 14px;box-shadow:none}
.opt.small .ot{font-size:15px;font-weight:600}

.info{display:flex;gap:8px;align-items:flex-start;background:var(--soft);border-radius:12px;padding:10px 12px;margin:16px 0 0;font-size:13px;color:var(--sub)}
.info b{color:var(--ink)}
.warn{background:rgba(180,83,9,.10);color:var(--ink)}

.next{position:sticky;bottom:calc(64px + env(safe-area-inset-bottom));margin-top:20px;padding-top:8px;background:linear-gradient(to bottom,transparent,var(--bg) 30%)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:14px;padding:14px 18px;font-weight:700;cursor:pointer;text-decoration:none}
.btn.primary{width:100%;background:var(--blue);color:var(--blue-ink);font-size:17px}
.btn.primary[disabled]{opacity:.4;cursor:not-allowed}
.btn.line{background:var(--card);border:1.5px solid var(--blue);color:var(--blue)}
.btn.ghost{background:none;border:1px solid var(--line);color:var(--ink);padding:8px 12px;font-weight:600;border-radius:10px}
.btn.sm{padding:8px 12px;font-size:14px;border-radius:10px}

/* 입력 */
.field{display:block;margin:0 0 14px}
.field>span{display:block;font-size:14px;color:var(--sub);margin-bottom:6px}
.field input,.field select{width:100%;padding:14px;border-radius:12px;border:1.5px solid var(--line);background:var(--card);font-size:18px}
.field input:focus,.field select:focus{outline:none;border-color:var(--blue)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1.5px solid var(--line);background:var(--card);border-radius:999px;padding:8px 14px;cursor:pointer;font-size:15px}
.chip[aria-pressed="true"]{border-color:var(--blue);background:var(--blue-soft);color:var(--ink);font-weight:700}
.chip small{color:var(--sub);font-weight:400;margin-left:4px}
.chip.dim{opacity:.6}

.qh{font-weight:700;margin:18px 0 8px}
.qh.big{font-size:13px;letter-spacing:.04em;color:var(--blue);margin:22px 0 8px;padding-top:12px;border-top:1px solid var(--line)}
.qh.big:first-of-type{border-top:0;padding-top:0}
.tag{display:inline-block;font-size:11px;font-weight:700;border-radius:6px;padding:2px 6px;margin-left:6px;vertical-align:2px}
.tag.t-req{background:var(--blue-soft);color:var(--blue)}
.tag.t-opt{background:var(--soft);color:var(--sub)}
.mrow{display:grid;grid-template-columns:52px repeat(3,minmax(0,1fr));gap:6px;align-items:end;margin-bottom:8px}
.mrow.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.mrow.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.mrow b{font-size:14px;padding-bottom:12px}
.mini{display:flex;flex-direction:column;gap:3px;min-width:0}
.mini span{font-size:11.5px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini input,.mini select{width:100%;min-width:0;padding:11px 8px;border-radius:10px;border:1.5px solid var(--line);background:var(--card);font-size:16px}
.mini select{font-size:14px;padding:11px 4px}
.mini input:focus,.mini select:focus{outline:none;border-color:var(--blue)}
.q .chips .chip{padding:10px 14px}
/* 수능 성적 한 화면 표 */
.sgrid{display:grid;gap:6px;margin-top:4px}
.sgrid .sh,.sgrid .sr{display:grid;grid-template-columns:52px repeat(3,minmax(0,1fr));gap:6px;align-items:center}
.sgrid .sh{font-size:11.5px;color:var(--sub);margin-top:6px}
.sgrid .sr b{font-size:14px}
.sgrid input,.sgrid select{width:100%;min-width:0;padding:10px 8px;border-radius:10px;border:1.5px solid var(--line);background:var(--card);font-size:16px}
.sgrid select{font-size:14px;padding:10px 4px}
.sgrid input:focus,.sgrid select:focus{outline:none;border-color:var(--blue)}
.sgrid .sr.two{grid-template-columns:52px minmax(0,1fr) 52px minmax(0,1fr);margin-top:6px}
/* 과목 입력 */
details.more{margin-top:14px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px}
details.more summary{cursor:pointer;font-weight:700}
.course{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;align-items:end;padding:10px 0;border-bottom:1px solid var(--line)}
.course label{display:flex;flex-direction:column;font-size:11px;color:var(--sub);gap:2px;min-width:0}
.course select,.course input{padding:8px 6px;border-radius:8px;border:1px solid var(--line);background:var(--card);font-size:14px;width:100%;min-width:0}
.course .c-name{grid-column:span 2}
.course .del{grid-column:span 1;padding:8px 0}
.row-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}

/* 요약 */
.sum{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.sum div{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line)}
.sum div:last-child{border-bottom:0}
.sum dt{color:var(--sub);font-size:14px}
.sum dd{margin:0;text-align:right;font-weight:600}
.sum button{background:none;border:0;color:var(--blue);cursor:pointer;font-size:13px;padding:0 0 0 8px}

/* 결과 */
.res-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:4px 0 10px}
.res-head h1{font-size:24px;margin:0;line-height:1.3}
.res-head .lead{color:var(--sub);margin:4px 0 0;font-size:14px}
.pill{display:inline-block;background:var(--soft);color:var(--sub);border-radius:999px;padding:4px 10px;font-size:13px;margin:2px 4px 2px 0}
.pill.blue{background:var(--blue-soft);color:var(--blue);font-weight:700}
.seg{display:inline-flex;background:var(--soft);border-radius:12px;padding:3px;margin:6px 0;flex-wrap:wrap}
.seg button{border:0;background:none;padding:7px 12px;border-radius:9px;cursor:pointer;font-size:14px;color:var(--sub)}
.seg button[aria-pressed="true"]{background:var(--card);color:var(--ink);font-weight:700;box-shadow:var(--shadow)}
.ctrls{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;margin:4px 0 8px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px;box-shadow:var(--shadow);margin:10px 0}
.chart{width:100%;height:auto;display:block;touch-action:manipulation}
.chart text{fill:var(--sub);font-size:11px}
.chart .ax{stroke:var(--line)}
.chart .me{stroke:var(--blue);stroke-width:2}
.chart .band{fill:var(--blue-band)}
.chart .d0{fill:var(--gray-dot)}
.chart .d1{fill:var(--blue)}
.chart .sel{stroke:var(--ink);stroke-width:2.5}
.chart .lbl{fill:var(--ink);font-size:11px;font-weight:600;paint-order:stroke;stroke:var(--card);stroke-width:3px;stroke-linejoin:round;pointer-events:none}
.res-head .btn{white-space:nowrap;flex:none}
.chart .metag{fill:var(--blue)}
.chart .metxt{fill:var(--blue-ink);font-size:12px;font-weight:700}
.legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--sub);margin-top:6px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px;vertical-align:-1px}
.note{font-size:12.5px;color:var(--sub);margin:6px 0 0}
.dhead{position:sticky;top:54px;z-index:4;background:var(--bg);padding:8px 0;margin-bottom:4px}
details.note-more{margin-top:6px}
details.note-more summary{cursor:pointer;display:inline}
.res-grid>.card{margin-top:0}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{font-size:12px;color:var(--sub);font-weight:600;text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:9px 6px;border-bottom:1px solid var(--line);vertical-align:top}
.tbl tr[data-k]{cursor:pointer}
.tbl tr[data-k]:hover td{background:var(--soft)}
.tbl tr.on td{background:var(--blue-soft)}
.tbl .n{text-align:right;white-space:nowrap}
.list{list-style:none;margin:8px 0 0;padding:0}
.list li{border-top:1px solid var(--line)}
.list button{display:block;width:100%;text-align:left;background:none;border:0;padding:10px 4px;cursor:pointer;border-radius:8px}
.list button:hover{background:var(--soft)}
.list button.on{background:var(--blue-soft)}
.list .l1{display:flex;gap:8px;align-items:baseline}
.list .l1 .v{margin-left:auto;font-weight:800;font-variant-numeric:tabular-nums}
.list .l2{display:block;font-size:12.5px;color:var(--sub);margin-top:2px}
.list .st{margin-left:2px;font-size:11.5px;padding:1px 8px}
.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.uc{display:flex;gap:12px;align-items:flex-start}
.uc .logo{flex:none;width:44px;height:44px;border-radius:12px;background:var(--soft);display:grid;place-items:center;font-size:22px}
.uc h3{margin:0;font-size:18px}
.uc .s{color:var(--sub);font-size:14px}
.heart{margin-left:auto;background:none;border:0;font-size:24px;cursor:pointer;color:var(--sub);line-height:1;padding:2px}
.heart[aria-pressed="true"]{color:#e0245e}
.kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 4px}
.kv div{background:var(--soft);border-radius:12px;padding:10px 12px}
.kv small{display:block;color:var(--sub);font-size:12px}
.kv b{font-size:20px}
.st{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:700}
.st.ok{background:rgba(17,132,91,.12);color:var(--ok)}
.st.chk{background:rgba(180,83,9,.12);color:var(--warn)}
.st.no{background:rgba(194,65,12,.12);color:var(--bad)}
.st.na{background:var(--soft);color:var(--sub)}
.rule{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}
.rule .score{font-size:22px;font-weight:800}
.rule details{margin-top:6px;font-size:13px;color:var(--sub)}
.rule select{padding:6px 8px;border-radius:8px;border:1px solid var(--line);background:var(--card);font-size:14px;max-width:100%}
.empty{text-align:center;color:var(--sub);padding:28px 8px}
.badge{display:inline-block;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:700;background:var(--soft);color:var(--ink)}
.badge.v1{background:rgba(17,132,91,.12);color:var(--ok)}
.badge.v2{background:rgba(31,94,255,.12);color:var(--blue)}

/* 태블릿 */
@media (min-width:600px){
  .wrap{padding-top:24px}
  .q{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:28px 28px 24px;box-shadow:var(--shadow)}
  .q h1{font-size:30px}
  .next{position:static;background:none;padding-top:0}
  .opts.three{grid-template-columns:repeat(3,1fr)}
  .kv{grid-template-columns:repeat(4,minmax(0,1fr))}
  .course{grid-template-columns:repeat(8,minmax(0,1fr))}
}
/* 웹 */
@media (min-width:1024px){
  .top-nav{display:flex}
  .tabbar{display:none}
  .wrap{padding-bottom:48px}
  .foot{padding-bottom:32px}
  .res-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;align-items:start}
  .res-grid .card{margin-top:0}
  .res-side{position:sticky;top:72px}
}

/* 결과 목록: 넓은 화면은 표, 좁은 화면은 카드 */
.lhead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 10px;margin-bottom:6px}
.lhead .seg{margin:0}
.rtbl{width:100%;border-collapse:collapse;font-size:14px}
.rtbl th{font-size:12px;color:var(--sub);font-weight:600;text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);white-space:nowrap}
.rtbl th.n,.rtbl td.n{text-align:right}
.rtbl td{padding:10px 6px;border-bottom:1px solid var(--line);vertical-align:top}
.rtbl tbody tr{cursor:pointer}
.rtbl tbody tr:hover,.rtbl tbody tr:focus{background:var(--soft);outline:none}
.rtbl tr.on{background:var(--blue-soft)}
.rtbl td small{display:block;font-size:11px;color:var(--sub);font-weight:400;margin-top:2px}
.rtbl td.n small{display:block}
.rtbl td.gap{font-weight:700;white-space:nowrap}
.rtbl small.i{display:inline;margin-left:1px}
.rtbl td.u b{margin-right:4px}
.rtbl td.u .st{font-size:11px;padding:1px 6px}
@media (max-width:640px){
  .rtbl thead{display:none}
  .rtbl,.rtbl tbody{display:block}
  .rtbl tbody tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 8px;padding:12px 4px;border-bottom:1px solid var(--line)}
  .rtbl td{display:block;border:0;padding:0;text-align:left!important}
  .rtbl td.u{grid-column:1/-1;font-size:15px}
  .rtbl td[data-l]:not(.u)::before{content:attr(data-l);display:block;font-size:11px;color:var(--sub);font-weight:400}
  .rtbl td.gap{font-size:16px}
}
/* 대학으로 보기 */
.sec2{font-size:17px;margin:22px 0 4px}
.hbar{display:block;height:8px;border-radius:6px;background:var(--line);overflow:hidden}
.hbar i{display:block;height:100%;background:var(--blue)}

/* 2026-10-20 강점 보이기: 약속·왜 이 위치·확인할 점·근거·군 조합판 */
.trust{display:flex;flex-wrap:wrap;gap:4px 6px;margin:6px 0 0;font-size:12px;color:var(--sub)}
.trust span{background:var(--soft);border-radius:999px;padding:2px 9px}
.trust span:first-child{color:var(--blue);font-weight:700}
.wtag{display:inline-block;border-radius:6px;padding:0 6px;font-size:11px;font-weight:700;color:var(--warn);background:rgba(180,83,9,.12);white-space:nowrap}
.why{margin:10px 0 6px;padding:10px 12px;border-radius:10px;background:var(--soft);font-size:14px;line-height:1.55}
.cau{margin:6px 0 10px;padding:8px 12px;border:1px solid rgba(180,83,9,.35);border-radius:10px;font-size:13.5px}
.cau ul{margin:4px 0 0;padding-left:0;list-style:none}
.cau li{margin:3px 0}
.evi{margin-top:12px;border-top:1px solid var(--line);padding-top:4px}
.exs{display:flex;flex-wrap:wrap;gap:4px}
.exs span{border:1px solid var(--line);border-radius:8px;padding:2px 8px;font-size:12.5px}
.exs small{color:var(--sub);margin-right:5px}
.gunb{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-top:8px}
.gcol{border:1px solid var(--line);border-radius:10px;padding:8px 10px;min-width:0}
.gcol .gh{margin:0 0 4px;font-weight:800}
.gcol .gh small{color:var(--sub);font-weight:400}
.gcol ul{list-style:none;margin:0;padding:0}
.gcol li button{display:block;width:100%;text-align:left;background:none;border:0;border-top:1px solid var(--line);padding:7px 0;color:var(--ink);font:inherit;cursor:pointer}
.gcol li:first-child button{border-top:0}
.gcol .gv{display:block;font-size:12.5px;color:var(--sub)}
.gcol .gv small{margin-left:2px}
/* 수능 성적표 모양 입력 */
.sheet{width:100%;border-collapse:collapse;table-layout:fixed;margin:0 0 10px;font-size:13px}
.sheet th,.sheet td{border:1px solid var(--line);padding:3px;text-align:center}
.sheet thead th{background:var(--soft);font-weight:700;font-size:12px;padding:6px 2px}
.sheet tbody th{width:52px;font-weight:700;background:var(--soft)}
.sheet .ci{width:100%;min-width:0;box-sizing:border-box;height:34px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--ink);font:inherit;text-align:center;padding:0 2px}
.sheet .ci.req{border-color:var(--blue);background:var(--blue-soft)}
.sheet .ci.na{display:inline-flex;align-items:center;justify-content:center;border:0;background:none;color:var(--sub)}
.reqm{color:var(--blue)}
.mrow.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.sheet thead small{display:block;font-size:10.5px;font-weight:700;margin-top:1px}
.sheet thead small.hreq{color:var(--blue)}
.sheet thead small.hopt{color:var(--sub);font-weight:400}
/* 성적이 오르면?(가정) */
details.sim summary{cursor:pointer;list-style:none}
details.sim summary::-webkit-details-marker{display:none}
.simrows{display:grid;gap:6px;margin:10px 0}
.simr{display:grid;grid-template-columns:minmax(64px,96px) repeat(2,minmax(0,44px)) 46px repeat(2,minmax(0,44px));align-items:center;gap:4px}
.simr b{font-size:14px}
.simr .simv{min-width:44px;text-align:center;font-weight:800;color:var(--blue)}
.simr .btn{min-width:0;padding:4px 2px;width:100%}
/* 과목별 내신 입력 표(머리글 한 번) */
.ctbl{width:100%;border-collapse:collapse;table-layout:fixed;font-size:13px;margin:4px 0}
.ctbl th{font-size:11.5px;font-weight:700;color:var(--sub);text-align:left;padding:4px 3px;border-bottom:1px solid var(--line)}
.ctbl th small{display:block;font-weight:400;font-size:10.5px}
.ctbl th:nth-child(1){width:14%}.ctbl th:nth-child(2){width:15%}.ctbl th:nth-child(3){width:14%}.ctbl th:nth-child(5){width:11%}.ctbl th:nth-child(6){width:13%}.ctbl th:nth-child(7){width:30px}
.ctbl td{padding:3px 2px;border-bottom:1px solid var(--line)}
.ctbl select,.ctbl input{width:100%;min-width:0;box-sizing:border-box;padding:6px 3px;border-radius:6px;border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-size:13px}
.ctbl .cdel{width:28px;height:28px;border-radius:6px;border:1px solid var(--line);background:none;color:var(--sub);font-size:16px;line-height:1;cursor:pointer;padding:0}
@media (min-width:640px){ .ctbl{font-size:14px} .ctbl select,.ctbl input{padding:7px 6px;font-size:14px} }
.ctbl tr.course{display:table-row;padding:0;border:0}
.ctbl tr.course td{vertical-align:middle}
.ctbl select{-webkit-appearance:none;appearance:none;text-align:center;text-align-last:center;padding:6px 1px}
.ctbl input{text-align:center}
.ctbl td:nth-child(4) input{text-align:left;padding-left:5px}

/* 2028 반영 방법 점수(score2028.js) */
.r28w .r28:first-child{margin-top:8px}
.r28 .score small{font-weight:600}
.sim .tbl select{padding:4px 6px;border-radius:8px;border:1px solid var(--line);background:var(--card);font-size:13px;max-width:100%}
.ctbl.c8 th:nth-child(1){width:12%}.ctbl.c8 th:nth-child(2){width:13%}.ctbl.c8 th:nth-child(3){width:13%}.ctbl.c8 th:nth-child(5){width:10%}.ctbl.c8 th:nth-child(6){width:11%}.ctbl.c8 th:nth-child(7){width:12%}.ctbl.c8 th:nth-child(8){width:30px} /* 2028 이후: 등급·성취도 두 칸 */

/* ---- 정시 진단(diagview.js, 2026-10-21): .dg 안에서만 쓰는 모양 ---- */
.dg{--dg-g:#14a06b;--dg-o:#f08a24;--dg-r:#e5484d;--dg-b:#1f5eff;--dg-t:#0ea5b7;--dg-tg:rgba(20,160,107,.12);--dg-to:rgba(240,138,36,.14);--dg-tb:rgba(31,94,255,.10);--dg-tr:rgba(229,72,77,.12)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .dg{--dg-g:#3ccf91;--dg-o:#f5a54a;--dg-r:#ff6b6f;--dg-b:#5b8cff;--dg-t:#38c6d6;--dg-tg:rgba(60,207,145,.16);--dg-to:rgba(245,165,74,.18);--dg-tb:rgba(91,140,255,.16);--dg-tr:rgba(255,107,111,.16)}}
:root[data-theme="dark"] .dg{--dg-g:#3ccf91;--dg-o:#f5a54a;--dg-r:#ff6b6f;--dg-b:#5b8cff;--dg-t:#38c6d6;--dg-tg:rgba(60,207,145,.16);--dg-to:rgba(245,165,74,.18);--dg-tb:rgba(91,140,255,.16);--dg-tr:rgba(255,107,111,.16)}
.dg .tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 12px}
.dg .tabs button{border:2px solid var(--line);background:var(--card);border-radius:14px;padding:10px;font-weight:800;font-size:16px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--ink)}
.dg .tabs button small{font-weight:500;font-size:12px;color:var(--sub)}
.dg .tabs button[aria-selected="true"]{border-color:var(--dg-b);background:var(--dg-tb);color:var(--dg-b)}
.dg .steps{display:flex;align-items:center;gap:4px;margin:0 0 12px;overflow-x:auto;padding:2px}
.dg .steps button{flex:1;min-width:84px;display:flex;flex-direction:column;align-items:center;gap:4px;border:0;background:none;color:var(--ink);font-size:12px;font-weight:700;padding:6px 2px;border-radius:12px;cursor:pointer}
.dg .steps button:hover{background:var(--soft)}
.dg .steps i{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:#fff;font-style:normal;font-size:14px;font-weight:800}
.dg .steps .ar{color:var(--gray-dot);font-weight:800;flex:0 0 auto}
.dg .sec{background:var(--card);border-radius:18px;box-shadow:var(--shadow);border:1px solid var(--line);padding:16px;margin:0 0 14px;scroll-margin-top:70px}
.dg .sh{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px}
.dg .sh i{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;color:#fff;font-style:normal;font-weight:800}
.dg .sh h2{margin:0;font-size:19px}
.dg .grid2{display:grid;grid-template-columns:1.1fr 1fr;gap:16px}
.dg .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.dg .rings{display:flex;justify-content:space-around;gap:6px;flex-wrap:wrap}
.dg .ring{text-align:center;min-width:88px;color:var(--ink)}
.dg .ring svg{display:block;margin:0 auto}
.dg .ring .lb{font-weight:800;margin-top:2px}
.dg .tg2{display:inline-block;font-size:11px;font-weight:800;border-radius:6px;padding:1px 6px;margin-top:2px}
.dg .bigavg{display:flex;align-items:baseline;gap:8px;justify-content:center;margin:10px 0 4px}
.dg .bigavg b{font-size:38px;letter-spacing:-1px;color:var(--dg-b)}
.dg .gpills{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
.dg .gpills span{background:var(--soft);border-radius:10px;padding:4px 10px;font-size:13px}
.dg .donut{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center;color:var(--ink)}
.dg .lgd{display:grid;gap:8px;min-width:170px}
.dg .lgd div{display:grid;grid-template-columns:12px 1fr auto;gap:8px;align-items:center;font-size:14px}
.dg .lgd s{width:12px;height:12px;border-radius:3px;display:block}
.dg .lgd b{font-size:18px}
.dg .kpi{border-radius:16px;padding:14px;text-align:center}
.dg .kpi b{display:block;font-size:26px;letter-spacing:-1px;line-height:1.15}
.dg .kpi span{font-size:13px;color:var(--sub)}
.dg .say{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:8px}
.dg .say li{display:grid;grid-template-columns:26px 1fr;gap:8px;align-items:start;font-size:15px}
.dg .say li i{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#fff;font-style:normal;font-size:13px;font-weight:800}
.dg .acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.dg .acts button{flex:1;min-width:140px;text-align:center;border:0;border-radius:12px;padding:10px;font-weight:700;color:#fff;cursor:pointer;font-size:15px}
.dg .cbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;background:var(--soft);border-radius:12px;padding:8px 10px}
.dg .cbar .bd{background:var(--card)}
.dg .stkl{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--sub);margin-top:8px}
.dg .stkl b{color:var(--ink)}
.dg .lvl{border:1px solid var(--line);border-radius:14px;padding:12px;margin-top:12px}
.dg .lvh{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.dg .seg2{display:inline-flex;background:var(--soft);border-radius:10px;padding:3px;gap:2px;flex-wrap:wrap}
.dg .seg2 button{border:0;background:none;border-radius:8px;padding:4px 9px;font-size:12px;font-weight:700;cursor:pointer;color:var(--sub)}
.dg .seg2 button[aria-pressed="true"]{background:var(--card);color:var(--dg-b);box-shadow:var(--shadow)}
.dg .hist{width:100%;height:80px;display:block}
.dg .lab2{display:flex;justify-content:space-between;font-size:12px;color:var(--sub);gap:8px}
.dg input[type=range]{width:100%;margin:8px 0 0;accent-color:var(--dg-b)}
.dg .cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:14px}
.dg .cd{border:1px solid var(--line);border-radius:16px;padding:14px;background:var(--card);position:relative}
.dg .cd .rk{position:absolute;top:-10px;left:12px;background:var(--dg-b);color:#fff;border-radius:8px;font-size:12px;font-weight:800;padding:1px 8px}
.dg .cdh{display:block;width:100%;text-align:left;border:0;background:none;padding:0;cursor:pointer;color:var(--ink);border-radius:8px}
.dg .cdh h3{margin:4px 0 2px;font-size:16px}
.dg .cdh small{color:var(--dg-b)}
.dg .cdh:hover h3{color:var(--dg-b)}
.dg .u{font-size:14px;color:var(--sub)}
.dg .meta{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}
.dg .bd{font-size:11px;font-weight:800;border-radius:6px;padding:1px 6px;background:var(--soft);color:var(--sub);text-decoration:none}
.dg .bd.g{background:var(--dg-tg);color:var(--dg-g)} .dg .bd.o{background:var(--dg-to);color:var(--dg-o)} .dg .bd.b{background:var(--dg-tb);color:var(--dg-b)} .dg .bd.r{background:var(--dg-tr);color:var(--dg-r)}
.dg .gauge{margin:12px 0 4px}
.dg .gauge .tr{position:relative;height:10px;border-radius:5px;background:var(--soft)}
.dg .gauge .me{position:absolute;left:50%;top:-5px;width:3px;height:20px;background:var(--ink);border-radius:2px;transform:translateX(-50%)}
.dg .gauge .pb{position:absolute;top:-3px;width:16px;height:16px;border-radius:50%;background:var(--dg-b);border:2px solid var(--card);transform:translateX(-50%)}
.dg .gauge .lab{display:flex;justify-content:space-between;font-size:11px;color:var(--sub);margin-top:4px}
.dg .gv{font-size:14px} .dg .gv b{font-size:18px}
.dg .why2{font-size:13px;color:var(--ink);background:var(--soft);border-radius:10px;padding:8px 10px;margin-top:8px}
.dg .btns{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.dg .dbtn{font-size:12px;border:1px solid var(--line);background:var(--card);border-radius:8px;padding:5px 10px;cursor:pointer;color:var(--ink)}
.dg .dbtn.pri,.dg .dbtn[aria-pressed="true"]{background:var(--dg-b);color:#fff;border-color:var(--dg-b)}
.dg .steppers{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.dg .stp{border:1px solid var(--line);border-radius:14px;padding:10px;text-align:center}
.dg .stp .lb{font-size:12px;color:var(--sub)}
.dg .stp .v{font-size:22px;font-weight:800}
.dg .stp .v small{font-size:12px;color:var(--sub);font-weight:500}
.dg .stp button{border:1px solid var(--line);background:var(--card);border-radius:8px;min-width:34px;height:30px;cursor:pointer;font-weight:800;color:var(--ink);font-size:12px}
.dg .bigup{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:14px 0}
.dg .bigup .n{font-size:50px;font-weight:900;color:var(--dg-g);letter-spacing:-2px;line-height:1}
.dg .hb{display:grid;gap:8px;margin:8px 0}
.dg .hb div{display:grid;grid-template-columns:70px 1fr 56px;gap:8px;align-items:center;font-size:14px}
.dg .hb .t{height:16px;border-radius:8px;background:var(--soft);overflow:hidden}
.dg .hb .t i{display:block;height:100%;border-radius:8px}
.dg .hb.need div{grid-template-columns:110px 1fr 160px}
.dg .mv{display:grid;grid-template-columns:1fr auto;gap:4px 10px;padding:8px 0;border-top:1px solid var(--line);font-size:14px}
.dg .mv:first-child{border-top:0}
.dg .mv .ar2{font-variant-numeric:tabular-nums;white-space:nowrap}
.dg .cmp{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:12px}
.dg .cmp .col{border-radius:16px;padding:14px}
.dg .cmp h3{margin:0;font-size:17px}
.dg .cmpx{border:0;background:none;color:var(--sub);font-size:18px;cursor:pointer;float:right;line-height:1}
.dg .lnk{border:0;background:none;color:var(--dg-b);font:inherit;cursor:pointer;padding:0;text-align:left}
.dg .lnk:hover{text-decoration:underline}
.dg .note2{font-size:12px;color:var(--sub);margin:8px 0 0}
.dg .tpick{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 14px}
.dg .tpick label{display:grid;gap:4px;font-size:13px;font-weight:800;color:var(--sub);flex:1;min-width:min(200px,100%)}
.dg .tpick select{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:8px;font-weight:600;color:var(--ink);max-width:100%}
.dg .thead{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}
.dg .thead h3{margin:0;font-size:20px}
.dg .tbig{text-align:center;background:var(--dg-tr);border-radius:16px;padding:10px 16px;min-width:150px}
.dg .tbig.ok{background:var(--dg-tg)}
.dg .tbig span,.dg .tbig small{display:block;font-size:12px;color:var(--sub)}
.dg .tbig b{display:block;font-size:30px;color:var(--dg-r);letter-spacing:-1px}
.dg .tbig.ok b{color:var(--dg-g)}
.dg .tline{font-size:14px;margin:8px 0 0}
.dg .res{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;font-size:15px}
.dg .res b{font-size:20px}
.dg details.ev summary{cursor:pointer;color:var(--dg-b);font-size:13px;margin-top:10px}
.dg details.ev p{font-size:13px;color:var(--sub);margin:6px 0}
.dgsheet{position:fixed;inset:0;z-index:50;display:flex;justify-content:center;align-items:flex-end}
.dgsheet .sbg{position:absolute;inset:0;background:rgba(10,14,24,.55)}
.dgsheet .sbody{position:relative;background:var(--card);width:100%;max-width:720px;max-height:88vh;overflow:auto;border-radius:20px 20px 0 0;padding:18px 18px 24px;box-shadow:var(--shadow)}
@media (min-width:760px){ .dgsheet{align-items:center} .dgsheet .sbody{border-radius:20px} }
.dgsheet .x{position:sticky;top:0;float:right;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:50%;width:34px;height:34px;font-size:20px;cursor:pointer;z-index:1}
.dg .dt th,.dg .dt td{padding:6px 8px;font-size:13px}
@media (max-width:720px){ .dg .grid2{grid-template-columns:1fr} .dg .kpi b{font-size:20px} .dg .bigup .n{font-size:40px} .dg .thead{grid-template-columns:1fr} .dg .hb.need div{grid-template-columns:84px 1fr 120px} }
@media (max-width:420px){ .dg .steppers{grid-template-columns:1fr} .dg .kpi{padding:10px 6px} .dg .kpi span{font-size:12px} .dg .tabs button{font-size:14px} .dg .lab2{font-size:11px} .dg .grid3{gap:6px} }

/* ---- 2028·2029 수시 진단(susi28view.js, 2026-10-22) ---- */
.dg .heat{width:100%;border-collapse:separate;border-spacing:4px;font-size:12px}
.dg .heat th{color:var(--sub);font-weight:700;text-align:center;padding:2px}
.dg .heat th:first-child{text-align:left}
.dg .heat td{text-align:center;border-radius:8px;padding:6px 2px;font-weight:800;min-width:34px}
.dg .heat td.e{background:var(--soft);color:var(--gray-dot);font-weight:400}
.dg .heat td.p{border:2px dashed var(--dg-b)}
.dg .hl{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--sub);margin-top:4px}
.dg .hl i{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-2px;margin-right:3px}
.dg .sc{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin:8px 0 2px}
.dg .sc b{font-size:28px;letter-spacing:-1px;color:var(--dg-b)}
.dg .sc small{color:var(--sub)}
.dg .eff{display:grid;gap:4px;margin:6px 0}
.dg .eff div{display:grid;grid-template-columns:1fr auto;gap:8px;font-size:13px}
.dg .eff b{color:var(--dg-g)}
.dg .gsel{border:1px solid var(--line);border-radius:8px;padding:2px 4px;background:var(--card);color:var(--ink)}
.dg .ptab{width:100%;border-collapse:collapse;font-size:13px}
.dg .ptab th,.dg .ptab td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left}
.dg .ptab td.n,.dg .ptab th.n{text-align:right}
.dg .ptab tr.plan td{background:var(--dg-tb)}
.dg .ptab tr.out td{color:var(--sub)}
.dg .steps2 li{font-size:13px;color:var(--sub)}

/* 9등급 수시 화면을 진단 틀(.dg .sec) 안에 넣을 때 안쪽 카드는 테두리를 겹치지 않게 */
.dg.s9 .sec>.card{box-shadow:none;border:0;background:none;padding:0;margin:10px 0 0}
.dg.s9 .cbar{margin-bottom:4px}

/* 조건 0곳 안내(zeroWhyHTML) */
.zwhy{margin:10px 0}
.zwhy .tbl{margin:6px 0}
.zwhy .tbl td{padding:4px 8px;font-size:13px}

/* 수시 진단 내신 리뷰: 국·영·수 크게, 사회·과학·한국사 작게 */
.dg .rings.sm{margin-top:10px;gap:4px}
.dg .rings.sm .ring{min-width:70px}
.dg .rings.sm .lb{font-size:13px}

/* 1차 개편 카드(2026-10-22): 어디 → 왜 볼 만한가(한 문장) → 내 결과 → 할 일 → 근거 */
.dg .cd2 h3{font-size:17px;line-height:1.35}
.dg .cd2 .u2{font-size:14px;font-weight:600;color:var(--ink)}
.dg .cd2 .u{font-size:12px;color:var(--sub)}
.dg .cd2 .wl{margin:10px 0 6px;font-size:14px;font-weight:700;line-height:1.45;padding:8px 10px;border-radius:10px;background:var(--soft);color:var(--ink)}
.dg .cd2 .wl.g{background:var(--dg-tg);color:var(--dg-g)}
.dg .cd2 .wl.o{background:var(--dg-to);color:var(--dg-o)}
.dg .cd2 .gv b{font-size:20px}
.dg .cd2 .nl{margin:6px 0 0;font-size:12.5px;color:var(--dg-o)}
.dg .cd2 .btns{margin-top:10px}
.dg .cd2 .dbtn.sm{padding:6px 10px;font-size:12.5px;background:none}
.dg .cd2 .src{margin-top:8px;font-size:11.5px;color:var(--sub)}
.dg .cd2 .src .lnk{font-size:11.5px;color:var(--dg-b);text-decoration:underline}
/* 대학별 분포 막대 */
.dg .ubar{margin:12px 0 4px}
.dg .ubar .row{display:grid;grid-template-columns:minmax(64px,108px) 1fr 86px;gap:8px;align-items:center;width:100%;border:0;background:none;padding:3px 0;cursor:pointer;color:var(--ink);text-align:left;font:inherit}
.dg .ubar .row:hover .nm,.dg .ubar .row[aria-pressed="true"] .nm{color:var(--dg-b);font-weight:800}
.dg .ubar .nm{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dg .ubar .tr{position:relative;height:16px;background:var(--soft);border-radius:8px}
.dg .ubar .tr .zero{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink);left:50%}
.dg .ubar .tr .rg{position:absolute;top:4px;height:8px;border-radius:4px;background:var(--dg-b);opacity:.35}
.dg .ubar .tr .dt,.dg .upan .tr .dt{position:absolute;top:4px;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:var(--gray-dot);opacity:.7}
.dg .ubar .tr .dt.on,.dg .upan .tr .dt.on{background:var(--dg-b);opacity:1}
.dg .ubar .tr .band{position:absolute;top:0;bottom:0;background:var(--dg-tb);border-radius:8px}
.dg .ubar .tr .ovl,.dg .ubar .tr .ovr{position:absolute;top:0;font-size:10px;line-height:16px;color:var(--sub)}
.dg .ubar .tr .ovl{left:2px} .dg .ubar .tr .ovr{right:2px}
.dg .upan{margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--card)}
.dg .upan .ur{display:grid;grid-template-columns:minmax(90px,1.3fr) 1fr minmax(110px,1fr);gap:8px;align-items:center;width:100%;border:0;border-top:1px solid var(--line);background:none;padding:7px 0;text-align:left;font:inherit;color:var(--ink);cursor:pointer}
.dg .upan .ur:hover .un{color:var(--dg-b)}
.dg .upan .un{font-size:13px;font-weight:700}
.dg .upan .un small{display:block;font-weight:500;color:var(--sub);font-size:11px}
.dg .upan .tr{position:relative;height:16px;background:var(--soft);border-radius:8px}
.dg .upan .tr .zero{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink);left:50%}
.dg .upan .uv{font-size:12.5px;font-weight:700} .dg .upan .uv.g{color:var(--dg-g)} .dg .upan .uv.b{color:var(--dg-b)} .dg .upan .uv.r{color:var(--dg-r)}
.dg .upan .ax2{display:grid;grid-template-columns:minmax(90px,1.3fr) 1fr minmax(110px,1fr);gap:8px;font-size:11px;color:var(--sub);margin-top:4px}
.dg .upan .ax2 span:nth-child(2){display:flex;justify-content:space-between}
.dg .ubar .n{font-size:12px;color:var(--sub);text-align:right}
.dg .ubar .ax{display:grid;grid-template-columns:minmax(64px,108px) 1fr 86px;gap:8px;font-size:11px;color:var(--sub)}
.dg .ubar .ax span:nth-child(2){display:flex;justify-content:space-between}

/* 빠른 시작(1차 개편 2026-10-22) */
.quick{border:2px solid var(--blue);background:var(--blue-soft,#eef4ff)}
.quick .qgrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:10px}
.quick .qf{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:700}
.quick .qf input,.quick .qf select{width:100%;padding:8px;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:16px;background:var(--card)}
@media (max-width:560px){ .quick .qgrid{grid-template-columns:repeat(2,minmax(0,1fr))} }

/* 2차 시안: 규칙 설명·내 쪽에서 본 차이 */
.dg .cd2 .wl small{display:block;font-size:11.5px;font-weight:600;opacity:.8;margin-bottom:2px}
.dg .cd2 .wl b{display:block;font-size:14px;line-height:1.45}
.dg .cd2 .ml{margin:8px 0 0;font-size:15px;font-weight:800;line-height:1.4}
.dg .cd2 .ml.g{color:var(--dg-g)} .dg .cd2 .ml.b{color:var(--dg-b)} .dg .cd2 .ml.r{color:var(--dg-r)}
.dg .cd2 .ml small{font-size:11.5px;font-weight:600;color:var(--sub)}

.dg .upan .uv small{display:block;font-size:11px;font-weight:500;color:var(--sub)}

/* 3차 시안 카드 */
.dg .cd2 .wl{background:var(--dg-tb);color:var(--ink)}
.dg .cd2 .wl b{display:block;font-size:14.5px;color:var(--ink)}
.dg .cd2 .wl span{display:block;font-size:13px;font-weight:600;color:var(--dg-b);margin-top:2px}
.dg .cd2 .wl small{display:block;font-size:11px;font-weight:600;color:var(--sub);margin:4px 0 0;opacity:1}
.dg .cd2 .fl{margin:10px 0 4px;font-size:13px;color:var(--ink)}
.dg .cd2 .fl small{color:var(--sub);font-size:11px}
.dg .cd2 .mv2{margin:2px 0 0;font-size:12.5px;color:var(--ink)}
.dg .cd2 .mv2 small{color:var(--sub);font-size:11px}
.dg .cd2 .btns{align-items:center}
.dg .cd2 .src2{margin-left:auto;font-size:12px;color:var(--dg-b);text-decoration:underline;background:none;border:0;cursor:pointer}

.dg .ubar .n{white-space:nowrap}

.quick .qgrid.q2{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:560px){ .quick .qgrid.q2{grid-template-columns:repeat(2,minmax(0,1fr))} }

/* 확정 구조(2026-10-22 밤): 카드 머리글·강조 상자·점수 문장 */
.dg .cd3 .cdh h3{font-size:18px;margin:2px 0 0;line-height:1.3}
.dg .cd3 .cdh h3 .rg{font-size:12px;font-weight:500;color:var(--sub);margin-left:4px}
.dg .cd3 .u2{font-size:15px;font-weight:700;color:var(--ink);margin-top:2px}
.dg .cd3 .u{font-size:12px;color:var(--sub);margin-top:2px}
.dg .cd3 .wl{margin:10px 0 8px;padding:10px 12px;border-radius:12px;background:var(--dg-tb)}
.dg .cd3 .wl b{display:block;font-size:14.5px;color:var(--ink);line-height:1.4}
.dg .cd3 .wl span{display:block;font-size:13px;font-weight:600;color:var(--dg-b);margin-top:3px;line-height:1.4}
.dg .cd3 .wl small{display:inline-block;margin-top:6px;font-size:11px;font-weight:700;color:var(--sub);background:var(--card);border-radius:6px;padding:1px 6px}
.dg .cd3 .sc1{margin:0;font-size:13px;color:var(--sub)}
.dg .cd3 .sc1 b{font-size:20px;color:var(--ink);margin-left:4px}
.dg .cd3 .sc2{margin:2px 0 0;font-size:14px;font-weight:700}
.dg .cd3 .sc2.g{color:var(--dg-g)} .dg .cd3 .sc2.b{color:var(--dg-b)} .dg .cd3 .sc2.r{color:var(--dg-r)}
.dg .cd3 .nl{margin:6px 0 0;font-size:12px;color:var(--dg-o)}
.dg .cd3 .btns{margin-top:10px}
.dg .cd3 .dbtn.sm{padding:6px 10px;font-size:12.5px;background:none}
/* 범위 한 줄 + 접는 상세 조건 */
.dg .rbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 4px}
.dg .rbar input[type=range]{flex:1 1 180px;min-width:140px}
.dg details.more{margin:4px 0 8px;font-size:13px}
.dg details.more summary{cursor:pointer;color:var(--dg-b);font-weight:700}
.dg details.more .lvh{margin:8px 0 0}
/* 결과 영역 머리 */
.dg .rhead{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0 10px}
.dg .tbl.dgt td.g{color:var(--dg-g);font-weight:700} .dg .tbl.dgt td.b{color:var(--dg-b);font-weight:700} .dg .tbl.dgt td.r{color:var(--dg-r);font-weight:700}
/* 대학별 분포: PC·태블릿은 세로 점 분포, 모바일은 가로 줄 */
.dg .uviz{margin:12px 0 4px}
.dg .uvert{display:grid;grid-template-columns:62px 1fr;gap:6px}
.dg .uvert .yax{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;font-size:10.5px;color:var(--sub);text-align:right;height:220px;padding:2px 0}
.dg .uvert .yax b{color:var(--ink);font-size:12px}
.dg .uvert .cols{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px}
.dg .uvert .cols .band{position:absolute;left:0;right:0;background:var(--dg-tb);border-radius:6px;pointer-events:none}
.dg .uvert .cols .zero{position:absolute;left:0;right:0;top:110px;height:2px;background:var(--ink);pointer-events:none}
.dg .uvert .col{position:relative;display:flex;flex-direction:column;align-items:center;border:0;background:none;padding:0;cursor:pointer;font:inherit;color:var(--ink);border-radius:8px}
.dg .uvert .col .plot{position:relative;display:block;width:100%;height:220px}
.dg .uvert .col .dt{position:absolute;left:50%;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:var(--gray-dot);opacity:.7}
.dg .uvert .col .dt.on{background:var(--dg-b);opacity:1}
.dg .uvert .col .ovt,.dg .uvert .col .ovb{position:absolute;left:0;right:0;text-align:center;font-size:10px;color:var(--sub)}
.dg .uvert .col .ovt{top:0} .dg .uvert .col .ovb{bottom:0}
.dg .uvert .col .nm{font-size:12px;font-weight:700;margin-top:6px;text-align:center;line-height:1.25;word-break:keep-all;min-height:30px}
.dg .uvert .col .n{font-size:11px;color:var(--sub)}
.dg .uvert .col:hover .nm,.dg .uvert .col[aria-pressed="true"] .nm{color:var(--dg-b)}
.dg .uvert .col[aria-pressed="true"]{background:var(--dg-tb)}
.dg .uviz .ubar{display:none}
@media (max-width:640px){ .dg .uviz .uvert{display:none} .dg .uviz .ubar{display:block} }

.quick .qgrid[hidden]{display:none!important}

/* 4차 수정(2026-10-22): 카드 차이 강조 · 꼬리표 · 내 점수 기준행 표 · 모바일 대학 행 · 세로 분포 범위 띠 좌표 */
.dg .cd3 .sc0{margin:0;font-size:12px;color:var(--sub)}
.dg .cd3 .sc1{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;margin:2px 0 0;font-size:13.5px;color:var(--ink)}
.dg .cd3 .sc1 b{font-size:26px;line-height:1.15;margin:0;color:var(--sub)}
.dg .cd3 .sc1.up b{color:var(--dg-r)} .dg .cd3 .sc1.dn b{color:var(--dg-b)}
.dg .cd3 .sc1 span{font-weight:700}
.dg .cd3 .sc2{margin:2px 0 0;font-size:12.5px;font-weight:500;color:var(--sub)}
.dg .cd3 .ct{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.dg .cd3 .ct span{font-size:11px;color:var(--sub);background:var(--soft);border-radius:6px;padding:1px 6px}
.dg .tbl.dgm tr.me td{background:var(--dg-tb);font-weight:700;border-top:2px solid var(--dg-b);border-bottom:2px solid var(--dg-b)}
.dg .tbl.dgm tr.eq td{background:var(--dg-tb)}
.dg .tbl.dgm tr.mo td{text-align:center;padding:4px}
.dg .tbl.dgm td.n small{font-weight:500}
.dg .uvert .cols .lay{position:absolute;left:0;right:0;top:0;height:220px;pointer-events:none}
.dg .uvert .cols .lay .zero{top:50%;margin-top:-1px}
.dg .uviz .howto{margin:0 0 6px}
.dg .uviz .howto summary{font-size:12px;color:var(--sub);cursor:pointer}
@media (max-width:640px){
  .dg .ubar .row{display:block;padding:8px 10px;border-radius:10px;margin:0 0 4px}
  .dg .ubar .row[hidden]{display:none}
  .dg .ubar .row[aria-pressed="true"]{background:var(--dg-tb)}
  .dg .ubar .row .hd{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px}
  .dg .ubar .row .nm{font-size:14px;font-weight:700}
  .dg .ubar .row .n{font-size:12px;white-space:nowrap}
  .dg .ubar .trw{display:grid;grid-template-columns:24px 1fr 24px;gap:4px;align-items:center}
  .dg .ubar .trw .ov{font-size:10px;color:var(--sub);text-align:center;white-space:nowrap}
  .dg .ubar .tr{height:20px}
  .dg .ubar .tr .dt{top:6px}
  .dg .ubar .ax{grid-template-columns:24px 1fr 24px;gap:4px;padding:0 10px;margin-top:2px}
  .dg .ubar .umore{display:block;margin:8px auto 0}
}

/* 모바일 결과 영역(사용자 시안 2026-10-22) */
.dg .vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.dg .msec .mrow{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding-bottom:8px;border-bottom:1px solid var(--line)}
.dg .msec .mcond{flex:1 1 auto;min-width:0}
.dg .msec .mtl{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:12px 0 8px}
.dg .msec .mtl h2{font-size:17px;margin:0}
.dg .msec .mtl h2 small{font-size:12px;font-weight:500;color:var(--sub)}
.dg .msec .mchip{flex:none;border:0;border-radius:10px;background:var(--dg-tb);color:var(--dg-b);font:inherit;font-size:13px;font-weight:700;padding:7px 10px;cursor:pointer}
.dg .msec .mrp{margin:0 0 10px;padding:10px;border:1px solid var(--line);border-radius:12px}
.dg .msec .mtab{display:flex;align-items:center;justify-content:space-between;gap:8px}
.dg .msec .msub{margin:6px 0 8px}
.dg .cdm{padding:12px 14px;border-radius:14px;margin:0 0 8px}
.dg .cdm .cdh{display:flex;justify-content:space-between;align-items:baseline;gap:8px;width:100%;border:0;background:none;padding:0;text-align:left;font:inherit;color:var(--ink);cursor:pointer}
.dg .cdm .cdh .t{font-size:15px;line-height:1.35;min-width:0}
.dg .cdm .cdh .t b{font-weight:800}
.dg .cdm .cdh .g{flex:none;font-size:12px;color:var(--sub)}
.dg .cdm .ft{margin:4px 0 0;font-size:13px;color:var(--ink)}
.dg .cdm .ft small{color:var(--sub);font-size:11px}
.dg .cdm .sr{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:4px 0 8px}
.dg .cdm .sr>b{font-size:24px;line-height:1.2;color:var(--sub)}
.dg .cdm .sr>b.up{color:var(--dg-r)} .dg .cdm .sr>b.dn{color:var(--dg-b)}
.dg .cdm .mx{font-size:12px;color:var(--sub);text-align:right}
.dg .cdm .mx b{color:var(--ink);font-size:13px;margin-left:2px}
.dg .cdm .btns{margin:0}
.dg .msec .mmore{display:block;width:100%;margin:4px 0 0;padding:12px;border:0;border-radius:12px;background:var(--soft);color:var(--sub);font:inherit;font-size:14px;cursor:pointer}
.dg .msec .mout{display:block;margin:10px auto 0}
.dg .msec .mrow{flex-wrap:nowrap}
.dg .msec .mrow>.lnk{flex:none;font-size:13px}
.dg .msec .mcond .cbar{display:flex;flex-wrap:wrap;align-items:center;gap:2px 4px;background:none;border:0;padding:0;margin:0;font-size:13px}
.dg .msec .mcond .cbar .bd{background:none;padding:0;font-weight:800;color:var(--ink);font-size:13px}
.dg .msec .mcond .cbar .bd+.bd::before{content:'· ';font-weight:400;color:var(--sub)}
.dg .msec .mcond .cbar .dbtn{margin-left:2px!important;padding:2px 6px;font-size:12px;border-radius:8px}

/* 카드 구분 강화(사용자 지적 2026-10-22: 카드 경계가 잘 안 보임) */
.dg .cards .cd3,.dg .mcards .cdm{border:1px solid #cbd3df;box-shadow:0 1px 2px rgba(17,24,39,.06),0 6px 16px rgba(17,24,39,.07)}
.dg .cards{gap:16px}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .dg .cards .cd3,:root:not([data-theme="light"]) .dg .mcards .cdm{border-color:#3a4560;box-shadow:0 4px 14px rgba(0,0,0,.35)}}
:root[data-theme="dark"] .dg .cards .cd3,:root[data-theme="dark"] .dg .mcards .cdm{border-color:#3a4560;box-shadow:0 4px 14px rgba(0,0,0,.35)}
.dg .uvert .cols .lay .bl{position:absolute;right:4px;font-size:10.5px;font-weight:700;color:var(--dg-b);line-height:1;transform:translateY(2px)}
.dg .uvert .cols .lay .bl.b{transform:translateY(-12px)}
.dg .cd3 .dbtn.sm[aria-pressed="true"],.dg .cdm .dbtn.sm[aria-pressed="true"]{background:var(--dg-b);color:#fff;border-color:var(--dg-b)}

/* 목표 학과 코칭 그래프(2026-10-22) */
.dg .coach .seg2{margin:0 0 10px}
.dg .cbar2{margin:12px 0 6px}
.dg .cbar2 .trk{position:relative;display:flex;height:26px;border-radius:8px;background:var(--soft);overflow:visible}
.dg .cbar2 .sg{display:block;height:100%}
.dg .cbar2 .sg:first-child{border-radius:8px 0 0 8px}
.dg .cbar2 .sg.now{background:#9aa6b8}
.dg .cbar2 .tl{position:absolute;top:-6px;bottom:-6px;width:0;border-left:2px dashed var(--ink)}
.dg .cbar2 .tl em{position:absolute;top:-18px;transform:translateX(-50%);white-space:nowrap;font-style:normal;font-size:11px;font-weight:700;color:var(--ink)}
.dg .cbar2 .lg{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:8px;font-size:12px;color:var(--sub)}
.dg .cbar2 .lg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:-1px}
.dg .cbar2 .lg i.now{background:#9aa6b8} .dg .cbar2 .lg i.tl{width:0;height:12px;border-left:2px dashed var(--ink);border-radius:0;position:static}
.dg .tbl.plan .dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}

/* 진단 화면 구역(①~④) — 한 페이지 안에서 한 화면씩 넘겨 보는 구성(사용자 요청 2026-10-22) */
html:has(.dg .pg){scroll-snap-type:y proximity;scroll-padding-top:104px}
.dg .pnav{position:sticky;top:54px;z-index:4;display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:4px;background:var(--bg);padding:6px 0;margin:0 0 6px}
.dg .pnav button{display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:var(--card);color:var(--sub);border-radius:999px;padding:7px 4px;font:inherit;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}
.dg .pnav button i{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--soft);color:var(--sub);font-style:normal;font-size:11px}
.dg .pnav button[aria-current="true"]{border-color:var(--dg-b);color:var(--dg-b);background:var(--dg-tb)}
.dg .pnav button[aria-current="true"] i{background:var(--dg-b);color:#fff}
.dg .pg{scroll-snap-align:start;scroll-margin-top:104px;padding:10px 0 18px;margin:0 0 18px;border-bottom:2px dashed var(--line)}
.dg .pg:last-child{border-bottom:0}
@media (min-width:768px){ .dg .pg{min-height:calc(100dvh - 120px)} }
.dg .pgh{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;margin:4px 0 10px}
.dg .pgh .no{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--dg-b);color:#fff;font-weight:800;font-size:15px;align-self:center}
.dg .pgh h2{margin:0;font-size:21px}
.dg .sumr{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px 14px;margin:0 0 12px}
.dg .sumr>summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;cursor:pointer;font-size:14px;list-style:none}
.dg .sumr>summary::-webkit-details-marker{display:none}
.dg .sumr .sumb{margin-top:12px}
.dg details.upd>summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px;cursor:pointer;font-size:15px}
.dg details.upd[open]>summary{margin-bottom:12px}
.dg .two{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:20px}
@media (max-width:900px){ .dg .two{grid-template-columns:1fr} }
@media (max-width:640px){ .dg .pnav{top:54px} .dg .pnav button{font-size:12px;padding:6px 2px} .dg .pnav button i{display:none} .dg .pgh h2{font-size:18px} }
.dg .cbar2 .nums{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;margin-top:6px;font-size:12.5px;color:var(--sub)}
.dg .cbar2 .nums b{color:var(--ink);font-size:14px}
.dg .cbar2 .nums .tg b{color:var(--ink)} .dg .cbar2 .nums .rs b{color:var(--dg-b)}
.dg .stp.auto{border:1px dashed var(--dg-b);border-radius:14px;padding:10px;text-align:center;background:var(--dg-tb)}
.dg .stp.auto .lb{font-size:12px;color:var(--dg-b);font-weight:700}
.dg .stp.auto .v{font-size:18px;font-weight:800;margin-top:6px}
/* 코칭 그래프 v3: 막대 위 내 점수·목표 숫자를 그 위치에 */
.dg .coach .qh.big2{font-size:18px}
.dg .dtitle{margin:0;font-size:20px} .dg .dtitle span{font-size:16px;color:var(--sub);font-weight:700}
.dg .cbar2 .tops{position:relative;height:34px}
.dg .cbar2 .tops.bot{height:30px;margin-top:4px}
.dg .cbar2 .mk{position:absolute;bottom:2px;transform:translateX(-50%);text-align:center;white-space:nowrap;line-height:1.15}
.dg .cbar2 .tops.bot .mk{top:0;bottom:auto}
.dg .cbar2 .mk.l{transform:none} .dg .cbar2 .mk.r{transform:translateX(-100%)}
.dg .cbar2 .mk b{display:block;font-size:13px}
.dg .cbar2 .mk small{display:block;font-size:10.5px;color:var(--sub)}
.dg .cbar2 .mk.me b{color:#5b6474} .dg .cbar2 .mk.tg b{color:var(--ink)}
.dg .tbl.plan .mbs{display:inline-flex;gap:2px;margin-left:6px;vertical-align:middle}
.dg .tbl.plan .mb{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:6px;padding:1px 6px;font:inherit;font-size:12px;cursor:pointer;min-width:26px}
.dg .tbl.plan .mb:hover{border-color:var(--dg-b);color:var(--dg-b)}
.dg .coach .gapn{font-size:24px;color:var(--dg-r);font-weight:900;letter-spacing:-.5px}
.dg .cbar2 .mk b{font-size:15px;font-weight:900}
.dg .cbar2 .mk.me b{color:#3f4a5c} .dg .cbar2 .mk.tg b{color:var(--ink)}
.dg .cbar2 .tops{height:40px}

/* 태블릿·PC 한 화면 배치(768px 이상, 사용자 요청 2026-10-22): 구역마다 화면 높이에 맞추고 넘치는 칸만 안에서 스크롤 */
@media (min-width:768px){
  .dg .pg{min-height:calc(100dvh - 112px);display:flex;flex-direction:column}
  /* ① 왼쪽 조건·범위·대학 분포 / 오른쪽 학과 목록 */
  .dg .p1sec{padding:12px}
  .dg .p1grid{display:grid;grid-template-columns:minmax(300px,0.9fr) minmax(0,1.1fr);gap:14px;height:calc(100dvh - 250px);min-height:480px}
  .dg .p1l,.dg .p1r{overflow:auto;min-height:0;padding-right:4px}
  .dg .p1r .rhead{position:sticky;top:0;z-index:2;background:var(--card);margin:0 0 10px;padding:4px 0 8px;border-bottom:1px solid var(--line)}
  .dg .p1r .cards{grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr))}
  .dg .p1l details.upd{margin:12px 0 0;box-shadow:none}
  /* 대학 분포는 왼쪽 칸 폭에 맞춰 대학별 가로 줄로 */
  .dg .p1l .uviz .uvert{display:none} .dg .p1l .uviz .ubar{display:block}
  .dg .p1l .ubar .row{display:block;padding:7px 10px;border-radius:10px;margin:0 0 3px}
  .dg .p1l .ubar .row[hidden]{display:none}
  .dg .p1l .ubar .row[aria-pressed="true"]{background:var(--dg-tb)}
  .dg .p1l .ubar .row .hd{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:5px}
  .dg .p1l .ubar .row .nm{font-size:14px;font-weight:700}
  .dg .p1l .ubar .row .n{font-size:12px;white-space:nowrap}
  .dg .p1l .ubar .trw{display:grid;grid-template-columns:24px 1fr 24px;gap:4px;align-items:center}
  .dg .p1l .ubar .trw .ov{font-size:10px;color:var(--sub);text-align:center;white-space:nowrap}
  .dg .p1l .ubar .tr{height:18px} .dg .p1l .ubar .tr .dt{top:5px}
  .dg .p1l .ubar .ax{grid-template-columns:24px 1fr 24px;gap:4px;padding:0 10px;margin-top:2px}
  .dg .p1l .ubar .umore{display:block;margin:8px auto 0}
  /* ② 두 열, 오른쪽(반영 방식·연도별 입결·같은 대학)만 칸 안에서 스크롤 */
  .dg .two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .dg #dg-p2 .two>div:last-child{max-height:calc(100dvh - 330px);min-height:360px;overflow:auto;padding-right:4px}
  /* ③ 왼쪽 부족분·그래프·설명 / 오른쪽 과목별 목표 표·조합·근거 */
  .dg .coach .c2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:20px;align-items:start}
  .dg .coach .cr{max-height:calc(100dvh - 300px);overflow:auto;padding-right:4px}
  .dg .coach .cr .tbl.plan td,.dg .coach .cr .tbl.plan th{padding:6px 6px}
  /* ④ 담은 학과를 가로로 나란히, 넘치면 옆으로 넘겨 보기 */
  .dg #dg-s4 .cmp{display:flex;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:6px}
  .dg #dg-s4 .cmp .col{flex:0 0 300px;scroll-snap-align:start}
}
@media (min-width:768px) and (max-width:900px){ .dg .two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)} .dg .coach .c2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)} }
@media (min-width:768px){ .dg #dg-p3 .sec+.sec{max-height:200px;overflow:auto} .dg .tbl.plan td small.note{display:block;font-size:11px} }

/* 화면 전환 구조(사용자 요청 2026-10-22): 한 번에 한 화면, 화면 높이 = --dgScr(브라우저 − 머리글 − 메뉴 − 탭바). 필요한 칸만 스크롤 */
html:has(.dg .pg){scroll-snap-type:none}
.dg .pg{scroll-snap-align:none;border-bottom:0;margin:0;padding:4px 0 0}
.dg .itabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin:0 0 10px;padding-bottom:6px}
.dg .itabs button{border:1px solid var(--line);background:var(--card);color:var(--sub);border-radius:999px;padding:5px 12px;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.dg .itabs button[aria-selected="true"]{border-color:var(--dg-b);background:var(--dg-tb);color:var(--dg-b)}
.dg .pnav button[aria-selected="true"]{border-color:var(--dg-b);color:var(--dg-b);background:var(--dg-tb)}
.dg .pnav button[aria-selected="true"] i{background:var(--dg-b);color:#fff}
@media (min-width:768px){
  .dg .pg{height:var(--dgScr,calc(100dvh - 130px));min-height:0;display:flex;flex-direction:column;overflow:hidden}
  .dg .pg>.pgh,.dg .pg>.sumr{flex:none}
  .dg .pg>.sumr{margin-bottom:8px}
  .dg .pg>.sec{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden;margin:0}
  /* ① 왼쪽 조건·범위·분포 / 오른쪽 탭(학과 목록·점수가 오르면·비슷한 학과) — 목록만 스크롤 */
  .dg .p1sec>.p1grid{flex:1 1 auto;height:auto;min-height:0}
  .dg .p1l{overflow:auto}
  .dg .p1r{display:flex;flex-direction:column;min-height:0;overflow:hidden;padding-right:0}
  .dg .p1r>.itabs{flex:none}
  .dg .p1r>.ipane{flex:1 1 auto;min-height:0;overflow:auto;padding-right:4px}
  .dg .p1r .ipane details.upd{margin:0;box-shadow:none;border:0;padding:0}
  /* ② 고르기 + 두 열(오른쪽 탭 내용만 스크롤) */
  .dg .pg>.sec>.tpick,.dg .pg>.sec>.meta{flex:none}
  .dg .pg>.sec>.two{flex:1 1 auto;min-height:0}
  .dg .two>div:first-child{overflow:auto}
  .dg #dg-p2 .two>div:last-child{max-height:none;min-height:0}
  .dg .p2r{display:flex;flex-direction:column;min-height:0;overflow:hidden}
  .dg .p2r>.itabs{flex:none;margin-top:12px}
  .dg .p2r>.ipane{flex:1 1 auto;min-height:0;overflow:auto;padding-right:4px}
  /* ③ 제목 + 코칭 두 칸(오른쪽 표·조합·근거만 스크롤) */
  .dg #dg-p3>.sec>.dtitle,.dg #dg-p3>.sec>.note2,.dg #dg-p3>.sec>p{flex:none}
  .dg #dg-p3 .coach{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
  .dg #dg-p3 .coach>.c2{flex:1 1 auto;min-height:0;grid-template-rows:minmax(0,1fr)}
  .dg #dg-p3 .coach .cl{overflow:auto;min-height:0}
  .dg .coach .cr{max-height:none;min-height:0;overflow:auto;align-self:stretch}
  .dg #dg-p3 .sec+.sec{max-height:none}
  /* ④ 비교: 화면 안에서 스크롤 */
  .dg #dg-p4>.sec{overflow:auto}
}
@media (min-width:768px){
  .dg .p1l{display:flex;flex-direction:column;overflow:hidden}
  .dg .p1l>*{flex:none}
  .dg .p1l>.uviz{flex:1 1 auto;min-height:140px;display:flex;flex-direction:column}
  .dg .p1l>.uviz>*{flex:none}
  .dg .p1l>.uviz>.ubar{flex:1 1 auto;min-height:0;overflow:auto;margin:6px 0 0}
  .dg .p1l>.rbar{margin-bottom:6px}
}

/* 가독성(사용자 요청 2026-10-22): 남는 공간에 핵심 숫자·본문·표·조절 버튼을 키운다(정보 추가 없음) */
.dg .dhd{margin:10px 0 8px}
.dg .stat3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:10px 0 4px}
.dg .stat3>div{background:var(--soft);border-radius:14px;padding:12px 14px}
.dg .stat3 span{display:block;font-size:13px;color:var(--sub);font-weight:700}
.dg .stat3 b{display:block;font-size:26px;line-height:1.2;margin-top:4px;color:var(--ink)}
.dg .stat3 small{display:block;font-size:12px;color:var(--sub);margin-top:2px}
.dg .stat3 .up b{color:var(--dg-r)} .dg .stat3 .dn b{color:var(--dg-b)}
.dg .tbl.plan td:first-child{white-space:nowrap}
.dg .tbl.plan td:first-child small.note{display:block;white-space:nowrap}
@media (min-width:768px){
  .dg .dtitle{font-size:26px} .dg .dtitle span{font-size:19px}
  .dg .stat3 b{font-size:32px}
  .dg #dg-p2 .p2r .tbl.dt{font-size:15.5px} .dg #dg-p2 .p2r .tbl.dt td,.dg #dg-p2 .p2r .tbl.dt th{padding:10px 8px}
  .dg #dg-p2 .p2r .mv{font-size:15px;padding:8px 0}
  .dg #dg-p2 .p2r .ipane .note2{font-size:14px}
  .dg #dg-p2 .acts button{font-size:16px;padding:14px 10px}
  .dg #dg-p3 .coach .qh.big2{font-size:21px} .dg #dg-p3 .coach .gapn{font-size:32px}
  .dg #dg-p3 .coach .note2{font-size:14px;line-height:1.55}
  .dg #dg-p3 .cbar2 .trk{height:38px;border-radius:10px} .dg #dg-p3 .cbar2 .tops{height:46px}
  .dg #dg-p3 .cbar2 .mk b{font-size:17px} .dg #dg-p3 .cbar2 .mk small{font-size:12px} .dg #dg-p3 .cbar2 .lg{font-size:13.5px}
  .dg #dg-p3 .tbl.plan{font-size:15.5px} .dg #dg-p3 .tbl.plan td,.dg #dg-p3 .tbl.plan th{padding:12px 6px}
  .dg #dg-p3 .tbl.plan .mb{min-width:36px;padding:5px 8px;font-size:14px;border-radius:8px}
  .dg #dg-p3 .tbl.plan .dbtn.sm{font-size:13.5px;padding:7px 10px}
  .dg #dg-p3 .coach .c2{grid-template-columns:minmax(0,0.95fr) minmax(0,1.25fr)}
  .dg #dg-p3 .coach .seg2 button{font-size:14px;padding:7px 12px}
}
/* 태블릿·PC 진단 화면: 위쪽 머리 영역을 한 줄로(바깥 스크롤 없게) */
@media (min-width:768px){
  body:has(.dg .pg) .res-head{align-items:center;margin-bottom:4px}
  body:has(.dg .pg) .res-head h1{font-size:20px;margin:0}
  body:has(.dg .pg) .res-head .lead{display:none}
  body:has(.dg .pg) .res-head .trust{margin:4px 0 0}
  .dg .pg>.pgh{margin:2px 0 6px} .dg .pg>.pgh h2{font-size:19px}
  .dg .pnav{margin:0 0 2px;padding:4px 0}
}
@media (min-width:768px){
  body:has(.dg .pg) main.wrap{padding-bottom:6px}
  body:has(.dg .pg) .foot{padding:2px 0 6px;font-size:11.5px;line-height:1.4}
  body:has(.dg .pg) .res-head{margin-top:6px}
}
@media (min-width:768px){
  .dg .stat3 b{font-size:27px;white-space:nowrap;letter-spacing:-.5px}
  .dg .stat3>div{padding:10px 12px;min-width:0}
  .dg #dg-p2 .acts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .dg #dg-p2 .acts button{font-size:15px;padding:12px 6px;white-space:nowrap;margin:0}
  .dg #dg-p2 .dhd{margin:4px 0 4px}
}
@media (min-width:1100px){ .dg .stat3 b{font-size:32px} }
@media (min-width:768px){
  .dg .stat3{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.3fr)}
  .dg .stat3 b{font-size:clamp(20px,2.5vw,32px)}
  .dg #dg-p2 .two>div:first-child{overflow-x:hidden}
}
@media (min-width:768px){
  .dg #dg-p3 .coach .c2{grid-template-columns:minmax(0,0.85fr) minmax(0,1.35fr)}
  .dg #dg-p3 .tbl.plan .mbs{display:flex;margin:6px 0 0;gap:4px;justify-content:flex-end}
  .dg #dg-p3 .tbl.plan td.n{white-space:nowrap}
  .dg #dg-p3 .tbl.plan td:last-child .dbtn.sm{white-space:normal;line-height:1.25;max-width:96px}
  .dg #dg-p3 .cr .scroll{overflow-x:visible}
}
@media (min-width:768px){
  .dg #dg-p3 .coach .qh.big2{font-size:18px} .dg #dg-p3 .coach .gapn{font-size:26px}
  .dg #dg-p3 .cbar2 .tops{height:40px} .dg #dg-p3 .cbar2 .tops.bot{height:36px}
  .dg #dg-p3 .coach .note2{font-size:13.5px;line-height:1.5}
}
/* ④ 비교: 칸 폭 고정(300px) 대신 화면 폭을 담은 학과 수로 나눈다(1024px에서 4칸이 잘리던 문제 — 사용자 지적 2026-10-22). 좁으면 줄바꿈 */
@media (min-width:768px){
  .dg #dg-s4 .cmp{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));overflow-x:hidden;scroll-snap-type:none}
  .dg #dg-s4 .cmp .col{flex:none;min-width:0}
}

/* ④ 학과 비교 재설계(2026-10-22): 위치 그래프 + 비교표 */
.dg .cpos{margin:8px 0 14px}
.dg .cpos .tr{position:relative;height:46px;border-radius:12px;background:linear-gradient(90deg,var(--dg-tb),var(--soft) 50%,var(--dg-tr))}
.dg .cpos .zero{position:absolute;left:50%;top:-4px;bottom:-4px;width:2px;background:var(--ink)}
.dg .cpos .pt{position:absolute;top:50%;transform:translate(-50%,-50%)}
.dg .cpos .pt i{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--c);color:#fff;font-style:normal;font-weight:900;font-size:14px;box-shadow:0 0 0 3px var(--card)}
.dg .cpos .pt.r1{top:calc(50% - 15px)} .dg .cpos .pt.r0+.pt.r1{z-index:1}
.dg .cpos .ax{display:flex;justify-content:space-between;font-size:12px;color:var(--sub);margin-top:6px} .dg .cpos .ax b{color:var(--ink)}
.dg .cmpt{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}
.dg .cmpt th,.dg .cmpt td{padding:10px 10px;border-bottom:1px solid var(--line);vertical-align:middle;text-align:center}
.dg .cmpt tbody th{width:118px;text-align:left;font-size:13px;color:var(--sub);font-weight:700;background:var(--card);position:sticky;left:0;z-index:1}
.dg .cmpt thead th:first-child{width:118px}
.dg .cmpt thead th[scope="col"]{background:var(--t);border-radius:14px 14px 0 0;position:relative;padding-top:12px}
.dg .cmpt thead .lt{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--c);color:#fff;font-weight:900;font-size:13px}
.dg .cmpt thead b{display:block;font-size:17px;margin-top:4px}
.dg .cmpt thead small{display:block;font-size:13px;color:var(--sub);font-weight:500;line-height:1.3}
.dg .cmpt thead .cmpx{position:absolute;right:8px;top:8px}
.dg .cmpt td small{display:block;font-size:12px;color:var(--sub);margin-top:2px}
.dg .cmpt td>b{font-size:18px}
.dg .cmpt .cd{font-size:24px;display:block} .dg .cmpt .cd.up{color:var(--dg-r)} .dg .cmpt .cd.dn{color:var(--dg-b)} .dg .cmpt .cd.eq{color:var(--sub)}
.dg .cmpt .ft{font-size:13.5px;line-height:1.4}
.dg .cmpt .sb div{display:grid;grid-template-columns:30px 1fr 34px;align-items:center;gap:6px;font-size:12.5px;margin-top:3px}
.dg .cmpt .sb i{height:8px;border-radius:4px;background:var(--soft);overflow:hidden;display:block} .dg .cmpt .sb em{display:block;height:100%;background:var(--c);border-radius:4px}
.dg .cmpt .sb b{text-align:right}
.dg .cmpt tbody tr:last-child td,.dg .cmpt tbody tr:last-child th{border-bottom:0}
@media (max-width:767px){ .dg .cmpw{overflow-x:auto} .dg .cmpt{min-width:640px} }
.dg .cmpt .cdf{font-size:24px;display:block;font-weight:900} .dg .cmpt .cdf.up{color:var(--dg-r)} .dg .cmpt .cdf.dn{color:var(--dg-b)} .dg .cmpt .cdf.eq{color:var(--sub)}
.dg .cpos .tr{height:56px}
.dg .cpos .pt{display:flex;flex-direction:column;align-items:center;gap:2px;top:8px;transform:translateX(-50%)}
.dg .cpos .pt em{font-style:normal;font-size:11px;font-weight:800;color:var(--c);background:var(--card);border-radius:6px;padding:0 4px;white-space:nowrap}
.dg .cmpt th,.dg .cmpt td{padding:8px 8px}
.dg .cmpt thead th[scope="col"]{padding-top:10px;padding-bottom:8px}
.dg .cmpt thead th{position:sticky;top:0;z-index:2} .dg .cmpt thead th:first-child{background:var(--card);z-index:3}

/* 모바일 ④ 비교(767px 이하): 항목 탭 + 학과 한 줄씩(옆으로 넘기지 않음) */
.dg .cml{display:flex;flex-direction:column;gap:8px}
.dg .cmr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) 24px;align-items:center;gap:8px;background:var(--t);border-radius:14px;padding:10px 10px 10px 12px}
.dg .cmr .who{display:flex;align-items:center;gap:8px;border:0;background:none;padding:0;text-align:left;font:inherit;color:var(--ink);cursor:pointer;min-width:0}
.dg .cmr .who .lt{flex:none;display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--c);color:#fff;font-weight:900;font-size:13px}
.dg .cmr .who b{display:block;font-size:15px} .dg .cmr .who small{display:block;font-size:12px;color:var(--sub);line-height:1.3}
.dg .cmr .val{text-align:right;font-size:13.5px;min-width:0} .dg .cmr .val small{display:block;font-size:11.5px;color:var(--sub)}
.dg .cmr .val .cdf{font-size:22px} .dg .cmr .val.w{text-align:left}
.dg .cmr .sb div{display:grid;grid-template-columns:28px 1fr 26px;align-items:center;gap:4px;font-size:12px;margin-top:2px}
.dg .cmr .sb i{height:7px;border-radius:4px;background:var(--card);display:block;overflow:hidden} .dg .cmr .sb em{display:block;height:100%;background:var(--c)}
.dg .cmr .cmpx{font-size:18px}
/* ④ 위치 그래프: '내 점수' 선 위치(축이 담은 학과 범위에 맞춰 움직임)에 이름표 */
.dg .cpos .tr{background:linear-gradient(90deg,var(--dg-tb),var(--soft) var(--z,50%),var(--dg-tr))}
/* 점 위치 = 표시값(카드와 같은 숫자), 같은 값은 위아래로 쌓음(높이는 spreadPts 가 정함) · 눈금·단위 표기(검토 의견 2026-10-22) */
.dg .cpos .cu{margin:0 0 4px;font-size:11.5px;color:var(--sub)}
.dg .cpos .tr{height:44px}
.dg .cpos .tk{position:absolute;top:0;bottom:0;width:1px;background:rgba(17,24,39,.12)}
.dg .cpos .pt{top:7px}
.dg .cpos .pt i{width:26px;height:26px;font-size:13px}
.dg .cpos .tks{position:relative;height:16px;margin-top:3px;font-size:11px;color:var(--sub)}
.dg .cpos .tks>*{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap}
.dg .cpos .tks b{font-size:12px;color:var(--ink)}
.dg .cpos .ax{margin-top:2px}
.dg .sugb{display:flex;align-items:baseline;gap:6px;margin:0 0 8px;font-size:12.5px;color:var(--sub);line-height:1.45}
.dg .sugb .bd{flex:none}
.dg em.sg{font-style:normal;font-size:10.5px;font-weight:800;color:var(--dg-o);background:var(--dg-to);border-radius:6px;padding:0 5px;margin-left:5px;vertical-align:2px}

/* 모바일 전용(640px 이하, 갤럭시 S25 = 360×780 CSS px 기준 — 사용자 지시 2026-10-22). 태블릿 배치를 줄이지 않고 화면마다 따로 짠다 */
@media (max-width:640px){
  /* 공통(검토 의견 2026-10-22: 첫 카드까지 너무 김): 머리 영역(제목·대학으로 보기·조건 수정)은 숨기고 메뉴를 맨 위로.
     조건 수정은 ① 조건 줄 한 곳, 대학으로 보기는 ① 목록 끝. 화면 제목(.pgh)도 메뉴와 겹쳐 숨김 */
  body:has(.dg .pg) .res-head{display:none}
  body:has(.dg .pg) main.wrap{padding-top:0}
  .dg .pnav{margin:0;padding:8px 0 6px}
  .dg .pnav button{padding:7px 2px;font-size:13px}
  .dg .pg>.pgh{display:none}
  .dg .pg>.sec{padding:12px}
  .dg .msec .mcond .cbar>.note:first-child{display:none}
  .dg .msec .mrow{align-items:center}
  .dg .msel{margin:6px 0 0;font-size:13px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
  .dg .msel .lnk{font-size:12.5px}
  .dg .msec .mtab .mchip{padding:6px 10px}
  .dg .msec .mout{font-size:13px}
  /* ① 내 성적 한 줄(펼치기 글자는 ▾로) */
  .dg .sumr{padding:8px 12px;margin:0 0 8px}
  .dg .sumr>summary{flex-wrap:nowrap;font-size:13px;gap:4px;white-space:nowrap;overflow:hidden}
  .dg .sumr>summary>.note:first-child{display:none}
  .dg .sumr>summary>.note:last-child{font-size:0;margin-left:auto!important}
  .dg .sumr>summary>.note:last-child::after{content:'▾';font-size:13px;color:var(--sub)}
  .dg .sumr[open]>summary>.note:last-child::after{content:'▴'}
  .dg .msec .mrow{padding-bottom:8px}
  .dg .msec .mtab{margin:8px 0 8px}
  .dg .msec .mtab .lnk{font-size:13px;white-space:nowrap}
  .dg .msec .msub{margin:8px 0 0;font-size:12px}
  /* ① 카드(사용자 확정 4줄: 대학·학과+일반·군 / 한 줄 요약 / 차이+내점수·입결 / 버튼) — 3줄째를 두 줄로 묶어 카드 높이 181→약 140px */
  .dg .cdm{padding:9px 12px;margin:0 0 7px}
  .dg .cdm .ft{font-size:12.5px;line-height:1.35;color:var(--sub);margin-top:2px}
  .dg .cdm .sr{align-items:center;margin:4px 0 6px}
  .dg .cdm .sr>b{font-size:22px;white-space:nowrap}
  .dg .cdm .mx{display:flex;flex-direction:column;align-items:flex-end;line-height:1.3}
  .dg .cdm .mx>span{white-space:nowrap;font-size:12.5px;color:var(--sub)}
  .dg .cdm .mx>span b{font-size:14px;margin:0}
  .dg .cdm .mx small{font-size:11px;white-space:nowrap}
  .dg .cdm .btns{display:grid;grid-template-columns:minmax(0,1fr) 92px 40px;gap:6px}
  .dg .cdm .btns button{margin:0;padding:5px 10px;font-size:13px;min-height:32px}
  /* ② 학과 고르기 접기 · 차이 크게 + 막대 두 줄 · 연도별 입결 줄 목록 */
  .dg .mpick{margin:0 0 6px;font-size:13px}
  .dg .mpick>summary{cursor:pointer;color:var(--dg-b);font-weight:700;text-align:right;list-style:none}
  .dg .mpick>summary::-webkit-details-marker{display:none}
  .dg .mpick>summary::after{content:' ▾'} .dg .mpick[open]>summary::after{content:' ▴'}
  .dg .mpick .tpick{margin-top:6px}
  .dg #dg-p2 .dhd{margin:0 0 6px}
  .dg #dg-p2 .dtitle{font-size:19px;line-height:1.3}
  .dg #dg-p2 .dtitle span{display:block;font-size:16px}
  .dg .mstat{background:var(--soft);border-radius:14px;padding:12px 14px;margin:8px 0 4px}
  .dg .mstat .gp{display:flex;align-items:baseline;gap:8px;margin:0 0 8px}
  .dg .mstat .gp b{font-size:30px;line-height:1.1;font-weight:900;color:var(--sub);white-space:nowrap}
  .dg .mstat .gp.up b{color:var(--dg-r)} .dg .mstat .gp.dn b{color:var(--dg-b)}
  .dg .mstat .gp span{font-size:13px;color:var(--sub);font-weight:700}
  .dg .mstat .br>div{display:grid;grid-template-columns:76px minmax(0,1fr) auto;align-items:center;gap:4px 8px;margin-top:6px}
  .dg .mstat .br span{font-size:12.5px;color:var(--sub);font-weight:700;white-space:nowrap}
  .dg .mstat .br i{display:block;height:12px;border-radius:6px;background:var(--card);overflow:hidden}
  .dg .mstat .br em{display:block;height:100%;border-radius:6px}
  .dg .mstat .br .me em{background:#9aa6b8} .dg .mstat .br .pb em{background:var(--ink)}
  .dg .mstat .br b{font-size:16px;white-space:nowrap;text-align:right}
  .dg .mstat .br small{grid-column:2/4;font-size:11px;color:var(--sub);text-align:right;margin-top:-2px}
  .dg .mstat .g2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .dg .mstat .g2 span{display:block;font-size:12px;color:var(--sub);font-weight:700}
  .dg .mstat .g2 b{font-size:20px}
  .dg #dg-p2 .two{grid-template-columns:minmax(0,1fr)}
  .dg #dg-p2 .acts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .dg #dg-p2 .acts button{margin:0;padding:10px 4px;font-size:13px;line-height:1.25;min-width:0}
  .dg #dg-p2 .p2r>.itabs{margin-top:14px}
  .dg #dg-p2 .itabs{flex-wrap:nowrap;overflow:hidden}
  .dg #dg-p2 .itabs button{padding:5px 10px;font-size:12.5px;white-space:nowrap}
  .dg .myr>div{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:baseline;gap:2px 8px;padding:8px 0;border-bottom:1px solid var(--line)}
  .dg .myr>div:last-child{border-bottom:0}
  .dg .myr .y{font-size:14px} .dg .myr .k{font-size:13px;color:var(--sub)} .dg .myr .v{font-size:17px;text-align:right}
  .dg .myr small{grid-column:2/4;font-size:12px;color:var(--sub)}
  /* ③ 목표 표 → 영역 덩어리(옆으로 넘기지 않음) · 조합 버튼 세 칸 */
  .dg .mplan{display:flex;flex-direction:column;gap:6px;margin-top:6px}
  .dg .mplan .pr{border:1px solid var(--line);border-radius:12px;padding:8px 10px;background:var(--card)}
  .dg .mplan .pr.eq{border-color:var(--dg-b);background:var(--dg-tb)}
  /* 고정 머리(.ptop) = 메뉴 + ③ 결과 한 줄 전용 칸(검토 의견 2026-10-22: 결과 띠가 카드·버튼 위에 떠서 덮지 않게 — 본문은 이 머리 아래로 지나감) */
  .dg .ptop{position:sticky;top:52px;z-index:5;background:var(--bg);padding:2px 0 6px}
  .dg .ptop .pnav{position:static;margin:0}
  .dg .msum{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 6px;padding:8px 12px;border-radius:12px;background:#1f2937;color:#fff;border:1px solid rgba(255,255,255,.16);font-size:14px} /* 테마와 무관하게 짙은 배경 고정(다크모드에서 --ink 가 밝아져 대비 1.18:1 — Codex 101) */
  .dg .msum b{font-size:16px}
  .dg .msum .sep{opacity:.6}
  .dg .msum .lack b{color:#ffb3b5} .dg .msum .ok{color:#9ff0c9;font-weight:800}
  .dg .msum small{flex-basis:100%;font-size:12px;opacity:.85}
  .dg .mex{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
  .dg .mex .note2{margin:0 0 6px!important}
  .dg .mplan .h{display:flex;align-items:baseline;gap:6px}
  .dg .mplan .h b{font-size:15px} .dg .mplan .h small{font-size:11.5px;color:var(--sub)}
  .dg .mplan .h .c{margin-left:auto;font-weight:900;font-size:15px;white-space:nowrap}
  .dg .mplan .v{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:6px;font-size:14px}
  .dg .mplan .v b{font-size:16px}
  .dg .mplan .mbs{display:inline-flex;gap:4px;flex:none}
  .dg .mplan .mb{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:8px;min-width:34px;padding:5px 6px;font:inherit;font-size:13px;cursor:pointer}
  .dg .mplan .sv{display:block;width:100%;margin:8px 0 0;padding:7px;font-size:12.5px}
  .dg .mplan .sv[aria-pressed="true"]{background:var(--dg-b);color:#fff;border-color:var(--dg-b)}
  .dg .mplan .pr.sum small{display:block;text-align:right;font-size:11px}
  .dg .mplan .h.rm{margin-top:6px;padding-top:6px;border-top:1px solid var(--line)} .dg .mplan .h.rm .c{color:var(--dg-r)}
  .dg .mplan .dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:none;align-self:center}
  .dg .mplan .sv{padding:5px;color:var(--dg-b)}
  .dg .coach .lvh{display:block}
  .dg .coach .lvh .seg2{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:6px 0 8px}
  .dg .coach .lvh .seg2 button{white-space:normal;line-height:1.25;font-size:12.5px;padding:7px 4px}
  .dg #dg-p3 .dtitle{font-size:19px} .dg #dg-p3 .dtitle span{font-size:15px}
  .dg #dg-p3 .res{display:block;font-size:14px;line-height:1.5} .dg #dg-p3 .res b{font-size:17px;color:var(--dg-r)}
  .dg .cbar2 .mk small{font-size:10.5px}
  /* ④ 안내 한 줄 · 학과 이름이 두 줄로 갈라지지 않게 값 칸은 내용 폭만 */
  .dg .sugb{font-size:12px}
  .dg .cmr .who b{display:inline} .dg .cmr .who small{display:block}
  .dg .cmr{grid-template-columns:minmax(0,1fr) auto 22px;padding:10px}
  /* 글이 긴 항목(반영 방식·올리면·군·모집): 1줄 학교·학과 + ×, 2줄 값(전체 폭) */
  .dg .cmr.st{grid-template-columns:minmax(0,1fr) 22px;row-gap:6px}
  .dg .cmr.st .val{grid-column:1/2;grid-row:2;text-align:left;padding-left:32px}
  .dg .cmr.st .cmpx{grid-column:2;grid-row:1}
  .dg .cmr.st .who b,.dg .cmr.st .who small{display:inline}
  .dg .cmr.st .who small{margin-left:6px}
  .dg .cmr.st .sb div{grid-template-columns:32px 1fr 30px}
  .dg .cpos .ax{font-size:11px}
}
/* 태블릿 세로(768~900px): ③ 오른쪽 표가 칸보다 넓어(494 > 419px) 칸 안에서 옆으로 넘기던 문제 — 칸 비율·버튼·여백을 줄여 맞춘다(2026-10-22 실측) */
@media (min-width:768px) and (max-width:900px){
  .dg #dg-p3 .coach .c2{grid-template-columns:minmax(0,0.75fr) minmax(0,1.45fr);gap:14px}
  .dg #dg-p3 .tbl.plan td,.dg #dg-p3 .tbl.plan th{padding:8px 4px}
  .dg #dg-p3 .tbl.plan td:first-child,.dg #dg-p3 .tbl.plan td:first-child small.note{white-space:normal}
  .dg #dg-p3 .tbl.plan .mb{min-width:30px;padding:4px 5px;font-size:12.5px}
  .dg #dg-p3 .tbl.plan td:last-child .dbtn.sm{max-width:76px;font-size:12px;padding:6px 6px}
}
.dg .cmb{margin:0 0 6px;font-size:12.5px;color:var(--sub)} .dg .cmb b{color:var(--ink)}
.dg .cso{margin:0 0 8px;font-size:12px}
/* ④ ⓘ 접기(자동 제안·같은 기준) · 그래프에서 뺀 학과 표시 */
.dg details.sugb{display:block;margin:0 0 8px} .dg details.sugb>summary,.dg .cpos details.cu>summary{cursor:pointer;list-style:none;font-size:12.5px;color:var(--sub)}
.dg details.sugb>summary::-webkit-details-marker,.dg .cpos details.cu>summary::-webkit-details-marker{display:none}
.dg details.sugb p,.dg .cpos details.cu p{margin:6px 0 0;font-size:12px;color:var(--sub);line-height:1.5}
.dg .ii{color:var(--dg-b);font-weight:800}
.dg em.sg.ox{color:var(--sub);background:var(--soft)}
/* 공개 과목 성적으로 계산한 입결 표시 */
.dg .ctag,.ctag{display:inline-block;border:0;background:var(--soft);color:var(--sub);font:inherit;font-size:11px;font-weight:700;border-radius:6px;padding:1px 6px;margin:2px 0 0;cursor:pointer;white-space:nowrap}
.dg .cm{font-style:normal;display:inline-block;font-size:11px;color:var(--dg-o);background:var(--dg-to);border-radius:6px;padding:0 5px;margin-left:4px}
.dg details.cmd{display:block;margin-top:3px} .dg details.cmd>summary{display:inline-block;cursor:pointer;list-style:none;font-size:11px;font-weight:700;color:var(--dg-o);background:var(--dg-to);border-radius:6px;padding:0 6px}
.dg details.cmd>summary::-webkit-details-marker{display:none} .dg details.cmd>span{display:block;margin-top:4px;font-size:11.5px;color:var(--sub);line-height:1.45;white-space:normal}
.dg .cinfo{background:var(--dg-to);border-radius:10px;padding:8px 10px;margin:0 0 8px;font-size:12.5px;line-height:1.5} .dg .cinfo p{margin:2px 0 0}
/* ③ 막혔을 때 다음 선택지(한 줄 + 버튼) */
.dg .nxt{margin:10px 0 0;padding:10px 12px;border:1px dashed var(--dg-b);border-radius:12px;background:var(--dg-tb);font-size:13.5px}
.dg .nxt p{margin:0 0 8px;font-size:14px} .dg .nxt p b.lk{color:var(--dg-r)}
.dg .nxt .nb{display:flex;flex-direction:column;gap:6px;margin:0}
.dg .nxt .nb .dbtn{text-align:left;width:100%;background:var(--card);border-color:var(--dg-b);color:var(--ink);padding:8px 10px;font-size:13.5px}
.dg .nxt .nb .dbtn b{color:var(--dg-b)}
.dg .nxt small{display:block;color:var(--sub);font-size:11.5px;line-height:1.45}
/* 641~767px: 모바일 줄 목록이 아니라 비교표가 나오는 폭 — 표 최소 폭 640px 강제가 칸(최대 634px)보다 넓어 옆으로 넘기던 문제(Codex 102). 칸 폭에 맞춘다 */
@media (min-width:641px) and (max-width:767px){ .dg .cmpt{min-width:0} .dg .cmpt tbody th,.dg .cmpt thead th:first-child{width:96px} }
/* 모바일 '계산 근거': 표 대신 영역별 줄(옆으로 넘기지 않음) */
.dg .mev>div{display:grid;grid-template-columns:44px minmax(0,1fr);gap:2px 8px;padding:7px 0;border-bottom:1px solid var(--line);font-size:13px}
.dg .mev>div:last-child{border-bottom:0} .dg .mev small{grid-column:2;color:var(--sub);font-size:12px}
/* 비교표 머리행 고정: 학과 머리셀의 position:relative 가 sticky 를 덮던 문제(검증 의견) */
.dg .cmpt thead th[scope="col"]{position:sticky;top:0;z-index:2}

/* 태블릿·PC(768px 이상) 한 방향 배치(사용자 지시 2026-10-22): 페이지 구분은 두고, 페이지 안의 강제 좌우 분할과
   '흰 상자 두 칸을 화면 높이만큼 늘리고 칸 안에서만 스크롤'하던 방식을 푼다 — 짧은 칸 아래가 통째로 비고 카드가 오른쪽 칸에만 갇히던 문제.
   ① 조건·범위 → 전체 폭 대학 분포 → 학과 목록 / ② 대학·학과 → 핵심 점수 → 탭 / ③ 부족분 → 전체 폭 그래프 → 과목별 조절 / ④ 비교표. 페이지는 내용만큼 스크롤 */
@media (min-width:768px){
  .dg .pg{height:auto!important;min-height:0!important;overflow:visible!important;display:block!important}
  .dg .pg>.sec{display:block!important;overflow:visible!important;min-height:0}
  /* ① */
  .dg .p1grid{display:block!important;height:auto!important;min-height:0!important}
  .dg .p1l,.dg .p1r{display:block!important;overflow:visible!important;max-height:none!important;padding-right:0!important}
  .dg .p1l>.uviz{display:block!important;margin-top:14px}
  .dg .p1l>.uviz>.ubar{overflow:visible!important;max-height:none!important}
  .dg .p1r{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
  .dg .p1r>.ipane{overflow:visible!important}
  .dg .p1r .rhead{position:static}
  .dg .p1r .cards{grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr))}
  /* ② */
  .dg .two,.dg #dg-p2 .two{display:block!important}
  .dg .two>div:first-child,.dg #dg-p2 .two>div:last-child{overflow:visible!important;max-height:none!important;min-height:0!important}
  .dg .p2r{display:block!important;overflow:visible!important;margin-top:16px}
  .dg .p2r>.ipane{overflow:visible!important}
  /* ③ */
  .dg .coach .c2,.dg #dg-p3 .coach .c2{display:block!important}
  .dg .coach .cl,.dg #dg-p3 .coach .cl,.dg .coach .cr{overflow:visible!important;max-height:none!important}
  .dg #dg-p3 .cr .scroll{overflow-x:auto}
  .dg .mex{margin-top:14px;padding-top:10px;border-top:1px solid var(--line)}
  .dg .mex .note2{margin:0 0 6px!important}
  .dg .nxt .nb{flex-direction:row;flex-wrap:wrap} .dg .nxt .nb .dbtn{width:auto}
  /* ④ */
  .dg #dg-p4>.sec{overflow:visible!important}
}

/* ===== 정시 진단 네 화면 개편(사용자 승인 시안 2026-10-22) ===== */
.dg{--dg-feat:#3a3fb8}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .dg{--dg-feat:#a9b0ff}}
:root[data-theme="dark"] .dg{--dg-feat:#a9b0ff}
.dg .pg>.pgh{display:none}
/* 뒤로 가기 두 갈래 */
.dg .xbk{display:flex;gap:8px;margin:0 0 10px}
.dg .bkb{border:1px solid var(--line);background:var(--card);color:var(--dg-b);border-radius:999px;padding:5px 12px;font:inherit;font-size:13.5px;font-weight:800;cursor:pointer}
/* ① 위 상자(PC·태블릿): 내 성적 | 내 조건 */
.dg .xtop{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);padding:0;overflow:hidden}
.dg .xtop>div{padding:14px 18px;min-width:0}
.dg .xtop .cnd{background:var(--dg-tb);border-left:1px solid var(--line)}
.dg .xtop .hh{display:flex;align-items:center;gap:8px;margin:0 0 8px} .dg .xtop .hh b{font-size:16px} .dg .xtop .hh .dbtn{margin-left:auto}
.dg .xtop .rings{justify-content:flex-start;gap:14px;align-items:flex-start}
.dg .xtop .ring .lb small{font-weight:600;color:var(--sub);font-size:11px}
.dg .xtop .gp{display:flex;flex-direction:column;gap:6px;margin-left:auto;align-self:center}
.dg .xtop .gp span{background:var(--soft);border-radius:10px;padding:5px 10px;font-size:13px;white-space:nowrap} .dg .xtop .gp b{font-size:14.5px}
.dg .xtop dl{display:grid;grid-template-columns:76px minmax(0,1fr);gap:6px 8px;margin:0;font-size:14px;align-items:baseline}
.dg .xtop dt{color:var(--sub);font-size:13px} .dg .xtop dd{margin:0;font-weight:800;display:flex;flex-wrap:wrap;gap:4px} .dg .xtop dd.bl{color:var(--dg-b)}
.dg .xtop .cnt{margin-top:10px;padding-top:8px;border-top:1px solid var(--line);font-size:14px} .dg .xtop .cnt b{font-size:20px;color:var(--dg-b)}
.dg .xfilt{margin-top:8px} .dg .xfilt>summary{cursor:pointer;font-size:12.5px;font-weight:700;color:var(--dg-b)}
@media (min-width:768px){ .dg .pg>.sec.xtop{display:grid!important} } /* 한 방향 배치 규칙(.pg>.sec block)보다 우선 */
@media (max-width:900px){ .dg .xtop{grid-template-columns:1fr} .dg .xtop .cnd{border-left:0;border-top:1px solid var(--line)} }
/* 모바일 위 상자: 성적 한 줄 · 조건 한 줄 */
.dg .xtopm{padding:10px 12px}
.dg .xtopm .r{display:flex;align-items:center;gap:6px;font-size:13.5px}
.dg .xtopm .r+.r{margin-top:6px}
.dg .xtopm .r>.note{flex:none;white-space:nowrap;font-size:12px}
.dg .xtopm .xsc{display:block;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;font-size:13.5px} .dg .xtopm .xsc b{display:inline;font-size:14px;color:var(--ink)}
.dg .xtopm .mc{flex:1;min-width:0;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dg .xtopm .dbtn{flex:none;margin-left:auto;padding:4px 8px;font-size:12.5px} .dg .xtopm .dbtn+.dbtn{margin-left:0}
/* 대학 분포(세로) + 오른쪽 세로 조절바 */
.dg .xdist .xdhead{display:flex;align-items:baseline;gap:6px 14px;flex-wrap:wrap;margin:0 0 4px}
.dg .xdist .xdhead h2{margin:0;font-size:17px}
.dg .xdist .live{font-size:15px;font-weight:800} .dg .xdist .live b{color:var(--dg-b);font-size:17px} .dg .xdist .live small{color:var(--sub);font-weight:700;font-size:12.5px}
.dg .xdist .basis1{margin:0 0 6px;font-size:12.5px;color:var(--sub)} .dg .xdist .basis1 span{display:block} .dg .xdist .basis1 b{color:var(--ink)}
.dg .xdist .legend{display:flex;gap:4px 12px;flex-wrap:wrap;font-size:12px;color:var(--sub);margin:0 0 8px}
.dg .xdist .legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px;vertical-align:-1px;background:var(--gray-dot)} .dg .xdist .legend i.on{background:var(--dg-b)}
.dg .xdv{display:grid;grid-template-columns:62px minmax(0,1fr) 96px;gap:0 10px;align-items:start}
.dg .xdv .yax{position:relative;height:300px;font-size:11.5px;color:var(--sub)}
.dg .xdv .yax span{position:absolute;right:4px;transform:translateY(-50%);white-space:nowrap}
.dg .xdv .plot{position:relative;height:300px;border-radius:12px;background:var(--bg);border:1px solid var(--line);overflow:hidden}
.dg .xdv .gl{position:absolute;left:0;right:0;border-top:1px dashed var(--line)}
.dg .xdv .band{position:absolute;left:0;right:0;background:var(--dg-tb);border-top:2px solid var(--dg-b);border-bottom:2px solid var(--dg-b);opacity:.9}
.dg .xdv .zero{position:absolute;left:0;right:0;border-top:2px solid var(--ink)}
.dg .xdv .cols{position:absolute;inset:0;display:grid}
.dg .xdv .col{position:relative;border:0;border-left:1px solid var(--line);background:none;padding:0;cursor:pointer}
.dg .xdv .col:first-child{border-left:0} .dg .xdv .col[aria-pressed="true"]{background:var(--dg-tb)}
.dg .xdv .dt{position:absolute;width:9px;height:9px;border-radius:50%;background:var(--gray-dot);transform:translate(-50%,-50%)} .dg .xdv .dt.on{background:var(--dg-b)}
.dg .xdv .ov{position:absolute;left:50%;transform:translateX(-50%);font-size:10.5px;color:var(--sub);white-space:nowrap} .dg .xdv .ov.t{top:2px} .dg .xdv .ov.b{bottom:2px}
.dg .xdv .xlab{display:grid;margin-top:6px}
.dg .xdv .xlab button{border:0;background:none;color:var(--ink);text-align:center;font:inherit;font-size:12.5px;font-weight:800;line-height:1.25;padding:0 2px;cursor:pointer;min-width:0;overflow-wrap:anywhere}
.dg .xdv .xlab small{display:block;font-weight:600;color:var(--sub);font-size:11px} .dg .xdv .xlab button[aria-pressed="true"]{color:var(--dg-b)}
.dg .xdv .rng{position:relative;height:300px}
.dg .xdv .vtrack{position:absolute;left:8px;top:0;width:28px;height:300px;border-radius:14px;background:var(--soft)}
.dg .xdv .vband{position:absolute;left:4px;right:4px;border-radius:10px;background:var(--dg-b);opacity:.35}
.dg .xdv .vzero{position:absolute;left:-4px;right:-4px;border-top:2px solid var(--ink)}
.dg .xdv .hd{position:absolute;left:50%;transform:translate(-50%,-50%);touch-action:none;cursor:ns-resize}
.dg .xdv .hd.mid{width:30px;height:30px;border-radius:50%;background:var(--card);border:3px solid var(--dg-b);box-shadow:0 2px 6px rgba(0,0,0,.18);cursor:grab}
.dg .xdv .hd.end{width:36px;height:14px;border-radius:7px;background:var(--dg-b);border:2px solid var(--card);box-shadow:0 1px 4px rgba(0,0,0,.25)}
.dg .xdv .hd:focus{outline:3px solid var(--dg-tb);outline-offset:2px}
.dg .xdv .hv{position:absolute;left:42px;transform:translateY(-50%);font-size:12.5px;font-weight:900;color:var(--dg-b);white-space:nowrap;background:var(--card);border-radius:6px;padding:0 3px;pointer-events:none}
.dg .xdist .dpg{display:flex;align-items:center;justify-content:center;gap:10px;margin:8px 0 0;font-size:13px;color:var(--sub)} .dg .xdist .dpg .dbtn:disabled{opacity:.4;cursor:default}
.dg .xdist .selline{margin:10px 0 0;font-size:13.5px} .dg .xdist .selline b{color:var(--dg-b)}
/* 학과 목록 · 카드 · 표 */
.dg .xlist .lhead{display:flex;align-items:center;gap:6px 10px;flex-wrap:wrap;margin:0 0 10px}
.dg .xlist .lhead .seg2 button{font-size:13px;padding:5px 10px}
.dg .xmore{display:flex;gap:8px;justify-content:center;margin:12px 0 0;flex-wrap:wrap} .dg .xmore .dbtn{font-size:13px;padding:6px 12px}
.dg .xcd .xft{margin:10px 0 8px;padding:9px 12px;border-radius:12px;background:var(--dg-tb);font-size:13.5px;font-weight:800;color:var(--dg-feat);line-height:1.45}
.dg .xcd .xft small{display:block;margin-top:4px;font-size:11px;font-weight:700;color:var(--sub)}
.dg .xcd .xdf{display:flex;align-items:baseline;gap:8px;margin:0;white-space:nowrap}
.dg .xcd .xdf b{font-size:26px;line-height:1.15;color:var(--sub)} .dg .xcd .xdf.up b{color:var(--dg-r)} .dg .xcd .xdf.dn b{color:var(--dg-b)}
.dg .xcd .xdf span{font-size:14px;font-weight:800}
.dg .xcd .xsc{margin:2px 0 0;font-size:14px} .dg .xcd .xsc b{font-size:15px}
.dg .xcd .xms{margin:2px 0 0;font-size:12px;color:var(--sub)}
.dg .xcdm .l1{display:flex;align-items:baseline;gap:6px}
.dg .xcdm .l1 .cdh{flex:1;min-width:0;border:0;background:none;padding:0;text-align:left;font:inherit;font-size:15px;line-height:1.3;color:var(--ink);cursor:pointer;display:block}
.dg .xcdm .l1 .cdh b{font-weight:900} .dg .xcdm .rg{font-size:12px;color:var(--sub);font-weight:700}
.dg .xcdm .gn{flex:none;font-size:11.5px;color:var(--sub)}
.dg .xcdm .l2{margin:2px 0 0;font-size:12.5px;line-height:1.35;font-weight:800;color:var(--dg-feat);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dg .xcdm .l2 small{font-weight:600;color:var(--sub)}
.dg .xcdm .l2.l2s{font-weight:500;color:var(--sub);margin:-2px 0 6px} .dg .xcdm .l2.l2s b{color:var(--ink)}
.dg .xcdm .l3{display:flex;align-items:baseline;gap:6px;margin:3px 0 6px;font-size:13px;white-space:nowrap;overflow:hidden}
.dg .xcdm .l3>b{font-size:18px;font-weight:900;color:var(--sub)} .dg .xcdm .l3>b.up{color:var(--dg-r)} .dg .xcdm .l3>b.dn{color:var(--dg-b)}
.dg .xcdm .l3 small{font-size:10.5px;color:var(--sub)} .dg .xcdm .l3 .was{color:var(--sub);font-size:12.5px}
.dg .xcdm .l3 .vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.dg .xcdm .l3 .ctag{margin:0}
.dg .xlt{width:100%;table-layout:fixed;border-collapse:collapse;font-size:14px}
.dg .xlt col.c1{width:27%} .dg .xlt col.c2{width:15%} .dg .xlt col.c3{width:16%} .dg .xlt col.c4{width:42%}
.dg .xlt th{white-space:nowrap;text-align:left;font-size:12.5px;color:var(--sub)}
.dg .xlt tbody tr{cursor:pointer} .dg .xlt tbody tr:hover td{background:var(--soft)}
.dg .xlt td{vertical-align:top} .dg .xlt td .lnk{color:var(--ink)} .dg .xlt .gun{white-space:nowrap;font-size:12px;color:var(--sub)}
.dg .xlt td.d{white-space:nowrap;font-weight:900;font-size:16px} .dg .xlt td.d.up{color:var(--dg-r)} .dg .xlt td.d.dn{color:var(--dg-b)}
.dg .xlt td.p{white-space:nowrap} .dg .xlt td.p small{display:block;color:var(--sub);font-size:11.5px;white-space:normal}
.dg .xlt td.f{font-size:13px;font-weight:800;color:var(--dg-feat)}
/* 점수를 올리면: 왼쪽 조절 · 오른쪽 바뀌는 값 · 아래 목록 */
.dg .upgrid{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:16px;align-items:start;margin:0 0 12px}
.dg .uph{display:flex;align-items:center;gap:8px;margin:0 0 8px} .dg .uph b{font-size:15px} .dg .uph .dbtn{margin-left:auto}
.dg .ups{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.dg .ub{display:flex;flex-direction:column;gap:6px;padding:8px 12px;background:var(--card);border-top:1px solid var(--line)} .dg .ub:first-child{border-top:0}
.dg .ub.on{background:var(--dg-tb);box-shadow:inset 3px 0 0 var(--dg-b)}
.dg .ub .row{display:flex;align-items:center;gap:5px}
.dg .ub .lab{font-size:14.5px;min-width:42px;white-space:nowrap}
.dg .ub .cur{font-size:14px;color:var(--sub);white-space:nowrap;min-width:30px;text-align:right}
.dg .ub .to{color:var(--sub)}
.dg .num{width:64px;border:1px solid var(--line);border-radius:8px;padding:5px 6px;font:inherit;font-size:16px;font-weight:900;text-align:center;background:var(--card);color:var(--ink)}
.dg .num:focus{outline:3px solid var(--dg-tb);border-color:var(--dg-b)} .dg .num:disabled{background:var(--soft);color:var(--dg-b);border-color:transparent}
.dg .pm{width:34px;height:34px;flex:none;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:8px;font:inherit;font-size:18px;font-weight:900;cursor:pointer}
.dg .pm:disabled{opacity:.35;cursor:default}
.dg .ub .dd{font-size:12.5px;font-weight:900;color:#fff;background:var(--dg-b);border-radius:6px;padding:0 5px;white-space:nowrap} .dg .ub .dd:empty{display:none}
.dg .rvi{margin-left:auto;width:28px;height:28px;flex:none;border:0;background:none;color:var(--dg-b);font:inherit;font-size:18px;font-weight:900;cursor:pointer}
.dg .ub .lk,.dg .xareas .lk{display:flex;align-items:center;gap:4px;font-size:12.5px;color:var(--sub)}
.dg .xgain{display:flex;align-items:baseline;gap:4px 12px;flex-wrap:wrap;border-radius:14px;background:var(--dg-tg);padding:10px 14px;margin:0 0 8px;font-size:14px}
.dg .xgain b{font-size:20px;color:var(--dg-g)} .dg .xgain .chg{flex-basis:100%;font-size:13.5px} .dg .xgain .chg b{font-size:14px;color:var(--dg-b)} .dg .xgain .note2{flex-basis:100%}
.dg .xempty{border:1px dashed var(--line);border-radius:12px;padding:12px;color:var(--sub);font-size:13.5px;text-align:center;margin:0 0 8px}
.dg .xeff .eb{display:grid;grid-template-columns:128px minmax(0,1fr) 56px;gap:8px;align-items:center;width:100%;margin:0 0 6px;padding:2px 0;border:0;background:none;color:var(--ink);font:inherit;font-size:13.5px;text-align:left;cursor:pointer}
.dg .xeff .eb .t{height:14px;border-radius:7px;background:var(--soft);overflow:hidden} .dg .xeff .eb .t i{display:block;height:100%;border-radius:7px}
.dg .xeff .eb b{text-align:right}
.dg .xal{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.dg .xal .ah,.dg .xal .ai{display:grid;grid-template-columns:minmax(0,35fr) 18fr 17fr 18fr 12fr;gap:8px;align-items:center;padding:8px 12px}
.dg .xal .ah{background:var(--soft);font-size:12px;font-weight:700;color:var(--sub)}
.dg .xal .ai{border-top:1px solid var(--line);font-size:14px;cursor:pointer} .dg .xal .ai:hover{background:var(--soft)}
.dg .xal .ai .lnk{color:var(--ink)} .dg .xal .gun{font-size:12px;color:var(--sub);white-space:nowrap}
.dg .xal .as,.dg .xal .ad{white-space:nowrap} .dg .xal .ap small{display:block;font-size:11px;color:var(--sub)}
.dg .xal .ad s{color:var(--sub);text-decoration:none;font-size:12.5px} .dg .xal .ad b.up{color:var(--dg-r)} .dg .xal .ad b.dn{color:var(--dg-b)}
.dg .xal .ab{display:flex;gap:4px;justify-content:flex-end}
/* ② 학과 상세 */
.dg .xd .meta{margin:6px 0 4px}
.dg .xline{margin:10px 0 0;font-size:14px;line-height:1.5} .dg .xline b{margin-right:4px}
.dg .xline.monly{display:none} /* PC·태블릿은 위쪽에 같은 문장이 있어 탭 안에서는 모바일만 */
.dg .xd .acts{margin-top:12px}
.dg .xd .mpick{margin-top:12px} .dg .xd .mpick>summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--dg-b)} .dg .xd .mpick .tpick{margin:8px 0 0}
.dg .mmeta{margin:4px 0 8px;font-size:12.5px;color:var(--sub)} .dg .mmeta a{color:var(--dg-b);font-weight:700;text-decoration:none}
.dg .m3{display:grid;grid-template-columns:1fr 1fr 1.2fr;border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:0 0 4px}
.dg .m3>div{padding:7px 10px;border-left:1px solid var(--line);min-width:0} .dg .m3>div:first-child{border-left:0}
.dg .m3 span{display:block;font-size:11.5px;color:var(--sub);white-space:nowrap} .dg .m3 b{font-size:17px;white-space:nowrap} .dg .m3 small{display:block;font-size:10.5px;color:var(--dg-o)}
.dg .m3 .g{background:var(--dg-tb)} .dg .m3 .g b{color:var(--dg-b)} .dg .m3 .g.up b{color:var(--dg-r)}
.dg .xd2 h4{margin:12px 0 6px;font-size:15px} .dg .xd2 h4:first-child{margin-top:0} .dg .xd2 h4 small{font-weight:600;color:var(--sub);font-size:12px}
.dg .xyt{width:100%;table-layout:fixed;border-collapse:collapse;font-size:14px}
.dg .xyt col.c1{width:60px} .dg .xyt col.c3{width:70px} .dg .xyt col.c4{width:56px} .dg .xyt col.c5{width:66px}
.dg .xyt th{white-space:nowrap} .dg .xyt td.n,.dg .xyt th.n{text-align:right;white-space:nowrap}
.dg .xyt .cm{display:block;margin:3px 0 0;width:max-content;max-width:100%;white-space:normal}
.dg .xyt sup{color:var(--dg-o);font-weight:900;margin-left:1px}
.dg .xstu{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:6px 0}
.dg .xstu div{border:1px solid var(--line);border-radius:12px;padding:8px 10px;text-align:center} .dg .xstu b{display:block;font-size:20px} .dg .xstu span{font-size:12px;color:var(--sub)}
.dg .xsteps{margin:0;padding:0 0 0 20px;font-size:14.5px;line-height:1.6} .dg .xsteps li{padding:4px 0;border-bottom:1px solid var(--line)} .dg .xsteps small{color:var(--sub)}
.dg .xsteps s{color:var(--sub)}
.dg .xvs{display:grid;grid-template-columns:52px minmax(0,1fr) 170px;gap:6px 10px;align-items:center;font-size:14px;margin-top:6px}
.dg .xvs .tr{position:relative;height:14px;border-radius:7px;background:var(--soft)}
.dg .xvs .me,.dg .xvs .st{position:absolute;top:0;bottom:0;border-radius:7px} .dg .xvs .me{background:#9aa6b8} .dg .xvs .st{border-right:3px solid var(--ink)}
.dg .xvs b.up{color:var(--dg-r)} .dg .xvs b.dn{color:var(--dg-b)}
.dg .xchk{margin:0;padding:0;list-style:none} .dg .xchk li{display:grid;grid-template-columns:150px minmax(0,1fr);gap:4px 10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.5}
.dg .xchk li small{color:var(--sub)} .dg .unk{color:var(--warn);font-weight:800}
/* ③ 목표 설계 */
.dg .xbasis{display:inline-block;margin:8px 0 0;border-radius:8px;background:var(--dg-to);color:var(--warn);font-size:13px;font-weight:700;padding:4px 10px}
.dg .xg1 .gapq{font-size:20px;font-weight:900;margin:14px 0 4px} .dg .xg1 .gapq b{color:var(--dg-r);font-size:28px}
.dg .xg1 .xwhy{font-size:13.5px;color:var(--sub);margin:0}
.dg .xg2 .xstp,.dg .xmodes .xstp{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:16px;font-weight:900}
.dg .xg2 .xstp i,.dg .xmodes .xstp i{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--dg-b);color:#fff;font-style:normal;font-size:13px}
.dg .xg2 .xstp .sp{margin-left:auto}
.dg .xg2 .fill{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 10px;font-size:14px} .dg .xg2 .fill .seg2 button{font-size:13px;padding:5px 12px}
.dg .xareas{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.dg .xareas.n2{grid-template-columns:repeat(2,minmax(0,1fr))} .dg .xareas.n3{grid-template-columns:repeat(3,minmax(0,1fr))} .dg .xareas.n5{grid-template-columns:repeat(5,minmax(0,1fr))}
.dg .xareas .lk{grid-column:1/-1}
.dg .xar{display:flex;flex-direction:column;gap:8px;border:2px solid var(--line);border-radius:14px;padding:12px;background:var(--card);transition:background .4s,border-color .4s;min-width:0}
.dg .xar.on{background:var(--dg-tb);border-color:var(--dg-b)} .dg .xar.auto{background:var(--soft);border-style:dashed;border-color:var(--dg-b)} .dg .xar.flash{background:var(--dg-tg);border-color:var(--dg-g)}
.dg .xar .hd{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-height:24px}
.dg .xar .lab{font-size:16px;font-weight:900;white-space:nowrap} .dg .xar .dd{font-size:13px;font-weight:900;color:var(--dg-b);white-space:nowrap;margin-left:auto}
.dg .xar .au{font-size:11px;font-weight:900;color:var(--dg-b);background:var(--card);border:1px solid var(--dg-b);border-radius:6px;padding:0 5px}
.dg .xar .badge{font-size:11px;font-weight:900;color:#fff;background:var(--dg-g);border-radius:6px;padding:1px 6px}
.dg .xar .vl{display:flex;align-items:center;gap:6px} .dg .xar .cur{font-size:15px;color:var(--sub)} .dg .xar .cur small{font-size:11px} .dg .xar .to{color:var(--sub)}
.dg .xar .num{flex:1;min-width:0;width:auto;font-size:20px;padding:6px}
.dg .xar .cl{display:flex;align-items:center;gap:6px} .dg .xar .cl .pm{flex:1;width:auto}
.dg .xar .rvi{width:34px;height:34px;border:1px solid var(--line);background:var(--card);border-radius:8px;margin:0}
.dg .xar .ct{font-size:13px;font-weight:800;color:var(--sub);border-top:1px solid var(--line);padding-top:6px}
.dg .xres{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;border-radius:14px;background:#1f2937;color:#fff;padding:10px 16px;margin:12px 0 0;font-size:15px}
.dg .xres b{font-size:20px} .dg .xres .lack b{color:#ffb3b5} .dg .xres .ok{color:#9ff0c9;font-weight:900}
.dg .xmodes .mc{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px;font-size:13.5px} .dg .xmodes .mc span{background:var(--soft);border-radius:8px;padding:4px 8px}
@media (max-width:640px){
  .dg .xbk{margin:0 0 8px} .dg .bkb{font-size:13px;padding:4px 11px}
  /* 분포: 조절바 숫자는 손잡이 위·아래(손가락에 안 가림), 오른쪽 칸을 줄여 대학 7곳 */
  .dg .xdist .xdhead h2{font-size:15px} .dg .xdist .live{font-size:13.5px} .dg .xdist .live b{font-size:15px} .dg .xdist .basis1{font-size:12px}
  .dg .xdv{grid-template-columns:28px minmax(0,1fr) 44px;gap:0 4px}
  .dg .xdv .yax,.dg .xdv .plot,.dg .xdv .rng,.dg .xdv .vtrack{height:240px}
  .dg .xdv .yax{font-size:10px} .dg .xdv .xlab button{font-size:11px;padding:0} .dg .xdv .xlab small{font-size:10px}
  .dg .xdv .hv{left:50%;font-size:12px;padding:0 2px} .dg .xdv .hv.t{transform:translate(-50%,calc(-100% - 10px))} .dg .xdv .hv.b{transform:translate(-50%,10px)}
  .dg .xdist .dpg{gap:6px}
  .dg .xlist .lhead{margin:0 0 6px} .dg .xlist .lhead>.note{display:none} .dg .xlist .lhead .seg2 button{font-size:12.5px;padding:5px 8px}
  .dg .xmore{flex-direction:column;align-items:stretch}
  .dg .xlt{font-size:13px} .dg .xlt col.c1{width:40%} .dg .xlt col.c2{width:24%} .dg .xlt col.c3{width:36%} .dg .xlt col.c4,.dg .xlt th.f,.dg .xlt td.f{display:none}
  .dg .upgrid{grid-template-columns:minmax(0,1fr);gap:10px} .dg .upl,.dg .upr{min-width:0}
  .dg .ub .row{gap:4px} .dg .ub .lab{min-width:36px;font-size:14px} .dg .ub .cur{min-width:26px;font-size:13px} .dg .ub .num{width:54px;font-size:15px;padding:4px} .dg .ub .pm{width:32px;height:32px} .dg .ub .rvi{width:24px} .dg .ub .dd{font-size:11.5px;padding:0 4px}
  .dg .xtopm .xsc{font-size:13px} .dg .xtopm .xsc b{font-size:13.5px} .dg .upl>.note2{display:none} .dg .ub{padding:6px 10px;gap:4px} .dg .ub .lk span{display:none}
  .dg .xgain{padding:8px 12px} .dg .xgain b{font-size:17px}
  .dg .xeff .eb{grid-template-columns:104px minmax(0,1fr) 48px;font-size:12.5px}
  /* ② 탭 네 개 한 줄(글자 수에 맞춰 입결·출처는 좁게) · 입결표 줄바꿈 없음 */
  .dg .itabs.x4{display:grid;grid-template-columns:.72fr 1.3fr 1.3fr .72fr;gap:4px} .dg .itabs.x4 button{padding:6px 0;font-size:12.5px;text-align:center;white-space:nowrap}
  .dg .xyt{font-size:13px} .dg .xyt th{font-size:11.5px;padding:6px 4px} .dg .xyt td{padding:8px 4px}
  .dg .xyt col.c1{width:40px} .dg .xyt col.c3{width:48px} .dg .xyt col.c4{width:36px} .dg .xyt col.c5{width:46px} .dg .xyt .cm{font-size:10.5px}
  .dg .xstu{grid-template-columns:repeat(3,minmax(0,1fr))}
  .dg .xvs{grid-template-columns:44px minmax(0,1fr) 108px;font-size:12.5px}
  .dg .xchk li{grid-template-columns:1fr;gap:2px}
  .dg .xline{font-size:13.5px;margin:0 0 10px;background:var(--soft);border-radius:10px;padding:8px 10px} .dg .xline.monly{display:block}
  /* ③ 상단 압축(기준 한 줄 → 세 숫자 → 그래프 → 조절), 과목 칸은 한 상자 안 두 줄 */
  .dg .xbasis{font-size:11.5px;padding:2px 7px;margin-top:4px}
  .dg #dg-p3 .m3{margin:8px 0 0} .dg #dg-p3 .m3 .g{background:var(--dg-tr)} .dg #dg-p3 .m3 .g b{color:var(--dg-r)}
  .dg #dg-p3 .cbar2{margin:8px 0 0} .dg #dg-p3 .cbar2 .tops{display:none} .dg #dg-p3 .cbar2 .trk{height:22px}
  .dg .xg2 .xstp{font-size:15px;margin:0 0 8px} .dg .xg2 .xstp .dbtn{font-size:12px;padding:4px 8px}
  .dg .xg2 .fill{font-size:12.5px;gap:6px} .dg .xg2 .fill .seg2 button{font-size:12.5px;padding:5px 9px}
  .dg .xareas,.dg .xareas.n2,.dg .xareas.n3,.dg .xareas.n5{display:flex;flex-direction:column;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden}
  .dg .xar{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"h k" "v c";gap:4px 8px;border:0;border-top:1px solid var(--line);border-radius:0;padding:7px 10px}
  .dg .xar:first-child{border-top:0} .dg .xar.on{box-shadow:inset 3px 0 0 var(--dg-b)} .dg .xar.flash{box-shadow:inset 3px 0 0 var(--dg-g)} .dg .xar.auto{border-style:solid;border-color:var(--line)}
  .dg .xar .hd{grid-area:h;min-height:0} .dg .xar .lab{font-size:14.5px} .dg .xar .dd{margin-left:0;font-size:12.5px}
  .dg .xar .ct{grid-area:k;border:0;padding:0;font-size:12px;align-self:center;text-align:right}
  .dg .xar .vl{grid-area:v} .dg .xar .cur{font-size:13.5px} .dg .xar .num{flex:none;width:66px;font-size:16px;padding:4px}
  .dg .xar .cl{grid-area:c} .dg .xar .cl .pm{flex:none;width:34px} .dg .xar .rvi{border:0;width:28px}
  .dg .xareas .lk{padding:6px 10px;border-top:1px solid var(--line)} .dg .xareas .lk span{display:none}
  .dg .psum .xres{margin:0;border-radius:12px;padding:8px 12px;font-size:14px} .dg .psum .xres b{font-size:17px}
  .dg .xmodes .seg2{display:flex;flex-wrap:wrap} .dg .xmodes .seg2 button{white-space:nowrap;font-size:12.5px;padding:5px 8px}
}
/* 다크 모드: 작은 배지 글자 대비(Codex 111 — 초록 배경 흰 글자 2.0:1, 파랑 3.2:1) */
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .dg .xar .badge,:root:not([data-theme="light"]) .dg .ub .dd{color:#0b1220}}
:root[data-theme="dark"] .dg .xar .badge,:root[data-theme="dark"] .dg .ub .dd{color:#0b1220}
/* 전형: 실제 이름·자격 제한 표시·전형 바꾸기(2026-10-22) */
.dg .xsp{display:inline-block;margin:6px 0 0;font-size:11.5px;font-weight:800;color:var(--warn);background:var(--dg-to);border-radius:6px;padding:1px 7px;white-space:nowrap}
.dg .xcdm .xsp{margin:2px 0 0}
.dg .xlt .xsp,.dg .xal .xsp{margin:2px 0 0 4px}
.dg .meta .xsp{margin:0}
.dg .xpy{display:inline-block;margin-left:4px;font-size:11px;font-weight:800;color:#174a8c;background:#e6effc;border-radius:5px;padding:0 5px;white-space:nowrap}
.dg .bd.t{font-weight:800}
.dg .xtop dd.qv{font-weight:600;color:var(--sub)}
.dg .xjt{margin-top:8px} .dg .xjt>summary{cursor:pointer;font-size:12.5px;font-weight:700;color:var(--dg-b)}
.dg .xjg{display:flex;flex-wrap:wrap;gap:6px}
.dg .xjg button{border:1px solid var(--line);background:var(--card);color:var(--sub);border-radius:999px;padding:4px 10px;font:inherit;font-size:12.5px;font-weight:700;cursor:pointer}
.dg .xjg button[aria-pressed="true"]{border-color:var(--dg-b);background:var(--dg-tb);color:var(--dg-b)}
.dg .xjg small{font-weight:600;color:var(--sub)}
.dg .xyt .tt{display:block;font-size:11px;color:var(--sub)}
.dg .xcdm .gn{max-width:46%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:640px){ .dg .xtopm .xjt{margin-top:6px} .dg .xtopm .xjt .lvh{display:block} .dg .xtopm .xjt .seg2 button{font-size:12px;padding:4px 8px} }.dg th small.tt{display:block;margin-top:2px;font-size:12px;font-weight:600;color:var(--sub)}
/* 전형 2차(사용자 지시 2026-10-22): 지원 자격 [입력·수정], 학교별 입결 연결, 원문 링크 단계 */
.dg .xtop dd.qv .xqe{margin-left:6px;padding:2px 8px;font-size:12px;vertical-align:middle}
.dg .xjl{margin:8px 2px 0;font-size:13.5px}
.dg .xjl a{color:var(--blue);font-weight:700;text-decoration:none}
.dg .xjl a:hover{text-decoration:underline}
.dg .xlk{display:inline-block;margin-top:4px;padding:3px 10px;border:1px solid var(--blue);border-radius:8px;color:var(--blue);font-weight:700;font-size:13px;text-decoration:none}
.dg .xpp{font-size:12.5px;color:var(--sub);margin-left:4px}
.dg .xpp a{color:var(--blue)}
.dg .xpp em{font-style:normal;font-weight:700;color:#6b4e00;background:#fff4d6;border-radius:5px;padding:1px 6px;margin-left:2px}
@media (max-width:767px){ .tabbar{grid-template-columns:repeat(auto-fit,minmax(0,1fr))} .tabbar button,.tabbar a{font-size:10.5px;white-space:nowrap;letter-spacing:-.3px} } /* 하단 탭 5개(학교별 입결 추가)도 한 줄 */
.dg .xtopm .mq{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.4} /* 입력한 지원 자격은 자르지 않고 다 보임 */
.dg .xjt .xjn{margin:8px 0 0;line-height:1.55}
.dg .xjt .xjd{margin-top:4px}
.dg .xjt .xjd>summary{font-size:12.5px;color:var(--sub);cursor:pointer;font-weight:600}
.dg .xjt .xjd .note2{margin-top:4px}

/* 2028·2029 참고 안내: 모바일은 한 줄 + 자세히(2026-10-23) */
.r5 .info{margin:0}.r5m{display:none}
@media (max-width:640px){.r5pc{display:none}span.r5m{display:inline}details.r5m{display:block;margin-top:6px}details.r5m summary{cursor:pointer;color:var(--blue);font-weight:700}}

/* '2028 반영 방법' 탭(2026-10-23): 대학 카드 묶음 + 상세 창(PC 오른쪽 · 모바일 아래) */
.dg .pgx .pgh h2{font-size:20px;margin:6px 0 4px}
.p28f{margin:8px 0 12px}
.p28grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.p28c{display:flex;flex-direction:column;align-items:stretch;gap:6px;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px;font:inherit;color:var(--ink);cursor:pointer;box-shadow:var(--shadow)}
.p28c:hover{border-color:var(--blue)}
.p28h{display:flex;gap:10px;align-items:center}.p28h .logo{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--soft);font-size:18px}
.p28h b{display:block;font-size:15px}.p28h small{color:var(--sub);font-size:12px}
.p28j{font-size:12px;color:var(--sub)}
.p28s{display:flex;align-items:baseline;gap:6px}.p28s b{font-size:26px;color:var(--blue)}.p28s small{color:var(--sub)}.p28s em{font-style:normal;font-size:11px;color:var(--blue);background:var(--soft);border-radius:999px;padding:1px 6px}
.p28g{font-size:12px;color:var(--sub)}
.p28n{font-size:13px;color:var(--sub)}.p28n.warn{color:var(--warn)}
.p28ts{display:flex;flex-wrap:wrap;gap:4px}.p28t{font-size:11px;border:1px solid var(--line);border-radius:999px;padding:1px 7px;color:var(--sub);background:var(--bg)}.p28t.sum{color:#8a5a00;border-color:#f1d9a6;background:#fff7e6}
.p28m{font-size:12px;color:var(--sub);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.p28more{font-size:12px;color:var(--blue);font-weight:700;margin-top:auto}
.p28ov{position:fixed;inset:0;z-index:30;display:flex;justify-content:flex-end}
.p28bg{position:absolute;inset:0;border:0;background:rgba(15,23,42,.35);cursor:pointer}
.p28p{position:relative;width:min(560px,92vw);height:100%;overflow:auto;background:var(--bg);padding:12px 14px;box-shadow:-8px 0 24px rgba(0,0,0,.12)}
.p28ph{display:flex;justify-content:space-between;align-items:center;position:sticky;top:-12px;background:var(--bg);padding:6px 0;z-index:1}
@media (max-width:640px){ .p28grid{grid-template-columns:1fr} .p28ov{align-items:flex-end} .p28p{width:100%;height:auto;max-height:86vh;border-radius:16px 16px 0 0;box-shadow:0 -8px 24px rgba(0,0,0,.12)} }

.dg .pg.pgx>.pgh{display:block}.dg .pgx .pgh .note{margin:0}

@media (max-width:640px){ .p28m{display:none} .p28c{padding:10px 12px;gap:4px} .p28s b{font-size:22px} }

/* 글자 로고(2026-10-23): 진짜 로고 전까지 대학 이름 앞 글자 + 대학별 고정 색. 캠퍼스는 오른쪽 아래 작은 글자 */
.logo.mono{position:relative;color:#fff;font-weight:800;letter-spacing:-.5px;font-size:15px;line-height:1}
.logo.mono.l4{font-size:11px;letter-spacing:0}
.logo.mono i{position:absolute;right:-4px;bottom:-4px;font-style:normal;font-size:9px;font-weight:700;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:1px 3px}
.p28h .logo.mono{font-size:13px}
.logo.img{background:#fff;border:1px solid var(--line);overflow:hidden}.logo.img img{width:80%;height:80%;object-fit:contain}
.logo.mono.l3{font-size:12px;letter-spacing:-1px}.p28h .logo.mono.l3{font-size:10.5px}
.logo.mono.l2{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:1px}.logo.mono.l2 b{font-size:13px;color:#fff}.logo.mono.l2 small{font-size:10px;font-weight:700;opacity:.9;color:#fff}.p28h .logo.mono.l2 b{font-size:11px}.p28h .logo.mono.l2 small{font-size:8.5px}

/* Five mobile tabs: reserve full label widths; let the two short labels share the remaining space. */
@media (max-width:640px){ .dg .pnav:has(> button:nth-child(5)){grid-template-columns:minmax(0,1fr) max-content max-content minmax(0,1fr) max-content} }
/* 2027 정시 모집(요강 원문 쪽 기준) — 2026-10-24 */
.j27c{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:10px 0;box-shadow:var(--shadow)}
.j27hd{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px}.j27hd b{font-size:15px;margin-right:2px}
.j27st{font-size:11px;border:1px solid var(--line);border-radius:999px;padding:1px 7px;color:var(--sub);background:var(--bg);margin-left:6px}
.j27st.fix{color:#8a5a00;border-color:#f1d9a6;background:#fff7e6}
.j27chips{display:flex;flex-wrap:wrap;gap:6px}
.j27chip{font-size:13px;border:1px solid var(--line);border-radius:999px;padding:3px 10px;background:var(--bg)}.j27chip b{font-size:15px}
.j27chip.gun{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:700}.j27chip.dim{color:var(--sub)}
.j27bar{display:flex;width:100%;height:30px;border-radius:9px;overflow:hidden;margin:4px 0;font-size:12px;color:#fff}
.j27s{display:flex;align-items:center;justify-content:center;gap:3px;min-width:0;white-space:nowrap;overflow:hidden}
.j27s b{font-weight:800}.j27s.k{background:#4f6bed}.j27s.m{background:#1f9d85}.j27s.e{background:#d48a1c}.j27s.t{background:#8b5fd6}.j27s.h{background:#7b8597}
.j27vl{font-size:12px;color:var(--sub);margin:6px 0 0}
.j27rs{display:grid;gap:4px;margin-top:8px}
.j27r{display:grid;grid-template-columns:64px 1fr;gap:8px;font-size:13px;align-items:start}.j27r>small{color:var(--sub);padding-top:1px}
.j27g{display:inline-flex;flex-wrap:wrap;gap:2px;margin-left:4px;vertical-align:middle}
.j27g span{display:inline-flex;flex-direction:column;align-items:center;min-width:30px;border:1px solid var(--line);border-radius:6px;padding:1px 3px;font-size:12px;background:var(--bg)}
.j27g small{font-size:9px;color:var(--sub);line-height:1}
.j27src{font-size:12px;color:var(--sub);margin:6px 0 0}.j27src a{color:var(--blue)}
.j27n{padding-left:18px;margin:6px 0 0}
.j27sch{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px 14px;margin:10px 0 14px;box-shadow:var(--shadow)}
.j27sch>summary{cursor:pointer;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;list-style:none}
.j27sch>summary::-webkit-details-marker{display:none}
.j27sch>summary::after{content:'펼치기 ›';margin-left:auto;font-size:12px;color:var(--blue);font-weight:700}
.j27sch[open]>summary::after{content:'접기'}
.j27list{display:grid;gap:2px;margin:10px 0}
.j27li{display:grid;grid-template-columns:1fr auto auto auto;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line);font-size:14px}
.j27li .jnm small{display:block;font-size:11px;color:var(--sub)}.j27li .jq{font-weight:700;text-align:right;min-width:44px}
.j27li .jrk{font-size:11px;color:var(--sub);grid-column:1/-1;margin-top:-4px}.j27li .jpg{font-size:12px;color:var(--sub)}
.j27li .j27chip{font-size:12px;padding:1px 8px}
@media (max-width:520px){.j27r{grid-template-columns:1fr;gap:2px}.j27g{display:grid;grid-template-columns:repeat(9,1fr);margin:3px 0 0;width:100%}.j27g span{min-width:0;padding:1px 0}}
.j27li .jnm small.jnote{color:var(--warn)}
.j27li .jnote{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.j27unc{margin:6px 0 0;font-size:13px}.j27unc>summary{cursor:pointer;color:var(--warn)}
.j27li .jq small{font-size:11px;color:var(--sub);font-weight:600}
.j27cond{display:grid;gap:4px;margin:2px 0 10px;padding:8px 10px;border-radius:10px;background:var(--soft)}
.j27cond .j27r.must>small{color:var(--bad);font-weight:700}.j27cond .j27r.min>small{color:var(--warn);font-weight:700}
.j27unk{color:var(--sub);font-style:italic}.j27none{color:var(--sub)}
.j27sched{margin:6px 0 4px}.j27sched .j27r{grid-template-columns:110px 1fr}@media (max-width:520px){.j27sched .j27r{grid-template-columns:1fr}}
.j27chip.silgi{background:#fff3e0;border-color:#f3c98b;color:#8a4b00;font-weight:700}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .j27chip.silgi{background:rgba(240,166,72,.16);border-color:rgba(240,166,72,.45);color:#f0a648}}
:root[data-theme="dark"] .j27chip.silgi{background:rgba(240,166,72,.16);border-color:rgba(240,166,72,.45);color:#f0a648}
/* 2027 모집단위 목록: 누르면 그 모집단위 상세(2026-10-25) */
.j27li[data-j27u]{cursor:pointer;border-radius:8px}
.j27li[data-j27u]:hover,.j27li[data-j27u]:focus-visible{background:var(--soft,rgba(37,99,235,.06));outline:none}
.j27li[data-j27u]:focus-visible{box-shadow:0 0 0 2px var(--blue)}
