/* BBaton Docs — variant-d-final tone (light + blue) */
:root{
  --bg:#ffffff;
  --bg-soft:#f3f7fc;
  --ink:#0b1a2e;
  --ink-2:#3b5169;
  --ink-3:#6a7f96;
  --line:rgba(11,26,46,.10);
  --line-2:rgba(11,26,46,.20);
  --blue:#0071bc;
  --blue-deep:#00365c;
  --blue-soft:#dfeafb;
  --night:#07182c;
  --sky:#7ec9ff;
  --sans:"Geist","Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
  --mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
*{box-sizing:border-box; word-break:keep-all; overflow-wrap:break-word}
html,body{margin:0; padding:0; background:var(--bg); color:var(--ink)}
body{font-family:var(--sans); -webkit-font-smoothing:antialiased; letter-spacing:-.012em}
a{color:inherit; text-decoration:none}
.mono{font-family:var(--mono)}
code{font-family:var(--mono); font-size:.92em; background:var(--blue-soft); color:var(--blue-deep); padding:1px 6px; border-radius:5px}

/* ── top ── */
.top{position:sticky; top:0; z-index:60; background:rgba(255,255,255,.82); backdrop-filter:saturate(160%) blur(14px); border-bottom:1px solid var(--line)}
.top .row{max-width:1440px; margin:0 auto; padding:13px 28px; display:flex; align-items:center; justify-content:space-between; gap:20px}
.top .mark{font-weight:600; font-size:16.5px; letter-spacing:-.01em; display:flex; align-items:center; gap:9px; flex:none}
.top .mark .d{width:9px; height:9px; border-radius:50%; background:var(--blue); box-shadow:0 0 0 3px rgba(0,113,188,.16)}
.top .mark .docs{color:var(--ink-3); font-weight:400; margin-left:2px}
.top ul{list-style:none; display:flex; gap:24px; padding:0; margin:0; font-size:14px; color:var(--ink-2)}
.top ul a:hover{color:var(--ink)}
.top ul a.on{color:var(--blue); font-weight:500}
.top .cta{display:flex; gap:14px; align-items:center; flex:none}
.top .login{font-size:13px; color:var(--ink-2)}
.top .btn-apply{display:inline-flex; align-items:center; gap:7px; padding:9px 16px; border-radius:999px; font:500 13px var(--sans); background:var(--blue); color:#fff; transition:.2s}
.top .btn-apply:hover{background:var(--blue-deep)}

/* doc chip nav */
.docnav{border-top:1px solid var(--line); background:rgba(255,255,255,.9)}
.docnav .inner{max-width:1440px; margin:0 auto; display:flex; gap:6px; overflow-x:auto; padding:10px 28px; scrollbar-width:none}
.docnav .inner::-webkit-scrollbar{display:none}
.docnav a{white-space:nowrap; padding:7px 13px; border:1px solid var(--line); border-radius:999px; color:var(--ink-2); font-family:var(--mono); font-size:11px; letter-spacing:.08em; background:#fff; transition:.15s}
.docnav a:hover{border-color:var(--blue); color:var(--blue)}
.docnav a.active{background:var(--blue); border-color:var(--blue); color:#fff}
.docnav a.demo{border-style:dashed; color:var(--blue)}

/* ── layout ── */
.layout{display:grid; grid-template-columns:260px minmax(0,1fr) 220px; max-width:1440px; margin:0 auto; min-height:calc(100vh - 110px)}

/* sidebar */
aside.side{border-right:1px solid var(--line); padding:36px 22px 64px; position:sticky; top:104px; align-self:start; max-height:calc(100vh - 104px); overflow-y:auto}
aside.side h5{font-family:var(--mono); font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-3); margin:26px 0 10px}
aside.side h5:first-child{margin-top:0}
aside.side ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:2px}
aside.side li a{display:flex; justify-content:space-between; align-items:center; padding:8px 12px; border-radius:9px; font-size:13.5px; color:var(--ink-2); transition:.15s}
aside.side li a:hover{background:var(--bg-soft); color:var(--ink)}
aside.side li a.active{background:var(--blue-soft); color:var(--blue-deep); font-weight:500}
aside.side li a .n{font-family:var(--mono); font-size:10px; color:var(--ink-3); letter-spacing:.06em}

/* main */
main.doc{padding:44px 48px 100px; max-width:860px}
.breadcrumb{font-family:var(--mono); font-size:11px; letter-spacing:.1em; color:var(--ink-3); margin-bottom:22px; text-transform:uppercase}
.breadcrumb b{color:var(--blue); font-weight:500}
h1.doc-title{font-weight:500; font-size:clamp(32px,4vw,46px); letter-spacing:-.035em; line-height:1.05; margin:0 0 18px}
p.doc-lead{font-size:16.5px; line-height:1.7; color:var(--ink-2); margin:0 0 32px; max-width:62ch}
p.doc-lead b{color:var(--ink); font-weight:600}

/* meta row */
.meta-row{display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin:0 0 48px}
.meta-row .cell{border:1px solid var(--line); border-radius:12px; padding:14px 16px; display:flex; flex-direction:column; gap:5px; background:#fff}
.meta-row .k{font-family:var(--mono); font-size:9.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-3)}
.meta-row .v{font-size:13.5px; font-weight:500; color:var(--ink); display:flex; align-items:center; gap:7px}
.meta-row .v .dot{width:7px; height:7px; border-radius:50%; background:#28a05a; box-shadow:0 0 6px rgba(40,160,90,.5); flex:none}

/* section heading */
h2.sec{display:flex; align-items:baseline; gap:14px; font-weight:500; font-size:24px; letter-spacing:-.025em; margin:56px 0 16px; scroll-margin-top:130px}
h2.sec .hn{font-family:var(--mono); font-size:13px; color:var(--blue); letter-spacing:.1em}
main.doc > p{font-size:15px; line-height:1.75; color:var(--ink-2); margin:0 0 14px; max-width:66ch}
main.doc > p b{color:var(--ink); font-weight:600}

ul.bullets{list-style:none; padding:0; margin:14px 0 24px; display:flex; flex-direction:column; gap:9px}
ul.bullets li{display:flex; gap:11px; font-size:14.5px; line-height:1.6; color:var(--ink-2); align-items:baseline}
ul.bullets li::before{content:"→"; font-family:var(--mono); color:var(--blue); font-size:12px; flex:none}

/* callout */
.callout{display:flex; gap:14px; align-items:baseline; padding:16px 20px; background:var(--bg-soft); border:1px solid var(--line); border-left:3px solid var(--blue); border-radius:0 12px 12px 0; margin:20px 0 28px; font-size:14px; line-height:1.65; color:var(--ink-2)}
.callout .k{font-family:var(--mono); font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--blue); font-weight:500; flex:none}
.callout p{margin:0}
.callout code{background:#fff}

/* flow steps */
.flow{display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin:24px 0 40px}
.flow .step{border:1px solid var(--line); border-radius:14px; padding:20px 18px; display:flex; flex-direction:column; gap:9px; min-height:150px; background:#fff; transition:.2s}
.flow .step:hover{border-color:var(--blue); transform:translateY(-2px)}
.flow .step .n{font-family:var(--mono); font-size:10px; color:var(--blue); letter-spacing:.18em}
.flow .step h4{font-size:15px; font-weight:600; margin:0; letter-spacing:-.01em}
.flow .step p{font-size:12.5px; line-height:1.55; color:var(--ink-3); margin:0}
a.step{cursor:pointer}

/* code block */
.code{background:var(--night); border-radius:14px; overflow:hidden; margin:20px 0 32px; border:1px solid rgba(11,26,46,.35)}
.code .code-top{display:flex; justify-content:space-between; align-items:center; padding:10px 16px; border-bottom:1px solid rgba(255,255,255,.1)}
.code .tabs{display:flex; gap:4px}
.code .tabs span{font-family:var(--mono); font-size:11px; padding:4px 10px; border-radius:6px; color:rgba(255,255,255,.5); cursor:pointer}
.code .tabs span.on{background:rgba(126,201,255,.15); color:var(--sky)}
.code .copy{font-family:var(--mono); font-size:10px; letter-spacing:.12em; color:rgba(255,255,255,.45); display:flex; gap:10px; align-items:center}
.code .copy b{color:var(--sky); cursor:pointer; font-weight:500}
.code pre{margin:0; padding:20px 22px; font-family:var(--mono); font-size:13px; line-height:1.7; color:#dce7f2; overflow-x:auto}
.code pre .c{color:#5b7998}
.code pre .k{color:#c4a3ff}
.code pre .s{color:#7ee5ff}
.code pre .v{color:#a8e06c}

/* endpoint / doc table */
.endpoints{margin:20px 0 40px; border:1px solid var(--line); border-radius:14px; overflow:hidden; font-family:var(--mono)}
.endpoints .ep{display:grid; grid-template-columns:140px 1fr 110px 150px; border-bottom:1px solid var(--line); font-size:12.5px; background:#fff}
.endpoints .ep:last-child{border-bottom:none}
.endpoints .ep > div{padding:13px 18px; border-right:1px solid var(--line); display:flex; align-items:center; gap:10px; min-width:0; overflow-wrap:anywhere}
.endpoints .ep > div:last-child{border-right:none}
.endpoints .ep.head{background:var(--bg-soft); color:var(--ink-3); font-size:10px; letter-spacing:.18em; text-transform:uppercase}
.endpoints .ep .method{color:var(--blue); font-weight:500}
.endpoints .ep .path{color:var(--ink)}
.endpoints .ep .path a:hover{color:var(--blue)}
.endpoints .ep .status{color:var(--ink-3); font-size:11.5px}
.endpoints .ep:not(.head):hover{background:var(--bg-soft)}

/* apply CTA panel */
.apply-panel{background:linear-gradient(135deg,var(--night) 0%, #0a2540 100%); color:#fff; border-radius:18px; padding:32px 34px; margin:24px 0 40px; position:relative; overflow:hidden}
.apply-panel::after{content:""; position:absolute; right:-80px; top:-80px; width:260px; height:260px; border:1px solid rgba(126,201,255,.25); border-radius:50%}
.apply-panel .eyebrow{font-family:var(--mono); font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--sky)}
.apply-panel h3{font-size:22px; font-weight:500; letter-spacing:-.02em; margin:10px 0 8px}
.apply-panel p{font-size:14px; line-height:1.6; color:rgba(255,255,255,.7); margin:0 0 20px; max-width:52ch}
.apply-actions{display:flex; gap:12px; align-items:center; flex-wrap:wrap}
.apply-btn{display:inline-flex; align-items:center; gap:9px; padding:12px 22px; border-radius:999px; background:#fff; color:var(--night); font:600 14px var(--sans); transition:.2s}
.apply-btn:hover{background:var(--sky)}
.apply-btn.ghost{background:transparent; border:1px solid rgba(255,255,255,.3); color:#fff; font-weight:500}
.apply-btn.ghost:hover{background:#fff; color:var(--night)}
.apply-note{font-family:var(--mono); font-size:11px; color:rgba(255,255,255,.45); letter-spacing:.04em; margin:14px 0 0}

/* asset preview */
.asset-preview{border:1px solid var(--line); border-radius:14px; padding:36px; background:var(--bg-soft); display:flex; flex-direction:column; gap:16px; align-items:center; margin:20px 0 36px}
.asset-preview .k{font-family:var(--mono); font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-3); align-self:flex-start}
.asset-preview img{max-width:320px; width:100%; height:auto; border-radius:10px; box-shadow:0 16px 40px -20px rgba(11,26,46,.25)}

/* prev/next */
.prevnext{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:72px}
.pn{padding:20px 22px; border:1px solid var(--line); border-radius:14px; display:flex; flex-direction:column; gap:6px; transition:.2s; background:#fff}
.pn:hover{border-color:var(--blue); transform:translateY(-2px)}
.pn .k{font-family:var(--mono); font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-3)}
.pn .t{font-size:15.5px; font-weight:500; letter-spacing:-.012em; color:var(--ink)}
.pn.next{text-align:right; align-items:flex-end}
.pn.next .t{color:var(--blue)}

/* right toc */
aside.toc{border-left:1px solid var(--line); padding:48px 24px 64px; position:sticky; top:104px; align-self:start; max-height:calc(100vh - 104px); overflow-y:auto; font-size:13px}
aside.toc h6{font-family:var(--mono); font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-3); margin:0 0 14px}
aside.toc ul{list-style:none; padding:0; margin:0 0 32px; display:flex; flex-direction:column; gap:7px}
aside.toc li a{color:var(--ink-3); font-size:12.5px; line-height:1.5; transition:.15s}
aside.toc li a:hover{color:var(--ink)}
aside.toc li a.act{color:var(--blue); border-left:2px solid var(--blue); padding-left:10px; margin-left:-12px; font-weight:500}

/* support box */
.support-box{margin-top:8px; padding:16px; background:var(--bg-soft); border:1px solid var(--line); border-radius:12px}
.support-box .t{font-size:12.5px; font-weight:600; margin-bottom:4px}
.support-box .d{font-size:11.5px; color:var(--ink-3); line-height:1.5; margin-bottom:10px}
.support-box a.go{display:inline-flex; font-size:12px; color:var(--blue); font-weight:500}

@media (max-width:1160px){
  .layout{grid-template-columns:240px minmax(0,1fr)}
  aside.toc{display:none}
}
@media (max-width:900px){
  .layout{grid-template-columns:1fr}
  aside.side{display:none}
  main.doc{padding:32px 24px 80px}
  .flow,.meta-row{grid-template-columns:1fr 1fr}
  .top ul{display:none}
}
@media (max-width:560px){
  .flow,.meta-row{grid-template-columns:1fr}
  .endpoints .ep{grid-template-columns:56px 1fr}
  .endpoints .ep > div:nth-child(3),.endpoints .ep > div:nth-child(4){display:none}
}
