/* 4bbun.com — 디자인 시스템 v2 (2026-10-19) */
:root{
  --bg:#f5f6fb;--surface:#fff;--surface-2:#f8f9fe;--text:#0f172a;--text-2:#334155;--muted:#64748b;--line:#e2e8f0;--line-2:#eef1f6;
  --primary:#4f46e5;--primary-600:#4338ca;--primary-700:#3730a3;--primary-soft:#eef2ff;--primary-ring:rgba(79,70,229,.25);
  --violet:#7c3aed;--violet-soft:#f3e8ff;--grad:linear-gradient(135deg,#4f46e5 0%,#6d5ce7 45%,#8b5cf6 100%);--grad-deep:linear-gradient(135deg,#1e1b4b 0%,#312e81 40%,#4c1d95 100%);
  --amber:#d97706;--amber-500:#f59e0b;--amber-soft:#fef3c7;--green:#059669;--green-500:#10b981;--green-soft:#d1fae5;--rose:#dc2626;--rose-500:#ef4444;--rose-soft:#fee2e2;
  --navy:#0f172a;
  --radius:16px;--radius-sm:10px;
  --shadow-sm:0 1px 2px rgba(15,23,42,.05),0 1px 3px rgba(15,23,42,.06);
  --shadow-md:0 4px 14px rgba(15,23,42,.08),0 1px 3px rgba(15,23,42,.05);
  --shadow-lg:0 18px 40px rgba(30,27,75,.16),0 4px 10px rgba(15,23,42,.06);
  --font:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic",sans-serif;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.6;word-break:keep-all;-webkit-font-smoothing:antialiased}
a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}
img{max-width:100%;height:auto}
h1,h2,h3,h4{line-height:1.3;margin:0 0 .5rem;letter-spacing:-.01em}
h1{font-size:1.75rem;font-weight:800}h2{font-size:1.3rem;font-weight:700}h3{font-size:1.05rem;font-weight:700}
p{margin:0 0 .75rem}
.wrap{max-width:1040px;margin:0 auto;padding:0 20px}
.main{padding:0 0 56px;min-height:60vh}
.muted{color:var(--muted)}.small{font-size:.875rem}.center{text-align:center}.r{text-align:right}.nowrap{white-space:nowrap}.grow{flex:1;min-width:0}
.sep{color:var(--line);margin:0 .4rem}
code,.code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em}
pre.code{background:#0f172a;color:#e2e8f0;padding:14px;border-radius:var(--radius-sm);overflow:auto;font-size:.8rem;line-height:1.5}
kbd{display:inline-block;padding:1px 7px;border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;background:#fff;font:600 .78rem/1.5 var(--font);color:var(--text-2)}
.ico{width:1.1em;height:1.1em;vertical-align:-.18em;flex-shrink:0}
.link{font-weight:600}
.text-rose{color:var(--rose)}
.clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.br-m{display:none}.br-d{display:inline}
@media (max-width:640px){.br-m{display:inline}.br-d{display:none}}

/* dev bar */
.dev-bar{background:linear-gradient(90deg,#d97706,#f59e0b);color:#fff;text-align:center;font-size:.78rem;font-weight:700;padding:5px 10px;letter-spacing:.02em}

/* header */
.site-header{background:rgba(255,255,255,.86);backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}
.header-inner{display:flex;align-items:center;gap:18px;height:62px}
.brand{display:flex;align-items:center;gap:9px;font-weight:800;color:var(--text);font-size:1.12rem;letter-spacing:-.01em}
.brand:hover{text-decoration:none}
.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:var(--grad);color:#fff;font-weight:900;font-size:1.05rem;box-shadow:0 4px 10px rgba(79,70,229,.35)}
.brand-mark.lg{width:52px;height:52px;border-radius:14px;font-size:1.5rem}
.brand-logo{width:32px;height:32px;border-radius:9px;display:block;flex:none}
.brand-dot{color:var(--muted);font-weight:600}
.nav{display:flex;gap:2px;flex:1}
.nav a{position:relative;padding:8px 12px;border-radius:10px;color:var(--text-2);font-weight:600;font-size:.95rem;display:inline-flex;align-items:center;gap:6px}
.nav a:hover{background:var(--surface-2);color:var(--text);text-decoration:none}
.nav a.active{color:var(--primary-600);background:var(--primary-soft)}
.nav-admin{color:var(--amber)!important}
.auth-area{display:flex;align-items:center;gap:8px}
.who{display:inline-flex;align-items:center;gap:8px;font-size:.9rem;font-weight:600;color:var(--text-2)}
.avatar{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--grad);color:#fff;font-size:.8rem;font-weight:800}
.avatar.lg{width:40px;height:40px;font-size:1.05rem;vertical-align:middle;margin-right:4px}
.inline{display:inline}
.nav{overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.nav::-webkit-scrollbar{display:none}
.nav a{white-space:nowrap}
@media (max-width:720px){.nav a{padding:6px 8px;font-size:.88rem}.who span+*{display:none}.brand-name{display:none}.header-inner{gap:8px;height:56px}.auth-area .btn-sm{padding:6px 10px;font-size:.82rem}.avatar{width:26px;height:26px}}
@media (max-width:560px){.nav a.m-hide{display:none}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 18px;border-radius:11px;border:1px solid transparent;background:#eef1f6;color:var(--text);font-weight:700;font-size:.95rem;cursor:pointer;line-height:1.2;white-space:nowrap;text-decoration:none;transition:transform .12s ease,box-shadow .12s ease,background .12s ease,border-color .12s ease}
.btn:hover{text-decoration:none;transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn-primary{background:var(--grad);color:#fff;box-shadow:0 6px 16px rgba(79,70,229,.28)}
.btn-primary:hover{box-shadow:0 10px 22px rgba(79,70,229,.34)}
.btn-ghost{background:#fff;border-color:var(--line);color:var(--text-2)}.btn-ghost:hover{border-color:#cbd5e1;background:var(--surface-2)}
.btn-light{background:#fff;color:var(--primary-700);box-shadow:0 8px 24px rgba(0,0,0,.18)}
.btn-outline-light{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.45)}.btn-outline-light:hover{background:rgba(255,255,255,.2)}
.btn-amber{background:linear-gradient(135deg,#f59e0b,#f97316);color:#fff;box-shadow:0 6px 16px rgba(245,158,11,.3)}
.btn-danger{background:var(--rose-soft);color:var(--rose);border-color:#fecaca}
.btn-sm{padding:7px 13px;font-size:.875rem;border-radius:9px}.btn-xs{padding:4px 10px;font-size:.8rem;border-radius:8px}.btn-lg{padding:13px 24px;font-size:1.02rem;border-radius:13px}
.btn-block{width:100%}
.btn.is-busy,.btn:disabled{opacity:.65;pointer-events:none;cursor:default}
.btn-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.btn-row.center{justify-content:center}
.link-btn{background:none;border:0;color:var(--primary);cursor:pointer;padding:0;font:inherit;font-size:.85rem}

/* cards / sections */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px;box-shadow:var(--shadow-sm)}
.section{margin:30px 0}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.section-head p{margin:0}
.section-title{font-size:1.25rem;margin:0;position:relative;padding-left:14px}
.section-title::before{content:"";position:absolute;left:0;top:.2em;bottom:.2em;width:4px;border-radius:4px;background:var(--grad)}
.page-head{margin:26px 0 20px}.page-head.row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}
.crumbs{font-size:.85rem;color:var(--muted);margin-bottom:6px}.crumbs a{color:var(--muted)}
.crumbs.light,.crumbs.light a{color:rgba(255,255,255,.75)}
.lead{font-size:1.05rem;color:var(--muted)}
.grid{display:grid;gap:16px}
.exam-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.two-col{display:grid;gap:16px;grid-template-columns:1fr 1fr}
@media (max-width:760px){.two-col{grid-template-columns:1fr}}
.icon-badge{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:13px;background:var(--grad);color:#fff;font-size:1.25rem;box-shadow:0 6px 14px rgba(79,70,229,.25);flex-shrink:0}
.icon-badge.soft-indigo{background:var(--primary-soft);color:var(--primary);box-shadow:none}
.icon-badge.soft-violet{background:var(--violet-soft);color:var(--violet);box-shadow:none}
.icon-badge.soft-amber{background:var(--amber-soft);color:var(--amber);box-shadow:none}
.icon-badge.soft-green{background:var(--green-soft);color:var(--green);box-shadow:none}
.icon-badge.soft-rose{background:var(--rose-soft);color:var(--rose);box-shadow:none}
.pills{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.pills li{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);font-size:.82rem;font-weight:600;color:var(--text-2)}
.pills.light li{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.28);color:#fff}
.tag{display:inline-block;padding:2px 9px;border-radius:999px;background:#eef1f6;color:var(--text-2);font-size:.76rem;font-weight:700;vertical-align:middle;letter-spacing:.01em}
.tag-blue{background:var(--primary-soft);color:var(--primary-600)}.tag-green{background:var(--green-soft);color:var(--green)}.tag-amber{background:var(--amber-soft);color:var(--amber)}
.tag-stage{background:var(--primary-soft);color:var(--primary-600)}
.stage-2 .tag-stage{background:var(--violet-soft);color:var(--violet)}
.row-card{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;border-left:5px solid var(--primary)}
.row-card.stage-2{border-left-color:var(--violet)}
.pad{padding:12px 16px}
.empty{display:flex;align-items:center;gap:14px}.empty p{margin:0}

/* hero (home) */
.hero{position:relative;overflow:hidden;background:var(--grad-deep);color:#fff;padding:72px 0 56px;isolation:isolate}
.hero-bg{position:absolute;inset:0;z-index:-1;overflow:hidden}
.blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55}
.blob.b1{width:520px;height:520px;background:#6366f1;top:-200px;right:-120px}
.blob.b2{width:420px;height:420px;background:#a855f7;bottom:-220px;left:-100px}
.blob.b3{width:260px;height:260px;background:#22d3ee;top:40%;left:55%;opacity:.25}
.hero-inner{text-align:center;max-width:760px}
.eyebrow{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);font-size:.82rem;font-weight:700;letter-spacing:.02em;margin-bottom:18px}
.hero h1{font-size:2.6rem;font-weight:900;line-height:1.2;letter-spacing:-.02em;margin-bottom:14px}
.grad-text{background:linear-gradient(90deg,#c7d2fe,#fbcfe8 60%,#fde68a);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .lead{color:rgba(255,255,255,.82);font-size:1.08rem;margin-bottom:26px}
.hero-cta{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:30px}
.hero-stats{list-style:none;margin:0 auto;padding:0;display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.hero-stats li{display:flex;flex-direction:column;align-items:center;min-width:120px;padding:12px 18px;border-radius:14px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(6px)}
.hero-stats b{font-size:1.5rem;font-weight:800;letter-spacing:-.01em}
.hero-stats span{font-size:.8rem;color:rgba(255,255,255,.75)}
@media (max-width:640px){.hero{padding:48px 0 40px}.hero h1{font-size:1.9rem}.hero-stats li{min-width:96px;padding:10px 12px}}

/* exam cards */
.exam-card{display:flex;flex-direction:column;gap:10px;color:var(--text);position:relative;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.exam-card::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:var(--grad)}
.exam-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:#c7d2fe;text-decoration:none}
.exam-card.theme-1::before{background:linear-gradient(90deg,#f59e0b,#f97316)}.exam-card.theme-2::before{background:linear-gradient(90deg,#10b981,#06b6d4)}.exam-card.theme-3::before{background:linear-gradient(90deg,#ec4899,#8b5cf6)}
.exam-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:4px}
.exam-card h3{font-size:1.25rem;margin:4px 0 0}
.exam-card .btn{align-self:flex-start;margin-top:auto}
.features{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.feature{display:flex;flex-direction:column;gap:10px}
.feature h3{margin:4px 0 0}.feature p{margin:0;color:var(--muted);font-size:.95rem}

/* exam hero */
.exam-hero{background:var(--grad-deep);color:#fff;padding:40px 0 34px;position:relative;overflow:hidden}
.exam-hero::after{content:"";position:absolute;right:-120px;top:-140px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(167,139,250,.55),transparent 65%)}
.exam-hero .wrap{position:relative;z-index:1}
.exam-hero h1{font-size:2rem;margin-bottom:6px}
.exam-hero .lead{color:rgba(255,255,255,.8);margin-bottom:14px}
.exam-hero.compact{padding:30px 0 26px}
.exam-hero.compact h1{font-size:1.6rem}

/* quick start */
.quick-start{margin-top:-26px;position:relative;z-index:2}
.start-form{box-shadow:var(--shadow-lg);border-color:#dfe3f3}
.start-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.start-head h2{margin:0;font-size:1.15rem}.start-head p{margin:0}
.start-row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.start-form label{display:flex;flex-direction:column;font-size:.82rem;font-weight:700;color:var(--muted);gap:4px;min-width:150px;flex:1}
.start-form select{padding:11px 12px;border:1px solid #cbd5e1;border-radius:10px;font:inherit;font-size:.95rem;background:#fff;color:var(--text)}
.start-row .btn{flex:0 0 auto}

/* subject / unit */
.subject-list{display:flex;flex-direction:column;gap:12px}
.subject-card{padding:0;overflow:hidden;border-left:5px solid var(--primary)}
.subject-card.stage-2{border-left-color:var(--violet)}
.subject-card summary{list-style:none;display:flex;align-items:center;gap:12px;padding:16px 18px;cursor:pointer;flex-wrap:wrap}
.subject-card summary::-webkit-details-marker{display:none}
.subject-card summary::before{content:"";width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);transition:transform .15s;margin-right:4px}
.subject-card[open] summary::before{transform:rotate(45deg)}
.subject-name{font-weight:800;font-size:1.05rem;flex:1;min-width:160px}
.subject-meta{color:var(--muted);font-size:.86rem}
.subject-actions{display:flex;gap:6px}
.unit-list{list-style:none;margin:0;padding:4px 18px 14px;border-top:1px solid var(--line-2);background:var(--surface-2)}
.unit{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px dashed var(--line);font-size:.93rem}
.unit:last-child{border-bottom:0}
.unit.depth1{font-weight:700;margin-top:8px;color:var(--text)}
.unit.depth1 .unit-name::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--primary);margin-right:8px;vertical-align:middle}
.subject-card.stage-2 .unit.depth1 .unit-name::before{background:var(--violet)}
.unit.depth2{padding-left:24px;color:var(--text-2)}
.unit-name{flex:1}
.unit-count{color:var(--muted);font-size:.82rem;min-width:40px;text-align:right;font-variant-numeric:tabular-nums}
.round-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
.round-chip{display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px 8px;background:#fff;border:1px solid var(--line);border-radius:14px;color:var(--text);box-shadow:var(--shadow-sm);transition:transform .12s,box-shadow .12s,border-color .12s}
.round-chip:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:#c7d2fe;text-decoration:none}
.round-no{font-weight:800;font-size:1.05rem;color:var(--primary-700)}
.side-card{display:flex;flex-direction:column;gap:8px}
.side-card h3{margin:4px 0 0}
.side-card .inline-form{margin-top:4px}

/* flashes */
.flashes{margin-top:14px}
.flash{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:12px;margin-bottom:8px;font-size:.95rem;border:1px solid;font-weight:600}
.flash-success{background:var(--green-soft);border-color:#a7f3d0;color:#065f46}
.flash-error{background:var(--rose-soft);border-color:#fecaca;color:#991b1b}

/* forms */
.form label{display:block;margin-bottom:14px;font-weight:700;font-size:.9rem;color:var(--text-2)}
.form label .hint{font-weight:500;color:var(--muted);font-size:.8rem;margin-left:6px}
.form input[type=text],.form input[type=password],.form input[type=email],.form input[type=number],.form input[type=search],.form input[type=date],.form input[type=file],.form select,.form textarea,
.filter-bar input,.filter-bar select,.inline-form input,.inline-form select,.struct-row input,.struct-row select,.table input,.table select{
  width:100%;padding:11px 13px;border:1px solid #cbd5e1;border-radius:10px;font:inherit;font-size:.95rem;background:#fff;color:var(--text);margin-top:5px;transition:border-color .12s,box-shadow .12s}
.form textarea{min-height:84px;resize:vertical;line-height:1.5}
.form input:focus,.form select:focus,.form textarea:focus,.filter-bar input:focus,.filter-bar select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring)}
.form .check,.check{display:inline-flex;align-items:center;gap:6px;font-weight:600}
.form .check input,.check input{width:auto;margin:0}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 16px}
.form-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.form-actions.sticky{position:sticky;bottom:0;background:rgba(245,246,251,.96);padding:12px 0;border-top:1px solid var(--line);margin-top:12px;z-index:5}
.form-wide{max-width:760px}
.auth-box{max-width:440px;margin:40px auto;padding:30px 30px 22px}
.auth-head{text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:18px}
.auth-head h1{margin:4px 0 0}
.dev-login{margin-bottom:16px;padding-bottom:16px;border-bottom:1px dashed var(--line)}
.inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.inline-form input,.inline-form select,.filter-bar input,.filter-bar select{width:auto;margin:0}
.filter-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px;padding:12px 16px}
.filter-bar .spacer{flex:1}
.w-xs{width:80px!important}.w-sm{width:120px!important}.w-md{width:180px!important}.w-lg{width:260px!important}

/* ===== 문제풀이 v3 (2026-10-19) ===== */
/* 상단 진행 바 */
.study-bar{background:var(--grad-deep);color:#fff;position:sticky;top:62px;z-index:20;box-shadow:0 8px 20px rgba(30,27,75,.18)}
.study-bar .wrap{display:flex;align-items:center;gap:14px;min-height:60px;padding-top:9px;padding-bottom:9px}
.sb-mode{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);font-size:.8rem;font-weight:700;white-space:nowrap;flex-shrink:0}
.sb-title{display:flex;flex-direction:column;min-width:0;line-height:1.25;flex-shrink:0;max-width:260px}
.sb-title b{font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-title span{font-size:.75rem;color:rgba(255,255,255,.72);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-track{flex:1;display:flex;gap:3px;align-items:center;min-width:80px}
.sb-track i{flex:1;height:7px;border-radius:4px;background:rgba(255,255,255,.22);min-width:2px;transition:background .2s}
.sb-track i.ok{background:#34d399}.sb-track i.no{background:#fb7185}.sb-track i.cur{background:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.4)}
.sb-bar{flex:1;height:7px;border-radius:4px;background:rgba(255,255,255,.22);overflow:hidden;min-width:80px}
.sb-bar b{display:block;height:100%;background:#fff;border-radius:4px}
.sb-right{display:flex;align-items:center;gap:8px;margin-left:auto;flex-shrink:0}
.sb-pos{font-weight:800;font-size:1.1rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.sb-pos span{font-weight:600;font-size:.85rem;color:rgba(255,255,255,.7)}
.sb-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:.8rem;font-weight:800;background:rgba(255,255,255,.14);font-variant-numeric:tabular-nums}
.sb-chip.ok{color:#a7f3d0}.sb-chip.no{color:#fecdd3}
.sb-timer{display:inline-flex;align-items:center;gap:5px;font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:700;color:rgba(255,255,255,.92);padding:3px 10px;border-radius:999px;background:rgba(0,0,0,.18)}
.sb-btn{display:none;align-items:center;gap:5px;padding:6px 10px;border-radius:9px;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.12);color:#fff;font:700 .82rem var(--font);cursor:pointer}
@media (max-width:860px){.sb-track,.sb-bar{display:none}.sb-title{max-width:160px}.sb-btn{display:inline-flex}}
@media (max-width:720px){.study-bar{top:56px}.study-bar .wrap{gap:8px;min-height:52px;padding-top:7px;padding-bottom:7px}.sb-mode{display:none}.sb-title b{display:none}.sb-title span{font-size:.92rem;color:#fff;font-weight:700}.sb-timer{display:none}}

/* 본문 2단 */
.study-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start;margin:22px 0 10px}
.study-main,.result-main{min-width:0}
.q-stem,.choice .body,.choice-expl,.explain-body,.verdict span,.passage .rich{overflow-wrap:anywhere}
.study-aside{position:sticky;top:136px;max-height:calc(100vh - 150px);overflow:auto;scrollbar-width:thin}
.aside-panel{display:flex;flex-direction:column;gap:12px}
.aside-card{padding:16px 18px}
.aside-head{display:none}
.aside-title{display:flex;align-items:center;gap:6px;margin:0 0 10px;font-size:.92rem;color:var(--text-2)}
.aside-stat{display:flex;align-items:center;gap:14px}
.mini-ring{--pct:0;width:66px;height:66px;border-radius:50%;background:conic-gradient(var(--green-500) calc(var(--pct) * 1%),#e5e7f2 0);display:grid;place-items:center;position:relative;flex-shrink:0}
.mini-ring::before{content:"";position:absolute;inset:7px;border-radius:50%;background:#fff}
.mini-ring b{position:relative;font-size:.95rem;font-weight:900;color:var(--text)}
.aside-stat .nums{display:flex;flex-direction:column;gap:1px;font-size:.84rem;color:var(--muted)}
.aside-stat .nums b{font-size:1.3rem;color:var(--text);font-weight:800;line-height:1.15;letter-spacing:-.01em}
.qmap{display:grid;grid-template-columns:repeat(auto-fill,minmax(36px,1fr));gap:6px}
.qmap a{display:flex;align-items:center;justify-content:center;height:36px;border-radius:9px;background:var(--surface-2);border:1px solid var(--line);color:var(--text-2);font-weight:700;font-size:.82rem;font-variant-numeric:tabular-nums;transition:transform .1s,box-shadow .1s}
.qmap a:hover{transform:translateY(-1px);text-decoration:none;border-color:#a5b4fc;box-shadow:var(--shadow-sm)}
.qmap a.ok{background:var(--green-soft);border-color:#a7f3d0;color:var(--green)}
.qmap a.no{background:var(--rose-soft);border-color:#fecaca;color:var(--rose)}
.qmap a.cur{box-shadow:0 0 0 2px var(--primary);border-color:var(--primary);color:var(--primary-700);background:#fff;font-weight:900}
.qmap-legend{display:flex;gap:12px;font-size:.75rem;color:var(--muted);margin:10px 0 0}
.qmap-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:-1px;background:var(--surface-2);border:1px solid var(--line)}
.qmap-legend i.ok{background:#6ee7b7;border-color:#6ee7b7}.qmap-legend i.no{background:#fca5a5;border-color:#fca5a5}
.qmap-legend+.btn{margin-top:12px}
.aside-tools{display:flex;flex-direction:column;gap:8px}
.aside-tools .keys{margin:4px 0 0;line-height:2}
@media (max-width:860px){
  .study-layout{grid-template-columns:1fr;margin-top:16px}
  .study-aside{display:none;position:fixed;inset:0;z-index:50;background:rgba(15,23,42,.5);padding:0;max-height:none;overflow:auto;backdrop-filter:blur(2px)}
  .study-aside.open{display:block}
  .aside-panel{background:var(--bg);min-height:100%;width:min(100%,420px);margin-left:auto;padding:14px 16px 24px;box-shadow:-10px 0 30px rgba(0,0,0,.2);animation:slide-in .22s ease}
  .aside-head{display:flex;align-items:center;justify-content:space-between;font-weight:800;padding:4px 2px 6px}
  .aside-head button{background:#fff;border:1px solid var(--line);border-radius:9px;padding:6px 10px;font:700 .85rem var(--font);cursor:pointer}
  body.aside-open{overflow:hidden}
}
@keyframes slide-in{from{transform:translateX(30px);opacity:.4}to{transform:none;opacity:1}}

/* 문제 카드 */
.q-card{padding:0;position:relative}
.q-card.q-correct{border-color:#6ee7b7;box-shadow:0 0 0 3px rgba(16,185,129,.12),var(--shadow-sm)}
.q-card.q-wrong{border-color:#fca5a5;box-shadow:0 0 0 3px rgba(239,68,68,.1),var(--shadow-sm)}
.q-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 20px;border-bottom:1px solid var(--line-2);background:linear-gradient(180deg,#fafbff,#fff);border-radius:var(--radius) var(--radius) 0 0}
.q-no{display:inline-grid;place-items:center;min-width:54px;height:40px;padding:0 12px;border-radius:12px;background:var(--grad);color:#fff;font-weight:900;font-size:1.05rem;letter-spacing:.01em;box-shadow:0 6px 14px rgba(79,70,229,.3);flex-shrink:0}
.q-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:.85rem;flex:1;min-width:0}
.tag-subject{background:var(--primary-soft);color:var(--primary-700)}.tag-subject.stage-2{background:var(--violet-soft);color:var(--violet)}
.tag-diff{background:var(--amber-soft);color:var(--amber);letter-spacing:-.05em}
.q-unit{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:.84rem}
.q-id{margin-left:auto;font-variant-numeric:tabular-nums}
.q-body{padding:20px 22px 20px}
.q-stem{font-size:1.16rem;font-weight:700;line-height:1.7;margin:0 0 18px;color:var(--text)}
.rich p{margin:0 0 .4rem}.rich table{border-collapse:collapse;max-width:100%}.rich td,.rich th{border:1px solid #d9dee5;padding:4px 8px}
.rich img{display:block;margin:6px 0;border-radius:8px}
.q-passages{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin:0 0 18px}
.passage{display:flex;gap:10px;padding:5px 0;align-items:flex-start}
.passage-mark{display:inline-grid;place-items:center;min-width:24px;height:24px;border-radius:7px;background:var(--primary-soft);color:var(--primary-700);font-weight:800;font-size:.8rem;flex-shrink:0;margin-top:2px}
.passage .rich{flex:1;min-width:0}

/* 답항 */
.choices{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.choice{display:flex;gap:14px;align-items:flex-start;padding:14px 16px 14px 14px;border:1.5px solid var(--line);border-radius:14px;background:#fff;position:relative;transition:border-color .12s,background .12s,box-shadow .12s,transform .12s,opacity .2s}
.choice .mark{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--surface-2);border:1.5px solid var(--line);font-weight:800;font-size:.92rem;color:var(--text-2);flex-shrink:0;transition:background .12s,color .12s,transform .12s}
.choice .body{flex:1;line-height:1.65;padding-top:3px;min-width:0}
.choice .check{display:none;width:26px;height:26px;border-radius:50%;background:var(--grad);color:#fff;align-items:center;justify-content:center;align-self:center;flex-shrink:0}
.choice.selectable{cursor:pointer}
.choice.selectable:hover{border-color:#a5b4fc;background:#fafbff;transform:translateX(3px);box-shadow:var(--shadow-sm)}
.choice.selectable input{position:absolute;opacity:0;pointer-events:none}
.choice.selectable:has(input:checked),.choice.selectable.is-checked{border-color:var(--primary);background:linear-gradient(90deg,#eef2ff,#f5f3ff);box-shadow:0 0 0 3px var(--primary-ring)}
.choice.selectable:has(input:checked) .mark,.choice.selectable.is-checked .mark{background:var(--grad);border-color:transparent;color:#fff;transform:scale(1.06)}
.choice.selectable:has(input:checked) .check,.choice.selectable.is-checked .check{display:inline-flex}
.choice.selectable:has(input:focus-visible){outline:2px solid var(--primary);outline-offset:2px}
.choices.ox{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.choices.ox li{min-width:0}
.choices.ox .choice{flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:26px 12px 22px;text-align:center;min-height:150px;height:100%}
.choices.ox .choice .mark{width:64px;height:64px;font-size:2rem;font-weight:900;border-width:2px}
.choices.ox .choice.o .mark{color:var(--primary);border-color:#c7d2fe;background:var(--primary-soft)}
.choices.ox .choice.x .mark{color:var(--rose);border-color:#fecaca;background:var(--rose-soft)}
.choices.ox .choice .body{padding:0;font-weight:800;font-size:1.05rem;flex:0 0 auto}
.choices.ox .choice .check{position:absolute;top:10px;right:10px;align-self:auto}
.choices.ox .choice.selectable:hover{transform:translateY(-2px)}
.choices.ox .choice.selectable:has(input:checked) .mark,.choices.ox .choice.selectable.is-checked .mark{background:var(--grad);color:#fff;border-color:transparent}
.choices.answered .choice:not(.is-correct):not(.is-selected){opacity:.72}
.choice.is-correct{border-color:#6ee7b7;background:linear-gradient(90deg,#ecfdf5,#f0fdf4)}
.choice.is-correct .mark{background:var(--green-500);border-color:var(--green-500);color:#fff}
.choice.is-wrong{border-color:#fca5a5;background:linear-gradient(90deg,#fef2f2,#fff1f2)}
.choice.is-wrong .mark{background:var(--rose-500);border-color:var(--rose-500);color:#fff}
.choice .badge{font-size:.74rem;font-weight:800;padding:3px 9px;border-radius:999px;align-self:center;white-space:nowrap;flex-shrink:0}
.badge.ok{background:var(--green-500);color:#fff}.badge.no{background:var(--rose-500);color:#fff}
.choices.ox .choice .badge{position:absolute;top:10px;left:10px;align-self:auto}
.choice-expl{margin-top:8px;font-size:.9rem;color:var(--text-2);border-top:1px dashed #cbd5e1;padding-top:6px}
@media (max-width:520px){.choices.ox{gap:10px}.choices.ox .choice{min-height:120px;padding:18px 8px 16px}.choices.ox .choice .mark{width:54px;height:54px;font-size:1.7rem}}

/* 채점 결과·해설 */
.verdict{display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:14px;margin:0 0 16px;animation:pop .35s ease}
.verdict .v-ico{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:#fff;flex-shrink:0}
.verdict .v-ico .ico{width:1.4em;height:1.4em}
.verdict.ok{background:linear-gradient(90deg,#ecfdf5,#d1fae5);border:1px solid #a7f3d0}.verdict.ok .v-ico{background:var(--green-500);box-shadow:0 6px 14px rgba(16,185,129,.35)}
.verdict.no{background:linear-gradient(90deg,#fef2f2,#fee2e2);border:1px solid #fecaca}.verdict.no .v-ico{background:var(--rose-500);box-shadow:0 6px 14px rgba(239,68,68,.3)}
.verdict .v-text{flex:1;min-width:0}
.verdict b{display:block;font-size:1.12rem;font-weight:900;line-height:1.3}.verdict.ok b{color:#065f46}.verdict.no b{color:#991b1b}
.verdict span{font-size:.88rem;color:var(--text-2)}
.verdict .btn{flex-shrink:0}
@media (max-width:640px){.verdict .btn{display:none}}
@keyframes pop{0%{transform:scale(.96) translateY(4px)}100%{transform:none}}
.explain{margin-top:18px;border:1px solid #fde68a;border-radius:14px;overflow:hidden;background:#fffbeb}
.explain-head{display:flex;align-items:center;gap:8px;padding:10px 16px;background:linear-gradient(90deg,#fef3c7,#fffbeb);color:#92400e;font-weight:800;font-size:.95rem}
.explain-body{padding:14px 16px 8px;color:var(--text-2);line-height:1.75}
.explain-short{margin:0 0 10px;padding:10px 12px;background:#fff;border:1px dashed #fcd34d;border-radius:10px;color:var(--text);font-weight:600}
.explain-foot{display:flex;gap:8px;flex-wrap:wrap;padding:6px 16px 14px}
.q-nav{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:20px}
.q-nav .btn-main{flex:1;min-width:180px;max-width:340px}
.keys{margin:12px 0 0;display:flex;gap:4px;align-items:center;flex-wrap:wrap;font-size:.82rem}
.q-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:16px;padding-top:12px;border-top:1px solid var(--line-2)}
.answer-form.has-choice .btn-main{box-shadow:0 10px 24px rgba(79,70,229,.38);transform:translateY(-1px)}
@media (max-width:760px){
  .q-body{padding:16px 16px 14px}.q-head{padding:12px 16px}.q-stem{font-size:1.08rem}
  .q-nav{position:sticky;bottom:0;z-index:6;background:rgba(255,255,255,.97);backdrop-filter:blur(6px);margin:14px -16px -14px;padding:10px 16px;border-top:1px solid var(--line)}
  .q-nav .btn-main{max-width:none;order:-1;flex-basis:100%}
  .q-nav .btn-ghost{flex:1}
}
/* 단일 문제(정답 가리기) */
.reveal-hidden .reveal-only,.reveal-hidden .is-correct{display:none}
.reveal-hidden .choice.is-correct{display:flex;border-color:var(--line);background:#fff}
.reveal-hidden .choice.is-correct .mark{background:var(--surface-2);border-color:var(--line);color:var(--text-2)}
.reveal-hidden.ox .choice.is-correct.o .mark{color:var(--primary);border-color:#c7d2fe;background:var(--primary-soft)}
.reveal-hidden.ox .choice.is-correct.x .mark{color:var(--rose);border-color:#fecaca;background:var(--rose-soft)}
.reveal-hidden .choice{opacity:1}
.q-reveal.revealed .reveal-only{display:block}
.q-reveal.revealed .choice .badge.reveal-only{display:inline-block}
.q-reveal .explain.reveal-only{display:none}.q-reveal.revealed .explain.reveal-only{display:block}

/* 결과 */
.result-hero{background:var(--grad-deep);color:#fff;padding:34px 0 30px;position:relative;overflow:hidden}
.result-hero::after{content:"";position:absolute;right:-140px;top:-160px;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle,rgba(167,139,250,.5),transparent 65%)}
.result-hero .wrap{position:relative;z-index:1;display:flex;align-items:center;gap:32px;flex-wrap:wrap}
.ring{--pct:0;width:150px;height:150px;border-radius:50%;background:conic-gradient(var(--primary) calc(var(--pct) * 1%),#e5e7f2 0);display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative}
.ring::before{content:"";position:absolute;inset:12px;border-radius:50%;background:#fff}
.ring-inner{position:relative;text-align:center;display:flex;flex-direction:column}
.ring-inner b{font-size:1.9rem;font-weight:900;color:var(--primary-700);line-height:1.1}
.ring-inner span{font-size:.85rem;color:var(--muted)}
.ring.lg{width:170px;height:170px;background:conic-gradient(#34d399 calc(var(--pct) * 1%),rgba(255,255,255,.18) 0);box-shadow:0 10px 30px rgba(0,0,0,.25)}
.ring.lg::before{background:#262356;inset:13px}
.ring.lg .ring-inner b{color:#fff;font-size:2.3rem}.ring.lg .ring-inner span{color:rgba(255,255,255,.75)}
.result-text{flex:1;min-width:260px}
.result-text h1{font-size:1.9rem;margin:0 0 4px}
.result-text .grade{font-size:1.1rem;color:rgba(255,255,255,.9);margin:0 0 12px;font-weight:600}
.result-chips{margin-bottom:16px}
.result-hero .actions{display:flex;gap:10px;flex-wrap:wrap}
.result-hero .note{margin:12px 0 0;font-size:.85rem;color:rgba(255,255,255,.72)}.result-hero .note a{color:#fff;text-decoration:underline}
.result-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start;margin:24px 0}
@media (max-width:860px){.result-grid{grid-template-columns:1fr}}
.result-side{display:flex;flex-direction:column;gap:12px}
.result-side .card{padding:16px 18px}
.result-list{list-style:none;margin:0;padding:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}
.result-row{display:flex;gap:12px;align-items:center;padding:11px 14px;border-bottom:1px solid var(--line-2);font-size:.95rem}
.result-row:last-child{border-bottom:0}
.result-row:hover{background:#fafbff}
.result-row .num{display:inline-grid;place-items:center;min-width:30px;height:30px;border-radius:9px;background:var(--surface-2);color:var(--text-2);font-weight:800;font-size:.82rem;font-variant-numeric:tabular-nums;flex-shrink:0}
.result-row.ok .num{background:var(--green-soft);color:var(--green)}.result-row.no .num{background:var(--rose-soft);color:var(--rose)}
.result-row .state{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-weight:800;flex-shrink:0}
.result-row.ok .state{background:var(--green-500);color:#fff}.result-row.no .state{background:var(--rose-500);color:#fff}.result-row.skip .state{background:#eef1f6;color:var(--muted)}
.result-row .stem{flex:1;color:var(--text);min-width:0}
.result-row .meta{display:none;white-space:nowrap}
.result-row .btn{flex-shrink:0}
@media (min-width:700px){.result-row .meta{display:inline}}
.sub-bars{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.sub-bar .lbl{display:flex;justify-content:space-between;gap:8px;font-size:.85rem;margin-bottom:4px}
.sub-bar .lbl b{font-variant-numeric:tabular-nums;white-space:nowrap}
.sub-bar .trk{height:8px;border-radius:999px;background:#e5e7f2;overflow:hidden}
.sub-bar .fill{height:100%;background:var(--grad);border-radius:999px}
.sub-bar.good .fill{background:linear-gradient(90deg,#10b981,#34d399)}.sub-bar.low .fill{background:linear-gradient(90deg,#f43f5e,#fb7185)}
.stat-tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.stat-tile{padding:12px 14px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line-2)}
.stat-tile .label{font-size:.76rem;color:var(--muted);font-weight:600}
.stat-tile b{display:block;font-size:1.25rem;font-weight:800;line-height:1.25}
@property --pct{syntax:"<number>";inherits:false;initial-value:0}
.ring,.mini-ring{animation:fill-ring 1s ease-out}
@keyframes fill-ring{from{--pct:0}}

/* 기출 회차 */
.round-subject-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.round-subject{display:flex;flex-direction:column;gap:6px;border-top:4px solid var(--primary);padding:18px 18px 16px}
.round-subject.stage-2{border-top-color:var(--violet)}
.round-subject.all{border-top-color:var(--amber-500)}
.round-subject h3{margin:0;font-size:1.05rem}
.round-subject p{margin:0 0 6px}
.round-subject .btn{align-self:flex-start;margin-top:auto}

/* lists / tables */
.list{list-style:none;margin:0;padding:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}
.list.plain{border:0;box-shadow:none;border-radius:0}
.list-item{display:flex;gap:14px;align-items:center;padding:13px 18px;border-bottom:1px solid var(--line-2)}
.list-item:last-child{border-bottom:0}
.list-item.is-cleared{opacity:.6}
.list.compact .list-item{padding:8px 12px;font-size:.92rem}
.list-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:var(--primary-soft);color:var(--primary);flex-shrink:0}
.list-icon.done{background:var(--green-soft);color:var(--green)}.list-icon.no{background:var(--rose-soft);color:var(--rose)}.list-icon.star{background:var(--amber-soft);color:var(--amber)}
.list-actions{display:flex;gap:6px;align-items:center;flex-shrink:0}
.table{width:100%;border-collapse:collapse;font-size:.93rem}
.table th,.table td{padding:10px 10px;border-bottom:1px solid var(--line-2);text-align:left;vertical-align:middle}
.table th{font-size:.78rem;color:var(--muted);font-weight:700;letter-spacing:.02em}
.table.compact th,.table.compact td{padding:7px 8px}
.table tr.depth2 td:first-child{padding-left:28px}
.table .add-row td{background:var(--surface-2)}
.pagination{display:flex;gap:4px;align-items:center;flex-wrap:wrap;margin-top:12px;font-size:.9rem}
.pagination a{padding:5px 10px;border:1px solid var(--line);border-radius:8px;color:var(--text)}
.pagination a.current{background:var(--primary);color:#fff;border-color:var(--primary)}
.pct.good{color:var(--green);font-weight:800}.pct.mid{color:var(--amber);font-weight:800}.pct.low{color:var(--rose);font-weight:800}

/* stats */
.stat-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.stat{display:flex;align-items:center;gap:14px}
.stat>div{display:flex;flex-direction:column;gap:1px}
.stat:not(:has(>div)){flex-direction:column;align-items:flex-start;gap:2px}
.stat .label{font-size:.8rem;color:var(--muted);font-weight:600}
.stat b{font-size:1.55rem;color:var(--text);letter-spacing:-.01em;line-height:1.2}
.bars{display:flex;gap:6px;align-items:flex-end;height:130px;padding:8px 0}
.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%}
.bar-outer{flex:1;width:100%;display:flex;align-items:flex-end}
.bar-inner{width:100%;background:#dde3f6;border-radius:6px 6px 0 0;display:flex;align-items:flex-end;min-height:3px}
.bar-ok{width:100%;background:var(--grad);border-radius:6px 6px 0 0}
.bar-label{font-size:.68rem;color:var(--muted)}

/* admin */
.admin-header{background:var(--navy);border-bottom-color:#1e293b}
.admin-header .brand,.admin-header .nav a,.admin-header .who{color:#e2e8f0}
.admin-header .nav a:hover,.admin-header .nav a.active{background:#1e293b;color:#fff}
.admin-header .btn-ghost{color:#e2e8f0;border-color:#334155;background:transparent}
.admin-main{max-width:1200px;padding:4px 20px 56px}
.struct-card{margin-bottom:12px}
.struct-row{margin-bottom:8px}
.struct-row input,.struct-row select{margin-top:0}
.units summary{cursor:pointer;color:var(--primary-600);font-weight:700;margin:8px 0}
.q-form-grid{display:grid;gap:14px}
.passage-row,.choice-row{display:flex;gap:8px;align-items:flex-start;margin-bottom:8px}
.passage-row textarea,.choice-row textarea{flex:1;margin-top:0}
.choice-row .grow{flex:1;display:flex;flex-direction:column;gap:4px}
.choice-row .grow input{margin-top:0}
.choice-row .radio{display:flex;align-items:center;gap:4px;padding-top:8px;font-weight:800;color:var(--primary-600)}
.choice-row .radio input{width:auto;margin:0}
.row-head{display:flex;justify-content:space-between;align-items:center;margin:6px 0}
.ox-pick{display:flex;gap:12px;margin-bottom:12px}
.radio.big{display:inline-flex;gap:8px;align-items:center;padding:10px 16px;border:1px solid var(--line);border-radius:10px;font-weight:700;cursor:pointer}
.radio.big input{width:auto;margin:0}
[data-block]{display:none}
.q-form[data-type="ox"] [data-block="ox"]{display:block}
.q-form:not([data-type="ox"]) [data-block="mc"]{display:block}
.report{margin-top:14px;padding:12px;background:var(--surface-2);border-radius:10px;font-size:.92rem}
.row-actions{display:flex;gap:8px}

/* error */
.error-page{text-align:center;padding:70px 0}
.error-code{font-size:5rem;font-weight:900;margin:0;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1}

/* footer */
.site-footer{background:var(--navy);color:#94a3b8;padding:34px 0;margin-top:20px}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.footer-brand{display:flex;align-items:center;gap:12px}
.footer-brand b{color:#fff;font-size:1.05rem}
.footer-brand p{margin:0;font-size:.85rem}
.footer-links{display:flex;gap:16px;font-size:.9rem}
.footer-links a{color:#cbd5e1;font-weight:600}

@media (max-width:720px){.nav{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent);padding-right:28px}}

/* admin review */
.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
@media (max-width:1000px){.review-grid{grid-template-columns:1fr}}
.review-pane{padding:16px 18px}
.review-pane.proposal{border-color:#c7d2fe;box-shadow:0 0 0 3px #eef2ff}
.review-head{display:flex;justify-content:space-between;gap:10px;align-items:center;padding-bottom:8px;border-bottom:1px solid var(--line-2);margin-bottom:10px;flex-wrap:wrap}
.review-title{font-size:1.05rem;margin:0 0 10px}
.review-note{padding:12px 16px;margin-bottom:14px}
.review-note pre{white-space:pre-wrap;font-family:inherit;margin:6px 0 0;font-size:.92rem;color:var(--text-2);line-height:1.6}
.review-reject{display:inline-flex;gap:6px;align-items:center}
.review-reject input{width:180px;padding:6px 8px}

/* ===== 핵심요약 v3 (2026-10-19) ===== */
.summary-chips{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.summary-chip{display:flex;align-items:center;gap:10px;padding:12px 14px;background:#fff;border:1px solid var(--line);border-left:5px solid var(--primary);border-radius:12px;color:var(--text);box-shadow:var(--shadow-sm);transition:transform .12s,box-shadow .12s}
.summary-chip.stage-2{border-left-color:var(--violet)}
.summary-chip:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);text-decoration:none}
.summary-chip .ico{color:var(--primary)}.summary-chip.stage-2 .ico{color:var(--violet)}
.summary-chip span{flex:1;font-weight:700}.summary-chip b{color:var(--muted);font-weight:600;font-size:.85rem}
.section-sub{margin:22px 0 8px;font-size:1.05rem}
.exam-hero .lead.small{font-size:.92rem;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.exam-hero .lead.small .ico{width:14px;height:14px}
.summary-hero .pills{margin:0 0 12px}
.basis-badge{display:inline-flex;align-items:center;gap:5px;background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0;border-radius:999px;padding:2px 10px;font-size:.78rem;font-weight:700;vertical-align:middle}
.basis-badge .ico{width:13px;height:13px}
.summary-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.btn.is-on{background:var(--green-soft);color:#065f46;border-color:#a7f3d0}

/* 목차: 과목 카드 */
.subj-strip{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin:22px 0 16px}
.subj-card{display:flex;flex-direction:column;gap:5px;padding:12px 14px 12px 18px;background:#fff;border:1px solid var(--line);border-radius:14px;color:var(--text);box-shadow:var(--shadow-sm);position:relative;overflow:hidden;transition:transform .12s,box-shadow .12s,border-color .12s}
.subj-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--primary)}
.subj-card.stage-2::before{background:var(--violet)}
.subj-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);text-decoration:none;border-color:#c7d2fe}
.subj-card.active{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring),var(--shadow-md)}
.subj-card.active.stage-2{border-color:var(--violet);box-shadow:0 0 0 3px rgba(124,58,237,.22),var(--shadow-md)}
.subj-top{display:flex;justify-content:space-between;align-items:center;gap:6px}
.subj-count{font-size:.8rem;font-weight:700;color:var(--muted)}
.subj-name{font-size:1rem;line-height:1.3}
.subj-meta{font-size:.76rem;color:var(--muted)}
.subj-bar{height:5px;border-radius:999px;background:#e5e7f2;overflow:hidden;margin-top:3px}
.subj-bar i{display:block;height:100%;background:var(--grad);border-radius:999px}
.subj-card.stage-2 .subj-bar i{background:linear-gradient(90deg,#7c3aed,#a855f7)}
@media (max-width:720px){.subj-strip{display:flex;overflow-x:auto;gap:8px;margin:16px -20px 12px;padding:2px 20px 8px;scrollbar-width:none}.subj-strip::-webkit-scrollbar{display:none}.subj-card{flex:0 0 190px}}

/* 목차: 과목 개요 */
.subj-overview{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 24px;align-items:center;margin-bottom:22px;border-left:5px solid var(--primary)}
.subj-overview.stage-2{border-left-color:var(--violet)}
.so-main{display:flex;align-items:center;gap:14px;min-width:0}
.so-main h2{margin:0 0 2px;font-size:1.25rem;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.so-main p{margin:0}
.so-read{display:flex;align-items:center;gap:12px;justify-self:end}
.so-read .nums{display:flex;flex-direction:column;font-size:.8rem;color:var(--muted)}
.so-read .nums b{font-size:1.1rem;color:var(--text)}
.so-actions{display:flex;gap:8px;flex-wrap:wrap;grid-column:1/-1}
.so-filter{grid-column:1/-1;display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.so-filter .ico{color:var(--muted)}
.so-filter input{flex:1;border:0;background:transparent;font:inherit;font-size:.95rem;padding:4px 0;outline:none;min-width:0}
.so-filter:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);background:#fff}
@media (max-width:720px){.subj-overview{grid-template-columns:1fr}.so-read{justify-self:start}}

/* 목차 카드 */
.toc-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.toc-card{padding:18px 18px 14px}
.toc-section{display:flex;align-items:center;gap:8px;color:var(--primary-700);margin:0 0 8px;font-size:1.02rem}
.toc-sec-name{flex:1}
.toc-no{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:8px;background:var(--grad);color:#fff;font-size:.8rem;font-weight:800;flex-shrink:0}
.toc-chapter{font-size:.86rem;color:var(--muted);margin:12px 0 4px;font-weight:700;letter-spacing:.01em}
.toc-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.toc-list li a{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:9px;color:var(--text);transition:background .1s}
.toc-list li a:hover{background:var(--surface-2);text-decoration:none}
.tl-no{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:7px;background:var(--surface-2);border:1px solid var(--line);font-size:.74rem;font-weight:700;color:var(--muted);flex-shrink:0}
.toc-list li.is-read .tl-no{background:var(--green-500);border-color:var(--green-500);color:#fff;font-size:0}
.toc-list li.is-read .tl-no::after{content:"✓";font-size:.78rem;font-weight:900}
.tl-title{flex:1;min-width:0;font-size:.95rem;line-height:1.35}
.toc-list li.is-read .tl-title{color:var(--text-2)}
.tl-flags{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}
.tl-law{font-size:.7rem;white-space:nowrap}
.toc-upd{color:#059669;font-size:.78rem;font-weight:800}
.toc-fc{display:inline-block;padding:1px 7px;border-radius:999px;background:#fef3c7;color:#92400e;font-size:.68rem;font-weight:800;white-space:nowrap}
.toc-list li.hide,.toc-chapter-block.hide,.toc-card.hide{display:none}
.toc-empty{padding:30px 0;text-align:center}
@media (max-width:720px){.tl-law{display:none}}

/* 본문: 읽기 바 */
.read-bar{background:var(--grad-deep);color:#fff;position:sticky;top:62px;z-index:20;box-shadow:0 8px 20px rgba(30,27,75,.18)}
.read-bar .wrap{display:flex;align-items:center;gap:12px;min-height:54px;padding-top:7px;padding-bottom:7px}
.rb-back{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);color:#fff;font-size:.8rem;font-weight:700;white-space:nowrap;flex-shrink:0}
.rb-back:hover{text-decoration:none;background:rgba(255,255,255,.22)}
.rb-title{display:flex;flex-direction:column;min-width:0;line-height:1.25;flex:1}
.rb-title b{font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rb-title span{font-size:.74rem;color:rgba(255,255,255,.7);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rb-progress{flex:0 0 160px;height:7px;border-radius:4px;background:rgba(255,255,255,.22);overflow:hidden}
.rb-progress i{display:block;height:100%;width:0;background:#fff;border-radius:4px;transition:width .15s linear}
.rb-pct{font-variant-numeric:tabular-nums;font-size:.82rem;font-weight:700;min-width:3em;text-align:right}
.rb-tools{display:flex;align-items:center;gap:6px;flex-shrink:0}
.rb-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:34px;height:32px;padding:0 9px;border-radius:9px;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.12);color:#fff;font:700 .82rem var(--font);cursor:pointer;text-decoration:none}
.rb-btn:hover{background:rgba(255,255,255,.22);text-decoration:none}
.rb-btn small{font-size:.7em;margin-left:1px}
.rb-menu{display:none}
@media (max-width:860px){.rb-menu{display:inline-flex}.rb-progress,.rb-pct{display:none}}
@media (max-width:720px){.read-bar{top:56px}.read-bar .wrap{gap:8px;min-height:50px}.rb-back span{display:none}.rb-title span{display:none}.rb-btn[data-nav]{display:none}}

/* 본문: 머리 */
.summary-head{margin:24px 0 18px}
.crumb-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px;font-size:.8rem}
.crumb-chips a,.crumb-chips span{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--text-2);font-weight:600}
.crumb-chips a:hover{border-color:#c7d2fe;color:var(--primary);text-decoration:none}
.summary-head h1{font-size:1.65rem;line-height:1.3;margin:0 0 10px}
.meta-chips{display:flex;flex-wrap:wrap;gap:6px}
.mchip{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:.8rem;font-weight:600;color:var(--text-2)}
.mchip .ico{width:13px;height:13px}
.mchip.stage-1{background:var(--primary-soft);border-color:#c7d2fe;color:var(--primary-700);font-weight:700}
.mchip.stage-2{background:var(--violet-soft);border-color:#ddd6fe;color:var(--violet);font-weight:700}
.mchip.ok{background:#ecfdf5;border-color:#a7f3d0;color:#065f46;font-weight:700}
.mchip.amber{background:#fef3c7;border-color:#fde68a;color:#92400e;font-weight:700}
a.mchip.amber:hover{text-decoration:none;background:#fde68a}
.mchip.muted{color:var(--muted)}

/* 본문: 레이아웃 */
.summary-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}
.summary-article{padding:28px 30px;min-width:0}
.summary-aside{position:sticky;top:136px;max-height:calc(100vh - 150px);overflow:auto;scrollbar-width:thin}
.summary-aside .aside-panel{display:flex;flex-direction:column;gap:12px}
.inpage-toc{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.inpage-toc a{display:block;padding:5px 8px 5px 10px;border-left:2px solid var(--line);font-size:.86rem;color:var(--text-2);border-radius:0 8px 8px 0;line-height:1.4}
.inpage-toc a:hover{background:var(--surface-2);text-decoration:none}
.inpage-toc li.current a{border-left-color:var(--primary);color:var(--primary-700);font-weight:700;background:var(--primary-soft)}
.summary-toc details{border-top:1px solid var(--line-2);padding:6px 0}
.summary-toc details:first-of-type{border-top:0}
.summary-toc summary{cursor:pointer;font-weight:700;font-size:.9rem;list-style:none;display:flex;justify-content:space-between;padding:3px 0}
.summary-toc summary::-webkit-details-marker{display:none}
.summary-toc summary span:first-child{flex:1}
.summary-toc .toc-ch{font-size:.78rem;font-weight:700;color:var(--muted);margin:8px 0 2px}
.summary-toc ol{margin:6px 0 0;padding-left:1.3em;font-size:.86rem;display:flex;flex-direction:column;gap:3px}
.summary-toc li a{color:var(--text-2)}
.summary-toc li.current a{color:var(--primary);font-weight:700}
.summary-toc li.is-read::marker{color:#10b981}
.summary-toc li.is-read a{color:var(--muted)}
.summary-toc li.current.is-read a{color:var(--primary)}
.summary-toc .toc-fc{font-size:.62rem;padding:0 5px}
@media (max-width:860px){
  .summary-layout{grid-template-columns:1fr}
  .summary-aside{display:none;position:fixed;inset:0;z-index:50;background:rgba(15,23,42,.5);padding:0;max-height:none;overflow:auto;backdrop-filter:blur(2px)}
  .summary-aside.open{display:block}
  .summary-aside .aside-panel{background:var(--bg);min-height:100%;width:min(100%,420px);margin-left:auto;padding:14px 16px 24px;box-shadow:-10px 0 30px rgba(0,0,0,.2);animation:slide-in .22s ease}
  .summary-aside .aside-head{display:flex;align-items:center;justify-content:space-between;font-weight:800;padding:4px 2px 6px}
  .summary-aside .aside-head button{background:#fff;border:1px solid var(--line);border-radius:9px;padding:6px 10px;font:700 .85rem var(--font);cursor:pointer}
  .summary-article{padding:20px 18px}
  .summary-head h1{font-size:1.4rem}
}

/* 본문: 타이포 */
.summary-body{font-size:1.02rem;line-height:1.8;color:var(--text-2);overflow-x:auto}
html[data-fs="lg"] .summary-body{font-size:1.12rem}
html[data-fs="xl"] .summary-body{font-size:1.24rem}
.summary-body p{margin:0 0 .5rem}
.summary-body strong{color:var(--text)}
.summary-body h3{margin:26px 0 10px;font-size:1.1rem;color:var(--primary-700);padding:6px 12px;border-left:4px solid var(--primary);background:linear-gradient(90deg,#eef2ff,transparent);border-radius:0 10px 10px 0;line-height:1.4;scroll-margin-top:140px}
.summary-body h3:first-child{margin-top:0}
.summary-body h4{margin:16px 0 6px;font-size:.98rem;color:var(--text)}
.summary-body ul,.summary-body ol{margin:4px 0 10px;padding-left:1.5em}
.summary-body li{margin:3px 0}
.summary-body img{display:block;margin:10px auto;border-radius:8px;border:1px solid var(--line)}
.summary-body table{border-collapse:collapse;margin:8px 0;max-width:100%}
.summary-body td,.summary-body th{border:1px solid #d9dee5;padding:6px 10px}
.sum-lead{position:relative;background:linear-gradient(135deg,#eef2ff,#f5f3ff);border:1px solid #e0e7ff;border-radius:14px;padding:16px 18px 16px 22px;margin:0 0 16px;color:var(--text);line-height:1.75;scroll-margin-top:140px}
.sum-lead::before{content:"";position:absolute;left:8px;top:14px;bottom:14px;width:4px;border-radius:4px;background:var(--grad)}
.sum-change{background:#fff7ed;border:1px solid #fed7aa;border-radius:14px;padding:14px 18px;margin:0 0 18px;font-size:.95rem;scroll-margin-top:140px}
.sum-change>b{display:flex;align-items:center;gap:7px;color:#9a3412;margin-bottom:4px}
.sum-change>b::before{content:"";width:9px;height:9px;border-radius:50%;background:#fb923c;flex-shrink:0;box-shadow:0 0 0 3px #fed7aa}
.sum-change ul,.sum-point ul{margin:6px 0 0;padding-left:1.3em}
.sum-change li{margin:4px 0}
.sum-point{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:14px;padding:14px 18px;margin:20px 0 0;font-size:.95rem;scroll-margin-top:140px}
.sum-point>b{display:flex;align-items:center;gap:7px;color:#166534;margin-bottom:4px}
.sum-point>b::before{content:"";width:9px;height:9px;border-radius:50%;background:#10b981;flex-shrink:0;box-shadow:0 0 0 3px #bbf7d0}
.sum-point ul{list-style:none;padding-left:0}
.sum-point li{position:relative;padding-left:1.5em;margin:5px 0}
.sum-point li::before{content:"✓";position:absolute;left:0;top:0;color:#10b981;font-weight:900}
mark.upd{background:#fde68a;padding:0 3px;border-radius:3px;color:inherit}
.summary-body table.sum-table{border-collapse:separate;border-spacing:0;width:100%;margin:8px 0 14px;font-size:.92rem;border:1px solid #dfe3ea;border-radius:10px;overflow:hidden}
.summary-body table.sum-table th{background:#f1f5f9;font-weight:700;text-align:left;color:var(--text)}
.summary-body table.sum-table th,.summary-body table.sum-table td{border:0;border-bottom:1px solid #e5e9f0;border-right:1px solid #e5e9f0;padding:8px 10px;vertical-align:top}
.summary-body table.sum-table tr>*:last-child{border-right:0}
.summary-body table.sum-table tr:last-child>*{border-bottom:0}
.summary-body table.sum-table tr:nth-child(even) td{background:#fafbfd}

/* 근거 법령 */
.law-box{margin-top:22px;padding:14px 18px;background:#f8fafc;border:1px solid var(--line);border-radius:14px;font-size:.9rem}
.law-box>b{display:flex;align-items:center;gap:6px;margin-bottom:2px;font-size:.95rem}
.law-box>p{margin:0 0 6px}
.law-box ul{margin:0;padding-left:1.2em;columns:2;column-gap:20px}
.law-box li{break-inside:avoid;margin:2px 0}
.law-group{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-top:1px dashed var(--line)}
.law-name{flex:0 0 200px;font-weight:700;color:var(--text);font-size:.86rem;padding-top:4px}
.law-arts{display:flex;flex-wrap:wrap;gap:6px;flex:1;min-width:0}
.law-art{display:inline-flex;align-items:baseline;gap:5px;padding:3px 9px;border-radius:8px;background:#fff;border:1px solid var(--line);color:var(--text-2);font-size:.8rem;max-width:100%}
.law-art b{color:var(--primary-700);white-space:nowrap}
.law-art span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}
.law-art:hover{border-color:#a5b4fc;text-decoration:none;background:#fafbff}
@media (max-width:720px){.law-box ul{columns:1}.law-group{flex-direction:column;gap:6px}.law-name{flex:none;padding-top:0}}

/* 앞으로 바뀌는 내용 */
.future-box{margin-top:18px;padding:0;background:#fefce8;border:1px solid #fde68a;border-radius:14px;overflow:hidden;font-size:.93rem;scroll-margin-top:140px}
.fb-head{padding:12px 18px 10px;background:linear-gradient(90deg,#fef3c7,#fefce8);border-bottom:1px solid #fde68a}
.fb-head>b{display:flex;align-items:center;gap:6px;color:#854d0e;font-size:.98rem}
.fb-head>p{margin:2px 0 0}
.fb-count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#854d0e;color:#fff;font-size:.72rem}
.fc-list{list-style:none;margin:0;padding:6px 18px 10px}
.fc-item{display:flex;gap:14px;padding:12px 0;border-top:1px dashed #fde68a}
.fc-item:first-child{border-top:0}
.fc-date{display:flex;flex-direction:column;align-items:center;gap:2px;flex:0 0 100px}
.fc-date .eff{display:inline-block;background:#854d0e;color:#fff;border-radius:8px;padding:3px 9px;font-size:.8rem;font-weight:800;font-variant-numeric:tabular-nums}
.fc-date small{font-size:.72rem;color:#92400e;font-weight:700}
.fc-main{flex:1;min-width:0}
.fc-law{display:block;color:var(--text)}
.fc-title{display:block;color:var(--text-2);margin:2px 0}
.fc-pub{display:block}
.fc-body{margin:6px 0 0;color:var(--text-2);line-height:1.65}
.fc-body p{margin:0 0 .3rem}
.future-none{display:flex;align-items:center;gap:6px;margin:16px 0 0;padding:9px 12px;background:#f0fdf4;border:1px dashed #bbf7d0;border-radius:10px;color:#166534}
.future-none .ico{width:14px;height:14px}
@media (max-width:520px){.fc-item{flex-direction:column;gap:6px}.fc-date{flex-direction:row;align-items:center;gap:6px;flex:none}}

/* 이전/다음 */
.summary-nav{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px;padding-top:18px;border-top:1px solid var(--line-2)}
.nav-card{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--text);min-width:0;transition:border-color .12s,box-shadow .12s,transform .12s}
.nav-card:hover{text-decoration:none;border-color:#c7d2fe;box-shadow:var(--shadow-md);transform:translateY(-2px)}
.nav-card.next{text-align:right;align-items:flex-end;background:linear-gradient(135deg,#eef2ff,#f5f3ff);border-color:#e0e7ff}
.nav-card.empty{opacity:.5;pointer-events:none}
.nc-label{display:inline-flex;align-items:center;gap:4px;font-size:.76rem;font-weight:700;color:var(--muted)}
.nav-card b{font-size:.95rem;line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
@media (max-width:520px){.summary-nav{grid-template-columns:1fr}.nav-card.next{text-align:left;align-items:flex-start}}
.clamp1{display:inline-block;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}

/* ===== 법령 v1: 목록·목차·조문·장 읽기·검색·비교 ===== */
.tag-indigo{background:var(--primary-soft);color:var(--primary-600)}.tag-violet{background:var(--violet-soft);color:var(--violet)}.tag-rose{background:var(--rose-soft);color:var(--rose)}
.card-title{margin:0 0 10px;font-size:1.05rem}
.notice{padding:12px 16px;margin-bottom:14px;border-left:5px solid var(--amber-500)}.notice.error{border-left-color:var(--rose-500)}
.dl{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:12px 0 0}.dl dt{color:var(--muted);font-weight:600}.dl dd{margin:0}
.plain-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.light-link{color:#fff;text-decoration:underline}
.law-hero .lead{max-width:760px}
.law-search{display:flex;gap:8px;margin-top:14px;max-width:640px}.law-search input{flex:1;min-width:0;padding:10px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.14);color:#fff;font:inherit;font-size:.95rem}
.law-search input::placeholder{color:rgba(255,255,255,.7)}.law-search input:focus{outline:none;background:rgba(255,255,255,.22);border-color:#fff}
.basis-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 14px;margin:14px 0 18px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-sm)}
.bb-label{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:.9rem;color:var(--text-2)}
.basis-bar select{padding:7px 10px;border-radius:9px;border:1px solid var(--line);background:#fff;font:inherit;font-size:.9rem;font-weight:600;color:var(--primary-700)}
.bb-note{font-size:.82rem;color:var(--muted)}
.law-head .basis-bar{margin:12px 0 0}
.law-group-sec{margin-top:8px}
.law-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.law-card{display:flex;flex-direction:column;gap:8px;padding:16px 18px;transition:transform .15s,box-shadow .15s}.law-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.lc-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.lc-name{margin:0;font-size:1.08rem;line-height:1.35}.lc-name a{color:var(--text)}.lc-name a:hover{color:var(--primary-600);text-decoration:none}
.lc-short{margin:-4px 0 0}
.lc-meta{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.84rem;color:var(--text-2)}.lc-meta li{display:inline-flex;align-items:center;gap:4px}.lc-meta li.rose{color:var(--rose)}
.lc-flags{display:flex;flex-wrap:wrap;gap:6px}
.flag{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.78rem;font-weight:700;background:var(--surface-2);color:var(--muted)}
.flag.amber{background:var(--amber-soft);color:var(--amber)}.flag.violet{background:var(--violet-soft);color:var(--violet)}.flag.ok{background:var(--green-soft);color:var(--green)}
a.flag:hover{text-decoration:none;filter:brightness(.96)}
.lc-actions{display:flex;gap:8px;margin-top:auto;padding-top:4px}
.law-foot{margin:24px 0 8px}
.law-bar .rb-search{display:none}
@media (min-width:861px){.law-bar .rb-search{display:block}.law-bar .rb-search input{width:170px;padding:6px 10px;border-radius:9px;border:1px solid var(--line);font:inherit;font-size:.85rem}}
.law-head h1 small{font-size:.7em;font-weight:600;color:var(--muted);margin-left:6px}
.mchip.rose{background:var(--rose-soft);color:var(--rose)}.mchip.green{background:var(--green-soft);color:var(--green)}.mchip.violet{background:var(--violet-soft);color:var(--violet)}
.law-layout .law-main{min-width:0;display:grid;gap:14px;align-content:start}
.change-box{padding:0}.change-box summary{display:flex;align-items:center;gap:12px;padding:14px 18px;cursor:pointer;list-style:none;flex-wrap:wrap}.change-box summary::-webkit-details-marker{display:none}
.change-box summary b{font-size:1rem}.change-box[open] summary{border-bottom:1px solid var(--line-2)}
.change-list{margin:0;padding:8px 18px 14px;display:grid;gap:4px;list-style:none;counter-reset:chg}
.change-list li{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px dashed var(--line-2);flex-wrap:wrap}.change-list li:last-child{border-bottom:0}
.change-list li a{color:var(--text)}.change-list li a b{color:var(--primary-700);margin-right:4px}
.chg{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.72rem;font-weight:800;background:var(--amber-soft);color:var(--amber);vertical-align:middle}
.chg.new{background:var(--green-soft);color:var(--green)}.chg.del{background:var(--rose-soft);color:var(--rose)}.chg.soon{background:var(--violet-soft);color:var(--violet)}
.law-toc-card{padding:14px 18px 10px}
.lt-tools{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.lt-list,.lt-list ol{list-style:none;margin:0;padding:0}
.lt-group{margin:6px 0 10px}.lt-group>ol{margin-left:12px;border-left:2px solid var(--line-2);padding-left:10px}
.lt-group.lv1>ol{margin-left:0;padding-left:0;border-left:0}
.lt-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:9px;background:var(--surface-2)}
.lt-head a{color:var(--text);font-weight:700}.lt-head a b{color:var(--primary-700);margin-right:4px}.lt-head a:hover{color:var(--primary-600);text-decoration:none}
.lt-group.lv1>.lt-head{background:var(--primary-soft);font-size:1.02rem}.lt-group.lv3>.lt-head,.lt-group.lv4>.lt-head{background:transparent;border-bottom:1px solid var(--line-2);border-radius:0;padding:6px 10px}
.lt-count{font-size:.78rem;color:var(--muted);white-space:nowrap}
.lt-art a{display:flex;align-items:baseline;gap:8px;padding:5px 10px;border-radius:8px;color:var(--text);font-size:.92rem}.lt-art a:hover{background:var(--primary-soft);text-decoration:none}
.lt-no{flex:0 0 auto;font-weight:700;color:var(--primary-700);min-width:78px}.lt-title{flex:1;min-width:0}
.lt-art.is-del .lt-no{color:var(--muted)}.lt-art .chg{margin-left:auto;flex:0 0 auto}
.lt-art.hide,.lt-group.hide{display:none}
.law-extra{padding:0}.law-extra summary{display:flex;align-items:center;gap:10px;padding:14px 18px;cursor:pointer;list-style:none}.law-extra summary::-webkit-details-marker{display:none}.law-extra[open] summary{border-bottom:1px solid var(--line-2)}
.addendum{padding:12px 18px;border-bottom:1px dashed var(--line-2)}.ad-head{margin:0 0 6px;font-weight:800;color:var(--primary-700)}
.ad-text{font-size:.9rem;line-height:1.7;color:var(--text-2);white-space:normal;padding:0 18px 14px}.addendum .ad-text{padding:0}
.annex-list{list-style:none;margin:0;padding:8px 18px 14px;display:grid;gap:6px}.annex-list li{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:4px 0;border-bottom:1px dashed var(--line-2)}
.law-aside .ap-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.law-aside .ap-actions{display:grid;gap:8px;margin:12px 0}
.ver-list{list-style:none;margin:0;padding:0;display:grid;gap:4px;max-height:48vh;overflow:auto}
.ver-list li a{display:grid;grid-template-columns:auto auto;gap:2px 8px;padding:7px 10px;border-radius:9px;color:var(--text);border:1px solid transparent;font-size:.84rem}
.ver-list li a:hover{background:var(--surface-2);text-decoration:none}.ver-list li.current a{background:var(--primary-soft);border-color:var(--primary-ring)}
.vl-date{font-weight:800;color:var(--primary-700)}.vl-status{justify-self:end;font-size:.72rem;font-weight:800;padding:1px 7px;border-radius:999px;background:var(--surface-2);color:var(--muted)}
.ver-list li.scheduled .vl-status{background:var(--rose-soft);color:var(--rose)}.ver-list li.current .vl-status{background:var(--green-soft);color:var(--green)}
.vl-meta{grid-column:1/-1;color:var(--muted);font-size:.78rem}
.sib-list{list-style:none;margin:0;padding:0;display:grid;gap:2px;max-height:56vh;overflow:auto}
.sib-list li a{display:flex;gap:8px;align-items:baseline;padding:6px 10px;border-radius:8px;color:var(--text);font-size:.86rem}.sib-list li a b{color:var(--primary-700);flex:0 0 auto;min-width:70px}.sib-list li a span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sib-list li a:hover{background:var(--surface-2);text-decoration:none}.sib-list li.current a{background:var(--primary-soft);font-weight:700}.sib-list li.is-del a{color:var(--muted)}
.art-text{font-size:1.02rem;line-height:1.85}.art-text p{margin:0 0 .45em}.art-text .art-head{margin-bottom:.6em}.art-text .art-head b{color:var(--primary-700);font-weight:800}
.art-text .lv1{margin-left:1.4em}.art-text .lv2{margin-left:2.8em}.art-text.is-del p{color:var(--muted)}
.art-text mark{background:#fef08a;padding:0 2px;border-radius:3px}
.law-article .art-text{padding:4px 0 10px}
.art-missing{display:flex;gap:14px;align-items:center;padding:14px 16px;margin-bottom:12px;background:var(--amber-soft);border-radius:12px}.art-missing p{margin:0}
.art-tools{display:flex;flex-wrap:wrap;gap:8px;padding:10px 0 4px;border-top:1px solid var(--line-2);margin-top:8px}
.diff-box{margin-top:20px;border:1px solid var(--amber-500);border-radius:14px;overflow:hidden}.diff-box.after{border-color:var(--violet)}
.db-head{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--amber-soft)}.diff-box.after .db-head{background:var(--violet-soft)}.db-head p{margin:0}.db-head>div{flex:1;min-width:0}
.db-legend{display:flex;gap:6px;font-size:.78rem}.db-legend del,.db-legend ins{padding:0 6px;border-radius:4px}
.law-diff{padding:14px 16px;line-height:1.9}.law-diff del{background:#fee2e2;color:#991b1b;text-decoration:line-through}.law-diff ins{background:#dcfce7;color:#14532d;text-decoration:none}
.law-diff .ind1{display:inline-block;width:1.4em}.law-diff .ind2{display:inline-block;width:2.8em}
.ver-box{margin-top:20px}.vb-head{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}
.ver-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.ver-tab{display:inline-flex;flex-direction:column;align-items:flex-start;padding:6px 12px;border-radius:10px;border:1px solid var(--line);background:#fff;font:inherit;font-size:.85rem;font-weight:700;color:var(--text-2);cursor:pointer}
.ver-tab small{font-weight:600;color:var(--muted);font-size:.72rem}.ver-tab.is-on{background:var(--primary-soft);border-color:var(--primary-ring);color:var(--primary-700)}
.ver-pane{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.vp-meta{margin-bottom:8px}
.law-related{margin-top:22px}.lr-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}.lr-head p{margin:0}
.lr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.lr-card{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--text)}.lr-card:hover{border-color:var(--primary-ring);text-decoration:none;box-shadow:var(--shadow-sm)}
.law-chapter .ch-head{margin:26px 0 12px;padding-bottom:6px;border-bottom:2px solid var(--primary-soft);font-size:1.12rem}.law-chapter .ch-head.lv3,.law-chapter .ch-head.lv4{font-size:1rem;border-bottom-style:dashed}
.art-block{padding:12px 0 6px;border-bottom:1px solid var(--line-2);scroll-margin-top:120px}.art-block:last-of-type{border-bottom:0}
.ab-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.ab-head a{font-weight:800;color:var(--primary-700);font-size:1.02rem}.ab-head a:hover{text-decoration:underline}
.art-block.is-del .art-text p{color:var(--muted)}.art-block .art-text .art-head b{display:none}
.sib-list li.current a{background:var(--primary-soft)}
.search-group .section-head{margin-bottom:8px}
.hit-list{padding:6px 0}.hit{display:block;padding:10px 18px;border-bottom:1px solid var(--line-2);color:var(--text)}.hit:last-child{border-bottom:0}.hit:hover{background:var(--surface-2);text-decoration:none}
.hit b{display:block;color:var(--primary-700);margin-bottom:2px}.hit-snip{font-size:.9rem;color:var(--text-2);line-height:1.6}.hit-snip mark{background:#fef08a;border-radius:3px;padding:0 2px}
@media (max-width:860px){.law-layout .law-aside .ver-list,.law-layout .law-aside .sib-list{max-height:none}}
@media (max-width:720px){.law-grid{grid-template-columns:1fr}.lt-no{min-width:64px}.basis-bar{padding:8px 12px}.bb-note{flex-basis:100%}.law-search{flex-direction:column}.change-list li .muted{flex-basis:100%}}
html[data-fs="lg"] .art-text{font-size:1.14rem}html[data-fs="xl"] .art-text{font-size:1.28rem}
.law-art.in{border-color:var(--primary-ring);background:var(--primary-soft)}.law-art .ext{font-style:normal;font-size:.75em;color:var(--muted);margin-left:2px}
.art-text .note{color:var(--muted);font-size:.85em}.art-text a.xref{color:var(--primary-700);border-bottom:1px dotted var(--primary-ring)}.art-text a.xref:hover{text-decoration:none;background:var(--primary-soft)}
/* ===== 법령 2단·3단 보기 (법 ← 시행령 ← 시행규칙) ===== */
.view-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:12px}
.cols-switch{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.cs-btn{padding:6px 14px;font-size:.88rem;font-weight:700;color:var(--text-2);border-right:1px solid var(--line)}.cs-btn:last-child{border-right:0}
.cs-btn:hover{background:var(--surface-2);text-decoration:none}.cs-btn.is-on{background:var(--primary);color:#fff}
.family-strip{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.fs-item{display:inline-flex;flex-direction:column;padding:4px 10px;border-radius:9px;border:1px solid var(--line);background:#fff;color:var(--text);line-height:1.25}
.fs-item .fs-kind{font-size:.68rem;font-weight:700;color:var(--muted);letter-spacing:.02em}.fs-item b{font-size:.84rem}
.fs-item.depth-1{border-color:#c4b5fd}.fs-item.depth-1 .fs-kind{color:var(--violet)}.fs-item.depth-2{border-color:#6ee7b7}.fs-item.depth-2 .fs-kind{color:var(--green)}
.fs-item.is-on{background:var(--primary-soft);border-color:var(--primary-ring)}.fs-item:hover{text-decoration:none;box-shadow:var(--shadow-sm)}
.law-layout.is-multi{grid-template-columns:1fr}
@media (min-width:861px){.law-layout.is-multi .law-aside{display:none}}
.multi{--c1:1.15fr;--c2:1fr;--c3:1fr}
.multi-head{display:grid;grid-template-columns:var(--c1) var(--c2) var(--c3);gap:0;position:sticky;top:118px;z-index:5;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:12px;box-shadow:var(--shadow-sm)}
.multi.cols-2 .multi-head{grid-template-columns:var(--c1) var(--c2)}
.mh{padding:8px 12px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:1px;min-width:0}.mh:last-child{border-right:0}
.mh-k{font-size:.7rem;font-weight:800;letter-spacing:.03em;color:var(--muted)}.mh b{font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mh1{border-top:3px solid var(--primary)}.mh2{border-top:3px solid var(--violet)}.mh3{border-top:3px solid var(--green)}
.multi-art{border-bottom:2px solid var(--line);padding:6px 0 10px;margin-bottom:8px;scroll-margin-top:170px}.multi-art:last-child{border-bottom:0}
.multi-row{display:grid;grid-template-columns:var(--c1) var(--c2) var(--c3);gap:0;border-top:1px dashed var(--line-2)}
.multi.cols-2 .multi-row{grid-template-columns:var(--c1) var(--c2)}
.multi-row:first-child{border-top:0}.multi-row.has-links{background:linear-gradient(90deg,transparent 0,transparent var(--c1x,38%),rgba(124,58,237,.03) 100%)}
.mc{min-width:0;padding:10px 12px;border-right:1px solid var(--line-2)}.mc:last-child,.mc.mc3{border-right:0}
.mc1{grid-column:1}.mc2{grid-column:2}.mc3{grid-column:3}
.mc.empty{background:repeating-linear-gradient(135deg,transparent 0 10px,rgba(15,23,42,.025) 10px 11px)}
.mc1 .ab-head{margin-bottom:6px}.mc1 .art-text{font-size:.97rem;line-height:1.75}.mc1 .art-text p.para{scroll-margin-top:170px}
.lk-count{font-size:.74rem;font-weight:700;color:var(--muted);background:var(--surface-2);border-radius:999px;padding:2px 9px;margin-left:6px}
.lk-card{border:1px solid var(--line);border-radius:12px;background:#fff;margin:0 0 10px;overflow:hidden}.lk-card:last-child{margin-bottom:0}
.lk-decree{border-left:4px solid var(--violet)}.lk-rule{border-left:4px solid var(--green-500)}.lk-card.is-del{opacity:.7}
.lk-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding:8px 12px 6px;border-bottom:1px solid var(--line-2);background:var(--surface-2)}
.lk-law{font-size:.72rem;font-weight:800;color:var(--muted)}.lk-head a{color:var(--text);font-size:.92rem}.lk-head a b{color:var(--primary-700)}
.lk-decree .lk-head a b{color:var(--violet)}.lk-rule .lk-head a b{color:var(--green)}
.lk-ref{margin-left:auto;font-size:.72rem;font-weight:700;color:var(--text-2);background:#fff;border:1px solid var(--line);border-radius:999px;padding:1px 8px;white-space:nowrap}
.lk-body{padding:8px 12px 6px;font-size:.9rem;line-height:1.7;max-height:22em;overflow:hidden;position:relative}
.lk-body.is-clamped::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3em;background:linear-gradient(transparent,#fff)}
.lk-body.is-open{max-height:none}.lk-body .art-head b{font-size:.95em}
.lk-more{display:block;width:100%;border:0;border-top:1px solid var(--line-2);background:var(--surface-2);color:var(--primary-700);font:600 .8rem var(--font);padding:6px;cursor:pointer}.lk-more:hover{background:var(--primary-soft)}
.rel-box{margin:14px 0 4px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);display:grid;gap:10px}
.rel-group{display:grid;gap:6px}.rel-k{font-size:.8rem;font-weight:700;color:var(--muted)}.rel-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.rel-chip{display:inline-flex;align-items:baseline;gap:5px;padding:4px 10px;border-radius:9px;background:#fff;border:1px solid var(--line);color:var(--text);font-size:.84rem}
.rel-chip span{font-size:.72rem;font-weight:700;color:var(--muted)}.rel-chip b{color:var(--primary-700)}.rel-chip small{color:var(--muted)}
.rel-chip.down{border-left:3px solid var(--violet)}.rel-chip.up{border-left:3px solid var(--primary)}.rel-chip:hover{text-decoration:none;box-shadow:var(--shadow-sm)}
@media (max-width:1000px){.multi-head{display:none}.multi-row,.multi.cols-2 .multi-row{display:block}.mc{border-right:0;padding:8px 0}.mc.empty{display:none}
  .mc2::before,.mc3::before{display:block;font-size:.7rem;font-weight:800;color:var(--muted);margin:2px 0 4px}.mc2:not(.empty)::before{content:"2단 · 시행령"}.mc3:not(.empty)::before{content:"3단 · 시행규칙"}
  .lk-card{margin-left:10px}}
.mc1 .art-text p.para.has-link{position:relative}.mc1 .art-text p.para.has-link::before{content:"";position:absolute;left:-12px;top:.55em;width:6px;height:6px;border-radius:50%;background:var(--violet)}
a.lk-ref:hover{text-decoration:none;background:var(--primary-soft)}
@media (max-width:720px){.family-strip{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px;max-width:100%}.fs-item{flex:0 0 auto}.view-tools{align-items:flex-start}}
/* 법령 목록: 가족 카드 */
.lc-right{display:flex;gap:6px;align-items:center}
.lc-family{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 4px}
.fam-chip{display:inline-flex;align-items:baseline;gap:5px;padding:3px 9px;border-radius:9px;border:1px solid var(--line);background:#fff;color:var(--text);font-size:.8rem;max-width:100%}
.fam-chip span{font-size:.68rem;font-weight:800;color:var(--muted)}.fam-chip b{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.fam-chip small{color:var(--muted)}
.fam-chip.decree{border-color:#c4b5fd}.fam-chip.decree span{color:var(--violet)}.fam-chip.rule{border-color:#6ee7b7}.fam-chip.rule span{color:var(--green)}.fam-chip.sub{margin-left:10px}
.fam-chip:hover{text-decoration:none;box-shadow:var(--shadow-sm)}
.law-card.has-family{border-top:3px solid var(--primary)}
/* 참조 그래프 카드 */
.lk-card.rel-self{border-left:4px solid var(--primary)}.lk-card.rel-up{border-left:4px solid var(--violet)}.lk-card.rel-down{border-left:4px solid var(--green-500)}.lk-card.rel-other{border-left:4px solid var(--amber-500)}
.lk-card.lk-l3{font-size:.95em}
.lk-kind{font-size:.7rem;font-weight:800;padding:1px 7px;border-radius:999px;background:var(--surface-2);color:var(--muted)}.lk-kind.delegate{background:var(--violet-soft);color:var(--violet)}.lk-kind.other{background:var(--amber-soft);color:var(--amber)}
.lk-again{padding:6px 12px}
.lk-body p.is-cited{background:#fef9c3;border-radius:6px;padding:2px 6px;margin-left:-6px}
.rel-chip i{font-style:normal;font-size:.68rem;font-weight:800;color:var(--violet)}.rel-chip small.from{color:var(--primary-700)}
/* 시험범위 전환 */
.scope-switch{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.ss-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;font-size:.86rem;font-weight:700;color:var(--text-2);border-right:1px solid var(--line)}.ss-btn:last-child{border-right:0}
.ss-btn:hover{background:var(--surface-2);text-decoration:none}.ss-btn.is-on{background:var(--green-soft);color:var(--green)}
.lt-art.out-scope a{opacity:.55}.lt-art.out-scope .lt-title::after{content:" 범위 밖";font-size:.72rem;color:var(--muted);font-weight:600}
/* 문제 ↔ 법령 조문 칩 */
.law-chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 2px;min-width:0}
.law-chip{display:inline-flex;align-items:baseline;gap:5px;padding:4px 10px;border-radius:9px;background:#fff;border:1px solid #c7d2fe;color:var(--text);font-size:.84rem;line-height:1.4;max-width:100%}
.law-chip .ico{width:12px;height:12px;align-self:center;color:var(--primary-600);flex-shrink:0}
.law-chip span{font-size:.72rem;font-weight:700;color:var(--muted);white-space:nowrap}.law-chip b{color:var(--primary-700);white-space:nowrap}.law-chip small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}
.law-chip:hover{text-decoration:none;box-shadow:var(--shadow-sm);background:var(--primary-soft)}
.law-chip.is-soft{border-color:var(--line)}.law-chip.is-soft b{color:var(--text-2)}.law-chip.is-soft .ico{color:var(--muted)}
.law-chips.sm .law-chip{padding:2px 8px;font-size:.78rem}.law-chips.sm .law-chip small{max-width:160px}
.choice .law-chips{margin:6px 0 0}
.law-box{margin:10px 16px 0;padding:10px 12px;border:1px solid #c7d2fe;border-radius:12px;background:#eef2ff;display:grid;gap:4px}
.lb-head{display:flex;align-items:center;gap:6px;font-weight:800;font-size:.9rem;color:var(--primary-700)}.lb-head .ico{width:15px;height:15px}.lb-head .muted{font-weight:600;font-size:.78rem}
.lb-row{display:flex;gap:8px;align-items:flex-start}.lb-k{display:inline-grid;place-items:center;min-width:22px;height:22px;border-radius:7px;background:#fff;border:1px solid #c7d2fe;color:var(--primary-700);font-weight:800;font-size:.78rem;flex-shrink:0;margin-top:9px}
.lb-row .law-chips{margin:4px 0;flex:1}
/* 조문 페이지: 이 조문을 다루는 문제 */
.law-questions .lr-head{flex-wrap:wrap}.law-questions .lr-head .btn{margin-left:auto}
.lq-list{display:grid;gap:8px}
.lq-card{display:grid;gap:4px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--text)}.lq-card:hover{border-color:var(--primary-ring);text-decoration:none;box-shadow:var(--shadow-sm)}
.lq-meta{font-size:.76rem;color:var(--muted);font-weight:600}.lq-card b{font-weight:600;line-height:1.5}
.lq-tags{display:flex;gap:4px}.lq-tags i{font-style:normal;font-size:.68rem;font-weight:800;padding:1px 7px;border-radius:999px;background:var(--primary-soft);color:var(--primary-700)}
.lt-qn{margin-left:6px;font-size:.68rem;font-weight:800;padding:1px 7px;border-radius:999px;background:var(--amber-soft);color:var(--amber);white-space:nowrap}
@media (max-width:720px){.law-box{margin:8px 10px 0}.law-chip small{max-width:120px}}
.q-reveal:not(.revealed) .q-passages .reveal-only{display:none}
/* 법령 목록: 관련 법령(인용된 다른 법령) */
.law-related-sec .rel-lead{margin:-4px 0 10px}
.rel-filter{display:flex;align-items:center;gap:8px;max-width:420px;margin:0 0 10px;padding:6px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}
.rel-filter .ico{width:15px;height:15px;color:var(--muted);flex-shrink:0}.rel-filter input{flex:1;border:0;outline:0;font:inherit;background:transparent;min-width:0}
.rel-laws{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px}
.rel-laws li a{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--text);min-width:0}
.rel-laws li a:hover{border-color:var(--primary-ring);text-decoration:none;box-shadow:var(--shadow-sm)}
.rel-laws li b{font-weight:600;font-size:.9rem;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rel-laws li small{color:var(--muted);white-space:nowrap}.rel-laws li .tag{flex-shrink:0}
.rel-laws li[hidden]{display:none}
.pills.light a.light-link{color:inherit;text-decoration:underline dotted}
.lk-more-link{display:block;margin:4px 0 6px 10px;padding:6px 10px;border:1px dashed var(--line);border-radius:10px;font-size:.78rem;font-weight:700;color:var(--primary-700);background:#fff}.lk-more-link:hover{text-decoration:none;background:var(--primary-soft)}

/* 관리자 › 문제 › 법령 연결 편집 */
.lawedit-grid{display:grid;gap:14px}
.lawedit-target{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:860px){.lawedit-target{grid-template-columns:1fr}}
.lawedit-target h3{margin-bottom:8px}
.lawedit-src{font-size:.94rem;line-height:1.55;max-height:300px;overflow:auto;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}
.lawedit-src.is-correct{border-color:#86efac;background:#f0fdf4}
.lawedit textarea{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9rem;line-height:1.5;margin-top:0}
.lawedit-now{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}
.lawedit-now .law-chip{padding:3px 8px}
.lawedit-now .src{font-size:.72rem;line-height:1.4;padding:1px 7px;border-radius:999px;border:1px solid var(--line);color:var(--muted,#6b7280);margin-right:6px}
.lawedit-now .src-cite{background:#dbeafe;color:#1e40af;border-color:#bfdbfe}
.lawedit-now .src-quote{background:#e0e7ff;color:#3730a3;border-color:#c7d2fe}
.lawedit-now .src-context{background:#fef3c7;color:#92400e;border-color:#fde68a}
.lawedit-now .src-legacy{background:#ede9fe;color:#5b21b6;border-color:#ddd6fe}
.lawedit-now .src-ai{background:#dcfce7;color:#166534;border-color:#bbf7d0}
.lawedit-now .src-manual{background:#ffe4e6;color:#9f1239;border-color:#fecdd3}
.lawedit-help p{margin:4px 0 8px}
.lawedit-help code{background:#f1f5f9;padding:1px 6px;border-radius:5px;font-size:.88em}
.lawedit-laws{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.lawedit-laws span{font-size:.78rem;padding:2px 8px;border:1px solid var(--line);border-radius:999px;background:#fff}
.lawedit-errors{border-color:#fecaca;background:#fff1f2;margin-bottom:14px}
.lawedit-errors ul{margin:6px 0 0 18px}
/* 법령 개정 안내(해설과 별도 상자) */
.law-notes{margin-top:18px;border:1px solid #fbcfe8;border-radius:14px;overflow:hidden;background:#fdf2f8}
.ln-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 16px;background:linear-gradient(90deg,#fce7f3,#fdf2f8);color:#9d174d;font-weight:800;font-size:.95rem}
.ln-head .ico{width:16px;height:16px;flex-shrink:0}.ln-head .muted{font-weight:600;font-size:.78rem}
.ln-item{display:grid;gap:6px;padding:12px 16px 14px;border-top:1px dashed #f9a8d4}
.ln-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.8rem}
.ln-kind{display:inline-flex;align-items:center;padding:2px 9px;border-radius:999px;background:#be185d;color:#fff;font-weight:800;font-size:.74rem;white-space:nowrap}
.ln-item.kind-wording .ln-kind,.ln-item.kind-recheck .ln-kind{background:#64748b}.ln-item.kind-repealed .ln-kind{background:#7c3aed}.ln-item.kind-no_answer .ln-kind{background:#b91c1c}
.ln-date{color:#9d174d;font-weight:700;white-space:nowrap}
.ln-top .law-chip{padding:2px 8px;font-size:.78rem}
.ln-summary{font-size:.98rem;line-height:1.5;color:var(--text);overflow-wrap:anywhere}
.ln-body{font-size:.92rem;line-height:1.7;color:var(--text-2);overflow-wrap:anywhere}
.ln-answer{display:inline-flex;align-items:center;gap:8px;width:fit-content;max-width:100%;padding:6px 12px;border-radius:10px;background:#fff;border:1px solid #f9a8d4;font-size:.9rem;font-weight:700;color:#9d174d}
.ln-answer b{font-size:1.05rem;color:#be123c;overflow-wrap:anywhere}
.q-reveal .law-notes.reveal-only{display:none}.q-reveal.revealed .law-notes.reveal-only{display:block}
@media (max-width:640px){.ln-item{padding:10px 12px 12px}.ln-head{padding:9px 12px}}
/* 문항 수정 안내(현행 법령 반영·정답 정정) */
.tag-amend{background:#ecfeff;color:#0e7490;border:1px solid #a5f3fc}
.amend-box{margin-top:18px;border:1px solid #a5f3fc;border-radius:14px;overflow:hidden;background:#ecfeff}
.am-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 16px;background:linear-gradient(90deg,#cffafe,#ecfeff);color:#155e75;font-weight:800;font-size:.95rem}
.am-head .ico{width:16px;height:16px;flex-shrink:0}.am-head .muted{font-weight:600;font-size:.78rem}
.am-item{display:grid;gap:6px;padding:12px 16px 14px;border-top:1px dashed #67e8f9}
.am-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.8rem}
.am-kind{display:inline-flex;align-items:center;padding:2px 9px;border-radius:999px;background:#0e7490;color:#fff;font-weight:800;font-size:.74rem;white-space:nowrap}
.am-item.kind-answer .am-kind{background:#b45309}.am-item.kind-text .am-kind,.am-item.kind-meta .am-kind{background:#64748b}
.am-date{color:#155e75;font-weight:700;white-space:nowrap}.am-basis{color:var(--text-2);overflow-wrap:anywhere}
.am-reason{font-size:.96rem;line-height:1.5;color:var(--text);overflow-wrap:anywhere}
.am-changes{list-style:none;margin:0;padding:0;display:grid;gap:5px;font-size:.9rem;line-height:1.6}
.am-changes li{padding:6px 10px;border-radius:10px;background:#fff;border:1px solid #a5f3fc;overflow-wrap:anywhere}
.am-changes .am-label{display:inline-block;min-width:1.6em;margin-right:4px;color:#0e7490}
.am-changes s{color:#9f1239;text-decoration-color:#be123c;opacity:.85}.am-changes ins{text-decoration:none;color:#065f46;font-weight:700;background:#d1fae5;padding:0 3px;border-radius:4px}
.am-arrow{margin:0 6px;color:#64748b}
.q-reveal .amend-box.reveal-only{display:none}.q-reveal.revealed .amend-box.reveal-only{display:block}
@media (max-width:640px){.am-item{padding:10px 12px 12px}.am-head{padding:9px 12px}}
/* 관리: 수정 이력 상세 */
.am-row{padding:12px 0;border-top:1px solid var(--line-2)}.am-row:first-of-type{border-top:0}
.am-row-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.am-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.am-val{font-size:.88rem;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;background:#f8fafc;border:1px solid var(--line-2);border-radius:8px;padding:8px 10px;max-height:320px;overflow:auto}
@media (max-width:760px){.am-cols{grid-template-columns:1fr}}
/* 관리: 개정 메모 편집 */
.lnote-q{display:grid;gap:6px;margin-bottom:14px;font-size:.92rem}
.lnote-line{display:flex;gap:8px;align-items:flex-start;padding:4px 8px;border-radius:8px}
.lnote-line>b{flex-shrink:0;min-width:1.6em;color:var(--text-2)}.lnote-line.is-correct{background:#ecfdf5}.lnote-line.is-correct>b{color:#047857}
.lnote-card{margin-bottom:14px}.lnote-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.lnote-form{display:grid;gap:10px}.lnote-form .row-actions{justify-content:flex-start}
.lnote-help{margin:0 0 12px;line-height:1.6}
/* ===== 용어 사전 ===== */
.gl-hero .law-search{position:relative}
.gl-suggest{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:40;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);overflow:hidden;color:var(--text);text-align:left}
.gl-suggest a{display:flex;align-items:baseline;gap:10px;padding:9px 14px;border-bottom:1px solid var(--line-2);color:var(--text)}
.gl-suggest a:last-child{border-bottom:0}.gl-suggest a:hover,.gl-suggest a.is-on{background:var(--primary-soft);text-decoration:none}
.gl-suggest b{white-space:nowrap}.gl-suggest small{color:var(--muted);font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.gl-suggest .gl-sg-sub{font-size:.72rem;color:var(--primary-600);white-space:nowrap}
.gl-aside-search{position:relative}.gl-aside-search input{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:.9rem}
.gl-subjects{margin-top:18px}
.gl-daily{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.gl-daily-card{display:flex;flex-direction:column;gap:8px;color:var(--text);padding:16px 18px;border-top:4px solid var(--primary)}
.gl-daily-card:hover{text-decoration:none;transform:translateY(-2px);box-shadow:var(--shadow-md)}
.gl-daily-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.gl-daily-term{font-size:1.15rem;font-weight:800}.gl-daily-term small{font-weight:500;color:var(--muted);font-size:.8rem;margin-left:6px}
.gl-daily-def{font-size:.9rem;color:var(--text-2);line-height:1.55}
.gl-stars{color:#f59e0b;font-size:.78rem;letter-spacing:-.05em;white-space:nowrap}
.gl-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 10px}
.gl-tab{display:inline-flex;align-items:center;gap:4px;padding:6px 11px;border-radius:10px;background:#fff;border:1px solid var(--line);font-weight:700;font-size:.9rem;color:var(--text-2)}
.gl-tab small{font-size:.68rem;color:var(--muted);font-weight:600}.gl-tab.is-on{background:var(--primary);border-color:var(--primary);color:#fff}.gl-tab.is-on small{color:rgba(255,255,255,.8)}
.gl-tab.is-empty{opacity:.35;pointer-events:none}.gl-tab:hover{text-decoration:none;border-color:#c7d2fe}
.gl-filters{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:14px}
.gl-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);font-size:.8rem;font-weight:600;color:var(--text-2)}
.gl-chip small{color:var(--muted)}.gl-chip.is-on{background:var(--violet-soft);border-color:#ddd6fe;color:var(--violet)}.gl-chip.reset{color:var(--rose)}.gl-chip:hover{text-decoration:none;border-color:#c7d2fe}
.gl-count{margin-left:auto}.gl-quick{padding:6px 10px;border:1px solid var(--line);border-radius:999px;font:inherit;font-size:.85rem;min-width:190px}
.gl-group-head{display:flex;align-items:baseline;gap:8px;margin:18px 0 8px;font-size:1.1rem;color:var(--primary-700)}.gl-group-head small{color:var(--muted);font-size:.8rem;font-weight:600}
.gl-list{padding:0;overflow:hidden}
.gl-item{display:flex;gap:14px;align-items:flex-start;padding:12px 18px;border-bottom:1px solid var(--line-2);color:var(--text)}
.gl-item:last-child{border-bottom:0}.gl-item:hover{background:var(--surface-2);text-decoration:none}.gl-item.hide{display:none}
.gl-item-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.gl-term{font-size:1.02rem}.gl-sub{font-size:.78rem;color:var(--muted)}.gl-def{font-size:.9rem;color:var(--text-2);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gl-item-side{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;max-width:40%}
.gl-mini{display:inline-flex;align-items:center;gap:3px;font-size:.76rem;color:var(--muted);font-weight:600}.gl-mini .ico{width:12px;height:12px}
.gl-none{margin:14px 0}
/* 용어 상세 */
.gl-head{margin:22px 0 14px}
.gl-title-row{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:6px 0 8px}
.gl-title{font-size:2rem;font-weight:900;letter-spacing:-.02em;margin:0}
.gl-title-side{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.gl-hanja{font-size:1.05rem;color:var(--text-2)}.gl-english{font-size:.92rem;color:var(--muted);font-style:italic}
.gl-aliases{margin:8px 0 0}
.gl-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}
.gl-main{display:flex;flex-direction:column;gap:14px;min-width:0}
.gl-aside{position:sticky;top:90px;display:flex;flex-direction:column;gap:12px}
.gl-defcard{border-left:6px solid var(--primary);display:flex;flex-direction:column;gap:14px}
.gl-def-big{font-size:1.18rem;line-height:1.7;font-weight:600;color:var(--text)}
.gl-actions{display:flex;gap:8px;flex-wrap:wrap}.gl-actions .btn small{font-weight:500;opacity:.85;margin-left:4px}
.gl-section{display:flex;flex-direction:column;gap:10px}
.gl-h{display:flex;align-items:center;gap:8px;margin:0;font-size:1.05rem;font-weight:800;color:var(--primary-700)}.gl-h .ico{width:18px;height:18px}.gl-h .muted{font-weight:600}
.gl-body{line-height:1.8;font-size:1rem}.gl-body h4{margin:12px 0 6px;font-size:1rem;color:var(--text)}.gl-body ul{padding-left:1.3em;margin:0 0 .5rem}.gl-body li{margin:3px 0}.gl-body table{margin:6px 0 10px;font-size:.92rem}
.gl-numbers{background:#f0f9ff;border-color:#bae6fd}.gl-numbers .gl-h{color:#0369a1}.gl-numbers table th{background:#e0f2fe}
.gl-tip{background:#fffbeb;border-color:#fde68a}.gl-tip .gl-h{color:#92400e}.gl-tip .rich{line-height:1.75}
.gl-link{color:var(--primary-700);border-bottom:1px dotted var(--primary-ring);font-weight:600}
.gl-lawdef{padding:10px 0;border-top:1px dashed var(--line)}.gl-lawdef:first-of-type{border-top:0}
.gl-lawdef-head{display:inline-flex;align-items:center;gap:8px;margin-bottom:6px}.gl-lawdef-head:hover{text-decoration:none}
.gl-lawdef-text p{margin:0 0 .35em;line-height:1.75;font-size:.95rem;color:var(--text-2)}.gl-lawdef-text .lv2{margin-left:1.4em}
.gl-rel-group{display:flex;flex-direction:column;gap:6px;margin-top:4px}
.gl-rel-kind{display:flex;align-items:center;gap:6px;margin:0;font-size:.85rem;color:var(--muted);font-weight:700}.gl-rel-kind .ico{width:14px;height:14px}
.gl-rel-list{display:flex;flex-wrap:wrap;gap:8px}
.gl-rel{display:inline-flex;flex-direction:column;gap:1px;padding:7px 12px;border-radius:12px;background:#fff;border:1px solid #c7d2fe;color:var(--text);position:relative}
.gl-rel b{color:var(--primary-700)}.gl-rel small{color:var(--muted);font-size:.74rem}.gl-rel:hover{text-decoration:none;background:var(--primary-soft);box-shadow:var(--shadow-sm)}
.gl-compare{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.gl-cmp-card{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:#fff;color:var(--text)}
.gl-cmp-card.is-self{background:var(--primary-soft);border-color:#c7d2fe}.gl-cmp-card b{font-size:1rem}.gl-cmp-card span{font-size:.86rem;color:var(--text-2);line-height:1.5}.gl-cmp-card em{font-size:.78rem;color:var(--violet);font-style:normal;font-weight:700}
.gl-cmp-card:hover{text-decoration:none;box-shadow:var(--shadow-md)}
.gl-sum-list{margin:0;padding-left:1.2em;line-height:1.9}
.gl-nav{margin-top:4px}
.gl-aside-links{display:flex;flex-direction:column;gap:6px;margin-top:8px}.btn-block{width:100%;justify-content:center}
.gl-aside-list{list-style:none;margin:0;padding:0;font-size:.88rem;line-height:1.8}
[data-tip]{position:relative}
[data-tip]:hover::after,[data-tip]:focus-visible::after{content:attr(data-tip);position:absolute;left:0;top:calc(100% + 6px);z-index:30;min-width:200px;max-width:280px;padding:8px 10px;border-radius:10px;background:#0f172a;color:#fff;font-size:.78rem;font-weight:500;line-height:1.5;white-space:normal;box-shadow:var(--shadow-lg);pointer-events:none}
/* 문제·요약의 용어 칩 */
.term-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:10px 16px 0}
.tc-label{display:inline-flex;align-items:center;gap:4px;font-size:.78rem;font-weight:700;color:var(--muted);margin-right:2px}.tc-label .ico{width:13px;height:13px}
.term-chip{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;background:#fff;border:1px solid #fbcfe8;color:#9d174d;font-size:.8rem;font-weight:700}
.term-chip.is-hot{background:#fdf2f8}.term-chip:hover{text-decoration:none;background:#fce7f3}
.summary-article .term-chips{margin:14px 0 0}
/* 플래시카드 */
.gl-flash{display:flex;flex-direction:column;gap:14px;max-width:720px;margin:22px auto}
.gl-f-top{display:flex;justify-content:space-between;align-items:center}.gl-q-no{font-weight:800;color:var(--primary-700)}
.gl-f-stats{display:flex;gap:12px;align-items:center;font-weight:700}.gl-f-stats .ok{color:var(--green)}.gl-f-stats .no{color:var(--rose)}
.gl-fcard{position:relative;min-height:280px;perspective:1200px;cursor:pointer;outline:none}
.gl-f-face{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:28px;border-radius:18px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-md);backface-visibility:hidden;transition:transform .45s ease;text-align:center}
.gl-f-face.front{transform:rotateY(0)}.gl-f-face.back{transform:rotateY(180deg);background:var(--primary-soft);border-color:#c7d2fe}
.gl-fcard.is-flipped .front{transform:rotateY(-180deg)}.gl-fcard.is-flipped .back{transform:rotateY(0)}
.gl-fcard:focus-visible .gl-f-face{box-shadow:0 0 0 3px var(--primary-ring),var(--shadow-md)}
.gl-f-label{font-size:.74rem;font-weight:800;letter-spacing:.08em;color:var(--muted)}
.gl-f-face b{font-size:1.9rem;font-weight:900;letter-spacing:-.02em}.gl-f-face small{color:var(--muted)}.gl-f-face p{margin:0;font-size:1.05rem;line-height:1.7;color:var(--text)}
.gl-f-hint{font-size:.78rem;color:var(--muted);margin-top:8px}
.gl-f-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.gl-f-done{text-align:center;line-height:1.8}.gl-f-done b{font-size:1.3rem}
/* 퀴즈 */
.gl-quiz{display:flex;flex-direction:column;gap:14px;max-width:760px;margin:22px auto}
.gl-q-top{display:flex;justify-content:space-between;font-weight:800}.gl-q-score{color:var(--green)}
.gl-q-def{font-size:1.12rem;line-height:1.75;padding:16px 18px;border-radius:14px;background:var(--surface-2);border:1px solid var(--line)}
.gl-q-opts{display:grid;gap:8px;grid-template-columns:1fr 1fr}
.gl-q-opt{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;background:#fff;border:1px solid var(--line);font:inherit;font-weight:700;text-align:left;cursor:pointer}
.gl-q-opt .mark{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:8px;background:var(--surface-2);border:1px solid var(--line);font-size:.8rem;flex-shrink:0}
.gl-q-opt:hover{border-color:#c7d2fe;background:var(--primary-soft)}
.gl-q-opt.is-correct{background:#ecfdf5;border-color:#a7f3d0}.gl-q-opt.is-wrong{background:#fef2f2;border-color:#fecaca}.gl-q-opt:disabled{cursor:default}
.gl-q-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.gl-q-result{line-height:1.8}.gl-q-result ul{padding-left:1.2em}
/* 관리 */
.gl-admin-def{margin-bottom:10px}.gl-admin-def .row{display:flex;justify-content:space-between;align-items:center;gap:8px}
@media (max-width:860px){.gl-layout{grid-template-columns:1fr}.gl-aside{position:static}.gl-item-side{max-width:100%}}
@media (max-width:640px){.gl-title{font-size:1.6rem}.gl-q-opts{grid-template-columns:1fr}.gl-item{padding:11px 14px;flex-direction:column;gap:6px}.gl-item-side{justify-content:flex-start}.term-chips{margin:10px 12px 0}}
/* ===== 두문자 암기 ===== */
.mn-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.mn-card{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border-top:4px solid var(--primary);position:relative}
.mn-card.is-daily{border-top-color:var(--amber)}.mn-card.is-private{border-top-color:var(--amber)}.mn-card.is-known{border-top-color:var(--green)}.mn-card.is-unknown{border-top-color:var(--rose)}
.mn-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.mn-card-link{display:flex;flex-direction:column;gap:7px;color:var(--text);flex:1}.mn-card-link:hover{text-decoration:none}
.mn-card-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.mn-card-title{font-size:1.02rem;line-height:1.35}
.mn-letters{display:inline-flex;flex-wrap:wrap;gap:3px}
.mn-letters i{display:inline-grid;place-items:center;min-width:28px;height:28px;padding:0 6px;border-radius:8px;background:var(--primary-soft);color:var(--primary-700);font-style:normal;font-weight:900;font-size:1rem;border:1px solid #c7d2fe}
.mn-letters i.w{min-width:auto;font-size:.8rem;font-weight:700;padding:0 8px;background:var(--surface-2);color:var(--text-2);border-color:var(--line)}
.mn-phrase{font-size:.86rem;color:var(--violet);font-weight:600;line-height:1.5}
.mn-preview{font-size:.8rem;color:var(--muted);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mn-preview em{font-style:normal;font-weight:800;color:var(--primary-700);margin-right:2px}
.mn-card-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;padding-top:6px;border-top:1px dashed var(--line-2)}
.mn-mark-badge{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;font-size:.72rem;font-weight:900;color:#fff}.mn-mark-badge.ok{background:var(--green-500)}.mn-mark-badge.no{background:var(--rose-500)}
.mn-progress{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:18px 0 0;padding:14px 20px}
.mn-prog-nums{display:flex;flex-direction:column;align-items:center;line-height:1.1}.mn-prog-nums b{font-size:1.3rem;color:var(--green)}.mn-prog-nums.no b{color:var(--rose)}.mn-prog-nums.muted b{color:var(--muted)}.mn-prog-nums span{font-size:.74rem;color:var(--muted)}
.mn-prog-bar{flex:1;min-width:160px;height:10px;border-radius:999px;background:var(--surface-2);overflow:hidden}.mn-prog-bar i{display:block;height:100%;background:linear-gradient(90deg,#10b981,#06b6d4)}
.mn-prog-actions{display:flex;gap:6px}
.mn-filters{align-items:center}.mn-filter-sep{width:1px;height:18px;background:var(--line)}.mn-sort{padding:5px 8px;border:1px solid var(--line);border-radius:999px;font:inherit;font-size:.82rem;background:#fff}
/* 상세 */
.mn-title{font-size:1.7rem}
.mn-hero-card{display:flex;flex-direction:column;gap:14px;border-left:6px solid var(--violet)}
.mn-tiles{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch}
.mn-tile{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:92px;max-width:170px;padding:10px 12px;border-radius:14px;background:linear-gradient(180deg,#eef2ff,#fff);border:1px solid #c7d2fe;text-align:center;position:relative}
.mn-tile b{font-size:1.8rem;font-weight:900;line-height:1.1;color:var(--primary-700)}.mn-tile span{font-size:.82rem;line-height:1.35;color:var(--text-2);overflow-wrap:anywhere}
.mn-step{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--violet);color:#fff;font-size:.7rem;font-weight:800;font-style:normal}.mn-tile .mn-step{position:absolute;top:-8px;left:-6px}
.mn-arrow{align-self:center;color:var(--muted);font-size:1.4rem}
.mn-numbers{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.mn-num{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;border-radius:12px;background:#f0f9ff;border:1px solid #bae6fd}.mn-num span{font-size:.9rem;color:var(--text-2)}.mn-num b{font-size:1.1rem;color:#0369a1;white-space:nowrap}
.mn-pairs{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.mn-pair{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:12px;background:var(--violet-soft);border:1px solid #ddd6fe}.mn-pair span{font-weight:700;color:var(--violet)}.mn-pair i{color:var(--muted);font-style:normal}.mn-pair b{flex:1;font-weight:600;color:var(--text)}
.mn-phrase-box{padding:12px 16px;border-radius:12px;background:#fdf4ff;border:1px dashed #e9d5ff}.mn-phrase-label{font-size:.72rem;font-weight:800;color:#7e22ce;letter-spacing:.06em}.mn-phrase-box p{margin:4px 0 0;font-size:1.08rem;line-height:1.7}.mn-phrase-box b{color:#7e22ce;font-size:1.2em}
.mn-intro{margin:0;color:var(--text-2);line-height:1.65}
.mn-markrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-top:10px;border-top:1px dashed var(--line)}.mn-mark-state{font-size:.85rem;font-weight:700}
.mn-items .mn-td-label{white-space:nowrap}.mn-items .mn-td-label b{font-size:1.05rem;color:var(--primary-700)}
/* 연습 */
.mn-practice{display:flex;flex-direction:column;gap:12px;max-width:820px;margin:22px auto}
.mn-p-kind{font-size:.78rem;font-weight:700;color:var(--muted)}
.mn-p-title{display:flex;flex-direction:column;gap:2px}.mn-p-title b{font-size:1.25rem;line-height:1.35}
.mn-p-hint{display:flex;flex-wrap:wrap;gap:4px;min-height:4px}.mn-p-hint i{display:inline-grid;place-items:center;min-width:34px;height:34px;padding:0 8px;border-radius:9px;background:var(--primary-soft);color:var(--primary-700);font-style:normal;font-weight:900;font-size:1.15rem;border:1px solid #c7d2fe}.mn-p-hint i.w{min-width:auto;font-size:.82rem;font-weight:700;background:var(--surface-2);color:var(--text-2);border-color:var(--line)}
.mn-p-stage{min-height:120px}
.mn-recall,.mn-fill{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.mn-recall li,.mn-fill li{display:flex;align-items:flex-start;gap:10px;padding:8px 12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line-2);opacity:.6}
.mn-recall li.is-on,.mn-fill li{opacity:1}.mn-recall li b,.mn-fill li b{min-width:34px;font-size:1.1rem;color:var(--primary-700)}.mn-recall li span{flex:1;line-height:1.5}.mn-recall li small{color:var(--muted);display:block}
.mn-fill li.is-blank{background:#fffbeb;border-color:#fde68a;flex-direction:column}.mn-opts{display:grid;gap:6px;grid-template-columns:1fr 1fr;width:100%}.mn-opt{font-size:.9rem;font-weight:600}.mn-opt.is-sel{border-color:var(--violet);background:var(--violet-soft)}
.mn-order-pool{display:grid;gap:6px;grid-template-columns:1fr 1fr}.mn-order-done{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;min-height:20px}.mn-order-step{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:#ecfdf5;border:1px solid #a7f3d0;font-size:.85rem;font-weight:600}.mn-order-step i{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--green-500);color:#fff;font-size:.7rem;font-style:normal}
.mn-pair-grid{display:grid;gap:10px;grid-template-columns:1fr 1fr}.mn-pair-grid>div{display:grid;gap:6px;align-content:start}
.mn-letters-input{display:flex;gap:8px;margin-bottom:12px}.mn-letters-input input{flex:1;padding:12px 14px;border:2px solid #c7d2fe;border-radius:12px;font:inherit;font-size:1.2rem;font-weight:800;letter-spacing:.1em}
.mn-p-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.mn-p-actions{display:flex;gap:6px;flex-wrap:wrap}
@keyframes mn-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.shake{animation:mn-shake .3s ease}
.mn-mode-tabs .is-on,.pills.light a.is-on{text-decoration:none;background:rgba(255,255,255,.3);border-radius:999px;padding:0 8px;font-weight:800}
/* 만들기 */
.mn-form{display:flex;flex-direction:column;gap:12px;margin-top:10px}.mn-kinds{border:1px solid var(--line);border-radius:12px;padding:10px 14px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.mn-kinds legend{font-size:.82rem;font-weight:700;color:var(--muted);padding:0 6px}
.mn-kind{display:flex;gap:8px;align-items:flex-start;font-size:.9rem}.mn-kind b{display:block}.mn-kind small{color:var(--muted);line-height:1.4}
.mn-preview-box{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;border-radius:10px;background:var(--surface-2)}
/* 인쇄 */
.mn-print{padding-top:20px}.mn-print-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.mn-print-subject{font-size:1.1rem;margin:18px 0 6px}.mn-print-table{background:#fff;border:1px solid var(--line)}.mn-print-letters{color:var(--primary-700);font-size:1.05rem;letter-spacing:.06em}
@media print{.print-page .site-header,.print-page .site-footer,.print-page .dev-bar,.mn-print-head .row-actions{display:none!important}.mn-print{padding:0}.mn-print-table{font-size:11px;page-break-inside:auto}.mn-print-table tr{page-break-inside:avoid}body{background:#fff}}
@media (max-width:640px){.mn-opts,.mn-order-pool,.mn-pair-grid{grid-template-columns:1fr}.mn-tile{min-width:72px}.mn-tile b{font-size:1.4rem}}

/* ===== 복습(review) ===== */
.review{margin-top:16px;border:1px solid #c7d2fe;border-radius:14px;background:linear-gradient(180deg,#f5f3ff,#fff);overflow:hidden}
.rv-head{display:flex;align-items:center;gap:10px;padding:8px 12px 8px 10px;background:linear-gradient(90deg,#ede9fe,#f5f3ff);color:#4c1d95;font-weight:800;font-size:.95rem;flex-wrap:wrap}
.rv-toggle{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:inherit;font:inherit;font-weight:800;cursor:pointer;padding:4px 6px;border-radius:8px}
.rv-toggle:hover{background:rgba(124,58,237,.1)}
.rv-head .rv-sub{font-weight:500;color:#6d28d9;font-size:.82rem;flex:1;min-width:0}
.rv-body{padding:12px 14px 14px}
.rv-point{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:10px;background:#fff;border:1px solid #ddd6fe;margin-bottom:10px;font-size:.95rem;line-height:1.55}
.rv-point .ico{color:var(--violet);flex-shrink:0;margin-top:4px}
.rv-point b{color:#4c1d95;margin-right:6px}
.rv-stem{font-weight:600;line-height:1.6;margin:0 0 10px;color:var(--text-2);font-size:.95rem}
mark.rv-key{background:#fde68a;color:#78350f;padding:0 4px;border-radius:4px}
.rv-items{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.rv-item{display:grid;grid-template-columns:auto auto 1fr;gap:6px 10px;align-items:start;padding:10px 12px;border-radius:10px;background:#fff;border:1px solid var(--line)}
.rv-item.v-false{border-color:#fecaca;background:#fff7f7}.rv-item.v-true{border-color:#bbf7d0;background:#f6fef9}.rv-item.v-answer{border-color:#c7d2fe;background:#f8f7ff}
.rv-mark{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 6px;border-radius:8px;background:var(--surface-2);border:1px solid var(--line);font-weight:800;font-size:.8rem;white-space:nowrap}
.rv-verdict{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 6px;border-radius:8px;font-weight:900;font-size:.78rem;color:#fff;background:#94a3b8;white-space:nowrap}
.v-true .rv-verdict{background:var(--green-500)}.v-false .rv-verdict{background:var(--rose-500)}.v-answer .rv-verdict{background:var(--primary)}
.rv-text{line-height:1.65;min-width:0;padding-top:2px}
.rv-text s{color:#b91c1c;text-decoration:line-through;text-decoration-thickness:2px;text-decoration-color:#ef4444}
.rv-text ins{text-decoration:none;background:#dcfce7;color:#14532d;border-radius:4px;padding:0 4px;font-weight:700;margin:0 1px}
.rv-text ins.rv-all{display:block;margin-top:4px;padding:4px 8px}
.rv-note{grid-column:3;font-size:.88rem;color:var(--text-2);border-top:1px dashed #cbd5e1;padding-top:6px;line-height:1.55}
.rv-qnote{margin-top:10px;padding:10px 12px;border-radius:10px;background:#fff;border:1px solid #ddd6fe;font-size:.92rem}
.rv-qnote p:last-child{margin-bottom:0}
.review.rv-raw .rv-text s{text-decoration:none;color:inherit}.review.rv-raw .rv-text ins{display:none}
.review.rv-collapsed .rv-body{display:none}
.rv-hero .lead{max-width:860px}
.rv-filters .mn-filter-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.rv-count{margin:10px 0}
.rv-list-card{padding:14px 16px 16px;margin-bottom:12px}
.rv-list-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.rv-qid{font-weight:800;color:var(--primary-700)}
.rv-list-head .btn{margin-left:auto}
.rv-list-stem{font-weight:700;line-height:1.6;margin:0 0 4px}
.rv-list-card .review{margin-top:8px}
.rv-admin-stem{font-weight:700}
.rv-admin-choices{padding-left:18px;font-size:.92rem}
.rv-admin-choices li{margin:3px 0}
@media (max-width:640px){.rv-item{grid-template-columns:auto auto 1fr;padding:9px 10px}.rv-note{grid-column:1/-1}.rv-head{font-size:.9rem}}

/* ===== AI 튜터(마고카이 티켓)·마고카이 계정 배지 (2026-10-27) ===== */
.btn-tutor{background:linear-gradient(135deg,#0ea5e9 0%,#6366f1 100%);color:#fff;box-shadow:0 6px 16px rgba(99,102,241,.25)}.btn-tutor:hover{filter:brightness(1.06);text-decoration:none}
.mk-badge{display:inline-flex;align-items:center;gap:4px;padding:5px 11px;border-radius:999px;background:var(--amber-soft);color:var(--amber);font-size:.8rem;font-weight:800;white-space:nowrap;text-decoration:none}
.mk-badge:hover{text-decoration:none;filter:brightness(.97)}.mk-badge.lg{font-size:.92rem;padding:8px 14px}
.btn-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
@media (max-width:560px){.site-header .mk-badge{display:none}}
.tutor-card{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.tutor-card p{margin:0}.tutor-card .tutor-title{margin:0 0 2px;font-size:1.15rem}.tutor-ico{font-size:1.4rem}
.admin-login{margin-top:18px;border-top:1px solid var(--line-2);padding-top:10px}.admin-login summary{cursor:pointer;list-style:none;text-align:center}.admin-login summary::-webkit-details-marker{display:none}.admin-login .form{margin-top:10px}
.tutor-overlay{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:60;display:none}.tutor-overlay.open{display:block}
.tutor-sheet{position:fixed;left:0;right:0;bottom:0;z-index:61;background:var(--surface);color:var(--text);border-top:1px solid var(--line);border-radius:18px 18px 0 0;max-height:84vh;display:none;flex-direction:column;box-shadow:0 -8px 30px rgba(15,23,42,.25);padding-bottom:env(safe-area-inset-bottom)}
.tutor-sheet.open{display:flex}
@media (min-width:760px){.tutor-sheet{left:auto;right:24px;bottom:24px;width:460px;max-height:min(80vh,720px);border-radius:18px;border:1px solid var(--line)}}
.tutor-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line)}
.tutor-head b{font-size:1.02rem}.tutor-meta{font-size:.78rem;color:var(--muted);margin-top:2px}
.tutor-close{border:0;background:var(--surface-2);width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:1rem;color:var(--text-2);flex:none}.tutor-close:hover{background:var(--line-2)}
.tutor-body{overflow-y:auto;padding:12px 16px;flex:1;min-height:120px}
.tutor-ctx{font-size:.82rem;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-bottom:10px;white-space:pre-wrap;word-break:break-word}
.tutor-msg{margin:8px 0;padding:10px 12px;border-radius:12px;line-height:1.55;white-space:pre-wrap;word-break:break-word;font-size:.95rem}
.tutor-msg.q{background:var(--primary-soft);color:var(--primary-700);margin-left:15%}
.tutor-msg.a{background:var(--surface-2);border:1px solid var(--line);margin-right:8%}
.tutor-msg.sys{color:var(--muted);font-size:.86rem;text-align:center;background:none;padding:6px 4px}
.tutor-msg.sys b{display:block;color:var(--text-2);margin-bottom:4px}.tutor-msg.sys .btn{margin-top:8px}
.tutor-foot{display:flex;gap:8px;padding:10px 16px 14px;border-top:1px solid var(--line);align-items:flex-end}
.tutor-foot textarea{flex:1;min-height:44px;max-height:120px;resize:vertical;border:1px solid var(--line);border-radius:12px;padding:10px 12px;font:inherit;font-size:.95rem;background:var(--surface-2);color:var(--text)}
.tutor-foot textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring)}
.tutor-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:8px 0}
/* 마고카이 앱 웹뷰 안에서만 보이는 앱 홈 버튼(2026-10-27) */
.app-home{font-size:1.15rem;line-height:1;padding:6px 8px;border-radius:10px;background:var(--surface-2);text-decoration:none;flex:none;margin-right:6px}.app-home:hover{background:var(--primary-soft);text-decoration:none}
/* ===== 로그인 화면 소셜 버튼(2026-10-28 분리 전환) ===== */
.auth-social{display:flex;flex-direction:column;gap:10px}
.btn.social{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;box-sizing:border-box;padding:12px 14px;font-weight:700;border-radius:12px;text-decoration:none}
.btn.social.google{background:#fff;color:#1f1f1f;border:1px solid #dadce0}.btn.social.google:hover{background:#f8f9fa}
.btn.social.apple{background:#000;color:#fff;border:1px solid #000}.btn.social.apple:hover{background:#1a1a1a}
.auth-divider{display:flex;align-items:center;gap:10px;margin:14px 0 10px;color:var(--muted);font-size:.8rem}.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--line)}
.mk-badge:empty{display:none}
