:root{--bg-main: #090d16;--bg-card: rgba(15, 23, 42, .75);--bg-card-hover: rgba(30, 41, 59, .85);--border-card: rgba(255, 255, 255, .08);--border-active: rgba(16, 185, 129, .4);--primary: #10b981;--primary-glow: rgba(16, 185, 129, .35);--primary-dark: #059669;--secondary: #06b6d4;--secondary-glow: rgba(6, 182, 212, .35);--accent-amber: #f59e0b;--accent-rose: #ef4444;--accent-purple: #a855f7;--text-main: #f8fafc;--text-muted: #94a3b8;--text-dim: #64748b;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--radius-full: 9999px;--shadow-card: 0 8px 32px 0 rgba(0, 0, 0, .37);--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", monospace}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-main);background-image:radial-gradient(at 0% 0%,rgba(16,185,129,.08) 0px,transparent 50%),radial-gradient(at 100% 0%,rgba(6,182,212,.08) 0px,transparent 50%),radial-gradient(at 50% 100%,rgba(168,85,247,.05) 0px,transparent 50%);background-attachment:fixed;color:var(--text-main);font-family:var(--font-sans);min-height:100vh;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5{font-weight:700;letter-spacing:-.02em}.mono{font-family:var(--font-mono)}.app-container{max-width:1380px;margin:0 auto;padding:24px 20px 60px}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;padding:20px 24px;background:var(--bg-card);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.logo-section{display:flex;align-items:center;gap:16px}.logo-badge{width:48px;height:48px;background:linear-gradient(135deg,#10b981,#06b6d4);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;box-shadow:0 0 20px var(--primary-glow)}.brand-title{font-size:22px;font-weight:800;background:linear-gradient(to right,#fff,#94a3b8);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.brand-subtitle{font-size:12px;color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase}.header-status{display:flex;align-items:center;gap:20px}.status-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:var(--radius-full);font-size:13px;font-weight:600;border:1px solid rgba(255,255,255,.1);background:#0000004d}.status-dot{width:9px;height:9px;border-radius:50%}.status-dot.online{background:var(--primary);box-shadow:0 0 10px var(--primary)}.status-dot.offline{background:var(--accent-rose);box-shadow:0 0 10px var(--accent-rose)}.master-switch-container{display:flex;align-items:center;gap:10px}.switch{position:relative;display:inline-block;width:54px;height:28px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#334155;transition:.3s cubic-bezier(.4,0,.2,1);border-radius:34px;border:1px solid rgba(255,255,255,.1)}.slider:before{position:absolute;content:"";height:20px;width:20px;left:4px;bottom:3px;background-color:#fff;transition:.3s cubic-bezier(.4,0,.2,1);border-radius:50%}input:checked+.slider{background-color:var(--primary);box-shadow:0 0 15px var(--primary-glow)}input:checked+.slider:before{transform:translate(26px)}.dashboard-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:24px}.col-12{grid-column:span 12}.col-8{grid-column:span 8}.col-6{grid-column:span 6}.col-4{grid-column:span 4}@media (max-width: 1024px){.col-8,.col-6,.col-4{grid-column:span 12}}.glass-card{background:var(--bg-card);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border-card);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-card);transition:border-color .2s ease}.glass-card:hover{border-color:#ffffff26}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.card-title{font-size:16px;font-weight:700;color:var(--text-main);display:flex;align-items:center;gap:10px}.state-banner{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-radius:var(--radius-md);margin-bottom:20px;background:#0006;border:1px solid rgba(255,255,255,.08)}.state-indicator{display:flex;align-items:center;gap:14px}.state-badge{padding:6px 16px;border-radius:var(--radius-full);font-size:14px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.state-badge.idle{background:#64748b33;color:#94a3b8;border:1px solid rgba(148,163,184,.3)}.state-badge.spraying{background:#06b6d440;color:#22d3ee;border:1px solid #06b6d4;animation:pulse-glow-cyan 1.5s infinite}.state-badge.buzzing{background:#f59e0b40;color:#fbbf24;border:1px solid #f59e0b;animation:pulse-glow-amber 1.5s infinite}.state-badge.cooldown{background:#a855f740;color:#c084fc;border:1px solid #a855f7;animation:pulse-glow-purple 2s infinite}@keyframes pulse-glow-cyan{0%,to{box-shadow:0 0 15px #06b6d466}50%{box-shadow:0 0 25px #06b6d4cc}}@keyframes pulse-glow-amber{0%,to{box-shadow:0 0 15px #f59e0b66}50%{box-shadow:0 0 25px #f59e0bcc}}@keyframes pulse-glow-purple{0%,to{box-shadow:0 0 15px #a855f74d}50%{box-shadow:0 0 22px #a855f799}}.sensor-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.sensor-tile{background:#00000040;border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-md);padding:16px;display:flex;align-items:center;justify-content:space-between;transition:all .2s ease}.sensor-tile.active{border-color:#ef444499;background:#ef44441f;box-shadow:0 0 20px #ef444440}.sensor-info h4{font-size:14px;color:var(--text-main);margin-bottom:4px}.sensor-info p{font-size:12px;color:var(--text-muted)}.sensor-val{padding:4px 10px;border-radius:var(--radius-sm);font-size:12px;font-weight:700}.sensor-val.high{background:#ef4444;color:#fff}.sensor-val.low{background:#334155;color:#94a3b8}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:var(--radius-md);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;border:none;font-family:inherit}.btn-primary{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 4px 14px #10b9814d}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #10b98173}.btn-secondary{background:#ffffff14;color:var(--text-main);border:1px solid rgba(255,255,255,.12)}.btn-secondary:hover{background:#ffffff24}.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 4px 14px #ef44444d}.btn-danger:hover{transform:translateY(-1px);box-shadow:0 6px 20px #ef444473}.btn-spray{background:linear-gradient(135deg,#06b6d4,#0891b2);color:#fff}.btn-spray:hover{box-shadow:0 6px 20px #06b6d473}.btn-audio{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.btn-audio:hover{box-shadow:0 6px 20px #f59e0b73}.input-field{background:#0000004d;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-md);padding:10px 14px;color:var(--text-main);font-family:inherit;font-size:14px;outline:none;transition:border-color .2s ease;width:100%}.input-field:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow)}.schedule-table{width:100%;border-collapse:collapse;margin-top:12px}.schedule-table th{text-align:left;padding:10px 12px;font-size:12px;color:var(--text-muted);border-bottom:1px solid rgba(255,255,255,.08)}.schedule-table td{padding:12px;font-size:14px;border-bottom:1px solid rgba(255,255,255,.04)}.schedule-table tr:hover{background:#ffffff05}.log-stream{max-height:280px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding-right:4px}.log-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#00000040;border-radius:var(--radius-sm);border-left:3px solid #64748b;font-size:13px}.log-item.PIR_TRIGGER,.log-item.RADAR_TRIGGER,.log-item.PIR_HIGH{border-left-color:#ef4444}.log-item.AUDIO_TRIGGERED,.log-item.AUDIO_COMPLETED{border-left-color:#f59e0b}.log-item.SPRAY_TRIGGERED,.log-item.SPRAY_COMPLETED{border-left-color:#06b6d4}.log-item.CONFIG_UPDATED,.log-item.SCHEDULE_UPDATED{border-left-color:#10b981}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#0000001a}::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ffffff40}@media (max-width: 768px){.header{flex-direction:column;align-items:flex-start;gap:16px}.header-status{width:100%;justify-content:flex-start;flex-wrap:wrap;gap:12px}}
