:root{font-family:Inter,system-ui,sans-serif;color-scheme:dark;background:#0b1020;color:#eef2ff}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top,#18213f,#080b14 55%);min-height:100vh}button,select,input{font:inherit}.shell{max-width:1080px;margin:auto;padding:20px}.top{display:flex;justify-content:space-between;align-items:center;gap:16px}.brand h1{margin:0;font-size:clamp(1.55rem,4vw,2.5rem)}.brand p{margin:.25rem 0;color:#aab5d6}.card{background:rgba(17,24,45,.94);border:1px solid #2a365d;border-radius:16px;padding:16px;box-shadow:0 14px 40px #0007}.app-grid{display:grid;grid-template-columns:minmax(250px,.75fr) minmax(360px,1.25fr);gap:14px;margin-top:16px}.camera-picker{display:grid;gap:6px}.camera-picker select,input{background:#0c1327;border:1px solid #344266;color:#fff;border-radius:9px;padding:9px}.status{font-size:1rem;min-height:58px;margin-top:12px}.badge{display:inline-block;padding:7px 10px;border-radius:10px;background:#243154}.good{background:#174a35}.warn{background:#664b15}.danger{background:#6a2431}.queue-line,.actions,.zoom,.secondary{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.queue-line{justify-content:space-between;color:#aab5d6}.actions{margin-top:12px}button{border:1px solid #405081;border-radius:10px;background:#202c50;color:#fff;cursor:pointer;padding:10px 14px}button:hover{background:#2d3c68}button:disabled{opacity:.35;cursor:not-allowed}.primary{background:#315ed1}.dangerBtn{background:#743042}.controls{display:grid;grid-template-columns:repeat(3,62px);grid-template-rows:repeat(3,54px);gap:7px;justify-content:center}.controls button{font-size:1.35rem;padding:0}.secondary{justify-content:center;margin-top:12px}.step-wrap{display:grid;gap:4px;min-width:150px}.presets{display:flex;gap:7px;flex-wrap:wrap;justify-content:center}.preset{padding:8px 11px}.muted{color:#aab5d6}.error{color:#ff9cae}.auth-login{max-width:480px;margin:24px auto;display:grid;gap:12px}.auth-login label{display:grid;gap:5px}.embedded .shell{padding:6px}.embedded .app-grid{margin-top:0}.layout-vertical .app-grid{grid-template-columns:240px;max-width:240px;margin-inline:auto}.layout-vertical .controls{grid-template-columns:repeat(3,54px);grid-template-rows:repeat(3,48px)}.layout-horizontal .app-grid{grid-template-columns:minmax(220px,.7fr) minmax(500px,1.3fr);align-items:stretch}.layout-horizontal .control-panel{display:flex;gap:14px;align-items:center}.layout-horizontal .secondary{margin-top:0;align-content:center}.layout-horizontal .controls{flex:0 0 auto}.layout-horizontal #lastCommand{display:none}@media(max-width:760px){.app-grid,.layout-horizontal .app-grid{grid-template-columns:1fr}.layout-horizontal .control-panel{display:block}.shell{padding:10px}}.camera-title{font-weight:700;font-size:1.05rem;margin-bottom:4px}.preset-control{display:flex;gap:7px;align-items:end;min-width:210px}.preset-label{display:grid;gap:4px;flex:1;color:#aab5d6;font-size:.9rem}.preset-label select{width:100%;background:#0c1327;border:1px solid #344266;color:#fff;border-radius:9px;padding:9px}.no-camera-page{display:grid;place-items:center}.no-camera-message{width:min(420px,calc(100vw - 32px));text-align:center;font-size:1.1rem}.admin-camera-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.settings-form{max-width:720px;margin:16px auto;display:grid;gap:12px}.settings-form label{display:grid;gap:5px}.settings-form textarea{background:#0c1327;border:1px solid #344266;color:#fff;border-radius:9px;padding:9px;font:inherit;resize:vertical}.settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.settings-grid label{min-width:0}@media(max-width:650px){.settings-grid{grid-template-columns:1fr}.preset-control{min-width:0;width:100%}}
/* v1.2 themes and status refinements */
.theme-light{color-scheme:light;background:#eef2f7;color:#172033}.theme-light body,.theme-light{background:linear-gradient(#f7f9fc,#e8edf5)}.theme-light .card{background:#fff;border-color:#ccd5e2;box-shadow:0 10px 30px #2538581f}.theme-light button{background:#e8eef8;color:#172033;border-color:#aebbd0}.theme-light button:hover{background:#dbe5f3}.theme-light .primary{background:#315ed1;color:#fff}.theme-light input,.theme-light select,.theme-light textarea,.theme-light .preset-label select{background:#fff;color:#172033;border-color:#aebbd0}.theme-light .muted,.theme-light .brand p,.theme-light .queue-line,.theme-light .preset-label{color:#53627a}
@media(prefers-color-scheme:light){.theme-auto{color-scheme:light;background:#eef2f7;color:#172033}.theme-auto .card{background:#fff;border-color:#ccd5e2}.theme-auto button{background:#e8eef8;color:#172033}.theme-auto input,.theme-auto select,.theme-auto textarea,.theme-auto .preset-label select{background:#fff;color:#172033}}
.authority-controls{transition:transform .2s ease,opacity .2s ease;transform:translateY(16px);opacity:0}.authority-controls.active{transform:none;opacity:1}.auth-login{transition:max-height .18s ease,opacity .18s ease,margin .18s ease,padding .18s ease;max-height:520px;overflow:hidden}.auth-login.collapsed{max-height:0;opacity:0;margin:0 auto;padding-top:0;padding-bottom:0;border-width:0}
.status-card-idle{border-left:5px solid #42b883}.status-card-inuse{border-left:5px solid #e0a93a}.status-card-busy{border-left:5px solid #f07f3c}.status-card-verybusy{border-left:5px solid #d94b64}.status-card-authority{border-left:5px solid #9b6de3}.status-card-director{border-left:5px solid #4e8cff}.status-card-paused{border-left:5px solid #8a94a8}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0}.stat-grid div{background:#0c132766;border-radius:9px;padding:8px}.stat-grid strong{display:block;font-size:1.15rem}@media(max-width:650px){.stat-grid{grid-template-columns:1fr 1fr}}

/* v1.2.1 installer scrolling hotfix */
.installer-page{min-height:100vh;overflow-y:auto}.install-form{width:min(760px,100%);margin:24px auto;display:grid;gap:12px;max-height:none;overflow:visible}.install-form label{display:grid;gap:5px}.install-form textarea{width:100%;min-height:430px;background:#0c1327;border:1px solid #344266;color:#fff;border-radius:9px;padding:9px;font:inherit;resize:vertical}.theme-light .install-form textarea{background:#fff;color:#172033;border-color:#aebbd0}@media(max-width:650px){.install-form textarea{min-height:340px}}


/* v1.2.2 compact controls and theme-variable polish */
:root,
.theme-dark {
  --ecs-page-bg: radial-gradient(circle at top,#18213f,#080b14 55%);
  --ecs-text: #eef2ff;
  --ecs-muted: #aab5d6;
  --ecs-card-bg: rgba(17,24,45,.94);
  --ecs-card-border: #2a365d;
  --ecs-field-bg: #0c1327;
  --ecs-field-border: #344266;
  --ecs-button-bg: #202c50;
  --ecs-button-hover: #2d3c68;
  --ecs-button-border: #405081;
  --ecs-primary-bg: #315ed1;
  --ecs-danger-button-bg: #743042;
  --ecs-badge-bg: #243154;
  --ecs-good-bg: #174a35;
  --ecs-good-fg: #f2fff8;
  --ecs-warn-bg: #664b15;
  --ecs-warn-fg: #fff8df;
  --ecs-danger-bg: #6a2431;
  --ecs-danger-fg: #fff1f4;
  --ecs-stat-bg: #0c132766;
  --ecs-idle: #42b883;
  --ecs-inuse: #e0a93a;
  --ecs-busy: #f07f3c;
  --ecs-verybusy: #d94b64;
  --ecs-authority: #9b6de3;
  --ecs-director: #4e8cff;
  --ecs-paused: #8a94a8;
}
.theme-light {
  --ecs-page-bg: linear-gradient(#f7f9fc,#e8edf5);
  --ecs-text: #172033;
  --ecs-muted: #53627a;
  --ecs-card-bg: #fff;
  --ecs-card-border: #ccd5e2;
  --ecs-field-bg: #fff;
  --ecs-field-border: #aebbd0;
  --ecs-button-bg: #e8eef8;
  --ecs-button-hover: #dbe5f3;
  --ecs-button-border: #aebbd0;
  --ecs-primary-bg: #315ed1;
  --ecs-danger-button-bg: #b83f56;
  --ecs-badge-bg: #e3e9f2;
  --ecs-good-bg: #d9f4e4;
  --ecs-good-fg: #174b31;
  --ecs-warn-bg: #fff0c2;
  --ecs-warn-fg: #5a4100;
  --ecs-danger-bg: #f9dce2;
  --ecs-danger-fg: #70263a;
  --ecs-stat-bg: #edf2f8;
  --ecs-idle: #258a5d;
  --ecs-inuse: #b97a00;
  --ecs-busy: #c85b1c;
  --ecs-verybusy: #b92f4c;
  --ecs-authority: #7040bb;
  --ecs-director: #2565c7;
  --ecs-paused: #657086;
}
@media (prefers-color-scheme: light) {
  .theme-auto {
    --ecs-page-bg: linear-gradient(#f7f9fc,#e8edf5);
    --ecs-text: #172033;
    --ecs-muted: #53627a;
    --ecs-card-bg: #fff;
    --ecs-card-border: #ccd5e2;
    --ecs-field-bg: #fff;
    --ecs-field-border: #aebbd0;
    --ecs-button-bg: #e8eef8;
    --ecs-button-hover: #dbe5f3;
    --ecs-button-border: #aebbd0;
    --ecs-primary-bg: #315ed1;
    --ecs-danger-button-bg: #b83f56;
    --ecs-badge-bg: #e3e9f2;
    --ecs-good-bg: #d9f4e4;
    --ecs-good-fg: #174b31;
    --ecs-warn-bg: #fff0c2;
    --ecs-warn-fg: #5a4100;
    --ecs-danger-bg: #f9dce2;
    --ecs-danger-fg: #70263a;
    --ecs-stat-bg: #edf2f8;
    --ecs-idle: #258a5d;
    --ecs-inuse: #b97a00;
    --ecs-busy: #c85b1c;
    --ecs-verybusy: #b92f4c;
    --ecs-authority: #7040bb;
    --ecs-director: #2565c7;
    --ecs-paused: #657086;
  }
}
body { background: var(--ecs-page-bg); color: var(--ecs-text); }
.card { background: var(--ecs-card-bg); border-color: var(--ecs-card-border); }
.muted,.brand p,.queue-line,.preset-label { color: var(--ecs-muted); }
button { background: var(--ecs-button-bg); color: var(--ecs-text); border-color: var(--ecs-button-border); padding: 8px 11px; border-radius: 9px; }
button:hover { background: var(--ecs-button-hover); }
.primary { background: var(--ecs-primary-bg); color: #fff; }
.dangerBtn { background: var(--ecs-danger-button-bg); color: #fff; }
input,select,textarea,.preset-label select,.install-form textarea { background: var(--ecs-field-bg); color: var(--ecs-text); border-color: var(--ecs-field-border); }
.badge { background: var(--ecs-badge-bg); color: var(--ecs-text); }
.badge.good,.good { background: var(--ecs-good-bg); color: var(--ecs-good-fg); }
.badge.warn,.warn { background: var(--ecs-warn-bg); color: var(--ecs-warn-fg); }
.badge.danger,.danger { background: var(--ecs-danger-bg); color: var(--ecs-danger-fg); }
.stat-grid div { background: var(--ecs-stat-bg); }
.status-card-idle { border-left-color: var(--ecs-idle); }
.status-card-inuse { border-left-color: var(--ecs-inuse); }
.status-card-busy { border-left-color: var(--ecs-busy); }
.status-card-verybusy { border-left-color: var(--ecs-verybusy); }
.status-card-authority { border-left-color: var(--ecs-authority); }
.status-card-director { border-left-color: var(--ecs-director); }
.status-card-paused { border-left-color: var(--ecs-paused); }

/* Compact by default while retaining the existing 3×3 format. */
.shell { padding: 14px; }
.card { padding: 12px; border-radius: 13px; }
.app-grid { gap: 10px; margin-top: 12px; }
.status { min-height: 46px; margin-top: 8px; }
.actions { margin-top: 8px; }
.controls { grid-template-columns: repeat(3,54px); grid-template-rows: repeat(3,47px); gap: 5px; }
.controls button { font-size: 1.22rem; }
.secondary { gap: 7px; margin-top: 8px; }
.step-wrap { min-width: 130px; }
.preset-control { min-width: 190px; }
.preset-label select { padding: 7px; }
.layout-vertical .app-grid { grid-template-columns: 218px; max-width: 218px; }
.layout-vertical .controls { grid-template-columns: repeat(3,48px); grid-template-rows: repeat(3,42px); }
.layout-horizontal .app-grid { grid-template-columns: minmax(200px,.68fr) minmax(440px,1.32fr); }
.layout-horizontal .control-panel { gap: 10px; }
.embedded .shell { padding: 4px; }
.embedded .card { padding: 9px; }
.embedded .controls { grid-template-columns: repeat(3,48px); grid-template-rows: repeat(3,42px); gap: 4px; }
.embedded .status { min-height: 42px; margin-top: 5px; }
.embedded .secondary { margin-top: 5px; }
@media(max-width:760px){.shell{padding:8px}.card{padding:10px}}

/* v1.2.5 browser-token release, logs and system pages */
.beta-badge{display:inline-block;vertical-align:middle;margin-left:.4rem;padding:.25rem .45rem;border-radius:.45rem;background:#315ed1;color:#fff;font-size:.68rem;letter-spacing:.08em;font-weight:800}.admin-nav{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.admin-nav a{color:inherit;text-decoration:none;border:1px solid var(--ecs-button-border);background:var(--ecs-button-bg);padding:8px 11px;border-radius:9px}.admin-nav a:hover{background:var(--ecs-button-hover)}.log-filter{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:14px 0}.log-filter label{display:grid;gap:4px}.log-list{padding:0;overflow:hidden}.log-row{display:grid;grid-template-columns:155px 130px 1fr;gap:12px;padding:10px 12px;border-bottom:1px solid var(--ecs-card-border);align-items:start}.log-row:last-child{border-bottom:0}.log-row time{color:var(--ecs-muted);font-variant-numeric:tabular-nums}.system-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0}.health-list{margin:0}.health-list div,.system-camera-list div{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid var(--ecs-card-border)}.health-list div:last-child,.system-camera-list div:last-child{border-bottom:0}.health-list dt{color:var(--ecs-muted)}.health-list dd{margin:0;font-weight:700;text-align:right}.system-camera-list span{color:var(--ecs-muted);text-align:right}@media(max-width:800px){.system-grid{grid-template-columns:1fr}.log-row{grid-template-columns:1fr;gap:3px}.top{align-items:flex-start;flex-direction:column}}

/* v1.2.7 balanced Admin dashboard and Live Activity */
.admin-camera-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px;align-items:stretch}
.admin-camera-card{display:flex;flex-direction:column;min-width:0;height:100%;padding:14px}
.admin-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-height:42px}
.admin-card-head h2{margin:3px 0 0;font-size:1.25rem;line-height:1.2}
.admin-status-badge{flex:0 0 auto;font-weight:700;white-space:nowrap}
.admin-status-zone{display:grid;align-content:start;gap:4px;min-height:64px;padding:10px 0 8px}
.admin-status-zone strong{font-size:1rem}.admin-status-zone span{color:var(--ecs-muted);min-height:1.25em}
.admin-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin:0 0 12px}
.admin-stat-grid>div{min-height:76px;display:flex;flex-direction:column;justify-content:flex-start;overflow:hidden}
.admin-stat-grid small{min-height:2.2em;color:var(--ecs-muted);line-height:1.15}
.admin-stat-grid strong{overflow-wrap:anywhere;line-height:1.2}
.admin-card-controls{display:grid;gap:10px;margin-top:auto}
.admin-action-group{display:grid;gap:5px}.admin-action-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ecs-muted);font-weight:750}
.admin-action-buttons{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.button-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:1px solid var(--ecs-button-border);border-radius:9px;background:var(--ecs-button-bg);color:var(--ecs-text);padding:8px 11px;line-height:1.2}.button-link:hover{background:var(--ecs-button-hover)}.button-link.primary{background:var(--ecs-primary-bg);color:#fff}
.admin-card-footer{display:flex;gap:8px;flex-wrap:wrap;padding-top:12px;margin-top:10px;border-top:1px solid var(--ecs-card-border)}
.admin-queue-list{margin:10px 0 0;padding-left:24px}.admin-queue-list li{padding:4px 0}.admin-queue-list li span{margin-right:8px}
.live-activity-card{margin-top:14px;padding:0;overflow:hidden}.live-activity-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--ecs-card-border)}
.activity-heartbeat{width:11px;height:11px;border-radius:50%;background:var(--ecs-paused);box-shadow:0 0 0 0 color-mix(in srgb,var(--ecs-idle) 45%,transparent)}.activity-heartbeat.alive{background:var(--ecs-idle);animation:activityPulse .65s ease-out}
@keyframes activityPulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--ecs-idle) 55%,transparent)}100%{box-shadow:0 0 0 10px transparent}}
.activity-feed{max-height:70vh;overflow:auto}.activity-item{display:grid;grid-template-columns:90px minmax(120px,180px) 1fr;gap:12px;padding:10px 14px;border-bottom:1px solid var(--ecs-card-border);align-items:start}.activity-item:last-child{border-bottom:0}.activity-item time{color:var(--ecs-muted);font-variant-numeric:tabular-nums}.activity-item strong{overflow-wrap:anywhere}
@media(max-width:800px){.admin-camera-grid{grid-template-columns:1fr}.activity-item{grid-template-columns:1fr;gap:3px}.admin-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:480px){.admin-stat-grid{grid-template-columns:1fr}.admin-stat-grid>div{min-height:auto}.admin-card-head{align-items:flex-start}.admin-status-badge{white-space:normal;text-align:center}}
