:root,[data-frm-theme=aurora-light]{color-scheme:light;--frm-primary-50: #EEF0FF;--frm-primary-100: #E0E3FF;--frm-primary-200: #C4CAFF;--frm-primary-300: #A5ADFF;--frm-primary-400: #818CF8;--frm-primary-500: #6366F1;--frm-primary-600: #4F46E5;--frm-primary-700: #4338CA;--frm-primary-800: #3730A3;--frm-primary-900: #312E81;--frm-accent-violet: #8B5CF6;--frm-accent-aurora-from: #6366F1;--frm-accent-aurora-to: #8B5CF6;--frm-bg: #FAFAFE;--frm-surface: #FFFFFF;--frm-surface-2: #F5F5FA;--frm-surface-muted: #F0F0F5;--frm-surface-raised: #FFFFFF;--frm-surface-inverse:#0E0F1A;--frm-workbench-bg: var(--frm-bg);--frm-workbench-bg-radial: radial-gradient(circle at 18% -8%, rgba(99, 102, 241, .12), transparent 28%), radial-gradient(circle at 82% 4%, rgba(139, 92, 246, .1), transparent 30%), var(--frm-bg);--frm-workbench-panel: var(--frm-surface);--frm-workbench-panel-2: var(--frm-surface-2);--frm-workbench-panel-raised: var(--frm-surface-raised);--frm-workbench-well: #F8FAFC;--frm-workbench-well-2: #F1F5F9;--frm-workbench-panel-accent: linear-gradient(135deg, rgba(99, 102, 241, .1), rgba(139, 92, 246, .08)), var(--frm-surface);--frm-workbench-panel-danger: linear-gradient(135deg, rgba(239, 68, 68, .08), rgba(245, 158, 11, .06)), var(--frm-surface);--frm-workbench-line: var(--frm-line);--frm-workbench-line-accent: var(--frm-accent-line);--frm-line: #E8E8EF;--frm-line-subtle: #F0F0F5;--frm-line-strong: #CBD5E1;--frm-text: #0E0F1A;--frm-text-2: #2A2D3A;--frm-text-3: #5A5E70;--frm-text-muted-2: #8A8EA0;--frm-text-inverse: #FFFFFF;--frm-text-on-accent: #FFFFFF;--frm-accent: #6366F1;--frm-accent-2: #8B5CF6;--frm-accent-soft: #EEF2FF;--frm-accent-line: rgba(99, 102, 241, .28);--frm-success: #10B981;--frm-warning: #F59E0B;--frm-danger: #EF4444;--frm-info: #3B82F6;--frm-unknown: #94A3B8;--frm-success-soft: #ECFDF5;--frm-warning-soft: #FFFBEB;--frm-danger-soft: #FEF2F2;--frm-info-soft: #EFF6FF;--frm-unknown-soft: #F1F5F9;--frm-bg-page: var(--frm-bg);--frm-bg-surface: var(--frm-surface);--frm-bg-subtle: var(--frm-surface-2);--frm-bg-muted: var(--frm-surface-muted);--frm-bg-inverse: var(--frm-surface-inverse);--frm-topbar-bg: linear-gradient(180deg, #0A1622, #0E0F1A);--frm-text-primary: var(--frm-text);--frm-text-secondary: var(--frm-text-2);--frm-text-tertiary: var(--frm-text-3);--frm-text-muted: var(--frm-text-muted-2);--frm-text-on-dark: var(--frm-text-inverse);--frm-text-on-brand: var(--frm-text-on-accent);--frm-border-subtle: var(--frm-line-subtle);--frm-border-default: var(--frm-line);--frm-border-strong: var(--frm-line-strong);--frm-state-synced: var(--frm-success);--frm-state-changed: var(--frm-warning);--frm-state-added: var(--frm-info);--frm-state-removed: var(--frm-danger);--frm-state-no-data: var(--frm-unknown);--frm-radius-sm: 6px;--frm-radius-md: 8px;--frm-radius-lg: 10px;--frm-radius-xl: 12px;--frm-radius-2xl: 16px;--frm-radius-pill: 999px;--frm-shadow-sm: 0 1px 2px rgba(14, 15, 26, .04);--frm-shadow-md: 0 4px 12px rgba(14, 15, 26, .06);--frm-shadow-lg: 0 12px 32px rgba(14, 15, 26, .08);--frm-shadow-brand: 0 4px 14px rgba(99, 102, 241, .3);--frm-workbench-shadow-panel: 0 12px 32px rgba(14, 15, 26, .08);--frm-workbench-shadow-drawer: 0 28px 72px rgba(14, 15, 26, .22);--frm-font-ui: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--frm-font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--frm-motion-fast: .12s;--frm-motion-base: .2s;--frm-motion-slow: .32s;--frm-easing-standard: cubic-bezier(.2, 0, 0, 1);--frm-z-topbar: 100;--frm-z-sidepanel: 50;--frm-z-modal: 200;--frm-z-toast: 300;--frm-z-tooltip: 350}[data-frm-theme=aurora-dark-workbench]{color-scheme:dark;--frm-primary-50: #E0F7FF;--frm-primary-100: #BAECFF;--frm-primary-200: #7DDBFF;--frm-primary-300: #38BDF8;--frm-primary-400: #22AEEB;--frm-primary-500: #0EA5E9;--frm-primary-600: #0284C7;--frm-primary-700: #0369A1;--frm-primary-800: #075985;--frm-primary-900: #0C4A6E;--frm-accent-violet: #6366F1;--frm-accent-aurora-from: #38BDF8;--frm-accent-aurora-to: #6366F1;--frm-bg: #070913;--frm-surface: #101423;--frm-surface-2: #151A2C;--frm-surface-muted: #1A2136;--frm-surface-raised: #1D263D;--frm-surface-inverse:#050711;--frm-workbench-bg: var(--frm-bg);--frm-workbench-bg-radial: radial-gradient(circle at 18% -8%, rgba(56, 189, 248, .12), transparent 28%), radial-gradient(circle at 82% 4%, rgba(99, 102, 241, .16), transparent 30%), var(--frm-bg);--frm-workbench-panel: #101423;--frm-workbench-panel-2: #151A2C;--frm-workbench-panel-raised: #1D263D;--frm-workbench-well: #0B1020;--frm-workbench-well-2: #080C16;--frm-workbench-panel-accent: linear-gradient(135deg, rgba(16, 24, 43, .96), rgba(12, 18, 34, .98));--frm-workbench-panel-danger: linear-gradient(135deg, rgba(58, 17, 33, .94), rgba(27, 18, 30, .98));--frm-workbench-line: rgba(148, 163, 184, .18);--frm-workbench-line-accent: rgba(56, 189, 248, .34);--frm-line: rgba(148, 163, 184, .18);--frm-line-subtle: rgba(148, 163, 184, .1);--frm-line-strong: rgba(148, 163, 184, .32);--frm-text: #F8FAFC;--frm-text-2: #D8E1F0;--frm-text-3: #9AA8BC;--frm-text-muted-2: #64748B;--frm-text-inverse: #FFFFFF;--frm-text-on-accent: #04111D;--frm-accent: #38BDF8;--frm-accent-2: #6366F1;--frm-accent-soft: rgba(56, 189, 248, .12);--frm-accent-line: rgba(56, 189, 248, .34);--frm-success: #34D399;--frm-warning: #FBBF24;--frm-danger: #FB7185;--frm-info: #38BDF8;--frm-unknown: #64748B;--frm-success-soft: rgba(52, 211, 153, .12);--frm-warning-soft: rgba(251, 191, 36, .14);--frm-danger-soft: rgba(251, 113, 133, .13);--frm-info-soft: rgba(56, 189, 248, .12);--frm-unknown-soft: rgba(100, 116, 139, .14);--frm-bg-page: var(--frm-bg);--frm-bg-surface: var(--frm-surface);--frm-bg-subtle: var(--frm-surface-2);--frm-bg-muted: var(--frm-surface-muted);--frm-bg-inverse: var(--frm-surface-inverse);--frm-topbar-bg: linear-gradient(180deg, #0A1622, #0E0F1A);--frm-text-primary: var(--frm-text);--frm-text-secondary: var(--frm-text-2);--frm-text-tertiary: var(--frm-text-3);--frm-text-muted: var(--frm-text-muted-2);--frm-text-on-dark: var(--frm-text-inverse);--frm-text-on-brand: var(--frm-text-on-accent);--frm-border-subtle: var(--frm-line-subtle);--frm-border-default: var(--frm-line);--frm-border-strong: var(--frm-line-strong);--frm-state-synced: var(--frm-success);--frm-state-changed: var(--frm-warning);--frm-state-added: var(--frm-info);--frm-state-removed: var(--frm-danger);--frm-state-no-data: var(--frm-unknown);--frm-shadow-sm: 0 1px 2px rgba(0, 0, 0, .22);--frm-shadow-md: 0 8px 22px rgba(0, 0, 0, .28);--frm-shadow-lg: 0 18px 48px rgba(0, 0, 0, .36);--frm-shadow-brand: 0 10px 28px rgba(56, 189, 248, .2);--frm-workbench-shadow-panel: 0 22px 70px rgba(0, 0, 0, .28), inset 0 1px 0 rgba(125, 211, 252, .1);--frm-workbench-shadow-drawer: 0 28px 90px rgba(0, 0, 0, .42), inset 1px 0 0 rgba(125, 211, 252, .08)}.frm-mono{font-family:var(--frm-font-mono);font-feature-settings:"tnum" 1,"zero" 1}.frm-skeleton{background:linear-gradient(90deg,var(--frm-surface-2) 0%,var(--frm-surface-muted) 45%,var(--frm-surface-2) 90%);background-size:220% 100%;animation:frm-skeleton-shimmer 1.2s var(--frm-easing-standard) infinite}.frm-prose{font-family:var(--frm-font-ui);font-size:15px;line-height:1.55;color:var(--frm-text)}.frm-prose>*+*{margin-top:.85em}.frm-prose h1,.frm-prose h2,.frm-prose h3,.frm-prose h4{font-weight:850;color:var(--frm-text);line-height:1.25;margin-top:1.4em}.frm-prose h1{font-size:1.65em}.frm-prose h2{font-size:1.35em}.frm-prose h3{font-size:1.15em}.frm-prose h4{font-size:1em}.frm-prose p{color:var(--frm-text)}.frm-prose a{color:var(--frm-primary-500);text-decoration:none}.frm-prose a:hover{text-decoration:underline}.frm-prose code{font-family:var(--frm-font-mono);font-size:.92em;padding:1px 5px;background:var(--frm-surface-2);border-radius:var(--frm-radius-sm);color:var(--frm-text)}.frm-prose pre{font-family:var(--frm-font-mono);font-size:.92em;padding:12px 14px;background:var(--frm-workbench-panel-2);border:1px solid var(--frm-line-subtle);border-radius:var(--frm-radius-md);overflow-x:auto;line-height:1.45}.frm-prose pre>code{padding:0;background:transparent;border-radius:0}.frm-prose blockquote{margin:1em 0;padding:4px 0 4px 12px;border-left:3px solid var(--frm-line-strong);color:var(--frm-text-2)}.frm-prose ul,.frm-prose ol{padding-left:1.25em}.frm-prose li+li{margin-top:.35em}.frm-prose hr{border:0;border-top:1px solid var(--frm-line);margin:1.5em 0}.frm-prose table{width:100%;border-collapse:collapse;font-size:.94em}.frm-prose th,.frm-prose td{padding:8px 10px;border-bottom:1px solid var(--frm-line);text-align:left}.frm-prose th{color:var(--frm-text-2);font-weight:850}.frm-prose--dense{font-size:14px;line-height:1.45}.frm-prose--dense>*+*{margin-top:.55em}.frm-prose--dense h1,.frm-prose--dense h2,.frm-prose--dense h3,.frm-prose--dense h4{margin-top:.95em}.frm-prose--dense pre{padding:8px 10px}@keyframes frm-skeleton-shimmer{0%{background-position:180% 0}to{background-position:-180% 0}}@keyframes frm-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){:root{--frm-motion-fast: 0ms;--frm-motion-base: 0ms;--frm-motion-slow: 0ms}.frm-skeleton{animation:none}}@keyframes frm-snake-flow{0%{background-position:0% 50%}to{background-position:200% 50%}}.frm-snake-underline{position:absolute;left:12px;right:12px;bottom:-1px;height:2px;border-radius:2px;background:linear-gradient(90deg,#818cf8,#06b6d4,#818cf8);background-size:200% 100%;animation:frm-snake-flow 2.4s linear infinite;pointer-events:none}@media (prefers-reduced-motion: reduce){.frm-snake-underline{animation:none;background-position:0% 50%}}:root{--teal: #0d4f6c;--teal-dark: #0a3a52;--teal-hover: #0f5a7a;--teal-mid: #0e7490;--teal-nav: #1a2e4a;--cyan: #22d3c8;--cyan-light: #7ae8e2;--cyan-pale: #e0f7f6;--midnight: #0f172a;--bg: #f0f7f8;--offwhite: #f9fafb;--border: #cce4ea;--border-light: #e8f4f7;--muted: #64748b;--diag-ok: #10b981;--diag-ok-bg: #d1fae5;--diag-ok-text: #065f46;--diag-warn: #f59e0b;--diag-warn-bg: #fef3c7;--diag-warn-text: #92400e;--diag-danger: #f97316;--diag-danger-bg: #ffedd5;--diag-danger-text: #9a3412;--diag-crit: #ef4444;--diag-crit-bg: #fee2e2;--diag-crit-text: #991b1b;--ok: #1d9e75;--warn: #eab308;--danger: #ef4444;--crit: #b91c1c;--ai-violet: #6366f1;--ai-violet-bg: #ede9fe;--ai-blue-bg: #f0f9ff;--ai-blue-brd: #bae6fd;--ai-text: #0c4a6e;--sans: "Manrope", sans-serif;--mono: "JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;font-family:var(--sans);background:var(--bg);color:var(--midnight);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}html:has([data-frm-theme=aurora-dark-workbench]),html:has([data-frm-theme=aurora-dark-workbench]) body,html:has([data-frm-theme=aurora-dark-workbench]) #root{background:radial-gradient(circle at 18% -8%,rgba(56,189,248,.12),transparent 28%),radial-gradient(circle at 82% 4%,rgba(99,102,241,.16),transparent 30%),#070913;color:#f8fafc}[data-frm-theme=aurora-dark-workbench]{--frm-workbench-bg-radial: radial-gradient(circle at 18% -8%, rgba(56, 189, 248, .12), transparent 28%), radial-gradient(circle at 82% 4%, rgba(99, 102, 241, .16), transparent 30%), var(--frm-bg);--frm-workbench-panel: var(--frm-surface);--frm-workbench-panel-2: var(--frm-surface-2);--frm-workbench-panel-raised: var(--frm-surface-raised);--frm-workbench-panel-accent: linear-gradient(135deg, rgba(16, 24, 43, .96), rgba(12, 18, 34, .98));--frm-workbench-line: var(--frm-line);--frm-workbench-line-accent: var(--frm-accent-line);--frm-workbench-shadow-panel: 0 22px 70px rgba(0, 0, 0, .28), inset 0 1px 0 rgba(125, 211, 252, .1);--surface: var(--frm-workbench-panel);--surface-2: var(--frm-workbench-panel-2);--surface-raised: var(--frm-workbench-panel-raised);--line: var(--frm-workbench-line);--line-2: var(--frm-line-subtle);--frm-line-soft: var(--frm-line-subtle);--ink-1: var(--frm-text);--ink-2: var(--frm-text-2);--ink-3: var(--frm-text-3);--ink-4: var(--frm-text-muted-2);--violet: var(--frm-accent-2);--violet-50: rgba(99, 102, 241, .15);--violet-100: rgba(99, 102, 241, .22);--violet-200: rgba(99, 102, 241, .38);--violet-600: #A5B4FC;--violet-700: #C7D2FE;--teal: var(--frm-accent);--teal-dark: #0B1020;--teal-hover: #1A2136;--teal-mid: var(--frm-accent);--teal-nav: var(--frm-text);--cyan: var(--frm-accent);--cyan-light: #7DD3FC;--cyan-pale: var(--frm-accent-soft);--midnight: var(--frm-text);--bg: var(--frm-bg);--offwhite: var(--frm-surface-2);--border: var(--frm-line);--border-light: var(--frm-line-subtle);--muted: var(--frm-text-3);--diag-ok-bg: var(--frm-success-soft);--diag-ok-text: var(--frm-success);--diag-warn-bg: var(--frm-warning-soft);--diag-warn-text: var(--frm-warning);--diag-danger-bg: var(--frm-danger-soft);--diag-danger-text: var(--frm-danger);--diag-crit-bg: var(--frm-danger-soft);--diag-crit-text: var(--frm-danger)}.metrics-workbench{min-height:100vh;background:var(--frm-workbench-bg-radial);color:var(--frm-text)}a{color:var(--teal);text-decoration:none}a:hover{color:var(--cyan)}button{font-family:inherit}.icon-btn{width:36px;height:36px;border:1px solid rgba(255,255,255,.15);background:transparent;color:#ffffffd9;border-radius:8px;cursor:pointer;font-size:14px;display:grid;place-items:center;transition:all .15s}.icon-btn:hover{background:#ffffff14;border-color:#ffffff4d}.btn-primary{background:var(--cyan);color:var(--midnight);border:none;padding:9px 18px;border-radius:8px;font:700 12px var(--sans);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;transition:all .15s}.btn-primary:hover{background:var(--cyan-light);transform:translateY(-1px)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.main{padding:28px 32px 64px;max-width:1440px;margin:0 auto}.metrics-workbench .main{max-width:none;min-height:calc(100vh - 64px)}@media (max-width: 720px){.main{padding:20px 16px 48px}}.hero{background:linear-gradient(135deg,var(--teal) 0%,var(--teal-dark) 100%);border-radius:16px;padding:32px 40px;color:#fff;margin-bottom:24px;display:grid;grid-template-columns:1.4fr 1fr;gap:40px;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;top:-100px;right:-100px;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,rgba(34,211,200,.15),transparent 70%)}.hero-text{position:relative;z-index:1}.hero-meta{font:600 10px var(--sans);color:var(--cyan-light);letter-spacing:.12em;text-transform:uppercase;margin-bottom:12px}.hero-title{font:800 30px var(--sans);line-height:1.15;margin:0 0 16px;letter-spacing:-.01em}.hero-desc{font:400 13px var(--sans);line-height:1.6;color:#ffffffc7;max-width:560px}.hero-focus{background:#ffffff0f;border:1px solid rgba(34,211,200,.25);border-radius:12px;padding:20px;display:flex;flex-direction:column;justify-content:space-between;position:relative;z-index:1}.focus-badge{display:inline-flex;align-items:center;gap:6px;background:var(--cyan);color:var(--midnight);font:700 10px var(--sans);padding:5px 12px;border-radius:12px;letter-spacing:.08em;text-transform:uppercase;align-self:flex-start;margin-bottom:12px}.focus-list{list-style:none;padding:0;margin:0}.focus-list li{font:500 13px var(--sans);color:#ffffffd9;padding:6px 0;display:flex;align-items:center;gap:10px}.focus-list li:before{content:"—";color:var(--cyan);font-weight:700}.focus-cta{margin-top:18px;background:#ffffff14;border:1px solid rgba(255,255,255,.18);color:#fff;font:600 12px var(--sans);padding:10px 16px;border-radius:8px;cursor:pointer;align-self:flex-start;transition:all .15s}.focus-cta:hover{background:#ffffff24;border-color:var(--cyan)}.kpi-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.kpi-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:18px 20px;position:relative;overflow:hidden}.kpi-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--ok)}.kpi-card.kpi-warn:before{background:var(--warn)}.kpi-card.kpi-danger:before{background:var(--danger)}.kpi-card.kpi-info:before{background:var(--cyan)}.kpi-label{font:600 10px var(--sans);color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.kpi-value{font:700 26px var(--mono);color:var(--teal-nav);font-variant-numeric:tabular-nums;margin:6px 0 4px;display:flex;align-items:baseline;gap:6px}.kpi-unit{font:500 13px var(--sans);color:var(--muted)}.kpi-sub{font:400 11px var(--sans);color:var(--muted)}.section-header{display:flex;align-items:center;justify-content:space-between;margin:8px 0 16px}.section-title{font:800 20px var(--sans);color:var(--teal-nav);margin:0}.section-meta{font:500 11px var(--sans);color:var(--muted)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;margin-bottom:32px}.project-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:20px;transition:all .15s;cursor:pointer;display:flex;flex-direction:column}.project-card:hover{border-color:var(--cyan);box-shadow:0 4px 20px #0d4f6c14;transform:translateY(-2px)}.pc-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.pc-icon{width:38px;height:38px;border-radius:8px;background:var(--cyan-pale);color:var(--teal);display:grid;place-items:center;font:700 14px var(--mono);flex-shrink:0}.pc-title-block{flex:1;margin-left:12px}.pc-name{font:700 14px var(--sans);color:var(--teal-nav);margin:0 0 4px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pc-stack{font:500 10px var(--mono);color:var(--teal-mid);letter-spacing:.02em}.diag-pill{display:inline-flex;align-items:center;gap:6px;font:600 10px var(--sans);padding:4px 10px;border-radius:12px;letter-spacing:.04em}.diag-pill .dot{width:6px;height:6px;border-radius:50%}.diag-ok-pill{background:var(--diag-ok-bg);color:var(--diag-ok-text)}.diag-ok-pill .dot{background:var(--diag-ok)}.diag-warn-pill{background:var(--diag-warn-bg);color:var(--diag-warn-text)}.diag-warn-pill .dot{background:var(--diag-warn)}.diag-danger-pill{background:var(--diag-danger-bg);color:var(--diag-danger-text)}.diag-danger-pill .dot{background:var(--diag-danger)}.diag-crit-pill{background:var(--diag-crit-bg);color:var(--diag-crit-text)}.diag-crit-pill .dot{background:var(--diag-crit)}.diag-unknown-pill{background:#f1f5f9;color:var(--muted)}.diag-unknown-pill .dot{background:var(--muted)}.pc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px;padding:12px 0;border-top:1px solid var(--border-light);border-bottom:1px solid var(--border-light)}.pc-stat-label{font:600 9px var(--sans);color:var(--muted);letter-spacing:.06em;text-transform:uppercase}.pc-stat-val{font:700 16px var(--mono);color:var(--teal-nav);margin-top:2px}.pc-services{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px}.svc-chip{display:inline-flex;align-items:center;gap:4px;background:var(--cyan-pale);color:var(--teal);font:500 10px var(--mono);padding:3px 8px;border-radius:4px}.svc-chip .svc-dot{width:5px;height:5px;border-radius:50%;background:var(--diag-ok)}.svc-chip.warn .svc-dot{background:var(--diag-warn)}.svc-chip.crit .svc-dot{background:var(--diag-crit)}.svc-chip.unknown .svc-dot{background:var(--muted)}.pc-ips{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:12px;padding:8px 10px;background:var(--offwhite);border:1px solid var(--border-light);border-radius:6px}.pc-ip{display:inline-flex;align-items:center;gap:7px;font:500 11px var(--mono);color:var(--teal-mid);font-variant-numeric:tabular-nums;letter-spacing:.01em}.pc-ip+.pc-ip{border-left:1px solid var(--border);padding-left:10px}.pc-ip:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--teal-mid);opacity:.55;flex-shrink:0}.pc-ip-host{font:600 9px var(--sans);color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.pc-ip-ports{font:500 9px var(--mono);color:var(--teal);background:var(--cyan-pale);padding:1px 6px;border-radius:3px;font-variant-numeric:tabular-nums;letter-spacing:.02em}.pc-footer{display:flex;justify-content:space-between;align-items:center;font:500 10px var(--sans);color:var(--muted);margin-top:auto}.pc-link{color:var(--teal);font-weight:600}.pc-link:hover{color:var(--cyan)}.env-badge{display:inline-block;font:700 9px var(--mono);padding:2px 7px;border-radius:4px;letter-spacing:.04em}.env-prod{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.env-dev{background:#f0f9ff;color:#075985;border:1px solid #bae6fd}.env-stage{background:#fefce8;color:#854d0e;border:1px solid #fde68a}.card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:24px}.smart-table{width:100%;border-collapse:collapse;font:400 12px var(--sans)}.smart-table thead th{text-align:left;font:600 10px var(--sans);color:var(--muted);letter-spacing:.08em;text-transform:uppercase;padding:10px 12px;border-bottom:2px solid var(--border);background:var(--offwhite)}.smart-table .col-num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}.smart-table tbody td{padding:12px;border-bottom:1px solid var(--border-light);color:#374151}.smart-table tbody tr:hover{background:var(--offwhite)}.col-name{font-weight:600;color:var(--teal-nav)}.code-mono{font:500 11px var(--mono);color:var(--teal-mid)}.ai-card{background:linear-gradient(135deg,var(--ai-blue-bg),#fff);border:1px solid var(--ai-blue-brd);border-radius:12px;padding:20px;margin:16px 0}.ai-badge{display:inline-flex;align-items:center;gap:6px;background:var(--ai-violet-bg);color:var(--ai-violet);font:700 10px var(--sans);padding:4px 10px;border-radius:12px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px}.ai-title{font:700 14px var(--sans);color:var(--ai-text);margin:0 0 6px}.ai-body{font:400 12px var(--sans);color:#475569;line-height:1.6;margin:0}.state-loading,.state-error,.state-empty{text-align:center;padding:48px 24px;color:var(--muted);font:500 13px var(--sans)}.state-error{color:var(--diag-crit-text)}.app-footer{text-align:center;padding:32px 0;font:500 10px var(--mono);color:var(--muted);letter-spacing:.04em}.react-flow__node-service{background:transparent;border:0;padding:0;width:280px;box-sizing:border-box;font-family:var(--sans)}.rf-node{position:relative;background:#fff;border:1px solid var(--border);border-radius:12px;padding:14px 16px 12px;box-shadow:0 1px 2px #0d4f6c0a;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.rf-node:hover,.react-flow__node-service.selected .rf-node{border-color:var(--cyan);box-shadow:0 8px 28px #0d4f6c1a;transform:translateY(-1px)}.rf-node-main{display:grid;grid-template-columns:36px 1fr;gap:12px;align-items:start}.rf-node-icon{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;font-size:18px;line-height:1;background:var(--cyan-pale, #e6fafa);color:var(--teal, #0d6a7a);border-radius:9px;border:1px solid rgba(34,211,200,.25);flex-shrink:0}.rf-node-unknown .rf-node-icon{background:#f4f4f5;color:#71717a;border-color:#e4e4e7}.rf-node-info{min-width:0}.rf-node-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.rf-node-type{font:600 9px var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.rf-node-role{display:inline-flex;align-items:center;padding:1px 6px;border-radius:4px;font:700 9px var(--mono);letter-spacing:.08em;background:var(--diag-ok-bg);color:var(--diag-ok-text);border:1px solid var(--diag-ok)}.rf-node-role-master,.rf-node-role-primary{background:var(--diag-ok-bg);color:var(--diag-ok-text);border-color:var(--diag-ok)}.rf-node-role-slave,.rf-node-role-replica,.rf-node-role-secondary{background:var(--cyan-pale);color:var(--teal);border-color:var(--cyan)}.rf-node-role-unknown{background:#f4f4f5;color:#71717a;border-color:#d4d4d8;letter-spacing:.12em}.rf-node-unknown{opacity:.82}.rf-node-unknown .rf-node{border-style:dashed;background:#fafafa}.rf-node-unknown .rf-node-name{color:#52525b}.rf-node-host-unknown .rf-node-ip{color:#a1a1aa;font-style:italic;letter-spacing:0;text-transform:none;font-weight:500}.rf-node-name{font:700 15px var(--sans);color:var(--teal-nav);margin-top:4px;line-height:1.25;word-break:break-word;overflow-wrap:anywhere}.rf-node-host{display:flex;flex-direction:column;gap:1px;margin-top:6px}.rf-node-ip{font:600 11px var(--mono);color:var(--teal);letter-spacing:.02em}.rf-node-hostname{font:600 9px var(--mono);color:var(--muted);letter-spacing:.08em}.rf-node-status{display:flex;align-items:center;gap:6px;margin-top:8px;font:500 10px var(--sans);color:var(--muted)}.rf-node-actions{display:flex;flex-wrap:wrap;gap:6px;border-top:1px dashed var(--border);max-height:0;overflow:hidden;opacity:0;transition:max-height .25s ease,opacity .15s ease,padding-top .15s ease,margin-top .15s ease;padding-top:0;margin-top:0;border-top-color:transparent}.react-flow__node-service:hover .rf-node-actions,.react-flow__node-service.selected .rf-node-actions{max-height:80px;opacity:1;padding-top:10px;margin-top:10px;border-top-color:var(--border)}.rf-node-action{display:inline-flex;align-items:center;gap:4px;padding:5px 9px;border-radius:6px;font:600 10px var(--sans);letter-spacing:.04em;text-transform:uppercase;text-decoration:none;cursor:pointer;border:1px solid var(--cyan-pale);background:#fff;color:var(--teal);transition:background .15s ease,border-color .15s ease,color .15s ease}.rf-node-action:hover{background:var(--cyan-pale);border-color:var(--cyan);color:var(--teal-nav)}.rf-node-action-ico{font-size:11px;line-height:1}.rf-node-action-ssh{color:var(--midnight)}.rf-node-action-ssh:hover{background:var(--midnight);color:#fff;border-color:var(--midnight)}.rf-status-dot{width:6px;height:6px;border-radius:50%;background:var(--diag-ok)}.rf-status-dot.warn{background:var(--diag-warn)}.rf-status-dot.danger{background:var(--diag-danger)}.rf-status-dot.crit{background:var(--diag-crit)}.rf-status-dot.unknown{background:var(--muted)}.react-flow__handle{background:var(--teal-mid);width:8px;height:8px;border:2px solid #fff}.react-flow__edge-path{stroke:#cbd5e1;stroke-width:1.5}.react-flow__edge.selected .react-flow__edge-path{stroke:var(--cyan);stroke-width:2}.react-flow__edge-textbg{fill:#fff}.react-flow__edge-text{font-family:var(--mono, monospace)}@media (max-width: 1024px){.hero{grid-template-columns:1fr}.kpi-strip{grid-template-columns:repeat(2,1fr)}}.btn-secondary{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.35);padding:9px 18px;border-radius:8px;font:700 12px var(--sans);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;transition:all .15s}.btn-secondary:hover{background:#ffffff1a;border-color:var(--cyan);color:var(--cyan)}.auth-gate{display:grid;place-items:center;min-height:calc(100vh - 154px);padding:24px}.auth-gate-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:32px 36px;max-width:480px;width:100%;box-shadow:0 4px 24px #0d4f6c14;text-align:center}.auth-gate-card h2{font:800 22px var(--sans);color:var(--teal-nav);margin:0 0 12px;letter-spacing:-.01em}.auth-gate-card p{font:400 13px var(--sans);color:#475569;line-height:1.6;margin:0 0 12px}.auth-gate-card p.muted{color:var(--muted);font-size:12px}.auth-gate-card code{font:600 11px var(--mono);background:var(--cyan-pale);color:var(--teal);padding:1px 6px;border-radius:4px}.auth-gate-cta{display:inline-block;margin-top:14px;text-decoration:none}.container{max-width:1280px;margin:0 auto;padding:0 24px}.page{padding:0 0 64px;min-height:calc(100vh - 64px)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;margin:24px 0 48px}.state-loading,.state-error,.state-empty{padding:32px;text-align:center;border-radius:12px;font:500 14px var(--font-sans, "Manrope", sans-serif);margin:24px 0}.state-loading{background:#38bdf81a;color:var(--frm-info, #38BDF8);border:1px solid rgba(56,189,248,.24)}.state-error{background:#ef444414;color:#fca5a5;border:1px solid rgba(239,68,68,.28)}.state-empty{background:var(--frm-surface, #151A2C);color:var(--frm-text-muted, #94A3B8);border:1px dashed rgba(148,163,184,.24)}.btn-back{display:inline-flex;align-items:center;gap:6px;font:600 13px var(--font-sans, "Manrope", sans-serif);color:var(--frm-info, #38BDF8);text-decoration:none;margin:24px 0 16px;padding:6px 12px;border-radius:6px;background:#38bdf81a;border:1px solid rgba(56,189,248,.24);transition:all .2s}.btn-back:hover{background:#38bdf82e;color:var(--frm-text, #F8FAFC);border-color:#38bdf86b}.detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:8px}.detail-title{font:700 28px var(--font-sans, "Manrope", sans-serif);color:var(--frm-text, #F8FAFC);margin:0}.detail-domain{font:500 13px var(--font-mono, "JetBrains Mono", monospace);color:var(--frm-text-muted, #94A3B8);margin-top:4px}.detail-head-meta{display:flex;gap:8px;align-items:center}.detail-desc{font:400 15px var(--font-sans, "Manrope", sans-serif);color:var(--frm-text-muted, #94A3B8);max-width:720px;margin:0 0 24px;line-height:1.55}.detail-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:32px}.stat{background:linear-gradient(180deg,#151a2cf5,#101423eb);border:1px solid rgba(148,163,184,.16);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:4px}.stat-label{font:500 11px var(--font-sans, "Manrope", sans-serif);text-transform:uppercase;letter-spacing:.06em;color:var(--frm-text-muted, #94A3B8)}.stat-value{font:600 22px var(--font-mono, "JetBrains Mono", monospace);color:var(--frm-text, #F8FAFC)}.section-title{font:700 18px var(--font-sans, "Manrope", sans-serif);color:var(--frm-text, #F8FAFC);margin:24px 0 12px}.rf-wrap{height:720px;border-radius:8px;overflow:hidden;background:radial-gradient(circle at 20% 0%,rgba(56,189,248,.08),transparent 28rem),linear-gradient(180deg,#0a0d1af2,#070913fa);border:1px solid rgba(148,163,184,.18)}@media (max-width: 720px){.detail-head{flex-direction:column}.rf-wrap{height:520px}}.cmdb{padding:28px 36px 60px}.cmdb .page-head{display:flex;align-items:flex-end;gap:18px;margin-bottom:22px}.cmdb .page-crumb{font:600 10px var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px}.cmdb .page-crumb b{color:var(--teal)}.cmdb .page-title{font:800 28px var(--sans);color:var(--teal-nav);margin:0;letter-spacing:-.01em}.cmdb .page-title .small{font:500 14px var(--sans);color:var(--muted);letter-spacing:0}.cmdb .tabs{display:flex;gap:6px;border-bottom:1px solid var(--border);margin-bottom:22px}.cmdb .tab{padding:11px 16px;font:600 12.5px var(--sans);color:var(--muted);cursor:pointer;border:0;border-bottom:2px solid transparent;background:transparent;display:flex;align-items:center;gap:8px}.cmdb .tab:hover{color:var(--teal)}.cmdb .tab.act{color:var(--teal-nav);border-bottom-color:var(--cyan)}.cmdb .tab-num{font:600 10px var(--mono);background:#e8f4f7;color:var(--teal);padding:1px 7px;border-radius:99px}.cmdb .tab.act .tab-num{background:var(--teal);color:#fff}.cmdb .page-actions{margin-left:auto;display:flex;gap:10px}.cmdb .btn-warn{background:#fff;color:#92400e;border-color:#f59e0b;position:relative}.cmdb .btn-warn:hover{background:#fef3c7}.cmdb .btn-warn .badge{margin-left:6px;background:#f59e0b;color:#fff;font:700 10px var(--mono);padding:1px 7px;border-radius:99px}.cmdb .card{background:#fff;border:1px solid var(--border-light);border-radius:12px;box-shadow:0 1px 2px #0d4f6c0a}.cmdb .toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--border-light)}.cmdb .toolbar input,.cmdb .toolbar select{padding:9px 12px;border:1px solid var(--border);border-radius:8px;font:400 13px var(--sans);background:var(--offwhite);outline:none}.cmdb .toolbar .search-inp{flex:1;max-width:420px}.cmdb .repo-id{font:700 14px var(--sans);color:var(--teal-nav)}.cmdb .view-switch{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--offwhite)}.cmdb .view-switch button{padding:8px 14px;border:0;background:transparent;font:600 12px var(--sans);color:var(--muted);cursor:pointer}.cmdb .view-switch button.act{background:#fff;color:var(--teal);box-shadow:inset 0 0 0 1px var(--teal-mid)}.cmdb .sort-by{display:flex;align-items:center;gap:7px;font:500 12.5px var(--sans);color:var(--muted)}.cmdb .chips{display:flex;flex-wrap:wrap;gap:7px;padding:14px 18px;border-bottom:1px solid var(--border-light)}.cmdb .chip{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:99px;border:1px solid var(--border);background:#fff;font:600 11.5px var(--sans);color:var(--muted);cursor:pointer;transition:.15s}.cmdb .chip:hover{border-color:var(--teal-mid);color:var(--teal)}.cmdb .chip.act{background:var(--teal);color:#fff;border-color:var(--teal)}.cmdb .chip .n{font:600 10px var(--mono);padding:0 6px;border-radius:99px;background:#e8f4f7;color:var(--teal)}.cmdb .chip.act .n{background:#ffffff2e;color:#fff}.cmdb .btn{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border-radius:8px;font:600 12.5px var(--sans);cursor:pointer;border:1px solid transparent}.cmdb .btn-primary{background:var(--teal);color:#fff}.cmdb .btn-primary:hover{background:var(--teal-hover, #0f5a7a)}.cmdb .btn-primary:disabled{opacity:.5;cursor:not-allowed}.cmdb .btn-ghost{background:#fff;color:var(--teal);border-color:var(--border)}.cmdb .btn-ghost:disabled{opacity:.45;cursor:not-allowed;color:var(--muted)}.cmdb .btn-ghost:hover:not(:disabled){background:var(--cyan-pale, #e8f4f7)}.cmdb .smart-table{width:100%;border-collapse:collapse;font-size:13px}.cmdb .smart-table thead th{font:600 10px var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:left;padding:11px 16px;border-bottom:1px solid var(--border-light);background:var(--offwhite)}.cmdb .smart-table tbody td{padding:11px 16px;border-bottom:1px solid var(--border-light);vertical-align:middle}.cmdb .smart-table tbody tr:hover{background:#fafdfd}.cmdb .smart-table tbody tr.selected{background:#f0fafa}.cmdb .smart-table .col-name{font-weight:600;color:var(--teal-nav)}.cmdb .host-link{color:inherit;text-decoration:none;cursor:pointer;display:block}.cmdb .host-link:hover{color:var(--teal);text-decoration:underline;text-decoration-color:var(--teal-mid);text-underline-offset:2px}.cmdb .host-link:hover .muted{color:var(--teal-mid)}.cmdb .smart-table .col-ip{font:500 12.5px var(--mono);color:var(--teal-mid);font-variant-numeric:tabular-nums}.cmdb .smart-table .col-act{text-align:right;white-space:nowrap}.cmdb .icon-btn{background:transparent;border:0;cursor:pointer;padding:4px 6px;border-radius:6px;font-size:14px;color:var(--muted)}.cmdb .icon-btn:hover{background:var(--cyan-pale);color:var(--teal)}.cmdb .icon-btn.danger:hover{background:var(--diag-crit-bg, #fee2e2);color:var(--diag-crit-text, #991b1b)}.cmdb .gchip{display:inline-flex;align-items:center;padding:2px 9px;border-radius:99px;background:var(--cyan-pale);color:var(--teal);font:600 10.5px var(--sans);margin-right:4px}.cmdb .gchip.tone-0{background:#e0f7f6;color:#0f766e}.cmdb .gchip.tone-1{background:#fef3c7;color:#92400e}.cmdb .gchip.tone-2{background:#fde68a;color:#78350f}.cmdb .gchip.tone-3{background:#dbeafe;color:#1e40af}.cmdb .gchip.tone-4{background:#fce7f3;color:#9d174d}.cmdb .gchip.tone-5{background:#e0e7ff;color:#3730a3}.cmdb .gchip.tone-6{background:#d1fae5;color:#065f46}.cmdb .gchip.tone-7{background:#ffedd5;color:#9a3412}.cmdb .group-sec{padding:0 18px}.cmdb .group-head{display:flex;align-items:center;gap:12px;padding:18px 0 10px;border-top:1px solid var(--border-light)}.cmdb .group-head:first-child{border-top:none;padding-top:8px}.cmdb .group-head h3{font:700 13px var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--teal-nav);margin:0}.cmdb .group-head .count{font:600 10px var(--mono);background:#e8f4f7;color:var(--teal);padding:2px 9px;border-radius:99px}.cmdb .bulk-bar{display:flex;gap:10px;align-items:center;padding:10px 18px;background:var(--teal-mid, #0e7490);color:#fff;margin:14px 18px;border-radius:10px;font:600 12.5px var(--sans)}.cmdb .bulk-bar .actions{margin-left:auto;display:flex;gap:8px}.cmdb .bulk-bar .b-btn{background:#ffffff1f;border:1px solid rgba(255,255,255,.22);color:#fff;padding:5px 11px;border-radius:6px;font:600 11.5px var(--sans);cursor:pointer}.cmdb .bulk-bar .b-btn.danger{background:#dc2626;border-color:#dc2626}.cmdb .tfoot{display:flex;align-items:center;gap:16px;padding:14px 18px;font-size:12.5px;color:var(--muted)}.cmdb .pager{display:flex;gap:8px;margin-left:auto;align-items:center}.cmdb .pager button{width:28px;height:28px;border:1px solid var(--border);background:#fff;border-radius:6px;cursor:pointer}.cmdb .diff-table{width:100%;border-collapse:collapse}.cmdb .diff-table thead th{font:600 10px var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:left;padding:11px 16px;border-bottom:1px solid var(--border-light);background:var(--offwhite)}.cmdb .diff-table tbody td{padding:10px 16px;border-bottom:1px solid var(--border-light);vertical-align:top}.cmdb .diff-host{font-weight:600;color:var(--teal-nav)}.cmdb .diff-val{font:500 12.5px var(--mono);padding:2px 7px;border-radius:5px;display:inline-block}.cmdb .diff-val.git{background:#e0f2fe;color:#075985}.cmdb .diff-val.db{background:#fef3c7;color:#92400e}.cmdb .diff-val.same{background:transparent;color:var(--muted)}.cmdb .diff-val.absent{color:var(--muted);font-style:italic;background:transparent}.cmdb .diff-field{padding-left:16px;color:#475569;font-size:12.5px}.cmdb .diff-field .lbl{font:600 10px var(--sans);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-right:6px}.cmdb .diff-table tr.field-row td{border-bottom:1px dashed var(--border-light);padding-top:6px;padding-bottom:6px}.cmdb .diff-table tr.field-row:last-of-type td{border-bottom:1px solid var(--border-light)}.cmdb .diff-row.new{background:#f0fdf4}.cmdb .diff-row.removed{background:#fef2f2}.cmdb .diff-action{display:inline-block;font:700 10px var(--mono);padding:2px 8px;border-radius:5px;margin-right:8px}.cmdb .diff-action.new{background:#d1fae5;color:#065f46}.cmdb .diff-action.removed{background:#fee2e2;color:#991b1b}.cmdb .diff-action.changed{background:#dbeafe;color:#1e40af}.cmdb .diff-summary{display:flex;gap:18px;padding:14px 18px;background:var(--offwhite);border-bottom:1px solid var(--border-light)}.cmdb .diff-stat{font:600 11px var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);display:flex;align-items:center;gap:6px}.cmdb .diff-stat .n{font:700 16px var(--mono);color:var(--teal-nav)}.cmdb .diff-stat.add .n{color:#10b981}.cmdb .diff-stat.del .n{color:#ef4444}.cmdb .diff-stat.mod .n{color:#1e40af}.cmdb .radio-group{display:flex;gap:14px;font-size:12.5px}.cmdb .radio-group label{display:inline-flex;align-items:center;gap:5px;cursor:pointer}.cmdb .modal-mock{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a6b;display:flex;justify-content:center;align-items:center;z-index:100}.cmdb .modal-card{width:540px;max-width:95vw;background:#fff;border-radius:14px;box-shadow:0 20px 50px #0d4f6c2e;overflow:hidden}.cmdb .modal-head{padding:18px 22px;border-bottom:1px solid var(--border-light);display:flex;align-items:center}.cmdb .modal-head h2{font:700 16px var(--sans);color:var(--teal-nav);margin:0}.cmdb .modal-head .x{margin-left:auto;font-size:18px;color:var(--muted);background:transparent;border:0;cursor:pointer}.cmdb .modal-body{padding:18px 22px}.cmdb .field{margin-bottom:14px}.cmdb .field label{display:block;font:600 10px var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:5px}.cmdb .field input{width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:7px;font:400 13px var(--sans);background:var(--offwhite);outline:none}.cmdb .field-chips{display:flex;flex-wrap:wrap;gap:6px;padding:6px;border:1px solid var(--border);border-radius:8px;background:var(--offwhite)}.cmdb .field-chips .chip{padding:4px 9px}.cmdb .modal-foot{padding:14px 22px;background:var(--offwhite);display:flex;gap:10px;justify-content:flex-end;border-top:1px solid var(--border-light)}.modal-mock{position:fixed;top:0;right:0;bottom:0;left:0;background:#1618217a;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;justify-content:center;align-items:center;z-index:100;padding:24px}.modal-card{width:540px;max-width:95vw;background:#fff;border:1px solid var(--line, #E8E8EF);border-radius:14px;box-shadow:0 24px 64px #16182138;overflow:hidden}.modal-head{padding:18px 22px;border-bottom:1px solid var(--line, #E8E8EF);display:flex;align-items:center;gap:12px}.modal-head h2{font:800 16px var(--sans);color:var(--ink-1, #161821);margin:0;letter-spacing:-.01em}.modal-head .x{margin-left:auto;width:32px;height:32px;border-radius:8px;border:1px solid var(--line, #E8E8EF);background:#fff;font-size:16px;color:var(--ink-3, #5A5E70);cursor:pointer}.modal-body{padding:18px 22px}.modal-foot{padding:14px 22px;background:var(--surface-2, #FAFAFE);display:flex;gap:10px;justify-content:flex-end;border-top:1px solid var(--line, #E8E8EF)}.modal-card .field{margin-bottom:14px}.modal-card .field label{display:block;font:800 10px var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-4, #8A8EA0);margin-bottom:5px}.modal-card input,.modal-card select,.modal-card textarea{border:1px solid var(--line, #E8E8EF);border-radius:8px;font:400 13px var(--sans);color:var(--ink-2, #2A2D3A);background:var(--surface-2, #FAFAFE);outline:none}.modal-card .field input,.modal-card .field select{width:100%;padding:9px 11px}.modal-card textarea{padding:9px 11px}.modal-card input:focus,.modal-card select:focus,.modal-card textarea:focus{border-color:var(--violet, #6366F1);box-shadow:0 0 0 3px #6366f124}.modal-card .field-chips{display:flex;flex-wrap:wrap;gap:6px;padding:6px;border:1px solid var(--line, #E8E8EF);border-radius:8px;background:var(--surface-2, #FAFAFE)}.modal-card .chip{display:inline-flex;align-items:center;gap:7px;padding:4px 9px;border-radius:999px;border:1px solid var(--line, #E8E8EF);background:#fff;font:700 11.5px var(--sans);color:var(--ink-3, #5A5E70)}.modal-card .chip.act{background:linear-gradient(135deg,#6366f1,#8b5cf6);border-color:transparent;color:#fff}.modal-card .card{background:#fff;border:1px solid var(--line, #E8E8EF);border-radius:12px;box-shadow:0 1px #00000005}.modal-card .alert{margin:0 0 12px;padding:10px 12px;border-radius:9px;background:#fef2f2;color:#991b1b;font:600 12.5px var(--sans);border:1px solid #FECACA}.modal-card .btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 14px;border-radius:8px;font:700 12.5px var(--sans);cursor:pointer;border:1px solid transparent}.modal-card .btn-primary{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;box-shadow:0 4px 14px #6366f147}.modal-card .btn-primary:disabled,.modal-card .btn-ghost:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.modal-card .btn-ghost{background:#fff;color:var(--ink-2, #2A2D3A);border-color:var(--line, #E8E8EF)}.modal-card .icon-btn{width:28px;height:28px;border:1px solid var(--line, #E8E8EF);background:#fff;color:var(--ink-3, #5A5E70);border-radius:7px;cursor:pointer;display:inline-grid;place-items:center}.modal-card .icon-btn.danger{color:#b91c1c}.modal-card .muted{color:var(--ink-4, #8A8EA0)}.modal-card .small{font-size:12px}.cmdb .alert{margin:12px 18px;padding:10px 14px;border-radius:8px;background:#fee2e2;color:#991b1b;font:500 12.5px var(--sans);border:1px solid #fecaca}.cmdb .alert.ok{background:#d1fae5;color:#065f46;border-color:#a7f3d0}.cmdb .muted{color:var(--muted)}.cmdb .small{font-size:12px}.cmdb .center{text-align:center;padding:20px}.cmdb .drift-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 16px;margin:0 0 18px;border-radius:10px;font:500 12.5px var(--sans);border:1px solid transparent}.cmdb .drift-banner--warn{background:#fff7ed;color:#9a3412;border-color:#fed7aa}.cmdb .drift-banner--error{background:#f1f5f9;color:#475569;border-color:#cbd5e1}.cmdb .drift-banner__icon{font-size:16px;line-height:1}.cmdb .drift-banner__msg{flex:0 1 auto}.cmdb .drift-banner__msg strong{font-weight:700;color:inherit}.cmdb .drift-banner__preview{font:500 11.5px var(--mono);background:#ffffff8c;padding:2px 8px;border-radius:6px;max-width:380px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:help}.cmdb .drift-banner__meta{margin-left:auto;font:500 11px var(--sans);color:inherit;opacity:.75}.cmdb .drift-banner .btn-sm{padding:5px 11px;font:600 11.5px var(--sans);border-radius:6px}@media (max-width: 760px){.modal-mock{align-items:stretch;padding:12px}.modal-card{max-width:100%;max-height:calc(100vh - 24px)}.cmdb{padding:24px 16px 48px;overflow-x:hidden}.cmdb .page-head{align-items:flex-start;flex-direction:column;gap:12px}.cmdb .page-actions{margin-left:0;flex-wrap:wrap}.cmdb .tabs{max-width:100%;overflow-x:auto;scrollbar-width:thin}.cmdb .tab{flex:0 0 auto;padding:10px 12px}.cmdb .card{max-width:100%;overflow:hidden}.cmdb .drift-banner{align-items:flex-start;flex-direction:column}.cmdb .drift-banner__meta{margin-left:0}}
