*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;min-height:100vh;overflow-x:hidden}body{background:#050505;font-family:Inter,Arial,sans-serif}*{box-sizing:border-box}body{color:#e2e8f0;background:#0f172a;margin:0;font-family:Inter,Arial,sans-serif}.login-page{background:radial-gradient(circle at top,#38bdf82e,#0000 40%),#020617;justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.login-card{background:#111827;border:1px solid #1e293b;border-radius:24px;width:100%;max-width:420px;padding:3rem;box-shadow:0 25px 50px #00000073}.login-card h1{text-align:center;color:#f8fafc;margin:0 0 1rem;font-size:2.5rem}.login-card p{text-align:center;color:#94a3b8;margin:0 0 2rem;line-height:1.6}.login-form{flex-direction:column;gap:1.5rem;display:flex}.auth-error{background:#dc262626;border:1px solid #f8717159;border-radius:14px;margin:0;padding:12px 16px;font-size:.95rem;color:#fecaca!important;text-align:center!important}.login-card .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.login-button{color:#fff;cursor:pointer;background:#0284c7;border:none;border-radius:16px;padding:1rem;font-size:1rem;font-weight:700;transition:transform .2s,background .2s}.login-button:hover{background:#0369a1;transform:translateY(-1px)}.password-reset-button{color:#cbd5e1;cursor:pointer;background:0 0;border:1px solid #334155;border-radius:16px;padding:1rem;font-size:.95rem;font-weight:600;transition:background .2s,color .2s,border-color .2s}.password-reset-button:hover{color:#f8fafc;background:#38bdf81f;border-color:#38bdf8}.password-reset-card{background:#0f172a;border:1px solid #1e293b;border-radius:18px;flex-direction:column;gap:1rem;margin-top:1rem;padding:1.5rem;display:flex}.password-reset-card h2{color:#f8fafc;margin:0;font-size:1.1rem}.layout-container{background:#020617;min-height:100vh;display:flex}.sidebar{background:#0f172a;border-right:1px solid #1e293b;flex-direction:column;gap:32px;width:280px;padding:32px 20px;display:flex}.sidebar-header h1{color:#f8fafc;margin:0;font-size:1.5rem}.sidebar-header p{color:#94a3b8;margin-top:8px}.sidebar-nav{flex-direction:column;gap:12px;display:flex}.sidebar-link{color:#cbd5e1;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:14px;width:100%;padding:14px 18px;font-size:1rem;font-weight:600;transition:background .2s,color .2s,transform .2s}.sidebar-link:hover{color:#f8fafc;background:#38bdf81f}.sidebar-link.active{color:#fff;background:#0284c7}.app-container{flex:1;justify-content:stretch;width:100%;min-height:100vh;padding:40px 20px;display:flex;overflow-y:auto}.calculator-card{background:#111827;border:1px solid #1e293b;border-radius:20px;width:100%;max-width:1200px;padding:32px;box-shadow:0 20px 40px #00000059}.calculator-card:has(.synoptic-page){max-width:100%}.card-header{margin-bottom:32px}.card-header h1{color:#f8fafc;margin:0 0 12px;font-size:clamp(2rem,4vw,3.2rem)}.card-header p{color:#94a3b8;max-width:700px;margin:0;line-height:1.6}.sludge-form{width:100%}.section-container{margin-bottom:56px}.section-header{margin-bottom:24px}.section-header h2{color:#f8fafc;margin:0}.polymer-header-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:10px;display:flex}.section-header p{color:#94a3b8;margin:0;line-height:1.6}.form-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;display:grid}.form-group{flex-direction:column;gap:10px;display:flex}.form-group label{color:#cbd5e1;font-size:.95rem;font-weight:600}.tooltip-label{cursor:help;border-bottom:1px dashed #38bdf8;width:fit-content;position:relative}.tooltip-label:after{content:attr(data-tooltip);color:#e2e8f0;opacity:0;visibility:hidden;z-index:30;pointer-events:none;background:#0f172afa;border:1px solid #334155;border-radius:12px;width:260px;padding:12px 14px;font-size:.85rem;font-weight:400;line-height:1.5;transition:opacity .2s,transform .2s,visibility .2s;position:absolute;bottom:calc(100% + 12px);left:0;transform:translateY(6px);box-shadow:0 10px 24px #00000059}.tooltip-label:before{content:"";opacity:0;visibility:hidden;z-index:31;border:8px solid #0000;border-top-color:#334155;transition:opacity .2s,visibility .2s;position:absolute;bottom:calc(100% + 4px);left:16px}.tooltip-label:hover:after,.tooltip-label:hover:before{opacity:1;visibility:visible;transform:translateY(0)}.form-group input,.form-group select,.modal-form input,.modal-form select,.modal-form textarea{color:#f8fafc;background:#0f172a;border:1px solid #334155;border-radius:16px;width:100%;padding:14px 16px;font-size:1rem;transition:border-color .2s,box-shadow .2s}.form-group select,.modal-form select{appearance:none;border-radius:16px;overflow:hidden}.form-group select option,.modal-form select option{color:#f8fafc;background:#111827;border-radius:12px}.form-group input:focus,.form-group select:focus,.modal-form input:focus,.modal-form select:focus,.modal-form textarea:focus{border-color:#38bdf8;outline:none;box-shadow:0 0 0 3px #38bdf833}.custom-select{width:100%;position:relative}.custom-select-trigger{color:#f8fafc;cursor:pointer;background:#081225;border:1px solid #38bdf8;border-radius:18px;justify-content:space-between;align-items:center;width:100%;min-height:54px;padding:14px 18px;font-size:1rem;transition:border-color .2s,box-shadow .2s,transform .2s;display:flex}.custom-select-trigger:hover{border-color:#0ea5e9}.custom-select-trigger.open{box-shadow:0 0 0 4px #38bdf82e}.custom-arrow{color:#7dd3fc;font-size:.8rem;transition:transform .2s}.custom-select-trigger.open .custom-arrow{transform:rotate(180deg)}.custom-options{z-index:50;background:#081225;border:1px solid #1e3a5f;border-radius:20px;flex-direction:column;gap:6px;width:100%;padding:10px;animation:.18s dropdownFade;display:flex;position:absolute;top:calc(100% + 10px);left:0;box-shadow:0 20px 40px #0006}.custom-option{color:#e2e8f0;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:14px;width:100%;padding:12px 14px;font-size:.95rem;transition:background .2s,transform .15s}.custom-option:hover{background:#38bdf826;transform:translate(2px)}.custom-option.selected{color:#fff;background:#2563eb}@keyframes dropdownFade{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.polymer-model-wrapper{flex-wrap:nowrap;align-items:flex-end;gap:12px;display:flex}.polymer-select-wrapper{flex:1}.polymer-select-wrapper .form-group{gap:0}.polymer-select-wrapper .form-group label{display:none}.info-tooltip{align-items:center;display:flex;position:relative}.info-button{color:#fff;cursor:pointer;background:#0284c7;border:none;border-radius:12px;width:42px;height:42px;font-size:1.1rem;font-weight:700;transition:background .2s,transform .2s}.info-button:hover{background:#0ea5e9;transform:scale(1.05)}.success-popup{z-index:200;background:#0f172af5;border:1px solid #22c55e;border-radius:18px;align-items:center;gap:16px;padding:18px 22px;animation:.3s popupSlideIn;display:flex;position:fixed;top:24px;right:24px;box-shadow:0 20px 40px #00000059}.success-popup-icon{background:#22c55e2e;border-radius:16px;justify-content:center;align-items:center;width:54px;height:54px;font-size:1.8rem;display:flex}.success-popup-content h3{color:#f8fafc;margin:0 0 4px;font-size:1rem}.success-popup-content p{color:#cbd5e1;margin:0;font-size:.95rem}@keyframes popupSlideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.new-reference-button{color:#fff;cursor:pointer;background:#16a34a;border:none;border-radius:12px;padding:12px 18px;font-size:.95rem;font-weight:600;transition:background .2s,transform .2s}.new-reference-button:hover{background:#22c55e;transform:translateY(-1px)}.modal-overlay{z-index:100;background:#020617c7;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-card{background:#111827;border:1px solid #334155;border-radius:20px;width:100%;max-width:520px;max-height:90vh;padding:28px;overflow-y:auto;box-shadow:0 20px 50px #00000073}.modal-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.modal-header h2{color:#f8fafc;margin:0}.close-modal-button{color:#94a3b8;cursor:pointer;background:0 0;border:none;font-size:1.4rem;transition:color .2s,transform .2s}.close-modal-button:hover{color:#f8fafc;transform:scale(1.08)}.modal-form{flex-direction:column;gap:18px;display:flex}.save-reference-button{color:#fff;cursor:pointer;background:#0284c7;border:none;border-radius:14px;padding:14px 20px;font-size:1rem;font-weight:700;transition:background .2s,transform .2s}.save-reference-button:hover{background:#0ea5e9;transform:translateY(-1px)}.polymer-actions{gap:10px;display:flex}.edit-button,.delete-button{color:#fff;cursor:pointer;border:none;border-radius:10px;padding:10px 14px;font-size:.9rem;font-weight:600;transition:transform .2s,opacity .2s}.edit-button{background:#f59e0b}.edit-button:hover{opacity:.9;transform:translateY(-1px)}.delete-button{background:#dc2626}.delete-button:hover{opacity:.9;transform:translateY(-1px)}.polymer-info-card{opacity:0;visibility:hidden;z-index:20;background:#0f172afa;border:1px solid #334155;border-radius:14px;width:280px;padding:16px;transition:opacity .2s,transform .2s,visibility .2s;position:absolute;top:52px;right:0;transform:translateY(8px);box-shadow:0 12px 30px #00000059}.info-tooltip:hover .polymer-info-card{opacity:1;visibility:visible;transform:translateY(0)}.polymer-info-card p{color:#cbd5e1;margin:0 0 10px;line-height:1.5}.polymer-info-card p:last-child{margin-bottom:0}.home-page{width:100%;max-width:1200px}.synoptic-page{flex-direction:column;gap:28px;width:100%;max-width:none;display:flex}.synoptic-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.synoptic-header h2{color:#f8fafc;margin:16px 0 10px;font-size:2.4rem}.synoptic-header p{color:#94a3b8;max-width:620px;margin:0;line-height:1.7}.synoptic-kpis{flex-wrap:wrap;gap:18px;display:flex}.synoptic-kpi{background:#111827;border:1px solid #1e293b;border-radius:18px;min-width:180px;padding:20px}.synoptic-kpi span{color:#94a3b8;margin-bottom:10px;display:block}.synoptic-kpi strong{color:#38bdf8;font-size:1.8rem}.synoptic-layout{flex-direction:column;gap:24px;width:100%;display:flex}.equipment-library{background:#111827;border:1px solid #1e293b;border-radius:24px;width:100%;padding:24px}.equipment-library .library-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.equipment-library h3{color:#f8fafc;margin-top:0}.equipment-library p{color:#94a3b8;line-height:1.6}.library-grid{gap:14px;margin-top:24px;display:grid}.library-item{color:#e2e8f0;cursor:grab;background:#081225e6;border:1px dashed #38bdf8;border-radius:16px;align-items:center;gap:12px;padding:16px;font-size:1rem;font-weight:600;transition:transform .2s,border-color .2s,background .2s;display:flex}.library-item:hover{background:#0ea5e91f;border-color:#0ea5e9;transform:translateY(-2px)}.synoptic-canvas{background:#0f172a;border:1px solid #1e293b;border-radius:28px;width:100%;height:78vh;min-height:620px;transition:min-height .25s,width .25s;position:relative;overflow:hidden}.full-width-canvas{width:calc(100vw - 380px);height:78vh;min-height:780px}.grid-overlay{pointer-events:none;z-index:0;background-image:linear-gradient(#38bdf829 1px,#0000 1px),linear-gradient(90deg,#38bdf829 1px,#0000 1px);background-size:40px 40px;position:absolute;inset:0}.grid-edit-mode{box-shadow:inset 0 0 0 1px #38bdf840,0 0 24px #38bdf814}.process-line{display:none}.connection-line{opacity:.7;background:#38bdf8;border-radius:999px;height:4px;position:absolute}.connection-svg{pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;inset:0}.connection-path{fill:none;stroke:#38bdf8;stroke-width:4px;stroke-linecap:round;opacity:.9}.synoptic-node{z-index:2;background:#111827f5;border:1px solid #334155;border-radius:20px;align-items:flex-start;gap:14px;width:clamp(150px,16vw,180px);min-height:90px;padding:18px;display:flex;position:absolute;box-shadow:0 14px 30px #00000059}.node-icon{background:0 0;border-radius:14px;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.5rem;display:flex}.synoptic-node h4{color:#f8fafc;margin:0 0 8px}.synoptic-node p{color:#94a3b8;margin:0;font-size:.9rem}.node-anchor{cursor:crosshair;z-index:5;background:#0f172a;border:2px solid #38bdf8;border-radius:999px;width:16px;height:16px;transition:transform .2s,background .2s,box-shadow .2s;position:absolute;top:50%;transform:translateY(-50%)}.node-anchor:hover{background:#38bdf8;transform:translateY(-50%)scale(1.15);box-shadow:0 0 12px #38bdf8b3}.left-anchor{left:-9px}.right-anchor{right:-9px}.active-anchor{background:#22c55e;border-color:#4ade80;box-shadow:0 0 14px #4ade80bf}.selected-node{border-color:#38bdf8;box-shadow:0 0 0 1px #38bdf859,0 14px 30px #00000059}.dragging-node{opacity:1;cursor:grabbing}.drop-zone-label{color:#4ade80;background:#22c55e24;border-radius:999px;padding:10px 16px;font-size:.9rem;font-weight:700;position:absolute;bottom:24px;right:24px}.home-card{background:#111827;border:1px solid #1e293b;border-radius:24px;padding:36px;box-shadow:0 20px 40px #00000059}.status-badge{color:#4ade80;background:#22c55e26;border-radius:999px;align-items:center;margin-bottom:20px;padding:8px 14px;font-size:.85rem;font-weight:700;display:inline-flex}.home-card h2{color:#f8fafc;margin-top:0;margin-bottom:14px;font-size:2rem}.home-card p{color:#94a3b8;max-width:720px;line-height:1.7}.home-stats{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-top:32px;display:grid}.stat-card{background:#0f172a;border:1px solid #1e293b;border-radius:18px;padding:24px}.stat-card span{color:#94a3b8;margin-bottom:12px;display:block}.stat-card strong{color:#38bdf8;font-size:2rem}.result-card{background:linear-gradient(135deg,#38bdf81f,#0ea5e90a);border:1px solid #38bdf840;border-radius:18px;margin-top:40px;padding:28px}.result-card h2{color:#bae6fd;margin-top:0;margin-bottom:18px}.dosage-value{color:#38bdf8;letter-spacing:-2px;margin-bottom:18px;font-size:clamp(2.5rem,6vw,4.5rem);font-weight:800}.diagnostic-text{color:#cbd5e1;margin:0;font-size:1rem;line-height:1.7}@media (width<=768px){.calculator-card{padding:20px}.layout-container{flex-direction:column}.sidebar{border-bottom:1px solid #1e293b;border-right:none;width:100%}.sidebar-nav{flex-direction:row}.sidebar-link{text-align:center}.app-container{padding:20px 12px}.synoptic-layout{display:block}.synoptic-canvas,.full-width-canvas{width:100%;min-height:720px;overflow-x:auto}.synoptic-node{width:160px;padding:14px}.synoptic-kpis{width:100%}.synoptic-kpi{flex:1}.form-grid{grid-template-columns:1fr}.polymer-model-wrapper,.polymer-header-actions{flex-direction:column;align-items:stretch}.new-reference-button{width:100%}.polymer-actions{justify-content:space-between;width:100%}.edit-button,.delete-button{flex:1}.modal-card{padding:22px}}
