:root{--primary-color:#1db954;--primary-hover:#1ed760;--secondary-color:#00e5ff;--bg-color:#121212;--card-bg:#181818;--sidebar-bg:#181818;--text-primary:#fff;--text-secondary:#b3b3b3;--border-color:#282828;--shadow-sm:0 4px 12px #00000080;--shadow-md:0 8px 24px #000000b3;--shadow-lg:0 16px 40px #000000d9;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--font-family:"Plus Jakarta Sans", "Inter", "Roboto", -apple-system, BlinkMacSystemFont, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-size:17px;line-height:1.7}.app-container{background-color:var(--bg-color);flex-direction:column;min-height:100vh;display:flex}.header{background-color:var(--card-bg);border-bottom:1px solid var(--border-color);z-index:100;justify-content:space-between;align-items:center;height:60px;padding:0 32px;display:flex;position:sticky;top:0;box-shadow:0 6px 16px #00000073}.header h1{color:var(--text-primary);letter-spacing:-.5px;align-items:center;gap:12px;font-size:20px;font-weight:800;display:flex}.main-content{flex:1;display:flex;position:relative;overflow:hidden}@media (width<=1024px){.main-content{flex-direction:column}}.sidebar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-right:1px solid var(--border-color);z-index:90;width:340px;box-shadow:var(--shadow-md);opacity:1;background-color:#181818fa;flex-direction:column;gap:32px;padding:32px;transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .35s;display:flex;position:absolute;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(0)}.sidebar>*{opacity:1;transition:opacity .2s}.sidebar.collapsed{pointer-events:none;opacity:0!important;transform:translate(-100%)!important}.sidebar.collapsed>*{opacity:0}@media (width<=360px){.sidebar{width:280px}}.sidebar h2{color:var(--text-primary);margin-bottom:8px;font-size:20px;font-weight:800}.sidebar p{color:var(--text-secondary);font-size:14.5px;line-height:1.6}.form-group{flex-direction:column;gap:12px;display:flex}.form-group label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:1.5px;font-size:12px;font-weight:800}.select-control,.input-control{font-family:var(--font-family);border:2px solid var(--border-color);color:var(--text-primary);background-color:#121212;border-radius:32px;outline:none;width:100%;min-height:56px;padding:16px 24px;font-size:17px;font-weight:600;transition:border-color .2s,box-shadow .2s}.select-control{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23b3b3b3'%3e%3cpath d='M7 10l5 5 5-5z'/%3e%3c/svg%3e");background-position:right 22px center;background-repeat:no-repeat;background-size:26px;padding-right:52px;transition:border-color .2s,box-shadow .2s,background-image .2s}.select-control:focus{background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%231db954'%3e%3cpath d='M7 10l5 5 5-5z'/%3e%3c/svg%3e")}.hamburger-btn{color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:24px;transition:background-color .2s,transform .1s;display:flex}.hamburger-btn:hover{background-color:#ffffff14}.hamburger-btn:active{transform:scale(.92)}.select-control:focus,.input-control:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #1db9544d}.viewport{background-color:var(--bg-color);flex-direction:column;flex:1;display:flex;overflow:hidden}.tab-bar{background-color:var(--card-bg);border-bottom:1px solid var(--border-color);gap:16px;padding:0 24px;display:flex;overflow-x:auto}.tab-button{font-family:var(--font-family);color:var(--text-secondary);cursor:pointer;white-space:nowrap;letter-spacing:-.3px;background:0 0;border:none;min-height:60px;padding:22px 28px;font-size:17px;font-weight:700;transition:color .2s;position:relative}.tab-button:hover{color:#fff}.tab-button.active{color:var(--primary-color)}.tab-button.active:after{content:"";background-color:var(--primary-color);border-top-left-radius:4px;border-top-right-radius:4px;height:4px;position:absolute;bottom:0;left:16px;right:16px}.tab-panel{flex-direction:column;flex:1;gap:32px;padding:32px;display:flex;overflow-y:auto}@media (width<=600px){.tab-panel{padding:20px}}.card{background-color:var(--card-bg);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);padding:32px}.card-title{color:var(--text-primary);letter-spacing:-.5px;align-items:center;gap:12px;margin-bottom:14px;font-size:24px;font-weight:800;display:flex}.card-subtitle,.description-text{color:var(--text-secondary);letter-spacing:.15px;margin-bottom:24px;font-size:18px;line-height:1.85}.btn{font-family:var(--font-family);cursor:pointer;text-transform:uppercase;letter-spacing:1.5px;-webkit-user-select:none;user-select:none;border:none;border-radius:32px;justify-content:center;align-items:center;gap:12px;min-height:56px;padding:16px 40px;font-size:15px;font-weight:800;transition:background-color .2s,transform .1s,box-shadow .2s;display:inline-flex}.btn:active{transform:scale(.96)}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover{background-color:var(--primary-hover);box-shadow:0 6px 18px #1db95480}.btn-outline{border:2.5px solid var(--text-secondary);color:#fff;background:0 0}.btn-outline:hover{background-color:#ffffff14;border-color:#fff}.shrink-grid{grid-template-columns:1fr 400px;gap:32px;display:grid}@media (width<=1024px){.shrink-grid{grid-template-columns:1fr}}.preset-row{flex-wrap:wrap;gap:16px;margin-bottom:12px;display:flex}.symptoms-list-grid{border:2px solid var(--border-color);border-radius:var(--radius-md);background-color:#121212;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;max-height:560px;padding:10px;display:grid;overflow-y:auto}.symptom-checkbox-card{border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;-webkit-user-select:none;user-select:none;background-color:#181818;align-items:flex-start;gap:18px;min-height:76px;padding:20px;transition:border-color .2s,background-color .2s,box-shadow .2s,transform .1s;display:flex}.symptom-checkbox-card:active{transform:scale(.97)}.symptom-checkbox-card:hover{background-color:#202020;border-color:#555}.symptom-checkbox-card.selected{border-color:var(--primary-color);box-shadow:0 0 0 1.5px var(--primary-color);background-color:#1db9541f}.symptom-checkbox-card input[type=checkbox]{cursor:pointer;appearance:none;background-color:#121212;border:2px solid #555;border-radius:8px;flex-shrink:0;width:26px;height:26px;margin-top:1px;transition:background-color .15s,border-color .15s;position:relative}.symptom-checkbox-card input[type=checkbox]:checked{background-color:var(--primary-color);border-color:var(--primary-color)}.symptom-checkbox-card input[type=checkbox]:checked:after{content:"✓";color:#fff;font-size:16px;font-weight:800;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.symptom-checkbox-card span{color:#fff;font-size:16px;font-weight:700;line-height:1.4}.diagnostic-dashboard{flex-direction:column;gap:32px;display:flex;position:sticky;top:110px}@media (width<=1024px){.diagnostic-dashboard{position:static}}.metrics-panel{grid-template-columns:1fr;gap:28px;display:grid}@media (width<=1024px) and (width>=601px){.metrics-panel{grid-template-columns:1fr 1fr}.diagnostic-alert{grid-column:1/-1}}.metric-card{background-color:var(--card-bg);border:2px solid var(--border-color);border-radius:var(--radius-md);text-align:center;box-shadow:var(--shadow-sm);flex-direction:column;justify-content:center;align-items:center;padding:32px;display:flex;position:relative;overflow:hidden}.metric-card.alert-high{border-left:6px solid #f25c54}.metric-card.alert-medium{border-left:6px solid #ffb703}.metric-card.alert-low{border-left:6px solid #1db954}.metric-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:1.8px;margin-bottom:14px;font-size:12px;font-weight:800}.metric-value{color:#fff;letter-spacing:-1px;font-size:56px;font-weight:800}.diagnostic-alert{border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex-direction:column;gap:12px;padding:28px;font-size:15px;line-height:1.7;display:flex}.diagnostic-alert.error{color:#fca5a5;background-color:#2c1516;border:2px solid #4a1c1d}.diagnostic-alert.success{color:#a7f3d0;background-color:#132d15;border:2px solid #1b4d22}.diagnostic-alert.info{color:#bfdbfe;background-color:#162238;border:2px solid #20365c}.canvas-container{border-radius:var(--radius-md);background-color:#121212;border:none;width:100%;height:660px;position:relative;overflow:hidden}@media (width<=768px){.canvas-container{height:540px}}.map-legend-card{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-md);z-index:80;pointer-events:none;width:290px;font-family:var(--font-family);background-color:#141414eb;border:1px solid #ffffff14;flex-direction:column;gap:10px;padding:16px;display:flex;position:absolute;top:24px;right:24px;box-shadow:0 8px 32px #0009}.map-legend-card .legend-title{color:var(--text-primary);letter-spacing:.5px;text-transform:uppercase;align-items:center;gap:8px;font-size:13px;font-weight:800;display:flex}.map-legend-card .legend-text{color:var(--text-secondary);margin:0;font-size:11.5px;line-height:1.5}.map-legend-card .legend-item{color:var(--text-secondary);align-items:flex-start;gap:10px;font-size:11.5px;line-height:1.4;display:flex}.map-legend-card .legend-item strong{color:var(--text-primary)}.map-legend-card .legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:4px}.node-info-panel{border-radius:var(--radius-md);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:5;background-color:#181818f5;border:2px solid #333;max-height:240px;padding:26px;position:absolute;bottom:24px;left:24px;right:24px;overflow-y:auto}.node-info-title{color:#fff;align-items:center;gap:14px;margin-bottom:10px;font-size:18px;font-weight:700;display:flex}.node-info-desc{color:var(--text-secondary);font-size:14.5px;line-height:1.6}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#121212}::-webkit-scrollbar-thumb{background:#333;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}.canvas-loading{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;border-radius:var(--radius-md);background-color:#121212bf;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.footer{border-top:1px solid var(--border-color);z-index:100;font-family:var(--font-family);background-color:#0c0c0c;flex-shrink:0;justify-content:space-between;align-items:center;gap:24px;padding:14px 32px;display:flex}.footer-copyright{color:var(--text-secondary);white-space:nowrap;font-size:12px;font-weight:500}.footer-copyright a{color:var(--primary-color);font-weight:700;text-decoration:none;transition:color .2s}.footer-copyright a:hover{color:#1ed760;text-decoration:underline}.footer-disclaimer{color:#666;text-align:right;max-width:950px;font-size:10.5px;line-height:1.45}.footer-disclaimer strong{color:var(--text-secondary)}@media (width<=1024px){.footer{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:16px 20px}.footer-disclaimer{text-align:center;max-width:100%}}.sidebar-hypothesis-card{border-left:3px solid var(--primary-color);background-color:#ffffff05;border-radius:4px;flex-direction:column;gap:8px;margin-top:auto;padding:16px;display:flex}.sidebar-hypothesis-card .hypothesis-title{color:var(--text-primary);text-transform:uppercase;letter-spacing:.8px;margin:0;font-size:13px;font-weight:800}.sidebar-hypothesis-card .hypothesis-subtitle{color:var(--primary-color);margin:0;font-size:12px;font-weight:700}.sidebar-hypothesis-card .hypothesis-text{color:var(--text-secondary);margin:0;font-size:11.5px;line-height:1.55}.proof-banner{border-bottom:1px solid var(--border-color);color:var(--text-secondary);background-color:#ffffff04;flex-shrink:0;align-items:center;min-height:44px;padding:10px 32px;font-size:12.5px;line-height:1.5;display:flex}.proof-banner p{width:100%;margin:0}.proof-banner strong{color:var(--text-primary)}.proof-banner strong:first-child{color:var(--primary-color)}
