/* DS·FDE 브리핑 — 뉴스 섹션 느낌: 흰 바탕, 굵은 제목, 분류 탭, 기사 목록 + 옆 칸 */
:root{
  --bg:#F3F4F6; --surface:#FFFFFF; --ink:#16181D; --sub:#3D434D; --muted:#717784; --line:#E4E6EB; --soft:#F1F3F6;
  --accent:#2B54D6; --accent-ink:#2347B8; --accent-soft:#EAF0FF;
  --t-a:#12794B; --t-a-bg:#E3F4EA; --t-b:#3B4A66; --t-b-bg:#E9EDF4; --t-c:#9A5B00; --t-c-bg:#FCF0DC;
  --f-body:"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;
  --f-num:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0F1114; --surface:#181B20; --ink:#EDEFF2; --sub:#C3C8D0; --muted:#8C93A0; --line:#2A2F36; --soft:#20242A;
  --accent:#7C9BFF; --accent-ink:#9DB4FF; --accent-soft:#1C2540;
  --t-a:#6FD3A0; --t-a-bg:#143024; --t-b:#B6C2DA; --t-b-bg:#232A38; --t-c:#F0B65A; --t-c-bg:#3A2B12;
  color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0F1114; --surface:#181B20; --ink:#EDEFF2; --sub:#C3C8D0; --muted:#8C93A0; --line:#2A2F36; --soft:#20242A;
  --accent:#7C9BFF; --accent-ink:#9DB4FF; --accent-soft:#1C2540;
  --t-a:#6FD3A0; --t-a-bg:#143024; --t-b:#B6C2DA; --t-b-bg:#232A38; --t-c:#F0B65A; --t-c-bg:#3A2B12;
  color-scheme:dark}

*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.7;word-break:keep-all;overflow-wrap:break-word}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
.wrap{max-width:1120px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}

/* 머리 */
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);background:var(--surface);z-index:20}
.top{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:env(safe-area-inset-top,0px);z-index:10}
.top .wrap{display:flex;align-items:center;gap:18px;height:58px}
.brand{display:flex;align-items:center;gap:10px;flex-shrink:0}
.brand .mark{width:28px;height:28px;border-radius:7px;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:800;font-size:13px;letter-spacing:-.02em}
.brand b{font-size:18px;font-weight:800;letter-spacing:-.02em}
.brand span{font-size:12px;color:var(--muted);border-left:1px solid var(--line);padding-left:10px}
.nav{display:flex;gap:2px;margin-left:auto;overflow-x:auto;scrollbar-width:none}
.nav::-webkit-scrollbar{display:none}
.nav a{font-size:14px;color:var(--sub);padding:7px 11px;border-radius:999px;white-space:nowrap}
.nav a:hover{background:var(--soft)}
.nav a.on{color:var(--accent-ink);font-weight:700}

.tabs{background:var(--surface);border-bottom:1px solid var(--line)}
.tabs .wrap{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding-block:8px}
.tabs .wrap::-webkit-scrollbar{display:none}
.tabs button{font:inherit;font-size:14px;border:0;background:none;color:var(--sub);padding:7px 14px;border-radius:999px;cursor:pointer;white-space:nowrap}
.tabs button:hover{background:var(--soft)}
.tabs button.on{background:var(--ink);color:var(--surface);font-weight:700}
.tabs .count{font-family:var(--f-num);font-size:11px;margin-left:4px;opacity:.7}

/* 본문 2단 */
.page{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px;padding-block:24px 72px}
.col{min-width:0;display:flex;flex-direction:column;gap:16px}
.box{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px 24px}
.box h2{font-size:17px;font-weight:800;margin:0 0 12px;letter-spacing:-.01em;display:flex;align-items:center;gap:8px}
.box h2 small{font-size:12px;font-weight:500;color:var(--muted)}

/* 오늘 브리핑 머리 */
.dateline{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;font-size:13px;color:var(--muted)}
.dateline .issue-no{font-weight:700;color:var(--accent-ink);background:var(--accent-soft);padding:2px 9px;border-radius:999px}
.lead h1{font-size:clamp(24px,3.4vw,34px);line-height:1.35;font-weight:800;letter-spacing:-.025em;margin:10px 0 18px;text-wrap:balance}
.three{list-style:none;counter-reset:n;padding:0;margin:0;display:grid;gap:10px}
.three li{counter-increment:n;position:relative;padding-left:34px;font-size:15.5px;color:var(--sub)}
.three li::before{content:counter(n);position:absolute;left:0;top:2px;width:22px;height:22px;border-radius:50%;background:var(--ink);color:var(--surface);font-size:12px;font-weight:700;display:grid;place-items:center}

/* 기사 */
.story{display:grid;gap:8px;padding:18px 0;border-top:1px solid var(--line)}
.story:first-of-type{border-top:0;padding-top:4px}
.kicker{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px}
.cat{font-weight:700;color:var(--accent-ink)}
.trust{font-size:11.5px;font-weight:600;padding:2px 7px;border-radius:4px}
.t-a{color:var(--t-a);background:var(--t-a-bg)} .t-b{color:var(--t-b);background:var(--t-b-bg)} .t-c{color:var(--t-c);background:var(--t-c-bg)}
.story h3{margin:0;font-size:18px;line-height:1.45;font-weight:700;letter-spacing:-.015em;text-wrap:balance}
.story h3 a:hover{text-decoration:underline;text-underline-offset:3px}
.story .easy{margin:0;font-size:15.5px;color:var(--sub)}
.story .easy b{color:var(--ink);font-weight:700;margin-right:4px}
.story details{font-size:15px}
.story summary{cursor:pointer;color:var(--muted);font-size:13.5px;list-style:none;display:inline-flex;align-items:center;gap:4px}
.story summary::-webkit-details-marker{display:none}
.story summary::after{content:"▾";font-size:11px}
.story details[open] summary::after{content:"▴"}
.story .more{margin-top:10px;display:grid;gap:10px}
.story .more p{margin:0;color:var(--sub)}
.why{background:var(--soft);border-radius:10px;padding:12px 14px}
.why b{display:block;font-size:12.5px;color:var(--accent-ink);margin-bottom:2px}
.src{font-size:13px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.src strong{color:var(--sub);font-weight:600}
.src a{color:var(--accent-ink);font-weight:600}
.src a:hover{text-decoration:underline}
.ref{font-family:var(--f-num);font-size:11.5px;color:var(--muted)}

.story.top{padding:0 0 18px}
.story.top h3{font-size:clamp(21px,2.6vw,26px);line-height:1.4}
.story.top .easy{font-size:16.5px}
.label-top{font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.02em}

/* 툴·기술 */
.tools{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.tool{display:grid;gap:8px;padding:18px 0;border-top:1px solid var(--line)}
.tool:first-of-type{border-top:0;padding-top:4px}
.tool h3{margin:0;font-size:17px;line-height:1.45;font-weight:700;text-wrap:balance}
.tool h3 a:hover{text-decoration:underline;text-underline-offset:3px}
.tool .easy{margin:0;font-size:15.5px;color:var(--sub)}
.tool .easy b{color:var(--ink);font-weight:700;margin-right:4px}
.tool details{font-size:15px}
.tool summary{cursor:pointer;color:var(--muted);font-size:13.5px;list-style:none;display:inline-flex;gap:4px}
.tool summary::-webkit-details-marker{display:none}
.tool summary::after{content:"▾";font-size:11px}
.tool .more{margin-top:8px}
.tool .more p{margin:0;color:var(--sub)}
.ask{background:var(--accent-soft);border-radius:10px;padding:12px 14px;font-size:15px;color:var(--ink)}
.ask b{display:block;font-size:12.5px;color:var(--accent-ink);margin-bottom:2px}

/* 옆 칸 */
.editor p{margin:0 0 10px;font-size:15px;color:var(--sub)}
.editor p:last-child{margin:0}
.editor h3{font-size:16.5px;line-height:1.45;margin:0 0 10px;font-weight:700}
.byline{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);margin-top:12px}
.byline i{width:26px;height:26px;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center;font-style:normal;font-weight:800;font-size:12px}
.mini{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.mini li{font-size:14.5px;color:var(--sub)}
.mini b{display:block;color:var(--ink);font-size:14.5px}
.mini a{display:block}
.mini a:hover b{text-decoration:underline}
.mini small{display:block;color:var(--muted);font-size:12.5px}
.q{font-size:15.5px;font-weight:700;margin:0 0 8px;line-height:1.5}
.q+p{margin:0;font-size:14px;color:var(--muted)}

/* 출처 목록 */
.sources ol{margin:0;padding-left:1.4em;display:grid;gap:8px;font-size:13.5px;color:var(--sub)}
.sources li::marker{font-family:var(--f-num);color:var(--muted)}
.sources a{color:var(--accent-ink);word-break:break-all}
.sources a:hover{text-decoration:underline}
.legend{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:12.5px;color:var(--muted);margin-bottom:12px}

/* 지난 브리핑 */
.archive{list-style:none;padding:0;margin:0}
.archive li{border-top:1px solid var(--line)}
.archive li:first-child{border-top:0}
.archive a{display:grid;grid-template-columns:110px minmax(0,1fr);gap:14px;padding:14px 0}
.archive a:hover b{text-decoration:underline}
.archive time{font-size:13px;color:var(--muted);padding-top:2px}
.archive b{font-size:16px;line-height:1.5}
.archive small{display:block;color:var(--muted);font-size:13px;margin-top:2px}

/* 가이드 문서 */
.head{padding-block:32px 8px;display:grid;gap:10px}
.eyebrow{font-size:13px;font-weight:700;color:var(--accent-ink)}
.head h1{font-size:clamp(26px,4vw,38px);font-weight:800;letter-spacing:-.025em;line-height:1.3;margin:0;text-wrap:balance}
.lede{font-size:17px;color:var(--sub);margin:0;max-width:42em}
.meta{font-size:13px;color:var(--muted)}
.layout{display:grid;grid-template-columns:200px minmax(0,1fr);gap:32px;padding-block:20px 72px}
.toc{position:sticky;top:calc(env(safe-area-inset-top,0px) + 76px);align-self:start;display:flex;flex-direction:column;gap:1px;font-size:14px;max-height:calc(100vh - 100px);overflow:auto}
.toc .t{font-size:12px;font-weight:700;color:var(--muted);margin-bottom:6px}
.toc a{color:var(--muted);padding:5px 10px;border-left:2px solid var(--line);line-height:1.45}
.toc a:hover{color:var(--ink)}
.toc a.on{color:var(--accent-ink);border-left-color:var(--accent);font-weight:700}
.doc{min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:28px clamp(18px,3.5vw,40px)}
.doc h2{font-size:clamp(20px,2.4vw,24px);font-weight:800;letter-spacing:-.02em;line-height:1.4;margin:40px 0 14px;scroll-margin-top:84px;text-wrap:balance}
.doc h2:first-child{margin-top:0}
.doc h3{font-size:17px;font-weight:700;margin:26px 0 8px}
.doc p,.doc li{max-width:44em}
.doc p{margin:0 0 14px}
.doc ul,.doc ol{padding-left:1.3em;margin:0 0 16px}
.doc li{margin:5px 0}
.doc a{color:var(--accent-ink);text-decoration:underline;text-underline-offset:3px}
.doc blockquote{margin:0 0 18px;padding:14px 18px;border-left:4px solid var(--accent);background:var(--accent-soft);border-radius:0 10px 10px 0}
.doc blockquote p{margin:0 0 6px}
.doc blockquote p:last-child{margin:0}
.doc strong{font-weight:700}
.tw{overflow-x:auto;margin:0 0 20px;border:1px solid var(--line);border-radius:10px;-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%;font-size:14px;line-height:1.6;min-width:540px}
th{font-weight:700;text-align:left;background:var(--soft);padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
tr:last-child td{border-bottom:0}
td.gc{white-space:nowrap}
.g{display:inline-block;font-size:11px;font-weight:600;line-height:1;padding:3px 6px;border-radius:4px;margin:0 2px;vertical-align:1px}
.g-a{color:var(--t-a);background:var(--t-a-bg)} .g-b{color:var(--t-b);background:var(--t-b-bg)} .g-c{color:var(--t-c);background:var(--t-c-bg)} .g-n{color:var(--muted);background:var(--soft)}
.pager{display:flex;justify-content:space-between;gap:12px;margin-top:40px;padding-top:18px;border-top:1px solid var(--line);font-size:14px;flex-wrap:wrap}

.guide-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.guide-list li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:start}
.guide-list .n{font-family:var(--f-num);font-size:12px;color:var(--muted);padding-top:3px}
.guide-list b{display:block;font-size:15px}
.guide-list small{color:var(--muted);font-size:13px}
.guide-list .soon b{color:var(--muted)}
.guide-list a:hover b{text-decoration:underline}

.empty{padding:28px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);background:var(--surface)}

footer{color:var(--muted);font-size:13px;border-top:1px solid var(--line);background:var(--surface)}
footer .wrap{padding-block:24px 40px;display:flex;flex-wrap:wrap;gap:8px 18px}
footer a:hover{text-decoration:underline}

@media (max-width:960px){
  .page{grid-template-columns:minmax(0,1fr)}
  .layout{grid-template-columns:minmax(0,1fr);gap:14px}
  .toc{position:static;flex-direction:row;overflow-x:auto;gap:6px;max-height:none;padding-bottom:4px}
  .toc .t{display:none}
  .toc a{border:1px solid var(--line);border-radius:999px;padding:5px 12px;white-space:nowrap;background:var(--surface)}
  .toc a.on{border-color:var(--accent)}
}
@media (max-width:640px){
  .brand span{display:none}
  .top .wrap{gap:10px}
  .box{padding:18px 16px;border-radius:12px}
  .archive a{grid-template-columns:minmax(0,1fr);gap:2px}
  .page{padding-block:14px 56px;gap:14px}
}
