/* ooga site: grid paper, Funnel Display wordmark, Inter text, 1.5px rules. */
/* Fonts are self-hosted (no third-party requests). Licenses: fonts/LICENSE.txt */
/* Funnel Display latin-ext */
@font-face {
  font-family: 'Funnel Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/funnel-display-latin-ext-cddee95f.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Funnel Display latin */
@font-face {
  font-family: 'Funnel Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/funnel-display-latin-2e10968a.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Inter latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/inter-latin-ext-367ba69a.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Inter latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/inter-latin-bec94a4d.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Inter latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/inter-latin-ext-367ba69a.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Inter latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/inter-latin-bec94a4d.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


:root{
  color-scheme:light;
  --ink:#111111;
  --muted:rgba(17,17,17,.62);
  --faint:rgba(17,17,17,.36);
  --line:#e0e0e0;
  --paper:#ffffff;
  --rule:1.5px;
  --w:min(1160px, calc(100vw - 32px));
  --pad:clamp(20px,2.6vw,34px);
  --pad-y:clamp(32px,5vw,72px);
  --mark:clamp(112px,21vw,300px);
  --font-display:"Funnel Display","Inter",ui-sans-serif,system-ui,sans-serif;
  --font-text:"Inter",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;overflow-x:hidden;background:var(--paper);color:var(--ink);font-family:var(--font-text);line-height:1.5;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(rgba(204,204,204,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(204,204,204,.12) 1px,transparent 1px);
  background-size:28px 28px}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
h1,p{margin:0}
:focus-visible{outline:var(--rule) solid var(--ink);outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
[hidden]{display:none!important}

.shell{position:relative;z-index:1;width:var(--w);margin:0 auto;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:center}

/* Docs / Dashboard: top edge level with the top of the wordmark's letters. */
.actions{position:absolute;top:var(--pad-y);right:0;z-index:2;display:flex;gap:8px;padding:0 var(--pad)}
.pill{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 14px;border:var(--rule) solid var(--line);background:var(--paper);font-size:14px;letter-spacing:.01em;white-space:nowrap;transition:border-color .15s,background .15s}
.pill:hover{border-color:var(--ink)}
.pill.solid{background:var(--ink);border-color:var(--ink);color:#fff}
.pill.solid:hover{background:#000}

.hero{position:relative;display:flex;flex-direction:column;gap:clamp(28px,4vw,56px);padding:var(--pad-y) var(--pad)}
/* the letters start .265em below the top of their line box: pull them up so the
   visible top of the wordmark is the top of the content (for centering + button alignment) */
.mark{font-family:var(--font-display);font-weight:400;font-size:var(--mark);line-height:.8;margin-top:-.265em;padding-bottom:.2em;letter-spacing:-.055em;margin-left:-.04em}
.tag{max-width:46rem}
.headline{font-family:var(--font-display);font-size:clamp(28px,3.2vw,44px);line-height:1;letter-spacing:-.02em}
.lede{margin-top:clamp(16px,2vw,24px);font-size:clamp(15px,1.3vw,18px);line-height:1.45;color:var(--muted)}

/* install */
.install{display:flex;flex-direction:column;gap:10px;align-items:flex-start;margin-top:clamp(24px,3vw,36px)}
.tabs{display:inline-flex;border:var(--rule) solid var(--line);background:var(--paper)}
.tabs button{padding:6px 14px;font-size:13px;color:var(--muted);border-right:var(--rule) solid var(--line)}
.tabs button:last-child{border-right:0}
.tabs button[aria-selected="true"]{background:var(--ink);color:#fff}
.cmd{align-self:stretch;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 10px 10px 14px;border:var(--rule) solid var(--line);background:var(--paper);font-family:var(--font-mono);font-size:14px;min-width:0}
.cmd code{font-family:inherit;overflow-x:auto;white-space:nowrap;scrollbar-width:none}
.cmd code::-webkit-scrollbar{display:none}
.cmd .p{color:var(--faint);margin-right:8px}
.copy{flex-shrink:0;height:28px;padding:0 10px;border:var(--rule) solid var(--line);font-family:var(--font-text);font-size:12px}
.copy:hover{border-color:var(--ink)}

@media (max-width:640px){
  .actions{position:static;justify-content:flex-end;padding:0}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* ---------- docs ---------- */
.docs-shell{display:block;min-height:0;padding:clamp(16px,2.4vw,32px) 0 clamp(48px,6vw,96px)}
.doc-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 0 clamp(20px,3vw,32px)}
.doc-mark{font-family:var(--font-display);font-size:34px;line-height:1;letter-spacing:-.05em}
.doc-bar-actions{display:flex;gap:8px}
.docs{display:grid;grid-template-columns:180px minmax(0,1fr);border:var(--rule) solid var(--line);background:var(--paper)}
.toc{position:sticky;top:0;align-self:start;display:flex;flex-direction:column;gap:2px;padding:28px 20px;border-right:var(--rule) solid var(--line);font-size:14px}
.toc-title{font-weight:500;margin-bottom:8px}
.toc a{color:var(--muted);padding:3px 0}
.toc a:hover{color:var(--ink)}
.doc{min-width:0;max-width:800px;padding:clamp(24px,4vw,56px) clamp(20px,4vw,56px) clamp(40px,5vw,72px);font-size:15px;line-height:1.6}
.doc-title{font-family:var(--font-display);font-weight:400;font-size:clamp(48px,7vw,88px);line-height:.9;letter-spacing:-.045em;margin-bottom:clamp(16px,2vw,24px)}
.doc section{padding-top:clamp(36px,5vw,56px);scroll-margin-top:16px}
.doc h2{font-family:var(--font-display);font-weight:400;font-size:clamp(28px,3vw,38px);line-height:1;letter-spacing:-.02em;margin:0 0 16px}
.doc h3{font-size:16px;font-weight:500;margin:24px 0 6px}
.doc p,.doc ul{margin:0 0 12px}
.doc ul{padding-left:20px}
.doc li{margin:4px 0}
.doc :not(pre):not(.cmd)>code{font-family:var(--font-mono);font-size:.88em;padding:1px 5px;background:#f3f3f3;border-radius:3px;overflow-wrap:anywhere}
.doc pre{margin:12px 0 16px;padding:14px 16px;border:var(--rule) solid var(--line);background:#fafafa;overflow-x:auto;font-size:13px;line-height:1.6}
.doc pre code{font-family:var(--font-mono)}
.doc pre .p{color:var(--faint)}
.doc pre .c{color:var(--muted)}
.doc .install{margin:0 0 14px}
.doc .note{padding:10px 14px;border-left:3px solid var(--ink);background:#fafafa;color:var(--muted)}
.tbl-wrap{overflow-x:auto;margin:8px 0 16px;border:var(--rule) solid var(--line)}
.doc table{width:100%;border-collapse:collapse;font-size:14px}
.doc th,.doc td{text-align:left;vertical-align:top;padding:8px 12px;border-bottom:1px solid var(--line)}
.doc tr:last-child td{border-bottom:0}
.doc th{font-weight:500;background:#fafafa}
.cmds-tbl td:first-child,.api-tbl td:nth-child(2){white-space:nowrap}
.api-tbl td:first-child{white-space:nowrap;font-family:var(--font-mono);font-size:12px;color:var(--muted)}
@media (max-width:820px){
  .docs{grid-template-columns:1fr}
  .toc{position:static;flex-direction:row;flex-wrap:wrap;gap:4px 14px;padding:14px 20px;border-right:0;border-bottom:var(--rule) solid var(--line)}
  .toc-title{display:none}
  .cmds-tbl td:first-child,.api-tbl td:nth-child(2){white-space:normal}
}

/* ---------- legal pages + footer links ---------- */
.docs.single{grid-template-columns:1fr}
.doc.legal{max-width:760px}
.doc .meta{color:var(--muted);font-size:14px;margin-bottom:8px}
.doc.legal section h2{font-size:clamp(22px,2.4vw,28px)}
.todo{background:#fff3c4;color:#6b5600;padding:0 4px;border-radius:3px;font-weight:500}
.legal-links{display:flex;gap:18px;justify-content:center;padding-top:20px;font-size:13px;color:var(--muted)}
.legal-links a:hover{color:var(--ink)}
.home-foot{position:absolute;left:0;right:0;bottom:14px;padding-top:0}
.doc p a,.doc li a,.doc td a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--faint)}
.doc p a:hover,.doc li a:hover,.doc td a:hover{text-decoration-color:var(--ink)}
.doc.legal section{padding-top:clamp(24px,3vw,32px)}
.doc.legal section h2{margin-bottom:10px}

/* ---------- dashboard ---------- */
.dash{max-width:1160px}
.signin{display:grid;grid-template-columns:1fr minmax(320px,440px);gap:clamp(24px,6vw,96px);align-items:center;min-height:calc(100svh - 64px)}
.signin-mark{display:block;font-family:var(--font-display);font-size:clamp(96px,14vw,200px);line-height:.8;letter-spacing:-.055em;padding-bottom:.22em;margin-bottom:clamp(8px,1.5vw,20px)}
.signin-brand .headline{max-width:22ch}
.signin-card{border:var(--rule) solid var(--line);background:var(--paper);padding:clamp(20px,3vw,32px);display:flex;flex-direction:column;gap:14px}
.card-title{font-family:var(--font-display);font-weight:400;font-size:32px;line-height:1;letter-spacing:-.02em}
.signin-card .install{margin-top:0}
.muted{color:var(--muted)}
.small{font-size:13px}
.mono{font-family:var(--font-mono);font-size:13px}
.right{text-align:right;white-space:nowrap}
.fine{font-size:13px;color:var(--muted);line-height:1.5}
.fine a,.empty a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--faint)}
.pill.wide{width:100%;height:44px;gap:10px;font-size:15px}
.pill.sm{height:28px;padding:0 10px;font-size:13px}
.pill.danger:hover{border-color:#c62832;color:#c62832}
.pill:disabled{opacity:.5;cursor:default}
.notice{font-size:14px;line-height:1.5;padding:10px 12px;border-left:3px solid var(--ink);background:#fafafa}
.notice.ok{border-color:#078547}
.notice.bad{border-color:#c62832}
.dev-form,.inline-form{display:flex;gap:8px}
.dev-form input,.inline-form input{flex:1;min-width:0;height:34px;padding:0 10px;border:var(--rule) solid var(--line);font:inherit;font-size:14px;background:var(--paper)}
.dev-form input:focus,.inline-form input:focus{outline:none;border-color:var(--ink)}
.who{font-size:14px;color:var(--muted);align-self:center;margin-right:6px}
.doc-bar-actions{align-items:center}
.banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;margin-bottom:16px;border:var(--rule) solid var(--ink);background:var(--paper);font-size:15px}
.banner.bad{border-color:#c62832}
.panel{border:var(--rule) solid var(--line);background:var(--paper);padding:clamp(16px,2.4vw,28px);margin-bottom:16px;min-width:0}
.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}
.panel h2{font-family:var(--font-display);font-weight:400;font-size:28px;line-height:1;letter-spacing:-.02em;margin:0}
.panel-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.panel-row .panel{margin-bottom:0}
.panel code{font-family:var(--font-mono);font-size:.88em;padding:1px 5px;background:#f3f3f3;border-radius:3px}
.dash-tbl,.usage-tbl,.keys-tbl{width:100%;border-collapse:collapse;font-size:14px}
.dash-tbl th{text-align:left;font-weight:500;color:var(--muted);font-size:13px;padding:8px 12px;border-bottom:1px solid var(--line)}
.dash-tbl td,.keys-tbl td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
.dash-tbl tr:last-child td,.keys-tbl tr:last-child td{border-bottom:0}
.dash .tbl-wrap{border:0;margin:0;overflow-x:auto}
.sb-name{font-weight:500}
.sb-err{font-size:12px;color:#c62832;margin-top:4px;max-width:46ch}
.copy-ssh{display:block;margin-top:2px;font-family:var(--font-mono);font-size:12px;color:var(--muted)}
.copy-ssh:hover{color:var(--ink)}
.state{display:inline-flex;align-items:center;gap:6px;font-size:13px}
.state::before{content:"";width:8px;height:8px;border-radius:50%;background:#ab8f00}
.state.ok::before{background:#078547}
.state.idle::before{background:#b5b5b5}
.state.bad::before{background:#c62832}
.usage-tbl td{padding:6px 0;border-bottom:1px solid var(--line)}
.usage-tbl tfoot td{border-bottom:0;padding-top:10px;font-weight:500}
.billing-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding-top:14px;border-top:var(--rule) solid var(--line)}
.keys-tbl{margin-top:12px}
.keys-tbl td:first-child{padding-left:0}.keys-tbl td:last-child{padding-right:0}
#new-key{border:var(--rule) solid #078547;padding:12px;margin-bottom:12px;display:flex;flex-direction:column;gap:8px;font-size:14px}
#new-key .cmd code{overflow-x:auto}
.empty{font-size:15px;line-height:1.6}
.empty ol{margin:8px 0 0;padding-left:20px}
@media (max-width:820px){
  .signin{grid-template-columns:1fr;min-height:0;padding-top:24px}
  .panel-row{grid-template-columns:1fr}
  .banner{flex-direction:column;align-items:flex-start}
  .who{display:none}
}
.copy-ssh{white-space:nowrap}
@media (max-width:640px){
  .dash-tbl thead{display:none}
  .dash-tbl tr{display:grid;grid-template-columns:auto auto 1fr;column-gap:14px;row-gap:6px;padding:12px 0;border-bottom:1px solid var(--line)}
  .dash-tbl tr:last-child{border-bottom:0}
  .dash-tbl td{padding:0;border:0}
  .dash-tbl .c-name{grid-column:1/3}
  .dash-tbl .c-state{grid-column:3;justify-self:end}
  .dash-tbl .c-age{justify-self:end}
  .dash-tbl .c-act{grid-column:1/-1;text-align:left}
}
