:root{
  color:#161616;
  background:#fff;
  font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:#fff}
button{font:inherit;cursor:pointer}
body.login{min-height:100dvh;display:grid;place-items:center;padding:24px;overflow:auto;background:#000;color:#fff;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}
body.login::before{content:"";position:fixed;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,#fff0 0 2px,#ffffff08 3px 4px);opacity:.55}
.login-shell{position:relative;z-index:1;width:min(980px,100%);display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:28px;align-items:stretch;border:1px solid #fff;background:#000;box-shadow:12px 12px 0 #fff2}
.login-shell::before{content:"FLOONETWORK_V2 :: SECURE LOGIN";position:absolute;left:14px;top:-12px;padding:0 8px;background:#000;color:#fff;font-size:12px;letter-spacing:.08em}
.login-hero{display:grid;align-content:center;gap:26px;min-height:470px;padding:34px;border-right:1px solid #fff;background:#000;overflow:auto}
.ascii-logo,.ascii-map{margin:0;color:#fff;font:700 clamp(10px,1.5vw,15px)/1.12 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;white-space:pre;text-shadow:0 0 12px #ffffff55}.ascii-map{font-weight:400;font-size:clamp(11px,1.45vw,14px);line-height:1.25;color:#e7e7e7;text-shadow:none}
.login-panel{display:grid;align-content:center;padding:34px;background:#000;color:#fff}
.brand-lockup{margin:0 0 30px}.login-kicker{margin:0 0 10px;color:#fff;font-size:12px;letter-spacing:.22em;text-transform:uppercase}.login-panel h1{display:block;margin:0;color:#fff;font-size:34px;line-height:1;text-transform:uppercase;letter-spacing:.04em}.login-copy{margin:12px 0 0;color:#cfcfcf;line-height:1.45;font-size:13px;text-transform:lowercase}
.login-form{display:grid;gap:16px}.login-form label{display:grid;gap:8px;color:#fff;font-size:13px;text-transform:lowercase}.login-form input,.login-form select{height:46px;width:100%;border:1px solid #fff;border-radius:0;background:#000;color:#fff;padding:0 12px;font:inherit;outline:0}.login-form select option{color:#000;background:#fff}.login-form input::placeholder{color:#aaa}.login-form input:focus,.login-form select:focus{box-shadow:0 0 0 2px #000,0 0 0 4px #fff}.login-button{height:46px;border:1px solid #fff;border-radius:0;background:#fff;color:#000;font:800 14px ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;text-transform:uppercase}.login-button:hover{background:#000;color:#fff}.login-button:disabled{opacity:.65;cursor:wait}.err{min-height:18px;margin:0;color:#fff;font-size:13px}.err:not(:empty)::before{content:"! "}
@media(max-width:820px){body.login{padding:14px}.login-shell{grid-template-columns:1fr;box-shadow:6px 6px 0 #fff2}.login-hero{min-height:0;border-right:0;border-bottom:1px solid #fff;padding:22px}.ascii-logo{font-size:9px}.ascii-map{font-size:11px}.login-panel{padding:24px}}
.chat-shell{min-height:100dvh;display:grid;place-items:center;padding:24px;background:#000;color:#fff;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;position:relative;overflow:hidden}
body.app{margin:0;background:#000;color:#fff}
body.app::before{content:none}
.chat{position:relative;z-index:1;width:min(980px,100%);height:min(860px,calc(100dvh - 48px));display:flex;flex-direction:column;border:1px solid #fff;background:#000;box-shadow:12px 12px 0 #fff2}
#messages{flex:1;overflow:auto;padding:28px 30px 18px;scrollbar-width:thin;scrollbar-color:#fff #000}
#messages::-webkit-scrollbar{width:10px}#messages::-webkit-scrollbar-track{background:#000}#messages::-webkit-scrollbar-thumb{background:#fff;border:3px solid #000}
.msg{max-width:82%;margin:0 0 18px;line-height:1.48;white-space:normal;color:#fff}.msg div{display:inline-block;text-align:left;padding:12px 14px;border:1px solid #fff;background:#000;color:#fff}.msg.user{margin-left:auto;text-align:right}.msg.user div{background:#fff;color:#000}.msg.assistant{margin-right:auto;color:#fff}.msg.assistant div::before{content:"> ";color:#fff}.msg time{display:block;margin-top:5px;color:#999;font-size:11px}.msg.working{opacity:.85}.msg.working div{display:inline-flex;align-items:center;gap:8px;padding:10px 12px;color:#fff}.working-label{font-size:13px;text-transform:lowercase}.typing-dots{display:inline-flex;gap:4px;align-items:center;height:14px}.typing-dots i{width:6px;height:6px;border-radius:0;background:#fff;display:block;animation:typing-bounce 1s infinite ease-in-out}.typing-dots i:nth-child(2){animation-delay:.15s}.typing-dots i:nth-child(3){animation-delay:.3s}@keyframes typing-bounce{0%,80%,100%{transform:translateY(0);opacity:.35}40%{transform:translateY(-5px);opacity:1}}@media (prefers-reduced-motion:reduce){.typing-dots i{animation:none;opacity:.75}}
#chatForm{border-top:1px solid #fff;padding:16px 20px 20px;background:#000}.prompt-line{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;color:#fff}.prompt-line>span{padding-top:13px;font-weight:800}textarea,input,select{width:100%;border:1px solid #fff;border-radius:0;padding:12px 14px;font:inherit;background:#000;color:#fff;outline:0}textarea::placeholder,input::placeholder{color:#aaa}textarea:focus,input:focus,select:focus{box-shadow:0 0 0 2px #000,0 0 0 4px #fff}select option{color:#000;background:#fff}#chatForm textarea{display:block;min-height:46px;max-height:180px;resize:none;overflow:auto;border-color:#fff;background:#000;color:#fff}
.top-nav{position:fixed;top:14px;left:14px;z-index:3;display:flex;gap:6px;font:800 12px ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;text-transform:uppercase}.top-nav a{border:1px solid #fff;background:#000;color:#fff;padding:8px 10px;text-decoration:none}.top-nav a.active,.top-nav a:hover{background:#fff;color:#000}.menu-button{position:fixed;top:14px;right:14px;z-index:3;border:1px solid #fff;background:#000;color:#fff;font:800 22px/1 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;padding:5px 10px;border-radius:0}.menu-button:hover{background:#fff;color:#000}
dialog{width:min(620px,calc(100vw - 28px));max-height:calc(100dvh - 28px);border:1px solid #fff;border-radius:0;padding:18px;background:#000;color:#fff;box-shadow:12px 12px 0 #fff2;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}dialog::backdrop{background:#000a}.dialog-head{display:flex;gap:8px;align-items:center;justify-content:space-between;margin:0 0 12px;padding-bottom:12px;border-bottom:1px solid #fff}.dialog-head #who{margin-left:auto;color:#cfcfcf;font-size:13px}.ghost{border:0;background:transparent;color:#fff;font-size:24px;padding:0 4px}.ghost:hover{opacity:.7}.secondary,dialog button:not(.ghost){border:1px solid #fff;border-radius:0;background:#fff;color:#000;padding:9px 12px;font-weight:800;text-transform:uppercase}.secondary:hover,dialog button:not(.ghost):hover{background:#000;color:#fff}details{border-top:1px solid #fff;padding:12px 0}summary{cursor:pointer;font-weight:800;text-transform:uppercase;letter-spacing:.04em}ul{padding-left:20px}.yes{color:#fff}.no{color:#999}.hint,.muted,small{color:#cfcfcf}.indent{margin-left:12px}.job{border-top:1px solid #fff;padding:10px 0}.job p{font-size:13px;color:#ddd}#cronForm,#devForm{display:grid;gap:8px;margin-top:12px}#cronForm textarea,#devForm textarea{resize:vertical}.log{max-height:260px;overflow:auto;background:#050505;border:1px solid #fff;border-radius:0;padding:10px;white-space:pre-wrap;font-size:12px;color:#fff}
.badge{display:inline-block;padding:2px 8px;border:1px solid #fff;border-radius:0;font-size:11px;font-weight:800;background:#000;color:#fff;vertical-align:middle;text-transform:uppercase}.badge.st-queued,.badge.st-provisioning,.badge.st-running,.badge.st-verifying{background:#fff;color:#000}.badge.st-awaiting_review{background:#000;color:#fff}.badge.st-failed{background:#fff;color:#000}.badge.st-merged{background:#fff;color:#000}.badge.st-cancelled,.badge.st-discarded{background:#111;color:#aaa}
#devTasks .job.dev{cursor:pointer;padding-left:8px;padding-right:8px;margin:0 -8px}#devTasks .job.dev:hover{background:#111}#devTasks .job.dev.sel{background:#fff;color:#000}#devTasks .job.dev.sel small{color:#333}#devDetail{border-top:1px solid #fff;margin-top:12px;padding-top:8px}.detail-head{display:flex;gap:8px;align-items:center}.detail-head .ghost{margin-left:auto}#devDetailMeta{white-space:pre-wrap;font-size:12px;margin:4px 0 8px}.detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.detail-actions button{padding:7px 10px;font-size:13px}.detail-actions button.danger{background:#000;color:#fff;border:1px solid #fff}#devFollowupForm{display:grid;gap:8px;margin:8px 0}.diff .add{color:#fff}.diff .del{color:#999}.diff .hunk{color:#ddd}.diff .file{font-weight:700;color:#fff}#devDiff{max-height:340px}
.kanban-shell{min-height:100dvh;background:#000;color:#fff;padding:76px 22px 28px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.kanban-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,430px);gap:18px;align-items:end;margin:0 auto 18px;width:min(1180px,100%);border:1px solid #fff;padding:18px;background:#000}.terminal-kicker{margin:0 0 8px;color:#cfcfcf;font-size:12px;letter-spacing:.18em}.kanban-head h1{margin:0;font-size:clamp(30px,5vw,54px);line-height:.95;text-transform:uppercase;overflow-wrap:anywhere}.kanban-head .hint{max-width:62ch;margin-bottom:0}.inline-form{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center}.inline-form input{min-width:0}.inline-form button,.card-composer button{border:1px solid #fff;background:#fff;color:#000;padding:12px 14px;font:800 13px ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;text-transform:uppercase}.inline-form button:hover,.card-composer button:hover{background:#000;color:#fff}.check{display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:13px;text-transform:lowercase}.check input{width:auto;accent-color:#fff}.board-strip{width:min(1180px,100%);margin:0 auto 12px;display:flex;gap:8px;overflow:auto;padding:0 0 6px}.board-tab{white-space:nowrap;border:1px solid #fff;background:#000;color:#fff;padding:9px 12px;font:inherit}.board-tab small{margin-left:8px;color:inherit;opacity:.75}.board-tab.active,.board-tab:hover{background:#fff;color:#000}.card-composer{width:min(1180px,100%);margin:0 auto 14px;padding:10px;border:1px solid #fff;background:#050505;display:grid;grid-template-columns:minmax(180px,1.15fr) minmax(180px,1fr) 150px auto;gap:8px;align-items:center}.kanban-board{width:min(1180px,100%);margin:0 auto;display:grid;grid-template-columns:repeat(4,minmax(190px,1fr));gap:10px;align-items:stretch}.kanban-col{min-height:420px;border:1px solid #fff;background:#000;display:flex;flex-direction:column}.kanban-col h2{margin:0;padding:11px 12px;border-bottom:1px solid #fff;background:#fff;color:#000;font-size:13px;text-transform:uppercase;letter-spacing:.04em;display:flex;justify-content:space-between}.kanban-cards{display:grid;align-content:start;gap:10px;padding:10px;flex:1}.kanban-card{border:1px solid #fff;background:#050505;color:#fff;padding:11px}.kanban-card strong{display:block;margin-bottom:7px;line-height:1.25}.kanban-card p{margin:0 0 9px;color:#ddd;font-size:13px;line-height:1.35}.card-meta{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;color:#cfcfcf;font-size:11px;margin-bottom:10px;border-top:1px solid #333;padding-top:8px}.card-actions{display:flex;gap:6px;flex-wrap:wrap}.card-actions button{border:1px solid #fff;background:#000;color:#fff;padding:5px 7px;font:inherit;font-size:11px;text-transform:uppercase}.card-actions button:hover{background:#fff;color:#000}.empty-board{border:1px dashed #fff;padding:36px;text-align:center;color:#cfcfcf;grid-column:1/-1}
a{color:#fff;text-decoration:underline}code,pre code{background:#111;border:1px solid #444;padding:1px 3px;color:#fff}
@media(max-width:900px){.kanban-shell{padding:64px 12px 14px}.kanban-head{grid-template-columns:1fr;padding:14px}.inline-form{grid-template-columns:1fr auto auto}.card-composer{grid-template-columns:1fr}.kanban-board{grid-template-columns:1fr}.kanban-col{min-height:220px}.top-nav{top:8px;left:8px}.card-composer select{width:100%}}
@media(max-width:820px){.chat-shell{padding:14px;place-items:stretch}.chat{height:calc(100dvh - 28px);box-shadow:6px 6px 0 #fff2}#messages{padding:22px}.msg{max-width:90%}.menu-button{top:8px;right:8px}}
@media(max-width:650px){.chat-shell{padding:12px}.chat{height:calc(100dvh - 24px)}#messages{padding:18px}.msg{max-width:94%}.msg div{padding:10px 12px}#chatForm{padding:12px}.menu-button{top:4px;right:4px}.inline-form{grid-template-columns:1fr}.check{justify-content:flex-start}.kanban-head h1{font-size:34px}}
