/* Dory console. Tokens, type and components follow the dory.run site (site.css / dory.css), copied here so the console
   stays same-origin under its CSP (default-src 'self': no cross-origin CSS or fonts, no inline styles). */
@font-face{font-family:"DM Sans";src:url("/static/dm-sans.woff2") format("woff2");font-style:normal;font-weight:100 1000;font-display:swap}
:root{
  color-scheme:light;
  --paper:#F5F0E7;--paper-2:#EBE4D6;--card:#FFFCF6;
  --ink:#1C1915;--ink-2:#5B5449;--line:#DED5C6;--line-strong:#857A68;--hover:rgba(28,25,21,.06);
  --accent:#1F4FD6;--accent-hover:#1A41B2;--on-accent:#fff;--accent-ink:#1F4FD6;--focus:#1F4FD6;
  --danger:#B3261E;--save:#1E6A41;--save-bg:#DDEBDD;
  --footer-bg:#1C1915;--footer-ink:#F5F0E7;--footer-ink-2:#BDB3A4;
  --shadow:0 1px 0 rgba(60,44,24,.05),0 22px 44px -26px rgba(60,44,24,.32);
  --font:"DM Sans","Segoe UI",system-ui,-apple-system,sans-serif;
  --mono:ui-monospace,"SF Mono","Cascadia Mono","Segoe UI Mono",Consolas,monospace;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;
  --gutter:clamp(18px,4vw,48px);--max:80rem;--header-h:74px;--r1:10px;--r2:16px;--r3:24px;
}
@media (prefers-color-scheme:dark){
  :root{
    color-scheme:dark;
    --paper:#161411;--paper-2:#1F1C18;--card:#221F1A;
    --ink:#F2ECE2;--ink-2:#B6AD9F;--line:#36312A;--line-strong:#7A705F;--hover:rgba(255,247,235,.07);
    --accent:#3462EA;--accent-hover:#2650D2;--on-accent:#fff;--accent-ink:#9DB3FF;--focus:#9DB3FF;
    --danger:#FF8A80;--save:#8BD3A6;--save-bg:#1E2F24;
    --footer-bg:#0E0D0B;--footer-ink:#F2ECE2;--footer-ink-2:#ABA294;
    --shadow:0 1px 0 rgba(0,0,0,.3),0 24px 48px -28px rgba(0,0,0,.7);
  }
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 16px)}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--paper);color:var(--ink);font:400 1rem/1.6 var(--font);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;overflow-x:clip}
#console-write-controls{display:block;flex:1;border:0;padding:0;margin:0;min-width:0}
h1,h2,h3,p,dl,dd,figure{margin:0}
h1{font-size:clamp(2rem,1.2rem + 3vw,3.1rem);line-height:1.05;letter-spacing:-.04em;font-weight:640;text-wrap:balance}
h2{font-size:clamp(1.35rem,1.1rem + 1vw,1.8rem);line-height:1.15;letter-spacing:-.03em;font-weight:630;margin-top:var(--s6)}
h3{font-size:1.2rem;font-weight:640;letter-spacing:-.02em}
main > * + *{margin-top:var(--s4)}
a{color:var(--accent-ink);text-underline-offset:.22em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
strong{font-weight:650}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:8px}
.wrap{width:min(var(--max),100% - 2*var(--gutter));margin-inline:auto}
.skip{position:fixed;left:var(--s4);top:var(--s3);z-index:100;transform:translateY(-160%);background:var(--ink);color:var(--paper);padding:12px 18px;border-radius:999px;font-weight:600;text-decoration:none}
.skip:focus{transform:none}

/* header + wordmark */
.header{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;gap:var(--s5);flex-wrap:wrap;min-height:calc(var(--header-h) - 1px);padding-block:var(--s2)}
.brand{display:inline-flex;align-items:center;min-height:44px;gap:11px;font-size:1.25rem;font-weight:720;letter-spacing:-.035em;text-decoration:none;white-space:nowrap;color:var(--ink)}
.brand-mark{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:10px;background:var(--ink);color:var(--paper);font-size:1rem;font-weight:820;letter-spacing:-.05em}
.brand-text{display:flex;flex-direction:column;line-height:1.05}
.brand-text small{margin-top:2px;font-size:.6875rem;font-weight:500;letter-spacing:0;color:var(--ink-2)}
.navlinks{display:flex;flex-wrap:wrap;align-items:center;gap:2px}
.navlinks a,main nav a{padding:10px 14px;min-height:44px;display:inline-flex;align-items:center;border-radius:999px;font-size:.9375rem;font-weight:550;color:var(--ink-2);text-decoration:none}
.navlinks a:hover,main nav a:hover{background:var(--hover);color:var(--ink)}
main nav{display:flex;flex-wrap:wrap;gap:2px;margin-block:var(--s4)}
.signout{margin:0 0 0 auto}
.notices p{margin-top:var(--s3);padding:12px 16px;border:1px solid var(--line);border-radius:var(--r1);background:var(--paper-2);color:var(--ink-2);font-size:.9375rem}
main{padding-block:clamp(28px,4vw,56px) clamp(48px,6vw,96px)}
main{overflow-wrap:anywhere}
.error{color:var(--danger);font-weight:600}
.lead{color:var(--ink-2);font-size:1.125rem}
.hint{display:block;margin-top:4px;color:var(--ink-2);font-size:.875rem;font-weight:400}
.card{padding:clamp(20px,3vw,32px);border:1px solid var(--line);border-radius:var(--r3);background:var(--card);box-shadow:var(--shadow)}
.narrow{max-width:34rem}
.stack > * + *{margin-top:var(--s4)}

/* forms */
label{display:block;margin-block:.9rem;font-weight:600}
label > input:not([type=checkbox]):not([type=radio]),label > select,label > textarea{margin-top:6px;font-weight:400}
input,select,textarea,button{font:inherit;max-width:100%}
input:not([type=checkbox]):not([type=radio]),select,textarea{display:block;width:100%;max-width:32rem;min-height:48px;padding:10px 14px;border:1.5px solid var(--line-strong);border-radius:12px;background:var(--card);color:var(--ink)}
.narrow input:not([type=checkbox]):not([type=radio]),.narrow select{max-width:none}
textarea{min-height:6rem;font-family:var(--mono);font-size:.9rem}
input[type=checkbox],input[type=radio]{width:22px;height:22px;flex:none;margin:0;accent-color:var(--accent)}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.check{display:flex;gap:12px;align-items:flex-start;font-weight:400;margin-block:.7rem}
.check input{margin-top:2px}
fieldset{min-inline-size:0}
main fieldset{margin-block:var(--s4);padding:var(--s3) var(--s4) var(--s4);border:1px solid var(--line);border-radius:var(--r2)}
main fieldset legend{padding-inline:6px;font-weight:650}
.honeypot{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}

/* buttons */
button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 22px;border-radius:999px;border:1.5px solid var(--accent);background:var(--accent);color:var(--on-accent);font-size:.9375rem;font-weight:650;letter-spacing:-.005em;cursor:pointer;transition:background-color .2s,border-color .2s}
button:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
button:active{transform:translateY(1px)}
button.secondary,.signout button{background:transparent;color:var(--ink);border-color:var(--line-strong)}
button.secondary:hover,.signout button:hover{background:var(--hover);border-color:var(--ink)}
button:disabled{opacity:.5;cursor:not-allowed}
button:disabled:hover{background:var(--accent);border-color:var(--accent)}

/* data */
table{border-collapse:collapse;width:100%;font-size:.9375rem;line-height:1.5}
th,td{padding:.7rem .8rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;overflow-wrap:anywhere}
th{background:var(--paper-2);font-weight:650}
dl{display:grid;grid-template-columns:minmax(8rem,1fr) minmax(0,3fr);gap:.5rem 1rem}
dt{color:var(--ink-2);font-weight:600}
pre,code{font-family:var(--mono)}
pre{margin:0;padding:16px 18px;white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid var(--line);border-radius:12px;background:var(--paper-2);font-size:.875rem;line-height:1.5}
code{font-size:.9em;padding:.1em .3em;border-radius:5px;background:var(--paper-2)}
pre code{padding:0;background:none}
svg{max-width:280px;height:auto}
main section{margin-top:var(--s5)}
[role=status]{min-height:1.5em}

/* footer */
.footer{margin-top:auto;padding-block:var(--s6);background:var(--footer-bg);color:var(--footer-ink)}
.footer .wrap{display:flex;flex-wrap:wrap;gap:var(--s4) var(--s6);justify-content:space-between;align-items:center}
.footer nav{display:flex;flex-wrap:wrap;gap:4px 18px}
.footer a{color:var(--footer-ink);padding-block:10px;display:inline-block}
.footer small{color:var(--footer-ink-2);font-size:.8125rem}
.footer :focus-visible{outline-color:#9DB3FF}
@media (max-width:40rem){.nav{gap:var(--s2)}.signout{margin-left:0}dl{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
