/* OdooFleet control-plane design, adapted from the approved Figma screens. */
:root {
  --bg:#09111a; --bg-elevated:#0f1926; --bg-soft:#142131;
  --panel:#0f1926; --panel-strong:#0f1926; --panel-light:#142131;
  --panel-border:#26384a; --line:#26384a;
  --ink:#e8edf4; --muted:#91a4ba; --muted-strong:#b4c0cf;
  --brand:#2dd4bf; --brand-strong:#23baa8; --brand-deep:#103b3b;
  --ok:#59e2a2; --warn:#ffc35c; --danger:#ff6c86;
  --radius-xl:8px; --radius-lg:8px; --radius-md:8px; --radius-sm:6px;
  --shadow:none; --shadow-soft:none;
  --body-font:'IBM Plex Sans','Segoe UI',sans-serif;
  --heading-font:'Space Grotesk','IBM Plex Sans',sans-serif;
  --mono-font:'IBM Plex Mono',ui-monospace,'SFMono-Regular',monospace;
  --rail-width:176px; --topbar-height:64px;
}
body { background:var(--bg); font-family:var(--body-font); font-size:14px; line-height:1.5; }
h1,h2,h3,.app-brand { font-family:var(--heading-font); letter-spacing:-.025em; }
h1 { font-size:28px; line-height:1.25; font-weight:600; }
h2 { font-size:16px; font-weight:600; }
h3 { font-size:15px; }
p { line-height:1.55; }
a { text-decoration:none; }
a:hover { color:var(--brand); }
[hidden] { display:none !important; }
.ui-icon { display:inline-block; vertical-align:middle; flex-shrink:0; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
button,.button { min-height:36px; padding:7px 13px; border-radius:8px; font-family:var(--body-font); font-size:14px; font-weight:500; letter-spacing:0; line-height:20px; background:var(--brand); color:#042620; box-shadow:none; transform:none; gap:8px; }
button:hover,.button:hover { background:var(--brand-strong); box-shadow:none; transform:none; }
button.secondary,.button.secondary { background:#142131; border:1px solid var(--panel-border); color:var(--ink); }
button.secondary:hover,.button.secondary:hover { background:#1c2c3c; border-color:#42566c; }
button.danger,.button.danger { background:#3b1c2a; color:#ff9cb0; border-color:#7a354a; box-shadow:none; }
button.danger:hover,.button.danger:hover { background:#552438; box-shadow:none; }
button:disabled,.button:disabled { opacity:.5; transform:none; box-shadow:none; }
input,select,textarea { background:#09131e; color:var(--ink); border:1px solid var(--panel-border); border-radius:8px; padding:8px 12px; min-height:36px; font-family:var(--body-font); font-size:14px; box-shadow:none; }
input::placeholder,textarea::placeholder { color:var(--muted); opacity:1; }
input[type=checkbox],input[type=radio] { min-height:0; padding:0; accent-color:var(--brand); }
textarea { line-height:1.6; }
label { color:var(--muted-strong); font-size:13px; }
label > span { font-size:13px; letter-spacing:0; text-transform:none; }
:focus-visible { outline:2px solid var(--brand); outline-offset:3px; }
input:focus,select:focus,textarea:focus { border-color:var(--brand); outline:2px solid #2dd4bf38; outline-offset:1px; box-shadow:none; }
code,pre,.monospace { font-family:var(--mono-font); }
pre { white-space:pre-wrap; overflow-wrap:anywhere; }
.text-ok { color:var(--ok); }.text-warn { color:var(--warn); }.text-danger { color:var(--danger) !important; }
.pill,.status-badge,.stage-label { display:inline-flex; align-items:center; gap:6px; padding:3px 8px; border:0; border-radius:4px; background:#142131; color:var(--muted); font-size:12px; font-weight:500; line-height:17px; white-space:nowrap; letter-spacing:0; }
.status-dot { display:inline-block; width:5px; height:5px; border-radius:2px; background:currentColor; flex-shrink:0; }
.status-healthy,.pill-ok { color:var(--ok); background:#102a2b; }.status-attention,.pill-error { color:var(--warn); background:#30291c; }.status-sleeping { color:#b2b7d5; background:#222437; }.status-pending { color:var(--brand); background:#103533; }
.stage-label { text-transform:uppercase; font-size:11px; letter-spacing:.03em; }.stage-staging { color:var(--warn); }.stage-production { color:var(--ok); }.stage-development,.stage-review { color:#a8bbf4; }
.app-backdrop { display:none; }
.control-plane .topbar { position:sticky; top:0; z-index:40; margin-left:var(--rail-width); min-height:var(--topbar-height); height:var(--topbar-height); padding:0 24px; border:0; border-bottom:1px solid var(--line); display:flex; gap:20px; background:var(--bg); backdrop-filter:none; }
.app-sidebar { position:fixed; z-index:60; inset:0 auto 0 0; width:var(--rail-width); display:flex; flex-direction:column; padding:24px 16px; background:#0f1926; border-right:1px solid var(--line); }
.app-brand { display:flex; align-items:center; gap:8px; color:var(--ink); font-size:20px; font-weight:600; white-space:nowrap; }
.brand-symbol { display:grid; place-items:center; width:32px; height:32px; background:#103333; color:var(--brand); border-radius:8px; flex-shrink:0; }
.nav-section-label { color:#7e95af; font-size:10px; text-transform:uppercase; margin:26px 0 20px; }
.app-sidebar .nav { display:flex; flex-direction:column; gap:8px; padding:0; align-items:stretch; }
.app-sidebar .nav > a { display:flex; gap:12px; align-items:center; color:var(--muted); border-radius:8px; padding:11px 10px; font-weight:400; font-size:14px; min-height:40px; }
.app-sidebar .nav > a:hover { background:#152938; color:var(--ink); }
.app-sidebar .nav > a.is-active { background:#103335; color:var(--brand); }
.sidebar-advanced { position:relative; margin-top:8px; color:var(--muted); }
.sidebar-advanced > summary { display:flex; align-items:center; gap:12px; padding:11px 10px; cursor:pointer; list-style:none; }
.sidebar-advanced > summary::-webkit-details-marker { display:none; }
.sidebar-advanced .nav-tools-menu { position:static; background:#09131e; border:1px solid var(--line); padding:6px; min-width:0; border-radius:6px; }
.nav-tools-menu a { display:block; padding:8px 10px; color:var(--muted-strong); }
.sidebar-footer { margin-top:auto; padding-top:32px; display:grid; gap:24px; }
.control-status { display:flex; gap:6px; align-items:center; color:var(--ok); font-size:10px; white-space:nowrap; }
.sidebar-account { display:flex; gap:8px; align-items:center; color:var(--ink); font-size:12px; }
.sidebar-account strong,.sidebar-account small { display:block; font-weight:400; }
.sidebar-account small { color:var(--muted); font-size:11px; }
.avatar { display:grid; place-items:center; width:32px; height:32px; flex-shrink:0; background:#172638; border-radius:6px; font:11px var(--body-font); color:var(--muted-strong); }
.breadcrumbs { display:flex; gap:10px; align-items:center; flex:1; min-width:0; overflow:hidden; white-space:nowrap; color:var(--muted); font-size:14px; }
.breadcrumbs > a { color:var(--muted); overflow:hidden; text-overflow:ellipsis; }.breadcrumbs > a:last-of-type { color:var(--ink); }.breadcrumbs > span[aria-current] { color:var(--ink); overflow:hidden; text-overflow:ellipsis; }
.fleet-search,.search-control { display:flex; gap:8px; align-items:center; padding:0 12px; background:#09131e; border:1px solid var(--line); border-radius:8px; color:var(--muted); }
.fleet-search { width:260px; margin:0; }.fleet-search input,.search-control input { border:0; background:transparent; padding:8px 0; width:100%; min-width:0; outline:0; }.fleet-search:focus-within,.search-control:focus-within { outline:2px solid var(--brand); outline-offset:1px; }.fleet-search input:focus,.search-control input:focus { outline:0; }
.fleet-search kbd { color:var(--muted); font:11px var(--body-font); white-space:nowrap; }
.account-menu { position:relative; }.account-menu summary { display:flex; align-items:center; gap:8px; cursor:pointer; color:var(--muted-strong); font-size:12px; list-style:none; }.account-menu summary::-webkit-details-marker { display:none; }.account-menu > div { position:absolute; right:0; top:42px; width:180px; display:grid; gap:8px; padding:12px; background:var(--bg-elevated); border:1px solid var(--line); border-radius:8px; box-shadow:0 12px 24px #0005; }.account-menu a { display:flex; align-items:center; gap:8px; padding:4px; color:var(--ink); }
.mobile-nav-toggle { display:none; }.icon-button { padding:6px; }
.control-plane .page { margin:0 0 0 var(--rail-width); width:auto; max-width:none; padding:28px 24px 20px; min-height:calc(100vh - var(--topbar-height)); }
.page-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:0 0 22px; }.page-heading h1 { margin:0 0 4px; }.page-heading p { margin:0; }
.panel,.hero,.keyval,.workspace-command,.project-tile,.activity-item,.release-card,.status-card { background:var(--panel); border:1px solid var(--panel-border); border-radius:8px; box-shadow:none; backdrop-filter:none; }
.panel { padding:16px; margin:0; }.panel > h2:first-child { margin:0 0 16px; }.panel-head { align-items:center; gap:12px; margin:0 0 16px; }.panel-head h2 { margin:0; }.panel-head h2 .pill { margin-left:8px; }
.hero { padding:20px; margin-bottom:24px; }.hero::after { display:none; }.hero h1 { font-size:28px; }.hero h2 { font-size:22px; }.hero-meta div { background:var(--bg-soft); border-radius:6px; }
.grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); }.grid,.stack { gap:20px; }.grid > *,.stack > * { min-width:0; }
.table-scroll { max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; }
table { width:100%; border-collapse:collapse; font-size:13px; }th { color:#91a4ba; text-transform:uppercase; letter-spacing:.025em; font-size:10px; font-weight:400; text-align:left; background:#142131; padding:12px 16px; }td { padding:12px 16px; border-bottom:1px solid var(--line); vertical-align:middle; overflow-wrap:anywhere; }tbody tr:last-child td { border-bottom:0; }td a { color:var(--ink); }td code { font-size:11px; }td .button { white-space:nowrap; }
.form-grid { gap:16px; }.form-grid label span,.form-grid label > span { font-size:12px; text-transform:none; letter-spacing:0; color:var(--muted-strong); }.form-grid > p { margin:0; }.button-row,.form-actions { gap:8px; }.button-row form { margin:0; }.form-actions { margin-top:4px; }
.stats-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }.keyval { padding:14px; }.keyval strong { color:var(--muted); font-size:11px; font-weight:400; text-transform:none; letter-spacing:0; }.keyval span { font-size:14px; line-height:1.5; overflow-wrap:anywhere; }
.flash { margin:0 0 16px; padding:12px 16px; border-radius:6px; font-size:13px; }.flash-ok { background:#10302b; border-color:#215e50; color:#9ee6c9; }.flash-error { background:#341d2a; border-color:#683447; color:#ffb2bf; }
.fleet-metrics { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px; margin-bottom:20px; }.fleet-metric { padding:20px 16px; display:flex; align-items:center; gap:16px; border:1px solid var(--line); border-radius:8px; background:var(--bg-elevated); min-width:0; }.fleet-metric strong { font:500 24px/1.2 var(--heading-font); white-space:nowrap; }.fleet-metric span { font-size:12px; color:var(--muted); }
.project-directory { padding:0; margin-bottom:20px; overflow:hidden; }.directory-toolbar { padding:16px; margin:0; }.directory-filters { display:flex; gap:12px; align-items:center; }.directory-filters .search-control { width:300px; }.directory-filters select { width:auto; max-width:155px; font-size:13px; background:var(--bg-soft); }.project-table td { padding:11px 16px; height:52px; }.project-table tbody tr:hover { background:#10272c; }.project-name { color:var(--ink); font-weight:500; }.project-table tbody tr:hover .project-name { color:var(--brand); }.project-edition { display:block; color:var(--muted); font-size:10px; }.stage-counts { display:flex; flex-wrap:wrap; gap:8px; font-size:11px; color:var(--muted); }.stage-counts b { font-weight:500; color:var(--muted-strong); }.table-date { color:var(--muted); font-size:11px; white-space:nowrap; }.table-open { display:flex; color:var(--muted); padding:4px; }.directory-footer { padding:10px 16px; display:flex; justify-content:space-between; gap:16px; border-top:1px solid var(--line); color:var(--muted); font-size:11px; }
.dashboard-lower { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(0,1fr); gap:20px; }.job-list-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid var(--line); color:var(--ink); }.job-list-row:last-child { border-bottom:0; }.job-list-row strong { font-size:13px; font-weight:400; }.job-list-row small { display:block; color:var(--muted); font-size:11px; margin-top:3px; }.text-link { display:inline-flex; align-items:center; gap:6px; color:var(--muted); font-size:12px; }.audit-disclosure > summary { cursor:pointer; font-size:13px; }.activity-item { padding:12px; margin-bottom:8px; }.activity-item > span { display:block; font-size:11px; }.empty-state { text-align:center; padding:44px 24px; color:var(--muted); }.empty-state h3 { color:var(--ink); margin:12px 0 6px; }.empty-state p { max-width:50ch; margin:0 auto 20px; }.empty-state.small { text-align:left; padding:16px 0; }.empty-state.small p { margin:0; }.page-footer { display:flex; justify-content:space-between; gap:16px; color:#8297b0; font-size:11px; margin-top:20px; }
.control-plane.workspace-body .page { padding:0; }
.workspace-shell { display:grid; grid-template-columns:208px minmax(0,1fr); min-height:calc(100vh - var(--topbar-height)); width:100%; max-width:none; margin:0; }
.workspace-sidebar { position:sticky; top:var(--topbar-height); align-self:start; height:calc(100vh - var(--topbar-height)); overflow-y:auto; padding:20px 16px; border:0; border-right:1px solid var(--line); background:var(--bg-elevated); border-radius:0; }
.workspace-sidebar-head { margin-bottom:20px; }.workspace-sidebar-head h1 { display:flex; gap:8px; align-items:center; font:600 14px var(--body-font); margin:0 0 8px; letter-spacing:0; }.workspace-sidebar-head h1 a { color:var(--ink); }.workspace-sidebar-head h1 .ui-icon { color:var(--brand); }.workspace-sidebar-head p { font-size:11px; margin:0; color:var(--muted); }
.sidebar-filter { display:block; margin:0 0 24px; }.sidebar-filter input { width:100%; font-size:13px; padding:8px 10px; }
.workspace-sidebar-group { margin:0 0 24px; }.workspace-sidebar-group + .workspace-sidebar-group { margin-top:0; }.workspace-sidebar-group-head { margin:0 0 8px; display:flex; align-items:center; justify-content:space-between; gap:8px; }.workspace-sidebar-group-head h2 { font:400 10px var(--body-font); color:#8aa0bb; text-transform:uppercase; letter-spacing:.03em; }.workspace-sidebar-group-head a { font:400 11px var(--body-font); color:var(--muted); }
.workspace-branch-link { display:block; border:0; border-radius:6px; border-left:0; padding:10px 8px; margin:0 0 4px; background:transparent; }.workspace-branch-link:hover,.workspace-branch-link.is-active { background:#103335; border:0; }.workspace-branch-name { display:flex; align-items:center; gap:8px; color:var(--ink); font:400 14px var(--body-font); }.workspace-branch-link.is-active .workspace-branch-name { color:var(--brand); }.workspace-branch-meta { display:block; font-size:11px; color:var(--muted); margin-top:4px; overflow-wrap:anywhere; }.workspace-empty { font-size:12px; margin:8px 0; }.workspace-sidebar-actions { margin-top:24px; }.workspace-sidebar-actions .button { font-size:12px; padding:6px 10px; }
.workspace-main { padding:24px; min-width:0; }.workspace-hero,.workspace-toolbar,.workspace-tabs,.workspace-grid { margin-left:0; margin-right:0; }.workspace-hero { padding:0; display:block; margin-bottom:18px; background:none; border:0; box-shadow:none; }.environment-heading { position:relative; padding-right:170px; }.environment-title { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }.workspace-hero h2 { font-size:28px; line-height:1.3; margin:0; font-weight:600; }.environment-version { position:absolute; right:0; top:8px; color:var(--muted); font-size:11px; }.environment-ref { display:flex; gap:12px; align-items:center; flex-wrap:wrap; color:var(--muted); margin-top:12px; font-size:12px; }.environment-ref code { font-size:12px; color:var(--muted-strong); background:transparent; padding:0; }.environment-ref a { display:inline-flex; gap:6px; align-items:center; color:var(--brand); overflow-wrap:anywhere; }.workspace-actions { display:flex; align-items:center; gap:8px; margin-top:18px; }.workspace-actions form { margin:0; }
.action-menu { position:relative; }.action-menu > summary { display:grid; place-items:center; height:36px; width:40px; background:#142131; border:1px solid var(--line); border-radius:8px; cursor:pointer; list-style:none; }.action-menu > summary::-webkit-details-marker { display:none; }.action-menu-items { position:absolute; z-index:35; top:44px; left:0; min-width:190px; padding:6px; border:1px solid var(--line); border-radius:8px; background:var(--bg-elevated); box-shadow:0 12px 24px #0005; }.action-menu-items a,.action-menu-items button { display:flex; align-items:center; width:100%; padding:8px 10px; border:0; border-radius:4px; min-height:32px; background:none; color:var(--ink); font-size:13px; text-align:left; justify-content:flex-start; }.action-menu-items a:hover,.action-menu-items button:hover { background:#172b3b; }
.workspace-tabs { display:flex; gap:28px; padding:0; border:0; border-bottom:1px solid var(--line); margin-bottom:24px; overflow-x:auto; scrollbar-width:thin; background:none; border-radius:0; flex-wrap:nowrap; }.workspace-tab { border:0; border-bottom:2px solid transparent; border-radius:0; padding:12px 0; white-space:nowrap; color:var(--muted); font-size:14px; font-weight:400; background:none; box-shadow:none; }.workspace-tab.is-active,.workspace-tab:hover { background:none; color:var(--brand); border-bottom-color:var(--brand); }.workspace-toolbar { margin:0 0 20px; padding:0; border:0; background:none; }.workspace-toolbar .keyval { min-height:82px; }.workspace-toolbar .keyval > span { display:block; margin-top:8px; font-size:13px; }
.workspace-grid { margin-top:0; grid-template-columns:minmax(0,1.8fr) minmax(260px,1fr); }.release-card { border:0; border-bottom:1px solid var(--line); padding:16px 0; margin:0; background:transparent; border-radius:0; }.release-card:last-child { border-bottom:0; }.release-card .panel-head { margin-bottom:4px; }.release-card .panel-head strong { text-transform:capitalize; color:var(--ok); font-size:13px; font-weight:500; }.release-card-error .panel-head strong { color:var(--danger); }.release-card-warn .panel-head strong { color:var(--warn); }.release-card .muted { font-size:11px; margin:4px 0; }.release-artifacts summary { font-size:12px; cursor:pointer; color:var(--muted); }.release-log-list { padding-top:8px; }.release-log-path code { font-size:10px; color:var(--muted); }.source-clone { padding:12px 0; }.source-clone summary { cursor:pointer; }.source-clone code { display:block; padding:12px; overflow-wrap:anywhere; }
.workspace-subtabs { border:0; gap:8px; margin-bottom:16px; }.workspace-subtabs .workspace-tab { padding:7px 12px; border:1px solid var(--line); background:#101d2a; border-radius:6px; }.workspace-subtabs .workspace-tab.is-active { color:var(--brand); border-color:#2dd4bf66; background:#103335; }
.log-controls { grid-template-columns:minmax(0,2fr) minmax(140px,1fr) auto; gap:12px; }.log-controls label > span { font-size:11px; }.log-actions { gap:8px; margin:16px 0 12px; }.log-actions button { min-height:32px; font-size:12px; padding:5px 10px; }.log-viewport { border-radius:6px; background:#09111a; border-color:var(--line); height:53vh; max-height:900px; }.log-viewport pre { font:12px/1.8 var(--mono-font); }.log-line-number { flex-basis:3.25rem; padding-right:14px; font-size:10px; color:#8298b2; }.log-level-error { color:#ff9cb0; background:#6b26363a; }.log-level-warning { color:var(--warn); }.log-viewer > p { font-size:11px; }.log-viewer.is-expanded { background:var(--bg); border-radius:8px; }.log-browser-grid.grid.two { grid-template-columns:minmax(180px,240px) minmax(0,1fr); }
.backup-layout.grid.two { grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr); }.backup-layout > .stack:first-child { min-width:0; }.backup-layout form > p,.backup-layout .muted { font-size:12px; }.backup-layout details.panel { padding:12px; background:#09131e; }.backup-layout details > summary { cursor:pointer; font-weight:500; font-size:13px; }.backup-layout .button-row { margin:12px 0; }.backup-layout .button-row button { font-size:12px; }.backup-layout .form-grid { grid-template-columns:minmax(0,1fr); }
.ai-workspace-panel { padding:0; overflow:hidden; border-radius:8px; }.ai-workspace-panel p { font-size:12px; }#ai-terminal { background:#080e16; height:65vh; min-height:360px; padding:12px; }.ai-workspace-panel select { width:auto; }
.job-notice { border:1px solid var(--line); border-radius:8px; background:#142131; box-shadow:0 10px 25px #0004; font-size:13px; }.job-notice.succeeded { border-color:#2d6e56; }.job-notice.failed { border-color:#8c3c51; }.job-notice a { color:var(--brand); font-size:12px; }.job-notice > button { background:none; color:var(--muted); min-height:24px; }.job-notifications { z-index:100; }
.faq-list details { border-color:var(--line); }.log-box { background:#09131e; color:var(--muted-strong); border:1px solid var(--line); border-radius:6px; font:12px/1.7 var(--mono-font); }.login-body .topbar { background:transparent; border:0; }.login-body .page { max-width:500px; margin:0 auto; padding:44px 20px; }.login-body .panel.narrow { width:100%; border-radius:8px; }.login-body .app-brand { color:var(--ink); }.login-body .topbar { min-height:64px; padding:20px 32px; }.skip-link { z-index:200; }.help-trigger { border-radius:50%; }
@media(min-width:1700px) { .control-plane:not(.workspace-body) .page { max-width:1800px; } }
@media(max-width:1200px) {
  :root { --rail-width:64px; }.app-sidebar { padding:24px 12px; align-items:stretch; }.app-brand { justify-content:center; }.app-sidebar .nav-label,.nav-section-label { display:none; }.app-sidebar .nav { margin-top:32px; }.app-sidebar .nav > a { padding:12px; justify-content:center; }.sidebar-advanced > summary { padding:12px; justify-content:center; }.sidebar-advanced .nav-tools-menu { position:absolute; left:44px; top:0; min-width:170px; }.sidebar-account { justify-content:center; }.control-status { justify-content:center; }.control-status .status-dot { width:7px; height:7px; }.directory-filters .search-control { width:220px; }.fleet-metrics { gap:12px; }.fleet-metric { gap:10px; padding:16px 12px; flex-wrap:wrap; }.fleet-metric strong { font-size:22px; }.fleet-metric span { font-size:11px; }.directory-filters { gap:8px; }.workspace-grid { grid-template-columns:minmax(0,1fr); }.grid.two.workspace-grid:not(.log-browser-grid) { grid-template-columns:minmax(0,1fr); }.workspace-tabs { gap:22px; }.backup-layout.grid.two { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:1000px) {
  .workspace-shell { grid-template-columns:minmax(0,1fr); }.workspace-sidebar { position:static; height:auto; padding:16px 24px; border-right:0; border-bottom:1px solid var(--line); display:flex; flex-wrap:wrap; align-items:flex-start; gap:12px 20px; }.workspace-sidebar-head { margin:0; }.workspace-sidebar-head h1 { margin:0 0 4px; }.sidebar-filter { flex:1; min-width:170px; margin:0; }.workspace-sidebar-group { margin:0; flex:1 0 24%; min-width:150px; }.workspace-sidebar-group-head { margin:0 0 4px; }.workspace-branch-link { padding:6px; }.workspace-branch-name { font-size:12px; }.workspace-branch-meta { font-size:10px; }.workspace-sidebar-actions { margin:0; align-self:end; }.workspace-sidebar-actions .button { min-height:30px; }.dashboard-lower { grid-template-columns:minmax(0,1fr); }.directory-toolbar { align-items:flex-start; flex-direction:column; }.directory-filters { width:100%; }.directory-filters .search-control { flex:1; width:auto; }.workspace-main { padding-top:22px; }.fleet-search { width:220px; }.account-menu-label { display:none; }
}
@media(max-width:760px) {
  :root { --rail-width:0px; }.app-sidebar { width:220px; transform:translateX(-100%); transition:transform 160ms ease; padding:24px 16px; }.app-sidebar .nav-label,.nav-section-label { display:initial; }.app-sidebar .app-brand { justify-content:flex-start; }.app-sidebar .nav { margin:0; }.app-sidebar .nav > a { justify-content:flex-start; }.sidebar-advanced > summary { justify-content:flex-start; }.sidebar-advanced .nav-tools-menu { position:static; min-width:0; }.sidebar-account { justify-content:flex-start; }.control-status { justify-content:flex-start; }.navigation-open .app-sidebar { transform:translateX(0); }.nav-scrim { position:fixed; z-index:55; inset:0; border:0; border-radius:0; width:100%; height:100%; background:#0008; }.navigation-open { overflow:hidden; }.mobile-nav-toggle { display:inline-flex; }.control-plane .topbar { padding:0 16px; gap:12px; }.control-plane .page { padding:24px 16px; }.fleet-search { width:180px; }.fleet-search kbd { display:none; }.breadcrumbs { font-size:12px; gap:6px; }.account-menu { margin-left:auto; }.fleet-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }.fleet-metric:last-child { grid-column:span 2; }.fleet-metric { flex-wrap:nowrap; }.page-heading h1 { font-size:24px; }.page-heading > .button { font-size:12px; white-space:nowrap; }.grid.two { grid-template-columns:minmax(0,1fr); }.hero { display:block; }.directory-filters { flex-wrap:wrap; }.directory-filters .search-control { width:100%; flex:1 0 100%; }.directory-filters select { flex:1; max-width:none; }.directory-footer { flex-direction:column; gap:4px; }.workspace-main { padding:20px 16px; }.workspace-sidebar { padding:16px; gap:12px; }.workspace-sidebar-head { width:100%; }.sidebar-filter { min-width:100%; }.workspace-sidebar-group { flex-basis:42%; min-width:130px; }.workspace-sidebar-actions { width:100%; }.environment-heading { padding-right:0; }.environment-version { position:static; display:block; margin-top:8px; }.environment-title { gap:8px; }.workspace-hero h2 { font-size:26px; }.workspace-tabs { gap:22px; margin-bottom:20px; }.stats-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.workspace-toolbar .keyval { min-height:74px; }.log-controls { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }.log-controls > label:first-child { grid-column:1/-1; }.log-controls .check { padding-bottom:6px; }.log-browser-grid.grid.two { grid-template-columns:minmax(0,1fr); }.log-viewport { height:55vh; }.log-viewer.is-expanded { inset:8px; padding:12px; }.job-notifications { right:12px; bottom:12px; width:min(390px,calc(100vw - 24px)); }.panel { padding:14px; }.page-footer { font-size:10px; }td,th { padding:10px 12px; }.project-table { min-width:770px; }.form-grid { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:480px) { .fleet-search { width:38px; padding:0 9px; }.fleet-search input { width:0; padding:0; }.fleet-search:focus-within { position:absolute; right:16px; left:16px; width:auto; z-index:3; }.fleet-search:focus-within input { width:100%; padding:8px 0; }.workspace-actions .button,.workspace-actions button { font-size:12px; padding:7px 10px; }.environment-title .status-badge { font-size:11px; }.panel-head { flex-wrap:wrap; }.fleet-metric { gap:8px; }.fleet-metric strong { font-size:20px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.01ms !important; transition:none !important; } }
.control-plane .panel h2,.control-plane .panel-head h2{font-size:16px;line-height:1.4;letter-spacing:-.2px}
.control-plane dialog{color:var(--ink);background:#0f1926;border:1px solid #33485e;border-radius:12px;padding:24px;width:min(540px,calc(100vw - 32px));max-height:85vh;overflow:auto;box-sizing:border-box;box-shadow:0 24px 80px #0008}
.control-plane dialog::backdrop{background:#03080dcc;backdrop-filter:blur(3px)}
.control-plane dialog p{line-height:1.6}.control-plane dialog h2{margin-top:0}.control-plane .retention-settings{margin:16px 0}.control-plane .retention-settings summary{cursor:pointer;color:var(--muted);padding:8px 0}
.control-plane .log-controls{grid-template-columns:minmax(100px,.6fr) minmax(200px,2fr) minmax(120px,.8fr) minmax(150px,1fr) auto}
@media(max-width:1200px){.control-plane .log-controls{grid-template-columns:1fr 2fr}.control-plane .log-controls .check{align-self:end}}
@media(max-width:600px){.control-plane .log-controls{grid-template-columns:1fr}}
.control-plane dialog{color:var(--ink)}
.control-plane .project-table td{font-family:var(--body-font)}
.control-plane .project-table .table-date{font-family:var(--mono-font)}
@media(min-width:1201px){.workspace-view-history .grid.two.workspace-grid{grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr)}}

.control-plane .workspace-actions,.control-plane .workspace-actions .button,.control-plane .workspace-actions form,.control-plane .workspace-actions form button{width:auto;flex:0 0 auto}
/* Guided setup emphasizes the next decision and keeps all expert options available. */
.guided-setup{max-width:1000px;margin-inline:auto}.guided-setup [data-setup-step]{min-width:0}.guided-setup [data-setup-step]>.help-field-container,.guided-setup [data-setup-step]>label{margin-block:16px}.guided-setup small{display:block;color:var(--muted);font-size:12px;line-height:1.6;font-weight:400;margin-top:6px}.guided-setup .subpanel{padding:20px 0;border:0;border-top:1px solid var(--line)}
.setup-progress{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 24px}.setup-step-button{background:var(--bg-soft);color:var(--muted-strong);border:1px solid var(--line);flex:1;text-align:left;font-size:13px}.setup-step-button.is-current{color:var(--brand);border-color:var(--brand);background:#103333}.setup-step-button:hover{color:var(--ink);background:var(--bg-soft)}
.setup-step-actions{display:flex;gap:12px;justify-content:space-between;margin-top:24px}.guided-setup .form-actions{margin-top:16px}.setup-review{display:grid;grid-template-columns:minmax(120px,1fr) minmax(0,2fr);margin:20px 0}.setup-review dt,.setup-review dd{margin:0;padding:12px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.setup-review dt{color:var(--muted)}.guided-setup .workflow-note{font-size:13px;border-left:2px solid var(--brand);padding:12px 16px;background:#112229}
.getting-started{margin-bottom:20px}.getting-started>summary,.advanced-task>summary{cursor:pointer;font-weight:600;font-size:15px}.getting-started-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding-left:20px}.getting-started-steps strong,.getting-started-steps span{display:block}.getting-started-steps span{color:var(--muted);font-size:13px;margin-top:6px}.next-step{margin-bottom:20px;border-left:2px solid var(--brand)}.next-step p{color:var(--muted);font-size:13px}.task-guide{padding:12px 0}.task-guide li{margin:10px 0;color:var(--muted-strong)}.help-search{display:block;margin:20px 0 8px}.help-search input{margin-top:8px;width:100%}.advanced-task[open]>summary{margin-bottom:16px}
@media(max-width:760px){.getting-started-steps{grid-template-columns:1fr;gap:12px}.setup-progress{gap:6px}.setup-step-button{font-size:12px;padding:8px;min-width:100px}.guided-setup{padding:18px}.setup-review{grid-template-columns:1fr}.setup-review dt{border:0;padding-bottom:0}.setup-review dd{padding-top:4px}}
.workspace-controls{position:relative}.workspace-controls>summary{padding:8px 12px;border:1px solid var(--line);border-radius:8px;cursor:pointer;font-size:13px}.workspace-controls[open]{padding-bottom:8px}.workspace-controls[open] form{margin-top:8px}.workspace-controls[open] button{width:100%}

.guided-setup{scroll-margin-top:80px}
/* User administration: read first, edit in focused dialogs. */
.access-role-guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 24px}.access-role-guide>div{padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.access-role-guide p{font-size:13px;color:var(--muted);margin:10px 0 0}.access-role-guide strong{display:block;margin-top:10px;font-size:12px;font-weight:400;color:var(--muted)}
.access-role{display:inline-flex;padding:3px 8px;border-radius:4px;font-size:12px;font-weight:500;background:var(--bg-soft);color:var(--muted-strong)}.access-role-owner{color:#bba8f6;background:#29223b}.access-role-operator{color:var(--brand);background:#103533}.access-role-viewer{color:#a4bad0;background:#1c2b3c}
.users-directory{padding:0}.users-toolbar{padding:20px;margin:0}.users-filters{display:flex;gap:12px;align-items:center}.users-filters label{margin:0}.users-filters input{width:250px}.users-filters select{width:145px}.users-table{table-layout:auto;width:100%;min-width:660px}.users-table th,.users-table td{font-family:var(--body-font);white-space:nowrap;word-break:normal;overflow-wrap:normal;padding:16px 20px}.users-table td:last-child{text-align:right}.user-identity{display:flex;align-items:center;gap:12px}.user-identity strong{display:block;font-weight:500}.user-identity small,.user-security small,.user-date small{display:block;color:var(--muted);font-size:12px;font-weight:400;margin-top:3px}.user-security{display:flex;flex-direction:column;gap:3px}.security-state{display:inline-flex;align-items:center;gap:6px;color:var(--muted-strong);font-size:12px}.security-state.is-secure{color:var(--ok)}.user-date{font-size:12px;color:var(--muted-strong)}
.user-dialog .panel-head{align-items:flex-start}.user-dialog .panel-head h2{font-size:20px;margin-bottom:8px}.user-dialog label>input,.user-dialog label>select{width:100%;box-sizing:border-box}.user-dialog small{display:block;margin-top:6px;color:var(--muted);font-size:12px;font-weight:400}.user-dialog-section{border-top:1px solid var(--line);padding-top:16px;margin-top:20px}.user-dialog-section h3{margin:0 0 12px}.user-dialog details{margin-top:16px}.user-dialog summary{cursor:pointer;font-size:13px;font-weight:500}.user-dialog details[open] summary{margin-bottom:16px}.user-dialog .check{display:flex;gap:10px;align-items:center}.user-dialog .check input{width:auto}.user-danger-zone summary{color:var(--danger)}.credential-notice{border-color:#2d6e56;margin-bottom:24px}.credential-notice>div{display:flex;gap:10px;align-items:center}.credential-notice code{display:block;overflow-wrap:anywhere;padding:12px;background:var(--bg);border-radius:6px}.credential-notice p{font-size:13px}
@media(max-width:900px){.users-toolbar{align-items:flex-start;flex-direction:column;gap:16px}.users-filters{width:100%;flex-wrap:wrap}.users-filters label{flex:1;min-width:170px}.users-filters input{width:100%;box-sizing:border-box}.access-role-guide{gap:12px}}
@media(max-width:600px){.access-role-guide{grid-template-columns:1fr;gap:8px}.access-role-guide>div{padding:12px}.access-role-guide strong{display:inline;margin-left:8px}.access-role-guide p{margin-top:6px}.users-toolbar{padding:16px}.users-filters select{flex:1}.users-table th,.users-table td{padding:14px 16px}}
.users-page-heading>div{min-width:0}.users-page-heading>button{flex-shrink:0;white-space:nowrap}
.task-directory{margin-bottom:24px}.task-directory .panel-head{flex-wrap:wrap}.task-directory th,.task-directory td{font-family:var(--body-font)}.task-directory td{overflow-wrap:anywhere}.readonly-note{color:var(--muted);font-size:12px;padding:10px 12px;background:var(--bg-soft);border-radius:6px}.error-page{max-width:650px;margin:40px auto}.webhook-event{border-top:1px solid var(--line);padding:16px 0}.webhook-event summary{display:flex;justify-content:space-between;gap:16px;cursor:pointer;flex-wrap:wrap}.webhook-event time{color:var(--muted);font-size:12px}.webhook-event pre{margin-top:16px}
.task-directory table{min-width:720px}.task-directory td:first-child{min-width:240px}.task-directory td:first-child a,.task-directory td:last-child a{display:inline-block;min-height:24px;padding:4px 0;line-height:1.5}

/* Top-layer popover avoids clipping in the scrollable branch sidebar. */
.project-switcher { margin-bottom:8px; }
.project-switcher-trigger { display:flex; align-items:center; gap:8px; width:100%; padding:8px 0; border:0; border-radius:6px; background:transparent; color:var(--ink); text-align:left; font:600 14px var(--body-font); }
.project-switcher-trigger:hover { background:var(--bg-soft); }
.project-switcher-trigger > span { flex:1; overflow:hidden; text-overflow:ellipsis; }
.project-switcher-trigger .ui-icon { color:var(--brand); flex-shrink:0; }
.project-switcher-popup { position:fixed; inset:auto; margin:0; padding:8px; max-height:calc(100dvh - 24px); overflow:auto; border:1px solid var(--line); border-radius:10px; background:var(--panel); color:var(--ink); box-shadow:0 16px 48px #0008; }
.project-switcher-search { display:flex; align-items:center; gap:8px; padding:0 8px; color:var(--muted); }
.project-switcher-search input { min-width:0; width:100%; border:0; background:transparent; padding:10px 0; }
.project-switcher-results { max-height:300px; overflow:auto; margin:6px 0; }
.project-switcher-results a { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px; border-radius:6px; color:var(--ink); }
.project-switcher-results a[hidden],.project-switcher-empty[hidden] { display:none; }
.project-switcher-results a:hover,.project-switcher-results a:focus-visible,.project-switcher-results a[aria-current] { background:#103335; color:var(--brand); }
.project-switcher-results strong { display:block; font-size:13px; overflow-wrap:anywhere; }
.project-switcher-results small { display:block; margin-top:3px; font-size:11px; color:var(--muted); }
.project-switcher-empty { padding:12px; font-size:13px; color:var(--muted); }
.project-switcher-all { display:flex; align-items:center; justify-content:space-between; padding:10px; border-top:1px solid var(--line); font-size:12px; color:var(--brand); }
.operation-steps { margin:10px 0 0; padding:0; list-style:none; max-height:220px; overflow:auto; font-size:12px; }
.operation-steps li { padding:6px 0; border-top:1px solid var(--line); line-height:1.4; }
.operation-steps .is-complete { color:#91b7aa; }
.operation-steps .is-current { color:var(--ink); font-weight:600; }
.operation-steps .is-current::before { content:'↻ '; color:var(--brand); }
.operation-steps .is-failed { color:#fb7185; }

.backup-center { display:grid; gap:20px; min-width:0; }
.backup-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; }.backup-heading h2 { margin:0 0 6px; }.backup-heading p { margin:0; }.backup-heading .button-row { flex-shrink:0; }
.backup-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid var(--line); border-radius:10px; background:var(--panel); }.backup-summary article { padding:20px; border-right:1px solid var(--line); }.backup-summary article:last-child { border:0; }.backup-summary-label { display:block; color:var(--muted); font-size:12px; margin-bottom:10px; }.backup-summary strong { display:block; font-size:18px; }.backup-summary small { display:block; color:var(--muted); margin-top:7px; font-size:12px; }.backup-good { color:var(--brand); }
.backup-capture-note { display:flex; gap:8px; color:var(--muted); margin:0; font-size:12px; }.backup-capture-note svg { flex-shrink:0; }
.backup-recovery-panel h3,.backup-portable-panel h3 { margin:0; font-size:16px; }.backup-recovery-panel .panel-head p,.backup-portable-panel .panel-head p { margin:6px 0 0; font-size:12px; }.backup-search { display:block; max-width:340px; margin:16px 0; }.backup-date { display:block; font-size:12px; color:var(--muted); margin-top:5px; }.backup-table-note { margin-bottom:0; font-size:12px; }.backup-filename { overflow-wrap:anywhere; }.backup-empty { padding:40px 20px; text-align:center; color:var(--muted); }.backup-empty svg { color:var(--brand); }.backup-empty h3 { color:var(--ink); margin-top:12px; }.backup-empty p { max-width:440px; margin:10px auto 0; font-size:13px; }.backup-verification { display:flex; align-items:center; gap:8px; font-size:12px; color:var(--muted); margin:16px 0 0; }
.backup-dialog { width:min(560px,calc(100vw - 32px)); max-height:85dvh; overflow:auto; padding:24px; border:1px solid var(--line); border-radius:12px; background:var(--panel); color:var(--ink); }.backup-dialog::backdrop { background:#0009; backdrop-filter:blur(3px); }.backup-dialog .stack { gap:16px; }.backup-dialog .button-row { justify-content:flex-end; }.backup-policy-fields { display:grid; grid-template-columns:1fr 1fr; gap:16px; }.backup-toggle { display:flex!important; align-items:center; gap:12px; }.backup-toggle input { width:18px!important; min-height:18px!important; flex-shrink:0; accent-color:var(--brand); }.backup-toggle small { display:block; margin-top:3px; color:var(--muted); }.backup-maintenance { border-top:1px solid var(--line); padding-top:18px; margin-top:24px; }.backup-maintenance form { margin-top:16px; }.backup-maintenance .button-row { justify-content:flex-start; }
@media(max-width:900px) { .backup-heading { align-items:flex-start; flex-direction:column; }.backup-summary article { padding:14px; }.backup-summary strong { font-size:15px; } }
@media(max-width:560px) { .backup-summary { grid-template-columns:1fr; }.backup-summary article { border-right:0; border-bottom:1px solid var(--line); }.backup-policy-fields { grid-template-columns:1fr; }.backup-dialog { padding:18px; }.backup-recovery-panel .panel-head,.backup-portable-panel .panel-head { align-items:flex-start; flex-direction:column; gap:12px; } }
.backup-pagination { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:16px; color:var(--muted); font-size:12px; }.recovery-table tr[hidden] { display:none; }

.utility-action { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:16px; border:1px solid var(--line); border-radius:8px; background:var(--panel); }.utility-action h3 { margin:0; font-size:14px; }.utility-action p { margin:5px 0 0; font-size:12px; line-height:1.5; }.utility-action > button { flex-shrink:0; }.utility-dialog { width:min(760px,calc(100vw - 32px)); max-height:85dvh; overflow:auto; padding:24px; border:1px solid var(--line); border-radius:12px; background:var(--panel); color:var(--ink); }.utility-dialog::backdrop { background:#0009; backdrop-filter:blur(3px); }.utility-dialog > .panel-head { margin-bottom:12px; }.utility-dialog > .panel-head h2 { margin:0; font-size:20px; }.utility-description { margin:0 0 20px; font-size:13px; }.utility-dialog .form-actions { justify-content:flex-end; }.utility-dialog .log-box { max-height:45dvh; }.utility-dialog form + form { border-top:1px solid var(--line); padding-top:20px; margin-top:24px; }.utility-dialog .check { display:flex; align-items:center; gap:10px; }.utility-dialog .check input { width:18px; min-height:18px; flex-shrink:0; accent-color:var(--brand); }
@media(max-width:560px) { .utility-action { gap:12px; }.utility-dialog { padding:18px; }.utility-dialog .form-grid { grid-template-columns:1fr; } }
.panel > .utility-action { border:0; padding:0; background:none; }.utility-action + h2 { margin-top:24px; }.keyval .utility-action { flex-wrap:wrap; padding:12px 0 0; border:0; background:none; }.keyval .utility-action h3,.keyval .utility-action p { display:none; }.utility-dialog table { min-width:480px; }
.utility-action:has([data-dialog-open="delete-environment"]) { border-color:#613441; }.utility-action [data-dialog-open="delete-environment"] { color:#fb7185; }
.utility-dialog > .panel-head { position:sticky; top:-24px; z-index:2; background:var(--panel); padding:12px 0; border-bottom:1px solid var(--line); }@media(max-width:560px) { .utility-dialog > .panel-head { top:-18px; } }
