:root{--bg: #0d1117;--surface: #161b22;--surface-2: #21262d;--surface-hover: rgba(255, 255, 255, .04);--border: #30363d;--text: #e6edf3;--text-muted: #8b949e;--accent: #58a6ff;--accent-hover: #79c0ff;--success: #3fb950;--warning: #d29922;--error: #f85149;--warning-bg: rgba(210, 153, 34, .12);--warning-border: rgba(210, 153, 34, .35);--warning-text: #e3b341;--success-bg: rgba(63, 185, 80, .12);--success-border: rgba(63, 185, 80, .35);--success-text: #56d364;--error-bg: rgba(248, 81, 73, .12);--error-border: rgba(248, 81, 73, .35);--danger: var(--error);--radius: 6px;--font-mono: "SF Mono", "Fira Code", "Cascadia Code", Consolas, monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.6;min-height:100%}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}.pre-auth-body{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1.5rem}.pre-auth-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:2.5rem 2rem;width:100%;max-width:400px}.brand{display:flex;align-items:center;gap:.625rem;margin-bottom:2rem}.brand-logo{height:32px;width:auto;display:block}.brand-name{font-weight:600;font-size:15px;letter-spacing:-.01em}.card-title{font-size:1.25rem;font-weight:600;margin-bottom:.375rem}.card-subtitle{color:var(--text-muted);font-size:13px;margin-bottom:1.75rem}.card-back-link{margin-top:1.25rem;text-align:center;font-size:13px}.card-back-link a{color:var(--text-muted);text-decoration:none}.card-back-link a:hover{color:var(--accent)}.app-body{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-shell{display:flex;flex-direction:column;flex:1;min-height:0}.page-progress{position:fixed;top:0;left:0;height:2px;width:0%;background:var(--accent);box-shadow:0 0 8px var(--accent);z-index:9999;opacity:0;transition:opacity .15s ease-out;pointer-events:none}.app-body.is-loading .page-progress{opacity:1;animation:page-progress-grow 8s cubic-bezier(.1,.7,.3,.95) forwards}@keyframes page-progress-grow{0%{width:0%}20%{width:35%}60%{width:75%}to{width:92%}}.topnav{display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 1.25rem;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.topnav-brand{display:flex;align-items:center;gap:.625rem}.topnav-right{display:flex;align-items:center;gap:1rem}.topnav-user{color:var(--text-muted);font-size:13px}.app-layout{display:flex;flex:1;overflow:hidden}.sidebar{width:220px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);overflow-y:auto;padding:1rem 0}.sidebar-nav{display:flex;flex-direction:column;gap:1px}.sidebar-section-label{padding:.75rem 1rem .25rem;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.sidebar-link{display:flex;align-items:center;gap:.625rem;padding:.5rem 1rem;color:var(--text-muted);text-decoration:none;font-size:13px;border-radius:var(--radius);margin:0 .5rem;transition:background .1s,color .1s}.sidebar-link svg{width:16px;height:16px;flex-shrink:0}.sidebar-link:hover{background:var(--surface-2);color:var(--text)}.sidebar-link.active{background:var(--surface-2);color:var(--accent)}.app-content{flex:1;overflow-y:auto;padding:1.75rem 2rem}.page-header{margin-bottom:1.5rem}.page-title{font-size:1.375rem;font-weight:600;margin-bottom:.25rem}.page-subtitle{color:var(--text-muted);font-size:13px}.form-group{margin-bottom:1.125rem}.form-label{display:block;font-size:13px;font-weight:500;margin-bottom:.375rem}.form-input{display:block;width:100%;padding:.5rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:14px;line-height:1.5;outline:none;transition:border-color .15s}.form-input:focus{border-color:var(--accent)}.form-input::placeholder{color:var(--text-muted)}.form-input-code{font-family:var(--font-mono);font-size:1.25rem;letter-spacing:.2em;text-align:center}.form-input-mono{font-family:var(--font-mono);letter-spacing:.05em}.radio-group{display:flex;flex-direction:column;gap:.5rem}.radio-label{display:flex;align-items:center;gap:.5rem;font-size:14px;line-height:1.5;cursor:pointer}.radio-label input[type=radio]{flex:0 0 auto;margin:0}.input-wrapper{position:relative}.input-wrapper .form-input{padding-right:2.5rem}.input-reveal{position:absolute;right:.625rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--text-muted);padding:.25rem;display:flex;align-items:center}.input-reveal:hover{color:var(--text)}.form-error{background:#f851491a;border:1px solid rgba(248,81,73,.3);border-radius:var(--radius);color:var(--error);font-size:13px;padding:.625rem .875rem;margin-bottom:1rem}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5625rem 1rem;background:var(--accent);color:#0d1117;border:none;border-radius:var(--radius);font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;transition:background .15s}.btn-primary:hover{background:var(--accent-hover)}.btn-full{width:100%}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);font-size:14px;font-weight:500;cursor:pointer;text-decoration:none;transition:background .15s}.btn-secondary:hover{background:var(--border)}.btn-ghost{background:none;border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius);padding:.375rem .75rem;font-size:13px;cursor:pointer;transition:color .15s,border-color .15s}.btn-ghost:hover{color:var(--text);border-color:var(--text-muted)}.btn-link{background:none;border:none;color:var(--accent);font-size:13px;cursor:pointer;padding:.625rem 0;text-align:center;display:block;width:100%;text-decoration:none;margin-top:.75rem}.btn-link:hover{color:var(--accent-hover);text-decoration:underline}.htmx-indicator{display:none}.htmx-request .htmx-indicator{display:inline}.htmx-request .htmx-indicator-hide{display:none}.qr-wrapper{display:flex;justify-content:center;margin:1.25rem 0;background:#fff;border-radius:var(--radius);padding:1rem}.manual-secret{margin-bottom:1.25rem;font-size:13px;color:var(--text-muted)}.manual-secret summary{cursor:pointer}.secret-code{display:block;margin-top:.5rem;font-family:var(--font-mono);font-size:13px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .75rem;word-break:break-all;color:var(--text);letter-spacing:.08em}.recovery-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin:1.25rem 0}.recovery-code{font-family:var(--font-mono);font-size:13px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .75rem;text-align:center;letter-spacing:.12em}.recovery-actions{margin-bottom:1rem}.callout{border-radius:var(--radius);padding:.75rem 1rem;font-size:13px}.callout-warning{background:#d299221a;border:1px solid rgba(210,153,34,.3);color:var(--warning)}.callout-info{background:#388bfd14;border:1px solid rgba(56,139,253,.3);color:var(--text)}.bastion-status{display:inline-flex;align-items:center;gap:.4rem;margin-right:1.25rem}.bastion-status code{font-weight:600}.placeholder-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.placeholder-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.placeholder-label{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:.5rem}.placeholder-value{font-size:2rem;font-weight:700;color:var(--text-muted);margin-bottom:.25rem}.placeholder-note{font-size:11px;color:var(--text-muted);opacity:.6}.table-wrapper{overflow-x:auto;width:100%;min-width:0}.cell-truncate{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;padding:.625rem 1rem;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border)}td{padding:.75rem 1rem;border-bottom:1px solid var(--border);vertical-align:middle}tr:last-child td{border-bottom:none}tr:hover td{background:var(--surface-2)}.badge{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .5rem;border-radius:999px;font-size:12px;font-weight:500}.badge-green{background:#3fb95026;color:var(--success)}.badge-red{background:#f8514926;color:var(--error)}.badge-yellow{background:#d2992226;color:var(--warning)}.badge-grey{background:#8b949e26;color:var(--text-muted)}code{font-family:var(--font-mono);font-size:.85em}pre{font-family:var(--font-mono);font-size:13px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;overflow-x:auto}.page-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.page-header-actions{display:flex;align-items:center;gap:.75rem;flex-shrink:0;padding-top:.25rem}.breadcrumb{display:flex;align-items:center;gap:.375rem;font-size:13px;color:var(--text-muted);margin-bottom:.5rem}.breadcrumb a{color:var(--text-muted);text-decoration:none}.breadcrumb a:hover{color:var(--accent)}.breadcrumb-sep{opacity:.4}.title-slug{font-size:.75em;font-family:var(--font-mono);color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:.1em .45em;vertical-align:middle;margin-left:.5rem}.toolbar{margin-bottom:1rem;display:flex;align-items:center;gap:.75rem}.toolbar-form{display:flex;align-items:center;gap:.75rem}.toolbar-search{max-width:280px}.toolbar-checkbox{display:flex;align-items:center;gap:.375rem;font-size:13px;color:var(--text-muted);cursor:pointer;white-space:nowrap}.secret-reveal{display:inline-flex;align-items:center;gap:.5rem}.secret-masked{display:inline-block;font-family:var(--font-mono);letter-spacing:.15em;color:var(--text-muted);background:var(--bg);padding:.25rem .625rem;border-radius:var(--radius);border:1px dashed var(--border)}.table-link{color:var(--accent);text-decoration:none;font-weight:500}.table-link:hover{text-decoration:underline}.table-sub{font-family:var(--font-mono);font-size:12px;color:var(--text-muted);margin-top:2px}.table-actions{text-align:right}.btn-sm{padding:.25rem .625rem;font-size:12px}.env-badge-row{display:flex;gap:.375rem;flex-wrap:wrap}a.badge.badge-grey{text-decoration:none;border:1px solid var(--border);background:var(--surface-2);transition:background .12s,border-color .12s,color .12s}a.badge.badge-grey:hover{background:var(--accent);border-color:var(--accent);color:var(--bg)}.text-mono{font-family:var(--font-mono)}.text-sm{font-size:12px}.empty-state{padding:3rem 1rem;text-align:center;color:var(--text-muted);font-size:13px;border:1px solid var(--border);border-radius:var(--radius)}.form-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.75rem;max-width:760px}.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-hint{font-size:12px;color:var(--text-muted);margin-top:.25rem}.form-required{color:var(--error)}.form-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--border)}.form-group-inline{display:flex;align-items:flex-start;gap:.75rem;flex-wrap:wrap}.form-checkbox-label{display:flex;align-items:center;gap:.375rem;font-size:13px;cursor:pointer}.section-title{font-size:14px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.875rem;margin-top:1.5rem}.env-cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.env-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}.env-card-active{border-color:#3fb9504d}.env-card-inactive{border-color:var(--border)}.env-card-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--surface-2);border-bottom:1px solid var(--border)}.env-card-name{font-family:var(--font-mono);font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.08em}.env-card-body{padding:.875rem 1rem;flex:1;display:flex;flex-direction:column;gap:.5rem}.env-field{display:flex;flex-direction:column;gap:2px}.env-field-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.env-field-value{font-size:13px;color:var(--text);word-break:break-all}.env-card-footer{padding:.625rem 1rem;border-top:1px solid var(--border)}.detail-section{margin-top:1.75rem}.notes-text{font-size:13px;color:var(--text-muted);line-height:1.7;white-space:pre-wrap}.link-muted{color:var(--text-muted);text-decoration:none}.link-muted:hover{color:var(--accent)}.env-card-deploy{padding:.75rem 1rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.5rem}.deploy-form{display:flex;flex-direction:column;gap:.5rem}.deploy-form-restart{margin-top:.25rem}.deploy-actions-row{display:flex;gap:.5rem;align-items:center}.deploy-tag-input{font-size:12px;padding:.375rem .5rem}.tag-deploy-menu{position:relative;display:inline-block}.tag-deploy-menu>summary{cursor:pointer;list-style:none}.tag-deploy-menu>summary::-webkit-details-marker{display:none}.tag-deploy-menu-body{display:flex;flex-direction:column;gap:.25rem;padding:.5rem;margin-top:.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:180px;position:absolute;right:0;z-index:10}.tag-deploy-form{display:flex;align-items:center;gap:.5rem}.tag-deploy-error{font-size:12px;color:var(--danger, #b91c1c)}.pagination{display:flex;align-items:center;gap:.75rem;margin-top:1rem}.pagination-status{flex:1;text-align:center}.btn-disabled{opacity:.5;pointer-events:none}.deploy-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem}.deploy-meta-cell{display:flex;flex-direction:column;gap:2px}.force-fail-form{display:flex;flex-direction:column;gap:.5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:1.25rem}.force-fail-row{display:flex;gap:.75rem;align-items:stretch}.force-fail-row .form-input{flex:1 1 auto}.force-fail-row .btn{flex:0 0 auto;white-space:nowrap}.log-viewer{background:#010409;border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;font-family:var(--font-mono);font-size:12px;color:#c9d1d9;white-space:pre-wrap;word-break:break-word;max-height:60vh;overflow-y:auto;line-height:1.5}.log-viewer-tall{max-height:calc(100vh - 360px)}.log-stream-meta{display:flex;gap:1rem;margin-bottom:.5rem}.form-row-3{display:grid;grid-template-columns:1fr 120px 120px;gap:1rem}@media(max-width:720px){.form-row-3{grid-template-columns:1fr}}.form-card-tight{padding:.75rem 1rem;margin-bottom:1rem}.form-actions-tight{margin-top:.5rem;padding-top:.5rem;border-top:none;justify-content:space-between;align-items:center}.form-group-inline-label .form-label{margin-bottom:.25rem}.env-card-footer-row{display:flex;gap:.5rem;flex-wrap:wrap}.dashboard-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;text-decoration:none;color:inherit;display:block;transition:border-color .15s,transform .15s}.dashboard-card:hover{border-color:var(--accent);transform:translateY(-1px)}.dashboard-card .placeholder-value{color:var(--text)}.text-error{color:var(--error)}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:1rem}.metrics-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column}.metrics-card-header{padding:.75rem 1rem;background:var(--surface-2);border-bottom:1px solid var(--border)}.metrics-card-body{padding:1rem;display:flex;flex-direction:column;gap:1rem}.metrics-section{display:flex;flex-direction:column;gap:.5rem}.metrics-section-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600}.metrics-empty{color:var(--text-muted);font-size:12px;font-style:italic}.grafana-iframe{width:100%;height:280px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.grafana-iframe-meta{margin-top:.5rem;text-align:right}.grafana-card{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);color:var(--text);text-decoration:none;transition:border-color .15s ease,background .15s ease,transform .05s ease}.grafana-card:hover{border-color:var(--accent, #ff7100);background:var(--surface-hover);text-decoration:none}.grafana-card:active{transform:translateY(1px)}.grafana-card-icon{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:var(--radius);background:#ff71001f;color:#ff7100}.grafana-card-icon svg{width:20px;height:20px}.grafana-card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.grafana-card-title{font-size:13px;font-weight:600;color:var(--text);font-family:var(--font-mono, monospace);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grafana-card-sub{font-size:11px;color:var(--text-muted)}.grafana-card-cta{flex:none;font-size:13px;color:var(--text-muted)}.grafana-card:hover .grafana-card-cta{color:var(--accent, #ff7100)}.sentry-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.sentry-stat{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.625rem;text-align:center}.sentry-stat-value{font-size:1.5rem;font-weight:600;color:var(--text)}.sentry-stat-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-top:2px}.sentry-top-list{display:flex;flex-direction:column;gap:.25rem}.sentry-issue-row{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.375rem .5rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;color:var(--text);font-size:12px}.sentry-issue-row:hover{border-color:var(--accent)}.sentry-issue-title{display:flex;align-items:center;gap:.375rem;flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sentry-issue-count{flex-shrink:0}.callout-error{background:#f851491a;border:1px solid rgba(248,81,73,.3);color:var(--error);margin-bottom:1rem}.callout-success{background:#3fb9501a;border:1px solid rgba(63,185,80,.3);color:var(--success);margin-bottom:1rem}.text-muted{color:var(--text-muted)}.topnav-user-link{color:var(--text-muted);font-size:13px;text-decoration:none;transition:color .15s}.topnav-user-link:hover{color:var(--text)}.account-cards{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.alerts-list{display:flex;flex-direction:column;gap:.5rem}.alerts-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;color:inherit;transition:border-color .15s}.alerts-row:hover{border-color:var(--accent)}.alerts-row-left{display:flex;align-items:flex-start;gap:.75rem;flex:1;min-width:0}.alerts-row-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.alerts-row-title{font-size:13px;color:var(--text);text-decoration:none;display:flex;align-items:center;gap:.5rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.alerts-row-title:hover{color:var(--accent)}.alerts-row-context{display:flex;align-items:center;gap:.5rem}.alerts-row-count{font-size:13px;color:var(--text-muted);flex-shrink:0}.dashboard-section{margin-bottom:1.5rem}.dashboard-section-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.dashboard-section-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.health-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.75rem}.health-cell{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.875rem 1rem;display:flex;flex-direction:column;gap:.625rem;text-decoration:none;color:inherit;transition:border-color .15s;min-height:120px}.health-cell:hover,.health-cell:hover *{text-decoration:none}.health-cell:hover{border-color:var(--accent)}.health-cell-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.health-cell-title{display:flex;flex-direction:column;gap:2px;min-width:0}.health-cell-service{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.health-cell-env{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.health-cell-body{flex:1;display:flex;flex-direction:column;gap:.25rem;min-height:24px}.health-container-list{display:flex;flex-direction:column;gap:.25rem}.health-container-row{display:flex;align-items:center;gap:.5rem;font-size:12px;min-width:0}.health-container-name{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.health-cell-footer{border-top:1px solid var(--border);padding-top:.5rem;font-size:11px}.audit-filter-bar{display:grid;grid-template-columns:2fr 2fr 1.5fr 1fr;gap:.75rem;align-items:end;margin-bottom:1rem;padding:.75rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.audit-filter-group{display:flex;flex-direction:column;gap:.25rem}.audit-filter-group .form-label{margin-bottom:0;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.audit-filter-group .form-input{padding:.4375rem .625rem;font-size:13px}.audit-table{table-layout:fixed;width:100%}.audit-table th{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);text-align:left;padding:.5rem .75rem}.audit-table td{vertical-align:top;padding:.625rem .75rem;border-top:1px solid var(--border)}.audit-table tbody:first-of-type td{border-top:none}col.audit-col-when{width:150px}col.audit-col-user{width:220px}col.audit-col-action{width:240px}col.audit-col-target{width:auto}col.audit-col-ip{width:130px}col.audit-col-meta{width:110px}.audit-when-cell{white-space:nowrap}.audit-actions-cell{text-align:right;white-space:nowrap}.audit-meta-row td{background:var(--bg);border-top:none;padding-top:0}.audit-meta-block{padding:.75rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.audit-meta-json{margin:0 0 .5rem;white-space:pre-wrap;word-break:break-all;color:var(--text);background:var(--bg);padding:.625rem .75rem;border-radius:var(--radius);max-height:320px;overflow-y:auto}.audit-meta-extra{margin-top:.25rem;word-break:break-all}.audit-meta-block>.audit-meta-extra:first-child,.audit-meta-block>.audit-meta-json+.audit-meta-extra{margin-top:0}.pagination{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem}.pagination-page{flex:1;text-align:center}[x-cloak]{display:none!important}.diff-picker{display:grid;grid-template-columns:1fr auto 1fr auto;gap:1rem;align-items:end;margin-bottom:1.5rem;padding:1rem 1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.diff-picker-side{display:flex;flex-direction:column;gap:.5rem}.diff-picker-side .form-group{margin-bottom:0}.diff-picker-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:0}.diff-picker-vs{font-size:13px;color:var(--text-muted);padding-bottom:.625rem}.diff-picker-actions{padding-bottom:0}.diff-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1rem}.diff-summary-tile{padding:.875rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.diff-tile-count{font-size:1.5rem;font-weight:600}.diff-tile-label{font-size:12px;color:var(--text-muted);margin-top:.125rem}.diff-tile-onlya .diff-tile-count,.diff-tile-onlyb .diff-tile-count{color:var(--accent)}.diff-tile-differs .diff-tile-count{color:var(--warning)}.diff-tile-same .diff-tile-count{color:var(--success)}.diff-actions{margin-bottom:1rem}.diff-tables{display:flex;flex-direction:column;gap:1rem}.diff-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.875rem 1rem}.diff-section-title{font-size:13px;font-weight:600;margin:0 0 .5rem}.diff-section-differs{color:var(--warning)}.diff-section-onlya,.diff-section-onlyb{color:var(--accent)}.diff-section-same{color:var(--text-muted)}.diff-key-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.25rem 1rem}.diff-key-list li{padding:.25rem 0;border-bottom:1px solid var(--border)}.diff-same-details summary{cursor:pointer;padding:.25rem 0}.dashboard-split{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-top:1.5rem}@media(max-width:1100px){.dashboard-split{grid-template-columns:1fr}}.dashboard-feed{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.dashboard-feed-row{border-top:1px solid var(--border)}.dashboard-feed-row:first-child{border-top:none}.dashboard-feed-link,.dashboard-feed-row>.dashboard-feed-primary{display:flex;align-items:center;gap:.625rem;padding:.625rem .875rem;text-decoration:none;color:var(--text)}.dashboard-feed-link:hover{background:var(--surface-2)}.dashboard-feed-row{display:flex;align-items:center;gap:.625rem;padding:0}.dashboard-feed-row>.dashboard-feed-primary{flex:1;min-width:0}.dashboard-feed-primary{flex:1;min-width:0;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.dashboard-feed-meta{flex-shrink:0;white-space:nowrap;padding-right:.875rem}.dashboard-feed-link .dashboard-feed-meta{padding-right:0}.runbook-list{display:flex;flex-direction:column;gap:1.25rem}.runbook-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.125rem 1.25rem}.runbook-card-header{margin-bottom:.875rem}.runbook-card-title{font-size:1rem;font-weight:600;margin:0 0 .25rem}.runbook-card-desc{margin:0 0 .5rem}.runbook-card-meta{display:flex;align-items:center;gap:.625rem;margin:0}.runbook-card-form-row{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap}.runbook-card-form .form-group{margin-bottom:0}.runbook-card-runs{margin-top:1rem;padding-top:.875rem;border-top:1px solid var(--border)}.runbook-runs-heading{margin:0 0 .5rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;font-size:11px}.runbook-runs-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.375rem}.runbook-run-row{display:flex;align-items:center;gap:.625rem;flex-wrap:wrap}.runbook-run-title{flex:1;min-width:0;color:var(--text);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.runbook-run-title:hover{color:var(--accent)}.topnav-hamburger{display:none;background:none;border:none;color:var(--text);padding:.375rem;margin-right:.5rem;cursor:pointer}.topnav-hamburger svg{width:22px;height:22px}.sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:90}@media(max-width:768px){.topnav{padding:0 .75rem}.topnav-hamburger{display:inline-flex;align-items:center;justify-content:center}.topnav-user-link{display:none}.app-shell.nav-open .sidebar-backdrop{display:block}.sidebar{position:fixed;top:52px;left:0;bottom:0;width:240px;z-index:100;transform:translate(-100%);transition:transform .18s ease-out}.sidebar.sidebar-open,.app-shell.nav-open .sidebar{transform:translate(0)}.app-content{padding:1rem}.page-header-row{flex-direction:column;align-items:flex-start;gap:.75rem}.audit-filter-bar,.placeholder-grid,.diff-picker,.env-cards-grid,.runbook-card-form-row,.diff-summary{grid-template-columns:1fr!important}.diff-picker-vs{text-align:center}.dashboard-section-header{flex-direction:column;align-items:flex-start;gap:.25rem}}.script-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.75rem;margin-bottom:1.5rem}.script-card{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;text-decoration:none;color:var(--text);transition:border-color .15s,background .15s}.script-card:hover{border-color:var(--accent);background:var(--surface-2)}.script-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.4rem}.script-card-desc{font-size:13px;color:var(--text-muted);margin-bottom:.5rem}.script-card-meta{font-size:12px;color:var(--text-muted)}.script-output{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.875rem;font-family:var(--font-mono);font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-all;max-height:480px;overflow-y:auto}.action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-bottom:1.5rem}.action-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;display:flex;flex-direction:column;gap:.5rem}.action-card-danger{border-color:#dc354573;background:#dc35450a}.action-card-title{font-size:14px;font-weight:600;margin:0 0 .25rem}.action-form{display:flex;flex-direction:column;gap:.5rem}.btn-row{display:flex;flex-wrap:wrap;gap:.5rem}.btn-danger{background:#dc3545;color:#fff;border:1px solid #dc3545;border-radius:var(--radius);padding:.5rem .875rem;font-size:13px;font-weight:600;cursor:pointer}.btn-danger:hover:not(:disabled){background:#b02a37;border-color:#b02a37}.btn-danger:disabled,.btn-primary:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-danger-ghost{background:transparent;color:#dc3545;border:1px solid rgba(220,53,69,.45)}.btn-danger-ghost:hover{background:#dc354514}.checkbox-row{display:flex;align-items:center;gap:.5rem;font-size:13px;color:var(--text)}.callout-inline{margin:.5rem 0}.form-error-slot{min-height:0}.metric-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.875rem 1rem;min-height:140px;display:flex;flex-direction:column;color:var(--text)}.metric-card-inner{display:flex;flex-direction:column;gap:.5rem}.metric-card-header{display:flex;justify-content:space-between;align-items:center;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.metric-card-label{font-weight:600}.metric-card-period{display:flex;gap:.25rem}.metric-period-toggle{font-size:11px;text-decoration:none;color:var(--text-muted);padding:.125rem .375rem;border-radius:4px}.metric-period-toggle.is-active{background:var(--surface-2);color:var(--text)}.metric-card-value{font-size:1.5rem;font-weight:700;line-height:1.1}.metric-card-unit{font-size:.75rem;font-weight:400;color:var(--text-muted);margin-left:.25rem}.metric-card-sparkline{flex:1;display:flex;align-items:stretch;color:var(--accent, #60a5fa);min-height:60px}.metric-card-error{font-size:12px;color:var(--text-muted);font-style:italic}.sparkline{width:100%;height:100%;display:block}.sparkline-empty{color:var(--text-muted)}.ghost-list{margin-top:.75rem;display:flex;flex-direction:column;gap:.5rem}.ghost-row{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.5rem .75rem;background:#0003;border-radius:var(--radius)}.ghost-row form{margin-left:auto}.docs-toc{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem;margin-bottom:1.5rem;font-size:13px}.docs-toc strong{margin-right:.5rem;color:var(--text-muted)}.docs-toc a{color:var(--accent);text-decoration:none;margin:0 .25rem}.docs-toc a:hover{text-decoration:underline}.docs-section{margin-bottom:2.5rem;scroll-margin-top:1rem}.docs-section h2{font-size:1.1rem;font-weight:600;margin-bottom:.75rem;padding-bottom:.4rem;border-bottom:1px solid var(--border)}.docs-section h3{font-size:.95rem;font-weight:600;margin-top:1rem;margin-bottom:.4rem}.docs-section p,.docs-section ul,.docs-section ol{margin-bottom:.75rem;font-size:14px;line-height:1.6}.docs-section ul,.docs-section ol{padding-left:1.5rem}.docs-section li{margin-bottom:.25rem}.docs-section code{background:var(--surface-2);border-radius:3px;padding:.1rem .3rem;font-family:var(--font-mono);font-size:12.5px}.docs-table{width:100%;border-collapse:collapse;font-size:13px}.docs-table th,.docs-table td{border:1px solid var(--border);padding:.5rem .625rem;text-align:left;vertical-align:top}.docs-table th{background:var(--surface);font-weight:600}.docs-section a,.docs-toc a{color:var(--accent);text-decoration:none}.docs-section a:visited,.docs-toc a:visited{color:var(--accent)}.docs-section a:hover,.docs-toc a:hover{color:var(--accent-hover);text-decoration:underline}.form-success{background:#3fb9501a;border:1px solid rgba(63,185,80,.3);border-radius:var(--radius);color:var(--success);font-size:13px;padding:.625rem .875rem}.peering-health-wrap{margin:.75rem 0 1.25rem}.peering-list{list-style:none;margin:.5rem 0 0;padding:0}.peering-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.35rem 0;font-size:13px;line-height:1.4}.peering-row code{font-weight:600}.peering-reason{color:var(--text-muted)}.peering-hint{flex-basis:100%;margin:.25rem 0 0;padding:.4rem .6rem;background:#00000040;border-radius:var(--radius);font-size:12px;overflow-x:auto;white-space:pre}.mt-0-5{margin-top:.5rem}.mt-0-75{margin-top:.75rem}.mt-1{margin-top:1rem}.mt-1-25{margin-top:1.25rem}.mt-1-5{margin-top:1.5rem}.mt-2{margin-top:2rem}.mb-0-5{margin-bottom:.5rem}.mb-1{margin-bottom:1rem}.ml-0-5{margin-left:.5rem}.m-0{margin:0}.display-inline{display:inline}.display-flex{display:flex}.flex-center{display:flex;align-items:center}.flex-center-gap{display:flex;align-items:center;gap:.4rem}.flex-center-gap-1{display:flex;align-items:center;gap:1rem}.flex-center-gap-wrap{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.flex-center-mb-1{display:flex;align-items:center;margin-bottom:1rem}.flex-gap-1{display:flex;gap:1rem}.flex-gap-half{display:flex;gap:.5rem}.text-danger{color:var(--danger)}.text-wrap-pre{white-space:pre-wrap;word-break:break-word}.text-truncate-auto{white-space:pre-wrap;max-height:320px;overflow:auto}.text-mono{font-family:Monaco,Menlo,Ubuntu Mono,monospace}.w-10rem{width:10rem}.w-12rem{width:12rem}.w-24rem{width:24rem}.w-220px{width:220px}.max-w-560{max-width:560px}.max-w-600{max-width:600px}.icon-size{width:1rem;height:1rem;flex-shrink:0}.detail-list{display:grid;grid-template-columns:minmax(min-content,9rem) 1fr;gap:.45rem .85rem;align-items:baseline;margin:0}.detail-list dt{font-weight:500;font-size:.85rem;color:var(--text-muted)}.detail-list dd{margin:0;font-size:.9rem;min-width:0}.detail-list dd a{text-decoration:underline}.badge-blue{background:#3b82f626;color:#93c5fd;border:1px solid rgba(59,130,246,.35)}.badge-orange{background:#f9731626;color:#fdba74;border:1px solid rgba(249,115,22,.35)}.badge-purple{background:#a855f726;color:#d8b4fe;border:1px solid rgba(168,85,247,.35)}.fleet-feed{list-style:none;padding:0;margin:1rem 0 0;display:flex;flex-direction:column;gap:.75rem}.fleet-feed-item{background:#1a1d23;border:1px solid #2a2f38;border-radius:8px;padding:.85rem 1rem;border-left-width:3px}.fleet-feed-push{border-left-color:#3b82f6}.fleet-feed-comment{border-left-color:#6b7280}.fleet-feed-dispatch{border-left-color:#f97316}.fleet-feed-run{border-left-color:#a855f7}.fleet-feed-approval{border-left-color:#22c55e}.fleet-feed-meta{display:flex;flex-wrap:wrap;gap:.5rem;align-items:baseline;margin-bottom:.35rem}.fleet-feed-headline{font-size:.95rem;line-height:1.4;font-weight:500;margin:.1rem 0 .4rem}.fleet-feed-detail{font-size:.9rem;color:#cbd5e1}.fleet-file-list{list-style:none;padding:0;margin:.3rem 0;display:flex;flex-direction:column;gap:.15rem}.fleet-file-list a{color:#93c5fd;text-decoration:none}.fleet-file-list a:hover{text-decoration:underline}.fleet-quote{border-left:2px solid #374151;padding:.4rem .75rem;margin:.4rem 0;font-size:.9rem;color:#cbd5e1;background:#ffffff05;border-radius:0 4px 4px 0}.fleet-feed-links{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.5rem}.fleet-feed-links a{color:#93c5fd;text-decoration:none}.fleet-feed-links a:hover{text-decoration:underline}.fleet-feed-raw{margin-top:.5rem}.fleet-feed-raw summary{cursor:pointer;-webkit-user-select:none;user-select:none}.fleet-feed-raw pre{margin:.4rem 0 0;padding:.5rem .75rem;background:#0f1115;border:1px solid #2a2f38;border-radius:4px;overflow-x:auto;white-space:pre-wrap}
