:root{
  color-scheme:dark;
  --bg:#020812;
  --panel:#071b2e;
  --panel2:#09243c;
  --line:#1f4a6c;
  --line2:#2d6da0;
  --text:#eaf4ff;
  --muted:#9fb4c9;
  --blue:#1474d4;
  --green:#168a3a;
  --red:#a8183c;
  --gold:#d8b84b;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:radial-gradient(circle at 20% 0%,#0b2b45 0%,#020812 42%,#01050b 100%);color:var(--text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body{min-height:100dvh;overflow-x:hidden}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:disabled{opacity:.55;cursor:not-allowed}
.hidden{display:none!important}
[hidden]{display:none!important}

#reefAtlasAdminCornerBtn{
  position:fixed;right:18px;bottom:18px;z-index:9000;border:1px solid #315a78;border-radius:999px;background:rgba(7,20,34,.86);color:#cfe6f8;padding:10px 22px;font-weight:800;display:none;
}
body.reefatlasCanAdmin #reefAtlasAdminCornerBtn{display:block}
.projectToast{position:fixed;right:22px;top:calc(18px + env(safe-area-inset-top,0px));z-index:9200;border:1px solid rgba(62,231,119,.42);border-radius:12px;background:rgba(7,32,22,.94);color:#dfffe8;padding:12px 16px;font-weight:900;box-shadow:0 18px 42px rgba(0,0,0,.38)}
.projectToast[data-tone="info"]{border-color:#3f83b8;background:rgba(7,27,46,.95);color:#d7ecff}
.projectToast[data-tone="error"]{border-color:#d04767;background:rgba(62,8,24,.95);color:#ffe0e7}

#splash{min-height:100dvh;padding:clamp(18px,2.4vw,32px);display:grid;place-items:center}
.gatewayWrap{width:min(1240px,100%);display:grid;grid-template-columns:minmax(310px,420px) 42px minmax(0,1fr);grid-template-rows:auto auto auto auto;gap:14px;align-items:stretch}
.gatewayWrap:before{content:"";grid-column:2;grid-row:1 / 4;align-self:stretch;justify-self:center;width:1px;min-height:42px;background:#214763}
.brandPane,.gatewayPane{display:contents}
.brandHero,.card{border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,rgba(9,36,60,.96),rgba(5,19,32,.96));box-shadow:0 20px 55px rgba(0,0,0,.35)}
.brandHero{grid-column:1;grid-row:1 / span 2;min-height:0;height:100%;padding:clamp(18px,2.6vw,28px);display:grid;place-items:center;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 32%,rgba(26,108,180,.28),rgba(2,8,18,.96) 62%)}
.brandHero img{display:block;width:min(100%,340px);height:auto;max-height:100%;object-fit:contain;border-radius:12px;box-shadow:0 22px 58px rgba(0,0,0,.36)}
.brandHero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,8,18,0),rgba(2,8,18,.18) 72%,rgba(2,8,18,.38));pointer-events:none}
.brandMark{width:74px;height:74px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,#1374d5,#0a3d72);font-weight:900;font-size:28px;box-shadow:0 0 34px rgba(20,116,212,.45)}
.brandHero h1{margin:18px 0 4px;font-size:54px;line-height:.95}
.brandHero p{margin:0;color:#c8dcef;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.brandCard,.card{padding:18px}
.brandCard h2,.card h2{margin:0 0 8px;font-size:20px}
.brandCard p,.brandCard div,.card p,.status,.gatewayHint{color:var(--muted);line-height:1.45}
.gatewayBrandNote{grid-column:1;grid-row:3;height:100%;padding:18px;background:linear-gradient(180deg,rgba(8,37,61,.88),rgba(4,18,31,.96))}
.gatewayBrandNote p{margin-bottom:0}
.gatewayInfoCard{grid-column:3;grid-row:3;height:100%;padding:18px}
.gatewayInfoCard h2{font-size:18px}
.gatewayInfoCard p{margin:0 0 12px}
.gatewayBullets{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;color:#cfe4f7;line-height:1.35}
.gatewayBullets li{position:relative;min-height:74px;padding:13px 12px 12px 28px;border:1px solid rgba(159,208,255,.14);border-radius:10px;background:rgba(4,18,31,.58);font-weight:750}
.gatewayBullets li:before{content:"";position:absolute;left:12px;top:18px;width:7px;height:7px;border-radius:50%;background:#3ee777;box-shadow:0 0 10px rgba(62,231,119,.45)}
.loginUserStatus{border:1px solid rgba(62,231,119,.45);background:rgba(16,94,48,.35);border-radius:10px;padding:10px;color:#dfffe8}
.currentUserLabel{display:block;margin-top:4px;color:#bdeac8}
.gatewayTopCard{grid-column:3;grid-row:1;display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:22px;background:linear-gradient(135deg,rgba(12,48,78,.98),rgba(5,20,35,.96) 58%,rgba(6,34,31,.92))}
.gatewayKicker{display:block;color:#72baff;font-size:12px;text-transform:uppercase;font-weight:900;letter-spacing:.08em}
.gatewayTopCard h2{font-size:26px;line-height:1.08;margin-bottom:7px}
.gatewayTopCard small{white-space:nowrap;border:1px solid rgba(159,208,255,.18);border-radius:999px;background:rgba(2,12,22,.5);padding:7px 10px;color:#cfe6f8;font-weight:850}
.loginHeader,.gatewayChoiceHead,.stepTitle{display:flex;justify-content:space-between;gap:12px;align-items:center}
.loginCard{grid-column:3;grid-row:2;padding:20px}
.loginCompactGrid{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,.85fr) 118px;gap:12px;align-items:end}
.loginCompactGrid label{margin-top:0}
.loginSubmit{width:100%;min-width:0}
.loginForgotButton{grid-column:1 / -1;justify-self:start;margin-top:-4px}
.loginStatusLine{margin-top:13px;padding:10px 12px;border:1px solid rgba(159,208,255,.14);border-radius:9px;background:rgba(3,14,25,.55)}
.demoLoginHint{margin-top:9px;border:1px solid rgba(62,231,119,.22);border-radius:9px;background:rgba(62,231,119,.08);color:#c9f7d4;padding:9px 11px;font-size:12px;line-height:1.4}
.demoLoginHint b{color:#fff}
body.demoMode [data-project-view="coral"]{opacity:.45}
.demoDisabledPanel{min-height:420px;display:grid;place-items:center;text-align:center;padding:26px}
.demoDisabledPanel h2{margin:0 0 8px;color:#f2fbff;font-size:28px}.demoDisabledPanel p{max-width:720px;margin:0 auto;color:#b9cce0;line-height:1.5}.demoDisabledPanel .gatewayPrimary{margin-top:18px}
.supabaseConfigFields{grid-column:1 / -1;display:none;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
body.usingSupabaseBackend .supabaseConfigFields{display:none!important}
body.usingSupabaseBackend .siteUrlField{display:none}
.badge{border:1px solid #315a78;border-radius:999px;padding:5px 9px;color:#cfe6f8;background:#0c2b48;font-size:12px;font-weight:800}
label{display:grid;gap:6px;color:#b8cce0;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;margin-top:12px}
input,select,textarea{width:100%;border:1px solid #2a5576;background:#061728;color:var(--text);border-radius:9px;padding:11px 12px;outline:none}
textarea{min-height:92px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:#4aa3ff;box-shadow:0 0 0 3px rgba(74,163,255,.18)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.gatewayPrimary,.success,.secondary,.danger,.plainBtn{min-height:42px;border-radius:10px;border:1px solid #2d6591;color:#fff;background:#124f86;font-weight:900;padding:10px 14px}
.gatewayPrimary,.success{background:linear-gradient(#1f9c4e,#137234);border-color:#27bf62}
.secondary{background:#0a2a47}
.danger{background:linear-gradient(#be234b,#8e1435);border-color:#db4468}
.plainBtn{background:transparent}.linkButton{min-height:auto;border:0;background:transparent;color:#9fd0ff;font-weight:900;padding:0;text-decoration:underline;cursor:pointer}
.compactButton{min-height:34px;padding:7px 10px;border-radius:8px;font-size:12px}
.savedProjectActions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
#openTankSetupBtn{width:100%;margin-top:10px}
.projectTools{grid-column:1 / -1;grid-row:4;display:grid;grid-template-columns:minmax(310px,420px) 42px minmax(0,1fr);gap:14px;align-items:stretch}
.gatewayChoiceCard{padding:18px}
.newProjectSteps{display:grid;gap:14px}
.newProjectInlineFields{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.72fr);gap:12px;align-items:end}
.newProjectInlineFields label{margin-top:10px}
#loadProjectBtn{width:100%;margin-top:14px}
.gatewayDivider{grid-column:auto;order:2;flex-direction:column;align-self:stretch;justify-content:center;padding:0 2px}
.gatewayDivider:before,.gatewayDivider:after{width:1px;height:auto;min-height:42px}
.gatewayChoiceCard:first-child{order:1}
.gatewayChoiceCard:last-child{order:3}
.gatewayDivider{display:flex;align-items:center;gap:12px;color:#7f96ac;text-transform:uppercase;font-size:12px;font-weight:900}
.gatewayDivider:before,.gatewayDivider:after{content:"";height:1px;background:#214763;flex:1}
.stepNum{display:inline-grid;place-items:center;width:24px;height:24px;margin-right:8px;border-radius:50%;background:#0f5aa0;color:#fff}
.tankSetupSummaryActions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}

#workspace{display:none;min-height:100dvh}
body.projectActive #splash{display:none}
body.projectActive #workspace{display:block}
.appShell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100dvh;padding-top:calc(12px + env(safe-area-inset-top,0px))}
.mobileNavToggle,.mobileNavScrim{display:none}
.sideNav{border-right:1px solid #173a56;background:rgba(3,13,24,.92);padding:18px 14px;display:flex;flex-direction:column;gap:14px;min-height:100dvh;position:sticky;top:0}
.sideBrand{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.sideLogo{width:42px;height:42px;border-radius:10px;display:block;object-fit:cover;background:#061827;box-shadow:0 0 20px rgba(20,116,212,.26)}
.sideBrand h1{margin:0;font-size:20px}.sideBrand small{color:#9fb4c9}
.navButton{width:100%;display:flex;gap:10px;align-items:center;border:1px solid transparent;border-radius:10px;background:transparent;color:#d6e8f8;padding:12px;text-align:left;font-weight:800}
.navButton[data-nav-reorderable]{position:relative;padding-right:34px}
.navDragHandle{margin-left:auto;width:22px;height:28px;display:grid;place-items:center;color:#79a3c7;opacity:.7;cursor:grab;touch-action:none;flex:0 0 auto}
.navDragHandle:before{content:"⋮⋮";display:block;transform:rotate(90deg);font-size:13px;letter-spacing:-2px}
.navDragHandle:active{cursor:grabbing}
.navButton.navDragging{opacity:.48;transform:scale(.985)}
.navButton.navDropTarget{border-color:#76c7ff;background:#0d3b63;box-shadow:0 0 0 2px rgba(118,199,255,.14)}
.navIcon{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.18);background:linear-gradient(135deg,#1474d4,#0a3962);box-shadow:0 0 14px rgba(57,165,255,.18);flex:0 0 auto;position:relative;overflow:hidden}
.navIcon:before,.navIcon:after{content:"";position:absolute;display:block}
.navIconOverview{background:linear-gradient(135deg,#4ea5ff,#2456d8)}.navIconOverview:before{inset:5px;border:2px solid rgba(255,255,255,.78);border-radius:3px}.navIconOverview:after{left:8px;right:8px;top:6px;bottom:6px;border-left:2px solid rgba(255,255,255,.78);border-right:2px solid rgba(255,255,255,.78)}
.navIconTank{background:linear-gradient(135deg,#27d6cf,#156b90)}.navIconTank:before{left:4px;right:4px;bottom:5px;height:8px;border:2px solid rgba(255,255,255,.78);border-top:0;border-radius:0 0 4px 4px}.navIconTank:after{left:5px;right:5px;top:8px;height:2px;background:rgba(255,255,255,.85);box-shadow:0 4px 0 rgba(255,255,255,.28)}
.navIconCoral{background:linear-gradient(135deg,#ff7a8a,#b12975)}.navIconCoral:before{width:4px;height:12px;bottom:4px;left:9px;background:rgba(255,255,255,.82);border-radius:4px}.navIconCoral:after{width:13px;height:11px;left:5px;top:5px;border:2px solid rgba(255,255,255,.78);border-bottom:0;border-radius:9px 9px 0 0}
.navIconPar{background:linear-gradient(135deg,#ffd24a,#ff8c2b)}.navIconPar:before{width:8px;height:8px;top:4px;left:7px;background:rgba(255,255,255,.88);border-radius:50%;box-shadow:0 0 12px rgba(255,255,255,.8)}.navIconPar:after{left:8px;top:12px;border-left:3px solid transparent;border-right:3px solid transparent;border-top:8px solid rgba(255,255,255,.58)}
.navIconWater{background:linear-gradient(135deg,#2bd8ff,#1164d8)}.navIconWater:before{width:10px;height:14px;left:6px;top:4px;background:rgba(255,255,255,.82);border-radius:9px 9px 10px 10px;transform:rotate(45deg)}.navIconWater:after{width:6px;height:3px;left:8px;bottom:5px;background:rgba(17,100,216,.45);border-radius:50%}
.navIconLive{background:linear-gradient(135deg,#34e4a8,#1474d4)}.navIconLive:before{width:13px;height:9px;left:4px;top:7px;border:2px solid rgba(255,255,255,.82);border-radius:4px}.navIconLive:after{right:3px;top:8px;border-left:6px solid rgba(255,255,255,.82);border-top:4px solid transparent;border-bottom:4px solid transparent}
.navIconEquipment{background:linear-gradient(135deg,#aeb8c8,#4d6377)}.navIconEquipment:before{width:12px;height:12px;left:5px;top:5px;border:2px solid rgba(255,255,255,.8);border-radius:50%}.navIconEquipment:after{width:4px;height:4px;left:9px;top:9px;background:rgba(255,255,255,.85);border-radius:50%;box-shadow:0 -7px 0 -1px rgba(255,255,255,.7),0 7px 0 -1px rgba(255,255,255,.7),7px 0 0 -1px rgba(255,255,255,.7),-7px 0 0 -1px rgba(255,255,255,.7)}
.navIconMaintenance{background:linear-gradient(135deg,#9b7dff,#4f45ba)}.navIconMaintenance:before{width:13px;height:4px;left:5px;top:9px;background:rgba(255,255,255,.82);border-radius:4px;transform:rotate(-42deg)}.navIconMaintenance:after{width:5px;height:5px;right:4px;top:5px;border:2px solid rgba(255,255,255,.82);border-radius:50%}
.navIconLivestock{background:linear-gradient(135deg,#39dc72,#16875a)}.navIconLivestock:before{width:13px;height:8px;left:4px;top:7px;background:rgba(255,255,255,.82);border-radius:50%}.navIconLivestock:after{right:3px;top:8px;border-left:6px solid rgba(255,255,255,.82);border-top:4px solid transparent;border-bottom:4px solid transparent}
.navIconDosing{background:linear-gradient(135deg,#42d7ff,#6b56ff)}.navIconDosing:before{width:8px;height:14px;left:7px;top:4px;border:2px solid rgba(255,255,255,.82);border-radius:6px 6px 3px 3px}.navIconDosing:after{width:6px;height:2px;left:8px;top:9px;background:rgba(255,255,255,.82);box-shadow:0 4px 0 rgba(255,255,255,.5)}
.navIconTasks{background:linear-gradient(135deg,#ffd36c,#d78d1f)}.navIconTasks:before{width:12px;height:14px;left:5px;top:4px;border:2px solid rgba(255,255,255,.82);border-radius:3px}.navIconTasks:after{width:7px;height:4px;left:8px;top:8px;border-left:2px solid rgba(255,255,255,.82);border-bottom:2px solid rgba(255,255,255,.82);transform:rotate(-45deg)}
.navIconNotes{background:linear-gradient(135deg,#5ddcff,#2672a8)}.navIconNotes:before{width:12px;height:14px;left:5px;top:4px;background:rgba(255,255,255,.82);border-radius:3px}.navIconNotes:after{width:8px;height:1.5px;left:7px;top:8px;background:#2672a8;box-shadow:0 4px 0 #2672a8,0 8px 0 #2672a8}
.navIconReports{background:linear-gradient(135deg,#7ee085,#2c9e54)}.navIconReports:before{width:3px;height:11px;left:6px;bottom:5px;background:rgba(255,255,255,.82);box-shadow:5px -4px 0 rgba(255,255,255,.82),10px -8px 0 rgba(255,255,255,.82)}.navIconReports:after{left:4px;right:4px;bottom:4px;height:2px;background:rgba(255,255,255,.55)}
.navIconSettings{background:linear-gradient(135deg,#8fa7bd,#425d73)}.navIconSettings:before{width:12px;height:12px;left:5px;top:5px;border:2px dashed rgba(255,255,255,.82);border-radius:50%}.navIconSettings:after{width:4px;height:4px;left:9px;top:9px;background:rgba(255,255,255,.9);border-radius:50%}
.navButton.active,.navButton:hover{background:#104a7d;border-color:#2b79b7}
.navButton.disabled{opacity:.45}
.sideFooter{margin-top:auto;color:#7892a8;font-size:12px;line-height:1.45}
.workspaceMain{padding:18px clamp(16px,2.2vw,32px) 36px;min-width:0}
.projectTop{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}
.projectTop h1{margin:0 0 6px;font-size:32px}.projectTop p{margin:0;color:#b3c7da}
.topActions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.userPill{border:1px solid #2b5c83;border-radius:999px;padding:9px 12px;background:#071b2e;color:#dcecff;font-weight:800}
.userPill small{display:inline-block;margin-left:8px;color:#9fb4c9}
.projectActionWrap{position:relative}
.projectActionMenu{position:absolute;right:0;top:calc(100% + 8px);z-index:50;min-width:230px;border:1px solid #2b5c83;border-radius:12px;background:#061728;box-shadow:0 20px 45px rgba(0,0,0,.45);overflow:hidden}
.projectActionMenu button{display:block;width:100%;border:0;border-bottom:1px solid rgba(159,208,255,.12);background:transparent;color:#eaf4ff;text-align:left;padding:13px 14px;font-weight:850}
.projectActionMenu button:hover{background:#0f416c}
.projectActionMenu button.dangerAction{color:#ff9daf;background:rgba(108,27,43,.18)}
.projectActionMenu button.dangerAction:hover{background:rgba(172,43,66,.36);color:#ffd7df}
.projectActionMenu button:last-child{border-bottom:0}

.quietDanger{border-color:rgba(255,117,139,.48)!important;color:#ffd9df!important;background:rgba(120,34,50,.18)!important}
.summaryGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.summaryCard,.projectPanel,.comingCard{border:1px solid var(--line);border-radius:13px;background:linear-gradient(180deg,rgba(9,36,60,.96),rgba(5,19,32,.96));padding:16px}
.summaryCard span{display:block;color:#9fb4c9;font-size:12px;text-transform:uppercase;font-weight:900;letter-spacing:.06em}.summaryCard b{display:block;margin-top:8px;font-size:24px}
.dashboardMetrics{grid-template-columns:repeat(5,minmax(0,1fr))}
.metricCard{min-height:112px;display:grid;grid-template-columns:30px 1fr;grid-template-rows:auto auto auto;gap:0 10px;align-content:center}
.metricCard .metricIcon{grid-row:1 / span 3;width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,#39a5ff,#0a3962);align-self:start;position:relative;box-shadow:0 0 18px rgba(57,165,255,.22)}
.metricCard .metricIcon:after{content:"";position:absolute;inset:8px;border-radius:5px;background:rgba(255,255,255,.72)}
.metricCard .coralIcon:after{border-radius:50% 50% 45% 55%;background:#ff905f}
.metricCard .waterIcon:after{border-radius:50% 50% 55% 55%;background:#8fdcff}
.metricCard .statusIcon{background:linear-gradient(135deg,#e1c84b,#7e6500)}
.metricCard .statusIcon:after{background:#e1c84b;clip-path:polygon(0 70%,25% 28%,52% 56%,74% 16%,100% 58%,100% 82%,72% 38%,52% 78%,25% 48%,0 86%)}
.metricCard b{font-size:20px;line-height:1.12}
.metricCard small{display:block;margin-top:4px;color:#8fa8bd;font-weight:700}
.metricCard mark{display:inline-block;border:1px solid rgba(62,231,119,.42);border-radius:999px;background:rgba(34,141,72,.18);color:#94ffa6;padding:3px 8px;font-size:11px;font-weight:900}
.projectGrid{display:grid;grid-template-columns:1.1fr .9fr;gap:14px}
.overviewDashboard{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1.05fr) minmax(300px,.95fr);gap:14px;align-items:stretch}
.overviewAiPanel{grid-column:1/-1;min-width:0}
.overviewAiPanel>.aiInsightBox{height:100%;box-sizing:border-box}
.projectPanel h2{margin:0 0 14px;color:#9fd0ff;font-size:18px}
.panelTitle{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.panelTitle h2{margin:0}
.miniButton{min-height:28px;padding:5px 10px;border-radius:8px;font-size:12px;display:inline-flex;align-items:center;justify-content:center;text-align:center;line-height:1.15}
.fullWidth{width:100%;margin-top:14px}
.detailRows{display:grid;grid-template-columns:minmax(120px,.7fr) 1fr;gap:9px 12px;align-items:center}
.detailRows .k{color:#8fa8bd;font-size:12px;text-transform:uppercase;font-weight:900}.detailRows .v{font-weight:800}.good{color:#3ee777}.warn{color:#ffd24d}
.dashboardRows{display:grid;grid-template-columns:minmax(112px,.75fr) 1fr;gap:9px 12px}
.dashboardRows div{display:contents}
.dashboardRows span{color:#8fa8bd;font-size:12px;font-weight:900}
.dashboardRows b{font-size:13px}
.tankInfoPanel,.tankVisualPanel{display:flex;flex-direction:column}
.tankVisualFrame{margin:0;border:1px solid rgba(159,208,255,.18);border-radius:10px;background:#020812;overflow:hidden;position:relative}
.tankVisualFrame img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.tankVisualFrame figcaption{padding:10px;text-align:center;font-weight:850;background:rgba(4,18,31,.92);border-top:1px solid rgba(159,208,255,.14);color:#eef8ff}
.tankInfoPanel>.fullWidth,.tankVisualPanel>.fullWidth{margin-top:auto}
.emptyModuleState,.emptyVisualState{min-height:190px;border:1px dashed rgba(159,208,255,.28);border-radius:12px;background:rgba(4,18,31,.5);display:grid;align-content:center;gap:10px;padding:18px;color:#b9cfe2;text-align:center}
.emptyModuleState h3{margin:0;color:#eaf4ff;font-size:20px}
.emptyModuleState p,.emptyVisualState span{margin:0;color:#9fb4c9;line-height:1.45}
.emptyVisualState{aspect-ratio:16/10}
.dimGrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.dimTable{display:grid;gap:8px;margin-top:10px}.dimTable div,.volumeRow{display:flex;justify-content:space-between;border-bottom:1px solid rgba(159,208,255,.12);padding-bottom:7px;color:#cfe2f3}
.volumeSummary{margin-top:16px}.volumeSummary h3{margin:0 0 10px;color:#9fd0ff}.volumeTotal{font-size:18px;font-weight:900;color:#3ee777}
.dimensionNote{margin-top:14px;color:#d8b84b;font-size:12px;line-height:1.45}
.miniTable,.maintenanceList{display:grid}
.miniTable div{display:grid;grid-template-columns:1fr .55fr .9fr 16px;gap:10px;align-items:center;border-bottom:1px solid rgba(159,208,255,.11);padding:8px 0;color:#cfe2f3}
.miniTable div:first-child{padding-top:0}
.miniTable span:first-child,.maintenanceList span:first-child{font-weight:850}
.miniTable i{width:6px;height:6px;border-radius:50%;background:#3ee777;justify-self:end}
.overviewWaterRow{display:grid;grid-template-columns:1fr .62fr .95fr minmax(88px,.72fr);gap:10px;align-items:center;width:100%;border:0;border-bottom:1px solid rgba(159,208,255,.11);background:transparent!important;color:#cfe2f3;text-align:left;padding:8px 0;cursor:pointer}
.overviewWaterRow.status-optimal{background:rgba(62,231,119,.10)!important}
.overviewWaterRow.status-low{background:rgba(245,211,79,.11)!important}
.overviewWaterRow.status-elevated{background:rgba(255,159,59,.12)!important}
.overviewWaterRow.status-action{background:rgba(243,107,157,.11)!important}
.overviewWaterRow.status-danger{background:rgba(255,78,114,.12)!important}
.overviewWaterRow.status-nodata{background:rgba(169,179,191,.10)!important}
.overviewWaterRow:hover,.overviewWaterRow:focus-visible{background:rgba(159,208,255,.06)!important;outline:1px solid rgba(159,208,255,.14);outline-offset:-1px}
.overviewWaterName{font-weight:850;color:#e7f4ff}.overviewWaterReading,.overviewWaterTarget{color:#d5e5f3}.overviewWaterStatus{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:0}
.overviewWaterStatus .dot{width:7px;height:7px;border-radius:50%;display:inline-block;box-shadow:0 0 0 2px rgba(255,255,255,.04);opacity:.52}
.overviewWaterStatus .statusBadge{font-size:9px;padding:3px 6px;max-width:82px;border:1px solid rgba(255,255,255,.08);filter:saturate(.55)}
.overviewWaterStatus .statusBadge.status-optimal{background:rgba(62,231,119,.13);color:#aaf6bf}
.overviewWaterStatus .statusBadge.status-low{background:rgba(245,211,79,.13);color:#f6e9a7}
.overviewWaterStatus .statusBadge.status-elevated{background:rgba(255,159,59,.13);color:#ffd3a8}
.overviewWaterStatus .statusBadge.status-action{background:rgba(243,107,157,.13);color:#ffc2d9}
.overviewWaterStatus .statusBadge.status-danger{background:rgba(255,78,114,.13);color:#ffbcc9}
.overviewWaterStatus .statusBadge.status-nodata{background:rgba(169,179,191,.12);color:#c9d3df}
.overviewWaterRow.status-nodata .overviewWaterReading{color:#8ea2b6}
.maintenanceList div{display:grid;grid-template-columns:1fr 1fr .7fr;gap:10px;border-bottom:1px solid rgba(159,208,255,.11);padding:10px 0;color:#cfe2f3}
.notesBox,.notesPreviewList{min-height:138px;border:1px solid rgba(159,208,255,.16);border-radius:10px;padding:14px;color:#dcecff;line-height:1.45;background:rgba(4,18,31,.62)}
.notesBoxEmpty{display:grid;place-items:center;color:#8fa8bd}
.notesPreviewList{display:grid;gap:10px;align-content:start}
.notesPreviewPager{grid-template-rows:auto auto}
.notesPreviewItem{border-bottom:1px solid rgba(159,208,255,.11);padding-bottom:10px}
.notesPreviewItem:last-child{border-bottom:0;padding-bottom:0}
.notesPreviewItem div{display:flex;justify-content:space-between;gap:10px;align-items:center}
.notesPreviewItem b{color:#eaf4ff;display:inline-flex;align-items:center;gap:7px}.notesPreviewItem span{color:#8fa8bd;font-size:12px;font-weight:800}.notesPreviewItem p{margin:5px 0 0;color:#dcecff;line-height:1.35}
.notePreviewPhotoIcon{display:inline-flex;align-items:center;gap:3px;border:1px solid rgba(77,174,255,.35);border-radius:999px;background:rgba(77,174,255,.14);color:#9fd0ff;padding:2px 6px}.notePreviewPhotoIcon svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.notePreviewPhotoIcon em{font-style:normal;font-size:10px;font-weight:950;color:#dcecff}
.notesPreviewPhotoStrip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.notesPreviewPhotoThumb{border:1px solid rgba(159,208,255,.18);border-radius:9px;background:#020914;overflow:hidden;padding:0;min-height:88px;aspect-ratio:4/3}.notesPreviewPhotoThumb:hover{border-color:#4daeff;box-shadow:0 0 0 2px rgba(77,174,255,.16)}.notesPreviewPhotoThumb img{width:100%;height:100%;object-fit:cover;display:block}
.notesPreviewControls{display:grid;grid-template-columns:auto auto auto minmax(0,1fr);gap:8px;align-items:center}.notesPreviewControls span{color:#8fa8bd;font-size:12px;font-weight:900;text-align:center}.notesPreviewControls .gatewayPrimary{justify-self:end}
.notesWorkspace{display:grid;grid-template-columns:minmax(320px,.72fr) minmax(0,1.28fr);gap:14px;align-items:start}
.noteComposerPanel .panelTitle{align-items:flex-start;flex-wrap:wrap}
.panelHint{color:#8fa8bd;font-size:12px;font-weight:800}
.noteComposerGrid{display:grid;grid-template-columns:1fr;gap:12px}
.notesFilterBar{display:grid;grid-template-columns:minmax(132px,180px) minmax(150px,1fr) minmax(170px,1fr) 42px;gap:12px;align-items:end}
.noteComposerGrid label,.notesFilterBar label{display:grid;gap:6px;min-width:0}
.noteComposerGrid input,.noteComposerGrid select,.noteComposerGrid textarea,.notesFilterBar input,.notesFilterBar select{width:100%;border:1px solid #2d5e84;border-radius:10px;background:#061728;color:#eaf4ff;padding:11px 12px;font-weight:800}
.notesFilterBar input[type="date"]{appearance:none;-webkit-appearance:none;box-sizing:border-box;height:42px;min-height:42px;max-height:42px;padding:0 12px;line-height:42px;color-scheme:dark;overflow:hidden}
.notesFilterBar input[type="date"]::-webkit-date-and-time-value{text-align:left;min-height:42px;line-height:42px;padding:0;margin:0}
.notesFilterBar input[type="date"]::-webkit-calendar-picker-indicator{margin-left:auto;opacity:.78}
.notesClearFiltersButton{width:42px;height:42px;min-height:42px;border-radius:10px;padding:0;font-size:24px;line-height:1;display:grid;place-items:center}
.noteTextField,.notePhotoField,.notePhotoCaptionList{grid-column:1/-1}.notePhotoField small{color:#8fa8bd;font-size:12px;font-weight:800}.notePhotoCaptionList{display:grid;gap:8px;border:1px solid rgba(159,208,255,.14);border-radius:10px;background:rgba(4,18,31,.42);padding:10px}.notePhotoCaptionList[hidden]{display:none}.notePhotoCaptionField{display:grid;gap:5px}.notePhotoCaptionField span{color:#9fb4c9;font-size:12px;font-weight:900;text-transform:none;letter-spacing:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notePhotoCaptionList p{margin:0;color:#d8b84b;font-size:12px;font-weight:800}.noteComposerGrid textarea{resize:vertical;min-height:130px;line-height:1.45}.noteOtherTopic[hidden]{display:none}
.showArchivedCheck{display:inline-flex;align-items:center;gap:8px;color:#cfe2f3;font-weight:850}.showArchivedCheck input{accent-color:#1d82e6;width:16px;height:16px}
.activeNoteLinkFilter{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:12px 0 0;border:1px solid rgba(77,174,255,.28);border-radius:10px;background:rgba(29,130,230,.12);padding:10px 12px;color:#cfe2f3;font-weight:850}
.notesTimelineWrap{margin-top:12px;border:1px solid rgba(159,208,255,.14);border-radius:12px;background:rgba(4,18,31,.42);padding:12px}.panelTitle.compact{margin:0 0 10px}.panelTitle.compact h3{margin:0;color:#9fd0ff}
.projectNotesTimeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.projectNotesTimeline.empty{display:block;color:#8fa8bd;font-weight:800}
.projectNoteTimelineItem{position:relative;display:grid;gap:5px;text-align:left;border:1px solid rgba(159,208,255,.16);border-radius:10px;background:#061728;color:#eaf4ff;padding:10px 10px 10px 28px;min-height:78px}.projectNoteTimelineItem:hover{border-color:#4daeff}.timelineDot{position:absolute;left:10px;top:15px;width:9px;height:9px;border-radius:999px;background:#49b6ff;box-shadow:0 0 0 4px rgba(73,182,255,.14)}.projectNoteTimelineItem b{display:block}.projectNoteTimelineItem small{display:block;color:#8fa8bd;font-weight:800}.projectNoteTimelineItem em,.projectNoteTimelineItem strong{font-style:normal;color:#9fb4c9;font-size:11px;font-weight:900}
.notesBulkBar{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.projectNotesList{display:grid;gap:10px}
.projectNoteCard{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:start;border:1px solid rgba(159,208,255,.16);border-radius:10px;background:rgba(4,18,31,.62);padding:12px}
.projectNoteCard.archived{opacity:.72;background:rgba(4,18,31,.38)}
.projectNoteCard.highlighted{border-color:rgba(255,221,92,.78);box-shadow:0 0 0 2px rgba(255,221,92,.18),0 0 28px rgba(255,221,92,.12);background:linear-gradient(180deg,rgba(75,67,20,.42),rgba(4,18,31,.72))}
.noteSelect{margin-top:3px}.noteSelect input{width:18px;height:18px;accent-color:#1d82e6}
.projectNoteMeta{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}.projectNoteMeta b{color:#eaf4ff}.projectNoteMeta span{color:#9fb4c9;font-size:12px;font-weight:800}.projectNoteMeta em{font-style:normal;border:1px solid rgba(159,208,255,.2);border-radius:999px;color:#9fb4c9;padding:2px 8px;font-size:11px;font-weight:900}
.projectNoteBody p{margin:7px 0 0;color:#dcecff;line-height:1.45;white-space:pre-wrap}
.projectNoteLinks{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.projectNoteLinkPill{border:1px solid rgba(90,201,150,.3);border-radius:999px;background:rgba(90,201,150,.12);color:#c9f3da;padding:5px 9px;font-size:11px;font-weight:900}
.projectNotePhotos{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.projectNotePhotoThumb{position:relative;width:82px;height:62px;border:1px solid rgba(159,208,255,.18);border-radius:8px;overflow:hidden;background:#020914;display:block;padding:0;min-height:0}.projectNotePhotoThumb:hover{border-color:#4daeff;box-shadow:0 0 0 2px rgba(77,174,255,.16)}.projectNotePhotoThumb img{width:100%;height:100%;object-fit:cover;display:block}.projectNotePhotoThumb span{position:absolute;left:0;right:0;bottom:0;background:rgba(1,8,16,.78);color:#eaf4ff;font-size:10px;font-weight:850;line-height:1.1;padding:3px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.notePhotoModalBackdrop{z-index:1200}.notePhotoModal{width:min(980px,100%);display:grid;gap:14px}.notePhotoModalImage{border:1px solid rgba(159,208,255,.16);border-radius:12px;background:#01050b;overflow:hidden;display:grid;place-items:center;max-height:62vh}.notePhotoModalImage img{display:block;max-width:100%;max-height:62vh;object-fit:contain}.notePhotoModalNotes{border:1px solid rgba(159,208,255,.14);border-radius:12px;background:rgba(4,18,31,.6);padding:14px}.notePhotoModalNotes p{margin:10px 0 0;color:#eaf4ff;line-height:1.45;white-space:pre-wrap}.notePhotoSpecificNote{border:1px solid rgba(77,174,255,.22);border-radius:10px;background:rgba(77,174,255,.1);padding:10px}.notePhotoModalNotes small{display:block;margin-top:10px;color:#8fa8bd;font-weight:800}
.noteEditModalBackdrop{z-index:1190}.noteEditModal{width:min(860px,100%);display:grid;gap:14px}.noteEditGrid{grid-template-columns:1fr 1fr}.noteEditPhotosBlock{border:1px solid rgba(159,208,255,.14);border-radius:12px;background:rgba(4,18,31,.46);padding:12px}.noteEditPhotosBlock h3{margin:0 0 10px;color:#9fd0ff}.noteEditPhotoList{display:grid;gap:10px}.noteEditPhotoRow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid rgba(159,208,255,.12);border-radius:10px;background:rgba(2,12,22,.55);padding:10px}.noteEditPhotoRow label{display:grid;gap:5px;color:#9fb4c9;font-size:12px;font-weight:900}.noteEditPhotoRow input{width:100%;border:1px solid #2d5e84;border-radius:9px;background:#061728;color:#eaf4ff;padding:9px 10px;font-weight:800}.noteEditDeletePhoto{display:inline-flex!important;align-items:center;gap:7px;color:#ffc2d2!important}.noteEditDeletePhoto input{width:16px!important;height:16px;accent-color:#d33562}.noteEditActions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.projectNoteActions{display:flex;gap:8px;align-items:center}
.linkedNotesIndicator{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:12px 0;border:1px solid rgba(159,208,255,.16);border-radius:12px;background:rgba(4,18,31,.55);padding:12px}.linkedNotesIndicator span{display:block;color:#8fa8bd;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.linkedNotesIndicator b{display:block;color:#eaf4ff;font-size:18px}.linkedNotesIndicator small{display:block;color:#9fb4c9;font-weight:800}.equipmentListMeta{display:grid;justify-items:end;gap:4px}.equipmentListMeta small{color:#9fb4c9;font-size:11px;font-weight:900}
.projectManageBackdrop{position:fixed;inset:0;z-index:1000;background:rgba(0,6,14,.72);display:grid;place-items:center;padding:20px}
.projectManageModal{width:min(1080px,100%);max-height:min(88vh,920px);overflow:auto;border:1px solid #2b5c83;border-radius:16px;background:linear-gradient(180deg,#08243c,#03101d);box-shadow:0 28px 80px rgba(0,0,0,.58);padding:18px;color:#eaf4ff}
.authModal{width:min(520px,100%)}
.authModalFields{display:grid;gap:12px}.authModalFields label{margin:0}.authModalFields .status{margin:0;color:#b8cce0;line-height:1.4}
.lastProjectPrompt{width:min(480px,calc(100vw - 28px))}
.lastProjectSummary{display:grid;gap:5px;margin:16px 0 18px;padding:14px;border:1px solid rgba(159,208,255,.16);border-radius:8px;background:rgba(6,30,52,.72)}
.lastProjectSummary span,.lastProjectSummary small{color:#aac3dc;font-size:12px}.lastProjectSummary b{font-size:20px;color:#f4fbff}
.lastProjectPromptActions{display:grid;grid-template-columns:1fr 1.25fr;gap:10px}.lastProjectPromptActions button{width:100%}
.projectManageHeader{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;border-bottom:1px solid rgba(159,208,255,.14);padding-bottom:12px;margin-bottom:14px}
.projectManageHeader h2{margin:0 0 5px;color:#9fd0ff}.projectManageHeader p{margin:0;color:#9fb4c9;line-height:1.4}
.projectManageClose{min-width:40px}
.projectManageToolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;margin-bottom:12px}
.projectManageToolbar label{display:inline-flex;align-items:center;gap:8px;color:#cfe2f3;font-weight:850;margin:0;text-transform:none;letter-spacing:0}.projectManageToolbar input{accent-color:#1d82e6;width:16px}
.projectManageBulk{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.projectManageList{display:grid;gap:8px;margin-bottom:14px}
.projectManageRow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid rgba(159,208,255,.14);border-radius:11px;background:rgba(4,18,31,.64);padding:11px}
.projectManageRow.archived{opacity:.72;background:rgba(4,18,31,.38)}
.projectManageRow input[type="checkbox"]{width:18px;height:18px;accent-color:#1d82e6}.projectManageRow b{display:block;color:#eef8ff}.projectManageRow span{display:block;margin-top:3px;color:#9fb4c9;font-size:12px;font-weight:800}.projectManageRow em{font-style:normal;border:1px solid rgba(159,208,255,.2);border-radius:999px;padding:3px 8px;color:#a9c1d8;font-size:11px;font-weight:900}
.projectImportPanel{border-top:1px solid rgba(159,208,255,.14);padding-top:14px;display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.45fr) auto;gap:10px;align-items:end}
.projectImportPanel label{display:grid;gap:6px;color:#a9c1d8;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;margin:0}
.projectImportPanel input{width:100%;border:1px solid #2d5e84;border-radius:10px;background:#061728;color:#eaf4ff;padding:10px 12px;font-weight:800}
.projectImportNote{grid-column:1/-1;margin:0;color:#d8b84b;font-size:12px;line-height:1.4}
button[aria-busy="true"],button:disabled{cursor:not-allowed;opacity:.68}
#loadProjectBtn.isDisabled{background:#263645;border-color:#3c4f61;color:#9fb0c0;box-shadow:none}
.actionsGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.comingGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}
.comingCard h3{margin:0 0 8px}.comingCard p{margin:0;color:#9fb4c9;line-height:1.45}
.emptyState{border:1px dashed #315a78;border-radius:13px;padding:26px;text-align:center;color:#b8cce0;background:rgba(7,27,46,.62)}
.liveViewWorkspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.38fr);gap:14px;align-items:start}
.liveViewStage{display:grid;gap:12px}
.liveVideoFrame{position:relative;border:1px solid rgba(159,208,255,.2);border-radius:12px;background:#01050b;overflow:hidden;aspect-ratio:16/9;display:grid;place-items:center}
.liveVideoFrame video{width:100%;height:100%;object-fit:contain;background:#01050b}
.liveVideoPlaceholder{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:#8fa8bd;font-weight:850;padding:22px;pointer-events:none}
.liveConnectionPanel{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:10px;align-items:center;border:1px solid rgba(159,208,255,.16);border-radius:12px;background:rgba(4,18,31,.62);padding:12px}
.liveConnectionPanel span{display:block;color:#8fb0ca;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}
.liveConnectionPanel b{display:block;margin-top:4px;color:#eef8ff;font-size:15px}
.liveConnectionPanel small{display:block;margin-top:4px;color:#a9bfd4;font-weight:800;line-height:1.35}
.liveViewToolbar,.liveViewFields{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:end}
.liveViewFields label{margin:0}
.liveStatusBox{border:1px solid rgba(159,208,255,.16);border-radius:10px;background:rgba(4,18,31,.62);padding:12px;color:#cfe2f3;font-weight:850;line-height:1.45}
.liveCameraList{display:grid;gap:8px}
.liveCameraItem{border:1px solid rgba(159,208,255,.14);border-radius:10px;background:rgba(4,18,31,.62);padding:11px;color:#cfe2f3}
.liveCameraItem b{display:block;color:#eef8ff}.liveCameraItem span{display:block;margin-top:4px;color:#8fa8bd;font-size:12px;font-weight:800;overflow-wrap:anywhere}
.projectPanel>p.status{margin:0 0 14px}
.settingsWorkspace{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.settingsPanel{display:grid;gap:14px}
.settingsTilePanel{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.settingsTile{min-width:0;display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto auto;gap:8px 10px;align-items:center;text-align:left;border:1px solid rgba(159,208,255,.16);border-radius:10px;background:rgba(4,18,31,.72);padding:12px;color:#dcecff;cursor:pointer}
.settingsTile:hover,.settingsTile.isActive{border-color:#4aa3ff;background:#0b2d4a}
.settingsTile b{display:block;color:#eef8ff;font-size:13px;line-height:1.18}.settingsTile small{display:block;color:#8fa8bd;font-size:11px;font-weight:800;line-height:1.25;margin-top:3px}.settingsTile em{grid-column:2;justify-self:start;border:1px solid rgba(159,208,255,.18);border-radius:999px;background:rgba(20,108,190,.16);color:#9fd0ff;padding:3px 8px;font-size:10px;font-style:normal;font-weight:950;text-transform:uppercase;letter-spacing:.06em;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.settingsSection{scroll-margin-top:18px}
.settingsSectionHeader{display:grid;grid-template-columns:34px minmax(0,1fr) 36px;gap:10px;align-items:start}
.settingsSectionHeader h2{margin:0;color:#eef8ff}.settingsSectionHeader .status{margin:4px 0 0}
.settingsSectionCollapse{justify-self:end;align-self:start;border:1px solid rgba(159,208,255,.22);border-radius:8px;background:rgba(4,18,31,.72);color:#dcecff;padding:8px 11px;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.05em}
.settingsSectionClose{width:34px;height:34px;min-height:34px;border-radius:8px;border:1px solid rgba(159,208,255,.2);background:rgba(4,18,31,.72);color:#dcecff;font-size:24px;line-height:1;padding:0;display:grid;place-items:center}
.settingsSectionClose:hover{border-color:#ff7aa8;background:rgba(92,23,43,.38);color:#fff}
.settingsSection.isCollapsed .settingsSectionBody{display:none}
.settingsSectionBody{display:grid;gap:14px}
.settingsSectionActions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.settingsTileIcon{position:relative;width:30px;height:30px;border-radius:9px;background:#123a5a;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.settingsTileIcon:before,.settingsTileIcon:after{content:"";position:absolute;box-sizing:border-box}
.settingsIconAccount{background:linear-gradient(135deg,#2367a2,#38bdf8)}.settingsIconAccount:before{width:10px;height:10px;border-radius:50%;left:10px;top:6px;background:#eaf7ff}.settingsIconAccount:after{width:18px;height:9px;border-radius:9px 9px 4px 4px;left:6px;bottom:6px;background:#eaf7ff}
.settingsIconInsights{background:linear-gradient(135deg,#245e9a,#7c5cff)}.settingsIconInsights:before{width:6px;height:16px;left:7px;bottom:6px;border-radius:5px;background:#88e7ff;box-shadow:8px -4px 0 #ffe082,16px 2px 0 #ff7aa8}.settingsIconInsights:after{width:22px;height:2px;left:4px;bottom:5px;background:rgba(255,255,255,.75)}
.settingsIconTargets{background:linear-gradient(135deg,#0f766e,#55d687)}.settingsIconTargets:before{width:18px;height:18px;border:2px solid #eafff7;border-radius:50%;left:6px;top:6px}.settingsIconTargets:after{width:8px;height:8px;border-radius:50%;left:11px;top:11px;background:#eafff7}
.settingsIconController{background:linear-gradient(135deg,#40516b,#94a3b8)}.settingsIconController:before{width:18px;height:12px;border:2px solid #f4f8ff;border-radius:4px;left:6px;top:7px}.settingsIconController:after{width:14px;height:2px;left:8px;bottom:7px;background:#f4f8ff;box-shadow:4px -7px 0 -1px #f4f8ff,-4px -7px 0 -1px #f4f8ff}
.settingsIconDirect{background:linear-gradient(135deg,#1d4ed8,#38bdf8)}.settingsIconDirect:before{width:8px;height:8px;border-radius:50%;left:11px;top:11px;background:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.22),0 0 0 10px rgba(255,255,255,.12)}.settingsIconDirect:after{width:4px;height:4px;border-radius:50%;right:5px;top:5px;background:#9fffd0}
.settingsIconEdge{background:linear-gradient(135deg,#047857,#84cc16)}.settingsIconEdge:before{width:16px;height:18px;border:2px solid #f2ffe8;border-radius:5px;left:7px;top:6px}.settingsIconEdge:after{width:8px;height:2px;left:11px;top:12px;background:#f2ffe8;box-shadow:0 5px 0 #f2ffe8}
.accountSettingsGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.accountSettingsGrid div{border:1px solid rgba(159,208,255,.14);border-radius:10px;background:rgba(4,18,31,.62);padding:12px}.accountSettingsGrid span{display:block;color:#8fb0ca;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.accountSettingsGrid b{display:block;margin-top:5px;color:#eef8ff;font-size:14px;overflow-wrap:anywhere;line-height:1.25}
.settingsSummary{border:1px solid rgba(159,208,255,.14);border-radius:10px;background:rgba(4,18,31,.62);padding:10px 12px;color:#cfe2f3;font-weight:850}
.settingsChecklist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.settingsCheck{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;border:1px solid rgba(159,208,255,.16);border-radius:10px;background:rgba(4,18,31,.72);padding:12px;cursor:pointer;min-width:0;text-transform:none;letter-spacing:0}
.settingsCheck:hover{border-color:#4aa3ff;background:#0b2d4a}
.settingsCheck input{width:18px;height:18px;min-height:18px;margin:0;accent-color:#1d82e6}
.settingsCheck b{display:block;color:#eef8ff;font-size:14px;line-height:1.2}
.settingsCheck small{display:block;color:#8fa8bd;margin-top:4px;text-transform:none;letter-spacing:0;font-size:11px;font-weight:750;line-height:1.25}
.controllerSetupGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.controllerSetupGroup{border:1px solid rgba(159,208,255,.14);border-radius:10px;background:rgba(4,18,31,.62);padding:12px;display:grid;gap:9px;min-width:0}
.controllerChoiceCard{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;border:1px solid rgba(159,208,255,.16);border-radius:10px;background:rgba(3,14,25,.7);padding:11px;cursor:pointer;text-transform:none;letter-spacing:0}
.controllerChoiceCard:hover{border-color:#4aa3ff;background:#0b2d4a}.controllerChoiceCard input{width:18px;height:18px;min-height:18px;margin:0;accent-color:#1d82e6}.controllerChoiceCard b{display:block;color:#eef8ff;font-size:14px}.controllerChoiceCard small{display:block;margin-top:4px;color:#8fa8bd;font-size:11px;font-weight:750;line-height:1.25}
.syncWorkflow{display:grid;gap:10px;margin-top:12px}
.syncWorkflow article{display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;border:1px solid rgba(159,208,255,.16);border-radius:10px;background:rgba(3,14,25,.58);padding:12px;align-items:start}
.syncWorkflow article>span{width:28px;height:28px;border-radius:999px;background:#1d82e6;color:#fff;display:grid;place-items:center;font-weight:950}
.syncWorkflow b{color:#eef8ff}.syncWorkflow p{margin:4px 0 9px;color:#9fb4c9;line-height:1.4}.syncWorkflow .panelActions{justify-content:flex-start}
.syncWorkflowResult,.controllerConnectedCard{border:1px solid rgba(159,208,255,.16);border-radius:10px;background:rgba(3,14,25,.58);padding:12px}
.syncWorkflowResult.good{border-color:rgba(62,231,119,.42);background:rgba(20,89,55,.26)}.syncWorkflowResult.danger{border-color:rgba(255,93,125,.42);background:rgba(92,23,43,.24)}
.syncWorkflowResult b,.controllerConnectedCard b{display:block;color:#eef8ff}.syncWorkflowResult span,.controllerConnectedCard span{display:block;color:#8fa8bd;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}
.controllerConnectedCard{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:12px}.controllerConnectedCard div{border:1px solid rgba(159,208,255,.12);border-radius:8px;background:rgba(2,11,20,.42);padding:10px;min-width:0}
.controllerConnectionStatus{width:max-content;border-radius:999px;padding:3px 8px;font-size:12px!important;line-height:1.1}
.controllerConnectionStatus.is-connected,.controllerConnectionStatusBox.is-connected{color:#78f39a!important;background:rgba(32,137,70,.18);border:1px solid rgba(83,241,123,.32)}
.controllerConnectionStatus.is-disconnected,.controllerConnectionStatusBox.is-disconnected{color:#ff8fa8!important;background:rgba(113,24,46,.22);border:1px solid rgba(255,93,125,.36)}
.controllerConnectionStatus.is-pending,.controllerConnectionStatusBox.is-pending{color:#ffd76b!important;background:rgba(137,101,20,.18);border:1px solid rgba(255,215,107,.3)}
.controllerConnectionStatusBox{display:inline-flex;align-items:center;width:max-content;margin-top:3px;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}
.waterTargetTable{border:1px solid rgba(159,208,255,.16);border-radius:10px;overflow:auto;background:rgba(3,14,25,.48)}
.waterTargetHead,.waterTargetRow{display:grid;grid-template-columns:minmax(150px,.95fr) minmax(170px,1fr) minmax(126px,.68fr) minmax(126px,.68fr) minmax(70px,.38fr);gap:10px;align-items:center;padding:10px 12px;min-width:780px}
.waterTargetHead{background:rgba(13,47,76,.82);color:#9fd0ff;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}
.waterTargetRow{border-top:1px solid rgba(159,208,255,.1);color:#dcecff;font-size:12px}
.waterTargetRow.isOverride{background:rgba(45,142,255,.08)}
.waterTargetRow b{display:block;color:#eef8ff;font-size:13px}.waterTargetRow small{display:block;margin-top:3px;color:#8fa8bd;font-size:10px;font-weight:800;line-height:1.2}
.waterTargetRow label{margin:0}.waterTargetRow input{width:100%;min-height:36px;padding:8px 9px;border-radius:8px;font-size:13px}
.apexSettingsGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.apexSettingsGrid label{display:grid;gap:7px;margin:0}.apexSettingsGrid input,.apexSettingsGrid select,.apexSettingsGrid textarea{width:100%;box-sizing:border-box;min-width:0}.apexSettingsGrid textarea{min-height:104px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.35}.apexEnableCheck{align-self:stretch}.apexStatusBox{align-self:stretch;display:flex;align-items:center;min-height:44px}
.copyField{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.copyField .miniButton{height:38px;min-width:64px}
.apexImportActions{border:1px solid rgba(159,208,255,.14);border-radius:10px;background:rgba(4,18,31,.62);padding:12px;display:grid;gap:8px;align-content:start}.apexImportActions span{color:#8fa8bd;font-size:12px;line-height:1.35}
.apexBridgeGrid{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(320px,1fr);gap:12px;align-items:stretch}
.apexBridgeSetup{border:1px solid rgba(159,208,255,.16);border-radius:10px;background:rgba(4,18,31,.72);padding:14px;display:grid;gap:9px;align-content:start;min-width:0}
.apexBridgeSetup p{margin:0;color:#a9bed0;font-size:13px;line-height:1.45}
.apexPairingCode{font-size:26px!important;letter-spacing:.16em;font-weight:950;text-align:center;color:#94ffa6!important}
.apexBridgeHeader{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:2px}
.apexBridgeHeader h3{margin:0;color:#9fd0ff;font-size:15px}.apexBridgeHeader span{color:#8fa8bd;font-size:12px;font-weight:850}
.apexBridgeList{display:grid;gap:10px}
.apexBridgeCard{border:1px solid rgba(159,208,255,.16);border-radius:10px;background:rgba(4,18,31,.72);padding:12px;display:grid;grid-template-columns:1.1fr 1fr 1.25fr 1.15fr auto;gap:10px;align-items:center;min-width:0}
.apexBridgeCard span{display:block;color:#8fa8bd;font-size:10px;text-transform:uppercase;font-weight:900;letter-spacing:.06em}.apexBridgeCard b{display:block;color:#eef8ff;font-size:12px;line-height:1.25;overflow-wrap:anywhere}
.apexBridgeWide{min-width:0}.apexBridgeActions{justify-self:end;display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.apexBridgeEmpty{padding:18px;text-align:left}

.waterPageStack{display:grid;gap:12px}
.waterWorkspace{display:grid;grid-template-columns:minmax(230px,260px) minmax(460px,1fr) minmax(300px,360px);grid-template-areas:"log main insights" "stability stability insights";gap:12px;align-items:start}
.waterWorkspace *{min-width:0}
.parameterSidebar{grid-area:log;position:relative;top:auto;display:grid;grid-template-rows:auto auto;align-content:start;gap:10px;align-self:start;overflow:visible}
.parameterSidebar h2,.parameterGroup h3,.statusPanel h3,.insightCard h3{margin:0;color:#eef8ff}
.parameterSidebar .status{margin:0;font-size:12px;line-height:1.3}
.parameterGroup{display:grid;grid-template-rows:auto auto;gap:7px;min-height:0}
.parameterGroup h3,.statusPanel h3,.insightCard h3{font-size:13px;text-transform:uppercase;letter-spacing:.07em;color:#9fd0ff}
.parameterMiniGrid{display:grid;grid-template-columns:1fr;grid-auto-rows:minmax(52px,auto);gap:7px;min-height:0}
.parameterMiniCard{min-height:52px;border:1px solid rgba(159,208,255,.16);border-radius:8px;background:linear-gradient(180deg,rgba(9,36,60,.9),rgba(4,18,31,.9));color:#eef8ff;text-align:left;padding:9px 8px;display:grid;grid-template-columns:24px minmax(0,1fr) minmax(60px,auto);grid-template-rows:auto auto;gap:2px 7px;align-content:center;cursor:pointer;min-width:0;overflow:hidden}
.parameterMiniCard:hover{border-color:#4aa3ff;background:#0b2d4a}
.parameterMiniCard .chemIcon{grid-row:1 / span 2}
.parameterMiniCard .chemIcon{width:23px;height:23px;border-radius:6px;font-size:8px}.parameterMiniCard b{font-size:11px;line-height:1.15;white-space:normal;overflow-wrap:anywhere}.parameterMiniCard strong{grid-column:3;grid-row:1 / span 2;align-self:center;justify-self:end;text-align:right;font-size:14px;line-height:1.1;white-space:normal;overflow-wrap:anywhere}.parameterMiniCard small{font-size:9px;color:#8fa8bd;line-height:1.15;overflow-wrap:anywhere}
.parameterSidebar>button:not(.parameterMiniCard){display:none!important}
.waterMain{grid-area:main;display:grid;gap:14px;min-width:0;align-self:start;align-content:start}
.panelActions,.trendControls{display:flex;gap:8px;justify-content:flex-end;align-items:center}
.trendPanel{min-height:0;align-self:start}
.trendChart{height:230px;border:1px solid rgba(159,208,255,.12);border-radius:10px;background:linear-gradient(180deg,rgba(7,27,46,.45),rgba(2,8,18,.58));position:relative;overflow:hidden}
.trendChartFull{height:420px}
.trendChart:before{content:"";position:absolute;inset:18px 16px 34px;z-index:0;background:linear-gradient(to bottom,transparent 0 32%,rgba(159,208,255,.12) 32% calc(32% + 1px),transparent calc(32% + 1px) 65%,rgba(159,208,255,.12) 65% calc(65% + 1px),transparent calc(65% + 1px)),repeating-linear-gradient(to right,transparent 0 11.8%,rgba(159,208,255,.06) 11.8% calc(11.8% + 1px),transparent calc(11.8% + 1px) 12.5%)}
.trendChart svg{position:absolute;inset:18px 16px 34px;width:calc(100% - 32px);height:calc(100% - 52px);z-index:2}
.trendChart polyline{fill:none;stroke:var(--series);stroke-width:1.7;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 4px color-mix(in srgb,var(--series),transparent 45%))}
.trendRangeBands{position:absolute;inset:18px 16px 34px;z-index:1;pointer-events:none}.trendBand{position:absolute;left:0;right:0;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.05)}.trendBand.low{background:rgba(245,211,79,.09)}.trendBand.optimal{background:rgba(62,231,119,.11)}.trendBand.elevated{background:rgba(255,159,59,.09)}
.trendAxisScale{position:absolute;left:18px;top:18px;bottom:34px;z-index:4;width:86px;pointer-events:none}.trendAxisScale span{position:absolute;left:0;transform:translateY(-50%);padding:2px 5px;border-radius:6px;background:rgba(4,18,31,.78);color:#dcecff;font-size:10px;font-weight:900;box-shadow:0 0 0 1px rgba(159,208,255,.12)}
.trendEmptyState{position:absolute;inset:0;z-index:4;display:grid;place-items:center;color:#9fb4c9;font-size:13px;font-weight:850;background:rgba(3,12,22,.25)}
.trendMarkerLayer,.trendInspectorLayer{position:absolute;inset:18px 16px 34px;z-index:3}
.trendInspectorLayer{cursor:crosshair;touch-action:none}
.trendCursorLine{display:none;position:absolute;top:0;bottom:0;width:1px;background:rgba(230,246,255,.72);box-shadow:0 0 12px rgba(85,184,255,.42);pointer-events:none}
.trendPoint{position:absolute;width:8px;height:8px;min-width:8px;min-height:8px;max-width:8px;max-height:8px;padding:0;border-radius:50%;border:1.5px solid #f6fbff;background:var(--series);transform:translate(-50%,-50%);cursor:help;pointer-events:auto;box-shadow:0 0 8px color-mix(in srgb,var(--series),transparent 35%)}
.trendPoint:hover{width:10px;height:10px;min-width:10px;min-height:10px;max-width:10px;max-height:10px}
.trendTimeAxis{position:absolute;left:16px;right:16px;bottom:7px;height:20px;z-index:2;color:#8ea7bd;font-size:10px;font-weight:800;pointer-events:none}
.trendTimeAxis span{position:absolute;transform:translateX(-50%);white-space:nowrap}
.trendControls{margin-top:8px}
.trendQuickRanges{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 10px}
.trendQuickRanges button.active{background:#0f63b5;border-color:#55b8ff;color:#fff;box-shadow:0 0 0 2px rgba(85,184,255,.14)}
.trendParameterLegend{display:flex;flex-wrap:wrap;gap:10px 14px;margin-top:12px;color:#bcd2e5;font-size:12px;font-weight:850;align-items:center}.trendParameterLegend.empty{color:#8fa8bd}.trendParamToggle{display:inline-flex;align-items:center;gap:7px;cursor:pointer;line-height:1}.trendParamToggle input{width:13px;height:13px;accent-color:#2575c7}.trendParamDot{width:9px;height:9px;border-radius:50%;background:var(--series);box-shadow:0 0 8px color-mix(in srgb,var(--series),transparent 35%);flex:0 0 9px}
.waterTrendWorkspace{grid-template-columns:1fr}.trendDateRange{display:grid;grid-template-columns:260px 260px;gap:10px 28px;align-items:end;margin:4px 0 12px;max-width:620px}.trendDateRange label{display:grid;gap:5px;min-width:0}.trendDateRange input[type="date"]{appearance:none;-webkit-appearance:none;display:block;min-height:44px;width:100%;min-width:0;border:1px solid #356381;border-radius:10px;background:#061523;color:#eef8ff;padding:0 13px;font-weight:850;box-sizing:border-box;color-scheme:dark}.trendDateRange input[type="date"]::-webkit-date-and-time-value{text-align:left;min-height:44px;line-height:44px}.trendDateRange input[type="date"]::-webkit-calendar-picker-indicator{margin-left:auto;opacity:.78}.trendRangeNote{grid-column:1/-1;min-height:0;display:block;color:#9fb4c9;font-size:12px;font-weight:800;line-height:1.4;padding-top:2px}.trendValueTable .emptyState{padding:18px;color:#9fb4c9;font-weight:850}
.waterBottomGrid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr);gap:14px;align-items:stretch}
.statusPanel{overflow:hidden;align-self:start}
.statusColumns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;min-width:0}
.waterStatusRow{width:100%;display:grid;grid-template-columns:26px minmax(74px,1fr) minmax(56px,auto) minmax(66px,auto);gap:7px;align-items:center;border:0;border-bottom:1px solid rgba(159,208,255,.11);background:transparent;color:#eef8ff;text-align:left;padding:8px 0;min-width:0;cursor:pointer}
.waterStatusRow:hover{background:rgba(74,163,255,.08);border-radius:8px;padding-left:6px;padding-right:6px}
.waterStatusRow.legendMatch,.parameterMiniCard.legendMatch{background:rgba(255,232,126,.16);border-color:rgba(255,232,126,.45);box-shadow:inset 3px 0 #f5d34f,0 0 0 1px rgba(255,232,126,.12);border-radius:8px}
.waterStatusRow.legendMatch{padding-left:6px;padding-right:6px}
.waterStatusRow b{font-size:12px;min-width:0;overflow-wrap:anywhere}.waterStatusRow strong{font-size:12px;color:#dcecff;min-width:0;text-align:right;white-space:normal}
.chemIcon{display:grid;place-items:center;width:25px;height:25px;border-radius:7px;font-size:9px;font-weight:950;border:1px solid rgba(255,255,255,.16)}
.chem-optimal{background:#0f6f39;color:#dfffe8}.chem-low{background:#6b5d12;color:#fff2a6}.chem-elevated{background:#8c4d12;color:#ffe2c2}.chem-action{background:#792447;color:#ffd7e3}.chem-danger{background:#7a1333;color:#ffd7e3}.chem-nodata{background:#23384c;color:#d1dce7}
.statusBadge{border-radius:999px;padding:4px 7px;font-size:10px;font-weight:950;color:#07121e;white-space:normal;text-align:center;line-height:1.1}
.status-optimal{background:#3ee777}.status-low{background:#f5d34f}.status-elevated{background:#ff9f3b}.status-action{background:#f36b9d}.status-danger{background:#ff4e72}.status-nodata{background:#a9b3bf;color:#10202f}
.chemLegend{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;color:#9fb4c9;font-size:11px;align-items:center}
.legendItem{display:inline-flex;align-items:center;gap:6px;border:1px solid transparent;background:transparent;color:#9fb4c9;font-size:11px;font-weight:850;padding:4px 7px;border-radius:999px;cursor:pointer;line-height:1}
.legendItem:hover,.legendItem.active{background:rgba(255,232,126,.14);border-color:rgba(255,232,126,.46);color:#fff4bd}
.legendClear{border:1px solid rgba(159,208,255,.22);background:rgba(14,49,78,.6);color:#d9ebfb;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:900;line-height:1;cursor:pointer}
.legendClear:hover{background:rgba(31,97,150,.72);border-color:rgba(159,208,255,.42)}
.chemLegend .legendItem .dot{box-sizing:border-box;width:9px!important;height:9px!important;min-width:9px!important;min-height:9px!important;max-width:9px!important;max-height:9px!important;border-radius:50%!important;display:inline-block!important;flex:0 0 9px!important;padding:0!important;margin:0!important;align-self:center!important;border:0!important;box-shadow:none!important;line-height:0!important}.dot.optimal{background:#3ee777}.dot.low{background:#f5d34f}.dot.elevated{background:#ff9f3b}.dot.action{background:#f36b9d}.dot.danger{background:#ff304f}.dot.nodata{background:#a9b3bf}
.trendTooltip{position:fixed;z-index:10000;width:min(330px,calc(100vw - 24px));border:1px solid rgba(159,208,255,.34);border-left:4px solid #3ea0ff;border-radius:12px;background:linear-gradient(180deg,rgba(9,36,60,.98),rgba(3,15,28,.98));box-shadow:0 18px 45px rgba(0,0,0,.42);padding:12px;color:#eaf6ff}
.trendTooltip.status-optimal{border-left-color:#3ee777}.trendTooltip.status-low{border-left-color:#f5d34f}.trendTooltip.status-elevated{border-left-color:#ff9f3b}.trendTooltip.status-action{border-left-color:#f36b9d}.trendTooltip.status-danger{border-left-color:#ff304f}
.trendTooltip h3{margin:0 28px 10px 0;font-size:15px;color:#fff}
.trendTooltip dl{display:grid;gap:7px;margin:0}.trendTooltip dl div{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;align-items:start}.trendTooltip dt{color:#8fb0ca;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.trendTooltip dd{margin:0;font-size:13px;font-weight:850;overflow-wrap:anywhere}
.trendTooltipClose{position:absolute;right:8px;top:8px;width:24px;height:24px;border-radius:7px;border:1px solid rgba(159,208,255,.25);background:rgba(10,35,58,.85);color:#dcefff;font-weight:950;cursor:pointer}
.trendInsightBlock{display:grid;gap:5px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(159,208,255,.14)}
.trendInsightBlock h4{margin:0;color:#9fc9f4;font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.trendInsightBlock p{margin:0;color:#d7e7f6;font-size:12px;line-height:1.35}
.trendTooltipActions{display:flex;justify-content:flex-end;margin-top:12px;padding-top:10px;border-top:1px solid rgba(159,208,255,.14)}
.trendInspectorTooltip dl div{grid-template-columns:minmax(92px,.8fr) minmax(0,1fr)}.trendInspectorTooltip dd{display:flex;align-items:center;gap:6px}.trendInspectorTooltip small{color:#9fb4c9;font-size:10px;font-weight:900}.trendValueSwatch{width:9px;height:9px;border-radius:50%;background:var(--series);box-shadow:0 0 8px color-mix(in srgb,var(--series),transparent 35%);flex:0 0 9px}
.trendDeleteReading{border:1px solid rgba(255,77,105,.45);background:rgba(135,22,48,.78);color:#ffe8ed;border-radius:8px;padding:8px 10px;font-size:12px;font-weight:950;cursor:pointer}.trendDeleteReading:hover{background:rgba(190,35,68,.88)}
.waterAttentionModal{position:fixed;inset:0;z-index:10002;background:rgba(1,5,10,.72);display:grid;place-items:center;padding:20px}
.waterAttentionDialog{width:min(620px,94vw);border:1px solid rgba(159,208,255,.32);border-left:5px solid #3ea0ff;border-radius:14px;background:linear-gradient(180deg,rgba(9,36,60,.98),rgba(3,15,28,.98));box-shadow:0 24px 70px rgba(0,0,0,.58);color:#eaf6ff;overflow:hidden}
.waterAttentionDialog.status-low{border-left-color:#f5d34f}.waterAttentionDialog.status-elevated{border-left-color:#ff9f3b}.waterAttentionDialog.status-action{border-left-color:#f36b9d}.waterAttentionDialog.status-danger{border-left-color:#ff304f}.waterAttentionDialog.status-nodata{border-left-color:#a9b3bf}
.waterAttentionHeader,.waterAttentionFooter{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid rgba(159,208,255,.14)}.waterAttentionFooter{border-top:1px solid rgba(159,208,255,.14);border-bottom:0}
.waterAttentionFooter{flex-wrap:wrap}.waterAttentionFooter button{min-width:148px}
.waterAttentionHeader h2{margin:0;font-size:18px}.waterAttentionHeader p{margin:4px 0 0;color:#9fb4c9}.waterAttentionHeader button{border:1px solid rgba(159,208,255,.25);background:rgba(10,35,58,.85);color:#dcefff;border-radius:8px;padding:8px 10px;font-weight:900;cursor:pointer}
.attentionSummaryGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px 16px}.attentionSummaryGrid div{border:1px solid rgba(159,208,255,.14);border-radius:10px;background:rgba(4,18,31,.62);padding:10px}.attentionSummaryGrid span{display:block;color:#8fb0ca;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.attentionSummaryGrid b{display:block;margin-top:5px;overflow-wrap:anywhere}
.waterAttentionDialog section{padding:0 16px 14px}.waterAttentionDialog section h3{margin:0 0 6px;color:#9fd0ff;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.waterAttentionDialog section p{margin:0;color:#c8dbea;line-height:1.45}
.chemistryInsights{grid-area:insights;display:grid;gap:10px;align-self:stretch}
.insightGrid{display:grid;grid-template-columns:1fr;gap:10px}
.insightCard{border:1px solid rgba(159,208,255,.12);border-radius:10px;background:rgba(3,14,25,.58);padding:12px;min-height:0;min-width:0;overflow:hidden}
.insightCard p{margin:8px 0 0;color:#c5d6e6;line-height:1.4;overflow-wrap:anywhere}
.insightCard button{width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(70px,auto);align-items:start;gap:10px;border:0;border-bottom:1px solid rgba(159,208,255,.1);background:transparent;color:#eef8ff;text-align:left;padding:8px 0;font-weight:850;min-width:0}
.insightCard button span{color:#9fb4c9;font-weight:700;text-align:right;white-space:normal;overflow-wrap:anywhere}
.recentChangeList{display:grid;gap:8px;margin-top:9px}
.recentChangeItem{border-left:3px solid #3ea0ff;border-radius:8px;background:rgba(9,36,60,.55);padding:8px 9px;display:grid;gap:3px}
.recentChangeItem.status-optimal{border-left-color:#3ee777}.recentChangeItem.status-low{border-left-color:#f5d34f}.recentChangeItem.status-elevated{border-left-color:#ff9f3b}.recentChangeItem.status-action{border-left-color:#f36b9d}.recentChangeItem.status-nodata{border-left-color:#a9b3bf}
.recentChangeItem b{font-size:12px;color:#eef8ff}.recentChangeItem span{font-size:12px;font-weight:900;color:#dcecff}.recentChangeItem small{font-size:11px;color:#9fb4c9;line-height:1.3}
.recommendedActionQueue{border-left:3px solid #3ea0ff;border-radius:8px;background:rgba(9,36,60,.55);margin-top:9px;padding:10px;display:grid;gap:8px}
.recommendedActionQueue.status-low{border-left-color:#f5d34f}.recommendedActionQueue.status-elevated{border-left-color:#ff9f3b}.recommendedActionQueue.status-action{border-left-color:#f36b9d}.recommendedActionQueue.status-danger{border-left-color:#ff304f}.recommendedActionQueue.status-nodata{border-left-color:#a9b3bf}
.recommendedActionQueue h4{margin:0;color:#eef8ff;font-size:13px;line-height:1.25}.recommendedActionQueue p{margin:0;color:#c5d6e6;line-height:1.4}
.recommendedActionMeta{display:flex;justify-content:space-between;gap:8px;align-items:center;color:#9fb4c9;font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:950}.recommendedActionMeta b{color:#9fd0ff}
.actionDetailGrid{display:grid;gap:7px}.actionDetailGrid.compact{margin-top:9px}.actionDetailRow{display:grid;grid-template-columns:92px minmax(0,1fr);gap:9px;padding-top:7px;border-top:1px solid rgba(159,208,255,.1)}.actionDetailRow:first-child{border-top:0;padding-top:0}.actionDetailRow b{color:#9fd0ff;font-size:10px;text-transform:uppercase;letter-spacing:.07em}.actionDetailRow span{color:#d6e6f4;font-size:12px;line-height:1.38;overflow-wrap:anywhere}.actionDetailRow:nth-child(2){border:1px solid rgba(159,208,255,.18);border-left:3px solid #9fd0ff;border-radius:8px;background:rgba(10,44,72,.42);padding:8px}.waterAiSource{color:#88abc9!important;font-size:10px!important;text-transform:uppercase;letter-spacing:.08em;font-weight:950}
.recommendedActionControls{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:7px}.recommendedActionControls .miniButton{min-width:0;width:100%;display:inline-flex;border:1px solid rgba(159,208,255,.22);text-align:center;padding:7px 8px}
.waterStabilityBand{grid-area:stability;display:grid;grid-template-columns:minmax(0,.56fr) minmax(0,1fr);gap:14px;align-items:stretch;align-self:stretch}
.stabilityCard{display:grid;grid-template-columns:minmax(0,1fr) 92px;grid-template-areas:"title title" "text gauge";gap:12px;align-items:center;text-align:left;min-width:0;overflow:hidden}
.stabilityCard>h2{grid-area:title;margin:0}
.stabilityGaugeWrap{display:grid;place-items:center}
.stabilityGauge{width:82px;height:82px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#3ee777 0 calc(var(--score,0) * 1%),#172d42 calc(var(--score,0) * 1%) 100%);position:relative}
.stabilityGauge:after{content:"";position:absolute;inset:14px;border-radius:50%;background:#071b2e}
.stabilityGauge b,.stabilityGauge span{position:absolute;z-index:1;left:50%;transform:translateX(-50%);text-align:center}.stabilityGauge b{top:22px;font-size:24px;line-height:1}.stabilityGauge span{top:48px;margin:0;color:#bfeacc;font-size:10px;font-weight:900;white-space:nowrap}
.stabilityText{grid-area:text;display:grid;gap:9px;min-width:0}.stabilityText>p{margin:0;color:#c5d6e6;line-height:1.4;overflow-wrap:anywhere}.stabilityGaugeWrap{grid-area:gauge}.stabilityFormula{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.stabilityFormula span{border:1px solid rgba(159,208,255,.12);border-radius:7px;background:rgba(4,18,31,.6);padding:6px;color:#b8cce0;font-size:10px;font-weight:850;text-align:center;line-height:1.2;overflow-wrap:anywhere}
.scoreLogic{border-top:1px solid rgba(159,208,255,.12);padding-top:9px;min-width:0}.scoreLogic b{display:block;color:#dceeff;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.scoreLogic p{margin:5px 0 0;font-size:12px;line-height:1.4;color:#bcd2e5;overflow-wrap:anywhere}
.stabilityDetailGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0}.stabilityDetailPanel{border:1px solid rgba(159,208,255,.12);border-radius:8px;background:rgba(3,14,25,.52);padding:10px;display:grid;gap:8px;min-width:0;overflow:hidden}.stabilityDetailPanel h3{margin:0;color:#9fd0ff;font-size:12px;text-transform:uppercase;letter-spacing:.07em;line-height:1.2}.stabilityDetailPanel p{margin:0;color:#c5d6e6;font-size:12px;line-height:1.4;overflow-wrap:anywhere}.stabilityDriver{border-left:3px solid #3ea0ff;border-radius:8px;background:rgba(9,36,60,.55);padding:8px;display:grid;gap:3px;min-width:0}.stabilityDriver.status-low{border-left-color:#f5d34f}.stabilityDriver.status-elevated{border-left-color:#ff9f3b}.stabilityDriver.status-action{border-left-color:#f36b9d}.stabilityDriver.status-danger{border-left-color:#ff304f}.stabilityDriver.status-nodata{border-left-color:#a9b3bf}.stabilityDriver b{color:#eef8ff;font-size:12px;line-height:1.25;overflow-wrap:anywhere}.stabilityDriver span{color:#bcd2e5;font-size:12px;line-height:1.35;overflow-wrap:anywhere}
.waterLogModal{position:fixed;inset:0;z-index:9999;background:rgba(1,5,10,.78);display:grid;place-items:center;padding:22px}
.waterLogDialog{width:min(840px,96vw);max-height:92vh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;border:1px solid #2b79b7;border-radius:14px;background:linear-gradient(180deg,#09243c,#041320);box-shadow:0 25px 80px rgba(0,0,0,.65);overflow:hidden}
.waterLogHeader,.waterLogFooter{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:14px 16px;border-bottom:1px solid rgba(159,208,255,.16)}
.waterLogFooter{border-top:1px solid rgba(159,208,255,.16);border-bottom:0}
.waterLogHeader h2{margin:0}.waterLogHeader p{margin:4px 0 0;color:#9fb4c9}
.waterLogHeader button{border:1px solid #2b5c83;border-radius:9px;background:#071e35;color:#dcecff;min-height:34px;padding:7px 12px;font-weight:850}
.waterLogGrid{padding:18px;overflow:auto;display:grid;grid-template-columns:1fr;gap:14px;align-items:start}
.waterLogGrid label{margin-top:0;min-width:0;width:100%;max-width:100%;display:grid;grid-template-columns:1fr;gap:7px}
.waterLogGrid .waterFullField{grid-column:1 / -1}
.waterAcceptableRange{border:1px solid rgba(216,184,75,.34);border-radius:10px;background:rgba(216,184,75,.09);padding:10px 12px;display:grid;gap:4px}
.waterAcceptableRange span{color:#d8b84b;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:950}
.waterAcceptableRange b{color:#fff4bd;font-size:15px;line-height:1.25}
.waterFieldLabel{display:block;color:#b8cce0;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;line-height:1.2}
.waterLogGrid small{color:#8fa8bd;margin-top:0;text-transform:none;letter-spacing:0;font-weight:700;line-height:1.25;overflow-wrap:anywhere}
.waterLogGrid input,.waterLogGrid select,.waterLogGrid textarea{width:100%;max-width:100%;box-sizing:border-box;min-width:0;text-overflow:ellipsis;min-height:44px}
.focusedWaterLog{grid-template-columns:1fr}
.focusedWaterLog label:first-child,.focusedWaterLog .waterNotesField{grid-column:auto}
.conductivityUnitField[hidden]{display:none}
.focusedWaterLog .waterReagentField{grid-column:auto}
.waterKitDetails{grid-column:auto;border:1px solid rgba(159,208,255,.14);border-radius:10px;background:rgba(3,14,25,.58);padding:10px 12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px;color:#cfe2f3;font-size:12px}
.waterKitDetails b{grid-column:1 / -1;color:#9fd0ff}
.waterKitDetails span{min-width:0;overflow-wrap:anywhere}
.waterNotesField{grid-column:auto}
.waterLogFooter{justify-content:flex-end}
.waterHistoryWorkspace{display:grid;gap:14px}
.waterHistoryPanel{display:grid;gap:14px}
.waterHistorySummary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.waterHistorySummary div{border:1px solid rgba(159,208,255,.14);border-radius:10px;background:rgba(4,18,31,.62);padding:11px 12px}
.waterHistorySummary span{display:block;color:#8fb0ca;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.waterHistorySummary b{display:block;margin-top:5px;color:#eef8ff;font-size:16px;overflow-wrap:anywhere}
.waterHistoryFilter{display:grid;grid-template-columns:minmax(260px,420px) auto;gap:12px;align-items:end}
.waterHistoryFilter small{display:block;margin-top:6px;color:#8fa8bd;font-size:11px;font-weight:750;line-height:1.3}
.waterHistoryDropdown{position:relative}
.waterHistoryDropdown summary{min-height:42px;border:1px solid #356381;border-radius:10px;background:#061523;color:#eef8ff;padding:11px 38px 11px 13px;font-size:14px;font-weight:900;cursor:pointer;list-style:none}
.waterHistoryDropdown summary::-webkit-details-marker{display:none}
.waterHistoryDropdown summary:after{content:"";position:absolute;right:14px;top:17px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid #9fd0ff}
.waterHistoryDropdownMenu{position:absolute;z-index:30;top:48px;left:0;width:min(380px,calc(100vw - 40px));max-height:320px;overflow:auto;border:1px solid rgba(159,208,255,.28);border-radius:10px;background:#061523;box-shadow:0 18px 45px rgba(0,0,0,.45);padding:8px;display:grid;gap:4px}
.waterHistoryDropdownMenu label{display:flex;align-items:center;gap:9px;border-radius:8px;padding:8px;color:#dcecff;font-size:13px;font-weight:850;text-transform:none;letter-spacing:0;cursor:pointer}
.waterHistoryDropdownMenu label:hover{background:#0b2d4a}.waterHistoryDropdownMenu input{width:15px;height:15px;min-height:15px;accent-color:#2d8eff}
.waterHistoryFilterActions{display:flex;gap:8px;align-items:center}
.waterHistoryTable{border:1px solid rgba(159,208,255,.16);border-radius:10px;overflow:auto;background:rgba(3,14,25,.48)}
.waterHistoryHead,.waterHistoryRow{display:grid;grid-template-columns:minmax(150px,.95fr) minmax(150px,1fr) minmax(96px,.7fr) minmax(110px,.7fr) minmax(104px,.65fr) minmax(150px,1fr);gap:10px;align-items:center;padding:10px 12px;min-width:860px}
.waterHistoryHead{background:rgba(13,47,76,.82);color:#9fd0ff;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}
.waterHistoryRow{border-top:1px solid rgba(159,208,255,.1);color:#dcecff;font-size:12px}
.waterHistoryRow>span:first-child{color:#a9bfd2;font-weight:800}
.waterHistoryRow>span:nth-child(2){display:flex;align-items:center;gap:8px;min-width:0}.waterHistoryRow b{overflow-wrap:anywhere}.waterHistoryRow strong{font-size:13px;color:#f2fbff}.waterHistoryRow em{font-style:normal;color:#b8d5ec;font-weight:850}.waterHistoryRow small{color:#9fb4c9;font-weight:750;line-height:1.25}

.coralMapWorkspace{display:grid;gap:14px}
.mappingMetrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.mappingToolbar{display:flex;justify-content:space-between;gap:14px;align-items:center}
.viewTabs,.mappingControls,.segmented{display:flex;border:1px solid rgba(74,137,190,.42);border-radius:8px;background:rgba(4,18,31,.72);overflow:hidden}
.viewTabs button,.mappingControls button,.segmented button{border:0;border-right:1px solid rgba(116,177,225,.2);background:transparent;color:#dcecff;min-height:36px;padding:8px 18px;font-weight:850}
.viewTabs button:last-child,.mappingControls button:last-child,.segmented button:last-child{border-right:0}
.viewTabs button.active,.mappingControls button.active,.segmented button.active{background:#0f63b5;color:#fff}
.mappingControls{gap:0;align-items:center;overflow:visible;border:0;background:transparent}
.mappingControls select{width:auto;min-height:36px;margin-right:12px;padding:7px 36px 7px 12px}
.mappingLayout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:14px;align-items:start}
.mappingCanvas{min-width:0}
.mappingPlannerPanel{display:grid;gap:12px}
.mappingCapturePlan{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.mappingCapturePlan button{border:1px solid rgba(159,208,255,.16);border-radius:10px;background:rgba(3,14,25,.62);color:#dcecff;text-align:left;padding:12px;display:grid;gap:5px;min-height:108px}
.mappingCapturePlan button.active{border-color:#44a7f1;background:linear-gradient(180deg,rgba(18,87,145,.82),rgba(5,25,43,.9))}
.mappingCapturePlan span{color:#9fd0ff;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}.mappingCapturePlan b{font-size:20px;color:#eef8ff}.mappingCapturePlan small{color:#9fb4c9;line-height:1.35}
.mappingPhoto{border:1px solid rgba(62,116,158,.72);border-radius:10px;background:#041320;overflow:hidden;box-shadow:0 16px 38px rgba(0,0,0,.22)}
.mappingPhotoHead{height:30px;display:flex;align-items:center;gap:10px;padding:0 10px;background:rgba(2,11,20,.84);border-bottom:1px solid rgba(104,164,211,.18)}
.mappingPhotoHead h3{margin:0;color:#f3f8ff;font-size:14px}
.mappingPhotoHead span{color:#d1deea;font-size:13px}
.mappingPhotoHead em{margin-left:auto;color:#9fb4c9;font-style:normal;font-size:11px;font-weight:900}
.mappingPhotoHead .iconButton{margin-left:auto;border:1px solid #285d89;border-radius:7px;background:#071e35;color:#dcecff;min-height:22px;padding:3px 8px;font-size:11px;font-weight:900}
.mappingPhotoHead em+.iconButton{margin-left:0}
.photoGridSurface{position:relative;display:block;width:100%;max-width:min(100%,var(--map-plane-fit-width,100%));aspect-ratio:var(--map-plane-ratio,4 / 3);min-height:0;margin:0 auto;background:#020812;overflow:hidden;border:0;color:#dcecff;text-align:center;padding:0;cursor:crosshair}
.photoGridSurface:focus-visible{outline:2px solid #57b8ff;outline-offset:-3px}
.mappingPhotoLarge .photoGridSurface{min-height:0}
.photoGridSurface img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:saturate(1.25) brightness(.78) hue-rotate(6deg)}
.mappingPhotoCalibrated .photoGridSurface img{object-fit:contain}
.blankGridPrompt{position:absolute;inset:0;display:grid;place-items:center;color:#b7c9db;font-size:15px;z-index:1}
.gridOverlay{position:absolute;inset:0;z-index:3;box-shadow:inset 0 0 0 1px rgba(88,219,125,.24);pointer-events:none}
.gridMeasureBadge{position:absolute;left:8px;bottom:8px;z-index:6;border:1px solid rgba(159,208,255,.25);border-radius:7px;background:rgba(1,8,15,.72);color:#dcecff;padding:4px 7px;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.06em;pointer-events:none}
.mapParOverlay,.mapGridCells{position:absolute;inset:0;display:grid}
.mapParOverlay{z-index:2;opacity:.66;mix-blend-mode:screen;pointer-events:none}
.mapParOverlay i{display:block;min-width:0;min-height:0;border:0;box-shadow:inset 0 0 0 1px rgba(1,8,15,.12)}
.mapParOverlayDense{display:grid;place-items:center;background:linear-gradient(90deg,rgba(64,39,197,.32),rgba(26,220,196,.25),rgba(250,210,55,.3),rgba(245,48,71,.28));color:#eef8ff;font-weight:950}
.mapGridCells{z-index:4}
.mapGridCells i{display:block;min-width:0;min-height:0;border-right:1px solid rgba(143,207,255,.24);border-bottom:1px solid rgba(143,207,255,.24);background:rgba(6,26,42,.03)}
.mapGridCells i:hover{background:rgba(255,255,255,.18);box-shadow:inset 0 0 0 1px rgba(255,255,255,.45)}
.mapGridCellsDense{display:grid;place-items:center;pointer-events:none}.mapGridCellsDense span{border-radius:999px;background:rgba(1,8,15,.72);border:1px solid rgba(159,208,255,.25);color:#dcecff;padding:8px 12px;font-size:12px;font-weight:900}
.mappingMarkerLayer{position:absolute;inset:0;z-index:5;pointer-events:none}
.mappingMarkerDot{position:absolute;transform:translateY(-50%);display:inline-flex;align-items:center;gap:5px;max-width:180px;border-radius:999px;background:rgba(1,8,15,.82);border:1px solid rgba(221,238,255,.35);box-shadow:0 8px 18px rgba(0,0,0,.42);padding:3px 7px 3px 11px;color:#fff;font-size:11px;font-weight:950;line-height:1;white-space:nowrap;pointer-events:auto;cursor:pointer}
.mappingMarkerDot i{position:absolute;left:0;top:50%;transform:translate(-50%,-50%);width:12px;height:12px;flex:0 0 12px;border-radius:50%;background:#43e777;border:2px solid rgba(4,18,12,.95);box-shadow:0 0 0 2px rgba(67,231,119,.32)}
.mappingMarkerDot b{overflow:hidden;text-overflow:ellipsis}
.mappingMarkerDot.par i{background:#58a8ff;box-shadow:0 0 0 2px rgba(88,168,255,.34)}
.mappingMarkerDot.warn i{background:#ffd447;box-shadow:0 0 0 2px rgba(255,212,71,.34)}
.mappingMarkerDot.alert i{background:#ff4e68;box-shadow:0 0 0 2px rgba(255,78,104,.34)}
.mapMarker{position:absolute;transform:translate(-50%,-50%);border:0;background:rgba(0,0,0,.76);color:#fff;border-radius:8px;padding:6px 8px 6px 25px;text-align:left;font-size:12px;font-weight:900;box-shadow:0 6px 18px rgba(0,0,0,.36);z-index:3;white-space:nowrap}
.mapMarker span{position:absolute;left:7px;top:50%;width:12px;height:12px;border-radius:50%;transform:translateY(-50%);background:#37d76a;border:2px solid #061a0f;box-shadow:0 0 0 2px rgba(74,255,132,.45)}
.mapMarker small{display:block;color:#c6d5e3;font-size:10px;font-weight:700;margin-top:1px}
.parMarker{width:42px;height:42px;border:2px solid rgba(89,157,255,.92);border-radius:50%;padding:0;display:grid;place-items:center;background:rgba(18,64,133,.72);text-align:center}
.parMarker strong{font-size:14px;line-height:1;margin-top:4px}.parMarker em{font-style:normal;font-size:9px;line-height:1;margin-top:-7px}
.addLocationTarget{position:absolute;left:50%;top:50%;width:44px;height:44px;border:1px solid rgba(147,205,255,.8);border-radius:50%;background:#0f6bc8;color:#fff;font-size:30px;line-height:1;box-shadow:0 0 0 5px rgba(15,107,200,.28);z-index:4}
.mappingPhotoActions{display:flex;justify-content:flex-end;padding:8px;background:rgba(2,11,20,.68);border-top:1px solid rgba(104,164,211,.18)}
.mappingCanvasTools{display:flex;gap:8px;margin:10px 0}
.mappingCanvasTools button{border:1px solid #2b5c83;border-radius:7px;background:#071e35;color:#dcecff;min-height:30px;padding:5px 10px;font-weight:850}
.mapTileStrip{display:grid;grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:7px;padding:8px;background:rgba(2,11,20,.72);border-top:1px solid rgba(104,164,211,.18)}
.mapTileStrip button{border:1px solid rgba(159,208,255,.16);border-radius:8px;background:#061728;color:#9fb4c9;min-height:42px;padding:6px;display:grid;gap:2px;text-align:left}
.mapTileStrip button.filled{border-color:#2d7fbd;background:#092945;color:#eef8ff}.mapTileStrip b{font-size:12px}.mapTileStrip span{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.mosaicOverlay{position:fixed;inset:0;z-index:10020;background:rgba(1,6,12,.78);display:grid;place-items:center;padding:18px}
.mosaicDialog{width:min(1480px,98vw);max-height:94dvh;border:1px solid rgba(159,208,255,.32);border-radius:14px;background:linear-gradient(180deg,rgba(9,35,58,.98),rgba(3,13,24,.98));box-shadow:0 28px 90px rgba(0,0,0,.62);color:#eaf6ff;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.mosaicHeader,.mosaicFooter{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-bottom:1px solid rgba(159,208,255,.14)}
.mosaicFooter{border-top:1px solid rgba(159,208,255,.14);border-bottom:0;flex-wrap:wrap}.mosaicHeader h2{margin:0;color:#fff}.mosaicHeader p,.mosaicFooter p{margin:4px 0 0;color:#a9c0d5;font-size:12px;line-height:1.35}.mosaicFooter p{flex:1 1 340px}.mosaicHeader button[data-mosaic-close]{width:30px;height:30px;border-radius:8px;border:1px solid rgba(159,208,255,.25);background:#071e35;color:#dcecff;font-weight:950}
.mapPhotoChoiceModal{position:fixed;inset:0;z-index:10025;background:rgba(1,6,12,.78);display:grid;place-items:center;padding:20px}
.mapPhotoChoiceDialog{width:min(640px,100%);border:1px solid rgba(159,208,255,.32);border-radius:14px;background:linear-gradient(180deg,rgba(9,35,58,.98),rgba(3,13,24,.98));box-shadow:0 28px 90px rgba(0,0,0,.62);color:#eaf6ff;overflow:hidden}
.mapPhotoChoiceHead{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:15px 16px;border-bottom:1px solid rgba(159,208,255,.14)}
.mapPhotoChoiceHead h2{margin:0;color:#fff;font-size:18px}.mapPhotoChoiceHead p{margin:4px 0 0;color:#a9c0d5;font-size:12px;line-height:1.35}.mapPhotoChoiceHead button{border:1px solid rgba(159,208,255,.25);border-radius:8px;background:#071e35;color:#dcecff;min-height:34px;padding:7px 12px;font-weight:900}
.mapPhotoChoiceGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px}
.mapPhotoChoiceGrid button{min-height:148px;border:1px solid rgba(159,208,255,.18);border-radius:11px;background:linear-gradient(180deg,rgba(9,38,63,.92),rgba(3,15,26,.96));color:#eef8ff;text-align:left;padding:14px;display:grid;align-content:start;gap:8px;cursor:pointer}
.mapPhotoChoiceGrid button:hover{border-color:#57b8ff;background:linear-gradient(180deg,rgba(18,83,135,.88),rgba(5,25,43,.96))}
.mapPhotoChoiceGrid b{font-size:16px}.mapPhotoChoiceGrid span{color:#b7c9db;font-size:13px;line-height:1.4}
.mosaicBody{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:14px;min-height:0;padding:14px}
.mosaicStageWrap{min-width:0;display:block;overflow:auto;border:1px solid rgba(159,208,255,.12);border-radius:12px;background:rgba(1,8,15,.55);padding:10px}.mosaicStage{position:relative;width:100%;min-height:420px;border:1px solid rgba(159,208,255,.22);border-radius:12px;overflow:hidden;background:#020812;background-image:linear-gradient(rgba(102,177,232,.22) 1px,transparent 1px),linear-gradient(90deg,rgba(102,177,232,.22) 1px,transparent 1px),linear-gradient(rgba(102,177,232,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(102,177,232,.09) 1px,transparent 1px);background-size:var(--inch-y,24px) var(--inch-y,24px),var(--inch-x,24px) var(--inch-x,24px),calc(var(--inch-y,24px) * 6) calc(var(--inch-y,24px) * 6),calc(var(--inch-x,24px) * 6) calc(var(--inch-x,24px) * 6)}
.mosaicTile{position:absolute;border:2px solid rgba(159,208,255,.42);border-radius:8px;background:#061728;padding:0;overflow:hidden;box-shadow:0 12px 28px rgba(0,0,0,.36);cursor:move;transform-origin:center}
.mosaicTile.active{border-color:#58b8ff;box-shadow:0 0 0 3px rgba(88,184,255,.18),0 14px 34px rgba(0,0,0,.44)}.mosaicTile img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}.mosaicTile span{position:absolute;left:6px;top:6px;display:grid;place-items:center;width:22px;height:22px;border-radius:999px;background:rgba(1,8,15,.82);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:11px;font-weight:950;pointer-events:none}
.mosaicControls{min-width:0;display:grid;gap:12px;align-content:start}.mosaicButtonRow{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mosaicButtonRow button[data-mosaic-align]{grid-column:1 / -1}.mosaicButtonRow button,.mosaicControls .dangerButton{border:1px solid #2b5c83;border-radius:8px;background:#071e35;color:#dcecff;min-height:34px;padding:7px 10px;font-weight:900}.mosaicControls .dangerButton{border-color:rgba(255,77,105,.45);background:rgba(135,22,48,.78);color:#ffe8ed}
.mosaicTileList{display:grid;gap:6px;max-height:180px;overflow:auto}.mosaicTileList button{border:1px solid rgba(159,208,255,.14);border-radius:9px;background:#061728;color:#cfe2f3;padding:9px;text-align:left}.mosaicTileList button.active{border-color:#58b8ff;background:#0b2d4a}.mosaicTileList b{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mosaicTileList span{display:block;margin-top:3px;color:#8fa8bd;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.mosaicFieldGrid{display:grid;gap:10px}.mosaicFieldGrid label{margin:0;text-transform:none;letter-spacing:0;color:#cfe2f3;font-size:12px}.mosaicFieldGrid span{display:flex;justify-content:space-between}.mosaicFieldGrid input{width:100%;accent-color:#58b8ff}
@media(max-width:900px){.mosaicBody{grid-template-columns:1fr;overflow:auto}.mosaicStage{min-height:300px}.mosaicDialog{max-height:96dvh}.mosaicFooter{align-items:stretch;flex-direction:column}.mosaicFooter button{width:100%}}
.smallViewGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.labelToggle{display:flex;align-items:center;gap:10px;margin:10px 0 0;color:#dcecff;text-transform:none;letter-spacing:0;font-size:13px}
.labelToggle input{width:auto}
.mappingAddPanel{border:1px solid rgba(62,116,158,.72);border-radius:10px;background:linear-gradient(180deg,rgba(9,36,60,.96),rgba(5,19,32,.96));padding:14px;display:grid;gap:12px;position:sticky;top:18px}
.plainIcon{border:0;background:transparent;color:#dcecff;font-size:18px}
.mappingAddPanel input,.mappingAddPanel select,.mappingAddPanel textarea{padding:9px 10px}
.mappingAddPanel textarea{min-height:58px}
.mappingWorkflowStatus{border:1px solid rgba(159,208,255,.14);border-radius:9px;background:rgba(3,14,25,.7);padding:12px;display:grid;gap:4px}
.mappingWorkflowStatus b{color:#eef8ff}.mappingWorkflowStatus span{color:#9fb4c9;font-size:12px;line-height:1.35}
.workflowList{display:grid;gap:6px}
.workflowList button{display:flex;justify-content:space-between;gap:10px;align-items:center;border:1px solid rgba(159,208,255,.14);border-radius:9px;background:#061728;color:#eef8ff;padding:10px;text-align:left}
.workflowList button:hover{border-color:#48a2e9;background:#0b2d4a}
.workflowList span{color:#9fb4c9;font-size:12px}
.coralSpatialPanel{display:grid;gap:9px}.coralSpatialPanel h3,.mappingSideHeading{margin:0;color:#cfe7ff;font-size:13px}
.coralSpatialScene{min-height:222px;display:grid;place-items:center;gap:6px;border:1px solid rgba(159,208,255,.14);border-radius:10px;background:radial-gradient(circle at 50% 22%,rgba(36,119,184,.24),rgba(1,8,15,.76) 66%);padding:10px 6px 8px;overflow:hidden}
.coralSpatialStage{position:relative;isolation:isolate}
.coralSpatialTankSvg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.coralSpatialTankSvg polygon,.coralSpatialTankSvg line,.coralSpatialTankSvg polyline{vector-effect:non-scaling-stroke}
.spatialWaterFace{fill:rgba(85,185,242,.19);stroke:rgba(163,222,255,.72);stroke-width:1.3}
.spatialFrontFace{fill:rgba(64,147,208,.1);stroke:rgba(163,222,255,.72);stroke-width:1.35}
.spatialSideFace{fill:rgba(83,175,232,.14);stroke:rgba(163,222,255,.72);stroke-width:1.35}
.spatialBackEdge,.coralSpatialTankSvg line{fill:none;stroke:rgba(163,222,255,.48);stroke-width:1.1;stroke-dasharray:3 3}
.coralSpatialDims{display:flex;gap:5px;justify-content:center;flex-wrap:wrap}.coralSpatialDims span{border:1px solid rgba(159,208,255,.16);border-radius:999px;background:rgba(6,24,40,.72);color:#a9c6dc;padding:3px 7px;font-size:10px;font-weight:900}
.coralSpatialDot{position:absolute;transform:translate(-50%,-84%);width:30px;height:30px;border:0;background:transparent;color:#eef8ff;z-index:5;padding:0;filter:drop-shadow(0 8px 8px rgba(0,0,0,.5))}
.coralSpatialDot span,.coralSpatialDot i{position:absolute;display:block}
.coralSpatialDot b{position:absolute;left:50%;top:28px;transform:translateX(-50%);max-width:68px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:999px;background:rgba(1,8,15,.78);border:1px solid rgba(221,238,255,.22);padding:2px 5px;color:#dcecff;font-size:9px;font-weight:950;opacity:0;transition:opacity .16s}
.coralSpatialDot:hover b,.coralSpatialDot:focus-visible b{opacity:1}
.coralSpatialDot.coral span{left:7px;top:7px;width:17px;height:17px;border-radius:50%;background:radial-gradient(circle at 35% 28%,#ffd1ef,#ff61bf 48%,#9c3fe8);box-shadow:0 0 0 4px rgba(255,97,191,.16)}
.coralSpatialDot.coral i{left:13px;top:1px;width:4px;height:24px;border-radius:99px;background:#66e88d;transform:rotate(-18deg)}
.coralSpatialDot.branch span{left:12px;top:4px;width:5px;height:24px;border-radius:99px;background:#ff9ed4}.coralSpatialDot.branch span:before,.coralSpatialDot.branch span:after{content:"";position:absolute;width:4px;height:15px;border-radius:99px;background:#ffb4df;top:3px}.coralSpatialDot.branch span:before{left:-6px;transform:rotate(-34deg)}.coralSpatialDot.branch span:after{right:-7px;transform:rotate(34deg)}.coralSpatialDot.branch i{left:9px;bottom:2px;width:14px;height:6px;border-radius:50%;background:#7e4cf0}
.coralSpatialDot.lps span{left:4px;top:8px;width:22px;height:14px;border-radius:50% 50% 42% 42%;background:radial-gradient(circle at 30% 45%,#fff0a8,#ffa63f 62%,#d85a27)}.coralSpatialDot.lps i{left:13px;top:1px;width:5px;height:23px;border-radius:99px;background:#ffd66a}
.coralSpatialDot.mushroom span{left:4px;top:7px;width:23px;height:14px;border-radius:18px 18px 10px 10px;background:radial-gradient(circle at 30% 35%,#bfffee,#28cfb6 64%,#108875)}.coralSpatialDot.mushroom i{left:13px;top:18px;width:5px;height:9px;border-radius:0 0 99px 99px;background:#8ff1d1}
.coralSpatialDot.polyps span{left:5px;top:5px;width:7px;height:7px;border-radius:50%;background:#f9df48;box-shadow:9px 2px 0 #56db7a,15px 10px 0 #ff72c4,3px 16px 0 #49b4ff,12px 18px 0 #f9df48}.coralSpatialDot.polyps i{left:7px;top:14px;width:17px;height:8px;border-radius:50%;background:#194f39}
.coralSpatialDot.soft span{left:11px;top:2px;width:9px;height:25px;border-radius:9px 9px 4px 4px;background:#c58cff}.coralSpatialDot.soft span:before{content:"";position:absolute;left:-6px;top:2px;width:20px;height:11px;border-radius:50%;background:#8b65ff}.coralSpatialDot.soft i{left:7px;bottom:1px;width:17px;height:7px;border-radius:50%;background:#315e55}
.coralSpatialDot.par span{left:3px;top:3px;width:24px;height:24px;border-radius:50%;background:radial-gradient(circle,#d8f1ff 0 22%,#61aaff 24% 58%,#175ec2 60%);box-shadow:0 0 18px rgba(97,170,255,.75)}.coralSpatialDot.par i{left:12px;top:0;width:6px;height:30px;border-radius:99px;background:rgba(216,241,255,.62)}
.mappingMarkerList{display:grid;gap:6px;max-height:230px;overflow:auto}
.mappingMarkerList button{border:1px solid rgba(159,208,255,.14);border-radius:9px;background:#061728;color:#eef8ff;text-align:left;padding:9px;display:grid;gap:4px}
.mappingMarkerList button:hover{border-color:#48a2e9;background:#0b2d4a}.mappingMarkerList span{color:#9fb4c9;font-size:12px;line-height:1.35}
.coralPickList{display:grid;gap:4px;max-height:250px;overflow:auto;border:1px solid rgba(159,208,255,.12);border-radius:9px;background:rgba(1,8,15,.32);padding:6px}
.coralPickList button{display:grid;grid-template-columns:32px 1fr;grid-template-rows:auto auto;gap:0 8px;align-items:center;border:0;border-bottom:1px solid rgba(159,208,255,.1);background:transparent;color:#eef8ff;text-align:left;padding:8px;border-radius:7px}
.coralPickList button:hover{background:#0c3152}
.coralPickList i{grid-row:1 / span 2;width:28px;height:28px;border-radius:50%;box-shadow:inset 0 0 10px rgba(0,0,0,.4)}
.coralPickList b{font-size:13px}.coralPickList span{font-size:11px;color:#9fb4c9}
.coralFlagshipWorkspace{gap:12px}
.coralFlagshipMain{display:grid;grid-template-columns:minmax(0,1fr) 282px;gap:12px;align-items:start}
.coralFlagshipStage{display:grid;gap:12px;min-width:0}.coralFlagshipSide{display:grid;gap:12px}
.reef3dPanel{padding:10px 12px 12px;background:linear-gradient(180deg,rgba(6,28,47,.96),rgba(2,10,18,.98));overflow:hidden}
.reef3dToolbar{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;margin-bottom:8px}
.reef3dToolbar label{display:flex;align-items:center;gap:8px;margin:0;color:#aac2d8;font-size:11px;font-weight:950;text-transform:none;letter-spacing:0}.reef3dToolbar select{min-height:34px;width:auto;background:#061728;border-color:#244f76;color:#eaf6ff}
.reef3dTabs,.reef3dMode{justify-self:center;display:flex;border:1px solid rgba(79,145,201,.42);border-radius:8px;overflow:hidden;background:rgba(2,11,20,.75)}
.reef3dMode{justify-self:end}.reef3dTabs button,.reef3dMode button{min-height:34px;border:0;border-right:1px solid rgba(159,208,255,.16);background:transparent;color:#bcd2e6;padding:7px 16px;font-weight:950}.reef3dTabs button:last-child,.reef3dMode button:last-child{border-right:0}.reef3dTabs button.active,.reef3dMode button.active{background:#1269b9;color:#fff}
.reef3dStage{position:relative;min-height:350px;border:1px solid rgba(78,151,210,.28);border-radius:10px;background:radial-gradient(circle at 52% 42%,rgba(35,96,140,.26),transparent 38%),linear-gradient(180deg,#041525,#02070d);overflow:hidden;isolation:isolate}
.reef3dStage:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(89,165,224,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(89,165,224,.12) 1px,transparent 1px);background-size:46px 46px;transform:perspective(540px) rotateX(62deg) translateY(38%);transform-origin:bottom;opacity:.62}
.reefTankModel{position:absolute;left:50%;top:50%;width:var(--tank-l);height:var(--tank-h);transform:translate(-50%,-47%) perspective(900px) rotateX(3deg) rotateY(-21deg);transform-style:preserve-3d;border:2px solid rgba(171,226,255,.72);box-shadow:inset 0 0 36px rgba(78,178,247,.14),0 20px 55px rgba(0,0,0,.55)}
.reefTankFace{position:absolute;border:1px solid rgba(171,226,255,.36);background:rgba(64,169,232,.06);pointer-events:none}.reefTankFront{inset:0;background:linear-gradient(180deg,rgba(103,205,255,.11),rgba(2,14,25,.18))}.reefTankBack{inset:0;transform:translateZ(calc(var(--tank-w) * -1));opacity:.45}.reefTankLeft{left:0;top:0;width:var(--tank-w);height:100%;transform-origin:left;transform:rotateY(90deg);background:rgba(54,142,209,.08)}.reefTankRight{right:0;top:0;width:var(--tank-w);height:100%;transform-origin:right;transform:rotateY(-90deg);background:rgba(54,142,209,.1)}
.reefWaterLine{position:absolute;left:0;right:0;top:8%;height:3px;background:linear-gradient(90deg,transparent,#83e6ff,transparent);box-shadow:0 0 18px rgba(109,222,255,.7)}.reefSandBed{position:absolute;left:0;right:0;bottom:0;height:13%;background:linear-gradient(180deg,rgba(215,192,124,.2),rgba(121,96,55,.34))}
.reefRockscape{position:absolute;left:8%;right:8%;bottom:9%;height:56%;background:radial-gradient(ellipse at 16% 76%,#6d5f72 0 9%,transparent 10%),radial-gradient(ellipse at 31% 63%,#52495d 0 16%,transparent 17%),radial-gradient(ellipse at 49% 58%,#73617d 0 20%,transparent 21%),radial-gradient(ellipse at 68% 66%,#493f55 0 17%,transparent 18%),radial-gradient(ellipse at 83% 76%,#776b46 0 12%,transparent 13%);filter:saturate(1.2) contrast(1.08)}
.reefParGlow{position:absolute;left:20%;top:45%;width:45%;height:26%;border-radius:50%;background:radial-gradient(circle,#ffef4a 0 18%,#54e077 28%,#26b5d9 48%,transparent 70%);mix-blend-mode:screen;opacity:.72;filter:blur(7px)}
.reefDepthRuler{position:absolute;left:12px;top:48px;bottom:36px;width:74px;display:flex;flex-direction:column;justify-content:space-between;color:#9fb8cf;font-size:10px;font-weight:850;z-index:4}.reefDepthRuler:before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:#7faed2}.reefDepthRuler span{padding-left:10px;border-top:1px solid rgba(159,208,255,.45)}
.reefParLegend{position:absolute;right:18px;top:42px;display:grid;gap:4px;color:#a9bed2;font-size:10px;font-weight:900;z-index:4}.reefParLegend i{width:14px;height:150px;border-radius:8px;background:linear-gradient(180deg,#ff385d,#ffe347,#49e873,#22d0ff,#4d35bc);border:1px solid rgba(255,255,255,.25)}.reefParLegend span{writing-mode:horizontal-tb;white-space:nowrap;color:#dcecff}
.reef3dMarker{position:absolute;z-index:5;width:42px;height:42px;border:0;background:rgba(3,10,18,.72);border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 2px rgba(222,244,255,.6),0 10px 22px rgba(0,0,0,.48);cursor:pointer}.reef3dMarker.selected{box-shadow:0 0 0 3px #fff,0 0 0 8px rgba(67,231,119,.28),0 12px 28px rgba(0,0,0,.52)}.reef3dMarker span,.reef3dMarker i{position:absolute;display:block}.reef3dMarker span{inset:9px;border-radius:50%;background:#ff63bd}.reef3dMarker i{left:18px;top:4px;width:6px;height:30px;border-radius:99px;background:#70e88d}.reef3dMarker.branch span{left:18px;top:6px;width:6px;height:29px;border-radius:99px}.reef3dMarker.branch span:before,.reef3dMarker.branch span:after{content:"";position:absolute;top:5px;width:5px;height:17px;border-radius:99px;background:#ffc0df}.reef3dMarker.branch span:before{left:-8px;transform:rotate(-34deg)}.reef3dMarker.branch span:after{right:-8px;transform:rotate(34deg)}.reef3dMarker.lps span{left:8px;top:13px;width:26px;height:17px;border-radius:50%;background:radial-gradient(circle,#fff0a8,#ff9e3b 62%,#d85a27)}.reef3dMarker.mushroom span{left:8px;top:12px;width:27px;height:17px;border-radius:18px 18px 9px 9px;background:radial-gradient(circle,#bfffee,#28cfb6 64%,#108875)}.reef3dMarker.polyps span{left:10px;top:9px;width:8px;height:8px;background:#f9df48;box-shadow:10px 3px 0 #56db7a,18px 12px 0 #ff72c4,4px 20px 0 #49b4ff}.reef3dMarker.soft span{left:15px;top:5px;width:11px;height:29px;border-radius:9px;background:#b98cff}
.reefSelectedCard{position:absolute;right:8%;top:17%;width:220px;border:1px solid rgba(159,208,255,.28);border-radius:8px;background:rgba(1,8,15,.88);box-shadow:0 18px 40px rgba(0,0,0,.54);padding:12px;z-index:6;color:#eaf6ff}.reefSelectedCard b{display:block;font-size:14px}.reefSelectedCard small{display:block;color:#9fb4c9;margin:3px 0 7px}.reefSelectedCard .synced{display:block;color:#6ee98a;font-size:11px;font-weight:950;margin-bottom:8px}.reefSelectedCard dl{display:grid;grid-template-columns:1fr auto;gap:6px;margin:0;font-size:11px}.reefSelectedCard dt{color:#a9bdd1}.reefSelectedCard dd{margin:0;color:#eef8ff;font-weight:950}.reefSelectedCard mark{background:#ff9a3b;color:#1a0e05;border-radius:999px;padding:2px 6px}
.reef3dHelp{display:flex;justify-content:center;gap:26px;flex-wrap:wrap;color:#8fa9bf;font-size:11px;font-weight:850;margin-top:8px}.reef3dHelp span:before{content:"◇";margin-right:6px;color:#6ca9d6}
.photoCalibrationPanel,.parCoveragePanel,.unmappedCoralsPanel,.placementConflictsPanel,.mappingAssistantPanel,.mappingPositionStatusPanel,.mappingInsightsPanel{background:linear-gradient(180deg,rgba(7,31,51,.94),rgba(3,14,25,.98))}
.photoCalibrationGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.photoCalibrationGrid .photoGridSurface{max-height:150px}.photoCalibrationGrid .mappingPhotoHead{height:34px}.photoCalibrationGrid .mappingPhotoHead h3{font-size:12px}.photoCalibrationGrid .mappingPhotoHead span{font-size:10px}.photoCalibrationGrid .mapTileStrip{display:none}
.coralFlagshipBottom{display:grid;grid-template-columns:1.05fr .7fr 1fr;gap:12px}.parCoverageMap{position:relative;min-height:170px;border:1px solid rgba(159,208,255,.14);border-radius:8px;background:#020812;overflow:hidden}.parCoverageMap .parHeatGrid{position:absolute;inset:8px;display:grid}.parCoverageMap .parHeatGrid i{display:block;min-width:0;min-height:0}
.unmappedCoralList,.placementConflictList,.assistantSteps,.photoStatusRows{display:grid;gap:8px}.unmappedCoralList article{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid rgba(159,208,255,.13);border-radius:8px;background:rgba(1,8,15,.42);padding:8px}.unmappedCoralList b,.unmappedCoralList small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unmappedCoralList small{color:#8fa9bf}.coralThumb{position:relative;width:30px;height:30px;border-radius:8px;background:#112b3e}.coralThumb i{position:absolute;inset:8px;border-radius:50%;background:#ff63bd}
.placementConflictList article{display:grid;gap:4px;border:1px solid rgba(159,208,255,.13);border-radius:9px;background:rgba(1,8,15,.46);padding:10px;position:relative}.placementConflictList article.danger{border-color:rgba(255,82,111,.46);background:rgba(82,20,35,.38)}.placementConflictList article.warn{border-color:rgba(255,204,77,.42);background:rgba(73,57,20,.34)}.placementConflictList article.good{border-color:rgba(74,231,119,.36)}.placementConflictList small,.placementConflictList span{color:#b5c7d7;font-size:11px;line-height:1.35}.placementConflictList button{position:absolute;right:8px;bottom:8px}
.mappingAssistantHead{display:flex;justify-content:space-between;gap:10px;align-items:start}.mappingAssistantHead h2,.mappingPositionStatusPanel h2,.mappingInsightsPanel h2{margin:0;color:#f2f8ff;font-size:16px}.mappingAssistantHead span{color:#9fb4c9;font-size:11px;font-weight:850}.assistantProgress{height:7px;border-radius:999px;background:rgba(1,8,15,.72);overflow:hidden;margin:9px 0 10px}.assistantProgress span{display:block;height:100%;background:linear-gradient(90deg,#4be777,#8bf39e)}
.assistantSteps button,.assistantSteps>div{display:grid;grid-template-columns:28px 1fr;gap:9px;align-items:center;border:1px solid rgba(159,208,255,.12);border-radius:8px;background:rgba(1,8,15,.38);color:#eaf6ff;text-align:left;padding:9px}.assistantSteps i{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#12314a;color:#9fb4c9;font-style:normal;font-weight:950}.assistantSteps .done i{background:#2dbb67;color:#fff}.assistantSteps b,.assistantSteps small{display:block}.assistantSteps small{color:#8fa9bf;margin-top:2px}.assistantActions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.photoStatusRows p{display:flex;justify-content:space-between;gap:8px;margin:0;border-bottom:1px solid rgba(159,208,255,.1);padding:6px 0;color:#b7cadc;font-size:12px}.photoStatusRows b{color:#7fe58d}.photoStatusRows .warn b{color:#ffc44d}.mappingInsightsPanel ul{margin:8px 0 14px;padding-left:18px;color:#b9cbda;line-height:1.45;font-size:12px}
.coralFlagshipMetrics{order:3}.unmappedPromptBackdrop{z-index:10030}.unmappedPrompt .lastProjectSummary{background:rgba(6,30,52,.85)}
@media(max-width:1100px){.coralFlagshipMain,.coralFlagshipBottom{grid-template-columns:1fr}.coralFlagshipSide{grid-template-columns:1fr 1fr}.photoCalibrationGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.reef3dToolbar{grid-template-columns:1fr}.reef3dTabs,.reef3dMode{justify-self:stretch}.reef3dTabs button,.reef3dMode button{flex:1}.reefSelectedCard{position:absolute;right:12px;top:12px}}
@media(max-width:760px){.coralFlagshipSide,.photoCalibrationGrid{grid-template-columns:1fr}.reef3dStage{min-height:300px}.reefTankModel{width:min(82vw,var(--tank-l));height:min(48vw,var(--tank-h))}.reefSelectedCard{display:none}.reefDepthRuler,.reefParLegend{display:none}}
.activeMappingPanel{padding:12px;background:linear-gradient(180deg,rgba(7,31,51,.96),rgba(2,11,20,.98));overflow:hidden}
.activeMappingToolbar{display:grid;grid-template-columns:auto minmax(300px,1fr) auto;gap:12px;align-items:center;margin-bottom:10px}
.activeMappingToolbar>div:first-child{display:grid;gap:2px;min-width:150px;color:#aac2d8;font-size:11px;font-weight:950}
.activeMappingToolbar>div:first-child b{color:#f2fbff;font-size:13px}.activeMappingActions{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap}.activeMappingActions button{min-height:34px}
.activeMappingLayout{display:grid;grid-template-columns:minmax(0,1fr) 292px;gap:12px;align-items:stretch}
.activeMappingCanvas{min-width:0}.activeMappingCanvas .mappingPhoto{height:100%;min-height:520px}.activeMappingCanvas .mappingPhotoLarge .photoGridSurface{max-height:62vh}
.activeMappingInspector{display:grid;grid-auto-rows:min-content;gap:10px;min-width:0}.activeInspectorCard{border:1px solid rgba(159,208,255,.14);border-radius:8px;background:rgba(1,8,15,.44);padding:10px;min-width:0}.activeInspectorCard h3{margin:0 0 8px;color:#dff1ff;font-size:13px}.activeInspectorCard p{margin:8px 0 0;color:#9fb4c9;font-size:12px;line-height:1.4}.activeInspectorCard small{display:block;color:#9fb4c9;margin:-4px 0 8px}
.selectedCoralCard dl{display:grid;grid-template-columns:1fr auto;gap:7px;margin:0 0 10px;font-size:12px}.selectedCoralCard dt{color:#93aac0}.selectedCoralCard dd{margin:0;color:#eef8ff;font-weight:950;text-align:right}.selectedCoralCard .synced{display:grid;place-items:center;min-height:34px;border-radius:8px;background:rgba(65,220,106,.12);border:1px solid rgba(65,220,106,.24);color:#75ed8d;font-weight:950}
.activeInspectorCard .mappingMarkerList{max-height:196px;overflow:auto;padding-right:3px}.activeInspectorCard .mappingMarkerList button{border-radius:8px;padding:8px}
.activeMappingPanel .mappingPhotoHead{min-height:42px}.activeMappingPanel .mappingPhotoHead h3{font-size:15px}.activeMappingPanel .mapTileStrip{margin-top:8px}.activeMappingPanel .photoGridSurface{border-color:rgba(118,194,255,.25);background-color:#020812}
.coralFlagshipBottom{grid-template-columns:minmax(260px,1fr) minmax(240px,.7fr) minmax(280px,.9fr)}.coralFlagshipStage{min-width:0}.coralSpatialScene{display:grid;justify-items:center}.coralSpatialStage{max-width:100%;overflow:visible}.photoCalibrationPanel{order:3}
@media(max-width:1300px){.activeMappingToolbar{grid-template-columns:1fr}.activeMappingActions,.reef3dTabs{justify-self:stretch}.reef3dTabs button{flex:1}.activeMappingLayout{grid-template-columns:1fr}.activeMappingInspector{grid-template-columns:repeat(3,minmax(0,1fr))}.activeMappingCanvas .mappingPhoto{min-height:460px}}
@media(max-width:900px){.activeMappingInspector,.coralFlagshipSide{grid-template-columns:1fr}.activeMappingCanvas .mappingPhotoLarge .photoGridSurface{min-height:340px}.activeMappingToolbar{gap:9px}.activeMappingActions{display:grid;grid-template-columns:1fr 1fr}}
.mappingV2Workspace{display:grid;gap:12px}
.mappingV2Hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.74fr);gap:16px;align-items:stretch;background:linear-gradient(135deg,rgba(9,42,69,.96),rgba(3,14,25,.98))}
.mappingV2Hero span{color:#8ed4ff;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.mappingV2Hero h2{margin:5px 0 7px;color:#f2fbff;font-size:25px}.mappingV2Hero p{margin:0;color:#b7cadc;line-height:1.45;max-width:820px}
.mappingV2HeroStats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mappingV2HeroStats article{border:1px solid rgba(159,208,255,.14);border-radius:8px;background:rgba(1,8,15,.42);padding:11px;display:grid;align-content:center;gap:4px}.mappingV2HeroStats b{color:#f2fbff;font-size:22px;line-height:1}
.mappingV2Progress{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.mappingV2Progress article{border:1px solid rgba(159,208,255,.14);border-radius:9px;background:rgba(7,31,51,.78);padding:10px;display:grid;grid-template-columns:28px minmax(0,1fr);gap:9px;align-items:start;min-height:76px}.mappingV2Progress i{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#12314a;color:#9fb4c9;font-style:normal;font-weight:950}.mappingV2Progress article.done i{background:#2dbb67;color:white}.mappingV2Progress b{display:block;color:#eef8ff;font-size:13px}.mappingV2Progress span{display:block;margin-top:3px;color:#9fb4c9;font-size:11px;line-height:1.3}
.mappingV2Views,.mappingV2CanvasPanel,.mappingV2SideCard{background:linear-gradient(180deg,rgba(7,31,51,.95),rgba(3,14,25,.98))}
.mappingV2ViewGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.mappingV2ViewCard{position:relative;border:1px solid rgba(159,208,255,.14);border-radius:10px;background:rgba(1,8,15,.42);padding:10px;display:grid;gap:9px;min-height:154px}.mappingV2ViewCard.active{border-color:#50b4ff;box-shadow:0 0 0 2px rgba(80,180,255,.14)}.mappingV2ViewCard.ready{border-left:4px solid #54e57d}.mappingV2ViewCard.needsCalibration{border-left:4px solid #ffd25f}.mappingV2ViewCard.empty{border-left:4px solid #61778c}
.mappingV2ViewPick{border:0;background:transparent;color:#eef8ff;text-align:left;padding:0;display:grid;gap:5px}.mappingV2ViewPick span{color:#9fd0ff;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.07em}.mappingV2ViewPick b{font-size:16px;line-height:1.2}.mappingV2ViewPick small{color:#9fb4c9;line-height:1.3}.mappingV2ViewActions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}.mappingV2ViewActions .miniButton{min-height:31px;padding:5px 6px;font-size:11px}.mappingV2ViewCard em{position:absolute;right:10px;top:10px;color:#83a8c4;font-style:normal;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}
.mappingV2Main{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:12px;align-items:start}.mappingV2CanvasPanel{min-width:0;padding:12px}.mappingV2CanvasHead{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;margin-bottom:10px}.mappingV2CanvasHead h2{margin:0;color:#eaf6ff}.mappingV2CanvasHead p{margin:4px 0 0}.mappingV2ActiveActions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.mappingV2ActiveActions button{min-height:34px}.mappingV2CanvasPanel .mappingPhotoLarge .photoGridSurface{max-height:62vh;border-color:rgba(117,200,255,.28);background-color:#020812}.mappingV2CanvasPanel .mappingPhotoHead{min-height:42px}.mappingV2CanvasPanel .mappingPhotoHead h3{font-size:15px}
.mappingV2CompositeCard{border:1px solid rgba(117,200,255,.22);border-radius:10px;background:#041320;overflow:hidden;box-shadow:0 16px 38px rgba(0,0,0,.22)}
.mappingV2CompositeHead{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;padding:12px;border-bottom:1px solid rgba(159,208,255,.13);background:rgba(2,11,20,.74)}
.mappingV2CompositeHead span{color:#9fd0ff;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.mappingV2CompositeHead h3{margin:4px 0 3px;color:#f2fbff;font-size:17px}.mappingV2CompositeHead p{margin:0;color:#9fb4c9;font-size:12px;font-weight:850}.mappingV2CompositeActions{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap}.mappingV2CompositeActions button{min-height:32px}
.mappingV2StageScroll{overflow-x:hidden;overflow-y:visible;border-bottom:1px solid rgba(159,208,255,.13);background:#020812;overscroll-behavior:contain}
.mappingV2Stage{position:relative;margin:0 auto;background:#020812;overflow:visible;color:#dcecff;text-align:center;cursor:crosshair;isolation:isolate}
.mappingV2Stage:focus-visible{outline:2px solid #57b8ff;outline-offset:-3px}.mappingV2Stage img{position:relative;z-index:1;width:100%;height:auto;object-fit:contain;display:block;filter:saturate(1.18) brightness(.86)}
.mappingV2Stage.hasImage img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.mappingV2EmptyStage{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:8px;padding:24px;background:linear-gradient(135deg,rgba(9,42,69,.42),rgba(1,8,15,.92));z-index:1}
.mappingV2EmptyStage b{color:#eef8ff;font-size:18px}.mappingV2EmptyStage span{max-width:430px;color:#a9c0d5;font-size:13px;line-height:1.4}
.mappingV2Stage .gridOverlay{z-index:3}.mappingV2Stage .mapParOverlay{z-index:2}.mappingV2Stage .mapGridCells{z-index:4}.mappingV2Stage .mappingMarkerLayer{z-index:5}
.mappingV2CompositeFoot{display:flex;flex-wrap:wrap;gap:8px;padding:9px 10px;background:rgba(2,11,20,.68)}
.mappingV2CompositeFoot span{border:1px solid rgba(159,208,255,.15);border-radius:999px;background:rgba(1,8,15,.42);color:#bcd2e5;padding:4px 8px;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.05em}
.mappingV2Sidebar{display:grid;gap:12px;align-content:start}.mappingV2DetailRows{display:grid;gap:7px}.mappingV2DetailRows p{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;margin:0;border-bottom:1px solid rgba(159,208,255,.1);padding:7px 0;color:#b7cadc;font-size:12px}.mappingV2DetailRows span{color:#8fa8bd;font-weight:900}.mappingV2DetailRows b{color:#eef8ff;overflow-wrap:anywhere}
.mappingV2MarkerList{display:grid;gap:7px;max-height:290px;overflow:auto;padding-right:3px}.mappingV2MarkerList button{display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto auto;column-gap:8px;align-items:center;border:1px solid rgba(159,208,255,.13);border-radius:8px;background:rgba(1,8,15,.42);color:#eef8ff;text-align:left;padding:8px}.mappingV2MarkerList button:hover,.mappingV2MarkerList button.active{border-color:#4fb0ff;background:rgba(18,87,142,.48)}.mappingV2MarkerList .coralThumb{grid-row:1 / 3}.mappingV2MarkerList b,.mappingV2MarkerList small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mappingV2MarkerList small{color:#91a9bf}
.mappingV2UnmappedList{display:grid;gap:7px;max-height:260px;overflow:auto}.mappingV2UnmappedList article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid rgba(159,208,255,.13);border-radius:8px;background:rgba(1,8,15,.42);padding:8px}.mappingV2UnmappedList b,.mappingV2UnmappedList small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mappingV2UnmappedList small{color:#91a9bf}
.mappingV2Bottom{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.78fr);gap:12px}
@media(max-width:1280px){.mappingV2Hero,.mappingV2Main{grid-template-columns:1fr}.mappingV2Sidebar{grid-template-columns:repeat(3,minmax(0,1fr))}.mappingV2Progress{grid-template-columns:repeat(3,minmax(0,1fr))}.mappingV2ViewGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.mappingV2Bottom{grid-template-columns:1fr}}
@media(max-width:860px){.mappingV2HeroStats,.mappingV2Progress,.mappingV2ViewGrid,.mappingV2Sidebar{grid-template-columns:1fr}.mappingV2CanvasHead{grid-template-columns:1fr}.mappingV2ActiveActions{display:grid;grid-template-columns:1fr}.mappingV2ViewActions{grid-template-columns:1fr 1fr 1fr}.mappingV2CanvasPanel .mappingPhotoLarge .photoGridSurface{max-height:46vh}}
.cleanMapWorkspace{display:grid;gap:14px}.cleanMapHero{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.48fr);gap:14px;align-items:stretch;background:linear-gradient(135deg,rgba(9,42,69,.96),rgba(3,14,25,.98))}.cleanMapHero span,.cleanMapViewCard span,.cleanMapStageHead span{color:#8ed4ff;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.cleanMapHero h2{margin:5px 0 7px;color:#f2fbff;font-size:26px}.cleanMapHero p{margin:0;color:#b7cadc;line-height:1.45;max-width:840px}.cleanMapStats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.cleanMapStats article{border:1px solid rgba(159,208,255,.14);border-radius:8px;background:rgba(1,8,15,.42);padding:12px;display:grid;align-content:center;gap:5px}.cleanMapStats b{color:#f2fbff;font-size:24px;line-height:1}
.cleanMapViews{background:linear-gradient(180deg,rgba(7,31,51,.95),rgba(3,14,25,.98))}.cleanMapViewGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.cleanMapViewCard{border:1px solid rgba(159,208,255,.14);border-radius:10px;background:rgba(1,8,15,.42);padding:10px;display:grid;gap:10px}.cleanMapViewCard.active{border-color:#50b4ff;box-shadow:0 0 0 2px rgba(80,180,255,.14)}.cleanMapViewCard.ready{border-left:4px solid #54e57d}.cleanMapViewCard.needsCalibration{border-left:4px solid #ffd25f}.cleanMapViewCard.empty{border-left:4px solid #61778c}.cleanMapViewCard>button{border:0;background:transparent;color:#eef8ff;text-align:left;padding:0;display:grid;gap:5px}.cleanMapViewCard b{font-size:16px}.cleanMapViewCard small{color:#9fb4c9}.cleanMapViewCard>div{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.cleanMapMain{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;align-items:start}.cleanMapCanvas,.cleanMapSideCard{background:linear-gradient(180deg,rgba(7,31,51,.95),rgba(3,14,25,.98))}.cleanMapStageCard{border:1px solid rgba(117,200,255,.22);border-radius:10px;background:#020812;overflow:hidden}.cleanMapStageCard.empty{min-height:420px;display:grid;place-items:center}.cleanMapEmpty{display:grid;gap:12px;justify-items:center;text-align:center;color:#dcecff}.cleanMapStageHead{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;padding:12px;border-bottom:1px solid rgba(159,208,255,.13);background:rgba(2,11,20,.74)}.cleanMapStageHead h2{margin:4px 0 3px;color:#f2fbff;font-size:17px}.cleanMapStageHead p{margin:0;color:#9fb4c9;font-size:12px;font-weight:850}.cleanMapStageHead>div:last-child{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.cleanMapGridSelect{display:grid;grid-template-columns:auto auto;gap:6px;align-items:center;border:1px solid rgba(159,208,255,.24);border-radius:8px;background:rgba(15,48,78,.72);padding:4px 8px;color:#b8d7f1;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}.cleanMapGridSelect select{min-height:30px;border:0;background:transparent;color:#eef8ff;font:inherit;text-transform:none;letter-spacing:0;padding:0}
.cleanMapImageStage{position:relative;margin:0 auto;background:#020812;cursor:crosshair;isolation:isolate;max-width:100%;min-height:420px;display:grid;place-items:center;overflow:hidden}.cleanMapImageStage img{position:relative;z-index:1;display:block;width:100%;height:100%;max-width:100%;max-height:72vh;object-fit:contain;filter:saturate(1.18) brightness(.88)}.cleanMapImageStage.calibrated{width:100%;min-height:0}.cleanMapImageStage.calibrated img{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:fill}.cleanMapImageFallback{display:none;place-items:center;align-content:center;gap:8px;min-height:320px;color:#dcecff;text-align:center;padding:24px}.cleanMapImageFallback b{font-size:18px}.cleanMapImageFallback span{color:#9fb4c9}.cleanMapImageFallback code{display:block;max-width:min(760px,100%);white-space:normal;overflow-wrap:anywhere;border:1px solid rgba(255,210,95,.42);border-radius:8px;background:rgba(255,210,95,.08);color:#ffd25f;padding:10px;text-align:left;font:11px/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.cleanMapImageStage.imageFailed img{display:none}.cleanMapImageStage.imageFailed .cleanMapImageFallback{display:grid}.cleanMapImageStage .gridOverlay{z-index:3}.cleanMapImageStage .mapGridCells{z-index:4}.cleanMapImageStage .mappingMarkerLayer{z-index:5}.cleanMapStageFoot{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:9px 10px;background:rgba(2,11,20,.68);color:#bcd2e5;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.05em}
.cleanMapSidebar{display:grid;gap:14px;align-content:start}.cleanMapMarkerList,.cleanMapUnmappedList{display:grid;gap:8px;max-height:340px;overflow:auto}.cleanMapMarkerList button,.cleanMapUnmappedList article{border:1px solid rgba(159,208,255,.13);border-radius:8px;background:rgba(1,8,15,.42);color:#eef8ff;text-align:left;padding:9px}.cleanMapMarkerList b,.cleanMapMarkerList small,.cleanMapUnmappedList b,.cleanMapUnmappedList small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cleanMapMarkerList small,.cleanMapUnmappedList small{color:#91a9bf}.cleanMapUnmappedList article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
@media(max-width:1180px){.cleanMapHero,.cleanMapMain{grid-template-columns:1fr}.cleanMapSidebar{grid-template-columns:repeat(2,minmax(0,1fr))}.cleanMapViewGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.cleanMapStats,.cleanMapViewGrid,.cleanMapSidebar{grid-template-columns:1fr}.cleanMapStageHead{grid-template-columns:1fr}.cleanMapStageHead>div:last-child{display:grid;grid-template-columns:1fr 1fr}}
.coralStudioWorkspace{display:grid;gap:12px}
.coralStudioMetrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.coralStudioMetrics div{min-height:74px;border:1px solid rgba(132,196,235,.16);border-radius:8px;background:linear-gradient(180deg,rgba(8,34,55,.82),rgba(2,13,23,.92));padding:12px;display:grid;align-content:center;gap:4px}
.coralStudioMetrics span{color:#91a9bf;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.coralStudioMetrics b{color:#f2fbff;font-size:25px;line-height:1}
.coralStudioShell{display:grid;grid-template-columns:300px minmax(0,1fr) 318px;gap:12px;align-items:start}
.coralStudioSetup,.coralStudioCanvas,.coralStudioSelected,.coralStudioMarkers,.coralStudioReadiness,.coralStudioViews{background:linear-gradient(180deg,rgba(7,31,51,.95),rgba(3,14,25,.98))}
.studioTankDims{border:1px solid rgba(159,208,255,.14);border-radius:8px;background:rgba(1,8,15,.42);padding:11px;display:grid;gap:4px;margin:10px 0}.studioTankDims span{color:#91a9bf;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.studioTankDims b{color:#f2fbff;font-size:18px}.studioTankDims small{color:#9fb4c9}
.studioViewStack{display:grid;gap:8px;margin-bottom:10px}.studioViewStack article{border:1px solid rgba(159,208,255,.13);border-radius:8px;background:rgba(1,8,15,.42);padding:8px;display:grid;gap:8px}.studioViewStack article.active{border-color:#4fb0ff;box-shadow:0 0 0 1px rgba(79,176,255,.18)}.studioViewStack article.good{border-left:3px solid #59e37d}.studioViewStack article.warn{border-left:3px solid #ffd45f}.studioViewStack article.muted{border-left:3px solid #64788c}.studioViewStack article>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.studioViewStack .miniButton{min-height:31px;padding:5px 7px;font-size:11px}.studioViewPick{border:0;background:transparent;color:#eef8ff;text-align:left;padding:0;display:grid;gap:2px}.studioViewPick b{font-size:14px}.studioViewPick span{color:#98adc1;font-size:12px}
.coralStudioCanvas{padding:12px;min-width:0}.coralStudioCanvasHead{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;margin-bottom:10px}.coralStudioCanvasHead h2{margin:0;color:#eaf6ff}.coralStudioCanvasHead p{margin:4px 0 0}.coralStudioCanvas .mappingPhotoLarge{min-height:0}.coralStudioCanvas .mappingPhotoLarge .photoGridSurface{max-height:50vh;border-color:rgba(117,200,255,.28);background-color:#020812}.coralStudioCanvas .mappingPhotoHead{min-height:42px}.coralStudioCanvas .mappingPhotoHead h3{font-size:15px}
.coralStudioInspector{display:grid;gap:12px}.coralStudioSelected h2,.coralStudioReadiness h2{margin:0 0 8px;color:#eaf6ff;font-size:16px}.studioSelectedGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.studioSelectedGrid div{border:1px solid rgba(159,208,255,.14);border-radius:8px;background:rgba(1,8,15,.42);padding:9px;display:grid;gap:3px}.studioSelectedGrid span{color:#91a9bf;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.07em}.studioSelectedGrid b{color:#f2fbff;font-size:13px;overflow-wrap:anywhere}.studioCoordinateBox{border:1px solid rgba(255,213,91,.24);border-radius:8px;background:rgba(81,61,18,.16);padding:10px;display:grid;gap:4px;margin-bottom:10px}.studioCoordinateBox b{color:#f1d970}.studioCoordinateBox span,.studioCoordinateBox small{color:#c8d8e6;line-height:1.35}.studioSynced{display:grid;place-items:center;min-height:34px;border-radius:8px;border:1px solid rgba(76,231,117,.26);background:rgba(76,231,117,.1);color:#7aee91;font-weight:950}
.studioMarkerList{display:grid;gap:7px;max-height:270px;overflow:auto;padding-right:3px}.studioMarkerList button{display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto auto;column-gap:8px;align-items:center;border:1px solid rgba(159,208,255,.13);border-radius:8px;background:rgba(1,8,15,.42);color:#eef8ff;text-align:left;padding:8px}.studioMarkerList button:hover,.studioMarkerList button.active{border-color:#4fb0ff;background:rgba(18,87,142,.48)}.studioMarkerList .coralThumb{grid-row:1 / 3}.studioMarkerList b,.studioMarkerList small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.studioMarkerList small{color:#91a9bf}
.coralStudioBottom{display:grid;grid-template-columns:minmax(260px,1fr) minmax(250px,.72fr) minmax(290px,.95fr);gap:12px}.coralStudioViews .photoCalibrationGrid{grid-template-columns:repeat(4,minmax(0,1fr))}.coralStudioViews .photoGridSurface{max-height:150px}.coralStudioViews .mapTileStrip{display:none}
@media(max-width:1280px){.coralStudioShell{grid-template-columns:270px minmax(0,1fr)}.coralStudioInspector{grid-column:1 / -1;grid-template-columns:repeat(3,minmax(0,1fr))}.coralStudioCanvas .mappingPhotoLarge{min-height:0}.coralStudioCanvas .mappingPhotoLarge .photoGridSurface{max-height:48vh}.coralStudioBottom{grid-template-columns:1fr 1fr}.coralStudioBottom .placementConflictsPanel{grid-column:1 / -1}}
@media(max-width:860px){.coralStudioMetrics,.coralStudioShell,.coralStudioInspector,.coralStudioBottom,.coralStudioViews .photoCalibrationGrid{grid-template-columns:1fr}.coralStudioCanvasHead{grid-template-columns:1fr}.coralStudioCanvas .mappingPhotoLarge{min-height:0}.coralStudioCanvas .mappingPhotoLarge .photoGridSurface{max-height:46vh}.studioViewStack article>div{grid-template-columns:1fr 1fr 1fr}}
.mappingPanelActions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mappingTip{margin:0;color:#9fb4c9;font-size:12px;line-height:1.4}
.mapCalibrationModal{position:fixed;inset:0;z-index:9999;background:rgba(1,5,10,.86);display:grid;place-items:center;padding:24px}
.calibrationDialog{width:min(1180px,96vw);max-height:94vh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;border:1px solid #2b79b7;border-radius:14px;background:linear-gradient(180deg,#09243c,#041320);box-shadow:0 25px 80px rgba(0,0,0,.65);overflow:hidden}
.calibrationHeader,.calibrationFooter{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;border-bottom:1px solid rgba(159,208,255,.16)}
.calibrationFooter{border-top:1px solid rgba(159,208,255,.16);border-bottom:0}
.calibrationHeader h2{margin:0;color:#eef8ff}.calibrationHeader p{margin:4px 0 0;color:#9fb4c9}
.calibrationHeader button{border:1px solid #2b5c83;border-radius:9px;background:#071e35;color:#dcecff;min-height:34px;padding:7px 12px;font-weight:850}
.calibrationStage{position:relative;min-height:520px;background:#020812;overflow:visible;touch-action:none}
.calibrationStage img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.calibrationLines{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none}
.calibrationLines polyline{fill:rgba(69,178,255,.08);stroke:#45b2ff;stroke-width:.55;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 5px rgba(69,178,255,.75))}
.calibrationPoint{position:absolute;transform:translate(-50%,-50%);width:46px;height:46px;border:3px solid #45b2ff;border-radius:50%;background:rgba(20,116,212,.72);box-shadow:0 0 0 7px rgba(69,178,255,.22),0 0 28px rgba(69,178,255,.55);z-index:5;touch-action:none}
.calibrationPoint span{display:grid;place-items:center;width:100%;height:100%;color:#fff;font-weight:950}
.mapMarkerModal{position:fixed;inset:0;z-index:10000;background:rgba(1,5,10,.78);display:grid;place-items:center;padding:22px}
.markerDialog{width:min(920px,96vw);max-height:calc(100dvh - 44px);display:flex;flex-direction:column;border:1px solid #2b79b7;border-radius:14px;background:linear-gradient(180deg,#09243c,#041320);box-shadow:0 25px 80px rgba(0,0,0,.65);overflow:hidden}
.markerHeader{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:14px 16px;border-bottom:1px solid rgba(159,208,255,.16);flex:0 0 auto}
.markerHeader h2{margin:0;color:#eef8ff}.markerHeader p{margin:4px 0 0;color:#9fb4c9}
.markerHeader button,.markerFooter button{border:1px solid #2b5c83;border-radius:9px;background:#071e35;color:#dcecff;min-height:34px;padding:7px 12px;font-weight:850}
.markerFollowupNotice,.markerEstimate{margin:14px 16px 0;border:1px solid rgba(222,202,82,.34);border-radius:10px;background:rgba(77,63,11,.22);padding:10px 12px;color:#f6df72}
.markerCareSummary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:12px 16px;border-bottom:1px solid rgba(159,208,255,.12);background:rgba(3,14,25,.38);flex:0 0 auto}
.markerCareSummary div{border:1px solid rgba(159,208,255,.14);border-radius:9px;background:rgba(6,24,40,.72);padding:9px;display:grid;gap:3px}
.markerCareSummary span{color:#8fa8bd;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.markerCareSummary b{color:#eef8ff;font-size:13px;overflow-wrap:anywhere}
.markerGrid{padding:16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;overflow:auto;min-height:0;flex:1 1 auto}
.markerGrid label{display:grid;gap:6px;color:#9fb4c9;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}
.markerGrid input,.markerGrid select,.markerGrid textarea{min-width:0;width:100%;border:1px solid #2b5c83;border-radius:9px;background:#06192b;color:#f1f8ff;padding:10px 12px;font-size:14px;font-weight:800}
.markerGrid textarea{min-height:86px;resize:vertical;text-transform:none;letter-spacing:0;font-weight:700}
.markerCombo{position:relative;display:block}
.markerCombo input{padding-right:42px}
.markerComboToggle{position:absolute;right:5px;top:5px;width:32px;height:32px;border:1px solid rgba(159,208,255,.24);border-radius:8px;background:#09233d;color:#dcecff;font-weight:950;line-height:1}
.markerComboMenu{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:12;display:none;max-height:190px;overflow:auto;border:1px solid #2b79b7;border-radius:10px;background:#041320;box-shadow:0 18px 45px rgba(0,0,0,.52);padding:5px}
.markerCombo.open .markerComboMenu{display:grid;gap:3px}
.markerComboMenu button{width:100%;border:0;border-radius:7px;background:transparent;color:#dcecff;padding:8px 10px;text-align:left;font-size:13px;font-weight:850}
.markerComboMenu button:hover,.markerComboMenu button:focus{background:#113a5f;outline:0}
.markerComboMenu button[hidden]{display:none}
.markerComboMenu .markerComboEmpty{color:#8da3b9;padding:8px 10px;text-transform:none;letter-spacing:0;font-size:13px;font-weight:800}
.markerWide{grid-column:1 / -1}
.markerEstimate{display:grid;gap:3px;margin-bottom:14px;color:#dcecff;background:rgba(3,14,25,.7);border-color:rgba(159,208,255,.16)}
.markerEstimate b{color:#9ed4ff}.markerEstimate span{color:#cbd9e8;font-size:13px;line-height:1.35}
.markerFooter{display:flex;justify-content:flex-end;gap:10px;padding:14px 16px;border-top:1px solid rgba(159,208,255,.16);flex:0 0 auto}
.markerFooter .gatewayPrimary{background:linear-gradient(180deg,#30a356,#158239);border-color:#45d678;color:white}
.cleanMapFullscreen{position:fixed;inset:0;z-index:10001;background:rgba(0,5,12,.94);display:grid;grid-template-rows:auto minmax(0,1fr);padding:14px}
.cleanMapFullscreenHead{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid rgba(117,200,255,.24);border-radius:12px 12px 0 0;background:linear-gradient(180deg,#0b2a45,#061827);padding:10px 12px}
.cleanMapFullscreenHead h2{margin:0;color:#f2fbff;font-size:18px}.cleanMapFullscreenHead p{margin:3px 0 0;color:#9fb4c9;font-size:12px;font-weight:800}.cleanMapFullscreenTools{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.cleanMapFullscreenTools button,.cleanMapFullscreenTools label{min-height:36px;border:1px solid rgba(92,169,232,.55);border-radius:9px;background:#09243c;color:#eef8ff;font-size:12px;font-weight:950;padding:8px 11px}.cleanMapFullscreenTools label{display:inline-flex;align-items:center;gap:6px}.cleanMapFullscreenTools input{accent-color:#4fb0ff}
.cleanMapFullscreenBody{position:relative;min-height:0;border:1px solid rgba(117,200,255,.24);border-top:0;border-radius:0 0 12px 12px;background:#020812;overflow:hidden;touch-action:none;cursor:grab}
.cleanMapFullscreenBody.isPannable{cursor:grab}.cleanMapFullscreenBody.isPanning{cursor:grabbing}.cleanMapFullscreenViewport{position:absolute;inset:0;display:grid;place-items:center;transform-origin:center center}.cleanMapFullscreenStage{width:min(100%,calc((100dvh - 110px) * var(--stage-ratio,1)));height:min(100%,calc((100vw - 28px) / var(--stage-ratio,1)));min-height:0}
.cleanMapFullscreenStage .cleanMapStageCard{width:100%;height:100%;display:flex;flex-direction:column}.cleanMapFullscreenStage .cleanMapStageHead{display:none}.cleanMapFullscreenStage .cleanMapStageFoot{flex:0 0 auto}.cleanMapFullscreenStage .cleanMapImageStage{width:100%;height:100%;min-height:0;max-height:none;flex:1 1 auto}
.cleanMapFullscreen.adjusting .mappingMarkerDot{box-shadow:0 0 0 3px rgba(255,210,95,.32),0 8px 18px rgba(0,0,0,.42)}
.cleanMapStageHead .cleanMapFullscreenOpen{background:linear-gradient(180deg,#123f68,#0a2a46)}
.markerNoteModalBackdrop{z-index:10002}.markerNoteModal{width:min(760px,96vw)}
body.cleanMapFullscreenOpen{overflow:hidden;touch-action:none}
.cleanMapStageHead>div:last-child{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.cleanMapStageHead>div:last-child>button,.cleanMapStageHead .cleanMapGridSelect{min-height:38px;height:38px}
.cleanMapStageHead>div:last-child>button{min-width:132px;padding:8px 12px}
.cleanMapStageHead .gatewayPrimary{min-width:150px}
.cleanMapGridSelect{display:inline-flex;grid-template-columns:none;white-space:nowrap}
.cleanMapGridSelect select{height:28px;min-height:28px}
.cleanMapFullscreen{width:100vw;height:100dvh;max-width:100vw;max-height:100dvh;overflow:hidden;padding:10px}
.cleanMapFullscreenHead{display:grid;grid-template-columns:minmax(180px,1fr) minmax(0,auto);align-items:start;gap:10px;border-radius:12px 12px 0 0}
.cleanMapFullscreenTools{display:grid;grid-template-columns:repeat(5,minmax(84px,auto));gap:8px;align-items:stretch;justify-content:end;max-width:100%}
.cleanMapFullscreenTools button,.cleanMapFullscreenTools label{height:42px;min-height:42px;display:inline-flex;align-items:center;justify-content:center;padding:8px 10px;white-space:nowrap;line-height:1.1}
.cleanMapFullscreenTools label{min-width:130px}
.cleanMapFullscreenBody{height:100%;overflow:hidden}
.cleanMapFullscreenViewport{overflow:hidden}
.cleanMapFullscreenStage{width:min(100%,calc((100dvh - 94px) * var(--stage-ratio,1)));height:min(100%,calc((100vw - 20px) / var(--stage-ratio,1)))}
body.cleanMapFullscreenOpen{position:fixed;width:100%;height:100%;overflow:hidden}
.cleanMapFullscreen{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;height:100dvh!important;z-index:2147483000!important;box-sizing:border-box}
.cleanMapFullscreenHead{min-width:0}
.cleanMapFullscreenTools{grid-template-columns:repeat(5,104px);align-items:center}
.cleanMapFullscreenTools button,.cleanMapFullscreenTools label{width:104px;max-width:104px;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis}
.cleanMapStageHead>div:last-child{min-width:0}
.cleanMapStageHead>div:last-child>button,.cleanMapStageHead .cleanMapGridSelect{height:40px;min-height:40px;box-sizing:border-box}
.cleanMapStageHead>div:last-child>button,.cleanMapStageHead .gatewayPrimary{min-width:142px}
.cleanMapStageHead .cleanMapGridSelect{min-width:142px}
@media(max-width:900px){
  .cleanMapFullscreen{padding:6px}
  .cleanMapFullscreenHead{grid-template-columns:1fr}
  .cleanMapFullscreenTools{grid-template-columns:repeat(3,minmax(0,1fr));justify-content:stretch}
  .cleanMapFullscreenTools button,.cleanMapFullscreenTools label{width:100%;min-width:0}
  .cleanMapFullscreenStage{width:min(100%,calc((100dvh - 150px) * var(--stage-ratio,1)));height:min(100%,calc((100vw - 12px) / var(--stage-ratio,1)))}
}

.parEstimatorShell{display:grid;grid-template-columns:340px minmax(0,1fr);gap:14px;align-items:start}
.parEstimatorControls{display:grid;gap:14px}
.parEstimatorControls h2,.parEstimatorStagePanel h2{margin:0;color:#b8ddff}
.parEstimatorControls p{margin:5px 0 0;color:#9fb4c9;line-height:1.4}
.parEstimatorControls label{display:grid;gap:7px;margin:0}
.parEstimatorControls input,.parEstimatorControls select{width:100%;min-height:42px}
.parEstimatorControls small{color:#9fb4c9;line-height:1.3}
.parLightRequestCard{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid rgba(85,210,255,.28);border-radius:12px;background:linear-gradient(135deg,rgba(27,107,162,.32),rgba(10,40,64,.74));padding:12px;box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.parLightRequestCard span{display:block;color:#8fd7ff;font-size:10px;font-weight:950;letter-spacing:.12em;text-transform:uppercase}
.parLightRequestCard b{display:block;color:#f2fbff;font-size:15px;line-height:1.2}
.parLightRequestCard small{display:block;margin-top:4px;color:#bdd2e4;font-size:12px;line-height:1.35}
.parLightRequestCard button{min-height:38px;border:1px solid rgba(92,169,232,.6);border-radius:9px;background:linear-gradient(180deg,#155184,#0c3355);color:#f2fbff;font-size:12px;font-weight:950;padding:8px 12px;white-space:nowrap}
.parLightRequestCard button:hover{border-color:#75d7ff;background:linear-gradient(180deg,#1d6dac,#0d416b)}
.parLightRequestModal{max-width:640px}
.parLightRequestMessage{display:grid;gap:10px;padding:16px 18px;color:#d8e8f6;line-height:1.5}
.parLightRequestMessage p{margin:0}
.parLightRequestFields textarea{width:100%;min-height:92px;border:1px solid #2b5c83;border-radius:10px;background:#06192b;color:#f1f8ff;padding:12px;font-size:14px;font-weight:800;resize:vertical}
.parLightRequestFields .authModalWide{grid-column:1 / -1}
.parLightRequestFinePrint{margin:0 18px 4px;color:#f5dc76;font-size:13px;line-height:1.45;border:1px solid rgba(216,184,75,.28);border-radius:10px;background:rgba(216,184,75,.08);padding:10px 12px}
.parStepperControl{display:grid;grid-template-columns:38px minmax(0,1fr) 38px;gap:8px;align-items:center}
.parStepperControl button{min-height:38px;border-radius:9px;border:1px solid rgba(92,169,232,.55);background:linear-gradient(180deg,#113a60,#0b2741);color:#f2fbff;font-size:18px;font-weight:950}
.parStepperControl input[type="range"]{min-height:38px}
.parEstimatorFacts{display:grid;gap:8px}
.parEstimatorFacts div{border:1px solid rgba(159,208,255,.14);border-radius:9px;background:rgba(3,14,25,.58);padding:10px 12px;display:grid;gap:3px}
.parEstimatorFacts span{color:#8fa8bd;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}
.parEstimatorFacts b{color:#eef8ff;font-size:14px;line-height:1.25}
.parEstimatorNote,.parEstimatorCaution{border:1px solid rgba(216,184,75,.34);border-radius:10px;background:rgba(216,184,75,.08);color:#f5dc76;padding:11px 12px;line-height:1.4;font-size:13px}
.parEstimatorStagePanel{overflow:hidden}
.parTankScene{position:relative;min-height:640px;display:grid;place-items:center;perspective:1500px;perspective-origin:50% 42%;background:radial-gradient(circle at top,#123b5d 0%,#041522 42%,#02070d 100%);border:1px solid rgba(159,208,255,.14);border-radius:12px;overflow:hidden;cursor:grab;touch-action:none;isolation:isolate;contain:paint;transform:translateZ(0);-webkit-transform:translateZ(0)}
.parTankScene.isDragging{cursor:grabbing}
.parSceneControls{position:absolute;top:12px;z-index:20;display:flex;gap:7px;pointer-events:auto}
.parSceneViewControls{left:12px}
.parSceneZoomControls{right:12px}
.parSceneControls button{min-height:34px;border:1px solid rgba(124,199,255,.45);border-radius:8px;background:rgba(6,24,39,.82);color:#eef8ff;font-size:12px;font-weight:950;padding:7px 10px;box-shadow:0 10px 28px rgba(0,0,0,.24);backdrop-filter:blur(8px)}
.parSceneZoomControls button{width:34px;padding:0;font-size:18px;line-height:1}
.parSceneControls button:hover{border-color:#70c7ff;background:rgba(16,62,101,.92)}
.parTankBox{position:relative;width:var(--tank-length);height:var(--tank-height);transform-style:preserve-3d;-webkit-transform-style:preserve-3d;transform:rotateX(var(--par-pitch)) rotateY(var(--par-yaw)) scale(var(--par-zoom));transition:transform .18s ease;will-change:transform}
.parTankScene.isDragging .parTankBox{transition:none}
.parTankFrame{position:absolute;border:2px solid rgba(198,236,255,.92);background:linear-gradient(135deg,rgba(116,193,255,.09),rgba(12,55,86,.025));box-shadow:inset 0 0 30px rgba(105,185,255,.16),0 0 34px rgba(56,150,255,.2);pointer-events:none;backdrop-filter:blur(.5px);backface-visibility:hidden;-webkit-backface-visibility:hidden}
.parTankFrame:before{content:"";position:absolute;inset:10px;border:1px solid rgba(221,247,255,.3);box-shadow:inset 0 0 18px rgba(112,197,255,.12)}
.parTankFrame:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.18),transparent 24%,transparent 72%,rgba(120,209,255,.12));pointer-events:none}
.parTankFrameFront{left:0;top:0;width:var(--tank-length);height:var(--tank-height);transform:translateZ(calc(var(--tank-width) / 2));background:linear-gradient(135deg,rgba(165,226,255,.14),rgba(20,68,105,.03) 42%,rgba(255,255,255,.06))}
.parTankFrameBack{left:0;top:0;width:var(--tank-length);height:var(--tank-height);transform:rotateY(180deg) translateZ(calc(var(--tank-width) / 2));background:linear-gradient(135deg,rgba(67,142,207,.05),rgba(4,20,34,.025))}
.parTankFrameLeft{left:calc(var(--tank-width) / -2);top:0;width:var(--tank-width);height:var(--tank-height);transform:rotateY(-90deg);transform-origin:center center;background:linear-gradient(90deg,rgba(40,126,196,.14),rgba(7,25,42,.05))}
.parTankFrameRight{left:calc(var(--tank-length) - (var(--tank-width) / 2));top:0;width:var(--tank-width);height:var(--tank-height);transform:rotateY(90deg);transform-origin:center center;background:linear-gradient(90deg,rgba(135,206,255,.12),rgba(4,20,34,.05))}
.parTankFrameTop{left:0;top:calc(var(--tank-width) / -2);width:var(--tank-length);height:var(--tank-width);transform:rotateX(90deg);transform-origin:center center;background:rgba(46,150,226,.1)}
.parTankFrameBottom{display:none}
.parTankFrameBottom:before{display:none}
.parWaterSurface{position:absolute;left:0;top:calc(var(--tank-width) / -2);width:var(--tank-length);height:var(--tank-width);transform:rotateX(90deg) translateZ(14px);-webkit-transform:rotateX(90deg) translateZ(14px);transform-origin:center center;border:1px solid rgba(174,229,255,.84);background:linear-gradient(135deg,rgba(68,170,247,.32),rgba(18,91,170,.2) 45%,rgba(177,236,255,.14));overflow:hidden;box-shadow:0 0 24px rgba(80,170,255,.38),inset 0 0 28px rgba(197,239,255,.18);pointer-events:none;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.parWaterSurface:before{content:"";position:absolute;inset:-45%;opacity:var(--wave-opacity);background:repeating-radial-gradient(ellipse at 42% 48%,rgba(232,250,255,.82) 0 1px,rgba(116,204,255,.38) 2px 5px,transparent 6px 14px),repeating-linear-gradient(28deg,transparent 0 16px,rgba(210,244,255,.2) 17px 19px,transparent 20px 36px);mix-blend-mode:normal;animation:parRippleA var(--wave-speed) linear infinite;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.parWaterSurface:after{content:"";position:absolute;inset:-60%;opacity:calc(var(--wave-opacity) * .62);background:repeating-radial-gradient(ellipse at 58% 44%,rgba(255,255,255,.62) 0 1px,rgba(84,174,255,.22) 2px 7px,transparent 8px 18px),linear-gradient(100deg,transparent 0 35%,rgba(255,255,255,.16) 48%,transparent 62%);mix-blend-mode:normal;animation:parRippleB calc(var(--wave-speed) * 1.37) linear infinite reverse;backface-visibility:hidden;-webkit-backface-visibility:hidden}
@keyframes parRippleA{from{transform:translate3d(-7%,-4%,0) rotate(0deg) scale(1)}to{transform:translate3d(7%,4%,0) rotate(360deg) scale(1.04)}}
@keyframes parRippleB{from{transform:translate3d(6%,-5%,0) rotate(0deg) scale(1.02)}to{transform:translate3d(-6%,5%,0) rotate(360deg) scale(1)}}
.parHeatPlane{position:absolute;opacity:var(--heat-opacity);mix-blend-mode:normal;pointer-events:auto;border:1px solid rgba(255,255,255,.14);box-shadow:inset 0 0 18px rgba(0,0,0,.18);background:rgba(0,0,0,.08);backface-visibility:hidden;-webkit-backface-visibility:hidden;transform-style:preserve-3d;-webkit-transform-style:preserve-3d}
.parHeatPlaneTop{left:0;top:calc(var(--slice-y) - (var(--tank-width) / 2));width:var(--tank-length);height:var(--tank-width);transform:rotateX(90deg) translateZ(10px);-webkit-transform:rotateX(90deg) translateZ(10px);transform-origin:center center;cursor:crosshair;border:2px solid rgba(255,255,255,.28);box-shadow:0 0 18px rgba(81,181,255,.3),inset 0 0 22px rgba(0,0,0,.16)}
.parHeatGrid{display:grid;width:100%;height:100%;gap:1px}
.parHeatGrid i{display:block;position:relative;min-width:0;min-height:0;overflow:visible;border-radius:1px;box-shadow:0 0 4px currentColor}
.parHeatGrid i:hover{outline:2px solid rgba(255,255,255,.85);z-index:4}
.parSliceCursor{position:absolute;width:14px;height:14px;border:2px solid #fff;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 3px rgba(24,126,255,.65),0 0 18px rgba(83,190,255,.9);pointer-events:none;z-index:8}
.parSliceCursorCell{left:50%;top:50%;z-index:12}
.parLightHead{position:absolute;left:var(--light-x);top:-76px;width:42px;height:18px;border:1px solid rgba(206,239,255,.95);border-radius:10px;transform:translateX(-50%) translateZ(0);background:linear-gradient(180deg,#dff7ff,#4da9ff 45%,#09213a);box-shadow:0 0 24px rgba(110,205,255,.85),0 0 54px rgba(70,175,255,.35);pointer-events:none}
.parLightBeam{position:absolute;left:var(--light-x);top:-62px;height:calc(var(--tank-height) + 88px);background:radial-gradient(ellipse at top,rgba(222,249,255,.58),rgba(102,205,255,.32) 20%,rgba(83,190,255,.17) 46%,rgba(83,190,255,.04) 72%,transparent 100%);clip-path:polygon(45% 0,55% 0,100% 100%,0 100%);opacity:.9;filter:drop-shadow(0 0 20px rgba(92,197,255,.56));pointer-events:none}
.parLightBeamLength{width:var(--beam-width);transform:translateX(-50%) translateZ(0)}
.parLightBeamDepth{width:var(--beam-depth);transform:translateX(-50%) rotateY(90deg) translateZ(0);opacity:.62}
@supports (-webkit-touch-callout:none){
  .parTankScene{perspective:1200px;contain:layout paint;transform:none;-webkit-transform:none}
  .parTankBox,.parTankFrame,.parWaterSurface,.parHeatPlane,.parLightHead,.parLightBeam{backface-visibility:hidden;-webkit-backface-visibility:hidden}
  .parTankFrame{backdrop-filter:none;-webkit-backdrop-filter:none}
  .parTankFrame:after{opacity:.55}
  .parWaterSurface{transform:rotateX(90deg) translateZ(22px);-webkit-transform:rotateX(90deg) translateZ(22px);background:linear-gradient(135deg,rgba(78,176,248,.34),rgba(17,91,169,.2) 48%,rgba(194,240,255,.18)),repeating-linear-gradient(12deg,rgba(226,249,255,.22) 0 1px,transparent 2px 13px),repeating-linear-gradient(103deg,rgba(112,204,255,.18) 0 1px,transparent 2px 16px);box-shadow:0 0 18px rgba(80,170,255,.3),inset 0 0 20px rgba(197,239,255,.14)}
  .parWaterSurface:before,.parWaterSurface:after{content:"";display:block;will-change:transform;transform:translateZ(0);-webkit-transform:translateZ(0)}
  .parWaterSurface:before{opacity:calc(var(--wave-opacity) * .7);animation:parRippleA calc(var(--wave-speed) * 1.18) linear infinite;background:repeating-radial-gradient(ellipse at 42% 48%,rgba(232,250,255,.64) 0 1px,rgba(116,204,255,.28) 2px 5px,transparent 6px 15px),repeating-linear-gradient(28deg,transparent 0 18px,rgba(210,244,255,.16) 19px 21px,transparent 22px 40px)}
  .parWaterSurface:after{opacity:calc(var(--wave-opacity) * .36);animation:parRippleB calc(var(--wave-speed) * 1.55) linear infinite reverse;background:repeating-radial-gradient(ellipse at 58% 44%,rgba(255,255,255,.46) 0 1px,rgba(84,174,255,.18) 2px 7px,transparent 8px 20px),linear-gradient(100deg,transparent 0 35%,rgba(255,255,255,.12) 48%,transparent 62%)}
  .parHeatPlane{box-shadow:inset 0 0 10px rgba(0,0,0,.14);background:rgba(0,0,0,.04)}
  .parHeatGrid{gap:0}
  .parHeatGrid i{box-shadow:none;border-radius:0}
  .parHeatPlaneTop{transform:rotateX(90deg) translateZ(18px);-webkit-transform:rotateX(90deg) translateZ(18px);opacity:calc(var(--heat-opacity) * .88);border-color:rgba(255,255,255,.22);box-shadow:0 0 10px rgba(81,181,255,.22),inset 0 0 12px rgba(0,0,0,.12)}
  .parLightBeam{filter:none;opacity:.56}
}
.parSliceReadout{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:12px 14px;border:1px solid rgba(92,169,232,.35);border-radius:8px;background:rgba(6,30,48,.88);color:#dceeff}
.parSliceReadout b{font-size:20px;color:#77e68b}
.parSliceReadout span{font-size:12px;color:#aac0d2;text-align:right}
.parSliceSummary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(160px,auto);gap:10px;align-items:stretch;width:100%}
.parSliceSummary div{min-width:0;border:1px solid rgba(92,169,232,.26);border-radius:8px;background:rgba(11,42,66,.72);padding:8px 10px}
.parSliceSummary span{display:block;text-align:left;font-size:10px;font-weight:950;text-transform:uppercase;color:#9fb4c9}
.parSliceSummary b{display:block;margin-top:2px;font-size:21px;line-height:1.1;color:#77e68b}
.parSliceSummary small{align-self:center;justify-self:end;color:#aac0d2;font-size:12px;font-weight:850;text-align:right}
.parSpectrumPanel{margin-top:12px;padding:12px;border:1px solid rgba(92,169,232,.26);border-radius:12px;background:rgba(3,14,25,.58)}
.parSpectrumHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.parSpectrumPreset{min-width:220px;display:grid;gap:6px}
.parSpectrumPreset select{width:100%;min-height:38px;border:1px solid rgba(92,169,232,.38);border-radius:8px;background:#061827;color:#eef8ff;padding:0 10px;font-weight:850}
.parSpectrumPanel h3{margin:0;color:#b8ddff;font-size:15px}
.parSpectrumPanel p{margin:4px 0 0;color:#9fb4c9;font-size:12px}
.parSpectrumSliders{display:grid;grid-template-columns:repeat(auto-fit,minmax(126px,1fr));gap:12px;margin-top:14px;align-items:stretch}
.parSpectrumChannel{min-width:0;min-height:276px;display:grid;grid-template-rows:minmax(34px,auto) 42px minmax(190px,1fr);justify-items:center;gap:10px;border:1px solid rgba(159,208,255,.14);border-radius:10px;background:rgba(7,27,45,.74);padding:12px 10px;box-sizing:border-box;overflow:hidden}
.parSpectrumChannel span{color:#dcecff;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.04em;line-height:1.18;text-align:center;max-width:100%;overflow-wrap:anywhere}
.parSpectrumNumber{width:72px;min-height:36px;box-sizing:border-box;border:1px solid rgba(92,169,232,.35);border-radius:7px;background:#061827;color:#eef8ff;text-align:center;font-weight:900;padding:0 8px;line-height:36px}
.parSpectrumNumber::-webkit-inner-spin-button,.parSpectrumNumber::-webkit-outer-spin-button{margin:0}
.parSpectrumStepper{display:grid;grid-template-rows:28px 132px 28px;gap:8px;align-items:center;justify-items:center}
.parSpectrumStepper button{width:28px;height:28px;border:1px solid rgba(92,169,232,.42);border-radius:7px;background:#123e68;color:#fff;font-weight:950;line-height:1;cursor:pointer}
.parSpectrumStepper button:hover{border-color:#70c7ff;background:#185486}
.parSpectrumStepper input[type="range"]{width:32px;height:132px;box-sizing:border-box;writing-mode:vertical-rl;direction:rtl;accent-color:var(--channel-color)}
.parEstimatorLegend{display:flex;flex-wrap:wrap;gap:9px 12px;margin:12px 0 0;color:#cfe2f3}
.parEstimatorLegend span{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:850}
.parEstimatorLegend i{width:12px;height:12px;border-radius:50%;box-shadow:0 0 0 2px rgba(255,255,255,.12)}
.parEstimatorCaution{margin-top:12px}

.equipmentWorkspace{display:grid;gap:14px}
.equipmentMetrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.equipmentMetric{min-height:96px}
.equipmentMetric b{font-size:30px}
.equipmentMetric small{color:#8fa8bd;font-weight:800}
.equipmentLayout{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(430px,1.2fr) minmax(300px,.85fr);gap:14px;align-items:start}
.equipmentInventoryPanel,.equipmentEditorPanel,.equipmentCommandPanel{min-width:0}
.equipmentSearch{width:100%;margin:8px 0 10px}
.equipmentFilterBar{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px}
.equipmentFilterBar button{border:1px solid rgba(159,208,255,.18);border-radius:999px;background:rgba(4,18,31,.72);color:#cfe2f3;min-height:30px;padding:6px 10px;font-size:12px;font-weight:900;text-transform:capitalize}
.equipmentFilterBar button.active{border-color:#43a8ff;background:rgba(20,108,190,.48);color:#fff;box-shadow:0 0 0 1px rgba(67,168,255,.18)}
.equipmentList{display:grid;gap:8px;max-height:650px;overflow:auto;padding-right:4px}
.equipmentItem{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid rgba(159,208,255,.14);border-radius:10px;background:rgba(3,14,25,.66);color:#eef8ff;text-align:left;padding:11px;cursor:pointer}
.equipmentItem:hover{border-color:rgba(93,171,235,.5);background:rgba(8,35,58,.82)}
.equipmentItem.active{border-color:#47a7ed;background:linear-gradient(180deg,rgba(18,89,151,.65),rgba(6,28,47,.85));box-shadow:0 0 0 1px rgba(71,167,237,.2)}
.equipmentItem b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.equipmentItem small{display:block;margin-top:3px;color:#8fa8bd;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.equipmentPill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 9px;font-size:11px;font-style:normal;font-weight:950;white-space:nowrap;color:#eaf6ff;background:rgba(124,145,162,.22);border:1px solid rgba(191,211,229,.16)}
.equipmentPill.good,.equipmentHealthGrid .good{color:#58ec7f;background:rgba(56,225,106,.12);border-color:rgba(56,225,106,.28)}
.equipmentPill.warn,.equipmentHealthGrid .warn{color:#ffd75a;background:rgba(255,210,54,.12);border-color:rgba(255,210,54,.32)}
.equipmentPill.danger,.equipmentPill.offline,.equipmentHealthGrid .danger{color:#ff8fa0;background:rgba(255,64,92,.12);border-color:rgba(255,64,92,.34)}
.equipmentPill.muted,.equipmentHealthGrid .muted{color:#afbed0;background:rgba(136,157,178,.12);border-color:rgba(136,157,178,.2)}
.equipmentEditorGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.equipmentEditorGrid label{display:grid;gap:7px;margin:0;color:#a9c1d8;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.07em}
.equipmentEditorGrid input,.equipmentEditorGrid select,.equipmentEditorGrid textarea{width:100%;min-width:0;box-sizing:border-box}
.equipmentEditorGrid input,.equipmentEditorGrid select{height:46px;line-height:1.2}
.equipmentEditorGrid input[type="date"]{appearance:none;-webkit-appearance:none;display:block;padding:0 13px;color-scheme:dark}
.equipmentEditorGrid input[type="date"]::-webkit-date-and-time-value{text-align:left;min-height:44px;line-height:44px}
.equipmentEditorGrid input[type="date"]::-webkit-calendar-picker-indicator{margin-left:auto;opacity:.78}
.equipmentEditorGrid textarea{min-height:104px;resize:vertical;text-transform:none;letter-spacing:0;font-weight:800}
.equipmentWide{grid-column:1 / -1}
.equipmentComboLabel{position:relative;z-index:2}
.equipmentComboLabel:focus-within{z-index:60}
.equipmentCombo{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;border:1px solid rgba(107,178,236,.36);border-radius:10px;background:rgba(3,16,29,.74);overflow:hidden}
.equipmentCombo:focus-within{border-color:#4fb0ff;box-shadow:0 0 0 2px rgba(51,142,224,.2)}
.equipmentCombo input{border:0!important;background:transparent!important;border-radius:0!important;height:44px!important}
.equipmentCombo button{height:44px;border:0;border-left:1px solid rgba(159,208,255,.18);border-radius:0;background:rgba(12,51,83,.78);color:#dff2ff;font-weight:950}
.equipmentComboMenu{position:absolute;left:0;right:0;top:calc(100% + 6px);display:none;max-height:220px;overflow:auto;border:1px solid rgba(82,164,235,.55);border-radius:10px;background:#061829;box-shadow:0 20px 36px rgba(0,0,0,.45);padding:6px;z-index:40}
.equipmentComboMenu.open{display:grid;gap:4px}
.equipmentComboMenu button{min-height:34px;border:0;border-radius:8px;background:transparent;color:#dcecff;text-align:left;padding:8px 10px;font-weight:850}
.equipmentComboMenu button:hover,.equipmentComboMenu button:focus{background:rgba(37,126,200,.35);outline:none}
.equipmentComboMenu span{color:#8fa8bd;padding:9px 10px;text-transform:none;letter-spacing:0}
.equipmentActionGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.maintenancePlanButton{border-radius:10px;border:1px solid rgba(159,208,255,.24);min-height:46px;font-weight:950;color:#fff}
.maintenancePlanButton.setup{background:linear-gradient(180deg,#d88b27,#965913);border-color:rgba(255,188,74,.55)}
.maintenancePlanButton.good{background:linear-gradient(180deg,#219e55,#116f38);border-color:rgba(91,236,132,.55)}
.maintenancePlanButton.warn{background:linear-gradient(180deg,#d99b25,#9d6112);border-color:rgba(255,214,91,.58)}
.maintenancePlanButton.danger{background:linear-gradient(180deg,#c6364b,#872435);border-color:rgba(255,117,136,.56)}
.maintenancePlanButton.muted{background:rgba(92,113,135,.3);border-color:rgba(170,190,210,.22);color:#cfdae5}
.equipmentCommandPanel{display:grid;gap:12px}
.equipmentCommandPanel h2,.equipmentCommandPanel h3{margin:0;color:#b8ddff}
.equipmentCommandPanel h3{font-size:13px;text-transform:uppercase;letter-spacing:.08em}
.equipmentHealthGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.equipmentHealthGrid div{border:1px solid rgba(159,208,255,.14);border-radius:10px;background:rgba(3,14,25,.58);padding:10px;display:grid;gap:4px}
.equipmentHealthGrid span,.equipmentHealthGrid small{color:#8fa8bd;font-size:11px;font-weight:850}
.equipmentHealthGrid b{font-size:16px}
.equipmentScheduleList{display:grid;gap:8px}
.equipmentScheduleList div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid rgba(159,208,255,.12);border-radius:9px;background:rgba(3,14,25,.58);padding:10px}
.equipmentScheduleList b,.equipmentScheduleList span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.equipmentScheduleList span{color:#9fb4c9;font-size:12px}
.equipmentInsightBox{border:1px solid rgba(216,184,75,.26);border-radius:10px;background:rgba(216,184,75,.07);padding:12px;color:#d9e8f6}
.equipmentInsightBox p{margin:0 0 9px;line-height:1.45}
.equipmentInsightBox p:last-child{margin-bottom:0}
.maintenanceWorkspace{display:grid;gap:14px}
.maintenanceMetrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.maintenanceLayout{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(460px,1.25fr) minmax(300px,.8fr);gap:14px;align-items:start}
.maintenanceQueuePanel,.maintenancePlanPanel,.maintenanceInsightsPanel{min-width:0}
.maintenanceTaskList{display:grid;gap:8px;max-height:690px;overflow:auto;padding-right:4px}
.maintenanceTaskItem{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid rgba(159,208,255,.14);border-radius:10px;background:rgba(3,14,25,.66);color:#eef8ff;text-align:left;padding:11px;cursor:pointer}
.maintenanceTaskItem:hover{border-color:rgba(93,171,235,.5);background:rgba(8,35,58,.82)}
.maintenanceTaskItem.active{border-color:#47a7ed;background:linear-gradient(180deg,rgba(18,89,151,.58),rgba(6,28,47,.86))}
.maintenanceTaskItem b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.maintenanceTaskItem small{display:block;margin-top:3px;color:#9fb4c9;line-height:1.35}
.maintenanceProfileGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}
.maintenancePlanToolbar{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:12px;position:sticky;top:0;z-index:6;padding:0 0 12px;background:linear-gradient(180deg,rgba(8,35,58,.98),rgba(8,35,58,.9))}
.maintenanceProfileGrid div{border:1px solid rgba(159,208,255,.14);border-radius:10px;background:rgba(3,14,25,.58);padding:11px;display:grid;gap:5px}
.maintenanceProfileGrid span{color:#8fa8bd;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.maintenanceProfileGrid b{color:#eef8ff}
.maintenanceDetailHeader{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:start;margin-bottom:12px}
.maintenanceDetailHeader h2{margin:3px 0 6px;color:#eef8ff;font-size:26px}
.maintenanceDetailHeader p{margin:0;color:#b8cad8;line-height:1.45}
.maintenanceDetailGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}
.maintenanceDetailGrid div{border:1px solid rgba(159,208,255,.14);border-radius:11px;background:rgba(3,14,25,.58);padding:12px;min-width:0}
.maintenanceDetailGrid span{display:block;margin-bottom:5px;color:#8fa8bd;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}
.maintenanceDetailGrid b{display:block;color:#eef8ff;line-height:1.25;overflow-wrap:anywhere}
.maintenanceScheduleCards{display:grid;gap:10px}
.maintenancePlanItems{max-height:780px;overflow:auto;padding-right:4px}
.maintenanceScheduleCard{border:1px solid rgba(159,208,255,.16);border-radius:12px;background:linear-gradient(180deg,rgba(10,44,72,.82),rgba(3,18,31,.88));padding:13px;display:grid;gap:9px}
.maintenanceScheduleCard>div{display:flex;justify-content:space-between;gap:10px;align-items:center}
.maintenanceScheduleCard h3{margin:0;color:#b8ddff;font-size:15px}
.maintenanceScheduleCard p{margin:0;color:#e4f2ff;line-height:1.45}
.maintenanceScheduleCard small{color:#91a9bf;font-weight:800}
.maintenancePlanItem{border:1px solid rgba(159,208,255,.18);border-radius:12px;background:linear-gradient(180deg,rgba(9,42,70,.84),rgba(2,17,30,.92));padding:13px;display:grid;gap:12px}
.maintenancePlanItem.collapsed{gap:0}
.maintenancePlanItem.draft{border-color:rgba(255,210,84,.38);box-shadow:inset 0 0 0 1px rgba(255,210,84,.12)}
.maintenancePlanHeader{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.maintenancePlanToggle{width:100%;border:0;background:transparent;color:inherit;text-align:left;padding:0;cursor:pointer}
.maintenancePlanToggle:hover h3{color:#eef8ff}
.maintenancePlanHeader h3{margin:0;color:#b8ddff;font-size:16px}
.maintenancePlanHeader span{display:block;margin-top:3px;color:#91a9bf;font-weight:850;font-size:12px}
.maintenancePlanHeader small{display:block;margin-top:6px;color:#a9c1d8;font-size:12px;line-height:1.35;font-weight:750;max-width:46ch}
.maintenanceItemForm{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.maintenanceItemForm label{display:grid;gap:6px;margin:0;color:#a9c1d8;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.07em}
.maintenanceItemForm input,.maintenanceItemForm select,.maintenanceItemForm textarea{width:100%;min-width:0;box-sizing:border-box}
.maintenanceItemForm input,.maintenanceItemForm select{height:42px}
.maintenanceScheduleMode{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.maintenanceScheduleMode label{display:block;position:relative;margin:0}
.maintenanceScheduleMode input{position:absolute;opacity:0;pointer-events:none}
.maintenanceScheduleMode span{display:grid;place-items:center;min-height:42px;border:1px solid rgba(159,208,255,.18);border-radius:10px;background:rgba(3,14,25,.62);color:#b8cad8;font-size:12px;font-weight:950;text-transform:none;letter-spacing:0;cursor:pointer}
.maintenanceScheduleMode input:checked+span{border-color:#47a7ed;background:linear-gradient(180deg,rgba(18,89,151,.72),rgba(6,28,47,.9));color:#eef8ff;box-shadow:inset 0 0 0 1px rgba(71,167,237,.22)}
.maintenanceItemForm .maintenanceDateControl{min-width:0;overflow:hidden}
.maintenanceItemForm .maintenanceDateControl input[type="date"],.maintenanceItemForm .maintenanceDateControl input[type="time"]{appearance:none;-webkit-appearance:none;display:block;height:42px;min-height:42px;max-height:42px;padding:0 12px;font-size:12px;line-height:42px;text-align:left;color-scheme:dark;overflow:hidden}
.maintenanceItemForm .maintenanceDateControl input[type="date"]::-webkit-date-and-time-value,.maintenanceItemForm .maintenanceDateControl input[type="time"]::-webkit-date-and-time-value{text-align:left;min-height:42px;line-height:42px;padding:0;margin:0}
.maintenanceItemForm .maintenanceDateControl input[type="date"]::-webkit-calendar-picker-indicator,.maintenanceItemForm .maintenanceDateControl input[type="time"]::-webkit-calendar-picker-indicator{margin-left:auto;opacity:.78}
.maintenanceNextDueReadout{border:1px solid rgba(159,208,255,.14);border-radius:10px;background:rgba(3,14,25,.58);padding:10px 12px;min-height:42px;align-content:center}
.maintenanceNextDueReadout span{display:block;color:#eef8ff;font-size:14px;font-weight:950;letter-spacing:0;text-transform:none}
.maintenanceItemForm textarea{min-height:82px;resize:vertical;text-transform:none;letter-spacing:0;font-weight:800}
.maintenancePlanActions{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:9px}
.maintenancePlanActions small{color:#91a9bf;font-weight:850}
.maintenanceInsightBox{margin-top:12px;border:1px solid rgba(255,210,54,.22);border-radius:12px;background:rgba(216,184,75,.07);padding:13px;color:#d9e8f6}
.maintenanceInsightBox h3{margin:0 0 6px;color:#f1d46c;font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.maintenanceInsightBox p{margin:0 0 10px;line-height:1.45}
.maintenanceInsightBox p:last-child{margin-bottom:0}
.maintenanceInsightsPanel{display:grid;gap:12px}
.maintenanceInsightsPanel h2,.maintenanceInsightsPanel h3{margin:0;color:#b8ddff}
.maintenanceLogList{display:grid;gap:8px}
.maintenanceLogList div{border:1px solid rgba(159,208,255,.14);border-radius:10px;background:rgba(3,14,25,.58);padding:10px;display:grid;gap:4px}
.maintenanceLogList b{color:#eef8ff}
.maintenanceLogList span,.maintenanceLogList small{color:#9fb4c9;font-size:12px;line-height:1.35}
.maintenanceCalendarPanel{display:grid;gap:14px}
.maintenanceCalendarToolbar{display:grid;grid-template-columns:minmax(280px,420px) minmax(0,1fr);gap:12px;align-items:center}
.maintenanceCalendarToolbar input{height:42px;width:100%;box-sizing:border-box}
.maintenanceCalendarNav{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;gap:8px;align-items:center}
.maintenanceCalendarNav .calendarArrow{width:42px;height:42px;padding:0;font-size:22px;line-height:1}
.maintenanceCalendarRange{height:42px;border:1px solid rgba(159,208,255,.18);border-radius:10px;background:rgba(3,14,25,.62);color:#eef8ff;display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;padding:0 12px;text-align:left;cursor:pointer;min-width:0}
.maintenanceCalendarRange span{color:#8fa8bd;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}
.maintenanceCalendarRange b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.maintenanceCalendarHiddenDate{position:absolute;opacity:0;pointer-events:none;width:1px!important;height:1px!important}
.maintenanceCalendarGrid{display:grid;gap:10px;overflow:auto;padding-bottom:2px}
.maintenanceCalendarGrid.daily{grid-template-columns:1fr}
.maintenanceCalendarGrid.weekly{grid-template-columns:repeat(7,minmax(128px,1fr))}
.maintenanceCalendarGrid.monthly{grid-template-columns:repeat(7,minmax(128px,1fr))}
.maintenanceCalendarDay{min-height:150px;border:1px solid rgba(159,208,255,.14);border-radius:12px;background:rgba(3,14,25,.58);padding:10px;display:grid;align-content:start;gap:8px;min-width:0}
.maintenanceCalendarDay.today{border-color:rgba(62,231,119,.42);box-shadow:inset 0 0 0 1px rgba(62,231,119,.12)}
.maintenanceCalendarDay>div{display:flex;justify-content:space-between;gap:8px;align-items:center}
.maintenanceCalendarDay b{color:#dff3ff;font-size:13px}.maintenanceCalendarDay span{color:#91a9bf;font-size:11px;font-weight:900}
.maintenanceCalendarTask{border:1px solid rgba(159,208,255,.14);border-radius:10px;background:linear-gradient(180deg,rgba(10,44,72,.68),rgba(3,18,31,.86));padding:10px;display:grid;gap:6px}
.maintenanceCalendarTask b{font-size:13px;color:#eef8ff}
.maintenanceCalendarTask small,.maintenanceCalendarTask p{margin:0;color:#a9c1d8;line-height:1.35;font-size:12px}
.maintenanceCalendarTask .miniButton{justify-self:start}

.moduleWorkspace{display:grid;gap:14px}
.moduleMetrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.moduleThreeColumn{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(430px,1.18fr) minmax(300px,.85fr);gap:14px;align-items:start}
.moduleTwoColumn{display:grid;grid-template-columns:minmax(320px,.78fr) minmax(0,1.22fr);gap:14px;align-items:start}
.moduleListPanel,.moduleEditorPanel,.moduleInsightPanel,.taskComposerPanel,.taskQueuePanel,.reportBuilderPanel,.reportSnapshotPanel{min-width:0}
.moduleItemList,.taskQueueList{display:grid;gap:8px;max-height:680px;overflow:auto;padding-right:4px}
.moduleListItem{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid rgba(159,208,255,.14);border-radius:10px;background:rgba(3,14,25,.66);color:#eef8ff;text-align:left;padding:11px;cursor:pointer}
.moduleListItem:hover{border-color:rgba(93,171,235,.5);background:rgba(8,35,58,.82)}
.moduleListItem.active{border-color:#47a7ed;background:linear-gradient(180deg,rgba(18,89,151,.58),rgba(6,28,47,.86))}
.moduleListItem b{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.moduleListItem small{display:block;margin-top:3px;color:#9fb4c9;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.moduleFormGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.moduleFormGrid label{display:grid;gap:7px;margin:0;color:#a9c1d8;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.07em}
.moduleFormGrid input,.moduleFormGrid select,.moduleFormGrid textarea{width:100%;min-width:0;box-sizing:border-box}
.moduleFormGrid input,.moduleFormGrid select{height:46px}
.moduleFormGrid textarea{min-height:112px;resize:vertical;text-transform:none;letter-spacing:0;font-weight:800}
.moduleActionGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}
.livestockWorkspace .moduleActionGrid{grid-template-columns:1fr 1fr}
.moduleInsightPanel{display:grid;gap:12px}
.moduleInsightPanel h2,.moduleInsightBox h3{margin:0;color:#b8ddff}
.moduleInsightBox{border:1px solid rgba(159,208,255,.14);border-radius:12px;background:rgba(3,14,25,.58);padding:13px;display:grid;gap:9px}
.moduleInsightBox h3{font-size:13px;text-transform:uppercase;letter-spacing:.08em}
.moduleInsightBox p{margin:0;color:#d7e8f7;line-height:1.45}
.aiInsightBox{gap:12px;border-color:rgba(93,171,235,.24);background:linear-gradient(180deg,rgba(11,42,68,.7),rgba(3,14,25,.72))}
.aiInsightHeader{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.aiInsightHeader p{margin-top:4px;color:#9fb4c9;font-size:12px;font-weight:850}
.aiInsightHeader span{border:1px solid rgba(159,208,255,.18);border-radius:999px;background:rgba(7,28,47,.78);color:#b8ddff;padding:6px 9px;font-size:10px;font-weight:950;text-transform:uppercase;white-space:nowrap}
.aiPromptGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.aiPromptGrid button{height:auto;min-height:62px;display:grid;gap:4px;align-content:start;text-align:left;padding:10px;border-radius:10px}
.aiPromptGrid b{color:#eef8ff;font-size:13px;line-height:1.2}
.aiPromptGrid small{color:#9fb4c9;line-height:1.28;font-size:11px;font-weight:800;white-space:normal}
.aiCustomQuestion{display:grid;gap:7px;margin:0;color:#a9c1d8;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.07em}
.aiCustomQuestion textarea{width:100%;min-height:88px;box-sizing:border-box;resize:vertical;text-transform:none;letter-spacing:0;font-weight:800}
.aiInsightActions{display:flex;justify-content:flex-end}
.aiInsightError{border:1px solid rgba(255,93,125,.28);border-radius:10px;background:rgba(92,20,39,.32);padding:10px;color:#ffd4dc!important;font-weight:850}
.aiInsightHistory{display:grid;gap:8px}
.aiInsightHistoryTitle{display:flex;justify-content:space-between;gap:10px;align-items:center;color:#dff3ff}
.aiInsightHistoryTitle b{font-size:12px;text-transform:uppercase;letter-spacing:.07em}
.aiInsightHistoryTitle span{color:#8fa8bd;font-size:11px;font-weight:850}
.aiInsightHistory article{border:1px solid rgba(159,208,255,.12);border-radius:10px;background:rgba(4,18,31,.58);padding:10px;display:grid;gap:6px}
.aiInsightHistory article.latest{border-color:rgba(71,167,237,.42);background:linear-gradient(180deg,rgba(14,55,90,.72),rgba(4,18,31,.72))}
.aiInsightHistory span{color:#8ed4ff;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}
.aiInsightHistory p{color:#dbeeff;font-size:12px;line-height:1.45;margin:0}
.aiInsightHistory small{color:#8fa8bd;font-size:11px;font-weight:850}
.aiInsightHistory button{justify-self:start}
.aiReportModalBackdrop{z-index:10008}
.aiReportModal{width:min(1080px,96vw);display:grid;gap:14px}
.aiReportMeta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.aiReportMeta>div,.aiReportQuestion{border:1px solid rgba(159,208,255,.14);border-radius:10px;background:rgba(4,18,31,.58);padding:11px;min-width:0}
.aiReportMeta span,.aiReportQuestion span{display:block;color:#8ed4ff;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}
.aiReportMeta b{display:block;margin-top:4px;color:#eef8ff;font-size:14px;overflow-wrap:anywhere;text-transform:capitalize}
.aiReportQuestion p{margin:5px 0 0;color:#dbeeff;line-height:1.45}
.aiReportBody{border:1px solid rgba(159,208,255,.14);border-radius:14px;background:linear-gradient(180deg,rgba(6,25,43,.92),rgba(3,13,24,.94));padding:18px;max-height:min(62vh,760px);overflow:auto;display:grid;gap:12px}
.aiReportSection{border:1px solid rgba(159,208,255,.13);border-radius:12px;background:rgba(3,14,25,.48);padding:14px;display:grid;gap:10px}
.aiReportSection.observation{border-left:4px solid #8ed4ff;background:rgba(16,66,106,.42)}
.aiReportSection.reasoning{border-left:4px solid #f4c95d;background:rgba(82,63,18,.24)}
.aiReportSection.actions{border-left:4px solid #59e37d;background:rgba(16,76,38,.22)}
.aiReportBody h3{margin:8px 0 0;color:#9fd0ff;font-size:15px;text-transform:uppercase;letter-spacing:.06em}
.aiReportSection h3,.aiReportBody h3:first-child{margin-top:0}
.aiReportBody p{margin:0;color:#e5f3ff;line-height:1.58;font-size:14px}
.aiReportBody ul{margin:0;padding-left:20px;display:grid;gap:7px;color:#dbeeff;line-height:1.5}
.aiReportBody li{padding-left:2px}
.aiReportFooter{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.livestockLayout{display:grid;grid-template-columns:minmax(300px,.82fr) minmax(500px,1.28fr) minmax(320px,.9fr);gap:14px;align-items:start}
.livestockInventoryPanel,.livestockDetailPanel,.livestockContextPanel{min-width:0}
.livestockInventoryList{max-height:none}
.livestockInventoryCard{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px}
.livestockInventoryCard p{grid-column:1/-1;margin:2px 0 0;color:#aac6d8;font-size:12px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.livestockCardMeta{display:grid;justify-items:end;gap:6px;min-width:82px}
.livestockCardMeta small{max-width:110px;text-align:right;white-space:normal}
.livestockDetailPanel{display:grid;align-content:start;gap:14px}
.livestockEmptyDetail{min-height:420px;border:1px dashed rgba(159,208,255,.22);border-radius:12px;background:rgba(3,14,25,.44);display:grid;place-items:center;text-align:center;padding:28px}
.livestockEmptyDetail h2{margin:0;color:#dff3ff}.livestockEmptyDetail p{max-width:520px;margin:0;color:#a9c1d8;line-height:1.5}
.livestockDetailHeader{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:start}
.livestockDetailHeader h2{margin:3px 0 6px;color:#eef8ff;font-size:26px}
.livestockDetailHeader p{margin:0;color:#b8cad8;line-height:1.5}
.livestockDetailActions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.livestockDetailGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.livestockDetailGrid div{border:1px solid rgba(159,208,255,.14);border-radius:11px;background:rgba(3,14,25,.58);padding:12px;min-width:0}
.livestockDetailGrid span{display:block;margin-bottom:5px;color:#8fa8bd;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}
.livestockDetailGrid b{display:block;color:#eef8ff;line-height:1.25;overflow-wrap:anywhere}
.livestockCareGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.livestockCareGrid article{border:1px solid rgba(159,208,255,.14);border-radius:12px;background:linear-gradient(180deg,rgba(10,44,72,.62),rgba(3,18,31,.82));padding:14px;min-width:0}
.livestockCareGrid h3{margin:0 0 9px;color:#b8ddff;font-size:14px}
.livestockCareGrid p{margin:0 0 9px;color:#d7e8f7;line-height:1.45}
.livestockCatalogPanel{display:grid;gap:12px;min-width:0}
.livestockCatalogSearch,.livestockInventorySearch{display:grid;gap:7px;margin:0;color:#a9c1d8;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.07em}
.livestockCatalogSearch input,.livestockInventorySearch input{height:46px;width:100%;min-width:0;box-sizing:border-box}
.livestockCatalogKinds{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}
.livestockCatalogKinds button{min-height:38px;border:1px solid rgba(159,208,255,.16);border-radius:9px;background:rgba(4,21,36,.72);color:#cfe6f8;font-weight:950}
.livestockCatalogKinds button span{display:block;margin-top:2px;color:#8fa9bf;font-size:10px}
.livestockCatalogKinds button.active,.livestockCatalogKinds button:hover{border-color:#47a7ed;background:rgba(18,89,151,.55);color:#eef8ff}
.livestockCatalogResults{display:grid;gap:8px;max-height:680px;overflow:auto;padding-right:4px}
.livestockCatalogCard{display:grid;gap:7px;border:1px solid rgba(159,208,255,.14);border-radius:10px;background:rgba(3,14,25,.66);color:#eef8ff;text-align:left;padding:11px;cursor:pointer}
.livestockCatalogCard:hover{border-color:rgba(93,171,235,.52);background:rgba(8,35,58,.82)}
.livestockCatalogCard.active{border-color:#47a7ed;background:linear-gradient(180deg,rgba(18,89,151,.58),rgba(6,28,47,.86))}
.livestockCatalogCardTop{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.livestockCatalogCard b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.livestockCatalogCard small{color:#9fb4c9;line-height:1.35}
.livestockCatalogCard em,.livestockSelectedBanner em{border:1px solid rgba(159,208,255,.18);border-radius:999px;background:rgba(127,214,255,.1);color:#bfe5ff;font-size:10px;font-style:normal;font-weight:950;padding:4px 7px;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.livestockChipRow{display:flex;gap:6px;flex-wrap:wrap;min-width:0}
.livestockChip{border:1px solid rgba(159,208,255,.14);border-radius:999px;background:rgba(255,255,255,.04);color:#aac4da;font-size:11px;font-weight:850;line-height:1.2;padding:5px 7px}
.livestockSelectedBanner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid rgba(62,231,119,.22);border-radius:11px;background:rgba(19,84,64,.22);padding:11px;margin-bottom:12px}
.livestockSelectedBanner b,.livestockSelectedBanner small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.livestockSelectedBanner b{color:#eef8ff}.livestockSelectedBanner small{margin-top:3px;color:#a8c7d9}
.livestockLoadBox b.good{color:#3ee777}.livestockLoadBox b.ok{color:#9fd0ff}.livestockLoadBox b.warn{color:#ffd24d}.livestockLoadBox b.danger{color:#ff6f8d}
.livestockLoadMeter{height:10px;border:1px solid rgba(159,208,255,.16);border-radius:999px;background:rgba(1,8,14,.64);overflow:hidden}
.livestockLoadMeter span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#3ee777,#ffd24d,#ff6f8d)}
.livestockObservation{border-left:3px solid rgba(159,208,255,.22);padding-left:9px}
.livestockObservation.good{border-color:#3ee777}.livestockObservation.ok{border-color:#9fd0ff}.livestockObservation.warn{border-color:#ffd24d}.livestockObservation.danger{border-color:#ff6f8d}
.livestockModalBackdrop{position:fixed;inset:0;z-index:2500;background:rgba(0,8,15,.78);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;padding:24px}
.livestockModalDialog{width:min(1180px,calc(100vw - 48px));max-height:calc(100vh - 48px);overflow:hidden;border:1px solid rgba(95,178,241,.38);border-radius:14px;background:linear-gradient(180deg,rgba(8,37,61,.98),rgba(2,14,24,.98));box-shadow:0 28px 90px rgba(0,0,0,.55);display:grid;grid-template-rows:auto minmax(0,1fr)}
.livestockTypeDialog{width:min(780px,calc(100vw - 48px))}
.livestockModalHeader{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start;padding:18px;border-bottom:1px solid rgba(159,208,255,.14)}
.livestockModalHeader h2{margin:3px 0 5px;color:#eef8ff;font-size:24px}.livestockModalHeader p{margin:0;color:#a9c1d8;line-height:1.45}
.livestockModalHeader button{min-width:76px}
.livestockTypeGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:18px}
.livestockTypeGrid button{min-height:112px;border:1px solid rgba(159,208,255,.16);border-radius:12px;background:linear-gradient(180deg,rgba(10,44,72,.78),rgba(3,18,31,.88));color:#eaf4ff;text-align:left;padding:16px;display:grid;align-content:start;gap:8px}
.livestockTypeGrid button:hover{border-color:#47a7ed;background:linear-gradient(180deg,rgba(18,89,151,.7),rgba(6,28,47,.92))}
.livestockTypeGrid b{font-size:18px}.livestockTypeGrid span{color:#a9c1d8;line-height:1.4}
.livestockModalBody{display:grid;grid-template-columns:minmax(280px,.82fr) minmax(520px,1.35fr);gap:16px;min-height:0;padding:18px;overflow:auto}
.livestockModalCatalog{display:grid;gap:12px;align-content:start;min-width:0}
.livestockModalCatalog .livestockCatalogResults{max-height:62vh}
.livestockModalForm{min-width:0;border:1px solid rgba(159,208,255,.14);border-radius:12px;background:rgba(3,14,25,.42);padding:14px;align-self:start}
.livestockModalGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
.livestockModalGrid .equipmentWide{grid-column:1/-1}
.livestockModalActions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:14px}
.livestockModalActions button{min-width:132px}
.dosingWaterGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:12px}
.dosingWaterTile{min-height:82px;border:1px solid rgba(159,208,255,.14);border-radius:11px;background:rgba(3,14,25,.66);color:#eef8ff;text-align:left;padding:11px;display:grid;gap:4px}
.dosingWaterTile span{color:#9fb4c9;font-size:11px;text-transform:uppercase;font-weight:950;letter-spacing:.06em}
.dosingWaterTile b{font-size:18px}.dosingWaterTile small{color:#a9bfd4;font-weight:800}
.dosingWaterTile.status-optimal{background:rgba(62,231,119,.1);border-color:rgba(62,231,119,.24)}
.dosingWaterTile.status-low{background:rgba(245,211,79,.1);border-color:rgba(245,211,79,.26)}
.dosingWaterTile.status-elevated,.dosingWaterTile.status-action{background:rgba(255,159,59,.1);border-color:rgba(255,159,59,.28)}
.dosingWaterTile.status-danger{background:rgba(255,78,114,.12);border-color:rgba(255,78,114,.32)}
.tasksLayout{display:grid;grid-template-columns:minmax(390px,.7fr) minmax(0,1.3fr);gap:14px;align-items:start}
.taskComposerGrid{display:grid;grid-template-columns:1fr;gap:12px}
.taskComposerGrid label{display:grid;gap:7px;margin:0;color:#a9c1d8;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.07em;min-width:0}
.taskComposerGrid input,.taskComposerGrid select,.taskComposerGrid textarea{width:100%;min-width:0;box-sizing:border-box}
.taskComposerGrid input,.taskComposerGrid select{height:46px}
.taskComposerGrid textarea{min-height:120px;resize:vertical;text-transform:none;letter-spacing:0;font-weight:800}
.taskComposerGrid .equipmentWide{grid-column:1/-1}
.taskQueueItem{display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:12px;align-items:start;border:1px solid rgba(159,208,255,.14);border-left-width:4px;border-radius:12px;background:rgba(3,14,25,.66);padding:13px;min-width:0}
.taskQueueItem.good{border-left-color:#3ee777}.taskQueueItem.warn{border-left-color:#ffd24d}.taskQueueItem.danger{border-left-color:#ff5d7d}.taskQueueItem.muted{border-left-color:#6f8aa2}
.taskQueueItem h3{margin:0 0 5px;color:#eaf4ff;font-size:15px}
.taskQueueItem p{margin:0 0 7px;color:#d6e7f5;line-height:1.4}
.taskQueueItem span{color:#91a9bf;font-size:12px;font-weight:850}
.taskQueueItem h3,.taskQueueItem p,.taskQueueItem span{overflow-wrap:anywhere}
.taskQueueActions{display:flex;gap:7px;align-items:center;justify-content:flex-end;flex-wrap:wrap;max-width:220px}
.taskCalendarPanel{display:grid;gap:14px;min-width:0}
.taskCalendarToolbar{display:grid;grid-template-columns:220px minmax(0,1fr);gap:12px;align-items:center}
.taskCalendarToolbar input{height:42px;width:100%;box-sizing:border-box;color-scheme:dark}
.taskCalendarGrid{display:grid;gap:10px}
.taskCalendarGrid.daily{grid-template-columns:1fr}
.taskCalendarGrid.weekly,.taskCalendarGrid.monthly{grid-template-columns:repeat(7,minmax(128px,1fr));overflow:auto;padding-bottom:4px}
.taskCalendarDay{min-height:150px;border:1px solid rgba(159,208,255,.14);border-radius:12px;background:rgba(3,14,25,.58);padding:10px;display:grid;align-content:start;gap:8px;min-width:0}
.taskCalendarDay.today{border-color:rgba(62,231,119,.42);box-shadow:inset 0 0 0 1px rgba(62,231,119,.12)}
.taskCalendarDay>div{display:flex;justify-content:space-between;gap:8px;align-items:center}
.taskCalendarDay b{color:#dff3ff;font-size:13px}.taskCalendarDay span{color:#91a9bf;font-size:11px;font-weight:900}
.taskCalendarTask{border:1px solid rgba(159,208,255,.14);border-left-width:4px;border-radius:10px;background:linear-gradient(180deg,rgba(10,44,72,.68),rgba(3,18,31,.86));padding:10px;display:grid;gap:6px}
.taskCalendarTask.good{border-left-color:#3ee777}.taskCalendarTask.warn{border-left-color:#ffd24d}.taskCalendarTask.danger{border-left-color:#ff5d7d}.taskCalendarTask.muted{border-left-color:#6f8aa2}
.taskCalendarTask span{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.taskCalendarTask b{font-size:13px;color:#eef8ff;overflow-wrap:anywhere}
.taskCalendarTask small,.taskCalendarTask p{margin:0;color:#a9c1d8;line-height:1.35;font-size:12px;overflow-wrap:anywhere}
.taskCalendarTask .miniButton{justify-self:start}
.taskDetailModalBackdrop{z-index:10004}
.taskDetailModal{width:min(980px,96vw);display:grid;gap:14px}
.taskDetailBody{display:grid;gap:14px;max-height:min(68vh,760px);overflow:auto;padding-right:4px}
.taskDetailGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.taskDetailGrid>div{border:1px solid rgba(159,208,255,.14);border-radius:10px;background:rgba(4,18,31,.58);padding:11px;min-width:0}
.taskDetailGrid span{display:block;color:#8ed4ff;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}
.taskDetailGrid b{display:block;margin-top:4px;color:#eef8ff;font-size:14px;overflow-wrap:anywhere}
.taskDetailInsight,.taskReadingList{border:1px solid rgba(159,208,255,.14);border-radius:12px;background:rgba(4,18,31,.54);padding:13px;display:grid;gap:8px}
.taskDetailInsight h3,.taskReadingList h3{margin:0;color:#9fd0ff;font-size:13px;text-transform:uppercase;letter-spacing:.07em}
.taskDetailInsight p,.taskDetailInsight small{margin:0;color:#d8e9f8;line-height:1.45}
.taskDetailInsight small{color:#9fb4c9;font-weight:850}
.taskReadingList>div{display:flex;justify-content:space-between;gap:10px;border-top:1px solid rgba(159,208,255,.1);padding-top:8px;color:#d8e9f8}
.taskReadingList>div:first-of-type{border-top:0;padding-top:0}.taskReadingList span{color:#9fb4c9;font-size:12px;font-weight:850}
.taskDetailNotes{display:grid;gap:7px;color:#a9c1d8;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.07em}
.taskDetailNotes textarea{min-height:130px;width:100%;box-sizing:border-box;resize:vertical;text-transform:none;letter-spacing:0;font-weight:800}
.taskDetailFooter,.taskDetailActionsInline{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.reportActionGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.reportActionGrid button{min-height:116px;border:1px solid rgba(159,208,255,.16);border-radius:12px;background:linear-gradient(180deg,rgba(10,44,72,.82),rgba(3,18,31,.88));color:#eaf4ff;text-align:left;padding:14px;display:grid;align-content:start;gap:7px}
.reportActionGrid button:hover{border-color:#47a7ed;background:linear-gradient(180deg,rgba(18,89,151,.62),rgba(6,28,47,.9))}
.reportActionGrid b{font-size:16px;color:#b8ddff}.reportActionGrid span{color:#9fb4c9;line-height:1.4}
.reportSnapshotGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.reportSnapshotGrid div{border:1px solid rgba(159,208,255,.14);border-radius:10px;background:rgba(3,14,25,.58);padding:12px;display:grid;gap:4px}
.reportSnapshotGrid span{color:#8fa8bd;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}
.reportSnapshotGrid b{color:#eef8ff;line-height:1.25}.reportSnapshotGrid small{color:#9fb4c9;line-height:1.35}
.reportTimeline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.reportTimeline article{border:1px solid rgba(159,208,255,.14);border-radius:12px;background:rgba(3,14,25,.58);padding:12px;display:grid;gap:5px}
.reportTimeline span{width:max-content;border:1px solid rgba(159,208,255,.18);border-radius:999px;background:rgba(20,108,190,.16);color:#9fd0ff;padding:3px 8px;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}
.reportTimeline b{color:#dcecff;font-size:12px}.reportTimeline p{margin:0;color:#cfe2f3;line-height:1.4}

@media(max-width:900px){
  .gatewayWrap,.appShell,.projectGrid,.summaryGrid,.dashboardMetrics,.overviewDashboard,.comingGrid,.mappingMetrics,.mappingCapturePlan,.mappingLayout,.smallViewGrid,.markerCareSummary,.waterWorkspace,.waterStabilityBand,.stabilityCard,.stabilityDetailGrid,.waterBottomGrid,.waterHistorySummary,.waterHistoryFilter,.trendDateRange,.statusColumns,.projectTools,.settingsTilePanel,.settingsChecklist,.accountSettingsGrid,.apexSettingsGrid,.controllerSetupGrid,.controllerConnectedCard,.apexBridgeGrid,.apexBridgeCard,.parEstimatorShell,.liveViewWorkspace,.liveConnectionPanel,.liveViewToolbar,.liveViewFields,.equipmentMetrics,.equipmentLayout,.equipmentEditorGrid,.equipmentActionGrid,.equipmentHealthGrid,.maintenanceMetrics,.maintenanceLayout,.maintenanceProfileGrid,.maintenanceDetailHeader,.maintenanceDetailGrid,.maintenanceCalendarToolbar,.taskCalendarToolbar,.tasksLayout,.taskComposerGrid,.notesWorkspace,.noteComposerGrid,.notesFilterBar,.moduleMetrics,.moduleThreeColumn,.moduleTwoColumn,.moduleFormGrid,.moduleActionGrid,.livestockLayout,.livestockCatalogKinds,.dosingWaterGrid,.reportActionGrid,.reportSnapshotGrid,.reportTimeline{grid-template-columns:1fr}
  .gatewayWrap:before{display:none}
  .brandPane,.gatewayPane{display:grid;gap:14px}
  .brandHero,.gatewayTopCard,.loginCard,.gatewayBrandNote,.gatewayInfoCard,.projectTools{grid-column:auto;grid-row:auto;height:auto}
  .brandHero{min-height:280px}
  .gatewayTopCard{display:grid}
  .gatewayBullets{grid-template-columns:1fr}
  .gatewayDivider{flex-direction:row;padding:0}
  .gatewayDivider:before,.gatewayDivider:after{width:auto;height:1px;min-height:0}
  .loginCompactGrid{grid-template-columns:1fr}
  .newProjectInlineFields{grid-template-columns:1fr}
  body.mobileNavOpen{overflow:hidden}
  .appShell{display:block;padding-top:calc(64px + env(safe-area-inset-top,0px))}
  .mobileNavToggle{position:fixed;left:12px;top:calc(10px + env(safe-area-inset-top,0px));z-index:9100;width:46px;height:44px;border:1px solid #2f668e;border-radius:12px;background:rgba(7,27,46,.96);box-shadow:0 14px 34px rgba(0,0,0,.38);display:grid;place-content:center;gap:5px;padding:0}
  .mobileNavToggle span{display:block;width:22px;height:2px;border-radius:999px;background:#eaf4ff;transition:transform .2s ease,opacity .2s ease}
  body.mobileNavOpen .mobileNavToggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  body.mobileNavOpen .mobileNavToggle span:nth-child(2){opacity:0}
  body.mobileNavOpen .mobileNavToggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .mobileNavScrim{position:fixed;inset:0;z-index:8990;background:rgba(0,0,0,.52);backdrop-filter:blur(4px)}
  body.mobileNavOpen .mobileNavScrim{display:block}
  .sideNav{position:fixed;z-index:9000;left:0;top:0;bottom:0;width:min(82vw,320px);min-height:100dvh;overflow-y:auto;padding:calc(68px + env(safe-area-inset-top,0px)) 14px 20px;border-right:1px solid #285b82;box-shadow:22px 0 52px rgba(0,0,0,.48);transform:translateX(-105%);transition:transform .22s ease}
  body.mobileNavOpen .sideNav{transform:translateX(0)}
  .sideBrand{position:absolute;left:14px;right:14px;top:calc(12px + env(safe-area-inset-top,0px));margin-bottom:0}
  .grid2,.dimGrid{grid-template-columns:1fr}
  .workspaceMain{padding:0 12px 30px}
  .projectTop{display:grid;padding-left:56px;min-height:54px;align-items:center}
  .projectTop h1{font-size:26px}
  .mappingToolbar{display:grid}
  .viewTabs,.mappingControls{overflow-x:auto}
  .mappingPhotoLarge .photoGridSurface{min-height:0}
  .parameterSidebar{position:relative;top:auto}
  .waterLogGrid{grid-template-columns:1fr}
  .focusedWaterLog{grid-template-columns:1fr}
  .focusedWaterLog label:first-child,.focusedWaterLog .waterReagentField,.focusedWaterLog .waterNotesField{grid-column:auto}
  .waterKitDetails{grid-template-columns:1fr}
  .markerGrid{grid-template-columns:1fr}
  .markerWide{grid-column:auto}
  .parTankScene{min-height:430px}
  .parSliceSummary{grid-template-columns:repeat(3,minmax(0,1fr))}
  .parSliceSummary small{grid-column:1/-1;justify-self:start;text-align:left}
  .projectNotesTimeline{grid-template-columns:1fr}
  .projectNoteCard{grid-template-columns:auto minmax(0,1fr)}
  .projectNoteActions{grid-column:2;flex-wrap:wrap}
  .linkedNotesIndicator{align-items:flex-start;flex-direction:column}
  .notesPreviewControls{grid-template-columns:1fr 1fr;align-items:stretch}.notesPreviewControls span{grid-column:1/-1;grid-row:1}.notesPreviewControls .gatewayPrimary{grid-column:1/-1;justify-self:stretch}
  .projectManageToolbar,.projectImportPanel{grid-template-columns:1fr}
  .projectManageBulk{justify-content:flex-start}
  .taskDetailGrid{grid-template-columns:1fr}
  .taskReadingList>div{display:grid}
  .projectManageRow{grid-template-columns:auto minmax(0,1fr)}
  .projectManageRow em{grid-column:2;justify-self:start}
  .waterWorkspace{grid-template-areas:"log" "main" "insights" "stability"}
  .stabilityCard{grid-template-areas:"title" "gauge" "text"}
  .trendDateRange{max-width:none}
  .maintenanceCalendarGrid.weekly,.maintenanceCalendarGrid.monthly{grid-template-columns:1fr}
  .taskCalendarGrid.weekly,.taskCalendarGrid.monthly{grid-template-columns:1fr}
  .taskQueueItem{grid-template-columns:1fr}
  .taskQueueActions{justify-content:flex-start;max-width:none}
  .aiPromptGrid{grid-template-columns:1fr}
  .aiReportMeta{grid-template-columns:1fr}
  .livestockDetailHeader,.livestockDetailGrid,.livestockCareGrid,.livestockInventoryCard,.livestockModalBody,.livestockModalGrid,.livestockTypeGrid{grid-template-columns:1fr}
  .livestockDetailActions{justify-content:flex-start}
  .livestockModalBackdrop{align-items:stretch;padding:12px}
  .livestockModalDialog,.livestockTypeDialog{width:100%;max-height:calc(100dvh - 24px)}
  .livestockModalHeader{grid-template-columns:1fr}
  .livestockModalActions{justify-content:stretch}
  .livestockModalActions button{width:100%}
  .stabilityFormula{grid-template-columns:1fr 1fr}
  .settingsSectionActions{justify-content:flex-start}
}

@media(min-width:901px) and (max-width:1400px){
  .statusColumns{grid-template-columns:1fr}
  .waterBottomGrid{grid-template-columns:minmax(0,1fr) minmax(340px,.78fr)}
  .waterStabilityBand{grid-template-columns:1fr}
  .stabilityGauge{width:76px;height:76px}
}

@media(min-width:901px) and (max-width:1180px){
  .dashboardMetrics{grid-template-columns:repeat(3,minmax(0,1fr))}
  .overviewDashboard{grid-template-columns:1fr 1fr}
  .dimensionsPanel,.notesPanel{grid-column:auto}
  .mappingLayout{grid-template-columns:1fr}
  .mappingAddPanel{position:relative;top:auto}
  .waterWorkspace{grid-template-columns:1fr}
  .waterWorkspace{grid-template-areas:"log" "main" "insights" "stability"}
  .parameterSidebar{position:relative;top:auto}
  .parameterMiniGrid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .waterStabilityBand{grid-template-columns:1fr}
  .stabilityCard{grid-template-columns:minmax(0,1fr) 90px;grid-template-areas:"title title" "text gauge"}
  .stabilityDetailGrid{grid-template-columns:1fr}
  .waterBottomGrid{grid-template-columns:1fr}
  .statusColumns{grid-template-columns:repeat(2,minmax(0,1fr))}
  .settingsTilePanel{grid-template-columns:repeat(2,minmax(0,1fr))}
  .settingsChecklist{grid-template-columns:repeat(2,minmax(0,1fr))}
  .equipmentLayout,.moduleThreeColumn,.moduleTwoColumn,.livestockLayout{grid-template-columns:1fr}
}
