:root{--bg-root: #060A13;--bg-primary: #0B1120;--bg-secondary: #111827;--bg-tertiary: #1A2236;--bg-glass: rgba(17, 24, 39, .65);--bg-glass-hover: rgba(26, 34, 54, .8);--accent: #FF6B00;--accent-light: #FFA800;--accent-gradient: linear-gradient(135deg, #FF6B00 0%, #FFA800 100%);--accent-glow: rgba(255, 107, 0, .25);--blue: #3B82F6;--blue-light: #60A5FA;--blue-glow: rgba(59, 130, 246, .2);--green: #10B981;--green-light: #34D399;--green-glow: rgba(16, 185, 129, .2);--red: #EF4444;--red-light: #F87171;--red-glow: rgba(239, 68, 68, .2);--yellow: #F59E0B;--purple: #8B5CF6;--text-primary: #F1F5F9;--text-secondary: #94A3B8;--text-tertiary: #64748B;--text-dim: #475569;--border: rgba(148, 163, 184, .1);--border-light: rgba(148, 163, 184, .06);--border-accent: rgba(255, 107, 0, .3);--nav-width: 72px;--page-padding: 32px;--card-radius: 16px;--card-radius-sm: 12px;--card-padding: 24px;--shadow-card: 0 4px 24px rgba(0, 0, 0, .3), 0 1px 2px rgba(0, 0, 0, .2);--shadow-glow: 0 0 40px rgba(255, 107, 0, .08);--shadow-deep: 0 8px 32px rgba(0, 0, 0, .5);--font-heading: "Space Grotesk", sans-serif;--font-body: "Inter", sans-serif;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:15px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);background:var(--bg-root);color:var(--text-primary);min-height:100vh;overflow-x:hidden}body:before{content:"";position:fixed;top:-30%;right:-20%;width:600px;height:600px;background:radial-gradient(circle,rgba(255,107,0,.06) 0%,transparent 70%);pointer-events:none;z-index:0}body:after{content:"";position:fixed;bottom:-30%;left:-10%;width:500px;height:500px;background:radial-gradient(circle,rgba(59,130,246,.04) 0%,transparent 70%);pointer-events:none;z-index:0}#app{display:flex;min-height:100vh;position:relative;z-index:1}#nav-rail{position:fixed;left:0;top:0;bottom:0;width:var(--nav-width);background:#0b1120eb;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;padding:16px 0;z-index:100;transition:width var(--transition)}.nav-logo{width:40px;height:40px;margin-bottom:8px;display:flex;align-items:center;justify-content:center;font-size:24px}.nav-divider{width:32px;height:1px;background:var(--border);margin:8px 0 12px}.nav-items{display:flex;flex-direction:column;gap:4px;flex:1;width:100%;padding:0 10px}.nav-item{display:flex;align-items:center;justify-content:center;width:52px;height:48px;border-radius:12px;cursor:pointer;color:var(--text-tertiary);font-size:20px;transition:all var(--transition-fast);position:relative;text-decoration:none}.nav-item:hover{background:var(--bg-glass-hover);color:var(--text-secondary)}.nav-item.active{background:#ff6b001f;color:var(--accent)}.nav-item.active:before{content:"";position:absolute;left:-10px;top:50%;transform:translateY(-50%);width:3px;height:24px;background:var(--accent-gradient);border-radius:0 3px 3px 0}.nav-tooltip{position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%);background:var(--bg-tertiary);color:var(--text-primary);padding:6px 12px;border-radius:8px;font-size:12px;font-weight:500;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--transition-fast);border:1px solid var(--border);z-index:200}.nav-item:hover .nav-tooltip{opacity:1}.nav-settings{margin-top:auto;border-top:1px solid var(--border);width:100%;display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 10px 0}#main-content{margin-left:var(--nav-width);flex:1;padding:var(--page-padding);min-height:100vh}.loading-screen{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 64px)}.loader-container{text-align:center}.loader-ring{width:56px;height:56px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 24px}@keyframes spin{to{transform:rotate(360deg)}}.loader-text h2{font-family:var(--font-heading);font-size:1.5rem;font-weight:700;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:8px}.loader-text p{color:var(--text-secondary);font-size:.875rem}.page-header{margin-bottom:28px}.page-header h1{font-family:var(--font-heading);font-size:1.75rem;font-weight:700;color:var(--text-primary);margin-bottom:4px}.page-header p{color:var(--text-tertiary);font-size:.875rem}.page-breadcrumb{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:.8rem;color:var(--text-dim)}.page-breadcrumb .crumb-active{color:var(--accent)}.card{background:var(--bg-glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:var(--card-radius);padding:var(--card-padding);transition:all var(--transition);position:relative;overflow:hidden}.card:hover{border-color:#94a3b826;box-shadow:var(--shadow-card)}.card-sm{padding:16px;border-radius:var(--card-radius-sm)}.card-accent{border-color:var(--border-accent);box-shadow:var(--shadow-glow)}.card-accent:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,107,0,.04) 0%,transparent 60%);pointer-events:none}.card-blue{background:linear-gradient(135deg,#1e3a8a66,#3b82f626);border-color:#3b82f640}.card-green{background:linear-gradient(135deg,#064e3b66,#10b98126);border-color:#10b98140}.card-red{background:linear-gradient(135deg,#7f1d1d4d,#ef44441a);border-color:#ef444433}.metric-label{font-size:.7rem;color:var(--text-tertiary);font-weight:600;text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px}.metric-value{font-family:var(--font-heading);font-size:2rem;font-weight:700;color:var(--text-primary);line-height:1.1}.metric-sub{font-size:.8rem;color:var(--text-secondary);margin-top:6px;font-weight:500}.metric-change-pos{color:var(--green)}.metric-change-neg{color:var(--red)}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.grid-2-1{display:grid;grid-template-columns:2fr 1fr;gap:20px}.grid-1-2{display:grid;grid-template-columns:1fr 2fr;gap:20px}.grid-2-3{display:grid;grid-template-columns:2fr 3fr;gap:20px}.section-title{font-family:var(--font-heading);font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:16px;display:flex;align-items:center;gap:8px}.section-title .icon{font-size:1.2rem}.data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.85rem}.data-table thead th{background:#1e293b80;color:var(--text-secondary);font-weight:600;text-align:left;padding:12px 16px;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px}.data-table thead th:first-child{border-radius:12px 0 0}.data-table thead th:last-child{border-radius:0 12px 0 0}.data-table tbody td{padding:12px 16px;border-bottom:1px solid var(--border-light);color:var(--text-primary);transition:background var(--transition-fast)}.data-table tbody tr:hover td{background:#ffffff05}.data-table tbody tr:last-child td{border-bottom:none}.badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:20px;font-size:.7rem;font-weight:600;letter-spacing:.3px}.badge-high{background:#ef444426;color:var(--red-light);border:1px solid rgba(239,68,68,.2)}.badge-medium{background:#f59e0b26;color:var(--yellow);border:1px solid rgba(245,158,11,.2)}.badge-low{background:#10b98126;color:var(--green-light);border:1px solid rgba(16,185,129,.2)}.badge-info{background:#3b82f626;color:var(--blue-light);border:1px solid rgba(59,130,246,.2)}.slider-group{margin-bottom:16px}.slider-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.slider-label{font-size:.8rem;color:var(--text-secondary);font-weight:500}.slider-weight{font-size:.7rem;color:var(--text-dim);background:#ffffff0d;padding:2px 8px;border-radius:10px}.slider-row{display:flex;align-items:center;gap:12px}.slider-track{flex:1;position:relative}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:var(--bg-tertiary);outline:none;cursor:pointer}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent-glow),0 2px 4px #0000004d;cursor:pointer;transition:transform var(--transition-fast)}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--accent);border:none;box-shadow:0 0 8px var(--accent-glow);cursor:pointer}.slider-value-input{width:64px;padding:6px 8px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-family:var(--font-heading);font-size:.85rem;font-weight:600;text-align:center;outline:none;transition:border-color var(--transition-fast)}.slider-value-input:focus{border-color:var(--accent)}.slider-baseline{font-size:.7rem;color:var(--text-dim);margin-top:2px}.slider-feasibility{font-size:.7rem;margin-top:2px;font-weight:600}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:10px;font-family:var(--font-body);font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid transparent;transition:all var(--transition-fast)}.btn-primary{background:var(--accent-gradient);color:#fff;border:none}.btn-primary:hover{filter:brightness(1.1);box-shadow:0 4px 16px var(--accent-glow)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg-glass-hover);color:var(--text-primary)}.btn-secondary.active{background:#ff6b001f;color:var(--accent);border-color:var(--border-accent)}.btn-sm{padding:5px 10px;font-size:.72rem;border-radius:8px}.btn-group{display:flex;gap:6px;flex-wrap:wrap}.select-wrapper{position:relative}.select-input{width:100%;padding:8px 12px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:10px;color:var(--text-primary);font-family:var(--font-body);font-size:.82rem;outline:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:border-color var(--transition-fast)}.select-input:focus{border-color:var(--accent)}.controls-bar{display:flex;align-items:center;gap:16px;margin-bottom:24px;padding:12px 16px;background:var(--bg-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--card-radius-sm)}.control-group{display:flex;flex-direction:column;gap:4px}.control-label{font-size:.68rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.caveat-box{padding:14px 18px;border-radius:10px;background:#1e293b66;border-left:3px solid var(--text-dim);font-size:.78rem;color:var(--text-secondary);line-height:1.5;margin-top:20px}.caveat-box.warning{border-left-color:var(--yellow);background:#f59e0b0f}.caveat-box.danger{border-left-color:var(--red);background:#ef44440f}.caveat-box.success{border-left-color:var(--green);background:#10b9810f}.caveat-box.info{border-left-color:var(--blue);background:#3b82f60f}.expander{border:1px solid var(--border-light);border-radius:var(--card-radius-sm);margin-bottom:8px;overflow:hidden}.expander-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;cursor:pointer;background:#ffffff05;transition:background var(--transition-fast);font-size:.85rem;font-weight:500;color:var(--text-secondary)}.expander-header:hover{background:#ffffff0a}.expander-arrow{transition:transform var(--transition);font-size:.75rem}.expander.open .expander-arrow{transform:rotate(180deg)}.expander-body{padding:0 16px;max-height:0;overflow:hidden;transition:max-height var(--transition-slow),padding var(--transition)}.expander.open .expander-body{padding:16px;max-height:2000px}.chart-container{width:100%;min-height:280px;position:relative}.chart-container-sm{min-height:200px}.waterfall-positive{color:var(--green)}.waterfall-negative{color:var(--red)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}.page-enter{animation:fadeSlideIn var(--transition-slow) ease-out}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1200px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.grid-4,.grid-3,.grid-2,.grid-2-1,.grid-1-2,.grid-2-3{grid-template-columns:1fr}#main-content{padding:16px}}.counter-animate{transition:all .6s cubic-bezier(.4,0,.2,1)}.separator{height:1px;background:var(--border);margin:24px 0}.tag{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px;font-size:.68rem;font-weight:600;background:#ffffff0d;color:var(--text-secondary)}.alert-item{display:flex;gap:10px;padding:10px 14px;border-radius:10px;background:#ffffff05;border:1px solid var(--border-light);margin-bottom:8px;font-size:.82rem;color:var(--text-secondary);line-height:1.4}.alert-item .alert-icon{flex-shrink:0;font-size:1.1rem}.methodology-content h4{font-family:var(--font-heading);font-size:1rem;font-weight:600;color:var(--text-primary);margin:24px 0 12px}.methodology-content p,.methodology-content li{font-size:.85rem;color:var(--text-secondary);line-height:1.6;margin-bottom:8px}.methodology-content ul{padding-left:20px}.methodology-content a{color:var(--blue-light);text-decoration:none}.methodology-content a:hover{text-decoration:underline}.form-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px}.form-group{display:flex;flex-direction:column;gap:4px}.form-label{font-size:.72rem;color:var(--text-dim);font-weight:600;text-transform:uppercase;letter-spacing:.3px}.form-input{padding:8px 10px;background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-family:var(--font-body);font-size:.82rem;outline:none;transition:border-color var(--transition-fast)}.form-input:focus{border-color:var(--accent)}.tabs{display:flex;gap:2px;margin-bottom:20px;background:#ffffff08;border-radius:12px;padding:3px;width:fit-content}.tab-btn{padding:8px 16px;border-radius:10px;font-size:.8rem;font-weight:500;color:var(--text-tertiary);cursor:pointer;border:none;background:none;transition:all var(--transition-fast);font-family:var(--font-body)}.tab-btn:hover{color:var(--text-secondary)}.tab-btn.active{background:var(--bg-tertiary);color:var(--text-primary)}.apexcharts-canvas{background:transparent!important}.apexcharts-tooltip{background:var(--bg-tertiary)!important;border:1px solid var(--border)!important;border-radius:10px!important;box-shadow:var(--shadow-deep)!important;color:var(--text-primary)!important;font-family:var(--font-body)!important}.apexcharts-tooltip-title{background:#ffffff0d!important;border-bottom:1px solid var(--border)!important;color:var(--text-secondary)!important;font-weight:600!important}.apexcharts-xaxistooltip,.apexcharts-yaxistooltip{background:var(--bg-tertiary)!important;border:1px solid var(--border)!important;color:var(--text-primary)!important}.apexcharts-legend-text{color:var(--text-secondary)!important;font-family:var(--font-body)!important}.apexcharts-gridline{stroke:var(--border-light)!important}.apexcharts-text{fill:var(--text-tertiary)!important}.abbreviation-legend{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--card-radius-sm);padding:12px 16px;margin-top:16px;margin-bottom:24px;font-size:.8rem;color:var(--text-secondary);display:flex;flex-wrap:wrap;gap:12px;align-items:center}.abbreviation-legend-title{font-weight:600;color:var(--accent);margin-right:4px}.abbreviation-legend-item{display:inline-flex;gap:4px;padding:2px 8px;background:#ffffff05;border-radius:6px;border:1px solid rgba(255,255,255,.02)}.abbreviation-legend-item strong{color:var(--text-primary)}
