@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&display=swap";:root{--font-sans:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-tertiary:#f1f5f9;--glass-bg:#fff;--glass-border:#e2e8f0;--glass-border-hover:#cbd5e1;--glass-glow:#0ea5e905;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--accent-blue:#0284c7;--accent-green:#16a34a;--accent-amber:#d97706;--accent-purple:#7c3aed;--accent-rose:#dc2626;--accent-grey:#64748b;--grad-water:linear-gradient(135deg, #0284c7 0%, #0ea5e9 100%);--grad-eco:linear-gradient(135deg, #16a34a 0%, #22c55e 100%);--grad-temp:linear-gradient(135deg, #ea580c 0%, #f59e0b 100%);--grad-salinity:linear-gradient(135deg, #7c3aed 0%, #9333ea 100%);--grad-glass:linear-gradient(135deg, #ffffffe6 0%, #ffffffb3 100%);--grad-dark-glass:linear-gradient(180deg, #fffffff2 0%, #f8fafcfa 100%);--transition-smooth:all .25s cubic-bezier(.4, 0, .2, 1);--shadow-premium:0 4px 6px -1px #00000008, 0 2px 4px -2px #00000008, 0 10px 15px -3px #0000000d;--shadow-glow-blue:0 0 12px #0284c726;--shadow-glow-green:0 0 12px #16a34a26}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:radial-gradient(at 0 0,#0ea5e908 0,#0000 50%),radial-gradient(at 100% 100%,#16a34a08 0,#0000 50%);background-attachment:fixed;overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent-blue)}.dashboard-container{flex-direction:column;min-height:100vh;display:flex}.dashboard-header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--glass-border);z-index:100;background:#ffffffe6;justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex;position:sticky;top:0;box-shadow:0 1px 3px #00000005}.brand-section{align-items:center;gap:.75rem;display:flex}.logo-icon{background:var(--grad-water);width:32px;height:32px;box-shadow:var(--shadow-glow-blue);border-radius:8px;justify-content:center;align-items:center;display:flex}.brand-name{letter-spacing:-.025em;color:var(--text-primary);font-size:1.25rem;font-weight:700}.brand-subtitle{color:var(--accent-blue);letter-spacing:.08em;text-transform:uppercase;margin-top:-2px;font-size:.75rem;font-weight:600}.header-meta{align-items:center;gap:1.5rem;display:flex}.weather-widget{background:var(--bg-tertiary);border:1px solid var(--glass-border);border-radius:9999px;align-items:center;gap:.75rem;padding:.5rem 1rem;font-size:.85rem;display:flex}.weather-location{color:var(--text-primary);font-weight:600}.weather-temp{color:var(--accent-amber);font-weight:700}.weather-extra{color:var(--text-secondary);border-left:1px solid var(--glass-border);padding-left:.75rem}.system-badge{color:var(--accent-green);background:#16a34a14;border:1px solid #16a34a26;border-radius:9999px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.8rem;font-weight:600;display:flex}.system-badge.manual{color:var(--accent-amber);background:#d9770614;border:1px solid #d9770626}.system-pulse{background:currentColor;border-radius:50%;width:8px;height:8px;animation:2s infinite pulse-glow}.user-profile{align-items:center;gap:.75rem;display:flex}.avatar{background:var(--bg-tertiary);border:1px solid var(--glass-border);width:36px;height:36px;color:var(--text-primary);border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex}.dashboard-content{flex-grow:1;grid-template-columns:450px 1fr;gap:1.5rem;width:100%;max-width:1600px;margin:0 auto;padding:1.5rem 2rem;display:grid}@media (max-width:1200px){.dashboard-content{grid-template-columns:1fr}}.left-panel,.right-panel{flex-direction:column;gap:1.5rem;display:flex}.glass-card{background:var(--bg-secondary);border:1px solid var(--glass-border);box-shadow:var(--shadow-premium);transition:var(--transition-smooth);border-radius:12px;padding:1.5rem;position:relative;overflow:hidden}.glass-card:hover{border-color:var(--glass-border-hover);box-shadow:0 10px 25px -5px #0000000d,0 8px 16px -6px #0000000d}.card-header{border-bottom:1px solid #00000005;justify-content:space-between;align-items:center;margin-bottom:1.25rem;padding-bottom:.5rem;display:flex}.card-title-area{align-items:center;gap:.5rem;display:flex}.card-icon{color:var(--accent-blue);align-items:center;display:flex}.card-title{letter-spacing:-.01em;color:var(--text-primary);font-size:1.05rem;font-weight:700}.card-subtitle{color:var(--text-secondary);font-size:.8rem}.map-visualizer-container{flex-direction:column;align-items:center;display:flex}.svg-map-wrapper{border:1px solid var(--glass-border);background:#f1f5f9;border-radius:10px;width:100%;padding:1rem;position:relative}.map-field-path{fill:#16a34a14;stroke:#16a34a59;stroke-width:2px;cursor:pointer;transition:var(--transition-smooth)}.map-field-path:hover{fill:#16a34a29;stroke:var(--accent-green)}.map-field-path.active{fill:#0284c71f;stroke:var(--accent-blue);stroke-width:2.5px}.map-label{fill:var(--text-primary);pointer-events:none;font-size:11px;font-weight:600}.map-value-badge{fill:#fff;stroke:#cbd5e1;stroke-width:1px}.map-value-text{fill:var(--accent-blue);pointer-events:none;font-size:10px;font-weight:700}.map-legend{color:var(--text-secondary);gap:1.25rem;margin-top:1rem;font-size:.8rem;display:flex}.legend-item{align-items:center;gap:.35rem;display:flex}.legend-dot{border-radius:50%;width:8px;height:8px}.legend-dot.left{background-color:var(--accent-green)}.legend-dot.center{background-color:var(--accent-blue)}.legend-dot.right{background-color:var(--accent-purple)}.field-tabs{grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:.5rem;display:grid}.field-tab-btn{background:var(--bg-tertiary);border:1px solid var(--glass-border);color:var(--text-secondary);cursor:pointer;transition:var(--transition-smooth);border-radius:6px;padding:.6rem .5rem;font-size:.85rem;font-weight:600}.field-tab-btn:hover{color:var(--text-primary);background:#e2e8f0}.field-tab-btn.active{background:var(--grad-water);color:#fff;box-shadow:var(--shadow-glow-blue);border-color:#0000}.metrics-grid{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}@media (max-width:640px){.metrics-grid{grid-template-columns:1fr}}.metric-card{background:var(--bg-primary);border:1px solid var(--glass-border);min-height:105px;transition:var(--transition-smooth);border-radius:10px;flex-direction:column;justify-content:space-between;gap:.4rem;padding:1rem;display:flex}.metric-card:hover{border-color:var(--glass-border-hover);background:var(--bg-secondary);box-shadow:0 4px 12px #00000005}.metric-header{color:var(--text-secondary);justify-content:space-between;align-items:center;font-size:.8rem;font-weight:600;display:flex}.metric-icon{font-size:1.1rem}.metric-value-container{align-items:baseline;gap:.25rem;display:flex}.metric-value{letter-spacing:-.02em;color:var(--text-primary);font-size:1.5rem;font-weight:700}.metric-unit{color:var(--text-secondary);font-size:.85rem;font-weight:500}.metric-footer{align-items:center;gap:.25rem;font-size:.75rem;display:flex}.metric-card.moisture .metric-icon,.metric-card.moisture .metric-value{color:var(--accent-green)}.metric-card.temperature .metric-icon,.metric-card.temperature .metric-value{color:var(--accent-amber)}.metric-card.conductivity .metric-icon,.metric-card.conductivity .metric-value{color:var(--accent-purple)}.controls-layout{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.power-card{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:1.25rem;display:flex}.power-ring{border:4px solid var(--bg-tertiary);cursor:pointer;width:80px;height:80px;transition:var(--transition-smooth);background:var(--bg-secondary);border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative}.power-ring.on{border-color:var(--accent-blue);box-shadow:0 4px 12px #0284c726}.power-ring.on .power-icon{color:var(--accent-blue)}.power-icon{color:var(--text-muted);transition:var(--transition-smooth);font-size:1.6rem}.power-label{text-transform:uppercase;letter-spacing:.03em;margin-top:.6rem;font-size:.85rem;font-weight:700}.status-card{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:1.25rem;display:flex}.status-orb{width:70px;height:70px;transition:var(--transition-smooth);background:radial-gradient(circle at 30% 30%,#e2e8f0 0%,#cbd5e1 80%);border-radius:50%;position:relative;box-shadow:inset 0 1px 3px #fff9,0 2px 6px #0000000d}.status-orb.active{box-shadow:inset 0 2px 4px #fff6, var(--shadow-glow-blue);background:radial-gradient(circle at 30% 30%,#38bdf8 0%,#0284c7 80%);animation:2s infinite orb-pulse}.status-orb.warning{background:radial-gradient(circle at 30% 30%,#fbbf24 0%,#d97706 80%);box-shadow:inset 0 2px 4px #fff6,0 2px 6px #d977061a}.status-text{color:var(--text-secondary);margin-top:.6rem;font-size:.85rem;font-weight:700}.status-text.active{color:var(--accent-blue)}.savings-card{cursor:pointer;justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.savings-info{flex-grow:1}.savings-percentage{color:var(--accent-green);letter-spacing:-.03em;font-size:2.1rem;font-weight:800}.savings-label{color:var(--text-secondary);font-size:.85rem;font-weight:600}.savings-badge{color:var(--accent-green);background:#16a34a0f;border-radius:4px;align-items:center;gap:.25rem;margin-top:.3rem;padding:.25rem .5rem;font-size:.75rem;font-weight:600;display:inline-flex}.gauge-svg{width:90px;height:60px}.gauge-bg{fill:none;stroke:var(--bg-tertiary);stroke-width:8px;stroke-linecap:round}.gauge-fill{fill:none;stroke:var(--accent-green);stroke-width:8px;stroke-linecap:round;transition:stroke-dashoffset 1s ease-in-out}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0f172a66;justify-content:center;align-items:center;padding:1.5rem;animation:.2s ease-out fade-in;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:16px;width:100%;max-width:650px;max-height:90vh;animation:.25s cubic-bezier(.16,1,.3,1) slide-up;position:relative;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.modal-header{border-bottom:1px solid var(--glass-border);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-close-btn{color:var(--text-secondary);cursor:pointer;transition:var(--transition-smooth);background:0 0;border:none;align-items:center;display:flex}.modal-close-btn:hover{color:var(--accent-rose)}.modal-body{padding:1.5rem}.data-table-wrapper{border:1px solid var(--glass-border);background:#fff;border-radius:8px;overflow-x:auto}.data-table{border-collapse:collapse;text-align:left;width:100%;font-size:.85rem}.data-table th{background:var(--bg-primary);color:var(--text-secondary);border-bottom:1px solid var(--glass-border);padding:.75rem 1rem;font-weight:600}.data-table td{border-bottom:1px solid var(--glass-border);color:var(--text-primary);padding:.75rem 1rem}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--bg-primary)}.badge-status{text-transform:uppercase;border-radius:9999px;padding:.2rem .5rem;font-size:.7rem;font-weight:700;display:inline-block}.badge-status.issued{color:var(--accent-blue);background:#0284c714}.badge-status.completed{color:var(--accent-green);background:#16a34a14}.badge-status.canceled{color:var(--accent-rose);background:#dc262614}.alarms-list{flex-direction:column;gap:.75rem;display:flex}.alarm-item{color:#991b1b;background:#dc26260a;border:1px solid #dc26261a;border-radius:8px;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;font-size:.85rem;display:flex}.alarm-item.healthy{color:#166534;background:#16a34a0a;border:1px solid #16a34a1a;justify-content:center;align-items:center;padding:1.25rem}.alarm-title{margin-bottom:.15rem;font-weight:700}.alarm-desc{color:var(--text-secondary);font-size:.8rem}.eco-intelligence-card{border-left:4px solid var(--accent-blue);background:linear-gradient(180deg, #fff 0%, var(--bg-primary) 100%)}.insights-container{flex-direction:column;gap:1rem;display:flex}.insight-alert{background:#fff;border:1px solid #0284c726;border-radius:8px;align-items:flex-start;gap:.75rem;padding:1rem;display:flex;position:relative;box-shadow:0 2px 4px #00000003}.insight-icon{color:var(--accent-blue);flex-shrink:0;margin-top:.15rem}.insight-body{flex-grow:1}.insight-title{color:var(--text-primary);margin-bottom:.25rem;font-size:.9rem;font-weight:700}.insight-text{color:var(--text-secondary);margin-bottom:.75rem;font-size:.8rem;line-height:1.4}.insight-action-btn{background:var(--grad-water);color:#fff;cursor:pointer;transition:var(--transition-smooth);border:none;border-radius:6px;padding:.45rem .9rem;font-size:.75rem;font-weight:700}.insight-action-btn:hover{filter:brightness(1.05)}.insight-action-btn:disabled{background:var(--bg-tertiary);color:var(--text-muted);cursor:not-allowed;opacity:.8}.forecast-mini-chart{border:1px solid var(--glass-border);background:#fff;border-radius:8px;margin-top:.5rem;padding:.5rem}.forecast-label-row{color:var(--text-muted);justify-content:space-between;margin-top:.25rem;font-size:.7rem;display:flex}.chart-container{width:100%;height:200px;position:relative}.chart-svg{width:100%;height:100%;overflow:visible}.chart-grid-line{stroke:#0000000a;stroke-width:1px}.chart-line{fill:none;stroke-width:2px;stroke-linecap:round;transition:var(--transition-smooth)}.chart-area{opacity:.18;transition:var(--transition-smooth)}.chart-axis-text{fill:var(--text-muted);font-size:9px;font-weight:600}.chart-tooltip-line{stroke:var(--text-secondary);stroke-width:1px;stroke-dasharray:4}.chart-node{fill:var(--bg-secondary);stroke-width:2px;transition:var(--transition-smooth)}.schedule-list{flex-direction:column;gap:.75rem;margin-bottom:1.25rem;display:flex}.schedule-item{background:var(--bg-primary);border:1px solid var(--glass-border);transition:var(--transition-smooth);border-radius:8px;justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.schedule-item:hover{border-color:var(--glass-border-hover)}.schedule-time-block{align-items:center;gap:.75rem;display:flex}.schedule-time-icon{color:var(--accent-blue);background:#0284c70f;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.schedule-time{font-size:.95rem;font-weight:700}.schedule-details{color:var(--text-secondary);font-size:.8rem}.schedule-actions{gap:.5rem;display:flex}.btn-icon-only{color:var(--text-secondary);cursor:pointer;width:28px;height:28px;transition:var(--transition-smooth);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;display:flex}.btn-icon-only:hover{background:var(--bg-tertiary);color:var(--text-primary)}.btn-icon-only.delete:hover{color:var(--accent-rose);background:#dc262614}.schedule-mode-toggle{color:#92400e;background:#d977060a;border:1px solid #d977061a;border-radius:8px;justify-content:space-between;align-items:center;margin-top:1rem;padding:.75rem;font-size:.8rem;display:flex}.toggle-switch-wrapper{width:44px;height:24px;display:inline-block;position:relative}.toggle-switch-wrapper input{opacity:0;width:0;height:0}.slider-switch{cursor:pointer;border:1px solid var(--glass-border);background-color:#cbd5e1;border-radius:24px;transition:all .3s;position:absolute;inset:0}.slider-switch:before{content:"";background-color:#fff;border-radius:50%;width:16px;height:16px;transition:all .3s;position:absolute;bottom:3px;left:3px}input:checked+.slider-switch{background-color:var(--accent-blue)}input:checked+.slider-switch:before{transform:translate(20px)}input:disabled+.slider-switch{cursor:not-allowed;opacity:.45}.form-input:disabled{background:var(--bg-tertiary);color:var(--text-muted);cursor:not-allowed}.control-off,.control-off:hover{opacity:.45;cursor:not-allowed!important;filter:none!important;box-shadow:none!important}.schedule-form{background:var(--bg-primary);border:1px dashed var(--glass-border);border-radius:8px;grid-template-columns:1fr 1fr auto;align-items:end;gap:.5rem;padding:.75rem;display:grid}.form-group{flex-direction:column;gap:.25rem;display:flex}.form-group label{color:var(--text-secondary);text-transform:uppercase;font-size:.7rem;font-weight:600}.form-input{border:1px solid var(--glass-border);color:var(--text-primary);background:#fff;border-radius:6px;padding:.4rem .6rem;font-family:inherit;font-size:.85rem}.form-input:focus{border-color:var(--accent-blue);outline:none}.btn-primary{background:var(--grad-water);color:#fff;cursor:pointer;transition:var(--transition-smooth);border:none;border-radius:6px;padding:.5rem 1rem;font-size:.8rem;font-weight:700}.btn-primary:hover{filter:brightness(1.05)}@keyframes pulse-glow{0%{transform:scale(.95);box-shadow:0 0 #16a34a66}70%{transform:scale(1);box-shadow:0 0 0 8px #16a34a00}to{transform:scale(.95);box-shadow:0 0 #16a34a00}}@keyframes orb-pulse{0%{box-shadow:inset 0 2px 4px #fff6,0 0 #0284c766}50%{box-shadow:inset 0 2px 4px #fff6,0 0 15px #0284c799}to{box-shadow:inset 0 2px 4px #fff6,0 0 #0284c766}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes water-ripple{0%{r:8px;opacity:.85;stroke-width:1.5px}50%{opacity:.4}to{r:34px;opacity:0;stroke-width:.5px}}.water-spray-pulsar{transform-origin:50%;pointer-events:none;animation:1.8s cubic-bezier(.1,.8,.3,1) infinite water-ripple}@keyframes radar-ping{0%{opacity:.9;transform:scale(.9)}to{opacity:0;transform:scale(2.8)}}.radar-pulse-dot{background-color:#10b981;border-radius:50%;width:8px;height:8px;display:inline-block;position:relative;box-shadow:0 0 8px #10b981}.radar-pulse-dot:after{content:"";background-color:#10b981;border-radius:50%;width:100%;height:100%;animation:2s cubic-bezier(.16,1,.3,1) infinite radar-ping;position:absolute;top:0;left:0;box-shadow:0 0 6px #10b981}.map-3d-scene{perspective:1200px;perspective-origin:50% 40%;border:1px solid var(--glass-border);cursor:grab;-webkit-user-select:none;user-select:none;background:radial-gradient(circle at 50% 30%,#f8fafc 0%,#e2e8f0 100%);border-radius:12px;justify-content:center;align-items:center;width:100%;min-height:380px;display:flex;position:relative;overflow:hidden}.map-3d-scene.dragging{cursor:grabbing!important}.map-3d-interaction-hint{color:#fff;letter-spacing:.01em;-webkit-backdrop-filter:blur(8px);pointer-events:auto;z-index:25;white-space:nowrap;background:#0f172ac7;border-radius:20px;align-items:center;gap:.35rem;padding:.28rem .75rem;font-size:.7rem;font-weight:600;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%);box-shadow:0 4px 14px #00000040}.map-3d-ground-beacon{pointer-events:none;z-index:5;flex-direction:column;align-items:center;display:flex;position:absolute;transform:translate(-50%,-50%)}.map-3d-beacon-dot{border:1.5px solid #fff;border-radius:50%;width:9px;height:9px;animation:2s infinite pulse-ring;box-shadow:0 0 10px}.map-3d-beacon-label{color:#fff;text-shadow:0 1px 2px #000c;white-space:nowrap;background:#0f172ad9;border-radius:4px;margin-top:3px;padding:.05rem .35rem;font-size:.62rem;font-weight:800}.map-3d-stage{width:520px;height:360px;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.16,1,.3,1);position:relative}.map-3d-ground{transform-style:preserve-3d;background-position:50%;background-size:cover;border-radius:16px;position:absolute;inset:0;box-shadow:0 30px 60px -12px #0f172a40,0 18px 36px -18px #0f172a33,inset 0 0 0 1px #fffc}.map-3d-pedestal{background:linear-gradient(#334155 0%,#1e293b 100%);border-radius:16px;position:absolute;inset:0;transform:translateZ(-16px);box-shadow:0 25px 50px #0f172a4d}.map-3d-grid-overlay{pointer-events:none;background-image:linear-gradient(90deg,#ffffff26 1px,#0000 1px),linear-gradient(#ffffff26 1px,#0000 1px);background-size:36px 36px;border-radius:16px;position:absolute;inset:0}.map-3d-hud-card{transform-style:preserve-3d;cursor:pointer;z-index:20;transition:transform .3s cubic-bezier(.34,1.56,.64,1),filter .2s;position:absolute}.map-3d-hud-card:hover{filter:drop-shadow(0 12px 24px #0284c759)}.map-3d-hud-content{-webkit-backdrop-filter:blur(12px);box-sizing:border-box;white-space:nowrap;background:#fffffff5;border-radius:8px;flex-direction:column;gap:.25rem;width:140px;padding:.35rem .5rem;transition:all .25s;display:flex;box-shadow:0 10px 25px -5px #0f172a2e,0 8px 10px -6px #0f172a1f}.map-modal-content .map-3d-hud-content{box-sizing:border-box;white-space:nowrap;gap:.3rem;width:166px;padding:.45rem .6rem}.map-3d-hud-card.active .map-3d-hud-content{transform:scale(1.04);box-shadow:0 0 0 2px #0284c74d,0 12px 28px -4px #0284c74d;border-color:var(--accent-blue)!important}.map-3d-pin-stem{background:linear-gradient(#0284c7cc 0%,#0284c71a 100%);width:2px;height:22px;margin:0 auto}.map-3d-pin-base{background:#0284c799;border-radius:50%;width:10px;height:5px;margin:0 auto;animation:2s infinite pulse-ring;box-shadow:0 0 8px #0284c7cc}@keyframes pulse-ring{0%{opacity:.8;transform:scale(1)}50%{opacity:.3;transform:scale(1.6)}to{opacity:.8;transform:scale(1)}}.water-flow-ripple{opacity:.8;pointer-events:none;border:2px solid #0284c7;border-radius:50%;animation:1.8s ease-out infinite water-ripple-expand;position:absolute}@keyframes water-ripple-expand{0%{opacity:.9;width:10px;height:10px;transform:translate(-50%,-50%)scale(.5)}to{opacity:0;width:60px;height:60px;transform:translate(-50%,-50%)scale(2.2)}}.badge-status.failed{color:var(--accent-rose);background:#dc262614;border:1px solid #dc262633}.badge-status.skipped{color:var(--text-muted);background:#64748b14;border:1px solid #64748b33}.p-page{flex-direction:column;gap:1rem;width:100%;max-width:1600px;margin:0 auto;padding:1.25rem 2rem 3rem;display:flex}.p-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.p-between{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.p-stack{flex-direction:column;gap:.75rem;display:flex}.p-grid-12{grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem;display:grid}.p-grid-auto{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;display:grid}.p-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.p-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}@media (max-width:1000px){.p-grid-12>*{grid-column:span 12!important}.p-grid-2,.p-grid-3{grid-template-columns:1fr}.p-page{padding:1rem}}.p-card{border:1px solid var(--glass-border);box-shadow:var(--shadow-premium);background:#fff;border-radius:12px;min-width:0;padding:1.1rem 1.25rem}.p-card-title{color:var(--text-primary);align-items:center;gap:.45rem;font-size:.95rem;font-weight:800;display:flex}.p-card-sub{color:var(--text-secondary);margin-top:.15rem;font-size:.75rem}.p-card-head{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.9rem;display:flex}.p-muted{color:var(--text-muted);font-size:.75rem}.p-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem}.p-h1{color:var(--text-primary);font-size:1.25rem;font-weight:800}.p-h2{color:var(--text-primary);font-size:1.05rem;font-weight:800}.p-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);font-size:.65rem;font-weight:700}.p-stat{background:var(--bg-tertiary);border-radius:10px;min-width:0;padding:.7rem .85rem}.p-stat-value{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:800;line-height:1.2}.p-stat-unit{color:var(--text-secondary);margin-left:.2rem;font-size:.75rem;font-weight:600}.p-btn{cursor:pointer;border:1px solid var(--glass-border);color:var(--text-primary);transition:var(--transition-smooth);white-space:nowrap;background:#fff;border-radius:7px;align-items:center;gap:.35rem;padding:.42rem .8rem;font-family:inherit;font-size:.78rem;font-weight:700;display:inline-flex}.p-btn:hover:not(:disabled){border-color:var(--glass-border-hover);background:var(--bg-tertiary)}.p-btn:disabled{opacity:.55;cursor:not-allowed}.p-btn-primary{background:var(--brand,var(--accent-blue));color:#fff;border-color:#0000}.p-btn-primary:hover:not(:disabled){background:var(--brand,var(--accent-blue));filter:brightness(.93)}.p-btn-danger{color:var(--accent-rose);background:#dc26260d;border-color:#dc262640}.p-btn-danger:hover:not(:disabled){background:#dc26261a}.p-btn-ghost{color:var(--text-secondary);background:0 0;border-color:#0000}.p-btn-sm{padding:.25rem .55rem;font-size:.72rem}.p-field{flex-direction:column;gap:.3rem;min-width:0;display:flex}.p-input,.p-select,.p-textarea{background:var(--bg-primary);width:100%;color:var(--text-primary);transition:var(--transition-smooth);border:1px solid #cbd5e1;border-radius:7px;outline:none;padding:.45rem .65rem;font-family:inherit;font-size:.8rem}.p-input:focus,.p-select:focus,.p-textarea:focus{border-color:var(--brand,var(--accent-blue));background:#fff;box-shadow:0 0 0 3px #0284c71a}.p-textarea{resize:vertical;min-height:120px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem}.p-check{color:var(--text-primary);cursor:pointer;align-items:center;gap:.4rem;font-size:.8rem;display:inline-flex}.p-hint{color:var(--text-muted);font-size:.7rem}.p-error{color:var(--accent-rose);background:#fef2f2;border:1px solid #fee2e2;border-radius:8px;padding:.55rem .75rem;font-size:.75rem;font-weight:600}.p-notice{color:var(--text-primary);background:#0284c70f;border:1px solid #0284c72e;border-radius:8px;padding:.55rem .75rem;font-size:.75rem}.p-warn{color:#92400e;background:#d9770612;border:1px solid #d9770640;border-radius:8px;padding:.55rem .75rem;font-size:.75rem}.p-badge{text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border:1px solid #0000;border-radius:4px;align-items:center;gap:.3rem;padding:.12rem .45rem;font-size:.65rem;font-weight:800;display:inline-flex}.p-badge-green{color:var(--accent-green);background:#16a34a1a;border-color:#16a34a40}.p-badge-blue{color:var(--accent-blue);background:#0284c71a;border-color:#0284c738}.p-badge-amber{color:var(--accent-amber);background:#d977061a;border-color:#d9770640}.p-badge-red{color:var(--accent-rose);background:#dc262614;border-color:#dc262638}.p-badge-grey{color:var(--text-muted);background:#64748b1a;border-color:#64748b33}.p-badge-purple{color:var(--accent-purple);background:#7c3aed14;border-color:#7c3aed33}.p-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block}.p-table-wrap{border:1px solid var(--glass-border);border-radius:10px;overflow-x:auto}.p-table{border-collapse:collapse;width:100%;font-size:.78rem}.p-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);background:var(--bg-tertiary);white-space:nowrap;padding:.5rem .7rem;font-size:.65rem;font-weight:700}.p-table td{border-top:1px solid var(--glass-border);color:var(--text-primary);vertical-align:middle;padding:.5rem .7rem}.p-table tr:hover td{background:#fbfdff}.p-table td.num,.p-table th.num{text-align:right;font-variant-numeric:tabular-nums}.p-tabs{border-bottom:1px solid var(--glass-border);gap:.25rem;display:flex;overflow-x:auto}.p-tab{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:.5rem 1rem;font-family:inherit;font-size:.82rem;font-weight:600}.p-tab.active{color:var(--brand,var(--accent-blue));border-bottom-color:var(--brand,var(--accent-blue));font-weight:800}.p-topbar{z-index:50;border-bottom:1px solid var(--glass-border);background:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 2rem;display:flex;position:sticky;top:0;box-shadow:0 1px 2px #00000008}.p-nav{gap:.25rem;display:flex}.p-nav a{color:var(--text-secondary);border-radius:6px;padding:.35rem .75rem;font-size:.8rem;font-weight:700;text-decoration:none}.p-nav a.active,.p-nav a:hover{color:var(--accent-blue);background:#0284c70f}.p-admin-banner{z-index:200;color:#e2e8f0;background:#0f172a;justify-content:space-between;align-items:center;gap:1rem;padding:.35rem 1.25rem;font-size:.75rem;font-weight:600;display:flex;position:relative}.p-admin-banner a,.p-admin-banner button{color:#7dd3fc;font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:none}.p-empty{text-align:center;color:var(--text-muted);padding:1.5rem;font-size:.8rem}.p-center{min-height:60vh;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;display:flex}.p-spin{animation:1s linear infinite spin}.p-toggle{cursor:pointer;width:38px;height:21px;transition:var(--transition-smooth);border:none;border-radius:999px;flex-shrink:0;position:relative}.p-toggle:after{content:"";width:15px;height:15px;transition:var(--transition-smooth);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #0003}.p-toggle.on{background:var(--brand,var(--accent-blue))}.p-toggle.off{background:#cbd5e1}.p-toggle.on:after{left:20px}.p-toggle:disabled{opacity:.5;cursor:not-allowed}.p-modal-backdrop{z-index:300;background:#0f172a59;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.p-modal{background:#fff;border-radius:14px;width:100%;max-width:560px;max-height:90vh;padding:1.25rem 1.4rem;overflow:auto;box-shadow:0 25px 50px -12px #00000040}.p-kv{grid-template-columns:max-content 1fr;gap:.3rem 1rem;font-size:.78rem;display:grid}.p-kv dt{color:var(--text-secondary);font-weight:600}.p-kv dd{color:var(--text-primary);overflow-wrap:anywhere;min-width:0;margin:0}.p-link{color:var(--accent-blue);cursor:pointer;font-weight:700;font:inherit;background:0 0;border:none;padding:0;text-decoration:none}.p-link:hover{text-decoration:underline}
