.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:var(--text-secondary, #666)}.loading-fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-primary, #fff);z-index:9999}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#fffc;z-index:9999}.loading-spinner{border-radius:50%;border-style:solid;border-color:var(--border-color, #e5e7eb);border-top-color:var(--primary-color, #3b82f6);animation:spin 1s linear infinite}.loading-spinner--small{width:24px;height:24px;border-width:2px}.loading-spinner--medium{width:40px;height:40px;border-width:3px}.loading-spinner--large{width:64px;height:64px;border-width:4px}.loading-message{margin:16px 0 0;font-size:14px;color:var(--text-secondary, #666)}[data-theme=dark] .loading-container{color:var(--text-secondary, #9ca3af)}[data-theme=dark] .loading-fullscreen{background:var(--bg-primary, #111827)}[data-theme=dark] .loading-overlay{background:#111827cc}[data-theme=dark] .loading-spinner{border-color:var(--border-color, #374151);border-top-color:var(--primary-color, #60a5fa)}[data-theme=dark] .loading-message{color:var(--text-secondary, #9ca3af)}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem;background-color:var(--bg-secondary, #f5f5f5)}.error-boundary-content{max-width:500px;padding:3rem;text-align:center;background-color:var(--bg-primary, #ffffff);border-radius:12px;box-shadow:0 4px 20px #0000001a}.error-icon{font-size:4rem;margin-bottom:1rem}.error-boundary h1{margin:0 0 1rem;font-size:1.75rem;color:var(--text-primary, #333)}.error-message{margin-bottom:1.5rem;color:var(--text-secondary, #666);line-height:1.6}.error-details{margin:1.5rem 0;padding:1rem;text-align:left;background-color:var(--bg-secondary, #f5f5f5);border-radius:8px;font-size:.875rem}.error-details summary{cursor:pointer;font-weight:600;color:var(--text-primary, #333);margin-bottom:.5rem}.error-details pre{margin:.5rem 0;padding:.75rem;overflow-x:auto;white-space:pre-wrap;word-break:break-word;background-color:var(--bg-primary, #ffffff);border-radius:4px;font-size:.75rem;color:#d32f2f}.error-actions{display:flex;gap:1rem;justify-content:center}.error-actions .btn-primary,.error-actions .btn-secondary{padding:.75rem 1.5rem;font-size:1rem;font-weight:500;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease}.error-actions .btn-primary{background-color:var(--btn-primary-bg, var(--accent-color, #0078d4));color:#fff}.error-actions .btn-primary:hover{background-color:var(--accent-hover, #106ebe)}.error-actions .btn-secondary{background-color:transparent;color:var(--text-secondary, #666);border:1px solid var(--border-color, #ddd)}.error-actions .btn-secondary:hover{background-color:var(--bg-secondary, #f5f5f5)}[data-theme=dark] .error-boundary{background-color:var(--bg-secondary, #1e1e1e)}[data-theme=dark] .error-boundary-content{background-color:var(--bg-primary, #252525)}[data-theme=dark] .error-details{background-color:var(--bg-secondary, #1e1e1e)}[data-theme=dark] .error-details pre{background-color:var(--bg-tertiary, #2d2d2d);color:#ff6b6b}.app-header{display:flex;align-items:center;justify-content:space-between;height:60px;padding:0 1rem;background-color:var(--bg-primary, #ffffff);border-bottom:1px solid var(--border-color, #e0e0e0);position:sticky;top:0;z-index:100}.header-left{display:flex;align-items:center;gap:1rem}.menu-toggle{display:flex;align-items:center;justify-content:center;padding:.5rem;background:none;border:none;border-radius:6px;cursor:pointer;font-size:1.5rem;transition:background-color .2s}.menu-toggle:hover{background-color:var(--bg-secondary, #f5f5f5)}.menu-icon{color:var(--text-primary, #333)}.header-logo{text-decoration:none}.logo-text{font-size:1.25rem;font-weight:700;color:var(--accent-color, #0078d4)}.header-title{margin:0;padding-left:1rem;border-left:1px solid var(--border-color, #e0e0e0);font-size:1.125rem;font-weight:500;color:var(--text-primary, #333)}.header-right{display:flex;align-items:center;gap:.5rem}.header-icon-btn{padding:.5rem;background:none;border:none;border-radius:8px;cursor:pointer;font-size:1.25rem;transition:background-color .2s}.header-icon-btn:hover{background-color:var(--bg-secondary, #f5f5f5)}.user-menu-container{position:relative}.user-menu-trigger{display:flex;align-items:center;gap:.75rem;padding:.5rem;background:none;border:none;border-radius:8px;cursor:pointer;transition:background-color .2s}.user-menu-trigger:hover{background-color:var(--bg-secondary, #f5f5f5)}.user-avatar{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background-color:var(--accent-color, #0078d4);color:#fff;border-radius:50%;font-size:.875rem;font-weight:600}.user-info{display:flex;flex-direction:column;align-items:flex-start}.user-name{font-size:.875rem;font-weight:500;color:var(--text-primary, #333)}.user-role{font-size:.75rem;color:var(--text-primary, #333)}.dropdown-arrow{font-size:.625rem;color:var(--text-secondary, #666)}@media (max-width: 600px){.user-info,.dropdown-arrow{display:none}}.user-menu-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:240px;background-color:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e0e0e0);border-radius:12px;box-shadow:0 8px 24px #00000026;overflow:hidden;z-index:1000}.menu-section{padding:.5rem 0}.menu-header{padding:.75rem 1rem;display:flex;flex-direction:column}.menu-header strong{font-size:.875rem;color:var(--text-primary, #333)}.menu-header small{font-size:.75rem;color:var(--text-secondary, #666)}.menu-divider{height:1px;background-color:var(--border-color, #e0e0e0);margin:0}.menu-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;background:none;border:none;text-decoration:none;color:var(--text-primary, #333);font-size:.875rem;cursor:pointer;transition:background-color .2s}.menu-item:hover{background-color:var(--bg-secondary, #f5f5f5)}.menu-item.logout{color:#d32f2f}.menu-item.logout:hover{background-color:#ffebee}[data-theme=dark] .app-header{background-color:var(--bg-primary, #252525);border-bottom-color:var(--border-color, #444)}[data-theme=dark] .user-menu-dropdown{background-color:var(--bg-primary, #252525);border-color:var(--border-color, #444)}[data-theme=dark] .menu-item.logout:hover{background-color:#4a2020}[data-theme=blueprint] .logo-text{font-family:Outfit,sans-serif;font-weight:800;font-size:1.375rem;letter-spacing:-.02em;color:var(--accent-color)}[data-theme=blueprint] .header-title{font-family:Outfit,sans-serif;font-weight:600;letter-spacing:.01em}[data-theme=blueprint] .menu-item{font-family:Outfit,sans-serif;font-weight:500;letter-spacing:.02em}[data-theme=blueprint] .menu-item.logout{font-weight:600;letter-spacing:.03em}.sidebar{display:flex;flex-direction:column;width:260px;height:calc(100vh - 60px);background-color:var(--sidebar-bg, var(--bg-primary, #ffffff));border-right:1px solid var(--border-color, #e0e0e0);position:fixed;top:60px;left:0;overflow-y:auto;overflow-x:hidden;transition:transform .3s ease,box-shadow .3s ease;z-index:100;box-shadow:2px 0 8px #0000000d}.sidebar-header{padding:1.5rem 1rem;border-bottom:1px solid var(--border-color, #e0e0e0);display:flex;align-items:center;justify-content:space-between}.user-profile{display:flex;align-items:center;gap:.75rem;flex:1}.user-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--accent-color, #0078d4),var(--accent-secondary, #00a8e8));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1.125rem;flex-shrink:0}.user-info{flex:1;min-width:0}.sidebar .user-name{font-weight:600;font-size:.875rem;color:var(--nav-neutral-text, #8b949e);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar .user-role{font-size:.75rem;color:var(--nav-neutral-text, #8b949e);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-close-btn{background:none;border:none;font-size:1.5rem;color:var(--text-secondary, #666);cursor:pointer;padding:.25rem;line-height:1;transition:color .2s}.sidebar-close-btn:hover{color:var(--text-primary, #333)}.sidebar-nav{flex:1;padding:1rem 0}.nav-list{list-style:none;margin:0;padding:0}.nav-item{margin:.25rem .5rem}.nav-link{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:8px;text-decoration:none;color:var(--nav-neutral-text);font-size:.875rem;font-weight:500;transition:all .2s ease}.nav-link:hover{background-color:var(--nav-hover-bg);color:var(--text-primary)}.nav-link.active{background-color:var(--nav-selected-bg);color:var(--nav-selected-text)}.nav-link.active .sidebar-nav-icon{color:var(--nav-selected-icon);transform:scale(1.05)}.sidebar-nav-icon{flex-shrink:0;color:var(--nav-neutral-icon);transition:all .2s ease}.nav-link:hover .sidebar-nav-icon{color:var(--nav-neutral-text)}.nav-label{white-space:nowrap}@media (max-width: 768px){.sidebar-nav-icon{width:20px;height:20px}}.sidebar-footer{padding:1rem;border-top:1px solid var(--border-color, #e0e0e0);margin-top:auto}.sidebar-user-info{margin-bottom:.75rem;display:flex;flex-direction:column;gap:.25rem}.user-division,.user-company{font-size:.75rem;color:var(--text-secondary, #666);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logout-btn{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;background:transparent;border:1px solid var(--border-color, #e0e0e0);border-radius:8px;color:var(--text-secondary, #666);font-size:.875rem;cursor:pointer;transition:all .2s;margin-bottom:.5rem}.logout-btn:hover{background-color:var(--bg-secondary, #f5f5f5);color:var(--text-primary, #333)}[data-theme=dark] .logout-btn,[data-theme=blueprint] .logout-btn{color:#ffffffb3;border-color:#fff3}.app-version{text-align:center;font-size:.625rem;color:var(--text-secondary, #767676);margin-top:.5rem}.sidebar-overlay{display:none;position:fixed;top:60px;left:0;right:0;bottom:0;background-color:#00000080;z-index:999;animation:fadeIn .3s ease}@media (max-width: 768px){.sidebar{transform:translate(-100%);box-shadow:none;position:fixed;top:60px;left:0;z-index:1000;width:260px}.sidebar.sidebar-open{transform:translate(0);box-shadow:4px 0 12px #00000026}.sidebar-overlay{display:block;left:260px}.user-avatar{width:36px;height:36px;font-size:1rem}}@media (min-width: 769px) and (max-width: 1024px){.sidebar{width:220px}}@media (min-width: 1025px){.sidebar{transform:translate(-100%)}.sidebar.sidebar-open{transform:translate(0)}.sidebar-overlay{display:none!important}.sidebar-close-btn{display:none}}@media (min-width: 1440px){.sidebar{width:280px}}@media print{.sidebar{display:none}}.sidebar.collapsed{width:64px}.sidebar.collapsed .nav-label{display:none}.sidebar.collapsed .nav-link{justify-content:center;padding:.75rem}.sidebar.collapsed .sidebar-footer{display:none}[data-theme=dark] .sidebar{background-color:var(--bg-primary, #252525);border-right-color:var(--border-color, #444)}[data-theme=dark] .nav-link:hover{background-color:var(--bg-secondary, #333)}[data-theme=dark] .nav-link.active{background-color:var(--accent-bg, #1a365d)}[data-theme=dark] .sidebar-footer{border-top-color:var(--border-color, #444)}[data-theme=blueprint] .sidebar{background:var(--bg-primary);border-right:2px solid var(--border-light, #243d62);background-image:linear-gradient(rgba(26,45,74,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(26,45,74,.2) 1px,transparent 1px);background-size:32px 32px}[data-theme=blueprint] .sidebar-header{border-bottom:1px solid var(--border-light)}[data-theme=blueprint] .user-info{padding:.625rem .75rem;background:#06b6d414;border:1px solid rgba(6,182,212,.2);border-radius:6px}[data-theme=blueprint] .user-name{font-family:Outfit,sans-serif;font-weight:700;font-size:.9375rem;letter-spacing:.02em;color:var(--text-primary)}[data-theme=blueprint] .user-role{font-family:JetBrains Mono,monospace;color:var(--accent-color);text-transform:uppercase;letter-spacing:.5px;font-size:.625rem}[data-theme=blueprint] .user-role:before{content:"// ";opacity:.7}[data-theme=blueprint] .nav-link{border:1px solid transparent;transition:all .18s ease;font-family:Outfit,sans-serif;font-weight:500;font-size:.9375rem;letter-spacing:.03em}[data-theme=blueprint] .nav-label{font-weight:600;letter-spacing:.04em}[data-theme=blueprint] .nav-link:hover{background:var(--bg-secondary);border-color:var(--border-color)}[data-theme=blueprint] .nav-link.active{background:var(--bg-secondary);border-color:var(--accent-color);color:#fff;font-weight:600}[data-theme=blueprint] .nav-link.active .nav-icon{color:var(--accent-color)}[data-theme=blueprint] .nav-badge{background:#ef444426;color:#ef4444;font-family:JetBrains Mono,monospace;font-weight:700;border-radius:3px}[data-theme=blueprint] .sidebar-footer{border-top:1px solid var(--border-light)}[data-theme=blueprint] .nav-link .nav-label{font-family:Outfit,sans-serif}[data-theme=ocean] .sidebar .user-division,[data-theme=ocean] .sidebar .user-company,[data-theme=ocean] .sidebar .user-role,[data-theme=ocean] .sidebar .app-version{color:#bae6fd}[data-theme=ocean] .logout-btn{color:#bae6fd;border-color:#bae6fd4d}[data-theme=forest] .sidebar .user-division,[data-theme=forest] .sidebar .user-company,[data-theme=forest] .sidebar .user-role,[data-theme=forest] .sidebar .app-version{color:#bbf7d0}[data-theme=forest] .logout-btn{color:#bbf7d0;border-color:#bbf7d04d}[data-theme=sunset] .sidebar .user-division,[data-theme=sunset] .sidebar .user-company,[data-theme=sunset] .sidebar .user-role,[data-theme=sunset] .sidebar .app-version{color:#fed7aa}[data-theme=sunset] .logout-btn{color:#fed7aa;border-color:#fed7aa4d}[data-theme=purple] .sidebar .user-division,[data-theme=purple] .sidebar .user-company,[data-theme=purple] .sidebar .user-role,[data-theme=purple] .sidebar .app-version{color:#ddd6fe}[data-theme=purple] .logout-btn{color:#ddd6fe;border-color:#ddd6fe4d}.proxy-banner{position:sticky;top:0;z-index:1000;background:var(--warning-background, #fff3cd);border-bottom:3px solid var(--warning-border, #ffc107);box-shadow:0 2px 8px #00000026;animation:slideDown .3s ease-out}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.proxy-banner-content{display:flex;align-items:center;gap:1rem;padding:.75rem 1.5rem;max-width:1400px;margin:0 auto}.proxy-banner-icon{flex-shrink:0}.warning-icon{font-size:1.5rem;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}.proxy-banner-text{flex:1;display:flex;flex-direction:column;gap:.25rem}.proxy-banner-title{font-size:1rem;font-weight:700;color:var(--warning-color, #856404);text-transform:uppercase;letter-spacing:.5px}.proxy-banner-details{font-size:.9rem;color:var(--warning-text, #664d03)}.admin-info{opacity:.8;font-size:.85rem}.proxy-exit-button{flex-shrink:0;display:flex;align-items:center;gap:.5rem;padding:.5rem 1.25rem;background:var(--danger-color, #dc3545);color:#fff;border:none;border-radius:4px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background-color .2s,transform .1s;white-space:nowrap}.proxy-exit-button:hover:not(:disabled){background:var(--danger-hover, #c82333);transform:translateY(-1px)}.proxy-exit-button:active:not(:disabled){transform:translateY(0)}.proxy-exit-button:disabled{opacity:.6;cursor:not-allowed}.exit-icon{font-size:1.5rem;line-height:1;font-weight:700}@media (max-width: 768px){.proxy-banner-content{padding:.75rem 1rem;gap:.75rem}.proxy-banner-text{flex-direction:column;gap:.25rem}.proxy-banner-details{font-size:.85rem}.admin-info{display:block;margin-top:.25rem}.proxy-exit-button{padding:.5rem 1rem;font-size:.9rem}}@media (max-width: 480px){.proxy-banner-icon{display:none}.proxy-banner-title{font-size:.9rem}.proxy-banner-details{font-size:.8rem}}.app-layout{min-height:100vh;width:100%;display:flex;flex-direction:column;background-color:var(--color-background)}.layout-container{display:flex;flex:1;position:relative;width:100%;height:calc(100vh - 60px);overflow-x:hidden}.main-content{flex:1;width:100%;overflow-y:auto;overflow-x:hidden;transition:margin-left .3s ease;background-color:var(--color-background)}.main-content.sidebar-open{margin-left:0}.content-wrapper{padding:1.5rem;width:100%;max-width:100%;margin:0 auto;box-sizing:border-box}@media (max-width: 768px){.content-wrapper{padding:1rem}.main-content{margin-left:0!important}}@media (min-width: 769px) and (max-width: 1024px){.content-wrapper{padding:1.25rem}}@media (min-width: 1025px){.main-content{margin-left:0;transition:margin-left .3s ease}.main-content.sidebar-open{margin-left:260px}}@media (min-width: 1440px){.content-wrapper{padding:2rem}}.breadcrumb-nav{margin-bottom:.75rem}.breadcrumb-list{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem;list-style:none;padding:0;margin:0;font-size:.875rem}.breadcrumb-item{display:flex;align-items:center;gap:.5rem}.breadcrumb-link{color:var(--breadcrumb-parent);text-decoration:none;transition:color .2s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.breadcrumb-link:hover{color:var(--breadcrumb-hover);text-decoration:underline}.breadcrumb-current{color:var(--breadcrumb-current);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}.breadcrumb-separator{color:var(--breadcrumb-separator);flex-shrink:0}@media (max-width: 768px){.breadcrumb-list{font-size:.8125rem;gap:.125rem}.breadcrumb-item{gap:.375rem}.breadcrumb-link{max-width:120px}.breadcrumb-current{max-width:150px}.breadcrumb-separator{width:14px;height:14px}}@media (max-width: 480px){.breadcrumb-list{font-size:.75rem}.breadcrumb-link{max-width:80px}.breadcrumb-current{max-width:100px}}@media (prefers-contrast: high){.breadcrumb-link{text-decoration:underline}}.breadcrumb-link,.breadcrumb-current,.breadcrumb-separator{transition:color .2s ease}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color, #e0e0e0)}.page-header-main{flex:1;min-width:0}.breadcrumbs{margin-bottom:.75rem}.breadcrumb-list{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0;padding:0;font-size:.875rem}.breadcrumb-item{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary, #666)}.breadcrumb-item a{color:var(--breadcrumb-parent, var(--accent-color, #005a9e));text-decoration:none;transition:color .2s}.breadcrumb-item a:hover{color:var(--accent-hover, #005a9e);text-decoration:underline}.breadcrumb-separator{color:var(--text-muted, #999)}.page-title-section{display:flex;flex-direction:column;gap:.25rem}.page-title{font-size:1.5rem;font-weight:600;color:var(--text-primary, #333);margin:0;line-height:1.2}.page-subtitle{font-size:.8125rem;color:var(--text-secondary, #666);margin:0}.page-header-actions{display:flex;align-items:center;gap:1rem;flex-shrink:0}.page-filters,.page-actions{display:flex;align-items:center;gap:.75rem}.page-filters{border-right:1px solid var(--border-color, #e0e0e0);padding-right:1rem}@media (max-width: 768px){.page-header{flex-direction:column;align-items:stretch}.page-title{font-size:1.5rem}.page-header-actions{flex-direction:column;align-items:stretch}.page-filters{border-right:none;border-bottom:1px solid var(--border-color, #e0e0e0);padding-right:0;padding-bottom:.75rem}.page-actions{flex-wrap:wrap}}@media (min-width: 769px) and (max-width: 1024px){.page-title{font-size:1.625rem}.page-header-actions{flex-wrap:wrap}}[data-theme=blueprint] .page-header{border-bottom:1px solid var(--border-light);background:var(--surface);padding:1rem 1.5rem;border-radius:8px;margin-bottom:1rem}[data-theme=blueprint] .page-title{font-family:Outfit,sans-serif;color:#fff;font-weight:800;font-size:1.875rem;letter-spacing:-.01em;text-transform:none}[data-theme=blueprint] .page-subtitle{color:var(--text-dim);font-family:JetBrains Mono,monospace;font-size:.6875rem;font-weight:500}[data-theme=blueprint] .page-subtitle:before{content:"// ";opacity:.7}[data-theme=blueprint] .breadcrumb-item a{color:var(--accent-color)}[data-theme=blueprint] .breadcrumb-item a:hover{color:var(--accent-hover)}[data-theme=blueprint] .page-filters{border-right-color:var(--border-color)}.auth-form{max-width:480px;margin:0 auto;padding:var(--spacing-xl, 32px);background-color:var(--bg-primary, #ffffff);border-radius:var(--radius-lg, 12px);box-shadow:var(--card-shadow, 0 1px 3px rgba(0, 0, 0, .1))}.auth-form h2{margin:0 0 var(--spacing-lg, 24px);color:var(--text-primary, #1a1a1a);font-size:24px;text-align:center}.form-group{margin-bottom:var(--spacing-md, 16px)}.form-group label{display:block;margin-bottom:var(--spacing-xs, 4px);color:var(--text-primary, #1a1a1a);font-weight:500;font-size:14px}.form-group .required{color:var(--color-error, #ef4444)}.auth-form .form-group input[type=email],.auth-form .form-group input[type=password],.auth-form .form-group input[type=text],.auth-form .form-group select,.form-group input,.form-group select{width:100%;padding:var(--spacing-sm, 8px) var(--spacing-md, 16px);border:1px solid var(--border-color, #e5e7eb);border-radius:var(--radius-sm, 4px);font-size:14px;font-family:inherit;transition:border-color .2s;box-sizing:border-box;background-color:var(--bg-primary, #ffffff)!important;background-image:none!important;color:var(--text-primary, #1a1a1a)!important;-webkit-text-fill-color:var(--text-primary, #1a1a1a)!important;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--accent-color, #0078d4)}.form-group input:-webkit-autofill,.form-group input:-webkit-autofill:hover,.form-group input:-webkit-autofill:focus,.form-group input:-webkit-autofill:active{-webkit-text-fill-color:var(--text-primary, #1a1a1a)!important;-webkit-box-shadow:0 0 0 1000px var(--bg-primary, #ffffff) inset!important;box-shadow:0 0 0 1000px var(--bg-primary, #ffffff) inset!important;transition:background-color 5000s ease-in-out 0s;caret-color:var(--text-primary, #1a1a1a)!important}.form-group input.error,.form-group select.error{border-color:var(--color-error, #ef4444)}.form-group input:disabled,.form-group select:disabled{background-color:var(--bg-secondary, #f8f9fa);color:var(--text-muted, #999999);cursor:not-allowed;opacity:.6}.form-group input::placeholder{color:var(--text-secondary, #666666);opacity:1}.form-group select option{background-color:var(--bg-primary, #ffffff)!important;color:var(--text-primary, #1a1a1a)!important}.auth-form select,.auth-form select:focus,.auth-form select:active{background-color:var(--bg-primary, #ffffff)!important;color:var(--text-primary, #1a1a1a)!important}.error-message{display:block;margin-top:var(--spacing-xs, 4px);color:var(--color-error, #ef4444);font-size:12px}.help-text{display:block;margin-top:var(--spacing-xs, 4px);color:var(--text-secondary, #666666);font-size:12px}.alert{padding:var(--spacing-md, 16px);margin-bottom:var(--spacing-md, 16px);border-radius:var(--radius-sm, 4px);font-size:14px}.alert-error{background-color:var(--color-error, #ef4444);color:#fff;border:1px solid var(--color-error, #ef4444);opacity:.9}.alert-success{background-color:var(--color-success, #10b981);color:#fff;border:1px solid var(--color-success, #10b981);opacity:.9}.btn{padding:var(--spacing-sm, 8px) var(--spacing-lg, 24px);border:none;border-radius:var(--radius-sm, 4px);font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-block{width:100%;display:block;margin-top:var(--spacing-lg, 24px)}.form-footer{margin-top:var(--spacing-lg, 24px);text-align:center;color:var(--text-secondary, #666666);font-size:14px}.form-footer a{color:var(--accent-color, #0078d4);text-decoration:none;font-weight:500}.form-footer a:hover{text-decoration:underline;color:var(--accent-hover, #005a9e)}.checkbox-group{display:flex;align-items:center;gap:var(--spacing-sm, 8px)}.checkbox-group input[type=checkbox]{width:auto;margin:0}.checkbox-group label{margin:0;font-weight:400;color:var(--text-primary, #1a1a1a)}.form-link{text-align:center;margin-bottom:var(--spacing-md, 16px)}.form-link a{color:var(--accent-color, #0078d4);text-decoration:none;font-size:14px}.form-link a:hover{text-decoration:underline;color:var(--accent-hover, #005a9e)}.verification-container{max-width:520px;margin:0 auto;padding:var(--spacing-xl);text-align:center}.verification-card{padding:var(--spacing-xl);background-color:var(--color-background-paper);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.verification-icon{width:64px;height:64px;margin:0 auto var(--spacing-lg);display:flex;align-items:center;justify-content:center;border-radius:50%}.verification-icon.success{background-color:var(--color-success-light);color:var(--color-success-dark)}.verification-icon.error{background-color:var(--color-error-light);color:var(--color-error-dark)}.verification-icon.loading{background-color:var(--color-info-light);color:var(--color-info-dark)}.verification-message{margin-bottom:var(--spacing-lg);color:var(--color-text-primary)}.verification-message h2{margin:0 0 var(--spacing-sm);font-size:24px}.verification-message p{margin:0;color:var(--color-text-secondary)}.password-toggle{background:transparent;color:var(--text-secondary, #666);padding:.25em .5em;border:none}.App{width:100%;margin:0;padding:0}.page-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg, 24px);background-color:var(--color-background, #f5f7fa)}.App-header{margin-bottom:2rem}.App-header h1{margin-bottom:1rem}.health-status{padding:.75rem 1.5rem;border-radius:8px;display:inline-block;font-size:.9rem}.health-status.healthy{background-color:#4caf50;color:#fff}.health-status.unhealthy{background-color:#f44336;color:#fff}.health-status strong{margin-right:.5rem}.App-main{margin-top:2rem}.data-section{background-color:#ffffff0d;padding:2rem;border-radius:12px;margin-bottom:2rem}.data-section h2{margin-bottom:1.5rem;font-size:1.8rem}.data-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;margin-top:1rem}.data-item{background-color:#ffffff14;padding:1rem;border-radius:8px;text-align:left}.data-item pre{font-size:.85rem;overflow-x:auto;white-space:pre-wrap;word-wrap:break-word}.error-message{background-color:#f443361a;border:1px solid #f44336;border-radius:8px;padding:1rem;color:#f44336}.info{background-color:#2196f31a;border:1px solid #2196f3;border-radius:8px;padding:1rem;color:#2196f3;margin-top:1rem}.actions{display:flex;gap:1rem;justify-content:center}.actions button{min-width:150px}@media (prefers-color-scheme: light){.data-section{background-color:#0000000d}.data-item{background-color:#00000014}}.theme-selector{margin-bottom:1.5rem}.theme-selector-header{margin-bottom:1rem}.selector-label{display:block;margin-bottom:.5rem;font-size:1.125rem;font-weight:600;color:var(--text-primary)}.theme-description{font-size:.875rem;color:var(--text-secondary);margin:0;line-height:1.5}.theme-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem}.theme-option{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1rem;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:10px;cursor:pointer;transition:all .2s ease;position:relative;color:var(--text-primary)}.theme-option:hover{border-color:var(--accent-color);background:var(--bg-primary);transform:translateY(-2px);box-shadow:var(--card-hover-shadow)}.theme-option.active{border-color:var(--accent-color);background:var(--accent-bg)}.theme-preview{display:flex;gap:4px;width:100%;height:60px;border-radius:6px;overflow:hidden;box-shadow:0 2px 8px #0000001a}.theme-preview-color{flex:1}.theme-name{font-size:.875rem;font-weight:500;color:var(--text-primary);text-align:center}.theme-check{position:absolute;top:.5rem;right:.5rem;width:24px;height:24px;background:var(--accent-color);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:700}@media (max-width: 768px){.theme-options{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem}.theme-option{padding:.75rem}.theme-preview{height:50px}.theme-name{font-size:.8125rem}.selector-label{font-size:1rem}}@media (min-width: 769px) and (max-width: 1024px){.theme-options{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}}[data-theme=dark] .theme-option{color:var(--text-primary, #cbd5e1);background:var(--bg-secondary, #1e293b)}[data-theme=blueprint] .theme-option{color:var(--text-primary, #e2e8f0);background:var(--bg-secondary, #111e35)}.user-preferences{padding:0}.user-preferences.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:var(--text-secondary, #666)}.user-preferences .spinner{width:32px;height:32px;border:3px solid var(--border-color, #e5e7eb);border-top-color:var(--primary-color, #3b82f6);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:12px}.user-preferences .alert{padding:12px 16px;border-radius:6px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center}.user-preferences .alert button{background:none;border:none;font-size:18px;cursor:pointer;opacity:.7;padding:0 4px}.user-preferences .alert-error{background-color:#fef2f2;border:1px solid #fecaca;color:#dc2626}.user-preferences .alert-success{background-color:#f0fdf4;border:1px solid #bbf7d0;color:#16a34a}.preference-section{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--border-color, #e5e7eb)}.preference-section:last-of-type{border-bottom:none;padding-bottom:0}.preference-label{display:block;margin-bottom:12px;font-size:14px;font-weight:500;color:var(--text-primary, #1a1a1a)}.font-size-options{display:flex;gap:12px}.font-size-option{display:flex;flex-direction:column;align-items:center;padding:16px 20px;background:var(--bg-secondary, #f9fafb);border:2px solid var(--border-color, #e5e7eb);border-radius:8px;cursor:pointer;transition:all .2s ease;min-width:80px;color:var(--text-primary, #1a1a1a)}.font-size-option:hover{border-color:var(--primary-color, #3b82f6);background:var(--bg-hover, #f0f7ff)}.font-size-option.active{border-color:var(--primary-color, #3b82f6);background:#eff6ff}.font-preview{font-weight:600;margin-bottom:8px;color:var(--text-primary, #1a1a1a)}.font-preview.font-small{font-size:14px}.font-preview.font-medium{font-size:18px}.font-preview.font-large{font-size:24px}.font-name{font-size:12px;color:var(--text-secondary, #666);text-transform:capitalize}.orientation-options{display:flex;gap:16px}.orientation-option{flex:1;display:flex;flex-direction:column;align-items:center;padding:20px;background:var(--bg-secondary, #f9fafb);border:2px solid var(--border-color, #e5e7eb);border-radius:8px;cursor:pointer;transition:all .2s ease;text-align:center;color:var(--text-primary, #1a1a1a)}.orientation-option:hover{border-color:var(--primary-color, #3b82f6);background:var(--bg-hover, #f0f7ff)}.orientation-option.active{border-color:var(--primary-color, #3b82f6);background:#eff6ff}.orientation-icon{font-size:32px;margin-bottom:8px}.orientation-name{font-size:14px;font-weight:500;color:var(--text-primary, #1a1a1a);margin-bottom:4px}.orientation-desc{font-size:12px;color:var(--text-secondary, #666)}.preference-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:24px;border-top:1px solid var(--border-color, #e5e7eb)}.preference-actions .btn-primary{background-color:var(--btn-primary-bg, var(--accent-color, #0078d4));color:#fff;border:none;padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.preference-actions .btn-primary:hover:not(:disabled){background-color:var(--primary-hover, #2563eb)}.preference-actions .btn-primary:disabled{background-color:#9ca3af;cursor:not-allowed}.preference-actions .btn-secondary{background-color:#fff;color:var(--text-primary, #1a1a1a);border:1px solid var(--border-color, #e5e7eb);padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.preference-actions .btn-secondary:hover:not(:disabled){background-color:var(--bg-hover, #f5f5f5)}.preference-actions .btn-secondary:disabled{opacity:.5;cursor:not-allowed}[data-theme=dark] .preference-label{color:var(--text-primary, #f9fafb)}[data-theme=dark] .font-size-option,[data-theme=dark] .orientation-option{background:var(--bg-secondary, #374151);border-color:var(--border-color, #4b5563);color:var(--text-primary, #cbd5e1)}[data-theme=dark] .font-size-option:hover,[data-theme=dark] .orientation-option:hover{background:var(--bg-hover, #4b5563)}[data-theme=dark] .font-size-option.active,[data-theme=dark] .orientation-option.active{background:#3b82f633;border-color:var(--primary-color, #60a5fa)}[data-theme=dark] .font-preview,[data-theme=dark] .orientation-name{color:var(--text-primary, #f9fafb)}[data-theme=dark] .font-name,[data-theme=dark] .orientation-desc{color:var(--text-secondary, #9ca3af)}[data-theme=dark] .preference-actions .btn-secondary{background:var(--bg-secondary, #374151);border-color:var(--border-color, #4b5563);color:var(--text-primary, #f9fafb)}[data-theme=blueprint] .font-size-option,[data-theme=blueprint] .orientation-option{background:var(--bg-secondary, #111e35);border-color:var(--border-color, #1a2d4a);color:var(--text-primary, #e2e8f0)}[data-theme=blueprint] .font-size-option:hover,[data-theme=blueprint] .orientation-option:hover{background:var(--bg-hover, #1a2d4a)}[data-theme=blueprint] .font-preview,[data-theme=blueprint] .orientation-name{color:var(--text-primary, #e2e8f0)}[data-theme=blueprint] .font-name,[data-theme=blueprint] .orientation-desc{color:var(--text-secondary, #8892b0)}[data-theme=blueprint] .preference-actions .btn-secondary{background:var(--bg-secondary, #111e35);border-color:var(--border-color, #1a2d4a);color:var(--text-primary, #e2e8f0)}@media (max-width: 600px){.font-size-options,.orientation-options{flex-direction:column}.font-size-option,.orientation-option{width:100%}.preference-actions{flex-direction:column-reverse}.preference-actions button{width:100%}}.btn-danger-sm{display:inline-flex;align-items:center;padding:.25rem .75rem;font-size:.8125rem;font-weight:500;line-height:1.5;border-radius:4px;border:1px solid transparent;cursor:pointer;white-space:nowrap;background-color:#dc3545;color:#fff;transition:background-color .15s ease,opacity .15s ease}.btn-danger-sm:hover:not(:disabled){background-color:#b02a37}.btn-danger-sm:disabled{opacity:.65;cursor:not-allowed}.certification-tracker{background:var(--bg-primary, #ffffff);border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:1.5rem}.certification-tracker.dark{background:var(--bg-primary-dark, #1a1a2e);color:var(--text-primary-dark, #ffffff)}.tracker-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.tracker-title{font-size:1.5rem;font-weight:700;margin:0;display:flex;align-items:center;gap:.5rem;color:var(--text-primary, #1a1a1a)}.tracker-title-icon{font-size:1.25rem}.last-updated{font-size:.75rem;color:var(--text-secondary, #666);display:flex;align-items:center;gap:.25rem}.tracker-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:1.5rem}.summary-card{background:var(--bg-secondary, #f8f9fa);border-radius:8px;padding:1rem;text-align:center;border:2px solid transparent;transition:transform .2s,box-shadow .2s}.summary-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.dark .summary-card{background:var(--bg-secondary-dark, #16213e)}.summary-card.expired{border-color:#dc3545;background:#dc35451a}.summary-card.expiring{border-color:#ffc107;background:#ffc1071a}.summary-card.active{border-color:#28a745;background:#28a7451a}.summary-value{font-size:2rem;font-weight:700;line-height:1}.summary-label{font-size:.875rem;color:var(--text-secondary, #666);margin-top:.5rem}.tracker-filters{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;gap:.25rem;min-width:150px}.filter-label{font-size:.75rem;font-weight:600;color:var(--text-secondary, #666);text-transform:uppercase;letter-spacing:.5px}.filter-select{padding:.5rem .75rem;border:1px solid var(--border-color, #dee2e6);border-radius:4px;background:var(--bg-primary, #ffffff);font-size:.875rem;cursor:pointer;transition:border-color .2s}.filter-select:hover,.filter-select:focus{border-color:var(--primary-color, #0d6efd);outline:none}.dark .filter-select{background:var(--bg-secondary-dark, #16213e);border-color:var(--border-color-dark, #444);color:var(--text-primary-dark, #ffffff)}.refresh-btn{display:flex;align-items:flex-end;padding:.5rem 1rem;background:var(--primary-color, #0d6efd);color:#fff;border:none;border-radius:4px;font-size:.875rem;cursor:pointer;transition:background .2s}.refresh-btn:hover{background:var(--primary-color-dark, #0b5ed7)}.refresh-btn:disabled{opacity:.6;cursor:not-allowed}.refresh-icon{margin-right:.25rem}.refresh-icon.spinning{animation:spin 1s linear infinite}.tracker-table-container{overflow-x:auto;margin:0 -1.5rem;padding:0 1.5rem}.tracker-table{width:100%;border-collapse:collapse;font-size:.9rem}.tracker-table th,.tracker-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border-color, #dee2e6);color:var(--text-primary, #1a1a1a)}.dark .tracker-table th,.dark .tracker-table td,[data-theme=dark] .tracker-table th,[data-theme=dark] .tracker-table td,[data-theme=blueprint] .tracker-table th,[data-theme=blueprint] .tracker-table td{border-color:var(--border-color-dark, #444);color:var(--text-primary, #cbd5e1)}.tracker-table th{background:var(--bg-secondary, #f8f9fa);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-primary, #333333);position:sticky;top:0;z-index:1}.dark .tracker-table th,[data-theme=dark] .tracker-table th,[data-theme=blueprint] .tracker-table th{background:var(--bg-secondary, #16213e);color:var(--text-secondary, #8892b0)}.tracker-table tbody tr{transition:background .2s}.tracker-table tbody tr:hover{background:var(--bg-hover, #f1f3f5)}.dark .tracker-table tbody tr:hover{background:var(--bg-hover-dark, #1f2b4d)}.tracker-empty{text-align:center;padding:3rem 1rem;color:var(--text-secondary, #666)}.tracker-empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.tracker-empty-title{font-size:1.25rem;font-weight:600;margin-bottom:.5rem}.tracker-empty-message{font-size:.875rem}.tracker-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:var(--text-secondary, #666)}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-color, #dee2e6);border-top-color:var(--primary-color, #0d6efd);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.tracker-error{text-align:center;padding:2rem;background:#dc35451a;border-radius:8px;color:#dc3545}.tracker-error-icon{font-size:2rem;margin-bottom:.5rem}.tracker-error-message{font-size:.875rem}.retry-btn{margin-top:1rem;padding:.5rem 1rem;background:#dc3545;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background .2s}.retry-btn:hover{background:#c82333}@media (max-width: 768px){.tracker-header{flex-direction:column;align-items:flex-start}.tracker-filters{flex-direction:column}.filter-group{width:100%}.tracker-table{font-size:.8rem}.tracker-table th,.tracker-table td{padding:.5rem}.tracker-table .hide-mobile{display:none}}[data-theme=blueprint] .filter-select{background:var(--bg-primary);border:1px solid var(--border-light);color:var(--text-primary);font-family:JetBrains Mono,monospace}[data-theme=blueprint] .filter-select:hover,[data-theme=blueprint] .filter-select:focus{border-color:var(--accent-color)}[data-theme=blueprint] .filter-select option{background:var(--bg-secondary);color:var(--text-primary)}[data-theme=blueprint] .filter-label{color:var(--text-dim);font-family:JetBrains Mono,monospace}[data-theme=blueprint] .tracker-table tbody tr:hover{background:var(--bg-secondary)!important}[data-theme=dark] .row-expired{animation:flashRedDark 1.5s ease-in-out infinite}[data-theme=dark] .row-expiring-soon{animation:flashYellowDark 2s ease-in-out infinite}@keyframes flashRedDark{0%,to{background:#ef444414}50%{background:#ef44442e}}@keyframes flashYellowDark{0%,to{background:#fb923c14}50%{background:#fb923c26}}@media print{.certification-tracker{box-shadow:none}.tracker-filters,.refresh-btn{display:none}.row-expiring-soon,.row-expired{animation:none}.row-expired{background:#ffebee!important}.row-expiring-soon{background:#fff8e1!important}}[data-theme=forest] .summary-card.expired .summary-label,[data-theme=forest] .summary-card.expiring .summary-label{color:#14532d}[data-theme=sunset] .summary-card.expired .summary-label,[data-theme=sunset] .summary-card.expiring .summary-label{color:#9a3412}.dashboard-page{padding:0}.quick-links-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.quick-link-card{padding:1.5rem;background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--card-shadow);text-decoration:none;color:var(--text-primary);transition:all .2s ease;display:flex;flex-direction:column;align-items:center;text-align:center;cursor:pointer}.quick-link-card:hover{transform:translateY(-4px);box-shadow:var(--card-hover-shadow);border-color:var(--accent-color);background:var(--bg-secondary)}.card-icon{font-size:2.5rem;margin-bottom:.75rem}.card-title{font-size:1rem;font-weight:600;margin:0 0 .5rem;color:var(--text-primary)}.card-description{font-size:.875rem;color:var(--text-secondary);margin:0;line-height:1.4}.dashboard-main{margin-top:0}@media (max-width: 768px){.quick-links-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.quick-link-card{padding:1rem}.card-icon{font-size:2rem}.card-title{font-size:.875rem}.card-description{font-size:.75rem}}@media (min-width: 769px) and (max-width: 1024px){.quick-links-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width: 1440px){.quick-links-grid{grid-template-columns:repeat(4,1fr);gap:1.5rem}.quick-link-card{padding:2rem}}[data-theme=blueprint] .quick-link-card{background:var(--bg-primary);border:1px solid var(--border-light);position:relative;overflow:hidden}[data-theme=blueprint] .quick-link-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--accent-color),transparent);opacity:0;transition:opacity .2s}[data-theme=blueprint] .quick-link-card:hover{border-color:var(--accent-color);transform:translateY(-2px);box-shadow:0 4px 16px #06b6d426}[data-theme=blueprint] .quick-link-card:hover:before{opacity:1}[data-theme=blueprint] .card-title{color:var(--text-primary);font-weight:700;font-size:1.125rem;letter-spacing:.01em}[data-theme=blueprint] .card-description{color:var(--text-secondary);font-weight:400;letter-spacing:.02em}.widget-builder{max-width:800px;margin:0 auto;background:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a}.widget-builder-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e5e7eb;background:#f9fafb;border-radius:8px 8px 0 0}.widget-builder-header h2{margin:0;font-size:1.5rem;font-weight:600;color:#111827}.btn-cancel{padding:8px 16px;background:transparent;border:none;font-size:1.25rem;color:#6b7280;cursor:pointer}.btn-cancel:hover{color:#111827}.alert{margin:16px 24px;padding:12px 16px;border-radius:4px}.form-section{padding:24px;border-bottom:1px solid #e5e7eb}.form-section:last-of-type{border-bottom:none}.form-section h3{margin:0 0 16px;font-size:1.1rem;font-weight:600;color:#374151}.section-hint{margin:-8px 0 16px;font-size:.875rem;color:#6b7280}.form-group:last-child{margin-bottom:0}.form-group label{display:block;margin-bottom:6px;font-weight:500;color:#374151;font-size:.875rem}.form-group input[type=text],.form-group input[type=number],.form-group textarea,.form-group select{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:.95rem;color:#111827;background:#fff;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-group textarea{resize:vertical;min-height:80px}.form-hint{display:block;margin-top:4px;font-size:.75rem;color:#6b7280}.form-hint.warning{color:#d97706}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.checkbox-group label{display:flex;align-items:center;gap:8px;cursor:pointer}.checkbox-group input[type=checkbox]{width:18px;height:18px;cursor:pointer}.checkbox-list{display:flex;flex-direction:column;gap:8px;max-height:200px;overflow-y:auto;padding:12px;border:1px solid #e5e7eb;border-radius:6px;background:#f9fafb}.checkbox-item{display:flex;align-items:center;gap:8px;font-weight:400;cursor:pointer}.checkbox-item input[type=checkbox]{width:16px;height:16px}.parameter-mappings{display:flex;flex-direction:column;gap:12px}.parameter-row{display:flex;gap:8px;align-items:center}.parameter-row input[type=text]{flex:1;min-width:120px}.parameter-row select{flex:1;min-width:150px}.btn-remove{padding:8px 12px;background:#fef2f2;border:1px solid #fecaca;border-radius:4px;color:#dc2626;cursor:pointer;font-size:1.1rem;font-weight:700}.btn-remove:hover{background:#fee2e2}.btn-add{padding:10px 16px;background:#f3f4f6;border:1px dashed #d1d5db;border-radius:6px;color:#4b5563;cursor:pointer;font-size:.875rem;transition:all .2s}.btn-add:hover{background:#e5e7eb;border-color:#9ca3af}.btn-test{padding:10px 20px;background:#dbeafe;border:1px solid #93c5fd;border-radius:6px;color:#1d4ed8;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s}.btn-test:hover:not(:disabled){background:#bfdbfe}.btn-test:disabled{opacity:.6;cursor:not-allowed}.test-error{margin-top:12px;padding:12px;background:#fef2f2;border:1px solid #fecaca;border-radius:4px;color:#dc2626;font-size:.875rem}.test-result{margin-top:12px;padding:12px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:4px}.test-result strong{color:#16a34a}.test-result p{margin:8px 0;font-size:.875rem;color:#4b5563}.test-result pre{margin:8px 0 0;padding:12px;background:#1f2937;color:#10b981;border-radius:4px;font-size:.75rem;max-height:200px;overflow:auto}.form-actions{display:flex;justify-content:flex-end;gap:12px;padding:20px 24px;border-top:1px solid #e5e7eb;background:#f9fafb;border-radius:0 0 8px 8px}.btn-primary,.btn-secondary{padding:12px 24px;border-radius:6px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary{background:var(--btn-primary-bg, var(--accent-color, #0078d4));border:none;color:#fff}.btn-primary:hover:not(:disabled){background:#2563eb}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:#fff;border:1px solid #d1d5db;color:#374151}@media (max-width: 768px){.widget-builder{margin:0;border-radius:0}.form-row{grid-template-columns:1fr}.parameter-row{flex-wrap:wrap}.parameter-row input[type=text],.parameter-row select{min-width:100%}}.widget{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden;display:flex;flex-direction:column}.widget-loading,.widget-error{min-height:200px}.widget-header{display:flex;justify-content:space-between;align-items:flex-start;padding:16px;border-bottom:1px solid #e5e7eb;background:#f9fafb}.widget-header-left{flex:1}.widget-header-right{display:flex;align-items:center;gap:12px}.widget-title{margin:0;font-size:1.1rem;font-weight:600;color:#111827}.widget-description{margin:4px 0 0;font-size:.875rem;color:#6b7280}.widget-last-refresh{font-size:.75rem;color:#9ca3af}.widget-refresh-btn{padding:6px 10px;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:4px;cursor:pointer;font-size:1rem;transition:all .2s}.widget-refresh-btn:hover:not(:disabled){background:#e5e7eb}.widget-refresh-btn:disabled{opacity:.5;cursor:not-allowed}.widget-body{flex:1;padding:16px;position:relative;overflow:auto}.widget-empty{text-align:center;color:#6b7280;padding:32px}.widget-spinner{width:40px;height:40px;margin:32px auto;border:3px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}.widget-spinner-small{width:20px;height:20px;border:2px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}.widget-loading-overlay{position:absolute;top:8px;right:8px}.widget-error-message{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px;text-align:center}.widget-error-message .error-icon{font-size:2rem}.widget-error-message p{margin:0;color:#dc2626}.widget-table-container{overflow-x:auto}.widget-table{width:100%;border-collapse:collapse;font-size:.875rem}.widget-table th{padding:12px 8px;text-align:left;font-weight:600;color:#374151;background:#f9fafb;border-bottom:2px solid #e5e7eb;white-space:nowrap}.widget-table td{padding:10px 8px;border-bottom:1px solid #e5e7eb;color:#4b5563}.widget-table tbody tr:hover{background:#f9fafb}.widget-table tbody tr:last-child td{border-bottom:none}.widget-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}.widget-card-item{padding:16px;background:#f9fafb;border-radius:8px;text-align:center}.card-label{font-size:.75rem;color:#6b7280;text-transform:uppercase;margin-bottom:8px}.card-value{font-size:1.5rem;font-weight:600;color:#111827}.widget-chart-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;text-align:center;color:#6b7280}.widget-chart-placeholder .chart-icon{font-size:3rem;margin-bottom:8px}.widget-chart-placeholder .chart-note{font-size:.75rem;color:#9ca3af;margin-top:8px}.widget-chart-placeholder .chart-data-count{font-size:.875rem;color:#3b82f6;margin-top:8px}.widget-custom{padding:8px}.widget-json{margin:0;padding:16px;background:#1f2937;color:#10b981;border-radius:4px;overflow:auto;font-size:.75rem;max-height:400px}.widget-footer{padding:8px 16px;border-top:1px solid #e5e7eb;background:#f9fafb}.auto-refresh-indicator{font-size:.75rem;color:#9ca3af}@media (max-width: 768px){.widget-header{flex-direction:column;gap:12px}.widget-header-right{width:100%;justify-content:space-between}.widget-cards{grid-template-columns:repeat(2,1fr)}}[data-theme=blueprint] .widget{background:var(--bg-primary);border:1px solid var(--border-light);position:relative;overflow:hidden}[data-theme=blueprint] .widget:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--accent-color),transparent);opacity:0;transition:opacity .2s}[data-theme=blueprint] .widget:hover:before{opacity:1}[data-theme=blueprint] .widget:hover{border-color:var(--accent-color);transform:translateY(-2px);box-shadow:0 4px 16px #06b6d426}[data-theme=blueprint] .widget-header{border-bottom:1px solid var(--border-light)}[data-theme=blueprint] .widget-title{color:var(--text-dim);text-transform:uppercase;letter-spacing:1.5px;font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:700}[data-theme=blueprint] .widget-value{color:#fff;font-weight:800;font-size:2.25rem;letter-spacing:-.02em}[data-theme=blueprint] .widget-footer{background:var(--bg-secondary);border-top:1px solid var(--border-light)}[data-theme=blueprint] .widget-card-item{background:var(--bg-secondary);border:1px solid var(--border-color)}[data-theme=blueprint] .widget-card-item:hover{border-color:var(--accent-color);background:var(--surface2)}[data-theme=blueprint] .widget-json{background:var(--bg-secondary);border:1px solid var(--border-color)}[data-theme=blueprint] .auto-refresh-indicator{color:var(--text-secondary);font-family:JetBrains Mono,monospace;font-size:.625rem}.widget-management{padding:24px;max-width:1400px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid #e5e7eb}.header-left h1{margin:0 0 8px;font-size:1.75rem;font-weight:600;color:#111827}.page-description{margin:0;color:#6b7280}.header-actions{display:flex;align-items:center;gap:16px}.show-inactive{display:flex;align-items:center;gap:8px;font-size:.875rem;color:#4b5563;cursor:pointer}.show-inactive input{cursor:pointer}.btn-create{padding:12px 24px;background:#3b82f6;border:none;border-radius:6px;color:#fff;font-size:.95rem;font-weight:500;cursor:pointer;transition:background .2s}.btn-create:hover{background:#2563eb}.alert{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding:12px 16px;border-radius:6px}.alert-error{background:#fef2f2;border:1px solid #fecaca;color:#dc2626}.alert button{background:none;border:none;color:inherit;font-size:1.25rem;cursor:pointer;padding:0 4px}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px}.spinner{width:48px;height:48px;border:4px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}.loading-container p{margin-top:16px;color:#6b7280}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px;background:#f9fafb;border-radius:12px;text-align:center}.empty-icon{font-size:4rem;margin-bottom:16px}.empty-state h3{margin:0 0 8px;font-size:1.25rem;color:#374151}.empty-state p{margin:0 0 24px;color:#6b7280}.widgets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:24px}.widget-card{background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000000d;border:1px solid #e5e7eb;padding:20px;transition:box-shadow .2s}.widget-card:hover{box-shadow:0 4px 12px #0000001a}.widget-card.inactive{opacity:.7;background:#f9fafb}.widget-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.widget-type{font-size:.875rem;color:#6b7280}.widget-status{padding:4px 8px;border-radius:4px;font-size:.75rem;font-weight:500}.widget-status.active{background:#dcfce7;color:#16a34a}.widget-status.inactive{background:#f3f4f6;color:#6b7280}.widget-name{margin:0 0 8px;font-size:1.1rem;font-weight:600;color:#111827}.widget-card .widget-description{margin:0 0 16px;font-size:.875rem;color:#6b7280;line-height:1.5}.widget-meta{display:flex;flex-wrap:wrap;gap:12px;padding:12px 0;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;margin-bottom:16px}.meta-item{font-size:.75rem}.meta-label{color:#6b7280;margin-right:4px}.meta-value{color:#374151;font-weight:500}.widget-card-actions{display:flex;gap:8px}.btn-action{flex:1;padding:8px 12px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;color:#374151;font-size:.75rem;cursor:pointer;transition:all .2s}.btn-action:hover{background:#f9fafb}.btn-preview:hover{border-color:#3b82f6;color:#3b82f6}.btn-edit:hover{border-color:#f59e0b;color:#f59e0b}.btn-delete:hover{border-color:#ef4444;color:#ef4444}.preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #e5e7eb}.preview-header h2{margin:0;font-size:1.25rem;color:#111827}.btn-back{padding:8px 16px;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;color:#374151;cursor:pointer;transition:all .2s}.btn-back:hover{background:#e5e7eb}.preview-container{max-width:1000px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;border-radius:12px;padding:24px;max-width:400px;width:90%;box-shadow:0 20px 25px #00000026}.modal h3{margin:0 0 12px;font-size:1.25rem;color:#111827}.modal p{margin:0 0 24px;color:#6b7280}.modal-actions{display:flex;gap:12px;justify-content:flex-end}.btn-secondary{padding:10px 20px;background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-weight:500}.btn-secondary:hover{background:#f9fafb}.btn-danger{padding:10px 20px;background:#dc2626;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500}.btn-danger:hover{background:#b91c1c}@media (max-width: 768px){.widget-management{padding:16px}.page-header{flex-direction:column;gap:16px}.header-actions{width:100%;flex-direction:column;align-items:stretch}.widgets-grid{grid-template-columns:1fr}.widget-card-actions{flex-wrap:wrap}}.user-name{display:flex;align-items:center;gap:.5rem}.unverified-badge{font-size:.85rem;opacity:.7}.status-badge,.role-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-active{background:#d1fae5;color:#065f46;border:1px solid #6ee7b7}[data-theme=dark] .status-active,[data-theme=blueprint] .status-active{background:#064e3b;color:#6ee7b7;border-color:#6ee7b766}.status-pending{background:#fef3c7;color:#92400e;border:1px solid #fbbf24}[data-theme=dark] .status-pending,[data-theme=blueprint] .status-pending{background:#451a03;color:#fcd34d;border-color:#fcd34d66}.status-deactivated{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}[data-theme=dark] .status-deactivated,[data-theme=blueprint] .status-deactivated{background:#450a0a;color:#fca5a5;border-color:#fca5a566}.role-owner{background:#dbeafe;color:#1e3a8a;border:1px solid #93c5fd}[data-theme=dark] .role-owner,[data-theme=blueprint] .role-owner{background:#1e3a8a;color:#bfdbfe;border-color:#93c5fd66}.role-admin{background:#ede9fe;color:#4c1d95;border:1px solid #c4b5fd}[data-theme=dark] .role-admin,[data-theme=blueprint] .role-admin{background:#3b0764;color:#e9d5ff;border-color:#c4b5fd66}.role-manager{background:#d1fae5;color:#065f46;border:1px solid #6ee7b7}[data-theme=dark] .role-manager,[data-theme=blueprint] .role-manager{background:#064e3b;color:#6ee7b7;border-color:#6ee7b766}.role-employee{background:#ffe4e6;color:#881337;border:1px solid #fda4af}[data-theme=dark] .role-employee,[data-theme=blueprint] .role-employee{background:#4c0519;color:#fda4af;border-color:#fda4af66}.role-site-admin{background:#fef3c7;color:#92400e;border:1px solid #fbbf24}[data-theme=dark] .role-site-admin,[data-theme=blueprint] .role-site-admin{background:#451a03;color:#fcd34d;border-color:#fcd34d66}.role-super-admin{background:#ffedd5;color:#7c2d12;border:1px solid #fdba74}[data-theme=dark] .role-super-admin,[data-theme=blueprint] .role-super-admin{background:#431407;color:#fdba74;border-color:#fdba7466}.user-actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.action-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border:1px solid transparent;cursor:pointer;transition:opacity .15s,transform .1s;line-height:1.4;white-space:nowrap;background:none}.action-badge:disabled{opacity:.5;cursor:not-allowed}.action-badge:not(:disabled):hover{opacity:.8;transform:translateY(-1px)}.action-edit{background:#f1f5f9;color:#334155;border-color:#cbd5e1}[data-theme=dark] .action-edit,[data-theme=blueprint] .action-edit{background:#1e293b;color:#94a3b8;border-color:#94a3b866}.action-proxy{background:#fef3c7;color:#92400e;border-color:#fbbf24}[data-theme=dark] .action-proxy,[data-theme=blueprint] .action-proxy{background:#451a03;color:#fcd34d;border-color:#fcd34d66}.action-deactivate{background:#fee2e2;color:#991b1b;border-color:#fca5a5}[data-theme=dark] .action-deactivate,[data-theme=blueprint] .action-deactivate{background:#450a0a;color:#fca5a5;border-color:#fca5a566}.action-resend{background:#dbeafe;color:#1e3a8a;border-color:#93c5fd}[data-theme=dark] .action-resend,[data-theme=blueprint] .action-resend{background:#1e3a8a;color:#bfdbfe;border-color:#93c5fd66}.action-reactivate{background:#d1fae5;color:#065f46;border-color:#6ee7b7}[data-theme=dark] .action-reactivate,[data-theme=blueprint] .action-reactivate{background:#064e3b;color:#6ee7b7;border-color:#6ee7b766}.user-list-container{background:var(--bg-secondary, var(--background-secondary, #fff));border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:1.5rem}.user-list-options{margin-bottom:1rem;display:flex;justify-content:flex-end}.show-inactive-toggle{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text-primary, #1a1a1a)}.show-inactive-toggle input[type=checkbox]{cursor:pointer;width:18px;height:18px}.show-inactive-toggle span{font-size:.95rem;color:var(--text-secondary, #666)}.user-list-loading{text-align:center;padding:3rem}.user-list-filters{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap;align-items:center}.filter-group{flex:1;min-width:200px}.search-input,.filter-select{width:100%;padding:.5rem;border:1px solid var(--border-color, #ddd);border-radius:4px;font-size:.95rem;background:var(--bg-primary, var(--background-primary, #fff));color:var(--text-primary, #1a1a1a)}.search-input:focus,.filter-select:focus{outline:none;border-color:var(--primary-color, #007bff)}.user-table-wrapper{overflow-x:auto}.user-table{width:100%;border-collapse:collapse;margin-bottom:1.5rem}.user-table thead{background:var(--table-header-bg, var(--bg-secondary, #f8f9fa));border-bottom:2px solid var(--border-color, #ddd)}.user-table th{padding:.75rem;text-align:left;font-weight:600;color:var(--text-primary, #1a1a1a);font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.user-table tbody tr{border-bottom:1px solid var(--border-color, #eee);transition:background-color .2s}.user-table tbody tr:hover{background:var(--table-hover, #f5f5f5)}.user-table td{padding:.75rem;color:var(--text-primary, #1a1a1a)}.user-table td.no-results{text-align:center;padding:2rem;color:var(--text-secondary, #666)}.pagination{display:flex;justify-content:center;align-items:center;gap:1rem}.pagination-info{color:var(--text-secondary, #666);font-size:.9rem}.btn{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s}.btn-primary:hover:not(:disabled){background:var(--btn-primary-hover, var(--accent-hover, #005a9e))}.btn-danger{background:#dc3545;color:#fff}.btn-danger:hover:not(:disabled){background:#c82333}.btn-warning{background:#f59e0b;color:#1a1a1a}.btn-warning:hover:not(:disabled){background:#d97706;color:#1a1a1a}.btn-success{background:#16a34a;color:#fff}.btn-success:hover:not(:disabled){background:#15803d}.btn-sm{padding:.25rem .5rem;font-size:.85rem}.widget-permissions-container{margin-top:1.5rem;padding:1rem;background:var(--bg-secondary, var(--background-secondary, #f8f9fa));border-radius:8px;border:1px solid var(--border-color, #dee2e6)}.widget-permissions-title{margin:0 0 .5rem;font-size:1.1rem;font-weight:600;color:var(--text-primary, #1a1a1a)}.widget-permissions-description{margin:0 0 1rem;font-size:.9rem;color:var(--text-secondary, #666)}.widget-permissions-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.widget-permission-item{background:var(--bg-primary, var(--background-primary, #fff));padding:.75rem;border-radius:6px;border:1px solid var(--border-color, #dee2e6);transition:background-color .2s,border-color .2s}.widget-permission-item:hover{background:var(--hover-background, #f1f3f5);border-color:var(--primary-color, #007bff)}.widget-permission-label{display:flex;align-items:flex-start;gap:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none}.widget-permission-label input[type=checkbox]{margin-top:.25rem;cursor:pointer;width:18px;height:18px;flex-shrink:0}.widget-permission-info{display:flex;flex-direction:column;gap:.25rem;flex:1}.widget-permission-name{font-weight:500;color:var(--text-primary, #1a1a1a);font-size:.95rem;display:flex;align-items:center;gap:.5rem}.widget-inherited-badge{display:inline-block;padding:.125rem .5rem;background:var(--info-background, #e3f2fd);color:var(--info-color, #0277bd);border-radius:12px;font-size:.75rem;font-weight:500}.widget-permission-description{font-size:.85rem;color:var(--text-secondary, #666)}.widget-permissions-note{padding:.75rem;background:var(--info-background, #e3f2fd);border-left:3px solid var(--info-color, #0277bd);border-radius:4px;font-size:.85rem;color:var(--text-secondary, #666)}.widget-permissions-note strong{color:var(--text-primary, #1a1a1a)}@media (max-width: 600px){.widget-permission-label{flex-direction:row}.widget-permissions-container{padding:.75rem}}.user-form{display:flex;flex-direction:column;gap:1.5rem;max-width:600px;width:100%}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:500;font-size:.95rem;color:var(--text-primary, #333)}.form-group label .required{color:var(--error-color, #dc004e);margin-left:.25rem}.form-group input,.form-group select{padding:.75rem;border:1px solid var(--border-color, #ddd);border-radius:4px;font-size:.95rem;font-family:inherit;background-color:var(--input-bg, #fff);color:var(--text-primary, #333);transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--primary-color, #1976d2);box-shadow:0 0 0 3px #1976d21a}.form-group input:disabled,.form-group select:disabled{background-color:var(--disabled-bg, #f5f5f5);cursor:not-allowed;opacity:.7}.form-group input.error,.form-group select.error{border-color:var(--error-color, #dc004e)}.error-message{font-size:.85rem;color:var(--error-color, #dc004e);margin-top:-.25rem}.field-note{font-size:.85rem;color:var(--text-secondary, #666);font-style:italic}.form-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1rem;padding-top:1.5rem;border-top:1px solid var(--border-color, #ddd)}.btn{padding:.75rem 1.5rem;font-size:.95rem;font-weight:500;border:none;border-radius:4px;cursor:pointer;transition:background-color .2s,transform .1s;display:inline-flex;align-items:center;gap:.5rem}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0)}.btn-primary:hover:not(:disabled){background-color:var(--primary-hover, #1565c0)}.btn-secondary{background-color:var(--secondary-bg, #f5f5f5);color:var(--text-primary, #333)}.btn-secondary:hover:not(:disabled){background-color:var(--secondary-hover, #e0e0e0)}@media (max-width: 600px){.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column-reverse}.btn{width:100%;justify-content:center}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease-in}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background-color:var(--card-bg, #fff);border-radius:8px;box-shadow:0 4px 20px #00000026;max-width:700px;width:100%;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--border-color, #ddd)}.modal-header h2{margin:0;font-size:1.5rem;color:var(--text-primary, #333)}.modal-close{background:none;border:none;font-size:2rem;line-height:1;cursor:pointer;color:var(--text-secondary, #666);padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s,color .2s}.modal-close:hover:not(:disabled){background-color:var(--secondary-bg, #f5f5f5);color:var(--text-primary, #333)}.modal-close:disabled{cursor:not-allowed;opacity:.5}.modal-body{padding:1.5rem}.alert{padding:1rem;border-radius:4px;margin-bottom:1.5rem;font-size:.95rem}.alert-error{background-color:var(--error-bg, #f8d7da);color:var(--error-text, #721c24);border:1px solid var(--error-border, #f5c6cb)}.alert-success{background-color:var(--success-bg, #d4edda);color:var(--success-text, #155724);border:1px solid var(--success-border, #c3e6cb)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;gap:1rem}.spinner-large{width:48px;height:48px;border:4px solid rgba(0,0,0,.1);border-top-color:var(--primary-color, #1976d2);border-radius:50%;animation:spin .8s linear infinite}@media (max-width: 768px){.modal-content{max-width:100%;max-height:100vh;border-radius:0}.modal-overlay{padding:0}}.deactivate-modal{max-width:500px}.warning-message{display:flex;align-items:flex-start;gap:1rem;padding:1rem;background-color:var(--warning-bg, #fff3cd);border:1px solid var(--warning-border, #ffc107);border-radius:4px;margin-bottom:1.5rem}.warning-icon{font-size:2rem;line-height:1}.warning-message p{margin:0;flex:1}.warning-message strong{color:var(--text-primary, #333)}.consequences-list{margin-bottom:1.5rem}.consequences-list h3{font-size:1rem;margin:0 0 .75rem;color:var(--text-primary, #333)}.consequences-list ul{margin:0;padding-left:1.5rem}.consequences-list li{margin-bottom:.5rem;color:var(--text-secondary, #666)}.note-message{padding:.75rem 1rem;background-color:var(--info-bg, #e3f2fd);border-left:3px solid var(--info-color, #2196f3);border-radius:4px;margin-bottom:1.5rem;font-size:.9rem;color:var(--text-secondary, #666)}.modal-actions{display:flex;justify-content:flex-end;gap:1rem;padding-top:1.5rem;border-top:1px solid var(--border-color, #ddd)}.btn-danger{background-color:var(--danger-color, #dc004e);color:#fff;padding:.75rem 1.5rem;border:none;border-radius:4px;cursor:pointer;font-weight:500;transition:background-color .2s,transform .1s;display:inline-flex;align-items:center;gap:.5rem}.btn-danger:hover:not(:disabled){background-color:var(--danger-hover, #b8003f);transform:translateY(-1px)}.btn-danger:active:not(:disabled){transform:translateY(0)}.btn-danger:disabled{opacity:.6;cursor:not-allowed}.spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@media (max-width: 600px){.modal-actions{flex-direction:column-reverse}.btn,.btn-danger{width:100%;justify-content:center}}.company-widget-defaults-container{background:var(--bg-secondary, var(--background-secondary, #fff));border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a}.company-widget-defaults-loading{text-align:center;padding:2rem}.spinner{border:4px solid var(--border-color, #eee);border-top:4px solid var(--primary-color, #007bff);border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin:0 auto 1rem}.company-widget-defaults-header{margin-bottom:1.5rem}.company-widget-defaults-header h3{margin:0 0 .5rem;font-size:1.25rem;font-weight:600;color:var(--text-primary, #1a1a1a)}.company-widget-defaults-description{margin:0;font-size:.9rem;color:var(--text-secondary, #666);line-height:1.5}.alert{padding:.75rem 1rem;margin-bottom:1rem;border-radius:4px;font-size:.9rem}.alert-success{background:var(--success-background, #d4edda);color:var(--success-color, #155724);border:1px solid var(--success-border, #c3e6cb)}.alert-danger{background:var(--danger-background, #f8d7da);color:var(--danger-color, #721c24);border:1px solid var(--danger-border, #f5c6cb)}.widget-defaults-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.widget-default-item{background:var(--bg-primary, var(--background-primary, #fff));padding:1rem;border-radius:6px;border:1px solid var(--border-color, #dee2e6);transition:background-color .2s,border-color .2s}.widget-default-item:hover{background:var(--hover-background, #f8f9fa);border-color:var(--primary-color, #007bff)}.widget-default-label{display:flex;align-items:flex-start;gap:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none}.widget-default-label input[type=checkbox]{margin-top:.25rem;cursor:pointer;width:18px;height:18px;flex-shrink:0}.widget-default-info{display:flex;flex-direction:column;gap:.25rem;flex:1}.widget-default-name{font-weight:500;color:var(--text-primary, #1a1a1a);font-size:.95rem}.widget-default-description{font-size:.85rem;color:var(--text-secondary, #666)}.company-widget-defaults-actions{display:flex;gap:1rem;justify-content:flex-end;margin-bottom:1rem}.btn{padding:.5rem 1rem;border:none;border-radius:4px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:.5rem}.btn-primary{background:var(--btn-primary-bg, var(--accent-color, #0078d4));color:#fff}.btn-primary:hover:not(:disabled){background:var(--btn-primary-hover, var(--accent-hover, #005a9e));transform:translateY(-1px)}.btn-secondary{background:var(--secondary-color, #6c757d);color:#fff}.btn-secondary:hover:not(:disabled){background:var(--secondary-hover, #545b62)}.btn:disabled{opacity:.6;cursor:not-allowed}.spinner-small{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top:2px solid #fff;border-radius:50%;animation:spin .6s linear infinite}.company-widget-defaults-note{padding:.75rem 1rem;background:var(--info-background, #e3f2fd);border-left:3px solid var(--info-color, #0277bd);border-radius:4px;font-size:.85rem;color:var(--text-secondary, #666);line-height:1.5}.company-widget-defaults-note strong{color:var(--text-primary, #1a1a1a)}@media (max-width: 600px){.company-widget-defaults-container{padding:1rem}.company-widget-defaults-actions{flex-direction:column}.btn{width:100%;justify-content:center}}.company-selector{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--bg-secondary, var(--background-secondary, #f8f9fa));border-radius:8px;border:1px solid var(--border-color, #dee2e6);margin-bottom:1.5rem}.company-selector.loading,.company-selector.error{justify-content:flex-start}.company-selector.error{background:var(--danger-background, #f8d7da);border-color:var(--danger-border, #f5c6cb)}.company-selector-label{display:flex;align-items:center;gap:.5rem;font-weight:600;color:var(--text-primary, #1a1a1a);cursor:default}.label-icon{font-size:1.2rem}.label-text{white-space:nowrap}.company-select-dropdown{flex:1;max-width:400px;padding:.5rem 1rem;border:1px solid var(--border-color, #ced4da);border-radius:4px;background:var(--bg-primary, var(--background-primary, #fff));color:var(--text-primary, #1a1a1a);font-size:.95rem;cursor:pointer;transition:border-color .2s,box-shadow .2s}.company-select-dropdown:focus{outline:none;border-color:var(--primary-color, #007bff);box-shadow:0 0 0 3px var(--primary-color-alpha, rgba(0, 123, 255, .1))}.company-select-dropdown:hover{border-color:var(--primary-color, #007bff)}.company-count{font-size:.85rem;color:var(--text-secondary, #666);white-space:nowrap}.spinner-small{display:inline-block;width:16px;height:16px;border:2px solid var(--border-color, #dee2e6);border-top:2px solid var(--primary-color, #007bff);border-radius:50%;animation:spin .6s linear infinite}.error-icon{color:var(--danger-color, #dc3545);font-size:1.2rem}.btn-sm{padding:.25rem .75rem;font-size:.85rem}@media (max-width: 768px){.company-selector{flex-direction:column;align-items:stretch}.company-select-dropdown{max-width:none}.company-count{text-align:right}}.system-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.system-stats.loading,.system-stats.error{display:flex;align-items:center;justify-content:center;gap:1rem;padding:2rem;background:var(--bg-secondary, var(--background-secondary, #f8f9fa));border-radius:8px;border:1px solid var(--border-color, #dee2e6)}.system-stats.error{background:var(--danger-background, #f8d7da);border-color:var(--danger-border, #f5c6cb);color:var(--danger-color, #721c24)}.stat-card{background:var(--bg-secondary, var(--background-secondary, #fff));border:1px solid var(--border-color, #dee2e6);border-radius:8px;padding:1.5rem;display:flex;align-items:flex-start;gap:1rem;transition:box-shadow .2s,transform .2s}.stat-card:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.stat-icon{width:52px;height:52px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.users-icon{background:#dbeafe;color:#1e40af}.companies-icon{background:#d1fae5;color:#065f46}.ratio-icon{background:#fef3c7;color:#92400e}[data-theme=dark] .users-icon,[data-theme=blueprint] .users-icon{background:#1e3a8a;color:#bfdbfe}[data-theme=dark] .companies-icon,[data-theme=blueprint] .companies-icon{background:#064e3b;color:#6ee7b7}[data-theme=dark] .ratio-icon,[data-theme=blueprint] .ratio-icon{background:#451a03;color:#fcd34d}.stat-content{flex:1;display:flex;flex-direction:column;gap:.5rem}.stat-label{font-size:.85rem;font-weight:600;color:var(--text-secondary, #666);text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:2rem;font-weight:700;color:var(--text-primary, #1a1a1a);line-height:1}.stat-breakdown{display:flex;gap:.5rem;flex-wrap:wrap}.badge{padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:600;white-space:nowrap}.badge-success{background:var(--success-background, #d4edda);color:var(--success-color, #155724)}.badge-warning{background:var(--warning-background, #fff3cd);color:var(--warning-color, #856404)}.badge-info{background:var(--info-background, #d1ecf1);color:var(--info-color, #0c5460)}.spinner-small{display:inline-block;width:20px;height:20px;border:2px solid var(--border-color, #dee2e6);border-top:2px solid var(--primary-color, #007bff);border-radius:50%;animation:spin .6s linear infinite}@media (max-width: 768px){.system-stats{grid-template-columns:1fr}.stat-value{font-size:1.75rem}.stat-icon{font-size:2rem}}.google-sheets-config{background:#fff;border-radius:8px;padding:24px;box-shadow:0 2px 4px #0000001a}.google-sheets-config.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px}.config-header{margin-bottom:24px;border-bottom:1px solid #e5e7eb;padding-bottom:16px}.config-header h3{margin:0 0 8px;font-size:20px;font-weight:600;color:#111827}.config-header p{margin:0;color:#6b7280;font-size:14px}.alert{padding:12px 16px;border-radius:6px;margin-bottom:20px;font-size:14px}.alert-error{background-color:#fee;border:1px solid #fcc;color:#c00}.alert-success{background-color:#efe;border:1px solid #cfc;color:#090}.config-form{margin-bottom:32px}.form-group label{display:block;font-weight:500;margin-bottom:6px;color:#374151;font-size:14px}.required{color:#dc2626}.form-control{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;transition:border-color .2s;box-sizing:border-box}.form-control:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-text{display:block;margin-top:4px;font-size:12px;color:#6b7280}.form-actions{display:flex;gap:12px;margin-top:24px}.service-account-section{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;padding:20px;margin-bottom:32px}.service-account-section h4{margin:0 0 12px;font-size:16px;font-weight:600;color:#111827}.service-account-section p{margin:0 0 12px;color:#4b5563;font-size:14px}.email-display{display:flex;align-items:center;gap:12px;margin-bottom:16px}.email-display code{flex:1;background-color:#fff;border:1px solid #d1d5db;border-radius:4px;padding:8px 12px;font-family:Courier New,monospace;font-size:13px;color:#1f2937;overflow-x:auto}.sharing-steps{margin:16px 0 0;padding-left:20px;color:#4b5563;font-size:14px;line-height:1.6}.sharing-steps li{margin-bottom:6px}.column-mapping-section{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;padding:20px;margin-bottom:32px}.column-mapping-section .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.column-mapping-section h4{margin:0;font-size:16px;font-weight:600;color:#111827}.column-mapping-section p{margin:0 0 16px;color:#4b5563;font-size:14px}.column-mapping-list{margin-top:16px}.mapping-header{display:grid;grid-template-columns:1fr 40px 1fr 50px;gap:12px;padding:8px 12px;background-color:#e5e7eb;border-radius:4px;font-size:12px;font-weight:600;color:#374151;text-transform:uppercase;margin-bottom:8px;align-items:center}.mapping-row{display:grid;grid-template-columns:1fr 40px 1fr 50px;gap:12px;padding:12px;background-color:#fff;border:1px solid #e5e7eb;border-radius:4px;margin-bottom:8px;align-items:center}.col-original{font-size:14px;color:#111827;word-break:break-word}.col-original code{background-color:#f3f4f6;padding:4px 8px;border-radius:3px;font-size:13px;font-family:Courier New,monospace}.col-arrow{text-align:center;color:#6b7280;font-size:16px}.col-mapped.form-control{padding:8px 10px;font-size:14px}.col-action{text-align:center}.col-action.btn{padding:4px 10px;font-size:16px;line-height:1;min-width:auto}.mapping-preview{margin-top:20px;padding:16px;background-color:#eff6ff;border:1px solid #bfdbfe;border-radius:4px}.mapping-preview h5{margin:0 0 12px;font-size:14px;font-weight:600;color:#111827}.mapping-preview ul{margin:0;padding-left:20px;list-style:disc}.mapping-preview li{margin-bottom:6px;font-size:14px;color:#4b5563;line-height:1.6}.mapping-preview code{background-color:#fff;padding:2px 6px;border-radius:3px;font-family:Courier New,monospace;font-size:13px}.mapping-preview strong{color:#111827;font-weight:600}.sync-section{background-color:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;padding:20px;margin-bottom:32px}.sync-section h4{margin:0 0 8px;font-size:16px;font-weight:600;color:#111827}.sync-section p{margin:0 0 16px;color:#4b5563;font-size:14px}.sync-status-dashboard{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;padding:20px}.sync-status-dashboard .status-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid #e5e7eb}.sync-status-dashboard .status-header h4{margin:0;font-size:16px;font-weight:600;color:#111827}.stale-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;background-color:#fef3c7;border:1px solid #fbbf24;border-radius:12px;font-size:12px;font-weight:600;color:#92400e}.sync-status-dashboard .status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.sync-status-dashboard .status-item{display:flex;flex-direction:column;gap:6px}.sync-status-dashboard .status-item .label{font-size:12px;color:#6b7280;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.sync-status-dashboard .status-item .value{font-size:14px;color:#111827;font-weight:500;display:flex;flex-direction:column;gap:4px}.sync-status-dashboard .timestamp{font-size:14px;font-weight:600;color:#111827}.sync-status-dashboard .absolute-time{font-size:11px;color:#9ca3af;font-weight:400}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:16px;font-size:13px;font-weight:600;width:fit-content}.status-badge.status-success{background-color:#d1fae5;color:#065f46;border:1px solid #10b981}.status-badge.status-error{background-color:#fee2e2;color:#991b1b;border:1px solid #ef4444}.status-badge.status-in-progress{background-color:#fef3c7;color:#92400e;border:1px solid #fbbf24;animation:pulse 2s ease-in-out infinite}.status-badge.status-unknown{background-color:#f3f4f6;color:#6b7280;border:1px solid #d1d5db}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.count-badge{display:inline-block;background-color:#3b82f6;color:#fff;padding:4px 10px;border-radius:12px;font-size:14px;font-weight:700;min-width:40px;text-align:center}.count-label{font-size:11px;color:#6b7280;font-weight:400}.status-error-panel{margin-top:20px;padding:16px;background-color:#fee2e2;border:2px solid #ef4444;border-radius:6px}.status-error-panel .error-header{display:flex;align-items:center;gap:8px;margin-bottom:8px;color:#991b1b;font-size:14px}.status-error-panel .error-icon{font-size:18px}.status-error-panel .error-message{font-size:13px;color:#7f1d1d;margin-bottom:12px;padding:8px;background-color:#fff;border-radius:4px;font-family:Courier New,monospace}.status-error-panel .error-guidance{font-size:13px;color:#991b1b;padding:8px;background-color:#ffffff80;border-radius:4px;border-left:3px solid #ef4444}.status-error-panel .error-guidance strong{display:block;margin-bottom:4px}.sync-status-dashboard .data-info{margin-top:16px;padding-top:12px;border-top:1px solid #e5e7eb;text-align:center}.sync-status-dashboard .data-info small{color:#6b7280;font-size:12px}.btn{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:8px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--btn-primary-bg, var(--accent-color, #0078d4));color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--btn-primary-hover, var(--accent-hover, #005a9e))}.btn-secondary{background-color:#6b7280;color:#fff}.btn-secondary:hover:not(:disabled){background-color:#4b5563}.btn-sm{padding:6px 12px;font-size:12px}.spinner{width:40px;height:40px;border:4px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:12px}.spinner-small{display:inline-block;width:14px;height:14px;border:2px solid #fff;border-top-color:transparent;border-radius:50%;animation:spin .6s linear infinite}@media (max-width: 768px){.google-sheets-config{padding:16px}.status-grid,.sync-status-dashboard .status-grid{grid-template-columns:1fr}.email-display{flex-direction:column;align-items:stretch}.form-actions{flex-direction:column}.btn{width:100%;justify-content:center}.mapping-header{display:none}.mapping-row{grid-template-columns:1fr;gap:8px}.col-arrow{display:none}.col-action{text-align:right}.column-mapping-section .section-header{flex-direction:column;align-items:flex-start;gap:8px}.column-mapping-section .section-header .btn{width:100%}.sync-status-dashboard .status-header{flex-direction:column;align-items:flex-start;gap:8px}.stale-badge{align-self:flex-start}}.test-result{display:flex;flex-direction:column;gap:4px;padding:10px 14px;border-radius:6px;font-size:.875rem;margin-top:12px}.test-result.success{background:var(--accent-bg, #efe);border:1px solid var(--color-success, #2d8a4e);color:var(--color-success, #166534)}.test-result.error{background:#fee2e2;border:1px solid #fca5a5;color:#991b1b}.test-result-headers{font-size:.8rem;opacity:.85;word-break:break-word}.confirm-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000}.confirm-modal{background:var(--card-bg, #fff);color:var(--text-primary, #111827);border-radius:10px;padding:28px 32px;max-width:480px;width:calc(100% - 32px);box-shadow:0 12px 40px #00000040}.confirm-modal h4{margin:0 0 10px;font-size:1.1rem;font-weight:700;color:var(--text-primary, #111827)}.confirm-modal>p{margin:0 0 12px;font-size:.9rem;color:var(--text-secondary, #6b7280)}.confirm-details{background:var(--bg-secondary, #f9fafb);border:1px solid var(--border-color, #e5e7eb);border-radius:6px;padding:12px 16px;margin:0 0 16px;display:grid;grid-template-columns:110px 1fr;gap:8px 12px;font-size:.875rem}.confirm-details dt{font-weight:600;color:var(--text-secondary, #6b7280)}.confirm-details dd{margin:0;color:var(--text-primary, #111827);word-break:break-all}.confirm-warning{font-size:.85rem;color:var(--text-secondary, #6b7280);margin:0 0 20px}.confirm-actions{display:flex;gap:10px;justify-content:flex-end}.admin-panel{padding:2rem;max-width:1400px;margin:0 auto}.admin-panel-header{margin-bottom:2rem}.admin-panel-header .header-content{display:flex;justify-content:space-between;align-items:center;gap:1rem}.admin-panel-header h1{margin:0 0 .5rem;color:var(--text-primary, #1a1a1a)}.admin-panel-header .subtitle{margin:0;color:var(--text-secondary, #666);font-size:.95rem}.btn-create-user{padding:.75rem 1.5rem;font-size:.95rem;font-weight:500;background-color:var(--primary-color, #1976d2);color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .2s,transform .1s;white-space:nowrap}.btn-create-user:hover{background-color:var(--primary-hover, #1565c0);transform:translateY(-1px)}.btn-create-user:active{transform:translateY(0)}.alert{padding:1rem;border-radius:4px;margin-bottom:1.5rem}.alert-error{background-color:#ef44441a;border:1px solid rgba(239,68,68,.3);color:var(--color-error, #c00)}.alert-success{background-color:#10b9811a;border:1px solid rgba(16,185,129,.3);color:var(--color-success, #060)}.alert-info{background-color:#3b82f61a;border:1px solid rgba(59,130,246,.3);color:var(--color-info, #006)}.admin-section{background:var(--card-bg, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:8px;padding:1.5rem;margin-bottom:2rem}.admin-section .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color, #e5e7eb)}.admin-section .section-header h2{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-primary, #111827)}.admin-section .btn-secondary{padding:.5rem 1rem;font-size:.875rem;background-color:#6b7280;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .2s}.admin-section .btn-secondary:hover{background-color:#4b5563}.google-sheets-section .collection-selector{background-color:var(--bg-secondary, #f9fafb);border:1px solid var(--border-color, #e5e7eb);border-radius:6px;padding:1rem;margin-bottom:1.5rem}.google-sheets-section .collection-selector label{display:block;font-weight:500;margin-bottom:.5rem;color:var(--text-primary, #374151);font-size:.875rem}.google-sheets-section .collection-selector .form-control{width:100%;max-width:300px;padding:.5rem .75rem;border:1px solid var(--border-color, #d1d5db);border-radius:4px;font-size:.875rem;box-sizing:border-box;background:var(--bg-primary, #fff);color:var(--text-primary, #111827)}.google-sheets-section .collection-selector .form-control:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.google-sheets-section .collection-selector .form-text{display:block;margin-top:.25rem;font-size:.75rem;color:var(--text-secondary, #6b7280)}@media (max-width: 768px){.admin-panel-header .header-content{flex-direction:column;align-items:flex-start}.btn-create-user{width:100%}.admin-section .section-header{flex-direction:column;align-items:flex-start;gap:1rem}.admin-section .btn-secondary{width:100%}.google-sheets-section .collection-selector .form-control{max-width:100%}}.employee-management{padding:24px;max-width:1400px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.header-left h1{margin:0 0 4px;font-size:24px;color:var(--text-primary, #1a1a1a)}.page-description{margin:0;color:var(--text-secondary, #666);font-size:14px}.alert{padding:12px 16px;border-radius:6px;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center}.alert button{background:none;border:none;font-size:18px;cursor:pointer;opacity:.7;padding:0 4px}.alert button:hover{opacity:1}.alert-error{background-color:#fef2f2;border:1px solid #fecaca;color:#dc2626}.alert-success{background-color:#f0fdf4;border:1px solid #bbf7d0;color:#16a34a}.filters-bar{display:flex;gap:16px;padding:16px;background:var(--bg-secondary, #f9fafb);border-radius:8px;margin-bottom:24px;flex-wrap:wrap}.filter-group{display:flex;align-items:center;gap:8px}.filter-group label{font-size:14px;font-weight:500;color:var(--text-secondary, #666)}.filter-group select{padding:8px 12px;border:1px solid var(--border-color, #e5e7eb);border-radius:6px;font-size:14px;background:#fff;min-width:150px}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--text-secondary, #666)}.spinner{width:40px;height:40px;border:3px solid var(--border-color, #e5e7eb);border-top-color:var(--primary-color, #3b82f6);border-radius:50%;animation:spin 1s linear infinite}.empty-state{text-align:center;padding:60px 20px;background:var(--bg-secondary, #f9fafb);border-radius:12px;border:2px dashed var(--border-color, #e5e7eb)}.empty-icon{font-size:48px;margin-bottom:16px}.empty-state h3{margin:0 0 8px;color:var(--text-primary, #1a1a1a)}.empty-state p{margin:0 0 20px;color:var(--text-secondary, #666)}.table-container{overflow-x:auto;background:#fff;border-radius:8px;border:1px solid var(--border-color, #e5e7eb)}.employees-table{width:100%;border-collapse:collapse;font-size:14px}.employees-table th,.employees-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border-color, #e5e7eb)}.employees-table th{background:var(--bg-secondary, #f9fafb);font-weight:600;color:var(--text-secondary, #666);font-size:12px;text-transform:uppercase;letter-spacing:.5px}.employees-table tbody tr:hover{background-color:var(--bg-hover, #f5f5f5)}.employees-table tbody tr.inactive-row{opacity:.6}.name-cell{font-weight:500;color:var(--text-primary, #1a1a1a)}.email-cell{color:var(--text-secondary, #666)}.status-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500;text-transform:capitalize}.badge-success{background-color:#dcfce7;color:#16a34a}.badge-warning{background-color:#fef9c3;color:#ca8a04}.badge-danger{background-color:#fee2e2;color:#dc2626}.badge-secondary{background-color:#f3f4f6;color:#6b7280}.employee-management .role-badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.employee-management .role-owner{background-color:#ede9fe;color:#4c1d95}.employee-management .role-admin{background-color:#dbeafe;color:#1e3a8a}.employee-management .role-division_manager{background-color:#fef3c7;color:#92400e}.employee-management .role-employee{background-color:#f3f4f6;color:#374151}.actions-cell{white-space:nowrap}.btn-action{background:none;border:none;padding:6px 8px;cursor:pointer;border-radius:4px;font-size:14px;transition:background-color .2s}.btn-action:hover{background-color:var(--bg-hover, #f0f0f0)}.btn-edit:hover{background-color:#dbeafe}.btn-resend:hover{background-color:#fef9c3}.btn-reactivate:hover{background-color:#dcfce7}.btn-deactivate:hover{background-color:#fee2e2}.btn-primary{background-color:var(--btn-primary-bg, var(--accent-color, #0078d4));color:#fff;border:none;padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-primary:hover{background-color:var(--primary-hover, #2563eb)}.btn-primary:disabled{background-color:#9ca3af;cursor:not-allowed}.btn-secondary{background-color:#fff;color:var(--text-primary, #1a1a1a);border:1px solid var(--border-color, #e5e7eb);padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-secondary:hover{background-color:var(--bg-hover, #f5f5f5)}.btn-danger{background-color:#dc2626;color:#fff;border:none;padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-danger:hover{background-color:#b91c1c}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal{background:#fff;border-radius:12px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border-color, #e5e7eb)}.modal-header h2{margin:0;font-size:18px;color:var(--text-primary, #1a1a1a)}.modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-secondary, #666);padding:0;line-height:1}.modal-close:hover{color:var(--text-primary, #1a1a1a)}.modal-body{padding:24px}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--border-color, #e5e7eb);background:var(--bg-secondary, #f9fafb);border-radius:0 0 12px 12px}.modal-confirm{padding:24px;text-align:center}.modal-confirm h3{margin:0 0 12px;font-size:18px;color:var(--text-primary, #1a1a1a)}.modal-confirm p{margin:0 0 20px;color:var(--text-secondary, #666);font-size:14px}.modal-actions{display:flex;justify-content:center;gap:12px}.form-group{margin-bottom:20px}.form-group:last-of-type{margin-bottom:0}.form-group label{display:block;margin-bottom:6px;font-size:14px;font-weight:500;color:var(--text-primary, #1a1a1a)}.form-group input,.form-group select{width:100%;padding:10px 12px;border:1px solid var(--border-color, #e5e7eb);border-radius:6px;font-size:14px;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--primary-color, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.form-group input.error,.form-group select.error{border-color:#dc2626}.form-group input.disabled,.form-group input:disabled{background-color:var(--bg-secondary, #f9fafb);cursor:not-allowed}.field-error{display:block;margin-top:4px;font-size:12px;color:#dc2626}.field-hint{display:block;margin-top:4px;font-size:12px;color:var(--text-secondary, #666)}.form-note{margin:16px 0 0;padding:12px;background:#eff6ff;border-radius:6px;font-size:13px;color:#2563eb}.form-error-message{padding:12px;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:14px;margin-bottom:16px}@media (max-width: 768px){.employee-management{padding:16px}.page-header{flex-direction:column;gap:16px}.filters-bar{flex-direction:column}.filter-group{width:100%}.filter-group select{flex:1}.employees-table{font-size:13px}.employees-table th,.employees-table td{padding:10px 12px}.modal{max-width:100%;margin:0;border-radius:12px 12px 0 0;max-height:80vh}}.data-grid-container{width:100%;max-width:100%;background:var(--bg-primary, #ffffff);border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.websocket-status{padding:12px 20px;display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;border-bottom:1px solid var(--border-color, #e0e0e0)}.status-icon{font-size:12px}.status-connected{background:#d1fae5;color:#047857}.status-connecting{background:#fef3c7;color:#f59e0b}.status-disconnected{background:#f3f4f6;color:#6b7280}.status-error{background:#fef2f2;color:#b91c1c}.data-grid-wrapper{width:100%;overflow-x:auto}.data-grid{width:100%;border-collapse:collapse;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;background:var(--bg-primary, #ffffff);color:var(--text-primary, #1a1a1a);display:table!important;table-layout:fixed}.grid-header{background:var(--bg-secondary, #f5f5f5);font-weight:600;text-transform:uppercase;font-size:12px;letter-spacing:.3px;position:sticky;top:0;z-index:10}.grid-header-cell{padding:12px 8px;text-align:left;border-bottom:2px solid var(--border-color, #e0e0e0);white-space:normal;word-wrap:break-word;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;-webkit-user-select:none;user-select:none;background:var(--bg-secondary, #f5f5f5);vertical-align:top;line-height:1.3}.grid-header-cell:hover{background:var(--grid-hover-bg, #e8e8e8)}.grid-header-cell.sortable{cursor:pointer;transition:background-color .2s ease,color .2s ease}.grid-header-cell.sortable:active{background:var(--accent-color, #3b82f6);color:#fff}.grid-header-cell.sorted{background:var(--accent-color, #3b82f6);color:#fff;font-weight:700}.grid-header-cell.sorted:hover{background:var(--accent-color, #2563eb)}.header-content{display:flex;align-items:center;justify-content:space-between;gap:8px}.header-label{flex:1}.sort-indicator{font-size:12px;line-height:1;opacity:.9;margin-left:4px}.grid-row{transition:background-color .2s ease}.grid-row.even-row{background:var(--bg-primary, #ffffff)}.grid-row.odd-row{background:var(--grid-alternate-bg, #f9f9f9)}.grid-row:hover{background:var(--grid-hover-bg, #e8f4f8)!important}.grid-cell{padding:14px 12px;border-bottom:1px solid var(--border-color, #e0e0e0);vertical-align:middle}.grid-row.highlighted{animation:highlight 2s ease-out}@keyframes highlight{0%{background:#fef3c7;transform:scale(1.005)}to{background:inherit;transform:scale(1)}}.grid-pagination{display:flex;align-items:center;justify-content:space-between;padding:20px;border-top:1px solid var(--border-color, #e0e0e0);background:var(--bg-secondary, #f9f9f9);flex-wrap:wrap;gap:16px}.pagination-controls{display:flex;align-items:center;gap:8px}.pagination-info{padding:0 12px;font-size:14px;font-weight:500;color:var(--text-primary, #1a1a1a);white-space:nowrap}.pagination-button{padding:8px 16px;background:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #d1d5db);border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;color:var(--text-primary, #1a1a1a);transition:all .2s ease}.pagination-button:hover:not(:disabled){background:var(--bg-hover, #f3f4f6);border-color:var(--accent-color, #3b82f6)}.pagination-button:disabled{opacity:.4;cursor:not-allowed}.rows-per-page{display:flex;align-items:center;gap:8px;font-size:14px}.rows-per-page label{font-weight:500;color:var(--text-primary, #1a1a1a);white-space:nowrap}.rows-per-page-select{padding:8px 12px;border:1px solid var(--border-color, #d1d5db);border-radius:4px;background:var(--bg-primary, #ffffff);font-size:14px;cursor:pointer;transition:border-color .2s ease}.rows-per-page-select:hover{border-color:var(--accent-color, #3b82f6)}.rows-per-page-select:focus{outline:none;border-color:var(--accent-color, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.data-grid-loading{padding:60px 20px;text-align:center;font-size:18px;color:var(--text-secondary, #6b7280);font-weight:500}.data-grid-error{padding:40px 20px;text-align:center;font-size:16px;color:#ef4444;background:#fef2f2;border-radius:6px;margin:20px}.data-grid-empty{padding:60px 20px;text-align:center;font-size:18px;color:var(--text-secondary, #6b7280);font-weight:500;font-style:italic}.status-badge{display:inline-flex;align-items:center;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-badge.active{background:#28a74526;color:#155724}.status-badge.expiring_soon{background:#ffc10726;color:#856404}.status-badge.expired{background:#dc354526;color:#842029}.days-indicator{font-weight:600;white-space:nowrap}.days-indicator.positive{color:var(--text-primary, #212529)}.days-indicator.warning{color:#856404}.days-indicator.danger{color:#842029}.row-expiring-soon{animation:flashYellow 2s ease-in-out infinite}.row-expired{animation:flashRed 1.5s ease-in-out infinite}@keyframes flashRed{0%,to{background:#dc35451a}50%{background:#dc354540}}@keyframes flashYellow{0%,to{background:#ffc1071a}50%{background:#ffc10733}}.data-grid-container.fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;max-width:100vw;max-height:100vh;z-index:9999;border-radius:0;margin:0;display:flex;flex-direction:column}.data-grid-container.fullscreen .data-grid-wrapper{flex:1;overflow-y:auto}.data-grid-container.fullscreen .grid-pagination{position:sticky;bottom:0;z-index:10}.grid-header-bar{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-color, #e0e0e0);background:var(--bg-secondary, #f9f9f9)}.grid-header-bar .websocket-status{flex:1;border-bottom:none}.grid-controls{display:flex;align-items:center;gap:8px;padding:8px 16px}.control-button{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e0e0e0);border-radius:6px;font-size:14px;font-weight:500;color:var(--text-primary, #1a1a1a);cursor:pointer;transition:all .2s ease}.control-button:hover{background:var(--grid-hover-bg, #f3f4f6);border-color:var(--accent-color, #3b82f6);color:var(--accent-color, #3b82f6)}.control-button:active{transform:scale(.98)}.control-button:disabled{opacity:.5;cursor:not-allowed}.control-icon{width:18px;height:18px}.control-label{font-size:13px;white-space:nowrap}.auto-play-controls{display:flex;align-items:center;gap:8px}.auto-play-interval{padding:6px 10px;border:1px solid var(--border-color, #e0e0e0);border-radius:4px;font-size:14px;background:var(--bg-primary, #ffffff);color:var(--text-primary, #1a1a1a);cursor:pointer}.auto-play-interval:focus{outline:none;border-color:var(--accent-color, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}@media (max-width: 767px){.data-grid-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.data-grid{min-width:600px}.grid-header-cell,.grid-cell{padding:10px 8px;font-size:13px;white-space:nowrap}.grid-pagination{flex-direction:column;align-items:stretch;gap:12px}.pagination-controls{justify-content:center;flex-wrap:wrap}.rows-per-page{justify-content:center}.grid-controls{flex-wrap:wrap;justify-content:center}.control-label{display:none}.websocket-status{font-size:12px;padding:10px 16px}}@media (min-width: 768px) and (max-width: 1023px){.data-grid{font-size:15px}.grid-header-cell,.grid-cell{padding:14px 10px;font-size:14px}.grid-pagination{flex-wrap:wrap;gap:12px}.pagination-info{font-size:14px}.pagination-button{padding:6px 12px;font-size:14px}.control-button{padding:6px 12px;font-size:13px}.data-grid-wrapper{overflow-x:auto}}@media (min-width: 1024px) and (max-width: 1439px){.data-grid{font-size:16px}.grid-header-cell,.grid-cell{padding:14px 12px}.data-grid-container{max-width:100%}}@media (min-width: 1440px){.data-grid{font-size:16px}.grid-header-cell,.grid-cell{padding:16px 14px}.data-grid-container{max-width:100%}.grid-pagination{padding:24px}.grid-controls{padding:10px 20px}}@media (min-width: 2560px){.data-grid{font-size:18px}.grid-header-cell,.grid-cell{padding:18px 16px;font-size:16px}.grid-header-cell,.pagination-info{font-size:16px}.websocket-status{font-size:16px;padding:14px 24px}}[data-theme=dark] .status-badge.expired{background:#ef444426;color:#fca5a5}[data-theme=dark] .status-badge.expiring_soon{background:#fbbf2426;color:#fde68a}[data-theme=dark] .status-badge.active{background:#4ade8026;color:#86efac}[data-theme=dark] .days-indicator.danger{color:#f87171}[data-theme=dark] .days-indicator.warning{color:#fbbf24}[data-theme=blueprint] .data-grid-container{background:var(--bg-primary);border:1px solid var(--border-light);box-shadow:0 2px 8px #0000004d}[data-theme=blueprint] .grid-header-bar{background:var(--bg-secondary);border-bottom:1px solid var(--border-light)}[data-theme=blueprint] .websocket-status{background:#22c55e14;border:1px solid rgba(34,197,94,.2);color:var(--color-success);font-family:JetBrains Mono,monospace;font-weight:700;font-size:.75rem;letter-spacing:.5px;text-transform:uppercase}[data-theme=blueprint] .grid-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-light)}[data-theme=blueprint] .grid-header-cell{color:var(--text-dim);text-transform:uppercase;letter-spacing:2px;font-family:JetBrains Mono,monospace;font-size:.6875rem;font-weight:700}[data-theme=blueprint] .grid-cell{font-family:Outfit,sans-serif;font-weight:500;font-size:.9375rem;letter-spacing:.01em}[data-theme=blueprint] .grid-cell strong{font-weight:700;letter-spacing:.02em;color:var(--text-primary)}[data-theme=blueprint] .grid-row.even-row,[data-theme=blueprint] .grid-row.odd-row{background:var(--bg-primary)}[data-theme=blueprint] .grid-row{border-bottom:1px solid var(--border-color);transition:background .15s}[data-theme=blueprint] .grid-row:hover{background:var(--bg-secondary)!important}[data-theme=blueprint] .grid-cell{color:var(--text-primary);border-bottom:1px solid var(--border-color)}[data-theme=blueprint] .grid-pagination{background:var(--bg-secondary);border-top:1px solid var(--border-light)}[data-theme=blueprint] .pagination-info{color:var(--text-dim);font-family:JetBrains Mono,monospace;font-size:.6875rem}[data-theme=blueprint] .pagination-info:before{content:"// ";opacity:.7}[data-theme=blueprint] .pagination-button{background:var(--bg-primary);border:1px solid var(--border-light);color:var(--text-dim);border-radius:6px;transition:all .15s}[data-theme=blueprint] .pagination-button:hover:not(:disabled){border-color:var(--accent-color);color:var(--accent-color)}[data-theme=blueprint] .pagination-button:disabled{opacity:.4}[data-theme=blueprint] .rows-per-page-select{background:var(--bg-primary);border:1px solid var(--border-light);color:var(--text-primary);font-family:JetBrains Mono,monospace}[data-theme=blueprint] .rows-per-page-select:hover{border-color:var(--accent-color)}[data-theme=blueprint] .rows-per-page-select option{background:var(--bg-secondary);color:var(--text-primary)}[data-theme=blueprint] .auto-play-interval{background:var(--bg-primary);border:1px solid var(--border-light);color:var(--text-primary);font-family:JetBrains Mono,monospace}[data-theme=blueprint] .auto-play-interval:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px #06b6d41a}[data-theme=blueprint] .auto-play-interval option{background:var(--bg-secondary);color:var(--text-primary)}[data-theme=blueprint] .control-button{background:var(--bg-primary);border:1px solid var(--border-light);color:var(--text-dim);font-family:Outfit,sans-serif;font-weight:600;letter-spacing:.03em}[data-theme=blueprint] .control-button:hover{border-color:var(--accent-color);color:var(--accent-color)}[data-theme=blueprint] .data-grid-loading,[data-theme=blueprint] .data-grid-empty{color:var(--text-secondary)}[data-theme=blueprint] .data-grid-error{background:#ef44441a;color:var(--color-error);border:1px solid rgba(239,68,68,.3)}[data-theme=blueprint] .status-badge{font-family:JetBrains Mono,monospace;font-weight:700;letter-spacing:1px}[data-theme=blueprint] .status-badge.active{background:#22c55e26;color:#22c55e;border:1px solid rgba(34,197,94,.3)}[data-theme=blueprint] .status-badge.expiring_soon{background:#fb923c26;color:#fb923c;border:1px solid rgba(251,146,60,.3)}[data-theme=blueprint] .status-badge.expired{background:#ef444426;color:#f87171;border:1px solid rgba(239,68,68,.3)}[data-theme=blueprint] .days-indicator.positive{color:var(--text-primary)}[data-theme=blueprint] .days-indicator.warning{color:#fb923c;font-weight:700}[data-theme=blueprint] .days-indicator.danger{color:#ef4444;font-weight:700}[data-theme=blueprint] .row-expiring-soon{animation:flashYellowBlueprint 2s ease-in-out infinite}[data-theme=blueprint] .row-expired{animation:flashRedBlueprint 1.5s ease-in-out infinite}@keyframes flashRedBlueprint{0%,to{background:#ef444414}50%{background:#ef44442e}}@keyframes flashYellowBlueprint{0%,to{background:#fb923c14}50%{background:#fb923c26}}:root{--grid-alternate-bg: var(--bg-secondary, #f9f9f9);--grid-hover-bg: var(--accent-bg, #e8f4f8);--grid-sorted-bg: var(--accent-color, #3b82f6);--grid-sorted-text: #ffffff}[data-theme=dark]{--grid-alternate-bg: #0f172a;--grid-hover-bg: #1e3a52}[data-theme=ocean]{--grid-alternate-bg: #f0f9ff;--grid-hover-bg: #cffafe}[data-theme=forest]{--grid-alternate-bg: #f7fee7;--grid-hover-bg: #dcfce7}[data-theme=sunset]{--grid-alternate-bg: #ffedd5;--grid-hover-bg: #ffedd5}[data-theme=purple]{--grid-alternate-bg: #f5f3ff;--grid-hover-bg: #ede9fe}.data-viewer-page{display:flex;flex-direction:column;min-height:100%;padding:var(--spacing-lg, 24px);background-color:var(--color-background, #0d1117);color:var(--text-primary, #1a1a1a)}.data-viewer-page.data-viewer-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;overflow-y:auto;min-height:100vh;border-radius:0}.dvg-fullscreen-btn{display:flex;align-items:center;justify-content:center;padding:5px 8px;flex-shrink:0}.data-viewer-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg, 24px);flex-wrap:wrap;gap:12px}.data-viewer-title{font-size:1.5rem;font-weight:600;margin:0;letter-spacing:.02em;color:var(--color-text, var(--text-primary, #e6edf3))}.data-viewer-header-controls{display:flex;align-items:center;gap:12px}.data-viewer-loading,.data-viewer-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 24px;gap:12px;color:var(--text-secondary, #666666);text-align:center}.data-viewer-selector-panel{flex:1}.data-viewer-grid-panel{flex:1;display:flex;flex-direction:column}.dataset-selector{max-width:900px}.dataset-selector-title{font-size:1.2rem;font-weight:600;margin:0 0 8px;color:var(--text-primary, #1a1a1a)}.dataset-selector-subtitle{color:var(--text-secondary, #666666);margin:0 0 20px;font-size:.9rem}.dataset-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.dataset-card{display:flex;flex-direction:column;gap:8px;padding:20px;background:var(--color-surface, #161b22);border:1px solid var(--color-border, #30363d);border-radius:8px;cursor:pointer;text-align:left;transition:border-color .15s,background .15s;color:inherit;width:100%}.dataset-card:hover{border-color:var(--color-accent, #58a6ff);background:var(--color-surface-hover, #1c2129)}.dataset-card-name{font-size:1rem;font-weight:600;color:var(--color-text, #e6edf3)}.dataset-card-meta{display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--text-secondary, #666666)}.dataset-sync-status{width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0}.dataset-sync-status.success{background:#3fb95026;color:#3fb950}.dataset-sync-status.error{background:#f8514926;color:#f85149}.dataset-sync-status.unknown{background:#8b949e26;color:#8b949e}.data-viewer-grid{display:flex;flex-direction:column;flex:1;border:1px solid var(--color-border, #30363d);border-radius:8px;overflow:hidden;background:var(--color-surface, #161b22)}.dvg-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--color-surface, #161b22);border-bottom:1px solid var(--color-border, #30363d);flex-wrap:wrap;gap:8px}.dvg-toolbar-left{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.dvg-toolbar-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap;position:relative}.dvg-collection-name{font-weight:600;font-size:.95rem;color:var(--color-text, var(--text-primary, #e6edf3))}.dvg-sync-time{font-size:.8rem;color:var(--text-secondary, #666666)}.dvg-page-size-select{background:var(--color-input-bg, #0d1117);border:1px solid var(--color-border, #30363d);border-radius:4px;color:var(--color-text, var(--text-primary, #e6edf3));font-size:.85rem;padding:4px 8px;cursor:pointer}.dvg-col-toggle-wrapper{position:relative}.dvg-col-checklist{position:absolute;top:calc(100% + 4px);right:0;z-index:100;background:var(--color-surface, #161b22);border:1px solid var(--color-border, #30363d);border-radius:6px;padding:8px 4px;min-width:180px;max-height:260px;overflow-y:auto;box-shadow:0 4px 16px #0006}.dvg-col-check-item{display:flex;align-items:center;gap:8px;padding:4px 10px;font-size:.85rem;cursor:pointer;border-radius:4px;color:var(--color-text, var(--text-primary, #e6edf3));transition:background .1s}.dvg-col-check-item:hover{background:var(--color-surface-hover, #1c2129)}.dvg-col-check-item input[type=checkbox]{accent-color:var(--color-accent, #58a6ff)}.dvg-table-wrapper{flex:1;overflow:auto;position:relative}.dvg-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0d111799;display:flex;align-items:center;justify-content:center;z-index:10}.dvg-table{width:100%;border-collapse:collapse;font-size:.875rem}.dvg-th{padding:10px 14px;text-align:left;background:var(--color-surface-header, #1c2129);border-bottom:1px solid var(--color-border, #30363d);color:var(--text-secondary, #666666);font-weight:600;font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;position:sticky;top:0;z-index:1}.dvg-th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.dvg-th.sortable:hover{background:var(--color-surface-hover, #21262d);color:var(--color-text, var(--text-primary, #e6edf3))}.sort-indicator{font-size:.75rem;opacity:.7}.dvg-filter-row .dvg-filter-cell{padding:4px 8px;background:var(--color-surface, #161b22);border-bottom:1px solid var(--color-border, #30363d);position:sticky;top:39px;z-index:1}.dvg-filter-input{width:100%;background:var(--color-input-bg, #0d1117);border:1px solid var(--color-border, #30363d);border-radius:4px;color:var(--color-text, var(--text-primary, #e6edf3));font-size:.8rem;padding:3px 6px;outline:none;transition:border-color .15s}.dvg-filter-input:focus{border-color:var(--color-accent, #58a6ff)}.dvg-filter-input::placeholder{color:var(--text-secondary, #666666);opacity:.6}.dvg-row{transition:background .1s}.dvg-row:hover{background:var(--color-surface-hover, #1c2129)}.dvg-td{padding:8px 14px;border-bottom:1px solid var(--color-border-subtle, #21262d);color:var(--color-text, var(--text-primary, #e6edf3));vertical-align:top;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dvg-empty-cell{padding:48px 24px;text-align:center;color:var(--text-secondary, #666666);font-size:.9rem}.dvg-pagination{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--color-surface, #161b22);border-top:1px solid var(--color-border, #30363d);flex-wrap:wrap;gap:8px}.dvg-row-count{font-size:.85rem;color:var(--text-secondary, #666666)}.dvg-page-controls{display:flex;align-items:center;gap:6px}.dvg-page-info{font-size:.85rem;color:var(--color-text, var(--text-primary, #e6edf3));padding:0 4px;white-space:nowrap}.role-filters-section{margin-top:32px;padding-top:24px;border-top:1px solid var(--color-border, #30363d)}.role-filters-section .section-header h4{margin:0 0 8px;font-size:1rem;font-weight:600}.role-filters-section .section-header p{font-size:.85rem;color:var(--text-secondary, #666666);margin:0 0 16px}.role-filters-table{width:100%;border-collapse:collapse;margin-bottom:20px;font-size:.875rem}.role-filters-table th{text-align:left;padding:8px 12px;background:var(--color-surface-header, #1c2129);border-bottom:1px solid var(--color-border, #30363d);color:var(--text-secondary, #666666);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.role-filters-table td{padding:8px 12px;border-bottom:1px solid var(--color-border-subtle, #21262d);vertical-align:middle}.no-criteria{color:var(--text-secondary, #666666);font-size:.85rem}.criteria-list{margin:0;padding:0 0 0 16px;font-size:.85rem}.criteria-list li{margin:2px 0}.empty-state-inline{padding:16px;background:var(--color-surface, #161b22);border:1px dashed var(--color-border, #30363d);border-radius:6px;color:var(--text-secondary, #666666);font-size:.875rem;margin-bottom:16px}.add-role-filter-form{background:var(--color-surface, #161b22);border:1px solid var(--color-border, #30363d);border-radius:8px;padding:16px}.add-role-filter-form h5{margin:0 0 12px;font-size:.9rem;font-weight:600}.optional-label{font-size:.8rem;color:var(--text-secondary, #666666);font-weight:400}.criteria-builder{display:flex;flex-direction:column;gap:8px}.criteria-row{display:flex;align-items:center;gap:8px}.criteria-key,.criteria-value{flex:1;max-width:200px}.criteria-equals{font-weight:600;color:var(--text-secondary, #666666);flex-shrink:0}.loading-inline{padding:16px;color:var(--text-secondary, #666666);font-size:.875rem}.all-roles-configured{font-size:.85rem;color:var(--text-secondary, #666666);margin-top:12px}.refresh-control{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.refresh-last-synced{font-size:.85rem;color:var(--text-secondary, #666666)}.refresh-error{font-size:.8rem;color:var(--color-danger, #f85149)}.spinner-small{display:inline-block;width:12px;height:12px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;margin-right:6px;vertical-align:middle}.reports-page{padding:2rem;max-width:1200px;margin:0 auto}.reports-header{margin-bottom:2rem}.reports-header h1{margin:0 0 .5rem;color:var(--text-primary, #1a1a1a);font-size:1.75rem;font-weight:700}.reports-subtitle{margin:0;color:var(--text-secondary, #666);font-size:.95rem}.reports-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.report-card{background:var(--card-bg, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:12px;padding:1.5rem;display:flex;flex-direction:column;gap:.75rem;box-shadow:var(--card-shadow, 0 1px 3px rgba(0,0,0,.1));transition:box-shadow .2s}.report-card:hover{box-shadow:var(--card-hover-shadow, 0 4px 12px rgba(0,0,0,.15))}.report-card-icon{font-size:2rem}.report-card h3{margin:0;color:var(--text-primary, #1a1a1a);font-size:1.1rem;font-weight:600}.report-card p{margin:0;color:var(--text-secondary, #666);font-size:.875rem;line-height:1.5;flex:1}.report-btn{padding:.6rem 1.25rem;background:var(--btn-primary-bg, var(--accent-color, #0078d4));color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .2s;align-self:flex-start}.report-btn:hover:not(:disabled){background:var(--btn-primary-hover, var(--accent-hover, #005a9e))}.report-btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.reports-page{padding:1rem}.reports-grid{grid-template-columns:1fr}}.wizard-container{display:flex;flex-direction:column;min-height:100%;padding:var(--spacing-lg, 2rem);max-width:900px;margin:0 auto}.wizard-header{margin-bottom:var(--spacing-lg, 2rem)}.wizard-header h1{font-size:1.75rem;font-weight:700;color:var(--text-primary, #111827);margin:0 0 .25rem}.wizard-header p{color:var(--text-secondary, #6b7280);margin:0}.wizard-steps{display:flex;align-items:center;margin-bottom:var(--spacing-xl, 2.5rem);overflow-x:auto;padding-bottom:.25rem}.wizard-step{display:flex;align-items:center;gap:.5rem;white-space:nowrap}.step-indicator{display:flex;align-items:center;gap:.5rem}.step-number{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:600;border:2px solid var(--border-color, #e5e7eb);background:var(--bg-secondary, #f9fafb);color:var(--text-muted, #9ca3af);flex-shrink:0;transition:all .2s ease}.step-label{font-size:.875rem;color:var(--text-muted, #9ca3af);font-weight:400;transition:color .2s ease}.step-connector{flex:1;height:2px;background:var(--border-color, #e5e7eb);min-width:1.5rem;margin:0 .25rem}.wizard-step.active .step-number{background:var(--primary-color, #3b82f6);border-color:var(--primary-color, #3b82f6);color:#fff}.wizard-step.active .step-label{color:var(--primary-color, #3b82f6);font-weight:600}.wizard-step.completed .step-number{background:var(--success-color, #10b981);border-color:var(--success-color, #10b981);color:#fff}.wizard-step.completed .step-label{color:var(--success-color, #10b981)}.wizard-step.completed .step-connector{background:var(--success-color, #10b981)}.wizard-content{background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:var(--border-radius-lg, .75rem);padding:var(--spacing-xl, 2rem);flex:1}.wizard-step-title{font-size:1.25rem;font-weight:600;color:var(--text-primary, #111827);margin:0 0 .25rem}.wizard-step-subtitle{color:var(--text-secondary, #6b7280);margin:0 0 1.5rem;font-size:.9375rem}.wizard-nav{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-xl, 2rem);padding-top:var(--spacing-lg, 1.5rem);border-top:1px solid var(--border-color, #e5e7eb);gap:1rem}.wizard-nav .nav-left,.wizard-nav .nav-right{display:flex;gap:.75rem;align-items:center}.source-type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.source-type-card{border:2px solid var(--border-color, #e5e7eb);border-radius:var(--border-radius, .5rem);padding:1.25rem;cursor:pointer;transition:all .15s ease;background:var(--bg-primary, #fff);text-align:left;display:flex;flex-direction:column;gap:.5rem}.source-type-card:hover:not(.disabled){border-color:var(--primary-color, #3b82f6);box-shadow:0 0 0 3px var(--primary-color-alpha, rgba(59,130,246,.12))}.source-type-card.selected{border-color:var(--primary-color, #3b82f6);background:var(--primary-color-light, #eff6ff)}.source-type-card.disabled{opacity:.5;cursor:not-allowed}.source-type-icon{font-size:1.75rem;margin-bottom:.25rem}.source-type-name{font-weight:600;font-size:.9375rem;color:var(--text-primary, #111827)}.source-type-description{font-size:.8125rem;color:var(--text-secondary, #6b7280)}.source-type-badge{display:inline-block;font-size:.6875rem;font-weight:600;padding:.125rem .5rem;border-radius:9999px;background:var(--warning-color-light, #fef3c7);color:var(--warning-color, #d97706);text-transform:uppercase;letter-spacing:.05em}.config-form{display:flex;flex-direction:column;gap:1.25rem}.form-field{display:flex;flex-direction:column;gap:.375rem}.form-field label{font-weight:500;font-size:.875rem;color:var(--text-primary, #111827)}.form-field .required-indicator{color:var(--error-color, #ef4444);margin-left:.2em}.form-field input[type=text],.form-field input[type=url],.form-field input[type=number],.form-field textarea{width:100%;padding:.625rem .875rem;border:1px solid var(--border-color, #e5e7eb);border-radius:var(--border-radius, .5rem);font-size:.875rem;color:var(--text-primary, #111827);background:var(--bg-primary, #fff);transition:border-color .15s ease,box-shadow .15s ease;box-sizing:border-box}.form-field input:focus,.form-field textarea:focus{outline:none;border-color:var(--primary-color, #3b82f6);box-shadow:0 0 0 3px var(--primary-color-alpha, rgba(59,130,246,.15))}.form-field .field-help{font-size:.8125rem;color:var(--text-muted, #9ca3af)}.form-field.has-error input,.form-field.has-error textarea{border-color:var(--error-color, #ef4444)}.form-field.has-error .field-error{font-size:.8125rem;color:var(--error-color, #ef4444)}.config-notes{margin-top:1.5rem;display:flex;flex-direction:column;gap:.75rem}.config-note{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem 1rem;border-radius:var(--border-radius, .5rem);font-size:.875rem}.config-note.info{background:var(--info-bg, #eff6ff);color:var(--info-text, #1d4ed8);border:1px solid var(--info-border, #bfdbfe)}.config-note.warning{background:var(--warning-bg, #fffbeb);color:var(--warning-text, #92400e);border:1px solid var(--warning-border, #fde68a)}.step-error-banner{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem 1rem;border-radius:var(--border-radius, .5rem);background:var(--error-bg, #fef2f2);border:1px solid var(--error-border, #fecaca);color:var(--error-text, #991b1b);font-size:.875rem;margin-bottom:1.25rem}.step-error-banner .error-code{font-weight:700;font-family:monospace;font-size:.75rem;background:var(--error-border, #fecaca);padding:.1em .4em;border-radius:.2em;white-space:nowrap}.preview-section{display:flex;flex-direction:column;gap:1rem}.preview-meta{font-size:.875rem;color:var(--text-secondary, #6b7280)}.preview-table-wrapper{overflow-x:auto;border:1px solid var(--border-color, #e5e7eb);border-radius:var(--border-radius, .5rem);max-height:360px;overflow-y:auto}.preview-table{width:100%;border-collapse:collapse;font-size:.8125rem}.preview-table th{position:sticky;top:0;background:var(--bg-secondary, #f9fafb);font-weight:600;color:var(--text-primary, #111827);padding:.625rem .875rem;text-align:left;border-bottom:2px solid var(--border-color, #e5e7eb);white-space:nowrap}.preview-table td{padding:.5rem .875rem;border-bottom:1px solid var(--border-color, #e5e7eb);color:var(--text-primary, #111827);white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}.preview-table tr:last-child td{border-bottom:none}.preview-table tr:hover td{background:var(--bg-secondary, #f9fafb)}.key-analysis-section{display:flex;flex-direction:column;gap:1.5rem}.key-recommendation{display:flex;align-items:flex-start;gap:1rem;padding:1rem 1.25rem;border-radius:var(--border-radius, .5rem);border:1px solid var(--success-border, #a7f3d0);background:var(--success-bg, #ecfdf5);color:var(--success-text, #065f46)}.key-recommendation.no-key{border-color:var(--warning-border, #fde68a);background:var(--warning-bg, #fffbeb);color:var(--warning-text, #92400e)}.key-rec-label{font-weight:700;white-space:nowrap;font-size:.875rem}.key-rec-reason{font-size:.875rem}.key-analysis-table{width:100%;border-collapse:collapse;font-size:.8125rem}.key-analysis-table th{background:var(--bg-secondary, #f9fafb);font-weight:600;text-align:left;padding:.5rem .75rem;border-bottom:2px solid var(--border-color, #e5e7eb);color:var(--text-primary, #111827)}.key-analysis-table td{padding:.5rem .75rem;border-bottom:1px solid var(--border-color, #e5e7eb);color:var(--text-primary, #111827)}.key-analysis-table tr.highlighted td{background:var(--primary-color-light, #eff6ff)}.key-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:500;background:var(--success-bg, #ecfdf5);color:var(--success-text, #065f46);border:1px solid var(--success-border, #a7f3d0)}.key-chip.warning{background:var(--warning-bg, #fffbeb);color:var(--warning-text, #92400e);border-color:var(--warning-border, #fde68a)}.column-mapping-table{width:100%;border-collapse:collapse;font-size:.875rem}.column-mapping-table th{background:var(--bg-secondary, #f9fafb);font-weight:600;text-align:left;padding:.625rem .875rem;border-bottom:2px solid var(--border-color, #e5e7eb);color:var(--text-primary, #111827)}.column-mapping-table td{padding:.5rem .875rem;border-bottom:1px solid var(--border-color, #e5e7eb);vertical-align:middle}.column-mapping-table input[type=text]{width:100%;padding:.375rem .5rem;border:1px solid var(--border-color, #e5e7eb);border-radius:.375rem;font-size:.875rem;background:var(--bg-primary, #fff);color:var(--text-primary, #111827);box-sizing:border-box}.column-mapping-table input[type=checkbox]{width:1rem;height:1rem;cursor:pointer}.schedule-options{display:flex;flex-direction:column;gap:.75rem}.schedule-option{display:flex;align-items:flex-start;gap:.875rem;padding:1rem 1.125rem;border:2px solid var(--border-color, #e5e7eb);border-radius:var(--border-radius, .5rem);cursor:pointer;transition:border-color .15s ease,background .15s ease;background:var(--bg-primary, #fff)}.schedule-option:hover{border-color:var(--primary-color, #3b82f6)}.schedule-option.selected{border-color:var(--primary-color, #3b82f6);background:var(--primary-color-light, #eff6ff)}.schedule-option input[type=radio]{margin-top:.125rem;flex-shrink:0}.schedule-option-content{display:flex;flex-direction:column;gap:.125rem}.schedule-option-label{font-weight:600;font-size:.9375rem;color:var(--text-primary, #111827)}.schedule-option-desc{font-size:.8125rem;color:var(--text-secondary, #6b7280)}.review-section{display:flex;flex-direction:column;gap:1.5rem}.review-group{border:1px solid var(--border-color, #e5e7eb);border-radius:var(--border-radius, .5rem);overflow:hidden}.review-group-title{font-size:.875rem;font-weight:600;color:var(--text-primary, #111827);background:var(--bg-secondary, #f9fafb);padding:.75rem 1rem;border-bottom:1px solid var(--border-color, #e5e7eb)}.review-field{display:flex;gap:1rem;padding:.625rem 1rem;border-bottom:1px solid var(--border-color, #e5e7eb);font-size:.875rem}.review-field:last-child{border-bottom:none}.review-field-label{font-weight:500;color:var(--text-secondary, #6b7280);min-width:160px;flex-shrink:0}.review-field-value{color:var(--text-primary, #111827);word-break:break-all}.review-initial-sync{display:flex;align-items:flex-start;gap:.875rem;padding:1rem 1.125rem;border:2px solid var(--primary-color, #3b82f6);border-radius:var(--border-radius, .5rem);background:var(--primary-color-light, #eff6ff)}.review-initial-sync input[type=checkbox]{margin-top:.125rem;flex-shrink:0}.review-initial-sync-content{display:flex;flex-direction:column;gap:.25rem}.review-initial-sync-label{font-weight:600;font-size:.9375rem;color:var(--primary-text, #1d4ed8)}.review-initial-sync-desc{font-size:.8125rem;color:var(--text-secondary, #6b7280)}.wizard-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:3rem;color:var(--text-secondary, #6b7280)}.spinner{width:2rem;height:2rem;border:3px solid var(--border-color, #e5e7eb);border-top-color:var(--primary-color, #3b82f6);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn-wizard-primary{padding:.625rem 1.5rem;background:var(--primary-color, #3b82f6);color:#fff;border:none;border-radius:var(--border-radius, .5rem);font-weight:600;font-size:.9375rem;cursor:pointer;transition:background .15s ease,opacity .15s ease}.btn-wizard-primary:hover:not(:disabled){background:var(--primary-hover, #2563eb)}.btn-wizard-primary:disabled{opacity:.5;cursor:not-allowed}.btn-wizard-secondary{padding:.625rem 1.25rem;background:transparent;color:var(--text-primary, #111827);border:1px solid var(--border-color, #e5e7eb);border-radius:var(--border-radius, .5rem);font-weight:500;font-size:.9375rem;cursor:pointer;transition:background .15s ease,border-color .15s ease}.btn-wizard-secondary:hover:not(:disabled){background:var(--bg-secondary, #f9fafb);border-color:var(--text-muted, #9ca3af)}.btn-wizard-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-wizard-ghost{padding:.5rem .875rem;background:transparent;color:var(--text-secondary, #6b7280);border:none;cursor:pointer;font-size:.875rem;border-radius:var(--border-radius, .5rem);transition:background .15s ease}.btn-wizard-ghost:hover{background:var(--bg-secondary, #f9fafb)}@media (max-width: 640px){.wizard-container{padding:1rem}.wizard-content{padding:1.25rem}.source-type-grid{grid-template-columns:1fr}.wizard-steps{gap:0}.step-label{display:none}}.sd-page{padding:24px;max-width:1400px;margin:0 auto}.sd-loading,.sd-error-banner{display:flex;align-items:center;gap:8px;padding:16px;border-radius:8px;font-size:14px}.sd-loading{color:var(--text-secondary, #6b7280)}.sd-error-banner{background:var(--error-bg, #fef2f2);color:var(--error, #dc2626);border:1px solid var(--error-border, #fecaca)}.sd-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;gap:16px;flex-wrap:wrap}.sd-title{font-size:24px;font-weight:700;color:var(--text-primary, #111827);margin:0 0 4px}.sd-subtitle{font-size:14px;color:var(--text-secondary, #6b7280);margin:0}.sd-btn-refresh{display:flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid var(--border, #e5e7eb);border-radius:6px;background:var(--surface, #fff);color:var(--text-primary, #374151);font-size:14px;cursor:pointer;white-space:nowrap;transition:background .15s}.sd-btn-refresh:hover{background:var(--surface-hover, #f9fafb)}.sd-empty{text-align:center;padding:64px 24px;color:var(--text-secondary, #6b7280)}.sd-empty p{font-size:16px;margin:12px 0 16px}.sd-link{color:var(--primary, #3b82f6);text-decoration:none;font-size:14px}.sd-link:hover{text-decoration:underline}.sd-table-wrapper{overflow-x:auto;border:1px solid var(--border, #e5e7eb);border-radius:8px;background:var(--surface, #fff)}.sd-table{width:100%;border-collapse:collapse;font-size:14px}.sd-table thead th{padding:12px 14px;text-align:left;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary, #6b7280);background:var(--surface-subtle, #f9fafb);border-bottom:1px solid var(--border, #e5e7eb);white-space:nowrap}.sd-row{cursor:pointer;border-bottom:1px solid var(--border, #e5e7eb);transition:background .1s}.sd-row:hover,.sd-row--expanded{background:var(--surface-hover, #f9fafb)}.sd-row td{padding:12px 14px;vertical-align:middle}.sd-expand-cell{width:32px;color:var(--text-secondary, #9ca3af)}.sd-name{min-width:160px}.sd-dataset-name{display:block;font-weight:500;color:var(--text-primary, #111827)}.sd-dataset-desc{display:block;font-size:12px;color:var(--text-secondary, #9ca3af);margin-top:2px}.sd-source{text-transform:capitalize;white-space:nowrap}.sd-schedule{white-space:nowrap}.sd-last-sync{white-space:nowrap;color:var(--text-secondary, #6b7280)}.sd-count{text-align:right;font-variant-numeric:tabular-nums}.sd-count--inserted{color:var(--success, #16a34a)}.sd-count--updated{color:var(--warning, #d97706)}.sd-count--skipped{color:var(--text-secondary, #9ca3af)}.sd-next-due{white-space:nowrap;color:var(--text-secondary, #6b7280)}.sd-next-due--overdue{color:var(--warning, #d97706);font-weight:500}.sd-btn-sync{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:5px;border:1px solid var(--primary, #3b82f6);background:transparent;color:var(--primary, #3b82f6);font-size:13px;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}.sd-btn-sync:hover:not(:disabled){background:var(--primary, #3b82f6);color:#fff}.sd-btn-sync:disabled{opacity:.5;cursor:not-allowed}.sd-btn-sync--active{opacity:.7}.sd-sync-msg{display:block;font-size:11px;margin-top:4px}.sd-sync-msg--ok{color:var(--success, #16a34a)}.sd-sync-msg--err{color:var(--error, #dc2626)}.sd-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:12px;font-size:12px;font-weight:500;white-space:nowrap}.sd-badge--success{background:#dcfce7;color:#16a34a}.sd-badge--error{background:#fee2e2;color:#dc2626}.sd-badge--in-progress{background:#dbeafe;color:#2563eb}.sd-badge--never{background:#f3f4f6;color:#6b7280}.sd-trigger{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:500;text-transform:capitalize}.sd-trigger--manual{background:#f3f4f6;color:#374151}.sd-trigger--scheduled{background:#ede9fe;color:#7c3aed}.sd-trigger--initial{background:#e0f2fe;color:#0369a1}.sd-history-row td{padding:0;border-bottom:2px solid var(--border, #e5e7eb)}.sd-history-panel{padding:16px 20px 20px;background:var(--surface-subtle, #f9fafb);border-top:1px solid var(--border, #e5e7eb)}.sd-history-title{font-size:13px;font-weight:600;color:var(--text-secondary, #374151);margin:0 0 12px;text-transform:uppercase;letter-spacing:.04em}.sd-history-loading,.sd-history-error,.sd-history-empty{padding:16px;font-size:13px;display:flex;align-items:center;gap:6px;color:var(--text-secondary, #6b7280)}.sd-history-error{color:var(--error, #dc2626)}.sd-history-table{width:100%;border-collapse:collapse;font-size:13px;background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:6px;overflow:hidden}.sd-history-table thead th{padding:8px 12px;text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary, #6b7280);background:var(--surface-subtle, #f9fafb);border-bottom:1px solid var(--border, #e5e7eb);white-space:nowrap}.sd-history-table td{padding:8px 12px;border-bottom:1px solid var(--border, #f3f4f6);vertical-align:middle}.sd-history-table tbody tr:last-child td{border-bottom:none}.sd-history-row--error{background:#fff9f9}.sd-history-time{white-space:nowrap;color:var(--text-secondary, #6b7280)}.sd-btn-error-detail{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:4px;border:1px solid var(--error, #dc2626);background:transparent;color:var(--error, #dc2626);font-size:12px;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}.sd-btn-error-detail:hover{background:var(--error, #dc2626);color:#fff}.sd-pagination{display:flex;align-items:center;gap:12px;margin-top:12px;font-size:13px;color:var(--text-secondary, #6b7280)}.sd-pagination button{padding:4px 10px;border:1px solid var(--border, #e5e7eb);border-radius:4px;background:var(--surface, #fff);color:var(--text-primary, #374151);font-size:13px;cursor:pointer}.sd-pagination button:disabled{opacity:.4;cursor:not-allowed}.sd-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.sd-modal{background:var(--surface, #fff);border-radius:10px;box-shadow:0 20px 60px #00000040;width:100%;max-width:640px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.sd-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border, #e5e7eb)}.sd-modal-header h3{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600;color:var(--error, #dc2626);margin:0}.sd-modal-close{background:none;border:none;color:var(--text-secondary, #9ca3af);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center}.sd-modal-close:hover{color:var(--text-primary, #374151)}.sd-modal-body{padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:20px}.sd-modal-section h4{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary, #6b7280);margin:0 0 8px}.sd-error-pre{background:#1e1e1e;color:#f8f8f2;padding:14px 16px;border-radius:6px;font-size:12px;line-height:1.6;overflow-x:auto;white-space:pre-wrap;word-break:break-word;margin:0}.sd-debug-tips{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}.sd-debug-tips li{font-size:14px;color:var(--text-primary, #374151);line-height:1.5}.sd-run-details{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:13px}.sd-run-details dt{font-weight:600;color:var(--text-secondary, #6b7280)}.sd-run-details dd{margin:0;color:var(--text-primary, #374151)}@keyframes sd-spin{to{transform:rotate(360deg)}}.sd-spin{animation:sd-spin 1s linear infinite}.ai-analyst-page{padding:0}.ai-analyst-layout{display:grid;grid-template-columns:280px 1fr;gap:1.5rem;margin-top:1.5rem;align-items:start}@media (max-width: 900px){.ai-analyst-layout{grid-template-columns:1fr}.ai-sidebar{order:2}.ai-main{order:1}}.ai-sidebar{background:var(--card-bg, #fff);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;box-shadow:var(--card-shadow, 0 1px 3px rgba(0,0,0,.08));padding:1.25rem}.ai-sidebar-title{font-size:.9375rem;font-weight:600;color:var(--text-primary, #1a1a1a);margin:0 0 1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-color, #e0e0e0)}.ai-prompts-empty{font-size:.875rem;color:var(--text-secondary, #666);font-style:italic}.ai-saved-prompts{display:flex;flex-direction:column;gap:.5rem}.ai-saved-prompt-row{display:flex;flex-direction:column;gap:.4rem;padding:.6rem .75rem;border-radius:6px;background:var(--bg-secondary, #f8f9fa);border:1px solid var(--border-color, #e0e0e0)}.ai-prompt-name{font-size:.875rem;font-weight:500;color:var(--text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-saved-prompt-row .ai-prompt-actions{display:flex;gap:.375rem;flex-wrap:wrap}.ai-main{display:flex;flex-direction:column;gap:1.25rem}.ai-section-card,.ai-datasource-selector{background:var(--card-bg, #fff);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;box-shadow:var(--card-shadow, 0 1px 3px rgba(0,0,0,.08));padding:1.25rem 1.5rem}.ai-label{display:block;font-size:.875rem;font-weight:600;color:var(--text-primary, #1a1a1a);margin-bottom:.6rem}.ai-datasource-list{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem}.ai-datasource-item{display:flex;align-items:center;gap:.4rem;font-size:.875rem;color:var(--text-primary, #1a1a1a);cursor:pointer}.ai-datasource-item input[type=checkbox]{cursor:pointer;accent-color:var(--accent-color, #0078d4);width:15px;height:15px}.ai-ds-hint,.ai-ds-loading,.ai-ds-empty{font-size:.8125rem;color:var(--text-secondary, #666);margin-top:.5rem;font-style:italic}.ai-prompt-input{background:var(--card-bg, #fff);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;box-shadow:var(--card-shadow, 0 1px 3px rgba(0,0,0,.08));padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:.875rem}.ai-prompt-header{display:grid;grid-template-columns:1fr 1fr;gap:1rem;flex-wrap:wrap}.ai-provider-group{display:flex;flex-direction:column;gap:.4rem}.ai-provider-group .ai-label{margin:0}@media (max-width: 600px){.ai-prompt-header{grid-template-columns:1fr}}.ai-provider-select{padding:.4rem .75rem;border-radius:4px;border:1px solid var(--border-color, #d1d5db);background:var(--bg-secondary, #f9fafb);color:var(--text-primary, #1a1a1a);font-size:.875rem;font-family:inherit;cursor:pointer}.ai-provider-select:focus{outline:none;border-color:var(--accent-color, #0078d4)}.ai-question-textarea{width:100%;min-height:110px;padding:.625rem .875rem;border-radius:6px;border:1px solid var(--border-color, #d1d5db);background:var(--bg-secondary, #f9fafb);color:var(--text-primary, #1a1a1a);font-size:.9rem;font-family:inherit;resize:vertical;transition:border-color .15s}.ai-question-textarea:focus{outline:none;border-color:var(--accent-color, #0078d4);background:var(--card-bg, #fff)}.ai-question-textarea:disabled{opacity:.65;cursor:not-allowed}.ai-char-count{font-size:.75rem;color:var(--text-secondary, #888);text-align:right;margin-top:-.5rem}.ai-prompt-actions{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.ai-save-form{background:var(--bg-secondary, #f8f9fa);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;padding:1rem 1.25rem;display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.ai-save-form input[type=text]{flex:1;min-width:180px;padding:.45rem .75rem;border-radius:4px;border:1px solid var(--border-color, #d1d5db);font-size:.875rem;font-family:inherit;background:var(--card-bg, #fff);color:var(--text-primary, #1a1a1a)}.ai-save-form input[type=text]:focus{outline:none;border-color:var(--accent-color, #0078d4)}.ai-hint{font-size:.8125rem;color:var(--text-secondary, #666);font-style:italic}.ai-response-container{background:var(--card-bg, #fff);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;box-shadow:var(--card-shadow, 0 1px 3px rgba(0,0,0,.08));overflow:hidden}.ai-response-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.25rem;border-bottom:1px solid var(--border-color, #e0e0e0);background:var(--bg-secondary, #f8f9fa)}.ai-response-label{font-size:.875rem;font-weight:600;color:var(--text-primary, #1a1a1a)}.ai-streaming-badge{font-size:.8rem;color:var(--accent-color, #0078d4);font-weight:500;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.ai-error-banner{margin:1rem 1.25rem 0;padding:.75rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:.875rem}.ai-response-body{padding:1.25rem;margin:0;font-family:inherit;font-size:.9rem;line-height:1.7;color:var(--text-primary, #1a1a1a);white-space:pre-wrap;word-break:break-word;max-height:600px;overflow-y:auto}.ai-cursor{display:inline-block;animation:blink .8s step-end infinite;color:var(--accent-color, #0078d4)}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.ai-no-connection-card{background:var(--card-bg, #fff);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;box-shadow:var(--card-shadow, 0 1px 3px rgba(0,0,0,.08));padding:2.5rem 2rem;margin-top:1.5rem;max-width:540px}.ai-no-connection-card h3{font-size:1.1rem;font-weight:600;color:var(--text-primary, #1a1a1a);margin:0 0 .75rem}.ai-no-connection-card p{font-size:.9rem;color:var(--text-secondary, #555);line-height:1.6;margin:0}.ai-no-connection-card a{color:var(--accent-color, #0078d4);text-decoration:none}.ai-no-connection-card a:hover{text-decoration:underline}.ai-export-row{display:flex;justify-content:flex-end;margin-top:.25rem}.ai-export-btn{display:inline-flex;align-items:center;padding:.45rem 1.1rem;font-size:.875rem;font-weight:500;border-radius:6px;border:1px solid var(--border-color, #d1d5db);cursor:pointer;background-color:var(--bg-secondary, #f3f4f6);color:var(--text-primary, #374151);font-family:inherit;transition:background-color .15s}.btn-primary-sm,.btn-secondary-sm{display:inline-flex;align-items:center;padding:.2rem .65rem;font-size:.8125rem;font-weight:500;line-height:1.5;border-radius:4px;border:1px solid transparent;cursor:pointer;white-space:nowrap;font-family:inherit;transition:background-color .15s,opacity .15s}.btn-primary-sm{background-color:var(--btn-primary-bg, var(--accent-color, #0078d4));color:#fff}.btn-primary-sm:hover:not(:disabled){background-color:var(--btn-primary-hover, var(--accent-hover, #005a9e))}.btn-secondary-sm{background-color:var(--bg-secondary, #f3f4f6);color:var(--text-primary, #374151);border-color:var(--border-color, #d1d5db)}.btn-secondary-sm:hover:not(:disabled){background-color:var(--border-color, #e5e7eb)}.btn-primary-sm:disabled,.btn-secondary-sm:disabled{opacity:.55;cursor:not-allowed}.ai-prompt-actions .btn-primary,.ai-save-form .btn-primary{display:inline-flex;align-items:center;padding:.5rem 1.25rem;font-size:.9rem;font-weight:600;border-radius:6px;border:none;cursor:pointer;background-color:var(--btn-primary-bg, var(--accent-color, #0078d4));color:#fff;font-family:inherit;transition:background-color .15s}.ai-prompt-actions .btn-primary:hover:not(:disabled),.ai-save-form .btn-primary:hover:not(:disabled){background-color:var(--btn-primary-hover, var(--accent-hover, #005a9e))}.ai-prompt-actions .btn-primary:disabled,.ai-save-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}.ai-prompt-actions .btn-secondary,.ai-save-form .btn-secondary{display:inline-flex;align-items:center;padding:.5rem 1.25rem;font-size:.9rem;font-weight:500;border-radius:6px;border:1px solid var(--border-color, #d1d5db);cursor:pointer;background-color:var(--bg-secondary, #f3f4f6);color:var(--text-primary, #374151);font-family:inherit;transition:background-color .15s}.ai-prompt-actions .btn-secondary:hover:not(:disabled),.ai-save-form .btn-secondary:hover:not(:disabled){background-color:var(--border-color, #e5e7eb)}.jp-page{padding:0 1.5rem 2rem;max-width:1400px;margin:0 auto}.jp-kiosk{max-width:100%;padding:0;margin:0;width:100vw;min-height:100vh;display:flex;flex-direction:column}.jp-kiosk-header{display:flex;align-items:baseline;justify-content:space-between;padding:.6rem 1.25rem;background:#1e293b;color:#f1f5f9;flex-shrink:0}.jp-kiosk-title{font-size:1.1rem;font-weight:600;letter-spacing:.01em}.jp-kiosk-meta{font-size:.8rem;color:#94a3b8}.jp-kiosk .jp-table-wrap{flex:1;overflow-y:auto}.jp-kiosk .jp-summary-strip{padding:.5rem 1.25rem}.jp-kiosk .jp-table{font-size:.8rem}.jp-kiosk .jp-table th,.jp-kiosk .jp-table td{padding:.3rem .5rem}.jp-loading,.jp-error{margin-top:3rem;text-align:center;color:var(--text-secondary, #6b7280);font-size:1rem}.jp-error{color:#ef4444}.jp-filter-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.jp-select{padding:.35rem .65rem;border:1px solid var(--border-color, #e5e7eb);border-radius:6px;background:var(--bg-surface, #fff);color:var(--text-primary, #111827);font-size:.85rem;cursor:pointer}.jp-clear-btn{padding:.35rem .75rem;border:1px solid var(--border-color, #e5e7eb);border-radius:6px;background:transparent;color:var(--text-secondary, #6b7280);font-size:.8rem;cursor:pointer;transition:background .15s}.jp-clear-btn:hover{background:var(--bg-hover, #f3f4f6)}.jp-summary-strip{display:flex;gap:.75rem;flex-wrap:wrap;margin:1.25rem 0}.jp-card{flex:1 1 120px;min-width:100px;display:flex;flex-direction:column;align-items:center;padding:1rem .75rem .875rem;border:1.5px solid var(--card-color);border-radius:10px;background:var(--card-bg);cursor:pointer;transition:transform .15s,box-shadow .15s;-webkit-user-select:none;user-select:none}.jp-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.jp-card--active{box-shadow:0 0 0 3px var(--card-color)}.jp-card-count{font-size:2rem;font-weight:700;line-height:1;color:var(--card-color)}.jp-card-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--card-color);margin-top:.3rem;text-align:center}.jp-phase-section{margin:1.5rem 0;padding:1rem 1.25rem;background:var(--bg-surface, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:10px}.jp-section-title{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary, #6b7280);margin:0 0 .875rem}.jp-phase-bars{display:flex;flex-direction:column;gap:.5rem}.jp-phase-row{display:flex;align-items:center;gap:.75rem}.jp-phase-name{width:100px;font-size:.78rem;font-weight:600;color:var(--text-primary, #111827);text-align:right;flex-shrink:0}.jp-phase-track{flex:1;height:10px;background:var(--bg-muted, #f3f4f6);border-radius:5px;overflow:hidden}.jp-phase-bar{height:100%;background:#3b82f6;border-radius:5px;transition:width .4s ease}.jp-phase-count{width:28px;font-size:.78rem;font-weight:700;color:var(--text-secondary, #6b7280);text-align:right}.jp-table-wrap{background:var(--bg-surface, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:10px;overflow:hidden}.jp-table-meta{padding:.625rem 1rem;font-size:.78rem;color:var(--text-secondary, #6b7280);border-bottom:1px solid var(--border-color, #e5e7eb);background:var(--bg-muted, #f9fafb)}.jp-sync-time{opacity:.75}.jp-table{width:100%;border-collapse:collapse;font-size:.82rem}.jp-table thead tr{background:var(--bg-muted, #f9fafb)}.jp-table th{padding:.6rem .75rem;text-align:left;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary, #6b7280);border-bottom:1px solid var(--border-color, #e5e7eb);white-space:nowrap}.jp-row td{padding:.55rem .75rem;border-bottom:1px solid var(--border-color, #f3f4f6);vertical-align:middle;background:var(--row-bg, transparent)}.jp-row:last-child td{border-bottom:none}.jp-row:hover td{filter:brightness(.97)}.jp-cell-intacct{font-family:monospace;font-size:.78rem;color:var(--text-secondary, #6b7280);white-space:nowrap}.jp-cell-addr{max-width:200px}.jp-community{font-weight:600;color:var(--text-primary, #111827);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.jp-address{font-size:.72rem;color:var(--text-secondary, #6b7280);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.jp-cell-pm{white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}.jp-phase-badge{display:inline-block;padding:.15rem .5rem;border-radius:4px;background:var(--bg-muted, #f3f4f6);font-size:.72rem;font-weight:700;letter-spacing:.03em;white-space:nowrap}.jp-pct-bar{height:6px;width:64px;background:var(--bg-muted, #e5e7eb);border-radius:3px;overflow:hidden;margin-bottom:2px}.jp-pct-fill{height:100%;border-radius:3px}.jp-pct-text{font-size:.72rem;color:var(--text-secondary, #6b7280)}.jp-cell-bench{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.78rem}.jp-status-pill{display:inline-block;padding:.2rem .55rem;border-radius:20px;font-size:.72rem;font-weight:700;border:1px solid;white-space:nowrap;letter-spacing:.02em}.jp-empty{padding:2rem;text-align:center;color:var(--text-secondary, #6b7280);font-style:italic}@media (max-width: 768px){.jp-page{padding:0 .75rem 2rem}.jp-table th:nth-child(n+4),.jp-row td:nth-child(n+4){display:none}.jp-summary-strip{gap:.5rem}.jp-card{flex:1 1 80px;padding:.75rem .5rem}.jp-card-count{font-size:1.5rem}}.display-units-page{padding:24px;max-width:1400px;margin:0 auto;color:#f1f5f9}.display-units-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.display-units-header h1{font-size:22px;font-weight:700;color:#f1f5f9;margin:0}.display-units-summary{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.status-pill{font-size:12px;padding:3px 10px;border-radius:12px;font-weight:500;text-transform:capitalize}.status-active{background:#16a34a22;color:#16a34a}.status-offline{background:#d9770622;color:#d97706}.status-error{background:#dc262622;color:#dc2626}.status-unassigned{background:#9ca3af22;color:#9ca3af}.status-decommissioned{background:#6b728022;color:#6b7280}.display-units-filters{display:flex;gap:10px;margin-bottom:20px}.display-units-filters input,.display-units-filters select{background:#1e293b;border:1px solid #334155;color:#f1f5f9;border-radius:6px;padding:7px 12px;font-size:13px}.search-input{flex:1;max-width:320px}.display-units-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.btn-secondary{display:flex;align-items:center;gap:6px;background:#334155;color:#f1f5f9;border:none;border-radius:6px;padding:7px 14px;font-size:13px;cursor:pointer}.btn-secondary:hover{background:#475569}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-state,.empty-state{color:#94a3b8;padding:32px;text-align:center}.error-state{color:#dc2626;padding:16px}.bulk-msg{background:#1e293b;border:1px solid #334155;padding:10px 14px;border-radius:6px;margin-bottom:12px;font-size:13px}.display-units-section{background:#1e293b;border:1px solid #334155;border-radius:10px;padding:20px 22px}.display-units-section h2{font-size:16px;font-weight:700;color:#f1f5f9;margin:0 0 16px}.page-type-config-table{width:100%;border-collapse:collapse;font-size:13px}.page-type-config-table th{text-align:left;color:#94a3b8;font-weight:600;padding:8px 12px;border-bottom:1px solid #334155}.page-type-config-table td{color:#f1f5f9;padding:10px 12px;border-bottom:1px solid #334155;vertical-align:middle}.page-type-config-table tr:last-child td{border-bottom:none}.page-type-config-table input[type=number]{background:#0f172a;border:1px solid #334155;color:#f1f5f9;border-radius:6px;padding:5px 8px;font-size:13px}:root{font-family:Outfit,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.font-mono{font-family:JetBrains Mono,Courier New,monospace}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;padding:0}body{min-width:320px;min-height:100vh;overflow-x:hidden;background:var(--color-background, #f5f7fa);color:var(--text-primary, #1a1a1a)}body[data-theme=blueprint]{background-image:linear-gradient(rgba(26,45,74,.4) 1px,transparent 1px),linear-gradient(90deg,rgba(26,45,74,.4) 1px,transparent 1px);background-size:32px 32px;background-color:var(--color-background);font-family:Outfit,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;letter-spacing:.01em}[data-theme=blueprint] h1,[data-theme=blueprint] h2,[data-theme=blueprint] h3,[data-theme=blueprint] h4,[data-theme=blueprint] h5,[data-theme=blueprint] h6{font-family:Outfit,sans-serif;font-weight:700;letter-spacing:-.01em}[data-theme=blueprint] code,[data-theme=blueprint] pre,[data-theme=blueprint] .font-mono,[data-theme=blueprint] .monospace{font-family:JetBrains Mono,Courier New,monospace;font-weight:500}[data-theme=blueprint] label,[data-theme=blueprint] .label{font-weight:600;letter-spacing:.05em}[data-theme=blueprint] input,[data-theme=blueprint] select,[data-theme=blueprint] textarea{font-family:Outfit,sans-serif;font-weight:500;letter-spacing:.01em}[data-theme=blueprint] strong,[data-theme=blueprint] b{font-weight:700;letter-spacing:.01em}[data-theme=blueprint] button{background:var(--bg-secondary);border:1px solid var(--border-light);color:var(--text-primary);transition:all .15s;font-weight:600;letter-spacing:.03em;font-family:Outfit,sans-serif}[data-theme=blueprint] button:hover{border-color:var(--accent-color);color:var(--accent-color)}[data-theme=blueprint] button.primary,[data-theme=blueprint] button[type=submit]{background:var(--accent-color);border-color:var(--accent-color);color:#080d18;font-weight:700}[data-theme=blueprint] button.primary:hover,[data-theme=blueprint] button[type=submit]:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}:root[data-theme=light]{--color-primary: #1976d2;--color-primary-light: #42a5f5;--color-primary-dark: #1565c0;--color-primary-contrast: #ffffff;--color-secondary: #dc004e;--color-secondary-light: #e33371;--color-secondary-dark: #9a0036;--color-secondary-contrast: #ffffff;--color-background: #ffffff;--color-background-paper: #f5f5f5;--color-background-default: #fafafa;--color-text-primary: rgba(0, 0, 0, .87);--color-text-secondary: rgba(0, 0, 0, .6);--color-text-disabled: rgba(0, 0, 0, .38);--color-border: rgba(0, 0, 0, .12);--color-divider: rgba(0, 0, 0, .12);--color-success: #4caf50;--color-success-light: #81c784;--color-success-dark: #388e3c;--color-warning: #ff9800;--color-warning-light: #ffb74d;--color-warning-dark: #f57c00;--color-error: #f44336;--color-error-light: #e57373;--color-error-dark: #d32f2f;--color-info: #2196f3;--color-info-light: #64b5f6;--color-info-dark: #1976d2;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24);--shadow-md: 0 3px 6px rgba(0, 0, 0, .15), 0 2px 4px rgba(0, 0, 0, .12);--shadow-lg: 0 10px 20px rgba(0, 0, 0, .15), 0 3px 6px rgba(0, 0, 0, .1);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-mono: "Courier New", Courier, monospace}[data-theme=light]{background-color:var(--color-background);color:var(--color-text-primary)}[data-theme=light] .card{background-color:var(--color-background-paper);box-shadow:var(--shadow-sm)}[data-theme=light] input,[data-theme=light] textarea,[data-theme=light] select{background-color:var(--color-background);border:1px solid var(--color-border);color:var(--color-text-primary)}[data-theme=light] button:not([class]){background-color:var(--color-primary);color:var(--color-primary-contrast)}[data-theme=light] button:not([class]):hover{background-color:var(--color-primary-dark)}[data-theme=light] .navbar{background-color:var(--color-primary);color:var(--color-primary-contrast);box-shadow:var(--shadow-md)}[data-theme=light] .sidebar{background-color:var(--color-background-paper);border-right:1px solid var(--color-border)}:root[data-theme=dark]{--color-primary: #90caf9;--color-primary-light: #e3f2fd;--color-primary-dark: #42a5f5;--color-primary-contrast: #000000;--color-secondary: #f48fb1;--color-secondary-light: #f8bbd0;--color-secondary-dark: #ec407a;--color-secondary-contrast: #000000;--color-background: #121212;--color-background-paper: #1e1e1e;--color-background-default: #181818;--color-text-primary: rgba(255, 255, 255, .87);--color-text-secondary: rgba(255, 255, 255, .6);--color-text-disabled: rgba(255, 255, 255, .38);--color-border: rgba(255, 255, 255, .12);--color-divider: rgba(255, 255, 255, .12);--color-success: #66bb6a;--color-success-light: #81c784;--color-success-dark: #4caf50;--color-warning: #ffa726;--color-warning-light: #ffb74d;--color-warning-dark: #ff9800;--color-error: #ef5350;--color-error-light: #e57373;--color-error-dark: #f44336;--color-info: #29b6f6;--color-info-light: #4fc3f7;--color-info-dark: #0288d1;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .24), 0 1px 2px rgba(0, 0, 0, .48);--shadow-md: 0 3px 6px rgba(0, 0, 0, .3), 0 2px 4px rgba(0, 0, 0, .24);--shadow-lg: 0 10px 20px rgba(0, 0, 0, .3), 0 3px 6px rgba(0, 0, 0, .2);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-mono: "Courier New", Courier, monospace}[data-theme=dark]{background-color:var(--color-background);color:var(--color-text-primary)}[data-theme=dark] .card{background-color:var(--color-background-paper);box-shadow:var(--shadow-sm)}[data-theme=dark] input,[data-theme=dark] textarea,[data-theme=dark] select{background-color:var(--color-background-paper);border:1px solid var(--color-border);color:var(--color-text-primary)}[data-theme=dark] button:not([class]){background-color:var(--color-primary);color:var(--color-primary-contrast)}[data-theme=dark] button:not([class]):hover{background-color:var(--color-primary-light)}[data-theme=dark] .navbar{background-color:var(--color-background-paper);color:var(--color-text-primary);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-md)}[data-theme=dark] .sidebar{background-color:var(--color-background-paper);border-right:1px solid var(--color-border)}[data-theme=dark] .btn-secondary{background-color:#334155;color:#f1f5f9;border:1px solid #475569}[data-theme=dark] .btn-secondary:hover:not(:disabled){background-color:#475569;color:#f1f5f9}
