:root{
  --dl-primary:#3b82f6;
  --dl-primary-strong:#2563eb;
  --dl-good:#22c55e;
  --dl-warn:#f59e0b;
  --dl-bad:#ef4444;
  --dl-info:#06b6d4;
  --dl-sidebar-w:286px;
  --dl-sidebar-collapsed:82px;
  --dl-topbar-h:70px;
  --dl-radius:18px;
}
html,body{min-height:100%}
.min-width-0{min-width:0}

/* Shared PWA status */
.sync-pill{
  position:fixed;right:14px;bottom:14px;z-index:2000;background:#198754;color:#fff;
  border-radius:999px;padding:.4rem .75rem;font-size:.75rem;box-shadow:0 .25rem 1rem rgba(0,0,0,.15)
}
.sync-pill.offline{background:#dc3545}.sync-pill.syncing{background:#fd7e14}
.offline-queued{border-color:#fd7e14!important;box-shadow:0 0 0 .15rem rgba(253,126,20,.1)}
#binMap{border-radius:1rem;overflow:hidden}.gantt-bar{height:1rem;border-radius:999px;background:#0d6efd}

/* ================================
   DLPRO ADMIN — HOCKEY EDGE INSPIRED
   ================================ */
.admin-app{
  --dl-bg:#08101d;
  --dl-bg2:#0d1525;
  --dl-panel:#111827;
  --dl-panel2:#172033;
  --dl-panel3:#1e293b;
  --dl-text:#e5e7eb;
  --dl-muted:#94a3b8;
  --dl-line:#263244;
  --dl-soft-line:rgba(148,163,184,.13);
  --dl-sidebar:#0b1220;
  --dl-topbar:rgba(8,16,29,.88);
  --dl-shadow:0 14px 34px rgba(0,0,0,.17);
  --dl-shadow-sm:0 8px 22px rgba(0,0,0,.12);
  background:
    radial-gradient(circle at 14% 0%,color-mix(in srgb,var(--dl-primary) 13%,transparent),transparent 31%),
    linear-gradient(180deg,var(--dl-bg),var(--dl-bg2));
  color:var(--dl-text);
  min-height:100vh;
}
html[data-bs-theme="light"] .admin-app{
  --dl-bg:#f4f7fb;
  --dl-bg2:#edf2f8;
  --dl-panel:#fff;
  --dl-panel2:#f8fafc;
  --dl-panel3:#eef2f7;
  --dl-text:#172033;
  --dl-muted:#64748b;
  --dl-line:#dbe3ee;
  --dl-soft-line:rgba(15,23,42,.08);
  --dl-sidebar:#0f172a;
  --dl-topbar:rgba(244,247,251,.9);
  --dl-shadow:0 12px 28px rgba(15,23,42,.08);
  --dl-shadow-sm:0 8px 20px rgba(15,23,42,.07);
}
.admin-app a{color:inherit}
.admin-shell{min-height:100vh;display:flex}
.admin-sidebar{
  width:var(--dl-sidebar-w);
  background:
    radial-gradient(circle at 0 0,rgba(59,130,246,.15),transparent 28%),
    linear-gradient(180deg,#0b1220,#0a101d 70%,#09101b);
  border-right:1px solid rgba(148,163,184,.12);
  position:fixed;inset:0 auto 0 0;z-index:1040;
  transition:width .2s ease;
  color:#e5e7eb;
}
.admin-main{
  width:100%;min-width:0;margin-left:var(--dl-sidebar-w);
  min-height:100vh;display:flex;flex-direction:column;
  transition:margin-left .2s ease;
}
body.sidebar-collapsed .admin-sidebar{width:var(--dl-sidebar-collapsed)}
body.sidebar-collapsed .admin-main{margin-left:var(--dl-sidebar-collapsed)}
.sidebar-top{min-height:70px;display:flex;align-items:center;padding:.8rem .8rem .8rem 1rem;border-bottom:1px solid rgba(148,163,184,.11)}
.sidebar-brand{display:flex;align-items:center;gap:.72rem;color:#f8fafc;min-width:0}
.sidebar-brand:hover{color:#fff}
.brand-mark,.brand-mark-sm{
  display:grid;place-items:center;background:linear-gradient(145deg,#2563eb,#4f8ef7);color:#fff;
  font-weight:800;border-radius:14px;box-shadow:0 0 0 5px rgba(59,130,246,.12),0 8px 18px rgba(37,99,235,.16)
}
.brand-mark{width:54px;height:54px;font-size:1.25rem}
.brand-mark-sm{width:38px;height:38px;font-size:1rem;flex:0 0 38px}
.brand-copy{display:flex;flex-direction:column;line-height:1.05;min-width:0}
.brand-copy strong{font-size:.98rem;letter-spacing:-.01em}
.brand-copy small{font-size:.67rem;color:#7f8ea3;margin-top:.28rem;text-transform:uppercase;letter-spacing:.09em;font-weight:700}
.sidebar-collapse-btn{
  margin-left:auto;width:34px;height:34px;border:1px solid rgba(148,163,184,.14);border-radius:10px;
  background:rgba(255,255,255,.03);color:#94a3b8;display:grid;place-items:center;
}
.sidebar-collapse-btn:hover{background:rgba(59,130,246,.11);color:#fff;border-color:rgba(59,130,246,.3)}
.sidebar-workspace{
  margin:.9rem .8rem .55rem;padding:.72rem .75rem;display:flex;align-items:center;gap:.65rem;
  border:1px solid rgba(148,163,184,.12);border-radius:14px;background:rgba(255,255,255,.035);
}
.workspace-icon{
  width:34px;height:34px;border-radius:11px;display:grid;place-items:center;flex:0 0 34px;
  color:#7dd3fc;background:rgba(59,130,246,.13);border:1px solid rgba(59,130,246,.16)
}
.workspace-copy{font-size:.79rem}
.workspace-copy strong{color:#e5e7eb;font-size:.82rem}
.workspace-label{display:block;color:#64748b;text-transform:uppercase;letter-spacing:.08em;font-size:.59rem;font-weight:800;margin-bottom:.12rem}
.sidebar-search-wrap{
  margin:.35rem .8rem .65rem;position:relative;display:flex;align-items:center;
}
.sidebar-search-wrap>i{position:absolute;left:.72rem;color:#64748b;font-size:.85rem}
.sidebar-search{
  width:100%;height:38px;border-radius:11px;border:1px solid rgba(148,163,184,.11);
  padding:0 .72rem 0 2.15rem;background:rgba(255,255,255,.035);color:#e5e7eb;font-size:.8rem;outline:none;
}
.sidebar-search::placeholder{color:#64748b}
.sidebar-search:focus{border-color:rgba(59,130,246,.45);box-shadow:0 0 0 .18rem rgba(59,130,246,.1)}
.sidebar-nav{padding:.15rem .65rem .8rem;scrollbar-width:thin;scrollbar-color:rgba(148,163,184,.2) transparent}
.sidebar-link{
  display:flex;align-items:center;gap:.72rem;min-height:40px;padding:.53rem .7rem;margin:.05rem 0;
  border-radius:11px;text-decoration:none;color:#9aa8bc;font-size:.81rem;font-weight:560;
  position:relative;transition:background .14s,color .14s,transform .14s;
}
.sidebar-link>i{width:19px;text-align:center;font-size:.94rem;flex:0 0 19px}
.sidebar-link:hover{background:rgba(255,255,255,.055);color:#f8fafc;transform:translateX(1px)}
.sidebar-link.active{
  color:#fff;background:linear-gradient(90deg,rgba(59,130,246,.22),rgba(59,130,246,.08));
  box-shadow:inset 3px 0 0 #3b82f6;
}
.sidebar-link.active>i{color:#60a5fa}
.sidebar-home{margin-bottom:.35rem}
.nav-badge{
  font-size:.55rem;letter-spacing:.06em;font-weight:800;padding:.14rem .35rem;border-radius:999px;
  color:#7dd3fc;background:rgba(14,165,233,.11);border:1px solid rgba(125,211,252,.13)
}
.nav-section{margin:.13rem 0}
.nav-section-toggle{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.65rem .7rem .42rem;
  color:#64748b;background:transparent;border:0;text-transform:uppercase;letter-spacing:.09em;font-size:.62rem;font-weight:850;
}
.nav-section-toggle>span{gap:.65rem}
.nav-section-toggle>span>i{width:19px;text-align:center;font-size:.82rem;color:#65758b}
.nav-section-toggle:hover{color:#94a3b8}
.nav-section-chevron{font-size:.62rem;transition:transform .18s}
.nav-section-toggle.is-open .nav-section-chevron{transform:rotate(180deg)}
.nav-section-items{display:none}
.nav-section-items.show{display:block}
.sidebar-heading{padding:.75rem .7rem .3rem;color:#64748b;font-size:.62rem;text-transform:uppercase;letter-spacing:.09em;font-weight:850}
.sidebar-footer{padding:.75rem;border-top:1px solid rgba(148,163,184,.11)}
.user-panel{
  display:flex;align-items:center;gap:.65rem;border-radius:13px;padding:.55rem .58rem;color:#cbd5e1;background:rgba(255,255,255,.025)
}
.user-panel:hover{background:rgba(255,255,255,.055);color:#fff}
.user-avatar{
  width:36px;height:36px;display:grid;place-items:center;flex:0 0 36px;border-radius:12px;overflow:hidden;position:relative;
  font-weight:850;font-size:.76rem;color:#dbeafe;background:linear-gradient(145deg,rgba(59,130,246,.3),rgba(6,182,212,.16));
  border:1px solid rgba(96,165,250,.2)
}
.user-avatar-sm{width:32px;height:32px;flex-basis:32px;border-radius:10px}
.user-copy{font-size:.76rem}.user-copy small{color:#64748b}
body.sidebar-collapsed .brand-copy,
body.sidebar-collapsed .sidebar-workspace .workspace-copy,
body.sidebar-collapsed .sidebar-search,
body.sidebar-collapsed .sidebar-link>span,
body.sidebar-collapsed .nav-section-label,
body.sidebar-collapsed .nav-section-chevron,
body.sidebar-collapsed .user-copy,
body.sidebar-collapsed .user-panel>i{display:none!important}
body.sidebar-collapsed .sidebar-top{padding-left:.8rem}
body.sidebar-collapsed .sidebar-collapse-btn{display:none}
body.sidebar-collapsed .sidebar-brand{margin:auto}
body.sidebar-collapsed .sidebar-workspace{justify-content:center;padding:.6rem;margin:.8rem .65rem .5rem}
body.sidebar-collapsed .sidebar-search-wrap{height:36px;margin:.2rem .65rem .65rem;border:1px solid rgba(148,163,184,.11);border-radius:11px;background:rgba(255,255,255,.035)}
body.sidebar-collapsed .sidebar-search-wrap>i{position:static;margin:auto}
body.sidebar-collapsed .sidebar-link{justify-content:center;padding:.54rem .2rem}
body.sidebar-collapsed .nav-section-toggle{justify-content:center;padding:.55rem .2rem .25rem}
body.sidebar-collapsed .nav-section-toggle>span{gap:0}
body.sidebar-collapsed .nav-section-items{display:block}
body.sidebar-collapsed .sidebar-footer{padding:.65rem}
body.sidebar-collapsed .user-panel{justify-content:center;padding:.45rem}

.admin-topbar{
  z-index:1030;background:var(--dl-topbar);backdrop-filter:blur(16px);
  border-bottom:1px solid var(--dl-soft-line);box-shadow:0 1px 0 rgba(255,255,255,.025),0 10px 35px rgba(0,0,0,.06);
}
.topbar-inner{height:var(--dl-topbar-h);display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 1.15rem 0 1.35rem}
.topbar-title strong{font-size:.95rem;letter-spacing:-.01em;color:var(--dl-text)}
.eyebrow{text-transform:uppercase;letter-spacing:.105em;font-size:.61rem;font-weight:850;color:color-mix(in srgb,var(--dl-primary) 80%,#7dd3fc);margin-bottom:.1rem}
.topbar-actions{display:flex;align-items:center;gap:.45rem}
.icon-btn{
  width:36px;height:36px;border-radius:11px;border:1px solid var(--dl-line);background:var(--dl-panel);
  color:var(--dl-muted);display:grid;place-items:center;text-decoration:none;padding:0;
}
.icon-btn:hover{color:var(--dl-text);border-color:color-mix(in srgb,var(--dl-primary) 36%,var(--dl-line));background:color-mix(in srgb,var(--dl-primary) 6%,var(--dl-panel))}
.quick-create-btn{border-radius:11px;padding:.47rem .8rem;font-weight:700}
.user-menu-btn{
  min-height:40px;max-width:235px;display:flex;align-items:center;gap:.55rem;border:0;background:transparent;
  color:var(--dl-text);padding:.25rem .35rem;border-radius:12px
}
.user-menu-btn:hover{background:color-mix(in srgb,var(--dl-panel3) 62%,transparent)}
.user-menu-btn strong{font-size:.75rem;line-height:1.1;max-width:138px}
.user-menu-btn small{font-size:.64rem;color:var(--dl-muted);max-width:138px}
.user-menu-btn:after{color:var(--dl-muted);font-size:.62rem}
.admin-app .dropdown-menu{
  --bs-dropdown-bg:var(--dl-panel);--bs-dropdown-border-color:var(--dl-line);--bs-dropdown-color:var(--dl-text);
  --bs-dropdown-link-color:var(--dl-text);--bs-dropdown-link-hover-color:var(--dl-text);
  --bs-dropdown-link-hover-bg:color-mix(in srgb,var(--dl-primary) 9%,var(--dl-panel));
  border-radius:14px;padding:.45rem;box-shadow:var(--dl-shadow)!important
}
.admin-app .dropdown-item{border-radius:9px;padding:.55rem .65rem;font-size:.82rem;display:flex;align-items:center;gap:.6rem}
.admin-app .dropdown-divider{border-color:var(--dl-line)}

.admin-content{padding:1.3rem 1.35rem 2rem;flex:1}
.admin-footer{
  min-height:48px;padding:.75rem 1.35rem;display:flex;align-items:center;gap:.55rem;
  color:var(--dl-muted);font-size:.68rem;border-top:1px solid var(--dl-soft-line);background:color-mix(in srgb,var(--dl-bg2) 85%,transparent)
}
.footer-dot{width:4px;height:4px;border-radius:50%;background:var(--dl-primary)}

/* Core admin surfaces */
.admin-app .card,.admin-app .modal-content,.admin-app .offcanvas{
  background:var(--dl-panel);border-color:var(--dl-line);color:var(--dl-text)
}
.admin-app .card{border-radius:var(--dl-radius);box-shadow:var(--dl-shadow);border:1px solid var(--dl-line)!important}
.admin-app .card-header,.admin-app .card-footer{border-color:var(--dl-line)}
.admin-app .card-header{background:linear-gradient(90deg,color-mix(in srgb,var(--dl-primary) 10%,transparent),transparent)}
.admin-app .text-body-secondary,.admin-app .text-secondary{color:var(--dl-muted)!important}
.admin-app .form-control,.admin-app .form-select{
  background:var(--dl-panel2);border-color:var(--dl-line);color:var(--dl-text);border-radius:11px;min-height:42px
}
.admin-app textarea.form-control{min-height:110px}
.admin-app .form-control:focus,.admin-app .form-select:focus{
  background:var(--dl-panel2);color:var(--dl-text);border-color:var(--dl-primary);box-shadow:0 0 0 .2rem color-mix(in srgb,var(--dl-primary) 16%,transparent)
}
.admin-app .form-control::placeholder{color:var(--dl-muted)}
.admin-app .form-label{font-size:.72rem;font-weight:750;color:var(--dl-muted);letter-spacing:.015em;margin-bottom:.42rem}
.admin-app .form-check-input{background-color:var(--dl-panel2);border-color:var(--dl-line)}
.admin-app .form-check-input:checked{background-color:var(--dl-primary);border-color:var(--dl-primary)}
.admin-app .table{
  --bs-table-bg:transparent;--bs-table-color:var(--dl-text);--bs-table-border-color:var(--dl-line);
  margin-bottom:0;vertical-align:middle
}
.admin-app .table>thead{background:color-mix(in srgb,var(--dl-panel3) 72%,transparent)}
.admin-app .table>thead th{
  font-size:.66rem;text-transform:uppercase;letter-spacing:.07em;color:var(--dl-muted);font-weight:850;white-space:nowrap;padding:.78rem .85rem
}
.admin-app .table>tbody td{padding:.78rem .85rem;font-size:.79rem}
.admin-app .table-hover>tbody>tr:hover>*{--bs-table-bg-state:color-mix(in srgb,var(--dl-primary) 6%,transparent)}
.admin-app .btn{border-radius:10px;font-weight:700;font-size:.8rem}
.admin-app .btn-sm{border-radius:9px;font-size:.72rem}
.admin-app .btn-outline-secondary{--bs-btn-color:var(--dl-muted);--bs-btn-border-color:var(--dl-line);--bs-btn-hover-bg:var(--dl-panel3);--bs-btn-hover-border-color:var(--dl-line);--bs-btn-hover-color:var(--dl-text)}
.admin-app .btn-outline-dark{--bs-btn-color:var(--dl-muted);--bs-btn-border-color:var(--dl-line);--bs-btn-hover-bg:var(--dl-panel3);--bs-btn-hover-border-color:var(--dl-line);--bs-btn-hover-color:var(--dl-text)}
.admin-app .alert{border-radius:14px}
.admin-app .badge{font-size:.66rem;border-radius:999px;padding:.35rem .52rem}
.admin-app hr{border-color:var(--dl-line)}
.admin-app .pagination{--bs-pagination-bg:var(--dl-panel);--bs-pagination-border-color:var(--dl-line);--bs-pagination-color:var(--dl-text)}

.page-hero{
  padding:1.25rem 1.35rem;border:1px solid color-mix(in srgb,var(--dl-primary) 28%,var(--dl-line));border-radius:20px;
  background:linear-gradient(125deg,color-mix(in srgb,var(--dl-primary) 17%,var(--dl-panel)),var(--dl-panel) 62%,color-mix(in srgb,var(--dl-info) 7%,var(--dl-panel)));
  box-shadow:var(--dl-shadow);display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap
}
.page-hero h1,.page-heading h1{letter-spacing:-.025em}
.page-hero .hero-icon{
  width:50px;height:50px;border-radius:15px;display:grid;place-items:center;font-size:1.15rem;
  color:#93c5fd;background:rgba(59,130,246,.12);border:1px solid rgba(96,165,250,.18);flex:0 0 50px
}
.page-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.section-card{overflow:hidden}
.card-header-soft{padding:.9rem 1rem;background:linear-gradient(90deg,color-mix(in srgb,var(--dl-primary) 11%,transparent),transparent);border-bottom:1px solid var(--dl-line)}
.metric{font-size:1.7rem;font-weight:850;letter-spacing:-.04em}
.metric-label{color:var(--dl-muted);font-size:.64rem;text-transform:uppercase;letter-spacing:.08em;font-weight:780}
.stat-card{position:relative;overflow:hidden;box-shadow:var(--dl-shadow-sm)!important}
.stat-card:after{
  content:"";position:absolute;right:-35px;bottom:-48px;width:112px;height:112px;border-radius:50%;
  background:rgba(255,255,255,.025);pointer-events:none
}
.stat-card .stat-icon{
  width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--dl-panel3);color:var(--dl-muted);font-size:.95rem
}
.stat-primary{border-top:3px solid var(--dl-primary)!important}.stat-primary .stat-icon{color:#93c5fd;background:color-mix(in srgb,var(--dl-primary) 13%,var(--dl-panel))}
.stat-success{border-top:3px solid var(--dl-good)!important}.stat-success .stat-icon{color:#86efac;background:color-mix(in srgb,var(--dl-good) 11%,var(--dl-panel))}
.stat-info{border-top:3px solid var(--dl-info)!important}.stat-info .stat-icon{color:#67e8f9;background:color-mix(in srgb,var(--dl-info) 11%,var(--dl-panel))}
.stat-warning{border-top:3px solid var(--dl-warn)!important}.stat-warning .stat-icon{color:#fcd34d;background:color-mix(in srgb,var(--dl-warn) 11%,var(--dl-panel))}
.stat-danger{border-top:3px solid var(--dl-bad)!important}.stat-danger .stat-icon{color:#fca5a5;background:color-mix(in srgb,var(--dl-bad) 11%,var(--dl-panel))}
.workflow-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.72rem}
.workflow-tile{
  min-height:105px;display:flex;flex-direction:column;justify-content:space-between;gap:.75rem;padding:1rem;
  border:1px solid var(--dl-line);border-radius:15px;text-decoration:none;background:var(--dl-panel2);font-weight:700;color:var(--dl-text);
  transition:transform .15s,border-color .15s,background .15s
}
.workflow-tile:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--dl-primary) 55%,var(--dl-line));background:color-mix(in srgb,var(--dl-primary) 5%,var(--dl-panel2));color:var(--dl-text)}
.workflow-tile .workflow-icon{
  width:38px;height:38px;border-radius:12px;display:grid;place-items:center;color:#93c5fd;
  background:color-mix(in srgb,var(--dl-primary) 12%,var(--dl-panel));border:1px solid color-mix(in srgb,var(--dl-primary) 18%,var(--dl-line))
}
.workflow-tile .workflow-meta{font-size:.68rem;color:var(--dl-muted);font-weight:560}
.status-chip{
  display:inline-flex;align-items:center;gap:.35rem;padding:.27rem .5rem;border-radius:999px;font-size:.64rem;font-weight:800;
  background:var(--dl-panel3);border:1px solid var(--dl-line);color:var(--dl-muted)
}
.status-chip .dot{width:6px;height:6px;border-radius:50%;background:var(--dl-good);box-shadow:0 0 0 3px color-mix(in srgb,var(--dl-good) 13%,transparent)}
.command-card{height:100%;overflow:hidden}
.command-card .card-body{padding:1rem}
.command-list{display:grid;gap:.55rem}
.command-row{
  display:flex;align-items:center;gap:.7rem;padding:.65rem .7rem;border-radius:12px;border:1px solid var(--dl-line);
  background:var(--dl-panel2);text-decoration:none;color:var(--dl-text)
}
.command-row:hover{border-color:color-mix(in srgb,var(--dl-primary) 35%,var(--dl-line));background:color-mix(in srgb,var(--dl-primary) 4%,var(--dl-panel2));color:var(--dl-text)}
.command-row>i:first-child{width:20px;text-align:center;color:#93c5fd}
.command-row .small{color:var(--dl-muted)}
.table-card{overflow:hidden}
.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.8rem 1rem;border-bottom:1px solid var(--dl-line);background:var(--dl-panel)}
.empty-state{padding:3rem 1rem;text-align:center;color:var(--dl-muted)}
.empty-state .empty-icon{width:54px;height:54px;margin:0 auto .8rem;border-radius:16px;display:grid;place-items:center;background:var(--dl-panel3);font-size:1.2rem;color:#7f8ea3}
.form-shell .card-body{padding:1.25rem}
.form-section-title{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;font-weight:850;color:var(--dl-muted);margin-bottom:.9rem}
.offline-hint{display:inline-flex;align-items:center;gap:.35rem}
.offline-hint:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--dl-good);box-shadow:0 0 0 3px color-mix(in srgb,var(--dl-good) 12%,transparent)}

/* Responsive mobile admin navigation */
.admin-mobile-nav{
  --bs-offcanvas-width:min(88vw,330px);background:#0b1220!important;color:#e5e7eb!important;border-right:1px solid rgba(148,163,184,.12)!important
}
.admin-mobile-nav .offcanvas-header{border-bottom:1px solid rgba(148,163,184,.11)}
.admin-mobile-nav .btn-close{filter:invert(1) grayscale(100%) brightness(200%)}
.admin-mobile-nav .sidebar-nav{overflow:visible}
.admin-mobile-nav .sidebar-link{color:#9aa8bc}
.admin-mobile-nav .sidebar-link:hover,.admin-mobile-nav .sidebar-link.active{color:#fff}

/* Authentication */
.auth-page{
  --auth-bg:#08101d;--auth-panel:#111827;--auth-panel2:#172033;--auth-text:#e5e7eb;--auth-muted:#94a3b8;--auth-line:#263244;
  min-height:100vh;color:var(--auth-text);
  background:
    radial-gradient(circle at 18% 8%,rgba(59,130,246,.18),transparent 30%),
    radial-gradient(circle at 85% 88%,rgba(6,182,212,.08),transparent 34%),
    linear-gradient(180deg,#08101d,#0d1525);
}
.auth-page .auth-shell{min-height:100vh;display:grid;place-items:center;padding:1.5rem}
.auth-page .auth-card{
  width:min(100%,460px);border:1px solid var(--auth-line);border-radius:22px;background:rgba(17,24,39,.92);
  box-shadow:0 24px 60px rgba(0,0,0,.28);backdrop-filter:blur(14px);overflow:hidden
}
.auth-page .auth-card-body{padding:1.65rem}
.auth-page .auth-brand{display:flex;align-items:center;gap:.8rem;margin-bottom:1.35rem}
.auth-page .auth-brand-copy h1{font-size:1.08rem;margin:0}.auth-page .auth-brand-copy small{color:var(--auth-muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.auth-page .form-label{font-size:.72rem;font-weight:750;color:var(--auth-muted)}
.auth-page .form-control{background:var(--auth-panel2);border-color:var(--auth-line);color:var(--auth-text);border-radius:12px;min-height:46px}
.auth-page .form-control:focus{background:var(--auth-panel2);color:var(--auth-text);border-color:var(--dl-primary);box-shadow:0 0 0 .2rem rgba(59,130,246,.16)}
.auth-page .auth-footer{padding:.82rem 1.1rem;border-top:1px solid var(--auth-line);color:#64748b;font-size:.68rem;text-align:center;background:rgba(255,255,255,.015)}
.auth-page .security-line{display:flex;align-items:center;justify-content:center;gap:.4rem;color:#7f8ea3;font-size:.69rem;margin-top:.9rem}

/* Mobile field app should retain lightweight Bootstrap behavior */
.mobile-shell .card{border-radius:1rem}
.mobile-shell .mobile-action{min-height:94px}

/* Print */
@media print{
  .admin-sidebar,.admin-topbar,.admin-footer,.sync-pill,.btn,.offcanvas{display:none!important}
  .admin-main{margin:0!important}.admin-content{padding:0!important}
  .admin-app .card{box-shadow:none!important;border:1px solid #ddd!important}
  body{background:#fff!important;color:#000!important}
}

@media(max-width:1199.98px){
  .workflow-grid{grid-template-columns:1fr}
}
@media(max-width:991.98px){
  .admin-main{margin-left:0}
  .admin-sidebar{display:none!important}
  .admin-content{padding:1rem}
  .topbar-inner{padding:0 .9rem;height:62px}
  .admin-footer{padding:.7rem 1rem}
}
@media(max-width:767.98px){
  .page-hero{align-items:flex-start;padding:1rem}
  .page-heading{align-items:flex-start}
  .metric{font-size:1.45rem}
  .admin-app .table{font-size:.84rem}
  .admin-content{padding:.85rem .8rem 1.4rem}
  .workflow-grid{grid-template-columns:1fr}
}
@media(max-width:575.98px){
  .page-hero h1{font-size:1.25rem}
  .admin-app .card{border-radius:15px}
  .admin-app .btn{--bs-btn-padding-x:.7rem}
  .stat-card .card-body{padding:.85rem}
  .metric{font-size:1.35rem}
  .topbar-actions{gap:.28rem}
  .icon-btn{width:34px;height:34px}
}

/* v4.0.5 drill-down, client management and print */
.print-masthead{display:none}
.timeline-list{display:grid;gap:.85rem}
.timeline-item{display:grid;grid-template-columns:14px minmax(0,1fr);gap:.7rem;position:relative}
.timeline-item:not(:last-child):before{content:"";position:absolute;left:5px;top:13px;bottom:-14px;width:1px;background:var(--dl-line)}
.timeline-dot{width:11px;height:11px;border-radius:50%;margin-top:.28rem;background:var(--dl-primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--dl-primary) 12%,transparent)}
.drill-table th{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--dl-muted);font-weight:800}
.drill-long{max-height:22rem;overflow:auto;white-space:normal}
.invoice-sheet{max-width:1100px;margin-inline:auto}
.client-management-tabs>.tab-pane{min-height:120px}

@media print{
  @page{size:auto;margin:12mm}
  html,body{background:#fff!important;color:#000!important;font-size:10.5pt!important}
  .admin-sidebar,.admin-topbar,.admin-footer,.sync-pill,.offcanvas,.no-print,.nav.nav-pills,.toast-container{display:none!important}
  .admin-main{margin:0!important;width:100%!important}.admin-content{padding:0!important;max-width:none!important}
  .print-masthead{display:flex!important;justify-content:space-between;align-items:flex-start;border-bottom:2px solid #111;padding-bottom:8px;margin-bottom:14px;color:#000}
  .client-management-tabs>.tab-pane{display:block!important;opacity:1!important;margin-bottom:16px!important}
  .client-management-tabs>.tab-pane:not(:first-child){border-top:1px solid #bbb;padding-top:12px}
  .admin-app .card,.page-hero{box-shadow:none!important;border:1px solid #bbb!important;background:#fff!important;color:#000!important}
  .card-header-soft,.table-toolbar{background:#f4f4f4!important;color:#000!important}
  .table{--bs-table-color:#000;--bs-table-bg:#fff;--bs-table-border-color:#bbb;color:#000!important}
  .table th,.table td{color:#000!important;background:#fff!important}
  .text-body-secondary,.metric-label,.small,.eyebrow{color:#444!important}
  a{color:#000!important;text-decoration:none!important}
  .badge{border:1px solid #777!important;color:#000!important;background:#fff!important}
  .stat-card{break-inside:avoid}.print-avoid-break,.invoice-sheet,.command-card{break-inside:avoid}
  .drill-long{max-height:none;overflow:visible}
  .row{--bs-gutter-x:.6rem;--bs-gutter-y:.6rem}
}
@media print{
  .tab-content>.tab-pane{display:block!important;opacity:1!important;margin-bottom:16px!important}
}
.detail-pre{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;font-size:.82rem;line-height:1.45;background:var(--bs-tertiary-bg);border:1px solid var(--bs-border-color);border-radius:.75rem;padding:1rem;max-height:34rem;overflow:auto}
@media print{.detail-pre{max-height:none;overflow:visible;background:#fff!important;border-color:#bbb!important;white-space:pre-wrap!important}}
/* v4.1 client-admin refinements */
.brand-glyph{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#2f7df6,#6ca7ff);color:#fff;font-weight:900;box-shadow:0 8px 24px rgba(47,125,246,.28)}
.nav-glyph{width:22px;display:inline-grid;place-items:center;font-size:.9rem;opacity:.9}.sidebar-link{gap:.65rem}.nav-section-toggle{gap:.65rem}.nav-section-toggle .nav-glyph{font-size:.8rem}.table-clickable tbody tr{cursor:pointer}.table-clickable tbody tr:hover{background:rgba(86,148,255,.07)}
.field-required::after{content:' *';color:#ff6b6b}.hero-kicker{text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:800;opacity:.65}.metric-number{font-size:1.9rem;font-weight:800;line-height:1}.chart-bars{display:flex;align-items:end;gap:8px;height:140px;padding-top:12px}.chart-bar{flex:1;min-width:14px;border-radius:8px 8px 2px 2px;background:linear-gradient(180deg,#6ca7ff,#2f7df6);position:relative}.chart-bar span{position:absolute;left:50%;transform:translateX(-50%);bottom:-24px;font-size:.68rem;white-space:nowrap}.gantt-grid{overflow:auto}.gantt-row{display:grid;grid-template-columns:240px 1fr;gap:12px;align-items:center;padding:.55rem 0;border-bottom:1px solid var(--bs-border-color)}.gantt-track{height:26px;border-radius:8px;background:rgba(127,127,127,.12);position:relative;min-width:600px}.gantt-bar{position:absolute;top:4px;height:18px;border-radius:6px;background:linear-gradient(90deg,#2f7df6,#6ca7ff);min-width:8px}.print-only{display:none}@media print{.admin-sidebar,.admin-topbar,.no-print,.offcanvas{display:none!important}.admin-main{margin:0!important}.page-shell{padding:0!important}.print-only{display:block}.card{break-inside:avoid;box-shadow:none!important;border:1px solid #bbb!important}.table{font-size:10pt}.admin-content{padding:0!important}}

/* =========================================================
   v4.2.15 CLIENT ADMIN DESIGN SYSTEM
   Corporate, compact and consistent. Mobile PWA excluded.
   ========================================================= */
.admin-app{
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:14px;line-height:1.5;
}
.admin-content{max-width:1800px;width:100%;margin-inline:auto}
.admin-app h1{font-size:1.55rem;line-height:1.2;font-weight:760;letter-spacing:-.025em}
.admin-app h2{font-size:1.08rem;line-height:1.3;font-weight:720;letter-spacing:-.012em}
.admin-app h3{font-size:.96rem;font-weight:700}
.admin-app p{line-height:1.58}
.page-shell{width:100%;max-width:100%}
.hero-panel,.page-hero{
  display:flex;align-items:center;justify-content:space-between;gap:1.25rem;
  padding:1.15rem 1.25rem;border:1px solid var(--dl-line);border-radius:16px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--dl-primary) 8%,var(--dl-panel)),var(--dl-panel) 54%);
  box-shadow:var(--dl-shadow-sm);
}
.hero-panel h1,.page-hero h1{margin:0;color:var(--dl-text)}
.hero-kicker,.eyebrow{font-size:.64rem;letter-spacing:.11em;font-weight:820;text-transform:uppercase}
.content-card{
  padding:1rem 1.05rem;border:1px solid var(--dl-line);border-radius:15px;background:var(--dl-panel);
  box-shadow:var(--dl-shadow-sm);color:var(--dl-text)
}
a.content-card{transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}
a.content-card:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--dl-primary) 35%,var(--dl-line));box-shadow:var(--dl-shadow);color:var(--dl-text)}
.section-card{padding:0;overflow:hidden}.section-card>.card-head{padding:1rem 1.05rem}.section-card>.detail-grid{padding:0 1.05rem 1.05rem}
.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:.8rem;margin-bottom:.85rem;border-bottom:1px solid var(--dl-soft-line)}
.card-head h2,.card-head h3{color:var(--dl-text)}
.metric-card{padding:1rem;border:1px solid var(--dl-line);border-radius:15px;background:var(--dl-panel);box-shadow:var(--dl-shadow-sm);color:var(--dl-text)}
.metric-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.07em;color:var(--dl-muted);font-weight:800}
.metric-number{font-size:1.65rem;font-weight:780;letter-spacing:-.035em;color:var(--dl-text)}
.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}
.detail-field{padding:.72rem .78rem;border:1px solid var(--dl-soft-line);border-radius:11px;background:var(--dl-panel2);min-width:0}
.detail-label{font-size:.63rem;text-transform:uppercase;letter-spacing:.065em;color:var(--dl-muted);font-weight:800;margin-bottom:.22rem}
.detail-value{font-size:.86rem;color:var(--dl-text);font-weight:560;min-height:1.3em}
.related-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.64rem 0;border-bottom:1px solid var(--dl-soft-line)}
.related-row:last-child{border-bottom:0}
.form-shell{padding:1.1rem}.form-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1.1rem;padding-top:1rem;border-top:1px solid var(--dl-soft-line)}
.admin-app .btn{font-size:.78rem;font-weight:680;border-radius:9px;padding:.46rem .72rem}
.admin-app .btn-sm{font-size:.72rem;padding:.36rem .58rem}
.admin-app .form-control,.admin-app .form-select{font-size:.82rem;min-height:39px;padding:.46rem .65rem}
.admin-app .form-text{font-size:.7rem;color:var(--dl-muted)}
.admin-app .table-responsive{border-radius:11px}
.admin-app table.table{margin-bottom:0;font-size:.79rem;vertical-align:middle;--bs-table-bg:transparent;--bs-table-color:var(--dl-text);--bs-table-border-color:var(--dl-soft-line)}
.admin-app table.table thead th{background:var(--dl-panel2);color:var(--dl-muted);font-size:.64rem;letter-spacing:.055em;text-transform:uppercase;font-weight:820;padding:.68rem .72rem;border-bottom:1px solid var(--dl-line);white-space:nowrap}
.admin-app table.table tbody td{padding:.66rem .72rem;border-color:var(--dl-soft-line);color:var(--dl-text)}
.admin-app table.table tbody tr:hover td{background:color-mix(in srgb,var(--dl-primary) 4%,transparent)}
.admin-app table.table th[data-dl-sort]{cursor:pointer;user-select:none;padding-right:1.5rem;position:relative}
.admin-app table.table th[data-dl-sort]::after{content:"↕";position:absolute;right:.55rem;opacity:.35;font-size:.72rem}
.admin-app table.table th[data-dl-sort].sort-asc::after{content:"↑";opacity:.85}.admin-app table.table th[data-dl-sort].sort-desc::after{content:"↓";opacity:.85}
.dl-table-wrap{border:1px solid var(--dl-soft-line);border-radius:12px;overflow:hidden;background:var(--dl-panel)}
.dl-table-wrap>.table-responsive{border-radius:0}
.dl-table-controls{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;padding:.66rem .72rem;background:var(--dl-panel2);border-bottom:1px solid var(--dl-soft-line)}
.dl-table-search{position:relative;max-width:320px;min-width:210px;flex:0 1 320px}.dl-table-search input{padding-left:2rem!important}.dl-table-search::before{content:"⌕";position:absolute;left:.68rem;top:.39rem;color:var(--dl-muted);font-size:1rem;z-index:1}
.dl-table-meta{font-size:.69rem;color:var(--dl-muted)}
.dl-table-pager{display:flex;align-items:center;gap:.4rem}.dl-table-pager button{min-width:32px}.dl-table-page{font-size:.69rem;color:var(--dl-muted);min-width:70px;text-align:center}
.status-chip{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--dl-line);background:var(--dl-panel2);border-radius:999px;padding:.34rem .6rem;font-size:.7rem;font-weight:700;color:var(--dl-text)}
.status-chip .dot{width:7px;height:7px;border-radius:50%;background:var(--dl-primary)}
.workflow-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}.workflow-step{height:34px;display:grid;place-items:center;border:1px solid var(--dl-line);border-radius:9px;background:var(--dl-panel2);color:var(--dl-muted);font-size:.68rem;font-weight:720;position:relative}.workflow-step.complete{background:color-mix(in srgb,var(--dl-good) 11%,var(--dl-panel2));border-color:color-mix(in srgb,var(--dl-good) 38%,var(--dl-line));color:var(--dl-text)}
.project-anchor-nav{display:flex;gap:.38rem;overflow:auto;padding:.45rem;border:1px solid var(--dl-line);border-radius:12px;background:var(--dl-panel);position:sticky;top:calc(var(--dl-topbar-h) + 8px);z-index:8}.project-anchor-nav a{white-space:nowrap;padding:.42rem .62rem;border-radius:8px;text-decoration:none;font-size:.72rem;color:var(--dl-muted);font-weight:680}.project-anchor-nav a:hover{background:var(--dl-panel2);color:var(--dl-text)}
.report-sheet{max-width:1500px;margin-inline:auto}.report-section{break-inside:avoid}.report-narrative{white-space:normal;line-height:1.65;color:var(--dl-text);padding:.15rem 0}.report-detail-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.attachment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem}.attachment-card{display:flex;align-items:center;gap:.7rem;text-decoration:none;padding:.7rem;border:1px solid var(--dl-soft-line);border-radius:11px;background:var(--dl-panel2)}.attachment-card:hover{border-color:color-mix(in srgb,var(--dl-primary) 35%,var(--dl-line));color:var(--dl-text)}.attachment-preview{width:64px;height:52px;display:grid;place-items:center;flex:0 0 64px;border-radius:8px;overflow:hidden;background:var(--dl-panel3)}.attachment-preview img{width:100%;height:100%;object-fit:cover}.attachment-file-icon{font-size:1.45rem;color:var(--dl-muted)}.report-signature{max-width:320px;max-height:100px;object-fit:contain;background:#fff;border-radius:8px;padding:.35rem}
.chart-card{min-height:300px}.chart-frame{height:220px;min-height:220px;padding:1rem .25rem 1.8rem;position:relative}.chart-bars{height:190px;display:flex;align-items:flex-end;gap:10px;padding:0 .35rem;border-bottom:1px solid var(--dl-soft-line)}.chart-bar{min-height:4px;min-width:20px;max-width:54px;margin-inline:auto;background:linear-gradient(180deg,#6ea8ff,#3478e5);border-radius:7px 7px 2px 2px;position:relative}.chart-bar span{bottom:-24px;color:var(--dl-muted);font-size:.62rem}.chart-bar b{position:absolute;top:-22px;left:50%;transform:translateX(-50%);font-size:.65rem;color:var(--dl-text);white-space:nowrap}.chart-empty{height:180px;display:grid;place-items:center;color:var(--dl-muted);font-size:.78rem}
.profile-card .profile-value{font-size:.86rem;font-weight:570}.profile-card .profile-label{font-size:.63rem;color:var(--dl-muted);font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.2rem}.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.profile-item{padding:.68rem;border:1px solid var(--dl-soft-line);border-radius:10px;background:var(--dl-panel2)}
.gantt-row{grid-template-columns:minmax(210px,280px) minmax(700px,1fr)}.gantt-track{min-width:700px;background:var(--dl-panel2);border:1px solid var(--dl-soft-line)}
@media(max-width:1199.98px){.detail-grid,.report-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-frame{height:210px}}
@media(max-width:767.98px){.hero-panel,.page-hero{flex-direction:column;align-items:flex-start}.detail-grid,.report-detail-grid,.profile-grid{grid-template-columns:1fr}.workflow-steps{grid-template-columns:1fr 1fr}.dl-table-controls{align-items:stretch}.dl-table-search{max-width:none;flex:1 0 100%}.admin-app h1{font-size:1.35rem}}
@media print{.dl-table-controls,.project-anchor-nav{display:none!important}.content-card,.hero-panel,.page-hero{box-shadow:none!important}.report-sheet{max-width:none}.report-section{break-inside:auto}}
.cost-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.7rem}.cost-summary-item{padding:.75rem .82rem;border:1px solid var(--dl-soft-line);border-radius:10px;background:var(--dl-panel2);display:flex;align-items:center;justify-content:space-between;gap:.75rem}.cost-summary-item span{font-size:.72rem;color:var(--dl-muted);font-weight:720}.cost-summary-item strong{font-size:.9rem}.cost-summary-item.total{border-color:color-mix(in srgb,var(--dl-primary) 35%,var(--dl-line));background:color-mix(in srgb,var(--dl-primary) 6%,var(--dl-panel2))}.attachment-list{display:grid;gap:.15rem}
/* v4.2.15 configurable workflow + revision audit */
.workflow-step.current{background:color-mix(in srgb,var(--dl-primary) 13%,var(--dl-panel2));border-color:color-mix(in srgb,var(--dl-primary) 50%,var(--dl-line));color:var(--dl-text);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--dl-primary) 22%,transparent)}
.audit-diff-block{padding:.85rem 0;border-bottom:1px solid var(--dl-line)}
.audit-diff-block:last-child{border-bottom:0}.audit-diff-block.audit-changed{background:color-mix(in srgb,var(--dl-warn) 7%,transparent);margin-inline:-.6rem;padding-inline:.6rem;border-radius:10px}
.audit-json{white-space:pre-wrap;word-break:break-word;max-height:24rem;overflow:auto;background:var(--dl-panel2);border:1px solid var(--dl-line);border-radius:10px;padding:.75rem;margin:.45rem 0 0;color:var(--dl-text);font-size:.74rem;line-height:1.45}
/* v4.2.15 immutable drawing markup viewer */
.admin-drawing-stage{position:relative;width:100%;min-height:620px;overflow:hidden;border:1px solid var(--bs-border-color);border-radius:12px;background:#e9ecef}.admin-drawing-master{display:block;width:100%;height:680px;object-fit:contain;border:0;background:#fff}.admin-drawing-stage canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}@media(max-width:768px){.admin-drawing-stage{min-height:440px}.admin-drawing-master{height:520px}}


/* v4.2.15a interactive Gantt */
.gantt-shell{--gantt-day-width:34px;overflow:hidden}.gantt-toolbar-card{position:sticky;top:72px;z-index:5}.gantt-head,.gantt-line{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr)}.gantt-head{border-bottom:1px solid var(--dl-soft-line);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.gantt-head-label{padding:.7rem .75rem}.gantt-timeline-scroll{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.gantt-head .gantt-timeline-scroll{overflow:hidden}.gantt-time-header,.gantt-row-canvas{position:relative;min-height:42px;min-width:100%}.gantt-time-header{height:46px;background:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--gantt-day-width) - 1px),var(--dl-soft-line) calc(var(--gantt-day-width) - 1px),var(--dl-soft-line) var(--gantt-day-width))}.gantt-time-tick{position:absolute;top:0;height:100%;border-left:1px solid var(--dl-soft-line);padding:.45rem .4rem;white-space:nowrap;font-size:.72rem;font-weight:700;color:var(--bs-secondary-color)}.gantt-line{border-bottom:1px solid var(--dl-soft-line);min-height:92px}.gantt-task-cell{padding:.75rem;min-width:0}.gantt-task-cell.is-subtask{padding-left:2rem;background:color-mix(in srgb,var(--dl-panel2) 55%,transparent)}.gantt-row-scroll{touch-action:pan-x pan-y}.gantt-row-canvas{height:92px;background:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--gantt-day-width) - 1px),color-mix(in srgb,var(--dl-soft-line) 60%,transparent) calc(var(--gantt-day-width) - 1px),color-mix(in srgb,var(--dl-soft-line) 60%,transparent) var(--gantt-day-width))}.gantt-task-bar{position:absolute;top:32px;height:30px;border-radius:7px;background:linear-gradient(90deg,#2f7df6,#6ca7ff);border:1px solid rgba(13,110,253,.65);overflow:visible;min-width:10px;box-shadow:0 1px 2px rgba(0,0,0,.12)}.gantt-task-bar.is-editable{cursor:grab;touch-action:none}.gantt-task-bar.is-dragging{cursor:grabbing;z-index:4;box-shadow:0 4px 14px rgba(0,0,0,.2)}.gantt-actual-overlay{position:absolute;inset:0 auto 0 0;background:rgba(220,53,69,.48);border-radius:6px 0 0 6px;pointer-events:none}.gantt-resize-handle{position:absolute;top:-3px;bottom:-3px;width:12px;cursor:ew-resize;z-index:3}.gantt-resize-handle.left{left:-5px}.gantt-resize-handle.right{right:-5px}.gantt-resize-handle::after{content:'';position:absolute;top:7px;bottom:7px;width:2px;background:rgba(255,255,255,.9);left:5px;border-radius:2px}.gantt-collapse-btn{border:0;background:transparent;color:inherit;width:24px;height:24px;padding:0;border-radius:5px;font-weight:800}.gantt-collapse-btn:hover{background:var(--dl-panel2)}.gantt-collapse-spacer{display:inline-block;width:24px}.gantt-line.is-collapsed-child{display:none}.gantt-legend{display:inline-block;width:24px;height:10px;border-radius:4px;margin-right:5px;vertical-align:-1px}.gantt-legend.planned{background:#2f7df6}.gantt-legend.actual{background:rgba(220,53,69,.48);border:1px solid rgba(220,53,69,.7)}.gantt-status.is-error{color:var(--bs-danger)!important}.gantt-status.is-saving{color:var(--bs-primary)!important}@media(max-width:900px){.gantt-head,.gantt-line{grid-template-columns:220px minmax(0,1fr)}.gantt-task-cell{font-size:.86rem}.gantt-toolbar-card{position:static}}@media print{.gantt-shell{overflow:visible}.gantt-timeline-scroll{overflow:visible}.gantt-head,.gantt-line{grid-template-columns:240px 1fr}.gantt-resize-handle{display:none}.gantt-time-header,.gantt-row-canvas{min-width:800px}}

/* v4.2.15c saved PDF markup hotfix: static non-scrollable render */
.admin-drawing-pdf-static{height:auto!important;max-width:100%;object-fit:initial}.admin-drawing-render-error{padding:2rem;text-align:center;color:var(--dl-muted);background:var(--dl-panel2);width:100%}
/* v4.2.15d markup revision timeline */
.markup-timeline{display:flex;gap:.65rem;overflow-x:auto;padding:.25rem .1rem .75rem}.markup-timeline-item{min-width:150px;border:1px solid var(--bs-border-color);border-radius:10px;padding:.7rem;text-decoration:none;color:inherit;background:var(--bs-body-bg)}.markup-timeline-item span,.markup-timeline-item small{display:block}.markup-timeline-item small{color:var(--dl-muted)}.markup-timeline-item.active{border:2px solid var(--bs-primary);padding:calc(.7rem - 1px)}

/* BOBMIN development-mode entitlement visibility */
.development-mode .dev-entitlement{background:rgba(245,158,11,.10)!important;box-shadow:inset 3px 0 rgba(245,158,11,.45)}
.development-mode .dev-entitlement:hover{background:rgba(245,158,11,.15)!important}


/* HF-02 v4.2.15f2 — corporate sign-in */
.auth-page-corporate{min-height:100vh;margin:0;background:#eef3f8;color:#12233a}
.auth-page-corporate .login-layout{min-height:100vh;display:grid;grid-template-columns:minmax(360px,42%) minmax(0,1fr)}
.auth-page-corporate .login-brand-panel{position:relative;overflow:hidden;background:linear-gradient(145deg,#071b34 0%,#0b2f5b 52%,#0b5ed7 145%);color:#fff;padding:clamp(2.25rem,5vw,5rem)}
.auth-page-corporate .login-brand-panel::after{content:"";position:absolute;width:430px;height:430px;border-radius:50%;right:-180px;bottom:-190px;border:1px solid rgba(255,255,255,.16);box-shadow:0 0 0 70px rgba(255,255,255,.035),0 0 0 140px rgba(255,255,255,.025)}
.auth-page-corporate .login-brand-inner{position:relative;z-index:1;min-height:calc(100vh - clamp(4.5rem,10vw,10rem));display:flex;flex-direction:column}
.auth-page-corporate .login-brand-row,.auth-page-corporate .login-mobile-brand{display:flex;align-items:center;gap:.9rem}
.auth-page-corporate .login-mark{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:#1672f3;color:#fff;border:1px solid rgba(255,255,255,.36);box-shadow:0 14px 32px rgba(0,0,0,.18);font-size:1.25rem;font-weight:900;letter-spacing:-.04em}
.auth-page-corporate .login-product{font-size:1.05rem;font-weight:850;letter-spacing:-.01em}
.auth-page-corporate .login-product-sub{font-size:.69rem;text-transform:uppercase;letter-spacing:.09em;opacity:.67;font-weight:700;margin-top:.08rem}
.auth-page-corporate .login-brand-copy{margin:auto 0;max-width:590px;padding:4rem 0}
.auth-page-corporate .login-kicker,.auth-page-corporate .login-version{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.13em}
.auth-page-corporate .login-kicker{color:#9fc6ff;margin-bottom:1rem}
.auth-page-corporate .login-brand-copy h1{font-size:clamp(2.35rem,4.4vw,4.35rem);line-height:1.02;letter-spacing:-.045em;font-weight:850;margin:0 0 1.25rem}
.auth-page-corporate .login-brand-copy p{max-width:540px;font-size:1.08rem;line-height:1.65;color:rgba(255,255,255,.72);margin:0}
.auth-page-corporate .login-host{display:flex;align-items:center;gap:.55rem;font-size:.78rem;font-weight:700;color:rgba(255,255,255,.66)}
.auth-page-corporate .login-host-dot{width:8px;height:8px;border-radius:50%;background:#59d98e;box-shadow:0 0 0 4px rgba(89,217,142,.13)}
.auth-page-corporate .login-form-panel{display:grid;place-items:center;padding:clamp(1.5rem,5vw,5rem);background:#f5f8fc}
.auth-page-corporate .login-form-wrap{width:min(100%,470px);background:#fff;border:1px solid #dce5ef;border-radius:22px;padding:clamp(1.5rem,3.4vw,2.6rem);box-shadow:0 24px 70px rgba(18,35,58,.11)}
.auth-page-corporate .login-mobile-brand{display:none;margin-bottom:2rem}
.auth-page-corporate .login-version{color:#5f7b9e;margin-bottom:.65rem}
.auth-page-corporate .login-form-wrap h2{font-size:2rem;font-weight:850;letter-spacing:-.035em;color:#10223a;margin:0 0 .4rem}
.auth-page-corporate .login-intro{color:#677b94;margin:0 0 1.65rem;font-size:1rem}
.auth-page-corporate .login-alert{border-radius:12px;border:1px solid #f1b7bd;background:#fff2f3;color:#8f2030;padding:.9rem 1rem;font-size:.92rem}
.auth-page-corporate .login-form .form-label{color:#415672;font-size:.78rem;font-weight:800;letter-spacing:.01em}
.auth-page-corporate .login-form .form-control{background:#f9fbfd!important;border:1px solid #cad6e4!important;color:#12233a!important;border-radius:11px!important;min-height:50px!important;font-size:1rem!important;box-shadow:none!important}
.auth-page-corporate .login-form .form-control:focus{background:#fff!important;border-color:#2878e8!important;box-shadow:0 0 0 .2rem rgba(40,120,232,.12)!important}
.auth-page-corporate .login-form .form-check-input{border-color:#aebdce}
.auth-page-corporate .login-form .form-check-label{color:#415672;font-size:.9rem}
.auth-page-corporate .login-forgot{font-size:.82rem;font-weight:750;color:#216fd6;text-decoration:none}
.auth-page-corporate .login-forgot:hover{text-decoration:underline}
.auth-page-corporate .password-control{position:relative}
.auth-page-corporate .password-control .form-control{padding-right:4.7rem}
.auth-page-corporate .password-toggle{position:absolute;right:.45rem;top:50%;transform:translateY(-50%);height:36px;min-width:60px;border:0;border-radius:8px;background:#eaf2fc;color:#1d63bd;font-size:.78rem;font-weight:850;cursor:pointer}
.auth-page-corporate .password-toggle:hover{background:#dceafb}
.auth-page-corporate .password-toggle:focus-visible{outline:3px solid rgba(40,120,232,.22);outline-offset:1px}
.auth-page-corporate .login-secure-label{font-size:.72rem;font-weight:750;color:#7589a2;white-space:nowrap}
.auth-page-corporate .login-submit{min-height:52px;border-radius:11px;font-weight:800;background:#1769d2;border-color:#1769d2;box-shadow:0 10px 24px rgba(23,105,210,.2)}
.auth-page-corporate .login-submit:hover{background:#115dbc;border-color:#115dbc}
.auth-page-corporate .login-routing-note{margin-top:1.35rem;padding:1rem 1.05rem;border-radius:12px;background:#f2f6fb;border:1px solid #e0e8f1;display:grid;gap:.2rem;color:#647890;font-size:.8rem;line-height:1.45}
.auth-page-corporate .login-routing-note strong{color:#334b68;font-size:.78rem}
@media(max-width:991.98px){.auth-page-corporate .login-layout{display:block}.auth-page-corporate .login-brand-panel{display:none}.auth-page-corporate .login-form-panel{min-height:100vh;padding:1.25rem;background:linear-gradient(180deg,#edf4fc,#f8fafc 42%,#eef3f8)}.auth-page-corporate .login-form-wrap{padding:1.45rem;border-radius:18px}.auth-page-corporate .login-mobile-brand{display:flex}.auth-page-corporate .login-mark{width:46px;height:46px;border-radius:12px}.auth-page-corporate .login-form-wrap h2{font-size:1.75rem}.auth-page-corporate .login-secure-label{display:none}}
@media(max-width:420px){.auth-page-corporate .login-form-panel{padding:.8rem}.auth-page-corporate .login-form-wrap{padding:1.25rem}.auth-page-corporate .login-product-sub{font-size:.61rem}.auth-page-corporate .login-routing-note{font-size:.76rem}}

/* HF-03 g2 staged Gantt edits */
.gantt-line.is-dirty .gantt-task-cell{box-shadow:inset 4px 0 0 var(--bs-warning);background:color-mix(in srgb,var(--bs-warning) 8%,transparent)}

/* =========================================================
   HF-04 · Client Admin navigation & UI consistency
   ========================================================= */
.app-context-bar{
  min-height:42px;display:flex;align-items:center;gap:.65rem;margin:0 0 .9rem;padding:.42rem .55rem;
  border:1px solid var(--dl-line);border-radius:13px;background:color-mix(in srgb,var(--dl-panel) 88%,transparent);
  box-shadow:var(--dl-shadow-sm)
}
.app-history-controls{display:flex;gap:.35rem;flex:0 0 auto}
.context-nav-btn{
  width:31px;height:31px;display:grid;place-items:center;border:1px solid var(--dl-line);border-radius:9px;
  background:var(--dl-panel2);color:var(--dl-muted);font-weight:800;line-height:1;transition:.15s ease
}
.context-nav-btn:hover{color:var(--dl-text);border-color:color-mix(in srgb,var(--dl-primary) 48%,var(--dl-line));background:color-mix(in srgb,var(--dl-primary) 6%,var(--dl-panel2))}
.app-breadcrumbs{display:flex;align-items:center;gap:.42rem;min-width:0;overflow:hidden;font-size:.74rem;color:var(--dl-muted);font-weight:650;white-space:nowrap}
.app-breadcrumbs a{color:var(--dl-muted);text-decoration:none;max-width:260px;overflow:hidden;text-overflow:ellipsis}
.app-breadcrumbs a:hover{color:var(--dl-primary)}
.app-breadcrumbs span[aria-current="page"]{color:var(--dl-text);font-weight:800;max-width:340px;overflow:hidden;text-overflow:ellipsis}
.breadcrumb-separator{opacity:.55;flex:0 0 auto}

/* Treat legacy hero-panel and newer page-hero as one visual system. */
.admin-app .hero-panel,.admin-app .page-hero{
  padding:1.18rem 1.25rem;border:1px solid color-mix(in srgb,var(--dl-primary) 24%,var(--dl-line));border-radius:18px;
  background:linear-gradient(125deg,color-mix(in srgb,var(--dl-primary) 14%,var(--dl-panel)),var(--dl-panel) 64%,color-mix(in srgb,var(--dl-info) 5%,var(--dl-panel)));
  box-shadow:var(--dl-shadow);display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap
}
.admin-app .hero-panel h1,.admin-app .page-hero h1{font-size:1.34rem;letter-spacing:-.025em;margin-bottom:.22rem}
.admin-app .hero-kicker,.admin-app .eyebrow{font-size:.64rem;text-transform:uppercase;letter-spacing:.095em;font-weight:850;color:#7fb1ff}
.admin-app .content-card>.card-head{min-height:56px;padding:.9rem 1rem;border-bottom:1px solid var(--dl-line);margin-bottom:0}
.admin-app .card-head>div:first-child{min-width:0}
.admin-app .card-head h2,.admin-app .card-head h3{letter-spacing:-.012em}
.admin-app .content-card>.table-responsive:first-child:last-child{border-radius:inherit}
.admin-app .table td .badge{white-space:nowrap}
.admin-app .table td:last-child .btn{white-space:nowrap}

.dl-table-wrap{min-width:0}
.dl-table-controls{
  display:grid;grid-template-columns:minmax(180px,320px) 1fr auto;gap:.75rem;align-items:center;
  padding:.72rem .82rem;border-bottom:1px solid var(--dl-line);background:color-mix(in srgb,var(--dl-panel2) 56%,var(--dl-panel))
}
.dl-table-search{position:relative}.dl-table-search:before{content:'⌕';position:absolute;left:.68rem;top:50%;transform:translateY(-52%);color:var(--dl-muted);z-index:2}
.dl-table-search input{padding-left:1.8rem!important;min-height:36px!important}
.dl-table-meta{font-size:.7rem;color:var(--dl-muted);font-weight:650}
.dl-table-pager{display:flex;align-items:center;gap:.45rem;justify-self:end}
.dl-table-page{font-size:.7rem;color:var(--dl-muted);min-width:72px;text-align:center;font-weight:700}
th[data-dl-sort="1"]{cursor:pointer;user-select:none;padding-right:1.6rem!important;position:relative}
th[data-dl-sort="1"]:after{content:'↕';position:absolute;right:.55rem;opacity:.38;font-size:.72rem}
th[data-dl-sort="1"].sort-asc:after{content:'↑';opacity:1;color:var(--dl-primary)}
th[data-dl-sort="1"].sort-desc:after{content:'↓';opacity:1;color:var(--dl-primary)}
.dl-empty-table{padding:2.5rem 1rem!important;text-align:center!important;color:var(--dl-muted)!important}
.dl-empty-table:before{content:'No records';display:block;font-size:.82rem;font-weight:800;color:var(--dl-text);margin-bottom:.2rem}

.admin-app .filter-bar{display:flex;gap:.7rem;align-items:end;flex-wrap:wrap;padding:.8rem 1rem;border-bottom:1px solid var(--dl-line);background:var(--dl-panel2)}
.admin-app .filter-bar .form-control,.admin-app .filter-bar .form-select{min-height:38px}
.admin-app .action-bar{display:flex;justify-content:flex-end;align-items:center;gap:.5rem;flex-wrap:wrap}
.admin-app .status-badge{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.32rem .54rem;font-size:.66rem;font-weight:800;border:1px solid var(--dl-line);background:var(--dl-panel3);color:var(--dl-text)}
.admin-app .empty-state{padding:2.6rem 1rem;border:1px dashed var(--dl-line);border-radius:14px;background:color-mix(in srgb,var(--dl-panel2) 60%,transparent);text-align:center;color:var(--dl-muted)}

@media(max-width:767.98px){
  .app-context-bar{align-items:flex-start}.app-breadcrumbs{overflow-x:auto;padding:.25rem 0;scrollbar-width:none}.app-breadcrumbs::-webkit-scrollbar{display:none}
  .app-breadcrumbs a,.app-breadcrumbs span[aria-current="page"]{max-width:220px}
  .dl-table-controls{grid-template-columns:1fr auto}.dl-table-search{grid-column:1/-1}.dl-table-meta{align-self:center}.dl-table-pager{justify-self:end}
  .admin-app .hero-panel,.admin-app .page-hero{padding:1rem;border-radius:16px;align-items:flex-start}.admin-app .hero-panel>div:last-child,.admin-app .page-hero>div:last-child{width:100%}.admin-app .hero-panel .btn,.admin-app .page-hero .btn{flex:1 1 auto}
}
@media(max-width:480px){.dl-table-controls{grid-template-columns:1fr}.dl-table-meta,.dl-table-pager{justify-self:stretch}.dl-table-pager{justify-content:space-between}.app-context-bar{gap:.45rem;padding:.38rem}.context-nav-btn{width:29px;height:29px}}

/* HF-05 saved drawing markup review */
.admin-drawing-scroll{width:100%;max-height:76vh;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;border:1px solid var(--bs-border-color);border-radius:12px;background:#e9ecef}.admin-drawing-scroll .admin-drawing-stage{width:auto;min-width:320px;min-height:0;margin:0 auto;border:0;border-radius:0;overflow:hidden;background:#fff}.admin-drawing-scroll .admin-drawing-master{width:auto;height:auto;min-height:0;max-width:none}.admin-drawing-scroll .admin-drawing-stage canvas#adminDrawingCanvas{position:absolute;inset:0;z-index:2;width:100%;height:100%}.admin-drawing-pagebar{display:flex;gap:.5rem;align-items:center;justify-content:center;flex-wrap:wrap;margin-bottom:.75rem}.admin-drawing-render-error{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;text-align:center;padding:1.5rem;background:rgba(255,255,255,.94);color:#842029}.admin-drawing-render-error[hidden]{display:none}@media(max-width:768px){.admin-drawing-scroll{max-height:68vh}.admin-drawing-scroll .admin-drawing-stage{min-width:280px}}

/* HF-06 j1: compact searchable list filters */
.dl-table-filters{display:flex;gap:.45rem;flex-wrap:wrap;align-items:center}.dl-table-filters .form-select{width:auto;min-width:150px;max-width:240px}@media(max-width:720px){.dl-table-filters{width:100%}.dl-table-filters .form-select{width:100%;max-width:none}}

/* HF-08 corrective: user profile photos throughout Client Admin */
.user-avatar img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;max-width:100%!important;max-height:100%!important;display:block!important;object-fit:cover!important;object-position:center!important;border-radius:inherit!important}
.user-avatar-xs{width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;max-width:28px!important;max-height:28px!important;flex:0 0 28px!important;border-radius:50%;font-size:.65rem}
.user-avatar-sm{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;max-width:32px!important;max-height:32px!important;flex:0 0 32px!important;border-radius:50%}
.user-avatar-md{width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;max-width:36px!important;max-height:36px!important;flex:0 0 36px!important;border-radius:50%}
.user-identity{display:inline-flex;align-items:center;gap:.5rem;min-width:0;vertical-align:middle}
.user-identity-copy{display:flex;flex-direction:column;min-width:0;line-height:1.18}
.user-identity-copy strong{font-weight:700;white-space:normal}
.user-identity-copy small{color:var(--bs-secondary-color);font-size:.76rem;white-space:normal}
/* HF-12 client branding */
:root{--client-primary:#246fe5;--client-accent:#78aaff}.client-brand-logo{width:42px;height:42px;object-fit:contain;border-radius:8px;background:#fff;padding:3px}.login-client-logo{max-width:150px;max-height:58px;object-fit:contain;background:#fff;border-radius:10px;padding:4px}.btn-primary{background-color:var(--client-primary);border-color:var(--client-primary)}a{--bs-link-color-rgb:var(--client-primary)}.hero-kicker,.eyebrow{color:var(--client-accent)!important}.sidebar-link.active{box-shadow:inset 3px 0 0 var(--client-accent)}
@media print{body:after{content:"Powered by DailyLog Pro";display:block;text-align:center;font-size:8pt;color:#777;margin-top:12mm}}

/* HF-16 t5 warehouse order QR */
.warehouse-order-qr{width:210px;height:210px;max-width:100%;padding:8px;background:#fff;border:1px solid #e2e8f0;border-radius:10px}.warehouse-order-qr svg{display:block;width:100%;height:100%}.warehouse-order-qr-error{display:flex;align-items:center;justify-content:center;height:100%;font-size:.85rem;color:#b42318}@media print{body *{visibility:hidden!important}.warehouse-order-qr,.warehouse-order-qr *,.warehouse-order-qr+*{visibility:visible!important}.warehouse-order-qr{position:absolute;left:40px;top:40px;width:300px;height:300px}#printOrderQr{display:none!important}}
/* HF-19 retained — baseline / approved / forecast Gantt layers and schedule warnings */
.gantt-row-canvas{height:108px}.gantt-line{min-height:108px}.gantt-baseline-bar,.gantt-forecast-bar{position:absolute;height:10px;border-radius:999px;pointer-events:none;min-width:8px}.gantt-baseline-bar{top:17px;background:transparent;border:2px solid color-mix(in srgb,var(--bs-secondary-color) 75%,transparent)}.gantt-task-bar{top:39px}.gantt-forecast-bar{top:78px;background:color-mix(in srgb,var(--bs-warning) 28%,transparent);border:2px dashed var(--bs-warning)}.gantt-project-end-line{position:absolute;top:0;bottom:0;border-left:2px solid var(--bs-danger);z-index:2;pointer-events:none}.gantt-project-end-header{position:absolute;top:0;bottom:0;border-left:2px solid var(--bs-danger);z-index:2}.gantt-project-end-header span{position:absolute;top:2px;left:4px;font-size:.66rem;color:var(--bs-danger);white-space:nowrap;text-transform:none;letter-spacing:0}.gantt-line.has-schedule-warning .gantt-task-cell{box-shadow:inset 4px 0 0 var(--bs-warning)}.gantt-legend.baseline{background:transparent;border:2px solid var(--bs-secondary-color)}.gantt-legend.approved{background:#2f7df6}.gantt-legend.forecast{background:color-mix(in srgb,var(--bs-warning) 25%,transparent);border:2px dashed var(--bs-warning)}.gantt-legend.project-end{width:4px;background:var(--bs-danger);border-radius:0}.gantt-warning-dialog{width:min(720px,calc(100vw - 2rem));border:0;border-radius:1rem;padding:0;background:var(--dl-panel,#fff);color:var(--bs-body-color);box-shadow:0 24px 80px rgba(0,0,0,.35)}.gantt-warning-dialog::backdrop{background:rgba(0,0,0,.48)}.gantt-warning-dialog form{padding:1.25rem}.gantt-warning-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.gantt-warning-item{padding:.8rem 0;border-bottom:1px solid var(--dl-soft-line)}.gantt-warning-item:last-child{border-bottom:0}


/* HF-19 w2 — responsive project overview + audited Project Team Kanban */
.project-team-board{display:flex;gap:1rem;overflow-x:auto;padding:.15rem .05rem 1rem;scroll-snap-type:x proximity}.project-team-column{flex:0 0 300px;min-height:360px;border:1px solid var(--dl-line);border-radius:15px;background:var(--dl-panel);box-shadow:var(--dl-shadow-sm);scroll-snap-align:start;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.project-team-column.is-focused{border-color:color-mix(in srgb,var(--dl-primary) 55%,var(--dl-line));box-shadow:0 0 0 3px color-mix(in srgb,var(--dl-primary) 10%,transparent),var(--dl-shadow)}.project-team-column.is-drop-target,.project-team-unassigned.is-drop-target{border-color:var(--dl-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--dl-primary) 14%,transparent)}.project-team-column-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.9rem 1rem;border-bottom:1px solid var(--dl-line);background:var(--dl-panel2);border-radius:15px 15px 0 0}.project-team-column-body{display:grid;gap:.62rem;padding:.75rem;min-height:290px}.project-team-empty{display:grid;place-items:center;min-height:86px;border:1px dashed var(--dl-line);border-radius:11px;color:var(--dl-muted);font-size:.76rem}.project-team-unassigned-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.65rem}.team-member-card{display:flex;align-items:center;justify-content:space-between;gap:.65rem;padding:.7rem;border:1px solid var(--dl-soft-line);border-radius:11px;cursor:grab;user-select:none}.team-member-card:active{cursor:grabbing}.team-member-card.is-dragging{opacity:.45}.team-member-main{min-width:0}.team-member-actions{display:flex;align-items:center;gap:.4rem;flex:0 0 auto}.project-role-badge{border:1px solid color-mix(in srgb,currentColor 18%,var(--dl-line));background:color-mix(in srgb,currentColor 7%,var(--dl-panel));color:var(--dl-text)}.team-member-card.role-pm{background:color-mix(in srgb,#6f42c1 10%,var(--dl-panel2));border-color:color-mix(in srgb,#6f42c1 28%,var(--dl-line))}.team-member-card.role-pc{background:color-mix(in srgb,#0d6efd 8%,var(--dl-panel2));border-color:color-mix(in srgb,#0d6efd 25%,var(--dl-line))}.team-member-card.role-superintendent{background:color-mix(in srgb,#20c997 8%,var(--dl-panel2));border-color:color-mix(in srgb,#20c997 25%,var(--dl-line))}.team-member-card.role-foreman{background:color-mix(in srgb,#ffc107 8%,var(--dl-panel2));border-color:color-mix(in srgb,#ffc107 28%,var(--dl-line))}.team-member-card.role-staff{background:color-mix(in srgb,#6c757d 7%,var(--dl-panel2));border-color:color-mix(in srgb,#6c757d 22%,var(--dl-line))}.task-progress-toggle{width:27px;height:27px;border:1px solid var(--dl-line);border-radius:8px;background:var(--dl-panel2);color:var(--dl-text);display:inline-grid;place-items:center;padding:0;margin-right:.4rem}.task-progress-subrow td{background:color-mix(in srgb,var(--dl-panel2) 68%,transparent)!important}.task-progress-subrow .task-title-indent{padding-left:2rem}.project-compact-team .related-row{align-items:flex-start}.project-compact-team .user-identity{gap:.38rem}.project-compact-team .user-identity-copy small{display:none}.project-compact-team .user-identity-copy strong{font-size:.75rem;line-height:1.15}.project-compact-team .badge{font-size:.58rem;padding:.26rem .38rem}.project-location-compact .dl-location-map{height:220px!important}
@media(max-width:1199.98px){.project-location-compact .dl-location-map{height:260px!important}}
@media(max-width:767.98px){.project-team-board{display:grid;grid-template-columns:1fr;overflow:visible}.project-team-column{width:100%;min-width:0}.project-team-unassigned-grid{grid-template-columns:1fr}.team-member-card{cursor:default}}

/* HF-22 Command Center / Risk Analyzer */
.dashboard-widget{position:relative;overflow:hidden}.widget-metric{font-size:2.1rem;line-height:1;font-weight:750;letter-spacing:-.04em}.widget-list{display:flex;flex-direction:column}.widget-list-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.72rem 0;border-bottom:1px solid var(--bs-border-color);color:inherit}.widget-list-row:last-child{border-bottom:0}.widget-list-row span:first-child{min-width:0;display:flex;flex-direction:column}.widget-list-row strong{overflow:hidden;text-overflow:ellipsis}.widget-list-row small{color:var(--bs-secondary-color);margin-top:.15rem}.health-pill{display:inline-flex;align-items:center;white-space:nowrap;border-radius:999px;padding:.28rem .55rem;font-size:.72rem;font-weight:700;border:1px solid transparent}.health-needs_attention,.health-high{background:rgba(220,53,69,.16);border-color:rgba(220,53,69,.35);color:var(--bs-danger-text-emphasis)}.health-watch,.health-medium{background:rgba(255,193,7,.15);border-color:rgba(255,193,7,.35);color:var(--bs-warning-text-emphasis)}.health-stable,.health-low{background:rgba(25,135,84,.15);border-color:rgba(25,135,84,.35);color:var(--bs-success-text-emphasis)}.health-data_limited,.health-info{background:rgba(108,117,125,.15);border-color:rgba(108,117,125,.35);color:var(--bs-secondary-color)}.health-dot{display:inline-block;width:.65rem;height:.65rem;border-radius:50%;flex:0 0 auto}.health-dot.health-high{background:var(--bs-danger)}.health-dot.health-medium{background:var(--bs-warning)}.health-dot.health-low{background:var(--bs-success)}.risk-factor{display:block;height:100%;border:1px solid var(--bs-border-color);border-left-width:4px;border-radius:.8rem;padding:1rem;color:inherit;background:var(--bs-body-bg)}.risk-factor-high{border-left-color:var(--bs-danger)}.risk-factor-medium{border-left-color:var(--bs-warning)}.risk-factor-low{border-left-color:var(--bs-success)}.risk-factor-info{border-left-color:var(--bs-secondary)}.dashboard-customize-item{transition:opacity .15s ease,transform .15s ease}.dashboard-customize-item.is-dragging{opacity:.55;transform:scale(.995)}.drag-handle{border:0;background:transparent;color:var(--bs-secondary-color);font-size:1.35rem;cursor:grab;padding:.25rem}.drag-handle:active{cursor:grabbing}.sticky-save-bar{position:sticky;bottom:1rem;z-index:10;display:flex;justify-content:flex-end;padding:1rem 0}.stretched-link-safe{position:relative;z-index:2}@media(max-width:991.98px){.dashboard-widget-grid>.col-lg-3,.dashboard-widget-grid>.col-lg-4,.dashboard-widget-grid>.col-lg-6,.dashboard-widget-grid>.col-lg-8{width:100%}}

.dashboard-reorder-controls{display:flex;gap:.35rem;align-items:center;flex:0 0 auto}.dashboard-reorder-controls .drag-handle{min-width:34px}.dashboard-customize-item.is-dragging{opacity:.55}.dashboard-customize-item{touch-action:pan-y}

/* v4.2.15z3: Project Detail overview - never squeeze Team/Location into narrow sidebars. */
.project-overview-grid{display:grid;grid-template-columns:minmax(340px,1fr) minmax(340px,1fr);gap:1.5rem;align-items:stretch}
.project-overview-grid>div{min-width:0}
.project-overview-info{grid-column:1/-1}
.project-overview-team,.project-overview-location{min-width:0}
.project-compact-team .card-head,.project-location-compact .card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;flex-wrap:wrap}
.project-compact-team .related-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;min-width:0}
.project-compact-team .related-row>div{min-width:0}
.project-compact-team .badge{max-width:180px;white-space:normal;overflow-wrap:anywhere;text-align:center;line-height:1.1}
.project-location-compact .card-head>div{min-width:0;flex:1 1 180px}
.project-location-compact .dl-location-map{min-height:260px}
@media(max-width:1050px){.project-overview-grid{grid-template-columns:minmax(0,1fr)}.project-overview-info{grid-column:auto}.project-overview-team,.project-overview-location{grid-column:auto}}

/* Client Admin navigation hierarchy */
.nav-subsection{margin:.12rem 0 .34rem}
.nav-subsection-label{padding:.52rem .75rem .2rem 2.15rem;color:#64748b;font-size:.65rem;font-weight:800;letter-spacing:.075em;text-transform:uppercase;line-height:1.2}
.nav-mobile-subsection{margin:.72rem 0 .08rem;color:var(--bs-secondary-color);font-size:.68rem;font-weight:800;letter-spacing:.075em;text-transform:uppercase}
body.sidebar-collapsed .nav-subsection-label{display:none}

/* v4.2.15z6 role-aware Command Center charts */
.widget-chart{display:flex;flex-direction:column;gap:.7rem}.widget-chart-row{min-width:0}.widget-chart-label{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;font-size:.82rem;margin-bottom:.28rem}.widget-chart-label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--bs-secondary-color)}.widget-chart-label strong{font-variant-numeric:tabular-nums}.widget-chart-track{height:.62rem;border-radius:999px;background:var(--bs-tertiary-bg);overflow:hidden}.widget-chart-bar{height:100%;min-width:0;border-radius:999px;background:currentColor;opacity:.68}.widget-chart-trend .widget-chart-track{height:.78rem}.dashboard-widget .widget-chart{color:var(--bs-primary)}

/* v4.2.15z7 true Command Center chart renderer */
.widget-real-chart{min-height:230px;display:flex;align-items:center;justify-content:center;overflow:hidden}.dl-chart-svg{display:block;width:100%;height:auto;min-height:220px;max-height:300px}.dl-chart-grid{stroke:var(--bs-border-color);stroke-width:1;opacity:.65}.dl-chart-axis,.dl-chart-label,.dl-chart-value,.dl-pie-caption,.dl-pie-total{fill:currentColor;font-family:inherit}.dl-chart-axis{font-size:11px;opacity:.62}.dl-chart-label{font-size:11px;opacity:.78}.dl-chart-value{font-size:11px;font-weight:700}.dl-chart-bar{opacity:.86}.dl-chart-line{fill:none;stroke:var(--bs-primary);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.dl-chart-point{fill:var(--bs-body-bg);stroke:var(--bs-primary);stroke-width:4}.dl-pie-wrap{width:100%;display:grid;grid-template-columns:minmax(160px,220px) minmax(0,1fr);gap:1rem;align-items:center}.dl-pie-svg{width:100%;height:auto;max-height:220px}.dl-pie-bg{fill:none;stroke:var(--bs-tertiary-bg);stroke-width:34}.dl-pie-total{font-size:26px;font-weight:800}.dl-pie-caption{font-size:12px;opacity:.65}.dl-pie-legend{display:flex;flex-direction:column;gap:.5rem;min-width:0}.dl-pie-legend-row{display:grid;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:.45rem;font-size:.78rem}.dl-pie-legend-row span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-pie-legend-row strong{font-variant-numeric:tabular-nums}.dl-pie-legend-row small{font-weight:500;color:var(--bs-secondary-color)}.dl-pie-key{width:10px;height:10px;border-radius:50%;background:var(--chart-color)}@media(max-width:767.98px){.dl-pie-wrap{grid-template-columns:1fr}.dl-pie-svg{max-height:190px}.widget-real-chart{min-height:200px}}
.dl-pie-slice{stroke:var(--bs-body-bg);stroke-width:2}.dl-chart-color-0{background:#0d6efd}.dl-chart-color-1{background:#20c997}.dl-chart-color-2{background:#ffc107}.dl-chart-color-3{background:#dc3545}.dl-chart-color-4{background:#6f42c1}.dl-chart-color-5{background:#0dcaf0}.dl-chart-color-6{background:#fd7e14}.dl-chart-color-7{background:#198754}
/* v4.2.15z13 Item 8 — HSMS dashboard */
.hsms-kpi-grid .content-card{padding:1rem}.hsms-kpi-card{transition:transform .12s ease,box-shadow .12s ease}.hsms-kpi-card:hover{transform:translateY(-1px);box-shadow:0 .35rem 1rem rgba(0,0,0,.08)}
.hsms-line{fill:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.hsms-line-incidents{stroke:var(--bs-primary)}.hsms-line-near_misses{stroke:var(--bs-info)}.hsms-line-lost_time{stroke:var(--bs-danger)}.hsms-point{fill:var(--bs-body-bg);stroke-width:4}.hsms-point-incidents{stroke:var(--bs-primary)}.hsms-point-near_misses{stroke:var(--bs-info)}.hsms-point-lost_time{stroke:var(--bs-danger)}.hsms-chart-legend{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;font-size:.8rem;color:var(--bs-secondary-color);margin-top:.25rem}.hsms-chart-legend span{display:inline-flex;align-items:center;gap:.35rem}.hsms-key{width:18px;height:3px;border-radius:4px;display:inline-block}.hsms-key-incidents{background:var(--bs-primary)}.hsms-key-near_misses{background:var(--bs-info)}.hsms-key-lost_time{background:var(--bs-danger)}
.hsms-pie-seg{fill:none;stroke-width:34}.hsms-pie-one{stroke:var(--bs-primary)}.hsms-pie-two{stroke:var(--bs-success)}.hsms-pie-three{stroke:var(--bs-warning)}.hsms-pie-four{stroke:var(--bs-danger)}.hsms-pie-five{stroke:var(--bs-info)}.hsms-pie-six{stroke:var(--bs-secondary)}.hsms-pie-bg-one{background:var(--bs-primary)}.hsms-pie-bg-two{background:var(--bs-success)}.hsms-pie-bg-three{background:var(--bs-warning)}.hsms-pie-bg-four{background:var(--bs-danger)}.hsms-pie-bg-five{background:var(--bs-info)}.hsms-pie-bg-six{background:var(--bs-secondary)}
@media(max-width:767.98px){.hsms-kpi-grid .display-6{font-size:1.65rem}.hsms-trend-chart{min-width:620px}.widget-real-chart:has(.hsms-trend-chart){overflow-x:auto;justify-content:flex-start}}

/* v4.2.15z14 Modified Duty + PDIF uses existing DLPRO card/table/form styles. */

/* v4.2.15z15 — HSMS KPI density/layout refinement */
.hsms-kpi-grid{--bs-gutter-x:.75rem;--bs-gutter-y:.75rem}
.hsms-kpi-grid .content-card{padding:.78rem .9rem;min-height:88px;display:flex!important;flex-direction:column;justify-content:center}
.hsms-kpi-card .small{font-size:.78rem;line-height:1.18;min-height:1.85em}
.hsms-kpi-value{font-size:1.55rem;line-height:1.05;letter-spacing:-.025em}
@media(min-width:1400px){.hsms-kpi-value{font-size:1.7rem}.hsms-kpi-grid .content-card{min-height:92px}}
@media(max-width:767.98px){.hsms-kpi-grid .content-card{min-height:82px;padding:.7rem}.hsms-kpi-value{font-size:1.35rem}.hsms-kpi-card .small{font-size:.73rem}}


/* v4.2.15z17 — global interaction and metric-card standard */
.metric-card{padding:.78rem .88rem!important;min-height:86px;display:flex;flex-direction:column;justify-content:center}
.metric-card .metric-label,.stat-card .metric-label{font-size:.66rem;line-height:1.2;min-height:1.55em}
.metric-card .metric-number,.metric-number{font-size:1.42rem;line-height:1.05;letter-spacing:-.025em;overflow-wrap:anywhere}
.stat-card .metric{font-size:1.42rem;line-height:1.05}.widget-metric{font-size:1.62rem;line-height:1.05}.hsms-kpi-value{font-size:1.42rem}
@media(min-width:1400px){.metric-card .metric-number,.metric-number,.stat-card .metric{font-size:1.52rem}.widget-metric{font-size:1.72rem}.hsms-kpi-value{font-size:1.5rem}}
@media(max-width:767.98px){.metric-card{min-height:78px;padding:.68rem .72rem!important}.metric-card .metric-number,.metric-number,.stat-card .metric{font-size:1.25rem}.widget-metric{font-size:1.45rem}.hsms-kpi-value{font-size:1.3rem}}
.nav-section-toggle{margin:.16rem 0;padding:.58rem .7rem;border:1px solid rgba(148,163,184,.07);border-radius:10px;background:rgba(148,163,184,.045)}
.nav-section-toggle:hover,.nav-section-toggle.is-open{background:rgba(96,165,250,.09);border-color:rgba(96,165,250,.14);color:#a9bad0}
.admin-app details>summary,.admin-app [data-bs-toggle="collapse"],.dl-collapsible-summary{border-radius:10px;background:color-mix(in srgb,var(--dl-primary) 4%,var(--dl-panel2));border:1px solid var(--dl-soft-line);padding:.62rem .75rem;cursor:pointer;transition:background .14s,border-color .14s}
.admin-app details>summary:hover,.admin-app [data-bs-toggle="collapse"]:hover,.dl-collapsible-summary:hover{background:color-mix(in srgb,var(--dl-primary) 8%,var(--dl-panel2));border-color:color-mix(in srgb,var(--dl-primary) 20%,var(--dl-line))}
.dl-collapsible>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:1rem}.dl-collapsible>summary::-webkit-details-marker{display:none}.dl-collapsible-summary>span:first-child{display:flex;flex-direction:column}.dl-collapsible-summary small{color:var(--dl-muted);font-weight:500}.dl-collapse-chevron{transition:transform .16s}.dl-collapsible[open] .dl-collapse-chevron{transform:rotate(180deg)}
.admin-app [data-href],.admin-app .table-clickable tbody tr,.admin-app a.content-card,.admin-app a.metric-card,.admin-app .widget-list-row{cursor:pointer;transition:background .14s,border-color .14s,box-shadow .14s}
.admin-app [data-href]:hover>*,.admin-app .table-clickable tbody tr:hover>*{--bs-table-bg-state:color-mix(in srgb,var(--dl-primary) 8%,transparent)}
.admin-app a.content-card:hover,.admin-app a.metric-card:hover,.admin-app .widget-list-row:hover{background:color-mix(in srgb,var(--dl-primary) 5%,var(--dl-panel));border-color:color-mix(in srgb,var(--dl-primary) 22%,var(--dl-line));box-shadow:0 .3rem .9rem rgba(0,0,0,.06)}

.pdif-filter-op{max-width:125px}

/* v4.2.15z18 — project KPI density + support messaging */
.project-metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(138px,1fr));gap:.72rem}
.project-metric-card{min-width:0;min-height:82px!important;padding:.72rem .82rem!important;justify-content:center;gap:.38rem}
.project-metric-card .metric-label{font-size:.64rem!important;line-height:1.15;min-height:0!important;letter-spacing:.065em}
.project-metric-card .metric-number{margin:0!important;font-size:clamp(1.08rem,1.35vw,1.34rem)!important;line-height:1.08;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
@media(max-width:767.98px){.project-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.project-metric-card{min-height:72px!important}.project-metric-card .metric-number{font-size:1.12rem!important}}

.support-thread{display:flex;flex-direction:column;gap:.72rem;padding:1rem}
.support-message{width:fit-content;max-width:min(82%,760px);padding:.78rem .9rem;border:1px solid var(--dl-line);border-radius:15px;background:var(--dl-panel2);box-shadow:0 2px 7px rgba(15,23,42,.035)}
.support-message-mine{align-self:flex-end;background:color-mix(in srgb,var(--dl-primary) 9%,var(--dl-panel));border-color:color-mix(in srgb,var(--dl-primary) 24%,var(--dl-line))}
.support-message-received{align-self:flex-start}
.support-message-bobmin{background:color-mix(in srgb,#22c55e 10%,var(--dl-panel));border-color:color-mix(in srgb,#22c55e 35%,var(--dl-line));box-shadow:inset 3px 0 0 #eab308,0 2px 7px rgba(15,23,42,.035)}
.support-message-mine.support-message-bobmin{box-shadow:inset -3px 0 0 #eab308,0 2px 7px rgba(15,23,42,.035)}
.support-message-internal{background:color-mix(in srgb,#f59e0b 10%,var(--dl-panel));border-color:color-mix(in srgb,#f59e0b 30%,var(--dl-line))}
.support-message-meta{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.28rem}.support-message-meta strong{font-size:.84rem}.support-message-meta small{font-size:.68rem;color:var(--dl-muted);white-space:nowrap}
.support-message-body{font-size:.88rem;line-height:1.45}.support-origin-badge{display:inline-flex;margin-top:.48rem;padding:.18rem .42rem;border-radius:999px;background:rgba(34,197,94,.13);color:#168344;font-size:.62rem;font-weight:750;letter-spacing:.035em;text-transform:uppercase}.support-origin-internal{background:rgba(245,158,11,.14);color:#a16207;margin-left:.3rem}
.support-message-files{display:flex;flex-wrap:wrap;gap:.42rem;margin-top:.62rem;padding-top:.55rem;border-top:1px solid color-mix(in srgb,var(--dl-line) 75%,transparent)}
.support-file-chip{display:inline-flex;align-items:center;gap:.4rem;max-width:100%;padding:.4rem .55rem;border:1px solid var(--dl-line);border-radius:9px;background:color-mix(in srgb,var(--dl-panel) 92%,#fff 8%);color:var(--dl-text);text-decoration:none;font-size:.76rem}.support-file-chip:hover{background:color-mix(in srgb,var(--dl-primary) 7%,var(--dl-panel));border-color:color-mix(in srgb,var(--dl-primary) 24%,var(--dl-line))}.support-file-chip>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.support-file-chip small{display:block;color:var(--dl-muted);font-size:.62rem}
.support-file-input{max-width:520px}.support-composer-card .card-body{padding:.9rem}.support-conversation-card .card-header,.support-composer-card .card-header{padding:.75rem 1rem}
@media(max-width:767.98px){.support-message{max-width:92%}.support-message-meta{gap:.5rem}.support-file-input{max-width:100%;width:100%}}
.support-legacy-files{align-self:stretch;margin-top:.35rem;padding:.65rem .75rem;border:1px dashed var(--dl-line);border-radius:11px;color:var(--dl-muted);font-size:.75rem}


/* v4.2.15z21 — support viewport + project metrics + inventory QR print system */
.support-conversation-card{overflow:hidden}
.support-conversation-card .support-thread{height:clamp(360px,56vh,640px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;background:color-mix(in srgb,var(--dl-panel2) 42%,transparent)}
@media(max-width:767.98px){.support-conversation-card .support-thread{height:clamp(330px,52vh,520px);padding:.78rem}}
.project-metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:.62rem!important}
.project-metric-card{min-height:76px!important;padding:.62rem .72rem!important;gap:.22rem!important}
.project-metric-card .metric-label{font-size:.61rem!important;letter-spacing:.055em!important;white-space:normal}
.project-metric-card .metric-number{font-size:clamp(1rem,1.12vw,1.2rem)!important;font-weight:760;overflow:visible;text-overflow:clip}
@media(max-width:1199.98px){.project-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:767.98px){.project-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.project-metric-card{min-height:68px!important}.project-metric-card .metric-number{font-size:1.04rem!important}}
.inventory-qr-panel{display:grid;grid-template-columns:190px minmax(0,1fr);gap:1.15rem;align-items:center}
.inventory-qr-display{width:180px;height:180px;padding:8px;background:#fff;border:1px solid #dbe3ee;border-radius:12px}
.inventory-qr-display svg,.inventory-qr-sticker svg,.inventory-binder-qr svg,.inventory-label-grid-qr svg{display:block;width:100%;height:100%}
.inventory-qr-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.85rem}
.inventory-qr-url{font-size:.7rem;color:var(--dl-muted);word-break:break-all}
.inventory-label-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.75rem}
.inventory-label-grid-card{break-inside:avoid;text-align:center;border:1px solid var(--dl-line);border-radius:12px;padding:.8rem;background:var(--dl-panel)}
.inventory-label-grid-qr{width:150px;height:150px;margin:0 auto .55rem;padding:6px;background:#fff;border:1px solid #dbe3ee;border-radius:9px}
.inventory-sticker-shell{display:grid;place-items:center;min-height:58vh}
.inventory-sticker{width:3in;min-height:2in;padding:.12in;display:grid;grid-template-columns:1.25in 1fr;gap:.12in;align-items:center;background:#fff;color:#111;border:1px solid #bbb;border-radius:8px}
.inventory-qr-sticker{width:1.22in;height:1.22in}.inventory-sticker-copy{min-width:0}.inventory-sticker-sku{font-size:13pt;font-weight:800;line-height:1.05}.inventory-sticker-name{font-size:9pt;line-height:1.18;margin-top:4px}.inventory-sticker-meta{font-size:7pt;color:#555;margin-top:5px}.inventory-sticker-brand{font-size:6.5pt;color:#777;margin-top:7px;text-transform:uppercase;letter-spacing:.04em}
.inventory-binder-sheet{max-width:8in;margin:0 auto}.inventory-binder-title{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end;margin-bottom:.8rem}.inventory-binder-table{width:100%;border-collapse:collapse}.inventory-binder-table th,.inventory-binder-table td{border:1px solid #cfd7e3;padding:.08in .09in;vertical-align:middle}.inventory-binder-table th{font-size:8pt;text-transform:uppercase;letter-spacing:.04em;background:#edf2f7;color:#25354a}.inventory-binder-table td{font-size:8.5pt}.inventory-binder-qr{width:.72in;height:.72in;padding:2px;background:#fff}.inventory-binder-item strong{display:block;font-size:9pt}.inventory-binder-item small{display:block;color:#555;font-size:7.4pt;line-height:1.2}
@media(max-width:767.98px){.inventory-qr-panel{grid-template-columns:1fr}.inventory-qr-display{margin-inline:auto}.inventory-qr-actions .btn{flex:1 1 auto}}
@media print{
  body.inventory-print-mode *{visibility:visible!important}
  body.inventory-print-mode .admin-sidebar,body.inventory-print-mode .admin-topbar,body.inventory-print-mode .no-print,body.inventory-print-mode .offcanvas{display:none!important}
  body.inventory-print-mode .admin-main{margin:0!important}
  body.inventory-print-mode .page-shell,body.inventory-print-mode .admin-content{padding:0!important}
  body.inventory-print-mode:after{display:none!important}
  body.inventory-print-mode .inventory-print-page{margin:0!important;padding:0!important}
  body.inventory-print-mode .inventory-sticker-shell{min-height:0;display:block}
  body.inventory-print-mode .inventory-sticker{border:0;border-radius:0;margin:0;width:3in;height:2in;min-height:2in;break-inside:avoid}
  body.inventory-print-mode .inventory-binder-sheet{max-width:none;width:100%}
  body.inventory-print-mode .inventory-binder-table{page-break-inside:auto}
  body.inventory-print-mode .inventory-binder-table tr{break-inside:avoid;page-break-inside:avoid}
  body.inventory-print-mode .inventory-binder-table thead{display:table-header-group}
  body.inventory-print-mode .inventory-label-grid{grid-template-columns:repeat(3,1fr);gap:.14in}
  body.inventory-print-mode .inventory-label-grid-card{border:1px solid #aaa;border-radius:0;padding:.12in}
  body.inventory-print-mode .inventory-label-grid-qr{width:1.15in;height:1.15in}
}
@page inventoryBinder{size:letter portrait;margin:.42in}
@page inventorySticker{size:3in 2in;margin:0}
.inventory-binder-sheet{page:inventoryBinder}.inventory-sticker{page:inventorySticker}

/* v4.2.15z23 — HSMS incident dashboard polish + incident interaction states */
.hsms-line{stroke-width:2.45}
.hsms-point{stroke-width:2.6}
.hsms-point-incidents,.hsms-point-near_misses,.hsms-point-lost_time{r:3.25px}
.hsms-type-chart .hsms-bar{fill-opacity:.64;stroke-width:1;stroke-opacity:.3}
.hsms-bar-one{fill:var(--bs-primary);stroke:var(--bs-primary)}
.hsms-bar-two{fill:var(--bs-success);stroke:var(--bs-success)}
.hsms-bar-three{fill:var(--bs-warning);stroke:var(--bs-warning)}
.hsms-bar-four{fill:var(--bs-danger);stroke:var(--bs-danger)}
.hsms-bar-five{fill:var(--bs-info);stroke:var(--bs-info)}
.hsms-bar-six{fill:var(--bs-secondary);stroke:var(--bs-secondary)}
.hsms-type-chart .hsms-bar-label{font-size:13px;font-weight:650;opacity:.9}
.hsms-type-chart .hsms-bar-value{font-size:12.5px}
.hsms-pie-seg{stroke-opacity:.68}
.hsms-pie-bg{stroke-opacity:.55}
.hsms-pie-bg-one{background:color-mix(in srgb,var(--bs-primary) 68%,transparent)}
.hsms-pie-bg-two{background:color-mix(in srgb,var(--bs-success) 68%,transparent)}
.hsms-pie-bg-three{background:color-mix(in srgb,var(--bs-warning) 68%,transparent)}
.hsms-pie-bg-four{background:color-mix(in srgb,var(--bs-danger) 68%,transparent)}
.hsms-pie-bg-five{background:color-mix(in srgb,var(--bs-info) 68%,transparent)}
.hsms-pie-bg-six{background:color-mix(in srgb,var(--bs-secondary) 68%,transparent)}
.hsms-module-card,.hsms-case-card,.hsms-attachment-card{transition:background .14s ease,border-color .14s ease,box-shadow .14s ease,transform .14s ease}
.hsms-module-link:hover .hsms-module-card,.hsms-attachment-card:hover{background:color-mix(in srgb,var(--dl-primary) 7%,var(--dl-panel2))!important;border-color:color-mix(in srgb,var(--dl-primary) 28%,var(--dl-line))!important;box-shadow:0 .32rem .85rem rgba(15,23,42,.07);transform:translateY(-1px)}
.hsms-case-card:hover{border-color:color-mix(in srgb,var(--dl-primary) 18%,var(--dl-line));box-shadow:0 .22rem .65rem rgba(15,23,42,.045)}
.hsms-case-card .btn{transition:transform .12s ease,box-shadow .12s ease,background-color .12s ease,border-color .12s ease}
.hsms-case-card .btn:hover,.hero-panel .btn:hover{transform:translateY(-1px);box-shadow:0 .2rem .55rem rgba(15,23,42,.09)}
@media(max-width:767.98px){.hsms-type-chart .hsms-bar-label{font-size:12.5px}}

/* v4.2.15z24 — Task Risks & Controls + configurable company risk matrix */
.risk-rating-pill{display:inline-flex;align-items:center;min-height:1.6rem;padding:.18rem .55rem;border:1px solid var(--bs-border-color);border-radius:999px;background:rgba(127,127,127,.08);font-weight:600;font-size:.78rem;white-space:nowrap}
.risk-panel{height:100%;padding:.85rem;border:1px solid var(--bs-border-color);border-radius:.65rem;background:rgba(127,127,127,.045)}
.risk-calculated{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.55rem .7rem;border-radius:.5rem;background:rgba(127,127,127,.07)}
.risk-rating-large{font-size:1.15rem;font-weight:700;margin:.1rem 0 .35rem}
.risk-summary-block{padding:.15rem 0}
.risk-matrix-table th{min-width:120px;vertical-align:middle}.risk-matrix-table td{min-width:155px;background:rgba(127,127,127,.025)}
.audit-list{display:flex;flex-direction:column}.audit-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.65rem 0;border-bottom:1px solid var(--bs-border-color)}.audit-row:last-child{border-bottom:0}
.preserve-lines{line-height:1.45}

/* HR and controlled-document canvas signature surface */
.sig{display:block;width:100%;max-width:760px;height:180px;border:1px solid var(--dl-line);border-radius:10px;background:#fff;touch-action:none;cursor:crosshair}.sig:focus{outline:2px solid color-mix(in srgb,var(--dl-primary) 45%,transparent);outline-offset:2px}

/* v4.2.15z37 Training OCR live-stage progress */
.ocr-progress-shell{height:12px;border-radius:999px;overflow:hidden;background:var(--dl-panel3,#e9eef5);border:1px solid var(--dl-line,#d7dee8)}
.ocr-progress-bar{height:100%;border-radius:inherit;transition:width .22s ease;background:linear-gradient(90deg,#0d6efd 0%,#6f42c1 18%,#d63384 36%,#fd7e14 54%,#ffc107 68%,#20c997 84%,#198754 100%)}
.ocr-stage-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem}
.ocr-stage{border:1px solid var(--dl-line,#d7dee8);border-radius:.65rem;padding:.4rem .35rem;text-align:center;background:var(--dl-panel,#fff);color:var(--dl-muted,#6c757d);font-size:.72rem;line-height:1.1;transition:.18s ease}
.ocr-stage strong{display:block;font-size:.68rem;margin-bottom:.15rem}
.ocr-stage.is-active{border-color:#0d6efd;box-shadow:0 0 0 2px rgba(13,110,253,.12);color:var(--dl-text,#111827);font-weight:700}
.ocr-stage.is-complete{border-color:#198754;background:rgba(25,135,84,.08);color:#198754}
.ocr-stage.is-warning{border-color:#fd7e14;background:rgba(253,126,20,.08);color:#b45309}
@media (max-width:760px){.ocr-stage-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.ocr-stage{font-size:.68rem}}

/* z37 repair: breadcrumb page-access help */
.app-breadcrumbs{flex:1 1 auto}
.page-access-help{position:relative;margin-left:auto;flex:0 0 auto}
.page-access-btn{font-size:.78rem;font-family:inherit}
.page-access-panel{position:absolute;right:0;top:calc(100% + .5rem);z-index:1080;width:min(360px,82vw);padding:.85rem;border:1px solid var(--dl-line);border-radius:12px;background:var(--dl-panel);box-shadow:var(--dl-shadow);color:var(--dl-text);white-space:normal}
.page-access-panel[hidden]{display:none!important}
.page-access-title{font-size:.82rem;font-weight:850;margin-bottom:.55rem}
.page-access-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.07em;font-weight:800;color:var(--dl-muted);margin-bottom:.35rem}
.page-access-list{display:flex;gap:.35rem;flex-wrap:wrap}
.page-access-list .badge{white-space:normal;text-align:left}
@media(max-width:767.98px){.page-access-panel{position:fixed;right:.75rem;left:.75rem;top:auto;width:auto;max-height:55vh;overflow:auto}.page-access-help{align-self:flex-start}}

/* v4.2.15z40 Company Documents rich content */
.cms-rich-content{line-height:1.6;overflow-wrap:anywhere}
.cms-rich-content img{max-width:100%;height:auto}
.cms-rich-content table{width:100%;border-collapse:collapse;margin:1rem 0}
.cms-rich-content th,.cms-rich-content td{border:1px solid var(--bs-border-color,#dee2e6);padding:.5rem;vertical-align:top}
.cms-rich-content blockquote{border-left:3px solid var(--bs-border-color,#dee2e6);padding-left:1rem;color:var(--bs-secondary-color,#6c757d)}
.cms-rich-content pre{white-space:pre-wrap;background:var(--bs-tertiary-bg,#f8f9fa);padding:.75rem;border-radius:.5rem}

/* v4.2.15z44 support conversation refinement */
.support-side-composer{position:sticky;top:84px;z-index:2}.support-message-body{white-space:pre-wrap}
@media(max-width:1199.98px){.support-side-composer{position:static}}

/* v4.2.15z44 messaging live thread */
/* z44 live messaging */
.message-thread{display:flex;flex-direction:column;gap:.65rem;max-height:62vh;overflow:auto;padding:.2rem .1rem .5rem;scroll-behavior:smooth}
.message-bubble{width:fit-content;max-width:min(82%,760px);padding:.8rem .95rem;border:1px solid var(--dl-line);border-radius:15px;background:var(--dl-panel2);box-shadow:0 2px 7px rgba(15,23,42,.035)}
.message-bubble-mine{align-self:flex-end;background:color-mix(in srgb,var(--dl-primary) 9%,var(--dl-panel));border-color:color-mix(in srgb,var(--dl-primary) 24%,var(--dl-line))}
.message-bubble-received{align-self:flex-start}.message-bubble-platform{border-color:color-mix(in srgb,#22c55e 35%,var(--dl-line));box-shadow:inset 3px 0 0 #22c55e,0 2px 7px rgba(15,23,42,.035)}
.message-bubble-meta{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.32rem}.message-bubble-meta strong{font-size:.86rem}.message-bubble-meta small{font-size:.68rem;color:var(--dl-muted);white-space:nowrap}.message-bubble-body{white-space:pre-wrap;font-size:.9rem;line-height:1.48}.message-delivery-state{margin-top:.35rem;font-size:.7rem;color:var(--dl-muted)}
@media(max-width:767.98px){.message-bubble{max-width:92%}.message-thread{max-height:none}}
.dl-route-stop{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#fff;border:3px solid #6c757d;color:#212529;font-size:12px;font-weight:700;box-shadow:0 1px 5px rgba(0,0,0,.28)}
.dl-route-stop.complete{border-color:#198754;background:#d1e7dd}.dl-route-stop.in-progress{border-color:#0d6efd;background:#cfe2ff}.dl-route-stop.pending{border-color:#fd7e14;background:#fff3cd}


/* v4.2.15z52 Roles & Permissions alignment + Help Centre */
.access-management-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.25rem;align-items:start}.access-management-grid>.content-card{margin-bottom:0}.access-role-column-head{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(74px,.55fr) minmax(145px,.9fr);gap:.7rem;padding:.15rem 2.75rem .45rem .8rem;color:var(--dl-muted);font-size:.65rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.access-role-column-head span:nth-child(3){text-align:right}.access-role-accordion .accordion-button{gap:.45rem;padding:.68rem .75rem}.access-role-summary{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(74px,.55fr) minmax(145px,.9fr);align-items:center;gap:.7rem;flex:1 1 auto;min-width:0}.access-role-name{min-width:0;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.access-role-portal{justify-self:start}.access-role-meta{display:flex;align-items:center;justify-content:flex-end;gap:.45rem;white-space:nowrap}.access-role-meta .badge,.access-role-portal .badge{min-width:48px;text-align:center}.access-role-card .access-permission-groups{grid-template-columns:1fr}.access-permission-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.access-permission-group{border:1px solid var(--dl-line);border-radius:12px;overflow:hidden;background:var(--dl-panel2)}.access-permission-group-head{display:flex;justify-content:space-between;gap:.5rem;padding:.55rem .7rem;border-bottom:1px solid var(--dl-line);background:color-mix(in srgb,var(--dl-primary) 4%,var(--dl-panel2));font-size:.78rem}.access-permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.access-permission-item{display:flex;align-items:flex-start;gap:.45rem;padding:.5rem .6rem;border-bottom:1px solid var(--dl-soft-line);min-width:0;cursor:pointer}.access-permission-item strong{display:block;font-size:.72rem;overflow-wrap:anywhere}.access-permission-item small{display:block;color:var(--dl-muted);font-size:.64rem;line-height:1.25}.access-save-bar{background:linear-gradient(180deg,transparent,var(--dl-panel) 30%);z-index:2}.access-user-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.access-management-grid .access-user-grid{grid-template-columns:1fr}.access-user-card{border:1px solid var(--dl-line);border-radius:14px;padding:1rem;background:var(--dl-panel2);min-width:0}.access-role-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}.access-management-grid .access-role-check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.access-role-check{display:flex;align-items:center;gap:.4rem;padding:.42rem .5rem;border:1px solid var(--dl-soft-line);border-radius:9px;font-size:.72rem;min-width:0}.access-role-check span{overflow:hidden;text-overflow:ellipsis}.access-overrides{border-top:1px solid var(--dl-soft-line);padding-top:.65rem}.access-override-row{display:flex;justify-content:space-between;gap:.5rem;padding:.35rem 0;border-top:1px solid var(--dl-soft-line);font-size:.68rem}.access-override-row code{overflow-wrap:anywhere}.access-override-row span{display:flex;gap:.55rem;white-space:nowrap}.help-entry-card{transition:transform .12s,border-color .12s}.help-entry-card:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--dl-primary) 35%,var(--dl-line))}.help-article-list{display:grid}.help-article-row{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 0;border-top:1px solid var(--dl-soft-line);text-decoration:none;color:inherit}.help-article-row:first-child{border-top:0}.help-article-row:hover strong{color:var(--dl-primary)}.help-prose{line-height:1.65}.help-prose h2,.help-prose h3{margin-top:1.1rem}.help-prose img{max-width:100%;height:auto}.help-admin-panel{border-left:4px solid var(--dl-primary)}.help-quick-list{display:grid;gap:.45rem}.help-quick-row{display:block;padding:.55rem .65rem;border:1px solid var(--dl-soft-line);border-radius:9px;text-decoration:none;color:inherit}.help-quick-row strong,.help-quick-row span{display:block}.help-quick-row span{font-size:.72rem;color:var(--dl-muted);margin-top:.15rem}
@media(max-width:1399.98px){.access-role-column-head,.access-role-summary{grid-template-columns:minmax(0,1.3fr) minmax(66px,.5fr) minmax(125px,.8fr)}.access-role-meta{gap:.3rem}.access-role-meta .small{font-size:.67rem}}
@media(max-width:1199.98px){.access-management-grid{grid-template-columns:1fr}.access-user-grid{grid-template-columns:1fr}.access-permission-groups{grid-template-columns:1fr}.access-management-grid .access-role-check-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:767.98px){.access-role-column-head{display:none}.access-role-summary{grid-template-columns:minmax(0,1fr) auto;gap:.4rem}.access-role-portal{grid-column:1;grid-row:2}.access-role-meta{grid-column:2;grid-row:1 / span 2}.access-permission-grid{grid-template-columns:1fr}.access-role-check-grid,.access-management-grid .access-role-check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:479.98px){.access-role-check-grid,.access-management-grid .access-role-check-grid{grid-template-columns:1fr}.access-role-meta .small{display:none}}
@media print{.help-print-article .content-card{break-inside:avoid}.help-article-row{break-inside:avoid}}
