:root{--bg-base: #0a0c10;--bg-elevated: #11151c;--bg-card: #151a22;--bg-hover: #1c222c;--border: #2a3140;--text: #f0f4f8;--text-muted: #8b95a8;--accent: #22d3ee;--accent-dim: #06b6d4;--accent-purple: #a855f7;--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--orange: #f97316;--radius: 10px;--shadow: 0 4px 24px rgba(0, 0, 0, .45);font-family:DM Sans,system-ui,sans-serif;line-height:1.5;color:var(--text);background:var(--bg-base)}*{box-sizing:border-box}body{margin:0;min-height:100vh}#root{min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app-shell{display:flex;min-height:100vh}.sidebar{width:260px;background:var(--bg-elevated);border-right:1px solid var(--border);padding:1.25rem 1rem;display:flex;flex-direction:column;gap:.5rem;flex-shrink:0}.sidebar-brand{font-size:1.1rem;font-weight:700;padding:.5rem .75rem;margin-bottom:.5rem;background:linear-gradient(135deg,#1e3a5f,#0c4a6e);border-radius:var(--radius);border:1px solid var(--border)}.sidebar-brand span{display:block;font-size:.75rem;font-weight:500;color:var(--text-muted);margin-top:.25rem}.nav-link{display:block;padding:.65rem .85rem;border-radius:8px;color:var(--text-muted);font-weight:500;transition:background .15s,color .15s;text-decoration:none}.nav-link:hover{background:var(--bg-hover);color:var(--text);text-decoration:none}.nav-link.active{background:#3b82f626;color:var(--accent);border:1px solid rgba(59,130,246,.35)}.main{flex:1;padding:1.5rem 2rem;overflow-x:auto}.page-header{margin-bottom:1.5rem}.page-header h1{margin:0 0 .35rem;font-size:1.65rem;font-weight:700}.page-header p{margin:0;color:var(--text-muted);max-width:720px}.platform-hero{background:linear-gradient(135deg,#0f172a,#1e3a5f 55%,#0c4a6e);color:#f8fafc;padding:1.25rem 1.5rem;border-radius:12px;margin-bottom:1.5rem;border:1px solid rgba(255,255,255,.08);box-shadow:var(--shadow)}.platform-hero h1{margin:0 0 .4rem;font-size:1.5rem;font-weight:700}.platform-hero p{margin:0;color:#cbd5e1;font-size:.95rem;max-width:800px;line-height:1.5}.chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem;margin-bottom:1.25rem}.chart-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem;box-shadow:var(--shadow)}.chart-card--tall .chart-card-body{min-height:280px}.chart-card--wide{grid-column:1 / -1}.ranked-bar-list{display:flex;flex-direction:column;gap:.65rem;padding:.15rem 0}.ranked-bar-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(80px,2.2fr) auto;align-items:center;gap:.65rem .75rem}.ranked-bar-label{font-size:.8rem;line-height:1.35;color:var(--text);text-align:right;word-break:break-word;-webkit-hyphens:auto;hyphens:auto}.ranked-bar-track{height:22px;background:#94a3b81f;border-radius:6px;overflow:hidden;border:1px solid rgba(148,163,184,.1)}.ranked-bar-fill{height:100%;border-radius:5px;min-width:4px;transition:width .28s ease;background:linear-gradient(90deg,#0ea5e9,#38bdf8)}.ranked-bar-value{font-size:.85rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text);min-width:1.75rem;text-align:right}@media (max-width: 640px){.ranked-bar-row{grid-template-columns:1fr;gap:.35rem}.ranked-bar-label{text-align:left}.ranked-bar-value{text-align:left;margin-top:-.25rem}}.chart-card-header h3{margin:0;font-size:.95rem;font-weight:600}.chart-card-header p{margin:.25rem 0 .75rem;font-size:.8rem;color:var(--text-muted)}.chart-empty{color:var(--text-muted);font-size:.9rem;padding:2rem 1rem;text-align:center}.tabs-panel{margin-bottom:1.25rem}.tab-content{margin-top:1rem}.tab-description{margin:.5rem 0 0;font-size:.82rem;color:var(--text-muted);font-style:italic}.metric-hint{margin-top:.4rem;font-size:.72rem;color:var(--text-muted);line-height:1.25}.table-caption{margin:0 0 .6rem;font-size:.82rem;color:var(--text-muted);font-style:italic}.section-hint{margin:-.25rem 0 .75rem;font-size:.82rem;color:var(--text-muted);font-style:italic}.priority-alerts--urgent{border-color:#ef444473;box-shadow:0 0 0 1px #ef444426,var(--shadow)}.priority-alerts-header h2{margin:0 0 .35rem}.priority-alerts-meta{margin:0 0 1rem;font-size:.85rem;color:var(--text-muted)}.metric-grid--compact{margin-bottom:1rem}.metric-card--critical{border-color:#ef444466}.metric-card--critical .value{color:#fca5a5}.metric-card--warning{border-color:#f59e0b66}.metric-card--warning .value{color:#fcd34d}.row-critical{background:#ef44440f}.heatmap-wrap{overflow-x:auto}.heatmap-grid{display:grid;gap:4px;min-width:280px}.heatmap-corner,.heatmap-col-label,.heatmap-row-label{font-size:.75rem;font-weight:600;color:var(--text-muted);padding:.35rem}.heatmap-col-label{text-align:center}.heatmap-row-label{display:flex;align-items:center}.heatmap-cell{display:flex;align-items:center;justify-content:center;min-height:36px;border-radius:6px;font-size:.85rem;font-weight:600;border:1px solid var(--border)}.gauge-ring{--pct: 50;width:120px;height:120px;border-radius:50%;background:conic-gradient(var(--gauge-color, var(--accent)) calc(var(--pct) * 1%),var(--bg-elevated) 0);display:flex;align-items:center;justify-content:center;margin:0 auto .75rem;position:relative}.gauge-ring:after{content:"";position:absolute;top:12px;right:12px;bottom:12px;left:12px;border-radius:50%;background:var(--bg-card)}.gauge-value{position:relative;z-index:1;font-size:1.35rem;font-weight:700}.pm-priority-row td{background:#ffffff05}.pm-priority-critical{background:#ef44441f!important}.pm-priority-high{background:#f973161f!important}.pm-priority-medium{background:#eab3081a!important}.pm-priority-low{background:#22c55e14!important}.home-status-grid{margin-bottom:1.5rem}.live-sensors-card{grid-column:span 1;min-width:280px}.live-sensors-card--running{border-color:#22c55e73;box-shadow:0 0 0 1px #22c55e1f,var(--shadow)}.live-sensors-status{display:flex;align-items:center;gap:.5rem;font-size:1.35rem;font-weight:700;margin-top:.25rem}.live-sensors-status--on{color:#86efac}.live-sensors-status--off{color:var(--text-muted)}.live-sensors-dot{width:10px;height:10px;border-radius:50%;background:var(--text-muted);flex-shrink:0}.live-sensors-status--on .live-sensors-dot{background:#22c55e;box-shadow:0 0 8px #22c55eb3;animation:live-pulse 1.5s ease-in-out infinite}@keyframes live-pulse{0%,to{opacity:1}50%{opacity:.45}}.live-sensors-meta{margin:.5rem 0 .75rem;font-size:.8rem;color:var(--text-muted)}.live-sensors-hint{margin:.5rem 0 0;font-size:.8rem;color:var(--text-muted);line-height:1.45}.live-sensors-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.live-sensors-error{margin:.5rem 0 0;font-size:.8rem;color:#fecaca}.home-modules{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.module-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;text-decoration:none;color:inherit;transition:border-color .15s,transform .15s;box-shadow:var(--shadow)}.module-card:hover{border-color:var(--accent);transform:translateY(-2px);text-decoration:none}.module-card h3{margin:0 0 .5rem;font-size:1.05rem;color:var(--accent)}.module-card p{margin:0;font-size:.9rem;color:var(--text-muted);line-height:1.45}.module-icon{font-size:1.75rem;margin-bottom:.5rem}.metric-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;margin-bottom:1.5rem}.metric-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem;box-shadow:var(--shadow)}.metric-card .label{font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.metric-card .value{font-size:1.5rem;font-weight:700;margin-top:.25rem}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;margin-bottom:1.25rem;box-shadow:var(--shadow)}.card h2{margin:0 0 1rem;font-size:1.05rem;font-weight:600}.tabs{display:flex;gap:.35rem;margin-bottom:1rem;flex-wrap:wrap}.tab{padding:.5rem 1rem;border-radius:8px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-muted);cursor:pointer;font:inherit;font-weight:500}.tab:hover{background:var(--bg-hover);color:var(--text)}.tab.active{background:#3b82f633;border-color:var(--accent);color:var(--accent)}.data-table{width:100%;border-collapse:collapse;font-size:.875rem}.data-table th,.data-table td{padding:.6rem .75rem;text-align:left;border-bottom:1px solid var(--border)}.data-table th{color:var(--text-muted);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.03em}.data-table tbody tr:hover{background:var(--bg-hover)}.badge{display:inline-block;padding:.2rem .55rem;border-radius:6px;font-size:.75rem;font-weight:600}.badge-critical{background:#ef444433;color:#fca5a5}.badge-warning{background:#f59e0b33;color:#fcd34d}.badge-normal{background:#22c55e33;color:#86efac}.badge-red{background:#ef444440;color:#fecaca}.badge-amber{background:#f59e0b40;color:#fde68a}.badge-green{background:#22c55e40;color:#bbf7d0}.btn{padding:.55rem 1rem;border-radius:8px;border:1px solid var(--border);background:var(--bg-hover);color:var(--text);font:inherit;font-weight:600;cursor:pointer}.btn:hover{border-color:var(--accent)}.btn-primary{background:var(--accent);border-color:var(--accent-dim);color:#fff}.btn-primary:hover{background:var(--accent-dim)}.btn:disabled{opacity:.5;cursor:not-allowed}.toolbar{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:1rem;align-items:center}.toolbar-meta{font-size:.82rem;color:var(--text-muted)}select,input[type=text]{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text);padding:.5rem .75rem;border-radius:8px;font:inherit}.alert{padding:.85rem 1rem;border-radius:8px;margin-bottom:1rem}.alert-error{background:#ef44441f;border:1px solid rgba(239,68,68,.4);color:#fecaca}.alert-info{background:#3b82f61f;border:1px solid rgba(59,130,246,.35);color:#bfdbfe}.loading{color:var(--text-muted);padding:2rem;text-align:center}.loading-progress{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:3rem 2rem}.loading-progress-label{margin:0;color:var(--text-muted);font-size:.95rem;letter-spacing:.01em}.loading-progress-track{position:relative;height:18px;max-width:100%;background:#94a3b82e;border-radius:999px;overflow:hidden;display:flex;align-items:center;justify-content:center}.loading-progress-track.is-determinate .loading-progress-fill{position:absolute;top:0;left:0;bottom:0;background:linear-gradient(90deg,#0ea5e9f2,#38bdf8f2);border-radius:999px}.loading-progress-percent{position:relative;z-index:1;color:#f8fafc;font-size:.78rem;font-weight:700;letter-spacing:.02em;text-shadow:0 1px 2px rgba(15,23,42,.6)}.loading-progress-track.is-indeterminate{height:6px}.loading-progress-track.is-indeterminate .loading-progress-fill{position:absolute;top:0;left:0;height:100%;width:35%;background:linear-gradient(90deg,#38bdf800,#38bdf8f2,#38bdf800);border-radius:999px;animation:loading-progress-slide 1.4s ease-in-out infinite}@keyframes loading-progress-slide{0%{left:-40%}to{left:100%}}@media (prefers-reduced-motion: reduce){.loading-progress-track.is-indeterminate .loading-progress-fill{animation:none;left:0;width:100%;background:#38bdf8b3}.loading-progress-track.is-determinate .loading-progress-fill{transition:none}}.table-wrap{overflow-x:auto}.expandable-table{margin-top:.25rem}.table-expand-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.table-row-count{font-size:.85rem;color:var(--text-muted);margin:0}.btn-expand{font-size:.85rem;padding:.4rem .85rem}.visualized-table{margin-top:.25rem}.visualized-table-chart{background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;padding:.85rem .9rem .55rem}.visualized-table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-top:.6rem;padding:.4rem .1rem 0}.visualized-table-count{font-size:.78rem;color:var(--text-muted);letter-spacing:.02em}.btn-toggle-data{font-size:.78rem;padding:.35rem .8rem;display:inline-flex;align-items:center;gap:.4rem;background:var(--bg-elevated);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;font-weight:600;transition:background-color .12s ease,border-color .12s ease}.btn-toggle-data:hover{background:var(--bg-hover);border-color:var(--accent-purple)}.btn-toggle-data[aria-expanded=true]{background:#a855f726;border-color:var(--accent-purple);color:#e9d5ff}.visualized-table .expandable-table{margin-top:.5rem;padding-top:.5rem;border-top:1px dashed var(--border)}.json-block{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:.75rem 1rem;font-size:.8rem;overflow:auto;max-height:320px;margin:0}.nested-tabs .tabs{margin-bottom:.75rem}.platform-shell{min-height:100vh;max-width:1400px;margin:0 auto;padding:1.5rem 2rem 2rem}.platform-top-header{margin-bottom:1.25rem;display:flex;align-items:flex-start;justify-content:space-between;gap:1.25rem;flex-wrap:wrap}.platform-user-block{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.platform-user-chip{display:inline-flex;align-items:center;gap:.55rem;padding:.4rem .8rem .4rem .45rem;background:#38bdf81a;border:1px solid rgba(56,189,248,.35);color:#e0f2fe;border-radius:999px;font-size:.85rem;font-weight:600;letter-spacing:.01em}.platform-user-avatar{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#0ea5e9,#38bdf8);color:#0f172a;font-size:.85rem;font-weight:800}.platform-user-name{white-space:nowrap}.platform-logout-btn{background:#f871711f;border:1px solid rgba(248,113,113,.45);color:#fecaca;padding:.45rem .95rem;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.platform-logout-btn:hover{background:#f8717138;color:#fff5f5;border-color:#f87171b3}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:radial-gradient(ellipse at top,rgba(14,165,233,.12),transparent 60%),radial-gradient(ellipse at bottom,rgba(99,102,241,.08),transparent 60%),var(--bg, #0b1220)}.login-card{width:100%;max-width:420px;background:#0f172ad9;border:1px solid rgba(148,163,184,.2);border-radius:16px;padding:2.25rem 2rem;box-shadow:0 25px 60px -20px #0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.login-brand h1{margin:0 0 .4rem;font-size:1.4rem;font-weight:700;letter-spacing:-.01em;color:var(--text, #f1f5f9)}.login-brand p{margin:0 0 1.6rem;color:var(--text-muted);font-size:.92rem;line-height:1.5}.login-form{display:flex;flex-direction:column;gap:1rem}.login-field{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--text-muted);font-weight:600;letter-spacing:.01em;text-transform:uppercase}.login-field input{padding:.7rem .85rem;background:#0f172ae6;border:1px solid rgba(148,163,184,.25);border-radius:8px;color:var(--text, #f1f5f9);font-size:.95rem;font-weight:500;text-transform:none;letter-spacing:normal;transition:border-color .15s ease,box-shadow .15s ease}.login-field input:focus{outline:none;border-color:#38bdf8b3;box-shadow:0 0 0 3px #38bdf826}.login-error{background:#f871711f;border:1px solid rgba(248,113,113,.4);color:#fecaca;padding:.55rem .75rem;border-radius:8px;font-size:.85rem;font-weight:500}.login-submit{margin-top:.5rem;padding:.75rem 1rem;background:linear-gradient(135deg,#0ea5e9,#38bdf8);color:#0f172a;border:1px solid rgba(56,189,248,.7);border-radius:8px;font-size:.95rem;font-weight:700;letter-spacing:.01em;cursor:pointer;transition:filter .15s ease}.login-submit:disabled{filter:grayscale(.4) brightness(.85);cursor:not-allowed}.login-submit:hover:not(:disabled){filter:brightness(1.08)}.login-footer{margin:1.5rem 0 0;color:var(--text-muted);font-size:.8rem;text-align:center;line-height:1.5}.platform-title{margin:0 0 .5rem;font-size:2rem;font-weight:700;letter-spacing:-.02em}.platform-subtitle{margin:0 0 .75rem;color:var(--text-muted);max-width:900px;line-height:1.55}.platform-live-line{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.platform-live-dot{width:8px;height:8px;border-radius:50%;background:var(--success);box-shadow:0 0 10px #22c55ecc;animation:live-pulse 1.5s ease-in-out infinite}.platform-live-text{color:var(--success);font-weight:600}.platform-live-meta{color:var(--text-muted)}.platform-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:.75rem;margin-bottom:1rem}@media (max-width: 1100px){.platform-kpis{grid-template-columns:repeat(2,1fr)}}.kpi-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem}.kpi-card--loading{opacity:.5}.platform-kpis--live .kpi-card{border-color:#22c55e40}.kpi-label{display:block;font-size:.7rem;font-weight:600;letter-spacing:.08em;color:var(--text-muted);margin-bottom:.35rem}.kpi-value{display:block;font-size:1.65rem;font-weight:700;line-height:1.1}.kpi-sub{display:block;font-size:.8rem;color:var(--text-muted);margin-top:.35rem}.streaming-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem .9rem;margin-bottom:.75rem}.streaming-panel-head{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem}.streaming-panel-title{margin:0 0 .15rem;font-size:.95rem;font-weight:700}.streaming-panel-desc{margin:0;font-size:.75rem;color:var(--text-muted);max-width:640px;line-height:1.35}.stream-badge{flex-shrink:0;padding:.2rem .55rem;border-radius:5px;font-size:.65rem;font-weight:700;letter-spacing:.06em;background:#f59e0b26;color:#fcd34d;border:1px solid rgba(245,158,11,.35)}.stream-badge--live{background:#22c55e26;color:#86efac;border-color:#22c55e66}.streaming-panel-body{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}@media (max-width: 900px){.streaming-panel-body{grid-template-columns:1fr;gap:.75rem}}.streaming-btn-row{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.75rem}.streaming-btn-row .btn{padding:.35rem .7rem;font-size:.8rem}.btn-stream-start{background:var(--success);border-color:#16a34a;color:#fff;font-weight:700;display:inline-flex;align-items:center;gap:.3rem}.btn-stream-start:hover:not(:disabled){background:#16a34a}.btn-stream-pause{background:var(--bg-hover);display:inline-flex;align-items:center;gap:.3rem}.btn-stream-reset{background:#7f1d1d80;border-color:#ef444480;color:#fecaca;display:inline-flex;align-items:center;gap:.3rem}.btn-icon{font-size:.75rem}.streaming-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:.4rem 1rem}.streaming-meta-label{display:block;font-size:.6rem;font-weight:600;letter-spacing:.08em;color:var(--text-muted)}.streaming-meta-value{display:block;font-size:.82rem;font-weight:600;margin-top:.1rem}.streaming-speed-header{display:flex;justify-content:space-between;font-size:.75rem;color:var(--text-muted);margin-bottom:.35rem}.streaming-speed-value{color:var(--accent-purple);font-weight:700}.streaming-slider{width:100%;height:5px;accent-color:var(--accent-purple);margin-bottom:.5rem}.streaming-presets{display:flex;flex-wrap:wrap;gap:.3rem}.streaming-preset{padding:.2rem .5rem;border-radius:5px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-muted);font:inherit;font-size:.7rem;font-weight:600;cursor:pointer}.streaming-preset.active{background:#a855f733;border-color:var(--accent-purple);color:#e9d5ff}.streaming-speed-hint,.streaming-disabled-msg,.streaming-error{font-size:.7rem;color:var(--text-muted);margin:.4rem 0 0;line-height:1.35}.streaming-error{color:#fecaca;margin-top:.5rem}.platform-tabs{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.25rem;padding-bottom:.25rem;border-bottom:1px solid var(--border)}.platform-tab{padding:.55rem 1rem;border-radius:6px 6px 0 0;font-size:.75rem;font-weight:700;letter-spacing:.04em;color:var(--text-muted);text-decoration:none;border:1px solid transparent;border-bottom:none;margin-bottom:-1px}.platform-tab:hover{color:var(--text);text-decoration:none;background:var(--bg-hover)}.platform-tab.active{color:var(--accent);background:var(--bg-card);border-color:var(--border);border-bottom-color:var(--bg-card)}.platform-main{min-height:200px}.validation-banner{margin-top:1.5rem;padding:.75rem 1rem;border-radius:8px;font-size:.9rem;font-weight:500}.validation-banner--ok{background:#22c55e1a;border:1px solid rgba(34,197,94,.35);color:#86efac}.validation-banner--live{background:#22c55e14;border:1px solid rgba(34,197,94,.3);color:#bbf7d0;display:flex;align-items:center;gap:.5rem}.validation-banner--warn{background:#f59e0b1a;border:1px solid rgba(245,158,11,.35);color:#fde68a}.validation-live-dot{width:8px;height:8px;border-radius:50%;background:var(--success);animation:live-pulse 1s ease-in-out infinite}.live-module-feed{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.25rem 0}@media (max-width: 900px){.live-module-feed{grid-template-columns:1fr}}.live-module-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.2rem;text-decoration:none;color:inherit;transition:border-color .2s,box-shadow .2s}.live-module-card:hover{text-decoration:none;border-color:var(--accent)}.live-module-feed--active .live-module-card--reading{border-color:#22d3ee80;box-shadow:0 0 20px #22d3ee1a}.live-module-feed--active .live-module-card--updated{border-color:#22c55e73}.live-module-card-top{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.live-module-icon{font-size:1.25rem}.live-module-name{font-weight:700;font-size:.95rem}.live-module-pulse{margin-left:auto;width:8px;height:8px;border-radius:50%;background:var(--success);animation:live-pulse 1s infinite}.live-module-status{margin:0;font-size:.85rem;color:var(--text-muted)}.live-module-tick{margin:.35rem 0 0;font-size:.75rem;color:var(--accent)}.module-live-banner{display:flex;align-items:center;gap:.6rem;padding:.65rem 1rem;margin-bottom:1rem;border-radius:8px;background:#22c55e14;border:1px solid rgba(34,197,94,.3);font-size:.9rem;color:#bbf7d0}.module-live-banner-dot{width:8px;height:8px;border-radius:50%;background:var(--success);animation:live-pulse 1s infinite;flex-shrink:0}.live-status-page .section-title{margin:0 0 .5rem;font-size:1.1rem}.live-status-intro p{color:var(--text-muted);max-width:800px;line-height:1.55}.live-status-tick-banner{color:var(--accent)!important;font-size:.95rem!important}.live-status-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.5rem}.live-stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.live-stat-label{display:block;font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.live-stat-value{display:block;font-size:1.5rem;font-weight:700;margin-top:.25rem}.app-shell{display:block}.app-shell .sidebar{display:none}.app-shell .main{padding:0}.live-pm-form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem 1rem}.live-pm-field{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;color:var(--text-muted)}.live-pm-field input,.live-pm-field select{padding:.45rem .6rem;border-radius:6px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text)}.drift-hero{position:relative;display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:1.25rem;align-items:stretch;padding:1.15rem 1.35rem;border-radius:14px;margin-bottom:1rem;border:1px solid var(--border);overflow:hidden}.drift-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at top right,rgba(255,255,255,.04),transparent 60%);pointer-events:none}.drift-hero--ok{background:linear-gradient(135deg,#22c55e29,#22c55e0a);border-color:#22c55e73}.drift-hero--warning{background:linear-gradient(135deg,#f59e0b29,#f59e0b0a);border-color:#f59e0b73}.drift-hero--critical{background:linear-gradient(135deg,#ef444433,#ef44440d);border-color:#ef444480}.drift-hero-status,.drift-hero-stat{position:relative;display:flex;flex-direction:column;gap:.35rem;min-width:0}.drift-hero-status{border-right:1px solid rgba(148,163,184,.15);padding-right:1.25rem}.drift-hero-stat+.drift-hero-stat{border-left:1px solid rgba(148,163,184,.15);padding-left:1.25rem}.drift-hero-eyebrow{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-weight:600}.drift-hero-value{font-size:1.9rem;font-weight:700;line-height:1.15;letter-spacing:-.01em;text-transform:capitalize}.drift-hero--ok .drift-hero-value{color:#86efac}.drift-hero--warning .drift-hero-value{color:#fcd34d}.drift-hero--critical .drift-hero-value{color:#fca5a5}.drift-hero-stat-value{font-size:1.65rem;font-weight:700;line-height:1.15}.drift-hero-sub{font-size:.78rem;color:var(--text-muted);line-height:1.4}.drift-hero-pill{align-self:flex-start;padding:.3rem .75rem;border-radius:999px;font-weight:700;font-size:.85rem;letter-spacing:.02em;border:1px solid transparent}.drift-hero-pill--alert{background:#ef444433;color:#fecaca;border-color:#ef444480}.drift-hero-pill--ok{background:#22c55e2e;color:#bbf7d0;border-color:#22c55e73}.rul-summary-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.85rem;margin-bottom:1rem}.rul-summary-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:.95rem 1.1rem;display:flex;flex-direction:column;gap:.45rem;position:relative}.rul-summary-card:after{content:"";position:absolute;left:1.1rem;right:1.1rem;bottom:0;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--accent),transparent);opacity:.4}.rul-summary-card--delta:after{background:linear-gradient(90deg,var(--accent-purple),transparent)}.rul-summary-card--delta.rul-delta--warn:after{background:linear-gradient(90deg,var(--warning),transparent)}.rul-summary-card--delta.rul-delta--good:after{background:linear-gradient(90deg,var(--success),transparent)}.rul-summary-label{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-weight:600}.rul-summary-value{font-size:2rem;font-weight:700;line-height:1.05;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.rul-summary-value small{font-size:.95rem;font-weight:500;color:var(--text-muted);margin-left:.25rem}.rul-summary-card--delta.rul-delta--warn .rul-summary-value{color:#fcd34d}.rul-summary-card--delta.rul-delta--good .rul-summary-value{color:#86efac}.rul-summary-hint{font-size:.78rem;color:var(--text-muted);line-height:1.4}.drift-feature-list{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:.95rem 1.1rem;margin-bottom:1rem}.drift-feature-list-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.7rem}.drift-feature-list-head h3{margin:0;font-size:1rem;font-weight:700}.drift-feature-list-meta{font-size:.78rem;color:var(--text-muted)}.drift-feature-chips{display:flex;flex-wrap:wrap;gap:.4rem}.drift-feature-chip{background:#ef44441f;color:#fecaca;border:1px solid rgba(239,68,68,.35);padding:.3rem .7rem;border-radius:999px;font-size:.78rem;font-weight:600;letter-spacing:.01em;text-transform:capitalize}@media (max-width: 900px){.drift-hero{grid-template-columns:1fr;gap:1rem}.drift-hero-status{border-right:none;border-bottom:1px solid rgba(148,163,184,.15);padding-right:0;padding-bottom:1rem}.drift-hero-stat+.drift-hero-stat{border-left:none;border-top:1px solid rgba(148,163,184,.15);padding-left:0;padding-top:1rem}}.asset-detail{display:flex;flex-direction:column;gap:1rem}.asset-detail-toolbar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:.7rem .9rem}.asset-detail-label{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-weight:600}.asset-detail-select{min-width:240px;padding:.45rem .7rem;border-radius:6px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);font-size:.9rem;font-weight:600}.asset-detail-select:focus{outline:none;border-color:var(--accent-purple);box-shadow:0 0 0 2px #a855f740}.asset-detail-help{font-size:.78rem;color:var(--text-muted);margin-left:auto}.asset-hero{display:grid;grid-template-columns:1.4fr 1fr;gap:1.5rem;align-items:stretch;padding:1.25rem 1.4rem;border-radius:14px;border:1px solid var(--border);position:relative;overflow:hidden}.asset-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at top right,rgba(255,255,255,.04),transparent 60%);pointer-events:none}.asset-hero--low{background:linear-gradient(135deg,#22c55e24,#22c55e08);border-color:#22c55e66}.asset-hero--med{background:linear-gradient(135deg,#eab30826,#eab30808);border-color:#eab30873}.asset-hero--high{background:linear-gradient(135deg,#f9731629,#f973160a);border-color:#f9731680}.asset-hero--critical{background:linear-gradient(135deg,#ef444433,#ef44440a);border-color:#ef44448c}.asset-hero-id,.asset-hero-prob{position:relative;display:flex;flex-direction:column;gap:.5rem;min-width:0}.asset-hero-eyebrow{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-weight:600}.asset-hero-name{margin:0;font-size:2.1rem;font-weight:700;letter-spacing:-.02em;line-height:1.1;word-break:break-word}.asset-hero-meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.25rem}.asset-meta-pill{background:#94a3b824;color:var(--text);border:1px solid rgba(148,163,184,.25);padding:.25rem .65rem;border-radius:999px;font-size:.78rem;font-weight:600}.asset-priority-pill{padding:.3rem .75rem;border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.02em;border:1px solid transparent}.asset-priority-pill--low{background:#22c55e33;color:#bbf7d0;border-color:#22c55e80}.asset-priority-pill--med{background:#eab30833;color:#fde68a;border-color:#eab3088c}.asset-priority-pill--high{background:#f9731638;color:#fed7aa;border-color:#f973168c}.asset-priority-pill--critical{background:#ef44443d;color:#fecaca;border-color:#ef444499}.asset-hero-prob-value{display:flex;align-items:baseline;gap:.25rem;font-variant-numeric:tabular-nums;margin-top:.1rem}.asset-hero-prob-value .prob-num{font-size:3rem;font-weight:700;line-height:1;letter-spacing:-.03em}.asset-hero-prob-value .prob-unit{font-size:1.4rem;font-weight:700;color:var(--text-muted)}.asset-hero--low .asset-hero-prob-value .prob-num{color:#86efac}.asset-hero--med .asset-hero-prob-value .prob-num{color:#fde68a}.asset-hero--high .asset-hero-prob-value .prob-num{color:#fdba74}.asset-hero--critical .asset-hero-prob-value .prob-num{color:#fca5a5}.asset-hero-prob-bar{height:8px;border-radius:999px;background:#94a3b82e;overflow:hidden;margin-top:.35rem}.asset-hero-prob-fill{height:100%;border-radius:999px;transition:width .24s ease}.asset-hero--low .asset-hero-prob-fill{background:#22c55e}.asset-hero--med .asset-hero-prob-fill{background:#eab308}.asset-hero--high .asset-hero-prob-fill{background:#f97316}.asset-hero--critical .asset-hero-prob-fill{background:#ef4444}.asset-hero-prob-sub{font-size:.82rem;color:var(--text-muted)}.asset-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.8rem}.asset-stat-card,.asset-cost-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:.85rem 1rem;display:flex;flex-direction:column;gap:.3rem;position:relative}.asset-stat-card:after,.asset-cost-card:after{content:"";position:absolute;left:1rem;right:1rem;bottom:0;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--accent),transparent);opacity:.45}.asset-cost--risk:after{background:linear-gradient(90deg,var(--danger),transparent)}.asset-cost--good:after{background:linear-gradient(90deg,var(--success),transparent)}.asset-stat-label{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-weight:600}.asset-stat-value{font-size:1.6rem;font-weight:700;line-height:1.1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.asset-stat-value--text{font-size:1.05rem;letter-spacing:0}.asset-stat-value--good{color:#86efac}.asset-stat-value small{font-size:.85rem;font-weight:500;color:var(--text-muted);margin-left:.2rem}.asset-stat-hint{font-size:.75rem;color:var(--text-muted);line-height:1.35}.asset-cost-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem}.asset-cost--risk .asset-stat-value{color:#fca5a5}.asset-cost--good .asset-stat-value{color:#86efac}.asset-action-callout{display:flex;align-items:center;gap:.9rem;background:var(--bg-card);border:1px solid var(--border);border-left:4px solid var(--accent-purple);border-radius:10px;padding:.9rem 1.1rem}.asset-action-callout--low{border-left-color:#22c55e}.asset-action-callout--med{border-left-color:#eab308}.asset-action-callout--high{border-left-color:#f97316}.asset-action-callout--critical{border-left-color:#ef4444}.asset-action-icon{font-size:1.5rem;width:2.25rem;height:2.25rem;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#a855f733;color:#e9d5ff;flex-shrink:0}.asset-action-callout--low .asset-action-icon{background:#22c55e33;color:#bbf7d0}.asset-action-callout--med .asset-action-icon{background:#eab30838;color:#fde68a}.asset-action-callout--high .asset-action-icon{background:#f9731638;color:#fed7aa}.asset-action-callout--critical .asset-action-icon{background:#ef444438;color:#fecaca}.asset-action-body{display:flex;flex-direction:column;gap:.15rem;min-width:0}.asset-action-eyebrow{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-weight:600}.asset-action-text{font-size:1rem;font-weight:600;line-height:1.4}.asset-drivers{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:.95rem 1.1rem}.asset-drivers-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.7rem}.asset-drivers-head h3{margin:0;font-size:1rem;font-weight:700}.asset-drivers-meta{font-size:.78rem;color:var(--text-muted)}.asset-drivers-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.asset-drivers-list li{display:flex;align-items:flex-start;gap:.6rem;padding:.55rem .7rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px}.asset-driver-index{flex-shrink:0;width:1.5rem;height:1.5rem;border-radius:999px;background:#a855f733;color:#e9d5ff;font-weight:700;font-size:.75rem;display:inline-flex;align-items:center;justify-content:center}.asset-driver-text{font-size:.88rem;line-height:1.45;color:var(--text)}@media (max-width: 900px){.asset-hero{grid-template-columns:1fr;gap:1rem}.asset-hero-id{border-bottom:1px solid rgba(148,163,184,.15);padding-bottom:1rem}.asset-detail-help{margin-left:0;width:100%}}.insight-card{position:relative;background:transparent;border-radius:var(--radius);margin-bottom:1.25rem;perspective:1400px}.insight-card--chart{margin-bottom:0}.insight-card--wide{grid-column:1 / -1}.insight-card-inner{position:relative;width:100%;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.4,0,.2,1)}.insight-card--flipped .insight-card-inner{transform:rotateY(180deg)}.insight-card-face{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.1rem;-webkit-backface-visibility:hidden;backface-visibility:hidden}.insight-card-face--front{position:relative;z-index:1}.insight-card-face--back{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotateY(180deg);display:flex;flex-direction:column;gap:.85rem;overflow:auto}.insight-card--table .insight-card-face{padding:1.25rem}.insight-card--tall .insight-card-face--front .insight-card-body{min-height:280px}.insight-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.5rem}.insight-card-titles h3{margin:0;font-size:.95rem;font-weight:600;color:var(--text)}.insight-card-titles p{margin:.25rem 0 0;font-size:.8rem;color:var(--text-muted)}.insight-card--table .insight-card-titles h3{font-size:1.05rem}.insight-flip-btn{flex:0 0 auto;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid rgba(148,163,184,.35);background:#94a3b814;color:var(--text);font-size:.9rem;font-weight:600;cursor:pointer;line-height:1;transition:background .15s,border-color .15s,transform .15s}.insight-flip-btn:hover{background:#63b3ed2e;border-color:#63b3ed8c;transform:scale(1.05)}.insight-flip-btn:focus-visible{outline:2px solid rgba(99,179,237,.6);outline-offset:2px}.insight-card-explanation{color:var(--text);font-size:.92rem;line-height:1.55}.insight-card-explanation p{margin:0 0 .6rem}.insight-card-explanation strong{color:var(--text)}.insight-back-link{align-self:flex-start;background:transparent;border:none;color:#63b3edf2;padding:0;font-size:.85rem;cursor:pointer}.insight-back-link:hover{text-decoration:underline}@media (prefers-reduced-motion: reduce){.insight-card-inner{transition:none}}.chat-fab{position:fixed;right:24px;bottom:24px;width:56px;height:56px;border-radius:50%;border:1px solid rgba(99,179,237,.45);background:linear-gradient(135deg,#1f6feb,#0b3a82);color:#fff;font-weight:700;font-size:1rem;cursor:pointer;box-shadow:0 12px 28px #00000073,0 0 0 1px #ffffff0a;z-index:60;transition:transform .15s ease,box-shadow .15s ease}.chat-fab:hover{transform:translateY(-1px);box-shadow:0 16px 36px #00000080}.chat-fab.open{font-size:1.6rem;background:linear-gradient(135deg,#243044,#0e1620)}.chat-drawer{position:fixed;top:0;right:0;bottom:0;width:min(420px,92vw);background:#0a101af5;border-left:1px solid rgba(255,255,255,.06);box-shadow:-16px 0 40px #00000080;display:flex;flex-direction:column;transform:translate(110%);transition:transform .25s ease;z-index:55;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.chat-drawer.open{transform:translate(0)}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1rem;border-bottom:1px solid rgba(255,255,255,.06)}.chat-title-block{display:flex;flex-direction:column;gap:.15rem;min-width:0}.chat-title{font-weight:700;font-size:.95rem;color:var(--text)}.chat-subtitle{font-size:.72rem;color:#b4c3dcb3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-header-actions{display:flex;gap:.4rem;align-items:center}.chat-clear,.chat-close{background:transparent;border:1px solid rgba(255,255,255,.1);color:#dce6f5d9;padding:.25rem .55rem;border-radius:6px;cursor:pointer;font-size:.78rem}.chat-close{font-size:1rem;line-height:1;padding:.15rem .45rem}.chat-clear:hover,.chat-close:hover{background:#ffffff0f}.chat-body{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.chat-empty{display:flex;flex-direction:column;gap:.6rem;color:#c8d2e6bf}.chat-empty-title{margin:0;font-size:.95rem;color:var(--text);font-weight:600}.chat-empty-hint{margin:0;font-size:.8rem}.chat-suggestions{display:flex;flex-direction:column;gap:.4rem;margin-top:.4rem}.chat-suggestion{text-align:left;background:#63b3ed14;border:1px solid rgba(99,179,237,.25);color:#dcebfff2;padding:.55rem .7rem;border-radius:8px;cursor:pointer;font-size:.82rem}.chat-suggestion:hover:not(:disabled){background:#63b3ed26}.chat-suggestion:disabled{opacity:.45;cursor:not-allowed}.chat-msg{display:flex;flex-direction:column;gap:.25rem;max-width:92%}.chat-msg-role{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:#b4c3dca6}.chat-msg-body{background:#ffffff0a;border:1px solid rgba(255,255,255,.06);padding:.6rem .75rem;border-radius:10px;font-size:.85rem;line-height:1.45;color:#e6ebf5f2;white-space:pre-wrap;word-wrap:break-word}.chat-msg-user{align-self:flex-end}.chat-msg-user .chat-msg-body{background:#63b3ed2e;border-color:#63b3ed59}.chat-msg-assistant{align-self:flex-start}.chat-msg-tools{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.1rem}.chat-tool-chip{font-size:.65rem;background:#78c88c1f;border:1px solid rgba(120,200,140,.3);color:#beebc8f2;padding:.1rem .4rem;border-radius:999px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.chat-typing{display:inline-flex;gap:.25rem;align-items:center}.chat-typing span{width:6px;height:6px;background:#b4c3dcbf;border-radius:50%;animation:chat-bounce 1s infinite ease-in-out}.chat-typing span:nth-child(2){animation-delay:.15s}.chat-typing span:nth-child(3){animation-delay:.3s}@keyframes chat-bounce{0%,80%,to{transform:translateY(0);opacity:.5}40%{transform:translateY(-3px);opacity:1}}.chat-input-row{display:flex;gap:.4rem;padding:.75rem .9rem;border-top:1px solid rgba(255,255,255,.06);background:#0003}.chat-input-row input{flex:1;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:.55rem .7rem;color:var(--text);font-size:.85rem}.chat-input-row input:focus{outline:none;border-color:#63b3ed8c;background:#ffffff12}.chat-send{background:linear-gradient(135deg,#1f6feb,#0b3a82);border:none;color:#fff;padding:0 .95rem;border-radius:8px;cursor:pointer;font-weight:600;font-size:.82rem}.chat-send:disabled{opacity:.45;cursor:not-allowed}
