@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";
:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-primary:#0a0d14;--bg-secondary:#0f131d;--bg-surface:#131824;--bg-surface-elevated:#1a2233;--bg-base:#0c1018;--bg-glass:#131824;--border-subtle:#ffffff1f;--border-strong:#ffffff38;--border-focus:#3b82f6;--card-shadow:0 4px 16px -2px #00000080, 0 0 0 1px #ffffff17;--card-shadow-hover:0 8px 28px -4px #000000a6, 0 0 0 1px #3b82f666;--specular-highlight:#ffffff1a;--input-inset-shadow:#0000004d;--focus-ring-glow:#3b82f640;--input-bg:#0b0f17;--input-border:#ffffff2e;--primary-50:#eff6ff;--primary-100:#dbeafe;--primary-400:#38bdf8;--primary-500:#3b82f6;--primary-600:#2563eb;--primary-700:#1d4ed8;--accent-emerald:#10b981;--accent-amber:#f59e0b;--accent-rose:#f43f5e;--accent-cyan:#06b6d4;--accent-violet:#a855f7;--text-primary:#f8fafc;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--font-main:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--radius-sm:7px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--sidebar-width:256px;--sidebar-width-collapsed:68px;--hover-surface:#ffffff0d}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-primary:#e9eef5;--bg-secondary:#f1f4f8;--bg-surface:#f5f7fa;--bg-surface-elevated:#e9eef4;--bg-base:#dce4ee;--bg-glass:#f5f7fa;--border-subtle:#d5dee9;--border-strong:#bdc9d8;--border-focus:#2563eb;--card-shadow:0 1px 3px #0f172a0d, 0 6px 18px -3px #0f172a12;--card-shadow-hover:0 4px 12px #0f172a0f, 0 16px 32px -4px #0f172a1a;--specular-highlight:#ffffffd9;--input-inset-shadow:#0f172a0a;--focus-ring-glow:#2563eb33;--input-bg:#f5f7fa;--input-border:#bdc9d8;--primary-50:#eff6ff;--primary-100:#dbeafe;--primary-400:#3b82f6;--primary-500:#2563eb;--primary-600:#1d4ed8;--primary-700:#1e40af;--accent-emerald:#059669;--accent-amber:#d97706;--accent-rose:#e11d48;--accent-cyan:#0891b2;--accent-violet:#7c3aed;--text-primary:#0f172a;--text-secondary:#29384b;--text-muted:#526175;--hover-surface:#f1f5f9}[data-theme=light] body{letter-spacing:0;-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto;text-rendering:auto}@supports (color:color(display-p3 1 1 1)){:root{--primary-500:color(display-p3 .15 .52 1);--primary-600:color(display-p3 .08 .42 .98);--accent-emerald:color(display-p3 .02 .85 .52);--accent-cyan:color(display-p3 0 .8 .95);--accent-amber:color(display-p3 .98 .62 .05);--accent-rose:color(display-p3 .98 .22 .38);--accent-violet:color(display-p3 .65 .32 .98)}[data-theme=light]{--primary-500:color(display-p3 .08 .48 1);--primary-600:color(display-p3 .04 .4 .96);--border-focus:color(display-p3 .04 .4 .96)}}*{box-sizing:border-box;margin:0;padding:0}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;scroll-behavior:smooth}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial}}body{font-family:var(--font-main);background-color:var(--bg-primary);color:var(--text-primary);letter-spacing:-.012em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:geometricprecision;min-height:100vh;line-height:1.5;transition:background-color .25s cubic-bezier(.16,1,.3,1),color .25s cubic-bezier(.16,1,.3,1)}::selection{color:inherit;background:#2563eb2e}a{color:inherit;text-decoration:none}.card-elevated{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--card-shadow);transition:border-color .25s cubic-bezier(.16,1,.3,1),box-shadow .25s cubic-bezier(.16,1,.3,1),transform .25s cubic-bezier(.16,1,.3,1)}.card-elevated:hover{border-color:var(--border-strong);box-shadow:var(--card-shadow-hover)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#94a3b866;border-radius:9999px;transition:background-color .2s}::-webkit-scrollbar-thumb:hover{background:#64748ba6}:root ::-webkit-scrollbar-thumb{background:#ffffff29}:root ::-webkit-scrollbar-thumb:hover{background:#ffffff47}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.form-input,.form-select,.form-textarea{border-radius:var(--radius-md);background-color:var(--input-bg);border:1px solid var(--input-border);width:100%;color:var(--text-primary);box-shadow:0 1px 2px var(--input-inset-shadow);padding:8px 12px;font-family:inherit;font-size:.875rem;transition:border-color .2s cubic-bezier(.16,1,.3,1),box-shadow .2s cubic-bezier(.16,1,.3,1),background-color .2s cubic-bezier(.16,1,.3,1)}.form-input:hover,.form-select:hover,.form-textarea:hover{border-color:var(--border-strong)}.form-input:focus,.form-select:focus,.form-textarea:focus{background-color:var(--bg-surface);border-color:var(--border-focus);box-shadow:0 0 0 3px var(--focus-ring-glow), 0 1px 2px #0000000a;outline:none}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted);opacity:.85}.btn{border-radius:var(--radius-md);cursor:pointer;letter-spacing:-.01em;-webkit-user-select:none;user-select:none;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-family:inherit;font-size:.8125rem;font-weight:600;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(.5px)scale(.985)}.btn-primary{background:linear-gradient(135deg, #3b82f6 0%, var(--primary-600) 50%, var(--primary-700) 100%);color:#fff;text-shadow:0 1px 1px #00000026;border:1px solid #ffffff29;box-shadow:0 1px 2px #00000014,0 4px 14px -1px #2563eb59}.btn-primary:hover{background:linear-gradient(135deg, #60a5fa 0%, var(--primary-500) 50%, var(--primary-600) 100%);box-shadow:0 2px 6px #0000001a,0 8px 24px -2px #2563eb73}.btn-secondary{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-subtle);box-shadow:0 1px 2px #00000008}.btn-secondary:hover{background:var(--hover-surface);color:var(--text-primary);border-color:#2563eb40;box-shadow:0 2px 8px #0000000d}.btn-outline{color:var(--text-secondary);border:1px solid var(--border-subtle);background:0 0}.btn-outline:hover{background:var(--hover-surface);color:var(--text-primary);border-color:#2563eb4d;box-shadow:0 2px 6px #0000000a}.dashboard-tabs,.iot-tabs{border:1px solid var(--border-subtle);border-radius:var(--radius-full);background:var(--bg-surface);max-width:100%;box-shadow:var(--card-shadow);scrollbar-width:thin;align-items:center;gap:6px;padding:6px;display:flex;overflow-x:auto}.dashboard-tab,.iot-tab{border-radius:var(--radius-full);min-height:44px;color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:10px;padding:9px 18px;font-family:inherit;font-size:.95rem;font-weight:650;text-decoration:none;transition:color .18s,background-color .18s,box-shadow .18s,transform .18s;display:inline-flex}.dashboard-tab:hover,.iot-tab:hover{background:var(--hover-surface);color:var(--text-primary)}.dashboard-tab[aria-current=page],.dashboard-tab[aria-pressed=true],.iot-tab[aria-current=page]{background:linear-gradient(135deg, var(--primary-500), var(--primary-600));box-shadow:0 3px 10px color-mix(in srgb, var(--primary-600) 28%, transparent);color:#fff}.dashboard-tab:focus-visible,.iot-tab:focus-visible,.iot-icon-button:focus-visible{outline:3px solid var(--border-focus);outline-offset:2px}.dashboard-tab-badge,.iot-tab-badge{border-radius:var(--radius-full);background:color-mix(in srgb, var(--accent-rose) 16%, transparent);min-width:22px;height:22px;color:var(--accent-rose);justify-content:center;align-items:center;padding:0 6px;font-size:.72rem;font-weight:800;line-height:1;display:inline-flex}.dashboard-tab[aria-current=page] .dashboard-tab-badge,.iot-tab[aria-current=page] .iot-tab-badge{color:#fff;background:#fff3}.btn.dashboard-icon-action,.btn.iot-icon-button{border-radius:13px;width:42px;min-width:42px;height:42px;padding:0}.btn.dashboard-icon-action-danger,.btn.iot-icon-button-danger{color:var(--accent-rose)}.btn.dashboard-icon-action-danger:hover,.btn.iot-icon-button-danger:hover{background:color-mix(in srgb, var(--accent-rose) 10%, transparent);border-color:color-mix(in srgb, var(--accent-rose) 34%, transparent);color:var(--accent-rose)}.btn.iot-icon-button:disabled{cursor:not-allowed;opacity:.55;transform:none}@media (max-width:600px){.dashboard-tabs,.iot-tabs{width:100%}.dashboard-tab,.iot-tab{min-height:42px;padding:8px 14px;font-size:.9rem}}.data-table td:last-child .btn{border-radius:12px;width:40px;min-width:40px;height:40px;padding:0}.data-table td:last-child .btn:focus-visible{outline:3px solid var(--border-focus);outline-offset:2px}.btn-danger{color:var(--accent-rose);background:#f43f5e1a;border:1px solid #f43f5e40;box-shadow:0 1px 2px #f43f5e0d}.btn-danger:hover{background:#f43f5e2e;border-color:#f43f5e66;box-shadow:0 3px 10px #f43f5e33}.data-table{border-collapse:collapse;text-align:left;width:100%;font-size:.8125rem}.data-table th{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);border-bottom:1px solid var(--border-subtle);background:var(--bg-surface-elevated);padding:12px 18px;font-size:.72rem;font-weight:700}.data-table td{border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);vertical-align:middle;padding:12px 18px;transition:background-color .15s cubic-bezier(.16,1,.3,1),color .15s cubic-bezier(.16,1,.3,1)}.data-table tr:hover td{background:var(--hover-surface);color:var(--text-primary)}main table{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-surface);max-width:100%;box-shadow:var(--card-shadow);font-size:.84rem;overflow:hidden;border-collapse:separate!important;border-spacing:0!important}main table>thead>tr>th{letter-spacing:.055em;text-transform:uppercase;white-space:nowrap;line-height:1.4;border-bottom:1px solid var(--border-strong)!important;background:var(--bg-surface-elevated)!important;color:var(--text-secondary)!important;padding:13px 16px!important;font-size:.7rem!important;font-weight:750!important}main table>tbody>tr>td{color:var(--text-secondary);white-space:nowrap;line-height:1.5;transition:background-color .16s,color .16s;border-bottom:1px solid var(--border-subtle)!important;padding:12px 18px!important}main table>tbody>tr:nth-child(2n)>td{background:color-mix(in srgb, var(--bg-surface-elevated) 32%, transparent)}main table>tbody>tr:hover>td{color:var(--text-primary);background:color-mix(in srgb, var(--primary-500) 7%, var(--bg-surface))!important}main table>tbody>tr:last-child>td{border-bottom:0!important}.table-data-value{vertical-align:middle;white-space:nowrap;align-items:center;gap:10px;min-width:0;display:inline-flex}.table-data-icon{border:1px solid;border-color:color-mix(in srgb, currentColor 18%, transparent);background:color-mix(in srgb, currentColor 10%, var(--bg-surface));width:34px;min-width:34px;height:34px;color:var(--table-tone);border-radius:11px;flex-shrink:0;place-items:center;display:inline-grid}.table-data-copy{white-space:nowrap;flex-direction:column;gap:2px;min-width:0;display:flex}.table-data-primary{color:var(--text-primary);white-space:nowrap;font-weight:650}.table-data-detail{color:var(--text-muted);white-space:nowrap;font-size:.74rem;line-height:1.4}.table-status{border:1px solid color-mix(in srgb, var(--table-tone) 22%, transparent);border-radius:var(--radius-full);background:color-mix(in srgb, var(--table-tone) 10%, var(--bg-surface));color:var(--table-tone);white-space:nowrap;align-items:center;gap:6px;padding:5px 9px;font-size:.75rem;font-weight:700;line-height:1.2;display:inline-flex}.table-tone-primary{--table-tone:var(--primary-500)}.table-tone-emerald{--table-tone:var(--accent-emerald)}.table-tone-amber{--table-tone:var(--accent-amber)}.table-tone-rose{--table-tone:var(--accent-rose)}.table-tone-violet{--table-tone:var(--accent-violet)}.table-tone-cyan{--table-tone:var(--accent-cyan)}main table td:last-child .btn{border-radius:12px;width:40px;min-width:40px;height:40px;padding:0}.page-loading-skeleton{flex-direction:column;gap:20px;width:100%;min-width:0;display:flex}.page-skeleton-block{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:linear-gradient(100deg, var(--bg-surface-elevated) 25%, color-mix(in srgb, var(--text-muted) 16%, var(--bg-surface)) 45%, var(--bg-surface-elevated) 65%);background-size:220% 100%;min-width:0;animation:1.5s ease-in-out infinite page-skeleton-shimmer;display:block}.media-panel-resizer{z-index:1;cursor:col-resize;touch-action:none;align-self:stretch;width:12px;min-width:12px;position:relative}.media-panel-resizer:after{border-radius:var(--radius-full);content:"";background:0 0;width:2px;transition:background-color .15s;position:absolute;top:0;bottom:0;left:5px}.media-panel-resizer:hover:after,.media-panel-resizer:focus-visible:after,.media-panel-resizer:active:after{background:var(--primary-500)}.media-panel-resizer:focus-visible{outline:none}.page-skeleton-heading{align-items:center;gap:14px;display:flex}.page-skeleton-heading-icon{border-radius:var(--radius-lg);flex:0 0 48px;width:48px;height:48px}.page-skeleton-heading-copy{flex-direction:column;flex:1;gap:8px;display:flex}.page-skeleton-title{width:min(240px,55%);height:22px}.page-skeleton-description{width:min(360px,75%);height:12px}.page-skeleton-toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.page-skeleton-search{width:min(320px,55%);height:42px}.page-skeleton-button{width:140px;height:42px}.page-skeleton-tabs{border-radius:var(--radius-full);width:100%;height:58px}.page-skeleton-table{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:var(--card-shadow);overflow:hidden}.page-skeleton-table-head,.page-skeleton-table-row{grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;gap:18px;padding:14px 18px;display:grid}.page-skeleton-table-head{background:var(--bg-surface-elevated)}.page-skeleton-table-head .page-skeleton-block{border:0;border-radius:5px;width:62%;height:11px}.page-skeleton-table-row{border-top:1px solid var(--border-subtle)}.page-skeleton-table-row .page-skeleton-block{border:0;border-radius:5px;height:16px}.page-skeleton-table-row .page-skeleton-block:nth-child(2){width:78%}.page-skeleton-table-row .page-skeleton-block:nth-child(4){width:65%}.page-skeleton-metrics,.page-skeleton-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.page-skeleton-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.page-skeleton-metric,.page-skeleton-form-card,.page-skeleton-chart,.page-skeleton-detail-banner{border-radius:var(--radius-lg);min-height:150px;box-shadow:var(--card-shadow)}.page-skeleton-chart{min-height:340px}.page-skeleton-detail-banner{min-height:120px}.page-skeleton-form-card{min-height:300px}.page-skeleton-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.page-skeleton-gallery-card{border-radius:var(--radius-lg);min-height:220px;box-shadow:var(--card-shadow)}.page-skeleton-canvas-layout{grid-template-columns:minmax(190px,.8fr) minmax(0,2.4fr) minmax(220px,1fr);gap:14px;min-height:min(70vh,760px);display:grid}.page-skeleton-inspector,.page-skeleton-canvas{border-radius:var(--radius-lg);min-height:100%}.page-skeleton-canvas{background-color:var(--bg-secondary)}@keyframes page-skeleton-shimmer{to{background-position:-220% 0}}@media (max-width:760px){.media-split-layout{flex-direction:column}.media-panel-resizer{display:none}.media-details-sidebar{width:100%!important;position:static!important}.page-skeleton-metrics,.page-skeleton-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.page-skeleton-canvas-layout{grid-template-columns:minmax(0,1fr)}.page-skeleton-inspector{display:none}.page-skeleton-canvas{min-height:60vh}}@media (max-width:520px){.page-skeleton-form-grid{grid-template-columns:minmax(0,1fr)}.page-skeleton-table-head,.page-skeleton-table-row{gap:8px;padding-left:10px;padding-right:10px}.page-skeleton-table-head .page-skeleton-block,.page-skeleton-table-row .page-skeleton-block{width:100%}}@media (prefers-reduced-motion:reduce){.page-skeleton-block{animation:none}}main table td:last-child .btn:focus-visible{outline:3px solid var(--border-focus);outline-offset:2px}@media (max-width:700px){main table{font-size:.8rem}main table>thead>tr>th,main table>tbody>tr>td{padding:10px 12px!important}}.layer-action-group{gap:6px;display:flex;container-type:inline-size}.btn-action-compact{justifyContent:center;white-space:nowrap;border-radius:var(--radius-sm);background-color:var(--bg-surface-elevated);border:1px dashed var(--border-subtle);min-width:0;color:var(--primary-500);cursor:pointer;flex:1;align-items:center;gap:6px;padding:7px 8px;font-size:.75rem;font-weight:600;transition:all .15s;display:inline-flex}.btn-action-compact:hover{background-color:var(--hover-surface);border-color:var(--primary-400)}.btn-action-compact.btn-action-accent{color:var(--primary-400);background-color:#2563eb1a;border:1px dashed #3b82f666}.btn-action-compact.btn-action-accent:hover{border-color:var(--primary-500);background-color:#2563eb2e}@container (max-width:210px){.btn-action-compact .btn-label{display:none}}.sidebar-nav-item{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;border:1px solid #0000;outline:none;align-items:center;height:38px;text-decoration:none;transition:background-color .15s,color .15s,border-color .15s;display:flex;position:relative}.sidebar-nav-item:hover{background-color:var(--hover-surface);color:var(--text-primary)}.sidebar-nav-item:hover .sidebar-nav-icon{color:var(--text-primary)}.sidebar-nav-icon{color:var(--text-muted);flex-shrink:0;justify-content:center;align-items:center;transition:color .15s;display:flex}.sidebar-nav-item.is-active{background-color:var(--bg-surface-elevated);border-color:var(--border-subtle);color:var(--text-primary);font-weight:600}.sidebar-nav-item.is-active .sidebar-nav-icon{color:var(--primary-500)}[data-theme=light] .sidebar-nav-item.is-active{color:var(--primary-700);background-color:#2563eb14;border-color:#2563eb29}[data-theme=light] .sidebar-nav-item.is-active .sidebar-nav-icon{color:var(--primary-600)}.sidebar-active-indicator{background-color:var(--primary-500);border-radius:0 3px 3px 0;width:3px;height:18px;position:absolute;top:50%;left:0;transform:translateY(-50%)}[data-theme=light] .sidebar-active-indicator{background-color:var(--primary-600)}
