/* OwlHound shared foundation, loaded first by every page (portal, status pages, marketing site).
   Fonts: Geist and Geist Mono (SIL Open Font License 1.1, see /fonts/OFL.txt), served from this site.
   Values here are the source of truth in DESIGN.md; pages may still carry older copies of the same values. */
@font-face{font-family:"Geist";font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/geist-latin-ext.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Geist";font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/geist-latin.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}
@font-face{font-family:"Geist Mono";font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/geist-mono-latin-ext.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Geist Mono";font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/geist-mono-latin.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:dark;
  --font:"Geist",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --bg:#0b0f14;--panel:#12181f;--panel2:#161e27;--line:#1f2a35;--line2:#2c3a48;--field-line:#526478;
  --text:#e8eef4;--text2:#c7d3de;--muted:#93a4b3;--green:#34d399;--on-green:#06281c;--blue:#60a5fa;--amber:#fbbf24;--red:#f87171;--violet:#818cf8;
  --s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;
  --r-1:8px;--r-2:12px;--r-3:16px;
  --t-xs:.75rem;--t-sm:.875rem;--t-md:1rem;--t-lg:1.25rem;--t-xl:1.75rem;
  --ok-bg:#0f2a1f;--ok-line:#065f46;--ok-text:#6ee7b7;--err-bg:#2a1515;--err-line:#7f1d1d;--err-text:#fca5a5;--warn-bg:#2a1f0a;--warn-line:#78500a;--warn-text:#fcd34d;
  --violet-text:#a5b4fc;--violet-text2:#c7d2fe;--violet-bg:#1e1b4b;--violet-line:#3730a3;--on-red:#2a0a0a;--bar:rgba(18,24,31,.94);--bar2:rgba(11,15,20,.92);--code-bg:#090d11;--code-bg2:#1e2226;
  --elev-bar:0 -1px 0 rgba(255,255,255,.03) inset,0 -10px 28px -14px rgba(0,0,0,.7);--elev-sheet:0 1px 0 rgba(255,255,255,.04) inset,0 18px 44px -12px rgba(0,0,0,.8),0 2px 8px rgba(0,0,0,.4);--scrim:rgba(0,0,0,.45);
  --ease:cubic-bezier(.2,.8,.2,1);--dur:.15s;
  --ease-out:cubic-bezier(.16,1,.3,1);--dur-fast:.12s;--dur-med:.22s;--dur-slow:.4s;
}

/* Light appearance: follows the device unless the person chose one (data-theme on <html>, set by the toggle and remembered). */
@media (prefers-color-scheme:light){:root:not([data-theme=dark]){
  --bg:#f5f7fa;--panel:#ffffff;--panel2:#eef2f6;--line:#dde4ec;--line2:#c4cfdb;--field-line:#6b7c8d;
  --text:#0f1720;--text2:#2b3744;--muted:#52627a;--green:#047857;--on-green:#ffffff;--blue:#1d4ed8;--amber:#b45309;--red:#b91c1c;--violet:#4f46e5;
  --ok-bg:#ecfdf5;--ok-line:#a7f3d0;--ok-text:#065f46;--err-bg:#fef2f2;--err-line:#fecaca;--err-text:#991b1b;--warn-bg:#fffbeb;--warn-line:#fde68a;--warn-text:#92400e;
  --violet-text:#4338ca;--violet-text2:#3730a3;--violet-bg:#eef2ff;--violet-line:#c7d2fe;--on-red:#ffffff;--bar:rgba(255,255,255,.92);--bar2:rgba(245,247,250,.92);--code-bg:#eef2f6;--code-bg2:#e3e9f0;
  --elev-bar:0 -10px 24px -16px rgba(15,23,32,.22);--elev-sheet:0 18px 40px -14px rgba(15,23,32,.28),0 2px 8px rgba(15,23,32,.1);--scrim:rgba(15,23,32,.28);color-scheme:light;
}}
:root[data-theme=light]{
  --bg:#f5f7fa;--panel:#ffffff;--panel2:#eef2f6;--line:#dde4ec;--line2:#c4cfdb;--field-line:#6b7c8d;
  --text:#0f1720;--text2:#2b3744;--muted:#52627a;--green:#047857;--on-green:#ffffff;--blue:#1d4ed8;--amber:#b45309;--red:#b91c1c;--violet:#4f46e5;
  --ok-bg:#ecfdf5;--ok-line:#a7f3d0;--ok-text:#065f46;--err-bg:#fef2f2;--err-line:#fecaca;--err-text:#991b1b;--warn-bg:#fffbeb;--warn-line:#fde68a;--warn-text:#92400e;
  --violet-text:#4338ca;--violet-bg:#eef2ff;--violet-line:#c7d2fe;--on-red:#ffffff;--bar:rgba(255,255,255,.92);--bar2:rgba(245,247,250,.92);--code-bg:#eef2f6;--code-bg2:#e3e9f0;
  --elev-bar:0 -10px 24px -16px rgba(15,23,32,.22);--elev-sheet:0 18px 40px -14px rgba(15,23,32,.28),0 2px 8px rgba(15,23,32,.1);--scrim:rgba(15,23,32,.28);color-scheme:light;
}
html{-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility;scrollbar-color:var(--line2) transparent}
body{font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
code,kbd,samp,pre,.mono{font-family:var(--mono)}
h1,h2,h3{text-wrap:balance}
table,.num,.v,.tile,.stat,.tbl,time{font-variant-numeric:tabular-nums}
::selection{background:rgba(52,211,153,.3);color:#fff}
input,textarea,select{caret-color:var(--green)}
:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.ic{flex:none;vertical-align:-.15em}
html{-webkit-tap-highlight-color:transparent}
body{padding-left:env(safe-area-inset-left,0);padding-right:env(safe-area-inset-right,0)}
button,a,summary,[role=button],input[type=submit]{touch-action:manipulation}
button,summary,[role=button],input[type=submit],.btn,.tabbar a{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
button,.btn,summary{transition:transform var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
button:not([disabled]):active,.btn:active,input[type=submit]:active{transform:scale(.97)}
@media (pointer:coarse){input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{font-size:16px!important}}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  button:not([disabled]):active,.btn:active{transform:none}
}
@media (prefers-contrast:more){
  :root{--line:#4a5d70;--line2:#6b8196;--muted:#c0cdd8}
  :focus-visible{outline-width:3px}
}
@media (forced-colors:active){
  :focus-visible{outline:2px solid Highlight}
  .dot,.sd{forced-color-adjust:none}
  button,.btn,input,select,textarea,summary{border:1px solid ButtonText}
}

/* appearance switch (Auto, Light, Dark) */
.themesw{display:inline-flex;padding:2px;border:1px solid var(--line2);border-radius:10px;background:var(--panel2);gap:2px}
.themerow .themesw{display:flex;width:100%}
.themesw button{flex:1;margin:0;min-height:30px;padding:0 var(--s-2);border:0;border-radius:8px;background:transparent;color:var(--muted);font:inherit;font-size:.8rem;font-weight:600;cursor:pointer}
.themesw button[aria-pressed=true]{background:var(--panel);color:var(--text);box-shadow:0 1px 2px rgba(0,0,0,.25)}
@media (pointer:coarse){.themesw button{min-height:40px}}

/* the page could not refresh: one calm note, bottom centre, above the phone tab bar */
.oh-offline{position:fixed;left:50%;transform:translateX(-50%);bottom:var(--s-4);z-index:70;max-width:min(92vw,520px);padding:var(--s-3) var(--s-4);border:1px solid var(--warn-line);border-radius:var(--r-2);background:var(--warn-bg);color:var(--warn-text);font-size:var(--t-sm);line-height:1.45;box-shadow:0 8px 24px rgba(0,0,0,.28)}
@media (max-width:760px){.oh-offline{bottom:calc(76px + env(safe-area-inset-bottom,0px))}}
/* a form that has been sent: the button says so and cannot be pressed twice */
button[aria-busy=true][disabled],input[type=submit][aria-busy=true][disabled]{opacity:.65;cursor:progress}
