:root{--ink: #201a12;--paper: #f6f0e2;--card: #fffbf0;--rust: #d4551f;--navy: #1e3a5f;--green: #3a7a5e;--amber: #e8a34c;--muted: #5c5344;--body-muted: #3d362b;--rule: #e4dac4;--gutter: 36px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Space Grotesk,sans-serif}a{color:var(--navy)}a:hover{color:var(--rust)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.stencil{font-family:Saira Stencil One,sans-serif}.mono{font-family:IBM Plex Mono,monospace}.shell{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;gap:28px;padding:14px var(--gutter);border-bottom:2px solid var(--ink);background:var(--ink);color:var(--paper)}.app-logo{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--paper)}.app-logo-mark{display:block;width:30px;height:20px;border:2px solid var(--paper);background:var(--rust);background-image:repeating-linear-gradient(90deg,transparent 0 4px,rgba(32,26,18,.3) 4px 6px)}.app-logo-name{font-family:Saira Stencil One,sans-serif;font-size:19px;letter-spacing:.04em}.nav-toggle{display:none;margin-left:auto;align-items:center;gap:9px;cursor:pointer;font-family:IBM Plex Mono,monospace;font-weight:600;font-size:12px;letter-spacing:.08em;padding:9px 12px;min-height:44px;border:2px solid #4a4335;background:var(--ink);color:var(--paper)}.nav-toggle[aria-expanded=true]{border-color:var(--rust);background:var(--rust)}.nav-toggle-bars{position:relative;display:block;width:17px;height:2px;background:currentColor;transition:background .12s linear}.nav-toggle-bars:before,.nav-toggle-bars:after{content:"";position:absolute;left:0;width:17px;height:2px;background:currentColor;transition:transform .12s linear}.nav-toggle-bars:before{top:-5px}.nav-toggle-bars:after{top:5px}.nav-toggle[aria-expanded=true] .nav-toggle-bars{background:transparent}.nav-toggle[aria-expanded=true] .nav-toggle-bars:before{transform:translateY(5px) rotate(45deg)}.nav-toggle[aria-expanded=true] .nav-toggle-bars:after{transform:translateY(-5px) rotate(-45deg)}.app-nav{display:flex;gap:8px}.app-nav button{cursor:pointer;font-family:IBM Plex Mono,monospace;font-weight:600;font-size:13px;letter-spacing:.06em;padding:9px 16px;border:2px solid #4a4335;background:var(--ink);color:#b9c6d6}.app-nav button.active{border-color:var(--rust);background:var(--rust);color:var(--card)}.header-meta{margin-left:auto;display:flex;align-items:center;gap:14px;font-family:IBM Plex Mono,monospace;font-size:12px}.gh-status{border:1.5px solid var(--green);color:#7fc9a4;padding:4px 10px;letter-spacing:.06em}.gh-status.off{border-color:#8b8069;color:#8b8069}.tenant{letter-spacing:.06em;color:#b9c6d6}.project-strip{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap;margin-bottom:14px}.project-strip button{display:flex;flex-direction:column;gap:2px;cursor:pointer;text-align:left;font-family:Oswald,Arial Narrow,sans-serif;font-size:15px;letter-spacing:.04em;padding:9px 16px;border:2px solid var(--ink);background:var(--card);color:var(--ink)}.project-strip button:hover{border-color:var(--rust);color:var(--rust)}.project-strip button.current{background:var(--ink);color:#f6f0e2;box-shadow:4px 4px #201a1240}.project-strip-slug{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.08em;opacity:.65}.project-strip-new{align-self:center;border-style:dashed!important;color:var(--rust)!important;font-size:12px!important;letter-spacing:.1em!important}.project-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-top:1.5px dashed var(--rule);padding:10px 0 18px}.project-archived-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border:1.5px dashed #8b8069;background:#f4eee0;padding:8px 12px}.onboard-rail{display:flex;flex-direction:column;gap:14px;margin-bottom:28px}.onboard-step{border:2px solid var(--ink);background:var(--card);box-shadow:5px 5px 0 var(--ink)}.onboard-step.later{opacity:.72}.onboard-step-head{display:flex;align-items:center;gap:16px;width:100%;padding:14px 18px;border:0;background:none;text-align:left;cursor:pointer;color:var(--ink)}.onboard-step-n{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:38px;height:38px;font-size:17px;border:2px solid var(--ink);background:var(--paper)}.onboard-step.now .onboard-step-n{background:var(--rust);color:var(--card)}.onboard-step.done .onboard-step-n{background:var(--green);color:var(--card)}.onboard-step-title{display:flex;flex-direction:column;gap:3px;min-width:0}.onboard-step-name{font-family:Oswald,Arial Narrow,sans-serif;font-size:19px;letter-spacing:.03em;text-transform:uppercase}.onboard-step-summary{font-size:11px;letter-spacing:.07em;color:var(--muted)}.onboard-step.now .onboard-step-summary{color:var(--rust)}.onboard-step-toggle{margin-left:auto;font-size:11px;color:var(--muted)}.onboard-step-body{padding:16px 18px 18px;border-top:1.5px dashed var(--rule)}.onboard-step-body .card{box-shadow:none}.onboard-banner{border:2px solid var(--ink);background:var(--card);box-shadow:6px 6px 0 var(--ink);margin-bottom:26px}.onboard-banner-head{display:flex;align-items:center;gap:12px;background:var(--rust);color:var(--card);padding:4px 10px 4px 4px}.onboard-banner.collapsed{box-shadow:4px 4px 0 var(--ink)}.onboard-banner-toggle{display:flex;align-items:center;gap:12px;flex:1 1 auto;min-width:0;border:0;background:none;color:inherit;cursor:pointer;padding:8px 10px;text-align:left}.onboard-banner-chevron{font-size:13px;opacity:.85}.onboard-banner-title{font-family:Oswald,Arial Narrow,sans-serif;font-size:18px;letter-spacing:.06em;text-transform:uppercase}.onboard-banner-progress{margin-left:auto;font-size:11px;letter-spacing:.08em;opacity:.9}.onboard-banner-dismiss{flex:0 0 auto;border:0;background:none;color:inherit;cursor:pointer;font-size:14px;line-height:1;padding:8px 10px;opacity:.85}.onboard-banner-dismiss:hover{opacity:1}.onboard-banner-body{padding:18px}.onboard-banner-lede{font-size:12px;color:#5c5344;letter-spacing:.04em;margin:0 0 18px;line-height:1.6}.onboard-error{border:2px solid #b3261e;color:#b3261e;background:#fbeae8;padding:10px 14px;font-size:12px;margin-bottom:18px}.onboard-resume{display:inline-flex;align-items:center;gap:8px;border:2px solid var(--ink);background:var(--paper);color:var(--ink);box-shadow:4px 4px 0 var(--ink);cursor:pointer;font-size:12px;letter-spacing:.08em;padding:8px 14px;margin-bottom:26px}.onboard-resume:hover{background:var(--rust);color:var(--card)}.sub-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-bottom:2px solid var(--ink);margin-bottom:22px}.sub-nav button{cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600;letter-spacing:.1em;padding:8px 16px;border:0;border-bottom:3px solid transparent;background:transparent;color:#5c5344}.sub-nav button:hover{color:var(--rust)}.sub-nav button.current{color:var(--ink);border-bottom-color:var(--rust)}.sub-nav-hint{margin-left:auto;font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.04em;color:#8b8069;padding-bottom:6px}.project-filter{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:22px}.project-filter-label{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.1em;color:#5c5344}.project-filter button{cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.06em;padding:5px 11px;border:1.5px solid var(--ink);background:transparent;color:var(--ink)}.project-filter button:hover{border-color:var(--rust);color:var(--rust)}.project-filter button.current{background:var(--ink);color:#f6f0e2;border-color:var(--ink)}.project-chip{font-family:IBM Plex Mono,monospace;font-size:12px;padding:3px 8px;border:1.5px dashed #5c5344;color:#5c5344}.project-chip.archived,.project-filter button.archived{border-style:dotted;color:#8b8069}.project-filter button.archived.current{color:#f6f0e2}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#201a1273;display:flex;align-items:center;justify-content:center;padding:24px}.modal-panel{width:min(460px,100%);color:var(--ink);box-sizing:border-box;padding:24px;display:flex;flex-direction:column;gap:12px}main{flex:1;padding:32px var(--gutter) 56px;max-width:1440px;width:100%;margin:0 auto;box-sizing:border-box}.page-title{font-family:Saira Stencil One,sans-serif;font-size:34px;margin:0}.page-kicker{font-family:IBM Plex Mono,monospace;font-size:12px;letter-spacing:.1em;color:var(--muted)}.section-title{font-family:Saira Stencil One,sans-serif;font-size:20px;margin:0 0 14px}.card{border:2px solid var(--ink);background:var(--card);box-shadow:5px 5px 0 var(--ink)}.badge{font-family:IBM Plex Mono,monospace;font-weight:600;font-size:11px;letter-spacing:.08em;padding:4px 10px;border:2px solid var(--ink)}.btn{display:inline-block;box-sizing:border-box;text-decoration:none;cursor:pointer;font-family:IBM Plex Mono,monospace;font-weight:600;font-size:13px;border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);padding:9px 18px;background:var(--card);color:var(--ink)}.btn:hover{color:var(--ink)}.btn.btn-sm{font-size:11px;padding:5px 9px;box-shadow:2px 2px 0 var(--ink)}.btn.green{background:var(--green);color:var(--card)}.btn.green:hover{color:var(--card)}.btn.rust{background:var(--rust);color:var(--card)}.btn.rust:hover{color:var(--card)}.input{font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--ink);background:var(--paper);border:1.5px solid var(--ink);padding:8px 10px;box-sizing:border-box;min-width:0}.input:focus{outline:none;background:var(--card);box-shadow:2px 2px 0 var(--navy)}.card-actions{display:flex;flex-wrap:wrap;gap:12px}.auth-wrap{flex:1;display:flex;align-items:center;justify-content:center;padding:48px 24px}.auth-card{width:min(420px,100%);box-sizing:border-box;padding:0 0 28px}.auth-flag{background:var(--ink);color:var(--amber);font-size:11px;letter-spacing:.12em;padding:9px 24px}.auth-title{font-size:30px;margin:22px 24px 16px}.auth-tabs{display:flex;gap:0;margin:0 24px 20px;border:2px solid var(--ink)}.auth-tabs button{flex:1;cursor:pointer;font-family:IBM Plex Mono,monospace;font-weight:600;font-size:12px;letter-spacing:.08em;padding:8px 0;border:none;background:var(--card);color:var(--muted)}.auth-tabs button+button{border-left:2px solid var(--ink)}.auth-tabs button.active{background:var(--navy);color:var(--card)}.auth-providers{display:flex;flex-direction:column;gap:10px;margin:0 24px 18px}.auth-provider{display:flex;align-items:center;justify-content:center;gap:10px;cursor:pointer;font-weight:600;font-size:12px;letter-spacing:.08em;padding:11px 12px;border:2px solid var(--ink);background:var(--card);color:var(--ink);box-shadow:3px 3px 0 var(--ink)}.auth-provider:hover{background:var(--paper)}.auth-provider:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}.auth-provider:disabled{opacity:.6;cursor:wait}.auth-or{display:flex;align-items:center;gap:10px;margin:0 24px 16px;font-size:10px;letter-spacing:.12em;color:var(--muted)}.auth-or:before,.auth-or:after{content:"";flex:1;height:2px;background:var(--ink);opacity:.25}.auth-notice{margin:22px 24px 0;font-size:14px;line-height:1.55}.auth-notice p{margin:0 0 10px}.auth-notice-sub{color:var(--muted);font-size:12px}.auth-notice-error{margin:0 24px 16px}.auth-notice-actions{margin:6px 24px 0}.auth-notice-actions .auth-submit:disabled{cursor:default}.auth-card form{display:flex;flex-direction:column;margin:0 24px}.auth-label{font-size:11px;letter-spacing:.1em;color:var(--muted);margin:0 0 6px}.auth-input{font-family:Space Grotesk,sans-serif;font-size:15px;color:var(--ink);background:var(--paper);border:2px solid var(--ink);padding:9px 12px;margin-bottom:16px}.auth-input:focus{outline:none;box-shadow:3px 3px 0 var(--navy);background:var(--card)}.auth-error{border:2px solid #b3261e;color:#b3261e;background:#fbeae8;font-size:11px;letter-spacing:.06em;padding:8px 10px;margin-bottom:16px}.auth-submit{align-self:flex-start;font-size:14px;padding:10px 22px}.auth-submit:disabled{opacity:.6;cursor:wait}.auth-foot{margin:20px 24px 0;font-size:11px;letter-spacing:.06em;color:var(--muted)}.auth-foot a{cursor:pointer;text-decoration:underline}.loading-screen{flex:1;display:flex;align-items:center;justify-content:center;font-family:IBM Plex Mono,monospace;font-size:13px;letter-spacing:.1em;color:var(--muted);animation:pulse 1.6s ease-in-out infinite}.signout-btn{cursor:pointer;font-family:IBM Plex Mono,monospace;font-weight:600;font-size:11px;letter-spacing:.06em;padding:4px 10px;border:1.5px solid #4a4335;background:transparent;color:#b9c6d6}.signout-btn:hover{border-color:var(--rust);color:var(--paper)}.app-footer{border-top:2px solid var(--ink);padding:14px var(--gutter);font-family:IBM Plex Mono,monospace;font-size:12px;letter-spacing:.08em;color:var(--muted);display:flex;gap:20px}.app-footer a{margin-left:auto}.view-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:18px;margin-bottom:6px}.view-head .btn{margin-left:auto}.stat-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;margin-bottom:28px}.stat-tile{padding:14px 18px;box-shadow:4px 4px 0 var(--ink)}.stat-value{font-family:Saira Stencil One,sans-serif;font-size:30px;line-height:1.1}.stat-label{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.1em;color:var(--muted)}.run-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:40px}.signal-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.col-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-bottom:26px}.col-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.col-2-wide{display:grid;grid-template-columns:1.2fr 1fr;gap:22px}.col-4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.stat-grid>*,.signal-tiles>*,.run-grid>*,.col-2>*,.col-2-wide>*,.col-3>*,.col-4>*{min-width:0}.run-drawer{position:fixed;top:0;right:0;bottom:0;left:0;background:#201a1273;z-index:50;display:flex;justify-content:flex-end}.run-drawer-panel{width:min(560px,94vw);height:100%;background:var(--paper);border-left:2px solid var(--ink);box-shadow:-8px 0 #201a121f;display:flex;flex-direction:column;overflow:hidden}.scroll-x{overflow-x:auto}.scroll-x>table{min-width:520px}.row-grid{display:grid}.run-log-grid{min-width:1000px;grid-template-columns:110px 1.6fr 120px 1fr 1fr 130px 110px 90px}.machine-grid{min-width:870px;grid-template-columns:190px 150px 110px 1.4fr 110px 110px}.fleet-grid{min-width:1100px;grid-template-columns:150px 160px 120px 1.3fr 90px 100px 120px 110px}.event-grid{min-width:560px;grid-template-columns:110px 1fr 130px 130px}.crew-grid{min-width:520px;grid-template-columns:1.6fr 120px 1fr}.page-title{font-size:clamp(26px,4.5vw,34px)}@media(max-width:1260px){:root{--gutter: 24px}.stat-grid{grid-template-columns:repeat(3,1fr)}.col-3{grid-template-columns:1fr}.app-header{flex-wrap:wrap;gap:12px 16px}.app-nav{order:3;width:100%;overflow-x:auto;padding-bottom:2px}.app-nav button{flex:0 0 auto}.header-meta{order:2;margin-left:auto;flex-wrap:wrap;justify-content:flex-end;gap:8px}}@media(max-width:960px){.run-grid,.col-2-wide{grid-template-columns:1fr}.col-4{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){:root{--gutter: 14px}.app-header{padding:10px var(--gutter);gap:10px 12px}.app-logo-name{font-size:17px}main{padding:22px var(--gutter) 40px}.nav-toggle{display:inline-flex}.app-header>.app-nav,.app-header>.header-meta{display:none}.app-header.admin>.app-nav,.app-header.admin>.header-meta{display:flex}.app-header.admin>.app-nav{order:2;width:100%}.app-header.open>.app-nav{display:flex;order:2;flex-direction:column;width:100%;gap:6px;overflow:visible;padding-bottom:0}.app-header.open .app-nav button{width:100%;text-align:left;min-height:48px;font-size:14px}.app-header.open>.header-meta{display:flex;order:3;width:100%;margin-left:0;flex-direction:column;align-items:stretch;gap:10px;padding-top:12px;border-top:1.5px solid #4a4335}.app-header.open .gh-status,.app-header.open .tenant{text-align:center}.app-header.open .signout-btn{min-height:44px;font-size:12px}.project-strip button{flex:1 1 100%}.project-strip-new{flex:1 1 100%;text-align:center!important}.record-head{display:none}.row-grid.record{min-width:0;grid-template-columns:1fr;row-gap:7px}.row-grid.record>*{display:block;position:relative;padding-left:106px;min-height:15px}.row-grid.record>*:before{content:attr(data-label);position:absolute;left:0;top:2px;width:96px;font-family:IBM Plex Mono,monospace;font-weight:600;font-size:10px;line-height:1.4;letter-spacing:.1em;color:#8b8069}.row-grid.record>*:not([data-label]){padding-left:0}.row-grid.record>*:not([data-label]):before{content:none}.row-grid.record>*:empty{display:none}.stat-grid{grid-template-columns:repeat(2,1fr);gap:10px}.stat-tile{padding:10px 12px;box-shadow:3px 3px 0 var(--ink)}.stat-value{font-size:24px}.stat-label{font-size:10px;letter-spacing:.08em}.col-2{grid-template-columns:1fr}.signal-tiles{grid-template-columns:1fr;gap:12px}.view-head{gap:8px 14px}.view-head .btn{margin-left:0;width:100%;text-align:center}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px}.card-actions>*{flex:1 1 calc(50% - 6px)}.view-switch button{min-height:44px}.input,.auth-input,.auth-provider,.auth-tabs button{font-size:16px}.auth-submit{min-height:44px}.run-drawer-panel{width:100%;border-left:none;box-shadow:none}.app-footer{flex-wrap:wrap;gap:8px 20px}.app-footer a{margin-left:0}}
