.card-white{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.input-text{width:100%;font-family:var(--font);font-size:.875rem;color:var(--text-900);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:9px 12px;outline:none;transition:border-color .12s ease,box-shadow .12s ease}.input-text::placeholder{color:var(--text-400)}.input-text:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #4f46e51f}.select-custom{width:100%;font-family:var(--font);font-size:.875rem;color:var(--text-900);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:9px 12px;outline:none;cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease}.select-custom:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #4f46e51f}:root{--brand-primary: #4f46e5;--brand-primary-h: #4338ca;--brand-light: #eef2ff;--brand-border: #c7d2fe;--canvas: #f8fafc;--surface: #ffffff;--surface-2: #f1f5f9;--surface-3: #e2e8f0;--text-900: #0f172a;--text-600: #475569;--text-400: #94a3b8;--border: #e2e8f0;--border-focus: #4f46e5;--green: #10b981;--green-bg: #d1fae5;--amber: #f59e0b;--amber-bg: #fef3c7;--red: #ef4444;--red-bg: #fee2e2;--blue: #3b82f6;--blue-bg: #dbeafe;--shadow-xs: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .07), 0 2px 4px -2px rgb(0 0 0 / .07);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .07), 0 4px 6px -4px rgb(0 0 0 / .07);--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 18px;--r-full: 9999px;--nav-width: 256px;--header-h: 60px;--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;color-scheme:light}body{font-family:var(--font);background:var(--canvas);color:var(--text-900);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}h1{font-size:1.75rem;font-weight:800;letter-spacing:-.025em;line-height:1.2}h2{font-size:1.25rem;font-weight:700;letter-spacing:-.02em;line-height:1.3}h3{font-size:1rem;font-weight:600;letter-spacing:-.01em;line-height:1.4}h4{font-size:.875rem;font-weight:600}p{color:var(--text-600)}.tabnum{font-variant-numeric:tabular-nums}.page{max-width:1200px;margin:0 auto;padding:32px 24px;display:flex;flex-direction:column;gap:28px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card-hover{transition:box-shadow .15s ease,border-color .15s ease}.card-hover:hover{box-shadow:var(--shadow-md);border-color:#cbd5e1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:var(--font);font-size:.875rem;font-weight:600;padding:8px 16px;border-radius:var(--r-md);border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:all .12s ease;line-height:1}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn-primary{background:var(--brand-primary);color:#fff;border-color:var(--brand-primary);box-shadow:0 1px 3px #4f46e54d}.btn-primary:hover:not(:disabled){background:var(--brand-primary-h);border-color:var(--brand-primary-h);box-shadow:0 4px 12px #4f46e559}.btn-secondary{background:var(--surface);color:var(--text-900);border-color:var(--border);box-shadow:var(--shadow-xs)}.btn-secondary:hover:not(:disabled){background:var(--surface-2);border-color:#cbd5e1}.btn-ghost{background:transparent;color:var(--text-600);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text-900)}.btn-danger{background:var(--surface);color:var(--red);border-color:var(--border)}.btn-danger:hover:not(:disabled){background:var(--red-bg);border-color:#fca5a5}.btn-sm{padding:5px 11px;font-size:.8125rem;border-radius:var(--r-sm)}.btn-lg{padding:11px 22px;font-size:.9375rem;border-radius:var(--r-lg)}.btn-pill{border-radius:var(--r-full)}.input{width:100%;font-family:var(--font);font-size:.875rem;color:var(--text-900);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:9px 12px;outline:none;transition:border-color .12s ease,box-shadow .12s ease;line-height:1.5}.input::placeholder{color:var(--text-400)}.input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #4f46e51f}textarea.input{resize:vertical;min-height:80px}.login-page,.login-card{position:relative}.login-page .login-form{display:block}.login-page .login-field{display:block;margin-bottom:18px;cursor:text}.login-page .login-field-label{display:block;font-size:.875rem;font-weight:600;color:#1e293b;margin-bottom:6px}.login-page .login-input{display:block;width:100%;height:44px;font-size:.9375rem;color:var(--text-900);background:#fff;caret-color:var(--text-900);touch-action:manipulation}.login-page .login-password-row{display:flex;align-items:stretch;gap:8px}.login-page .login-password-row .login-input{flex:1;min-width:0}.login-page .login-password-toggle{flex-shrink:0;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--border);border-radius:var(--r-md);color:#94a3b8;cursor:pointer}.login-page .login-password-toggle:hover{background:#f8fafc;border-color:#cbd5e1}.login-page .login-remember-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.login-page .login-submit{width:100%;margin-top:6px}.login-page .login-social-section{margin-top:24px}.login-page .login-input-password{padding-right:40px}.badge{display:inline-flex;align-items:center;gap:4px;font-size:.6875rem;font-weight:600;padding:2px 8px;border-radius:var(--r-full);letter-spacing:.02em;white-space:nowrap}.badge-indigo{background:#ede9fe;color:#6d28d9}.badge-green{background:var(--green-bg);color:#059669}.badge-amber{background:var(--amber-bg);color:#d97706}.badge-red{background:var(--red-bg);color:#dc2626}.badge-blue{background:var(--blue-bg);color:#2563eb}.badge-slate{background:var(--surface-2);color:var(--text-600)}.dot{width:7px;height:7px;border-radius:50%;display:inline-block}.dot-green{background:var(--green)}.dot-amber{background:var(--amber)}.dot-red{background:var(--red)}.dot-slate{background:#94a3b8}.section-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:12px}.page-title{font-size:1.625rem;font-weight:800;color:var(--text-900);letter-spacing:-.025em}.page-subtitle{font-size:.9375rem;color:var(--text-600);margin-top:4px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:20px;box-shadow:var(--shadow-sm)}.stat-value{font-size:2rem;font-weight:800;color:var(--text-900);letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1;margin:8px 0 4px}.stat-label{font-size:.75rem;font-weight:600;color:var(--text-400);text-transform:uppercase;letter-spacing:.05em}.stat-sub{font-size:.8125rem;color:var(--text-600)}.trust-banner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:14px 18px;background:linear-gradient(135deg,#ecfdf5,#f0fdf4);border:1px solid #a7f3d0;border-radius:var(--r-lg)}.nav-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-radius:var(--r-md);border:none;cursor:pointer;text-align:left;text-decoration:none;font-family:var(--font);font-size:.875rem;font-weight:500;color:var(--text-600);background:transparent;width:100%;transition:background .1s ease,color .1s ease}.nav-item:hover{background:var(--surface-2);color:var(--text-900)}.nav-item.active{background:var(--brand-light);color:var(--brand-primary);font-weight:600}.nav-item.active svg{color:var(--brand-primary)!important}.list-row{display:flex;align-items:center;padding:14px 20px;border-bottom:1px solid var(--border);gap:16px;transition:background .1s ease}.list-row:last-child{border-bottom:none}.list-row:hover{background:var(--canvas)}.list-row.selected{background:var(--brand-light)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px;animation:fade-in .15s ease}.modal-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:0 24px 48px -12px #0000002e;width:100%;max-width:540px;padding:28px;animation:slide-up .18s cubic-bezier(.16,1,.3,1)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:56px 32px;text-align:center;gap:12px}.empty-icon{width:48px;height:48px;background:var(--surface-2);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto}.progress-track{height:6px;background:var(--surface-2);border-radius:var(--r-full);overflow:hidden}.progress-fill{height:100%;background:var(--brand-primary);border-radius:var(--r-full);transition:width .4s ease}.progress-fill.green{background:var(--green)}.progress-fill.amber{background:var(--amber)}.progress-fill.red{background:var(--red)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:var(--r-full)}::-webkit-scrollbar-thumb:hover{background:#94a3b8}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin .8s linear infinite}.fit-score-ring{display:flex;align-items:center;justify-content:center;position:relative}kbd{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font);font-size:.6875rem;font-weight:600;background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:1px 5px;color:var(--text-600)}.divider{height:1px;background:var(--border);margin:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flex-center{display:flex;align-items:center;justify-content:center}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.app-shell{display:flex;flex-direction:column;height:100vh;background:var(--canvas);color:var(--text-900);font-family:var(--font)}.full-page-center{display:flex;height:100vh;align-items:center;justify-content:center;background:var(--canvas)}.app-layout{display:flex;flex:1;overflow:hidden;position:relative}.app-main{flex:1;overflow-y:auto;background:var(--canvas);min-width:0}.app-navbar{height:var(--header-h);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 20px 0 16px;position:sticky;top:0;z-index:50;flex-shrink:0}.navbar-title{font-size:1rem;font-weight:700;color:var(--text-900);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navbar-tenant-badge{font-size:.75rem;color:var(--text-400);background:var(--surface-2);padding:2px 10px;border-radius:var(--r-full);font-weight:500;display:none}.navbar-review-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);color:var(--text-600);font-size:.8125rem;font-weight:600;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.navbar-review-btn.has-pending{border-color:#fde68a;background:#fffbeb;color:#d97706}.navbar-review-btn:focus-visible,.menu-toggle-btn:focus-visible,.nav-item:focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px}.navbar-user-chip{display:flex;align-items:center;gap:8px;padding:5px 10px 5px 5px;border-radius:var(--r-full);border:1px solid var(--border);background:var(--surface)}.navbar-avatar,.sidebar-avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.6875rem;font-weight:700;flex-shrink:0}.sidebar-avatar{width:32px;height:32px;font-size:.75rem}.navbar-user-name{font-size:.8125rem;font-weight:600;color:var(--text-900);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-wrap{position:relative}.user-menu-trigger{cursor:pointer;font-family:var(--font);transition:border-color .15s ease,box-shadow .15s ease}.user-menu-trigger:hover{border-color:var(--border-strong)}.user-menu-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:220px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);z-index:200;overflow:hidden;animation:menu-fade-in .15s ease}@keyframes menu-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.user-menu-header{padding:12px 14px;border-bottom:1px solid var(--border);background:var(--surface-2)}.user-menu-item{width:100%;display:flex;align-items:center;gap:10px;padding:11px 14px;border:none;background:transparent;font-family:var(--font);font-size:.8125rem;font-weight:500;color:var(--text-800);cursor:pointer;text-align:left;transition:background .12s ease}.user-menu-item:hover{background:var(--surface-2)}.user-menu-item-danger{color:#dc2626;border-top:1px solid var(--border)}.user-menu-item-danger:hover{background:#fef2f2}.menu-toggle-btn{display:none;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);color:var(--text-600);cursor:pointer}.app-sidebar{width:var(--nav-width);background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;height:100%;flex-shrink:0;overflow-y:auto}.sidebar-header{padding:18px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px}.sidebar-logo{width:32px;height:32px;background:var(--brand-primary);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-close-btn{display:none;border:none;background:transparent;color:var(--text-600);cursor:pointer;padding:4px;border-radius:var(--r-sm)}.sidebar-nav{padding:12px 10px;flex:1;display:flex;flex-direction:column;gap:20px}.sidebar-group-label{font-size:.6875rem;font-weight:700;color:var(--text-400);text-transform:uppercase;letter-spacing:.06em;padding:0 10px;margin-bottom:4px}.sidebar-footer{border-top:1px solid var(--border);padding:12px 10px}.sidebar-user-chip{display:flex;align-items:center;gap:10px;padding:10px 10px 2px;margin-top:6px;border-top:1px solid var(--border)}.sidebar-user-name{font-size:.8125rem;font-weight:700;color:var(--text-900);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-email{font-size:.6875rem;color:var(--text-400);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-item-danger{color:#ef4444!important}.nav-badge{background:#ef4444;color:#fff;font-size:.625rem;font-weight:700;padding:1px 6px;border-radius:9999px;min-width:18px;text-align:center;font-variant-numeric:tabular-nums}.sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;top:var(--header-h);border:none;background:#0f172a73;z-index:40;cursor:pointer}.page-enter{animation:page-enter .2s cubic-bezier(.16,1,.3,1)}@keyframes page-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(min-width:900px){.navbar-tenant-badge{display:inline-flex}}@media(max-width:900px){.menu-toggle-btn,.sidebar-close-btn{display:inline-flex}.app-sidebar{position:fixed;top:var(--header-h);left:0;bottom:0;z-index:45;transform:translate(-100%);transition:transform .2s cubic-bezier(.16,1,.3,1);box-shadow:var(--shadow-lg)}.app-sidebar.open{transform:translate(0)}.sidebar-backdrop{display:block}.page{padding:24px 16px;gap:20px}.navbar-user-name{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.page-enter{animation:none}.app-sidebar{transition:none}.btn:active{transform:none}}:root{--accent-primary: var(--brand-primary);--accent-success: var(--green);--accent-warning: var(--amber);--accent-danger: var(--red);--text-primary: var(--text-900);--text-secondary: var(--text-600);--text-muted: var(--text-400);--border-glass: var(--border);--border-color: var(--border);--radius-md: var(--r-md);--radius-lg: var(--r-lg);--glass-bg: var(--surface);--glass-border: var(--border)}.glass-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.glass-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-md)}.input-glass{width:100%;font-family:var(--font);font-size:.875rem;color:var(--text-900);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:9px 12px;outline:none;transition:border-color .12s ease,box-shadow .12s ease}.input-glass::placeholder{color:var(--text-400)}.input-glass:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #4f46e51f}.diff-added{background:#f0fdf4;border-left:3px solid #10b981;padding:4px 8px;border-radius:0 4px 4px 0;color:#065f46;font-size:.85rem;line-height:1.45}.diff-removed{background:#fff1f2;border-left:3px solid #f43f5e;padding:4px 8px;border-radius:0 4px 4px 0;color:#881337;font-size:.85rem;line-height:1.45;text-decoration:line-through;opacity:.75}.entity-highlight{display:inline-block;background:#fef3c7;border:1px solid #fde68a;color:#92400e;border-radius:var(--r-full);padding:2px 10px;font-size:.8125rem;font-weight:600}.simulation-badge{display:inline-flex;align-items:center;gap:5px;background:#fef3c7;border:1px solid #fde68a;color:#92400e;border-radius:var(--r-full);padding:2px 10px;font-size:.75rem;font-weight:700;white-space:nowrap}.status-chip{display:inline-flex;align-items:center;gap:4px;border-radius:var(--r-full);padding:2px 10px;font-size:.75rem;font-weight:600}
