:root{color-scheme:light;--bg: #fafafa;--surface: #ffffff;--surface-2: #f6f6f6;--surface-hover: #f2f2f2;--ink: #0a0a0a;--ink-secondary: #3a3a3a;--ink-muted: #6b6b6b;--border: #ededed;--border-strong: #e6e6e6;--border-input: #d4d4d4;--accent: #0a0a0a;--accent-hover: #262626;--link: #0a0a0a;--focus-ring: rgba(10, 10, 10, .14);--ok: #3f7d58;--ok-bg: #eef4f0;--ok-border: #d8e6de;--danger: #b4453a;--danger-bg: #f8edec;--danger-border: #ecd6d3;--warn: #977219;--warn-bg: #f7f1e4;--warn-border: #ece1c9;--info: #3a5673;--info-bg: #eef1f5;--info-border: #dbe1ea;--neutral: #6b6b6b;--neutral-bg: #f0f0f0;--neutral-border: #e2e2e2;--fs-12: .75rem;--fs-13: .8125rem;--fs-14: .875rem;--fs-16: 1rem;--fs-20: 1.25rem;--fs-24: 1.5rem;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-6: 24px;--sp-8: 32px;--radius: 7px;--radius-sm: 5px;--shadow: 0 1px 2px rgba(10, 10, 10, .04), 0 1px 3px rgba(10, 10, 10, .06);--shadow-lg: 0 8px 30px rgba(10, 10, 10, .12);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;font-family:var(--font-sans);font-size:16px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:var(--fs-14);line-height:1.5}h1,h2,h3,h4{color:var(--ink);font-weight:600;letter-spacing:-.01em;margin:0 0 var(--sp-3)}h1{font-size:var(--fs-24);font-weight:550}h2{font-size:var(--fs-20)}h3{font-size:var(--fs-16)}p{margin:0 0 var(--sp-3)}a{color:var(--link);text-decoration:none;border-bottom:1px solid var(--border-strong);transition:border-color .15s ease}a:hover{border-bottom-color:var(--ink)}code{font-family:var(--font-mono);font-size:.9em;background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:.05em .35em}.mono,.tabular{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.app-shell{max-width:1400px;margin:0 auto;padding:var(--sp-6) var(--sp-8) var(--sp-8)}.app-header{display:flex;align-items:center;gap:var(--sp-6);padding-bottom:var(--sp-4);margin-bottom:var(--sp-6);border-bottom:1px solid var(--border-strong);flex-wrap:wrap}.app-header h1{font-size:var(--fs-16);font-weight:450;letter-spacing:.01em;color:var(--ink);margin:0;white-space:nowrap}.app-nav{display:flex;align-items:center;gap:var(--sp-1);flex:1}.app-nav a{font-size:var(--fs-13);color:var(--ink-muted);text-decoration:none;border-bottom:none;padding:var(--sp-1) var(--sp-3);border-radius:var(--radius-sm);transition:color .15s ease,background .15s ease}.app-nav a:hover{color:var(--ink);background:var(--surface-2)}.app-nav a.active{color:var(--ink);background:var(--surface-2);font-weight:550}.auth-token{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-13);color:var(--ink-muted)}.auth-token>span{color:var(--ink-secondary)}.auth-token form{display:flex;gap:var(--sp-2);margin-top:var(--sp-2)}.auth-token input{min-width:220px}.auth-token summary{cursor:pointer;color:var(--ink-muted)}.auth-screen{min-height:70vh;display:flex;align-items:center;justify-content:center;padding:var(--sp-8)}.auth-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--sp-8);text-align:center}.auth-card .brand{font-size:var(--fs-16);font-weight:450;letter-spacing:.01em;color:var(--ink);margin-bottom:var(--sp-2)}.auth-card .subtitle{color:var(--ink-muted);font-size:var(--fs-13);margin-bottom:var(--sp-6)}.auth-card .btn{width:100%;justify-content:center}.panel,.card{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--sp-6);margin-bottom:var(--sp-4)}.panel h2:first-child,.panel h3:first-child,.card h2:first-child,.card h3:first-child{margin-top:0}.subpanel{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--sp-4);margin-bottom:var(--sp-3);box-shadow:none}.mock-banner{background:var(--warn-bg);border:1px solid var(--warn-border);color:var(--warn);padding:var(--sp-2) var(--sp-4);border-radius:var(--radius-sm);font-size:var(--fs-13);margin-bottom:var(--sp-4)}button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);font-family:var(--font-sans);font-size:var(--fs-13);font-weight:500;line-height:1;color:var(--ink);background:var(--surface);border:1px solid var(--border-input);border-radius:var(--radius-sm);padding:.5rem .85rem;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}button:hover,.btn:hover{background:var(--surface-2);border-color:var(--border-input)}button:focus-visible,.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring);border-color:var(--ink)}button.primary,.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover,.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-secondary{background:var(--surface);border-color:var(--border-input);color:var(--ink)}button.danger,.btn-danger{background:var(--surface);border-color:var(--danger-border);color:var(--danger)}button.danger:hover,.btn-danger:hover{background:var(--danger-bg);border-color:var(--danger)}button:disabled,.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}input[type=text],input[type=number],input[type=password],input[type=search],select,textarea{font-family:var(--font-sans);font-size:var(--fs-14);color:var(--ink);background:var(--surface);border:1px solid var(--border-input);border-radius:var(--radius-sm);padding:.45rem .6rem;transition:border-color .15s ease,box-shadow .15s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px var(--focus-ring)}input::placeholder,textarea::placeholder{color:#a3a3a3}textarea{line-height:1.55;resize:vertical}textarea[aria-label$=YAML],textarea.code{font-family:var(--font-mono);font-size:var(--fs-13);line-height:1.6;-moz-tab-size:2;tab-size:2}input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px}.field{display:flex;flex-direction:column;gap:var(--sp-1);margin-bottom:var(--sp-3)}.field label{font-size:var(--fs-12);font-weight:500;color:var(--ink-muted)}.field-row{display:flex;gap:var(--sp-4);flex-wrap:wrap;align-items:flex-end}label{font-size:var(--fs-13);color:var(--ink-secondary)}label>input:not([type=checkbox]):not([type=radio]),label>select,label>textarea{display:block;margin-top:var(--sp-1);width:100%}.row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:1px solid var(--border)}.row:last-child{border-bottom:none}.component-name{min-width:220px;font-weight:550;color:var(--ink);display:inline-flex;align-items:center}table.matrix,table.table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--fs-13)}table.matrix th,table.table th{text-align:left;font-weight:550;font-size:var(--fs-12);letter-spacing:.02em;color:var(--ink-muted);background:var(--surface-2);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-strong);position:sticky;top:0;z-index:1;white-space:nowrap}table.matrix td,table.table td{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);white-space:nowrap;color:var(--ink-secondary)}table.matrix tr:last-child td,table.table tr:last-child td{border-bottom:none}table.matrix td.cell-empty{color:#bcbcbc;text-align:center}table.matrix td.cell-tag{cursor:pointer;font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;color:var(--ink)}table.matrix td.cell-tag:hover{background:var(--surface-hover)}table.matrix td:first-child,table.matrix td:nth-child(2){color:var(--ink);font-weight:500}table.cluster-table td{vertical-align:top}table.cluster-table td:nth-child(2){font-weight:inherit}table.cluster-table th:last-child,table.cluster-table td:last-child{text-align:right;white-space:nowrap}.status-dot{display:inline-block;width:7px;height:7px;border-radius:999px;margin-right:var(--sp-2);flex:none}.status-healthy{background:var(--ok)}.status-progressing{background:var(--warn)}.status-degraded{background:var(--danger)}.status-unknown{background:#c4c4c4}.chip{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-12);font-weight:550;line-height:1;padding:.3rem .55rem;border-radius:999px;border:1px solid var(--neutral-border);background:var(--neutral-bg);color:var(--ink-secondary);white-space:nowrap}.chip--ok,.status-badge.status-applied,.status-badge.status-approved{background:var(--ok-bg);border-color:var(--ok-border);color:var(--ok)}.status-badge.status-partial,.status-badge.status-drifted{background:var(--warn-bg);border-color:var(--warn-border);color:var(--warn)}.chip--danger,.status-badge.status-failed,.status-badge.status-rejected{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger)}.chip--warn{background:var(--warn-bg);border-color:var(--warn-border);color:var(--warn)}.chip--info,.status-badge.status-pending{background:var(--info-bg);border-color:var(--info-border);color:var(--info)}.chip--muted{background:var(--neutral-bg);border-color:var(--neutral-border);color:var(--ink-muted)}.status-badge{display:inline-flex;align-items:center;font-size:var(--fs-12);font-weight:550;text-transform:capitalize;padding:.3rem .55rem;border-radius:999px;border:1px solid var(--neutral-border);background:var(--neutral-bg);color:var(--ink-secondary);white-space:nowrap}.progress-header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-3)}.progress-header h3{margin:0}.progress-list{list-style:none;margin:0;padding:0}.progress-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:1px solid var(--border);flex-wrap:wrap}.progress-row:last-child{border-bottom:none}.progress-component{min-width:200px;font-weight:550;color:var(--ink)}.progress-replicas{color:var(--ink-muted);font-size:var(--fs-13)}.progress-reason{flex:1 1 100%;margin-top:var(--sp-1)}.progress-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--border)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a0a66;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:50;padding:var(--sp-4)}.modal{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:var(--sp-8);max-width:640px;width:100%;max-height:82vh;overflow:auto}.modal h2{margin-top:0}.tabs{display:inline-flex;gap:var(--sp-1);padding:var(--sp-1);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:var(--sp-4)}.tabs button{background:transparent;border:1px solid transparent;box-shadow:none;color:var(--ink-muted);padding:.4rem .8rem}.tabs button:hover{background:transparent;color:var(--ink)}.tabs button.active{background:var(--surface);border-color:var(--border-strong);color:var(--ink);box-shadow:var(--shadow)}.yaml-preview,.code-block{background:#0f0f0f;color:#e6e6e6;border:1px solid #1f1f1f;border-radius:var(--radius-sm);padding:var(--sp-4);font-family:var(--font-mono);font-size:var(--fs-13);line-height:1.6;overflow:auto;white-space:pre;max-height:320px}.diff-line{font-family:var(--font-mono);font-size:var(--fs-13);color:var(--ink-secondary)}.muted{color:var(--ink-muted);font-size:var(--fs-13)}.error-text{color:var(--danger);font-size:var(--fs-13)}ul{margin:var(--sp-2) 0;padding-left:1.25rem}li{margin-bottom:var(--sp-1)}table.env-compare td{vertical-align:top}table.env-compare th{white-space:nowrap}.env-compare-scroll{overflow-x:auto}table.env-compare{table-layout:fixed;width:100%;min-width:46rem}table.env-compare td.env-key{overflow-wrap:anywhere}table.env-compare td.env-status{white-space:nowrap}table.env-compare td.env-status .chip+.chip{margin-left:var(--sp-1, .25rem)}table.env-compare td.env-value{overflow-wrap:anywhere}.env-row--differs td{background:var(--warn-bg)}.env-row--missing td{background:var(--info-bg)}.env-row--notCompared td{color:var(--ink-muted)}.env-row--same td{background:transparent}.toast-host{position:fixed;right:var(--sp-4);bottom:var(--sp-4);z-index:60;display:flex;flex-direction:column;gap:var(--sp-2);margin:0;padding:0;list-style:none;width:min(420px,calc(100vw - 2 * var(--sp-4)))}.toast{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-3) var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--border-strong);border-left:3px solid var(--neutral);border-radius:var(--radius);box-shadow:var(--shadow-lg);font-size:var(--fs-13)}.toast--info{border-left-color:var(--info)}.toast--success{border-left-color:var(--ok)}.toast--warn{border-left-color:var(--warn)}.toast--danger{border-left-color:var(--danger)}.toast-body{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0;flex:1}.toast-title{color:var(--ink);font-weight:600;overflow-wrap:anywhere}.toast-text{color:var(--ink-secondary);overflow-wrap:anywhere}.toast--danger .toast-text{color:var(--danger)}.toast-actions{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}.toast-link{color:var(--link);font-size:var(--fs-12);text-decoration:underline}.toast-close{background:transparent;border:none;color:var(--ink-muted);font-size:var(--fs-16);line-height:1;cursor:pointer;padding:0 var(--sp-1)}.toast-close:hover{color:var(--ink)}.bell-wrap{position:relative;margin-left:auto}.bell-button{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--surface);border:1px solid var(--border-input);border-radius:var(--radius-sm);color:var(--ink-secondary);font-size:var(--fs-13);cursor:pointer}.bell-button:hover{background:var(--surface-2);color:var(--ink)}.bell-label{font-weight:550}.bell-badge{min-width:18px;padding:0 5px;background:var(--danger);color:#fff;border-radius:9px;font-size:var(--fs-12);line-height:18px;text-align:center;font-variant-numeric:tabular-nums}.bell-panel{position:absolute;right:0;top:calc(100% + var(--sp-2));width:min(460px,calc(100vw - 2 * var(--sp-4)));background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:55}.bell-panel-header,.bell-panel-footer{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3);border-bottom:1px solid var(--border)}.bell-panel-header>strong{flex:1;font-size:var(--fs-13)}.bell-panel-footer{border-bottom:none;border-top:1px solid var(--border)}.bell-empty{padding:var(--sp-4);margin:0}.bell-list{list-style:none;margin:0;padding:0;max-height:380px;overflow-y:auto}.bell-item{border-bottom:1px solid var(--border)}.bell-item:last-child{border-bottom:none}.bell-item>a{display:flex;gap:var(--sp-3);padding:var(--sp-3);text-decoration:none;color:inherit}.bell-item>a:hover{background:var(--surface-hover)}.bell-item--unread{background:var(--surface-2)}.bell-glyph{flex-shrink:0;width:20px;text-align:center;font-weight:700;color:var(--neutral)}.bell-glyph--succeeded{color:var(--ok)}.bell-glyph--failed,.bell-glyph--drifted{color:var(--danger)}.bell-glyph--partial{color:var(--warn)}.bell-glyph--running,.bell-glyph--queued{color:var(--info)}.bell-item-main{display:flex;flex-direction:column;gap:2px;min-width:0}.bell-item-summary{color:var(--ink);font-size:var(--fs-13);font-weight:550;overflow-wrap:anywhere}.activity-row--unread td{background:var(--surface-2)}.op-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--sp-3);margin-top:var(--sp-3)}.op-meta>div{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-13)}.op-meta>div>span:first-child{font-size:var(--fs-12)}.op-timeline{list-style:none;margin:0;padding:0}.op-event{display:flex;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--border);font-size:var(--fs-13);align-items:baseline}.op-event:last-child{border-bottom:none}.op-event-ts{flex-shrink:0;color:var(--ink-muted);font-size:var(--fs-12)}.op-event-kind{flex-shrink:0;width:132px;color:var(--ink-muted);font-size:var(--fs-12);text-transform:uppercase;letter-spacing:.03em}.op-event-message{color:var(--ink-secondary);overflow-wrap:anywhere}.op-event--pod_issue .op-event-kind,.op-event--pod_issue .op-event-message{color:var(--danger)}.op-event--completed .op-event-message{color:var(--ink);font-weight:550}.op-event--approved .op-event-kind,.op-event--rejected .op-event-kind{color:var(--ink)}
