/* 꿈 바라기 — 흰색/다크 두 가지 테마 (html[data-theme="light"|"dark"]) */
:root{
  --primary:#0066cc; --primary-focus:#0071e3; --on-primary:#fff;
  --font:"SF Pro Text","SF Pro Display",system-ui,-apple-system,BlinkMacSystemFont,"Inter","Pretendard","Malgun Gothic","Apple SD Gothic Neo",sans-serif;
  --r-sm:8px; --r-md:11px; --r-lg:18px; --r-pill:9999px;
  /* 라이트(기본) */
  --bg:#ffffff; --bg-alt:#f5f5f7; --card:#ffffff; --card-alt:#ffffff;
  --text:#1d1d1f; --sub:#6e6e73; --line:#e0e0e0; --link:#0066cc;
  --field:#ffffff; --chip:#fafafc; --track:#f0f0f0; --sum:#f5f5f7;
  --ok:#248a3d; --mid:#6a9a1f; --warn:#c77700; --bad:#d70015;
  --nav-bg:#000; --nav-text:#fff;
  /* 예전 변수 이름 호환 */
  --gold:var(--primary);
}
html[data-theme="dark"]{
  --bg:#000000; --bg-alt:#272729; --card:#272729; --card-alt:#2a2a2c;
  --text:#ffffff; --sub:#cccccc; --line:#ffffff29; --link:#2997ff;
  --field:#1d1d1f; --chip:#2a2a2c; --track:#3a3a3c; --sum:#1d1d1f;
  --ok:#30d158; --mid:#a6d94c; --warn:#ffb340; --bad:#ff6961;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);
  font-family:var(--font);font-size:17px;line-height:1.47;letter-spacing:-.374px;transition:background .25s,color .25s}
a{color:var(--link);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:980px;margin:0 auto;padding:0 20px 64px}

/* 글로벌 네비게이션: 항상 순흑 44px */
header.top{position:sticky;top:0;z-index:10;background:var(--nav-bg);height:48px}
header.top .in{max-width:1024px;height:48px;margin:0 auto;padding:0 20px;display:flex;gap:4px;align-items:center;overflow-x:auto;scrollbar-width:none}
header.top .in::-webkit-scrollbar{display:none}
header.top .logo{color:var(--nav-text);font-weight:600;font-size:14px;letter-spacing:-.224px;margin-right:auto;white-space:nowrap}
header.top .logo:hover{text-decoration:none}
header.top a.nav{color:#fff;font-size:15px;font-weight:600;letter-spacing:-.2px;padding:7px 13px;white-space:nowrap;border-radius:var(--r-pill);transition:background .12s,color .12s}
header.top a.nav:hover,header.top a.nav:focus-visible{background:#fff;color:#111;text-decoration:none}
header.top a.nav.on{background:#ffd60a;color:#111}
header.top a.nav.on:hover{background:#fff;color:#111}
#examSel,#profSel{flex:none;width:auto;max-width:200px;height:28px;margin-left:6px;padding:0 24px 0 10px;border-radius:var(--r-pill);border:0;background-color:#ffffff1f;color:#fff;font-size:12px;letter-spacing:-.12px;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,#fff 50%),linear-gradient(135deg,#fff 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 9px) 50%;background-size:5px 5px;background-repeat:no-repeat}
#examSel option,#profSel option{color:#000}
#themeBtn{flex:none;width:32px;height:32px;margin-left:4px;padding:0;border-radius:50%;background:#ffffff1f;color:#fff;font-size:15px;line-height:1;border:0;cursor:pointer;display:grid;place-items:center}
#themeBtn:active{transform:scale(.95)}

/* 타일 섹션: 색 전환이 곧 구분선 */
.tile{padding:64px 20px;background:var(--bg)}
.tile.alt{background:var(--bg-alt)}
.tile>.in{max-width:980px;margin:0 auto}
.wrap h1{font-size:clamp(28px,5vw,40px);line-height:1.1;margin:32px 0 12px}
.hero{text-align:center;padding:72px 20px 56px}
.hero .star{font-size:56px;display:inline-block;animation:tw 3s ease-in-out infinite}
@keyframes tw{50%{transform:scale(1.1) rotate(8deg)}}
h1{font-size:clamp(30px,6vw,56px);font-weight:600;line-height:1.07;letter-spacing:-.28px;margin:.25em 0 .2em}
h2{font-size:24px;font-weight:600;line-height:1.2;letter-spacing:-.2px;margin:1.6em 0 .6em}
.lead{font-size:clamp(19px,3vw,28px);font-weight:400;line-height:1.2;color:var(--text);max-width:640px;margin:.4em auto 1.2em}
.cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* 버튼 */
button,.btn{font:inherit;font-size:17px;letter-spacing:-.374px;cursor:pointer;border:0;border-radius:var(--r-pill);padding:11px 22px;background:var(--primary);color:var(--on-primary);font-weight:400;display:inline-block;text-decoration:none;transition:transform .1s}
button:hover,.btn:hover{text-decoration:none;filter:brightness(1.06)}
button:active,.btn:active{transform:scale(.95)}
button:focus-visible,.btn:focus-visible,.chip:focus-visible{outline:2px solid var(--primary-focus);outline-offset:2px}
button.ghost,.btn.ghost{background:transparent;color:var(--link);box-shadow:inset 0 0 0 1px var(--link)}

/* 카드 */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:24px}
.tile.alt .card{background:var(--card-alt)}
html:not([data-theme="dark"]) .tile.alt .card{background:#fff}
a.card{display:block;color:var(--text);transition:transform .15s}
a.card:hover{transform:translateY(-3px);text-decoration:none}
.card .ic{font-size:30px}
.card b{display:block;margin:.4em 0 .1em;font-size:21px;font-weight:600;letter-spacing:.231px;line-height:1.19}
.card span{color:var(--sub);font-size:14px;letter-spacing:-.224px;line-height:1.43}
.note{font-size:14px;letter-spacing:-.224px;color:var(--sub);border-left:3px solid var(--primary);padding:8px 14px;background:var(--bg-alt);border-radius:0 var(--r-sm) var(--r-sm) 0;margin:16px 0}
html[data-theme="dark"] .note{background:var(--card)}
.meta{font-size:14px;letter-spacing:-.224px;color:var(--sub)}

/* 폼 */
label{display:block;font-size:14px;letter-spacing:-.224px;color:var(--sub);margin:0 0 6px}
input,select{font:inherit;font-size:17px;letter-spacing:-.374px;color:var(--text);width:100%;padding:11px 16px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--field);appearance:none;-webkit-appearance:none}
input[type=text],input:not([type]),input[list]{border-radius:var(--r-pill)}
select{background-image:linear-gradient(45deg,transparent 50%,var(--sub) 50%),linear-gradient(135deg,var(--sub) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:34px}
input::placeholder{color:var(--sub);opacity:.8}
input:focus,select:focus{outline:2px solid var(--primary-focus);outline-offset:0;border-color:transparent}
.row{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:12px 0}

/* 선택 칩: 알약 형태, 선택 시 2px 포커스 블루 테두리 */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 14px}
.chip{padding:8px 16px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--chip);color:var(--text);font-size:14px;letter-spacing:-.224px;cursor:pointer;user-select:none}
.chip.on{border:2px solid var(--primary-focus);padding:7px 15px;font-weight:600}

/* 표·요약 */
table{width:100%;border-collapse:collapse;font-size:14px;letter-spacing:-.224px}
th,td{padding:9px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{color:var(--sub);font-weight:400;width:46%}
.sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-top:12px}
.sum div{background:var(--sum);border-radius:var(--r-lg);padding:16px 10px;text-align:center}
.sum b{display:block;font-size:28px;font-weight:600;letter-spacing:.196px;line-height:1.14}
.sum span{font-size:12px;letter-spacing:-.12px;color:var(--sub)}

/* 결과 항목 */
.item{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px 20px;margin:12px 0}
.item .hd{display:flex;gap:12px;align-items:center;justify-content:space-between;cursor:pointer}
.item .nm{font-weight:600;font-size:17px}
.item .meta{font-size:13px}
.pct{font-weight:600;font-size:21px;letter-spacing:.231px;min-width:58px;text-align:right}
.bar{height:8px;border-radius:99px;background:var(--track);overflow:hidden;margin-top:12px}
.bar i{display:block;height:100%;border-radius:99px}
.detail{display:none;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.item.open .detail{display:block}
.tier{display:flex;align-items:center;gap:10px;margin:32px 0 6px;flex-wrap:wrap}
.tier h2{margin:0}
.dot{width:12px;height:12px;border-radius:50%}
.empty{padding:40px 20px;text-align:center;color:var(--sub)}
.empty a{color:var(--link)}
footer{color:var(--sub);font-size:12px;letter-spacing:-.12px;text-align:center;padding:32px 20px;background:var(--bg-alt)}
html[data-theme="dark"] footer{background:var(--bg)}
svg text{fill:var(--sub)}
@media(max-width:640px){.tile{padding:48px 16px}.wrap{padding:0 16px 48px}}
@media(prefers-reduced-motion:reduce){.hero .star{animation:none}*{transition:none!important}}

.bdg{display:inline-block;font-size:11px;font-weight:600;line-height:1.5;padding:0 7px;border-radius:999px;margin-left:6px;border:1px solid currentColor;vertical-align:middle;white-space:nowrap}
.bdg.env{color:var(--ok)}
.bdg.est{color:var(--warn)}
.bdg.warn{color:var(--bad)}
.warnbox{border-left:3px solid var(--bad);background:var(--bg-alt);color:var(--text);border-radius:0 var(--r-sm) var(--r-sm) 0;padding:8px 14px;margin:0 0 10px;font-size:14px;letter-spacing:-.224px}
html[data-theme="dark"] .warnbox{background:var(--card)}
.legend summary{cursor:pointer}
.legend ul{margin:8px 0;padding-left:20px}
.legend p{margin:8px 0}
.official a,.detail a{color:var(--link)}
@media print{.top,footer,.chips,.ghost,.noprint,#examSel,#themeBtn{display:none!important}.item .detail{display:block!important}body{background:#fff;color:#000}}

/* 저장(☆) 버튼과 알림 */
.star{background:transparent;color:var(--sub);font-size:22px;line-height:1;padding:2px 6px;border-radius:8px;box-shadow:none}
.star:hover{filter:none;color:#f5b301}
.star.on{color:#f5b301}
.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,16px);max-width:90vw;background:#000d;color:#fff;padding:10px 18px;border-radius:999px;font-size:14px;letter-spacing:-.2px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:60;text-align:center}
.toast.show{opacity:1;transform:translate(-50%,0)}
#profSel{max-width:150px}

/* 펼친 학과 인쇄(학과당 A4 1장) */
#psheets{position:fixed;left:-99999px;top:0;width:210mm;pointer-events:none}
.psheet,.psheet *,.a4,.a4 *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
.psheet{width:210mm;height:297mm;box-sizing:border-box;padding:12mm 13mm 0;overflow:hidden;position:relative;background:#fff;color:#111;
  --text:#111;--sub:#555;--line:#c9ccd3;--bg-alt:#f2f4f8;--card:#fff;--link:#0645ad;--ok:#1a7f37;--mid:#5c8a14;--warn:#b86e00;--bad:#c4001a;--track:#e3e6ec;
  font-size:14px;line-height:1.45;letter-spacing:0}
.psheet *{letter-spacing:0}
.psheet .pfit{transform-origin:top left}
.psheet .pband{position:absolute;left:0;right:0;top:0;height:5mm}
.psheet .ptier{display:inline-block;color:#fff;font-size:15px;font-weight:700;padding:2px 14px;border-radius:999px;margin-left:8px;vertical-align:middle}
.psheet .plg{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:3px;font-size:10.5px;color:#222}
.psheet .plg i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px;vertical-align:-1px}
.psheet th{background:#eef3fb;color:#1f3a63}
.psheet .ph{border-bottom:2px solid #2b4c7e}
.psheet .ph{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:#555;border-bottom:1px solid #999;padding-bottom:4px;margin-bottom:10px}
.psheet .pt{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.psheet .pn{font-size:22px;font-weight:700;line-height:1.25}
.psheet .pn span{font-weight:400}
.psheet .pp{text-align:right;white-space:nowrap}
.psheet .pp b{font-size:34px;line-height:1}
.psheet .pp span{margin-left:6px;font-size:16px;color:#333}
.psheet .pf{position:absolute;left:13mm;right:13mm;bottom:9mm;font-size:10.5px;color:#444;border-top:1px solid #aaa;padding-top:4px;line-height:1.4}
.psheet table{font-size:13px}
.psheet th{width:40%;color:#444}
.psheet a{color:#0645ad}
@media print{
  @page{size:A4;margin:0}
  html,body{background:#fff!important}
  body.psheet-mode>*:not(#psheets){display:none!important}
  body.psheet-mode #psheets{position:static;left:auto;width:auto}
  body.psheet-mode .psheet{break-after:page;page-break-after:always}
  body.psheet-mode .psheet:last-child{break-after:auto;page-break-after:auto}
}

/* 지원선 칩(최초합·추가합·소신)과 단계 색 점 */
.cut{display:inline-block;padding:0 10px;border-radius:999px;border:1px solid currentColor;font-size:.92em;font-weight:600;margin:0 4px 2px 0;white-space:nowrap}
.cut.c0{color:var(--ok)}
.cut.c1{color:var(--mid)}
.cut.c2{color:var(--warn)}
.dot.dt{display:inline-block;width:10px;height:10px;margin-right:7px;vertical-align:0}

/* 고등학교 검색 목록 */
.suggwrap{position:relative}
.sugg{position:absolute;left:0;right:0;top:100%;z-index:30;margin-top:4px;background:var(--card,#fff);border:1px solid var(--line);border-radius:var(--r-md,12px);box-shadow:0 8px 24px rgba(0,0,0,.18);max-height:300px;overflow:auto}
.sugg .sg{padding:9px 12px;cursor:pointer;display:flex;flex-direction:column;gap:2px;border-bottom:1px solid var(--line)}
.sugg .sg span{font-size:12px;color:var(--meta,#667)}
.sugg .sg:hover,.sugg .sg.on{background:var(--sum,#eef3ff)}
.sugg .sgm{padding:9px 12px;font-size:12px;color:var(--meta,#667)}
.sugg .sg b{font-size:15px;font-weight:600}

/* 인쇄물 왼쪽 위 학원 표시(학과별 A4 인쇄) */
.psheet .ph{align-items:center}
.psheet .ph .pinfo{margin-left:auto}
.psheet .pbrand{display:flex;align-items:center;gap:8px;flex:none;margin-left:14px}
.psheet .pbrand img{max-height:11mm;max-width:42mm;object-fit:contain;display:block}
.psheet .pbrand b{font-size:14px;color:#1f3a63;white-space:nowrap}
/* 학원 입력 카드 */
.acad{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.acad .thumb{height:46px;min-width:46px;max-width:160px;border:1px dashed var(--line);border-radius:10px;display:flex;align-items:center;justify-content:center;background:#fff;overflow:hidden}
.acad .thumb img{max-height:42px;max-width:150px;object-fit:contain}

/* 내 위치 막대 그래프 */
.pbar{margin:6px 0 18px}
.pbt{font-size:13px;font-weight:700;color:var(--sub);margin-bottom:34px}
.pbtrack{position:relative;height:38px;background:#8882;border-radius:4px;border:1px solid var(--line);-webkit-print-color-adjust:exact;print-color-adjust:exact}
.pbtrack .ps{position:absolute;top:0;bottom:0;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden}
.pbtrack .ps.ok{background:#2e9e5f38;color:#1f7a45}.pbtrack .ps.mid{background:#8ab83a38;color:#5f8a14}.pbtrack .ps.warn{background:#e8932a38;color:#c06a00}
html[data-theme="dark"] .pbtrack .ps.ok{color:#5fd68f}html[data-theme="dark"] .pbtrack .ps.mid{color:#b6e062}html[data-theme="dark"] .pbtrack .ps.warn{color:#ffb454}
.pbtrack .pme{position:absolute;top:-8px;bottom:-8px;width:3px;margin-left:-1.5px;background:#0a66d6;z-index:2}
.pbtrack .pmb{position:absolute;top:-34px;transform:translateX(-50%);z-index:3;background:#0a66d6;color:#fff;font-size:15px;padding:3px 10px;border-radius:8px;white-space:nowrap}
.pbtrack .pmb::after{content:"";position:absolute;left:50%;top:100%;margin-left:-6px;border:6px solid transparent;border-top-color:#0a66d6}
.pbtrack .pmb.bad{background:#c0392b}.pbtrack .pmb.bad::after{border-top-color:#c0392b}
.pbl{position:relative;height:42px;margin-top:6px}
.pbl span{position:absolute;transform:translateX(-50%);text-align:center;line-height:1.2}
.pbl b{display:block;font-size:14px}.pbl em{font-style:normal;font-size:13px;color:var(--sub);font-weight:600}

/* 입시 정보 제공(동의) 카드 */
#provide b{display:inline;font-size:inherit;font-weight:700;letter-spacing:normal;line-height:inherit;color:inherit}
#provide .consent li{margin:2px 0}
#provide input[type=checkbox]{-webkit-appearance:auto;appearance:auto;width:18px;height:18px;min-width:18px;padding:0;margin:2px 0 0;border-radius:4px;flex:none}
#provide .meta{font-size:13px}
