/* Shared layout only. Authentication and data permissions stay with each runtime. */
body.zb-dashboard-system .login-shell {
  min-height:100dvh; height:auto; place-items:center; padding:24px;
  background:var(--color-background,var(--bg)); overflow:auto;
}
body.zb-dashboard-system .login-shell::before,
body.zb-dashboard-system .login-shell::after { display:none; }
body.zb-dashboard-system .login-card { width:min(410px,100%); }
body.glance-auth-pending > :not(dialog):not(script):not(link):not(.workspace-error),
body.glance-portal:has(dialog.glance-login[open]) > :not(dialog):not(script):not(link):not(.workspace-error) { visibility:hidden!important; }
body.glance-portal:has(dialog.glance-login[open]) { background:var(--canvas); }
dialog.glance-login {
  width:min(410px,calc(100vw - 40px)); padding:32px; border-radius:8px;
  background:var(--panel); color:var(--text); display:none; gap:20px;
  border:1px solid var(--line); max-height:calc(100dvh - 40px); overflow:auto;
}
dialog.glance-login[open] { display:grid; }
dialog.glance-login::backdrop { background:var(--canvas,#f4f7fb); backdrop-filter:none; }
dialog.glance-login:focus { outline:none; }
.glance-login .login-brand { display:flex; justify-content:center; margin:0 0 12px; }
.glance-login .login-brand img { width:80px; height:80px; object-fit:contain; border-radius:8px; background:white; }
.glance-login h1 { margin:0 0 24px; font-size:34px; line-height:.95; letter-spacing:-.03em; text-align:center; }
.glance-login form { display:grid; gap:14px; }
.glance-login label { margin:0; display:grid; gap:8px; font-size:13px; }
.glance-login input { min-height:44px; font-size:14px; }
.glance-login .login-submit { min-height:42px; padding:10px 14px; font-size:14px; }
.glance-login .login-forgot { margin:0; padding:0; width:max-content; font-size:14px; font-family:inherit; text-align:left; }
.glance-login .login-error { min-height:20px; margin:0; line-height:1.4; }
.glance-login .password-eye { border:1px solid var(--line); border-radius:7px; background:var(--canvas); }
@media(max-width:640px) { body.zb-dashboard-system .login-shell{padding:20px} dialog.glance-login{padding:24px} }

/* One form geometry for local and company sign-in, with workspace colors. */
:is(body.zb-dashboard-system .login-card, dialog.glance-login) {
  box-sizing:border-box; width:min(410px,calc(100vw - 40px))!important;
  padding:32px!important; gap:20px!important; border-radius:16px!important;
  border:1px solid var(--line)!important; background:var(--panel)!important;
  color:var(--text)!important; box-shadow:0 16px 40px #172d4333!important;
  font-family:"Segoe UI",Arial,sans-serif!important; font-size:14px!important; line-height:1.4!important;
}
:is(body.zb-dashboard-system .login-card, dialog.glance-login) :is(input,button,a,label) { font-family:inherit!important; }
:is(body.zb-dashboard-system .login-card, dialog.glance-login) .login-brand { display:flex; justify-content:center; align-items:center; margin:0 0 12px!important; }
:is(body.zb-dashboard-system .login-card, dialog.glance-login) .login-brand img { width:80px; height:80px; object-fit:contain; border-radius:8px; background:white; }
:is(body.zb-dashboard-system .login-card, dialog.glance-login) h1:not(.ms-profile-title) { margin:0 0 24px!important; text-align:center!important; font-size:34px!important; font-weight:700!important; line-height:1!important; letter-spacing:-.03em!important; }
:is(body.zb-dashboard-system .login-card, dialog.glance-login) form { display:grid; gap:14px; margin:0; }
:is(body.zb-dashboard-system .login-card, dialog.glance-login) form>label { display:grid; gap:8px; margin:0!important; font-size:13px!important; font-weight:400!important; line-height:18px!important; color:var(--muted); }
:is(body.zb-dashboard-system .login-card, dialog.glance-login) input:not([type=checkbox]) { box-sizing:border-box; width:100%; height:44px!important; min-height:44px!important; padding:10px 12px!important; border:1px solid var(--line)!important; border-radius:8px!important; font-size:14px!important; line-height:20px!important; background:var(--panel-2,var(--canvas))!important; color:var(--text)!important; box-shadow:none!important; }
:is(body.zb-dashboard-system .login-card, dialog.glance-login) :is(.password-control,.login-password) { position:relative; display:block; width:100%; }
:is(body.zb-dashboard-system .login-card, dialog.glance-login) :is(.password-control,.login-password) input { padding-right:48px!important; }
:is(body.zb-dashboard-system .login-card, dialog.glance-login) :is(.password-toggle,.password-eye) { position:absolute!important; right:5px!important; top:5px!important; bottom:auto!important; transform:none!important; display:grid; place-items:center; width:34px!important; height:34px!important; min-height:34px!important; padding:0!important; border:1px solid var(--line)!important; border-radius:6px!important; background:transparent!important; color:var(--muted)!important; box-shadow:none!important; }
:is(body.zb-dashboard-system .login-card, dialog.glance-login) :is(.password-toggle,.password-eye) { font-size:14px!important; line-height:1!important; }
:is(body.zb-dashboard-system .login-card, dialog.glance-login) :is(.password-toggle,.password-eye) svg { width:20px; height:20px; display:block; }
:is(body.zb-dashboard-system .login-card, dialog.glance-login) :is(.btn-primary,.login-submit) { box-sizing:border-box; width:100%; height:42px!important; min-height:42px!important; padding:10px 14px!important; border:1px solid transparent!important; border-radius:8px!important; font-size:14px!important; font-weight:700!important; line-height:20px!important; text-transform:none; background:var(--color-primary,var(--blue))!important; color:#fff!important; box-shadow:none!important; }
:is(body.zb-dashboard-system .login-card, dialog.glance-login) :is(.link-button,.login-forgot) { display:block; width:max-content; margin:0!important; padding:0!important; border:0!important; background:transparent!important; color:var(--color-primary,var(--blue))!important; font-size:14px!important; font-weight:400!important; line-height:20px!important; text-decoration:none; }
:is(body.zb-dashboard-system .login-card, dialog.glance-login) :is(.form-message,.login-error) { min-height:20px; margin:0; font-size:14px; line-height:20px; }
:is(body.zb-dashboard-system .login-card, dialog.glance-login) :is(input,button,a):focus-visible { outline:2px solid var(--color-primary,var(--blue)); outline-offset:2px; }
@media(max-width:640px) { :is(body.zb-dashboard-system .login-card, dialog.glance-login) { padding:24px!important; } }

/* Glance uses the same table density, heading typography and controls as Glide. */
body.glance-portal table { border-collapse:collapse; width:100%; font-size:12px; color:var(--text); }
body.glance-portal table thead th {
  font:700 calc(11.25px * var(--font-scale,1))/1.2 var(--font-ui,Inter,"Segoe UI",sans-serif)!important;
  text-transform:none!important; letter-spacing:normal!important; text-align:left;
  padding:4px 6px 4px 7px!important; height:34px; color:var(--text)!important;
  background:linear-gradient(180deg,color-mix(in srgb,#fff 16%,transparent),transparent 76%),var(--table-header-bg,var(--canvas))!important;
  border-bottom:1px solid var(--color-border-strong,var(--line))!important;
}
body.glance-portal table thead th+th { border-left:1px solid var(--line); }
body.glance-portal table thead th :is(button,.expiry-sort,.glance-table-head) { font:inherit!important; line-height:inherit!important; letter-spacing:inherit!important; }
body.glance-portal table thead th :is(.glance-table-head,.asset-table-head) { display:flex; align-items:center; gap:4px; min-height:25px; }
body.glance-portal table tbody td { padding:8px 12px; font-size:12px; line-height:1.4; border-bottom:1px solid var(--line); }
body.glance-portal :is(.glance-table-menu,.expiry-filter-menu) { font-size:11px; }
body.glance-portal :is(.glance-table-menu,.expiry-filter-menu) button { font:600 11px/1.2 var(--font-ui,Inter,"Segoe UI",sans-serif); padding:5px 8px; min-height:26px; }
body.glance-portal :is(.expiry-filter,.glance-table-filter) { width:16px; min-width:16px; padding:0; background:transparent; border:0; color:inherit; }
body.glance-portal .zb-table-menu { --color-surface:var(--panel); --color-text:var(--text); --color-border:var(--line); --color-surface-alt:var(--canvas); --font-ui:Inter,"Segoe UI",sans-serif; }

/* The shared Directory uses each workspace's existing palette. */
body.glance-portal .view-tabs { display:flex; flex-wrap:wrap; gap:6px; padding:14px 16px 8px; }
body.glance-portal .view-tabs button { min-height:32px; min-width:100px; padding:6px 12px; border:1px solid var(--line); border-radius:6px; background:var(--canvas); color:var(--text); font-family:inherit; font-size:12px; font-weight:600; line-height:1.2; }
body.glance-portal .view-tabs button.active { background:var(--blue); border-color:var(--blue); color:white; }
body.glance-portal .directory-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:8px 16px 14px; }
body.glance-portal .directory-toolbar>input { min-height:32px; padding:6px 10px; border:1px solid var(--line); border-radius:6px; background:var(--panel); color:var(--text); }
body.glance-portal .directory-toolbar .glance-table-tools { margin-left:auto; padding:0; }
body.glance-portal .directory-list { background:var(--panel); border-color:var(--line); border-radius:0; }
body.glance-portal button.directory-person { border:0; background:transparent; color:var(--blue); font:inherit; font-weight:600; padding:0; }
body.glance-portal .directory-dialog { width:min(560px,calc(100vw - 32px)); padding:24px; max-height:calc(100dvh - 32px); overflow:auto; background:var(--panel); color:var(--text); border:1px solid var(--line); border-radius:10px; }
body.glance-portal .directory-dialog form { display:grid; gap:12px; }
body.glance-portal .directory-dialog label { display:grid; gap:5px; }
body.glance-portal .directory-dialog label:has(input[type=checkbox]) { display:flex; gap:8px; align-items:center; }
body.glance-portal .directory-dialog :is(input:not([type=checkbox]),select) { min-height:34px; width:100%; padding:7px 9px; background:var(--canvas); color:var(--text); border:1px solid var(--line); border-radius:6px; }
body.glance-portal .directory-dialog select[multiple] { min-height:80px; }
body.glance-portal .dialog-actions { display:flex; justify-content:flex-end; gap:8px; }
body.glance-portal :is(.primary-button,.secondary-button) { min-height:32px; padding:6px 12px; border:1px solid var(--line); border-radius:6px; background:var(--canvas); color:var(--text); }
body.glance-portal .primary-button { background:var(--blue); border-color:var(--blue); color:white; }

/* A summary tile contains its title, value and icon. Detail rows remain intact. */
body .zb-summary-tile { box-sizing:border-box; position:relative!important; display:block!important; text-align:left!important; height:96px!important; min-height:96px!important; align-self:start; padding:14px 16px!important; }
body .zb-summary-tile .zb-summary-title { display:block!important; padding-right:44px; font-size:12px!important; font-weight:600; line-height:1.25!important; text-transform:none!important; letter-spacing:normal!important; }
body .zb-summary-tile .zb-summary-value { display:block!important; margin-top:7px; padding-right:44px; overflow-wrap:anywhere; font-size:27px!important; font-weight:750; line-height:1.1!important; }
body .zb-summary-tile .zb-summary-icon { position:absolute!important; right:16px!important; top:50%!important; transform:translateY(-50%); width:36px!important; height:36px!important; display:grid!important; place-items:center!important; border-radius:8px; background:color-mix(in srgb,var(--summary-tone,#1769bc) 12%,transparent)!important; color:var(--summary-tone,#1769bc)!important; }
body .zb-summary-tile .zb-summary-icon svg { display:block!important; width:24px!important; height:24px!important; }
body .zb-summary-tile :is(small,.metric-note,.metric-subtitle,.metric-description,.stat-description,.metric-trend):not(.zb-summary-title) { display:none!important; }
body .zb-summary-tile .metric-head { display:block; margin:0; padding:0; }
body .zb-summary-tile[data-summary-tone=red] { --summary-tone:#c43843; }
body .zb-summary-tile[data-summary-tone=amber] { --summary-tone:#a96a08; }
body .zb-summary-tile[data-summary-tone=green] { --summary-tone:#218052; }
body .zb-summary-tile[data-summary-tone=violet] { --summary-tone:#7951ba; }
body .zb-summary-tile[data-summary-tone=cyan] { --summary-tone:#007f99; }
body .zb-summary-tile[data-summary-tone=orange] { --summary-tone:#be621c; }
body .zb-summary-tile[data-summary-tone=teal] { --summary-tone:#087e74; }
:root[data-theme=dark] .zb-summary-tile { --summary-tone:#79baff; }
:root[data-theme=dark] .zb-summary-tile[data-summary-tone=red] { --summary-tone:#ff929c; }
:root[data-theme=dark] .zb-summary-tile[data-summary-tone=amber] { --summary-tone:#f3c16d; }
:root[data-theme=dark] .zb-summary-tile[data-summary-tone=green] { --summary-tone:#7cd5a4; }
:root[data-theme=dark] .zb-summary-tile[data-summary-tone=violet] { --summary-tone:#bea0f4; }
:root[data-theme=dark] .zb-summary-tile[data-summary-tone=cyan] { --summary-tone:#76d4e8; }
:root[data-theme=dark] .zb-summary-tile[data-summary-tone=orange] { --summary-tone:#f7b27c; }
:root[data-theme=dark] .zb-summary-tile[data-summary-tone=teal] { --summary-tone:#78d4c8; }
/* Selected controls retain a light badge so each status color stays legible. */
:root[data-theme] body.zb-dashboard-system.operations-workspace .zb-summary-tile .zb-summary-icon { color:var(--summary-tone,#1769bc)!important; }
body.operations-workspace .zb-summary-tile:is(.is-active,:hover,:active,.is-clicked,:focus-visible) .zb-summary-icon { background:var(--color-surface,#fff)!important; }
body.operations-workspace .zb-summary-tile .zb-summary-icon svg { color:inherit!important; }
/* Filter rows fill the available width while retaining compact dashboard height. */
body.operations-workspace :is(.case-filter-cards,.missing-cards) { flex:none; align-content:start; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); grid-auto-rows:96px; }
#overviewMetrics[hidden] { display:none!important; }
@media(max-width:700px) { body.operations-workspace :is(.case-filter-cards,.missing-cards) { grid-template-columns:repeat(2,minmax(0,1fr)); } }
/* The early stylesheet and deferred decorator reveal complete tiles together. */
body :is(.metric-card,.metric,.route-metric-card,.stats-kpi-card,.expiry-card,.stat-card,.summary-card,.summary-tile,.stats-card,.home-stat,.case-filter-card):has(strong,.metric-value,.stat-value,.summary-value):not(.zb-summary-tile) { visibility:hidden; }
