:root {
  --ui-bg-app: #fcfcfb;
  --ui-bg-sidebar: #f6f6f5;
  --ui-bg-surface: #ffffff;
  --ui-bg-subtle: #f3f3f2;
  --ui-bg-hover: #eeeeed;
  --ui-bg-selected: #eee9ff;
  --ui-text-primary: #232327;
  --ui-text-secondary: #54545f;
  --ui-text-muted: #6b6b74;
  --ui-text-disabled: #9797a0;
  --ui-text-on-primary: #ffffff;
  --ui-border-subtle: #e4e4e7;
  --ui-border-control: #dce1eb;
  --ui-border-control-hover: #6b6b74;
  --ui-action-primary: #603bfa;
  --ui-action-primary-hover: #512dde;
  --ui-action-primary-pressed: #4324bc;
  --ui-focus: #6e56cf;
  --ui-success: #18794e;
  --ui-success-bg: #f0fdf4;
  --ui-warning: #9a6700;
  --ui-warning-bg: #fffbeb;
  --ui-danger: #b42318;
  --ui-danger-bg: #fef3f2;
  --ui-radius-sm: 4px;
  --ui-radius-control: 6px;
  --ui-radius-input: 8px;
  --ui-radius-panel: 10px;
  --ui-shadow-popover: 0 8px 24px rgb(0 0 0 / 8%), 0 2px 6px rgb(0 0 0 / 4%);
  --ui-font-ui: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
  --ui-font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --ui-motion-fast: 120ms;
  --ui-motion-normal: 180ms;
  --ui-motion-ease: cubic-bezier(0.2, 0, 0, 1);
}
.devops-app .fleet-metrics-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 8px}
.devops-app .fleet-metrics-toolbar p{margin:0;font-size:12px;color:#7b8598}
.devops-app .fleet-metrics-toolbar button{flex-shrink:0;font-size:12px;padding:4px 9px;min-height:30px}
body.devops-app { margin: 0; background: var(--ui-bg-app); color: var(--ui-text-primary); font: 14px/22px var(--ui-font-ui); font-synthesis: none; }
.devops-app :where(header,main,section,nav,aside,form,div,fieldset,input,select,textarea,button) { box-sizing: border-box; }
.devops-app :where(button,input,select,textarea) { font: inherit; }
.devops-app :where(button,input,select,textarea,summary) { outline-offset: 3px; }
.devops-app :where(button,input,select,textarea,summary):focus-visible { outline: 2px solid var(--ui-focus); }
.devops-app :where(input,select,textarea):focus { border-color: var(--ui-focus); }
.devops-app button { position: relative; min-height: 36px; padding: 7px 12px; border: 1px solid var(--ui-border-control); border-radius: var(--ui-radius-control); background: var(--ui-bg-surface); color: var(--ui-text-primary); font-weight: 500; line-height: 20px; cursor: pointer; transition: background var(--ui-motion-fast) var(--ui-motion-ease), border-color var(--ui-motion-fast) var(--ui-motion-ease); }
.devops-app button:hover:enabled { background: var(--ui-bg-hover); border-color: var(--ui-border-control-hover); }
.devops-app button:active:enabled { background: var(--ui-bg-selected); }
.devops-app :where(button.primary,form>button:not([type=button]),#apply,#bootstrap-apply):enabled { background: var(--ui-action-primary); border-color: var(--ui-action-primary); color: var(--ui-text-on-primary); }
.devops-app :where(button.primary,form>button:not([type=button]),#apply,#bootstrap-apply):enabled:hover { background: var(--ui-action-primary-hover); border-color: var(--ui-action-primary-hover); }
.devops-app :where(button.primary,form>button:not([type=button]),#apply,#bootstrap-apply):enabled:active { background: var(--ui-action-primary-pressed); }
.devops-app #revocation-form button:enabled { background: var(--ui-danger); border-color: var(--ui-danger); color: var(--ui-text-on-primary); }
.devops-app button:disabled { background: var(--ui-bg-subtle); border-color: var(--ui-border-subtle); color: var(--ui-text-disabled); cursor: not-allowed; }
.devops-app button[aria-busy=true] { color: var(--busy-color, var(--ui-action-primary)) !important; background-color: var(--busy-background, var(--ui-bg-surface)) !important; border-color: var(--busy-border, var(--ui-border-control)) !important; cursor: progress; }
.devops-app button[aria-busy=true]::after { content: ''; position: absolute; inset: auto 6px 3px; height: 2px; border: 0; border-radius: 2px; background: currentColor; opacity: .65; transform: scaleX(.24); transform-origin: left; animation: ui-busy 1400ms ease-in-out 120ms infinite; pointer-events: none; }
@keyframes ui-busy { 0%,100% { transform: scaleX(.24); transform-origin: left; } 50% { transform: scaleX(.65); } 60%,90% { transform-origin: right; } }
.devops-app :where(input,select,textarea) { width: 100%; min-width: 0; min-height: 40px; padding: 8px 12px; border: 1px solid var(--ui-border-control); border-radius: var(--ui-radius-input); color: var(--ui-text-primary); background: var(--ui-bg-surface); line-height: 22px; }
.devops-app :where(input,textarea)::placeholder { color: var(--ui-text-muted); opacity: 1; }
.devops-app :where(input,textarea):read-only { background: var(--ui-bg-subtle); }
.devops-app :where(input,select,textarea):disabled { color: var(--ui-text-disabled); border-color: var(--ui-border-subtle); background: var(--ui-bg-subtle); }
.devops-app input[type=checkbox] { width: 16px; min-height: 16px; height: 16px; margin: 0; accent-color: var(--ui-action-primary); }
.devops-app input[type=file] { padding: 6px 8px; }
.devops-app select[multiple] { min-height: 120px; }
.devops-app textarea { font: 13px/20px var(--ui-font-mono); resize: vertical; }
.devops-app label { display: grid; gap: 8px; color: var(--ui-text-primary); font-weight: 500; line-height: 20px; }
.devops-app form { display: grid; gap: 20px; }
.devops-app form>button { justify-self: start; }
.devops-app p { margin: 8px 0 16px; color: var(--ui-text-secondary); line-height: 22px; }
.devops-app h1 { margin: 0 0 8px; font-size: 24px; line-height: 32px; font-weight: 600; }
.devops-app h2 { margin: 0 0 16px; font-size: 16px; line-height: 24px; font-weight: 600; }
.devops-app h3 { font-size: 14px; line-height: 22px; font-weight: 600; }
.devops-app header { height: 56px; padding: 0 24px; display: flex; align-items: center; gap: 20px; border-bottom: 1px solid var(--ui-border-subtle); background: var(--ui-bg-app); }
.devops-app header strong { display: flex; gap: 8px; align-items: center; width: 200px; flex-shrink: 0; font-size: 14px; font-weight: 600; }
.brand-mark { display: inline-flex; align-items: center; justify-content: center; height: 24px; width: 28px; border-radius: var(--ui-radius-sm); background: var(--ui-action-primary); color: var(--ui-text-on-primary); font-size: 12px; }
.devops-app header>span { margin-left: auto; color: var(--ui-text-secondary); font-size: 13px; line-height: 20px; }
.devops-app header button { min-height: 32px; padding: 5px 10px; }
.devops-app main { margin-left: 224px; padding: 20px 32px 48px; }
body.devops-app:has(#workspace[hidden]) main { margin: 0; }
.devops-app nav { position: fixed; top: 56px; bottom: 0; left: 0; width: 224px; display: flex; flex-direction: column; gap: 4px; padding: 24px 12px; overflow-y: auto; background: var(--ui-bg-sidebar); border-right: 1px solid var(--ui-border-subtle); }
.devops-app nav button { min-height: 36px; padding: 8px 12px; border: 0; background: transparent; text-align: left; font-weight: 400; color: var(--ui-text-secondary); }
.devops-app nav button:hover:enabled { background: var(--ui-bg-hover); }
.devops-app nav button[aria-current=page] { background: var(--ui-bg-selected); color: var(--ui-text-primary); font-weight: 500; }
.nav-caption { padding: 0 12px; margin-bottom: 12px; color: var(--ui-text-muted); font-size: 12px; line-height: 18px; font-weight: 500; }
.context { display: flex; flex-wrap: wrap; align-items: end; gap: 24px; padding-bottom: 16px; margin-bottom: 24px; border-bottom: 1px solid var(--ui-border-subtle); }
.context label { min-width: 260px; max-width: 420px; }
.context p { margin: 0 0 8px; font-size: 13px; line-height: 20px; }
#message { margin: 0 0 12px; color: var(--ui-text-secondary); font-size: 13px; line-height: 20px; overflow-wrap: anywhere; }
#message:empty { display: none; }
.devops-app section { min-width: 0; padding: 0; border: 0; background: transparent; scroll-margin-top: 24px; }
.devops-app section>h2 { margin-top: 32px; }
.eyebrow { font-size: 12px; line-height: 18px; color: var(--ui-text-muted); font-weight: 500; }
.page-heading { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-bottom: 24px; }
.page-heading p { margin-bottom: 0; }
.fleet-layout { display: grid; grid-template-columns: minmax(0,1fr) 240px; gap: 32px; }
.fleet-layout>div { min-width: 0; }
.stats-strip { display: flex; gap: 40px; padding: 0 0 20px; margin-bottom: 24px; border-bottom: 1px solid var(--ui-border-subtle); }
.stats-strip>div { min-width: 120px; }
.stats-strip span { color: var(--ui-text-secondary); font-size: 13px; line-height: 20px; }
.stats-strip strong { display: block; margin-top: 8px; font-size: 24px; line-height: 32px; font-weight: 600; font-variant-numeric: tabular-nums; }
.fleet-tools { padding: 0; }
.fleet-tools label { flex: 1; max-width: 360px; }
.fleet-card>.muted { font-size: 13px; line-height: 20px; margin: 12px 0; }
.table-scroll { max-width: 100%; overflow-x: auto; }
.devops-app table { width: 100%; border-collapse: collapse; margin: 16px 0; font-size: 14px; line-height: 22px; }
.devops-app :where(th,td) { padding: 10px 12px; border-bottom: 1px solid var(--ui-border-subtle); text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.devops-app th { color: var(--ui-text-secondary); background: var(--ui-bg-subtle); font-size: 13px; line-height: 20px; font-weight: 500; }
.devops-app tbody tr:hover { background: var(--ui-bg-subtle); }
.fleet-table { min-width: 700px; }
.fleet-table td { vertical-align: middle; padding: 12px; }
.fleet-table td:first-child { min-width: 160px; font: 13px/20px var(--ui-font-mono); }
.fleet-table td:nth-child(3),.fleet-table td:nth-child(4) { font-variant-numeric: tabular-nums; }
.fleet-table th { white-space: nowrap; }
.fleet-table button { min-height: 32px; margin: 2px 4px 2px 0; padding: 5px 8px; }
.fleet-table small { display: block; margin-top: 4px; font-size: 13px; line-height: 20px; color: var(--ui-text-muted); }
.guide-card { padding: 0 0 0 24px; border-left: 1px solid var(--ui-border-subtle); }
.guide-card p,.guide-steps span { color: var(--ui-text-secondary); font-size: 13px; line-height: 20px; }
.guide-steps { list-style: none; padding: 0; margin: 24px 0; counter-reset: step; }
.guide-steps li { position: relative; margin: 0 0 20px; padding-left: 28px; counter-increment: step; }
.guide-steps li::before { position: absolute; top: 0; left: 0; content: counter(step); color: var(--ui-text-muted); font-size: 13px; line-height: 22px; }
.guide-steps strong { display: block; font-weight: 500; }
.guide-steps span { display: block; margin-top: 4px; }
.guide-note { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--ui-border-subtle); }
.badge { display: inline-block; padding: 2px 6px; border-radius: var(--ui-radius-sm); background: var(--ui-bg-subtle); color: var(--ui-text-secondary); white-space: nowrap; font-size: 13px; line-height: 20px; }
.badge.online { color: var(--ui-success); background: var(--ui-success-bg); }
.badge.offline { color: var(--ui-warning); background: var(--ui-warning-bg); }
.empty-state { padding: 32px 0; text-align: center; }
.columns { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 24px; }
.columns>div { min-width: 0; }
.columns>form,.columns>div:has(>form) { padding: 0; border: 0; background: transparent; }
#operations>.columns>div+div { border-left: 1px solid var(--ui-border-subtle); padding-left: 24px; }
.toolbar { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; }
.toolbar label { min-width: 160px; }
.toolbar button { min-height: 32px; padding: 5px 12px; }
.devops-app details { margin: 24px 0; padding: 16px 0 0; border: 0; border-top: 1px solid var(--ui-border-subtle); background: transparent; }
.devops-app summary { cursor: pointer; font-weight: 500; color: var(--ui-text-primary); line-height: 22px; }
.devops-app details[open]>summary { margin-bottom: 16px; }
.devops-app form+form { margin-top: 24px; }
.inline { display: flex; gap: 8px; align-items: center; }
.devops-app pre { max-height: 420px; margin: 16px 0; padding: 16px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; border: 1px solid var(--ui-border-subtle); border-radius: var(--ui-radius-sm); background: var(--ui-bg-subtle); color: var(--ui-text-secondary); font: 13px/20px var(--ui-font-mono); }
.devops-app pre:empty { display: none; }
#terminal-output { min-height: 200px; background: #232327; color: #f3f3f2; border-color: #232327; }
.devops-app fieldset { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 20px; margin: 24px 0; padding: 20px 0 0; border: 0; border-top: 1px solid var(--ui-border-subtle); }
.devops-app legend { padding: 0 12px 0 0; font-weight: 500; }
.devops-app section>label { margin-top: 16px; }
.devops-app section>button { margin: 12px 8px 12px 0; }
#device-state { overflow-x: auto; }
#verification-result li { margin: 12px 0; }
.warning { padding: 12px 16px; color: var(--ui-warning); background: var(--ui-warning-bg); border-left: 3px solid var(--ui-warning); border-radius: var(--ui-radius-sm); font-size: 13px; line-height: 20px; }
.flow-track { display: flex; flex-wrap: wrap; list-style: none; gap: 8px; padding: 0 0 12px; margin: 24px 0 0; border-bottom: 1px solid var(--ui-border-subtle); }
.flow-track li,.flow-track button { padding: 6px 10px; min-height: 32px; border: 0; border-radius: var(--ui-radius-sm); background: transparent; color: var(--ui-text-secondary); font-size: 14px; line-height: 20px; font-weight: 400; }
.flow-track .active,.flow-track [aria-current=step] { background: var(--ui-bg-selected); color: var(--ui-text-primary); font-weight: 500; }
.flow-track li::marker,.guide-steps li::marker { content: ''; }
.flow-track li::before { content: none; }
.flow-guidance { margin: 12px 0 24px; color: var(--ui-text-secondary); font-size: 13px; line-height: 20px; }
.flow-panel { max-width: 1100px; min-width: 0; }
.flow-panel>button { margin: 12px 8px 12px 0; }
.flow-panel>label { margin-top: 16px; }
#single-enroll-form { max-width: 960px; padding: 0; background: transparent; border: 0; }
#single-enroll-form small { color: var(--ui-text-muted); font-size: 13px; line-height: 20px; font-weight: 400; }
#single-enroll-mapping { margin: 4px 0 0; padding: 24px 0 0; border-top: 1px solid var(--ui-border-subtle); }
#single-enroll-mapping h3 { margin: 0 0 8px; }
#enroll-result { margin-top: 24px; padding: 16px 0 0; border-top: 1px solid var(--ui-border-subtle); color: var(--ui-text-secondary); overflow-wrap: anywhere; }
#login { max-width: 440px; margin: 64px auto; padding: 0 24px; }
#login h1 { margin-top: 8px; }
#login form { margin-top: 24px; }
#login details { margin: 0; }
#login form>button { width: 100%; }
#login>p:last-child { margin-top: 20px; color: var(--ui-text-muted); font-size: 13px; line-height: 20px; }
.devops-app [hidden] { display: none; }
@media (max-width: 1300px) {
  .devops-app main { padding-inline: 24px; }
  .fleet-layout { grid-template-columns: minmax(0,1fr); }
  .guide-card { padding: 24px 0 0; border-left: 0; border-top: 1px solid var(--ui-border-subtle); }
  .guide-steps { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px 24px; }
  .guide-steps li { margin: 0; }
}
@media (max-width: 900px) {
  .devops-app header { height: auto; min-height: 56px; padding: 12px 16px; flex-wrap: wrap; gap: 12px; }
  .devops-app header strong { width: auto; }
  .devops-app header>span { margin-left: 0; }
  .devops-app main { margin-left: 0; padding: 20px 16px 40px; }
  .devops-app nav { position: static; width: 100%; padding: 0; margin: 16px 0 24px; border: 0; background: transparent; flex-direction: row; flex-wrap: wrap; gap: 4px; }
  .nav-caption { display: none; }
  .devops-app nav button { background: var(--ui-bg-subtle); }
  .context { gap: 12px; margin-bottom: 16px; }
  .context label { min-width: 0; width: 100%; max-width: none; }
  .context p { margin: 0; }
  .columns,.devops-app fieldset { grid-template-columns: minmax(0,1fr); }
  #operations>.columns>div+div { border-left: 0; padding: 24px 0 0; border-top: 1px solid var(--ui-border-subtle); }
  .stats-strip { gap: 24px; flex-wrap: wrap; }
  .stats-strip>div { min-width: 100px; }
  .page-heading { align-items: start; flex-wrap: wrap; }
}
@media (max-width: 600px) {
  .devops-app :where(button,input,select) { min-height: 44px; }
  .devops-app input[type=checkbox] { min-height: 16px; }
  .guide-steps { grid-template-columns: minmax(0,1fr); }
  .toolbar { align-items: stretch; }
  #login { margin-top: 40px; padding: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .devops-app button { transition: none; }
  .devops-app button[aria-busy=true]::after { animation: none; }
}

/* Precision shell: continuous navigation, record list and object detail. */
.ui-icon{width:16px;height:16px;flex-shrink:0;vertical-align:middle}
.devops-app button:has(>.ui-icon){display:inline-flex;align-items:center;gap:8px}
.devops-app button.primary>.ui-icon{filter:invert(1)}
.devops-app header{position:relative;height:56px;padding:0 24px}
#page-context{margin:0;font-size:14px;font-weight:500;color:var(--ui-text-primary);flex:1}
.devops-app nav{top:56px;padding:20px 12px;gap:4px}
.devops-app nav button{width:100%;justify-content:flex-start;min-height:36px}
.nav-identity{margin:0 8px 20px;overflow-wrap:anywhere;font-size:13px;line-height:20px;color:var(--ui-text-secondary)}
.nav-caption{margin-bottom:8px}
.nav-location{margin-top:auto;padding:20px 8px 8px;color:var(--ui-text-muted);font-size:13px;line-height:20px}
.devops-app #logout{width:100%;font-size:13px}
.context{position:absolute;top:8px;right:24px;width:250px;margin:0;padding:0;border:0;display:block;z-index:2}
.context label{width:100%;min-width:0;font-size:0;line-height:0;gap:0}
.context select{min-height:36px;height:36px;padding:6px 10px;font-size:13px;line-height:20px}
body[data-view=fleet] .context{right:304px;width:224px}
body[data-view=fleet] main{padding:0}
body[data-view=fleet] #message{padding:6px 24px;margin:0;border-bottom:1px solid var(--ui-border-subtle);font-size:13px;line-height:20px}
.fleet-heading{position:absolute;top:10px;right:24px;height:36px;z-index:3}
.fleet-heading h1{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.fleet-heading .toolbar{gap:8px}
.fleet-heading .toolbar button{height:36px}
.fleet-workspace{display:grid;grid-template-columns:minmax(340px,42%) minmax(0,1fr);min-height:calc(100vh - 88px);background:var(--ui-bg-surface)}
.fleet-list{min-width:0;border-right:1px solid var(--ui-border-subtle);display:flex;flex-direction:column}
.fleet-list-tools{padding:16px 20px 12px;border-bottom:1px solid var(--ui-border-subtle)}
.search-field{position:relative;display:block}
.search-field>.ui-icon{position:absolute;left:12px;top:12px}
.search-field input{padding-left:36px;background:var(--ui-bg-app);height:40px}
.stats-strip{display:flex;gap:20px;flex-wrap:wrap;margin:12px 0 0;padding:0;border:0}
.stats-strip>span{font-size:13px;color:var(--ui-text-muted);line-height:20px}
.stats-strip strong{display:inline;margin:0 0 0 4px;font-size:13px;line-height:20px;font-weight:500;color:var(--ui-text-secondary)}
.fleet-list .table-scroll{overflow-x:auto}
.devops-app .fleet-table{width:100%;min-width:0;margin:0;table-layout:fixed}
.fleet-table th{background:transparent;padding:12px 16px;border-bottom:1px solid var(--ui-border-subtle);font-size:13px;white-space:normal}
.fleet-table th:first-child{width:50%}.fleet-table th:nth-child(2){width:21%}.fleet-table th:nth-child(3){width:29%}
.fleet-table td{padding:10px 16px;vertical-align:middle;font-size:13px;line-height:20px;height:56px}
.fleet-table td:first-child{min-width:0;font:14px/22px var(--ui-font-ui)}
.fleet-table td button{margin:0;padding:0;min-height:32px;width:100%;border:0;background:transparent;text-align:left;font-weight:400;justify-content:flex-start}
.fleet-table td button span{overflow-wrap:anywhere}
.fleet-table tr.is-selected{background:var(--ui-bg-selected)}
.fleet-table tr{cursor:pointer}.fleet-row-state{color:var(--ui-text-secondary)}
.fleet-list-note{margin:auto 0 0;padding:14px 20px;border-top:1px solid var(--ui-border-subtle);color:var(--ui-text-muted);font-size:13px;line-height:20px}
.fleet-detail{min-width:0;padding:28px 24px 40px}
.detail-heading{display:flex;gap:16px;align-items:center}
.detail-device-icon{width:32px;height:32px;padding:12px;background:var(--ui-bg-subtle);border-radius:var(--ui-radius-control);box-sizing:content-box}
.detail-heading h2{margin:0 0 4px;font-size:20px;line-height:28px;font-weight:600;overflow-wrap:anywhere}
.detail-heading p{margin:0;color:var(--ui-text-muted);font-size:13px;line-height:20px}
.detail-actions{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}
.detail-tabs{display:flex;gap:24px;border-bottom:1px solid var(--ui-border-subtle);margin:0 0 24px}
.devops-app .detail-tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;padding:8px 0 12px;color:var(--ui-text-secondary);font-weight:400}
.devops-app .detail-tabs [aria-selected=true]{border-bottom-color:var(--ui-text-primary);color:var(--ui-text-primary);font-weight:500}
.detail-properties{display:grid;grid-template-columns:132px minmax(0,1fr);gap:16px;margin:20px 0 28px;font-size:14px;line-height:22px}
.detail-properties dt{color:var(--ui-text-muted)}.detail-properties dd{margin:0;overflow-wrap:anywhere;color:var(--ui-text-primary)}
.detail-section{padding-top:20px;border-top:1px solid var(--ui-border-subtle)}
.detail-section p{font-size:13px;line-height:20px}
#fleet-detail-empty{max-width:400px;margin:80px auto;padding:0;text-align:left}
.detail-empty-icon{width:28px;height:28px;margin-bottom:20px}
#fleet-panel-access .flow-track{margin-top:20px}
#fleet-panel-access>button{margin-right:8px;margin-top:16px}
.devops-app main{padding:24px 32px 40px}
#operations,#devices,#batches,#bootstrap{max-width:1280px}
@media(max-width:1180px){
 .fleet-workspace{grid-template-columns:minmax(300px,40%) minmax(0,1fr)}
 .fleet-detail{padding:24px 20px}.detail-properties{grid-template-columns:104px minmax(0,1fr);gap:14px}
 body[data-view=fleet] .context{width:190px}
 .fleet-table th,.fleet-table td{padding-left:12px;padding-right:12px}
}
@media(max-width:900px){
 .devops-app header{height:auto;min-height:56px;flex-wrap:wrap;padding:12px 16px}
 .context,body[data-view=fleet] .context{position:static;width:auto;margin:0 16px 16px}
 .context label{font-size:13px;line-height:20px;gap:6px}.context select{height:40px}
 .devops-app nav{position:static;display:flex;padding:0 16px;flex-direction:row;flex-wrap:wrap;margin:0 0 16px}
 .devops-app nav button{width:auto}.nav-identity,.nav-location{width:100%;margin:0;padding:8px 0}
 .devops-app #logout{width:auto}.fleet-heading{position:static;height:auto;padding:12px 16px;border-top:1px solid var(--ui-border-subtle)}
 .fleet-heading .toolbar{justify-content:flex-end}.fleet-workspace{grid-template-columns:minmax(0,1fr)}
 .fleet-list{border-right:0;border-bottom:1px solid var(--ui-border-subtle)}.fleet-list-note{margin-top:16px}
 .fleet-detail{padding:24px 16px}.detail-properties{grid-template-columns:110px minmax(0,1fr)}
 body[data-view=fleet] main{padding:0}.devops-app main{padding:16px}
}
.fleet-table td{box-sizing:border-box}
/* Account is a fixed footer; only the navigation list scrolls. */
.devops-app nav{overflow:hidden}
.nav-items{display:flex;flex:1;min-height:0;flex-direction:column;gap:4px;overflow-y:auto}
.nav-items .nav-caption{display:block;padding:0 12px;margin:0 0 12px}
.account-footer{flex-shrink:0;padding-top:12px;border-top:1px solid var(--ui-border-subtle)}
.devops-app #account-details{margin:0;padding:0;border:0}
.devops-app #account-details summary{display:flex;align-items:center;gap:8px;padding:8px;list-style:none;border-radius:6px}
#account-details summary::marker,#account-details summary::-webkit-details-marker{display:none;content:''}
#account-details summary:hover{background:var(--ui-bg-hover)}
.account-label{display:flex;flex:1;min-width:0;flex-direction:column;gap:2px}
#account-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;line-height:20px;font-weight:500}
#account-role{font-size:13px;line-height:20px;color:var(--ui-text-muted);font-weight:400}
.account-session{max-height:180px;overflow:auto;padding:8px;font-size:13px;line-height:20px;overflow-wrap:anywhere}
.account-session p{margin:0 0 8px}
.context select{appearance:none;background-image:url('/icons/chevrons-up-down.svg');background-position:right 12px center;background-size:16px;background-repeat:no-repeat;padding:6px 36px 6px 12px}
body[data-view=fleet] .context{right:252px;width:224px}
.fleet-heading{right:24px;top:8px}.fleet-heading .toolbar{gap:8px}
.fleet-heading .toolbar button{padding-left:12px;padding-right:12px}
@media(max-width:900px){.devops-app nav{overflow:visible}.nav-items{flex-direction:row;flex-wrap:wrap;overflow:visible;flex:initial;width:100%}.account-footer{width:100%;margin-top:12px}.devops-app #logout{width:auto}body[data-view=fleet] .context{width:auto}}
/* Shared portal navigation contract, matching tenant group and brand dimensions. */
.devops-app header{height:48px;margin-left:224px;padding:0 32px}
.devops-app nav{top:0;width:224px;padding:0}
.sidebar-brand{height:48px;min-height:48px;padding:0 20px;display:flex;align-items:center;gap:10px;flex-shrink:0}
.sidebar-brand strong{font-size:16px;font-weight:600}
.sidebar-brand .brand-mark{width:24px;height:24px;border-radius:6px}
.sidebar-brand .brand-mark img{width:16px;height:16px;filter:invert(1)}
.nav-items{padding:12px;gap:0}
.nav-group{margin-bottom:20px}
.devops-app .nav-group h2{font-size:12px;line-height:18px;font-weight:500;color:var(--ui-text-muted);margin:8px 12px}
.devops-app .nav-group button{height:36px;min-height:36px;padding:7px 10px;margin:2px 0;gap:10px;border-radius:4px;font-size:14px;line-height:20px}
.account-footer{display:grid;grid-template-columns:minmax(0,1fr) 32px;gap:10px;align-items:center;padding:14px 20px;position:relative}
#account-details{min-width:0}
.devops-app #account-details summary{padding:0;gap:10px;min-width:0}
.devops-app #account-details[open]>summary{margin:0}
#account-name{font-size:13px;line-height:20px}
#account-role{font-size:12px;line-height:18px}
.account-session{position:absolute;bottom:100%;left:12px;right:12px;max-height:240px;padding:12px;background:var(--ui-bg-surface);border:1px solid var(--ui-border-subtle);border-radius:6px;box-shadow:var(--ui-shadow-popover)}
.devops-app #logout{width:32px;min-height:32px;padding:7px;border:0;background:transparent;justify-content:center}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.context{top:6px}.fleet-heading{top:6px}
.fleet-workspace{min-height:calc(100vh - 80px)}
@media(max-width:900px){.devops-app header{margin-left:0}.devops-app nav{width:auto;padding:0}.nav-items{display:block}.nav-group{display:flex;flex-wrap:wrap}.devops-app .nav-group h2{width:100%}.account-footer{width:224px}.devops-app #logout{width:32px}.context,.fleet-heading{position:static}}
/* P19: shared 36px controls and workflow-first interior pages. */
body.devops-app:has(#workspace[hidden]) header{display:none}
body.devops-app:has(#workspace[hidden]) #message{max-width:440px;margin:24px auto 0;padding:0 24px}
.devops-app :where(input,select){min-height:36px;border-radius:6px;padding-top:6px;padding-bottom:6px}
.devops-app :where(input,select,textarea){font-weight:400}
.devops-app form{gap:16px}
.devops-app label{gap:6px}
.field-help{display:block;font-weight:400;font-size:13px;line-height:20px;color:var(--ui-text-muted)}
.devops-app input[type=number]{max-width:240px}
#devices>form,#devices>details,#batches>form,#batches>label,#batches>details,#maintenance>form,#maintenance>label{max-width:720px}
#devices .columns{grid-template-columns:minmax(0,720px) minmax(0,1fr)}
#operations{max-width:1200px}
.operation-heading{display:flex;gap:24px;align-items:start;justify-content:space-between;margin-bottom:24px}
.operation-heading p{margin-bottom:0}
.operation-tabs{display:flex;gap:24px;border-bottom:1px solid var(--ui-border-subtle);margin-bottom:24px}
.devops-app .operation-tabs button{padding:8px 4px 12px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--ui-text-secondary)}
.devops-app .operation-tabs button[aria-selected=true]{border-bottom-color:var(--ui-text-primary);color:var(--ui-text-primary)}
.operation-layout{display:grid;grid-template-columns:minmax(0,720px) minmax(220px,1fr);gap:32px}
.operation-main{min-width:0}.operation-help{padding-left:24px;border-left:1px solid var(--ui-border-subtle)}
.operation-help .flow-track{display:flex;flex-direction:column;gap:20px;border:0;margin:20px 0;padding:0}
.operation-help .flow-track li{padding:0;min-height:0;background:transparent;font-size:13px}
.operation-help p{font-size:13px;color:var(--ui-text-muted)}
.operation-help .flow-track .active{font-weight:600;color:var(--ui-text-primary)}
.action-group{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:16px 0}
#review-list article{padding:16px 0;border-bottom:1px solid var(--ui-border-subtle)}
#review-list article>button{margin:12px 8px 0 0}
#review-list article>input{max-width:640px}
.devops-app .flow-buttons button[aria-current=step]{border-bottom:2px solid var(--ui-text-primary);background:transparent;border-radius:0}
.devops-app .flow-buttons button:hover,.devops-app .detail-tabs button:hover,.devops-app .operation-tabs button:hover{background:transparent;color:var(--ui-text-primary)}
.account-session{left:12px;right:auto;width:320px;max-width:calc(100vw - 24px);max-height:320px}
.account-session #identity-state{font-family:var(--ui-font-mono);font-size:13px}
.devops-app nav{overflow:visible}.nav-items{overflow-y:auto}
/* Native controls retain form/constraint semantics behind the designed combobox. */
.ui-select{display:block;position:relative;width:100%;min-width:0}
.devops-app select.ui-select-native{position:absolute;left:0;top:0;width:1px;height:1px;min-height:1px;padding:0;border:0;clip-path:inset(50%);opacity:0;pointer-events:none}
.devops-app .ui-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:36px;height:36px;padding:6px 12px;border:1px solid var(--ui-border-control);border-radius:6px;background:var(--ui-bg-surface);font-size:14px;font-weight:400;text-align:left}
.ui-select-caption{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.devops-app .ui-select-trigger:disabled{background:var(--ui-bg-subtle);color:var(--ui-text-disabled);border-color:var(--ui-border-subtle)}
.devops-app .ui-select-trigger[aria-invalid=true]{border-color:var(--ui-danger)}
.ui-select-error{display:block;margin-top:6px;font-size:13px;color:var(--ui-danger);line-height:20px}
.ui-select-error[hidden]{display:none}
.ui-select-popover{box-sizing:border-box;position:fixed;z-index:1000;padding:8px;border:1px solid var(--ui-border-subtle);border-radius:8px;background:var(--ui-bg-surface);box-shadow:var(--ui-shadow-popover);font:14px/22px var(--ui-font-ui);color:var(--ui-text-primary)}
.devops-app .ui-select-search{width:100%;height:36px;min-height:36px;margin:0 0 8px;padding:6px 10px;border:0;background:var(--ui-bg-subtle);border-radius:6px;font-weight:400}
.ui-select-options{max-height:240px;overflow:auto;overscroll-behavior:contain}
.devops-app .ui-select-option{display:flex;width:100%;justify-content:space-between;gap:16px;min-height:36px;padding:7px 10px;margin:0;border:0;border-radius:4px;background:transparent;text-align:left;font-weight:400;white-space:normal}
.ui-select-option>span:first-child{overflow-wrap:anywhere}
.devops-app .ui-select-option.is-active{background:var(--ui-bg-hover)}
.devops-app .ui-select-option[aria-selected=true]{font-weight:500;background:var(--ui-bg-selected)}
.devops-app .ui-select-option:disabled{color:var(--ui-text-disabled);cursor:not-allowed;background:transparent}
.ui-select-empty{padding:12px;margin:0;color:var(--ui-text-muted);font-size:13px}
.devops-app .ui-select-create{display:block;width:100%;margin-top:6px;text-align:left;color:var(--ui-action-primary);border:0;background:var(--ui-bg-selected)}
.devops-app .ui-select-create[hidden]{display:none}
.ui-select-feedback{font-size:13px;padding:4px 10px;color:var(--ui-danger)}
.devops-app .ui-tag-picker .ui-select-search{background:#fff;border:1px solid var(--ui-border-control);margin-bottom:0}
.ui-tag-picker .ui-select-options:not([hidden]){margin-top:8px}
.devops-app #deployment-scan[hidden]{display:none}
#inventory-edit-status:empty,#maintenance-error[hidden]{display:none}
#maintenance-error{margin:0 0 12px;color:var(--ui-danger)}
.fleet-bottom-cards:has(>.fleet-data-card[hidden]){grid-template-columns:minmax(0,1fr)}
.context .ui-select-trigger{font-size:13px}
#prepare-form .ui-select,#control-form .ui-select,#log-component+.ui-select{max-width:360px}
@media(max-width:1100px){.operation-layout{grid-template-columns:minmax(0,720px)}.operation-help{padding:20px 0 0;border-left:0;border-top:1px solid var(--ui-border-subtle)}.operation-help .flow-track{flex-direction:row;flex-wrap:wrap;gap:16px}}
@media(max-width:900px){#devices .columns{grid-template-columns:minmax(0,1fr)}.operation-heading{flex-wrap:wrap}.operation-tabs{gap:16px}.account-session{width:300px}}
.devops-app form>h2,.devops-app form>h3,.devops-app form>p{margin:0}
.context label{gap:0}

.fleet-metadata{margin:2px 0 2px 28px;font-size:13px;line-height:20px;color:var(--ui-text-secondary);overflow-wrap:anywhere}
#inventory-filter-field{margin:0}#inventory-editor{margin-bottom:24px}#inventory-status:empty{display:none}#inventory-editor form{max-width:560px}

/* Artifact cache remains a service-host workspace, not a device action. */
#artifact-cache .cache-actions{min-width:340px;white-space:normal}#artifact-cache .cache-actions button{margin:3px 6px 3px 0}#artifact-cache td{overflow-wrap:anywhere}#cache-directory{overflow-wrap:anywhere}#cache-search{width:300px;max-width:100%}

#artifact-cache .cache-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}#artifact-cache .cache-heading h1{font-size:18px;margin:0}

/* Camera admission keeps the existing desktop control rhythm. */
#ingest {max-width:1200px;}
#ingest .panel {padding:24px 0;border-top:1px solid var(--border,#e4e4e7);margin-top:24px;}
#ingest form {display:grid;gap:16px;}
#ingest-policy {grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;}
#ingest-policy button {grid-column:1/-1;justify-self:start;}
#ingest-discovery {grid-template-columns:minmax(240px,480px) max-content;align-items:end;}
#ingest-source {grid-template-columns:repeat(2,minmax(0,1fr));margin-top:24px;}
#ingest-source label:has([name="rtsp_url"]),#ingest-source h2 {grid-column:1/-1;}
#ingest-source label:has([type="checkbox"]) {display:flex;align-items:center;gap:8px;}
#ingest-source input[type="checkbox"] {width:16px;min-height:16px;margin:0;}
#ingest .panel>label {display:block;max-width:680px;margin-top:16px;}
#ingest .panel>button {margin-top:8px;}
#ingest-source button {justify-self:start;}
#ingest-probe-result,#ingest-created {margin-top:16px;line-height:1.7;overflow-wrap:anywhere;}

#artifact-cache .cache-auto-label{display:flex;flex-direction:row;align-items:center;gap:8px;font-weight:400;margin:12px 0}#cache-auto-verify{width:16px;min-height:16px;height:16px;margin:0;flex:0 0 16px}

/* Independent grant workflow: retain readable fields and separated actions. */
#grants-issue{display:grid;grid-template-columns:minmax(200px,300px) minmax(180px,240px) max-content;gap:16px;align-items:end}
#grants-issue label{margin:0;display:flex;flex-direction:column;gap:8px}
#grants-issue input{width:100%;box-sizing:border-box}
#grants .actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0 16px}
#grants-token{box-sizing:border-box;width:100%;margin-top:8px}
#grants .table-scroll{overflow-x:auto}

.bulk-panel { border-top:1px solid var(--border,#dededb);margin-top:24px;padding-top:20px; }
.bulk-scroll { overflow:auto;max-height:440px; }
.bulk-panel table { min-width:900px; }
.bulk-panel input[type=checkbox] { width:16px;min-width:16px; }
.bulk-panel td { vertical-align:top;word-break:break-word; }
.bulk-panel article { padding:12px 0;border-bottom:1px solid var(--border,#dededb); }
.bulk-panel pre { max-height:240px;overflow:auto;white-space:pre-wrap; }
.bulk-panel .actions { display:flex;flex-wrap:wrap;gap:8px;align-items:end;margin:16px 0; }
.bulk-panel .actions>label { width:260px;max-width:100%;margin:0; }
.bulk-panel #bulk-consent { margin:0 8px 0 0; }
.bulk-panel #bulk-submit { margin-top:12px; }

/* Desktop viewport frame, with independent menu and work-area scrolling. */
@media(min-width:901px) {
 body.devops-app:has(#workspace:not([hidden])) { height:100dvh; overflow:hidden; display:flex; flex-direction:column; }
 .devops-app:has(#workspace:not([hidden])) > header { flex:0 0 48px; }
 .devops-app:has(#workspace:not([hidden])) > main { flex:1 1 0; min-height:0; overflow:auto; overscroll-behavior:contain; }
 .devops-app .nav-items { overscroll-behavior:contain; }
 .devops-app .context,.devops-app .fleet-heading { position:fixed; }
 body.devops-app[data-view=fleet]:has(#workspace:not([hidden])) > main { display:flex; flex-direction:column; overflow:hidden; }
 body[data-view=fleet] #message,body[data-view=fleet] #transport-warning { flex-shrink:0; }
 body[data-view=fleet] #workspace:not([hidden]),body[data-view=fleet] #fleet:not([hidden]) { flex:1 1 0; min-height:0; display:flex; flex-direction:column; }
 .fleet-workspace { flex:1 1 0; min-height:0; overflow:hidden; }
 .fleet-list,.fleet-detail { min-height:0; overflow:auto; overscroll-behavior:contain; }
}

/* Common actions stay visible; specialist tools remain available in one group. */
.devops-app .nav-advanced{margin:8px 0;border-top:1px solid var(--ui-border-subtle);padding-top:12px}
.devops-app .nav-advanced>summary{padding:8px 10px;color:var(--ui-text-muted);font-size:13px;cursor:pointer}
.devops-app .nav-advanced .nav-group{margin:8px 0}
.package-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px}
.package-heading h1{margin-bottom:8px}
.package-layout{display:grid;grid-template-columns:minmax(420px,720px) minmax(240px,1fr);gap:32px;max-width:1200px}
.package-layout form,.package-stage{margin:0 0 24px;padding:0 0 24px;border-bottom:1px solid var(--ui-border-subtle)}
.package-layout h2{margin:0 0 16px;font-size:16px}
.package-layout label{max-width:100%}
.package-layout input[type=file]{width:100%;padding:10px;min-height:42px}
.package-layout small{display:block;color:var(--ui-text-muted);font-weight:400;margin-top:8px;line-height:1.5}
.package-layout .columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.package-library{border-left:1px solid var(--ui-border-subtle);padding-left:24px}
.package-version{padding:16px 0;border-bottom:1px solid var(--ui-border-subtle)}
.package-version p{margin:6px 0 12px;overflow-wrap:anywhere}
.package-version button{min-height:32px}
#package-preview,#package-upload-status,#package-prepare-status{overflow-wrap:anywhere}
#bootstrap-files .asset-group{grid-column:1/-1;margin:4px 0;font-size:13px;color:var(--ui-text-muted)}
@media(max-width:1100px){.package-layout{grid-template-columns:minmax(0,1fr)}.package-library{border-left:0;border-top:1px solid var(--ui-border-subtle);padding:24px 0 0}}
/* Maintenance follows the original terminal + file workspace. */
#maintenance:not([hidden]){display:flex;flex-direction:column;min-height:0;height:100%;overflow:hidden;padding-bottom:0}
.maintenance-heading,.maintenance-pane-title,.maintenance-consoles{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0}
.maintenance-heading h1{margin:0}.maintenance-heading p{margin:4px 0;color:#787878}.maintenance-consoles{justify-content:flex-start;padding:12px 0}.maintenance-consoles span{color:#787878;font-size:12px}
.maintenance-body{display:grid;grid-template-columns:minmax(0,2fr) minmax(290px,1fr);min-height:0;flex:1;border:1px solid #dededb;border-radius:10px;overflow:hidden;margin-bottom:12px}
.maintenance-terminal,.maintenance-files{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}
.maintenance-terminal{background:#101a29;color:#dce6f2}.maintenance-files{background:#fff;border-left:1px solid #dededb}
.maintenance-pane-title{padding:10px 14px;border-bottom:1px solid #dededb;font-size:13px}.maintenance-terminal .maintenance-pane-title{border-color:#344052}.maintenance-terminal button{background:#203047;color:#dce6f2;border-color:#425069}
#terminal-output{flex:1;min-height:120px;background:#101a29;padding:8px 10px;overflow:hidden;border:0;border-radius:0;margin:0}#terminal-note{font-size:12px;padding:8px 14px;margin:0;color:#a9b7cb;flex-shrink:0}
.file-navigation{display:flex;gap:6px;padding:10px;margin:0}.file-navigation input{min-width:0;flex:1;width:0}.file-actions{padding:12px;border-top:1px solid #e7e7e4}.file-actions button{margin-bottom:6px}#file-result{white-space:pre-wrap;overflow-wrap:anywhere;max-height:100px;overflow:auto;font-size:12px;margin:8px 0 0}
#file-list{overflow:auto;flex:1;min-height:70px;padding:0 10px}.maintenance-file-row{display:flex;align-items:center;gap:8px;border-bottom:1px solid #eee;padding:8px 3px}.maintenance-file-row button{flex:1;min-width:0;text-align:left;overflow-wrap:anywhere;border:0;background:none;padding:5px}.maintenance-file-row small{color:#777;white-space:nowrap}.maintenance-file-row[aria-selected=true]{background:#efedf7}#upload-progress{width:100%;height:8px}
@media(max-width:850px){.maintenance-body{grid-template-columns:1fr;grid-template-rows:minmax(190px,3fr) minmax(160px,2fr)}.maintenance-files{border-left:0;border-top:1px solid #dededb}.maintenance-heading{flex-wrap:wrap}.maintenance-consoles span{display:none}}
.device-back{align-self:flex-start;flex-shrink:0;margin-bottom:8px}.device-subpage-target{font-size:12px;color:#777;margin:0 0 10px;flex-shrink:0}
/* Approved R65 visual: device-scoped actions and restrained violet emphasis. */
body.devops-app{--ui-accent:#603bfa;--ui-focus:#603bfa;background:#f8f9fc;color:#172033}
nav [data-view][aria-current=page]{background:#ede8ff!important;color:#5c35f5!important}nav [data-view][aria-current=page] .ui-icon{filter:invert(27%) sepia(94%) saturate(4500%) hue-rotate(245deg)}
.detail-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.detail-actions button{justify-content:center;border:1px solid #9b83ff;color:#5734e8;background:#fcfbff;padding:12px 7px;font-size:13px}.detail-actions button:hover{background:#eee9ff}.detail-actions button:disabled{color:#9391a0;border-color:#ddd;background:#fafafa}
.detail-heading h2{font-size:25px;letter-spacing:-.5px}.fleet-table tbody tr[aria-selected=true]{background:#eee9ff!important;color:#5636ed}
.maintenance-body{gap:12px;border:0;border-radius:0}.maintenance-terminal,.maintenance-files{border:1px solid #dce1ec;border-radius:9px}.maintenance-terminal .maintenance-pane-title{background:#1d2b44}.maintenance-files{border-left:1px solid #dce1ec}#upload-file{background:#603bfa;color:white;border-color:#603bfa}#upload-file:disabled{background:#ebe7f7;color:#9289a8;border-color:#ddd}#close-maintenance{color:#c93142;border-color:#e9acb2;background:white}#maintenance-status{color:#25803e;font-size:13px}#maintenance-status[data-connected=false]{color:#777}
#file-list .maintenance-file-row{font-size:13px}.device-back{color:#603bfa;border:0;background:none;padding-left:0}
@media(max-width:1100px){.detail-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
.deployment-phases{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.deployment-phases>div{border:1px solid #ded8f1;border-radius:8px;padding:16px;background:#faf9ff}.deployment-phases p{font-size:13px;color:#666}
body.devops-app[data-view=maintenance]:has(#workspace:not([hidden]))>main{display:flex;flex-direction:column;overflow:hidden;padding:16px 24px}
body[data-view=maintenance] #workspace:not([hidden]){display:flex;flex-direction:column;flex:1 1 0;min-height:0}
#maintenance:not([hidden]){height:auto;flex:1 1 0;min-height:0}
#maintenance .maintenance-body{flex:1 1 0;min-height:0}
#maintenance .maintenance-terminal{background:#101a29;border:1px solid #dce1ec;min-height:0}
#maintenance .maintenance-files{background:#fff;border:1px solid #dce1ec;min-height:0}
#maintenance #file-navigation{display:flex;flex-direction:row;gap:6px;margin:0;padding:10px;flex:0 0 auto}
#maintenance #file-navigation input{flex:1 1 0;min-width:0;width:0}
#maintenance #terminal-output{height:0;flex:1 1 0;min-height:0}
#maintenance .file-actions{flex:0 0 auto}#maintenance .maintenance-heading{margin:0}#maintenance .device-subpage-target{display:none}
/* Shared workbench and device-operation surfaces follow the approved composition. */
body.devops-app{--ui-bg-surface:#fff;--ui-bg-page:#f7f8fc;--ui-border-subtle:#e3e6ef;--ui-text:#172033;--ui-text-muted:#737d90}
.devops-app nav{background:#f6f7fb;border-right:1px solid #e3e6ef}.devops-app input,.devops-app select,.devops-app textarea,.ui-select-trigger{border-color:#dce1eb;border-radius:6px;background:#fff}.devops-app button{border-radius:6px}.devops-app button:focus-visible{outline:2px solid #8867ff;outline-offset:2px}
.fleet-workspace{grid-template-columns:minmax(260px,30%) minmax(0,1fr);gap:0}.fleet-heading{background:#fff;border-bottom:1px solid #e5e8f0}.detail-heading{margin-bottom:16px}.detail-properties{font-size:13px}.detail-tabs{border-color:#e5e8f0}
.resource-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.resource-cards>div{background:#fff;border:1px solid #e2e6f0;border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:7px;min-width:0}.resource-cards span{font-size:13px;color:#637087}.resource-cards strong{font-size:21px;font-weight:650;overflow-wrap:anywhere}.resource-cards small{font-size:11px;color:#7b8495}
.devops-app .detail-actions button{border-radius:6px;min-height:44px}.devops-app .detail-actions .ui-icon{filter:none}
#packages .package-layout,#devices .columns,#operations .operation-main,#ingest .columns{background:#fff;border:1px solid #e3e6ef;border-radius:9px;padding:20px}#packages .package-heading,#operations .operation-heading{margin-bottom:18px}
.devops-app .operation-tabs button[aria-selected=true],.detail-tabs button[aria-selected=true]{color:#603bfa;border-color:#603bfa;background:#f1edff}
#package-upload,#package-publish,#package-prepare,#bootstrap-plan-form>button{background:#603bfa;color:#fff;border-color:#603bfa}#package-upload:disabled,#package-publish:disabled,#package-prepare:disabled{background:#eeeaf7;color:#9c95ad;border-color:#e2dfee}
@media(max-width:1000px){.fleet-workspace{grid-template-columns:minmax(230px,33%) minmax(0,1fr)}.resource-cards{gap:6px}.resource-cards>div{padding:10px}.resource-cards strong{font-size:17px}}
@media(max-width:700px){.fleet-workspace{grid-template-columns:1fr}.resource-cards{grid-template-columns:1fr}.deployment-phases{grid-template-columns:1fr}}
.subpage-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:20px}.subpage-heading h1{margin:0}.subpage-heading p{font-size:13px;color:#788194;margin-bottom:0}
.device-state-tabs{display:flex;gap:20px;border-bottom:1px solid #e2e6ef;margin:16px 0}.device-state-tabs button{background:none;border:0;border-radius:0;padding:12px 4px;color:#737d90}.device-state-tabs button[aria-selected=true]{color:#603bfa;border-bottom:2px solid #603bfa}
.device-state-panel,.camera-card{padding:20px;border:1px solid #e1e6f0;border-radius:8px;background:white;margin-bottom:16px}.device-state-panel table{width:100%}.device-state-panel th{background:#f5f6fa;color:#6b758a;font-weight:500}.device-state-panel td{padding:13px 10px}
.device-advanced{margin-top:16px;padding:14px;border:1px solid #e2e6ef;border-radius:8px;background:white}.device-advanced summary{color:#647085}.camera-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);gap:18px;margin:18px 0}.camera-card h2{font-size:16px;margin:0 0 14px}.camera-card h3{font-size:14px}.camera-card p{font-size:12px;line-height:1.7;color:#788194}.camera-card label{font-size:13px}.camera-card #ingest-add{width:100%;background:#603bfa;color:white;border-color:#603bfa}.camera-card #ingest-add:disabled{background:#eaecf2;color:#929aaa;border-color:#eaecf2}
#packages .package-layout{border:0;padding:0;background:transparent;gap:20px}#packages .package-layout>div{min-width:0}#package-upload-form,.package-stage{border:1px solid #e2e6ef!important;background:#fff;padding:20px!important;border-radius:8px}#package-upload-form input[type=file]{padding:20px 12px;border:1px dashed #b8a4ff;background:#fcfbff;font-size:12px}#packages .package-layout>aside{background:#fff;border:1px solid #e2e6ef;border-radius:8px;padding:18px}
#operations .operation-help{background:#fff;border:1px solid #e2e6ef;border-radius:8px;padding:20px}#operation-flow{background:#f8f6ff;padding:16px;border-radius:8px}#operation-panel-query .action-group{padding-top:16px;border-top:1px solid #eee}#apply:not(:disabled){background:#603bfa;color:white;border-color:#603bfa}
@media(max-width:850px){.camera-layout{grid-template-columns:1fr}.subpage-heading{align-items:flex-start;flex-direction:column}}
body.devops-app[data-view=maintenance]:has(#workspace:not([hidden])){height:100dvh;overflow:hidden;display:flex;flex-direction:column}
body.devops-app[data-view=maintenance]:has(#workspace:not([hidden]))>header{flex:0 0 48px}
#device-state:empty::before{content:'尚未读取组件，不能判断当前健康。';color:#788194}
#component-logs:empty::before{content:'尚未读取日志。'}
@media(max-width:900px){body.devops-app[data-view=maintenance] main{margin-left:0!important;padding:12px!important}#maintenance .maintenance-heading{gap:6px;flex-wrap:wrap}#maintenance .maintenance-heading h1{font-size:20px}.maintenance-consoles{padding:8px 0}#maintenance .maintenance-body{min-height:0}.maintenance-pane-title{padding:6px 10px}#maintenance .file-actions{padding:8px}#terminal-note{padding:5px 8px;font-size:11px}}
body.devops-app[data-view=maintenance]:has(#workspace:not([hidden]))>main{flex:1 1 0;min-height:0}
@media(min-width:701px) and (max-width:900px){body.devops-app[data-view=maintenance] nav{position:fixed;top:0;left:0;bottom:0;width:180px;padding:16px 10px;overflow:auto}body.devops-app[data-view=maintenance] .nav-group{display:flex;flex-direction:column}body.devops-app[data-view=maintenance] .account-footer{width:160px;margin-top:auto}body.devops-app[data-view=maintenance]>header{margin-left:180px}body.devops-app[data-view=maintenance]>main{margin-left:180px!important}body.devops-app[data-view=maintenance] .context{position:fixed;top:6px;right:14px;width:180px;margin:0}body.devops-app[data-view=maintenance] .context label{font-size:0}body.devops-app[data-view=maintenance] .context select{height:36px}}
@media(max-width:700px){body.devops-app[data-view=maintenance]>main{overflow:auto!important}#maintenance:not([hidden]){min-height:640px}.maintenance-heading .toolbar{flex-wrap:wrap}}
/* R65 visual parity correction: match composition, not only theme colors. */
body.devops-app{background:#fff}.devops-app>header{height:58px;min-height:58px;padding:0 24px;background:#fff;border-bottom:1px solid #e5e8f0}.devops-app>header #page-context{margin-left:0;margin-right:auto;color:#56627b;font-size:13px}#header-back{color:#603bfa;border:0;background:none;margin-right:245px;font-size:12px;white-space:nowrap}
body.devops-app>main{padding:22px 26px;background:#fff}#workspace>section>.device-back,#workspace>section>button[data-view=fleet],#workspace>section>.device-subpage-target{display:none!important}#workspace>section>h1{font-size:24px;margin:0 0 12px}.subpage-heading h1,.package-heading h1,.operation-heading h1{font-size:24px}
body.devops-app #message{font-size:12px;margin:0;padding:0;min-height:0;max-height:42px;overflow:auto}body.devops-app #message:not(:empty){padding:5px 0;margin-bottom:12px;color:#788194}body[data-view=fleet] #message:empty{display:none}
body.devops-app[data-view=fleet] #message:not(:empty){position:fixed;bottom:20px;right:24px;z-index:120;max-width:min(560px,calc(100vw - 48px));max-height:120px;padding:12px 16px;margin:0;border:1px solid #dedbea;border-radius:10px;background:#fff;color:#35415b;box-shadow:0 4px 20px #18223b18;white-space:pre-wrap}
body.devops-app nav{background:#f6f7fb}.sidebar-brand{margin-bottom:22px}.devops-app nav .nav-items{padding-top:0}.devops-app nav .nav-group button{min-height:40px}.nav-advanced{border-top:0!important;margin-top:10px!important}.brand-mark{background:#603bfa!important}.account-footer{border-top:0!important;background:transparent}
body[data-view=fleet] .context{right:245px;width:220px}body[data-view=fleet] #page-context{font-size:22px;color:#172033;font-weight:650}body[data-view=fleet] .fleet-heading{top:9px;right:20px;width:auto}.fleet-heading h1{display:none}
.fleet-workspace{grid-template-columns:290px minmax(0,1fr);background:#fff}.fleet-list{margin:14px 0 14px 14px;border:1px solid #e3e7f0;border-radius:9px;padding:0 12px;background:#fff}.fleet-list-tools{padding:12px 0 0!important;border:0}.fleet-list-tools h2{font-size:14px;margin:0 0 12px}.fleet-list-tools h2 span{font-size:12px;color:#7b8495}.fleet-list-tools .search-field{margin:0}.fleet-filter{border:0;margin:8px 0 0;padding:0}.fleet-filter summary{font-size:11px;color:#8a92a2}.stats-strip{font-size:10px;gap:12px;margin:8px 0;padding:0}.fleet-list .table-scroll{overflow:auto}.fleet-table,.fleet-table tbody{display:block;width:100%}.fleet-table thead{display:none}.fleet-table tr{display:block;position:relative;border:0!important;border-bottom:1px solid #f0f1f6!important;margin:0;padding:10px 22px 10px 20px;min-height:64px;border-radius:7px}.fleet-table tr::before{content:'';position:absolute;left:5px;top:23px;width:9px;height:9px;border-radius:50%;background:#a4aab7}.fleet-table tr[data-connection=online]::before{background:#26a345}.fleet-table tr.is-selected{background:#efebff!important}.fleet-table td{display:block!important;padding:0!important;border:0!important}.fleet-table td:nth-child(n+2){display:none!important}.fleet-table td button{border:0;background:none!important;padding:0!important;font-size:13px;font-weight:550;max-width:100%;text-align:left}.fleet-table .ui-icon{display:none}.fleet-metadata{font-size:11px;margin:4px 0 0;color:#8a93a5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fleet-list-note{font-size:10px;padding:12px 0;color:#949aaa;border:0}
.fleet-detail{padding:22px 24px!important}.detail-heading{margin:0 0 16px!important}.device-title-line{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.device-title-line h2{font-size:27px;margin:0}.device-title-line #fleet-detail-state{font-size:12px;color:#8a93a5}.device-title-line #fleet-detail-state[data-state=online]{color:#269945}#fleet-alias{font-size:13px;color:#6d778c;margin:8px 0 0}.device-facts-strip{display:grid;grid-template-columns:1.3fr 1fr 1.2fr 1fr 1.3fr;gap:12px;margin:0 0 22px}.device-facts-strip>div{min-width:0;border-right:1px solid #f0f1f5;padding-right:9px}.device-facts-strip span{display:block;font-size:11px;color:#8a93a5;margin-bottom:8px}.device-facts-strip strong{font-weight:450;font-size:12px;overflow-wrap:anywhere}
.resource-cards{margin:16px 0;gap:12px}.resource-cards>div{position:relative;padding:14px 12px 14px 48px;gap:6px}.resource-icon{position:absolute;left:13px;top:17px;width:23px;height:23px;filter:invert(27%) sepia(94%) saturate(4500%) hue-rotate(245deg)}.resource-cards strong{font-size:23px}.resource-cards small{font-size:10px}.detail-actions{gap:8px}.detail-actions button{min-height:43px;font-size:12px;padding:10px 6px!important;white-space:nowrap}
.fleet-bottom-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px}.devops-app .fleet-data-card{border:1px solid #e3e7f0;border-radius:8px;background:#fff;padding:0;min-height:230px;overflow:hidden}.card-heading{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e7eaf2;padding:12px 14px}.card-heading h3{font-size:14px;margin:0}.card-heading button{font-size:11px;padding:0;color:#603bfa;border:0;background:none}#fleet-detail-observation{font-size:11px;color:#8a93a5;padding:8px 14px;margin:0}.component-observation,#fleet-history-rows p{font-size:12px;line-height:1.7;border-bottom:1px solid #f1f2f6;margin:0!important;padding:11px 14px!important;overflow-wrap:anywhere}.component-observation::before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:#a7aebb;margin-right:8px}.component-observation[data-state=online]::before{background:#28a348}#fleet-history-rows{padding:10px 14px;font-size:12px;color:#768196}.fleet-extra{margin-top:16px;font-size:12px;border:0;padding:0}.fleet-extra>summary{color:#8a93a5}.fleet-extra .detail-properties{margin-top:16px}
body[data-view=maintenance] #maintenance .maintenance-heading{flex-wrap:nowrap;margin-bottom:12px}.maintenance-heading h1{font-size:24px}.maintenance-heading p{display:none}.maintenance-heading .toolbar{margin-left:auto}.maintenance-consoles{justify-content:flex-end;margin-top:-52px;height:40px;margin-bottom:12px;margin-right:0;pointer-events:none}.maintenance-consoles button{pointer-events:auto;border:0;color:#603bfa;background:none;font-size:12px}.maintenance-consoles span{display:none}.maintenance-heading .toolbar{margin-right:240px}.maintenance-body{grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr)}.maintenance-pane-title{min-height:42px;padding:8px 14px}.maintenance-pane-title button{font-size:11px;padding:4px 8px;min-height:26px}.maintenance-terminal #terminal-note{font-size:11px}.file-navigation{padding:10px!important}#file-list{padding:0 12px}.file-actions{display:flex;gap:8px;flex-wrap:wrap}.file-actions #upload-file,.file-actions #download-file{flex:1}.file-actions #file-result,.file-actions progress{width:100%;flex-basis:100%}
@media(min-width:901px){body.devops-app:has(#workspace:not([hidden]))>header{flex-basis:58px}body[data-view=fleet] #workspace:not([hidden]){padding-top:0}}
@media(max-width:1200px){.fleet-workspace{grid-template-columns:255px minmax(0,1fr)}.fleet-detail{padding:18px!important}.device-facts-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.fleet-bottom-cards{grid-template-columns:1fr}.maintenance-heading .toolbar{margin-right:0}.maintenance-consoles{margin-top:0;margin-bottom:8px;justify-content:flex-start;height:auto}.detail-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){#header-back{margin-right:190px;font-size:11px}.device-title-line h2{font-size:22px}.fleet-workspace{grid-template-columns:240px minmax(0,1fr)}.resource-cards>div{padding:12px}.resource-icon{display:none}}
@media(max-width:700px){.fleet-workspace{grid-template-columns:1fr}.fleet-list{margin:12px}.device-facts-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.resource-cards{grid-template-columns:1fr}#header-back{margin-right:0}.maintenance-heading{flex-wrap:wrap!important}}
.operation-record-layout{display:grid;grid-template-columns:minmax(240px,.9fr) minmax(0,1.2fr);gap:18px;align-items:start}.operation-record-list{border:1px solid #e3e7f0;border-radius:8px;background:#fff;overflow:hidden}.operation-record-list h2{font-size:14px;margin:0}.record-scope{font-size:11px;color:#8590a3;padding:10px 14px;margin:0}.operation-record-row{display:flex;flex-direction:column;width:100%;gap:6px;text-align:left;border:0!important;border-radius:0!important;border-top:1px solid #eff1f6!important;padding:14px!important;background:#fff;font-size:12px}.operation-record-row strong{font-weight:550}.operation-record-row span{font-size:10px;overflow-wrap:anywhere;color:#8a93a5}.operation-record-row small{font-size:11px;color:#7c62c6}.operation-record-row[aria-current=true]{background:#f0ecff!important;border-left:3px solid #7150f7!important}#operation-list{max-height:600px;overflow:auto;color:#8390a3;font-size:12px}.operation-record-detail .operation-layout{display:block}.operation-record-detail .operation-help{margin-top:16px;padding:14px!important}.operation-record-detail .operation-help h2{font-size:14px}.operation-record-detail .operation-help p{font-size:12px}.operation-record-detail .operation-tabs{margin-top:0}.operation-record-detail .operation-main{padding:18px!important}
@media(max-width:1050px){.operation-record-layout{grid-template-columns:1fr}.operation-record-list #operation-list{max-height:240px}}

/* Reference-aligned shell: search, device list, action buttons and maintenance tools. */
.header-search{display:none!important}body[data-view=fleet] .header-search{display:flex!important;align-items:center;gap:10px;width:290px;border:1px solid #e3e6ef;border-radius:6px;padding:0 12px;height:36px;margin:0}.header-search input{border:0!important;min-height:32px!important;padding:0!important;font-size:12px}.header-search .ui-icon{opacity:.5}body[data-view=fleet] .context{display:none!important}
body[data-view=fleet]>main{padding:0!important}.fleet-workspace{grid-template-columns:320px minmax(0,1fr)}.fleet-list{margin:12px;border-radius:8px;padding:0 10px}.fleet-list-tools{padding:10px 0 6px!important}.fleet-list-tools h2{font-size:15px;margin-bottom:10px}.fleet-list-tools .search-field{height:34px;border-color:#e5e8f0;background:#fafbfc}.fleet-list-tools input{min-height:32px;padding:5px 10px 5px 34px;font-size:12px;background:transparent}.fleet-list .table-scroll{flex:1}.fleet-filter{margin:8px 0 4px}.fleet-filter>summary{font-size:11px}.stats-strip{display:none}.fleet-list-note{font-size:10px;line-height:16px;padding:4px 0 8px}.fleet-table tr{min-height:56px;padding:9px 22px 8px 28px}.fleet-table tr::before{left:10px;top:20px;width:10px;height:10px}.fleet-table td button{font-size:14px;font-weight:500}.fleet-table .fleet-metadata{font-size:12px;line-height:18px;margin:3px 0 0!important}.fleet-table tr.is-selected td button{color:#603bfa}.fleet-detail{border-left:1px solid #e7eaf1;padding:18px 20px!important}.device-title-line h2{font-size:27px;line-height:34px}.device-alias-line{display:flex;align-items:center;gap:10px;margin-top:5px}#fleet-alias{margin:0;font-size:13px}#edit-device-alias{border:0;min-height:24px;width:25px;padding:3px;background:#f0eefb}.device-facts-strip{margin-top:18px;margin-bottom:20px}.detail-actions button{font-size:14px;font-weight:600;min-height:46px;gap:12px;background:#fff!important}.detail-actions .ui-icon{width:21px;height:21px}.resource-cards>div{padding:14px 12px 14px 55px}.resource-icon{left:14px;top:15px;width:27px;height:27px;padding:3px;background:transparent;border-radius:7px}.resource-cards strong{font-size:25px}.resource-cards span{font-size:13px}.resource-cards small{font-size:11px}.fleet-bottom-cards{gap:14px}.devops-app .fleet-data-card{min-height:190px}.card-heading{padding:10px 14px}.component-observation{display:block}.component-observation time{font-size:10px;color:#8590a3}.component-observation::before{margin:0}.component-observation small{font-size:11px;color:#8590a3}.fleet-extra{margin-top:14px}.fleet-extra>summary{font-weight:400}
.devops-app nav .nav-group button{font-size:15px;min-height:42px;padding:10px 14px;gap:14px}.devops-app nav .ui-icon{width:19px;height:19px}.nav-advanced>summary{display:flex!important;align-items:center;gap:14px;font-size:15px;font-weight:500;padding:12px 14px!important;list-style:none}.nav-advanced>summary::-webkit-details-marker{display:none}.nav-chevron{margin-left:auto;width:14px!important}.nav-advanced[open] .nav-chevron{transform:rotate(180deg)}.devops-app .nav-advanced{margin-top:16px!important}.sidebar-brand{font-size:17px}.sidebar-brand strong{font-size:17px}.account-footer summary>.ui-icon{width:32px!important;height:32px!important;padding:6px;border-radius:50%;background:#e8e4ff}.account-label #account-name{font-weight:600}
.terminal-tools{display:flex;gap:6px;margin-left:auto}.terminal-tools button{border:0;background:none;padding:4px;min-width:25px}.terminal-tools .ui-icon{filter:invert(85%);width:16px;height:16px}.maintenance-pane-title #open-terminal,.maintenance-pane-title #open-files{font-size:11px}.maintenance-body.terminal-expanded{grid-template-columns:1fr}.maintenance-body.terminal-expanded .maintenance-files{display:none}.file-table-heading,.maintenance-file-row{display:grid;grid-template-columns:16px minmax(80px,1fr) 64px 120px;gap:10px;align-items:center}.file-table-heading{padding:8px 14px;background:#f7f8fb;border-block:1px solid #edf0f5;font-size:11px;color:#8992a4}#file-list{padding:0 14px}.maintenance-file-row{padding:7px 0;min-height:38px}.maintenance-file-row button{display:flex;align-items:center;gap:9px;font-size:12px;min-height:24px;padding:0!important}.maintenance-file-row button .ui-icon{width:18px;height:18px;flex-shrink:0}.maintenance-file-row small,.maintenance-file-row time{font-size:10px;color:#828a99}.maintenance-file-row .folder-icon{filter:invert(72%) sepia(77%) saturate(501%) hue-rotate(349deg)}#upload-file .ui-icon{filter:invert(1)}.file-actions button{display:flex;justify-content:center;align-items:center;gap:8px}.maintenance-heading #close-maintenance{display:flex;align-items:center;gap:8px;color:#f1414f;border-color:#ff7883}.maintenance-heading #close-maintenance .ui-icon{filter:invert(41%) sepia(87%) saturate(2200%) hue-rotate(327deg)}
@media(max-width:1200px){.fleet-workspace{grid-template-columns:260px minmax(0,1fr)}.detail-actions{grid-template-columns:repeat(4,minmax(0,1fr))}.detail-actions button{font-size:12px;gap:6px}.file-table-heading,.maintenance-file-row{grid-template-columns:16px minmax(70px,1fr) 52px}.file-table-heading span:last-child,.maintenance-file-row time{display:none}}
@media(max-width:900px){.header-search{max-width:220px}.detail-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.fleet-workspace{grid-template-columns:220px minmax(0,1fr)}}
@media(max-width:700px){.fleet-workspace{grid-template-columns:1fr}.header-search{max-width:180px}.fleet-detail{border-left:0}}

.devops-app .nav-items>.nav-group{margin-bottom:0}.devops-app .nav-advanced{padding-top:0!important;margin-top:14px!important}.fleet-list-tools .search-field>.ui-icon{top:10px;width:16px;height:16px}.fleet-list-tools input{height:36px}.devops-app .fleet-filter{padding-top:8px;margin:4px 0;border-top:1px solid #edf0f5}.devops-app .fleet-extra{border-top:0;padding-top:0}
body:is([data-view=packages],[data-view=operations],[data-view=devices],[data-view=ingest],[data-view=maintenance]) .context{display:none!important}body:is([data-view=packages],[data-view=operations],[data-view=devices],[data-view=ingest],[data-view=maintenance]) #header-back{margin-right:0}
#maintenance .maintenance-heading>div:first-child{display:flex;align-items:center;gap:16px}#maintenance-status{white-space:nowrap}.maintenance-heading h1{margin:0}.maintenance-heading #maintenance-status{font-size:13px}.resource-icon{background:transparent}.devops-app nav .nav-advanced>summary{font-size:15px;color:#637087;font-weight:500}

.brand-mark{background:transparent!important;width:30px;height:30px;overflow:hidden}.brand-mark img{width:36px!important;height:36px!important;max-width:none;filter:none!important}.device-facts-strip{grid-template-columns:1.3fr 1fr 1.1fr 1.2fr 1.1fr .8fr 1.4fr;gap:12px}.device-facts-strip>div:last-child{border:0}.device-facts-strip strong{font-size:12px;font-weight:400}.device-facts-strip span{font-size:11px}.component-observation{display:grid;grid-template-columns:8px minmax(90px,1fr) 60px auto;gap:8px;align-items:center;font-size:12px}.component-observation strong{font-weight:500}.component-observation time{font-size:10px}.component-observation>span{font-size:11px;color:#8a93a5}.component-observation[data-state=online]>span{color:#269945}.source-counts{display:flex;gap:6px;margin-left:auto;margin-right:8px}.source-counts>span{font-size:10px;border-radius:20px;padding:1px 8px;background:#f1f2f5;color:#8a93a5;white-space:nowrap}.source-counts>[data-state=online]{background:#e8f8ec;color:#269945}#fleet-detail-observation{font-size:10px;line-height:16px}#fleet-history-rows{padding:0;max-height:210px;overflow:auto}.activity-row{display:grid;grid-template-columns:8px auto 1fr;gap:10px;align-items:center;font-size:11px!important}.activity-row::before{content:'';width:7px;height:7px;border-radius:50%;background:#9da4b3}.activity-row time{font-size:10px;white-space:nowrap}.activity-row span{color:#667286}.resource-cards>div{min-height:88px}.account-footer summary>.ui-icon{filter:invert(50%) sepia(22%) saturate(730%) hue-rotate(189deg);background:transparent}
@media(max-width:1250px){.device-facts-strip{grid-template-columns:repeat(4,minmax(0,1fr))}.component-observation{grid-template-columns:8px minmax(80px,1fr) 55px}.component-observation time{grid-column:2/-1}.source-counts{display:none}}
@media(max-width:700px){.device-facts-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Device cards grow with their tags instead of inheriting the old table cell height. */
.fleet-table td:first-child{height:auto}
.fleet-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;min-width:0}
.fleet-tag{display:inline-block;max-width:100%;box-sizing:border-box;padding:1px 7px;border:1px solid #d8d0fa;border-radius:5px;background:#f7f4ff;color:#6548bd;font-size:11px;line-height:18px;white-space:normal;overflow-wrap:anywhere}
/* Upload workspace: package library, scoped box readback and explicit deployment. */
#packages .package-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px}
.package-tabs{display:flex;gap:24px;border-bottom:1px solid #e4e7ef;margin-bottom:18px}
.package-tabs button{border:0;border-bottom:3px solid transparent;border-radius:0;background:none;padding:10px 12px;color:#7a849b}
.package-tabs button[aria-selected=true]{color:#653bff;border-bottom-color:#653bff}
.package-workspace{display:grid;grid-template-columns:210px minmax(330px,1fr) 280px;gap:12px;align-items:start}
.package-families,.package-workspace .package-library,.package-help{border:1px solid #e2e6ef;border-radius:8px;background:#fff;padding:16px;min-width:0}
.package-families .card-heading{padding:0;gap:8px;margin-bottom:14px}.package-families h2,.package-library h2,.package-help h2,.package-targets h2{font-size:17px;margin:0}
.package-family{display:block;width:100%;text-align:left;overflow-wrap:anywhere;min-height:58px;margin:8px 0;padding:12px;border:0;background:#f9f9fc;color:#525c73}
.package-family[aria-current=true]{background:#f0ebff;color:#653bff}.package-library-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}
.package-version-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0;border-bottom:1px solid #e6e9f1;padding-bottom:12px}.package-version-tabs button{font-size:12px;padding:6px 10px;min-height:32px}
.package-version-tabs button[aria-pressed=true]{background:#f0ebff;color:#653bff}
#packages .package-version{display:grid;grid-template-columns:minmax(65px,.6fr) minmax(120px,1.5fr) auto;align-items:center;gap:12px;padding:15px 0;font-size:13px}
.package-version span{overflow-wrap:anywhere;color:#76819a}.package-version button{font-size:12px;padding:5px 8px}
.package-help h3{font-size:14px;margin-top:20px}.package-help p{font-size:12px;line-height:1.7;color:#77829a;margin:10px 0}.package-help strong{color:#343e55}
.package-release-bar{border-top:1px solid #e7e9f2;margin-top:16px;padding-top:12px;font-size:12px}.package-release-bar p{overflow-wrap:anywhere}
.package-targets{margin-top:14px;padding:18px;border:1px solid #e2e6ef;border-radius:8px;background:#fff}.package-prepare-bar{display:flex;gap:16px;align-items:center;justify-content:space-between;margin-top:16px}.package-prepare-bar p{font-size:12px;color:#78839a}.package-prepare-bar button{flex-shrink:0}
.package-installed-row{border-bottom:1px solid #e7e9ef;padding:12px 0;overflow-wrap:anywhere;font-size:13px}.package-installed-row p{margin:5px 0;color:#606d86}.package-installed-row small{color:#8a94a5;line-height:1.6}
#package-upload-dialog{width:min(780px,calc(100vw - 60px));max-height:85vh;overflow:auto}#package-upload-form{border:0!important;padding:0!important;margin:0}#package-upload-form .columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}#package-upload-form input[type=file]{width:100%;min-width:0}#package-upload-form small{display:block;font-size:12px;color:#7d87a0;margin-top:8px}
#package-model-note{font-size:12px;color:#7a8498;line-height:1.6}#package-model-catalog p{font-size:12px}
@media(max-width:1250px){.package-workspace{grid-template-columns:170px minmax(0,1fr)}.package-help{grid-column:1/-1}.package-help p{max-width:75ch}.package-family{font-size:13px}}
@media(max-width:850px){.package-workspace{grid-template-columns:minmax(0,1fr)}.package-prepare-bar{flex-wrap:wrap}#packages .package-version{grid-template-columns:1fr 1fr}#package-upload-form .columns{grid-template-columns:1fr}}
.devops-app #packages{font-size:14px}
.devops-app #packages h1{font-size:28px;line-height:36px}.devops-app #packages h2{font-size:18px}
.devops-app #packages .package-heading p{font-size:14px;line-height:22px}
.devops-app #packages button{font-size:14px;min-height:36px}
.devops-app #packages .package-tabs button{background:transparent;border:0;border-bottom:3px solid transparent;border-radius:0;color:#77839b;padding:12px 16px}
.devops-app #packages .package-tabs button[aria-selected=true]{border-bottom-color:#653bff;color:#653bff}
.devops-app #packages .package-family{display:flex;gap:12px;align-items:center;min-height:60px;background:#fafaff;border:0;text-align:left;color:#546078;border-radius:8px}
.devops-app #packages .package-family[aria-current=true]{background:#efeaff;color:#653bff}
.devops-app #packages .package-family .ui-icon{width:23px;height:23px;flex-shrink:0}
.devops-app #packages .package-families,.devops-app #packages .package-library{min-height:450px}
.devops-app #packages .package-version{border:0;border-bottom:1px solid #e4e8f2;border-radius:0;background:none;font-size:14px;min-height:60px;padding:12px 0;margin:0}
.devops-app #packages .package-help p{font-size:13px;line-height:1.65}.devops-app #packages .package-help summary{font-size:14px;color:#653bff;cursor:pointer;margin-top:20px}
.devops-app #packages .package-targets{border:1px solid #e2e6ef;padding:18px;border-radius:8px;margin-top:14px}
.devops-app #packages .package-release-bar{margin-top:18px}.devops-app #packages .package-release-bar p{font-size:13px}
.devops-app #packages #package-prepare,.devops-app #packages #package-new,.devops-app #packages #package-upload{background:#653bff;color:white;border-color:#653bff}
.recovery-task{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid #e5e9f2}.recovery-task p{margin:6px 0}.recovery-task small,.recovery-guide p{overflow-wrap:anywhere}.recovery-task button{flex-shrink:0}.recovery-device{margin:18px 0}.recovery-guide{padding:18px;border:1px solid #ddd5fa;border-radius:8px;background:#fbfaff;margin:18px 0}.recovery-guide button{margin-right:10px}
.installed-model-package{margin:12px 0;padding:12px;border:1px solid #e5e8f1;border-radius:8px}.installed-model-package summary{cursor:pointer;font-weight:600}.installed-model{padding:12px 0;border-bottom:1px solid #e5e8f1}.installed-model>span{float:right;color:#626f85}.installed-model small,#package-model-catalog small{display:block;overflow-wrap:anywhere;line-height:1.6;color:#7a859a}.installed-model p{margin:6px 0}.package-heading>.toolbar{flex-wrap:wrap;justify-content:flex-end}.package-families .card-heading{flex-wrap:wrap}.package-families .card-heading h2,#package-new{white-space:nowrap}

.devops-app #packages .package-version-filter{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.devops-app #packages .package-version-filter button{min-height:32px;padding:5px 10px;font-size:12px}
.devops-app #packages .package-version-filter button[aria-pressed=true]{background:#f0ebff;border-color:#bba7ff;color:#653bff}

.devops-app #packages .package-version-filter[hidden]{display:none}

/* Device selection and a scoped read precede version selection. */
.devops-app #packages .package-steps{display:flex;gap:32px;list-style:none;margin:0 0 22px;padding:0;border-bottom:1px solid #e4e7ef}
.devops-app #packages .package-steps li{display:flex;align-items:center;gap:10px;padding:0 0 16px;color:#77839b;border-bottom:3px solid transparent}
.devops-app #packages .package-steps li[aria-current=step]{color:#653bff;border-bottom-color:#653bff;font-weight:600}
.devops-app #packages .package-steps span{display:inline-grid;place-items:center;width:27px;height:27px;background:#eeeaf7;border-radius:50%}
.devops-app #packages .package-steps li[aria-current=step] span{background:#653bff;color:#fff}
.devops-app #packages .package-workspace{grid-template-columns:210px minmax(0,1fr)}
.devops-app #packages #package-step-devices{margin-top:0}
.devops-app #packages #package-step-devices .package-step-intro{color:#74809a;line-height:1.7;margin:12px 0 20px}
.devops-app #packages .package-device-choices{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0}
.devops-app #packages .package-device-choices label{display:flex;align-items:center;gap:10px;margin:0;padding:12px 16px;border:1px solid #dde2ee;border-radius:8px;background:#fafaff;min-height:48px}
.devops-app #packages .package-device-choices input{margin:0;flex:none}
.devops-app #packages .package-selection-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}
.devops-app #packages .package-selection-bar h2{margin:0}.devops-app #packages .package-selection-bar p{margin:7px 0 0;color:#75819a;overflow-wrap:anywhere}
.devops-app #packages .package-current-card{padding:18px 0;border-bottom:1px solid #e5e9f2}
.devops-app #packages .package-current-card h3{margin:0 0 12px;font-size:16px}
.devops-app #packages .package-current-programs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.devops-app #packages .package-current-program{padding:12px;border:1px solid #e5e9f2;border-radius:8px;background:#fbfbfe;overflow-wrap:anywhere}
.devops-app #packages .package-current-program p{margin:6px 0 0;color:#75819a}
.devops-app #packages .package-current-card details{margin:14px 0}.devops-app #packages .package-current-card summary{cursor:pointer;color:#59667f}
.devops-app #packages .package-current-card small{display:block;line-height:1.7;color:#7b859a;overflow-wrap:anywhere}
.devops-app #packages .package-device-choices label{min-height:40px;padding:9px 13px;background:#fff;border-radius:7px}
.devops-app #packages .package-device-choices label:has(input:checked){background:#f3efff;border-color:#c9baff;color:#5834d6}
.devops-app #packages .package-current-card{padding:18px 0 8px;min-width:0}
.devops-app #packages .inventory-device-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.devops-app #packages .inventory-device-heading h3{margin:0}
.devops-app #packages .inventory-device-heading small{font-size:12px}
.devops-app #packages .package-current-program{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:#fafbfe}
.devops-app #packages .package-current-program strong{font-size:13px;flex-shrink:0}
.devops-app #packages .package-current-program p{font-size:12px;margin:0;text-align:right}
.devops-app #packages .inventory-algorithms{border:1px solid #e2e6ef;border-radius:10px;margin-top:16px;overflow:hidden;background:#fff}
.devops-app #packages .inventory-section-heading{display:flex;align-items:center;gap:10px;padding:14px 16px;flex-wrap:wrap}
.devops-app #packages .inventory-section-heading h4{margin:0;font-size:14px}
.devops-app #packages .inventory-section-heading>span:not(.inventory-badge){font-size:12px;color:#778198}
.devops-app #packages .inventory-section-heading>.inventory-badge{margin-left:auto}
.devops-app #packages .inventory-columns,.devops-app #packages .inventory-package>summary{display:grid;grid-template-columns:minmax(140px,1.2fr) minmax(140px,1.4fr) 108px 100px 16px;gap:16px;align-items:center;padding:12px 16px}
.devops-app #packages .inventory-columns{background:#f8f9fc;color:#7b8598;font-size:12px;padding-top:9px;padding-bottom:9px;border-top:1px solid #edf0f5}
.devops-app #packages .package-current-card .inventory-package{border:0;border-top:1px solid #edf0f5;border-radius:0;margin:0;padding:0;background:#fff;box-shadow:none}
.devops-app #packages .inventory-package>summary{box-sizing:border-box;margin:0;list-style:none;min-height:64px;color:#354058;font-size:13px;border:0;background:transparent;cursor:pointer}
.devops-app #packages .inventory-package>summary::-webkit-details-marker{display:none}
.devops-app #packages .inventory-package>summary:hover{background:#faf9ff}
.devops-app #packages .inventory-package[open]>summary{background:#faf9ff}
.devops-app #packages .inventory-package-name{min-width:0;overflow-wrap:anywhere}
.devops-app #packages .inventory-package-name strong{font-size:13px;color:#273248}
.devops-app #packages .inventory-package-name small{font-size:11px;margin-top:2px;line-height:16px}
.devops-app #packages .inventory-package-version{font:12px/19px var(--ui-font-mono);overflow-wrap:anywhere}
.devops-app #packages .inventory-package-count{font-size:12px;color:#7b8598}
.devops-app #packages .inventory-package-toggle{width:7px;height:7px;border-right:1.5px solid #8b94a5;border-bottom:1.5px solid #8b94a5;transform:rotate(-45deg);justify-self:center;transition:transform .15s}
.devops-app #packages .inventory-package[open] .inventory-package-toggle{transform:rotate(45deg)}
.devops-app #packages .inventory-badge{display:inline-flex;align-items:center;justify-self:start;max-width:100%;padding:2px 8px;border:1px solid #e3e6ed;border-radius:5px;background:#f6f7f9;color:#70798b;font-size:11px;line-height:18px;font-weight:500;overflow-wrap:anywhere}
.devops-app #packages .inventory-badge-active{background:#f0ebff;border-color:#ded3ff;color:#6742d5}
.devops-app #packages .inventory-badge-present{background:#f0f8f5;border-color:#d9eee4;color:#24795b}
.devops-app #packages .inventory-badge-warning{background:#fffbef;border-color:#f2e6be;color:#95701f}
.devops-app #packages .inventory-badge-danger{background:#fff4f2;border-color:#f2dcd7;color:#b44c3b}
.devops-app #packages .inventory-models{margin:0;padding:8px 20px 12px 36px;background:#fcfcfe;border-top:1px solid #efedf7}
.devops-app #packages .inventory-model-row{display:grid;grid-template-columns:minmax(120px,1.2fr) minmax(90px,1.4fr) minmax(160px,224px);align-items:center;gap:16px;padding:9px 0;border-bottom:1px solid #eef0f5;font-size:12px}
.devops-app #packages .inventory-model-row:last-child{border-bottom:0}
.devops-app #packages .inventory-model-name{overflow-wrap:anywhere;color:#4d5870}
.devops-app #packages .inventory-model-variant{color:#81899a;overflow-wrap:anywhere}
.devops-app #packages .inventory-models p,.devops-app #packages .inventory-algorithms>p,.devops-app #packages .inventory-footnote{font-size:12px;color:#7d879b;line-height:20px;margin:10px 0}
.devops-app #packages .inventory-algorithms>p{padding:0 16px}
@media(max-width:1100px){.devops-app #packages .inventory-columns,.devops-app #packages .inventory-package>summary{grid-template-columns:minmax(110px,1fr) minmax(110px,1.2fr) 88px 80px 12px;gap:10px}.devops-app #packages .package-current-program{align-items:flex-start;flex-direction:column;gap:5px}.devops-app #packages .package-current-program p{text-align:left}}
@media(max-width:650px){.devops-app #packages .inventory-columns{display:none}.devops-app #packages .inventory-package>summary{grid-template-columns:minmax(0,1fr) auto 12px;gap:6px 10px}.devops-app #packages .inventory-package-name{grid-column:1;grid-row:1}.devops-app #packages .inventory-package-version{grid-column:1;grid-row:2}.devops-app #packages .inventory-package>summary>.inventory-badge{grid-column:2;grid-row:1}.devops-app #packages .inventory-package-count{grid-column:2;grid-row:2}.devops-app #packages .inventory-package-toggle{grid-column:3;grid-row:1/3}.devops-app #packages .inventory-models{padding:6px 16px}.devops-app #packages .inventory-model-row{grid-template-columns:minmax(0,1fr) auto;gap:5px 10px}.devops-app #packages .inventory-model-row>.inventory-badge{grid-column:2;grid-row:1/3}.devops-app #packages .inventory-model-name{grid-column:1;grid-row:1}.devops-app #packages .inventory-model-variant{grid-column:1;grid-row:2}}
.devops-app #packages .package-pending-cache{padding:12px 16px;background:#f4efff;border:1px solid #ded1ff;border-radius:8px;color:#653bff;overflow-wrap:anywhere}
.devops-app #packages #package-next{background:#653bff;border-color:#653bff;color:#fff}
.devops-app #packages #package-next:disabled{background:#eeeaf7;border-color:#e2dfee;color:#9c95ad}
.devops-app #packages #package-help{margin-bottom:18px}.devops-app #packages #package-help[hidden],.devops-app #packages #package-step-devices[hidden],.devops-app #packages #package-step-versions[hidden]{display:none}
@media(max-width:850px){.devops-app #packages .package-workspace{grid-template-columns:minmax(0,1fr)}.devops-app #packages .package-steps{gap:16px}.devops-app #packages .package-steps li{font-size:12px}.devops-app #packages .package-selection-bar{align-items:flex-start;flex-wrap:wrap}.devops-app #packages .package-current-programs{grid-template-columns:minmax(0,1fr)}}

.package-device-choices .approval-unavailable{opacity:.5;cursor:not-allowed}.package-approval-row{display:grid;gap:8px;padding:16px 0;border-bottom:1px solid #e4e4e7}.package-approval-row p{margin:0}.package-approval-row button{justify-self:start}
.devops-app #packages :is(#package-prepare,#package-new,#package-upload):disabled{background:#eeeaf7;color:#9c95ad;border-color:#e2dfee;cursor:not-allowed}

/* Shared desktop login presentation; authenticated workspace stays unchanged. */
body.devops-app:has(#login:not([hidden])) { min-height:100vh; height:auto; overflow:auto; background:#f8f9fd url('/login-mist.png') center / cover fixed; }
body.devops-app:has(#login:not([hidden])) > header { display:none; }
body.devops-app:has(#login:not([hidden])) > main { background:transparent; margin:0; padding:96px 32px; min-height:100vh; height:auto; box-sizing:border-box; display:flex; flex-direction:column; justify-content:center; align-items:center; overflow:visible; }
body.devops-app:has(#login:not([hidden])) > main::before { content:'CV 运维工作台'; position:absolute; top:38px; left:5vw; font-size:18px; font-weight:600; color:#182239; }
body.devops-app #login { width:420px; max-width:100%; margin:0; padding:36px; box-sizing:border-box; background:rgba(255,255,255,.24); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); border:1px solid rgba(137,143,155,.22); border-radius:14px; box-shadow:0 12px 36px rgba(40,45,58,.025); color:#182239; }
body.devops-app #login h1 { margin:0 0 28px; font-size:24px; line-height:34px; font-weight:600; letter-spacing:-.5px; }
body.devops-app #login form { margin:0; display:flex; flex-direction:column; gap:24px; }
body.devops-app #login label { margin:0; display:flex; flex-direction:column; gap:8px; font-size:14px; font-weight:500; }
body.devops-app #login input { width:100%; height:44px; box-sizing:border-box; border-radius:8px; background:rgba(255,255,255,.42); border:1px solid rgba(137,143,155,.22); color:#182239; font-size:14px; }
body.devops-app #login form > button { height:44px; border-radius:8px; font-size:15px; font-weight:600; }
body.devops-app #login details { order:1; font-size:13px; color:#7c879b; }
body.devops-app #login details[open] label { margin-top:12px; }
body.devops-app:has(#login:not([hidden])) #message:not(:empty) { width:420px; max-width:100%; box-sizing:border-box; margin:0 0 16px; }

/* Cloud-managed updates: device, released version, review remain visible together. */
.devops-app #packages .package-update-grid{display:grid;grid-template-columns:minmax(220px,.85fr) minmax(290px,1.15fr) minmax(250px,.9fr);gap:14px;align-items:stretch;margin-bottom:24px}
.devops-app #packages .package-update-grid>section,.devops-app #packages .package-update-review{min-width:0;margin:0;padding:16px;border:1px solid #e2e6ef;border-radius:8px;background:#fff;max-height:calc(100vh - 245px);min-height:420px;overflow:auto}
.devops-app #packages .package-update-grid h2{font-size:16px}
.devops-app #packages .package-update-grid .package-workspace{display:block}
.devops-app #packages .package-update-grid .package-families{border:0;padding:0;margin-bottom:16px}
.devops-app #packages .package-update-grid .package-library{border:0;padding:0}
.devops-app #packages #package-family-list{display:flex;flex-wrap:wrap;gap:6px}
.devops-app #packages #package-family-list .package-family{width:auto;padding:8px;font-size:12px}
.devops-app #packages .package-update-grid .package-library-heading,.devops-app #packages .package-update-grid .package-selection-bar{flex-wrap:wrap;gap:10px}
.devops-app #packages .package-update-grid .package-device-choices{display:grid;gap:8px}
.devops-app #packages .package-update-grid .package-prepare-bar{display:flex;flex-direction:column;align-items:stretch;gap:10px}
.devops-app #packages .package-update-grid .package-targets{box-shadow:none}
.devops-app #packages .package-update-review>.package-targets{border:0;padding:0;margin:0 0 18px}
.devops-app #packages .package-update-review>.package-targets+section{border-top:1px solid #e4e7ef;padding-top:16px}
.devops-app #packages .package-update-grid .package-version{grid-template-columns:minmax(0,1fr) auto;gap:8px;overflow-wrap:anywhere}
.devops-app #packages .package-update-grid .package-version>*{min-width:0}
.devops-app #packages .package-update-grid .package-version small{grid-column:1/-1}
.devops-app #packages .package-update-grid .package-current-programs{grid-template-columns:1fr}
.devops-app #packages .package-update-grid .package-current-details{margin:14px 0;overflow:auto}
.devops-app #packages .package-update-grid .package-current-details summary{cursor:pointer;font-size:12px;color:#68758d}
.devops-app #packages .package-update-grid p{font-size:12px;line-height:1.7;overflow-wrap:anywhere}
.devops-app #packages [hidden]{display:none!important}
.devops-app #packages .awaiting-inventory{background:#fcfcff}
@media(max-width:1180px){.devops-app #packages .package-update-grid{grid-template-columns:minmax(190px,.85fr) minmax(250px,1.15fr)}.devops-app #packages .package-update-review{grid-column:1/-1;max-height:none;min-height:0}}
@media(max-width:700px){.devops-app #packages .package-update-grid{grid-template-columns:1fr}.devops-app #packages .package-update-grid>section{max-height:none;min-height:0}}

.devops-app #packages .package-update-grid .package-families,.devops-app #packages .package-update-grid .package-library{min-height:0}
.approved-upgrade-grid{display:grid;grid-template-columns:minmax(220px,.85fr) minmax(300px,1.2fr) minmax(250px,.9fr);gap:14px;margin:20px 0 24px}
.approved-upgrade-grid>section{min-width:0;padding:18px;margin:0;border:1px solid #e2e6ef;border-radius:8px;background:white;min-height:400px;max-height:calc(100vh - 245px);overflow:auto}
.approved-upgrade-grid h2{font-size:16px;margin:0 0 16px}.approved-upgrade-grid p{font-size:13px;line-height:1.7;overflow-wrap:anywhere}
.approved-request-choice{display:block;width:100%;text-align:left;margin:8px 0;padding:14px;white-space:normal}.approved-request-choice[aria-current=true]{background:#f2edff;border-color:#c6b5ff}.approved-request-choice small{display:block;margin-top:7px;color:#77839b}
.upgrade-task-progress{padding:16px;margin:12px 0;border:1px solid #e2e6ef;border-radius:8px;background:#fff}.upgrade-task-progress progress{display:block;width:100%;margin:12px 0;accent-color:#6840ff}.upgrade-task-progress[data-failed=true]{border-color:#f0b9c0}.upgrade-task-progress p{font-size:13px;overflow-wrap:anywhere}
@media(max-width:1180px){.approved-upgrade-grid{grid-template-columns:1fr 1fr}.approved-upgrade-grid>section:last-child{grid-column:1/-1;min-height:0;max-height:none}}
@media(max-width:700px){.approved-upgrade-grid{grid-template-columns:1fr}.approved-upgrade-grid>section{max-height:none;min-height:0}}

/* Quick tag filters share the existing inventory selection. */
#inventory-quick-filters{display:flex;flex-wrap:wrap;gap:6px;max-height:126px;overflow:auto;padding:8px 2px 4px;margin-top:2px}
#inventory-quick-filters[hidden]{display:none}
body.devops-app #workspace #inventory-quick-filters button{max-width:100%;min-height:30px;height:auto;margin:0;padding:5px 9px;border:1px solid #dfe3ee;border-radius:6px;background:#fafbfe;color:#455575;font-size:12px;line-height:18px;white-space:normal;overflow-wrap:anywhere;text-align:left}
body.devops-app #workspace #inventory-quick-filters button:hover{background:#f2efff;border-color:#cbbdff}
body.devops-app #workspace #inventory-quick-filters button[aria-pressed=true]{background:#efebff;border-color:#9277f5;color:#603bdf}
body.devops-app #workspace #inventory-quick-filters button:focus-visible{outline:2px solid #6540ee;outline-offset:1px}

body.devops-app #workspace .resource-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
body.devops-app #workspace .resource-cards strong{font-size:28px;font-variant-numeric:tabular-nums}
body.devops-app #workspace .resource-cards small{font-size:12px}
body.devops-app #workspace .resource-cards>div[data-resource-level=warning]{background:#fffbeb;border-color:#e8c65a}
body.devops-app #workspace .resource-cards>div[data-resource-level=critical]{background:#fff1f2;border-color:#f0a3a9}
body.devops-app #workspace .resource-cards [data-resource-level=warning]{color:#946000}
body.devops-app #workspace .resource-cards [data-resource-level=critical]{color:#bc2535}
body.devops-app #workspace .resource-cards .resource-pressure{display:inline-block;font-size:12px;font-weight:600}
body.devops-app #workspace .npu-core-values{display:flex;flex-wrap:wrap;gap:12px 20px;margin:4px 0}
body.devops-app #workspace .npu-core-values>div{display:flex;flex-direction:column;gap:4px}
body.devops-app #workspace .npu-core-values>div>span:first-child{font-size:12px;color:#52627b}
body.devops-app #workspace .npu-core-values strong{font-size:24px}
.fleet-bottom-cards[hidden]{display:none}
