@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Sora:wght@500;600;700&display=swap";.configButton{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-secondary);border-radius:10px;min-height:38px;padding:.45rem .62rem;cursor:pointer;font-weight:700;font-size:.8rem;position:relative;overflow:hidden;box-shadow:0 0 #06b6d400}.configButton:hover{color:var(--text-primary);border-color:var(--primary-color);box-shadow:0 8px 20px #06b6d42e}.configButton:after{content:"";position:absolute;top:0;left:-140%;width:60%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.24),transparent);transform:skew(-16deg);transition:left .45s ease}.configButton:hover:after{left:150%}.configButton .icon{width:1.05rem;height:1.05rem}.configButtonLabel{letter-spacing:.01em}@media(max-width:480px){.configButtonLabel{display:none}.configButton{min-height:34px;padding:.42rem .52rem}}.goBack{background:transparent;border:none;padding:.4em;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.goBack:active{background-color:#7fffd415}.info-hint{position:relative;display:inline-flex;align-items:center;margin-left:.35rem}.info-hint-button{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid rgba(125,211,252,.75);background:#0f172a85;color:#bae6fd;font-weight:800;line-height:1;text-transform:none;box-shadow:0 3px 10px #0208174d}.info-hint-button--md{width:20px;height:20px;font-size:.78rem}.info-hint-button--sm{width:18px;height:18px;font-size:.72rem}.info-hint-tooltip{position:absolute;z-index:1700;min-width:180px;max-width:min(320px,calc(100vw - 1.5rem));border-radius:10px;border:1px solid rgba(125,211,252,.5);background:#08141ff7;color:#e2e8f0;padding:.56rem .62rem;box-shadow:0 14px 28px #0208178c;transform:translateY(-6px)}.info-hint-tooltip:before{content:"";position:absolute;top:-5px;width:10px;height:10px;transform:rotate(45deg);background:#08141ff7;border-top:1px solid rgba(125,211,252,.5);border-left:1px solid rgba(125,211,252,.5)}.info-hint-tooltip strong{display:block;margin-bottom:.18rem;color:#bae6fd;font-size:.8rem}.info-hint-tooltip span{display:block;font-size:.78rem;line-height:1.3;color:#dbe6f3}.info-hint-tooltip--center{top:calc(100% + 8px);left:50%;transform:translate(-50%)}.info-hint-tooltip--center:before{left:50%;margin-left:-5px}.info-hint-tooltip--left{top:calc(100% + 8px);left:0}.info-hint-tooltip--left:before{left:10px}.info-hint-tooltip--right{top:calc(100% + 8px);right:0}.info-hint-tooltip--right:before{right:10px}[data-theme=light] .info-hint-button{background:#e2f2fcf2;color:#0369a1;border-color:#0e74908c;box-shadow:0 3px 10px #0e22382e}[data-theme=light] .info-hint-tooltip{background:#fffffffa;color:#1e293b;border-color:#0e74904d;box-shadow:0 14px 28px #0f172a2e}[data-theme=light] .info-hint-tooltip:before{background:#fffffffa;border-top-color:#0e74904d;border-left-color:#0e74904d}[data-theme=light] .info-hint-tooltip strong{color:#0f766e}[data-theme=light] .info-hint-tooltip span{color:#334155}.connection-status{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.55rem .72rem;border-radius:12px;border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-secondary);font-size:.84rem;font-weight:600}.connection-status.connected{border-color:#14b8a680;box-shadow:inset 0 0 0 1px #14b8a629}.connection-status.disconnected{border-color:#f43f5e80;box-shadow:inset 0 0 0 1px #f43f5e1f}.connection-indicator{min-width:0;display:flex;align-items:center;gap:.55rem}.status-dot{width:8px;height:8px;border-radius:999px;flex:0 0 auto}.status-dot.online{background:#14b8a6;box-shadow:0 0 0 4px #14b8a624}.status-dot.offline{background:#f43f5e;box-shadow:0 0 0 4px #f43f5e24}.status-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.update-time{font-size:.74rem;color:var(--text-muted);white-space:nowrap}.connection-status.compact{min-height:35px;padding:.5rem .6rem}@media(max-width:480px){.connection-status{gap:.45rem}.status-text{font-size:.78rem;max-width:150px}.update-time{font-size:.67rem}}.confirm-dialog-overlay{position:fixed;inset:0;z-index:2200;display:flex;align-items:center;justify-content:center;padding:1rem;background:#020617b3;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.confirm-dialog{width:min(460px,100%);border-radius:16px;border:1px solid var(--border-color);background:var(--bg-card);box-shadow:var(--shadow-xl);padding:1.2rem;display:flex;flex-direction:column;gap:.85rem}.confirm-dialog h3{margin:0;color:var(--text-primary);font-size:1.1rem}.confirm-dialog p{margin:0;color:var(--text-secondary);line-height:1.5}.confirm-dialog small{color:var(--text-muted);line-height:1.4}.confirm-dialog-actions{display:flex;justify-content:flex-end;gap:.65rem;margin-top:.35rem}.confirm-dialog-btn{border-radius:10px;padding:.62rem .88rem;font-weight:700;cursor:pointer;border:1px solid transparent}.confirm-dialog-btn--ghost{border-color:var(--border-color);background:var(--bg-secondary);color:var(--text-secondary)}.confirm-dialog-btn--primary{border-color:var(--primary-color);background:var(--primary-color);color:#fff}.confirm-dialog-btn:disabled{opacity:.7;cursor:not-allowed}.confirm-dialog--danger{border-color:#f43f5e8c}.confirm-dialog--danger .confirm-dialog-btn--primary{border-color:#e11d48;background:#e11d48}@media(max-width:520px){.confirm-dialog{padding:1rem;border-radius:14px}.confirm-dialog-actions{flex-direction:column-reverse}.confirm-dialog-btn{width:100%}}.notification{position:fixed;top:20px;right:20px;max-width:400px;padding:1em;border-radius:.5em;display:flex;justify-content:space-between;align-items:center;gap:1em;box-shadow:0 4px 12px #00000080;animation:slideIn .3s ease;z-index:2000}@keyframes slideIn{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOut{0%{transform:translate(0);opacity:1}to{transform:translate(400px);opacity:0}}.notification-error{background-color:#ef4444f2;border:1px solid #ef4444;color:#fff}.notification-warning{background-color:#f59e0bf2;border:1px solid #f59e0b;color:#fff}.notification-success{background-color:#22c55ef2;border:1px solid #22c55e;color:#fff}.notification-info{background-color:#3b82f6f2;border:1px solid #3b82f6;color:#fff}.notificationContent{display:flex;align-items:center;gap:.5em;flex:1}.notificationIcon{font-size:1.2em;flex-shrink:0}.notificationMessage{font-size:.95em;font-weight:500}.notificationClose{background:none;border:none;color:inherit;font-size:1.2em;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:.25em;transition:background-color .2s}.notificationClose:hover{background-color:#fff3}@media(max-width:480px){.notification{left:10px;right:10px;max-width:none}}.app-header{position:sticky;top:0;z-index:100;width:100%;padding:.95rem .9rem .75rem;padding-top:calc(.95rem + env(safe-area-inset-top));border-bottom:1px solid var(--border-color);background:#09141ddb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .28s ease,padding .25s ease,background-color .25s ease,box-shadow .25s ease}[data-theme=light] .app-header{background:#f8fcffeb;border-bottom-color:#bfd2e0;box-shadow:0 6px 18px #0f172a14}.app-header.is-hidden{transform:translateY(calc(-100% - 6px))}.app-header.is-compact{padding:.56rem .75rem .5rem;padding-top:calc(.56rem + env(safe-area-inset-top));background:#09141df2;box-shadow:0 8px 20px #02081761}[data-theme=light] .app-header.is-compact{background:#f8fcfffa;box-shadow:0 10px 24px #0f172a1f}.header-main-row{max-width:960px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem}.header-brand{min-width:0}.header-title{margin:0;font-family:Sora,Manrope,sans-serif;font-size:1.2rem;font-weight:700;color:var(--text-primary);letter-spacing:.01em}.header-subtitle{margin:.18rem 0 0;font-size:.78rem;color:var(--text-muted);transition:opacity .2s ease,max-height .2s ease,margin .2s ease;max-height:22px;overflow:hidden}.header-actions{display:flex;align-items:center;gap:.45rem;flex-shrink:0}.header-actions button{font-weight:700}.user-avatar{width:34px;height:34px;border-radius:999px;object-fit:cover;border:1px solid rgba(255,255,255,.16);display:inline-flex;align-items:center;justify-content:center}[data-theme=light] .user-avatar{border-color:#0f172a24}.user-chip{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--border-color);background:var(--bg-card);border-radius:999px;min-height:38px;padding:.12rem .34rem .12rem .16rem;color:var(--text-secondary);transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.user-chip:hover{border-color:#67e8f980;box-shadow:0 8px 20px #06b6d429;transform:translateY(-1px)}[data-theme=light] .user-chip:hover{border-color:#0891b273;box-shadow:0 8px 20px #0f172a1a}.user-avatar-fallback{background:linear-gradient(135deg,#06b6d43d,#14b8a657);color:var(--text-primary);font-size:.78rem;font-weight:800}.user-name{max-width:68px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.79rem;font-weight:700;padding-right:.24rem}.logout-btn{border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-secondary);border-radius:10px;min-height:38px;padding:.5rem .72rem;font-size:.82rem;letter-spacing:.01em;position:relative;overflow:hidden}.logout-btn:hover{color:var(--text-primary);border-color:var(--primary-color)}.logout-btn:after{content:"";position:absolute;top:0;left:-140%;width:64%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.23),transparent);transform:skew(-16deg);transition:left .42s ease}.logout-btn:hover:after{left:150%}.header-status-row{max-width:960px;margin:.7rem auto 0;transition:margin-top .2s ease,opacity .2s ease}.app-header.is-compact .header-subtitle{opacity:0;max-height:0;margin:0}.app-header.is-compact .header-status-row{margin-top:.45rem}@media(max-width:768px){.app-header{padding:.72rem .6rem .62rem}.header-title{font-size:1.08rem}.header-subtitle{font-size:.72rem}.header-actions button{min-height:34px;padding:.42rem .58rem}.app-header.is-compact{padding:.5rem .55rem .45rem}.user-chip{min-height:34px}.user-avatar{width:30px;height:30px}}@media(max-width:480px){.header-main-row{gap:.55rem}.header-subtitle,.logout-btn{display:none}.user-name{max-width:42px;font-size:.74rem}}.download-app-btn{display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--primary-color);background:linear-gradient(135deg,#06b6d426,#14b8a626);color:var(--primary-color);border-radius:10px;min-height:38px;padding:.5rem .85rem;font-size:.82rem;font-weight:700;letter-spacing:.01em;transition:all .2s ease}.download-app-btn:hover{background:linear-gradient(135deg,#06b6d440,#14b8a640);border-color:var(--primary-color);box-shadow:0 8px 20px #06b6d44d;transform:translateY(-1px)}.download-app-btn svg{flex-shrink:0}.download-app-text-mobile{display:none}[data-theme=light] .download-app-btn{border-color:#0891b299;background:linear-gradient(135deg,#0891b214,#14b8a614);color:#0891b2}[data-theme=light] .download-app-btn:hover{background:linear-gradient(135deg,#0891b226,#14b8a626);box-shadow:0 8px 20px #0891b233}@media(max-width:768px){.download-app-text-desktop{display:none}.download-app-text-mobile{display:inline}.download-app-btn{padding:.5rem .65rem;gap:.35rem}}.ph-hero{--gauge-bezel-top: #15384d;--gauge-bezel-mid: #0c2232;--gauge-bezel-bottom: #081622;--gauge-dial-top: #12344a;--gauge-dial-mid: #0b2435;--gauge-dial-bottom: #091826;--gauge-needle-top: #e2f3ff;--gauge-needle-bottom: #8bd8ff;--gauge-panel-top: #12364c;--gauge-panel-bottom: #0c2434;width:min(560px,100%);margin:0 auto;padding:1rem 1rem .85rem;border-radius:18px;border:1px solid var(--border-color);background:linear-gradient(140deg,#11283ae6,#0d1d2af2);box-shadow:var(--shadow-lg);text-align:center}.ph-carousel{overflow:hidden;border-radius:12px;touch-action:pan-y}.ph-carousel-track{width:200%;display:flex;transition:transform .3s ease}.ph-carousel-track.slide-0{transform:translate(0)}.ph-carousel-track.slide-1{transform:translate(-50%)}.ph-slide{width:50%;flex-shrink:0;padding:.2rem .1rem}.ph-label{margin:0;color:var(--text-muted);text-transform:uppercase;letter-spacing:.11em;font-size:.74rem;font-weight:700}.ph-label-with-info{display:inline-flex;align-items:center;justify-content:center}.ph-value{margin:.45rem 0 0;font-family:Sora,Manrope,sans-serif;font-weight:700;line-height:1;font-size:clamp(7rem,15vw,9rem);color:#67e8f9}.ph-status{margin:.8rem auto 0;width:fit-content;padding:.42rem .86rem;border-radius:999px;font-size:.84rem;font-weight:700;letter-spacing:.01em}.ph-meta{margin-top:.9rem;display:flex;justify-content:center;flex-wrap:wrap;gap:.5rem}.ph-meta span{border:1px solid var(--border-color);border-radius:999px;padding:.3rem .68rem;color:var(--text-secondary);font-size:.73rem;font-weight:600;background:#0a1823b3}.ph-slide-gauge{display:flex;justify-content:center}.ph-gauge-wrap{width:min(340px,100%);padding-top:.15rem}.ph-gauge{width:100%;height:auto}.gauge-rim-outer{fill:url(#gaugeBezelGradient);stroke:#94a3b859;stroke-width:1.2}.gauge-rim-inner{fill:#0a1b2a;stroke:#07111ae6;stroke-width:3}.gauge-dial-surface{fill:url(#gaugeDialGradient);stroke:#67e8f91a;stroke-width:1}.gauge-base-arc{fill:none;stroke:#94a3b83d;stroke-width:15;stroke-linecap:round}.gauge-neon-base{fill:none;stroke:#22d3ee8c;stroke-width:3;stroke-linecap:round}.gauge-color-arc{fill:none;stroke-width:14;stroke-linecap:round}.gauge-color-arc.zone-low{stroke:#ef4444}.gauge-color-arc.zone-ideal{stroke:#22d3ee}.gauge-color-arc.zone-high{stroke:#f59e0b}.gauge-tick{stroke:#e2e8f047;stroke-width:1.4}.gauge-tick.major{stroke:#e2e8f0cc;stroke-width:2.1}.gauge-ideal-label{fill:#9af7ff;font-size:9px;font-weight:700;letter-spacing:1.1px;text-anchor:middle}.gauge-limit-label{fill:#fff;font-size:12px;font-weight:700;text-shadow:0 0 5px rgba(15,23,42,.7)}.gauge-needle{fill:url(#needleGradient);stroke:#d6f4ff;stroke-width:.8}.gauge-needle-tip{fill:#67e8f9}.gauge-center-outer{fill:#0f172a;stroke:#334155;stroke-width:1.2}.gauge-center-inner{fill:#475569}.gauge-center-dot{fill:#bae6fd}.gauge-value-panel{fill:url(#valuePanelGradient);stroke:#7dd3fc6b;stroke-width:.8;filter:drop-shadow(0 0 6px rgba(34,211,238,.22))}.gauge-value{fill:#e0f2fe;font-size:18px;font-weight:700;text-anchor:middle}.gauge-unit{fill:#93c5fd;font-size:12px;font-weight:700;text-anchor:middle;letter-spacing:.04em}.ph-carousel-indicators{margin-top:.6rem;display:flex;justify-content:center;gap:.4rem}.ph-dot{width:8px;height:8px;border-radius:999px;border:0;background:#94a3b873;padding:0;transition:transform .18s ease,background-color .18s ease,width .2s ease}.ph-dot.active{width:20px;border-radius:999px;background:#67e8f9}.ph-dot:hover{transform:translateY(-1px) scale(1.12);background:#67e8f9d9}.ph-swipe-hint{margin:.5rem 0 0;color:var(--text-muted);font-size:.73rem}.ph-hero[data-ph-status=low] .ph-value{color:#fb7185}.ph-hero[data-ph-status=low] .ph-status{color:#fecdd3;background:#e11d4833;border:1px solid rgba(244,63,94,.4)}.ph-hero[data-ph-status=high] .ph-value{color:#f59e0b}.ph-hero[data-ph-status=high] .ph-status{color:#fde68a;background:#f59e0b33;border:1px solid rgba(245,158,11,.38)}.ph-hero[data-ph-status=ok] .ph-value{color:#2dd4bf}.ph-hero[data-ph-status=ok] .ph-status{color:#99f6e4;background:#14b8a62e;border:1px solid rgba(20,184,166,.34)}[data-theme=light] .ph-hero{--gauge-bezel-top: #e6f2fa;--gauge-bezel-mid: #caddea;--gauge-bezel-bottom: #b9cfdf;--gauge-dial-top: #f8fcff;--gauge-dial-mid: #e7f2f9;--gauge-dial-bottom: #d7e8f4;--gauge-needle-top: #ffffff;--gauge-needle-bottom: #68b7ea;--gauge-panel-top: #f9fdff;--gauge-panel-bottom: #dcedf8;background:linear-gradient(145deg,#f8fdff,#eaf5fc);border-color:#b9d1df}[data-theme=light] .ph-label{color:#334155}[data-theme=light] .ph-meta span{background:#ffffffeb;color:#1e293b;border-color:#bfd3e1}[data-theme=light] .ph-swipe-hint{color:#475569}[data-theme=light] .ph-dot{background:#47556947}[data-theme=light] .ph-dot.active{background:#0ea5a8}[data-theme=light] .ph-hero[data-ph-status=low] .ph-status{color:#9f1239;background:#f43f5e29;border-color:#e11d485c}[data-theme=light] .ph-hero[data-ph-status=high] .ph-status{color:#92400e;background:#f59e0b29;border-color:#d9770657}[data-theme=light] .ph-hero[data-ph-status=ok] .ph-status{color:#0f766e;background:#14b8a624;border-color:#0d948857}[data-theme=light] .gauge-rim-outer{stroke:#47556940}[data-theme=light] .gauge-rim-inner{fill:#e6f1f8;stroke:#94a3b899}[data-theme=light] .gauge-dial-surface{stroke:#0ea5e933}[data-theme=light] .gauge-base-arc{stroke:#64748b33}[data-theme=light] .gauge-neon-base{stroke:#0ea5e973}[data-theme=light] .gauge-tick{stroke:#47556959}[data-theme=light] .gauge-tick.major{stroke:#334155bf}[data-theme=light] .gauge-ideal-label{fill:#0f766e}[data-theme=light] .gauge-limit-label{fill:#334155;text-shadow:none}[data-theme=light] .gauge-needle{stroke:#e2f4ff}[data-theme=light] .gauge-center-outer{fill:#c0d4e3;stroke:#7a8fa0}[data-theme=light] .gauge-center-inner{fill:#7c91a3}[data-theme=light] .gauge-center-dot{fill:#eef6ff}[data-theme=light] .gauge-value-panel{stroke:#0e749052;filter:none}[data-theme=light] .gauge-value{fill:#0f172a}[data-theme=light] .gauge-unit{fill:#334155}@media(max-width:768px){.ph-hero{padding:.95rem .8rem .75rem}}.ph-scale{width:min(560px,100%);margin:0 auto;padding:1rem 1rem .9rem;border-radius:16px;border:1px solid var(--border-color);background:var(--bg-card);box-shadow:var(--shadow)}.ph-scale-header{display:flex;align-items:baseline;justify-content:space-between;gap:.7rem;margin-bottom:.7rem}.ph-scale-header h3{margin:0;font-size:.98rem}.ph-scale-title-with-info{display:inline-flex;align-items:center}.ph-scale-current{font-size:.78rem;font-weight:700;color:var(--text-muted)}.ph-scale-track{position:relative;height:14px;border-radius:999px;border:1px solid rgba(255,255,255,.08);overflow:hidden}.ph-scale-gradient{position:absolute;inset:0;background:linear-gradient(90deg,#fb7185,#f59e0b 38%,#14b8a6 62%,#f59e0b)}.ph-scale-target{position:absolute;top:0;bottom:0;background:#ffffff59}.ph-scale-marker{position:absolute;top:50%;transform:translate(-50%,-50%);width:4px;height:22px;border-radius:4px;background:#f8fafc;box-shadow:0 0 0 2px #0f172a73}.ph-scale-labels{display:flex;justify-content:space-between;margin-top:.5rem;color:var(--text-muted);font-size:.74rem;font-weight:700}.ph-scale-range{margin:.55rem 0 0;color:var(--text-secondary);font-size:.76rem}@media(max-width:480px){.ph-scale{padding:.88rem}}.chartContainer{width:min(560px,100%);margin:0 auto;padding:1rem;border-radius:16px;border:1px solid var(--border-color);background:var(--bg-card);box-shadow:var(--shadow)}.chartHeader{display:flex;justify-content:space-between;align-items:center;gap:.7rem;margin-bottom:.6rem}.chartContainer h3{margin:0;font-size:1rem;font-weight:700;color:var(--text-primary)}.chart-title-with-info{display:inline-flex;align-items:center}.warningBadge{--warning-color: #fb7185;position:relative;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:999px;color:var(--warning-color);background:#0f172a59;border:1px solid currentColor}[data-theme=light] .warningBadge{background:#ffffffe6;box-shadow:0 2px 10px #0f172a1a}.warningBadge:after{content:"";position:absolute;inset:-2px;border:2px solid currentColor;border-radius:999px;opacity:0}.warningBadge--active{animation:warningPulse 1.35s ease-in-out infinite}.warningBadge--active svg{animation:warningBlink .95s ease-in-out infinite}.warningBadge--active:after{animation:warningHalo 1.35s ease-out infinite}.warningBadge--bajo{animation-duration:1.1s}@keyframes warningPulse{0%{transform:scale(1)}65%{transform:scale(1.11)}to{transform:scale(1)}}@keyframes warningBlink{0%,to{opacity:1}50%{opacity:.45}}@keyframes warningHalo{0%{opacity:.65;transform:scale(1)}to{opacity:0;transform:scale(1.45)}}@media(max-width:480px){.chartContainer{padding:.82rem}.chartContainer h3{font-size:.93rem}}.numeric-input{display:flex;align-items:center;gap:0;background:var(--input-bg, rgba(255, 255, 255, .05));border:1px solid var(--border-color, rgba(255, 255, 255, .1));border-radius:8px;overflow:hidden;transition:all .2s ease;height:44px}.numeric-input:hover{border-color:var(--primary-color, #00d4ff);box-shadow:0 0 0 3px #00d4ff1a}.numeric-input:focus-within{border-color:var(--primary-color, #00d4ff);box-shadow:0 0 0 3px #00d4ff26}.numeric-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:#ffffff0d;border:none;color:var(--text-color, #fff);cursor:pointer;transition:all .2s ease;flex-shrink:0}.numeric-btn:hover:not(:disabled){background:var(--primary-color, #00d4ff);color:var(--bg-color, #0a1929)}.numeric-btn:active:not(:disabled){transform:scale(.95)}.numeric-btn:disabled{opacity:.3;cursor:not-allowed}.numeric-btn svg{pointer-events:none}.numeric-input-wrapper{display:flex;align-items:center;flex:1;height:100%;padding:0 12px;gap:8px;min-width:0}.numeric-input-field{flex:1;background:transparent;border:none;color:var(--text-color, #fff);font-size:16px;font-weight:500;text-align:center;outline:none;width:100%;min-width:0;-moz-appearance:textfield}.numeric-input-field::-webkit-outer-spin-button,.numeric-input-field::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.numeric-input-unit{color:var(--text-secondary, rgba(255, 255, 255, .6));font-size:14px;font-weight:500;white-space:nowrap;flex-shrink:0}.numeric-input.compact{height:36px}.numeric-input.compact .numeric-btn{width:36px;height:36px}.numeric-input.compact .numeric-input-field{font-size:14px}.numeric-input.compact .numeric-input-unit{font-size:12px}[data-theme=light] .numeric-input{background:#00000008;border-color:#0000001a}[data-theme=light] .numeric-input:hover{border-color:var(--primary-color, #0099cc);box-shadow:0 0 0 3px #0099cc1a}[data-theme=light] .numeric-input:focus-within{box-shadow:0 0 0 3px #0099cc26}[data-theme=light] .numeric-btn{background:#00000008;color:var(--text-color, #1a1a1a)}[data-theme=light] .numeric-btn:hover:not(:disabled){background:var(--primary-color, #0099cc);color:#fff}[data-theme=light] .numeric-input-field{color:var(--text-color, #1a1a1a)}[data-theme=light] .numeric-input-unit{color:#00000080}.manualDosingContainer{width:90%;margin:2em auto;padding:1.5em;border-radius:1em;border:1px solid var(--border-color);background-color:var(--bg-card);box-shadow:var(--shadow-lg)}.manualDosingContainer h3{color:var(--text-primary);margin-top:0;margin-bottom:1.5em;text-align:center;font-size:1.2em}.manual-title-with-info{display:inline-flex;align-items:center;justify-content:center}.dosingSection{margin-bottom:1.5em}.dosingSection label{display:block;color:var(--text-primary);font-size:1em;font-weight:500;margin-bottom:.7em}.label-with-info{display:inline-flex!important;align-items:center}.productButtons{display:flex;gap:1em;justify-content:center}.productBtn{padding:.8em 1.5em;border:2px solid var(--border-color);border-radius:.5em;background-color:var(--bg-secondary);color:var(--text-primary);font-size:.95em;font-weight:500;cursor:pointer;transition:all .2s}.productBtn:hover{border-color:var(--primary-color);background-color:var(--bg-card-hover)}.productBtn.active{border-color:var(--success-color);background-color:var(--success-color);color:#fff}.productBtn:disabled{opacity:.5;cursor:not-allowed}.productBtn.small{padding:.6em 1em;font-size:.85em}.timeInputs{display:flex;gap:1em;justify-content:center}.timeInputs .numeric-input{flex:1;max-width:200px}.timeGroup{display:flex;flex-direction:column;align-items:center;gap:.5em}.timeGroup input{width:80px;padding:.6em;border:1px solid var(--border-color);border-radius:.5em;background-color:var(--bg-secondary);color:var(--text-primary);font-size:1em;text-align:center}.timeGroup input:focus{outline:none;border-color:var(--success-color);background-color:var(--bg-card-hover)}.timeGroup span{color:var(--text-secondary);font-size:.9em}.calculatedVolumeBox{max-width:340px;margin:0 auto;padding:.85em 1em;border-radius:.6em;border:1px solid var(--border-color);background:var(--bg-secondary);text-align:center}.calculatedVolumeBox strong{display:block;color:var(--success-color);font-size:1.25em;margin-bottom:.2em}.calculatedVolumeBox small{color:var(--text-secondary);font-size:.85em}.dosifyBtn{display:block;margin:2em auto 0;padding:1em 2.5em;border:none;border-radius:.5em;background:var(--gradient-success);color:#fff;font-size:1.1em;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:var(--shadow)}.dosifyBtn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.dosifyBtn:active{transform:translateY(0);box-shadow:var(--shadow)}.dosifyBtn:disabled{opacity:.6;cursor:not-allowed;transform:none}@media(max-width:600px){.manualDosingContainer{width:95vw;padding:1em}.productButtons,.timeInputs{flex-direction:column}.timeGroup input{width:100%}}.phEstimateSection{margin:1.5em 0;padding:1em;border-radius:.8em;background-color:var(--bg-secondary);border:1px solid var(--border-color)}.estimateHeader{text-align:center;margin-bottom:1em;color:var(--success-color);font-weight:600;font-size:1em}.phEstimate{display:flex;flex-direction:column;gap:.8em}.estimateRow{display:flex;justify-content:space-between;align-items:center;padding:.5em 0;color:var(--text-secondary)}.estimateRow.final{border-top:1px solid var(--border-color);padding-top:1em;margin-top:.5em;font-weight:600;font-size:1.1em}.currentPh{color:var(--primary-color);font-weight:600}.phChange.positive{color:var(--warning-color);font-weight:600}.phChange.negative{color:var(--primary-color);font-weight:600}.finalPh.valid{color:var(--success-color);font-weight:700;font-size:1.2em}.finalPh.invalid{color:var(--danger-color);font-weight:700;font-size:1.2em}.phEstimate.warning{border-color:var(--danger-color);background-color:var(--bg-secondary)}.warningText{text-align:center;color:var(--danger-color);font-weight:600;font-size:.9em;margin-top:.5em;padding:.5em;background-color:var(--bg-tertiary);border-radius:.5em}.dosing-status-section{margin:1.5em 0}.dosing-status{padding:1.2em;border-radius:.8em;border:2px solid var(--border-color);background:var(--bg-secondary);animation:pulse-dosing 2s infinite}.dosing-status.active{border-color:var(--success-color);background:var(--bg-card)}@keyframes pulse-dosing{0%,to{box-shadow:0 0 #22c55e66}50%{box-shadow:0 0 0 8px #22c55e00}}.status-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1em;color:var(--success-color);font-weight:600;font-size:1.1em}.stop-dosing-btn{padding:.5em 1em;border:2px solid var(--danger-color);border-radius:.5em;background:var(--gradient-danger);color:#fff;font-size:.9em;font-weight:600;cursor:pointer;transition:all .2s;animation:blink-stop 1.5s infinite}@keyframes blink-stop{0%,50%{opacity:1}51%,to{opacity:.7}}.stop-dosing-btn:hover{transform:scale(1.05);box-shadow:var(--shadow-lg)}.status-details{display:flex;flex-direction:column;gap:.8em}.status-row{display:flex;justify-content:space-between;align-items:center;padding:.5em 0;color:var(--text-secondary);border-bottom:1px solid var(--border-color)}.status-row:last-child{border-bottom:none}.esp32-status.connected{color:var(--success-color);font-weight:600}.esp32-connection-status{margin:1.5em 0;padding:1em;border-radius:.6em;background-color:var(--bg-secondary);border:1px solid var(--border-color);text-align:center}.manual-connection-header{display:inline-flex;align-items:center}.manual-submit-wrap{display:flex;align-items:center;justify-content:center;gap:.35rem}.manual-submit-wrap .dosifyBtn{margin:2em 0 0}.connection-indicator{display:block;font-weight:600;font-size:1em;margin-bottom:.5em}.connection-indicator.connected{color:var(--success-color)}.connection-indicator.disconnected{color:var(--danger-color)}.esp32-connection-status small{color:var(--text-muted);font-size:.85em;display:block;margin-top:.5em}@media(max-width:600px){.estimateRow{font-size:.9em}.estimateRow.final{font-size:1em}.finalPh.valid,.finalPh.invalid{font-size:1.1em}.status-header{flex-direction:column;gap:.8em;text-align:center}.stop-dosing-btn{width:100%;padding:.8em}.status-row{font-size:.9em}.esp32-connection-status{padding:.8em}.connection-indicator{font-size:.9em}}.automatic-dosing-container{width:min(560px,100%);margin:0 auto;padding:1rem;border-radius:16px;border:1px solid var(--border-color);background:var(--bg-card);box-shadow:var(--shadow)}.automatic-dosing-container h3{margin:0 0 .8rem;font-size:1.02rem}.auto-title-with-info{display:inline-flex;align-items:center}.auto-status{padding:.9rem;border-radius:12px;border:1px solid var(--border-color);background:#0f172a40}.auto-status.ok{border-color:#14b8a673}.auto-status.alert,.auto-status.waiting{border-color:#f59e0b7a}.auto-status.dosing{border-color:#2dd4bf94;box-shadow:0 0 0 1px #14b8a624 inset}.auto-status.error{border-color:#f43f5e73}.auto-status.connecting{border-color:#94a3b873}.status-head{display:flex;gap:.7rem;align-items:flex-start;margin-bottom:.8rem}.status-icon{font-size:.76rem;line-height:1;font-weight:800;letter-spacing:.03em;min-width:42px;height:24px;border-radius:999px;border:1px solid var(--border-color);display:inline-flex;align-items:center;justify-content:center;background:var(--bg-secondary)}.status-icon--pulse{animation:autoPulse 1.2s ease-in-out infinite}.dosing-live{margin:0 0 .7rem;border:1px solid rgba(45,212,191,.3);border-radius:10px;background:#14b8a61a;padding:.5rem .6rem;display:flex;align-items:center;gap:.42rem}.dosing-live-dot{width:8px;height:8px;border-radius:999px;background:#2dd4bf;box-shadow:0 0 #2dd4bfa6;animation:dotPulse 1.1s ease-out infinite}.dosing-live-text{font-size:.8rem;font-weight:700;color:var(--text-primary)}.status-title{margin:0;font-size:.98rem;font-weight:700;color:var(--text-primary)}.status-text{margin:.2rem 0 0;color:var(--text-secondary);font-size:.82rem}.status-details{display:grid;gap:.4rem}.detail-row{display:flex;justify-content:space-between;gap:.6rem;font-size:.84rem;color:var(--text-secondary);padding:.35rem 0;border-top:1px solid rgba(148,163,184,.16)}.detail-row .value{font-weight:700;color:var(--text-primary);text-align:right}.detail-row .value.in-range,.detail-row .value.ok{color:#14b8a6}.detail-row .value.out-of-range{color:#fb7185}.detail-row .value.warning{color:#f59e0b}.simple-summary{margin-top:.8rem;padding:.9rem;border-radius:12px;border:1px solid var(--border-color);background:#0284c714}.simple-summary h4{margin:0 0 .7rem;font-size:.92rem;color:var(--text-primary)}.auto-subtitle-with-info{display:inline-flex;align-items:center}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.summary-item{display:flex;flex-direction:column;gap:.2rem;padding:.5rem;border-radius:9px;background:#082f4959}.summary-item .label{color:var(--text-muted);font-size:.72rem}.summary-item .value{color:var(--text-primary);font-size:.82rem;font-weight:700}.auto-help{margin:.75rem 0 0;color:var(--text-muted);font-size:.76rem}[data-theme=light] .auto-status{background:#ffffffe6}[data-theme=light] .simple-summary{background:#0ea5e914}[data-theme=light] .summary-item{background:#ffffffe0;border:1px solid #d6e4ee}@keyframes autoPulse{0%,to{transform:scale(1);box-shadow:0 0 #2dd4bf3d}50%{transform:scale(1.03);box-shadow:0 0 0 5px #2dd4bf14}}@keyframes dotPulse{0%{box-shadow:0 0 #2dd4bf8c}to{box-shadow:0 0 0 8px #2dd4bf00}}@media(max-width:520px){.summary-grid{grid-template-columns:1fr}}.qr-scanner-overlay{position:fixed;inset:0;background-color:#000000bf;display:flex;align-items:center;justify-content:center;z-index:9999;padding:1rem}.qr-scanner-modal{background:#fff;border-radius:12px;max-width:500px;width:100%;box-shadow:0 10px 40px #0000004d;overflow:hidden}.qr-scanner-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #e5e7eb}.qr-scanner-header h3{margin:0;font-size:1.25rem;font-weight:600;color:#111827}.qr-close-btn{background:none;border:none;font-size:1.5rem;color:#6b7280;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s}.qr-close-btn:hover{background-color:#f3f4f6;color:#111827}.qr-scanner-body{padding:1.5rem}#qr-reader{border-radius:8px;overflow:hidden;border:2px solid #e5e7eb}.qr-instructions{text-align:center;color:#6b7280;margin-top:1rem;margin-bottom:0;font-size:.95rem}.qr-error{text-align:center;padding:2rem 1rem}.qr-error p{color:#dc2626;margin-bottom:1.5rem;font-size:1rem}.qr-retry-btn{background-color:#3b82f6;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s}.qr-retry-btn:hover{background-color:#2563eb}.qr-scanner-footer{padding:1rem 1.5rem;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end}.qr-cancel-btn{background-color:#f3f4f6;color:#374151;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.qr-cancel-btn:hover{background-color:#e5e7eb}@media(max-width:640px){.qr-scanner-modal{max-width:100%;margin:0 .5rem}.qr-scanner-header,.qr-scanner-body{padding:1rem}.qr-scanner-footer{padding:.75rem 1rem}}.onboarding-container{min-height:100vh;display:grid;place-items:center;padding:1rem;background:var(--gradient-bg)}.onboarding-card{width:min(680px,100%);background:linear-gradient(155deg,color-mix(in srgb,var(--bg-card) 94%,#0b1b29 6%),var(--bg-card));border:1px solid var(--border-color);border-radius:20px;box-shadow:var(--shadow-lg);padding:1.1rem}.onboarding-header{margin-bottom:.8rem}.onboarding-kicker{display:inline-block;margin-bottom:.35rem;padding:.24rem .62rem;border-radius:999px;border:1px solid rgba(6,182,212,.45);color:var(--primary-light);font-size:.75rem;font-weight:700}.onboarding-header h1{margin-bottom:.22rem;font-size:clamp(1.3rem,2.3vw,1.85rem)}.onboarding-header p{color:var(--text-secondary)}.onboarding-step{border:1px solid color-mix(in srgb,var(--border-color) 88%,transparent);border-radius:16px;padding:.9rem;background:linear-gradient(170deg,rgba(6,182,212,.06),transparent 50%)}.onboarding-step h2{font-size:1.14rem;margin-bottom:.4rem}.onboarding-help{margin-bottom:.6rem;color:var(--text-secondary)}.onboarding-help-small{margin-top:-.5rem;margin-bottom:.6rem;color:var(--text-secondary);font-size:.85rem;font-style:italic}.onboarding-label{display:block;margin-bottom:.3rem;color:var(--text-secondary);font-weight:700;font-size:.92rem}.onboarding-input{width:100%;margin-bottom:.74rem;border-radius:12px;border:1px solid var(--border-color);background:color-mix(in srgb,var(--bg-secondary) 65%,var(--bg-card));color:var(--text-primary);padding:.72rem .8rem;font-size:.96rem}.onboarding-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #06b6d43d}.onboarding-summary{margin:.2rem 0 .74rem;border:1px solid rgba(20,184,166,.4);border-radius:10px;background:#14b8a621;color:var(--success-light);font-size:.9rem;font-weight:700;padding:.55rem .65rem}.onboarding-device-box{border:1px solid color-mix(in srgb,var(--border-color) 86%,transparent);border-radius:12px;background:color-mix(in srgb,var(--bg-secondary) 68%,transparent);padding:1.2rem}.onboarding-device-title{font-size:1.1rem;font-weight:700;color:var(--text-primary);margin:0 0 1rem;text-align:center}.onboarding-device-instructions{text-align:center;margin-bottom:1.2rem}.onboarding-instruction-main{font-size:1rem;font-weight:700;color:var(--text-primary);margin:.5rem 0 .3rem}.onboarding-instruction-detail{font-size:.88rem;color:var(--text-secondary);margin:0 0 1rem;font-style:italic}.onboarding-qr-btn-large{width:100%;padding:1rem 1.5rem;background:var(--gradient-primary);color:#fff;border:none;border-radius:12px;font-size:1.05rem;font-weight:700;cursor:pointer;transition:all .2s;margin-bottom:1rem;display:flex;align-items:center;justify-content:center;gap:.5rem}.onboarding-qr-btn-large:hover{transform:translateY(-2px);box-shadow:0 6px 16px #06b6d459}.onboarding-qr-btn-large:active{transform:translateY(0)}.onboarding-scanned-id{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;background:#14b8a621;border:1px solid rgba(20,184,166,.4);border-radius:10px;color:var(--success-light);font-weight:700;font-size:.95rem;margin-bottom:1rem;animation:slideDown .3s ease-out}.onboarding-scanned-id svg{flex-shrink:0}.onboarding-manual-btn{width:100%;padding:.75rem 1rem;background:transparent;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:12px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.onboarding-manual-btn:hover{background:color-mix(in srgb,var(--bg-secondary) 50%,transparent);color:var(--text-primary);border-color:var(--primary-color)}.onboarding-manual-input-section{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color);animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.onboarding-divider{display:flex;align-items:center;text-align:center;margin:1.5rem 0}.onboarding-divider:before,.onboarding-divider:after{content:"";flex:1;border-bottom:1px solid var(--border-color)}.onboarding-divider span{padding:0 1rem;color:var(--text-secondary);font-weight:700;font-size:.9rem}.onboarding-skip-link{margin-top:.18rem;border:0;background:transparent;color:var(--text-secondary);font-weight:700;font-size:.88rem;text-decoration:underline;text-underline-offset:3px;padding:.15rem 0}.onboarding-footer{margin-top:.85rem;padding-top:.8rem;border-top:1px solid color-mix(in srgb,var(--border-color) 86%,transparent);display:flex;align-items:center;justify-content:space-between;gap:.8rem}.onboarding-dots{display:flex;gap:.34rem}.onboarding-dot{width:9px;height:9px;border-radius:999px;background:color-mix(in srgb,var(--text-muted) 45%,transparent);transition:width .22s ease,background-color .22s ease}.onboarding-dot.active{width:21px;background:var(--primary-color)}.onboarding-actions{display:flex;gap:.5rem}.onboarding-btn{border-radius:12px;border:1px solid var(--border-color);padding:.66rem .95rem;font-weight:800;font-size:.9rem}.onboarding-btn.primary{color:#f8fafc;border-color:transparent;background:var(--gradient-primary)}.onboarding-btn.secondary{color:var(--text-primary);background:color-mix(in srgb,var(--bg-secondary) 74%,transparent)}.onboarding-btn:disabled{opacity:.55}@media(max-width:640px){.onboarding-card{border-radius:16px;padding:.85rem}.onboarding-footer{flex-direction:column;align-items:stretch}.onboarding-actions{width:100%}.onboarding-btn{flex:1}}.wifi-config-overlay{position:fixed;inset:0;background-color:#000c;display:flex;justify-content:center;align-items:center;z-index:1100;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.wifi-config-modal{background-color:#1e1232;border:1px solid rgba(127,255,212,.3);border-radius:1em;box-shadow:0 8px 32px #0009;width:min(600px,95vw);max-height:90vh;overflow-y:auto;animation:slideInUp .4s ease}@keyframes slideInUp{0%{opacity:0;transform:translateY(50px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.wifi-config-header{display:flex;justify-content:space-between;align-items:center;padding:1.5em;border-bottom:1px solid rgba(127,255,212,.2);background:linear-gradient(135deg,#22c55e1a,#7fffd40d)}.wifi-config-header h2{margin:0;color:#22c55e;font-size:1.4em;font-weight:600}.close-btn{background:none;border:none;color:#22c55e;font-size:1.8em;cursor:pointer;padding:0;width:2em;height:2em;display:flex;align-items:center;justify-content:center;border-radius:.5em;transition:all .2s}.close-btn:hover{background-color:#22c55e1a;transform:scale(1.1)}.wifi-config-content{padding:1.5em}.error-message{background-color:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:.6em;padding:1em;margin-bottom:1.5em;color:#fca5a5;font-size:.9em}.connection-info{background-color:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:.6em;padding:1.2em;margin-bottom:1.5em}.connection-info p{margin:0 0 .8em;color:#93c5fd;font-weight:600}.connection-info ol{margin:0;padding-left:1.2em;color:#ffffffe6}.connection-info li{margin-bottom:.4em;line-height:1.4}.scan-section{margin-bottom:1.5em}.scan-btn{width:100%;padding:.8em 1.2em;border:none;border-radius:.6em;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;font-size:1em;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #3b82f64d}.scan-btn:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 4px 12px #3b82f666;transform:translateY(-1px)}.scan-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.networks-list{margin-bottom:1.5em}.networks-list h3{margin:0 0 1em;color:#22c55e;font-size:1.1em}.network-option{display:flex;align-items:center;gap:.8em;padding:.8em;margin-bottom:.5em;border:1px solid rgba(255,255,255,.1);border-radius:.5em;cursor:pointer;transition:all .2s;background-color:#ffffff05}.network-option:hover{border-color:#22c55e66;background-color:#22c55e0d}.network-option input[type=radio]{margin:0;accent-color:#22c55e}.network-name{color:#f5f5f5;font-size:.95em}.custom-network{margin-bottom:1.5em}.custom-ssid-input{width:100%;padding:.7em;margin-top:.5em;border:1px solid rgba(255,255,255,.3);border-radius:.5em;background-color:#7fffd41a;color:#f5f5f5;font-size:.95em}.custom-ssid-input:focus{outline:none;border-color:#22c55e;background-color:#22c55e26}.password-section{margin-bottom:1.5em}.password-section label{display:block;margin-bottom:.5em;color:#f5f5f5;font-weight:500}.password-input{width:100%;padding:.8em;border:1px solid rgba(255,255,255,.3);border-radius:.5em;background-color:#7fffd41a;color:#f5f5f5;font-size:.95em}.password-input:focus{outline:none;border-color:#22c55e;background-color:#22c55e26}.config-actions{margin-bottom:1.5em}.configure-btn{width:100%;padding:1em 1.2em;border:none;border-radius:.6em;background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;font-size:1.1em;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 3px 10px #22c55e4d}.configure-btn:hover:not(:disabled){background:linear-gradient(135deg,#16a34a,#15803d);box-shadow:0 5px 15px #22c55e66;transform:translateY(-2px)}.configure-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.connecting-message{text-align:center;padding:1.5em;background-color:#22c55e1a;border:1px solid rgba(34,197,94,.3);border-radius:.6em;color:#22c55e}.connecting-message p{margin:.5em 0;line-height:1.4}@media(max-width:768px){.wifi-config-modal{width:95vw;margin:1em}.wifi-config-header,.wifi-config-content{padding:1em}.wifi-config-header h2{font-size:1.2em}}.admin-panel-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:9999;padding:1rem;animation:fadeIn .3s ease}.admin-panel{background:var(--bg-card);border-radius:1.5rem;width:100%;max-width:900px;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow-xl);border:1px solid var(--border-color);animation:scaleIn .3s ease}.admin-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 2rem;border-bottom:1px solid var(--border-color);background:var(--bg-secondary);border-radius:1.5rem 1.5rem 0 0}.admin-header h2{margin:0;color:var(--text-primary);font-size:1.5rem}.admin-close-btn{background:var(--bg-card);border:1px solid var(--border-color);border-radius:.5rem;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;color:var(--text-primary);font-size:1.5rem;cursor:pointer;transition:all .2s ease}.admin-close-btn:hover{background:var(--danger-color);color:#fff;transform:rotate(90deg)}.admin-content{flex:1;overflow-y:auto;padding:2rem}.admin-section{background:var(--bg-secondary);border-radius:1rem;padding:1.5rem;margin-bottom:1.5rem;border:1px solid var(--border-color)}.admin-section h3{margin:0 0 1.5rem;color:var(--text-primary);font-size:1.2rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-color)}.safety-warning{background:#f59e0b1a;border:1px solid var(--warning-color);border-radius:.5rem;padding:1rem;margin-bottom:1.5rem;color:var(--text-primary);font-size:.9rem;line-height:1.5}.safety-warning strong{color:var(--warning-color);display:block;margin-bottom:.5rem}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.admin-field{display:flex;flex-direction:column;gap:.5rem}.admin-field label{color:var(--text-secondary);font-size:.9rem;font-weight:500}.admin-field input{background:var(--bg-card);border:1px solid var(--border-color);border-radius:.5rem;padding:.75rem;color:var(--text-primary);font-size:1rem;transition:all .2s ease}.admin-field input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #6366f11a}.field-unit{color:var(--text-muted);font-size:.85rem;margin-top:-.25rem}.field-help{color:var(--text-muted);font-size:.75rem;font-style:italic;margin-top:.25rem;line-height:1.4}.quick-buttons{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.quick-btn{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:.375rem;padding:.375rem .75rem;font-size:.75rem;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.quick-btn:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color);transform:translateY(-1px)}.backend-status{display:flex;flex-direction:column;gap:1rem}.status-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:var(--bg-card);border-radius:.5rem;border:1px solid var(--border-color)}.status-label{color:var(--text-secondary);font-weight:500}.status-value{color:var(--text-primary);font-weight:600}.status-value.error{color:var(--danger-color)}.status-value.status-active{color:var(--success-color);font-weight:600}.status-value.status-inactive{color:var(--text-muted)}.realtime-logs{background:var(--bg-card);border:1px solid var(--border-color);border-radius:.5rem;padding:1rem;max-height:400px;overflow-y:auto;font-family:Courier New,monospace;font-size:.85rem}.no-logs{text-align:center;color:var(--text-muted);padding:2rem}.log-entry{padding:.75rem;margin-bottom:.5rem;border-radius:.375rem;border-left:3px solid;display:flex;flex-direction:column;gap:.5rem}.log-info{background:#6366f11a;border-left-color:var(--primary-color)}.log-success{background:#10b9811a;border-left-color:var(--success-color)}.log-warning{background:#f59e0b1a;border-left-color:var(--warning-color)}.log-error{background:#f43f5e1a;border-left-color:var(--danger-color)}.log-time{color:var(--text-muted);font-size:.75rem}.log-message{color:var(--text-primary)}.log-data{background:var(--bg-tertiary);padding:.5rem;border-radius:.25rem;color:var(--text-secondary);font-size:.75rem;overflow-x:auto;margin:0}.admin-users-list{display:flex;flex-direction:column;gap:.75rem}.admin-user-item{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem;border:1px solid var(--border-color);border-radius:.5rem;background:var(--bg-card)}.admin-user-meta{display:flex;flex-direction:column;gap:.2rem;min-width:0}.admin-user-meta strong,.admin-user-meta span,.admin-user-meta small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-user-meta span{color:var(--text-secondary)}.admin-user-meta small{color:var(--text-muted)}.admin-badge,.disabled-badge{display:inline-block;padding:.2rem .5rem;border-radius:.25rem;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.admin-badge{background:#6366f133;color:var(--primary-color);border:1px solid var(--primary-color)}.disabled-badge{background:#f43f5e33;color:var(--danger-color);border:1px solid var(--danger-color)}.admin-user-delete{background:var(--danger-color);color:#fff;border:none;border-radius:.5rem;padding:.55rem .85rem;cursor:pointer;font-weight:600;min-width:110px}.admin-user-delete:disabled{opacity:.7;cursor:default}.admin-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1rem}.admin-btn{flex:1;min-width:200px;padding:1rem 1.5rem;border:none;border-radius:.75rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem}.admin-btn.btn-primary{background:var(--primary-color);color:#fff}.admin-btn.btn-primary:hover{background:var(--primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.admin-btn.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.admin-btn.btn-secondary:hover{background:var(--bg-card-hover);transform:translateY(-2px)}.admin-btn.btn-danger{background:var(--danger-color);color:#fff}.admin-btn.btn-danger:hover{background:var(--danger-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg)}@media(max-width:768px){.admin-panel{max-height:95vh;border-radius:1rem}.admin-header{padding:1rem 1.5rem}.admin-header h2{font-size:1.25rem}.admin-content,.admin-section{padding:1rem}.admin-grid{grid-template-columns:1fr}.admin-actions{flex-direction:column}.admin-btn{min-width:100%}.admin-user-item{flex-direction:column;align-items:stretch}.admin-user-delete{width:100%}}@media(max-width:480px){.admin-panel-overlay{padding:.5rem}.admin-panel{border-radius:.75rem}.admin-header{padding:.75rem 1rem}.admin-header h2{font-size:1.1rem}.admin-content{padding:.75rem}.admin-section{padding:.75rem;margin-bottom:1rem}.realtime-logs{max-height:300px;font-size:.75rem}}.wifi-qr-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.wifi-qr-modal{background:#fff;border-radius:20px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.wifi-qr-header{display:flex;justify-content:space-between;align-items:center;padding:25px 30px;border-bottom:2px solid #e2e8f0;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:20px 20px 0 0}.wifi-qr-header h2{margin:0;font-size:24px}.wifi-qr-header .close-btn{background:#fff3;border:none;color:#fff;font-size:28px;width:40px;height:40px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.wifi-qr-header .close-btn:hover{background:#ffffff4d;transform:rotate(90deg)}.wifi-qr-content{padding:30px}.qr-info-box{background:#f0f9ff;border:2px solid #bae6fd;border-radius:12px;padding:20px;margin-bottom:25px}.qr-info-box p{margin:0 0 10px;font-weight:600;color:#0c4a6e}.qr-info-box ol{margin:10px 0 0 20px;color:#0369a1}.qr-info-box li{margin:5px 0}.qr-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-weight:600;color:#2d3748;font-size:14px}.qr-input{padding:12px 16px;border:2px solid #e2e8f0;border-radius:10px;font-size:16px;transition:all .3s ease}.qr-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.password-input-container{position:relative;display:flex;align-items:center}.password-input-container .qr-input{flex:1;padding-right:50px}.toggle-password-btn{position:absolute;right:12px;background:none;border:none;font-size:20px;cursor:pointer;padding:5px;transition:transform .2s ease}.toggle-password-btn:hover{transform:scale(1.1)}.help-text{color:#718096;font-size:13px;margin-top:4px}.generate-qr-btn{padding:14px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;margin-top:10px}.generate-qr-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 20px #667eea4d}.generate-qr-btn:disabled{background:#cbd5e1;cursor:not-allowed}.qr-success-box{background:#d1fae5;border:2px solid #6ee7b7;border-radius:12px;padding:15px;margin-bottom:20px;text-align:center}.qr-success-box p{margin:0;color:#065f46;font-weight:600}.qr-code-display{display:flex;justify-content:center;align-items:center;padding:30px;background:#fff;border:3px dashed #cbd5e1;border-radius:15px;margin-bottom:25px}.qr-data-summary{background:#f7fafc;border-radius:12px;padding:20px;margin-bottom:20px}.qr-data-summary h4{margin:0 0 15px;color:#2d3748;font-size:16px}.data-item{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #e2e8f0}.data-item:last-child{border-bottom:none}.data-label{color:#718096;font-weight:500}.data-value{color:#2d3748;font-weight:600;font-family:monospace}.qr-instructions{background:#fef3c7;border:2px solid #fcd34d;border-radius:12px;padding:20px;margin-bottom:20px}.qr-instructions h4{margin:0 0 10px;color:#78350f}.qr-instructions ol{margin:10px 0 0 20px;color:#92400e}.qr-instructions li{margin:8px 0}.qr-actions{display:flex;gap:10px;flex-wrap:wrap}.qr-actions button{flex:1;min-width:150px;padding:12px 20px;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease}.download-qr-btn{background:#10b981;color:#fff}.download-qr-btn:hover{background:#059669;transform:translateY(-2px)}.print-qr-btn{background:#3b82f6;color:#fff}.print-qr-btn:hover{background:#2563eb;transform:translateY(-2px)}.new-qr-btn{background:#6b7280;color:#fff}.new-qr-btn:hover{background:#4b5563;transform:translateY(-2px)}.wifi-qr-footer{padding:20px 30px;border-top:2px solid #e2e8f0;background:#f7fafc;border-radius:0 0 20px 20px}.security-note{margin:0;text-align:center;color:#718096;font-size:13px}@media print{.wifi-qr-overlay{background:#fff}.wifi-qr-modal{box-shadow:none;max-height:none}.wifi-qr-header,.qr-actions,.wifi-qr-footer{display:none}.qr-code-display{border:2px solid #000}}@media(max-width:640px){.wifi-qr-modal{max-width:100%;margin:0;border-radius:0;max-height:100vh}.wifi-qr-header{border-radius:0}.wifi-qr-content{padding:20px}.qr-actions{flex-direction:column}.qr-actions button{width:100%}}.device-registration{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000001a;max-width:600px;margin:2rem auto}.registration-header{text-align:center;margin-bottom:2rem}.registration-header h3{color:#2d3748;margin-bottom:.5rem;font-size:1.5rem}.registration-header p{color:#718096;font-size:.95rem}.registration-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:600;color:#2d3748;font-size:.95rem}.form-group input{padding:.75rem;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;transition:border-color .2s}.form-group input:focus{outline:none;border-color:#4299e1}.form-group input:disabled{background:#f7fafc;cursor:not-allowed}.device-id-input{font-family:Courier New,monospace;font-weight:600;letter-spacing:1px}.help-text{color:#718096;font-size:.85rem;display:flex;align-items:center;gap:.25rem}.register-btn{padding:1rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.register-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.register-btn:disabled{opacity:.6;cursor:not-allowed}.message{padding:1rem;border-radius:8px;margin-top:1rem;font-weight:500}.message.success{background:#c6f6d5;color:#22543d;border:1px solid #9ae6b4}.message.error{background:#fed7d7;color:#742a2a;border:1px solid #fc8181}.message.info{background:#bee3f8;color:#2c5282;border:1px solid #90cdf4}.registered-devices{margin-bottom:1.5rem}.registered-devices h4{color:#2d3748;margin-bottom:1rem;font-size:1.1rem}.device-card{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:#f7fafc;border:2px solid #e2e8f0;border-radius:8px;margin-bottom:.5rem}.device-info{display:flex;align-items:center;gap:1rem}.device-icon{font-size:2rem}.device-info div{display:flex;flex-direction:column}.device-info strong{color:#2d3748;font-size:1rem}.device-info small{color:#718096;font-size:.85rem;font-family:Courier New,monospace}.device-actions{display:flex;align-items:center;gap:1rem}.device-status{color:#38a169;font-weight:600;font-size:.9rem}.delete-btn{background:#fed7d7;color:#c53030;border:1px solid #fc8181;border-radius:6px;padding:.5rem .75rem;font-size:1.2rem;cursor:pointer;transition:all .2s}.delete-btn:hover{background:#fc8181;color:#fff;transform:scale(1.1)}.wifi-reset-section{margin-top:1rem;padding:.9rem;border:1px solid #fbd38d;border-radius:8px;background:#fffaf0;display:flex;flex-direction:column;gap:.45rem}.wifi-reset-btn{border:1px solid #dd6b20;background:#ed8936;color:#fff;border-radius:8px;padding:.7rem .9rem;font-size:.95rem;font-weight:700;cursor:pointer}.wifi-reset-btn:hover:not(:disabled){background:#dd6b20}.wifi-reset-btn:disabled{opacity:.65;cursor:not-allowed}.wifi-reset-section small{color:#744210;font-size:.82rem;line-height:1.4}.registration-help{margin-top:2rem;padding:1.5rem;background:#edf2f7;border-radius:8px}.registration-help h4{color:#2d3748;margin-bottom:1rem;font-size:1rem}.registration-help ol{margin-left:1.5rem;color:#4a5568}.registration-help li{margin-bottom:.5rem;line-height:1.6}@media(max-width:640px){.device-registration{padding:1.5rem;margin:1rem}.registration-header h3{font-size:1.25rem}.device-card{flex-direction:column;align-items:flex-start;gap:.75rem}}.qr-config-section{margin-top:1.5rem;padding:1.5rem;background:linear-gradient(135deg,#667eea15,#764ba215);border:2px solid #667eea;border-radius:12px;text-align:center}.qr-config-btn{width:100%;padding:1rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;margin-bottom:.75rem}.qr-config-btn:hover{transform:translateY(-2px);box-shadow:0 10px 20px #667eea4d}.qr-config-section small{display:block;color:#4a5568;font-size:.85rem;line-height:1.4}.scheduled-dosing-container{padding:1rem;background:var(--card-bg);border-radius:12px;margin-bottom:1.5rem}.scheduled-header-with-info{margin-bottom:1rem}.no-schedules{text-align:center;padding:2rem;color:var(--text-secondary)}.no-schedules p{margin:.5rem 0}.no-schedules-hint{font-size:.9rem;font-style:italic;color:var(--text-tertiary);max-width:500px;margin:1rem auto 0}.scheduled-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.schedule-item{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:1rem;transition:all .2s ease}.schedule-item.disabled{opacity:.6;background:var(--bg-tertiary)}.schedule-item.inactive{opacity:.55;background:var(--bg-tertiary)}.schedule-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.schedule-radio{display:inline-flex;align-items:center;margin-right:.75rem;cursor:pointer}.schedule-radio input{position:absolute;opacity:0;pointer-events:none}.schedule-radio .radio-bullet{width:16px;height:16px;border-radius:999px;border:2px solid var(--primary-color);display:inline-flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 2px transparent;transition:all .2s ease}.schedule-radio input:checked+.radio-bullet{box-shadow:inset 0 0 0 6px var(--primary-color)}.schedule-info h4{margin:0 0 .25rem;font-size:1rem;color:var(--text-primary)}.schedule-time-range{margin:0;font-size:1.3rem;font-weight:700;color:var(--primary-color);font-family:Courier New,monospace}.schedule-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:nowrap;flex-shrink:0}.schedule-actions button{width:32px;height:32px;border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:all .2s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0}.schedule-actions .action-icon{width:18px;height:18px;display:block}.toggle-btn{background:var(--success-color);color:#fff}.schedule-item.disabled .toggle-btn{background:var(--text-tertiary)}.edit-btn{background:var(--info-color);color:#fff;width:auto;padding:0 12px;font-size:.8rem;font-weight:700;line-height:1}.delete-btn{background:var(--danger-color);color:#fff}.schedule-actions button:hover{transform:scale(1.1);box-shadow:0 2px 8px #0003}.schedule-details{display:flex;flex-wrap:wrap;gap:1rem;font-size:.9rem;color:var(--text-secondary)}.detail-item{display:flex;gap:.25rem}.detail-item strong{color:var(--text-primary)}.schedule-form{background:var(--bg-secondary);border:2px solid var(--primary-color);border-radius:8px;padding:1.5rem;margin-bottom:1rem}.schedule-form h4{margin:0 0 1rem;color:var(--text-primary)}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:var(--text-primary);font-size:.9rem}.form-group input,.form-group select{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:6px;background:var(--input-bg);color:var(--text-primary);font-size:1rem}.form-group input[type=time]{-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-group input[type=time]::-webkit-datetime-edit-ampm-field{display:none}.form-group input[type=time]::-webkit-calendar-picker-indicator{filter:invert(var(--icon-invert, 0))}[data-theme=light] .form-group input[type=time]::-webkit-calendar-picker-indicator{filter:invert(0)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.1)}.days-selector{display:flex;gap:.5rem;flex-wrap:wrap}.day-btn{padding:.5rem 1rem;border:2px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;font-weight:600;transition:all .2s ease}.day-btn.selected{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.day-btn:hover{transform:translateY(-2px);box-shadow:0 2px 8px #0000001a}.form-actions{display:flex;gap:1rem;margin-top:1.5rem}.form-actions button{flex:1;padding:.75rem;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-cancel{background:var(--bg-tertiary);color:var(--text-primary)}.btn-cancel:hover{background:var(--text-tertiary)}.btn-save{background:var(--primary-color);color:#fff}.btn-save:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(var(--primary-rgb),.3)}.btn-save:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-add-schedule{width:100%;padding:1rem;border:2px dashed var(--border-color);border-radius:8px;background:transparent;color:var(--primary-color);font-weight:600;cursor:pointer;transition:all .2s ease}.btn-add-schedule:hover{border-color:var(--primary-color);background:rgba(var(--primary-rgb),.05);transform:translateY(-2px)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.time-format-info{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:rgba(var(--primary-rgb),.1);border:1px solid rgba(var(--primary-rgb),.3);border-radius:6px;margin-top:.75rem;margin-bottom:.5rem}.time-format-info .info-icon-circle{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--primary-color);color:#fff;font-size:.75rem;font-weight:700;font-style:italic;flex-shrink:0}.time-format-info .info-text{font-size:.85rem;color:var(--text-primary);line-height:1.4}[data-theme=light] .time-format-info{background:#0891b214;border-color:#0891b24d}[data-theme=light] .time-format-info .info-icon-circle{background:#0891b2}.form-error{background:#ff00001a;border:1px solid rgba(255,0,0,.3);border-radius:6px;padding:.75rem;margin:.5rem 0;color:var(--danger-color);font-size:.9rem}.schedule-info-box{background:rgba(var(--primary-rgb),.1);border:1px solid rgba(var(--primary-rgb),.3);border-radius:8px;padding:1rem;margin-top:1rem}.info-text{margin:0;font-size:.9rem;color:var(--text-primary);line-height:1.5}.info-text strong{color:var(--primary-color)}.settings-page{width:100%;min-height:100vh;background:var(--bg-primary);display:flex;flex-direction:column}.settings-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);padding:1.5rem 1rem;display:flex;align-items:center;gap:1rem;position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.settings-back-btn{background:var(--bg-card);border:1px solid var(--border-color);border-radius:.75rem;padding:.75rem;color:var(--text-primary);display:flex;align-items:center;justify-content:center;transition:all .2s ease;cursor:pointer}.settings-back-btn:hover{background:var(--bg-card-hover);transform:translateY(-1px);box-shadow:var(--shadow)}.settings-title{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin:0;display:inline-flex;align-items:center;gap:.55rem}.ui-icon{display:block}.title-icon{width:1.2rem;height:1.2rem;color:var(--text-secondary)}.settings-heading{display:inline-flex;align-items:center;gap:.55rem}.heading-icon{width:1.05rem;height:1.05rem;color:var(--text-secondary)}.settings-content{flex:1;padding:2rem 1rem;max-width:600px;margin:0 auto;width:100%}.settings-section{background:var(--bg-card);border-radius:1.5rem;padding:2rem;margin-bottom:2rem;border:1px solid var(--border-color);box-shadow:var(--shadow);transition:all .3s ease}.settings-section:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.settings-section h3{margin:0 0 1.5rem;color:var(--text-primary);font-size:1.25rem;font-weight:600}.setting-item{margin-bottom:1.5rem}.setting-item:last-child{margin-bottom:0}.setting-label{display:block;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.setting-description{display:block;font-size:.875rem;font-weight:400;color:var(--text-muted);margin-top:.25rem}.setting-control{display:flex;align-items:center;gap:.75rem}.setting-input{flex:1;padding:.875rem 1rem;border:2px solid var(--border-color);border-radius:.75rem;background:var(--bg-secondary);color:var(--text-primary);font-size:1rem;font-weight:500;transition:all .2s ease}.setting-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #6366f11a}.setting-unit{font-weight:600;color:var(--text-secondary);min-width:40px}.ph-preview{background:var(--bg-secondary);border-radius:1rem;padding:1rem;margin-top:1rem}.ph-range{display:flex;justify-content:space-between;align-items:center}.range-label{font-weight:500;color:var(--text-secondary)}.range-value{font-weight:600;color:var(--success-color);font-size:1.1rem}.dosing-modes{display:flex;flex-direction:column;gap:1rem}.dosing-mode-btn{display:flex;align-items:center;gap:1rem;padding:1.5rem;border:2px solid var(--border-color);border-radius:1rem;background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;transition:all .3s ease;text-align:left}.dosing-mode-btn:hover{border-color:var(--primary-color);transform:translateY(-2px);box-shadow:var(--shadow)}.dosing-mode-btn.active{border-color:var(--primary-color);background:linear-gradient(135deg,var(--bg-secondary) 0%,rgba(99,102,241,.1) 100%);box-shadow:var(--shadow)}.mode-icon{width:3rem;min-width:3rem;display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary)}.mode-info{flex:1}.mode-title{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.mode-desc{font-size:.9rem;color:var(--text-muted)}.esp32-config-btn{display:flex;align-items:center;gap:1rem;padding:1.5rem;border:2px solid var(--border-color);border-radius:1rem;background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;transition:all .3s ease;text-align:left;width:100%}.esp32-config-btn:hover{border-color:var(--primary-color);transform:translateY(-2px);box-shadow:var(--shadow)}.config-icon{width:3rem;min-width:3rem;display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary)}.config-info{flex:1}.config-title{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.config-desc{font-size:.9rem;color:var(--text-muted)}.config-arrow{color:var(--text-muted)}.system-info{display:flex;flex-direction:column;gap:1rem}.info-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--border-color)}.info-label{font-weight:500;color:var(--text-secondary)}.system-info .info-value,.account-info-list .info-value{font-weight:600;color:var(--text-primary)!important;background:#ffffff0d!important;padding:.35rem .75rem!important;border-radius:.5rem!important;border:1px solid rgba(255,255,255,.1)!important;display:inline-block}[data-theme=light] .system-info .info-value,[data-theme=light] .account-info-list .info-value{background:#0000000d!important;border-color:#0000001a!important;color:var(--text-primary)!important}.info-value{font-weight:600;color:var(--text-primary);background:transparent!important;padding:.25rem .5rem;border-radius:.375rem}.info-value-with-icon{display:inline-flex;align-items:center;gap:.35rem;background:transparent!important}.status-icon{flex-shrink:0}.status-online{color:var(--success-color)}.status-offline{color:var(--danger-color)}.action-buttons{display:flex;flex-direction:column;gap:1rem}.action-btn{display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;border:2px solid var(--border-color);border-radius:.75rem;background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;transition:all .3s ease;font-weight:500}.action-icon{width:1.1rem;height:1.1rem;display:inline-flex;align-items:center;justify-content:center}.action-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.action-btn.btn-danger{border-color:var(--danger-color);color:var(--danger-color)}.action-btn.btn-danger:hover{background:#f43f5e1a}.action-btn:disabled{opacity:.65;cursor:not-allowed;transform:none;box-shadow:none}.tutorial-btn{margin-top:1rem;width:100%;justify-content:center;border-color:var(--primary-color);color:var(--primary-color)}.tutorial-btn:hover{background:rgba(var(--primary-rgb),.1);border-color:var(--primary-color)}.account-settings-section{border-color:#f43f5e59}.account-info-list .info-item{align-items:flex-start;gap:1rem}.account-info-list .info-value{text-align:right;word-break:break-word}.account-warning-text{margin:1rem 0 1.25rem;padding:.9rem 1rem;border-radius:.8rem;border:1px solid rgba(244,63,94,.35);background:#f43f5e14;color:var(--text-secondary);line-height:1.4}.delete-account-btn{width:100%;justify-content:center;font-weight:700}.wifi-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.wifi-modal-content{background:var(--bg-card);border-radius:1.5rem;border:1px solid var(--border-color);box-shadow:var(--shadow-xl);max-width:500px;width:100%;max-height:80vh;overflow-y:auto}.wifi-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--border-color)}.wifi-modal-header h3{margin:0;color:var(--text-primary);font-size:1.25rem}.wifi-modal-close{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:.5rem;padding:.5rem;color:var(--text-primary);cursor:pointer;transition:all .2s ease}.wifi-modal-close:hover{background:var(--bg-card-hover)}.tracking-modal-content{max-width:680px}.tracking-modal-body{padding:1rem 1.2rem 1.3rem;display:flex;flex-direction:column;gap:1rem}.tracking-intro{margin:0;color:var(--text-secondary);line-height:1.45}.tracking-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.tracking-summary-item{border:1px solid var(--border-color);border-radius:.75rem;background:var(--bg-secondary);padding:.7rem .75rem}.tracking-summary-item small{display:block;color:var(--text-muted);font-size:.76rem;margin-bottom:.2rem}.tracking-summary-item strong{color:var(--text-primary);font-size:.9rem;line-height:1.35}.tracking-section{border:1px solid var(--border-color);border-radius:.9rem;padding:.8rem;background:var(--bg-secondary)}.tracking-section h4{margin:0 0 .7rem;color:var(--text-primary);font-size:.98rem}.tracking-section p{margin:0;color:var(--text-secondary)}.tracking-section ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.5rem}.tracking-section li{display:grid;grid-template-columns:minmax(64px,auto) 1fr auto;gap:.6rem;align-items:center;border-radius:.65rem;border:1px solid var(--border-color);background:var(--bg-card);padding:.55rem .6rem;color:var(--text-secondary);font-size:.86rem}.tracking-section li strong{color:var(--text-primary);font-size:.88rem}@media(max-width:768px){.settings-header{padding:1.25rem .75rem}.settings-title{font-size:1.35rem}.settings-content{padding:1.5rem .75rem}.settings-section{padding:1.5rem;margin-bottom:1.5rem}.dosing-mode-btn,.esp32-config-btn{padding:1.25rem}.mode-icon,.config-icon{min-width:2.5rem;width:2.5rem}.tracking-summary-grid{grid-template-columns:1fr}}@media(max-width:480px){.settings-header{padding:1rem .5rem}.settings-title{font-size:1.2rem}.settings-content{padding:1rem .5rem}.settings-section{padding:1.25rem;margin-bottom:1.25rem;border-radius:1.25rem}.dosing-modes{gap:.75rem}.dosing-mode-btn,.esp32-config-btn{padding:1rem;gap:.75rem}.mode-icon,.config-icon{min-width:2rem;width:2rem}.mode-title,.config-title{font-size:1rem}.action-buttons{gap:.75rem}.action-btn{padding:.875rem 1.25rem}}.setting-control-slider{display:flex;flex-direction:column;gap:15px}.slider-container{position:relative;width:100%}.ph-slider{width:100%;height:8px;border-radius:4px;background:linear-gradient(to right,#f44,#f84 20%,#fd4,#4f4,#4df,#48f 80%,#84f);outline:none;-webkit-appearance:none;cursor:pointer}.ph-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;border-radius:50%;background:#fff;border:3px solid var(--accent-color);cursor:pointer;box-shadow:0 2px 8px #0003;transition:all .2s ease}.ph-slider::-webkit-slider-thumb:hover{transform:scale(1.1);box-shadow:0 4px 12px #0000004d}.ph-slider::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:#fff;border:3px solid var(--accent-color);cursor:pointer;box-shadow:0 2px 8px #0003}.tolerance-slider{width:100%;height:8px;border-radius:4px;background:linear-gradient(to right,#4caf50,#ffc107,#ff5722);outline:none;-webkit-appearance:none;cursor:pointer}.tolerance-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;border-radius:50%;background:#fff;border:3px solid var(--accent-color);cursor:pointer;box-shadow:0 2px 8px #0003;transition:all .2s ease}.tolerance-slider::-webkit-slider-thumb:hover{transform:scale(1.1);box-shadow:0 4px 12px #0000004d}.tolerance-slider::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:#fff;border:3px solid var(--accent-color);cursor:pointer;box-shadow:0 2px 8px #0003}.slider-track{margin-top:8px}.slider-zones{display:flex;justify-content:space-between;font-size:.8em;color:var(--text-secondary)}.zone{font-weight:500}.zone.acidic{color:var(--danger-color)}.zone.neutral{color:var(--success-color)}.zone.basic{color:var(--primary-color)}.slider-labels{display:flex;justify-content:space-between;margin-top:8px;font-size:.8em;color:var(--text-secondary)}.slider-value{display:flex;align-items:center;gap:8px;justify-content:center}.setting-input-small{width:80px;padding:8px 12px;border:2px solid var(--border-color);border-radius:8px;background:var(--input-bg);color:var(--text-color);font-size:1em;text-align:center;transition:all .2s ease}.setting-input-small:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 0 3px #4299e11a}@media(max-width:480px){.setting-control-slider{gap:12px}.slider-zones,.slider-labels{font-size:.7em}.setting-input-small{width:70px;padding:6px 8px;font-size:.9em}.ph-slider::-webkit-slider-thumb,.tolerance-slider::-webkit-slider-thumb{width:20px;height:20px}}.theme-toggle-btn{width:100%;padding:1rem 1.5rem;font-size:1rem;font-weight:600;border:none;border-radius:1rem;background:var(--gradient-primary);color:#fff;cursor:pointer;transition:all .3s ease;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.75rem}.btn-icon{width:1rem;height:1rem}.theme-toggle-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.theme-toggle-btn:active{transform:translateY(0)}.admin-login-modal{background:var(--bg-card);border-radius:1.5rem;width:100%;max-width:400px;box-shadow:var(--shadow-xl);border:1px solid var(--border-color);animation:scaleIn .3s ease}.admin-login-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--border-color);background:var(--bg-secondary);border-radius:1.5rem 1.5rem 0 0}.admin-login-header h3{margin:0;color:var(--text-primary);font-size:1.25rem}.admin-login-content{padding:2rem;display:flex;flex-direction:column;gap:1.5rem}.admin-login-field{display:flex;flex-direction:column;gap:.5rem}.admin-login-field label{color:var(--text-secondary);font-weight:500;font-size:.9rem}.admin-login-field input{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:.75rem;padding:.875rem 1rem;color:var(--text-primary);font-size:1rem;transition:all .2s ease}.admin-login-field input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #6366f11a}.admin-login-btn{background:var(--primary-color);color:#fff;border:none;border-radius:.75rem;padding:1rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.admin-login-btn:hover{background:var(--primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.admin-access-btn{border:2px solid var(--primary-color)!important;background:linear-gradient(135deg,#6366f11a,#6366f10d)!important}.admin-access-btn:hover{background:linear-gradient(135deg,#6366f133,#6366f11a)!important;border-color:var(--primary-hover)!important}.pool-manager{min-height:100vh;background:var(--bg-primary);padding-bottom:100px}.pool-manager-header{display:flex;align-items:center;gap:1rem;padding:1.5rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:100}.pool-back-btn{width:40px;height:40px;border-radius:50%;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.pool-back-btn:hover{background:var(--bg-card-hover);transform:translate(-3px)}.pool-manager-title{font-size:1.5rem;color:var(--text-primary);margin:0}.current-pool-banner{margin:1.5rem;padding:1.5rem;background:linear-gradient(135deg,#3b82f633,#6366f133);border:2px solid rgba(59,130,246,.3);border-radius:1rem;display:flex;align-items:center;gap:1rem}.banner-icon{font-size:3rem}.banner-content{flex:1}.banner-label{font-size:.85rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.banner-name{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin:.25rem 0}.banner-details{font-size:.9rem;color:var(--text-secondary)}.pools-list{padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-muted)}.empty-icon{font-size:4rem;margin-bottom:1rem}.empty-state h3{color:var(--text-secondary);margin-bottom:.5rem}.pool-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:1rem;padding:1.5rem;transition:all .3s}.pool-card:hover{background:var(--bg-card-hover);box-shadow:var(--shadow)}.pool-card.active{border-color:#3b82f680;background:#3b82f60d}.pool-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.pool-card-title{display:flex;align-items:center;gap:.75rem}.pool-card-title h3{font-size:1.25rem;color:var(--text-primary);margin:0}.active-badge{background:#22c55e33;color:#22c55e;padding:.25rem .75rem;border-radius:1rem;font-size:.75rem;font-weight:600}.pool-card-actions{display:flex;gap:.5rem}.pool-action-btn{width:36px;height:36px;border-radius:.5rem;border:1px solid var(--border-color);background:var(--bg-tertiary);cursor:pointer;transition:all .2s;font-size:1rem}.pool-action-btn:hover{transform:translateY(-2px)}.pool-action-btn.edit:hover{background:#3b82f633;border-color:#3b82f680}.pool-action-btn.delete:hover{background:#ef444433;border-color:#ef444480}.pool-card-details{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.detail-item{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary);font-size:.95rem}.detail-icon{font-size:1.1rem}.pool-card-notes{display:flex;gap:.5rem;padding:.75rem;background:var(--bg-tertiary);border-radius:.5rem;margin-bottom:1rem;font-size:.9rem;color:var(--text-secondary)}.notes-icon{font-size:1rem}.switch-pool-btn{width:100%;padding:.75rem;background:var(--primary-color);color:#fff;border:none;border-radius:.5rem;font-weight:600;cursor:pointer;transition:all .2s}.switch-pool-btn:hover{background:var(--primary-hover);transform:translateY(-2px)}.add-pool-fab{position:fixed;bottom:2rem;right:2rem;width:60px;height:60px;border-radius:50%;background:var(--primary-color);color:#fff;border:none;font-size:2rem;cursor:pointer;box-shadow:var(--shadow-lg);transition:all .3s;z-index:1000}.add-pool-fab:hover{background:var(--primary-hover);transform:scale(1.1);box-shadow:var(--shadow-xl)}.pool-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem}.pool-modal{background:var(--bg-card);border-radius:1rem;width:100%;max-width:500px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-xl)}.pool-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--border-color)}.pool-modal-header h2{margin:0;color:var(--text-primary);font-size:1.25rem;display:flex;align-items:center;gap:.5rem}.pool-modal-header h2 svg{flex-shrink:0}.pool-manager-title{font-size:1.5rem;color:var(--text-primary);margin:0;display:flex;align-items:center;gap:.5rem}.pool-manager-title svg{flex-shrink:0}.modal-close-btn{width:32px;height:32px;border-radius:50%;background:var(--bg-tertiary);border:none;color:var(--text-primary);font-size:1.25rem;cursor:pointer;transition:all .2s}.modal-close-btn:hover{background:var(--danger-color);color:#fff}.pool-modal-body{padding:1.5rem;overflow-y:auto;flex:1}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:var(--text-primary);font-weight:500;font-size:.95rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:.5rem;color:var(--text-primary);font-size:1rem;transition:all .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color);background:var(--bg-secondary)}.form-group textarea{resize:vertical;font-family:inherit}.pool-modal-footer{display:flex;gap:1rem;padding:1.5rem;border-top:1px solid var(--border-color)}.modal-btn{flex:1;padding:.75rem;border:none;border-radius:.5rem;font-weight:600;cursor:pointer;transition:all .2s}.modal-btn.cancel{background:var(--bg-tertiary);color:var(--text-primary)}.modal-btn.cancel:hover{background:var(--bg-card-hover)}.modal-btn.save{background:var(--primary-color);color:#fff}.modal-btn.save:hover{background:var(--primary-hover)}@media(max-width:768px){.pool-manager-header{padding:1rem}.pool-manager-title{font-size:1.25rem}.current-pool-banner{margin:1rem;padding:1rem}.banner-icon{font-size:2rem}.banner-name{font-size:1.25rem}.pools-list,.pool-card{padding:1rem}.add-pool-fab{bottom:1.5rem;right:1.5rem;width:56px;height:56px}.pool-modal{max-width:100%;margin:.5rem}}.login-screen{min-height:100vh;display:grid;place-items:center;padding:1rem;background:var(--gradient-bg)}.login-shell{width:min(880px,100%);display:grid;grid-template-columns:1.05fr 1fr;gap:.9rem}.login-brand{background:linear-gradient(145deg,#06b6d429,#0f766e1f);border:1px solid var(--border-color);border-radius:20px;padding:1.4rem;box-shadow:var(--shadow-lg)}.login-kicker{display:inline-block;margin-bottom:.65rem;padding:.22rem .6rem;border-radius:999px;border:1px solid rgba(6,182,212,.45);color:var(--primary-light);font-size:.76rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.login-brand h1{font-size:clamp(1.8rem,2.5vw,2.3rem);margin-bottom:.52rem}.login-brand p{color:var(--text-secondary);max-width:28ch}.login-panel{background:var(--bg-card);border:1px solid var(--border-color);border-radius:20px;padding:1.4rem;box-shadow:var(--shadow-lg)}.login-panel h2{font-size:1.35rem;margin-bottom:.3rem}.login-panel>p{color:var(--text-secondary);margin-bottom:1rem}.google-login-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.6rem;padding:.86rem 1rem;border-radius:12px;border:1px solid var(--border-color);background:#fff;color:#0f172a;font-size:.98rem;font-weight:800;box-shadow:0 8px 20px #02081733}.google-login-btn:disabled{opacity:.66}.login-error{margin:.8rem 0 0;padding:.7rem .8rem;border-radius:10px;border:1px solid rgba(239,68,68,.45);background:#ef44441a;color:#fecaca;font-size:.86rem;line-height:1.4}.login-benefits{margin:.95rem 0 0;padding-left:1.1rem;display:grid;gap:.5rem;color:var(--text-secondary);font-size:.92rem}[data-theme=light] .login-brand{background:linear-gradient(145deg,#06b6d41c,#0f766e14)}@media(max-width:760px){.login-shell{grid-template-columns:1fr}.login-brand,.login-panel{padding:1.1rem;border-radius:16px}}.splash-screen{position:fixed;top:0;left:0;width:100vw;height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;align-items:center;z-index:9999;opacity:1;transition:opacity .3s ease-out;overflow:hidden;will-change:opacity;contain:layout paint}.splash-screen.fade-out{opacity:0}.rain-effect{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10;will-change:transform;transform:translateZ(0)}.raindrop{position:absolute;top:-10%;width:2px;height:0;background:transparent;animation:raindrop-fall 1s ease-in infinite;will-change:transform,opacity,height,top;transform:translateZ(0)}@keyframes raindrop-fall{0%{top:-10%;height:0;opacity:0}10%{opacity:1;height:60px}50%{top:50%;height:60px;opacity:.8}to{top:110%;height:40px;opacity:0}}.raindrop-trail{position:absolute;top:0;left:50%;transform:translate(-50%);width:1px;height:100%;background:linear-gradient(to bottom,#fff0,#fffc 20%,#fff9,#ffffff4d 80%,#fff0);box-shadow:0 0 2px #ffffff80,0 0 4px #ffffff4d;filter:blur(.5px);will-change:opacity}.raindrop:after{content:"";position:absolute;bottom:-5px;left:50%;transform:translate(-50%);width:8px;height:8px;background:radial-gradient(circle,rgba(255,255,255,.6) 0%,rgba(255,255,255,.3) 50%,transparent 100%);border-radius:50%;opacity:0;animation:raindrop-splash 1s ease-out infinite;animation-delay:inherit}@keyframes raindrop-splash{0%,80%{opacity:0;transform:translate(-50%) scale(0)}85%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0;transform:translate(-50%) scale(2)}}.splash-content{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%}.wave-container{position:absolute;bottom:0;left:0;width:100%;height:100%;overflow:hidden;pointer-events:none}.wave{position:absolute;bottom:0;left:50%;width:200%;height:200%;background:radial-gradient(ellipse at center,rgba(255,255,255,.1) 0%,transparent 70%);border-radius:45%;transform:translate(-50%);animation:wave-animation 3s ease-in-out infinite;will-change:transform}.wave1{animation-delay:0s;opacity:.3}.wave2{animation-delay:.5s;opacity:.2}.wave3{animation-delay:1s;opacity:.1}@keyframes wave-animation{0%,to{transform:translate(-50%) translateY(0) rotate(0)}50%{transform:translate(-50%) translateY(-20px) rotate(180deg)}}.splash-logo{position:relative;z-index:2;text-align:center;animation:fade-in-up .8s ease-out;will-change:transform,opacity}@keyframes fade-in-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.logo-circle{width:120px;height:120px;margin:0 auto 2rem;background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 32px #0000001a;animation:pulse-scale 2s ease-in-out infinite;position:relative;will-change:transform;transform:translateZ(0)}.logo-circle:before{content:"";position:absolute;inset:-10px;border-radius:50%;border:2px solid rgba(255,255,255,.3);animation:ripple 2s ease-out infinite;will-change:transform,opacity}@keyframes pulse-scale{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes ripple{0%{transform:scale(1);opacity:1}to{transform:scale(1.5);opacity:0}}.water-drop{font-size:4rem;animation:float 3s ease-in-out infinite;filter:drop-shadow(0 4px 8px rgba(0,0,0,.2));will-change:transform;transform:translateZ(0)}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.app-title{font-size:2.5rem;font-weight:700;color:#fff;margin:0 0 .5rem;text-shadow:0 2px 10px rgba(0,0,0,.2);letter-spacing:-.5px;animation:fade-in-up .8s ease-out .2s both;will-change:transform,opacity}.app-subtitle{font-size:1.1rem;color:#ffffffe6;margin:0;font-weight:300;text-shadow:0 1px 5px rgba(0,0,0,.1);animation:fade-in-up .8s ease-out .4s both;will-change:transform,opacity}.loading-container{position:absolute;bottom:80px;left:0;right:0;width:200px;margin:0 auto;animation:fade-in-up .8s ease-out .6s both;will-change:transform,opacity}.loading-bar{width:100%;height:4px;background:#fff3;border-radius:2px;overflow:hidden;margin-bottom:.5rem}.loading-progress{height:100%;background:linear-gradient(90deg,#fffc,#fff,#fffc);border-radius:2px;animation:loading-animation 2s ease-in-out infinite;box-shadow:0 0 10px #ffffff80;will-change:width,transform}@keyframes loading-animation{0%{width:0%;transform:translate(0)}50%{width:70%}to{width:100%;transform:translate(0)}}.loading-text{text-align:center;color:#fffc;font-size:.9rem;font-weight:300;margin:0;animation:pulse-opacity 1.5s ease-in-out infinite;will-change:opacity}@keyframes pulse-opacity{0%,to{opacity:.6}50%{opacity:1}}@media(max-width:640px){.logo-circle{width:100px;height:100px}.water-drop{font-size:3rem}.app-title{font-size:2rem}.app-subtitle{font-size:1rem;padding:0 1rem}.loading-container{bottom:60px;width:160px}}.splash-content:before,.splash-content:after{content:"";position:absolute;width:100px;height:100px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);animation:float-particles 4s ease-in-out infinite;will-change:transform,opacity;transform:translateZ(0)}.splash-content:before{top:20%;left:10%;animation-delay:0s}.splash-content:after{bottom:20%;right:10%;animation-delay:2s}@keyframes float-particles{0%,to{transform:translate(0) scale(1);opacity:.3}50%{transform:translate(20px,-20px) scale(1.2);opacity:.6}}.tutorial-overlay{position:fixed;inset:0;z-index:4000;pointer-events:auto;opacity:1;touch-action:none;transition:opacity .32s ease;will-change:opacity;contain:layout paint}.tutorial-full-shade{position:fixed;inset:0;background:#020617cc;will-change:opacity}.tutorial-youtube-host{position:fixed;width:1px;height:1px;left:-9999px;top:-9999px;opacity:0;pointer-events:none}.tutorial-track-badge{position:fixed;top:.85rem;right:.85rem;z-index:3;display:inline-flex;align-items:center;gap:.46rem;padding:.52rem .66rem;border-radius:10px;border:1px solid rgba(248,113,113,.42);background:#0f172af2;color:#f8fafc;text-decoration:none;box-shadow:0 12px 26px #02081785;animation:tutorialTrackBadgeIn .26s ease-out;transition:opacity .32s ease,transform .32s ease;will-change:transform,opacity;transform:translateZ(0)}.tutorial-track-badge svg{width:15px;height:15px;color:#ef4444;flex:0 0 auto}.tutorial-track-badge span{font-size:.76rem;font-weight:700;line-height:1.2;white-space:nowrap}.tutorial-spotlight{position:fixed;border-radius:14px;border:2px solid rgba(34,211,238,.84);background:#22d3ee14;box-shadow:0 0 0 9999px #020617cc,0 0 24px #22d3ee85;pointer-events:none;transition:opacity .32s ease,transform .32s ease;will-change:transform,opacity}.tutorial-connector{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;transition:opacity .32s ease;will-change:opacity}.tutorial-connector line{stroke:#67e8f9f2;stroke-width:2.5;stroke-dasharray:6 6;animation:tutorialLinePulse 1.4s linear infinite;will-change:stroke-dashoffset}.tutorial-swipe-demo{position:fixed;pointer-events:none;z-index:1;transition:opacity .32s ease,transform .32s ease;will-change:transform,opacity}.tutorial-swipe-track{position:relative;width:100%;height:12px;border-radius:999px;border:1px solid rgba(125,211,252,.7);background:#082f4973;overflow:hidden}.tutorial-swipe-finger{position:absolute;top:50%;left:0;width:24px;height:24px;border-radius:999px;border:2px solid #bae6fd;background:#e0f2fe47;box-shadow:0 0 16px #67e8f999;transform:translate(-2px,-50%);animation:tutorialSwipe 1.6s ease-in-out infinite alternate;will-change:transform,left;transform:translate3d(-2px,-50%,0)}.tutorial-card{position:fixed;left:50%;bottom:1rem;transform:translate(-50%);width:min(640px,calc(100% - 1.2rem));border-radius:14px;border:1px solid rgba(148,163,184,.36);background:#0f172afa;color:#e2e8f0;box-shadow:0 18px 40px #00000073;padding:.95rem;z-index:2;transition:top .24s ease,left .24s ease,transform .32s ease,opacity .32s ease;will-change:transform,opacity,top,left}.tutorial-audio-toggle{position:absolute;top:.58rem;right:.58rem;width:32px;height:32px;border-radius:999px;border:1px solid rgba(148,163,184,.38);background:#1e293beb;color:#e2e8f0;display:inline-flex;align-items:center;justify-content:center;padding:0}.tutorial-audio-toggle svg{width:18px;height:18px}.tutorial-overlay.is-closing{opacity:0;pointer-events:none}.tutorial-overlay.is-closing .tutorial-card{transform:translateY(10px)}.tutorial-overlay.is-closing .tutorial-spotlight,.tutorial-overlay.is-closing .tutorial-connector,.tutorial-overlay.is-closing .tutorial-swipe-demo,.tutorial-overlay.is-closing .tutorial-track-badge{opacity:0}.tutorial-card.is-positioned{bottom:auto;transform:none}.tutorial-step-counter{margin:0;padding-right:2.4rem;color:#67e8f9;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.tutorial-part-counter{margin:.2rem 0 0;color:#bae6fd;font-size:.78rem;font-weight:600}.tutorial-card h3{margin:.34rem 0 .38rem;font-size:1.08rem}.tutorial-card p{margin:0;color:#cbd5e1;line-height:1.34}.tutorial-actions{margin-top:.85rem;display:flex;align-items:center;justify-content:space-between;gap:.55rem}.tutorial-main-actions{display:flex;align-items:center;gap:.45rem}.tutorial-btn{border-radius:10px;border:1px solid rgba(148,163,184,.34);padding:.5rem .8rem;font-weight:700;cursor:pointer}.tutorial-btn:disabled{opacity:.55;cursor:not-allowed}.tutorial-btn--ghost{background:#1e293bd9;color:#e2e8f0}.tutorial-btn--primary{background:linear-gradient(135deg,#0284c7,#0369a1);border-color:#0e7490cc;color:#f8fafc}@keyframes tutorialLinePulse{to{stroke-dashoffset:-12}}@keyframes tutorialSwipe{0%{left:3%}to{left:calc(97% - 24px)}}@keyframes tutorialTrackBadgeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:720px){.tutorial-track-badge{top:.68rem;right:.68rem;max-width:calc(100vw - 1.35rem)}.tutorial-track-badge span{font-size:.71rem;white-space:normal}.tutorial-card{padding:.82rem}.tutorial-card h3{font-size:1rem}.tutorial-card p{font-size:.92rem}.tutorial-actions{flex-direction:column;align-items:stretch}.tutorial-main-actions{width:100%}.tutorial-main-actions .tutorial-btn,.tutorial-actions>.tutorial-btn{width:100%}}.update-overlay{position:fixed;inset:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:10000;padding:1rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.update-modal{background:var(--card-bg);border-radius:16px;max-width:400px;width:100%;box-shadow:0 20px 60px #00000080;border:1px solid var(--border-color);overflow:hidden;animation:updateSlideIn .3s ease-out}@keyframes updateSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.update-header{padding:1.5rem;text-align:center;border-bottom:1px solid var(--border-color)}.update-icon{width:48px;height:48px;margin:0 auto 1rem;color:var(--primary-color)}.update-header h2{margin:0;font-size:1.5rem;color:var(--text-primary)}.update-body{padding:1.5rem}.update-version{font-size:1.1rem;font-weight:600;color:var(--primary-color);margin:0 0 1rem;text-align:center}.update-notes{background:var(--bg-secondary);border-radius:8px;padding:1rem;margin-bottom:1rem}.update-notes h3{margin:0 0 .5rem;font-size:.9rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.update-notes p{margin:0;color:var(--text-primary);line-height:1.5}.update-question{font-size:1.05rem;font-weight:500;color:var(--text-primary);text-align:center;margin:1rem 0 0}.update-required{background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;padding:.75rem;margin:0;color:#fca5a5;font-size:.9rem;text-align:center}.update-actions{padding:1rem 1.5rem 1.5rem;display:flex;gap:.75rem}.update-btn{flex:1;padding:.875rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.update-btn-primary{background:var(--primary-color);color:#fff}.update-btn-primary:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px #22d3ee4d}.update-btn-secondary{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color)}.update-btn-secondary:hover{background:var(--bg-secondary);color:var(--text-primary)}[data-theme=light] .update-overlay{background:#00000080}[data-theme=light] .update-icon,[data-theme=light] .update-version{color:#0ea5e9}[data-theme=light] .update-required{background:#ef44441a;border-color:#ef44444d;color:#dc2626}.app-main{width:100%;max-width:960px;margin:0 auto;padding:1rem .9rem 5rem;display:flex;flex-direction:column;gap:.9rem}.dashboard-stack{display:flex;flex-direction:column;gap:.8rem}.mode-toggle-container{width:min(560px,100%);margin:0 auto}.module-help-label{display:inline-flex;align-items:center;margin:0 0 .45rem;color:var(--text-secondary);font-size:.84rem;font-weight:700}.module-help-label--danger{color:#fda4af}.module-help-label--tight{margin:0}.system-card-toggle{width:100%;border:0;padding:0;background:transparent;color:inherit;display:flex;align-items:center;justify-content:space-between;gap:.72rem;text-align:left;cursor:pointer}.system-card-toggle:focus-visible{outline:2px solid var(--primary-color);outline-offset:3px;border-radius:10px}.system-card-toggle-text{min-width:0;display:flex;flex-direction:column;gap:.2rem}.system-card-toggle-text small{color:var(--text-muted);font-size:.8rem;font-weight:700;line-height:1.3}.system-card-chevron{width:1.6rem;height:1.6rem;border:1px solid var(--border-color);border-radius:999px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--bg-secondary);transition:transform .22s ease}.system-card-chevron svg{width:.95rem;height:.95rem;fill:none;stroke:var(--text-secondary);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.system-card-chevron.is-open{transform:rotate(180deg)}.mode-toggle-button{width:100%;border:1px solid var(--border-color);border-radius:14px;padding:1.08rem 1.05rem;display:flex;flex-direction:column;align-items:flex-start;gap:.26rem;color:#f8fafc;font-weight:700;box-shadow:var(--shadow);position:relative;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}.mode-toggle-button:after{content:"";position:absolute;top:0;left:-120%;width:56%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);transform:skew(-18deg);transition:left .48s ease;pointer-events:none}.mode-toggle-button:hover:after{left:140%}.mode-toggle-button:hover{box-shadow:var(--shadow-lg)}.mode-toggle-button span{font-size:1.34rem;font-weight:800;letter-spacing:.015em;text-shadow:0 1px 0 rgba(2,6,23,.28),0 6px 18px rgba(2,6,23,.32)}.mode-toggle-button small{font-size:.96rem;opacity:.98;font-weight:700;line-height:1.2;text-shadow:0 1px 0 rgba(2,6,23,.22)}.mode-toggle-button--automatic{background:linear-gradient(140deg,#0f766e,#0f766e 35%,#115e59)}.mode-toggle-button--manual{background:linear-gradient(140deg,#0369a1,#0284c7 45%,#075985)}.dashboard-module{width:min(560px,100%);margin:0 auto}.system-status-card{width:min(560px,100%);margin:0 auto;border:1px solid var(--border-color);border-radius:14px;background:var(--bg-card);padding:.9rem .9rem 1rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.65rem}.system-status-card--ok{border-color:#14b8a673}.system-status-card--correcting{border-color:#f59e0b80}.system-status-card--needs-action{border-color:#f43f5e80}.system-status-head{display:flex;flex-direction:column;gap:.24rem}.system-status-head strong{font-size:1rem;color:var(--text-primary)}.system-status-head span{color:var(--text-secondary);font-size:.9rem;line-height:1.35}.system-status-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.system-status-meta div{border:1px solid var(--border-color);border-radius:10px;padding:.55rem .6rem;background:var(--bg-secondary)}.system-status-meta small{display:block;font-size:.75rem;color:var(--text-muted);margin-bottom:.2rem}.system-status-meta strong{color:var(--text-primary);font-size:.84rem;line-height:1.25}.system-status-action{width:100%;border:1px solid var(--primary-color);border-radius:10px;padding:.75rem .8rem;background:#38bdf82e;color:var(--text-primary);font-weight:700}.offline-diagnostic{border:1px dashed var(--border-color);border-radius:12px;padding:.75rem;background:#0f172a40;display:flex;flex-direction:column;gap:.6rem}.offline-diagnostic-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.offline-diagnostic-header h4{margin:0;font-size:.92rem;color:var(--text-primary)}.offline-diagnostic-header button,.offline-diagnostic-step button{border:1px solid var(--border-color);border-radius:9px;padding:.48rem .65rem;background:var(--bg-secondary);color:var(--text-primary);font-weight:700}.offline-diagnostic-step{display:flex;flex-direction:column;gap:.5rem}.offline-diagnostic-step p{margin:0;color:var(--text-secondary);font-size:.88rem;line-height:1.4}.offline-diagnostic-actions{display:flex;gap:.5rem;flex-wrap:wrap}.system-events-card{width:min(560px,100%);margin:0 auto;border:1px solid var(--border-color);border-radius:14px;background:var(--bg-card);padding:.85rem .85rem .95rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.6rem}.system-events-header{display:flex;justify-content:space-between;align-items:center;gap:.6rem}.system-events-title{color:var(--text-primary);font-size:.87rem;font-weight:700}.system-events-clear{border:1px solid var(--border-color);border-radius:9px;background:var(--bg-secondary);color:var(--text-secondary);font-size:.8rem;font-weight:700;padding:.4rem .58rem}.system-events-clear:disabled{opacity:.6;cursor:not-allowed}.system-events-empty{margin:0;color:var(--text-secondary);font-size:.88rem;line-height:1.4}.system-events-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.5rem}.system-event-item{border:1px solid var(--border-color);border-radius:10px;background:var(--bg-secondary);padding:.58rem .6rem;display:flex;flex-direction:column;gap:.25rem}.system-event-item--ok{border-color:#14b8a673}.system-event-item--warning{border-color:#f59e0b73}.system-event-item--info{border-color:#3b82f673}.system-event-top{display:flex;justify-content:space-between;gap:.5rem;align-items:center}.system-event-top span{color:var(--text-primary);font-size:.87rem;font-weight:700}.system-event-top small{color:var(--text-muted);font-size:.72rem}.system-event-item p{margin:0;color:var(--text-secondary);font-size:.82rem;line-height:1.35}.system-event-item strong{color:var(--text-primary);font-size:.8rem}.modal-overlay{position:fixed;inset:0;z-index:1200;background:#0206179e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:1rem}.modal-content{width:min(620px,100%);max-height:90vh;overflow-y:auto;border-radius:18px;border:1px solid var(--border-color);background:var(--bg-card);box-shadow:var(--shadow-xl);position:relative}.modal-close{position:absolute;top:.65rem;right:.65rem;width:34px;height:34px;border-radius:999px;border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);font-size:1.12rem;font-weight:700;z-index:2}.emergency-stop-container{width:min(560px,100%);margin:0 auto;display:flex;flex-direction:column;gap:.42rem}.emergency-stop-button{width:100%;border:1px solid #f43f5e;border-radius:14px;padding:1rem 1.05rem;color:#fff;font-size:1.08rem;font-weight:900;letter-spacing:.04em;background:linear-gradient(135deg,#dc2626,#ef4444 55%,#be123c);box-shadow:0 10px 24px #e11d4857;text-transform:uppercase}.emergency-stop-button:hover{box-shadow:0 14px 28px #e11d4873}.emergency-stop-hint{color:var(--text-secondary);font-size:.86rem;font-weight:600}.loading-screen{min-height:100vh;display:grid;place-items:center;padding:1.2rem}.loading-container{width:min(420px,100%);border:1px solid var(--border-color);border-radius:20px;padding:2rem 1.2rem;text-align:center;background:var(--bg-card);box-shadow:var(--shadow-lg)}.loading-container h1{margin-bottom:.95rem;font-size:1.35rem}.loading-spinner{width:34px;height:34px;margin:0 auto .6rem;border-radius:999px;border:3px solid rgba(148,163,184,.35);border-top-color:var(--primary-color);animation:spin .9s linear infinite}.fade-in{animation:fadeIn .35s ease-out}.scale-in{animation:scaleIn .3s ease-out}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@media(max-width:768px){.app-main{padding:.75rem .62rem 4.6rem}.mode-toggle-button span{font-size:1.24rem}.mode-toggle-button small{font-size:.9rem}.system-status-meta{grid-template-columns:1fr}}.wifi-qr-setup-page{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;padding:20px}.setup-container{background:#fff;border-radius:20px;max-width:600px;width:100%;box-shadow:0 20px 60px #0000004d;overflow:hidden;animation:fadeIn .5s ease-out}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.setup-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:30px;text-align:center}.setup-header h1{margin:0 0 10px;font-size:32px}.setup-header p{margin:0;opacity:.9;font-size:16px}.setup-step{padding:40px 30px;text-align:center}.step-icon{font-size:64px;margin-bottom:20px;animation:bounce 1s ease-in-out}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.success-icon{animation:scaleIn .5s ease-out}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.setup-step h2{color:#2d3748;margin:0 0 25px;font-size:24px}.info-box{background:#f0f9ff;border:2px solid #bae6fd;border-radius:12px;padding:20px;margin-bottom:25px;text-align:left}.info-box p{margin:0 0 10px;font-weight:600;color:#0c4a6e}.info-box ol{margin:10px 0 0 20px;color:#0369a1}.info-box li{margin:8px 0}.network-info{background:#f7fafc;border-radius:12px;padding:20px;margin-bottom:25px}.info-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #e2e8f0}.info-item:last-child{border-bottom:none}.info-label{color:#718096;font-weight:500}.info-value{color:#2d3748;font-weight:600;font-family:monospace;background:#e2e8f0;padding:4px 12px;border-radius:6px}.success-box{background:#d1fae5;border:2px solid #6ee7b7;border-radius:12px;padding:15px;margin-bottom:20px}.success-box p{margin:5px 0;color:#065f46;font-weight:600}.success-box.large{padding:25px}.success-box.large p{font-size:16px;margin:10px 0}.config-summary{background:#f7fafc;border-radius:12px;padding:20px;margin-bottom:20px;text-align:left}.config-summary h3{margin:0 0 15px;color:#2d3748;font-size:18px}.summary-item{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #e2e8f0}.summary-item:last-child{border-bottom:none}.summary-label{color:#718096;font-weight:500}.summary-value{color:#2d3748;font-weight:600;font-family:monospace}.warning-box{background:#fef3c7;border:2px solid #fcd34d;border-radius:12px;padding:20px;margin-bottom:25px}.warning-box p{margin:5px 0;color:#78350f}.next-steps{background:#f0f9ff;border-radius:12px;padding:20px;margin-bottom:20px;text-align:left}.next-steps h3{margin:0 0 15px;color:#0c4a6e}.next-steps ol{margin:10px 0 0 20px;color:#0369a1}.next-steps li{margin:10px 0}.redirect-info{background:#e0e7ff;border-radius:8px;padding:15px;margin-bottom:20px}.redirect-info p{margin:0;color:#3730a3;font-weight:500}.primary-btn{padding:16px 32px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;width:100%;max-width:400px}.primary-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 20px #667eea4d}.primary-btn:disabled{background:#cbd5e1;cursor:not-allowed;transform:none}.error-message{background:#fee2e2;border:2px solid #fca5a5;border-radius:12px;padding:15px;margin-top:20px;color:#991b1b;font-weight:500}.setup-footer{padding:20px 30px;border-top:2px solid #e2e8f0;background:#f7fafc}.back-btn{background:transparent;border:2px solid #cbd5e1;color:#4b5563;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease}.back-btn:hover{background:#f3f4f6;border-color:#9ca3af}@media(max-width:640px){.setup-container{border-radius:0;max-height:100vh;overflow-y:auto}.setup-header{padding:20px}.setup-header h1{font-size:24px}.setup-step{padding:30px 20px}.step-icon{font-size:48px}.setup-step h2{font-size:20px}.primary-btn{max-width:100%}}.errorBoundaryContainer{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:#160d24;padding:2em}.errorBoundaryContent{background-color:#291942;border:2px solid #ef4444;border-radius:1em;padding:2em;max-width:600px;box-shadow:0 0 20px #ef44444d}.errorBoundaryContent h1{color:#ef4444;margin-top:0;font-size:1.8em}.errorMessage{color:#f5f5f5;font-size:1em;margin:1em 0;padding:1em;background-color:#ef44441a;border-left:4px solid #ef4444;border-radius:.5em;font-family:monospace}.errorDetails{margin:1.5em 0;padding:1em;background-color:#0000004d;border-radius:.5em;cursor:pointer}.errorDetails summary{color:#f59e0b;font-weight:600;-webkit-user-select:none;user-select:none}.errorDetails pre{color:#fffc;overflow-x:auto;font-size:.85em;margin-top:1em;padding:1em;background-color:#00000080;border-radius:.5em}.errorButton{background-color:#22c55e;color:#160d24;border:none;padding:.8em 2em;border-radius:.5em;font-size:1em;font-weight:600;cursor:pointer;transition:all .2s}.errorButton:hover{background-color:#16a34a;box-shadow:0 0 10px #22c55e80}.errorActions{display:flex;gap:.75em;flex-wrap:wrap}.errorButtonSecondary{background-color:transparent;color:#f8fafc;border:1px solid #64748b}.errorButtonSecondary:hover{background-color:#64748b33;box-shadow:none}:root{--primary-color: #06b6d4;--primary-hover: #0891b2;--primary-light: #67e8f9;--success-color: #14b8a6;--success-hover: #0d9488;--success-light: #99f6e4;--danger-color: #f43f5e;--danger-hover: #e11d48;--danger-light: #fecdd3;--warning-color: #f59e0b;--warning-hover: #d97706;--warning-light: #fde68a;--bg-primary: #07111a;--bg-secondary: #0b1b29;--bg-tertiary: #12293b;--bg-card: #102434;--bg-card-hover: #16354a;--text-primary: #f1f5f9;--text-secondary: #cbd5e1;--text-muted: #94a3b8;--border-color: #24455d;--shadow: 0 8px 20px rgba(2, 8, 23, .34);--shadow-lg: 0 12px 32px rgba(2, 8, 23, .5);--shadow-xl: 0 20px 40px rgba(2, 8, 23, .55);--gradient-primary: linear-gradient(135deg, #06b6d4 0%, #0ea5a8 100%);--gradient-success: linear-gradient(135deg, #2dd4bf 0%, #0f766e 100%);--gradient-danger: linear-gradient(135deg, #fb7185 0%, #e11d48 100%);--gradient-warning: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%);--gradient-bg: radial-gradient(circle at 10% -20%, rgba(20, 184, 166, .22), transparent 45%), radial-gradient(circle at 92% 5%, rgba(6, 182, 212, .16), transparent 35%), #07111a}[data-theme=light]{--bg-primary: #f4fbff;--bg-secondary: #e8f4fb;--bg-tertiary: #d8ebf7;--bg-card: #ffffff;--bg-card-hover: #f2f8fc;--text-primary: #0f172a;--text-secondary: #334155;--text-muted: #64748b;--border-color: #c7d8e3;--shadow: 0 8px 24px rgba(15, 23, 42, .1);--shadow-lg: 0 14px 34px rgba(15, 23, 42, .12);--shadow-xl: 0 20px 40px rgba(15, 23, 42, .15);--gradient-bg: radial-gradient(circle at 10% -20%, rgba(20, 184, 166, .12), transparent 45%), radial-gradient(circle at 92% 5%, rgba(6, 182, 212, .12), transparent 35%), #f4fbff}html[data-theme=light],html[data-theme=light] body,html[data-theme=light] #root{background:#f4fbff}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%}body{margin:0;font-family:Manrope,system-ui,sans-serif;line-height:1.5;background:var(--gradient-bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}main{width:100%}h1,h2,h3,h4,h5,h6{margin:0;color:var(--text-primary);font-family:Sora,Manrope,sans-serif}p{margin:0}a{color:var(--primary-color);text-decoration:none}button,input,select,textarea{font-family:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .16s ease,box-shadow .16s ease,filter .16s ease,border-color .16s ease,background-color .16s ease}button:focus-visible{outline:none;box-shadow:0 0 0 2px #06b6d461,0 0 0 5px #06b6d424}@media(hover:hover){button:hover{transform:translateY(-1px);filter:brightness(1.04)}}button:active{transform:translateY(0) scale(.98)}button:disabled{cursor:not-allowed;opacity:.6;transform:none;filter:none}
