.shell { min-height: 100vh; display: grid; grid-template-columns: 248px minmax(0, 1fr); background: var(--appliance-background); color: var(--appliance-text); } .sidebar { position: sticky; top: 0; height: 100vh; padding: var(--space-xl) 18px; border-right: 1px solid color-mix(in oklch, var(--appliance-sidebar-text) 14%, transparent); background: var(--appliance-sidebar); color: var(--appliance-sidebar-text); } .brand { display: flex; align-items: center; gap: var(--space-md); margin-bottom: var(--space-xl); color: var(--appliance-sidebar-text); font-weight: 650; letter-spacing: -0.02em; } .logo { display: grid; place-items: center; width: 38px; height: 38px; border-radius: var(--radius-lg); background: color-mix( in oklch, var(--appliance-sidebar-text) 94%, var(--operator-purple) 6% ); color: var(--operator-purple); } .logoSvg { width: 25px; height: auto; } .brandText { display: grid; gap: 2px; } .brandText small { color: color-mix( in oklch, var(--appliance-sidebar-text) 62%, var(--appliance-sidebar) ); font-size: 0.72rem; font-weight: 520; letter-spacing: 0; } .nav { display: grid; gap: var(--space-sm); } .nav button, .setupLink, .toolbar button, .logControls button { min-height: 40px; border: 1px solid color-mix(in oklch, var(--appliance-sidebar-text) 14%, transparent); border-radius: var(--radius-md); background: transparent; color: color-mix( in oklch, var(--appliance-sidebar-text) 82%, var(--appliance-sidebar) ); padding: 9px 12px; font-weight: 560; text-align: left; transition: border-color 150ms var(--ease-out-quart), background-color 150ms var(--ease-out-quart), color 150ms var(--ease-out-quart); } .nav button, .setupLink { display: flex; align-items: center; gap: 10px; } .navIcon { width: 17px; height: 17px; color: color-mix( in oklch, var(--appliance-sidebar-text) 58%, var(--operator-purple) ); flex: 0 0 auto; } .activeTab .navIcon, .setupLink[aria-current="page"] .navIcon, .nav button:hover .navIcon, .setupLink:hover .navIcon { color: var(--appliance-sidebar-text); } .nav button:hover, .setupLink:hover, .toolbar button:hover, .logControls button:hover:not(:disabled) { border-color: color-mix( in oklch, var(--operator-purple) 55%, var(--appliance-border) ); background: color-mix(in oklch, var(--operator-purple) 12%, transparent); color: var(--appliance-sidebar-text); } .activeTab, .setupLink[aria-current="page"] { border-color: color-mix( in oklch, var(--operator-purple) 62%, var(--appliance-sidebar-text) ) !important; background: color-mix( in oklch, var(--operator-purple) 18%, var(--appliance-sidebar) ) !important; color: var(--appliance-sidebar-text) !important; } .setupLink { text-decoration: none; } .sidebar > .setupLink { margin-top: var(--space-xl); } .workspace { min-width: 0; padding: 28px; } .topbar { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: var(--space-lg); margin: var(--space-xl) 28px 0; padding: 0 0 var(--space-lg); border-bottom: 1px solid var(--appliance-border); } .topbar .nav { display: flex; flex-wrap: wrap; } .topbar .nav a { min-height: 36px; border: 1px solid var(--appliance-border); border-radius: 999px; color: var(--operator-purple-strong); padding: 8px 13px; text-decoration: none; font-weight: 600; } .hero { grid-column: 1 / -1; margin: 14px 28px 0; padding: var(--space-xl) 0; border-bottom: 1px solid var(--appliance-border); } .hero h1 { margin: 4px 0 var(--space-sm); color: var(--appliance-text); font-size: 1.5rem; line-height: 1.25; letter-spacing: -0.01em; } .hero p { max-width: 72ch; margin: 0; color: var(--appliance-text-muted); font-size: 0.95rem; } .commandBar { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-lg); margin-bottom: var(--space-xl); padding: 0 0 var(--space-xl); border-bottom: 1px solid var(--appliance-border); } .eyebrow { color: var(--operator-purple-strong); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; } .commandBar h1 { max-width: 78ch; margin: 5px 0 0; color: var(--appliance-text); font-size: 1.45rem; line-height: 1.28; letter-spacing: -0.012em; } .statusPill, .badge { display: inline-flex; align-items: center; justify-content: center; gap: 6px; white-space: nowrap; border: 1px solid var(--appliance-border); border-radius: 999px; padding: 5px 10px; background: var(--appliance-panel); color: var(--appliance-text-muted); font-size: 0.75rem; font-weight: 650; } .statusPill { padding: 9px 13px; text-transform: uppercase; letter-spacing: 0.04em; } .ready { border-color: color-mix( in oklch, var(--success) 38%, var(--appliance-border) ); background: var(--success-soft); color: color-mix(in oklch, var(--success) 64%, var(--appliance-text)); } .installing { border-color: color-mix( in oklch, var(--system-cyan) 42%, var(--appliance-border) ); background: var(--system-cyan-soft); color: color-mix(in oklch, var(--system-cyan) 46%, var(--appliance-text)); } .loading { border-color: var(--appliance-border); background: var(--appliance-panel); color: var(--appliance-text-muted); } .warning { border-color: color-mix( in oklch, var(--attention-amber) 48%, var(--appliance-border) ); background: var(--attention-amber-soft); color: color-mix(in oklch, var(--attention-amber) 58%, var(--appliance-text)); } .failed { border-color: color-mix(in oklch, var(--error) 42%, var(--appliance-border)); background: var(--error-soft); color: color-mix(in oklch, var(--error) 68%, var(--appliance-text)); } .shell > .grid { grid-column: 1 / -1; margin: 14px 28px 28px; } .grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--space-2xl); row-gap: var(--space-xl); } .panel, .card { grid-column: span 6; min-width: 0; padding: var(--space-lg) 0 0; border-top: 1px solid var(--appliance-border); } .wide, .full { grid-column: span 12; } .panel h2, .card h2 { margin: 0 0 var(--space-md); color: var(--appliance-text); font-size: 1.05rem; line-height: 1.3; letter-spacing: -0.01em; } .muted { color: var(--appliance-text-muted); } .runSummary { display: grid; gap: var(--space-md); } .runHeader { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-md); } .runHeader strong { display: block; color: var(--appliance-text); font-size: 1rem; } .runMessage { max-width: 80ch; margin: 4px 0 0; color: var(--appliance-text-muted); } .runMeta, .runList { display: flex; flex-wrap: wrap; gap: var(--space-sm); margin: 0; padding: 0; list-style: none; } .runMeta span, .runList li { border: 1px solid var(--appliance-border); border-radius: 999px; background: var(--appliance-panel); color: var(--appliance-text-muted); padding: 5px 9px; font-size: 0.78rem; font-weight: 560; } .kv { display: grid; gap: 0; margin: 0; } .kv div { display: grid; grid-template-columns: 168px minmax(0, 1fr); gap: var(--space-md); padding: 10px 0; border-bottom: 1px solid var(--appliance-border); } .kv div:last-child { border-bottom: 0; } .kv dt { color: var(--appliance-text-muted); font-weight: 620; } .kv dd { margin: 0; color: var(--appliance-text); font-weight: 600; overflow-wrap: anywhere; } .tiers { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: var(--space-sm); } .tier { display: grid; gap: 7px; padding: 0 0 var(--space-sm); border-bottom: 1px solid var(--appliance-border); } .tier strong { color: var(--appliance-text); letter-spacing: -0.01em; } .tier small { color: var(--appliance-text-muted); } .blocker, .operation, .event { margin-top: var(--space-sm); padding: var(--space-md) 0; background: transparent; border-top: 1px solid color-mix(in oklch, var(--attention-amber) 42%, var(--appliance-border)); } .backgroundBlocker { border-color: color-mix( in oklch, var(--system-cyan) 42%, var(--appliance-border) ); } .blocker p, .operation p, .event p { margin: 5px 0 0; color: var(--appliance-text); } .blocker small, .event span { color: var(--appliance-text-muted); } .eventList { display: grid; gap: var(--space-sm); } .toolbar, .logControls { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-sm); margin-bottom: var(--space-md); } .toolbar select, .toolbar input, .logControls select, .logControls input, .field input, .field select, .field textarea { min-height: 40px; border: 1px solid var(--appliance-border-strong); border-radius: var(--radius-md); background: var(--appliance-card); color: var(--appliance-text); padding: 8px 11px; font-weight: 500; } .toolbar input, .logControls input { min-width: min(460px, 100%); flex: 1; } .toolbar input::placeholder, .logControls input::placeholder, .field input::placeholder { color: var(--appliance-text-soft); } .toolbar select:disabled, .logControls select:disabled { opacity: 0.58; } .toolbar button, .logControls button { text-align: center; border-color: var(--appliance-border); color: var(--appliance-text); background: var(--appliance-panel); } /* Custom dropdown — replaces native