:root{--bg-primary: #111827;--bg-secondary: #1f2937;--bg-card: #374151;--bg-input: #111827;--bg-hover: rgba(255, 255, 255, .05);--text-primary: #f9fafb;--text-secondary: #9ca3af;--accent: #f59e0b;--accent-hover: #fbbf24;--green: #10b981;--red: #ef4444;--blue: #3b82f6;--border-color: #4b5563;--drawer-width: 280px;--monospace-font: "Fira Code", "Courier New", monospace}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);-webkit-tap-highlight-color:transparent;overflow-x:hidden;padding-top:env(safe-area-inset-top,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);padding-bottom:env(safe-area-inset-bottom,0px)}h1,h2,h3{color:var(--accent);margin-bottom:1rem}button{background-color:var(--accent);color:var(--bg-primary);border:none;padding:1rem;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:background-color .2s}button:disabled{background-color:var(--bg-card);cursor:not-allowed}.button-group{display:flex;gap:1rem;margin-top:1rem}#super-admin-toolbar,.header{left:env(safe-area-inset-left,0px);right:env(safe-area-inset-right,0px);padding-top:calc(.75rem + env(safe-area-inset-top,0px))}#status-bar,#bottom-panels-container{left:env(safe-area-inset-left,0px);right:env(safe-area-inset-right,0px);padding-bottom:env(safe-area-inset-bottom,0px)}.card{background-color:var(--bg-secondary);padding:1.5rem;border-radius:12px;margin-bottom:1rem}.hidden{display:none!important}body.debug-drawer-open #main-content{margin-right:var(--drawer-right-width, 800px)}#debug-drawer{transform:translate(100%);right:0;left:auto}body.debug-drawer-open #debug-drawer{transform:translate(0)}.drawer-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:1000;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s}body.drawer-open .drawer-overlay,body.debug-drawer-open .drawer-overlay{opacity:1;visibility:visible}.category-panel{position:fixed;top:0;left:0;width:var(--drawer-width);height:100%;background-color:var(--bg-secondary);z-index:1001;transform:translate(-100%);transition:transform .3s ease;display:flex;flex-direction:column;padding:1rem;border-right:1px solid var(--border-color)}body.drawer-open .category-panel{transform:translate(0)}body.drawer-open .drawer-overlay{opacity:1}.panel-title{color:var(--accent);margin:.5rem 0 1.5rem 1rem;font-size:1.5rem}.menu-button{display:flex;align-items:center;gap:.5rem;background:none;border:none;color:var(--text-secondary);padding:.9rem .5rem;border-radius:8px;text-align:left;font-size:1rem;width:100%;cursor:pointer}.menu-button:hover,.menu-button.active{background-color:var(--bg-card);color:var(--text-primary)}.menu-button i{width:20px;height:20px}.menu-toggle-btn{background:none;border:none;color:var(--text-primary);cursor:pointer;padding:.5rem;width:auto}#main-content{transition:margin-right .3s ease-in-out}.header{position:sticky;top:0;z-index:999;display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.header h2{margin:0;flex-grow:1}.mode-controls{display:flex;align-items:center;gap:1.5rem;margin-left:2rem}.mode-group,.role-group{display:flex;background-color:var(--bg-primary);border-radius:8px;padding:4px;border:1px solid var(--bg-card)}.mode-button,.role-button{padding:6px 12px;font-size:.8rem;font-weight:700;border:none;background-color:transparent;color:var(--text-secondary);border-radius:6px;display:flex;align-items:center;gap:6px;cursor:pointer;transition:all .2s}.mode-button:hover,.role-button:hover{background-color:var(--bg-card)}.indicator-dot{width:10px;height:10px;border-radius:50%;background-color:#555;transition:all .3s}.mode-button.active{color:var(--text-primary)}.mode-button.active .indicator-dot{background-color:var(--accent);box-shadow:0 0 8px var(--accent)}.role-button.active{background-color:var(--accent);color:var(--bg-primary)}.header-actions{display:flex;align-items:center;gap:1rem}.btn-add-widget{background-color:var(--green, #10b981);color:#fff;padding:.5rem 1rem;border-radius:.5rem;font-weight:600;border:none;cursor:pointer;white-space:nowrap}.edit-mode-label{display:flex;align-items:center;cursor:pointer}.edit-mode-text{margin-right:.75rem;color:#d1d5db}.toggle-switch{position:relative;width:3.5rem;height:2rem}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:#4b5563;border-radius:9999px;transition:.4s}.toggle-slider:before{position:absolute;content:"";height:1.5rem;width:1.5rem;left:4px;bottom:4px;background-color:#fff;border-radius:50%;transition:.4s}.toggle-switch input:checked+.toggle-slider{background-color:var(--green)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(1.5rem)}.status-indicator{display:flex;align-items:center;gap:.5rem}.status-dot{width:12px;height:12px;border-radius:50%}.status-dot.online{background-color:var(--green)}.status-dot.offline{background-color:var(--red)}#view-content{padding:1.5rem}.login-screen{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100vh;padding:1rem;max-width:400px;margin:auto;gap:1rem}.login-screen input{width:100%;padding:1rem;border-radius:8px;border:1px solid var(--border-color);background-color:var(--bg-secondary);color:#fff;font-size:1rem}.login-screen button{width:100%;padding:1rem;border-radius:8px}#status-bar{position:fixed;bottom:0;left:0;width:100%;color:var(--bg-primary);padding:4px 15px;font-size:.8rem;font-weight:700;z-index:1500;display:flex;justify-content:space-between;align-items:center}#version-info{font-family:var(--monospace-font);color:var(--accent)}.choices__inner{background-color:var(--bg-input);border:1px solid var(--border-color);color:var(--text-primary);min-height:auto;padding:8px 12px}.choices__list--dropdown,.choices__list[aria-expanded]{background-color:var(--bg-secondary);border-color:var(--border-color)}.choices__input{background-color:var(--bg-input)!important;color:var(--text-primary)!important}.choices__item--choice.is-highlighted{background-color:var(--bg-card)!important}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-dark);border-radius:10px}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#FC5C7D,var(--accent));border-radius:10px;border:1px solid var(--bg-dark)}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--accent-hover),#FC5C7D)}#viewport-container{flex-grow:1;display:flex;justify-content:center;align-items:flex-start;padding:2rem;overflow:auto;transition:all .3s ease-in-out}#view-content{width:100%;height:100%;border:1px solid transparent;box-shadow:0 10px 30px #0003;transition:all .3s ease-in-out}body.device-preview-mobile #view-content{width:390px;height:844px;max-width:100%;max-height:100%;border-color:var(--border-color);border-radius:40px;overflow:hidden}body.device-preview-tablet #view-content{width:768px;height:1024px;max-width:100%;max-height:100%;border-color:var(--border-color);border-radius:20px;overflow:hidden}body.device-preview-desktop #view-content{width:100%;height:100%;max-width:1920px;border-color:transparent;border-radius:0}.status-bar-filter{display:flex;gap:.5rem;align-items:center;padding:0 .5rem;overflow-x:auto;max-width:50%;scrollbar-width:thin;scrollbar-color:var(--accent) var(--bg-main)}.status-bar-filter::-webkit-scrollbar{height:4px}.status-bar-filter::-webkit-scrollbar-thumb{background-color:var(--accent);border-radius:2px}.event-filter-item{display:flex;align-items:center;gap:.25rem;padding:.2rem .5rem;border-radius:4px;background-color:var(--bg-card);font-size:.7rem;color:var(--text-secondary);cursor:pointer;transition:background-color .2s,color .2s,box-shadow .2s;white-space:nowrap;border:1px solid transparent}.event-filter-item:hover{border-color:var(--accent-hover)}.event-filter-item input[type=checkbox]{display:none}.event-filter-item:has(input:checked){color:var(--text-primary);background-color:var(--accent-dark)}.event-filter-item.active{background-color:var(--green);color:#fff;box-shadow:0 0 8px var(--green);border-color:var(--green)}#status-bar{gap:1rem}.status-bar-btn{background:none;border:none;color:var(--bg-primary);cursor:pointer;padding:0;margin:0;line-height:0;opacity:.7;transition:opacity .2s,transform .2s}.status-bar-btn:hover{opacity:1;transform:rotate(90deg)}.status-bar-btn i{width:16px;height:16px}#force-reload-btn.update-available{display:inline-flex;align-items:center;gap:.5rem;background-color:var(--accent);color:var(--bg-primary);padding:4px 10px;border-radius:12px;font-size:.8rem;font-weight:700;animation:pulse-glow 2s infinite}#force-reload-btn.update-available:hover{transform:scale(1.05);opacity:1}@keyframes pulse-glow{0%{box-shadow:0 0 4px var(--accent)}50%{box-shadow:0 0 12px var(--accent)}to{box-shadow:0 0 4px var(--accent)}}.hidden,.admin-only{display:none!important}body.user-is-admin .admin-only{display:flex}.bitmask-container{display:flex;flex-direction:column;gap:.75rem;padding:.5rem}.bitmask-row{display:flex;justify-content:space-between;align-items:center}.bitmask-row label{font-size:.9rem}.widget--bitmask-to-coil-trigger .widget-button{margin-top:1rem;width:100%}.config-selector-container{display:flex;flex-direction:column;justify-content:center;height:100%}.widget--recipe-editor .widget__body{padding:0}.widget--recipe-editor .recipe-editor-widget{width:100%;max-width:100%}.vfd-control-container{display:flex;flex-direction:column;width:100%;gap:1rem}.vfd-display{text-align:center}.vfd-display .value{font-size:2rem;font-weight:700;font-family:monospace}.vfd-display .unit{font-size:1rem;color:var(--text-secondary);margin-left:5px}.vfd-slider{width:100%}.custom-btn{width:100%;height:100px;background:linear-gradient(145deg,#2a3b55,#1f293a);border:1px solid #374151;border-radius:12px;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;box-shadow:5px 5px 10px #151d29,-5px -5px 10px #354561;transition:all .2s ease;position:relative}.custom-btn:active{box-shadow:inset 5px 5px 10px #151d29,inset -5px -5px 10px #354561}.custom-btn .label{font-weight:700;font-size:.9rem;margin-bottom:5px}.custom-btn .state{font-family:monospace;font-size:.8rem;color:#9ca3af}.custom-btn .led{position:absolute;top:10px;right:10px;width:12px;height:12px;border-radius:50%;background-color:#374151;box-shadow:inset 1px 1px 2px #00000080;transition:all .3s}.unified-cell.is-active .custom-btn{border:1px solid #10b981}.unified-cell.is-active .led{background-color:#0f0;box-shadow:0 0 10px #0f0,0 0 20px #0f0}.unified-cell.is-active .state{color:#10b981;text-shadow:0 0 5px rgba(16,185,129,.5)}
