:root{--bg-primary:#08060f;--bg-secondary:#10101c;--bg-card:#1a1830;--bg-surface:#10101c;--surface:#10101c;--surface-strong:#1a1830;--text-primary:#edeaf7;--text-secondary:#8a8aa8;--text-muted:#605a77;--accent:#00e5ff;--accent-hover:#ff2e93;--accent-warm:#ff2e93;--accent-ink:#08060f;--primary:#00e5ff;--danger:#f35;--danger-bg:#ff33551f;--warning:#f7f000;--warning-bg:#f7f0001f;--success:#b6ff3b;--border:#2a2444;--border-strong:#40365e;--font-ui:"SF Pro Display", "Avenir Next", "Segoe UI", sans-serif;--font-mono:"SF Mono", "IBM Plex Mono", "JetBrains Mono", "Menlo", monospace}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-ui);color:var(--text-primary);background:radial-gradient(circle at 18% 12%,#ff2e9333,#0000 26%),radial-gradient(circle at 84% 78%,#00e5ff29,#0000 28%),radial-gradient(circle at 78% 18%,#f7f00014,#0000 16%),linear-gradient(#08060f 0%,#10101c 100%);min-height:100vh}body:before{content:"";pointer-events:none;z-index:-1;background-image:linear-gradient(#00e5ff14 1px,#0000 1px),linear-gradient(90deg,#00e5ff14 1px,#0000 1px);background-size:32px 32px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#00000052,#0000 72%);mask-image:linear-gradient(#00000052,#0000 72%)}body:after{content:"";pointer-events:none;filter:blur(48px);z-index:-1;background:radial-gradient(circle at 22% 20%,#ff2e9329,#0000 18%),radial-gradient(circle at 78% 70%,#00e5ff24,#0000 20%);position:fixed;inset:0}#root{min-height:100vh}button,input,textarea,select{font:inherit}.login-container{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--bg-secondary);text-align:center;border:1px solid var(--border);border-radius:12px;width:360px;padding:48px;box-shadow:inset 0 0 0 1px #00e5ff14,0 0 0 1px #2a2444b8,0 20px 60px #00000073}.login-card h1{letter-spacing:.03em;text-shadow:-1px 0 #ff2e93a6,1px 0 #00e5ffa6;margin-bottom:8px;font-size:24px}.login-subtitle{color:var(--text-secondary);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;margin-bottom:32px;font-size:13px}.pin-display{justify-content:center;gap:12px;margin-bottom:24px;display:flex}.pin-dot{border:2px solid var(--border);background:#2a244452;border-radius:50%;width:14px;height:14px;transition:background .15s,border-color .15s,box-shadow .15s;box-shadow:inset 0 0 0 1px #40365e99}.pin-dot.filled{background:var(--accent-warm);border-color:var(--accent-warm);box-shadow:0 0 12px #ff2e9399}.error-text{color:var(--danger);font-size:14px;font-family:var(--font-mono);margin-bottom:16px}.pin-pad{grid-template-columns:repeat(3,1fr);gap:10px;max-width:240px;margin:0 auto;display:grid}.pin-button{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:16px;font-size:20px;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s;box-shadow:inset 0 0 0 1px #00e5ff0d}.pin-button:hover{border-color:var(--accent-warm);background:#ff2e931f;transform:translateY(-1px);box-shadow:0 0 18px #ff2e932e}.pin-enter{background:var(--accent);color:var(--accent-ink);border-color:#00e5ffb3;font-weight:600;box-shadow:0 0 22px #00e5ff47}.pin-enter:disabled{opacity:.4;cursor:not-allowed}.app-container{flex-direction:column;min-height:100vh;display:flex}.tab-bar{left:16px;right:16px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:100;-webkit-backdrop-filter:blur(18px);background:#08060ff0;border:1px solid #00e5ff24;border-radius:26px;grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch;gap:4px;padding:6px;display:grid;position:fixed;box-shadow:0 20px 48px #0000006b,inset 0 1px #00e5ff14}.tab-button{min-width:0;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:0;transition:color .15s}.tab-button:hover:not(.active),.tab-button:focus-visible:not(.active){color:var(--text-primary)}.tab-button-inner{border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:54px;padding:8px 4px 7px;transition:background .15s,box-shadow .15s,transform .15s;display:flex}.tab-button.active .tab-button-inner{background:#00e5ff29;box-shadow:inset 0 0 0 1px #00e5ff3d,0 0 20px #00e5ff1f}.tab-icon{color:currentColor;flex-shrink:0;width:20px;height:20px}.tab-label{font-size:10px;font-weight:700;font-family:"Avenir Next Condensed", "Arial Narrow", var(--font-ui);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;font-stretch:75%;line-height:1}.tab-content{padding:24px;padding-bottom:calc(112px + env(safe-area-inset-bottom));flex:1}.user-bar{background:var(--bg-secondary);border-bottom:1px solid var(--border);color:var(--text-secondary);font-size:13px;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:center;padding:8px 24px;display:flex}.logout-button{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;font-size:12px;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;background:0 0;border-radius:6px;padding:4px 12px}.log-entry-screen{flex-direction:column;gap:18px;max-width:820px;margin:0 auto;display:flex}.deck-panel{border:1px solid var(--border);background:#10101cf0;border-radius:8px;padding:20px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #00e5ff0d,0 18px 42px #0000003d}.deck-panel:before{content:"";pointer-events:none;background:linear-gradient(var(--accent), var(--accent)) left top / 16px 2px no-repeat, linear-gradient(var(--accent), var(--accent)) left top / 2px 16px no-repeat, linear-gradient(var(--accent), var(--accent)) right top / 16px 2px no-repeat, linear-gradient(var(--accent), var(--accent)) right top / 2px 16px no-repeat, linear-gradient(var(--accent), var(--accent)) left bottom / 16px 2px no-repeat, linear-gradient(var(--accent), var(--accent)) left bottom / 2px 16px no-repeat, linear-gradient(var(--accent), var(--accent)) right bottom / 16px 2px no-repeat, linear-gradient(var(--accent), var(--accent)) right bottom / 2px 16px no-repeat;opacity:.8;position:absolute;inset:10px}.deck-header-panel{padding-top:22px}.deck-header-top{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.deck-header-title{min-width:0}.deck-header-title .section-title{margin-bottom:0}.home-add-user-button{min-height:42px;color:var(--text-primary);cursor:pointer;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;background:#00e5ff1a;border:1px solid #00e5ff75;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-size:12px;font-weight:800;transition:border-color .15s,background .15s,transform .15s;display:inline-flex;box-shadow:inset 0 0 0 1px #00e5ff14}.home-add-user-button:hover{border-color:var(--accent);background:#00e5ff2e;transform:translateY(-1px)}.home-add-user-icon{border:1px solid;border-radius:50%;place-items:center;width:18px;height:18px;font-size:15px;line-height:1;display:inline-grid}.section-kicker{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:8px;font-size:11px;font-weight:700}.section-title,.panel-title{color:var(--text-primary);font-family:"Avenir Next Condensed", "Arial Narrow", var(--font-ui);font-weight:800;font-stretch:75%;line-height:1}.section-title{letter-spacing:0;margin-bottom:18px;font-size:42px}.panel-title{letter-spacing:0;margin-bottom:18px;font-size:30px}.panel-subtitle{color:var(--text-secondary);font-family:var(--font-mono);letter-spacing:.08em;text-transform:none;font-size:11px}.period-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:14px;display:grid}.period-pill{border:1px solid var(--border-strong);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;border-radius:4px;justify-content:center;align-items:center;gap:6px;padding:11px 10px;font-size:12px;font-weight:700;transition:border-color .15s,background .15s,color .15s,box-shadow .15s;display:inline-flex}.period-pill-icon{font-size:12px;line-height:1}.period-pill.morning{color:var(--accent);border-color:#00e5ff73}.period-pill.midday{color:var(--warning);border-color:#f7f00073}.period-pill.evening{color:var(--accent-warm);border-color:#ff2e9373}.period-pill.active.morning{background:var(--accent);color:var(--accent-ink);box-shadow:0 0 18px #00e5ff3d}.period-pill.active.midday{background:var(--warning);color:var(--accent-ink);box-shadow:0 0 18px #f7f0002e}.period-pill.active.evening{color:var(--accent-warm);background:#ff2e9329;box-shadow:0 0 18px #ff2e9329}.badge-strip{flex-wrap:wrap;gap:8px;display:flex}.deck-badge{background:var(--bg-card);border:1px solid var(--border-strong);color:var(--text-primary);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;border-radius:4px;align-items:center;gap:7px;padding:7px 10px;font-size:10px;font-weight:700;display:inline-flex}.deck-badge.cyan{border-color:#00e5ff73}.deck-badge.magenta{border-color:#ff2e9373}.deck-badge-icon{font-size:9px;line-height:1}.deck-badge.cyan .deck-badge-icon{color:var(--accent)}.deck-badge.magenta .deck-badge-icon{color:var(--accent-warm)}.chlorine-hero{padding-top:22px}.chlorine-hero.out-of-range{border-color:#f7f0008c}.chlorine-hero-top{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.hero-drop-cluster{justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex;position:relative}.hero-drop-glow{filter:blur(12px);background:#00e5ff57;border-radius:999px;position:absolute;inset:4px}.hero-drop-shape{color:var(--accent);font-size:28px;line-height:1;position:relative}.chlorine-hero-value{align-items:flex-end;gap:12px;display:flex}.hero-input{width:100%;min-width:0;color:var(--accent);font-family:var(--font-mono);letter-spacing:0;text-shadow:-1px 0 #ff2e9380;background:0 0;border:none;outline:none;font-size:80px;font-weight:800;line-height:.9}.hero-unit{color:var(--accent-warm);font-family:var(--font-mono);letter-spacing:.14em;padding-bottom:10px;font-size:34px;font-weight:800;line-height:1}.hero-meter{background:#40365eeb;width:100%;height:2px;margin-top:10px;overflow:hidden}.hero-meter-fill{background:linear-gradient(90deg, var(--accent), var(--accent-warm));width:96px;height:100%;display:block;box-shadow:0 0 10px #00e5ff80}.deck-fields-stack{flex-direction:column;gap:16px;display:flex}.deck-field{flex-direction:column;gap:8px;display:flex}.deck-field.out-of-range .deck-field-label{color:var(--warning)}.deck-field.out-of-range .deck-input,.deck-field.out-of-range .deck-textarea{border-color:#f7f00080;box-shadow:inset 0 0 0 1px #f7f0000f}.deck-field-label{color:var(--text-secondary);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;align-items:baseline;gap:6px;font-size:11px;font-weight:700;display:inline-flex}.deck-field-unit{color:var(--text-muted);font-size:10px}.deck-input,.deck-textarea{width:100%;color:var(--text-primary);font-family:var(--font-ui);background:#08060f8f;border:1px solid #00e5ff75;border-radius:4px;outline:none;padding:12px 14px;font-size:18px;font-weight:600}.deck-input::placeholder,.deck-textarea::placeholder{color:var(--text-muted)}.deck-input[readonly]{color:var(--text-secondary)}.deck-field-helper{color:var(--text-secondary);font-family:var(--font-mono);font-size:11px;line-height:1.4}.weather-fill-row{grid-template-columns:minmax(132px,auto) 1fr;align-items:center;gap:10px;margin:14px 0;display:grid}.weather-fill-button{min-height:44px;color:var(--cyan);font-family:var(--font-mono);text-transform:uppercase;background:#00e5ff1f;border:1px solid #00e5ff75;border-radius:4px;padding:0 14px;font-size:12px;font-weight:800}.weather-fill-button:disabled{cursor:wait;opacity:.68}.weather-fill-status{color:var(--text-secondary);font-family:var(--font-mono);font-size:11px;line-height:1.4}.weather-fill-error{margin-bottom:12px}.deck-textarea{resize:vertical;min-height:110px}.status-banner{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border-radius:6px;padding:14px 16px;font-size:12px;font-weight:700}.status-banner.success{color:var(--success);background:#b6ff3b1a;border:1px solid #b6ff3b4d}.status-banner.error{color:var(--danger);background:#ff33551f;border:1px solid #ff335559}.submit-shell{bottom:calc(92px + env(safe-area-inset-bottom));background:linear-gradient(#08060f00 0%,#08060feb 28%);padding-top:8px;position:sticky}.deck-submit-button{width:100%;font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;border-radius:4px;padding:16px 20px;font-size:15px;font-weight:800}.deck-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.deck-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.hero-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.hero-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.deck-input[type=number],.hero-input[type=number]{appearance:textfield}.submit-button{background:var(--accent);color:var(--accent-ink);cursor:pointer;border:none;border-radius:6px;padding:12px 32px;font-size:16px;font-weight:600;box-shadow:0 0 24px #00e5ff3d}.submit-button:hover{background:var(--accent-hover);color:var(--text-primary)}.submit-button:disabled{opacity:.5;cursor:not-allowed}.log-table{border-collapse:collapse;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;width:100%;overflow:hidden;box-shadow:inset 0 0 0 1px #00e5ff0d,0 20px 48px #0000003d}.log-table th,.log-table td{text-align:left;border-bottom:1px solid var(--border);padding:10px 16px;font-size:14px}.log-table th{background:var(--bg-card);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-family:var(--font-mono)}.empty-slot{color:var(--text-secondary);font-style:italic}.out-of-range-cell{color:var(--warning);font-weight:600}.time-range-selector{gap:8px;margin-bottom:24px;display:flex}.range-button{background:var(--bg-card);color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;font-size:13px;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border-radius:6px;padding:8px 16px}.range-button.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.chart-container{background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;margin-bottom:20px;padding:20px;box-shadow:inset 0 0 0 1px #00e5ff0d,0 18px 42px #0000003d}.chart-container h3{color:var(--text-secondary);font-size:14px;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;margin-bottom:12px}.report-actions{align-items:center;gap:16px;margin-bottom:24px;display:flex}.date-input{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border);border-radius:6px;padding:10px 16px;font-size:14px}.success-text{color:var(--success);font-size:14px;font-family:var(--font-mono)}.more-screen,.more-detail-screen{max-width:760px;margin:0 auto}.more-list{border:1px solid var(--border);background:#10101cf0;border-radius:22px;overflow:hidden;box-shadow:inset 0 0 0 1px #00e5ff0d,0 20px 48px #0000003d}.more-list-item{width:100%;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:none;border-bottom:1px solid #2a2444eb;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;transition:background .15s;display:flex}.more-list-item:last-child{border-bottom:none}.more-list-leading{align-items:center;gap:14px;display:flex}.more-list-icon{width:24px;height:24px;color:var(--accent);justify-content:center;align-items:center;display:inline-flex}.more-list-svg{width:20px;height:20px}.pro-lock-chip{color:var(--success);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;border:1px solid #b6ff3b61;border-radius:999px;margin-left:8px;padding:3px 7px;font-size:10px;font-weight:800}.more-chevron{width:18px;height:18px;color:var(--text-muted);flex-shrink:0}.more-detail-header{align-items:center;gap:14px;margin-bottom:18px;display:flex}.more-back-button{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;background:#10101cb8;border-radius:999px;align-items:center;gap:6px;padding:8px 12px;font-size:11px;display:inline-flex}.more-back-arrow{font-size:18px;line-height:1}.more-detail-title{letter-spacing:0;color:var(--text-primary);font-size:28px;font-weight:800}.app-container.has-ads .tab-content{padding-bottom:calc(184px + env(safe-area-inset-bottom))}.ad-banner{left:16px;right:16px;bottom:calc(86px + env(safe-area-inset-bottom));z-index:99;max-width:760px;color:var(--text-secondary);-webkit-backdrop-filter:blur(16px);background:#10101cf5;border:1px solid #b6ff3b47;border-radius:12px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin:0 auto;padding:12px 14px;display:grid;position:fixed;box-shadow:0 18px 42px #00000052,0 0 22px #b6ff3b14}.ad-kicker{color:var(--success);font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;margin-bottom:3px;font-size:10px;font-weight:800}.ad-banner p{color:var(--text-secondary);font-size:13px;line-height:1.35}.ad-report-button{border:1px solid var(--border);min-height:34px;color:var(--text-secondary);cursor:pointer;font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;background:0 0;border-radius:999px;padding:0 11px;font-size:10px;font-weight:800}.pro-paywall-screen{max-width:760px;margin:0 auto}.pro-paywall-card{background:radial-gradient(circle at 80% 10%,#b6ff3b24,#0000 28%),#10101cf0;border:1px solid #b6ff3b5c;border-radius:12px;padding:24px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #b6ff3b14,0 20px 52px #00000052}.pro-paywall-card h1{color:var(--text-primary);letter-spacing:0;margin-bottom:12px;font-size:38px;font-weight:900}.pro-paywall-copy{max-width:620px;color:var(--text-secondary);font-size:17px;line-height:1.45}.pro-feature-list{gap:12px;margin:22px 0;display:grid}.pro-feature-row{border:1px solid var(--border);background:#08060f6b;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;padding:14px;display:grid}.pro-feature-row strong{color:var(--text-primary);margin-bottom:4px;font-size:15px;display:block}.pro-feature-row small{color:var(--text-secondary);font-size:13px;line-height:1.35;display:block}.pro-feature-dot{background:var(--success);border-radius:999px;width:10px;height:10px;margin-top:4px;box-shadow:0 0 16px #b6ff3b75}.pro-inline-lock{background:#b6ff3b14;border:1px solid #b6ff3b47;border-radius:8px;gap:4px;margin:14px 0;padding:12px;display:grid}.pro-inline-lock strong{color:var(--success);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:12px}.pro-inline-lock span{color:var(--text-secondary);font-size:13px}.pro-purchase-note{color:var(--success);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;background:#22d3a514;border:1px solid #22d3a547;border-radius:8px;padding:14px;font-size:12px;font-weight:800;line-height:1.4}.pro-purchase-note.error{color:#ff8fa3;background:#ff5f7a1a;border-color:#ff5f7a5c}.pro-purchase-panel{background:#ffffff0d;border:1px solid #ffffff24;border-radius:8px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;margin:22px 0 14px;padding:14px;display:grid}.pro-admin-guide{background:#22d3a514;border:1px solid #22d3a55c;border-radius:8px;gap:14px;margin:22px 0 14px;padding:16px;display:grid}.pro-admin-guide-kicker{color:var(--success);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px;font-size:10px;font-weight:900;display:block}.pro-admin-guide strong{color:var(--text-primary);font-size:16px;line-height:1.25;display:block}.pro-admin-guide p{color:var(--text-secondary);margin-top:8px;font-size:13px;line-height:1.45}.pro-signout-button{background:var(--success);color:#071108;cursor:pointer;border:0;border-radius:8px;min-height:46px;font-size:13px;font-weight:900}.pro-purchase-panel strong,.pro-purchase-panel span{display:block}.pro-purchase-panel strong{color:var(--text-primary);font-size:15px;font-weight:900}.pro-purchase-panel span{color:var(--text-secondary);margin-top:3px;font-size:12px}.pro-purchase-button,.pro-restore-button{cursor:pointer;min-width:126px;min-height:44px;font-family:var(--font-sans);border-radius:8px;font-size:13px;font-weight:900}.pro-purchase-button{background:var(--success);color:#071108;border:0}.pro-restore-button{color:var(--text-primary);background:0 0;border:1px solid #ffffff38}.pro-purchase-button:disabled,.pro-restore-button:disabled{cursor:not-allowed;opacity:.52}.pro-disclosure{background:#08060f57;border:1px solid #ffffff1f;border-radius:8px;gap:12px;margin:14px 0;padding:14px;display:grid}.pro-disclosure p{color:var(--text-secondary);font-size:12px;line-height:1.45}.pro-legal-links{flex-wrap:wrap;gap:10px 14px;display:flex}.pro-legal-links a{color:var(--accent);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:10px;font-weight:900;text-decoration:none}.pro-legal-links a:hover,.pro-legal-links a:focus-visible{color:var(--success);text-underline-offset:4px;text-decoration:underline}.pro-signout-button:active{transform:scale(.98)}.login-card,.field-card,.chart-container,.admin-section,.analysis-controls,.analysis-result,.chem-panel,.chem-result{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}input:focus,textarea:focus,select:focus,button:focus-visible{border-color:var(--accent);outline:none;box-shadow:0 0 0 1px #00e5ff47,0 0 0 4px #00e5ff14}@media (width<=768px){.app-container{padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.user-bar{padding:8px 16px;font-size:12px}.tab-bar{left:12px;right:12px;bottom:calc(8px + env(safe-area-inset-bottom));gap:2px;padding:5px}.tab-button{min-width:0}.tab-button-inner{min-height:50px;padding:7px 2px 6px}.tab-icon{width:18px;height:18px}.tab-label{letter-spacing:.1em;font-size:9px}.tab-content{padding:16px;padding-bottom:calc(104px + env(safe-area-inset-bottom))}.app-container.has-ads .tab-content{padding-bottom:calc(178px + env(safe-area-inset-bottom))}.ad-banner{left:12px;right:12px;bottom:calc(78px + env(safe-area-inset-bottom));grid-template-columns:minmax(0,1fr)}.ad-report-button{width:max-content}.pro-paywall-card{padding:20px 16px}.pro-paywall-card h1{font-size:31px}.pro-purchase-panel{grid-template-columns:minmax(0,1fr)}.pro-purchase-button,.pro-restore-button{width:100%}.login-card{width:auto;max-width:360px;margin:0 16px;padding:32px 24px}.log-entry-screen{gap:14px}.deck-panel{padding:18px 16px}.deck-header-top{flex-direction:column;align-items:stretch;gap:12px;margin-bottom:14px}.home-add-user-button{width:100%}.section-title{margin-bottom:14px;font-size:34px}.deck-header-title .section-title{margin-bottom:0}.panel-title{margin-bottom:14px;font-size:24px}.period-strip{grid-template-columns:1fr}.chlorine-hero-value{flex-direction:column;align-items:flex-start;gap:6px}.hero-input{font-size:64px}.hero-unit{padding-bottom:0;font-size:24px}.deck-textarea{min-height:88px}.submit-shell{bottom:calc(84px + env(safe-area-inset-bottom))}.log-table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}.log-table th,.log-table td{white-space:nowrap;padding:8px 10px;font-size:12px}.time-range-selector{flex-wrap:wrap}.range-button{text-align:center;flex:1;min-width:60px;min-height:44px}.chart-container{margin-bottom:16px;padding:12px}.report-actions{flex-direction:column;align-items:stretch;gap:12px}.date-input{width:100%;min-height:44px}.more-list-item{padding:16px}.more-list-label{font-size:16px}.more-detail-header{flex-direction:column;align-items:flex-start;gap:10px}.more-detail-title{font-size:24px}}.pin-screen{flex-direction:column;flex:1;width:100%;max-width:360px;margin:0 auto;padding:20px 22px 28px;display:flex;position:relative}.pin-header{text-align:center;margin-bottom:24px;position:relative}.pin-back{background:var(--bg-card);border:1px solid var(--border);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:18px;transition:background .15s,border-color .15s;display:flex;position:absolute;top:8px;left:0}.pin-back:hover{border-color:var(--accent);background:#00e5ff1f}.pin-brand{background:linear-gradient(90deg, var(--accent), var(--accent-warm));-webkit-text-fill-color:transparent;letter-spacing:0;-webkit-background-clip:text;background-clip:text;margin:0;font-size:22px;font-weight:700}.pin-sub{font-family:var(--font-mono);color:var(--text-secondary);letter-spacing:.16em;text-transform:uppercase;margin-top:4px;font-size:10px}.pin-dots{justify-content:center;gap:14px;margin:22px 0 28px;display:flex}.pin-screen .pin-dot{border:2px solid var(--border-strong);background:#2a244452;border-radius:50%;width:14px;height:14px;transition:all .15s}@media (prefers-reduced-motion:no-preference){@keyframes pin-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.pin-dots.shake{animation:.32s ease-in-out pin-shake}}.pin-error{text-align:center;color:var(--danger);font-family:var(--font-mono);letter-spacing:.05em;margin:0 0 16px;font-size:12px}.pin-keypad{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:auto;display:grid}.pin-key{aspect-ratio:1.05;background:var(--bg-card);border:1px solid var(--border);font-family:var(--font-mono);color:var(--text-primary);cursor:pointer;border-radius:16px;font-size:22px;font-weight:500;transition:background .15s,border-color .15s,transform .1s;box-shadow:0 4px 12px #0003}.pin-key:active{background:#00e5ff14;transform:scale(.96)}.pin-key.glyph{color:var(--text-secondary);font-size:18px}.pin-key.enter{background:linear-gradient(135deg, var(--accent), var(--accent-warm));color:var(--bg-primary);border:none;font-size:14px;font-weight:700;box-shadow:0 6px 18px #00e5ff47}.pin-key.enter:disabled{opacity:.5;cursor:not-allowed}.welcome-screen{flex-direction:column;flex:1;width:100%;max-width:360px;min-height:100%;margin:0 auto;padding:20px 22px 24px;display:flex}.welcome-brand{text-align:center;margin:8px 0 16px}.welcome-title{background:linear-gradient(90deg, var(--accent), var(--accent-warm));-webkit-text-fill-color:transparent;letter-spacing:0;-webkit-background-clip:text;background-clip:text;margin:0;font-size:38px;font-weight:700;line-height:1}.welcome-tagline{margin:8px 0 0;font-size:13px;font-weight:600;line-height:1.3}.welcome-tagline.neutral{color:var(--text-secondary);font-weight:500}.welcome-primer-card{border:1px solid var(--border);background:#10101cb8;border-radius:14px;padding:16px}.welcome-primer-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.welcome-primer-kicker,.welcome-primer-time,.welcome-primer-metrics{font-family:var(--font-mono)}.welcome-primer-kicker{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;font-size:10px;font-weight:700}.welcome-primer-time{color:var(--text-muted);letter-spacing:.14em;text-transform:uppercase;font-size:10px}.welcome-primer-title{color:var(--text-primary);font-size:22px;font-weight:800;line-height:1.12}.welcome-primer-copy{color:var(--text-secondary);margin:8px 0 0;font-size:13px;line-height:1.45}.welcome-primer-metrics{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px;display:grid}.welcome-primer-metrics span{min-height:38px;color:var(--text-muted);letter-spacing:.12em;text-align:center;text-transform:uppercase;border:1px solid #ffffff1a;border-radius:10px;place-items:center;font-size:9px;font-weight:700;display:grid}.welcome-status-card{background:var(--bg-card);border:1px solid var(--border);border-radius:18px;padding:14px;position:relative;overflow:hidden}.welcome-status-card:before{content:"";width:3px;position:absolute;top:0;bottom:0;left:0}.welcome-status-card.optimized:before{background:var(--success);box-shadow:0 0 12px var(--success)}.welcome-status-card.drifting:before{background:var(--warning);box-shadow:0 0 12px var(--warning)}.welcome-status-card.crashing:before{background:var(--danger);box-shadow:0 0 12px var(--danger)}.welcome-status-card.neutral:before{background:var(--border)}.welcome-status-row{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.welcome-chip{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--border);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:10px;font-weight:600;display:inline-flex}.welcome-chip:before{content:"";border-radius:50%;width:6px;height:6px}.welcome-chip.optimized{color:var(--success);background:#b6ff3b1f;border-color:#b6ff3b4d}.welcome-chip.optimized:before{background:var(--success);box-shadow:0 0 6px var(--success)}.welcome-chip.drifting{color:var(--warning);background:#f7f0001f;border-color:#f7f0004d}.welcome-chip.drifting:before{background:var(--warning);box-shadow:0 0 6px var(--warning)}.welcome-chip.crashing{color:var(--danger);background:#ff33551f;border-color:#ff33554d}.welcome-chip.crashing:before{background:var(--danger);box-shadow:0 0 6px var(--danger);animation:1.4s infinite chip-pulse}@keyframes chip-pulse{0%,to{opacity:1}50%{opacity:.45}}.welcome-ts{font-family:var(--font-mono);color:var(--text-muted);font-size:10px}.welcome-readings{grid-template-columns:1fr 1fr;gap:6px 14px;display:grid}.welcome-reading-label{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.16em;text-transform:uppercase;margin-bottom:2px;font-size:9px}.welcome-reading-value{font-family:var(--font-mono);color:var(--text-primary);font-size:17px;font-weight:500}.welcome-reading-unit{color:var(--text-secondary);margin-left:3px;font-size:11px;font-weight:400}.welcome-insight-card{border:1px solid var(--border);text-align:left;cursor:pointer;width:100%;color:inherit;background:linear-gradient(135deg,#00e5ff0f,#ff2e930f);border-radius:18px;margin-top:12px;padding:12px 14px;font-family:inherit}.welcome-insight-card:hover{border-color:var(--accent)}.welcome-insight-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.welcome-insight-label{font-family:var(--font-mono);color:var(--accent);letter-spacing:.18em;text-transform:uppercase;font-size:9px;font-weight:600}.welcome-insight-bullets{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.welcome-insight-bullets li{color:var(--text-primary);padding-left:12px;font-size:11.5px;line-height:1.45;position:relative}.welcome-insight-bullets li:before{content:"";background:var(--accent-warm);border-radius:50%;width:4px;height:4px;position:absolute;top:8px;left:0}.welcome-insight-foot{color:var(--text-muted);margin-top:8px;font-size:11px;font-style:italic}.welcome-spacer{flex:1;min-height:12px}.welcome-cta{background:var(--accent);width:100%;color:var(--bg-primary);cursor:pointer;border:none;border-radius:16px;padding:16px;font-size:15px;font-weight:700;transition:transform .1s;box-shadow:0 8px 24px #00e5ff33}.welcome-cta:active{transform:scale(.98)}.welcome-secondary-cta,.signup-secondary{border:1px solid var(--border-strong);width:100%;min-height:48px;color:var(--text-primary);cursor:pointer;background:0 0;border-radius:12px;margin-top:10px;padding:12px 14px;font-weight:700}.welcome-secondary-cta:active,.signup-secondary:active{transform:scale(.98)}.welcome-footer-meta{color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;font-size:9px;font-weight:700;display:flex}.welcome-sync{align-items:center;gap:6px;display:inline-flex}.welcome-sync-dot{background:var(--success);border-radius:50%;width:6px;height:6px;box-shadow:0 0 8px #b6ff3b8c}.welcome-sync.offline .welcome-sync-dot{background:var(--warning);box-shadow:0 0 8px #f7f00073}.login-container{padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);overscroll-behavior:none}.welcome-screen,.pin-screen,.signup-screen{overscroll-behavior:none}:root{--bg-primary:#0a0e14;--bg-secondary:#11161f;--bg-card:#161c28;--bg-surface:#11161f;--surface:#11161f;--surface-strong:#161c28;--text-primary:#e8edf5;--text-secondary:#8b95a8;--text-muted:#5c6573;--accent:#7c5cff;--accent-hover:#9277ff;--accent-warm:#7c5cff;--accent-ink:#0a0e14;--primary:#7c5cff;--accent-cyan:#00e5c7;--accent-magenta:#ff3d8a;--accent-lime:#22d3a5;--danger:#ff5470;--danger-bg:#ff54701f;--warning:#f5a524;--warning-bg:#f5a5241f;--success:#22d3a5;--border:#1f2733;--border-strong:#2a3344;--font-ui:"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono:"JetBrains Mono", "SF Mono", ui-monospace, Menlo, monospace}body{background:var(--bg-primary);color:var(--text-primary);letter-spacing:0}button,input,textarea,select{letter-spacing:0}::selection{color:var(--text-primary);background:#7c5cff52}.login-container{background:var(--bg-primary);justify-content:center;align-items:stretch}.app-container{background:var(--bg-primary)}.user-bar{z-index:70;padding:calc(12px + env(safe-area-inset-top)) 18px 12px;border-bottom:1px solid var(--border);color:var(--text-secondary);letter-spacing:0;-webkit-backdrop-filter:blur(16px);background:#0a0e14f0;gap:12px;position:sticky;top:0}.user-bar-brand{color:var(--text-primary);font-family:var(--font-ui);text-transform:none;font-size:15px;font-weight:800}.user-bar-operator{color:var(--text-secondary);font-family:var(--font-mono);text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;flex:1;font-size:10px;overflow:hidden}.logout-button{background:var(--bg-card);border-color:var(--border-strong);min-height:34px;color:var(--text-secondary);letter-spacing:0;text-transform:none;border-radius:8px;padding:6px 10px}.logout-button:hover{border-color:var(--danger);color:var(--danger)}.tab-content{width:min(100%,920px);padding:18px 16px;padding-bottom:calc(100px + env(safe-area-inset-bottom));margin:0 auto}.tab-bar{left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));background:var(--bg-primary);border-color:var(--border);box-shadow:none;border-width:1px 0 0;border-radius:0;gap:2px;padding:8px 6px 10px}.tab-button-inner{border-radius:0;position:relative}.tab-button.active .tab-button-inner{color:var(--accent);box-shadow:none;background:0 0}.tab-button.active .tab-button-inner:before{content:"";background:var(--accent);border-radius:1px;width:18px;height:2px;position:absolute;top:0}.tab-button:hover:not(.active) .tab-button-inner,.tab-button:focus-visible:not(.active) .tab-button-inner{color:var(--text-primary);background:0 0}.tab-label{font-family:var(--font-ui);letter-spacing:0;font-size:10px}.log-entry-screen,.todays-log-screen,.analysis-container,.more-screen,.more-detail-screen{max-width:760px}.deck-panel,.chart-container,.log-table,.more-list,.welcome-primer-card,.welcome-status-card,.welcome-insight-card,.pin-access-card,.more-profile-card,.more-pro-card,.log-period-card{background:var(--bg-secondary);border:1px solid var(--border);box-shadow:none;border-radius:8px}.deck-panel:before{display:none}.section-kicker,.welcome-primer-kicker,.welcome-insight-label{color:var(--accent);font-family:var(--font-mono);letter-spacing:0;text-transform:uppercase;font-size:10px;font-weight:700}.section-title,.panel-title{font-family:var(--font-ui);letter-spacing:0;font-stretch:100%}.section-title{font-size:34px}.section-title.compact{margin:0;font-size:26px}.panel-title{font-size:22px}.period-pill,.deck-input,.deck-textarea,.weather-fill-button,.submit-button,.range-button,.date-input,.analysis-field input[type=date],.analysis-question{background:var(--bg-card);border-color:var(--border-strong);color:var(--text-primary);box-shadow:none;letter-spacing:0;border-radius:8px}.period-pill{color:var(--text-secondary)}.period-pill.morning,.period-pill.midday,.period-pill.evening{border-color:var(--border-strong);color:var(--text-secondary)}.period-pill.active.morning,.period-pill.active.midday,.period-pill.active.evening,.submit-button,.welcome-cta,.analysis-btn,.range-button.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:none}.deck-badge.cyan,.deck-badge.magenta,.welcome-chip.optimized,.welcome-chip.drifting,.welcome-chip.crashing{background:var(--bg-card);border-color:var(--border-strong);box-shadow:none}.deck-badge.cyan,.welcome-chip.optimized{color:var(--success)}.deck-badge.magenta,.welcome-chip.drifting{color:var(--warning)}.welcome-chip.crashing{color:var(--danger)}.deck-badge-icon,.welcome-chip:before,.welcome-sync-dot{box-shadow:none}.chlorine-hero.out-of-range,.deck-field.out-of-range,.out-of-range-cell{color:var(--warning);border-color:#f5a5248c}.hero-meter{background:var(--bg-card)}.hero-drop-glow{background:var(--success);filter:none}.hero-drop-shape{color:var(--success);text-shadow:none}.weather-fill-status,.status-banner.success{color:var(--success);background:#22d3a51a;border-color:#22d3a54d}.status-banner.error,.weather-fill-error{background:var(--danger-bg);color:var(--danger);border-color:#ff547052}.welcome-screen,.pin-screen,.signup-screen{width:min(100%,440px);min-height:100vh;padding:calc(18px + env(safe-area-inset-top)) 18px calc(18px + env(safe-area-inset-bottom));background:var(--bg-primary);margin:0 auto}.signup-screen{flex-direction:column;gap:22px;display:flex}.welcome-screen{text-align:center;align-items:center}.welcome-topline,.welcome-footer-meta{color:var(--text-muted);font-family:var(--font-mono);letter-spacing:0;text-transform:uppercase;justify-content:space-between;align-items:center;font-size:10px;font-weight:700;display:flex}.welcome-topline{justify-content:center;gap:22px;width:100%}.welcome-topline .welcome-sync{gap:8px}.welcome-topline .welcome-sync-dot{width:6px;height:6px;box-shadow:0 0 0 3px #22d3a51f}.welcome-brand{text-align:center;align-items:center;margin:42px 0 20px}.welcome-title{letter-spacing:0;text-align:center;text-shadow:none;font-size:clamp(38px,11vw,52px);line-height:1.02}.welcome-facility{color:var(--text-secondary);font-family:var(--font-mono);text-transform:uppercase;margin-top:10px;font-size:11px;font-weight:700}.welcome-tagline{text-align:center;margin-top:18px;font-size:16px;line-height:1.35}.welcome-tagline.good{color:var(--success)}.welcome-tagline.warn{color:var(--warning)}.welcome-tagline.bad{color:var(--danger)}.welcome-primer-card,.welcome-status-card,.welcome-insight-card{margin-top:12px;padding:16px}.welcome-status-card:before{display:none}.welcome-status-row{text-align:center;justify-content:center;align-items:center;gap:12px}.welcome-primer-head,.welcome-insight-head{text-align:center;justify-content:center}.welcome-chip{letter-spacing:0;border-radius:999px;margin-top:8px;font-size:10px}.welcome-readings{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.welcome-reading{min-width:0}.welcome-reading-label,.welcome-reading-value,.welcome-reading-unit{letter-spacing:0}.welcome-insight-card{background:var(--bg-secondary);text-align:center}.welcome-insight-head{gap:10px}.welcome-insight-bullets li{text-align:center;padding-left:0}.welcome-insight-bullets li:before{display:none}.welcome-cta{border-radius:8px;min-height:52px}.welcome-secondary-cta,.signup-secondary{color:var(--text-secondary);border-radius:8px}.signup-card{border:1px solid var(--border);background:var(--bg-secondary);border-radius:8px;flex-direction:column;gap:14px;padding:18px;display:flex}.signup-card h1{color:var(--text-primary);margin:0;font-size:27px;line-height:1.08}.signup-card p{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.45}.signup-field{text-align:left;flex-direction:column;gap:7px;display:flex}.signup-mode{border:1px solid var(--border);background:var(--bg-primary);border-radius:8px;grid-template-columns:1fr 1fr;gap:6px;padding:4px;display:grid}.signup-mode button{min-height:42px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:6px;font-size:12px;font-weight:700}.signup-mode button.active{background:var(--accent);color:var(--accent-ink)}.signup-mode button:disabled{cursor:not-allowed;opacity:.55}.signup-field span{color:var(--text-secondary);font-family:var(--font-mono);text-transform:uppercase;font-size:10px;font-weight:700}.signup-field input{border:1px solid var(--border-strong);background:var(--bg-card);width:100%;min-height:48px;color:var(--text-primary);border-radius:8px;padding:12px 14px}.signup-error{color:var(--danger);margin:0;font-size:13px;line-height:1.4}.signup-submit{margin-top:2px}.pin-header{justify-content:flex-start;align-items:center;gap:14px}.pin-brand{letter-spacing:0;text-align:left;text-shadow:none}.pin-sub{color:var(--text-secondary);letter-spacing:0;text-align:left}.pin-back,.pin-key{background:var(--bg-card);border-color:var(--border-strong);box-shadow:none;color:var(--text-primary);border-radius:8px}.pin-access-card{justify-content:space-between;gap:16px;margin:28px 0 26px;padding:14px;display:flex}.pin-access-card span{color:var(--text-muted);font-family:var(--font-mono);text-transform:uppercase;font-size:10px;font-weight:700;display:block}.pin-access-card strong{margin-top:4px;font-size:15px;display:block}.pin-access-pill{border:1px solid var(--border-strong);border-radius:999px;height:24px;padding:4px 8px;color:var(--success)!important}.pin-screen .pin-dot.filled{background:var(--success);border-color:var(--success);box-shadow:none}.pin-key.enter{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.screen-loading{color:var(--text-secondary)}.screen-heading-row{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.screen-count-pill,.log-period-status,.more-profile-status,.analysis-pro-chip{border:1px solid var(--border-strong);min-height:24px;color:var(--text-secondary);font-family:var(--font-mono);text-transform:uppercase;border-radius:999px;justify-content:center;align-items:center;padding:4px 8px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.log-period-list{gap:12px;display:grid}.log-period-card{padding:16px}.log-period-card-head{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px;display:flex}.log-period-label{color:var(--text-muted);font-family:var(--font-mono);text-transform:uppercase;font-size:10px;font-weight:700}.log-period-card h3{letter-spacing:0;margin-top:4px;font-size:18px}.log-period-status.safe{color:var(--success);border-color:#22d3a54d}.log-period-status.watch{color:var(--warning);border-color:#f5a5244d}.log-metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.log-metric{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;min-width:0;padding:10px}.log-metric span,.log-detail-grid dt{color:var(--text-muted);font-family:var(--font-mono);text-transform:uppercase;font-size:10px;font-weight:700}.log-metric strong{overflow-wrap:anywhere;font-family:var(--font-mono);margin-top:4px;font-size:16px;display:block}.log-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin-top:14px;display:grid}.log-detail-grid div{min-width:0}.log-detail-grid dd{color:var(--text-secondary);overflow-wrap:anywhere;margin-top:3px}.log-empty-copy{color:var(--text-secondary);margin-top:12px}.more-profile-card,.more-pro-card{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;padding:16px;display:flex}.more-profile-kicker{color:var(--accent);font-family:var(--font-mono);text-transform:uppercase;font-size:10px;font-weight:700}.more-profile-card h2{margin-top:6px;font-size:22px}.more-profile-card p,.more-pro-card p{color:var(--text-secondary);margin-top:4px}.more-profile-status{color:var(--success);border-color:#22d3a54d}.more-list-item{background:var(--bg-secondary);border-bottom-color:var(--border)}.more-list-item:hover,.more-list-item:focus-visible{background:var(--bg-card)}.more-list-icon{background:var(--bg-card);border-color:var(--border-strong);color:var(--text-primary)}@media (width<=430px){.welcome-readings,.log-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.log-detail-grid{grid-template-columns:1fr}.user-bar-operator{display:none}}body{background:var(--bg-primary)}body:before,body:after{display:none}.welcome-title,.pin-brand{text-shadow:none}.deck-panel,.chart-container,.log-table,.more-list,.welcome-primer-card,.welcome-status-card,.welcome-insight-card,.pin-access-card,.more-profile-card,.more-pro-card,.log-period-card,.analysis-controls,.analysis-result,.analysis-loading,.analysis-error{box-shadow:none}.tab-bar{background:var(--bg-primary);box-shadow:none;-webkit-backdrop-filter:none;border-width:1px 0 0;border-radius:0}.tab-button-inner{border-radius:0}.tab-button.active .tab-button-inner{box-shadow:none;background:0 0}.tab-button.active .tab-button-inner:before{display:block}.tab-button:hover:not(.active) .tab-button-inner,.tab-button:focus-visible:not(.active) .tab-button-inner{background:0 0}.period-pill.active.morning,.period-pill.active.midday,.period-pill.active.evening,.submit-button,.welcome-cta,.analysis-btn,.range-button.active,.pin-key.enter{box-shadow:none}.pin-screen .pin-dot.filled,.welcome-sync-dot,.welcome-chip.optimized:before,.welcome-chip.drifting:before,.welcome-chip.crashing:before{box-shadow:0 0 0 3px #22d3a524}.hero-meter-fill{background:var(--success);box-shadow:none}.hero-drop-glow{filter:none}.deck-input:focus,.deck-textarea:focus,.analysis-field input[type=date]:focus,.analysis-question:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #7c5cff29}.welcome-insight-card:hover,.more-list-item:hover,.more-list-item:focus-visible{border-color:#7c5cff73}.section-kicker,.welcome-primer-kicker,.more-profile-kicker{color:var(--text-muted)}.welcome-insight-label{color:var(--text-secondary)}.welcome-insight-card{border-left-color:#7c5cffb8}:root{--bg-primary:#0c1110;--bg-secondary:#111816;--bg-card:#17211e;--bg-surface:#111816;--surface:#111816;--surface-strong:#17211e;--text-primary:#eef4f1;--text-secondary:#a3afa9;--text-muted:#68746f;--accent:#2dd4bf;--accent-hover:#5eead4;--accent-warm:#f59e0b;--accent-ink:#031412;--primary:#2dd4bf;--cyan:#2dd4bf;--accent-cyan:#2dd4bf;--accent-magenta:#fb7185;--accent-lime:#34d399;--danger:#fb7185;--danger-bg:#fb71851f;--warning:#f59e0b;--warning-bg:#f59e0b21;--success:#34d399;--border:#24312d;--border-strong:#34443f;--shadow-panel:0 14px 34px #00000038;--shadow-control:0 1px 0 #ffffff0a inset;--radius-card:8px;--radius-control:6px;--font-ui:-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono:"SF Mono", ui-monospace, Menlo, Monaco, Consolas, monospace}html{background:var(--bg-primary)}body{background:linear-gradient(180deg, #2dd4bf0b, transparent 220px), var(--bg-primary);color:var(--text-primary);font-size:16px;line-height:1.5}.login-card,.deck-panel,.chart-container,.log-table,.more-list,.welcome-primer-card,.welcome-status-card,.welcome-insight-card,.pin-access-card,.more-profile-card,.more-pro-card,.log-period-card,.analysis-controls,.analysis-result,.analysis-loading,.analysis-error,.admin-section,.chem-panel,.chem-result,.pro-paywall-card,.invite-panel,.signup-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-panel)}.deck-panel,.analysis-controls,.analysis-result,.admin-section,.chem-panel,.chem-result,.pro-paywall-card{padding:18px}.user-bar{background:#0c1110f5;min-height:56px;padding-left:18px;padding-right:18px}.user-bar-brand{align-items:center;gap:8px;font-size:16px;font-weight:750;display:inline-flex}.user-bar-brand:before{content:"";background:var(--accent);border-radius:50%;width:9px;height:9px}.user-bar-operator,.section-kicker,.welcome-primer-kicker,.more-profile-kicker,.deck-field-label,.deck-field-helper,.status-banner,.deck-submit-button,.range-button,.analysis-header span,.analysis-field span,.operator-table th,.ranges-table th{letter-spacing:0}.logout-button,.home-add-user-button,.period-pill,.deck-badge,.range-button,.analysis-btn,.analysis-secondary-btn,.admin-btn,.pro-purchase-button,.pro-restore-button,.pro-signout-button,.welcome-cta,.welcome-secondary-cta,.signup-secondary,.pin-key,.pin-back{border-radius:var(--radius-control);box-shadow:var(--shadow-control)}.logout-button,.home-add-user-button,.period-pill,.deck-badge,.range-button,.analysis-secondary-btn,.admin-btn-secondary,.pro-restore-button,.welcome-secondary-cta,.signup-secondary,.pin-key,.pin-back{background:var(--bg-card);border:1px solid var(--border-strong);color:var(--text-secondary)}.home-add-user-button:hover,.period-pill:hover,.range-button:hover,.analysis-secondary-btn:hover,.pro-restore-button:hover,.welcome-secondary-cta:hover,.signup-secondary:hover,.pin-key:hover,.pin-back:hover{color:var(--text-primary);border-color:#2dd4bf85}.submit-button,.deck-submit-button,.welcome-cta,.analysis-btn,.admin-btn,.pro-purchase-button,.pin-key.enter,.range-button.active,.period-pill.active.morning,.period-pill.active.midday,.period-pill.active.evening,.signup-mode button.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:800}.submit-button:hover,.deck-submit-button:hover,.welcome-cta:hover,.analysis-btn:hover:not(:disabled),.admin-btn:hover,.pro-purchase-button:hover,.pin-key.enter:hover{background:var(--accent-hover);color:var(--accent-ink)}.tab-bar{padding:7px 10px calc(8px + env(safe-area-inset-bottom));border-color:var(--border);background:#0c1110fa;bottom:0;left:0;right:0}.tab-button-inner{min-height:52px;padding:7px 4px}.tab-button.active{color:var(--accent)}.tab-button.active .tab-button-inner:before{background:var(--accent);width:26px;height:3px;top:-7px}.tab-label{font-size:10px;font-weight:700}.tab-content{width:min(100%,980px);padding-top:20px}.section-title{font-size:32px;font-weight:800;line-height:1.08}.panel-title,.analysis-header h2{font-size:23px;font-weight:750;line-height:1.15}.deck-header-top,.screen-heading-row,.analysis-header{border-bottom:1px solid var(--border);padding-bottom:14px}.chlorine-hero{border-color:#2dd4bf57}.hero-input{color:var(--text-primary);letter-spacing:0;font-size:72px}.hero-input::placeholder{color:#a3afa947}.hero-unit{color:var(--text-secondary);letter-spacing:0}.hero-meter{border-radius:99px;height:4px}.deck-input,.deck-textarea,.analysis-field input[type=date],.analysis-question,.admin-input,.admin-select,.date-input,.signup-field input{border:1px solid var(--border-strong);border-radius:var(--radius-control);min-height:46px;box-shadow:var(--shadow-control);color:var(--text-primary);background:#0e1513}.deck-input,.analysis-question,.admin-input,.admin-select,.date-input,.signup-field input{font-size:15px}.deck-input:focus,.deck-textarea:focus,.analysis-field input[type=date]:focus,.analysis-question:focus,.admin-input:focus,.admin-select:focus,.date-input:focus,.signup-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2dd4bf29}.deck-field.out-of-range .deck-input,.deck-field.out-of-range .deck-textarea{border-color:#f59e0b94}.status-banner,.analysis-loading,.analysis-error,.pro-purchase-note,.pro-disclosure,.pro-admin-guide,.invite-code{border-radius:var(--radius-control)}.status-banner.success,.weather-fill-status,.pro-purchase-note{color:var(--success);background:#34d3991a;border-color:#34d39952}.status-banner.error,.weather-fill-error,.analysis-error,.pro-purchase-note.error{background:var(--danger-bg);color:var(--danger);border-color:#fb71855c}.more-profile-card,.more-pro-card{margin-bottom:12px}.more-list{overflow:hidden}.more-list-item{background:var(--bg-secondary);border-bottom:1px solid var(--border);min-height:62px}.more-list-label{letter-spacing:0;font-size:16px;font-weight:650}.more-list-icon{border:1px solid var(--border);border-radius:var(--radius-control);background:var(--bg-card);width:34px;height:34px;color:var(--accent)}.welcome-screen,.pin-screen,.signup-screen{background:0 0;width:min(100%,430px)}.welcome-brand{margin-top:34px}.welcome-title{letter-spacing:0;font-size:48px;font-weight:800}.welcome-facility,.welcome-footer-meta,.welcome-reading-label,.welcome-ts,.pin-sub,.pin-access-card span,.signup-field span{letter-spacing:0}.welcome-primer-card,.welcome-status-card,.welcome-insight-card{text-align:left}.welcome-primer-head,.welcome-status-row,.welcome-insight-head{text-align:left;justify-content:space-between}.welcome-readings{grid-template-columns:repeat(2,minmax(0,1fr))}.welcome-reading{border:1px solid var(--border);border-radius:var(--radius-control);background:var(--bg-card);padding:10px}.welcome-cta,.signup-submit{min-height:52px}.pin-keypad{gap:8px}.pin-key{min-height:58px;font-weight:700}.log-period-card,.log-metric,.welcome-reading{transition:border-color .15s,background .15s}.log-metric{background:var(--bg-card);border-color:var(--border)}.log-metric strong,.welcome-reading-value{color:var(--text-primary)}.screen-count-pill,.log-period-status,.more-profile-status,.analysis-pro-chip,.pro-lock-chip,.welcome-chip,.pin-access-pill,.role-badge,.admin-badge{letter-spacing:0;border-radius:999px}@media (width>=860px){.log-entry-screen{max-width:860px}.deck-panel,.analysis-controls,.analysis-result,.admin-section,.pro-paywall-card{padding:22px}.tab-content{padding-top:26px}}@media (width<=430px){.section-title{font-size:28px}.hero-input{font-size:58px}.deck-header-top,.screen-heading-row,.analysis-header{gap:10px}.welcome-title{font-size:42px}}.legal-page{width:min(100%,1160px);min-height:100vh;margin:0 auto;padding:22px 18px 48px}.legal-topbar{justify-content:space-between;align-items:center;gap:18px;min-height:50px;margin-bottom:36px;display:flex}.legal-brand{color:var(--text-primary);align-items:center;gap:10px;font-size:17px;font-weight:850;text-decoration:none;display:inline-flex}.legal-brand-mark{border:2px solid var(--accent);background:#00e5ff2e;border-radius:50%;width:13px;height:13px;box-shadow:0 0 0 5px #00e5ff1a}.legal-nav{-webkit-backdrop-filter:blur(16px);background:#08060fc7;border:1px solid #00e5ff29;border-radius:999px;align-items:center;gap:4px;padding:5px;display:flex;box-shadow:inset 0 1px #ffffff0a}.legal-nav a{min-height:34px;color:var(--text-secondary);border-radius:999px;justify-content:center;align-items:center;padding:0 14px;font-size:14px;font-weight:760;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.legal-nav a:hover,.legal-nav a:focus-visible{color:var(--text-primary);outline:none}.legal-nav a.active{color:var(--accent);background:#00e5ff24;box-shadow:inset 0 0 0 1px #00e5ff33}.legal-hero{border-bottom:1px solid #00e5ff24;grid-template-columns:minmax(0,1fr) 240px;align-items:end;gap:26px;padding:0 0 28px;display:grid}.legal-kicker,.legal-section-label{color:var(--accent);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:800}.legal-kicker{margin-bottom:11px}.legal-section-label{margin-bottom:8px}.legal-hero h1{max-width:780px;color:var(--text-primary);letter-spacing:0;font-size:clamp(40px,7vw,78px);font-weight:850;line-height:.98}.legal-hero p{max-width:760px;color:var(--text-secondary);margin-top:18px;font-size:18px;line-height:1.58}.legal-hero-actions,.legal-badge-row{flex-wrap:wrap;gap:9px;margin-top:20px;display:flex}.legal-hero-actions a,.legal-badge-row span{min-height:38px;color:var(--text-primary);background:#00e5ff14;border:1px solid #00e5ff38;border-radius:999px;align-items:center;padding:0 13px;font-size:13px;font-weight:760;text-decoration:none;display:inline-flex}.legal-hero-actions a:hover,.legal-hero-actions a:focus-visible{color:var(--accent-hover);border-color:#ff2e937a;outline:none}.legal-update-card{background:#10101ceb;border:1px solid #00e5ff2e;border-radius:8px;padding:18px;box-shadow:inset 0 1px #ffffff0a,0 18px 42px #00000047}.legal-update-card span,.legal-update-card small{color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:800;line-height:1.5;display:block}.legal-update-card strong{color:var(--text-primary);margin:6px 0 10px;font-size:18px;display:block}.legal-layout{grid-template-columns:minmax(0,1fr) 314px;align-items:start;gap:26px;padding-top:26px;display:grid}.legal-document{gap:14px;display:grid}.legal-section,.legal-side-card,.app-legal-panel{background:#10101ce6;border:1px solid #00e5ff24;border-radius:8px;box-shadow:inset 0 1px #ffffff09,0 14px 36px #0000003d}.legal-section{padding:24px}.legal-overview-section{grid-template-columns:minmax(0,1.2fr) minmax(250px,.8fr);gap:18px;display:grid}.legal-section h2,.legal-side-card h2{color:var(--text-primary);margin-bottom:10px;font-size:21px;font-weight:820;line-height:1.2}.legal-support-path h3{color:var(--text-primary);font-size:16px;font-weight:800;line-height:1.25}.legal-section p,.legal-section li,.legal-side-card p,.legal-definition-list dd,.legal-link-card small,.app-legal-copy,.legal-info-row p,.legal-callout p,.legal-support-path li,.legal-compact-list li{color:var(--text-secondary);font-size:15px;line-height:1.62}.legal-section p+p{margin-top:12px}.legal-section a,.legal-side-card a{color:var(--accent);font-weight:760;text-decoration:none}.legal-section a:hover,.legal-section a:focus-visible,.legal-side-card a:hover,.legal-side-card a:focus-visible{color:var(--accent-hover);outline:none}.legal-list,.legal-step-list,.legal-compact-list{gap:10px;padding-left:20px;display:grid}.legal-step-list{counter-reset:legal-step;list-style:decimal}.legal-contact-primary{background:linear-gradient(135deg,#00e5ff1a,#0000 52%),#10101cf0;border-color:#00e5ff5c}.legal-primary-link{overflow-wrap:anywhere;max-width:100%;min-height:44px;color:var(--accent);background:#00e5ff1a;border:1px solid #00e5ff80;border-radius:6px;align-items:center;margin-top:12px;padding:0 15px;font-weight:820;display:inline-flex}.legal-aside{gap:14px;display:grid;position:sticky;top:20px}.legal-side-card{padding:18px}.legal-definition-list{gap:12px;display:grid}.legal-definition-list div{border-bottom:1px solid #ffffff14;padding-bottom:12px}.legal-definition-list div:last-child{border-bottom:0;padding-bottom:0}.legal-definition-list dt{color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:3px;font-size:11px;font-weight:850}.legal-email-link{overflow-wrap:anywhere;max-width:100%;display:inline-flex}.legal-mini-status .legal-compact-list{gap:7px}.legal-link-grid,.app-legal-grid,.legal-process-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.legal-link-card{min-height:116px;color:var(--text-primary);background:linear-gradient(#ffffff09,#0000),#1a1830e0;border:1px solid #ffffff14;border-radius:7px;align-content:start;gap:6px;padding:16px;text-decoration:none;transition:border-color .15s,transform .15s,background .15s;display:grid}.legal-link-card:hover,.legal-link-card:focus-visible{background:linear-gradient(#00e5ff17,#0000),#1a1830f5;border-color:#00e5ff70;outline:none;transform:translateY(-1px)}.legal-link-card span{color:var(--text-primary);font-size:16px;font-weight:820}.legal-status-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.legal-status-card{background:#08060f5c;border:1px solid #ffffff14;border-radius:7px;min-height:78px;padding:13px}.legal-status-card span{color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:7px;font-size:11px;font-weight:800;display:block}.legal-status-card strong{color:var(--text-primary);font-size:15px;font-weight:800;line-height:1.3}.legal-matrix{border:1px solid #ffffff14;border-radius:7px;gap:0;display:grid;overflow:hidden}.legal-info-row{background:#08060f33;border-bottom:1px solid #ffffff14;grid-template-columns:180px minmax(0,1fr);gap:18px;padding:15px;display:grid}.legal-info-row:last-child{border-bottom:0}.legal-info-row strong{color:var(--text-primary);font-size:14px;font-weight:820;line-height:1.35}.legal-callout{background:#ff2e9314;border:1px solid #ff2e9347;border-radius:7px;padding:16px}.legal-callout strong{color:var(--text-primary);margin-bottom:7px;font-size:15px;font-weight:820;display:block}.legal-callout p{margin-top:0}.legal-support-path{background:#08060f4d;border:1px solid #ffffff14;border-radius:7px;gap:10px;padding:16px;display:grid}.legal-support-path ol{gap:7px;padding-left:20px;display:grid}.app-legal-panel{padding:18px}.app-legal-copy{margin-bottom:14px}.legal-page-footer{color:var(--text-muted);border-top:1px solid #00e5ff1f;justify-content:space-between;gap:14px;margin-top:30px;padding-top:18px;font-size:13px;line-height:1.4;display:flex}@media (width<=900px){.legal-page{padding:16px 14px 42px}.legal-topbar{flex-direction:column;align-items:flex-start;margin-bottom:30px}.legal-nav{justify-content:space-between;width:100%;overflow-x:auto}.legal-nav a{flex:1;min-width:74px;padding:0 10px}.legal-hero,.legal-layout,.legal-overview-section{grid-template-columns:1fr}.legal-hero{gap:18px}.legal-hero h1{font-size:44px}.legal-hero p{font-size:16px}.legal-update-card{width:min(100%,320px)}.legal-aside{position:static}}@media (width<=620px){.legal-link-grid,.app-legal-grid,.legal-process-grid,.legal-status-grid{grid-template-columns:1fr}.legal-section,.legal-side-card,.app-legal-panel{padding:16px}.legal-info-row{grid-template-columns:1fr;gap:5px}.legal-hero-actions a,.legal-badge-row span{justify-content:center;width:100%}.legal-page-footer{flex-direction:column}}
