/* Page layout; components provided by Tabler CDN. */
#profileLink[hidden]{display:none!important}
#deviceNameForm small{color:var(--muted);line-height:1.6}
#deviceNameForm>.field{margin-bottom:16px}
#deviceNameDialog .developer>details{margin-top:12px}
/* Standalone developer panels need the same inner spacing as reading cards. */
.developer.card.panel{margin-top:0;padding:18px}
.device-item{position:relative;min-width:0}
.device-item .device{height:100%;padding-right:48px}
.device-item .device-edit{position:absolute;right:6px;top:6px;width:36px;height:36px;min-height:36px;padding:6px;color:var(--accent);background:var(--panel)}
@media(max-width:900px){.device-item{flex:0 0 240px;scroll-snap-align:start}.device-item .device{min-width:0;width:100%}}
@media(pointer:coarse){.device-item .device-edit{width:44px;height:44px}.device-item .device{padding-right:56px}}
        :root {
            color-scheme: light;
            --bg:#f3f6f5;--panel:#fff;--soft:#f0f5f3;--line:#dce6e2;--text:#17312a;
            --muted:#698078;--accent:#16835e;--accent2:#0b6f8d;--danger:#bd3d4b;--shadow:0 14px 40px rgba(24,58,48,.08)
        }
        *{box-sizing:border-box}html{min-width:320px}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
        button,input,select{font:inherit}button{cursor:pointer}.shell{width:min(1480px,100%);margin:auto;padding:24px}
        .topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.eyebrow{margin:0 0 5px;color:var(--accent);font-weight:750;letter-spacing:.11em;text-transform:uppercase;font-size:11px}
        h1{margin:0;font-size:clamp(26px,4vw,42px);line-height:1.08;letter-spacing:-.045em}.subtitle{margin:9px 0 0;color:var(--muted);font-size:15px}.subtitle .tagline{display:block;color:var(--text);font-weight:700}.subtitle .summary-line{display:block;margin-top:2px}
        .panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}
        .connection{padding:16px;display:grid;grid-template-columns:minmax(240px,1fr) auto auto;gap:10px;align-items:end}.field{display:grid;gap:6px;min-width:0}.field label,.label{font-weight:700;font-size:12px;color:var(--muted)}
        input,select{width:100%;height:42px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);padding:0 12px;outline:none}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 13%,transparent)}input:disabled,select:disabled,button:disabled{opacity:.55;cursor:not-allowed}
        .token-wrap{display:flex}.token-wrap input{border-radius:10px 0 0 10px}.token-wrap button{width:48px;border:1px solid var(--line);border-left:0;border-radius:0 10px 10px 0;background:var(--soft);color:var(--muted)}
        
        .connection-status{display:flex;align-items:center;gap:7px;color:var(--muted);white-space:nowrap}.dot{width:9px;height:9px;border-radius:50%;background:#aab7b2}.connection-status.ok .dot{background:#22a66f;box-shadow:0 0 0 4px #22a66f1c}.connection-status.error{color:var(--danger)}.connection-status.error .dot{background:var(--danger)}
        .health-panel{margin-top:12px;padding:15px}.health-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.health-head h2{margin:0;font-size:16px}.health-head p{margin:3px 0 0;color:var(--muted);font-size:12px}.health-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.health-updated{color:var(--muted);font-size:11px}.health-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin-top:13px}.health-card{min-width:0;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}.health-card-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.health-card-title{color:var(--muted);font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.055em}.health-value{margin-top:8px;font-size:18px;font-weight:800;letter-spacing:-.02em}.health-meta{min-height:18px;margin-top:4px;color:var(--muted);font-size:11px}.health-card.failed{border-color:#efc7cc;background:#fff5f6}.health-card.warning{border-color:#ead39a;background:#fffaf0}.health-card.loading{opacity:.72}.health-queue-counts{display:flex;gap:14px;margin-top:7px}.health-queue-counts span{color:var(--muted);font-size:11px}.health-queue-counts strong{display:block;color:var(--text);font-size:17px}.health-queue-counts .failed-count strong{color:var(--danger)}
        .resources{margin-top:12px;padding:15px}.resources-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.resources-head h2{margin:0;font-size:16px}.resources-head p{margin:3px 0 0;color:var(--muted);font-size:12px}.resource-links{display:flex;gap:7px;flex-wrap:wrap}.resource-links a,.docs-link{display:inline-flex;align-items:center;min-height:32px;padding:0 10px;border:1px solid var(--line);border-radius:8px;color:var(--text);background:var(--panel);font-size:12px;font-weight:700;text-decoration:none}.resource-links a:hover,.docs-link:hover{border-color:var(--accent);color:var(--accent)}.api-map{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:13px}.api-map a{display:block;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--soft);color:var(--text);text-decoration:none}.api-map a:hover{border-color:var(--accent)}.api-map strong,.api-map span,.api-map code{display:block}.api-map strong{color:var(--muted);font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.055em}.api-map code{margin-top:8px;color:var(--accent);font-size:13px;font-weight:750}.api-map span{margin-top:4px;color:var(--muted);font-size:11px}
        .workspace{display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px;margin-top:18px}.sidebar{padding:15px;height:max-content;position:sticky;top:18px}.sidebar-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.sidebar h2,.controls h2{font-size:14px;margin:0}.count{color:var(--muted);font-size:12px}
        .devices{display:grid;gap:8px}.device{width:100%;padding:11px;border:1px solid var(--line);border-radius:11px;background:transparent;text-align:left;color:var(--text)}.device:hover{background:var(--soft)}.device.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--panel))}.device strong,.device small{display:block;overflow:hidden;text-overflow:ellipsis}.device strong{font-size:13px}.device small{margin-top:4px;color:var(--muted)}
        .empty-state{padding:22px 10px;text-align:center;color:var(--muted)}.main{min-width:0;display:grid;gap:18px}.controls{padding:15px}.control-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:10px;align-items:end}.dates{display:none;grid-column:1/-1;grid-template-columns:1fr 1fr;gap:10px}.dates.visible{display:grid}
        .switches{display:flex;align-items:center;gap:14px;margin-top:13px;flex-wrap:wrap}.check{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:13px}.check input{width:16px;height:16px;accent-color:var(--accent)}
        .summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.metric-card{padding:14px}.metric-card.suspicious{border-color:#e5b85f;background:#fffaf0}.metric-card.invalid{border-color:#e3a4ac;background:#fff5f6}.metric-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.metric-name{color:var(--muted);font-size:12px;text-transform:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metric-value{font-size:25px;font-weight:780;letter-spacing:-.035em;margin-top:3px}.metric-time{color:var(--muted);font-size:11px;margin-top:4px}.quality-badge{display:inline-flex;align-items:center;min-height:20px;padding:0 7px;border-radius:99px;font-size:10px;font-weight:800;text-transform:capitalize}.quality-badge.valid{background:#e2f5ec;color:#18734f}.quality-badge.suspicious{background:#fff0cf;color:#895900}.quality-badge.invalid{background:#fde3e6;color:#a33240}.quality-badge.unavailable{background:#edf0ef;color:#65766f}.quality-note{margin-top:7px;color:#895900;font-size:11px;line-height:1.35}.metric-card.invalid .quality-note{color:#a33240}
        .chart-panel{padding:14px;position:relative;min-height:390px}.chart-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:1px 3px 12px}.chart-head h2{margin:0;font-size:15px}.chart-meta{color:var(--muted);font-size:12px}.charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.charts.overlay{display:block}.chart-box{height:310px;position:relative;border:1px solid var(--line);border-radius:13px;padding:12px 10px 7px;background:color-mix(in srgb,var(--panel) 95%,var(--soft))}.charts.overlay .chart-box{height:390px;border:0;padding:5px}.chart-label{position:absolute;z-index:1;top:10px;left:15px;font-size:12px;font-weight:750;color:var(--chart-color)}.chart-box canvas{padding-top:17px}.charts.overlay canvas{padding-top:0}.metric-picker{display:flex;gap:7px;flex-wrap:wrap}.metric-toggle{border:1px solid var(--line);background:var(--panel);color:var(--muted);padding:6px 10px;border-radius:99px;font-size:12px}.metric-toggle.active{color:#fff;border-color:var(--metric-color);background:var(--metric-color)}
        .device-loading-overlay{display:none;position:absolute;inset:0;z-index:4;border-radius:18px;background:color-mix(in srgb,var(--panel) 84%,transparent);align-items:center;justify-content:center;font-weight:700}.device-loading-overlay.visible{display:flex}.error-box{display:none;padding:13px 15px;background:#fff0f1;color:#8f2935;border:1px solid #f0cbd0;border-radius:11px}.error-box.visible{display:block}
        .developer{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.developer summary{cursor:pointer;color:var(--muted);font-weight:750;font-size:12px;user-select:none}.dev-help{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;color:var(--muted);font-size:11px}.docs-link{min-height:29px;white-space:nowrap}.dev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:9px}.dev-stat{padding:9px 10px;border-radius:9px;background:var(--soft)}.dev-stat span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.dev-stat strong{display:block;margin-top:2px;font-size:13px}.request-line{display:flex;gap:7px;margin-top:9px}.request-line code{flex:1;min-width:0;padding:9px 10px;border-radius:9px;background:var(--soft);font:11px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto;white-space:nowrap}.dev-buttons{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.json-preview{display:none;max-height:330px;margin:9px 0 0;padding:12px;border-radius:10px;background:#102d25;color:#d8eee6;font:11px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto;white-space:pre-wrap}.json-preview.visible{display:block}
        .events-panel{padding:15px}.event-list{display:grid;gap:0}.event-row{display:grid;grid-template-columns:145px 90px minmax(0,1fr);gap:12px;align-items:center;padding:11px 4px;border-bottom:1px solid var(--line)}.event-row:last-child{border-bottom:0}.event-time{color:var(--muted);font-size:12px}.event-type{font-weight:800;text-transform:capitalize}.event-data{display:flex;gap:6px;flex-wrap:wrap}.event-data span{padding:4px 7px;border-radius:7px;background:var(--soft);font-size:11px}.event-boot{color:#147a9c}.event-reboot{color:#b05d16}.event-watchdog,.event-crash{color:#bd3d4b}.event-wakeup{color:#197752}.event-sleep{color:#6d5ca5}.event-open{color:#ad6511}.event-closed{color:#39738b}
        .webhook-panel{padding:15px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.section-head h2{margin:0;font-size:17px}.section-head p{margin:3px 0 0;color:var(--muted);font-size:12px}.head-actions{display:flex;gap:8px}.head-actions select,.head-actions button{height:36px}.head-actions button{padding:0 13px}
        .webhook-grid{display:grid;grid-template-columns:minmax(240px,330px) minmax(0,1fr);gap:14px}.webhook-list{display:grid;align-content:start;gap:8px;max-height:610px;overflow:auto}.webhook-item{padding:12px;border:1px solid var(--line);border-radius:12px;background:transparent;color:var(--text);text-align:left}.webhook-item:hover{background:var(--soft)}.webhook-item.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--panel))}.webhook-item-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.webhook-item strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.webhook-item small{display:block;margin-top:5px;color:var(--muted)}
        .badge{display:inline-flex;align-items:center;min-height:23px;padding:0 8px;border-radius:99px;background:var(--soft);color:var(--muted);font-size:11px;font-weight:750;white-space:nowrap}.badge.success,.badge.enabled{background:#e2f5ec;color:#18734f}.badge.failed{background:#fde9eb;color:#a33240}.badge.retrying,.badge.pending{background:#fff1d9;color:#96600a}.badge.paused,.badge.cancelled{background:#edf0ef;color:#65766f}
        .webhook-detail{min-width:0;border:1px solid var(--line);border-radius:13px;padding:15px}.detail-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.detail-title h3{margin:0;font-size:16px}.detail-id{margin-top:3px;color:var(--muted);font:11px ui-monospace,SFMono-Regular,Menlo,monospace}.detail-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.detail-block{margin-top:14px}.detail-label{margin-bottom:5px;color:var(--muted);font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.06em}.url{display:block;padding:9px 10px;border-radius:9px;background:var(--soft);color:var(--text);font:11px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere}.chips{display:flex;gap:6px;flex-wrap:wrap}.condition{padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:var(--panel);font-size:12px}.delivery-head{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-top:18px;margin-bottom:8px}.delivery-head h4{margin:0;font-size:13px}.delivery-head select{width:145px;height:34px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}table{width:100%;border-collapse:collapse;font-size:12px}th,td{padding:9px 10px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}th{color:var(--muted);font-size:11px;background:var(--soft)}tr:last-child td{border-bottom:0}.delivery-error{max-width:260px;white-space:normal;color:var(--danger)}.pager{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:9px;color:var(--muted);font-size:12px}.pager button{height:30px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text)}.pager button:disabled{opacity:.45;cursor:default}
        dialog{width:min(760px,calc(100% - 28px));max-height:calc(100vh - 28px);padding:0;border:0;border-radius:18px;background:var(--panel);color:var(--text);box-shadow:0 24px 90px rgba(0,0,0,.28)}dialog::backdrop{background:rgba(8,27,21,.58);backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;padding:19px 20px 13px;border-bottom:1px solid var(--line)}.dialog-head h2{margin:0;font-size:19px}.dialog-head p{margin:3px 0 0;color:var(--muted);font-size:12px}.dialog-close{border:0;background:transparent;color:var(--muted);font-size:24px;line-height:1}.webhook-form{padding:18px 20px 20px;overflow:auto}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-grid .wide{grid-column:1/-1}textarea{width:100%;min-height:76px;resize:vertical;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);padding:10px 12px;outline:none}.condition-editor{display:grid;gap:7px}.condition-row{display:grid;grid-template-columns:minmax(150px,1fr) 105px 130px 34px;gap:7px}.condition-row button{border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--danger)}.form-note{color:var(--muted);font-size:11px}.form-error{display:none;margin-top:12px;padding:9px 11px;border-radius:9px;background:#fff0f1;color:var(--danger)}.form-error.visible{display:block}.dialog-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:17px}.app-toast{position:fixed;right:22px;bottom:22px;z-index:20;max-width:min(420px,calc(100% - 28px));padding:12px 15px;border-radius:11px;background:#173c31;color:#fff;box-shadow:var(--shadow);opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s}.app-toast.visible{opacity:1;transform:none}.app-toast.error{background:#9e3240}
        .footer-note{text-align:center;color:var(--muted);font-size:12px;padding:4px}.skeleton{height:63px;border-radius:10px;background:linear-gradient(90deg,var(--soft),var(--panel),var(--soft));background-size:200% 100%;animation:shine 1.3s infinite}@keyframes shine{to{background-position:-200% 0}}
        @media(max-width:1080px){.control-grid{grid-template-columns:repeat(3,1fr)}.api-map{grid-template-columns:repeat(2,1fr)}.health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
        @media(max-width:900px){.workspace{grid-template-columns:1fr}.sidebar{position:static}.devices{display:flex;overflow:auto}.device{min-width:210px}.connection{grid-template-columns:1fr auto}.connection .connection-status{grid-column:1/-1}}
        @media(max-width:700px){.charts{grid-template-columns:1fr}.webhook-grid{grid-template-columns:1fr}.webhook-list{display:flex;overflow:auto}.webhook-item{min-width:230px}.section-head{align-items:flex-start;flex-direction:column}.head-actions{width:100%}.head-actions select{flex:1}}
        @media(max-width:600px){.shell{padding:14px}.topbar{display:block}.connection{grid-template-columns:1fr}.connection .resources-head,.dev-help,.health-head{align-items:flex-start;flex-direction:column}.health-actions{width:100%}.health-grid{grid-template-columns:1fr}.api-map{grid-template-columns:1fr}.control-grid{grid-template-columns:1fr 1fr}.control-grid .refresh{grid-column:1/-1}.dates{grid-template-columns:1fr}.chart-panel{padding:12px 8px 8px}.chart-head{align-items:flex-start;flex-direction:column}.chart-box{height:300px}.charts.overlay .chart-box{height:340px}.metric-value{font-size:22px}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.condition-row{grid-template-columns:1fr 90px}.condition-row .condition-value{grid-column:1/2}.dialog-actions{position:sticky;bottom:-20px;background:var(--panel);padding:12px 0 0}.dev-grid{grid-template-columns:1fr}.request-line{display:grid}.event-row{grid-template-columns:1fr 80px}.event-data{grid-column:1/-1}.head-actions{flex-wrap:wrap}}
        .chart-expand{position:absolute;right:10px;top:7px;z-index:2;width:30px;height:30px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);font-size:20px;line-height:1}.chart-expand:hover{color:var(--accent);border-color:var(--accent)}.chart-label{max-width:calc(100% - 65px)}.charts.overlay .chart-box{padding-top:32px}
        #expandedChartDialog{width:calc(100vw - 32px);max-width:none;height:calc(100dvh - 32px);max-height:none;overflow:hidden}#expandedChartDialog[open]{display:flex;flex-direction:column}#expandedChartBody{flex:1;min-height:0;padding:12px}#expandedChartBody .chart-box{height:100%;width:100%}#expandedChartBody .chart-expand{display:none}
        .relay-actions{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0}.relay-options{font-size:14px;color:#647d74;margin:12px 0}.relay-options summary{cursor:pointer}.relay-options select{max-width:220px}
        .event-data .command-status.pending,.event-data .command-status.sent,#relayStatus.pending,#relayStatus.sent{background:#fff1d9;color:#805000}.event-data .command-status.expired,.event-data .command-status.interrupted,.event-data .command-status.failed,#relayStatus.expired,#relayStatus.interrupted,#relayStatus.failed{background:#fde9eb;color:#a33240}.event-data .command-status.applied,#relayStatus.applied{background:#e2f5ec;color:#18734f}#relayStatus{padding:6px 8px;border-radius:7px}.command-status{font-weight:750}
        .relay-options label{display:block;font-weight:750;margin:12px 0 6px;color:var(--text)}.relay-options select{display:block;width:100%}
        #relayControl .relay-actions{gap:6px;margin:8px 0}#relayControl #relayStatus{font-size:10px;font-weight:800;padding:3px 6px;white-space:nowrap}#relayControl .relay-options{font-size:11px;margin:5px 0 0}#relayControl .relay-options p{margin:8px 0;line-height:1.45}#relayError:empty{display:none}#relayError{font-size:11px;margin:7px 0 0;color:#a33240}
        .device-kind{display:inline-block;font-size:13px;font-weight:800;line-height:1.3;padding:4px 8px;border-radius:7px;background:var(--soft);color:var(--accent);margin-bottom:7px}.relay-countdown{font-variant-numeric:tabular-nums;font-weight:650}
        /* Mobile layout: keep long API URLs inside panels, not the page. */
        .resources,.health-panel,.api-map>a,.workspace>*,.main>*,.charts>*,.webhook-grid>*{min-width:0}
        .main{grid-template-columns:minmax(0,1fr)}
        .chart-box{min-width:0}
        @media(max-width:600px){
            .shell{padding:12px}
            .resources,.health-panel{width:100%;padding:12px}
            .resources-head,.health-head,.resource-links,.api-map,.health-grid{width:100%;min-width:0}
            .resources-head>div,.health-head>div{min-width:0;max-width:100%}
            .api-map code,.health-meta,.detail-id,.dev-stat strong{overflow-wrap:anywhere}
            .resource-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
            .resource-links a{justify-content:center;text-align:center;padding:8px;min-height:44px}
            .topbar>div:last-child{margin-top:14px;flex-wrap:wrap}
            .token-wrap input{min-width:0}.token-wrap button{flex:0 0 48px}
            input,select,textarea{font-size:16px;min-width:0}
            .head-actions select{width:auto;min-width:0;flex:1 1 120px}
            .head-actions button,.small-button,.pager button,.docs-link,
            #relayControl 
            .control-grid #refresh{width:100%;justify-self:stretch}
            .summary{grid-template-columns:minmax(0,1fr)}
            .devices{scroll-snap-type:x proximity}.device{flex:0 0 210px;scroll-snap-align:start}
            .pager,.delivery-head,.detail-title{flex-wrap:wrap}
            .event-data,.event-row>*{min-width:0;overflow-wrap:anywhere}
            .request-line{grid-template-columns:minmax(0,1fr)}
            .json-preview{overflow-wrap:anywhere}
            dialog{max-height:calc(100dvh - 24px)}
            .webhook-form{padding:14px}.dialog-head{padding:14px}
            .dialog-close{min-width:44px;min-height:44px}
            .condition-row{grid-template-columns:minmax(0,1fr) 90px}
            .condition-row button{min-height:44px}
            .dialog-actions{bottom:-14px;flex-wrap:wrap}
        }
        .history-disclosure>summary{cursor:pointer;font-size:16px;font-weight:600;color:var(--text);user-select:none}
        .history-disclosure[open]>summary{margin-bottom:13px}
/* Dashboard-only dark palette, based on openGym. Light theme stays unchanged. */
.dashboard-theme-control{display:flex;justify-content:flex-end;margin-bottom:12px}
html[data-dashboard-theme="dark"]{color-scheme:dark;background:#000}
html[data-dashboard-theme="dark"] .dashboard-page{
 --bg:#000;--panel:#1c1c1e;--soft:#2c2c2e;--line:#454548;--text:#fff;--muted:#b5b5be;--accent:#30d158;--danger:#ff6b63;--shadow:0 1px 4px #0008;
 --tblr-body-bg:#000;--tblr-body-color:#fff;--tblr-bg-surface:#1c1c1e;--tblr-border-color:#454548;--tblr-primary:#30d158;--tblr-primary-rgb:48,209,88;--tblr-secondary-color:#b5b5be;
}
html[data-dashboard-theme="dark"] .dashboard-page :is(.dienas-navbar,dialog,.chart-box,.btn:not(.btn-primary),.form-control,.form-select){background-color:var(--panel);color:var(--text);border-color:var(--line)}
html[data-dashboard-theme="dark"] .dashboard-page :is(.navbar-brand,a,.device-kind){color:var(--accent)}
html[data-dashboard-theme="dark"] .dashboard-page :is(.device.active,.webhook-item.active,.device-kind){background:#203525;border-color:var(--accent)}
html[data-dashboard-theme="dark"] .dashboard-page .btn-primary{background:#30d158;border-color:#30d158;color:#000;--tblr-btn-hover-bg:#63df80;--tblr-btn-hover-color:#000}
html[data-dashboard-theme="dark"] .dashboard-page .btn-primary:hover{background:#63df80;border-color:#63df80}
html[data-dashboard-theme="dark"] .dashboard-page .btn:not(.btn-primary):hover{background:#3a3a3c}
html[data-dashboard-theme="dark"] .dashboard-page :is(.json-preview,pre,code,.dev-stat,.health-card,.event-data span,.condition){background-color:var(--soft);color:var(--text)}
html[data-dashboard-theme="dark"] .dashboard-page :is(.quality-badge,.badge,.command-status){background:#203525;color:#63e682}
html[data-dashboard-theme="dark"] .dashboard-page #relayStatus{background:#203525;color:#63e682}
html[data-dashboard-theme="dark"] .dashboard-page #relayStatus:is(.pending,.sent){background:#3b301c;color:#ffd60a}
html[data-dashboard-theme="dark"] .dashboard-page #relayStatus:is(.expired,.interrupted,.failed){background:#3c2224;color:#ff8b85}
html[data-dashboard-theme="dark"] .dashboard-page :is(.suspicious,.warning,.pending,.sent){background-color:#3b301c;color:#ffd60a;border-color:#725a24}
html[data-dashboard-theme="dark"] .dashboard-page :is(.invalid,.failed,.expired,.interrupted,.form-error,.error){background-color:#3c2224;color:#ff8b85;border-color:#734045}
html[data-dashboard-theme="dark"] .dashboard-page .card.metric-card.suspicious{background:#29251d;border-color:#655332;color:var(--text)}
html[data-dashboard-theme="dark"] .dashboard-page .card.metric-card.invalid{background:#2b2023;border-color:#674047;color:var(--text)}
html[data-dashboard-theme="dark"] .dashboard-page .health-card.warning{background:#29251d;border-color:#655332;color:var(--text)}
html[data-dashboard-theme="dark"] .dashboard-page .health-card.failed{background:#2b2023;border-color:#674047;color:var(--text)}
html[data-dashboard-theme="dark"] .dashboard-page .quality-note{color:#e7b76c}
html[data-dashboard-theme="dark"] .dashboard-page .metric-card.invalid .quality-note{color:#ee9399}
html[data-dashboard-theme="dark"] .dashboard-page :is(.error-box,.form-error,.app-toast.error){background:#2b2023;color:#ee9399;border-color:#674047}
html[data-dashboard-theme="dark"] .dashboard-page #relayError{color:#ee9399}
html[data-dashboard-theme="dark"] .dashboard-page :is(.relay-options,#tourNotice){color:var(--muted)}
html[data-dashboard-theme="dark"] .dashboard-page .table{--tblr-table-color:#fff;--tblr-table-bg:#1c1c1e;--tblr-table-border-color:#454548;color:var(--text)}
html[data-dashboard-theme="dark"] .dashboard-page input::placeholder{color:#a0a0aa}
html[data-dashboard-theme="dark"] .dashboard-page :is(button,a,input,select,textarea,summary):focus-visible{outline-color:#30d158}
html[data-dashboard-theme="dark"] .dashboard-page .btn.metric-toggle.active{background:var(--metric-color);color:#000;border-color:var(--metric-color)}
html[data-dashboard-theme="dark"] .driver-popover.dienas-tour{background:#1c1c1e;color:#fff;border-color:#454548}
html[data-dashboard-theme="dark"] .dienas-tour :is(.driver-popover-title,.driver-popover-description,.driver-popover-progress-text){color:#eee}
html[data-dashboard-theme="dark"] .dienas-tour .driver-popover-footer button{background:#30d158;color:#000;border-color:#30d158}
/* Explicit badge selectors override light event/status backgrounds, not whole cards. */
html[data-dashboard-theme="dark"] body.dashboard-page :is(.badge,.quality-badge,.command-status,#relayStatus){background:#242426;color:#b5b5be}
html[data-dashboard-theme="dark"] body.dashboard-page :is(.badge,.quality-badge,.command-status,#relayStatus):is(.valid,.success,.enabled,.applied,.event-wakeup){background:#192b20;color:#6bd78a}
html[data-dashboard-theme="dark"] body.dashboard-page :is(.badge,.quality-badge,.command-status,#relayStatus):is(.suspicious,.warning,.retrying,.pending,.sent,.event-reboot,.event-open){background:#302619;color:#e7b76c}
html[data-dashboard-theme="dark"] body.dashboard-page :is(.badge,.quality-badge,.command-status,#relayStatus):is(.invalid,.failed,.expired,.interrupted,.event-crash,.event-watchdog){background:#301e21;color:#ee9399}
html[data-dashboard-theme="dark"] body.dashboard-page .badge.event-type.event-sleep{background:#272132;color:#b5a1df}
html[data-dashboard-theme="dark"] body.dashboard-page .badge.event-type:is(.event-boot,.event-closed,.event-checkin){background:#1b2832;color:#80bddf}
