:root{--primary-hue: 225;--primary-saturation: 100%;--primary-base: hsl(var(--primary-hue), var(--primary-saturation), 14%);--primary-darker: hsl(var(--primary-hue), var(--primary-saturation), 10%);--primary-lighter: hsl(var(--primary-hue), 80%, 25%);--primary-lightest: hsl(var(--primary-hue), 60%, 85%);--primary-highlight: hsl(var(--primary-hue), 100%, 60%);--secondary-color: #001847;--accent-color: #e74c3c;--text-base: hsl(var(--primary-hue), 10%, 95%);--text-muted: hsl(var(--primary-hue), 10%, 70%);--text-secondary: hsl(var(--primary-hue), 10%, 70%);--text-dark: hsl(var(--primary-hue), 10%, 15%);--bg-base: hsl(var(--primary-hue), 15%, 10%);--bg-panel: hsl(var(--primary-hue), 15%, 15%);--bg-panel-header: hsl(var(--primary-hue), 15%, 18%);--bg-highlight: hsl(var(--primary-hue), 15%, 20%);--border-base: hsl(var(--primary-hue), 10%, 25%);--border-highlight: hsl(var(--primary-hue), 10%, 35%);--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px rgba(0, 0, 0, .15);--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: .75rem;--spacing-lg: 1rem;--spacing-xl: 1.5rem;--spacing-xxl: 2rem;--font-sans: "Poppins", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-xxl: 1.5rem;--primary-base-rgb: 0, 24, 71;--bg-panel-rgb: 38, 38, 47;--graph-color-1: #34d399;--graph-color-2: #60a5fa;--graph-color-3: #facc15;--graph-color-4: #f87171;--graph-color-5: #c084fc;--graph-color-1-rgb: 52, 211, 153;--graph-color-2-rgb: 96, 165, 250;--graph-color-3-rgb: 250, 204, 21;--graph-color-4-rgb: 248, 113, 113;--graph-color-5-rgb: 192, 132, 252;--dls-threshold-0: 0;--dls-color-0: #67e8f9;--dls-threshold-1: 1;--dls-color-1: #a3e635;--dls-threshold-2: 3;--dls-color-2: #facc15;--dls-threshold-3: 6;--dls-color-3: #f97316;--dls-threshold-4: 9;--dls-color-4: #ec4899;--dls-num-steps: 5}body.light-mode{--primary-hue: 210;--primary-saturation: 70%;--primary-base: hsl(var(--primary-hue), var(--primary-saturation), 50%);--primary-darker: hsl(var(--primary-hue), var(--primary-saturation), 40%);--primary-lighter: hsl(var(--primary-hue), var(--primary-saturation), 90%);--primary-lightest: hsl(var(--primary-hue), var(--primary-saturation), 95%);--primary-highlight: hsl(var(--primary-hue), 80%, 60%);--secondary-color: #001847;--accent-color: #c0392b;--text-base: hsl(var(--primary-hue), 10%, 15%);--text-muted: hsl(var(--primary-hue), 10%, 40%);--text-secondary: hsl(var(--primary-hue), 10%, 40%);--text-dark: hsl(var(--primary-hue), 10%, 95%);--bg-base: hsl(var(--primary-hue), 20%, 98%);--bg-panel: hsl(0, 0%, 100%);--bg-panel-header: hsl(var(--primary-hue), 20%, 95%);--bg-highlight: hsl(var(--primary-hue), 20%, 92%);--border-base: hsl(var(--primary-hue), 15%, 85%);--border-highlight: hsl(var(--primary-hue), 15%, 75%);--primary-base-rgb: 77, 136, 230;--bg-panel-rgb: 255, 255, 255;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 3px 5px rgba(0, 0, 0, .08);--graph-color-1: #10b981;--graph-color-2: #3b82f6;--graph-color-3: #eab308;--graph-color-4: #ef4444;--graph-color-5: #a855f7;--graph-color-1-rgb: 16, 185, 129;--graph-color-2-rgb: 59, 130, 246;--graph-color-3-rgb: 234, 179, 8;--graph-color-4-rgb: 239, 68, 68;--graph-color-5-rgb: 168, 85, 247}.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-xxl{font-size:var(--font-size-xxl)}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.hidden{display:none!important}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box;transition:background-color .3s ease,border-color .3s ease}html{scrollbar-width:thin;scrollbar-color:var(--primary-lighter) var(--bg-panel)}html::-webkit-scrollbar{width:8px}html::-webkit-scrollbar-track{background:var(--bg-panel)}html::-webkit-scrollbar-thumb{background-color:var(--primary-lighter);border-radius:4px;border:2px solid var(--bg-panel)}body{font-family:var(--font-sans);color:var(--text-base);background-color:var(--bg-base);line-height:1.6;font-size:var(--font-size-sm);overflow:hidden}h1,h2,h3,h4,h5,h6{color:var(--text-heading);font-weight:600;line-height:1.3;transition:color .3s ease}h1{font-size:var(--font-size-xl);margin-bottom:var(--spacing-lg)}h2{font-size:var(--font-size-lg);margin-bottom:var(--spacing-md)}h3{font-size:var(--font-size-base);margin-bottom:0;font-weight:500}.switch{position:relative;display:inline-block;width:40px;height:20px;min-width:40px;background-color:var(--border-base);border-radius:20px;transition:background-color .3s;vertical-align:middle;flex-shrink:0}.switch input{opacity:0;width:0;height:0}.switch .slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:transparent;border-radius:20px;transition:.4s}.switch .slider:before{position:absolute;content:"";height:16px;width:16px;left:2px;bottom:2px;background-color:var(--text-muted);border-radius:50%;transition:.4s;box-shadow:var(--shadow-sm)}.switch input:checked+.slider{background-color:var(--primary-highlight)}.switch input:checked+.slider:before{transform:translate(20px);background-color:#fff}body.light-mode .switch{background-color:var(--border-base)}body.light-mode .switch .slider:before{background-color:var(--bg-base);box-shadow:var(--shadow-sm)}body.light-mode .switch input:checked+.slider{background-color:var(--primary-highlight)}body.light-mode .switch input:checked+.slider:before{background-color:#fff}.app-container{display:flex;flex-direction:column;height:100vh}main{display:flex;flex:1;overflow:hidden;background-color:var(--bg-base);position:relative}#main-content-area{flex:1;display:flex;flex-direction:column;overflow:hidden}#logo-container{position:absolute;top:var(--spacing-lg);left:var(--spacing-lg);z-index:100;background-color:rgba(var(--bg-panel-rgb),.7);padding:var(--spacing-sm);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid var(--border-base);box-shadow:var(--shadow-sm)}#logo-container img{display:block;width:32px;height:32px}body.light-mode #logo-container{background-color:rgba(var(--bg-panel-rgb),.7);border:1px solid var(--border-base)}#header-root{position:absolute;top:calc(var(--spacing-lg) + 42px + 5px);left:var(--spacing-lg);z-index:1001}#scene-container{flex:1;position:relative;overflow:hidden;background-color:var(--bg-base);min-height:100px}.loading{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(var(--bg-base-rgb),.85);display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:1001;color:var(--text-heading);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:1;transition:opacity .3s ease-out}.loading p{margin-top:var(--spacing-md);font-size:var(--font-size-base);font-weight:500}.loading-spinner{width:40px;height:40px;border:4px solid var(--border-base);border-top-color:var(--primary-highlight);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading[style*="display: none"]{opacity:0;pointer-events:none}#right-panel{width:380px;min-width:320px;max-width:450px;display:flex;flex-direction:column;border-left:1px solid var(--border-base);background-color:var(--bg-panel);overflow:hidden}#right-panel-content{flex:1;overflow-y:auto;overflow-x:hidden}.right-panel-section{border:none;border-radius:0;background-color:transparent;margin-bottom:0;overflow:visible;border-bottom:1px solid var(--border-base)}.right-panel-section:last-child{margin-bottom:0;border-bottom:none}.section-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);cursor:pointer;background-color:var(--bg-panel);border-bottom:none;transition:background-color .2s ease;-webkit-user-select:none;user-select:none}.section-header:hover{background-color:var(--bg-highlight)}.section-header h3{flex-grow:1;color:var(--text-heading);font-size:var(--font-size-base);font-weight:500;margin:0}.section-toggle-icon{font-size:var(--font-size-lg);margin-left:var(--spacing-md);color:var(--text-muted);transition:transform .3s ease;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center}.section-header .section-toggle-icon.collapsed{transform:rotate(-90deg)}.section-header .section-toggle-icon.expanded{transform:rotate(0)}.section-body{padding:0 var(--spacing-lg);background-color:var(--bg-base);display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease-out,padding .3s ease-out;overflow:hidden;border-top:none}.section-body.expanded{grid-template-rows:1fr;padding-top:var(--spacing-lg);padding-bottom:var(--spacing-xl)}.section-body>div{overflow:hidden}h4{font-size:var(--font-size-sm);color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.5px;border-bottom:none;padding-bottom:var(--spacing-xs);margin-top:var(--spacing-xl);margin-bottom:var(--spacing-md)}.section-body>div>h4:first-child{margin-top:0}#run-simulation{margin-top:var(--spacing-lg)}body.light-mode .right-panel-section{background-color:transparent;border-bottom-color:var(--border-base)}body.light-mode .section-header{background-color:var(--bg-panel)}body.light-mode .section-header:hover{background-color:var(--bg-highlight)}body.light-mode .section-header h3{color:var(--text-heading)}body.light-mode .section-body{background-color:var(--bg-base)}@media (max-width: 768px){#logo-container{top:var(--spacing-md);left:var(--spacing-md);padding:var(--spacing-xs)}#logo-container img{width:30px;height:30px}#right-panel{width:100%;max-width:none;border-left:none;border-top:1px solid var(--border-base)}#right-panel-content{padding:0 var(--spacing-lg) var(--spacing-lg) var(--spacing-lg)}.right-panel-section{margin-bottom:var(--spacing-lg)}.section-header{padding:var(--spacing-sm) var(--spacing-md)}.section-body.expanded{padding:var(--spacing-md) var(--spacing-md) var(--spacing-lg)}#parameter-controls-target .button-group{grid-template-columns:1fr;gap:var(--spacing-sm)}h4{margin-top:var(--spacing-lg);margin-bottom:var(--spacing-sm)}}.setting-item{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);padding:var(--spacing-sm) 0;min-height:34px}.setting-item:last-child{margin-bottom:0}.setting-item>span:first-child{margin-right:var(--spacing-lg);color:var(--text-base);font-size:var(--font-size-sm);flex-shrink:0;flex-grow:1}.setting-item>.switch{margin-left:var(--spacing-md)}label{display:block;font-size:var(--font-size-sm);font-weight:500;color:var(--text-base);margin-bottom:var(--spacing-xs)}label .value-display{color:var(--text-muted);font-size:var(--font-size-xs);margin-left:var(--spacing-sm);font-weight:400;background-color:var(--bg-highlight);padding:2px var(--spacing-xs);border-radius:var(--radius-sm);display:inline-block}.input-group{margin-bottom:var(--spacing-lg)}.input-group:last-child{margin-bottom:0}input[type=text],input[type=number],select{display:block;width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);font-family:inherit;font-weight:400;line-height:1.5;color:var(--text-base);background-color:var(--bg-base);background-clip:padding-box;border:1px solid var(--border-base);-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--radius-sm);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}input[type=text]:focus,input[type=number]:focus,select:focus{color:var(--text-base);background-color:var(--bg-base);border-color:var(--primary-highlight);outline:0;box-shadow:0 0 0 .2rem rgba(var(--primary-highlight-rgb),.25)}select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right var(--spacing-md) center;background-repeat:no-repeat;background-size:1em 1em;padding-right:calc(var(--spacing-md) * 2 + 1em)}body.light-mode select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%23374151' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-color:var(--bg-panel);border-color:var(--border-base)}body.light-mode input[type=text],body.light-mode input[type=number]{background-color:var(--bg-panel);border-color:var(--border-base)}.button{display:inline-flex;align-items:center;justify-content:center;font-family:inherit;font-size:var(--font-size-sm);font-weight:500;line-height:1.5;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid transparent;border-radius:var(--radius-md);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;height:38px;padding:0 var(--spacing-lg)}.button.primary{color:#fff;background-color:var(--primary-highlight);border-color:var(--primary-highlight)}.button.primary:hover{background-color:hsl(var(--primary-hue),100%,55%);border-color:hsl(var(--primary-hue),100%,55%)}.button.secondary{color:var(--text-heading);background-color:var(--bg-highlight);border-color:var(--border-base)}.button.secondary:hover{background-color:var(--border-base);border-color:var(--border-highlight)}.button:disabled{opacity:.5;cursor:not-allowed}.button-group{display:flex;flex-wrap:wrap;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.button-group .button{flex-grow:1}#parameter-controls-target .button-group{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm);margin-bottom:var(--spacing-xl)}#parameter-controls-target .button-group .button{flex-grow:0;width:100%}input[type=range]{width:100%;height:6px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-highlight);border-radius:var(--radius-full);outline:none;transition:background .2s;margin-top:var(--spacing-xs);margin-bottom:var(--spacing-xs)}input[type=range]:hover{background:var(--border-base)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;background:var(--primary-highlight);border-radius:50%;cursor:pointer;border:none;transition:background .2s;box-shadow:var(--shadow-sm)}input[type=range]::-moz-range-thumb{width:16px;height:16px;background:var(--primary-highlight);border-radius:50%;cursor:pointer;border:none;transition:background .2s;box-shadow:var(--shadow-sm)}input[type=range]:hover::-webkit-slider-thumb{background:hsl(var(--primary-hue),100%,55%)}input[type=range]:hover::-moz-range-thumb{background:hsl(var(--primary-hue),100%,55%)}#pump-position-display,#pump-efficiency-display{color:var(--text-muted);font-size:var(--font-size-sm);padding-left:0;margin-top:var(--spacing-sm);line-height:1.5;background-color:var(--bg-highlight);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);display:block;border:1px solid var(--border-base)}.section-body>div>.input-group:last-child,.section-body>div>.setting-item:last-child{margin-bottom:0}.tooltip{position:absolute;background-color:rgba(var(--bg-panel-rgb),.85);color:var(--text-base);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);border:1px solid var(--border-base);font-size:var(--font-size-xs);pointer-events:none;white-space:pre-wrap;max-width:250px;box-shadow:var(--shadow-md);z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}#toast-container{position:absolute;bottom:var(--spacing-lg);left:50%;transform:translate(-50%);display:flex;flex-direction:column-reverse;align-items:center;gap:var(--spacing-sm);z-index:1001;pointer-events:none;width:max-content;max-width:80%}.toast-item{background-color:rgba(var(--bg-panel-rgb),.9);color:var(--text-base);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);border:1px solid var(--border-base);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);font-size:var(--font-size-sm);opacity:0;transform:translateY(20px);animation:toast-fade-in .4s ease-out forwards,toast-fade-out .4s 2.6s ease-in forwards;pointer-events:auto;max-width:100%;text-align:center}.toast-item.success{border-right:none;border-left:4px solid #4ade80}.toast-item.error{border-right:none;border-left-width:4px;border-left-style:solid;border-left-color:var(--accent-color)}.toast-item.info{border-right:none;border-left:4px solid #60a5fa}body.light-mode .toast-item{background-color:rgba(var(--bg-panel-rgb),.9);color:var(--text-base);border-color:var(--border-base);box-shadow:var(--shadow-sm)}body.light-mode .toast-item.error{border-left-color:#e74c3c}body.light-mode .toast-item.success{border-left-color:#4ade80}@keyframes toast-fade-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}#graph-carousel-container{position:fixed;bottom:0;left:0;right:0;height:0;background-color:rgba(var(--bg-panel-rgb),.85);border-top:1px solid var(--border-base);overflow:hidden;transition:height .3s ease-out;z-index:998;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:var(--shadow-lg-reverse)}#graph-carousel-container.visible{height:18%;min-height:150px;max-height:200px}.graph-carousel-content{display:flex;height:100%;padding:var(--spacing-md);gap:var(--spacing-md);overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:var(--primary-lighter) transparent}.graph-carousel-content::-webkit-scrollbar{height:6px}.graph-carousel-content::-webkit-scrollbar-track{background:transparent}.graph-carousel-content::-webkit-scrollbar-thumb{background-color:var(--primary-lighter);border-radius:3px}.graph-card{flex:0 0 200px;height:100%;background-color:var(--bg-base);border:1px solid var(--border-base);border-radius:var(--radius-md);padding:var(--spacing-sm);display:flex;flex-direction:column;position:relative;overflow:hidden;box-shadow:var(--shadow-sm)}.graph-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xs)}.graph-card-header h5{font-size:var(--font-size-xs);color:var(--text-muted);font-weight:500;margin:0;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.graph-status-indicator{width:10px;height:10px;border-radius:50%;margin-left:var(--spacing-sm);flex-shrink:0;background-color:var(--text-muted);border:1px solid var(--border-highlight)}.graph-status-indicator.ok{background-color:#4ade80}.graph-status-indicator.warn{background-color:#facc15}.graph-status-indicator.alert{background-color:var(--accent-color)}.graph-current-value{font-size:var(--font-size-lg);color:var(--text-heading);font-weight:500;line-height:1.2;margin-bottom:var(--spacing-xs);white-space:nowrap}.graph-current-value span.unit{font-size:var(--font-size-xs);color:var(--text-muted);margin-left:var(--spacing-xs);font-weight:400}.graph-chart-area{flex-grow:1;min-height:50px;position:relative}.graph-expand-icon{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);width:16px;height:16px;cursor:pointer;color:var(--text-muted);opacity:.5;transition:opacity .2s,color .2s;background:none;border:none;padding:0;display:flex;align-items:center;justify-content:center}.graph-expand-icon:hover{opacity:1;color:var(--primary-highlight)}.graph-expand-icon svg{width:12px;height:12px;fill:currentColor}body.light-mode #graph-carousel-container{background-color:rgba(var(--bg-panel-rgb),.9);border-top-color:var(--border-base)}body.light-mode .graph-card{background-color:var(--bg-panel);border-color:var(--border-highlight)}body.light-mode .graph-status-indicator{border-color:var(--border-base)}body.light-mode .graph-status-indicator.alert{background-color:#e74c3c}body.light-mode .graph-expand-icon:hover{color:var(--primary-highlight)}#graph-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(var(--bg-base-rgb),.7);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:1002;display:flex;justify-content:center;align-items:center;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility 0s .3s linear}#graph-modal-overlay.visible{opacity:1;visibility:visible;transition:opacity .3s ease,visibility 0s 0s linear}.graph-modal-content{background-color:var(--bg-panel);border-radius:var(--radius-lg);border:1px solid var(--border-base);box-shadow:var(--shadow-xl);width:80%;max-width:900px;height:70%;max-height:600px;display:flex;flex-direction:column;position:relative;padding:var(--spacing-lg);transform:scale(.95);transition:transform .3s ease}#graph-modal-overlay.visible .graph-modal-content{transform:scale(1)}.graph-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-base)}.graph-modal-header h4{font-size:var(--font-size-lg);color:var(--text-heading);margin:0}.graph-modal-close-btn{background:none;border:none;font-size:var(--font-size-xl);line-height:1;cursor:pointer;color:var(--text-muted);padding:var(--spacing-xs);transition:color .2s}.graph-modal-close-btn:hover{color:var(--text-heading)}.graph-modal-chart-area{flex-grow:1;position:relative;overflow:hidden}body.light-mode .graph-modal-content{background-color:var(--bg-panel);border-color:var(--border-highlight)}body.light-mode .graph-modal-header{border-bottom-color:var(--border-base)}body.light-mode .graph-modal-close-btn:hover{color:var(--text-base)}.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;-webkit-user-select:none;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:rgba(0,0,0,.07);position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(var(--bg-base-rgb),.7);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:1002;display:flex;justify-content:center;align-items:center;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility 0s .3s linear;padding:var(--spacing-lg)}.modal-overlay.visible{opacity:1;visibility:visible;transition:opacity .3s ease,visibility 0s 0s linear}.modal-content{background-color:var(--bg-panel);border-radius:var(--radius-lg);border:1px solid var(--border-base);box-shadow:var(--shadow-xl);width:90%;max-width:500px;max-height:80vh;display:flex;flex-direction:column;position:relative;overflow:hidden;transform:scale(.95) translateY(10px);opacity:0;transition:transform .3s ease,opacity .3s ease}.modal-overlay.visible .modal-content{transform:scale(1) translateY(0);opacity:1}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-base);flex-shrink:0}.modal-header h4{font-size:var(--font-size-lg);color:var(--text-heading);margin:0}.modal-header .close-button{background:none;border:none;font-size:var(--font-size-xl);line-height:1;cursor:pointer;color:var(--text-muted);padding:var(--spacing-xs);transition:color .2s}.modal-header .close-button:hover{color:var(--text-heading)}.modal-body{padding:var(--spacing-lg);overflow-y:auto;flex-grow:1}.modal-body h5{font-size:var(--font-size-sm);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:0;margin-bottom:var(--spacing-md)}.modal-body hr{border:none;border-top:1px solid var(--border-base);margin:var(--spacing-lg) 0}.modal-body ul{list-style:none;padding:0;margin:0 0 var(--spacing-lg) 0}.modal-body li{padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-xs);cursor:pointer;border-radius:var(--radius-sm);border:1px solid transparent;transition:background-color .2s,border-color .2s}.modal-body li:hover{background-color:var(--bg-highlight);border-color:var(--border-base);color:var(--primary-highlight)}.modal-body li:last-child{margin-bottom:0}.modal-body .button{width:100%;margin-top:var(--spacing-md)}.modal-footer{display:flex;justify-content:flex-end;padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--border-base);gap:var(--spacing-md);flex-shrink:0}body.light-mode .modal-overlay{background-color:rgba(var(--bg-base-rgb),.6)}body.light-mode .modal-content{background-color:var(--bg-panel);border-color:var(--border-highlight)}body.light-mode .modal-header{border-bottom-color:var(--border-base)}body.light-mode .modal-header .close-button:hover{color:var(--text-base)}body.light-mode .modal-body hr{border-top-color:var(--border-base)}body.light-mode .modal-body li:hover{background-color:var(--bg-highlight);border-color:var(--border-base)}body.light-mode .modal-footer{border-top-color:var(--border-base)}.modal-content.graph-modal{max-width:800px;width:90%;max-height:550px}.graph-modal .modal-body{padding:var(--spacing-md);display:flex;flex-direction:column}.graph-modal-chart-area{width:100%;flex-grow:1;min-height:300px;margin-bottom:var(--spacing-md)}.modal-current-value{font-size:var(--font-size-sm);color:var(--text-muted);text-align:center;margin-top:auto;padding-top:var(--spacing-sm);border-top:1px solid var(--border-base);flex-shrink:0}.graph-modal .u-legend{font-size:var(--font-size-xs);color:var(--text-secondary);padding-bottom:var(--spacing-sm)}.graph-modal .u-legend .u-series th{color:var(--text-primary);font-weight:500;padding-right:var(--spacing-md)}.graph-modal .u-legend .u-series td{color:var(--text-base);text-align:right}.graph-modal .u-legend .u-marker{border:1px solid rgba(var(--text-muted-rgb),.5)}body.light-mode .modal-current-value{border-top-color:var(--border-base)}body.light-mode .graph-modal .u-legend{color:var(--text-secondary)}body.light-mode .graph-modal .u-legend .u-series th{color:var(--text-heading)}body.light-mode .graph-modal .u-legend .u-series td{color:var(--text-base)}body.light-mode .graph-modal .u-legend .u-marker{border-color:rgba(var(--text-muted-rgb),.8)}.well-selector-modal .modal-content{max-width:600px;max-height:85vh}.well-selector-modal .modal-body{padding:var(--spacing-lg) var(--spacing-xl)}.modal-tabs{display:flex;border-bottom:1px solid var(--border-base);margin-bottom:0;padding:0 var(--spacing-xl);margin-left:calc(-1 * var(--spacing-xl));margin-right:calc(-1 * var(--spacing-xl));padding-left:var(--spacing-xl);padding-right:var(--spacing-xl)}.tab-button{padding:.8rem 1rem;margin-right:var(--spacing-md);cursor:pointer;border:none;border-bottom:3px solid transparent;background-color:transparent;color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:500;margin-bottom:-1px;transition:color .2s ease,border-color .2s ease;flex-shrink:0;position:relative}.tab-button:last-child{margin-right:0}.tab-button:hover{color:var(--text-base)}.tab-button.active{color:var(--primary-highlight);border-bottom:3px solid var(--primary-highlight);font-weight:600}.tab-button:focus{outline:none}.tab-button:focus-visible{outline:2px solid var(--primary-highlight);outline-offset:2px;border-radius:var(--radius-sm)}.modal-tab-content h5{margin-top:var(--spacing-lg);margin-bottom:var(--spacing-lg);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.modal-tab-content .well-list{max-height:300px;overflow-y:auto;margin-left:calc(-1 * var(--spacing-sm));margin-right:calc(-1 * var(--spacing-sm));padding-right:var(--spacing-xs);margin-bottom:var(--spacing-lg)}.modal-tab-content .well-list li{padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-xs);border-radius:var(--radius-sm);border:1px solid transparent;transition:background-color .2s,border-color .2s,color .2s;cursor:pointer;color:var(--text-base)}.modal-tab-content .well-list li:hover{background-color:var(--bg-highlight);border-color:var(--border-base);color:var(--primary-highlight)}.modal-tab-content .well-list li:focus-visible{outline:none;border:1px solid var(--primary-highlight);background-color:var(--bg-highlight);color:var(--primary-highlight)}.modal-tab-content .file-upload-container{margin-top:var(--spacing-md);border:2px dashed var(--border-base);border-radius:var(--radius-lg);padding:var(--spacing-xl);text-align:center;background-color:var(--bg-base);transition:border-color .2s,background-color .2s}.modal-tab-content .file-upload-container:hover,.modal-tab-content .file-upload-container.is-dragging{border-color:var(--primary-highlight);background-color:var(--bg-panel)}.modal-tab-content .file-upload-container p{margin:var(--spacing-md) 0;color:var(--text-muted)}.modal-tab-content .file-upload-container .file-upload-button,.modal-tab-content .file-upload-container .file-select-link{background:none;border:none;color:var(--primary-highlight);cursor:pointer;text-decoration:underline;padding:0;display:inline;font-size:inherit}.modal-tab-content .file-upload-container .file-upload-button:hover,.modal-tab-content .file-upload-container .file-select-link:hover{text-decoration:none}.modal-tab-content .file-upload-container>button{display:none}.modal-tab-content .form-group{margin-bottom:var(--spacing-lg)}.modal-tab-content label{display:block;margin-bottom:var(--spacing-sm);color:var(--text-secondary);font-size:var(--font-size-sm)}.modal-tab-content input[type=text]{width:100%;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--bg-highlight);border:1px solid var(--border-base);border-radius:var(--radius-md);color:var(--text-base);font-size:var(--font-size-base);transition:border-color .2s ease}.modal-tab-content input[type=text]:focus{border-color:var(--primary-highlight);outline:none;box-shadow:0 0 0 2px rgba(var(--primary-highlight-rgb),.2)}.modal-tab-content .button{margin-top:var(--spacing-sm);width:100%}.modal-tab-content .button:disabled{background-color:var(--bg-highlight);border-color:var(--border-base);color:var(--text-muted);cursor:not-allowed;opacity:.7}.modal-tab-content .button.button-primary{background-color:var(--primary-highlight);color:var(--text-dark);border:1px solid var(--primary-highlight);width:100%;margin-top:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-weight:600;transition:background-color .2s,border-color .2s,opacity .2s}.modal-tab-content .button.button-primary:hover{background-color:hsl(var(--primary-hue),100%,70%);border-color:hsl(var(--primary-hue),100%,70%);color:var(--text-dark)}.modal-tab-content .button.button-primary:active{background-color:hsl(var(--primary-hue),100%,55%);border-color:hsl(var(--primary-hue),100%,55%)}.modal-tab-content .button.button-primary:disabled{background-color:var(--bg-highlight);border-color:var(--border-base);color:var(--text-muted);cursor:not-allowed;opacity:.6}.modal-tab-content p{font-size:var(--font-size-sm);margin-top:var(--spacing-md);margin-bottom:var(--spacing-md)}.modal-tab-content .error-text{color:var(--accent-color);font-weight:500;background-color:rgba(var(--accent-color-rgb),.1);border:1px solid rgba(var(--accent-color-rgb),.3);border-radius:var(--radius-sm);padding:var(--spacing-sm) var(--spacing-md)}.well-list li .well-actions{display:flex;align-items:center;gap:var(--spacing-sm, 8px);flex-shrink:0}.well-list li .well-name{flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:var(--spacing-md, 12px)}.well-list li{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm, 8px) var(--spacing-md, 12px);margin-bottom:var(--spacing-xs, 4px);border-radius:var(--radius-sm, 4px);border:1px solid transparent;cursor:pointer;color:var(--text-base);transition:background-color .2s ease-in-out,border-color .15s ease-in-out,color .15s ease-in-out;overflow:hidden}.well-list li:hover{background-color:var(--bg-highlight, hsl(225, 15%, 20%));border-color:var(--border-base, hsl(225, 10%, 25%));color:var(--text-base)}.well-list li:focus-visible{outline:none;border:1px solid var(--primary-highlight);background-color:var(--bg-highlight, hsl(225, 15%, 20%));color:var(--primary-highlight)}.graph-carousel-container{position:relative;width:100%;padding:0 var(--spacing-lg);box-sizing:border-box}.graph-carousel-container:not(.hidden){max-height:200px;border-top-width:1px;padding-top:var(--spacing-sm);padding-bottom:var(--spacing-sm)}.graph-carousel-scroll{display:flex;gap:var(--spacing-md);overflow-x:auto;overflow-y:hidden;padding:var(--spacing-sm) 0;scroll-behavior:smooth;scroll-snap-type:x mandatory;-ms-overflow-style:none;scrollbar-width:none}.graph-carousel-scroll::-webkit-scrollbar{display:none}.graph-carousel-scroll .graph-card{scroll-snap-align:start;flex:0 0 auto;width:200px;height:120px;background-color:var(--background-tertiary)}.carousel-nav-button{position:absolute;top:50%;transform:translateY(-50%);z-index:10;background-color:rgba(var(--bg-panel-rgb),.7);border:1px solid var(--border-base);border-radius:50%;width:30px;height:30px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-primary);font-size:1.2rem;line-height:1;transition:background-color .2s,border-color .2s;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.carousel-nav-button:hover{background-color:rgba(var(--bg-highlight-rgb),.8);border-color:var(--border-highlight)}.carousel-nav-button.left{left:5px}.carousel-nav-button.right{right:5px}.carousel-nav-button.hidden{display:none}.dropdown-menu{position:absolute;top:0;left:0;background-color:var(--background-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius);box-shadow:var(--shadow-md);min-width:220px;z-index:1002;padding:5px 0;opacity:0;transform:translateY(-10px);visibility:hidden;pointer-events:none;transition:opacity .3s ease,transform .3s ease,visibility 0s .3s}.dropdown-menu.open{opacity:1;transform:translateY(0);visibility:visible;pointer-events:auto;transition:opacity .3s ease,transform .3s ease,visibility 0s 0s}.dropdown-item{display:flex;justify-content:space-between;align-items:center;padding:8px 15px;color:var(--text-primary);font-size:var(--font-size-sm);white-space:nowrap}.dropdown-item span:first-child{margin-right:10px}.dropdown-item .switch{margin-left:auto}.dropdown-divider{height:1px;background-color:var(--border-color);margin:5px 0}.dropdown-item.button-link{background:none;border:none;text-align:left;width:100%;cursor:pointer}.dropdown-item.button-link:hover{background-color:var(--background-hover)}.well-selector-modal .modal-body ul{list-style:none;padding:0;margin:10px 0;max-height:150px;overflow-y:auto}.well-selector-modal .modal-body li{padding:5px 10px;cursor:pointer;border-radius:var(--border-radius-sm)}.well-selector-modal .modal-body li:hover{background-color:var(--background-hover)}.source-badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs);font-weight:500;border-radius:var(--radius-sm);margin-left:var(--spacing-md);vertical-align:middle;line-height:1.2;text-transform:uppercase;letter-spacing:.5px}.source-badge.petrobench{background-color:hsla(var(--primary-hue),var(--primary-saturation),30%,.8);color:var(--primary-lightest, #e0e0ff);border:1px solid hsla(var(--primary-hue),var(--primary-saturation),40%,.9)}.source-badge.upload{background-color:#1c7d44cc;color:#d9f2e3;border:1px solid hsla(145,63%,40%,.9)}.well-list li{display:flex;justify-content:space-between;align-items:center}.well-list li .well-name{flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:var(--spacing-sm)}.file-upload-container{margin-top:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.file-upload-container h5{font-size:var(--font-size-base);color:var(--text-heading);margin-bottom:var(--spacing-xs)}.file-formats{font-size:var(--font-size-xs);color:var(--text-muted);margin-bottom:var(--spacing-md)}.file-upload-dropzone{border:2px dashed var(--border-base);border-radius:var(--radius-md);padding:var(--spacing-xl);text-align:center;cursor:pointer;background-color:var(--bg-base);transition:border-color .2s ease,background-color .2s ease;min-height:150px;display:flex;flex-direction:column;justify-content:center;align-items:center;outline:none}.file-upload-dropzone:hover,.file-upload-dropzone:focus{border-color:var(--primary-light);background-color:var(--bg-highlight)}.file-upload-dropzone.dragging-over{border-style:solid;border-color:var(--primary-highlight);background-color:var(--bg-primary-highlight-subtle)}.file-upload-dropzone .default-prompt{display:flex;flex-direction:column;align-items:center;color:var(--text-muted)}.file-upload-dropzone .default-prompt svg{width:40px;height:40px;margin-bottom:var(--spacing-md);color:var(--text-muted)}.file-upload-dropzone .default-prompt p{font-size:var(--font-size-sm);margin:0}.file-upload-dropzone .default-prompt .click-select{color:var(--primary-light);font-weight:500;cursor:pointer;text-decoration:underline}.file-upload-dropzone .processing-indicator{display:flex;flex-direction:column;align-items:center;color:var(--text-base)}.file-upload-dropzone .processing-indicator .loading-spinner{margin-bottom:var(--spacing-md)}.file-upload-dropzone .processing-indicator .loading-spinner.small{width:30px;height:30px;border-width:3px}.file-upload-dropzone .processing-indicator span{font-size:var(--font-size-sm)}.file-upload-dropzone.file-selected{border-color:var(--primary-light);background-color:var(--bg-highlight);padding:var(--spacing-md);cursor:default}.file-upload-dropzone .file-preview{display:flex;align-items:center;text-align:left;width:100%}.file-upload-dropzone .file-preview svg{flex-shrink:0;margin-right:var(--spacing-md);color:var(--primary-base)}.file-upload-dropzone .file-preview .file-name{flex-grow:1;font-size:var(--font-size-sm);color:var(--text-base);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-upload-dropzone .file-preview .remove-file-button{background:none;border:none;font-size:var(--font-size-lg);line-height:1;cursor:pointer;color:var(--text-muted);padding:var(--spacing-xs);margin-left:var(--spacing-sm);flex-shrink:0}.file-upload-dropzone .file-preview .remove-file-button:hover{color:var(--danger-base)}.file-upload-container .error-message{color:var(--danger-base);font-size:var(--font-size-xs);margin-top:var(--spacing-sm);text-align:center}.error-summary{background-color:rgba(var(--danger-base-rgb),.05);border:1px solid rgba(var(--danger-base-rgb),.3);border-radius:var(--radius-sm);padding:var(--spacing-md);margin-top:var(--spacing-md)}.error-summary h6{color:var(--danger-base);font-size:var(--font-size-sm);margin:0 0 var(--spacing-sm) 0}.error-summary ul{list-style:none;padding:0;margin:0 0 var(--spacing-sm) 0}.error-summary li{font-size:var(--font-size-xs);color:var(--text-base);margin-bottom:var(--spacing-xs)}.error-summary li:last-child{margin-bottom:0}.error-summary .error-guidance{font-size:var(--font-size-xs);color:var(--text-muted);margin:0;padding-top:var(--spacing-sm);border-top:1px dashed var(--border-base)}.file-upload-dropzone.has-error{border-color:var(--danger-base)}.default-prompt .reselect-hint{display:block;font-size:var(--font-size-xs);color:var(--text-muted);margin-top:var(--spacing-xs)}.select-file-button{margin-top:var(--spacing-md);width:100%}body.light-mode .file-upload-dropzone{background-color:var(--bg-base);border-color:var(--border-base)}body.light-mode .file-upload-dropzone:hover,body.light-mode .file-upload-dropzone:focus{border-color:var(--primary-light);background-color:var(--bg-highlight)}body.light-mode .file-upload-dropzone.dragging-over{background-color:var(--bg-primary-highlight-subtle);border-color:var(--primary-highlight)}body.light-mode .file-upload-dropzone .default-prompt svg,body.light-mode .file-upload-dropzone .default-prompt{color:var(--text-muted)}body.light-mode .file-upload-dropzone .default-prompt .click-select{color:var(--primary-base)}body.light-mode .file-upload-dropzone.file-selected{background-color:var(--bg-highlight);border-color:var(--primary-light)}body.light-mode .file-upload-dropzone .file-preview svg{color:var(--primary-base)}body.light-mode .file-upload-dropzone .file-preview .remove-file-button:hover{color:var(--danger-dark)}body.light-mode .file-upload-dropzone.has-error{border-color:var(--danger-base)}body.light-mode .file-upload-container .error-message{color:var(--danger-dark)}body.light-mode .error-summary{background-color:rgba(var(--danger-base-rgb),.08);border-color:rgba(var(--danger-base-rgb),.4)}body.light-mode .error-summary h6{color:var(--danger-dark)}body.light-mode .error-summary li{color:var(--text-base)}body.light-mode .error-summary .error-guidance{color:var(--text-muted);border-top-color:var(--border-base)}.confirmation-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:hsla(var(--primary-hue, 225),10%,10%,.7);display:flex;align-items:center;justify-content:center;z-index:1050;padding:var(--spacing-lg, 1rem);opacity:0;transition:opacity .2s ease-in-out;pointer-events:none}.confirmation-dialog-overlay.is-open{opacity:1;pointer-events:auto}.confirmation-dialog-content{background-color:var(--bg-panel, hsl(225, 15%, 15%));color:var(--text-base, #eee);padding:var(--spacing-xl, 1.5rem);border-radius:var(--radius-md, .5rem);box-shadow:var(--shadow-md, 0 4px 6px rgba(0, 0, 0, .15));max-width:450px;width:100%;border:1px solid var(--border-base, hsl(225, 10%, 25%));text-align:center;transform:scale(.95);transition:transform .2s ease-in-out}.confirmation-dialog-overlay.is-open .confirmation-dialog-content{transform:scale(1)}.confirmation-dialog-content h4{margin-top:0;margin-bottom:var(--spacing-sm, .5rem);font-size:var(--font-size-lg, 1.125rem);font-weight:600;color:var(--text-base)}.confirmation-dialog-content .dialog-message{margin-bottom:var(--spacing-xl, 1.5rem);color:var(--text-muted, #aaa);line-height:1.6;font-size:var(--font-size-base)}.confirmation-dialog-content .dialog-message strong{color:var(--text-base);font-weight:600}.confirmation-dialog-actions{display:flex;justify-content:center;gap:var(--spacing-md, .75rem)}.button.button-secondary{background-color:var(--bg-highlight, hsl(225, 15%, 20%));color:var(--text-base);border-color:var(--border-highlight, hsl(225, 10%, 35%))}.button.button-secondary:hover:not(:disabled){background-color:var(--border-base, hsl(225, 10%, 25%));border-color:var(--border-highlight)}.button.button-danger{background-color:var(--accent-color, #e74c3c);color:hsl(var(--primary-hue, 225),10%,95%);border-color:var(--accent-color, #e74c3c);font-weight:500}.button.button-danger:hover:not(:disabled){background-color:hsl(var(--accent-hue, 6),60%,45%);border-color:hsl(var(--accent-hue, 6),60%,45%)}
