/* Pathfinder — trail-map identity: evergreen ink, paper, blaze orange, contour lines */
:root{
  --paper:#f2f5ef; --paper-2:#e7ece2; --card:#ffffff; --ink:#10261f; --ink-2:#3d544b; --muted:#6b7f76;
  --line:#d3dccf; --blaze:#ff5b1f; --blaze-ink:#ffffff; --moss:#2c6e52; --sky:#2f6fd6;
  --ok:#1f8a54; --warn:#b7791f; --bad:#c2402b;
  --display:"Bricolage Grotesque","Avenir Next","Segoe UI",system-ui,sans-serif;
  --body:"Figtree","Segoe UI",system-ui,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
  --r:14px; --shadow:0 1px 0 rgba(16,38,31,.06),0 8px 24px -12px rgba(16,38,31,.25);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --paper:#0e1a16; --paper-2:#14231e; --card:#182a24; --ink:#e8f0ea; --ink-2:#b9c9c0; --muted:#8aa096;
  --line:#28403a; --blaze:#ff6a33; --moss:#5fbf93; --sky:#6ea1f2; --ok:#45c482; --warn:#e0a84a; --bad:#ef6b55;
  --shadow:0 1px 0 rgba(0,0,0,.3),0 10px 30px -14px rgba(0,0,0,.7); color-scheme:dark}}
:root[data-theme="dark"]{
  --paper:#0e1a16; --paper-2:#14231e; --card:#182a24; --ink:#e8f0ea; --ink-2:#b9c9c0; --muted:#8aa096;
  --line:#28403a; --blaze:#ff6a33; --moss:#5fbf93; --sky:#6ea1f2; --ok:#45c482; --warn:#e0a84a; --bad:#ef6b55;
  --shadow:0 1px 0 rgba(0,0,0,.3),0 10px 30px -14px rgba(0,0,0,.7); color-scheme:dark}

*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--paper);color:var(--ink);font:16px/1.55 var(--body);-webkit-font-smoothing:antialiased}
a{color:inherit}
h1,h2,h3{font-family:var(--display);line-height:1.05;letter-spacing:-.02em;margin:0;text-wrap:balance}
code,pre,.mono{font-family:var(--mono);font-size:.88em}
:focus-visible{outline:3px solid var(--blaze);outline-offset:2px;border-radius:6px}
.wrap{max-width:1140px;margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}

/* logo: a trail blaze mark */
.logo{display:inline-flex;align-items:center;gap:10px;font:800 1.2rem var(--display);letter-spacing:-.02em;text-decoration:none}
.logo i{width:26px;height:26px;border-radius:7px;background:var(--blaze);position:relative;display:inline-block;transform:rotate(-8deg)}
.logo i::before,.logo i::after{content:"";position:absolute;left:6px;right:6px;height:3px;background:var(--blaze-ink);border-radius:2px}
.logo i::before{top:8px}.logo i::after{top:15px;right:10px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:11px;padding:11px 18px;font:700 .95rem var(--body);cursor:pointer;text-decoration:none;transition:transform .12s,background .15s,box-shadow .15s;white-space:nowrap}
.btn:active{transform:translateY(1px)}
.btn-blaze{background:var(--blaze);color:var(--blaze-ink);box-shadow:0 6px 18px -8px var(--blaze)}
.btn-blaze:hover{filter:brightness(1.06)}
.btn-ink{background:var(--ink);color:var(--paper)}
.btn-ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line)}
.btn-ghost:hover{box-shadow:inset 0 0 0 1.5px var(--ink-2)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.btn-sm{padding:7px 12px;font-size:.85rem;border-radius:9px}

.eyebrow{font:600 .75rem var(--mono);text-transform:uppercase;letter-spacing:.12em;color:var(--moss)}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px;font:600 .78rem var(--mono);background:var(--paper-2);color:var(--ink-2)}
.dot{width:8px;height:8px;border-radius:50%;background:currentColor;display:inline-block}
.s-queued{color:var(--warn)} .s-running{color:var(--sky)} .s-done{color:var(--ok)} .s-failed{color:var(--bad)} .s-cancelled{color:var(--muted)}
.s-running .dot{animation:blink 1s infinite}
@keyframes blink{50%{opacity:.25}}
input,textarea,select{font:inherit;color:var(--ink);background:var(--card);border:1.5px solid var(--line);border-radius:11px;padding:11px 13px;width:100%}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--moss);box-shadow:0 0 0 3px color-mix(in srgb,var(--moss) 22%,transparent)}
label{font-weight:700;font-size:.85rem;display:block;margin-bottom:6px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
