@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&family=Space+Grotesk:wght@600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--fam-bg:#f2f1ef;--fam-surface:#fff;--fam-surface-muted:#f3f4f6;--fam-ink:#1a1a1a;--fam-muted:#6b7280;--fam-subtle:#9ca3af;--fam-line:#e5e7eb;--fam-sidebar:#111118;--fam-sidebar-hover:#1b1b24;--fam-sidebar-text:#fff;--fam-gold:#c8a951;--fam-gold-soft:#fef3c7;--fam-burgundy:#8b1a3a;--fam-burgundy-dark:#6b1428;--fam-blue:#1d4ed8;--fam-blue-soft:#dbeafe;--fam-blue-weak:#eff6ff;--fam-slate:#475569;--fam-success:#15803d;--fam-success-soft:#dcfce7;--fam-warning:#92400e;--fam-warning-soft:#fef3c7;--fam-critical:#991b1b;--fam-critical-soft:#fee2e2;--fam-radius-sm:8px;--fam-radius-md:10px;--fam-radius-lg:14px;--fam-radius-full:9999px;--fam-space-xs:.25rem;--fam-space-sm:.5rem;--fam-space-md:1rem;--fam-space-lg:1.5rem;--fam-space-xl:2rem;--fam-font:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--fam-font-heading:"Space Grotesk", "Inter", ui-sans-serif, system-ui, sans-serif;--fam-font-mono:"JetBrains Mono", ui-monospace, monospace;--fam-fs-display:32px;--fam-fs-headline:24px;--fam-fs-title:18px;--fam-fs-body:14px;--fam-fs-sm:12px;--fam-fs-caps:11px;--fam-shadow-sm:0 1px 2px #1111180f;--fam-shadow-md:0 4px 16px #11111814;--fab-bg-0:#f9f7f6;--fab-bg-1:#f5f2f0;--fab-bg-2:#ffffffd6;--fab-bg-3:#fff;--fab-bg-hover:#ebf0fa;--fab-bg-active:#dde7f8;--fab-bg-glass:#f5f2f0cc;--fab-bg-card:#ffffffd1;--fab-border:#626a7a29;--fab-border-light:#626a7a47;--fab-border-focus:var(--fab-shield-blue);--fab-text-0:#1c1e21;--fab-text-1:#464c58;--fab-text-2:#646c7d;--fab-text-muted:#868e9c;--fab-shield-blue:#3981f3;--fab-shield-dark:#0055bd;--fab-shield-light:#2672e3;--fab-gold:#92befc;--fab-gold-light:#dbe8ff;--fab-gold-dark:#2967bc;--fab-gradient-header:linear-gradient(135deg, #3981f3, #2672e3);--fab-gradient-card:linear-gradient(135deg, #ffffffe6, #ffffffb3);--fab-success:#299958;--fab-success-bg:#2999581f;--fab-critical:#c82828;--fab-critical-bg:#c828281f;--fab-high:#f57119;--fab-high-bg:#f571191f;--fab-medium:#f0ac19;--fab-medium-bg:#f0ac1924;--fab-low:#1c96ca;--fab-low-bg:#1c96ca1f;--fab-info:#3981f3;--fab-info-bg:#3981f31f;--fab-font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--fab-font-display:"Space Grotesk", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--fab-font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--fab-fs-xs:.6875rem;--fab-fs-sm:.75rem;--fab-fs-base:.8125rem;--fab-fs-md:.875rem;--fab-fs-lg:1rem;--fab-fs-xl:1.25rem;--fab-fs-2xl:1.5rem;--fab-fs-3xl:2rem;--fab-sidebar-w:240px;--fab-sidebar-w-min:56px;--fab-header-h:48px;--fab-content-max:1200px;--fab-glass-blur:12px;--fab-glass-border:1px solid #ffffff4d;--fab-shadow-sm:0 1px 2px #1b1c1c0a;--fab-shadow-card:0 2px 12px #1b22320f;--fab-shadow-md:0 16px 36px #1b1c1c14;--fab-shadow-hover:0 4px 20px #1b22321a;--fab-shadow-lg:0 24px 48px #1b1c1c1a;--fab-shadow-modal:0 8px 32px #1b223226;--fab-shadow-glow:0 18px 36px #3b82f629;--fab-radius-sm:4px;--fab-radius-md:8px;--fab-radius-lg:12px;--fab-radius-xl:16px;--fab-radius-full:9999px;--fab-space-1:.25rem;--fab-space-2:.5rem;--fab-space-3:.75rem;--fab-space-4:1rem;--fab-space-5:1.25rem;--fab-space-6:1.5rem;--fab-space-8:2rem;--fab-space-10:2.5rem;--fab-space-12:3rem;--fab-z-base:1;--fab-z-sticky:100;--fab-z-dropdown:200;--fab-z-modal:300;--fab-z-toast:400;--fab-z-tooltip:500;--fab-ease:cubic-bezier(.4, 0, .2, 1);--fab-duration:.18s;--fab-dur-slow:.35s;--fab-transition:.2s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--fab-font-sans);color:var(--fab-text-0);background:var(--fab-bg-0);line-height:1.6}h1,h2,h3,h4{font-family:var(--fab-font-display);font-weight:600;line-height:1.3}h1{font-size:1.75rem}h2{font-size:1.375rem}h3{font-size:1.125rem}code,pre{font-family:var(--fab-font-mono)}.app-frame{min-height:100vh}.sidebar{background:var(--fab-bg-1);border-right:1px solid var(--fab-border);width:var(--fab-sidebar-w);z-index:100;flex-direction:column;padding:1.25rem 0;display:flex;position:fixed;top:0;bottom:0;left:0}.main-content{margin-left:var(--fab-sidebar-w);min-height:100vh;width:calc(100% - var(--fab-sidebar-w));padding:2rem 2.5rem}.sidebar-brand{align-items:center;gap:.75rem;margin-bottom:2rem;padding:0 1.25rem;display:flex}.sidebar-brand-icon{width:32px;height:32px;color:var(--fab-shield-blue)}.sidebar-brand-name{font-family:var(--fab-font-display);background:var(--fab-gradient-header);-webkit-text-fill-color:transparent;letter-spacing:.05em;-webkit-background-clip:text;background-clip:text;font-size:1.125rem;font-weight:700}.nav-section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--fab-text-2);margin:1.5rem 0 .5rem;padding:0 1.25rem;font-size:.6875rem;font-weight:600}.nav-link{color:var(--fab-text-1);transition:all var(--fab-transition);border-left:3px solid #0000;border-radius:0;align-items:center;gap:.75rem;padding:.5rem 1.25rem;font-size:.875rem;font-weight:500;text-decoration:none;display:flex}.nav-link:hover{background:var(--fab-bg-2);color:var(--fab-text-0)}.nav-link.active{color:var(--fab-shield-blue);border-left-color:var(--fab-shield-blue);background:#2d72d214;font-weight:600}.nav-link svg{flex-shrink:0;width:18px;height:18px}.page-header{margin-bottom:2rem}.page-title{color:var(--fab-text-0);margin-bottom:.25rem;font-size:1.5rem}.page-subtitle{color:var(--fab-text-2);font-size:.875rem}.section-card{background:var(--fab-bg-card);border:var(--fab-glass-border);border-radius:var(--fab-radius-lg);box-shadow:var(--fab-shadow-card);-webkit-backdrop-filter:blur(var(--fab-glass-blur));backdrop-filter:blur(var(--fab-glass-blur));transition:box-shadow var(--fab-transition);padding:1.5rem}.section-card:hover{box-shadow:var(--fab-shadow-hover)}.stat-card{background:var(--fab-bg-card);border:var(--fab-glass-border);border-radius:var(--fab-radius-md);box-shadow:var(--fab-shadow-card);-webkit-backdrop-filter:blur(var(--fab-glass-blur));backdrop-filter:blur(var(--fab-glass-blur));padding:1.25rem}.stat-card-value{font-family:var(--fab-font-display);color:var(--fab-text-0);font-size:1.75rem;font-weight:700}.stat-card-label{color:var(--fab-text-2);margin-top:.25rem;font-size:.8125rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.button{font-family:var(--fab-font-sans);border-radius:var(--fab-radius-sm);border:1px solid var(--fab-border);color:var(--fab-text-0);cursor:pointer;transition:all var(--fab-transition);background:#fff;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.button:hover{background:var(--fab-bg-1);box-shadow:var(--fab-shadow-card)}.button--primary{background:var(--fab-gradient-header);color:#fff;border:none}.button--primary:hover{opacity:.9;box-shadow:var(--fab-shadow-hover);transform:translateY(-1px)}.button--ghost{background:0 0;border-color:#0000}.button--ghost:hover{background:var(--fab-bg-2)}.button--danger{background:var(--fab-critical);color:#fff;border:none}.button--danger:hover{opacity:.9}.button--sm{padding:.35rem .75rem;font-size:.8125rem}.button svg{width:16px;height:16px}.form-grid{gap:1rem;display:grid}.field{flex-direction:column;gap:.375rem;display:flex}.field-label{color:var(--fab-text-1);font-size:.8125rem;font-weight:600}.form-input{border:1px solid var(--fab-border);border-radius:var(--fab-radius-sm);font-family:var(--fab-font-sans);color:var(--fab-text-0);transition:border-color var(--fab-transition), box-shadow var(--fab-transition);background:#fff;padding:.5rem .75rem;font-size:.875rem}.form-input:focus{border-color:var(--fab-shield-blue);outline:none;box-shadow:0 0 0 3px #2d72d21f}.form-input::placeholder{color:var(--fab-text-2)}select.form-input{cursor:pointer}.data-table{border-collapse:separate;border-spacing:0;width:100%}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--fab-text-2);border-bottom:1px solid var(--fab-border);padding:.75rem 1rem;font-size:.75rem;font-weight:600}.data-table td{border-bottom:1px solid var(--fab-border-light);padding:.75rem 1rem;font-size:.875rem}.data-table tr:hover td{background:var(--fab-bg-1)}.status-dot{border-radius:50%;width:8px;height:8px;margin-right:.5rem;display:inline-block}.status-dot--ok{background:var(--fab-success);box-shadow:0 0 6px var(--fab-success)}.status-dot--warn{background:var(--fab-medium);box-shadow:0 0 6px var(--fab-medium)}.status-dot--error{background:var(--fab-critical);box-shadow:0 0 6px var(--fab-critical)}.status-dot--off{background:var(--fab-text-2)}.severity-badge{border-radius:var(--fab-radius-sm);align-items:center;padding:.2rem .5rem;font-size:.75rem;font-weight:600;display:inline-flex}.severity-badge--success{color:var(--fab-success);background:#29a35c1a}.severity-badge--warning{color:var(--fab-medium);background:#da9c0b1a}.severity-badge--error{color:var(--fab-critical);background:#db24241a}.dropzone{border:2px dashed var(--fab-border);border-radius:var(--fab-radius-lg);text-align:center;cursor:pointer;transition:all var(--fab-transition);background:var(--fab-bg-card);padding:3rem 2rem}.dropzone:hover,.dropzone.active{border-color:var(--fab-shield-blue);background:#2d72d20a}.dropzone-icon{color:var(--fab-shield-blue);margin-bottom:1rem}.dropzone-text{color:var(--fab-text-1);font-size:.9375rem}.dropzone-hint{color:var(--fab-text-2);margin-top:.5rem;font-size:.8125rem}.chat-container{height:calc(100vh - var(--fab-header-h) - 4rem);flex-direction:column;display:flex}.chat-messages{flex-direction:column;flex:1;gap:1rem;padding:1rem 0;display:flex;overflow-y:auto}.chat-message{border-radius:var(--fab-radius-lg);max-width:80%;padding:.875rem 1.125rem;font-size:.9375rem;line-height:1.5;animation:.3s fab-slide-up}.chat-message--user{background:var(--fab-gradient-header);color:#fff;border-bottom-right-radius:var(--fab-radius-sm);align-self:flex-end}.chat-message--assistant{background:var(--fab-bg-card);border:var(--fab-glass-border);box-shadow:var(--fab-shadow-card);border-bottom-left-radius:var(--fab-radius-sm);align-self:flex-start}.chat-message--assistant .agent-badge{color:var(--fab-shield-blue);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.375rem;font-size:.6875rem;font-weight:600}.chat-input-bar{border-top:1px solid var(--fab-border);gap:.75rem;padding:1rem 0;display:flex}.chat-input{border:1px solid var(--fab-border);border-radius:var(--fab-radius-xl);font-family:var(--fab-font-sans);transition:border-color var(--fab-transition);background:#fff;flex:1;padding:.75rem 1rem;font-size:.9375rem}.chat-input:focus{border-color:var(--fab-shield-blue);outline:none;box-shadow:0 0 0 3px #2d72d21f}.chat-send{background:var(--fab-gradient-header);color:#fff;cursor:pointer;width:44px;height:44px;transition:all var(--fab-transition);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.chat-send:hover{box-shadow:var(--fab-shadow-hover);transform:scale(1.05)}.chat-send:disabled{opacity:.5;cursor:not-allowed;transform:none}.progress-bar{background:var(--fab-bg-2);border-radius:3px;height:6px;overflow:hidden}.progress-bar-fill{background:var(--fab-gradient-header);border-radius:3px;height:100%;transition:width .5s}@keyframes fab-fade-in{0%{opacity:0}to{opacity:1}}@keyframes fab-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fab-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes fab-pulse{0%,to{opacity:1}50%{opacity:.6}}.animate-in{animation:.3s fab-slide-up}.empty-state{text-align:center;color:var(--fab-text-2);padding:3rem 2rem}.empty-state svg{opacity:.4;width:48px;height:48px;margin-bottom:1rem}.empty-state-title{color:var(--fab-text-1);margin-bottom:.5rem;font-size:1.125rem;font-weight:600}.dialog-overlay{z-index:200;background:#1b22324d;justify-content:center;align-items:center;animation:.2s fab-fade-in;display:flex;position:fixed;inset:0}.dialog-panel{border-radius:var(--fab-radius-lg);width:90%;max-width:480px;box-shadow:var(--fab-shadow-modal);background:#fff;padding:1.5rem;animation:.2s fab-scale-in}.dialog-title{margin-bottom:1rem;font-size:1.125rem;font-weight:600}.dialog-footer{justify-content:flex-end;gap:.5rem;margin-top:1.5rem;display:flex}.toast{border-radius:var(--fab-radius-md);box-shadow:var(--fab-shadow-modal);z-index:300;border-left:4px solid var(--fab-success);background:#fff;padding:.75rem 1.25rem;font-size:.875rem;animation:.3s fab-slide-up;position:fixed;bottom:1.5rem;right:1.5rem}.toast--error{border-left-color:var(--fab-critical)}.toast--warning{border-left-color:var(--fab-medium)}.sidebar-nav{flex:1}.sidebar-footer{border-top:1px solid var(--fab-border);align-items:center;gap:.5rem;padding:.75rem 1.25rem;display:flex}.sidebar-user{min-width:0;color:var(--fab-text-1);flex:1;align-items:center;gap:.5rem;display:flex}.sidebar-user svg{flex-shrink:0}.sidebar-user-name{text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;font-weight:500;overflow:hidden}.sidebar-logout{color:var(--fab-text-2);cursor:pointer;border-radius:var(--fab-radius-sm);transition:all var(--fab-transition);background:0 0;border:none;flex-shrink:0;align-items:center;padding:.375rem;display:flex}.sidebar-logout:hover{color:var(--fab-critical);background:#db242414}.sidebar-toggle{color:var(--fab-text-2);cursor:pointer;border-radius:var(--fab-radius-sm);transition:all var(--fab-transition);background:0 0;border:none;flex-shrink:0;align-items:center;padding:.375rem;display:flex}.sidebar-toggle:hover{color:var(--fab-shield-blue);background:var(--fab-bg-hover)}.sidebar{transition:width var(--fab-dur-slow) var(--fab-ease)}.sidebar--collapsed{width:var(--fab-sidebar-w-min);align-items:center}.sidebar--collapsed .sidebar-brand{justify-content:center;padding:0}.sidebar--collapsed .sidebar-brand-icon{width:24px;height:24px}.sidebar--collapsed .nav-link{border-left:3px solid #0000;justify-content:center;padding:.625rem 0}.sidebar--collapsed .nav-link.active{border-left-color:var(--fab-shield-blue)}.sidebar--collapsed .sidebar-footer{flex-direction:column;align-items:center;gap:.375rem;padding:.5rem}.main-content{transition:margin-left var(--fab-dur-slow) var(--fab-ease), width var(--fab-dur-slow) var(--fab-ease)}.main-content--sidebar-collapsed{margin-left:var(--fab-sidebar-w-min);width:calc(100% - var(--fab-sidebar-w-min))}.auth-loading{background:var(--fab-bg-0);min-height:100vh;font-family:var(--fab-font-sans);color:var(--fab-text-1);flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;display:flex}.auth-loading-spinner{border:3px solid var(--fab-border);border-top-color:var(--fab-shield-blue);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.auth-error,.auth-denied{background:var(--fab-bg-0);min-height:100vh;font-family:var(--fab-font-sans);justify-content:center;align-items:center;display:flex}.auth-denied-card{background:var(--fab-bg-card);border:var(--fab-glass-border);border-radius:var(--fab-radius-lg);text-align:center;max-width:420px;box-shadow:var(--fab-shadow-modal);-webkit-backdrop-filter:blur(var(--fab-glass-blur));backdrop-filter:blur(var(--fab-glass-blur));padding:2.5rem}.auth-denied-card h2{font-family:var(--fab-font-display);color:var(--fab-critical);margin-bottom:.75rem}.auth-denied-card p{color:var(--fab-text-1);font-size:.9375rem;line-height:1.5}.auth-denied-user{background:var(--fab-bg-1);border-radius:var(--fab-radius-sm);color:var(--fab-text-2);margin-top:1rem;padding:.75rem;font-size:.8125rem}.auth-denied-actions{margin-top:1.5rem}.nav-link span{white-space:nowrap}.button{font-family:var(--fab-font-sans);font-size:var(--fab-fs-md);border:1px solid var(--fab-border);border-radius:var(--fab-radius-md);background:var(--fab-bg-3);color:var(--fab-text-0);cursor:pointer;transition:all var(--fab-duration) var(--fab-ease);white-space:nowrap;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1.25rem;font-weight:500;line-height:1.4;display:inline-flex}.button:hover{background:var(--fab-bg-hover);border-color:var(--fab-border-light);color:var(--fab-text-0)}.button:active{background:var(--fab-bg-active)}.button:disabled{opacity:.5;cursor:not-allowed}.button--primary{background:var(--fab-shield-blue);border-color:var(--fab-shield-blue);color:#fff}.button--primary:hover{background:var(--fab-bg-3);border-color:var(--fab-shield-blue);color:var(--fab-shield-dark)}.button--primary:active{background:var(--fab-bg-active);color:var(--fab-shield-dark)}.button--danger{background:var(--fab-critical);border-color:var(--fab-critical);color:#fff}.button--danger:hover{background:var(--fab-bg-3);border-color:var(--fab-critical);color:var(--fab-critical)}.button--sm{font-size:var(--fab-fs-sm);border-radius:var(--fab-radius-sm);padding:.25rem .75rem}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--fam-font);font-size:var(--fam-fs-body);color:var(--fam-ink);background:var(--fam-bg);-webkit-font-smoothing:antialiased}.fam-page-title,.fam-card-title,.fam-topbar-title,.fam-brand-name{font-family:var(--fam-font-heading)}a{color:inherit;text-decoration:none}.fam-btn{border:1px solid var(--fam-line);background:var(--fam-surface);color:var(--fam-ink);border-radius:var(--fam-radius-sm);font:inherit;cursor:pointer;align-items:center;gap:.5rem;padding:.5rem .9rem;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.fam-btn:hover{background:var(--fam-surface-muted)}.fam-btn--primary{background:var(--fam-burgundy);border-color:var(--fam-burgundy);color:#fff}.fam-btn--primary:hover{background:var(--fam-burgundy-dark)}.fam-btn--dark{background:var(--fam-sidebar);border-color:var(--fam-sidebar);color:#fff}.fam-btn--dark:hover{background:var(--fam-sidebar-hover)}.fam-btn--gold{background:var(--fam-gold);border-color:var(--fam-gold);color:#1a1a1a}.fam-auth-screen{background:var(--fam-bg);min-height:100%;color:var(--fam-ink);flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex}.fam-auth-card{background:var(--fam-surface);border:1px solid var(--fam-line);border-radius:var(--fam-radius-lg);text-align:center;max-width:420px;box-shadow:var(--fam-shadow-md);padding:2rem}.fam-auth-card h2{margin:0 0 .5rem}.fam-auth-card p{color:var(--fam-muted);margin:0 0 1.25rem}.fam-auth-spinner{border:3px solid var(--fam-line);border-top-color:var(--fam-burgundy);border-radius:var(--fam-radius-full);width:32px;height:32px;animation:.8s linear infinite fam-spin}@keyframes fam-spin{to{transform:rotate(360deg)}}.fam-frame{min-height:100vh;display:flex}.fam-sidebar{background:var(--fam-sidebar);width:248px;color:var(--fam-sidebar-text);flex-direction:column;flex-shrink:0;gap:1rem;padding:1.25rem 1rem;display:flex}.fam-brand{align-items:center;gap:.6rem;padding:.25rem .4rem;display:flex}.fam-brand-mark{border-radius:var(--fam-radius-sm);background:var(--fam-gold);color:#1a1a1a;place-items:center;width:36px;height:36px;display:grid}.fam-brand-name{font-weight:700;line-height:1.1}.fam-brand-tag{font-size:var(--fam-fs-sm);color:var(--fam-subtle)}.fam-new-upload{justify-content:center;width:100%}.fam-nav{flex-direction:column;gap:.15rem;margin-top:.5rem;display:flex}.fam-nav-section{flex-direction:column;gap:.15rem;margin-top:.75rem;display:flex}.fam-nav-heading{color:var(--fam-subtle);font-size:var(--fam-fs-sm);letter-spacing:.06em;text-transform:uppercase;padding:0 .7rem .3rem;font-weight:600}.fam-nav-link{border-radius:var(--fam-radius-sm);color:#cfcfd6;align-items:center;gap:.7rem;padding:.6rem .7rem;font-weight:500;display:flex}.fam-nav-link--nested{padding-left:1.2rem}.fam-nav-link:hover{background:var(--fam-sidebar-hover);color:#fff}.fam-nav-link.active{background:var(--fam-sidebar-hover);color:#fff;box-shadow:inset 3px 0 0 var(--fam-gold)}.fam-nav-spacer{flex:1}.fam-main{flex-direction:column;flex:1;min-width:0;display:flex}.fam-topbar{background:var(--fam-surface);border-bottom:1px solid var(--fam-line);align-items:center;gap:1rem;padding:.75rem 1.5rem;display:flex}.fam-topbar-title{font-weight:700;font-size:var(--fam-fs-title)}.fam-search{background:var(--fam-surface-muted);border:1px solid var(--fam-line);border-radius:var(--fam-radius-full);max-width:420px;color:var(--fam-muted);flex:1;align-items:center;gap:.5rem;padding:.45rem .9rem;display:flex}.fam-search input{font:inherit;color:var(--fam-ink);background:0 0;border:0;outline:none;flex:1}.fam-topbar-links{color:var(--fam-muted);align-items:center;gap:1rem;display:flex}.fam-topbar-spacer{flex:1}.fam-user{align-items:center;gap:.6rem;display:flex}.fam-content{padding:1.75rem;overflow-x:hidden}.fam-page-title{font-size:var(--fam-fs-display);margin:0 0 .25rem;font-weight:700}.fam-page-subtitle{color:var(--fam-muted);margin:0 0 1.5rem}.fam-card{background:var(--fam-surface);border:1px solid var(--fam-line);border-radius:var(--fam-radius-lg);box-shadow:var(--fam-shadow-sm);padding:1.5rem}.fam-card-title{font-size:var(--fam-fs-title);margin:0 0 1rem;font-weight:600}.fam-dropzone{border:2px dashed var(--fam-line);border-radius:var(--fam-radius-md);text-align:center;color:var(--fam-muted);padding:3rem 1.5rem}.fam-dropzone strong{color:var(--fam-ink);margin:1rem 0 .5rem;font-size:1.5rem;display:block}.fam-grid-2{grid-template-columns:2fr 1fr;align-items:start;gap:1.5rem;display:grid}@media (width<=960px){.fam-grid-2{grid-template-columns:1fr}}.fam-placeholder{min-height:240px;color:var(--fam-subtle);border:1px dashed var(--fam-line);border-radius:var(--fam-radius-md);place-items:center;display:grid}.fam-banner{border-radius:var(--fam-radius-md);align-items:center;gap:.5rem;margin-bottom:1rem;padding:.75rem 1rem;font-weight:500;display:flex}.fam-banner--error{background:var(--fam-critical-soft);color:var(--fam-critical)}.fam-selection{background:var(--fam-blue-weak);border-radius:var(--fam-radius-sm);justify-content:space-between;align-items:center;gap:.5rem;margin-top:1rem;padding:.6rem .9rem;font-weight:500;display:flex}.fam-check{align-items:center;gap:.5rem;margin-top:1rem;display:flex}.fam-check--sm{font-size:var(--fam-fs-sm);margin-top:0}.fam-fieldset{border:1px solid var(--fam-line);border-radius:var(--fam-radius-md);margin-top:1rem;padding:1rem}.fam-fieldset legend{color:var(--fam-muted);font-size:var(--fam-fs-sm);padding:0 .4rem}.fam-type-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.45rem;display:grid}.fam-actions{gap:.6rem;margin-top:1.25rem;display:flex}.fam-btn--ghost{color:var(--fam-muted);background:0 0;border-color:#0000}.fam-btn--ghost:hover{background:var(--fam-surface-muted)}.fam-btn:disabled{opacity:.5;cursor:not-allowed}.fam-spin{animation:.8s linear infinite fam-spin}.fam-progress-head{font-size:var(--fam-fs-sm);color:var(--fam-muted);justify-content:space-between;margin-bottom:.4rem;display:flex}.fam-progress{background:var(--fam-surface-muted);border-radius:var(--fam-radius-full);height:8px;overflow:hidden}.fam-progress-bar{background:var(--fam-burgundy);height:100%;transition:width .3s}.fam-client-card{border:1px solid var(--fam-line);border-radius:var(--fam-radius-md);margin-top:1rem;padding:.75rem .9rem}.fam-client-head{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.fam-client-head strong{flex:1}.fam-file-list{flex-direction:column;gap:.3rem;display:flex}.fam-file-row{font-size:var(--fam-fs-sm);align-items:center;gap:.5rem;display:flex}.fam-dot{border-radius:var(--fam-radius-full);flex-shrink:0;width:8px;height:8px}.fam-file-name{color:var(--fam-ink);flex:1}.fam-conf{color:var(--fam-muted);font-variant-numeric:tabular-nums}.fam-conf--low{color:var(--fam-critical);font-weight:600}.fam-file-row--clickable{cursor:pointer;border-radius:var(--fam-radius-sm);margin:0 -.4rem;padding:.25rem .4rem}.fam-file-row--clickable:hover{background:var(--fam-blue-weak)}.fam-banner--success{background:var(--fam-success-soft);color:var(--fam-success)}.fam-chip{border-radius:var(--fam-radius-full);font-size:var(--fam-fs-caps);letter-spacing:.03em;background:var(--fam-surface-muted);color:var(--fam-muted);align-items:center;padding:.1rem .5rem;font-weight:700;display:inline-flex}.fam-chip--gold,.fam-chip--mod{background:var(--fam-gold-soft);color:var(--fam-warning)}.fam-chip--pii{background:var(--fam-blue-soft);color:var(--fam-blue)}.fam-validator-head{align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.fam-validator-title{font-size:var(--fam-fs-title);align-items:center;gap:.6rem;display:flex}.fam-provenance{border-left:3px solid var(--fam-gold);margin-bottom:1rem;padding:.9rem 1rem}.fam-provenance-title{color:var(--fam-ink);align-items:center;gap:.45rem;margin-bottom:.7rem;font-weight:700;display:flex}.fam-provenance-title svg{color:var(--fam-success)}.fam-provenance-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem;display:grid}.fam-provenance-grid>div{align-items:flex-start;gap:.5rem;min-width:0;display:flex}.fam-provenance-grid>div>svg{color:var(--fam-gold);flex:none;margin-top:.15rem}.fam-provenance-grid span{flex-direction:column;min-width:0;display:flex}.fam-provenance-grid small{color:var(--fam-muted);font-size:var(--fam-fs-caps)}.fam-provenance-grid strong{text-overflow:ellipsis;white-space:nowrap;font-size:var(--fam-fs-sm);overflow:hidden}.fam-mono{font-family:var(--fam-font-mono)}@media (width<=1100px){.fam-provenance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=700px){.fam-provenance-grid{grid-template-columns:1fr}}.fam-validator{grid-template-columns:minmax(0,420px) 1fr;align-items:start;gap:1.5rem;display:grid}@media (width<=900px){.fam-validator{grid-template-columns:1fr}}.fam-validator-form-head{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.fam-field{margin-top:1rem}.fam-field-label{font-size:var(--fam-fs-sm);color:var(--fam-muted);align-items:center;gap:.5rem;margin-bottom:.3rem;display:flex}.fam-field-label>span:first-child{color:var(--fam-ink);font-weight:500}.fam-field input,.fam-field select{width:100%;font:inherit;border:1px solid var(--fam-line);border-radius:var(--fam-radius-sm);background:var(--fam-surface);color:var(--fam-ink);padding:.55rem .7rem}.fam-field input:focus,.fam-field select:focus{border-color:var(--fam-burgundy);outline:none}.fam-field--missing input{border-color:var(--fam-critical);background:var(--fam-critical-soft)}.fam-field-label .fam-conf{margin-left:auto}.fam-validator-actions{border-top:1px solid var(--fam-line);justify-content:space-between;padding-top:1rem}.fam-validator-doc{flex-direction:column;align-self:start;height:calc(100vh - 2rem);min-height:540px;padding:0;display:flex;position:sticky;top:1rem;overflow:hidden}.fam-doc-toolbar{border-bottom:1px solid var(--fam-line);font-size:var(--fam-fs-sm);color:var(--fam-muted);justify-content:center;align-items:center;gap:.5rem;padding:.6rem;display:flex}.fam-doc-target{max-width:45%;color:var(--fam-ink);text-overflow:ellipsis;white-space:nowrap;margin-right:auto;font-weight:600;overflow:hidden}.fam-doc-location-missing{color:var(--fam-subtle);font-size:var(--fam-fs-caps);white-space:nowrap}.fam-icon-btn{border:1px solid var(--fam-line);border-radius:var(--fam-radius-sm);background:var(--fam-surface);cursor:pointer;width:30px;height:30px;color:var(--fam-ink);place-items:center;display:inline-grid}.fam-icon-btn:hover{background:var(--fam-surface-muted)}.fam-doc-viewport{background:var(--fam-surface-muted);flex:1;place-items:center;height:auto;min-height:0;padding:1rem;display:grid;overflow:auto}.fam-doc-viewport img{transition:transform .15s}.fam-pdf-preview{width:100%;min-width:0;min-height:100%;position:relative}.fam-pdf-page{width:max-content;box-shadow:var(--fam-shadow-md);margin:0 auto;position:relative}.fam-pdf-page canvas{background:var(--fam-surface);display:block}.fam-pdf-loading{z-index:2;color:var(--fam-burgundy);pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.fam-image-source{margin:auto;transition:width .15s;position:relative}.fam-image-source img{transform-origin:50%;width:100%;max-width:none;display:block}.fam-document-anchor{z-index:3;border:3px solid var(--fam-gold);border-radius:var(--fam-radius-sm);min-width:1.5rem;min-height:.85rem;box-shadow:0 0 0 2px var(--fam-gold-soft), var(--fam-shadow-sm);pointer-events:none;background:0 0;position:absolute}.fam-document-anchor:before{content:"";background:var(--fam-gold);opacity:.24;position:absolute;inset:0}.fam-image-anchor{pointer-events:none;height:2.25rem;left:2%;right:2%;transform:translateY(-50%)}.fam-field--active input,.fam-field--active select{border-color:var(--fam-burgundy);box-shadow:0 0 0 2px var(--fam-blue-weak)}.fam-source-anchor{color:var(--fam-burgundy);font-size:var(--fam-fs-caps);flex:none;font-weight:700}@media (width<=900px){.fam-validator-doc{height:70vh;min-height:480px;position:static}}.fam-stat-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;display:grid}.fam-stat{background:var(--fam-surface);border:1px solid var(--fam-line);border-radius:var(--fam-radius-lg);box-shadow:var(--fam-shadow-sm);flex-direction:column;gap:.25rem;padding:1.25rem;display:flex}.fam-stat-value{font-size:var(--fam-fs-headline);color:var(--fam-ink);font-weight:700}.fam-stat-label{font-size:var(--fam-fs-sm);color:var(--fam-muted)}.fam-table{border-collapse:collapse;width:100%;font-size:var(--fam-fs-sm)}.fam-table th{text-align:left;color:var(--fam-muted);font-size:var(--fam-fs-caps);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--fam-line);padding:.6rem .75rem}.fam-table td{border-bottom:1px solid var(--fam-line);vertical-align:middle;padding:.7rem .75rem}.fam-table td svg{vertical-align:-2px;color:var(--fam-subtle);margin-right:.35rem}.fam-table tbody tr:last-child td{border-bottom:0}.fam-table .fam-num{text-align:right;font-variant-numeric:tabular-nums}.fam-table th.fam-num{text-align:right}.fam-explorer{grid-template-columns:minmax(0,340px) 1fr;align-items:start;gap:1.5rem;display:grid}@media (width<=900px){.fam-explorer{grid-template-columns:1fr}}.fam-client-list-col{flex-direction:column;gap:.4rem;display:flex}.fam-client-item{text-align:left;border:1px solid var(--fam-line);border-radius:var(--fam-radius-md);background:var(--fam-surface);cursor:pointer;font:inherit;color:var(--fam-ink);align-items:center;gap:.6rem;padding:.7rem .8rem;display:flex}.fam-client-item:hover{background:var(--fam-surface-muted)}.fam-client-item--active{border-color:var(--fam-burgundy);box-shadow:inset 3px 0 0 var(--fam-burgundy)}.fam-client-item-body{flex-direction:column;flex:1;min-width:0;display:flex}.fam-client-item-body span{font-size:var(--fam-fs-sm);color:var(--fam-muted)}.fam-masked{font-family:var(--fam-font);letter-spacing:.1em;color:var(--fam-subtle)}.fam-doc-chips{flex-wrap:wrap;gap:.4rem;margin-top:.75rem;display:flex}.fam-upload-transport{gap:.4rem;display:grid}.fam-progress-detail{font-size:var(--fam-fs-sm);color:var(--fam-subtle);font-variant-numeric:tabular-nums}.fam-pipeline-panel{border:1px solid var(--fam-line);border-radius:var(--fam-radius-md);background:var(--fam-surface);gap:.5rem;margin:1rem 0 .5rem;padding:.75rem .5rem;display:grid}.fam-pipeline-active{font-size:var(--fam-fs-sm);color:var(--fam-muted);text-overflow:ellipsis;white-space:nowrap;padding:0 .25rem;overflow:hidden}.fam-page-heading-row{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.fam-version-badge{border:1px solid var(--fam-line);border-radius:var(--fam-radius-full);background:var(--fam-surface);color:var(--fam-muted);font-family:var(--fam-font-mono);font-size:var(--fam-fs-sm);flex:none;padding:.4rem .75rem}.fam-ontology-toolbar{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.fam-ontology-toolbar .fam-card-title{align-items:center;gap:.5rem;margin-bottom:.35rem;display:flex}.fam-ontology-toolbar .fam-page-subtitle{margin:0}.fam-search--page{flex:0 360px}.fam-table-scroll{overflow-x:auto}.fam-ontology-table{min-width:1120px}.fam-ontology-table td:first-child{min-width:220px}.fam-canonical-key{color:var(--fam-subtle);font-family:var(--fam-font-mono);font-size:var(--fam-fs-sm);margin-top:.25rem;font-weight:400;display:block}.fam-source-summary{margin:0;padding-left:1.2rem}.fam-source-summary li+li{margin-top:.2rem}.fam-muted{color:var(--fam-muted);font-size:var(--fam-fs-sm)}.fam-icon-link,.fam-icon-button{border:1px solid var(--fam-line);border-radius:var(--fam-radius-sm);background:var(--fam-surface);width:34px;height:34px;color:var(--fam-burgundy);cursor:pointer;place-items:center;display:inline-grid}.fam-icon-link:hover,.fam-icon-button:hover{background:var(--fam-surface-muted)}.fam-icon-button:disabled{opacity:.4;cursor:not-allowed}.fam-back-link{color:var(--fam-burgundy);align-items:center;gap:.4rem;margin-bottom:1rem;font-weight:600;display:inline-flex}.fam-form-grid{grid-template-columns:2fr 1fr;gap:1rem;display:grid}.fam-form-field{color:var(--fam-muted);font-size:var(--fam-fs-sm);gap:.4rem;font-weight:600;display:grid}.fam-form-field--wide{grid-column:1/-1}.fam-form-field input,.fam-form-field select,.fam-form-field textarea{border:1px solid var(--fam-line);border-radius:var(--fam-radius-sm);background:var(--fam-surface);width:100%;color:var(--fam-ink);font:inherit;padding:.65rem .75rem}.fam-form-field textarea{resize:vertical}.fam-section-gap{margin-top:1.5rem}.fam-section-gap .fam-card-title{align-items:center;gap:.5rem;display:flex}.fam-priority-list{gap:.7rem;margin:0;padding:0;list-style:none;display:grid}.fam-priority-item{border:1px solid var(--fam-line);border-radius:var(--fam-radius-md);background:var(--fam-surface);grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:1rem;padding:.8rem 1rem;display:grid;position:relative}.fam-priority-item--disabled{opacity:.58;background:var(--fam-surface-muted)}.fam-priority-number{border-radius:var(--fam-radius-full);background:var(--fam-blue-soft);width:34px;height:34px;color:var(--fam-blue);place-items:center;font-weight:700;display:grid}.fam-priority-body{gap:.18rem;min-width:0;display:grid}.fam-priority-body code{color:var(--fam-muted);font-family:var(--fam-font-mono);font-size:var(--fam-fs-sm)}.fam-priority-body span{color:var(--fam-subtle);font-size:var(--fam-fs-sm)}.fam-order-actions{gap:.35rem;display:flex}.fam-fallback-label{z-index:1;background:var(--fam-bg);color:var(--fam-subtle);font-size:var(--fam-fs-sm);padding:0 .35rem;position:absolute;bottom:-.78rem;left:1.2rem}.fam-page-action-bar{border:1px solid var(--fam-line);border-radius:var(--fam-radius-md);background:var(--fam-surface);box-shadow:var(--fam-shadow-md);justify-content:flex-end;align-items:center;gap:.75rem;margin-top:1.5rem;padding:1rem;display:flex;position:sticky;bottom:0}.fam-saved-state{color:var(--fam-muted);font-size:var(--fam-fs-sm);align-items:center;gap:.35rem;display:inline-flex}@media (width<=760px){.fam-page-heading-row,.fam-ontology-toolbar{flex-direction:column}.fam-search--page{flex-basis:auto;width:100%}.fam-form-grid{grid-template-columns:1fr}.fam-form-field--wide{grid-column:auto}.fam-priority-item{grid-template-columns:auto 1fr}.fam-priority-item .fam-check,.fam-order-actions{grid-column:2}}.pipeline-stepper{padding:.5rem 0}.pipeline-stepper-header{gap:2px;margin-bottom:.25rem;display:grid}.pipeline-stepper-header h3,.pipeline-stepper-header p{margin:0}.pipeline-stepper-header h3{color:var(--fam-text,#111827);font-size:var(--fam-fs-body);font-weight:700}.pipeline-stepper-header p{color:var(--fam-muted);font-size:var(--fam-fs-sm)}.pipeline-track{justify-content:flex-start;align-items:flex-start;gap:0;padding:.75rem 0 .25rem;display:flex;overflow-x:auto}.pipeline-step-wrapper{flex-shrink:0;align-items:flex-start;display:flex}.pipeline-connector{background:var(--fam-line);flex-shrink:0;width:24px;height:2px;margin-top:18px;transition:background .25s}.pipeline-connector--done{background:var(--fam-success)}.pipeline-connector--active{background:var(--fam-blue)}.pipeline-connector--error{background:var(--fam-critical)}.pipeline-node{cursor:default;flex-direction:column;align-items:center;gap:.4rem;min-width:54px;display:flex}.pipeline-node-circle{border:2px solid var(--fam-line);border-radius:var(--fam-radius-full);background:var(--fam-surface);width:38px;height:38px;color:var(--fam-subtle);flex-shrink:0;justify-content:center;align-items:center;transition:all .25s;display:flex}.pipeline-node-label{max-width:74px;color:var(--fam-subtle);font-size:var(--fam-fs-sm);text-align:center;overflow-wrap:anywhere;line-height:1.2;transition:color .25s}.pipeline-node--active .pipeline-node-circle{border-color:var(--fam-blue);background:var(--fam-blue-weak);color:var(--fam-blue);animation:2s ease-in-out infinite pipeline-pulse}.pipeline-node--active .pipeline-node-label{color:var(--fam-blue);font-weight:600}.pipeline-node--done .pipeline-node-circle{border-color:var(--fam-success);background:var(--fam-success-soft);color:var(--fam-success)}.pipeline-node--done .pipeline-node-label{color:var(--fam-muted)}.pipeline-node--error .pipeline-node-circle{border-color:var(--fam-critical);background:var(--fam-critical-soft);color:var(--fam-critical)}.pipeline-node--error .pipeline-node-label{color:var(--fam-critical);font-weight:600}.pipeline-error{border-radius:var(--fam-radius-md);background:var(--fam-critical-soft);color:var(--fam-critical);font-size:var(--fam-fs-sm);align-items:flex-start;gap:.5rem;margin-top:.5rem;padding:.5rem .75rem;display:flex}.pipeline-error svg{flex-shrink:0;margin-top:2px}@keyframes pipeline-pulse{0%,to{box-shadow:0 0 #1d4ed859}50%{box-shadow:0 0 0 5px #1d4ed800}}.fam-btn--danger{color:var(--fam-critical)}.fam-btn--danger:hover{background:var(--fam-critical-soft)}.fam-row--clickable{cursor:pointer}.fam-row--clickable:hover td{background:var(--fam-blue-weak)}.fam-item-step{font-size:var(--fam-fs-sm);color:var(--fam-blue);white-space:nowrap}.kb-toolbar{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:1rem;display:flex}.kb-toolbar-info{font-size:var(--fam-fs-sm);color:var(--fam-muted)}.kb-board{align-items:flex-start;gap:.55rem;padding-bottom:1rem;display:flex;overflow-x:auto}.kb-col{background:var(--fam-surface-muted);border:1px solid var(--fam-line);border-radius:var(--fam-radius-md);flex:0 0 168px;min-width:168px}.kb-col--gate{border-color:var(--fam-gold);box-shadow:inset 0 3px 0 var(--fam-gold)}.kb-col--done{border-color:var(--fam-success)}.kb-col-head{font-size:var(--fam-fs-sm);justify-content:space-between;align-items:center;padding:.5rem .6rem;font-weight:700;display:flex}.kb-count{background:var(--fam-surface);border:1px solid var(--fam-line);border-radius:var(--fam-radius-full);font-size:var(--fam-fs-sm);font-variant-numeric:tabular-nums;padding:0 .45rem}.kb-gate-hint{color:var(--fam-warning);padding:0 .6rem .3rem;font-size:11px}.kb-cards{flex-direction:column;gap:.4rem;min-height:44px;max-height:62vh;padding:.4rem;display:flex;overflow-y:auto}.kb-card{background:var(--fam-surface);border:1px solid var(--fam-line);border-radius:var(--fam-radius-sm);font-size:var(--fam-fs-sm);padding:.4rem .5rem}.kb-card--running{border-color:var(--fam-blue);animation:2s ease-in-out infinite pipeline-pulse}.kb-card--ready{border-color:var(--fam-success);cursor:pointer}.kb-card--ready:hover{background:var(--fam-success-soft)}.kb-card--failed{border-color:var(--fam-critical)}.kb-card--skipped{border-color:var(--fam-warning)}.kb-card-title-row{justify-content:space-between;align-items:flex-start;gap:.25rem;display:flex}.kb-card-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.kb-card-meta{color:var(--fam-muted);justify-content:space-between;align-items:center;gap:.4rem;display:flex}.kb-card-meta span{align-items:center;gap:.2rem;display:inline-flex}.kb-step{color:var(--fam-blue);font-variant-numeric:tabular-nums}.kb-empty{color:var(--fam-subtle);text-align:center;font-size:var(--fam-fs-sm);padding:.5rem 0}.kb-scroll{padding-bottom:1rem;overflow-x:auto}.kb-grid{align-items:stretch;gap:.45rem;min-width:max-content;display:grid}.kb-head{background:var(--fam-surface-muted);border:1px solid var(--fam-line);border-radius:var(--fam-radius-sm);font-size:var(--fam-fs-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem;padding:.45rem .55rem;font-weight:700;display:flex;position:relative}.kb-head--corner{color:var(--fam-muted);justify-content:flex-start}.kb-head--gate{border-color:var(--fam-gold);box-shadow:inset 0 3px 0 var(--fam-gold)}.kb-head--done{border-color:var(--fam-success)}.kb-head .kb-gate-hint{flex-basis:100%;padding:0}.kb-lane-label{font-size:var(--fam-fs-sm);color:var(--fam-muted);background:var(--fam-bg);z-index:1;align-items:center;gap:.35rem;padding:.45rem .3rem;font-weight:700;display:flex;position:sticky;left:0;overflow:hidden}.kb-lane-label span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kb-cell{background:var(--fam-surface-muted);border:1px dashed var(--fam-line);border-radius:var(--fam-radius-sm);flex-direction:column;gap:.35rem;min-height:46px;padding:.35rem;display:flex;overflow-y:auto}.kb-cell--gate{border-color:var(--fam-gold);border-style:solid}.kb-card{padding:.3rem .4rem;font-size:10px}.kb-card-name{font-size:10px}.kb-card-meta{font-size:9px}.kb-cost{color:var(--fam-success);font-variant-numeric:tabular-nums}.kb-step{font-size:9px}.kb-lane-label{font-size:10px}.kb-head{font-size:11px}.kb-count{font-size:10px}.kb-gate-hint{font-size:9px}.kb-empty{font-size:10px}.fam-field--suggestion{border-left:3px dashed var(--fam-gold);padding-left:.6rem}.fam-field--suggestion input{border-style:dashed}.kb-diagnostic-trigger{border:1px solid var(--fam-critical);border-radius:var(--fam-radius-full);background:var(--fam-critical-soft);width:1.35rem;height:1.35rem;color:var(--fam-critical);cursor:pointer;place-items:center;padding:0;display:grid}.kb-diagnostic-trigger--skipped{border-color:var(--fam-warning);background:var(--fam-warning-soft);color:var(--fam-warning)}.kb-diagnostic-trigger:hover,.kb-diagnostic-trigger:focus-visible{background:var(--fam-surface)}.kb-diagnostic-trigger:focus-visible{outline:2px solid var(--fam-gold);outline-offset:2px}.kb-diagnostic-tooltip{width:min(320px,100vw - 24px);max-height:calc(100vh - 24px);padding:var(--fab-space-3);pointer-events:none;background:var(--fab-bg-card);color:var(--fab-text-0);border:1px solid var(--fab-border-light);border-radius:var(--fab-radius-md);box-shadow:var(--fab-shadow-card);-webkit-backdrop-filter:blur(var(--fab-glass-blur));backdrop-filter:blur(var(--fab-glass-blur));z-index:var(--fab-z-tooltip);position:fixed;overflow:auto}.kb-diagnostic-tooltip:before{content:"";background:var(--fab-bg-3);border-top:1px solid var(--fab-border-light);border-left:1px solid var(--fab-border-light);width:.65rem;height:.65rem;position:absolute;top:-.35rem;right:.55rem;transform:rotate(45deg)}.kb-diagnostic-tooltip[data-placement=top]:before{top:auto;bottom:-.35rem;transform:rotate(225deg)}.kb-diagnostic-tooltip strong{font-family:var(--fab-font-display);font-size:var(--fab-fs-sm);display:block}.kb-diagnostic-tooltip p{color:var(--fab-text-2);margin:.3rem 0 .55rem;line-height:1.4}.kb-diagnostic-tooltip dl{gap:.3rem;margin:0;display:grid}.kb-diagnostic-tooltip dl>div{border-top:1px solid var(--fab-border);grid-template-columns:5rem minmax(0,1fr);gap:.35rem;padding-top:.3rem;display:grid}.kb-diagnostic-tooltip dt{color:var(--fab-shield-dark);font-weight:700}.kb-diagnostic-tooltip dd{overflow-wrap:anywhere;margin:0}.kb-modal-backdrop{background:color-mix(in srgb, var(--fam-sidebar) 55%, transparent);z-index:60;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.kb-modal{background:var(--fam-surface);border-radius:var(--fam-radius-lg);width:min(720px,92vw);max-height:85vh;box-shadow:var(--fam-shadow-md);flex-direction:column;gap:.75rem;padding:1rem 1.25rem;display:flex}.kb-modal-head{justify-content:space-between;align-items:center;display:flex}.kb-modal-file{background:var(--fab-info-bg);border:1px solid var(--fab-border);border-radius:var(--fab-radius-md);overflow-wrap:anywhere;align-items:center;gap:.45rem;padding:.6rem .75rem;display:flex}.kb-error-report{background:var(--fam-surface-muted);border:1px solid var(--fam-line);border-radius:var(--fam-radius-md);font-family:var(--fam-font-mono);white-space:pre-wrap;-webkit-user-select:all;user-select:all;margin:0;padding:.75rem;font-size:11px;line-height:1.5;overflow-y:auto}.kb-modal-hint{font-size:var(--fam-fs-sm);color:var(--fam-subtle);margin:0}.fam-sheet{flex-direction:column;width:100%;height:100%;display:flex}.fam-sheet-tabs{flex-wrap:wrap;gap:.25rem;padding:.35rem .35rem 0;display:flex}.fam-sheet-tab{border:1px solid var(--fam-line);background:var(--fam-surface-muted);border-radius:var(--fam-radius-sm) var(--fam-radius-sm) 0 0;cursor:pointer;border-bottom:none;padding:.25rem .6rem;font-size:11px}.fam-sheet-tab--active{background:var(--fam-surface);font-weight:700}.fam-sheet-scroll{border-top:1px solid var(--fam-line);flex:1;overflow:auto}.fam-sheet-table{border-collapse:collapse;font-size:11px}.fam-sheet-table td{border:1px solid var(--fam-line);text-overflow:ellipsis;white-space:nowrap;max-width:260px;padding:.15rem .4rem;overflow:hidden}.fam-sheet-table tr:first-child td{background:var(--fam-surface-muted);font-weight:700;position:sticky;top:0}.fam-sheet-table td.fam-sheet-cell--active{z-index:1;color:var(--fam-ink);background:var(--fam-gold-soft);box-shadow:inset 0 0 0 3px var(--fam-gold);font-weight:700;position:relative}.fam-sheet-note{color:var(--fam-subtle);padding:.3rem .5rem;font-size:10px}.kb-cell{min-height:172px;max-height:none;overflow-y:visible}.kb-page{flex-direction:column;height:calc(100vh - 148px);display:flex}.kb-page .kb-scroll{flex:auto;min-height:0;padding-bottom:.25rem;overflow:auto}.kb-footer{z-index:20;background:var(--fam-surface);border-top:1px solid var(--fam-line);font-size:var(--fam-fs-sm);color:var(--fam-muted);padding:.5rem 1.75rem;position:fixed;bottom:0;left:248px;right:0}.kb-cell{border-style:solid}.kb-card{border-color:var(--fam-line);box-shadow:var(--fam-shadow-sm)}.kb-cell--wide{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:.35rem;display:grid}.kb-cell--wide .kb-card{min-width:0;max-width:100%;overflow:hidden}.fam-page-head{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.fam-page-head .fam-page-subtitle{margin-bottom:0}.fam-rich-help{z-index:10;flex:none;position:relative}.fam-rich-help-trigger{border:1px solid var(--fam-burgundy);border-radius:var(--fam-radius-full);background:var(--fam-surface);color:var(--fam-burgundy);font:inherit;cursor:pointer;align-items:center;gap:.45rem;padding:.55rem .8rem;font-weight:700;display:inline-flex}.fam-rich-help-trigger:hover,.fam-rich-help-trigger:focus-visible{background:var(--fam-gold-soft)}.fam-rich-help-trigger:focus-visible{outline:2px solid var(--fam-gold);outline-offset:3px}.fam-rich-tooltip{background:var(--fam-sidebar);width:min(360px,100vw - 2rem);color:var(--fam-sidebar-text);border:1px solid var(--fam-burgundy);border-radius:var(--fam-radius-md);box-shadow:var(--fam-shadow-md);z-index:50;opacity:0;visibility:hidden;pointer-events:none;padding:1rem;transition:opacity .15s,transform .15s,visibility .15s;position:absolute;top:calc(100% + .75rem);right:0;transform:translateY(-.25rem)}.fam-rich-help:hover .fam-rich-tooltip,.fam-rich-help:focus-within .fam-rich-tooltip{opacity:1;visibility:visible;transform:translateY(0)}.fam-rich-tooltip:before{content:"";background:var(--fam-sidebar);border-left:1px solid var(--fam-burgundy);border-top:1px solid var(--fam-burgundy);width:.8rem;height:.8rem;position:absolute;top:-.45rem;right:1.4rem;transform:rotate(45deg)}.fam-rich-tooltip strong{font-family:var(--fam-font-heading);font-size:var(--fam-fs-title);display:block}.fam-rich-tooltip p{color:var(--fam-subtle);margin:.35rem 0 .8rem;line-height:1.45}.fam-rich-tooltip dl{gap:.6rem;margin:0;display:grid}.fam-rich-tooltip dl>div{border-top:1px solid var(--fam-sidebar-hover);padding-top:.55rem}.fam-rich-tooltip dt{color:var(--fam-gold);font-size:var(--fam-fs-caps);text-transform:uppercase;letter-spacing:.05em;font-weight:700}.fam-rich-tooltip dd{color:var(--fam-sidebar-text);margin:.18rem 0 0;line-height:1.45}.fam-tech-page-head{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.fam-tech-page-head .fam-btn{margin-bottom:1rem}.fam-tech-eyebrow{color:var(--fam-burgundy);font-size:var(--fam-fs-caps);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .35rem;font-weight:700}.fam-tech-version{color:var(--fam-muted);font-size:var(--fam-fs-sm);white-space:nowrap;align-items:center;gap:.4rem;display:inline-flex}.fam-tech-intro{border-left:4px solid var(--fam-gold);align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.fam-tech-intro-icon{border-radius:var(--fam-radius-md);background:var(--fam-gold-soft);min-width:42px;height:42px;color:var(--fam-warning);place-items:center;display:grid}.fam-tech-intro h2{font-family:var(--fam-font-heading);font-size:var(--fam-fs-title);margin:0 0 .35rem}.fam-tech-intro p{color:var(--fam-muted);margin:0;line-height:1.55}.fam-tech-legend{flex-wrap:wrap;gap:.45rem;margin-top:.85rem;display:flex}.fam-tech-layout{grid-template-columns:minmax(200px,250px) minmax(0,1fr);align-items:start;gap:1.5rem;display:grid}.fam-tech-menu{padding:1rem;position:sticky;top:1rem}.fam-tech-menu h2{font-family:var(--fam-font-heading);font-size:var(--fam-fs-title);margin:0 0 .35rem}.fam-tech-menu p{color:var(--fam-muted);font-size:var(--fam-fs-sm);margin:0 0 .85rem;line-height:1.45}.fam-tech-menu a{border-top:1px solid var(--fam-line);color:var(--fam-ink);align-items:baseline;gap:.5rem;padding:.6rem .5rem;font-weight:600;line-height:1.35;display:flex}.fam-tech-menu a:hover{color:var(--fam-burgundy);background:var(--fam-blue-weak)}.fam-tech-menu a span{color:var(--fam-burgundy);font-family:var(--fam-font-mono);font-size:var(--fam-fs-caps)}.fam-tech-content{gap:1.25rem;min-width:0;display:grid}.fam-tech-action{padding:1.25rem;scroll-margin-top:1rem}.fam-tech-action-head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.fam-tech-action-head h2{font-family:var(--fam-font-heading);margin:.15rem 0 .35rem;font-size:clamp(1.15rem,2vw,1.45rem)}.fam-tech-action-head p{color:var(--fam-muted);margin:0;line-height:1.5}.fam-tech-index{color:var(--fam-burgundy);font-family:var(--fam-font-mono);font-size:var(--fam-fs-caps);font-weight:700}.fam-tech-status{font-size:var(--fam-fs-caps);letter-spacing:.03em;align-items:center;gap:.35rem;font-weight:700;display:inline-flex}.fam-tech-status--real{color:var(--fam-success)}.fam-tech-status--debt{color:var(--fam-warning)}.fam-tech-status--ideal{color:var(--fam-blue)}.fam-tech-explain-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin-top:1rem;display:grid}.fam-tech-explain-grid article{background:var(--fam-surface-muted);border-radius:var(--fam-radius-md);padding:.8rem}.fam-tech-explain-grid h3,.fam-tech-detail h3,.fam-tech-diagram h3{font-size:var(--fam-fs-sm);align-items:center;gap:.4rem;margin:0 0 .4rem;font-weight:700;display:flex}.fam-tech-explain-grid h3{color:var(--fam-burgundy)}.fam-tech-explain-grid p,.fam-tech-detail p{color:var(--fam-muted);margin:0;line-height:1.5}.fam-tech-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-top:.65rem;display:grid}.fam-tech-detail--wide{grid-column:1/-1}.fam-tech-detail{border:1px solid var(--fam-line);border-radius:var(--fam-radius-md);min-width:0;padding:.8rem}.fam-tech-detail h3{color:var(--fam-ink)}.fam-tech-detail ul,.fam-tech-notes ul{color:var(--fam-muted);margin:0;padding-left:1.15rem;line-height:1.5}.fam-tech-detail li,.fam-tech-notes li{overflow-wrap:anywhere;margin:.25rem 0}.fam-tech-diagrams{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.65rem;margin-top:.65rem;display:grid}.fam-tech-diagram{border:1px solid var(--fam-line);border-radius:var(--fam-radius-md);background:var(--fam-bg);min-width:0;padding:.8rem}.fam-tech-diagram h3{color:var(--fam-burgundy)}.fam-tech-flow{flex-wrap:wrap;align-items:center;gap:.35rem;min-height:5rem;display:flex}.fam-tech-flow-node{border:1px solid var(--fam-blue);border-radius:var(--fam-radius-full);background:var(--fam-surface);min-height:2rem;color:var(--fam-ink);font-size:var(--fam-fs-caps);align-items:center;gap:.3rem;padding:.35rem .45rem;font-weight:600;display:inline-flex}.fam-tech-flow-node>svg:first-child{color:var(--fam-blue);flex-shrink:0}.fam-tech-flow-arrow{color:var(--fam-muted);flex-shrink:0}.fam-tech-flow-result{width:100%;color:var(--fam-success);font-size:var(--fam-fs-sm);align-items:center;gap:.3rem;margin-top:.35rem;font-weight:700;display:inline-flex}.fam-tech-sequence{min-height:5rem}.fam-tech-sequence-actors{grid-template-columns:repeat(4,minmax(0,1fr));gap:.3rem;display:grid}.fam-tech-sequence-actors span{border-radius:var(--fam-radius-sm);background:var(--fam-surface);min-width:0;color:var(--fam-ink);font-size:var(--fam-fs-caps);text-align:center;overflow-wrap:anywhere;padding:.35rem;font-weight:700}.fam-tech-sequence-lanes{grid-template-columns:repeat(4,minmax(0,1fr));min-height:1.1rem;display:grid}.fam-tech-sequence-lanes span{background:var(--fam-line);justify-self:center;width:1px}.fam-tech-sequence-messages{color:var(--fam-muted);font-family:var(--fam-font-mono);gap:.25rem;margin:0;padding:0;font-size:10px;line-height:1.4;list-style:none;display:grid}.fam-tech-sequence-messages li{border-top:1px dashed var(--fam-line);align-items:center;gap:.25rem;padding:.25rem .35rem;display:flex}.fam-tech-sequence-messages svg{color:var(--fam-burgundy);flex-shrink:0}.fam-tech-notes{padding:1.25rem}.fam-tech-notes h2{font-family:var(--fam-font-heading);font-size:var(--fam-fs-title);align-items:center;gap:.45rem;margin:0 0 .6rem;display:flex}.fam-tech-footer-note{color:var(--fam-subtle);font-size:var(--fam-fs-sm);align-items:center;gap:.4rem;margin-top:1rem;display:flex}@media (width<=1050px){.fam-tech-layout{grid-template-columns:1fr}.fam-tech-menu{position:static}.fam-tech-menu a{border:1px solid var(--fam-line);border-radius:var(--fam-radius-full);margin-right:.35rem;display:inline-flex}}@media (width<=720px){.fam-page-head,.fam-tech-page-head{flex-direction:column}.fam-rich-help{align-self:flex-start}.fam-tech-explain-grid,.fam-tech-detail-grid,.fam-tech-diagrams{grid-template-columns:1fr}.fam-tech-action-head{flex-direction:column}.fam-tech-sequence-actors,.fam-tech-sequence-lanes{grid-template-columns:repeat(2,minmax(0,1fr))}}.fam-tech-page{--fam-bg:var(--fab-bg-0);--fam-surface:var(--fab-bg-card);--fam-surface-muted:var(--fab-bg-1);--fam-ink:var(--fab-text-0);--fam-muted:var(--fab-text-2);--fam-subtle:var(--fab-text-muted);--fam-line:var(--fab-border);--fam-blue:var(--fab-shield-blue);--fam-blue-soft:var(--fab-gold-light);--fam-blue-weak:var(--fab-info-bg);--fam-gold:var(--fab-gold);--fam-gold-soft:var(--fab-gold-light);--fam-burgundy:var(--fab-shield-dark);--fam-success:var(--fab-success);--fam-success-soft:var(--fab-success-bg);--fam-warning:var(--fab-high);--fam-warning-soft:var(--fab-high-bg);--fam-sidebar:var(--fab-bg-1);--fam-sidebar-hover:var(--fab-bg-hover);--fam-sidebar-text:var(--fab-text-0);--fam-shadow-sm:var(--fab-shadow-sm);--fam-shadow-md:var(--fab-shadow-card);--fam-font:var(--fab-font-sans);--fam-font-heading:var(--fab-font-display);--fam-font-mono:var(--fab-font-mono)}.fam-rich-tooltip{background:var(--fab-bg-card);color:var(--fab-text-0);border-color:var(--fab-border-light);box-shadow:var(--fab-shadow-card);z-index:var(--fab-z-tooltip)}.fam-rich-tooltip:before{background:var(--fab-bg-card);border-color:var(--fab-border-light)}.fam-rich-tooltip p{color:var(--fab-text-2)}.fam-rich-tooltip dl>div{border-color:var(--fab-border)}.fam-rich-tooltip dt{color:var(--fab-shield-dark)}.fam-rich-tooltip dd{color:var(--fab-text-1)}.fam-tech-architecture-card{overflow:hidden}.fam-tech-mermaid{background:var(--fab-bg-0);border:1px solid var(--fab-border);border-radius:var(--fab-radius-md);width:100%;min-height:7rem;padding:.5rem 0;overflow-x:auto}.fam-tech-mermaid svg{width:max-content;min-width:760px;max-width:none;height:auto;margin:0 auto;display:block}.fam-tech-architecture-card>.fam-tech-mermaid svg{min-width:1120px}.fam-tech-diagrams{grid-template-columns:1fr}.fam-tech-diagram{background:var(--fab-bg-0)}.fam-tech-mermaid-fallback{max-height:24rem;color:var(--fab-text-1);background:var(--fab-bg-1);border:1px solid var(--fab-border);border-radius:var(--fab-radius-md);font:.75rem/1.5 var(--fab-font-mono);white-space:pre-wrap;margin:0;padding:1rem;overflow:auto}.fam-tech-mermaid-fallback code{font:inherit}.fam-tech-legend{margin-top:1rem;display:block}.fam-tech-legend>h3{color:var(--fab-text-0);font-size:var(--fam-fs-sm);margin:0 0 .55rem}.fam-tech-legend-grid,.fam-tech-architecture-status,.fam-tech-action-diagnostics{grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;display:grid}.fam-tech-legend-card,.fam-tech-architecture-status article,.fam-tech-action-diagnostics article{border:1px solid var(--fab-border);border-radius:var(--fab-radius-md);background:var(--fab-bg-card);min-width:0;padding:.75rem}.fam-tech-legend-card h4,.fam-tech-architecture-status h3,.fam-tech-action-diagnostics h3{color:var(--fab-text-0);font-size:var(--fam-fs-sm);align-items:center;gap:.35rem;margin:0 0 .35rem;display:flex}.fam-tech-legend-card p,.fam-tech-architecture-status p,.fam-tech-action-diagnostics p{color:var(--fab-text-2);font-size:var(--fam-fs-sm);margin:0;line-height:1.45}.fam-tech-legend-card--real{border-top:3px solid var(--fab-success)}.fam-tech-legend-card--real h4{color:var(--fab-success)}.fam-tech-legend-card--debt{border-top:3px solid var(--fab-high)}.fam-tech-legend-card--debt h4{color:var(--fab-high)}.fam-tech-legend-card--ideal{border-top:3px solid var(--fab-shield-blue)}.fam-tech-legend-card--ideal h4{color:var(--fab-shield-dark)}.fam-tech-legend-note{border-left:3px solid var(--fab-shield-blue);border-radius:var(--fab-radius-sm);background:var(--fab-info-bg);color:var(--fab-text-1);font-size:var(--fam-fs-sm);margin:.7rem 0 0;padding:.65rem .8rem;line-height:1.45}.fam-tech-legend-card-relation{border-top:1px solid var(--fab-border);padding-top:.55rem;color:var(--fab-text-1)!important;margin-top:.55rem!important}.fam-tech-diagram-scope{border:1px solid var(--fab-success);border-radius:var(--fab-radius-full);color:var(--fab-success);white-space:nowrap;align-items:center;margin-left:auto;padding:.2rem .4rem;font-size:.72em;font-weight:700;display:inline-flex}.fam-tech-diagram{border-top:3px solid var(--fab-success)}.fam-tech-architecture-status,.fam-tech-action-diagnostics{margin-top:.85rem}.fam-tech-architecture-status article:first-child,.fam-tech-action-diagnostics article:first-child{border-left:3px solid var(--fab-success)}.fam-tech-architecture-status article:nth-child(2),.fam-tech-action-diagnostics article:nth-child(2){border-left:3px solid var(--fab-high)}.fam-tech-architecture-status article:nth-child(3),.fam-tech-action-diagnostics article:nth-child(3){border-left:3px solid var(--fab-shield-blue)}.fam-tech-mermaid .label,.fam-tech-mermaid .messageText,.fam-tech-mermaid .loopText,.fam-tech-mermaid .noteText{font-family:var(--fab-font-sans)}.fam-tech-mermaid .edgeLabel,.fam-tech-mermaid .messageText{color:var(--fab-text-1);font-family:var(--fab-font-mono);font-size:.72rem}@media (width<=720px){.fam-tech-mermaid svg{min-width:700px;margin-left:0}.fam-tech-architecture-card>.fam-tech-mermaid svg{min-width:1020px}.fam-tech-legend-grid,.fam-tech-architecture-status,.fam-tech-action-diagnostics,.fam-tech-legend-grid{grid-template-columns:1fr}}
