/* Meeton ai Docs — navy frame · white canvas · green accent (DESIGN.md v2) */
:root {
  --bg:#ffffff; --surface:#F6F8FB; --surface2:#EDF1F8;
  --border:#E4E8F2; --border2:#D2D8E6;
  --text:#3F4763; --heading:#0F1128; --sub:#656D8A;
  --navy:#0F1128; --navy-2:#171A36; --navy-3:#22264B; --navy-deep:#0A0B1E;
  --on-navy:#FFFFFF; --on-navy-sub:#AEB4D6; --on-navy-border:rgba(255,255,255,.12);
  --on-navy-surface:rgba(255,255,255,.05);
  --cta:#07CB79; --cta-hover:#0BD986; --cta-press:#06B86D; --cta-ink:#067A48;
  --cta-light:#E7FBF1; --cta-wash:#F2FCF7; --cta-border:#cdeede; --cta-glow:rgba(7,203,121,.28);
  --red:#e0475b; --red-wash:#fdf1f3;
  --fd:'Inter','Hiragino Kaku Gothic ProN','Hiragino Sans','Noto Sans CJK JP','Yu Gothic UI',Meiryo,sans-serif;
  --fb:var(--fd);
  --fm:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --r-btn:12px; --r-card:16px;
  --ease:cubic-bezier(.16,1,.3,1);
  --header-h:60px; --sidebar-w:272px; --toc-w:220px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 24px)}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--fb);font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased}
a{color:var(--cta-ink);text-decoration:none;font-weight:600}
a:hover{text-decoration:underline}
code,kbd,pre{font-family:var(--fm)}
:not(pre)>code{background:var(--surface2);color:var(--heading);padding:.12em .4em;border-radius:6px;font-size:.86em;font-weight:500}
kbd{background:var(--surface);border:1px solid var(--border2);border-bottom-width:2px;border-radius:6px;padding:.05em .45em;font-size:.82em;color:var(--heading)}

/* ── Header (navy frame) ───────────────────────────────── */
.hdr{position:sticky;top:0;z-index:50;height:var(--header-h);background:var(--navy);color:var(--on-navy);border-bottom:1px solid var(--on-navy-border);display:flex;align-items:center;gap:16px;padding:0 20px}
.hdr .brand{display:flex;align-items:center;gap:10px;color:var(--on-navy);font-weight:800;font-size:17px;letter-spacing:-.3px;white-space:nowrap;flex:none}
.hdr .brand:hover{text-decoration:none}
.hdr .mark{width:26px;height:26px;border-radius:8px;background:var(--cta);display:grid;place-items:center;color:var(--navy);font-weight:900;font-size:13px}
.hdr .brand .docs{font-family:var(--fm);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--cta);border:1px solid rgba(7,203,121,.4);padding:2px 8px;border-radius:999px;margin-left:4px}
.hdr .search{margin-left:auto;display:flex;align-items:center;gap:8px;background:var(--on-navy-surface);border:1px solid var(--on-navy-border);border-radius:10px;padding:6px 10px;width:min(260px,30vw);min-width:140px;color:var(--on-navy-sub)}
.hdr .search input{background:none;border:0;outline:0;color:var(--on-navy);font:inherit;font-size:14px;width:100%}
.hdr .search input::placeholder{color:var(--on-navy-sub)}
.hdr .search kbd{background:rgba(255,255,255,.08);border-color:var(--on-navy-border);color:var(--on-navy-sub);font-size:11px}
.hdr nav{display:flex;gap:4px;align-items:center}
.hdr nav a{color:var(--on-navy-sub);font-size:14px;font-weight:600;padding:6px 10px;border-radius:8px;white-space:nowrap}
.hdr nav a:hover{color:var(--on-navy);background:var(--on-navy-surface);text-decoration:none}
.hdr nav a.cta{background:var(--cta);color:#04231a;font-weight:700;white-space:nowrap}
.hdr nav a.cta:hover{background:var(--cta-hover)}
.hdr .menu{display:none;background:none;border:1px solid var(--on-navy-border);color:var(--on-navy);border-radius:8px;width:38px;height:38px;cursor:pointer;font-size:18px}

/* ── Layout ─────────────────────────────────────────────── */
.docs{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr) var(--toc-w);max-width:1400px;margin:0 auto;gap:0}
.sidebar{position:sticky;top:var(--header-h);height:calc(100vh - var(--header-h));overflow-y:auto;border-right:1px solid var(--border);padding:24px 16px 48px;background:var(--bg)}
.sidebar .grp{margin-bottom:22px}
.sidebar .grp-title{font-family:var(--fm);font-size:11px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--sub);padding:0 10px 8px}
.sidebar a{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;color:var(--text);font-weight:500;font-size:14.5px;border-left:2px solid transparent;transition:background .2s var(--ease),color .2s}
.sidebar a:hover{background:var(--surface);color:var(--heading);text-decoration:none}
.sidebar a.active{background:var(--cta-wash);color:var(--heading);font-weight:700;border-left-color:var(--cta);border-radius:0 8px 8px 0}
.sidebar a .pill{margin-left:auto;font-family:var(--fm);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--cta-ink);background:var(--cta-light);padding:1px 7px;border-radius:999px}
.sidebar a.hidden{display:none}
.sidebar .noresult{padding:8px 10px;font-size:13px;color:var(--sub)}
.sidebar .grp.hidden{display:none}
.sidebar .tree.hidden{display:none}
.sidebar .tree-row{display:flex;align-items:center}
.sidebar .tree-row a.parent{flex:1;min-width:0}
.sidebar a.parent.within{color:var(--heading);font-weight:700}
.sidebar .tog{flex:none;width:28px;height:28px;border:0;background:none;color:var(--sub);cursor:pointer;border-radius:6px;display:grid;place-items:center}
.sidebar .tog::before{content:"";width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .25s var(--ease)}
.sidebar .tog:hover{background:var(--surface);color:var(--heading)}
.sidebar .tree.open .tog::before{transform:rotate(45deg)}
.sidebar .kids{display:none;margin:2px 0 4px 14px;padding-left:10px;border-left:1px solid var(--border)}
.sidebar .tree.open .kids{display:block}
.sidebar .kids a{font-size:13.5px;padding:5px 10px}
.sidebar .kids a.active{border-left-color:var(--cta)}

.doc{padding:40px clamp(20px,4vw,56px) 80px;min-width:0}
.doc>article{max-width:780px}
.toc{position:sticky;top:var(--header-h);height:calc(100vh - var(--header-h));overflow-y:auto;padding:40px 20px 40px 8px;font-size:13.5px}
.toc .toc-title{font-family:var(--fm);font-size:11px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--sub);margin-bottom:10px}
.toc a{display:block;color:var(--sub);font-weight:500;padding:4px 0 4px 12px;border-left:2px solid var(--border);line-height:1.45}
.toc a.h3{padding-left:24px;font-size:12.5px}
.toc a:hover{color:var(--heading);text-decoration:none}
.toc a.active{color:var(--cta-ink);border-left-color:var(--cta);font-weight:700}

/* ── Typography ─────────────────────────────────────────── */
.eyebrow{font-family:var(--fm);font-size:12px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--cta-ink);margin:0 0 10px}
h1{font-family:var(--fd);font-size:clamp(30px,4vw,42px);font-weight:900;letter-spacing:-1px;line-height:1.15;color:var(--heading);margin:0 0 14px}
.lead{font-size:18.5px;line-height:1.7;color:var(--sub);margin:0 0 32px}
h2{font-size:clamp(22px,2.6vw,27px);font-weight:800;letter-spacing:-.4px;color:var(--heading);margin:52px 0 14px;padding-top:20px;border-top:1px solid var(--border);line-height:1.3}
h2:first-of-type{border-top:0;padding-top:0;margin-top:36px}
h3{font-size:18px;font-weight:700;color:var(--heading);margin:32px 0 10px;letter-spacing:-.2px}
h4{font-size:15px;font-weight:700;color:var(--heading);margin:22px 0 6px}
p{margin:0 0 16px}
ul,ol{padding-left:24px;margin:0 0 18px}
li{margin:5px 0}
li>ul,li>ol{margin:6px 0 0}
hr{border:0;border-top:1px solid var(--border);margin:40px 0}
strong{color:var(--heading);font-weight:700}
.muted{color:var(--sub)}
.small{font-size:14px}
h2 .anchor,h3 .anchor{opacity:0;margin-left:8px;color:var(--border2);font-weight:400;font-size:.8em}
h2:hover .anchor,h3:hover .anchor{opacity:1}

/* ── Code blocks ─────────────────────────────────────────── */
pre{position:relative;font-variant-ligatures:none;background:var(--navy);color:#E6E9F5;border-radius:12px;padding:18px 20px;overflow-x:auto;font-size:13.5px;line-height:1.65;margin:0 0 20px;border:1px solid var(--navy-3)}
pre code{color:inherit;background:none;padding:0;font-size:inherit}
pre .c{color:var(--on-navy-sub)}
pre .k{color:#8FD3FF}
pre .s{color:var(--cta)}
pre .a{color:#F7C97A}
.codeblock{position:relative;margin:0 0 20px}
.codeblock pre{margin:0}
.codeblock .lbl{position:absolute;z-index:2;top:0;left:0;font-family:var(--fm);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--on-navy-sub);padding:6px 12px;background:var(--navy-2);border-radius:12px 0 8px 0;border-bottom:1px solid var(--navy-3);border-right:1px solid var(--navy-3)}
.codeblock.labeled pre{padding-top:34px}
.copy{position:absolute;top:8px;right:8px;background:var(--on-navy-surface);border:1px solid var(--on-navy-border);color:var(--on-navy-sub);font:600 11px var(--fm);letter-spacing:1px;text-transform:uppercase;padding:5px 10px;border-radius:8px;cursor:pointer;transition:all .2s var(--ease)}
.copy:hover{color:var(--on-navy);border-color:var(--cta);background:rgba(7,203,121,.12)}
.copy.ok{color:var(--cta);border-color:var(--cta)}

/* ── Callouts ──────────────────────────────────────────── */
.callout{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:14px 18px;border-radius:12px;margin:0 0 20px;border:1px solid var(--border);background:var(--surface);font-size:15px}
.callout .ico{font-family:var(--fm);font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding-top:3px;white-space:nowrap}
.callout p{margin:0 0 8px}
.callout p:last-child{margin:0}
.callout.tip{background:var(--cta-wash);border-color:var(--cta-border)}
.callout.tip .ico{color:var(--cta-ink)}
.callout.note .ico{color:var(--heading)}
.callout.warn{background:var(--red-wash);border-color:#f3c9d0}
.callout.warn .ico{color:var(--red)}

/* ── Tables ────────────────────────────────────────────── */
.tbl{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--border);border-radius:12px;overflow:hidden;margin:0 0 22px;font-size:14.5px}
.tbl th,.tbl td{padding:11px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--border)}
.tbl th{background:var(--surface);color:var(--heading);font-weight:700;font-size:13px}
.tbl tr:last-child td{border-bottom:0}
.tbl td:first-child{color:var(--heading);font-weight:600;white-space:nowrap}
.tbl td code{white-space:nowrap}
.tbl-wrap{overflow-x:auto;margin:0 0 22px}
.tbl-wrap .tbl{margin:0;min-width:560px}
.status{display:inline-block;font-family:var(--fm);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:2px 9px;border-radius:999px}
.status.full{background:var(--cta-light);color:var(--cta-ink)}
.status.limited{background:#FFF4DD;color:#8A5A00}
.status.off{background:var(--surface2);color:var(--sub)}

/* ── Cards / grids ─────────────────────────────────────── */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin:0 0 24px}
.card{display:block;position:relative;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-card);padding:20px 20px 18px;color:var(--text);font-weight:400;transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s;overflow:hidden}
.card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--cta);opacity:0;transition:opacity .3s}
.card:hover{text-decoration:none;transform:translateY(-4px);box-shadow:0 12px 40px rgba(7,203,121,.12);border-color:transparent}
.card:hover::before{opacity:1}
.card .stage{font-family:var(--fm);font-size:10.5px;letter-spacing:2px;text-transform:uppercase;color:var(--cta-ink);margin-bottom:6px}
.card h3{margin:0 0 6px;font-size:16.5px}
.card p{margin:0;font-size:14px;color:var(--sub);line-height:1.6}

/* ── Steps ─────────────────────────────────────────────── */
.steps{list-style:none;padding:0;margin:0 0 24px;counter-reset:s}
.steps>li{position:relative;padding:0 0 22px 48px;counter-increment:s}
.steps>li::before{content:counter(s);position:absolute;left:0;top:0;width:32px;height:32px;border-radius:50%;background:var(--cta);color:#04231a;font:800 14px var(--fm);display:grid;place-items:center}
.steps>li::after{content:"";position:absolute;left:15px;top:36px;bottom:0;width:2px;background:var(--border)}
.steps>li:last-child::after{display:none}
.steps>li>strong{display:block;color:var(--heading);font-size:16px;margin-bottom:4px}
.steps>li p{margin:0 0 8px}

/* ── Flow diagram ──────────────────────────────────────── */
.flow{display:flex;align-items:stretch;gap:8px;margin:0 0 10px;flex-wrap:wrap}
.flow .box{flex:1 1 140px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 14px;min-width:140px}
.flow .box b{display:block;color:var(--heading);font-size:14px}
.flow .box span{font-size:12.5px;color:var(--sub);font-family:var(--fm)}
.flow .box.ok{background:var(--cta-wash);border-color:var(--cta-border)}
.flow .arr{align-self:center;color:var(--border2);font-size:20px}
.flow+.cap{font-size:13.5px;color:var(--sub);margin:0 0 24px}

/* ── FAQ ───────────────────────────────────────────────── */
details.faq{border:1px solid var(--border);border-radius:12px;margin:0 0 10px;overflow:hidden}
details.faq summary{cursor:pointer;list-style:none;padding:13px 18px;font-weight:700;color:var(--heading);display:flex;align-items:center;gap:12px;font-size:15.5px}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::before{content:"+";width:24px;height:24px;border-radius:50%;background:var(--surface);display:grid;place-items:center;font-weight:400;color:var(--sub);flex:none;transition:transform .3s var(--ease),background .2s,color .2s}
details.faq[open] summary::before{transform:rotate(45deg);background:var(--cta-light);color:var(--cta-ink)}
details.faq .body{padding:0 18px 16px 54px;font-size:15px}
details.faq .body p:last-child{margin:0}

/* ── Key-value (facts) ──────────────────────────────────── */
.kv{display:grid;grid-template-columns:200px 1fr;border:1px solid var(--border);border-radius:12px;overflow:hidden;margin:0 0 22px;font-size:14.5px}
.kv>div{padding:11px 14px;border-bottom:1px solid var(--border)}
.kv>div:nth-child(odd){background:var(--surface);color:var(--heading);font-weight:700;font-size:13.5px}
.kv>div:nth-last-child(-n+2){border-bottom:0}

/* ── Page footer nav ───────────────────────────────────── */
.pager{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:64px;padding-top:24px;border-top:1px solid var(--border)}
.pager a{display:block;border:1px solid var(--border);border-radius:12px;padding:14px 16px;color:var(--heading);font-weight:700;transition:border-color .2s,box-shadow .3s var(--ease)}
.pager a:hover{text-decoration:none;border-color:var(--cta);box-shadow:0 8px 24px rgba(7,203,121,.1)}
.pager a small{display:block;font-family:var(--fm);font-size:10.5px;letter-spacing:2px;text-transform:uppercase;color:var(--sub);font-weight:700;margin-bottom:4px}
.pager a.next{text-align:right}
.pager a:empty{visibility:hidden}
.foot{margin-top:28px;font-size:13px;color:var(--sub);display:flex;gap:16px;flex-wrap:wrap}

/* ── Hero (overview page) ───────────────────────────────── */
.hero{background:var(--navy);color:var(--on-navy);border-radius:20px;padding:40px clamp(24px,4vw,48px);margin:0 0 36px;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;right:-80px;top:-80px;width:280px;height:280px;border-radius:50%;background:var(--cta);filter:blur(100px);opacity:.25}
.hero .eyebrow{color:var(--cta)}
.hero h1{color:var(--on-navy);margin-bottom:12px}
.hero p{color:var(--on-navy-sub);font-size:17px;max-width:620px;margin:0 0 22px}
.hero .btns{display:flex;gap:10px;flex-wrap:wrap}
.btn{display:inline-block;padding:10px 20px;border-radius:var(--r-btn);font-weight:700;font-size:15px;transition:transform .25s var(--ease),box-shadow .25s}
.btn.primary{background:var(--cta);color:#04231a;box-shadow:0 4px 16px var(--cta-glow)}
.btn.primary:hover{transform:translateY(-2px);text-decoration:none;box-shadow:0 8px 28px var(--cta-glow)}
.btn.ghost{border:1px solid var(--on-navy-border);color:var(--on-navy)}
.btn.ghost:hover{text-decoration:none;border-color:var(--cta);color:var(--cta)}
.stages{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:0 0 28px}
.stages .st{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 14px}
.stages .st .n{font-family:var(--fm);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--cta-ink);font-weight:700}
.stages .st b{display:block;color:var(--heading);margin:2px 0}
.stages .st span{font-size:13px;color:var(--sub)}

/* ── Responsive ────────────────────────────────────────── */
@media (max-width:1200px){
  .docs{grid-template-columns:var(--sidebar-w) minmax(0,1fr)}
  .toc{display:none}
}
@media (max-width:1100px){.hdr nav a:not(.cta){display:none}.hdr .brand .docs{display:none}}
@media (max-width:900px){
  .docs{grid-template-columns:1fr}
  .hdr .menu{display:block}
  .hdr .search{min-width:0;flex:1}
  .hdr nav{display:none}
  .sidebar{position:fixed;left:0;top:var(--header-h);width:min(320px,86vw);transform:translateX(-105%);transition:transform .3s var(--ease);z-index:40;box-shadow:0 20px 60px rgba(0,0,0,.15)}
  body.nav-open .sidebar{transform:none}
  .scrim{position:fixed;inset:var(--header-h) 0 0 0;background:rgba(15,17,40,.4);z-index:35;display:none}
  body.nav-open .scrim{display:block}
  .doc{padding:28px 16px 64px}
  .stages{grid-template-columns:1fr 1fr}
  .kv{grid-template-columns:1fr}
  .kv>div:nth-child(odd){border-bottom:0;padding-bottom:2px}
  .pager{grid-template-columns:1fr}
  .pager a.next{text-align:left}
}
@media (max-width:480px){.stages{grid-template-columns:1fr}.hdr .brand .docs{display:none}}

/* ── Figures ───────────────────────────────────────────── */
.fig{margin:8px 0 26px;padding:18px 18px 12px;background:var(--surface);border:1px solid var(--border);border-radius:16px}
.fig svg{display:block;width:100%;height:auto}
.fig figcaption{margin-top:10px;font-size:13px;color:var(--sub);text-align:center}
.fig.plain{background:none;border:0;padding:0}

/* ── Terminology notes ─────────────────────────────────── */
.callout.term{background:var(--bg);border-style:dashed}
.callout.term .ico{color:var(--sub)}

/* ── Language switcher ─────────────────────────────────── */
.hdr .lang{display:flex;border:1px solid var(--on-navy-border);border-radius:10px;overflow:hidden;flex:none}
.hdr .lang a{font:700 12px var(--fb);padding:7px 12px;color:var(--on-navy-sub);border-radius:0}
.hdr .lang a:hover{text-decoration:none;color:var(--on-navy);background:var(--on-navy-surface)}
.hdr .lang a[aria-current="true"]{background:var(--cta);color:var(--navy);cursor:default}
@media (max-width:900px){.hdr .lang a{padding:7px 9px}}
