/* uLanding Docs static site */
:root{
  --bg:#ffffff; --bg-alt:#f6f8fb; --bg-code:#f4f5f7; --text:#1f2733; --text-soft:#5b6675;
  --border:#e5e9f0; --primary:#4f46e5; --primary-soft:#eef0fe; --accent:#0ea5e9;
  --note:#0ea5e9; --tip:#22c55e; --warn:#f59e0b; --danger:#ef4444; --example:#8b5cf6;
  --sidebar-w:300px; --topbar-h:60px; --radius:10px; --shadow:0 6px 24px rgba(20,30,60,.08);
}
html[data-theme="dark"]{
  --bg:#0f141b; --bg-alt:#161d27; --bg-code:#1b232f; --text:#e6ebf2; --text-soft:#9aa7b8;
  --border:#243040; --primary:#8b93ff; --primary-soft:#1d2340; --accent:#38bdf8; --shadow:0 6px 24px rgba(0,0,0,.4);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg);color:var(--text);line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline}
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:8px;top:8px;background:var(--primary);color:#fff;padding:8px 12px;border-radius:6px;z-index:100}

/* Topbar */
.topbar{position:sticky;top:0;z-index:50;height:var(--topbar-h);display:flex;align-items:center;gap:14px;
  padding:0 18px;background:var(--bg);border-bottom:1px solid var(--border)}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--text)}
.brand:hover{text-decoration:none}
.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;
  background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;font-weight:800;font-size:14px}
.brand-text small{display:block;font-weight:500;color:var(--text-soft);font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.menu-toggle{display:none;background:none;border:1px solid var(--border);border-radius:8px;color:var(--text);
  font-size:18px;width:38px;height:38px;cursor:pointer}
.theme-toggle{margin-left:auto;background:none;border:1px solid var(--border);border-radius:8px;color:var(--text);
  font-size:18px;width:38px;height:38px;cursor:pointer}
.search-wrap{position:relative;flex:1;max-width:460px;margin-left:auto}
#search{width:100%;padding:9px 14px;border:1px solid var(--border);border-radius:999px;background:var(--bg-alt);
  color:var(--text);font-size:14px;outline:none}
#search:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}
.search-results{position:absolute;top:46px;left:0;right:0;background:var(--bg);border:1px solid var(--border);
  border-radius:12px;box-shadow:var(--shadow);max-height:62vh;overflow:auto;padding:6px}
.search-results a{display:block;padding:10px 12px;border-radius:8px;color:var(--text)}
.search-results a:hover,.search-results a.sel{background:var(--primary-soft);text-decoration:none}
.search-results .sr-title{font-weight:600}
.search-results .sr-snip{font-size:12.5px;color:var(--text-soft);display:block;margin-top:2px}
.search-results .sr-empty{padding:14px;color:var(--text-soft)}

/* Layout */
.layout{display:flex;align-items:flex-start}
.sidebar{position:sticky;top:var(--topbar-h);height:calc(100vh - var(--topbar-h));width:var(--sidebar-w);
  flex:0 0 var(--sidebar-w);overflow-y:auto;border-right:1px solid var(--border);background:var(--bg-alt);padding:18px 12px 60px}
.sidebar-backdrop{display:none}
.nav-section{margin-bottom:16px}
.nav-section-title{display:block;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  color:var(--text-soft);padding:6px 10px}
.sidebar ul{list-style:none;margin:0;padding:0}
.sidebar li a{display:block;padding:7px 10px;border-radius:8px;color:var(--text-soft);font-size:14px}
.sidebar li a:hover{background:var(--primary-soft);color:var(--text);text-decoration:none}
.sidebar li a.active{background:var(--primary);color:#fff;font-weight:600}

/* Content */
.content{flex:1;min-width:0;padding:34px 46px 60px;max-width:920px;margin:0 auto}
.doc img{max-width:100%;height:auto;border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);margin:1em 0}
.doc figure{margin:1.4em 0}
.doc figcaption{font-size:.9em;color:var(--text-soft);margin-top:.4em}
.doc h1{font-size:2.15rem;line-height:1.2;margin:.2em 0 .65em;letter-spacing:-.02em;font-weight:750}
.doc h2{font-size:1.45rem;margin:2em 0 .65em;padding-bottom:.35em;border-bottom:1px solid var(--border);font-weight:700}
.doc h3{font-size:1.18rem;margin:1.6em 0 .5em;font-weight:650}
.doc h4{font-size:1.05rem;margin:1.3em 0 .4em}
.doc p{margin:.75em 0}
.doc ul,.doc ol{padding-left:1.4em;margin:.7em 0}
.doc li{margin:.3em 0}
.doc hr{border:none;border-top:1px solid var(--border);margin:2em 0}
.doc code{background:var(--bg-code);padding:.15em .4em;border-radius:5px;font-size:.88em;
  font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace}
.doc pre{background:var(--bg-code);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;
  overflow:auto;margin:1em 0}
.doc pre code{background:none;padding:0;font-size:.85em;line-height:1.6}
.doc blockquote{margin:1.1em 0;padding:.9em 1.1em;border-left:4px solid var(--note);background:var(--bg-alt);
  border-radius:0 var(--radius) var(--radius) 0;color:var(--text)}
.doc blockquote p:first-child{margin-top:0}
.doc blockquote p:last-child{margin-bottom:0}
.doc blockquote.cb-tip{border-left-color:var(--tip);background:rgba(34,197,94,.08)}
.doc blockquote.cb-warn{border-left-color:var(--warn);background:rgba(245,158,11,.10)}
.doc blockquote.cb-danger{border-left-color:var(--danger);background:rgba(239,68,68,.10)}
.doc blockquote.cb-note{border-left-color:var(--note);background:rgba(14,165,233,.08)}
.doc blockquote.cb-example{border-left-color:var(--example);background:rgba(139,92,246,.08)}
.doc blockquote.cb-shot{border-left-color:var(--accent);background:repeating-linear-gradient(45deg,var(--bg-alt),var(--bg-alt) 10px,transparent 10px,transparent 20px);font-style:italic}
.doc table{width:100%;border-collapse:collapse;margin:1.2em 0;font-size:.93em;display:block;overflow-x:auto;border-radius:var(--radius)}
.doc th,.doc td{border:1px solid var(--border);padding:10px 12px;text-align:left;vertical-align:top}
.doc thead th{background:var(--bg-alt);font-weight:700}
.doc tbody tr:nth-child(even){background:var(--bg-alt)}
.doc tbody tr:hover{background:var(--primary-soft)}

/* Pager */
.pager{display:flex;justify-content:space-between;gap:14px;margin-top:40px;padding-top:24px;border-top:1px solid var(--border)}
.pager a{display:flex;flex-direction:column;padding:14px 18px;border:1px solid var(--border);border-radius:var(--radius);
  flex:1;max-width:48%}
.pager a:hover{border-color:var(--primary);text-decoration:none;box-shadow:var(--shadow)}
.pager a.next{align-items:flex-end;text-align:right}
.pager span{font-size:12px;color:var(--text-soft)}
.pager strong{color:var(--text)}
.doc-footer{margin-top:36px;color:var(--text-soft);font-size:13px;text-align:center}

@media (max-width:980px){
  .menu-toggle{display:inline-block}
  .sidebar{position:fixed;left:0;top:var(--topbar-h);z-index:40;transform:translateX(-105%);transition:transform .25s ease;box-shadow:var(--shadow)}
  body.nav-open .sidebar{transform:translateX(0)}
  body.nav-open .sidebar-backdrop{display:block;position:fixed;inset:var(--topbar-h) 0 0 0;background:rgba(0,0,0,.4);z-index:30}
  .content{padding:24px 20px 50px}
  .brand-text{display:none}
  .pager a{max-width:none}
}
