/* Shared DIENAS theme for Tabler 1.4.0. Page-specific geometry lives separately. */
html[data-dashboard-theme="dark"] .dashboard-page .device-loading-overlay{background:rgba(0,0,0,.55)}
html[data-dashboard-theme="dark"] .dashboard-page .loading-spinner{border-color:#454548;border-top-color:var(--accent)}
html[data-dashboard-theme="dark"] .login-page p{color:var(--muted)}
html[data-dashboard-theme="dark"] .login-page #error{color:var(--danger)}
/* Only these pages opt into the dashboard's saved theme; API docs stay unchanged. */
html[data-dashboard-theme="dark"]{color-scheme:dark;background:#000}
html[data-dashboard-theme="dark"] :is(.management-page,.business-page,.login-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"] :is(.management-page,.business-page,.login-page) :is(.card,.dienas-navbar,dialog,input,select,textarea,.btn:not(.btn-primary)){background-color:var(--panel);color:var(--text);border-color:var(--line)}
html[data-dashboard-theme="dark"] :is(.management-page,.business-page,.login-page) :is(a,.navbar-brand){color:var(--accent)}
html[data-dashboard-theme="dark"] :is(.management-page,.business-page,.login-page) .btn-primary{background:#30d158;border-color:#30d158;color:#000}
html[data-dashboard-theme="dark"] :is(.management-page,.business-page,.login-page) .btn-primary:hover{background:#63df80;border-color:#63df80}
html[data-dashboard-theme="dark"] :is(.management-page,.business-page,.login-page) :is(.business-step,.business-icon,.business-type,.business-cta,.business-languages a[aria-current],.org.active,.device-kind){background:#203525;color:#63e682;border-color:#345d3d}
html[data-dashboard-theme="dark"] :is(.management-page,.business-page,.login-page) :is(pre,code,.credential){background:var(--soft);color:var(--text)}
html[data-dashboard-theme="dark"] :is(.management-page,.business-page,.login-page) :is(input,textarea)::placeholder{color:#a0a0aa}
html[data-dashboard-theme="dark"] :is(.management-page,.business-page,.login-page) :is(.danger,.error,.btn-outline-danger){color:#ff8b85}
html[data-dashboard-theme="dark"] :is(.management-page,.business-page,.login-page) :is(button,a,input,select,textarea):focus-visible{outline-color:#30d158}
html[data-dashboard-theme="dark"] .management-page .table{--tblr-table-bg:#1c1c1e;--tblr-table-color:#fff;--tblr-table-border-color:#454548}
html[data-dashboard-theme="dark"] .management-page #notice{background:#2c2c2e;color:#fff;border:1px solid #454548}
.dashboard-page .tour-launch{flex-wrap:wrap}
/* Tabler's scrollbar compensation shifts the entire viewport to the right. */
html:root{margin-left:0;margin-right:0}
:root,[data-bs-theme="light"]{
    --tblr-primary:#16835e;--tblr-primary-rgb:22,131,94;
    --tblr-body-bg:#f6f8fb;--tblr-body-color:#182433;
    --tblr-border-color:#dce1e7;--tblr-border-radius:.375rem;
    --tblr-font-sans-serif:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
    --bg:var(--tblr-body-bg);--panel:#fff;--soft:#f1f5f8;--line:var(--tblr-border-color);
    --text:var(--tblr-body-color);--muted:#66788a;--accent:var(--tblr-primary);--danger:#b83a45;
    --shadow:0 1px 3px rgba(24,36,51,.04);
}
.dienas-app{background:var(--bg);color:var(--text);font:14px/1.5 var(--tblr-font-sans-serif)}
.dienas-app [hidden]{display:none!important}
.dienas-navbar{min-height:64px;background:#fff;border-bottom:1px solid var(--line);box-shadow:none;padding:0}
.dienas-navbar>.container-xl{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:64px;max-width:1480px;padding-inline:24px}
.dienas-navbar .navbar-brand{display:flex;gap:12px;font-weight:800;font-size:19px;letter-spacing:.015em;color:#16835e;text-decoration:none;margin:0}
.brand-caption{color:var(--muted);font-size:12px;font-weight:500;letter-spacing:0;border-left:1px solid var(--line);padding-left:12px}
.dienas-nav-links{display:flex;gap:6px;align-items:center}
.dienas-nav-links .nav-link{padding:20px 14px;color:var(--muted);border-bottom:2px solid transparent;font-weight:600;white-space:nowrap}
.dienas-nav-links .nav-link:hover,.dienas-nav-links .nav-link.active{color:var(--accent);border-bottom-color:var(--accent);background:#16835e06}
.dienas-app .shell{max-width:1480px;width:100%;padding:24px}
.dienas-app h1{font-size:28px;line-height:1.25;letter-spacing:-.025em;font-weight:700}
.dienas-app h2{line-height:1.4}.dienas-app h3{line-height:1.5}
.dienas-app .eyebrow{font-size:12px;letter-spacing:.06em;color:var(--muted)}
.dienas-app .subtitle{font-size:14px;margin-top:6px}
.dienas-app .subtitle .tagline{font-size:13px;font-weight:500;color:var(--muted)}
.dienas-app .subtitle .summary-line{font-size:13px}
.dienas-app .topbar{margin-bottom:20px;gap:16px}
.dienas-app .card.panel{border-radius:var(--tblr-border-radius);box-shadow:var(--shadow);border-color:var(--line);background:var(--panel);color:var(--text)}
.dienas-app .panel.connection{border-top:3px solid var(--accent)}
.dienas-app .btn{font-family:inherit;font-size:14px;font-weight:600;line-height:1.4;min-height:38px;height:auto;padding:8px 12px;border-radius:var(--tblr-border-radius);gap:6px;white-space:normal;box-shadow:var(--tblr-box-shadow-input)}
.dienas-app .btn-primary{--tblr-btn-bg:var(--accent);--tblr-btn-border-color:var(--accent);--tblr-btn-hover-bg:#116c4d;--tblr-btn-hover-border-color:#116c4d;background:var(--accent);border-color:var(--accent);color:#fff}
.dienas-app .btn:not(.btn-primary):not(.btn-outline-danger){background:#fff;border:1px solid var(--line);color:var(--text)}
.dienas-app .btn:not(.btn-primary):hover{background:var(--soft);border-color:#a5b6c5}
.dienas-app .btn.btn-outline-danger{background:#fff;color:var(--danger);border-color:#e5b4ba}
.dienas-app .btn:focus-visible,.dienas-app a:focus-visible,.dienas-app summary:focus-visible{outline:3px solid #16835e66;outline-offset:2px}
.dienas-app .btn:disabled{opacity:.5;pointer-events:none}
.dienas-app button[data-ui-icon="refresh"],.dienas-app button[data-ui-icon="add"]{white-space:nowrap;flex-wrap:nowrap}
.dienas-app :is(.form-control,.form-select){font-family:inherit;font-size:14px;border-radius:var(--tblr-border-radius);height:40px;border-color:var(--line);background-color:#fff;color:var(--text)}
.dienas-app .form-select{padding-right:2.5rem}
.dienas-app textarea.form-control{height:auto;min-height:90px}
.dienas-app .form-check-input{width:18px;height:18px;padding:0;flex-shrink:0;margin:0}
.dienas-app .form-check-input:checked{background-color:var(--accent);border-color:var(--accent)}
.dienas-app .token-wrap input{min-width:0;border-radius:var(--tblr-border-radius) 0 0 var(--tblr-border-radius)}
.dienas-app .token-wrap button{flex:0 0 64px;border-radius:0 var(--tblr-border-radius) var(--tblr-border-radius) 0}
.dienas-app .field label,.dienas-app .label,.management-page label{font-size:13px;font-weight:600;color:var(--text)}
.dienas-app .health-head h2,.dienas-app .resources-head h2,.dienas-app .section-head h2{font-size:16px;font-weight:600}
.dienas-app .health-card,.dienas-app .api-map a,.dienas-app .credential,.dienas-app .dev-stat{border-radius:var(--tblr-border-radius);background:var(--soft)}
.dienas-app .resource-links a{border-radius:var(--tblr-border-radius);font-size:13px;min-height:38px}
.dienas-app .health-card-title,.dienas-app .api-map strong{font-size:12px;letter-spacing:.025em}
.dienas-app .health-meta,.dienas-app .api-map span,.dienas-app .health-updated{font-size:12px}
.dienas-app .workspace{grid-template-columns:240px minmax(0,1fr);gap:20px}
.dienas-app .main{grid-template-columns:minmax(0,1fr);gap:20px}
.dienas-app .main>*,.dienas-app .summary>*,.dienas-app .charts>*,.dienas-app .webhook-grid>*{min-width:0}
.dienas-app .device,.dienas-app .webhook-item,.dienas-app .org{border-radius:var(--tblr-border-radius);padding:12px;border-color:var(--line)}
.dienas-app .device.active,.dienas-app .org.active,.dienas-app .webhook-item.active{background:#edf8f2;border-color:#16835e;border-left-width:3px}
.dienas-app .device-kind{background:#e8f5ee;font-size:12px;border-radius:4px;padding:3px 7px;letter-spacing:.02em}
.dienas-app .device strong{font-size:13px;font-weight:600}
.dienas-app .device small{font-size:12px}
.dienas-app .summary{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.dienas-app .metric-card{padding:18px}
.dienas-app .metric-value{font-size:30px;line-height:1.3;font-weight:600;margin-top:8px;letter-spacing:-.025em}
.dienas-app .metric-name{font-size:13px;color:var(--muted)}
.dienas-app .metric-time{font-size:12px;margin-top:6px}
.dienas-app .quality-badge{font-size:12px;border-radius:4px;min-height:23px}
.dienas-app .card.metric-card.suspicious{background:#fffbf0;border-color:#e5b85f}
.dienas-app .card.metric-card.invalid{background:#fff5f6;border-color:#e3a4ac}
.dienas-app .badge{border:0;border-radius:4px;font-size:12px;font-weight:600;letter-spacing:0;text-transform:none;line-height:1.5}
.dienas-app .chart-box{border-radius:var(--tblr-border-radius);min-width:0}
.dienas-app .chart-label,.dienas-app .chart-meta{font-size:13px}
.dienas-app .metric-toggle{font-size:13px;border-radius:var(--tblr-border-radius)}
.dienas-app .btn.metric-toggle.active{background:var(--metric-color);border-color:var(--metric-color);color:#fff;box-shadow:0 0 0 2px color-mix(in srgb,var(--metric-color) 18%,transparent)}
.dienas-app .btn.metric-toggle:not(.active){background:var(--panel);color:var(--muted);border-style:dashed}
.metric-toggle-state{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;font-weight:800}
.dienas-app .badge.event-type{justify-self:start;padding:5px 9px;font-weight:750;background:var(--soft);white-space:normal}
.dienas-app .badge.event-type.event-wakeup{background:#e2f5ec}.dienas-app .badge.event-type.event-sleep{background:#eee8fa}
.dienas-app .badge.event-type.event-boot{background:#e2f1f8}.dienas-app .badge.event-type.event-reboot{background:#fff1d9}
.dienas-app .badge.event-type.event-crash,.dienas-app .badge.event-type.event-watchdog{background:#fde9eb}
.dienas-app .device-loading-overlay{position:fixed;inset:0;width:auto;height:auto;align-items:center;justify-content:center;z-index:1050;border-radius:0;background:rgba(243,246,245,.6);backdrop-filter:blur(2px);pointer-events:none;padding:20px}
.loading-card{display:flex;flex-direction:column;align-items:center;gap:12px;max-width:100%;padding:28px 36px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 40px #183a3026;text-align:center;color:var(--text)}
.loading-card>span:last-child{font-size:13px;font-weight:400;color:var(--muted)}
.loading-spinner{width:36px;height:36px;border:3px solid #dce6e2;border-top-color:var(--accent);border-radius:50%;animation:device-loading .8s linear infinite}
@keyframes device-loading{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.loading-spinner{animation:none}}
.dienas-app .developer summary{font-size:13px}
.dienas-app .dev-help,.dienas-app .dev-stat span{font-size:12px}
.dienas-app .dev-stat strong{font-size:14px;overflow-wrap:anywhere}
.dienas-app .event-time,.dienas-app .event-data span{font-size:12px}
.dienas-app .event-row{padding:14px 0}
.dienas-app .table{margin-bottom:0;color:var(--text);--tblr-table-color:var(--text)}
.dienas-app .table th{font-size:12px;font-weight:600;background:var(--soft)}
.dienas-app .table td{font-size:13px}
.dienas-app .table-wrap,.dienas-app .webhook-detail{border-radius:var(--tblr-border-radius);max-width:100%}
.dienas-app .request-line{min-width:0}.dienas-app .request-line code{color:var(--text)}
.dienas-app .pager{flex-wrap:wrap;min-width:0}
.dienas-app .app-toast{z-index:1100}
.dienas-app dialog{border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 40px #18243333;max-height:calc(100dvh - 32px)}
.dienas-app dialog::backdrop{background:#18243388;backdrop-filter:blur(2px)}
.dienas-app .dialog-head{background:var(--soft)}
.dienas-app .dialog-close{min-width:38px;min-height:38px}
.dienas-app .chart-expand,.dienas-app .dialog-close{padding:0;justify-content:center}
.dienas-app .condition-row{grid-template-columns:minmax(120px,1fr) 105px minmax(100px,130px) 38px}
.dienas-app #relayControl .small-button{min-height:38px;font-size:13px;padding:7px 10px}
.dienas-app #relayControl #relayStatus{font-size:12px;padding:4px 7px;font-weight:800}
.dienas-app #relayControl .relay-options{font-size:13px}
.management-page .layout{grid-template-columns:240px minmax(0,1fr);gap:20px}
.management-page .panel{padding:20px}
.management-page .management-row{margin:0}
.management-page .layout>aside{align-self:start;position:sticky;top:20px}
.management-page .management-table{min-width:0;max-width:100%;overflow:auto}
.management-page .credentials{grid-template-columns:repeat(2,minmax(0,1fr))}
.management-page .credential code{font-size:13px;line-height:1.6}
.management-page .management-table td small{font-size:12px}
.management-page h2{font-size:20px;font-weight:600}
.management-page header{margin-bottom:20px}
.management-page #notice{z-index:1100}
.login-page main{max-width:440px;width:calc(100% - 32px);margin:8vh auto}
.login-page form.card{padding:28px;border-radius:8px;box-shadow:var(--shadow)}
.login-page input{width:100%}.login-page .btn{width:100%}
.login-page main nav{margin-top:20px;text-align:center;font-size:13px}
@media(max-width:1000px){
    .dienas-app .workspace,.management-page .layout{grid-template-columns:minmax(0,1fr)}
    .management-page .layout>aside,.dienas-app .sidebar{position:static}
    .dienas-app .devices{display:flex;overflow:auto}.dienas-app .device{flex:0 0 220px}
    .dienas-app .control-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:600px){
    .dienas-navbar>.container-xl{padding:0 12px;gap:8px;min-height:56px}
    .dienas-navbar{min-height:56px}.brand-caption{display:none}
    .dienas-navbar .navbar-brand{font-size:17px}
    .dienas-nav-links{gap:0}.dienas-nav-links .nav-link{padding:17px 8px;font-size:13px}
    .dienas-app .shell{padding:16px 12px}.dienas-app h1{font-size:24px}
    .dienas-app .topbar{margin-bottom:16px}
    .dienas-app .summary{grid-template-columns:minmax(0,1fr)}
    .dienas-app .metric-value{font-size:28px}
    .dienas-app .control-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .dienas-app .btn,.dienas-app .head-actions button,.dienas-app .pager button,.dienas-app #relayControl .small-button{min-height:44px}
    .dienas-app :is(.form-control,.form-select){font-size:16px;min-height:44px}
    .dienas-app .head-actions{flex-wrap:wrap}.dienas-app .head-actions select{flex:1 1 120px;min-width:0}
    .dienas-app .resources,.dienas-app .health-panel{width:100%}
    .dienas-app .health-actions{gap:8px}
    .dienas-app .condition-row{grid-template-columns:minmax(0,1fr) 90px}
    .dienas-app .condition-row .condition-value{grid-column:1}
    .dienas-app .condition-row button{grid-column:2;min-height:44px}
    .dienas-app .dev-buttons .btn{flex:1 1 140px}
    .dienas-app .chart-expand{min-width:38px;min-height:38px}
    .dienas-app .dialog-close{min-width:44px;min-height:44px}
    .management-page .panel{padding:14px}.management-page .credentials{grid-template-columns:minmax(0,1fr)}
    .management-page .management-table{overflow:auto}.management-page table{min-width:480px}
    .management-page .management-row>.actions{width:100%}
    .management-page .management-row>.actions .btn{flex:1 1 auto}
    .login-page main{margin:28px auto}.login-page form.card{padding:22px}
}
