input:disabled { cursor: not-allowed; opacity: .55; }
:root {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --rp-surface: #eef2f7;
  --rp-surface-elevated: #f8fafc;
  --rp-text: #1e293b;
  --rp-text-strong: #111827;
  --rp-text-muted: #64748b;
  --rp-border: #e3e7ee;
  --rp-accent: #1f437f;
  --rp-on-accent: #ffffff;
  --rp-selection: rgba(31, 67, 127, .28);
  --rp-font-mono: ui-monospace, "Cascadia Code", Consolas, "Liberation Mono", monospace;
  --rp-terminal-black: #1e293b;
  --rp-terminal-red: #b91c1c;
  --rp-terminal-green: #15803d;
  --rp-terminal-yellow: #a16207;
  --rp-terminal-blue: #1d4ed8;
  --rp-terminal-magenta: #a21caf;
  --rp-terminal-cyan: #0e7490;
  --rp-terminal-white: #475569;
  --rp-terminal-bright-black: #64748b;
  --rp-terminal-bright-red: #dc2626;
  --rp-terminal-bright-green: #16a34a;
  --rp-terminal-bright-yellow: #ca8a04;
  --rp-terminal-bright-blue: #2563eb;
  --rp-terminal-bright-magenta: #c026d3;
  --rp-terminal-bright-cyan: #0891b2;
  --rp-terminal-bright-white: #1e293b;
  --rp-space-xs: 6px;
  --rp-space-sm: 12px;
  --rp-space-md: 18px;
  --rp-space-1: 6px;
  --rp-space-2: 12px;
  --rp-space-3: 18px;
  --rp-radius: 8px;
  --rp-radius-sm: 8px;
  --rp-radius-card: 10px;
  --rp-radius-large: 10px;
  color: var(--rp-text);
  background: var(--rp-surface);
  font-synthesis: none;
}
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; }
button, input, select { font: inherit; }
button { cursor: pointer; }
.shell { min-height: 100vh; display: grid; grid-template-columns: 240px 1fr; transition: grid-template-columns .2s ease; }
.shell.sidebar-collapsed { grid-template-columns: 72px 1fr; }
.sidebar { align-self: start; position: sticky; top: 0; height: 100vh; max-height: 100vh; overflow-y: auto; background: #111827; color: #cbd5e1; padding: 24px 16px; display: flex; flex-direction: column; }
.sidebar-head { margin:0 8px 20px; }
.brand { display:flex; gap:12px; align-items:center; min-width:0; }
.brand-mark { width: 42px; height: 42px; object-fit: contain; }
.brand-text { min-width:0; }
.brand strong, .brand span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.brand strong { color: white; font-size: 16px; }
.brand span { font-size: 12px; margin-top: 2px; color: #94a3b8; }
.sidebar-bottom { margin-top:auto; display:grid; gap:12px; }
.sidebar-toggle { display:flex; align-items:center; gap:12px; width:100%; height:42px; min-height:42px; overflow:hidden; padding:11px 12px; border:0; border-radius:8px; background:transparent; color:#aeb8c7; text-align:left; white-space:nowrap; }
.sidebar-toggle span, .side-foot-label { overflow:hidden; text-overflow:ellipsis; }
.sidebar-toggle:hover, .sidebar-toggle:focus-visible { background:#1f2937; color:white; outline:0; }
.sidebar-toggle svg, .nav-icon { width: 20px; height: 20px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
nav { display: grid; gap: 6px; }
.nav { display:flex; align-items:center; gap:12px; overflow:hidden; border:0; border-radius:8px; background:transparent; color:#aeb8c7; padding:11px 12px; text-align:left; white-space:nowrap; }
.nav-label { overflow:hidden; text-overflow:ellipsis; }
.nav:hover, .nav.active { background: #1f2937; color: white; }
.side-foot { display:flex; align-items:center; gap:8px; overflow:hidden; font-size:12px; padding:8px; border:1px solid #263244; border-radius:8px; background:rgba(31,41,55,.45); white-space:nowrap; }
.system-version { margin-left:auto; color:#7f8da3; font-size:11px; }
.connection-warning { padding:8px; border:1px solid #a16207; border-radius:8px; background:#3f2a08; color:#fde68a; font-size:12px; line-height:1.35; }
.dot { width: 8px; height: 8px; border-radius: 50%; background: #64748b; }
.dot.ok { background: #22c55e; }
main { padding: 17px 21px 24px; overflow: hidden; }
.shell.sidebar-collapsed .sidebar { padding: 24px 12px; }
.shell.sidebar-collapsed .sidebar-head { margin:0 0 14px; }
.shell.sidebar-collapsed .brand { justify-content: center; }
.shell.sidebar-collapsed .brand-text, .shell.sidebar-collapsed .sidebar-toggle span, .shell.sidebar-collapsed .nav-label, .shell.sidebar-collapsed .side-foot-label { display: none; }
.shell.sidebar-collapsed .sidebar-toggle { justify-content:center; padding-inline:0; }
.shell.sidebar-collapsed .sidebar-toggle svg { transform: rotate(180deg); }
.shell.sidebar-collapsed .nav { justify-content: center; padding-inline: 0; }
.shell.sidebar-collapsed .side-foot, .shell.sidebar-collapsed .connection-warning { width: 40px; height: 40px; min-height: 40px; max-height: 40px; box-sizing: border-box; }
.shell.sidebar-collapsed .side-foot { justify-content: center; padding-inline: 0; }
.shell.sidebar-collapsed .connection-warning { position: relative; align-self: start; padding: 0; overflow: hidden; font-size: 0; line-height: 1; }
.shell.sidebar-collapsed .connection-warning::before { content: "!"; position: absolute; inset: 0; display: grid; place-items: center; font-size: 20px; font-weight: 800; }
header { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
h1 { margin: 0; font-size: 28px; color: var(--rp-text-strong); }
.header-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.plugin-header-actions { display: contents; }
.button { border: 1px solid transparent; border-radius: 8px; padding: 9px 13px; font-weight: 600; }
.button.primary { background: #1F437F; color: white; }
.button.primary:hover { background: #173563; }
.button.secondary { background: var(--rp-surface-elevated); border-color: var(--rp-border); color: var(--rp-text); }
.theme-toggle { display: inline-flex; align-items: center; gap: 7px; }
.theme-toggle::first-letter { color: #FCB100; }
.button.danger { background: #fff; border-color: #fecaca; color: #b91c1c; }
.button.small { padding: 6px 9px; font-size: 12px; }
.page { display: none; }
.page.active { display: block; }
.overview-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--rp-border); border-radius: var(--rp-radius-large); overflow: hidden; margin-bottom: var(--rp-space-3); background: var(--rp-surface-elevated); }
.metric { display: grid; gap: 6px; padding: 13px 15px; border-right: 1px solid #e3e7ee; }
.metric:nth-child(4n) { border-right: 0; }
.metric span, .section-head .meta { color: var(--rp-text-muted); font-size: 12px; }
.metric strong { color: var(--rp-text-strong); font-size: 18px; }
.utilization-reading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.utilization-reading span { color: #64748b; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.utilization-reading strong { font-size: 15px; }
.meter { height: 6px; overflow: hidden; border-radius: 999px; background: #e8edf4; }
.meter span { display: block; height: 100%; border-radius: inherit; transition: width .25s ease; }
.meter.blue span { background: #3b82f6; }
.meter.violet span { background: #8b5cf6; }
.meter.green span { background: #22c55e; }
.meter.amber span { background: #f59e0b; }
.meter.pink span { background: #ec4899; }
.meter.red span { background: #ef4444; }
.overview-section { margin-top: 18px; }
.section-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 10px; }
.section-head h2 { margin: 0; font-size: 15px; color: #111827; }
.task-filters { display: flex; gap: 6px; }
.compact { padding: 13px 16px; border: 0; border-radius: 0; }
.issue-row { border-left: 3px solid #ef4444; }
.row-list { background: var(--rp-surface-elevated); border: 1px solid var(--rp-border); border-radius: var(--rp-radius-large); overflow: hidden; }
.row { display: grid; grid-template-columns: minmax(220px, 1.3fr) minmax(300px, 1.7fr) auto; gap: 20px; align-items: center; padding: 15px 18px; border-bottom: 1px solid #eef1f5; }
.task-choice { width: 100%; border: 0; background: white; color: #111827; text-align: left; }
.task-choice strong { font-size: 15px; }
.task-choice .meta { color: #64748b; }
.task-choice:hover { background: #f8fafc; }
.row:last-child { border-bottom: 0; }
.row-head { display: flex; justify-content: space-between; gap: 12px; align-items: center; min-width: 0; }
.row-head > :first-child, .docker-card-head > :first-child { min-width: 0; }
.row h3 { margin: 0 0 4px; font-size: 16px; color: #111827; }
.meta { color: #64748b; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 270px; }
.status { display: inline-flex; align-items: center; min-width: 0; max-width: 100%; overflow: hidden; padding: 3px 8px; border-radius: 999px; font-size: 11px; font-weight: 700; text-overflow: ellipsis; text-transform: uppercase; letter-spacing: .04em; white-space: nowrap; }
.status.running, .status.success { background: #dcfce7; color: #166534; }
.status.starting, .status.stopping { background: #fef3c7; color: #92400e; }
.status.stopped, .status.idle { background: #eef2f7; color: #475569; }
.status.failure { background: #fee2e2; color: #991b1b; }
.status.failed { background: #fee2e2; color: #991b1b; }
.status.update { background: #fef3c7; color: #92400e; }
.status.installed { background: #eef2f7; color: #475569; }
.row-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 18px; font-size: 13px; }
.disk-details { grid-template-columns: minmax(160px, 1fr) minmax(100px, .75fr); align-items: center; }
.row-list.disk-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; }
.disk-card { display: grid; gap: 8px; padding: 13px 15px; border-bottom: 1px solid #eef1f5; }
.disk-card:nth-child(odd) { border-right: 1px solid #eef1f5; }
.disk-card:nth-last-child(-n+2) { border-bottom: 0; }
.disk-card h3 { margin: 0; font-size: 16px; color: #111827; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.disk-device { margin-top: -6px; color: #64748b; font: 11px/1.3 "Cascadia Code", Consolas, monospace; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.disk-summary { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-size: 13px; }
.disk-summary span { color: #64748b; }
.disk-summary strong { color: #111827; font-size: 13px; white-space: nowrap; }
.kv { display: flex; justify-content: space-between; gap: 16px; }
.kv span:first-child { color: #64748b; }
.kv span:last-child { text-align: right; max-width: 65%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.row-actions { display: flex; justify-content: flex-end; gap: 7px; flex-wrap: wrap; }
.storage-entry.openable { cursor: pointer; }
.storage-entry.openable:hover { background: #f8fafc; }
.storage-toolbar > div:first-child { display: flex; align-items: baseline; gap: 14px; }
.storage-provider-label { color: #111827; font-size: 15px; font-weight: 600; }
#storageProvider { width: auto; min-width: 190px; padding: 6px 8px; font-size: 12px; }
#storageBreadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; margin: -4px 0 12px; max-width: 100%; white-space: normal; }
.breadcrumb-link { border: 0; padding: 2px 4px; border-radius: 4px; color: #1F437F; background: transparent; font: inherit; cursor: pointer; }
.breadcrumb-link:hover { background: #e9eff8; text-decoration: underline; }
.storage-name { display: inline-flex; align-items: center; gap: 7px; }
.storage-list-head, .storage-row { display: grid; grid-template-columns: minmax(240px, 1fr) 150px 220px 238px; column-gap: 18px; align-items: center; }
.storage-list-head { padding: 10px 18px; border-bottom: 1px solid #e3e7ee; color: #64748b; background: #fafbfc; font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.storage-list-head span:last-child { text-align: right; }
.storage-row { min-height: 72px; padding: 12px 18px; }
.storage-row .storage-name { min-width: 0; }
.storage-row .storage-name h3 { margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.storage-cell { color: #475569; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.entry-icon { display: inline-grid; width: 23px; height: 23px; place-items: center; flex: 0 0 23px; font-size: 17px; }
.entry-icon.folder::before { content: "📁"; }.entry-icon.text::before { content: "📄"; }.entry-icon.image::before { content: "🖼"; }.entry-icon.audio::before { content: "🎵"; }.entry-icon.video::before { content: "🎬"; }.entry-icon.file::before { content: "▤"; }
.entry-icon.loading { width:15px; height:15px; margin:4px; border:2px solid #cbd5e1; border-top-color:#2563eb; border-radius:50%; animation:software-spin .8s linear infinite; }
.entry-icon.loading::before { content:""; }
.storage-entry .row-actions { min-width: 238px; flex-wrap: nowrap; }
.row-icon, .row-icon-slot { display: inline-grid; width: 28px; height: 28px; place-items: center; flex: 0 0 28px; }
.row-icon { border: 0; background: transparent; padding: 5px; font-size: 15px; line-height: 1; color: #475569; }
.row-icon.download-icon { font-size: 22px; font-weight: 800; }
.row-icon:hover:not(:disabled) { background: #e9eff8; border-radius: 6px; }
.row-icon:disabled { opacity: .35; cursor: default; }
.editor-shell { position: relative; min-height: 420px; overflow: hidden; border: 1px solid #d5dce7; border-radius: 8px; background: #0f172a; }
.editor-shell pre, .text-editor { box-sizing: border-box; width: 100%; min-height: 420px; margin: 0; padding: 12px; border: 0; border-radius: 0; font: 13px/1.5 "Cascadia Code", Consolas, monospace; white-space: pre-wrap; overflow-wrap: normal; tab-size: 2; }
.editor-shell pre { pointer-events: none; color: #d6e2f0; overflow: hidden; }
.text-editor { position: absolute; inset: 0; resize: vertical; background: transparent; color: transparent; caret-color: #f8fafc; outline: none; }
.text-editor::selection { background: rgba(96,165,250,.35); color: transparent; }
.syntax-key { color: #7dd3fc; }.syntax-string { color: #86efac; }.syntax-keyword { color: #c4b5fd; }.syntax-number { color: #fbbf24; }.syntax-comment { color: #94a3b8; }
.empty { text-align: center; padding: 34px 20px; border: 1px dashed #d5dbe5; border-radius: 12px; background: rgba(255,255,255,.5); }
.empty h2 { font-size: 17px; margin: 0 0 6px; }
.empty p { color: #64748b; margin: 0; }
.hidden { display: none !important; }
.notice { display: flex; flex-direction: column; gap: 4px; background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 10px; padding: 13px 15px; margin-bottom: 16px; font-size: 13px; color: #1e40af; }
.notice span { color: #3b5998; }
.rp-interactive-session { height: min(76vh, 900px); min-height: 360px; min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); overflow: hidden; border: 1px solid var(--rp-border); border-radius: var(--rp-radius); background: var(--rp-surface); }
.rp-interactive-toolbar { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 10px; border-bottom: 1px solid var(--rp-border); background: var(--rp-surface-elevated); }
.rp-interactive-heading, .rp-interactive-actions { display: flex; min-width: 0; align-items: center; gap: 8px; }
.rp-interactive-title { display: grid; min-width: 0; gap: 2px; }
.rp-interactive-title strong { overflow: hidden; color: var(--rp-text-strong); font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.rp-interactive-status { color: var(--rp-text-muted); font-size: 11px; }
.rp-interactive-status[data-state="connected"] { color: #16803c; }
.rp-interactive-status[data-state="error"] { color: #b42318; }
.rp-interactive-surface { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); min-width: 0; min-height: 0; place-items: center; overflow: hidden; contain: size; outline: 0; background: var(--rp-surface-elevated); }
.rp-interactive-surface:focus-visible { box-shadow: inset 0 0 0 2px var(--rp-accent); }
.rp-interactive-loading { position: absolute; z-index: 3; inset: 0; display: grid; place-items: center; color: var(--rp-text); background: color-mix(in srgb, var(--rp-surface-elevated) 88%, transparent); font-size: 13px; }
.rp-interactive-loading[hidden], .rp-interactive-error[hidden] { display: none; }
.rp-interactive-error { position: absolute; z-index: 4; inset: auto 12px 12px; max-height: 35%; overflow: auto; padding: 10px 12px; border: 1px solid #f0b4ae; border-radius: var(--rp-radius-sm); color: #8f2018; background: #fff4f2; font-size: 13px; }
.rp-interactive-session:fullscreen { position: relative; width: 100vw; height: 100dvh; min-height: 0; grid-template-rows: minmax(0, 1fr); border: 0; border-radius: 0; }
.rp-interactive-session:fullscreen .rp-interactive-surface { min-height: 0; }
.rp-interactive-session:fullscreen .rp-interactive-toolbar { position: absolute; z-index: 5; top: 0; left: 50%; max-width: calc(100vw - 24px); gap: 10px; padding: 4px 6px 4px 12px; border: 1px solid var(--rp-border); border-top: 0; border-radius: 0 0 var(--rp-radius) var(--rp-radius); box-shadow: 0 6px 18px rgba(0, 0, 0, .35); transform: translate(-50%, calc(-100% + 5px)); transition: transform .18s ease .4s; }
.rp-interactive-session:fullscreen .rp-interactive-toolbar::after { content: ""; position: absolute; left: 50%; bottom: 1px; width: 36px; height: 3px; border-radius: 2px; background: var(--rp-text-muted); opacity: .6; transform: translateX(-50%); }
.rp-interactive-session:fullscreen .rp-interactive-toolbar:hover, .rp-interactive-session:fullscreen .rp-interactive-toolbar:focus-within { transform: translate(-50%, 0); transition-delay: 0s; }
.rp-interactive-session:fullscreen .rp-interactive-toolbar:hover::after, .rp-interactive-session:fullscreen .rp-interactive-toolbar:focus-within::after { opacity: 0; }
.rp-interactive-session:fullscreen .rp-interactive-heading > .button, .rp-interactive-session:fullscreen .rp-interactive-status { display: none; }
.rp-interactive-session:fullscreen .rp-interactive-title strong { max-width: 40vw; font-size: 13px; }
.rp-interactive-session:fullscreen .rp-interactive-actions { gap: 4px; }
.rp-interactive-session:fullscreen .rp-interactive-actions .button { padding: 4px 8px; }
@media (max-width: 600px) {
  .rp-interactive-session { height: min(72vh, 760px); min-height: 300px; }
  .rp-interactive-toolbar { align-items: flex-start; padding: 7px; }
  .rp-interactive-heading, .rp-interactive-actions { gap: 5px; }
  .rp-interactive-actions { flex-wrap: wrap; justify-content: flex-end; }
  .rp-interactive-title strong { max-width: 36vw; }
  .rp-interactive-toolbar .button { padding: 6px 7px; }
}
.docker-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:12px; }
.docker-project-column { display:grid; align-content:start; gap:12px; min-width:0; }
.docker-resources-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:18px; }
.docker-resources-grid .docker-section { margin-top:0; min-width:0; }
.docker-volume-list { display:grid; gap:0; overflow:hidden; border:1px solid #e3e7ee; border-radius:10px; background:white; }
.docker-section { margin-top: 18px; }.docker-section:first-of-type { margin-top: 0; }
.docker-card { display: grid; align-content: start; gap: 10px; padding: 14px; background: white; border: 1px solid #e3e7ee; border-radius: 10px; }
.docker-card-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.docker-card h2 { margin: 0 0 4px; font-size: 17px; color: #111827; overflow-wrap: anywhere; }
.docker-container { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto minmax(150px, .7fr); gap: 8px; align-items: center; font-size: 13px; }
.docker-container-name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.docker-resource-status { min-width:0; overflow:hidden; color:#64748b; text-align:right; text-overflow:ellipsis; white-space:nowrap; }
.docker-dot { width: 8px; height: 8px; border-radius: 50%; background: #94a3b8; }.docker-dot.green { background:#22c55e; }.docker-dot.yellow { background:#f59e0b; }.docker-dot.red { background:#ef4444; }
.docker-path { color: #64748b; font: 11px/1.4 "Cascadia Code", Consolas, monospace; overflow-wrap: anywhere; }
.docker-readonly { color: #64748b; font-size: 12px; }.docker-actions { display:flex; align-items:flex-start; gap:5px; flex-wrap:nowrap; min-width:0; }.docker-actions .button { padding:5px 7px; }
.docker-container-actions { display:flex; flex:0 0 auto; gap:3px; }.docker-container-actions .docker-action-group { min-width:0; }.docker-container-actions .docker-container-icon { width:24px; height:24px; padding:2px; font-size:13px; }
.docker-action-group { display:flex; min-width:max-content; }.docker-action-group .button { border-radius:0; }.docker-action-group .button + .button { margin-left:-1px; }.docker-action-group .button:first-child { border-radius:7px 0 0 7px; }.docker-action-group .button:last-child { border-radius:0 7px 7px 0; }
.docker-action-group .button:only-child { border-radius:7px; }
.docker-action-lifecycle .button { background:#1f437f; border-color:#1f437f; color:#fff; }.docker-action-lifecycle .button + .button { border-left-color:#416399; }.docker-action-files .button, .docker-action-support .button { background:#fff; border-color:#d7dee8; color:#334155; }
.docker-actions .button:disabled, .docker-container-actions .button:disabled { background:#eef2f7; border-color:#d7dee8; color:#94a3b8; cursor:default; opacity:1; }
.docker-container-actions .docker-action-lifecycle .row-icon { background:transparent; border-color:transparent; color:#1f437f; }.docker-container-actions .docker-action-destructive .row-icon { background:transparent; border-color:transparent; color:#b91c1c; }.docker-container-actions .docker-action-support .row-icon { background:transparent; border-color:transparent; color:#475569; }.docker-container-actions .docker-container-icon:hover:not(:disabled) { background:#e9eff8; border-radius:6px; }.docker-container-actions .docker-container-icon:disabled { background:transparent; border-color:transparent; color:#94a3b8; opacity:.45; }
.docker-busy { display:flex; align-items:center; gap:8px; color:#64748b; font-size:12px; font-weight:600; }.docker-busy .spinner { width:14px; height:14px; border-width:2px; }
.docker-project-error { display:grid; gap:4px; padding:10px 12px; border:1px solid #fecaca; border-radius:8px; background:#fef2f2; color:#991b1b; font-size:12px; overflow-wrap:anywhere; }
.docker-resource-row { min-height:42px; padding:7px 12px; border-bottom:1px solid #eef1f5; }
.docker-resource-row:last-child { border-bottom:0; }
.docker-resource-row .docker-container-name { max-width:38ch; }
.docker-resource-actions { display:grid; grid-template-columns:108px 78px; gap:6px; justify-self:end; }.docker-resource-actions .button { width:100%; white-space:nowrap; }.docker-volume-storage { color:#64748b; font-size:11px; font-weight:600; }
.docker-file-editor { width: 100%; min-height: 430px; resize: vertical; border: 1px solid #28374a; border-radius: 8px; padding: 12px; color: #d6e2f0; background: #0b1220; font: 13px/1.5 "Cascadia Code", Consolas, monospace; }
.software-controller { display: flex; align-items: center; gap: 10px; min-height: 42px; margin-bottom: 12px; }
.software-controller label { display: inline; color: #64748b; font-size: 12px; }
.software-controller select { width: min(360px, 100%); padding: 7px 9px; font-size: 13px; }
.software-card { margin-bottom: 16px; }
.software-provider-summary { display: grid; grid-template-columns: minmax(220px, .8fr) minmax(360px, 1.45fr) auto; gap: 24px; align-items: start; padding: 20px 24px; }
.software-provider-identity { min-width: 0; }
.software-provider-title { display: grid; justify-items: start; gap: 8px; }
.software-provider-title h2 { margin: 0; font-size: 17px; color: #111827; }
.software-root-editor { display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; min-width: 0; }
.software-root-editor span { color: #64748b; font-size: 12px; font-weight: 600; }
.software-root-editor input { min-width: 0; }
.software-root-editor small { color: #64748b; font-size: 11px; line-height: 1.35; }
.software-package-meta > div { min-width: 0; display: grid; gap: 3px; }
.software-package-meta span { color: #64748b; font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.software-package-meta strong { color: #334155; font-size: 13px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.software-provider-actions { align-self: start; padding-top: 27px; flex-wrap: nowrap; }
.software-tabs { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.software-tabs #softwareUpgradeAll { margin-left: auto; }
.software-tabs .active { background: #1F437F; border-color: #1F437F; color: white; }
.software-search { display: flex; gap: 9px; margin-bottom: 12px; max-width: 620px; }
.software-search input { flex: 1; }
.software-bucket-bar { display: grid; grid-template-columns: minmax(140px, .45fr) minmax(260px, 1fr) auto; gap: 9px; margin-bottom: 12px; max-width: 760px; }
.software-bucket-row { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 15px 18px; border-bottom: 1px solid #eef1f5; }
.software-bucket-row:last-child { border-bottom: 0; }
.software-bucket-row h3 { margin: 0 0 4px; color: #111827; font-size: 16px; }
.software-protected { color: #64748b; font-size: 12px; font-weight: 600; white-space: nowrap; }
.software-protected-action:disabled { background: #eef2f7; border-color: #d7dee8; color: #64748b; cursor: default; opacity: 1; }
.software-package-row { display: grid; grid-template-columns: minmax(220px, 1.15fr) auto minmax(310px, 1.25fr) auto; gap: 20px; align-items: center; padding: 15px 18px; border-bottom: 1px solid #eef1f5; }
.plugin-settings-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,400px),1fr)); align-items:start; gap:12px; min-width:0; }
.plugin-settings-grid > p { grid-column:1 / -1; max-width:none; margin:0; white-space:normal; overflow-wrap:anywhere; }
.plugin-setting-card { min-width:0; }
#settingsPage > .overview-section { margin-top:0; padding-bottom:24px; }
#settingsPage .section-head { align-items:center; flex-wrap:wrap; }
#settingsPage .section-head h2 { color:var(--rp-text-strong); font-size:18px; }
.plugin-settings-grid .plugin-setting-card { grid-template-columns:minmax(0,1fr) auto; grid-template-rows:auto auto; align-content:start; align-items:start; gap:8px 12px; padding:10px 12px; border-radius:var(--rp-radius); background:var(--rp-surface-elevated); }
.plugin-settings-grid .plugin-setting-info { gap:3px; }
.plugin-settings-grid .plugin-setting-info > strong { font-size:14px; }
.plugin-settings-grid .plugin-setting-card .meta { font-size:11px; line-height:1.4; }
.plugin-settings-grid .plugin-setting-actions { grid-column:2; grid-row:1; justify-content:flex-end; align-content:start; max-width:150px; gap:5px; }
.plugin-settings-grid .plugin-setting-actions .button { padding:4px 7px; font-size:11px; }
.plugin-settings-grid .plugin-setting-state { white-space:normal; overflow:visible; grid-column:1 / -1; padding:2px 6px; font-size:10px; line-height:1.5; letter-spacing:0; text-transform:none; }
.plugin-settings-section { grid-column:1 / -1; min-width:0; border-top:1px solid var(--rp-border); }
.plugin-settings-section > form { display:grid; grid-template-columns:minmax(0,1fr); align-items:start; gap:12px; width:100%; max-width:none; padding:12px 0 0; border:0; border-radius:0; background:transparent; }
.plugin-settings-section > form > * { min-width:0; grid-column:1; margin:0; }
.plugin-settings-section > form > .plugin-setting-info { grid-column:1; grid-row:1; gap:8px; }
.plugin-settings-section .plugin-setting-info > strong { color:var(--rp-text-strong); font-size:15px; }
.plugin-settings-section .meta { color:var(--rp-text-muted); line-height:1.5; white-space:normal; max-width:none; }
.plugin-settings-section .form-grid { grid-template-columns:minmax(0,1fr); }
.plugin-settings-section input, .plugin-settings-section select { border-color:var(--rp-border); background:var(--rp-surface-elevated); color:var(--rp-text-strong); }
.plugin-settings-section input:focus, .plugin-settings-section select:focus { border-color:var(--rp-accent); }
.plugin-settings-section label { color:var(--rp-text-muted); }
.plugin-settings-section > form > .button { justify-self:end; }
.plugin-settings-section .plugin-settings-actions { display:flex; align-items:center; justify-content:flex-end; gap:6px; }
.plugin-settings-section .plugin-settings-actions .button { padding:5px 7px; font-size:11px; white-space:nowrap; }
.plugin-settings-section .plugin-settings-actions button[type="submit"] { order:1; }
.plugin-settings-footer { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:8px; }
.plugin-settings-footer > details { grid-column:1 / -1; grid-row:1; }
.plugin-settings-footer > details > summary { max-width:calc(100% - 184px); min-height:30px; }
.plugin-settings-footer > .plugin-settings-actions { grid-column:2; grid-row:1; }
.plugin-setting-info { display:grid; gap:5px; min-width:0; }
.plugin-setting-info > strong { color:#111827; font-size:16px; overflow-wrap:anywhere; }
.plugin-setting-card .meta { max-width:none; white-space:normal; overflow-wrap:anywhere; }
.plugin-setting-state { justify-self:start; background:#eef2f7; color:#475569; }
.plugin-setting-state.is-enabled { background:#dcfce7; color:#166534; }
.plugin-setting-state.is-available { background:#dbeafe; color:#1e40af; }
.plugin-setting-state.is-incompatible, .plugin-setting-state.is-failed { background:#fee2e2; color:#991b1b; }
.plugin-setting-actions { display:flex; flex-wrap:wrap; gap:7px; }
.software-package-row:last-child { border-bottom: 0; }
.software-package-name { min-width: 0; }
.software-package-name h3 { margin: 0 0 4px; color: #111827; font-size: 16px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.software-package-meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(95px, 1fr)); gap: 16px; min-width: 0; }
.software-loading { display: grid; justify-items: center; align-content: center; gap: 9px; min-height: 230px; padding: 34px 20px; border: 1px dashed #94a3b8; border-radius: 12px; color: #64748b; text-align: center; }
.software-loading strong { color: #334155; font-size: 15px; }
.software-loading > span:last-child { font-size: 13px; }
.terminal-dialog { width:min(1000px,calc(100vw - 32px)); }
.docker-attach-pane { height:min(65vh,600px); min-height:360px; overflow:hidden; border:1px solid #28374a; border-radius:10px; padding:8px; background:#0b1220; }
.docker-attach-pane .xterm { height:100%; }
.docker-attach-pane .xterm-viewport { overflow-y:auto !important; }
.button.danger { color: #b91c1c; background: #fff; border-color: #fecaca; }
.button.danger:hover:not(:disabled) { background: #fef2f2; border-color: #fca5a5; }
.spinner { width: 28px; height: 28px; border: 3px solid #cbd5e1; border-top-color: #2563eb; border-radius: 50%; animation: software-spin .8s linear infinite; }
@keyframes software-spin { to { transform: rotate(360deg); } }
code { font-family: "Cascadia Code", Consolas, monospace; }
.table-wrap { background: white; border: 1px solid #e3e7ee; border-radius: 12px; overflow: auto; }
table { width: 100%; border-collapse: collapse; font-size: 13px; }
th, td { padding: 12px 14px; border-bottom: 1px solid #eef1f5; text-align: left; white-space: nowrap; }
th { color: #64748b; background: #fafbfc; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; }
tr:last-child td { border-bottom: 0; }
.dialog { width: min(680px, calc(100vw - 32px)); border: 0; border-radius: 14px; padding: 22px; box-shadow: 0 24px 80px rgba(15,23,42,.25); }
.dialog::backdrop { background: rgba(15,23,42,.48); backdrop-filter: blur(2px); }
.dialog.small { width: min(460px, calc(100vw - 32px)); }
.dialog-head { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px; }
.dialog h2 { margin: 0 0 4px; font-size: 19px; }
.dialog p { margin: 0; color: #64748b; font-size: 13px; }
.icon-btn { border: 0; background: transparent; font-size: 26px; line-height: 1; color: #64748b; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-grid > .span-2, .provider-fields > .span-2 { grid-column: 1 / -1; }
.provider-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.provider-fields > label, .provider-fields > p { display: flex; flex-direction: column; gap: 6px; }
.retention-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.provider-fields textarea { min-height: 58px; resize: vertical; }
.muted { color: var(--muted); font-size: .9rem; }
.environment-editor { display: grid; gap: 9px; min-width: 0; }
.environment-editor.span-2 { grid-column: 1 / -1; }
.environment-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.environment-head strong, .environment-head span { display: block; }
.environment-head strong { color: #334155; font-size: 12px; }
.environment-head span, .environment-empty { margin: 2px 0 0; color: #64748b; font-size: 12px; }
.environment-rows { display: grid; gap: 8px; }
.environment-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) auto; gap: 8px; align-items: center; }
.environment-row input { min-width: 0; }
.environment-remove { white-space: nowrap; }
label { display: grid; gap: 6px; color: #475569; font-size: 12px; font-weight: 600; }
label.span-2 { grid-column: 1 / -1; }
label.check { display: flex; align-items: center; gap: 8px; align-self: end; padding-bottom: 9px; }
label.check.compact-check { align-self: center; padding: 0 4px; white-space: nowrap; }
input, select, textarea { width: 100%; border: 1px solid #d5dce7; border-radius: 8px; padding: 9px 10px; color: #111827; background: white; outline: none; }
input:focus, select:focus, textarea:focus { border-color: #94a3b8; box-shadow: 0 0 0 3px rgba(148,163,184,.16); }
label.check input { width: auto; }
.dialog-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 22px; }
.warning { margin-top: 15px; background: #fff7ed; color: #9a3412; border: 1px solid #fed7aa; padding: 11px 13px; border-radius: 8px; font-size: 12px; }
.form-error { margin-top: 12px; background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; padding: 9px 11px; border-radius: 8px; font-size: 12px; }
.log-dialog { width: min(900px, calc(100vw - 32px)); }
.run-history-dialog { width: min(1080px, calc(100vw - 32px)); }
.run-history-layout { display: grid; grid-template-columns: minmax(300px, .9fr) minmax(360px, 1.1fr); gap: 14px; min-width: 0; }
.run-history-layout > .row-list { min-width: 0; max-height: min(58vh, 560px); overflow: auto; }
.run-history-log { min-width: 0; }
.run-history-log pre { min-height: 360px; max-height: min(58vh, 560px); margin: 0; }
.run-history-row { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 18px; cursor: pointer; }
.run-history-row:hover, .run-history-row:focus-visible { background: #f8fafc; outline: none; }
.run-history-row .row-head { display: contents; }
.run-history-row .row-head > div { grid-column: 1; grid-row: 1; min-width: 0; }
.run-history-row .status { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
.run-history-row > .meta { grid-column: 1; }
.run-history-row .meta { margin-top: 4px; }
pre { background: #0b1220; color: #d6e2f0; border-radius: 10px; padding: 16px; overflow: auto; min-height: 360px; max-height: 65vh; font: 12px/1.5 "Cascadia Code", Consolas, monospace; white-space: pre-wrap; }
.toast { position:fixed; z-index:50; right:24px; bottom:24px; display:flex; align-items:flex-start; gap:16px; width:min(420px,calc(100vw - 32px)); padding:13px 14px; border:1px solid #334155; border-radius:10px; background:#172235; color:#f8fafc; box-shadow:0 12px 30px rgba(15,23,42,.25); font-size:13px; line-height:1.4; }.toast > div { display:grid; gap:3px; min-width:0; }.toast strong { font-size:12px; letter-spacing:.04em; text-transform:uppercase; }.toast span { overflow-wrap:anywhere; }.toast-error { border-color:#ef4444; background:#450f16; color:#fee2e2; }.toast-error strong { color:#fca5a5; }.toast-close { flex:0 0 auto; margin:-4px -5px -4px 0; border:0; border-radius:5px; padding:2px 6px; background:transparent; color:inherit; font-size:19px; line-height:1; }.toast-close:hover { background:rgba(255,255,255,.14); }

:root[data-theme="dark"] {
  color: #e5e7eb; background: #111827;
  --rp-surface: #111827;
  --rp-surface-elevated: #172235;
  --rp-text: #e5e7eb;
  --rp-text-strong: #f8fafc;
  --rp-text-muted: #aebdd0;
  --rp-border: #29374c;
  --rp-accent: #3b6eae;
  --rp-selection: rgba(147, 197, 253, .3);
  --rp-terminal-black: #0b1426;
  --rp-terminal-red: #f87171;
  --rp-terminal-green: #4ade80;
  --rp-terminal-yellow: #facc15;
  --rp-terminal-blue: #60a5fa;
  --rp-terminal-magenta: #e879f9;
  --rp-terminal-cyan: #22d3ee;
  --rp-terminal-white: #dbe7f5;
  --rp-terminal-bright-black: #7f91a9;
  --rp-terminal-bright-red: #fca5a5;
  --rp-terminal-bright-green: #86efac;
  --rp-terminal-bright-yellow: #fde047;
  --rp-terminal-bright-blue: #93c5fd;
  --rp-terminal-bright-magenta: #f0abfc;
  --rp-terminal-bright-cyan: #67e8f9;
  --rp-terminal-bright-white: #f8fafc;
}
:root[data-theme="dark"] body, :root[data-theme="dark"] main { background: #111827; }
:root[data-theme="dark"] .sidebar { background: #0b1426; }
:root[data-theme="dark"] .nav:hover, :root[data-theme="dark"] .nav.active { background: #1F437F; }
:root[data-theme="dark"] h1,
:root[data-theme="dark"] .metric strong,
:root[data-theme="dark"] .section-head h2,
:root[data-theme="dark"] .environment-head strong,
:root[data-theme="dark"] .row h3,
:root[data-theme="dark"] .run-history-row strong,
:root[data-theme="dark"] .disk-card h3,
:root[data-theme="dark"] .disk-summary strong,
:root[data-theme="dark"] input,
:root[data-theme="dark"] select { color: #f8fafc; }
:root[data-theme="dark"] header p,
:root[data-theme="dark"] .metric span,
:root[data-theme="dark"] .section-head .meta,
:root[data-theme="dark"] .meta,
:root[data-theme="dark"] .kv span:first-child,
:root[data-theme="dark"] .empty p,
:root[data-theme="dark"] .dialog p,
:root[data-theme="dark"] .environment-head span,
:root[data-theme="dark"] .environment-empty,
:root[data-theme="dark"] label { color: #aebdd0; }
:root[data-theme="dark"] .overview-metrics,
:root[data-theme="dark"] .metric,
:root[data-theme="dark"] .row-list,
:root[data-theme="dark"] .row,
:root[data-theme="dark"] .disk-card,
:root[data-theme="dark"] .table-wrap,
:root[data-theme="dark"] th,
:root[data-theme="dark"] th,
:root[data-theme="dark"] td { border-color: #29374c; }
:root[data-theme="dark"] .row-list,
:root[data-theme="dark"] .overview-metrics,
:root[data-theme="dark"] .table-wrap,
:root[data-theme="dark"] .dialog,
:root[data-theme="dark"] input,
:root[data-theme="dark"] select { background: #172235; }
:root[data-theme="dark"] .task-choice { background: #1d2a3e; color: #f8fafc; }
:root[data-theme="dark"] .task-choice .meta { color: #aebdd0; }
:root[data-theme="dark"] .task-choice:hover { background: #29374c; }
:root[data-theme="dark"] .storage-entry.openable:hover { background: #1d2a3e; }
:root[data-theme="dark"] .entry-icon.loading { border-color:#3a4b64; border-top-color:#60a5fa; }
:root[data-theme="dark"] .storage-list-head { background: #1d2a3e; border-color: #29374c; color: #aebdd0; }
:root[data-theme="dark"] .storage-cell { color: #cbd5e1; }
:root[data-theme="dark"] .breadcrumb-link, :root[data-theme="dark"] .row-icon { color: #9ec5ff; }
:root[data-theme="dark"] .storage-provider-label { color: #f8fafc; }
:root[data-theme="dark"] .breadcrumb-link:hover, :root[data-theme="dark"] .row-icon:hover:not(:disabled) { background: #1d2a3e; }
:root[data-theme="dark"] .editor-shell { border-color: #3a4b64; }
:root[data-theme="dark"] .dialog h2 { color: #f8fafc; }
:root[data-theme="dark"] .run-history-row .row-head > div > strong { color: #f8fafc; }
:root[data-theme="dark"] .run-history-row:hover, :root[data-theme="dark"] .run-history-row:focus-visible { background: #29374c; }
:root[data-theme="dark"] th { background: #1d2a3e; }
:root[data-theme="dark"] .empty { background: rgba(23,34,53,.7); border-color: #3a4b64; }
:root[data-theme="dark"] .button.secondary { background: #172235; border-color: #3a4b64; color: #e5e7eb; }
:root[data-theme="dark"] .button.danger { background: #261c25; border-color: #733342; color: #fca5a5; }
:root[data-theme="dark"] .notice { background: #172a48; border-color: #28538e; color: #bfdbfe; }
:root[data-theme="dark"] .notice span { color: #9ec5ff; }
:root[data-theme="dark"] .software-tabs .active { background: #28538e; border-color: #28538e; }
:root[data-theme="dark"] .software-provider-title h2, :root[data-theme="dark"] .software-package-name h3 { color: #f8fafc; }
:root[data-theme="dark"] .software-package-meta strong { color: #dbe7f5; }
:root[data-theme="dark"] .software-bucket-row h3 { color: #f8fafc; }
:root[data-theme="dark"] .software-protected-action:disabled { background: #29374c; border-color: #3a4b64; color: #aebdd0; }
:root[data-theme="dark"] .software-loading { border-color: #3a4b64; color: #aebdd0; }
:root[data-theme="dark"] .software-loading strong { color: #f8fafc; }
:root[data-theme="dark"] .docker-card, :root[data-theme="dark"] .docker-volume-list { background:#172235; border-color:#29374c; }
@media (max-width: 760px) {
  .run-history-layout { grid-template-columns: 1fr; }
  .run-history-log pre { min-height: 240px; }
}
:root[data-theme="dark"] .docker-card h2, :root[data-theme="dark"] .docker-container-name { color:#f8fafc; }
:root[data-theme="dark"] .plugin-setting-info > strong { color:#f8fafc; }
:root[data-theme="dark"] .plugin-setting-state { background:#29374c; color:#cbd5e1; }
:root[data-theme="dark"] .plugin-setting-state.is-enabled { background:#14532d; color:#bbf7d0; }
:root[data-theme="dark"] .plugin-setting-state.is-available { background:#1e3a8a; color:#bfdbfe; }
:root[data-theme="dark"] .plugin-setting-state.is-incompatible, :root[data-theme="dark"] .plugin-setting-state.is-failed { background:#7f1d1d; color:#fecaca; }
:root[data-theme="dark"] .docker-resource-status, :root[data-theme="dark"] .docker-path, :root[data-theme="dark"] .docker-readonly, :root[data-theme="dark"] .docker-volume-storage { color:#aebdd0; }
:root[data-theme="dark"] .docker-busy { color:#aebdd0; }
:root[data-theme="dark"] .docker-project-error { border-color:#7f1d1d; background:#3f171b; color:#fecaca; }
:root[data-theme="dark"] .docker-action-lifecycle .button { background:#28538e; border-color:#3b6eae; color:#fff; }
:root[data-theme="dark"] .docker-action-lifecycle .button + .button { border-left-color:#527ab4; }
:root[data-theme="dark"] .docker-action-files .button, :root[data-theme="dark"] .docker-action-support .button { background:#172235; border-color:#3a4b64; color:#e5e7eb; }
:root[data-theme="dark"] .docker-actions .button:disabled, :root[data-theme="dark"] .docker-container-actions .button:disabled { background:#29374c; border-color:#3a4b64; color:#7f91a9; }
:root[data-theme="dark"] .docker-container-actions .docker-action-lifecycle .row-icon { background:transparent; border-color:transparent; color:#9ec5ff; }:root[data-theme="dark"] .docker-container-actions .docker-action-destructive .row-icon { background:transparent; border-color:transparent; color:#fca5a5; }:root[data-theme="dark"] .docker-container-actions .docker-action-support .row-icon { background:transparent; border-color:transparent; color:#cbd5e1; }:root[data-theme="dark"] .docker-container-actions .docker-container-icon:hover:not(:disabled) { background:#29374c; }:root[data-theme="dark"] .docker-container-actions .docker-container-icon:disabled { background:transparent; border-color:transparent; color:#7f91a9; }
:root[data-theme="dark"] .spinner { border-color: #3a4b64; border-top-color: #60a5fa; }
:root[data-theme="dark"] .warning { background: #342711; border-color: #8c6716; color: #fcd34d; }
:root[data-theme="dark"] .form-error { background: #351d25; border-color: #7f3345; color: #fecaca; }
@media (max-width: 800px) {
  .shell, .shell.sidebar-collapsed { grid-template-columns: 1fr; }
  .sidebar { position: static; height: auto; max-height: none; overflow-y: visible; padding: 14px; }
  .sidebar-head { margin: 0 0 12px; }
  .sidebar-toggle { display: none; }
  .shell.sidebar-collapsed .sidebar { padding: 14px; }
  .shell.sidebar-collapsed .sidebar-head { margin: 0 0 12px; }
  .shell.sidebar-collapsed .brand { justify-content: flex-start; }
  .shell.sidebar-collapsed .brand-text, .shell.sidebar-collapsed .nav-label { display: inline; }
  nav { grid-template-columns: repeat(5, 1fr); }
  .nav { justify-content: center; text-align: center; padding: 8px 5px; font-size: 12px; }
  .nav-icon { width: 18px; height: 18px; }
  .sidebar-bottom { display:grid; margin-top:10px; }
  .sidebar-bottom .side-foot, .sidebar-bottom .connection-warning { display:none; }
  main { padding: 11px 8px 18px; }
  header { align-items: flex-start; }
  .header-actions { flex-direction: column; }
  .overview-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .metric, .metric:nth-child(n+4) { grid-column: span 1; }
  .metric:nth-child(odd) { border-right: 1px solid #e3e7ee; }
  .metric:nth-child(even), .metric:last-child { border-right: 0; }
  .metric:nth-child(-n+4) { border-bottom: 1px solid #e3e7ee; }
  .row { grid-template-columns: 1fr; gap: 13px; }
  .row-details { grid-template-columns: 1fr; }
  .row-list.disk-grid { grid-template-columns: 1fr; }
  .disk-card:nth-child(odd) { border-right: 0; }
  .disk-card:nth-last-child(2) { border-bottom: 1px solid #eef1f5; }
  .row-actions { justify-content: flex-start; }
  .software-controller { align-items: stretch; flex-direction: column; gap: 5px; }
  .software-controller select { width: 100%; }
  .software-provider-summary { grid-template-columns: 1fr; gap: 16px; padding: 18px; }
  .software-provider-actions { justify-content: flex-start; padding-top: 0; }
  .software-bucket-bar { grid-template-columns: 1fr; max-width: none; }
  .software-bucket-row { align-items: flex-start; flex-direction: column; }
  .software-package-row { grid-template-columns: 1fr auto; row-gap: 13px; }
  .software-package-meta { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .software-package-row .row-actions { grid-column: 1 / -1; }
  .docker-grid { grid-template-columns:1fr; }
  .docker-container { grid-template-columns:10px minmax(0,1fr) auto; }
  .docker-container .docker-resource-status { grid-column:2 / -1; text-align:left; }
  .storage-list-head { display: none; }
  .storage-row { grid-template-columns: minmax(0, 1fr) auto; row-gap: 7px; }
  .storage-row .storage-name { grid-column: 1 / -1; }
  .storage-row .storage-cell { font-size: 12px; }
  .storage-row .row-actions { grid-column: 1 / -1; }
  .form-grid { grid-template-columns: 1fr; }
  .provider-fields, .retention-fields { grid-template-columns: 1fr; }
  .form-grid > .span-2, .provider-fields > .span-2 { grid-column: auto; }
  .environment-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; }
  .environment-editor.span-2 { grid-column: auto; }
  label.span-2 { grid-column: auto; }
}
