/* Bonya console — app shell and console-only components.
   Brand tokens and shared components live in bonya.css; this file adds the
   pieces only the signed-in console and the sign-in pages use. */

/* ---------- shell ---------- */
.gha-content{display:flex;flex-direction:column;gap:var(--s5);min-width:0}
.gha-content .panelhead h2,.gha-detail-grid .panelhead h2{font-size:15px;font-weight:600;letter-spacing:-.015em}
.gha-pad{padding:var(--s4);display:flex;flex-direction:column;gap:var(--s3)}
.gha-guide .field{max-width:440px}
.gha-workflow-change{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}
.gha-workflow-change .thelp{margin-bottom:6px}
.gha-guide .gha-pad>button{align-self:flex-start}
.gha-facts{display:grid;grid-template-columns:minmax(100px,.8fr) minmax(0,1.2fr);gap:12px var(--s4);margin:0;font-size:13px}
.gha-facts dt{color:var(--ink-3)}
.gha-facts dd{margin:0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.gha-search{font:inherit;font-size:13px;border:1px solid var(--line-2);border-radius:999px;padding:9px 15px;background:var(--surface);color:var(--ink);flex:1;min-width:200px;max-width:420px}
.gha-search:focus{outline:2px solid var(--hi);outline-offset:2px}
.gha-code{margin:0;padding:var(--s4);background:var(--sunk);border:1px solid var(--line);border-radius:var(--r-sm);font:12px/1.8 var(--f-mono);overflow-x:auto;white-space:pre;color:var(--ink)}
.gha-table{width:100%;border-collapse:collapse;font-size:13px;text-align:left}
.gha-table th{font-size:11px;letter-spacing:.025em;color:var(--ink-3);font-weight:500;padding:12px 18px;border-bottom:1px solid var(--line);white-space:nowrap}
.gha-table td{padding:15px 18px;border-bottom:1px solid var(--line);vertical-align:middle}
.gha-table tr:last-child td{border-bottom:0}
.gha-table tbody tr:hover{background:var(--sunk)}
.gha-table .sub{display:block;font-size:11px;color:var(--ink-3);margin-top:4px}
.gha-jobname{font-weight:500;color:var(--ink);text-decoration:none}
.gha-jobname:hover{text-decoration:underline;text-underline-offset:4px}
.gha-empty{text-align:center;color:var(--ink-3);padding:44px 24px!important;line-height:1.7}
.gha-detail-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:var(--s4);align-items:start}
.gha-timeline{list-style:none;padding:var(--s4);margin:0;display:flex;flex-direction:column;gap:var(--s4)}
.gha-timeline li{border-left:2px solid var(--line-2);padding-left:16px;display:flex;flex-direction:column;gap:4px;font-size:13px}
.gha-timeline time{color:var(--ink-3);font-size:12px;font-variant-numeric:tabular-nums}
.gha-error{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s3)}
.gha-message-error{font-size:13px;color:var(--flag)}
.subtab[href^="#/actions"][aria-current="page"]{color:var(--ink);border-bottom-color:var(--hi)}
@media(max-width:850px){.gha-detail-grid,.gha-workflow-change{grid-template-columns:1fr}.gha-search{max-width:none}.gha-facts{grid-template-columns:minmax(100px,.8fr) minmax(0,1.2fr)}}
.app{display:flex;align-items:flex-start;gap:var(--s5);max-width:1440px;margin:0 auto;padding:var(--s4) var(--s5) var(--s8)}
.sidebar{
  width:216px;flex:none;position:sticky;top:var(--s4);
  display:flex;flex-direction:column;gap:1px;max-height:calc(100vh - var(--s6))
}
.brand{display:flex;align-items:center;gap:10px;padding:var(--s2) var(--s3) var(--s5);color:var(--ink);text-decoration:none}
.brand svg{display:block}
/* v5 wordmark: dark letters with a teal underline; one light colour on dark ground */
.brand-wordmark{display:block;width:96px;height:32px;object-fit:contain;object-position:left center}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .brand-wordmark{filter:brightness(0) invert(1)}}
:root[data-theme="dark"] .brand-wordmark{filter:brightness(0) invert(1)}
.masked{-webkit-text-security:disc}
.codetabs{display:flex;gap:6px;align-items:center}
.codetabs button{font-size:12px;padding:3px 10px;border:1px solid var(--line-2);border-radius:999px;color:var(--ink-2)}
.codetabs button[aria-selected="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
select.sortpick{font:inherit;font-size:13px;padding:6px 12px;border:1px solid var(--line-2);border-radius:999px;background:var(--surface);color:var(--ink-2)}
a.btn{text-decoration:none}
.navgroup{font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);padding:var(--s4) var(--s3) 6px}
.navitem{
  display:flex;align-items:center;gap:9px;width:100%;text-align:left;text-decoration:none;
  padding:7px var(--s3);border-radius:9px;font-size:13.5px;font-weight:500;color:var(--ink-2);cursor:pointer
}
.navitem svg{width:16px;height:16px}
.navitem:hover{background:var(--sunk);color:var(--ink)}
.navitem[aria-current="page"]{background:var(--ink);color:var(--paper)}
.navitem .count{margin-left:auto;font-size:11.5px;font-variant-numeric:tabular-nums;background:var(--sunk);color:var(--ink-2);border-radius:999px;padding:1px 7px;font-weight:600}
.navitem[aria-current="page"] .count{background:var(--ink-2);color:var(--paper)}
.navscroll{overflow-y:auto;flex:1;min-height:0;padding-right:2px}
.userchip{display:flex;align-items:center;gap:9px;padding:var(--s3);margin-top:var(--s3);border-top:1px solid var(--line);cursor:pointer;text-align:left;width:100%}
.avatar{width:28px;height:28px;border-radius:50%;background:var(--sunk);border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--ink-2);flex:none}
.who{min-width:0}
.uname{font-size:13px;font-weight:600;line-height:1.2;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.umail{font-size:11.5px;color:var(--ink-3);font-family:var(--f-mono);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px}

.content{flex:1;min-width:0}
.consoletop{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s6)}
.searchbox{
  flex:1;max-width:380px;display:flex;align-items:center;gap:9px;
  padding:8px 14px;border:1px solid var(--line-2);border-radius:999px;
  background:var(--surface);color:var(--ink-3);font-size:13.5px;cursor:pointer;text-align:left
}
.searchbox:hover{border-color:var(--ink-3)}
.kbd{margin-left:auto;font-family:var(--f-mono);font-size:11px;border:1px solid var(--line);border-radius:5px;padding:1px 5px;color:var(--ink-3)}
.envtag{font-size:12.5px;color:var(--ink-2);border:1px solid var(--line);border-radius:999px;padding:5px 12px;display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.envtag .dot{width:6px;height:6px;border-radius:50%;background:var(--mint);flex:none}
.envtag.down .dot{background:var(--flag)}

/* page body owns the gap between sections */
#view{display:flex;flex-direction:column;gap:var(--s5)}
#view > .pagehead{margin-bottom:0}
#view > .stats{margin-bottom:0}
#view > .filters{margin-bottom:calc(-1 * var(--s2))}
.loading{color:var(--ink-3);font-size:13.5px;padding:var(--s5) 0}
.problem{
  display:flex;flex-direction:column;gap:4px;font-size:13px;line-height:1.5;
  background:var(--flag-soft);color:var(--flag);border-radius:var(--r-sm);padding:10px 13px
}
.problem .code{font-family:var(--f-mono);font-size:12px;opacity:.85}

/* sandbox header and tabs */
.idline{font-family:var(--f-mono);font-size:12.5px;color:var(--ink-3);overflow-wrap:anywhere}
h1.mono-title{font-family:var(--f-mono);font-size:1.5rem;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3)}
h1.mono-title .tag{font-family:var(--f-ui);font-size:13px}
.headacts{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center}
.subtabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto}
.subtab{
  padding:9px 14px;font-size:13.5px;font-weight:500;color:var(--ink-3);text-decoration:none;
  border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;cursor:pointer
}
.subtab:hover{color:var(--ink)}
.subtab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--hi)}
.tabbody{display:flex;flex-direction:column;gap:var(--s4)}
.panelhead .acts{display:flex;gap:var(--s2);flex-wrap:wrap;align-items:center}
.factgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s3)}
.fact{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--lift);padding:var(--s4);display:flex;flex-direction:column;gap:2px;min-width:0}
.fact .k{font-size:12.5px;color:var(--ink-3)}
.fact .v{font-size:15px;font-weight:600;font-family:var(--f-mono);overflow-wrap:anywhere}
.fact .sub{font-size:12.5px;color:var(--ink-3)}
.banner{display:flex;gap:var(--s3);align-items:center;flex-wrap:wrap;font-size:13.5px;padding:11px var(--s4);border-radius:var(--r-md);background:var(--sunk);color:var(--ink-2)}
.banner.info{background:var(--hi-soft);color:var(--ink)}
.banner.warn{background:var(--warn-soft);color:var(--warn)}
.banner.crit{background:var(--crit-soft);color:var(--crit)}
.banner .grow{flex:1}

/* files */
.pathbar{display:flex;align-items:center;gap:4px;flex-wrap:wrap;font-family:var(--f-mono);font-size:12.5px;flex:1;min-width:0}
.pathbar button{color:var(--ink-2);padding:2px 4px;border-radius:5px}
.pathbar button:hover{background:var(--sunk);color:var(--ink)}
.pathbar .sep{color:var(--line-2)}
.filelink{font-family:var(--f-mono);font-size:12.5px;cursor:pointer;border-bottom:1px solid var(--line-2);text-align:left}
.filelink:hover{border-bottom-color:var(--ink)}
.rowact .linkbtn + .linkbtn{margin-inline-start:var(--s3)}

/* terminal */
.term{background:var(--night);border-radius:0 0 var(--r-md) var(--r-md);padding:var(--s3);height:440px}
.term .xterm{height:100%}
.term .xterm-viewport{scrollbar-color:#3B372F transparent}
.sessiontabs{display:flex;gap:var(--s2);flex-wrap:wrap;align-items:center;flex:1}
.sessiontabs .chip{font-family:var(--f-mono);font-size:12px}
.termstate{font-family:var(--f-mono);font-size:12px;color:var(--ink-3)}
.termstate.live{color:var(--good)}

/* overlays */
.scrim{position:fixed;inset:0;background:rgba(20,18,15,.38);z-index:40}
.drawer{
  position:fixed;top:0;right:0;width:480px;max-width:94vw;height:100vh;z-index:45;
  background:var(--surface);border-left:1px solid var(--line);box-shadow:-8px 0 32px rgba(0,0,0,.14);
  display:flex;flex-direction:column;overflow-y:auto
}
.drawerhead{display:flex;align-items:center;gap:var(--s3);padding:var(--s4);border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface);z-index:1}
.drawerhead h2{flex:1;font-size:15px}
.drawerbody{padding:var(--s4);display:flex;flex-direction:column;gap:var(--s4)}
.iconbtn{width:30px;height:30px;border-radius:999px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--ink-3);flex:none}
.iconbtn:hover{color:var(--ink);border-color:var(--line-2)}
.overlay{position:fixed;inset:0;background:rgba(20,18,15,.42);z-index:60;display:flex;align-items:center;justify-content:center;padding:var(--s4)}
.modal{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:0 12px 48px rgba(0,0,0,.24);width:560px;max-width:100%;max-height:86vh;overflow-y:auto;
  padding:var(--s5);display:flex;flex-direction:column;gap:var(--s4)
}
.modal.wide{width:820px}
.modal h2{font-size:16px}
.modal p{font-size:13.5px;color:var(--ink-2);line-height:1.55}
.modalfoot{display:flex;justify-content:flex-end;gap:var(--s2);padding-top:var(--s2);flex-wrap:wrap}
.modal textarea.editor{width:100%;min-height:360px;font-family:var(--f-mono);font-size:12.5px;line-height:1.6;padding:var(--s3);border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--sunk);color:var(--ink);resize:vertical}
.palette{position:fixed;inset:0;background:rgba(20,18,15,.42);z-index:70;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh}
.palbox{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);width:560px;max-width:94vw;box-shadow:0 16px 56px rgba(0,0,0,.28);overflow:hidden}
.palinput{width:100%;padding:14px var(--s4);border:none;border-bottom:1px solid var(--line);font-size:15px;background:transparent;color:var(--ink);font-family:var(--f-ui)}
.palinput:focus{outline:none}
.pallist{max-height:340px;overflow-y:auto;padding:var(--s2) 0}
.palgroup{font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);padding:var(--s3) var(--s4) 4px}
.palrow{display:flex;align-items:center;gap:10px;padding:8px var(--s4);font-size:13.5px;cursor:pointer;width:100%;text-align:left}
.palrow:hover,.palrow.on{background:var(--sunk)}
.palrow .hint{margin-left:auto;font-size:12px;color:var(--ink-3);font-family:var(--f-mono)}
.palempty{padding:var(--s5) var(--s4);color:var(--ink-3);font-size:13.5px;text-align:center}

@media (max-width:960px){
  .factgrid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  .app{flex-direction:column;align-items:stretch;gap:var(--s4);padding:var(--s4)}
  .content{width:100%;min-width:0}
  .sidebar{position:static;width:100%;max-height:none;flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--s2);border-bottom:1px solid var(--line);padding-bottom:var(--s3)}
  .brand{padding:0 var(--s3) 0 0;order:-1}
  .navgroup{display:none}
  .navscroll{display:flex;flex-direction:row;gap:var(--s2);overflow-x:auto;flex:1 0 100%;padding-bottom:4px;order:1}
  .navitem{width:auto;white-space:nowrap;border:1px solid var(--line);border-radius:999px}
  .navitem[aria-current="page"]{border-color:var(--ink)}
  .userchip{border-top:none;margin:0;padding:0;order:0;margin-left:auto;width:auto}
  .userchip .who{display:none}
  .consoletop{flex-wrap:wrap;row-gap:var(--s2)}
  .searchbox{flex:1 0 100%;max-width:none;order:-1}
  .consoletop .grow{display:none}
  .term{height:360px}
}

/* ---------- sign-in pages (login.html, cli-auth.html) ---------- */
.authpage{min-height:100vh;display:grid;grid-template-columns:1fr}
@media (min-width:1040px){.authpage{grid-template-columns:minmax(520px,1fr) minmax(0,1.02fr)}}
.authside,.authproof,.proofwrap,.proofterm,.authwrap{min-width:0}
.authside{display:flex;flex-direction:column;gap:var(--s6);padding:var(--s5) var(--s5) var(--s6);background:var(--paper)}
.authtop{display:flex;align-items:center;gap:var(--s4)}
.authtop .brand{padding:0}
.authbody{flex:1;display:flex;flex-direction:column;justify-content:center;min-width:0}
.authwrap{width:100%;max-width:25rem;margin:0 auto;display:flex;flex-direction:column;gap:var(--s4)}
.authhead h1{font-size:1.5rem;letter-spacing:-.02em;margin-bottom:6px}
.authhead .lede{max-width:38ch;text-wrap:pretty}
.or{display:flex;align-items:center;gap:var(--s3);font-size:12px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}
.or::before,.or::after{content:"";height:1px;background:var(--line);flex:1}
.pwwrap{position:relative;display:flex;align-items:center}
.pwwrap input{padding-inline-end:44px}
.pweye{position:absolute;inset-inline-end:6px;width:30px;height:30px;border-radius:6px;display:flex;align-items:center;justify-content:center;color:var(--ink-3);flex:none}
.pweye:hover{color:var(--ink);background:var(--sunk)}
.labelrow{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3)}
.authfoot{font-size:13px;color:var(--ink-3);display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);align-items:center;justify-content:space-between}
.swap{font-size:13.5px;color:var(--ink-2);text-align:center}
.btn.provider{width:100%;justify-content:center;padding:11px 16px;gap:10px}
.btn.provider .gh{color:var(--ink)}
.keyalt{border-top:1px solid var(--line);padding-top:var(--s3)}
.keyalt summary{font-size:13px;color:var(--ink-3);cursor:pointer;list-style:none;text-align:center}
.keyalt summary::-webkit-details-marker{display:none}
.keyalt summary:hover{color:var(--ink)}
.keyalt[open] summary{margin-bottom:var(--s3)}
.okline{font-size:13px;line-height:1.5;background:var(--good-soft);color:var(--good);border-radius:var(--r-sm);padding:10px 13px}
.authproof{background:var(--night);color:var(--night-ink);padding:var(--s6) var(--s5);display:flex;flex-direction:column;justify-content:center;gap:var(--s4);border-block-start:1px solid var(--line)}
@media (min-width:1040px){.authproof{border-block-start:none;border-inline-start:1px solid var(--line);padding:var(--s7) var(--s6)}}
.proofwrap{width:100%;max-width:38rem;margin:0 auto;display:flex;flex-direction:column;gap:var(--s4)}
.proofclaim{font-size:1.375rem;line-height:1.35;letter-spacing:-.02em;font-weight:500;color:#F2EFE9;max-width:26ch;text-wrap:balance}
.proofterm{margin:0;font-family:var(--f-mono);font-size:12.5px;line-height:1.85;border:1px solid rgba(255,255,255,.12);border-radius:var(--r-sm);padding:var(--s4);overflow-x:auto;white-space:pre;color:var(--night-ink)}
.proofterm .t{color:#948C7E}
.proofterm .ok{color:#2DD4A8}
.proofterm .hi{color:#35CBD6}
.proofnote{font-size:13px;line-height:1.6;color:#A79F92;max-width:56ch}
.codebox{font-family:var(--f-mono);font-size:1.75rem;letter-spacing:.12em;text-align:center;padding:var(--s4);border:1px dashed var(--line-2);border-radius:var(--r-md);background:var(--surface)}
@media (max-width:1039px){
  .authside{padding:var(--s4) var(--s4) var(--s6);gap:var(--s5)}
  .authproof{padding:var(--s6) var(--s4)}
  .proofclaim{font-size:1.125rem;max-width:30ch}
}

/* Saved launch configuration uses the console's existing form and table rhythm. */
.template-image{max-width:28rem;overflow-wrap:anywhere}
.template-resources{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
.template-binding{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:var(--s3);align-items:end}
.template-binding > .btn{margin-bottom:1px}
.template-add{align-self:flex-start}
.template-details{border-top:1px solid var(--line);padding-top:var(--s3)}
.template-details > summary{cursor:pointer;font-size:13px;font-weight:500;color:var(--ink-2)}
.template-details[open] > summary{margin-bottom:var(--s4)}
@media(max-width:560px){.template-resources,.template-binding{grid-template-columns:1fr}.template-binding{border-bottom:1px solid var(--line);padding-bottom:var(--s3)}}

/* ---------- jobs ---------- */
.tabcount{margin-inline-start:6px;font-size:11.5px;font-variant-numeric:tabular-nums;background:var(--sunk);color:var(--ink-3);border-radius:999px;padding:1px 7px;font-weight:600}
.codetabs button[aria-selected="true"] .tabcount{background:transparent;color:inherit;padding:0;opacity:.7}
.jobform{gap:var(--s5)}
.jobsection{display:flex;flex-direction:column;gap:var(--s3);border-top:1px solid var(--line);padding-top:var(--s4)}
.jobsection > h3{font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}
.checkrow{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:13.5px}
.checkrow input{margin-top:3px;accent-color:var(--hi);width:15px;height:15px;flex:none}
.checkrow .hint{display:block;font-size:12.5px;color:var(--ink-3);line-height:1.45}
.argv{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12.5px;min-height:24px}
.argv code{font-family:var(--f-mono);font-size:12px;background:var(--sunk);border:1px solid var(--line);border-radius:6px;padding:1px 7px;white-space:pre}
.argv .bad{color:var(--crit)}
.envrow{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr) auto;gap:var(--s2);align-items:center}
.envrow input{font:inherit;font-family:var(--f-mono);font-size:12.5px;padding:9px 12px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);min-width:0}
.envrow input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}
.everyrow{display:flex;align-items:center;gap:var(--s2);font-size:13.5px}
.everyrow input,.everyrow select{font:inherit;font-size:13.5px;padding:9px 12px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);color:var(--ink)}
.everyrow input{width:96px;font-family:var(--f-mono)}
.field textarea.scriptbody{min-height:180px;line-height:1.6;tab-size:4}
.jobout{max-height:520px;min-height:120px;border-radius:0 0 var(--r-lg) var(--r-lg)}
.jobout.wrapped{white-space:pre-wrap;overflow-wrap:anywhere}
.jobout.quiet{color:#7E776B}
.outnote{font-size:12.5px;color:var(--warn);background:var(--warn-soft);padding:6px var(--s4)}
.jobgrid{align-items:start}
.steps{list-style:none;margin:0;padding:var(--s2) var(--s4) var(--s4);display:flex;flex-direction:column;gap:var(--s3)}
.step{display:flex;flex-direction:column;gap:5px}
.stephead{display:flex;align-items:baseline;gap:var(--s2);font-size:13.5px}
.stepname{font-weight:500;cursor:help}
.stepstate{font-size:12px;color:var(--ink-3)}
.step.crit .stepstate{color:var(--crit)}
.step.live .stepstate{color:var(--info)}
.steptrack{position:relative;height:6px;border-radius:3px;background:var(--sunk);overflow:hidden}
.steptrack span{position:absolute;top:0;bottom:0;left:0;border-radius:3px;background:var(--ink-3)}
.step.good .steptrack span{background:var(--good)}
.step.crit .steptrack span{background:var(--crit)}
.step.live .steptrack span{background:var(--info);animation:steppulse 1.4s ease-in-out infinite}
@keyframes steppulse{50%{opacity:.45}}
@media (prefers-reduced-motion:reduce){.step.live .steptrack span{animation:none}}
.stepfail{font-size:12px;color:var(--crit);background:var(--crit-soft);border-radius:6px;padding:6px 9px;overflow-wrap:anywhere;white-space:pre-wrap}
.defval{text-align:end;min-width:0;overflow-wrap:anywhere}
.defscript{max-height:220px;overflow:auto;font-size:12px}
.fact a.v{text-decoration:none;width:fit-content}
@media (max-width:560px){
  .envrow{grid-template-columns:1fr}
  .envrow{border-bottom:1px solid var(--line);padding-bottom:var(--s2)}
  .everyrow{flex-wrap:wrap}
}
.jobtable td{white-space:nowrap}
.techdetail{flex-basis:100%;font-size:12.5px}
.techdetail summary{cursor:pointer;color:var(--ink-3)}
.techdetail p{margin-top:6px;overflow-wrap:anywhere;color:var(--ink-2)}

/* Platform admin */
.navgroup.keep{display:block}
.admtabs:empty,.admnotice:empty{display:none}
.admhead{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3)}
.admhead h1{font-size:1.25rem;font-weight:600;letter-spacing:-.01em;overflow-wrap:anywhere}
.admhead .grow{flex:1}
.admtop{display:flex;flex-direction:column;gap:var(--s2)}
.admactions{display:flex;flex-wrap:wrap;gap:var(--s2)}
.admbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2)}
.admbar .grow{flex:1}
.admbar select.sortpick{max-width:14rem}
.admfilter{font:inherit;font-size:13px;border:1px solid var(--line-2);border-radius:999px;padding:6px 12px;background:var(--surface);color:var(--ink);min-width:0;width:13rem;max-width:100%}
.admfilter:focus{outline:2px solid var(--hi);outline-offset:2px}
.admpick{position:relative;max-width:100%}
.admchip{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:13px;border:1px solid var(--line-2);border-radius:999px;padding:6px 12px;background:var(--sunk);color:var(--ink);cursor:pointer;max-width:18rem;white-space:nowrap}
.admchip span{overflow:hidden;text-overflow:ellipsis}
.admchip .dim{flex:none}
.admmenu{position:absolute;z-index:30;top:calc(100% + 4px);left:0;width:20rem;max-width:80vw;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:0 8px 28px rgba(0,0,0,.18);padding:4px;display:flex;flex-direction:column}
.admmenu[hidden]{display:none}
.admmenu button{display:flex;flex-direction:column;gap:1px;text-align:start;width:100%;font:inherit;font-size:13px;padding:6px 8px;border-radius:var(--r-sm);color:var(--ink);cursor:pointer;overflow-wrap:anywhere}
.admmenu button:hover,.admmenu button.on{background:var(--sunk)}
.admmenu .sub{font-size:11.5px;color:var(--ink-3)}
.admmenu p{font-size:13px;color:var(--ink-3);padding:6px 8px}
.admlist{display:flex;flex-direction:column;gap:var(--s3)}
/* Holds the hidden Actions heading, which would otherwise widen the page. */
.admlist .scroller,.admscroll{position:relative;overflow-x:auto}
.admlist td.rowact > * + *,.admscroll td.rowact > * + *{margin-inline-start:var(--s3)}
.admlist table,.admscroll table{min-width:0}
.admfoot{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s2);font-size:13px}
.admfoot:empty{display:none}
.admcell{display:flex;flex-direction:column;gap:1px;min-width:0}
.admcell > a,.admcell > span{max-width:15rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admcell .sub{font-size:11.5px;color:var(--ink-3)}
.admcell > .tag{align-self:flex-start}
.admcell .sub[hidden]{display:none}
.admname{font-weight:500;text-decoration:none;border-bottom:1px solid var(--line-2);width:fit-content}
.admname:hover{border-bottom-color:var(--ink)}
.admlink,.admnowrap{white-space:nowrap}
.admreason{font-size:13px;line-height:1.45;min-width:11rem;overflow-wrap:anywhere}
td .admclamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.admfull{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13.5px;line-height:1.5}
.admrow{display:grid;grid-template-columns:minmax(7rem,.6fr) minmax(0,1.4fr);gap:var(--s3);font-size:13.5px;padding:3px 0}
.admrow > :last-child{overflow-wrap:anywhere}
.field.bad input,.field.bad textarea{border-color:var(--crit)}
.modal h2,.modal .form > p{overflow-wrap:anywhere}
.admexpand > td{background:var(--sunk)}
.admpools{display:flex;flex-direction:column;gap:var(--s4)}
.admpoolhead{flex-wrap:wrap;gap:var(--s1) var(--s3)}
.admpoolhead h3{flex:none;max-width:100%;overflow-wrap:anywhere;font-size:13.5px}
.admpooldefault{flex:1 1 10rem;min-width:0;font-size:13px;color:var(--ink-2);overflow-wrap:anywhere}
.admpool table{table-layout:fixed}
.admtplid{font-family:var(--f-mono);font-size:12.5px;text-align:start;overflow-wrap:anywhere;color:var(--ink)}
.admtplsub{display:none;margin-top:3px;font-size:12px;color:var(--ink-3)}
.admtr{width:10.5rem}
.admts{width:6.5rem}
.admta{width:6rem}
.admtx{width:11.5rem}
.admtploff > summary{cursor:pointer;padding:10px var(--s4);font-size:13px;color:var(--ink-2)}
.admtploff > summary:hover{color:var(--ink)}
.admpool > table + .admtploff > summary{background:var(--sunk)}
.admpool tbody tr:last-child td{border-bottom:0}
.admtploff[open] > summary{border-bottom:1px solid var(--line)}
.admtpldigest{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s2)}
.modal:has(.admaddform){gap:var(--s3);padding:var(--s4) var(--s5);max-height:94vh}
.modal:has(.admaddform) .form{gap:10px}
.admaddform .fieldrow{align-items:end}
.modal:has(.admaddform) .field{gap:3px}
.modal:has(.admaddform) .field input:not([type=checkbox]){padding:7px 12px}
.modal:has(.admaddform) .field textarea{min-height:0;padding:7px 12px}
@media(max-width:1100px){.admtr{width:9.5rem}.admta{width:5.25rem}.admtx{width:10.5rem}}
@media(max-width:760px){.admtr,.admta,.admtx{display:none}.admtplsub{display:block}.admts{width:6rem}}
.admfacts{display:flex;flex-direction:column;gap:var(--s1)}
.admstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:var(--s2)}
.admstat{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);padding:10px 12px;display:flex;flex-direction:column;gap:2px;min-width:0}
.admstat .k{font-size:12px;color:var(--ink-3)}
.admstat .v{font-size:14.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admstat .sub{font-size:12px;color:var(--ink-3);overflow-wrap:anywhere}
.admstat.warn{border-color:var(--amber)}
.admsec{display:flex;flex-direction:column;gap:var(--s2)}
.admsechead{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s1) var(--s3)}
.admsechead h2{font-size:14.5px;font-weight:600}
.admsechead .dim{font-size:12.5px}
.admsechead a{font-size:13px;margin-inline-start:auto}
.admimages{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px;overflow-wrap:anywhere}
.modal .problem + .banner{margin-top:var(--s2)}
@media(max-width:860px){.admlist .rowact,.admscroll .rowact{position:sticky;right:0;background:var(--surface)}.admopt{display:none}.admreason{min-width:9rem}.admcell > a,.admcell > span{max-width:11rem}}
@media(max-width:640px){.admopt2{display:none}}
@media(max-width:560px){.admfilter,.admpick{width:100%}.admcell > a,.admcell > span{max-width:9rem}.admreason{min-width:7rem}.admrow{grid-template-columns:1fr;gap:0;padding:5px 0}.admreason{min-width:9rem}}
