.route-guard-loading{display:flex;justify-content:center;align-items:center;height:100vh;color:var(--muted)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);overflow:hidden;margin:0;padding:0}.app-container{display:grid;grid-template-areas:"header header" "sidebar main" "footer footer";grid-template-rows:64px 1fr 32px;grid-template-columns:240px 1fr;height:100vh;width:100vw;position:fixed;top:0;left:0;overflow:hidden}.app-container.sidebar-collapsed{grid-template-columns:80px 1fr}.app-header{grid-area:header;background:var(--panel);display:flex;align-items:center;justify-content:space-between;padding:0;border-bottom:1px solid var(--border-light)}.logo-area{width:240px;height:100%;display:flex;align-items:center;padding:0 16px;background:var(--panel);border-right:1px solid var(--border-light);gap:8px}.app-container.sidebar-collapsed .logo-area{width:80px;justify-content:center;padding:0 8px}.app-logo{display:flex;align-items:center;gap:8px}.app-container.sidebar-collapsed .app-logo{gap:0}.logo-icon{width:48px;height:48px;object-fit:contain;color:var(--text)!important;stroke:var(--text)!important;fill:none!important}.logo-text{font-size:20px;font-weight:700;color:var(--text);letter-spacing:.5px}.app-container.sidebar-collapsed .logo-text{display:none}.header-actions{display:flex;align-items:center;gap:8px;padding:0 16px}.header-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;text-decoration:none;transition:background .2s ease}.header-icon:hover{background:var(--panel-hover)}.sidebar-toggle-button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer;transition:background .2s ease,color .2s ease}.sidebar-toggle-button svg{width:20px;height:20px}.sidebar-toggle-button:hover{background:var(--panel-hover);color:var(--text)}.app-sidebar{grid-area:sidebar;background:var(--bg-secondary);border-right:1px solid var(--border-light);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--muted) transparent;transition:width .2s ease}.app-sidebar.collapsed{width:80px}.app-sidebar::-webkit-scrollbar{width:6px}.app-sidebar::-webkit-scrollbar-thumb{background:var(--muted);border-radius:3px}.sidebar-search{padding:12px;border-bottom:1px solid var(--border-light);background:var(--bg-secondary);position:sticky;top:0;z-index:10}.search-input-wrapper{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:12px;width:16px;height:16px;color:var(--muted);pointer-events:none}.search-input{width:100%;padding:8px 36px;background:var(--panel);border:1px solid var(--border-light);border-radius:6px;color:var(--text);font-size:13px;outline:none;transition:all .2s ease}.search-input:focus{border-color:var(--gold);background:var(--bg)}.search-input::placeholder{color:var(--muted)}.search-clear{position:absolute;right:8px;width:20px;height:20px;padding:2px;background:transparent;border:none;border-radius:4px;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.search-clear:hover{background:var(--panel-hover);color:var(--text)}.search-clear svg{width:16px;height:16px}.sidebar-nav{padding:8px}.nav-item{display:flex;align-items:center;gap:12px;padding:12px 16px;margin:2px 0;border-radius:8px;text-decoration:none;color:var(--muted);transition:all .2s ease;cursor:pointer}.app-container.sidebar-collapsed .nav-item{justify-content:center;gap:0;padding:12px}.nav-item:hover{background:var(--panel-hover);color:var(--text)}.nav-item.active{background:var(--gold);color:var(--bg)}.nav-icon{width:20px;height:20px;flex-shrink:0}.nav-text{font-size:15px;font-weight:500}.app-container.sidebar-collapsed .nav-text{display:none}.nav-section{margin-bottom:16px}.app-container.sidebar-collapsed .nav-section{margin-bottom:8px}.nav-section-header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:transparent;border:none;cursor:pointer;color:var(--muted);font-size:15px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.nav-section-title{pointer-events:none}.app-container.sidebar-collapsed .nav-section-title{display:none}.app-container.sidebar-collapsed .nav-section-header{justify-content:center;padding:8px 4px}.app-container.sidebar-collapsed .nav-section-header .nav-icon{margin-right:0}.app-container.sidebar-collapsed .nav-section-icon{display:none}.nav-section-header:hover{color:var(--text)}.nav-section-icon{width:16px;height:16px;transition:transform .2s ease}.nav-section-icon.collapsed{transform:rotate(-90deg)}.nav-section-content{overflow:hidden;transition:max-height .25s ease,opacity .25s ease;max-height:480px;opacity:1}.nav-section-content.collapsed{max-height:0;opacity:0}.sidebar-collapse-button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer;transition:background .2s ease,color .2s ease;margin-left:auto}.sidebar-collapse-button svg{width:20px;height:20px}.sidebar-collapse-button:hover{background:var(--panel-hover);color:var(--text)}.app-main{grid-area:main;background:var(--bg);overflow-y:auto;padding:24px;scrollbar-width:thin;scrollbar-color:var(--muted) transparent;width:100%;max-width:100%}.app-main::-webkit-scrollbar{width:8px}.app-main::-webkit-scrollbar-thumb{background:var(--muted);border-radius:4px}.app-main h1{color:var(--text);font-size:24px;font-weight:600;margin-bottom:24px}.app-footer{grid-area:footer;background:var(--panel);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 16px;font-size:15px;color:var(--muted)}.footer-left{display:flex;align-items:center;gap:8px}.status-indicator{width:8px;height:8px;border-radius:50%;background:var(--gold);animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.status-text{font-weight:500;font-size:.9375rem}.footer-center{display:flex;gap:16px}.resource-info,.footer-right{color:var(--muted)}.app-version{font-weight:500;font-size:.9375rem}:root{--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1);--font-size-xs: .875rem;--font-size-sm: .9375rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100vw;height:100vh;overflow:hidden;display:block}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2}h1{font-size:var(--font-size-3xl);margin-bottom:var(--spacing-lg)}h2{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-md)}h3{font-size:var(--font-size-xl);margin-bottom:var(--spacing-md)}h4{font-size:var(--font-size-lg);margin-bottom:var(--spacing-sm)}h5,h6{font-size:var(--font-size-base);margin-bottom:var(--spacing-sm)}p{margin-bottom:var(--spacing-md)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.text-3xl{font-size:var(--font-size-3xl)}.font-light{font-weight:300}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.text-primary{color:var(--accent)}.text-gold{color:var(--gold)}.text-success{color:var(--success)}.text-danger{color:var(--danger)}.text-warning{color:var(--warning)}.text-info{color:var(--info)}.text-secondary{color:var(--secondary)}.text-muted{color:var(--muted)}.monospace{font-family:Monaco,Menlo,Ubuntu Mono,monospace}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-md)}.row{display:flex;align-items:center;gap:var(--spacing-sm)}.col{display:flex;flex-direction:column}.flex-1{flex:1}.flex-none{flex:none}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.m-0{margin:0}.m-1{margin:var(--spacing-xs)}.m-2{margin:var(--spacing-sm)}.m-4{margin:var(--spacing-md)}.m-6{margin:var(--spacing-lg)}.m-8{margin:var(--spacing-xl)}.mt-0{margin-top:0}.mt-1{margin-top:var(--spacing-xs)}.mt-2{margin-top:var(--spacing-sm)}.mt-4{margin-top:var(--spacing-md)}.mt-6{margin-top:var(--spacing-lg)}.mt-8{margin-top:var(--spacing-xl)}.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--spacing-xs)}.mb-2{margin-bottom:var(--spacing-sm)}.mb-4{margin-bottom:var(--spacing-md)}.mb-6{margin-bottom:var(--spacing-lg)}.mb-8{margin-bottom:var(--spacing-xl)}.ml-0{margin-left:0}.ml-1{margin-left:var(--spacing-xs)}.ml-2{margin-left:var(--spacing-sm)}.ml-4{margin-left:var(--spacing-md)}.mr-0{margin-right:0}.mr-1{margin-right:var(--spacing-xs)}.mr-2{margin-right:var(--spacing-sm)}.mr-4{margin-right:var(--spacing-md)}.p-0{padding:0}.p-1{padding:var(--spacing-xs)}.p-2{padding:var(--spacing-sm)}.p-4{padding:var(--spacing-md)}.p-6{padding:var(--spacing-lg)}.p-8{padding:var(--spacing-xl)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);font-weight:500;line-height:1.5;text-decoration:none;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel);color:var(--text);cursor:pointer;transition:all .2s ease}.btn:hover:not(:disabled){background:var(--border);border-color:var(--muted)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs)}.btn-lg{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-base)}.btn.primary{background:var(--accent-strong, var(--accent));border-color:var(--accent-strong, var(--accent));color:#fff}.btn.primary:hover:not(:disabled){background:var(--muted);border-color:var(--muted)}.btn.danger:hover:not(:disabled){background:var(--danger);color:#fff}.btn.success{background:var(--success);border-color:var(--success);color:#fff}.btn.warning{background:var(--warning);border-color:var(--warning);color:#fff}.btn.secondary{background:transparent;border-color:var(--muted);color:var(--muted)}.input,.select,.textarea{display:block;width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);line-height:1.5;color:var(--text);background:var(--input-bg)!important;border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color .2s ease}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #5a5a5a33}.input.error,.select.error,.textarea.error{border-color:var(--danger);box-shadow:0 0 0 2px #c443}.input-sm,.select-sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs)}.input-lg,.select-lg{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-base)}.textarea{resize:vertical;min-height:80px}.form-group{margin-bottom:var(--spacing-md)}.form-group label{display:block;font-size:var(--font-size-sm);font-weight:500;color:var(--text);background:transparent!important;margin-bottom:var(--spacing-xs)}.form-group small{display:block;font-size:var(--font-size-xs);color:var(--muted);margin-top:var(--spacing-xs)}.form-actions{display:flex;gap:var(--spacing-sm);align-items:center;margin-top:var(--spacing-lg)}.checkbox,.radio{display:flex;align-items:center;gap:var(--spacing-md);cursor:pointer;line-height:1.4}.checkbox input[type=checkbox],.radio input[type=radio]{width:auto;margin:0;margin-right:var(--spacing-md)}.checkbox span,.checkbox label,.radio span,.radio label{margin-left:0}.checkbox-group,.radio-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}.card{background:var(--panel);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm)}.card-header{margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-light)}.card-body{margin-bottom:var(--spacing-md)}.card-footer{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border)}.nav{display:flex;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);background:var(--panel);border-bottom:1px solid var(--border)}.nav a{color:var(--muted);text-decoration:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);transition:all .2s ease}.nav a:hover,.nav a.active{color:var(--text);background:var(--border)}.table{width:100%;border-collapse:collapse;border-spacing:0}.table th,.table td{padding:var(--spacing-md);text-align:left;border-bottom:1px solid var(--table-border);vertical-align:middle}.table th{background:var(--table-header);font-weight:600;font-size:var(--font-size-sm);color:var(--text);position:sticky;top:0;z-index:1}.table tbody tr{background:var(--table-row)}.table tbody tr:nth-child(2n){background:var(--table-row-alt)}.table tbody tr:hover{background:var(--panel-hover)}.table tbody tr.selected{background:#5a5a5a33}.table tbody tr.clickable{cursor:pointer}.table-container{overflow:auto;border-radius:var(--radius-md);border:1px solid var(--border)}.table-view{background:var(--panel);border-radius:var(--radius-lg);overflow:hidden}.table-toolbar{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border);background:var(--bg)}.toolbar-left,.toolbar-right{display:flex;align-items:center;gap:var(--spacing-sm)}.selection-info{font-size:var(--font-size-sm);color:var(--muted)}.table-pagination{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--border);background:var(--bg)}.pagination-left,.pagination-right{display:flex;align-items:center;gap:var(--spacing-sm)}.page-numbers{display:flex;gap:var(--spacing-xs)}.page-jump{display:flex;align-items:center;gap:var(--spacing-xs)}.th-content{display:flex;align-items:center;gap:var(--spacing-xs);-webkit-user-select:none;user-select:none}.hash-cell{display:flex;align-items:center;gap:var(--spacing-xs)}.badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs);font-weight:500;border-radius:var(--radius-full);border:1px solid var(--border);background:var(--panel)}.badge.success{background:#25a5751a;color:var(--success);border-color:#25a5754d}.badge.danger{background:#e255551a;color:var(--danger);border-color:#e255554d}.badge.warning{background:#f4a5361a;color:var(--warning);border-color:#f4a5364d}.badge.info{background:#2f6feb1a;color:var(--accent);border-color:#2f6feb4d}.alert{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.alert.success{background:#25a5751a;color:var(--success);border:1px solid rgba(37,165,117,.3)}.alert.danger{background:#e255551a;color:var(--danger);border:1px solid rgba(226,85,85,.3)}.alert.warning{background:#f4a5361a;color:var(--warning);border:1px solid rgba(244,165,54,.3)}.alert.info{background:#2f6feb1a;color:var(--accent);border:1px solid rgba(47,111,235,.3)}.modal-backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{width:520px;max-width:92vw;max-height:90vh;overflow:auto;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl)}.modal header{padding:var(--spacing-lg);border-bottom:1px solid var(--border);font-weight:600;font-size:var(--font-size-lg)}.modal main{padding:var(--spacing-lg)}.modal footer{display:flex;gap:var(--spacing-sm);justify-content:flex-end;padding:var(--spacing-lg);border-top:1px solid var(--border)}.settings-page{max-width:1200px;margin:0 auto;padding:var(--spacing-lg)}.settings-container{display:grid;grid-template-columns:240px 1fr;gap:var(--spacing-xl);margin-top:var(--spacing-lg)}.settings-tabs{display:flex;flex-direction:column;gap:var(--spacing-xs)}.settings-tabs.vertical .tab{justify-content:flex-start;width:100%}.settings-content{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--spacing-xl)}.settings-form{max-width:600px}.settings-section{margin-bottom:var(--spacing-xl)}.date-range-picker{position:relative}.date-range-trigger{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel);color:var(--text);cursor:pointer;transition:border-color .2s ease}.date-range-trigger:hover{border-color:var(--muted)}.date-range-dropdown{position:absolute;top:100%;left:0;z-index:100;min-width:320px;margin-top:var(--spacing-xs);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--spacing-md)}.quick-ranges{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border)}.quick-ranges button{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;transition:all .2s ease}.quick-ranges button:hover{background:var(--border)}.date-inputs{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.date-input-group label{display:block;font-size:var(--font-size-xs);font-weight:500;margin-bottom:var(--spacing-xs);color:var(--muted)}.date-range-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm)}.blockchain-explorer{padding:var(--spacing-lg)}.search-section{margin-bottom:var(--spacing-lg)}.search-bar{display:flex;gap:var(--spacing-sm);align-items:center}.tabs{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-lg);border-bottom:1px solid var(--border)}.tab{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background:transparent;border:none;border-bottom:2px solid transparent;color:var(--muted);cursor:pointer;transition:all .2s ease}.tab:hover{color:var(--text);background:#ffffff0d}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.tab-content{min-height:400px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-lg);margin-top:var(--spacing-lg)}.stat-card{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg)}.stat-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:#2f6feb1a;border-radius:var(--radius-lg);color:var(--accent)}.stat-label{font-size:var(--font-size-sm);color:var(--muted);margin-bottom:var(--spacing-xs)}.stat-value{font-size:var(--font-size-2xl);font-weight:600;color:var(--text)}.loading{display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl);color:var(--muted)}.table-loading{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--muted)}.table-error{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--danger)}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);color:var(--muted);text-align:center;border:2px dashed var(--border);border-radius:var(--radius-lg);background:#ffffff05}.link{color:var(--accent);text-decoration:none;transition:color .2s ease}.link:hover{color:var(--accent);text-decoration:underline}.w-full{width:100%}.h-full{height:100%}.event-flow-dashboard{padding:var(--spacing-lg)}.control-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--spacing-md)}.legend{display:flex;gap:var(--spacing-md);align-items:center}.legend-color{width:12px;height:12px;border-radius:50%}.export-controls{display:flex;gap:var(--spacing-xs)}.rules-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.rules-list{display:grid;gap:var(--spacing-md)}.rule-card{padding:var(--spacing-md)}.rule-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-sm)}.rule-meta{display:flex;align-items:center;gap:var(--spacing-sm)}.rule-content{margin-bottom:var(--spacing-sm)}.rule-steps .steps{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin-top:var(--spacing-xs)}.rule-constraints{font-size:var(--font-size-sm);color:var(--muted)}.rule-constraints div{margin-bottom:var(--spacing-xs)}.rule-actions{display:flex;gap:var(--spacing-xs);justify-content:flex-end}.gaps-summary{margin-bottom:var(--spacing-lg)}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md)}.summary-card{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md)}.summary-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--radius-lg)}.summary-icon.danger{background:#e255551a;color:var(--danger)}.summary-icon.warning{background:#f4a5361a;color:var(--warning)}.summary-icon.info{background:#2f6feb1a;color:var(--accent)}.summary-content{flex:1}.summary-value{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-xs)}.summary-label{font-size:var(--font-size-sm);color:var(--muted)}.gaps-list{display:grid;gap:var(--spacing-md)}.gap-item{border-left:4px solid var(--border)}.gap-item.high{border-left-color:var(--danger)}.gap-item.medium{border-left-color:var(--warning)}.gap-item.low{border-left-color:var(--info)}.gap-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.gap-title{display:flex;align-items:center;gap:var(--spacing-xs);font-weight:500}.gap-details{font-size:var(--font-size-sm);color:var(--muted)}.gap-details div{margin-bottom:var(--spacing-xs)}.timeline-controls{margin-bottom:var(--spacing-md)}.timeline-info{display:flex;gap:var(--spacing-lg)}.info-item{font-size:var(--font-size-sm)}.info-item strong{color:var(--text);margin-right:var(--spacing-xs)}.timeline-stats{padding:var(--spacing-md)}.timeline-stats .stats-grid{display:flex;flex-wrap:wrap;gap:var(--spacing-md)}.stat-item{display:flex;align-items:center;gap:var(--spacing-sm)}.stat-badge{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:var(--font-size-sm);font-weight:700}.stat-badge.success{background:var(--success);color:#fff}.stat-badge.failed{background:var(--danger);color:#fff}.stat-badge.timeout{background:var(--warning);color:#fff}.stat-badge.processing{background:var(--accent-strong, var(--accent));color:#fff}.stat-badge.queued{background:var(--secondary);color:#fff}.stat-info{display:flex;flex-direction:column}.stat-label{font-size:var(--font-size-xs);color:var(--muted)}.stat-value{font-size:var(--font-size-sm);font-weight:600}.esg-audit-report{padding:var(--spacing-lg)}.setup-view{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-lg)}.setup-form,.setup-info{padding:var(--spacing-lg)}.report-sections{display:flex;flex-direction:column;gap:var(--spacing-md)}.section-item{display:flex;gap:var(--spacing-sm);align-items:flex-start}.section-item strong{display:block;margin-bottom:var(--spacing-xs)}.section-item p{margin:0;font-size:var(--font-size-sm);color:var(--muted)}.metrics-overview{margin-bottom:var(--spacing-lg)}.metric-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-lg)}.building-safety-dashboard{padding:var(--spacing-lg)}.control-panel{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.control-panel .row{display:flex;align-items:center;gap:var(--spacing-md);flex-wrap:wrap}.event-type-filters{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.event-type-filters .checkbox{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);cursor:pointer}.alerts-banner{margin-bottom:var(--spacing-lg)}.building-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.status-card{padding:var(--spacing-lg);border-radius:var(--radius-md);background:#fff;box-shadow:var(--shadow-sm)}.status-header{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.status-header h3{margin:0;font-size:var(--font-size-lg);font-weight:600}.status-metrics{display:grid;gap:var(--spacing-md)}.metric-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid var(--border)}.metric-item .value{font-weight:600}.metric-item .value.normal{color:var(--success)}.metric-item .value.warning{color:var(--warning)}.metric-item .value.critical{color:var(--danger)}.risk-summary{margin-bottom:var(--spacing-xl)}.risk-level-indicator{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.risk-badge{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-weight:600;font-size:var(--font-size-sm)}.risk-badge.low{background:#25a5751a;color:var(--success)}.risk-badge.medium{background:#f4a5361a;color:var(--warning)}.risk-badge.high{background:#e255551a;color:var(--danger)}.risk-badge.critical{background:var(--danger);color:#fff}.confidence{font-size:var(--font-size-sm);color:var(--muted)}.risk-factors{margin-bottom:var(--spacing-lg)}.factor-item{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.factor-bar{width:200px;height:8px;background:var(--surface);border-radius:var(--radius-sm);overflow:hidden}.factor-fill{height:100%;background:var(--accent);transition:width .3s ease}.factor-fill.high{background:var(--danger)}.predicted-risks{margin-top:var(--spacing-lg)}.predicted-risks h4{margin-bottom:var(--spacing-md)}.predicted-risks ul{list-style:none;padding:0;margin:0}.risk-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);margin-bottom:var(--spacing-xs);background:#e255550d;border-radius:var(--radius-sm);color:var(--danger)}.graph-container{min-height:600px;display:flex;align-items:center;justify-content:center}.legend{margin-bottom:var(--spacing-md)}.legend h4{margin-bottom:var(--spacing-sm)}.legend-items{display:flex;flex-wrap:wrap;gap:var(--spacing-md)}.legend-item{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm)}.legend-color{width:16px;height:16px;border-radius:50%}.analysis-summary{margin-bottom:var(--spacing-lg)}.analysis-details{display:grid;gap:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.detail-section h4{margin-bottom:var(--spacing-md);font-size:var(--font-size-md)}.detail-section ul{margin-top:var(--spacing-sm)}.recommendations ul{list-style:none;padding:0}.recommendation-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);margin-bottom:var(--spacing-xs);background:#25a5750d;border-radius:var(--radius-sm);color:var(--success)}.correlation-matrix{margin-top:var(--spacing-lg)}.matrix-placeholder{text-align:center;padding:var(--spacing-xl);color:var(--muted)}.rules-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:var(--spacing-lg)}.rule-card{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--spacing-lg);background:#fff}.rule-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-md)}.rule-info{flex:1}.rule-info h3{margin:0 0 var(--spacing-xs) 0;font-size:var(--font-size-lg)}.rule-type{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase}.rule-type.safety{background:#25a5751a;color:var(--success)}.rule-type.security{background:#e255551a;color:var(--danger)}.rule-type.operational{background:#2f6feb1a;color:var(--accent)}.rule-type.environmental{background:#f4a5361a;color:var(--warning)}.rule-controls{display:flex;gap:var(--spacing-xs);flex-shrink:0}.rule-description{color:var(--muted);margin-bottom:var(--spacing-lg)}.rule-conditions,.rule-actions{margin-bottom:var(--spacing-md)}.rule-conditions h4,.rule-actions h4{margin-bottom:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--muted);text-transform:uppercase}.condition-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.condition-tag{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:var(--surface);border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:var(--text-secondary)}.action-summary{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.alert-level{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600}.alert-level.info{background:#2f6feb1a;color:var(--accent)}.alert-level.warning{background:#f4a5361a;color:var(--warning)}.alert-level.critical{background:#e255551a;color:var(--danger)}.notification-count,.auto-actions{font-size:var(--font-size-xs);color:var(--muted)}.rule-status{display:flex;justify-content:flex-end}.status-indicator{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600}.status-indicator.active{background:#25a5751a;color:var(--success)}.status-indicator.inactive{background:#8494a61a;color:var(--muted)}.alerts-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.stat-card{text-align:center;padding:var(--spacing-lg);border-radius:var(--radius-md);background:var(--panel);box-shadow:var(--shadow-sm)}.stat-card.critical{border-left:4px solid var(--danger)}.stat-card.warning{border-left:4px solid var(--warning)}.stat-card.info{border-left:4px solid var(--accent)}.stat-number{font-size:var(--font-size-xl);font-weight:700;margin-bottom:var(--spacing-xs)}.alerts-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.alert-item{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--spacing-lg);background:#fff}.alert-item.critical{border-left:4px solid var(--danger);background:#e2555505}.alert-item.warning{border-left:4px solid var(--warning);background:#f4a53605}.alert-item.info{border-left:4px solid var(--accent);background:#2f6feb05}.alert-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-md)}.alert-icon{margin-right:var(--spacing-md)}.alert-title{font-weight:600;margin-bottom:var(--spacing-xs)}.alert-time{font-size:var(--font-size-sm);color:var(--muted)}.alert-actions{display:flex;gap:var(--spacing-xs);flex-shrink:0}.alert-content{margin-bottom:var(--spacing-md)}.related-factors{display:flex;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-md)}.factor-tag{padding:var(--spacing-xs) var(--spacing-sm);background:var(--surface);border-radius:var(--radius-sm);font-size:var(--font-size-xs)}.alert-media{margin-top:var(--spacing-md)}.video-link{display:inline-flex;align-items:center;gap:var(--spacing-xs);color:var(--accent);text-decoration:none}.video-link:hover{text-decoration:underline}.rule-form{max-height:80vh;overflow-y:auto}.form-section{margin-bottom:var(--spacing-xl)}.form-section h3{margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border);color:var(--text-secondary)}.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-md)}.form-group{grid-column:span 1}.form-group.col-span-2{grid-column:span 2}.form-group.col-span-3{grid-column:span 3}.form-group.col-span-4{grid-column:span 4}.form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-md);padding-top:var(--spacing-lg);border-top:1px solid var(--border)}.buildings-page{padding:var(--spacing-lg)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.stat-card{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);background:var(--panel);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.stat-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--radius-md);background:#2f6feb1a;color:var(--accent)}.stat-icon.active{background:#25a5751a;color:var(--success)}.stat-icon.warning{background:#f4a5361a;color:var(--warning)}.stat-icon.danger{background:#e255551a;color:var(--danger)}.stat-value{font-size:var(--font-size-xl);font-weight:700;margin-bottom:var(--spacing-xs)}.stat-label{font-size:var(--font-size-sm);color:var(--muted)}.search-controls{margin-bottom:var(--spacing-lg)}.filters-panel{margin-top:var(--spacing-md);padding:var(--spacing-lg);background:var(--surface);border-radius:var(--radius-md)}.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md)}.filter-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.filter-group label{font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary)}.building-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);background:var(--surface);color:var(--accent)}.sensors-summary,.staff-summary,.workflows-summary,.cctv-summary{display:flex;align-items:center;gap:var(--spacing-xs)}.alert-count{background:var(--danger);color:#fff;font-size:var(--font-size-xs);padding:2px 6px;border-radius:var(--radius-sm);font-weight:600}.overdue-count{color:var(--warning);font-size:var(--font-size-xs);font-weight:600}.attendance-rate{color:var(--muted);font-size:var(--font-size-xs)}.risk-indicator{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm)}.risk-indicator.low{background:#25a5751a;color:var(--success)}.risk-indicator.medium{background:#f4a5361a;color:var(--warning)}.risk-indicator.high{background:#e255551a;color:var(--danger)}.risk-indicator.critical{background:var(--danger);color:#fff}.risk-label{font-size:var(--font-size-sm);font-weight:600}.risk-label.low{color:var(--success)}.risk-label.medium{color:var(--warning)}.risk-label.high,.risk-label.critical{color:var(--danger)}.building-detail-page{padding:var(--spacing-lg)}.breadcrumb{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);font-size:var(--font-size-sm)}.breadcrumb-link{display:flex;align-items:center;gap:var(--spacing-xs);color:var(--accent);text-decoration:none}.breadcrumb-link:hover{text-decoration:underline}.breadcrumb-separator{color:var(--muted)}.building-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-lg)}.building-info{display:flex;gap:var(--spacing-md)}.building-meta{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--muted)}.building-type{padding:var(--spacing-xs) var(--spacing-sm);background:var(--surface);border-radius:var(--radius-sm);font-weight:500}.building-address{display:flex;align-items:center;gap:var(--spacing-xs)}.status-indicators{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.action-buttons{display:flex;gap:var(--spacing-sm)}.quick-status{margin-bottom:var(--spacing-xl)}.status-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.status-cards .status-card{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.status-icon.sensors{background:#2f6feb1a;color:var(--accent)}.status-icon.staff{background:#25a5751a;color:var(--success)}.status-icon.workflows{background:#f4a5361a;color:var(--warning)}.status-icon.cctv{background:#e255551a;color:var(--danger)}.status-value{font-size:var(--font-size-lg);font-weight:700;margin-bottom:var(--spacing-xs)}.status-value .overdue{color:var(--danger);font-size:var(--font-size-sm)}.recent-alerts{margin-top:var(--spacing-lg);padding:var(--spacing-lg);background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.recent-alerts h3{margin-bottom:var(--spacing-md)}.alerts-list{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.alert-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius-sm);border-left:3px solid transparent}.alert-item.critical{background:#e255550d;border-left-color:var(--danger)}.alert-item.warning{background:#f4a5360d;border-left-color:var(--warning)}.alert-item.info{background:#2f6feb0d;border-left-color:var(--accent)}.alert-content{flex:1}.alert-message{font-weight:500;margin-bottom:var(--spacing-xs)}.alert-time{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--muted)}.alert-status .resolved{color:var(--success);font-size:var(--font-size-sm);font-weight:500}.alert-status .pending{color:var(--warning);font-size:var(--font-size-sm);font-weight:500}.view-all-alerts{color:var(--accent);text-decoration:none;font-size:var(--font-size-sm);font-weight:500}.view-all-alerts:hover{text-decoration:underline}.overview-tab{padding:var(--spacing-lg)}.overview-controls{margin-bottom:var(--spacing-lg)}.overview-content{display:grid;gap:var(--spacing-xl)}.building-stats{padding:var(--spacing-lg);background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.building-stats h3{margin-bottom:var(--spacing-lg)}.building-stats .stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md)}.stat-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid var(--border)}.stat-item:last-child{border-bottom:none}.stat-item label{font-size:var(--font-size-sm);color:var(--muted)}.stat-item span{font-weight:600}.monitoring-summary{padding:var(--spacing-lg);background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.monitoring-summary h3{margin-bottom:var(--spacing-lg)}.monitoring-grid{display:grid;gap:var(--spacing-md)}.monitoring-item{padding:var(--spacing-md);border:1px solid var(--border);border-radius:var(--radius-md)}.monitoring-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.monitoring-header span:first-of-type{display:flex;align-items:center;gap:var(--spacing-xs);font-weight:500}.status.enabled{color:var(--success);font-size:var(--font-size-sm);font-weight:500}.status.disabled{color:var(--muted);font-size:var(--font-size-sm);font-weight:500}.monitoring-details{display:flex;gap:var(--spacing-md);font-size:var(--font-size-sm);color:var(--muted)}.history-section{padding:var(--spacing-lg);background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.history-section h3{margin-bottom:var(--spacing-lg)}.chart-placeholder{text-align:center;padding:var(--spacing-xl);color:var(--muted);border:2px dashed var(--border);border-radius:var(--radius-md)}.sensors-tab,.workflows-tab,.staff-tab,.cctv-tab{padding:var(--spacing-lg)}.sensors-header,.workflows-header,.staff-header,.cctv-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.sensors-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-lg)}.sensor-card{padding:var(--spacing-lg);background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.sensor-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-md)}.sensor-info{flex:1}.sensor-type{display:flex;align-items:center;gap:var(--spacing-xs);font-weight:600;margin-bottom:var(--spacing-xs)}.sensor-location{font-size:var(--font-size-sm);color:var(--muted)}.sensor-status{display:flex;align-items:center;gap:var(--spacing-xs)}.status-dot{width:8px;height:8px;border-radius:50%}.status-dot.online{background:var(--success)}.status-dot.offline{background:var(--muted)}.status-dot.error{background:var(--danger)}.status-text{font-size:.9375rem;font-weight:500}.status-text.online{color:var(--success)}.status-text.offline{color:var(--muted)}.status-text.error{color:var(--danger)}.sensor-data{margin-bottom:var(--spacing-md)}.data-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs) 0;font-size:var(--font-size-sm)}.data-label{color:var(--muted)}.data-value{font-weight:500}.sensor-actions{display:flex;gap:var(--spacing-xs);justify-content:flex-end}.workflows-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.workflow-item{padding:var(--spacing-lg);background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.workflow-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-md)}.workflow-info h4{margin-bottom:var(--spacing-xs)}.workflow-type{font-size:var(--font-size-sm);color:var(--muted)}.workflow-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.detail-item{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-sm)}.detail-item span:first-child{color:var(--muted)}.detail-item span:last-child{font-weight:500}.workflow-actions{display:flex;gap:var(--spacing-xs);justify-content:flex-end}.shifts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-lg)}.shift-card{padding:var(--spacing-lg);background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.shift-header{margin-bottom:var(--spacing-md)}.shift-header h4{margin-bottom:var(--spacing-xs)}.shift-time{font-size:var(--font-size-sm);color:var(--muted)}.shift-staffing{margin-bottom:var(--spacing-md)}.staffing-info{display:flex;flex-direction:column;gap:var(--spacing-xs);font-size:var(--font-size-sm)}.staffing-status.adequate{color:var(--success);font-weight:500}.staffing-status.insufficient{color:var(--danger);font-weight:500}.shift-actions{display:flex;gap:var(--spacing-xs);justify-content:flex-end}.cameras-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--spacing-lg)}.camera-card{padding:var(--spacing-lg);background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.camera-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-md)}.camera-info h4{margin-bottom:var(--spacing-xs)}.camera-position{font-size:var(--font-size-sm);color:var(--muted)}.camera-preview{margin-bottom:var(--spacing-md);height:120px;background:var(--surface);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--spacing-xs);color:var(--muted)}.video-placeholder{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);color:var(--accent)}.no-video{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);color:var(--muted)}.camera-details{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-md);font-size:var(--font-size-sm);color:var(--muted)}.camera-actions{display:flex;gap:var(--spacing-xs);justify-content:flex-end}.settings-view,.settings-tab{padding:var(--spacing-lg)}.settings-info{text-align:center;padding:var(--spacing-xl);color:var(--muted)}.settings-sections{display:flex;flex-direction:column;gap:var(--spacing-xl)}.settings-section{padding:var(--spacing-lg);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.settings-section h3{margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border)}.monitoring-toggles{display:flex;flex-direction:column;gap:var(--spacing-md)}.toggle{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer}.toggle input[type=checkbox]{margin:0}.settings-actions{display:flex;justify-content:flex-end;padding:var(--spacing-lg);border-top:1px solid var(--border);background:var(--surface);border-radius:0 0 var(--radius-md) var(--radius-md)}.monitoring-config{display:flex;flex-direction:column;gap:var(--spacing-lg)}.config-item{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--spacing-md)}.config-header{margin-bottom:var(--spacing-md)}.config-details{margin-left:var(--spacing-lg)}.sensor-types,.alert-types{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.checkbox.small{font-size:var(--font-size-sm)}.form-group.small{max-width:150px}.form-group.small input{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm)}.metric-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.metric-card.environmental{border-left:4px solid var(--success)}.metric-card.social{border-left:4px solid var(--accent)}.metric-card.governance{border-left:4px solid var(--muted)}.metric-card.blockchain{border-left:4px solid var(--gold)}.metric-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.metric-header h3{margin:0;color:var(--text)}.metric-items{display:flex;flex-direction:column;gap:var(--spacing-sm)}.metric-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs) 0;border-bottom:1px solid var(--border)}.metric-item:last-child{border-bottom:none}.compliance-summary{padding:var(--spacing-lg)}.compliance-items{display:flex;flex-direction:column;gap:var(--spacing-md)}.compliance-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background:#ffffff05;border-radius:var(--radius-md)}.status-icon.success{color:var(--success)}.status-icon.warning{color:var(--warning)}.status-icon.danger{color:var(--danger)}.history-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.history-item{padding:var(--spacing-lg)}.history-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-md)}.history-info h4{margin:0;margin-bottom:var(--spacing-xs)}.history-meta{font-size:var(--font-size-sm);color:var(--muted)}.history-details{font-size:var(--font-size-sm);color:var(--muted);margin-bottom:var(--spacing-md)}.history-details div{margin-bottom:var(--spacing-xs)}.history-actions{display:flex;gap:var(--spacing-xs)}@media (max-width: 768px){.settings-container{grid-template-columns:1fr;gap:var(--spacing-lg)}.stats-grid{grid-template-columns:1fr}.search-bar{flex-direction:column;align-items:stretch}.table-pagination{flex-direction:column;gap:var(--spacing-md)}}:root{--white: #ffffff;--black: #000000;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--gray-950: #030712;--blue-50: #eff6ff;--blue-100: #dbeafe;--blue-200: #bfdbfe;--blue-300: #93c5fd;--blue-400: #60a5fa;--blue-500: #3b82f6;--blue-600: #2563eb;--blue-700: #1d4ed8;--blue-800: #1e40af;--blue-900: #1e3a8a;--green-50: #f0fdf4;--green-100: #dcfce7;--green-200: #bbf7d0;--green-300: #86efac;--green-400: #4ade80;--green-500: #22c55e;--green-600: #16a34a;--green-700: #15803d;--green-800: #166534;--green-900: #14532d;--red-50: #fef2f2;--red-100: #fee2e2;--red-200: #fecaca;--red-300: #fca5a5;--red-400: #f87171;--red-500: #ef4444;--red-600: #dc2626;--red-700: #b91c1c;--red-800: #991b1b;--red-900: #7f1d1d;--yellow-50: #fefce8;--yellow-100: #fef3c7;--yellow-200: #fde68a;--yellow-300: #fcd34d;--yellow-400: #fbbf24;--yellow-500: #f59e0b;--yellow-600: #d97706;--yellow-700: #b45309;--yellow-800: #92400e;--yellow-900: #78350f}.theme-light{--bg: var(--white);--panel: var(--gray-50);--border: var(--gray-200);--text: var(--gray-900);--muted: var(--gray-500);--accent: var(--blue-600);--accent-hover: var(--blue-700);--accent-alpha-10: rgba(37, 99, 235, .1);--accent-alpha-20: rgba(37, 99, 235, .2);--primary: var(--blue-600);--primary-hover: var(--blue-700);--primary-alpha-10: rgba(37, 99, 235, .1);--primary-alpha-20: rgba(37, 99, 235, .2);--success: var(--green-600);--success-hover: var(--green-700);--success-alpha-10: rgba(22, 163, 74, .1);--success-alpha-20: rgba(22, 163, 74, .2);--warning: var(--yellow-600);--warning-hover: var(--yellow-700);--warning-alpha-10: rgba(217, 119, 6, .1);--warning-alpha-20: rgba(217, 119, 6, .2);--danger: var(--red-600);--danger-hover: var(--red-700);--danger-alpha-10: rgba(220, 38, 38, .1);--danger-alpha-20: rgba(220, 38, 38, .2);--surface-1: var(--white);--surface-2: var(--gray-50);--surface-3: var(--gray-100);--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--gradient-primary: linear-gradient(135deg, var(--blue-500), var(--blue-700));--gradient-success: linear-gradient(135deg, var(--green-500), var(--green-700));--gradient-warning: linear-gradient(135deg, var(--yellow-500), var(--yellow-700));--gradient-danger: linear-gradient(135deg, var(--red-500), var(--red-700))}.theme-dark{--bg: var(--gray-950);--panel: var(--gray-900);--border: var(--gray-800);--text: var(--gray-100);--muted: var(--gray-400);--accent: var(--blue-500);--accent-hover: var(--blue-400);--accent-alpha-10: rgba(59, 130, 246, .1);--accent-alpha-20: rgba(59, 130, 246, .2);--primary: var(--blue-500);--primary-hover: var(--blue-400);--primary-alpha-10: rgba(59, 130, 246, .1);--primary-alpha-20: rgba(59, 130, 246, .2);--success: var(--green-500);--success-hover: var(--green-400);--success-alpha-10: rgba(34, 197, 94, .1);--success-alpha-20: rgba(34, 197, 94, .2);--warning: var(--yellow-500);--warning-hover: var(--yellow-400);--warning-alpha-10: rgba(245, 158, 11, .1);--warning-alpha-20: rgba(245, 158, 11, .2);--danger: var(--red-500);--danger-hover: var(--red-400);--danger-alpha-10: rgba(239, 68, 68, .1);--danger-alpha-20: rgba(239, 68, 68, .2);--surface-1: var(--gray-900);--surface-2: var(--gray-800);--surface-3: var(--gray-700);--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .3);--shadow: 0 1px 3px 0 rgb(0 0 0 / .4), 0 1px 2px -1px rgb(0 0 0 / .4);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .4), 0 2px 4px -2px rgb(0 0 0 / .4);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .4), 0 4px 6px -4px rgb(0 0 0 / .4);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .4), 0 8px 10px -6px rgb(0 0 0 / .4);--gradient-primary: linear-gradient(135deg, var(--blue-600), var(--blue-400));--gradient-success: linear-gradient(135deg, var(--green-600), var(--green-400));--gradient-warning: linear-gradient(135deg, var(--yellow-600), var(--yellow-400));--gradient-danger: linear-gradient(135deg, var(--red-600), var(--red-400))}*{transition:background-color .3s ease,border-color .3s ease,color .3s ease,box-shadow .3s ease}.no-theme-transition,.no-theme-transition *{transition:none!important}.theme-dark img{filter:brightness(.9)}.theme-dark img.no-dark-filter{filter:none}.theme-dark pre,.theme-dark code{background-color:var(--gray-800);border-color:var(--gray-700)}.theme-dark ::-webkit-scrollbar{width:8px;height:8px}.theme-dark ::-webkit-scrollbar-track{background:var(--gray-900)}.theme-dark ::-webkit-scrollbar-thumb{background:var(--gray-700);border-radius:4px}.theme-dark ::-webkit-scrollbar-thumb:hover{background:var(--gray-600)}.theme-dark ::selection{background-color:var(--accent-alpha-20);color:var(--text)}@media (prefers-contrast: high){:root{--border: var(--gray-400)}.theme-dark{--border: var(--gray-600);--text: var(--white);--muted: var(--gray-300)}}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}@media print{:root{--bg: var(--white);--panel: var(--white);--text: var(--black);--border: var(--gray-300);--muted: var(--gray-600)}*{box-shadow:none!important;transition:none!important}}:root{--bg: #ffffff;--panel: #f8fafc;--border: #cbd2da;--text: #000000;--muted: #4b5563;--accent: #2563eb;--danger: #ef4444;--success: #10b981;--warning: #b45309;--info: #0e7490;--gold: #6d28d9;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1);--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text)}a{color:var(--text);text-decoration:none}.nav{display:flex;gap:12px;padding:12px 16px;background:var(--panel);border-bottom:1px solid var(--border)}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px}.row{display:flex;gap:12px;align-items:center}.btn{background:var(--panel);color:var(--text);border:1px solid var(--border);padding:8px 12px;border-radius:8px;cursor:pointer}.btn:hover{background:var(--border)}.btn.primary{background:var(--accent-strong, var(--accent));border-color:var(--accent-strong, var(--accent));color:#fff!important}.btn.primary *,.btn.primary svg,.btn.primary path{color:#fff!important;stroke:#fff!important;fill:#fff!important}.btn.danger{background:transparent;border-color:var(--danger);color:var(--danger)}input.input,.input,select.select,.select{background:var(--panel)!important;color:var(--text)!important;border:1px solid var(--border)!important;border-radius:8px;padding:8px 10px}.input.error,.select.error{border-color:var(--danger);box-shadow:0 0 0 2px #e2555526}label{background:transparent!important;color:var(--text)!important}.logo-icon{color:var(--text)!important;stroke:var(--text)!important}.table{width:100%;border-collapse:collapse}.table th,.table td{border-bottom:1px solid var(--border);padding:10px;text-align:left}.muted{color:var(--muted)}.badge{padding:2px 8px;border-radius:999px;font-size:15px;border:1px solid var(--border)}.badge.success{background:#25a5751a;color:var(--success);border-color:#25a57566}.badge.danger{background:#e255551a;color:var(--danger);border-color:#e2555566}.badge.info{background:#2f6feb1a;color:var(--accent);border-color:#2f6feb66}.notif-bell{position:relative;cursor:pointer}.notif-dot{position:absolute;top:-2px;right:-2px;background:var(--danger);color:#fff;font-size:13px;line-height:14px;min-width:14px;height:14px;padding:0 4px;border-radius:999px;text-align:center}.notif-panel{position:absolute;top:44px;right:16px;width:360px;max-height:60vh;overflow:auto;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 30px #00000040;z-index:50}.notif-item{padding:10px 12px;border-bottom:1px solid var(--border);display:grid;gap:4px}.notif-item.unread{background:#2f6feb0f}.notif-title{font-weight:600}.notif-time{font-size:15px;color:var(--muted)}.modal-backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center}.modal{width:520px;max-width:92%;background:var(--panel);border:1px solid var(--border);border-radius:12px;overflow:hidden}.modal header{font-weight:600}.modal footer{display:flex;gap:8px;justify-content:flex-end}.modal-wide{width:960px;max-width:94vw}.modal-extra-wide{width:1000px;max-width:95vw}.error{color:var(--danger);font-size:15px}.empty{color:var(--muted);padding:24px;text-align:center;border:1px dashed var(--border);border-radius:8px}.skeleton{background:var(--border);border-radius:var(--radius-sm);animation:skeleton-pulse 1.5s ease-in-out infinite alternate}@keyframes skeleton-pulse{0%{opacity:1}to{opacity:.6}}.text-level-1{font-size:2rem;font-weight:700;line-height:1.2;letter-spacing:normal;color:var(--text);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang TC,Microsoft JhengHei,Noto Sans TC,Hiragino Sans TC,PingFang SC,sans-serif}.text-level-2{font-size:1.5rem;font-weight:600;line-height:1.3;letter-spacing:normal;color:var(--text);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang TC,Microsoft JhengHei,Noto Sans TC,Hiragino Sans TC,PingFang SC,sans-serif}.text-level-3{font-size:1.125rem;font-weight:500;line-height:1.4;letter-spacing:normal;color:var(--text);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang TC,Microsoft JhengHei,Noto Sans TC,Hiragino Sans TC,PingFang SC,sans-serif}.text-level-4{font-size:1rem;font-weight:400;line-height:1.7;letter-spacing:.01em;color:var(--text);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang TC,Microsoft JhengHei,Noto Sans TC,Hiragino Sans TC,PingFang SC,sans-serif}.text-level-5{font-size:.9375rem;font-weight:400;line-height:1.7;letter-spacing:.01em;color:var(--muted);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang TC,Microsoft JhengHei,Noto Sans TC,Hiragino Sans TC,PingFang SC,sans-serif}.text-level-1.accent,.text-level-2.accent,.text-level-3.accent,.text-level-4.accent,.text-level-5.accent{color:var(--accent)}.text-level-1.success,.text-level-2.success,.text-level-3.success,.text-level-4.success,.text-level-5.success{color:var(--success)}.text-level-1.warning,.text-level-2.warning,.text-level-3.warning,.text-level-4.warning,.text-level-5.warning{color:var(--warning)}.text-level-1.danger,.text-level-2.danger,.text-level-3.danger,.text-level-4.danger,.text-level-5.danger{color:var(--danger)}.text-level-1.muted,.text-level-2.muted,.text-level-3.muted,.text-level-4.muted,.text-level-5.muted{color:var(--muted)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-nowrap{white-space:nowrap}.text-wrap{white-space:normal}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-chinese{font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,Source Han Sans SC,Noto Sans CJK SC,sans-serif}.text-mono,.text-number{font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Courier New,monospace;font-variant-numeric:tabular-nums slashed-zero}.text-optimized{font-feature-settings:"kern" 1,"liga" 1,"calt" 1;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (max-width: 768px){.text-level-1{font-size:1.75rem;line-height:1.25}.text-level-2{font-size:1.25rem;line-height:1.3}.text-level-3{font-size:1rem;line-height:1.4}.text-level-4{font-size:1rem;line-height:1.7}.text-level-5{font-size:.875rem;line-height:1.7}}.icon-level-1{width:2rem;height:2rem;color:var(--text);flex-shrink:0}.icon-level-2{width:1.5rem;height:1.5rem;color:var(--text);flex-shrink:0}.icon-level-3{width:1.125rem;height:1.125rem;color:var(--text);flex-shrink:0}.icon-level-4{width:1.25rem;height:1.25rem;color:var(--text);flex-shrink:0}.icon-level-5{width:1rem;height:1rem;color:var(--text);flex-shrink:0}.icon-level-1.accent,.icon-level-2.accent,.icon-level-3.accent,.icon-level-4.accent,.icon-level-5.accent{color:var(--accent)}.icon-level-1.success,.icon-level-2.success,.icon-level-3.success,.icon-level-4.success,.icon-level-5.success{color:var(--success)}.icon-level-1.warning,.icon-level-2.warning,.icon-level-3.warning,.icon-level-4.warning,.icon-level-5.warning{color:var(--warning)}.icon-level-1.danger,.icon-level-2.danger,.icon-level-3.danger,.icon-level-4.danger,.icon-level-5.danger{color:var(--danger)}.icon-level-1.muted,.icon-level-2.muted,.icon-level-3.muted,.icon-level-4.muted,.icon-level-5.muted{color:var(--muted)}.btn-level-1{padding:1rem 2rem;font-size:1.125rem;font-weight:600;line-height:1.2;border-radius:.75rem;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.75rem;min-height:3rem;transition:all .2s ease}.btn-level-2{padding:.75rem 1.5rem;font-size:1rem;font-weight:600;line-height:1.25;border-radius:.5rem;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.5rem;transition:all .2s ease}.btn-level-1,.btn-level-2,.btn-level-3,.btn-level-4,.btn-level-5,.btn{display:inline-flex;align-items:center;justify-content:center;gap:.375rem}.btn-level-3{padding:.625rem 1.25rem;font-size:.9375rem;font-weight:500;line-height:1.3;border-radius:.375rem;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.25rem;transition:all .2s ease}.btn-level-4{padding:.5rem 1rem;font-size:.9375rem;font-weight:500;line-height:1.4;border-radius:.25rem;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.25rem;min-height:36px;transition:all .2s ease}.btn-level-5{padding:.5rem .875rem;font-size:.9375rem;font-weight:400;line-height:1.5;border-radius:.25rem;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.25rem;min-height:36px;transition:all .2s ease}.btn-level-1.primary,.btn-level-2.primary,.btn-level-3.primary,.btn-level-4.primary,.btn-level-5.primary{background:var(--accent-strong, var(--accent));color:#fff!important}.btn-level-1.primary:hover,.btn-level-2.primary:hover,.btn-level-3.primary:hover,.btn-level-4.primary:hover,.btn-level-5.primary:hover{background:var(--accent-hover);color:#fff!important;transform:translateY(-1px)}.btn-level-1.secondary,.btn-level-2.secondary,.btn-level-3.secondary,.btn-level-4.secondary,.btn-level-5.secondary{background:var(--panel);color:var(--text)!important;border:1px solid var(--border)}.btn-level-1.secondary:hover,.btn-level-2.secondary:hover,.btn-level-3.secondary:hover,.btn-level-4.secondary:hover,.btn-level-5.secondary:hover{background:var(--accent-strong, var(--accent));color:#fff!important;transform:translateY(-1px)}.btn-level-1.success,.btn-level-2.success,.btn-level-3.success,.btn-level-4.success,.btn-level-5.success{background:var(--success);color:#fff!important}.btn-level-1.success:hover,.btn-level-2.success:hover,.btn-level-3.success:hover,.btn-level-4.success:hover,.btn-level-5.success:hover{background:var(--success-hover);color:#fff!important;transform:translateY(-1px)}.btn-level-1.warning,.btn-level-2.warning,.btn-level-3.warning,.btn-level-4.warning,.btn-level-5.warning{background:var(--warning);color:#fff!important}.btn-level-1.warning:hover,.btn-level-2.warning:hover,.btn-level-3.warning:hover,.btn-level-4.warning:hover,.btn-level-5.warning:hover{background:var(--warning-hover);color:#fff!important;transform:translateY(-1px)}.btn-level-1.danger,.btn-level-2.danger,.btn-level-3.danger,.btn-level-4.danger,.btn-level-5.danger{background:var(--danger);color:#fff!important}.btn-level-1.danger:hover,.btn-level-2.danger:hover,.btn-level-3.danger:hover,.btn-level-4.danger:hover,.btn-level-5.danger:hover{background:var(--danger-hover);color:#fff!important;transform:translateY(-1px)}.btn-level-1.primary,.btn-level-2.primary,.btn-level-3.primary,.btn-level-4.primary,.btn-level-5.primary,.btn-level-1.success,.btn-level-2.success,.btn-level-3.success,.btn-level-4.success,.btn-level-5.success,.btn-level-1.warning,.btn-level-2.warning,.btn-level-3.warning,.btn-level-4.warning,.btn-level-5.warning,.btn-level-1.danger,.btn-level-2.danger,.btn-level-3.danger,.btn-level-4.danger,.btn-level-5.danger{color:#fff!important}.btn-level-1.primary *,.btn-level-2.primary *,.btn-level-3.primary *,.btn-level-4.primary *,.btn-level-5.primary *,.btn-level-1.success *,.btn-level-2.success *,.btn-level-3.success *,.btn-level-4.success *,.btn-level-5.success *,.btn-level-1.warning *,.btn-level-2.warning *,.btn-level-3.warning *,.btn-level-4.warning *,.btn-level-5.warning *,.btn-level-1.danger *,.btn-level-2.danger *,.btn-level-3.danger *,.btn-level-4.danger *,.btn-level-5.danger *{color:#fff!important;stroke:#fff!important;fill:#fff!important}.btn-level-1.ghost,.btn-level-2.ghost,.btn-level-3.ghost,.btn-level-4.ghost,.btn-level-5.ghost{background:transparent;color:var(--text)!important;border:1px solid var(--border)}.btn-level-1.ghost *,.btn-level-2.ghost *,.btn-level-3.ghost *,.btn-level-4.ghost *,.btn-level-5.ghost *{color:var(--text)!important;stroke:var(--text)!important;fill:var(--text)!important}.btn-level-1.ghost:hover,.btn-level-2.ghost:hover,.btn-level-3.ghost:hover,.btn-level-4.ghost:hover,.btn-level-5.ghost:hover{background:var(--panel);transform:translateY(-1px)}.btn-level-1.circle,.btn-level-2.circle,.btn-level-3.circle,.btn-level-4.circle,.btn-level-5.circle{border-radius:50%;aspect-ratio:1;padding:0}.btn-level-1.circle{width:3rem;height:3rem}.btn-level-2.circle{width:2.75rem;height:2.75rem}.btn-level-3.circle,.btn-level-4.circle,.btn-level-5.circle{width:2.5rem;height:2.5rem}.btn-level-1:disabled,.btn-level-2:disabled,.btn-level-3:disabled,.btn-level-4:disabled,.btn-level-5:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn-level-1.loading,.btn-level-2.loading,.btn-level-3.loading,.btn-level-4.loading,.btn-level-5.loading{pointer-events:none;opacity:.7}@media (max-width: 768px){.btn-level-1{padding:.875rem 1.5rem;font-size:1rem}.btn-level-2{padding:.625rem 1.25rem;font-size:.9375rem}.btn-level-3{padding:.5rem 1rem;font-size:.9375rem}.btn-level-4{padding:.375rem .75rem;font-size:.8125rem}.btn-level-5{padding:.25rem .5rem;font-size:.8125rem}}.building-data-upload{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:24px;margin-bottom:24px}.building-data-upload .upload-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.building-data-upload .upload-title{font-size:18px;font-weight:600;color:var(--text)}.building-data-upload .upload-description{color:var(--muted);font-size:15px;margin-bottom:20px;line-height:1.5}.data-type-selector{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-bottom:24px}.data-type-card{background:var(--surface-1);border:2px solid var(--border);border-radius:8px;padding:20px;cursor:pointer;transition:all .2s ease;position:relative}.data-type-card:hover{border-color:var(--accent);background:var(--surface-2)}.data-type-card.selected{border-color:var(--accent);background:var(--accent-alpha-10)}.data-type-card .type-icon{width:24px;height:24px;color:var(--accent);margin-bottom:12px}.data-type-card .type-title{font-size:16px;font-weight:600;color:var(--text);margin-bottom:8px}.data-type-card .type-description{color:var(--muted);font-size:15px;line-height:1.4}.data-type-card .type-badge{position:absolute;top:12px;right:12px;background:var(--accent-strong, var(--accent));color:#fff;font-size:15px;padding:4px 8px;border-radius:12px;font-weight:500}.file-upload-zone{border:2px dashed var(--border);border-radius:8px;padding:40px 20px;text-align:center;background:var(--surface-1);transition:all .2s ease;cursor:pointer}.file-upload-zone:hover,.file-upload-zone.drag-over{border-color:var(--accent);background:var(--accent-alpha-10)}.file-upload-zone .upload-icon{width:48px;height:48px;color:var(--muted);margin:0 auto 16px}.file-upload-zone .upload-text{color:var(--text);font-size:16px;font-weight:500;margin-bottom:8px}.file-upload-zone .upload-hint{color:var(--muted);font-size:15px}.file-upload-zone.has-files{border-color:var(--success);background:var(--success-alpha-10)}.uploaded-files{margin-top:20px}.uploaded-files .files-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.uploaded-files .files-title{font-size:15px;font-weight:600;color:var(--text)}.uploaded-files .files-count{color:var(--muted);font-size:15px}.file-item{display:flex;align-items:center;padding:12px;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;margin-bottom:8px}.file-item .file-icon{width:20px;height:20px;color:var(--accent);margin-right:12px;flex-shrink:0}.file-item .file-info{flex:1;min-width:0}.file-item .file-name{font-size:15px;font-weight:500;color:var(--text);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-item .file-meta{color:var(--muted);font-size:15px}.file-item .file-status{margin-left:12px;display:flex;align-items:center;gap:8px}.file-item .status-icon{width:16px;height:16px}.file-item .status-icon.success{color:var(--success)}.file-item .status-icon.error{color:var(--danger)}.file-item .status-icon.loading{color:var(--accent);animation:spin 1s linear infinite}.file-item .remove-button{background:none;border:none;color:var(--muted);cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease}.file-item .remove-button:hover{background:var(--danger-alpha-10);color:var(--danger)}.upload-progress{margin-top:16px;padding:16px;background:var(--surface-2);border-radius:6px}.upload-progress .progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.upload-progress .progress-text{font-size:15px;font-weight:500;color:var(--text)}.upload-progress .progress-percentage{font-size:15px;color:var(--accent);font-weight:600}.upload-progress .progress-bar{width:100%;height:6px;background:var(--border);border-radius:3px;overflow:hidden}.upload-progress .progress-fill{height:100%;background:var(--accent);transition:width .3s ease;border-radius:3px}.blockchain-status{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:12px;font-size:15px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.blockchain-status.pending{background:var(--warning-alpha-10);color:var(--warning);border:1px solid var(--warning-alpha-20)}.blockchain-status.confirmed{background:var(--success-alpha-10);color:var(--success);border:1px solid var(--success-alpha-20)}.blockchain-status.failed{background:var(--danger-alpha-10);color:var(--danger);border:1px solid var(--danger-alpha-20)}.blockchain-status.processing{background:var(--accent-alpha-10);color:var(--accent);border:1px solid var(--accent-alpha-20)}.blockchain-status .status-icon{width:12px;height:12px}.blockchain-status.processing .status-icon{animation:spin 1s linear infinite}.transaction-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:16px;margin-bottom:16px}.transaction-card .transaction-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.transaction-card .transaction-hash{font-family:Monaco,Menlo,monospace;font-size:15px;color:var(--accent);background:var(--surface-2);padding:4px 8px;border-radius:4px;word-break:break-all}.transaction-card .transaction-time{color:var(--muted);font-size:15px;white-space:nowrap}.transaction-card .transaction-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:12px}.transaction-card .detail-item{display:flex;flex-direction:column;gap:4px}.transaction-card .detail-label{color:var(--muted);font-size:15px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.transaction-card .detail-value{color:var(--text);font-size:15px;font-weight:500}.data-history-table{background:var(--panel);border:1px solid var(--border);border-radius:8px;overflow:hidden}.data-history-table .table-header{background:var(--surface-2);border-bottom:1px solid var(--border);padding:16px 20px}.data-history-table .table-title{font-size:18px;font-weight:600;color:var(--text);margin-bottom:4px}.data-history-table .table-subtitle{color:var(--muted);font-size:15px}.data-history-table .table-controls{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border);background:var(--surface-1)}.data-history-table .controls-left{display:flex;align-items:center;gap:12px}.data-history-table .controls-right{display:flex;align-items:center;gap:8px}.data-history-table .search-input{width:250px;padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:15px}.data-history-table .search-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-alpha-10)}.data-history-table .filter-button{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:15px;cursor:pointer;transition:all .2s ease}.data-history-table .filter-button:hover{background:var(--surface-3);border-color:var(--accent)}.data-history-table .filter-button.active{background:var(--accent-alpha-10);border-color:var(--accent);color:var(--accent)}.data-history-table .export-button{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--accent-strong, var(--accent));color:#fff;border:none;border-radius:6px;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s ease}.data-history-table .export-button:hover{background:var(--accent-hover)}.advanced-filters{padding:20px;background:var(--surface-1);border-bottom:1px solid var(--border)}.advanced-filters .filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:16px}.advanced-filters .filter-group{display:flex;flex-direction:column;gap:6px}.advanced-filters .filter-label{color:var(--text);font-size:15px;font-weight:500}.advanced-filters .filter-input{padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:15px}.advanced-filters .filter-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-alpha-10)}.advanced-filters .filters-actions{display:flex;justify-content:flex-end;gap:8px}.advanced-filters .clear-filters{padding:8px 16px;background:none;border:1px solid var(--border);border-radius:6px;color:var(--muted);font-size:15px;cursor:pointer;transition:all .2s ease}.advanced-filters .clear-filters:hover{background:var(--surface-2);color:var(--text)}.advanced-filters .apply-filters{padding:8px 16px;background:var(--accent-strong, var(--accent));color:#fff;border:none;border-radius:6px;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s ease}.advanced-filters .apply-filters:hover{background:var(--accent-hover)}.table-container{overflow-x:auto;max-height:600px}.data-table{width:100%;border-collapse:collapse;font-size:15px}.data-table th{background:var(--surface-2);color:var(--text);font-weight:600;padding:12px 16px;text-align:left;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.data-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s ease}.data-table th.sortable:hover{background:var(--surface-3)}.data-table th .sort-icon{width:16px;height:16px;margin-left:4px;color:var(--muted)}.data-table th.sorted-asc .sort-icon,.data-table th.sorted-desc .sort-icon{color:var(--accent)}.data-table td{padding:12px 16px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}.data-table tr:hover{background:var(--surface-1)}.data-table tr.selected{background:var(--accent-alpha-10)}.data-table .cell-hash{font-family:Monaco,Menlo,monospace;font-size:15px;color:var(--accent);background:var(--surface-2);padding:2px 6px;border-radius:3px;word-break:break-all;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-table .cell-timestamp{color:var(--muted);font-size:13px;white-space:nowrap}.data-table .cell-actions{display:flex;align-items:center;gap:4px}.data-table .action-button{padding:4px 6px;background:none;border:1px solid var(--border);border-radius:4px;color:var(--muted);cursor:pointer;transition:all .2s ease}.data-table .action-button:hover{background:var(--surface-2);color:var(--text)}.data-table .action-button.danger:hover{background:var(--danger-alpha-10);color:var(--danger);border-color:var(--danger)}.table-pagination{display:flex;justify-content:between;align-items:center;padding:16px 20px;border-top:1px solid var(--border);background:var(--surface-1)}.pagination-info{color:var(--muted);font-size:15px}.pagination-controls{display:flex;align-items:center;gap:8px}.pagination-button{padding:6px 10px;background:none;border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:15px;cursor:pointer;transition:all .2s ease}.pagination-button:hover:not(:disabled){background:var(--surface-2);border-color:var(--accent)}.pagination-button:disabled{opacity:.5;cursor:not-allowed}.pagination-button.active{background:var(--accent-strong, var(--accent));color:#fff;border-color:var(--accent)}.bulk-operations{position:sticky;top:0;z-index:100;background:var(--accent-alpha-10);border:1px solid var(--accent-alpha-20);border-radius:8px;padding:12px 16px;margin-bottom:16px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.bulk-operations .operations-content{display:flex;justify-content:space-between;align-items:center}.bulk-operations .selection-info{display:flex;align-items:center;gap:12px}.bulk-operations .selection-count{color:var(--accent);font-weight:600;font-size:15px}.bulk-operations .select-all-toggle{background:none;border:none;color:var(--accent);text-decoration:underline;cursor:pointer;font-size:15px}.bulk-operations .action-buttons{display:flex;align-items:center;gap:8px}.bulk-operations .bulk-action{display:flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:15px;cursor:pointer;transition:all .2s ease}.bulk-operations .bulk-action:hover{background:var(--surface-2);border-color:var(--accent)}.bulk-operations .bulk-action.danger:hover{background:var(--danger-alpha-10);color:var(--danger);border-color:var(--danger)}.data-visualization{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:20px;margin-bottom:24px}.data-visualization .chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.data-visualization .chart-title{font-size:18px;font-weight:600;color:var(--text)}.data-visualization .chart-controls{display:flex;align-items:center;gap:8px}.data-visualization .time-range-selector{padding:6px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:15px;cursor:pointer}.data-visualization .chart-container{height:300px;position:relative;background:var(--surface-1);border-radius:6px;padding:16px}.data-visualization .chart-loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--muted)}.data-visualization .chart-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--danger);text-align:center}.data-visualization .chart-error .error-icon{width:48px;height:48px;margin-bottom:12px}.data-visualization .chart-error .error-message{font-size:16px;font-weight:500;margin-bottom:8px}.data-visualization .chart-error .error-description{font-size:15px;color:var(--muted)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:20px;position:relative;overflow:hidden}.stat-card .stat-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.stat-card .stat-icon{width:24px;height:24px;color:var(--accent)}.stat-card .stat-trend{display:flex;align-items:center;gap:4px;font-size:15px;font-weight:500}.stat-card .stat-trend.positive{color:var(--success)}.stat-card .stat-trend.negative{color:var(--danger)}.stat-card .stat-trend.neutral{color:var(--muted)}.stat-card .stat-value{font-size:32px;font-weight:700;color:var(--text);margin-bottom:4px;line-height:1}.stat-card .stat-label{color:var(--muted);font-size:15px;font-weight:500}.stat-card .stat-progress{margin-top:16px}.stat-card .progress-bar-small{height:4px;background:var(--border);border-radius:2px;overflow:hidden}.stat-card .progress-fill-small{height:100%;background:var(--accent);transition:width .3s ease}.loading-overlay{position:absolute;inset:0;background:#fffc;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.theme-dark .loading-overlay{background:#000c}.loading-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}.loading-skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:4px}.skeleton-text{height:16px;margin-bottom:8px}.skeleton-text.large{height:24px}.skeleton-text.small{height:12px}.skeleton-block{height:100px;margin-bottom:16px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}.interactive{transition:all .2s ease}.interactive:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.clickable:active{transform:scale(.98)}.tooltip{position:relative;display:inline-block}.tooltip .tooltip-content{position:absolute;bottom:125%;left:50%;transform:translate(-50%);background:var(--gray-900);color:#fff;padding:8px 12px;border-radius:6px;font-size:15px;white-space:nowrap;opacity:0;visibility:hidden;transition:all .2s ease;z-index:1000}.tooltip:hover .tooltip-content{opacity:1;visibility:visible}.tooltip .tooltip-arrow{position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--gray-900)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.focus-visible{outline:2px solid var(--accent);outline-offset:2px}.error-message{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--danger-alpha-10);border:1px solid var(--danger-alpha-20);border-radius:6px;color:var(--danger);font-size:15px;margin-bottom:16px}.error-message .error-icon{width:16px;height:16px;flex-shrink:0}.success-message{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--success-alpha-10);border:1px solid var(--success-alpha-20);border-radius:6px;color:var(--success);font-size:15px;margin-bottom:16px}.success-message .success-icon{width:16px;height:16px;flex-shrink:0}.warning-message{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--warning-alpha-10);border:1px solid var(--warning-alpha-20);border-radius:6px;color:var(--warning);font-size:15px;margin-bottom:16px}.warning-message .warning-icon{width:16px;height:16px;flex-shrink:0}.info-message{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--accent-alpha-10);border:1px solid var(--accent-alpha-20);border-radius:6px;color:var(--accent);font-size:15px;margin-bottom:16px}.info-message .info-icon{width:16px;height:16px;flex-shrink:0}.notif-bell,.app-header .theme-toggle,.app-header .language-toggle,.app-header button{min-height:36px;min-width:36px;display:inline-flex;align-items:center;justify-content:center}.notif-dot{min-width:18px!important;height:18px!important;line-height:18px!important;font-size:12px!important}.app-main button:has(>svg:only-child):not([data-help]),.app-header button:has(>svg:only-child):not([data-help]){min-height:36px;min-width:36px;display:inline-flex;align-items:center;justify-content:center}.app-main button:not([data-help]){min-height:34px}code{font-size:.9375rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.header-content h1{margin:0 0 .5rem;color:var(--text)}.header-actions{display:flex;gap:1rem;align-items:center}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:1.5rem;display:flex;align-items:center;gap:1rem;transition:all .2s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.stat-icon{width:48px;height:48px;background:var(--primary-light);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--accent)}.stat-content{flex:1}.stat-value{font-size:2rem;font-weight:600;color:var(--text);line-height:1;margin-bottom:.25rem}.stat-label{font-size:.9375rem;color:var(--muted);font-weight:500}.stat-value-danger{color:var(--danger)!important}.stat-value-success{color:var(--success)!important}.events-type-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.event-type-card{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:1rem;text-align:center;transition:all .2s ease}.event-type-card:hover{transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.event-type-name{font-size:.9375rem;color:var(--muted);margin-bottom:.5rem}.event-type-count{font-size:1.5rem;font-weight:600;color:var(--text)}.severity-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.severity-card{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:1rem;display:flex;align-items:center;gap:.75rem}.severity-indicator{width:12px;height:12px;border-radius:50%}.severity-indicator[data-severity=critical]{background-color:var(--danger)}.severity-indicator[data-severity=high]{background-color:var(--warning)}.severity-indicator[data-severity=medium]{background-color:var(--info)}.severity-indicator[data-severity=low]{background-color:var(--success)}.severity-content{flex:1}.severity-name{font-size:.9375rem;color:var(--muted);margin-bottom:.25rem}.severity-count{font-size:1.25rem;font-weight:600;color:var(--text)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.recent-events{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;overflow:hidden}.event-item{display:flex;align-items:center;gap:1rem;padding:1rem;border-bottom:1px solid var(--border);transition:background-color .2s ease}.event-item:last-child{border-bottom:none}.event-item:hover{background:var(--hover-bg)}.dashboard-recent{background:transparent;border:none;border-radius:0}.dashboard-recent .event-item{background:transparent;border:none;border-bottom:1px solid var(--border);border-radius:0;padding:.75rem 0}.dashboard-recent .event-item:last-child{border-bottom:none}.dashboard-recent .event-item:hover{background:transparent;transform:none}.event-content{flex:1}.event-type{font-weight:500;color:var(--text)}.event-severity{font-size:.9375rem;font-weight:500;padding:.25rem .5rem;border-radius:4px;background:var(--muted-light)}.event-severity[data-severity=critical]{color:var(--danger);background:#ef44441a}.event-severity[data-severity=high]{color:var(--warning);background:#f59e0b1a}.event-severity[data-severity=medium]{color:var(--info);background:#3b82f61a}.event-severity[data-severity=low]{color:var(--success);background:#22c55e1a}.quick-actions{display:flex;gap:1rem;flex-wrap:wrap}.action-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--card-bg);border:1px solid var(--border);border-radius:8px;color:var(--text);text-decoration:none;transition:all .2s ease;cursor:pointer}.action-btn:hover{background:var(--primary-light);border-color:var(--accent);color:var(--accent)}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.filters-panel{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:1.5rem;margin-bottom:2rem}.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.filter-group{display:flex;flex-direction:column;gap:.5rem}.form-label{font-size:.9375rem;font-weight:500;color:var(--text)}.form-select,.form-input{padding:.5rem;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--text);font-size:.9375rem}.form-select:focus,.form-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--primary-light)}.filters-actions{display:flex;gap:1rem;justify-content:flex-end}.events-container{background:var(--panel);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.events-container .events-list{padding:0}.event-card{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-light);transition:background-color .2s ease}.event-card:last-child{border-bottom:none}.event-card:hover{background:var(--panel-hover)}.event-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.event-info{flex:1}.event-type{font-weight:500;color:var(--text);margin-bottom:.25rem}.event-time{font-size:.9375rem;color:var(--muted)}.event-severity{flex-shrink:0}.severity-badge{padding:.25rem .5rem;border-radius:4px;font-size:.9375rem;font-weight:500;color:#fff}.severity-badge[data-severity=critical]{background-color:var(--danger)}.severity-badge[data-severity=high]{background-color:var(--warning)}.severity-badge[data-severity=medium]{background-color:var(--info)}.severity-badge[data-severity=low]{background-color:var(--success)}.severity-badge[data-severity=info],.severity-indicator[data-severity=info]{background-color:#475569}.severity-badge:not([data-severity]),.severity-indicator:not([data-severity]){background-color:#475569}.event-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.5rem;margin-bottom:1rem}.detail-row{display:flex;gap:.5rem}.detail-label{font-size:.9375rem;color:var(--muted);min-width:60px}.detail-value{font-size:.9375rem;color:var(--text);font-weight:500}.event-actions{display:flex;gap:.5rem}.alerts-container{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;overflow:hidden}.alerts-list{padding:1rem}.alert-card{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:1.5rem;margin-bottom:1rem;transition:all .2s ease}.alert-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.alert-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.alert-icon{flex-shrink:0}.alert-info{flex:1}.alert-title{font-weight:500;color:var(--text);margin-bottom:.25rem}.alert-time{font-size:.9375rem;color:var(--muted)}.alert-severity,.alert-status{flex-shrink:0}.status-badge{padding:.25rem .5rem;border-radius:4px;font-size:.9375rem;font-weight:500;color:#fff}.status-badge[data-status=active]{background-color:var(--danger)}.status-badge[data-status=acknowledged]{background-color:var(--warning)}.status-badge[data-status=resolved]{background-color:var(--success)}.alert-description{color:var(--muted);margin-bottom:1rem;font-size:.9375rem}.alert-actions{display:flex;gap:.5rem}.visualization-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.chart-selector{margin-bottom:2rem}.chart-tabs{display:flex;gap:.5rem;background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:.5rem}.chart-tab{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:transparent;border:none;border-radius:6px;color:var(--muted);cursor:pointer;transition:all .2s ease}.chart-tab:hover{background:var(--hover-bg);color:var(--text)}.chart-tab.active{background:var(--accent-strong);color:#fff}.stats-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.stat-item{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:1.5rem;text-align:center}.stat-item .stat-value{font-size:2rem;font-weight:600;color:var(--text);margin-bottom:.5rem}.stat-item .stat-label{font-size:.9375rem;color:var(--muted)}.chart-container{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;margin-bottom:2rem;overflow:hidden}.chart-header{padding:1.5rem 1.5rem 0}.chart-content{padding:1.5rem}.chart-canvas{width:100%;height:400px;border-radius:4px}.data-table-container{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;margin-bottom:2rem;overflow:hidden}.table-header{padding:1.5rem 1.5rem 0}.data-table{padding:1.5rem}.data-table table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--border)}.data-table th{background:var(--hover-bg);font-weight:500;color:var(--text)}.data-table td{color:var(--muted)}.chart-legend{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:1.5rem}.legend-content p{color:var(--muted);line-height:1.6}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;max-width:600px;width:90%;max-height:80vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--border)}.modal-close{background:none;border:none;font-size:1.5rem;color:var(--muted);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px}.modal-close:hover{background:var(--hover-bg);color:var(--text)}.modal-body{padding:1.5rem}.modal-footer{display:flex;gap:1rem;justify-content:flex-end;padding:1.5rem;border-top:1px solid var(--border)}.event-detail-grid{display:grid;gap:1rem}.detail-item{display:grid;grid-template-columns:120px 1fr;gap:1rem;align-items:start}.detail-item.full-width{grid-template-columns:1fr}.detail-item .detail-label{font-weight:500;color:var(--text);font-size:.9375rem}.detail-item .detail-value{color:var(--muted);font-size:.9375rem;word-break:break-word}.detail-item pre{background:var(--hover-bg);padding:.75rem;border-radius:4px;font-size:.9375rem;overflow-x:auto;white-space:pre-wrap}.metadata-pre{background:var(--hover-bg);padding:.75rem;border-radius:4px;font-size:.9375rem;overflow-x:auto;white-space:pre-wrap;max-height:200px;overflow-y:auto}.alert-detail-grid{display:grid;gap:1rem}.pagination{display:flex;justify-content:center;align-items:center;gap:1rem;padding:1.5rem;border-top:1px solid var(--border)}.pagination-info{color:var(--muted);font-size:.9375rem}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.loading-spinner{width:32px;height:32px;border:3px solid var(--border);border-top:3px solid var(--accent);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@media (max-width: 768px){.page-header,.visualization-header{flex-direction:column;gap:1rem;align-items:stretch}.header-actions{justify-content:flex-start}.stats-grid,.filters-grid{grid-template-columns:1fr}.chart-tabs{flex-wrap:wrap}.chart-tab{flex:1;min-width:120px}.modal-content{width:95%;margin:1rem}.detail-item{grid-template-columns:1fr;gap:.5rem}}.audit-panel{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;overflow:hidden}.audit-panel-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--border);background:var(--hover-bg)}.header-content{display:flex;align-items:center;gap:1rem}.audit-stats{display:flex;gap:.5rem}.stat-item{display:flex;align-items:center;gap:.25rem;font-size:.9375rem;color:var(--muted)}.header-actions{display:flex;gap:.5rem}.audit-panel-content{padding:1rem}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}.loading-spinner{width:24px;height:24px;border:2px solid var(--border);border-top:2px solid var(--accent);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:.5rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.no-data{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}.audit-overview{margin-bottom:1rem}.overview-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem}.stat-card{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.75rem;text-align:center}.stat-label{font-size:.9375rem;color:var(--muted);margin-bottom:.25rem}.stat-value{font-size:1.25rem;font-weight:600;color:var(--text)}.audit-details{margin-bottom:1rem}.audit-details h4{margin-bottom:.75rem;color:var(--text)}.severity-distribution{margin-bottom:1.5rem}.severity-bars{display:flex;flex-direction:column;gap:.5rem}.severity-bar{display:flex;align-items:center;gap:.75rem}.severity-label{min-width:60px;font-size:.9375rem;color:var(--text);font-weight:500}.severity-progress{flex:1;height:8px;background:var(--border);border-radius:4px;overflow:hidden}.severity-fill{height:100%;transition:width .3s ease}.severity-count{min-width:30px;text-align:right;font-size:.9375rem;color:var(--muted);font-weight:500}.recent-events{margin-bottom:1rem}.events-list{display:flex;flex-direction:column;gap:.5rem}.event-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;transition:all .2s ease}.event-item:hover{background:var(--hover-bg);transform:translateY(-1px)}.event-icon{flex-shrink:0}.event-content{flex:1;min-width:0}.event-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.event-action{font-size:.9375rem;color:var(--text);font-weight:500}.event-severity{font-size:.9375rem;padding:.125rem .375rem;border-radius:4px;font-weight:500;color:#fff}.event-severity[data-severity=critical]{background-color:var(--danger)}.event-severity[data-severity=high]{background-color:var(--warning)}.event-severity[data-severity=medium]{background-color:var(--info)}.event-severity[data-severity=info],.event-severity:not([data-severity]){background-color:#475569}.event-severity[data-severity=low]{background-color:var(--success)}.event-details{display:flex;gap:1rem;font-size:.9375rem;color:var(--muted)}.event-actor{font-weight:500}.event-time{font-family:monospace}.audit-actions{display:flex;gap:.5rem;justify-content:flex-end;padding-top:1rem;border-top:1px solid var(--border)}.audit-indicator{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background:var(--primary-light);border:1px solid var(--accent);border-radius:4px;font-size:.9375rem;color:var(--accent);font-weight:500;position:relative}.indicator-content{display:flex;align-items:center;gap:.25rem}.indicator-text{font-weight:600}.activity-dot{width:6px;height:6px;background:var(--success);border-radius:50%;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}@media (max-width: 768px){.audit-panel-header{flex-direction:column;gap:.75rem;align-items:stretch}.header-content{justify-content:space-between}.overview-stats{grid-template-columns:repeat(2,1fr)}.severity-bar{flex-direction:column;align-items:stretch;gap:.25rem}.severity-label{min-width:auto}.severity-count{text-align:left}.event-item{flex-direction:column;align-items:stretch;gap:.5rem}.event-header{flex-direction:column;align-items:stretch;gap:.25rem}.event-details{flex-direction:column;gap:.25rem}}@media (prefers-color-scheme: dark){.audit-panel{background:var(--card-bg);border-color:var(--border)}.audit-panel-header{background:var(--hover-bg)}.stat-card,.event-item{background:var(--bg);border-color:var(--border)}.event-item:hover{background:var(--hover-bg)}}.threat-prediction-bar-94{width:94%}.threat-prediction-bar-3{width:3%}.threat-prediction-bar-85{width:85%}.w-3{width:12px}.w-3\.5{width:14px}.w-4{width:16px}.w-5{width:20px}.w-6{width:24px}.w-8{width:32px}.w-12{width:48px}.h-3{height:12px}.h-3\.5{height:14px}.h-4{height:16px}.h-5{height:20px}.h-6{height:24px}.h-8{height:32px}.h-12{height:48px}.w-3.h-3{width:12px;height:12px}.w-3\.5.h-3\.5{width:14px;height:14px}.w-4.h-4{width:16px;height:16px}.w-5.h-5{width:20px;height:20px}.w-6.h-6{width:24px;height:24px}.w-8.h-8{width:32px;height:32px}.w-12.h-12{width:48px;height:48px}.flex{display:flex}.items-center{align-items:center}.gap-1{gap:4px}.gap-2{gap:8px}
