/* =========================================================
   LSE Product v3
   One deliberate commercial design layer.
   Straight edges, restrained colour, compact information density.
   ========================================================= */
:root{
  --v3-bg:#f8fafc;--v3-surface:#fff;--v3-text:#0f172a;--v3-muted:#64748b;--v3-soft:#94a3b8;
  --v3-border:#d8e1ea;--v3-border-strong:#b9c7d6;--v3-navy:#0f2f4a;--v3-navy-dark:#0a2238;
  --v3-teal:#0f766e;--v3-blue:#2563eb;--v3-green:#15803d;--v3-red:#b42318;--v3-orange:#b45309;--v3-purple:#6d28d9;
  --sidebar-width:248px;--app-radius-sm:0;--app-radius-md:0;--app-radius-lg:0;--app-radius-xl:0;--app-radius-xxl:0;
  --app-shadow:none;--app-shadow-soft:none;--app-bg:var(--v3-bg);--app-surface:var(--v3-surface);--app-text:var(--v3-text);
  --app-muted:var(--v3-muted);--app-border:var(--v3-border);--app-border-strong:var(--v3-border-strong);--app-navy:var(--v3-navy);
}

/* Product v5.5 — compact test circuit schedule and legend inputs. */
.testing-create-page .testing-circuit-edit-list {
  display: grid;
  gap: 12px;
}

.testing-create-page .testing-circuit-edit-card {
  overflow: hidden;
  border: 1px solid #d8e1e8;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}

.testing-create-page .testing-circuit-card-head {
  padding: 12px 14px;
  border-bottom: 1px solid #d8e1e8;
  background: #f7f9fb;
}

.testing-create-page .testing-circuit-row-actions {
  display: flex;
  gap: 7px;
  align-items: center;
}

.testing-create-page .testing-circuit-edit-body {
  padding: 14px;
}

.testing-create-page .testing-circuit-legend-fields {
  display: grid;
  grid-template-columns: 80px minmax(210px, 2fr) minmax(120px, 1fr) 100px;
  gap: 12px;
  align-items: end;
}

.testing-create-page .testing-circuit-measurements {
  margin-top: 14px;
  border-top: 1px solid #d8e1e8;
}

.testing-create-page .testing-circuit-measurements > summary {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 11px 2px;
  cursor: pointer;
  color: #102038;
  font-weight: 650;
  list-style: none;
}

.testing-create-page .testing-circuit-measurements > summary::-webkit-details-marker { display: none; }
.testing-create-page .testing-circuit-measurements > summary::after { content: '+'; color: #64748b; }
.testing-create-page .testing-circuit-measurements[open] > summary::after { content: '−'; }
.testing-create-page .testing-circuit-measurements > summary small { margin-left: auto; color: #64748b; font-weight: 450; }
.testing-create-page .testing-circuit-measurement-body { padding: 12px 0 2px; border-top: 1px solid #e6edf2; }

@media (max-width: 1050px) {
  .testing-create-page .testing-circuit-legend-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .testing-create-page .testing-circuit-legend-fields { grid-template-columns: 1fr; }
  .testing-create-page .testing-circuit-card-head { align-items: stretch; flex-direction: column; }
  .testing-create-page .testing-circuit-row-actions { width: 100%; }
  .testing-create-page .testing-circuit-row-actions .app-btn { flex: 1; }
}
html,body{background:var(--v3-bg);color:var(--v3-text)}
body{font-size:14px;line-height:1.5}
.app-shell{background:var(--v3-bg)}
.app-sidebar{width:var(--sidebar-width);background:var(--v3-navy);border-right:1px solid #24435e;box-shadow:none}
.app-main{margin-left:var(--sidebar-width);min-width:0;background:var(--v3-bg)}
.brand-block{padding:18px 16px;border-bottom:1px solid rgba(255,255,255,.12)}
.brand-link{gap:11px}.brand-mark{width:36px;height:36px;border:1px solid rgba(255,255,255,.20);border-radius:0;background:rgba(255,255,255,.08);box-shadow:none}
.brand-title{font-size:.93rem;font-weight:800;letter-spacing:-.01em}.brand-subtitle{margin-top:1px;color:#a9bac9;font-size:.7rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-create{margin:14px 14px 8px}.sidebar-create>summary{min-height:42px;border:1px solid rgba(255,255,255,.18);border-radius:0;background:#fff;color:var(--v3-navy);font-weight:800;box-shadow:none}
.sidebar-create-icon{border-radius:0}.sidebar-create-menu{border:1px solid #274760;border-radius:0;background:var(--v3-navy-dark);box-shadow:0 14px 30px rgba(0,0,0,.18)}
.sidebar-create-link{border-radius:0}.sidebar-create-link:hover{background:rgba(255,255,255,.08)}.sidebar-create-link.is-primary-record{border-bottom:1px solid rgba(255,255,255,.12)}
.sidebar-nav{padding:8px 12px 18px;gap:14px}.sidebar-group,.sidebar-disclosure{gap:3px}.sidebar-heading,.sidebar-disclosure>summary{margin:0 8px 4px;padding:6px 0;color:#8fa6b9;font-size:.66rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase;border-radius:0}
.sidebar-link{min-height:38px;padding:8px 10px;border-left:2px solid transparent;border-radius:0;color:#c9d6e1;font-size:.82rem;font-weight:650}.sidebar-link:hover{background:rgba(255,255,255,.055);color:#fff}.sidebar-link.active{border-left-color:#fff;background:rgba(255,255,255,.095);color:#fff;box-shadow:none}
.sidebar-icon{width:24px;height:24px;border-radius:0;background:transparent!important;color:inherit!important}.sidebar-cert-link.active .sidebar-icon{background:transparent!important;color:inherit!important}
.sidebar-disclosure-panel{gap:2px}.sidebar-footer{border-top:1px solid rgba(255,255,255,.12);padding:12px}.signed-in-user{padding:7px}.signed-in-avatar,.user-avatar{border-radius:0;background:#fff;color:var(--v3-navy);font-weight:800}.sidebar-footer-actions{grid-template-columns:repeat(3,1fr);gap:4px}.sidebar-footer-actions a{min-height:34px;border:1px solid rgba(255,255,255,.12);border-radius:0;background:transparent;font-size:.68rem}.sidebar-footer-actions a:hover{background:rgba(255,255,255,.07)}
.sidebar-record-code{min-width:34px;height:22px;padding:2px 5px;border:1px solid currentColor;border-radius:0;background:transparent!important;font-size:.58rem;font-weight:850;letter-spacing:.04em}.sidebar-record-code.is-job{color:#0f766e;background:#ecfdf5!important}.sidebar-record-code.is-esc{color:#047857}.sidebar-record-code.is-coc{color:#1d4ed8}.sidebar-record-code.is-roi{color:#7c3aed}.sidebar-record-code.is-cov{color:#9f1239}.sidebar-record-code.is-woef{color:#0f766e}.sidebar-record-code.is-solar{color:#a16207}.sidebar-record-code.is-test,.sidebar-record-code.is-tests{color:#4338ca}.sidebar-record-code.is-evse{color:#0369a1}
.app-topbar{min-height:68px;padding:10px 24px;border-bottom:1px solid var(--v3-border);background:#fff;box-shadow:none}.topbar-title h2{font-size:1rem;font-weight:800;letter-spacing:-.015em}.topbar-title p{font-size:.72rem;color:var(--v3-muted)}.topbar-user{border-left:1px solid var(--v3-border);padding-left:18px}.topbar-user strong{font-size:.78rem}.topbar-user span{font-size:.68rem}
.app-page{padding:26px 28px 48px}.app-page-inner{width:100%;max-width:1560px;margin:0 auto}.app-page-header{margin-bottom:22px}.app-page-title{margin:2px 0 4px;font-size:clamp(1.65rem,2.2vw,2.15rem);font-weight:800;letter-spacing:-.035em;color:var(--v3-text)}.app-page-kicker,.product-eyebrow{color:var(--v3-teal);font-size:.66rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.app-page-subtitle{max-width:780px;margin:0;color:var(--v3-muted);font-size:.87rem}.product-header{align-items:flex-end;padding-bottom:17px;border-bottom:1px solid var(--v3-border)}
.app-btn,.btn,.auth-submit{border-radius:0!important;box-shadow:none!important;font-weight:750}.app-btn{min-height:40px;padding:9px 14px}.app-btn-primary{border:1px solid var(--v3-navy);background:var(--v3-navy);color:#fff}.app-btn-primary:hover{background:var(--v3-navy-dark);border-color:var(--v3-navy-dark)}.app-btn-secondary{border:1px solid var(--v3-border-strong);background:#fff;color:var(--v3-text)}.app-btn-secondary:hover{border-color:#8fa2b6;background:#f8fafc}.app-btn-sm{min-height:32px;padding:6px 10px;font-size:.74rem}
.app-card,.app-panel,.cert-card,.certificate-card,.form-card,.content-card,.dashboard-card,.metric-card,.app-metric-card,.app-stat-card,.product-panel,.product-list-card,.product-form-card{border-radius:0!important;box-shadow:none!important;border:1px solid var(--v3-border);background:#fff}
.app-input,.form-control,.form-select,input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],input[type=date],input[type=datetime-local],textarea,select{border-radius:0!important;box-shadow:none!important}.app-input:focus,.form-control:focus,.form-select:focus,input:focus,textarea:focus,select:focus{border-color:#6c879f!important;box-shadow:0 0 0 2px rgba(15,47,74,.08)!important;outline:none}.app-field-label,label.form-label{font-size:.74rem;font-weight:750;color:#334155}.app-help,.form-text{color:var(--v3-muted);font-size:.7rem}
.table,.app-table,.product-table{--bs-table-bg:transparent;margin:0}.product-table{width:100%}.table>:not(caption)>*>*,.app-table td,.app-table th,.product-table td,.product-table th{border-color:#e4eaf0}.table thead th,.app-table thead th,.product-table thead th{padding:10px 14px;background:#f8fafc;color:#526274;font-size:.64rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.table tbody td,.app-table tbody td,.product-table tbody td{padding:13px 14px;vertical-align:middle;color:#243244;font-size:.78rem}.table tbody tr:hover,.product-table tbody tr:hover{background:#fbfcfd}.product-table small{display:block;margin-top:3px;color:var(--v3-muted);font-size:.7rem}.product-primary-link{display:block;color:var(--v3-text);font-weight:800}.product-primary-link:hover{color:var(--v3-teal)}
.product-page{max-width:1560px}.product-narrow{max-width:1120px}.product-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.product-search{display:flex;align-items:center;flex:1;max-width:680px;min-height:42px;border:1px solid var(--v3-border-strong);background:#fff}.product-search i{margin-left:13px;color:var(--v3-muted)}.product-search input{width:100%;height:40px;border:0!important;padding:0 12px;background:transparent;box-shadow:none!important}.product-tabs{display:flex;border:1px solid var(--v3-border-strong);background:#fff}.product-tabs a{padding:9px 13px;border-right:1px solid var(--v3-border);color:var(--v3-muted);font-size:.72rem;font-weight:750}.product-tabs a:last-child{border-right:0}.product-tabs a.is-active{background:var(--v3-navy);color:#fff}
.product-list-card{overflow:hidden}.product-empty{display:grid;place-items:center;gap:5px;padding:66px 24px;text-align:center}.product-empty i{font-size:1.6rem;color:#8ea0b3}.product-empty strong{font-size:.9rem}.product-empty span{max-width:460px;color:var(--v3-muted);font-size:.76rem}.product-empty.compact{padding:30px 18px;place-items:start;text-align:left}
.product-list-card > .table-responsive{border:0}
.product-status{display:inline-flex;align-items:center;min-height:23px;padding:2px 7px;border:1px solid #ccd6df;border-radius:0;background:#f8fafc;color:#475569;font-size:.63rem;font-weight:800;white-space:nowrap}.product-status.is-planned{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.product-status.is-in_progress{border-color:#99f6e4;background:#f0fdfa;color:#0f766e}.product-status.is-waiting{border-color:#fed7aa;background:#fff7ed;color:#9a3412}.product-status.is-completed{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.product-status.is-cancelled{border-color:#fecaca;background:#fef2f2;color:#991b1b}
.product-metric-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px;border:1px solid var(--v3-border);background:#fff}.product-metric-row>a{display:grid;gap:3px;min-height:105px;padding:18px;border-right:1px solid var(--v3-border)}.product-metric-row>a:last-child{border-right:0}.product-metric-row span{color:var(--v3-muted);font-size:.68rem;font-weight:750;text-transform:uppercase;letter-spacing:.06em}.product-metric-row strong{font-size:1.9rem;line-height:1.1;letter-spacing:-.04em}.product-metric-row small{color:var(--v3-muted);font-size:.68rem}
.product-form-card{padding:22px}.product-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.product-span-2{grid-column:1/-1}.product-form-actions{display:flex;justify-content:flex-end;gap:8px;margin:24px -22px -22px;padding:15px 22px;border-top:1px solid var(--v3-border);background:#f8fafc}.product-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--v3-border)}.product-check-grid label{display:flex;align-items:center;gap:10px;margin:0;padding:10px 12px;border-right:1px solid var(--v3-border);border-bottom:1px solid var(--v3-border);cursor:pointer}.product-check-grid label:nth-child(2n){border-right:0}.product-check-grid span{display:grid;font-size:.76rem;font-weight:700}.product-check-grid small{color:var(--v3-muted);font-weight:500}
.product-detail-grid{display:grid;grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr);gap:18px}.product-panel{padding:18px}.product-panel-wide{min-width:0}.product-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-18px -18px 16px;padding:15px 18px;border-bottom:1px solid var(--v3-border)}.product-panel-head h2{margin:1px 0 0;font-size:.95rem;font-weight:800;letter-spacing:-.015em}.product-panel-head>a{color:var(--v3-teal);font-size:.72rem;font-weight:750}.product-count{min-width:28px;padding:2px 6px;border:1px solid var(--v3-border);font-size:.68rem;font-weight:800;text-align:center}.product-detail-list{display:grid;margin:0}.product-detail-list>div{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid #edf1f5}.product-detail-list>div:last-child{border-bottom:0}.product-detail-list dt{color:var(--v3-muted);font-size:.68rem;font-weight:700}.product-detail-list dd{margin:0;color:var(--v3-text);font-size:.76rem;font-weight:650;text-align:right;overflow-wrap:anywhere}.product-detail-list a{color:var(--v3-teal)}.product-note-block{margin-top:14px;padding:12px 0 0;border-top:1px solid var(--v3-border)}.product-note-block>span{display:block;margin-bottom:4px;color:var(--v3-muted);font-size:.64rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.product-note-block p{margin:0;color:#334155;font-size:.76rem;line-height:1.6}
.product-stack-list{display:grid;margin:-1px -18px -18px}.product-stack-list>a{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 18px;border-top:1px solid var(--v3-border)}.product-stack-list>a:hover{background:#fafcfd}.product-stack-list strong{display:block;font-size:.78rem}.product-stack-list small{display:block;margin-top:2px;color:var(--v3-muted);font-size:.68rem}.product-stack-list i{color:#94a3b8}
.product-job-summary{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:18px;border:1px solid var(--v3-border);background:#fff}.product-job-summary>div{display:grid;gap:5px;padding:13px 16px;border-right:1px solid var(--v3-border)}.product-job-summary>div:last-child{border-right:0}.product-job-summary span:first-child{color:var(--v3-muted);font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.product-job-summary strong{font-size:.78rem}.product-job-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:18px}.product-job-main,.product-job-side{display:grid;align-content:start;gap:18px}.product-job-side{position:sticky;top:86px}.product-action-menu{position:relative}.product-action-menu>summary{list-style:none;cursor:pointer}.product-action-menu>summary::-webkit-details-marker{display:none}.product-action-menu>div{position:absolute;right:0;z-index:60;width:315px;margin-top:6px;border:1px solid var(--v3-border-strong);background:#fff;box-shadow:0 16px 30px rgba(15,23,42,.14)}.product-action-menu a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid #edf1f5;font-size:.73rem;font-weight:700}.product-action-menu a:hover{background:#f8fafc}.product-certificate-list{display:grid;margin:0 -18px}.product-certificate-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;padding:11px 18px;border-bottom:1px solid #edf1f5}.product-certificate-row a{font-size:.76rem;font-weight:800}.product-certificate-row small{display:block;color:var(--v3-muted);font-size:.67rem}.product-icon-button{display:grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid var(--v3-border);border-radius:0;background:#fff;color:#64748b}.product-icon-button:hover{border-color:#9aabbc;color:var(--v3-text)}
.product-inline-disclosure{margin-top:14px;border-top:1px solid var(--v3-border);padding-top:12px}.product-inline-disclosure>summary{cursor:pointer;color:var(--v3-teal);font-size:.7rem;font-weight:750}.product-inline-form{display:flex;gap:7px;margin-top:9px}.product-inline-form .app-input{min-width:0}.product-stacked-form{display:grid;gap:8px;margin-top:10px}.product-note-form{display:grid;gap:8px}.product-note-form>div{text-align:right}.product-timeline{display:grid;margin-top:18px}.product-timeline article{display:grid;grid-template-columns:12px 1fr;gap:10px;padding:0 0 16px}.product-timeline article>span{position:relative;width:8px;height:8px;margin-top:5px;border:2px solid #fff;background:var(--v3-teal);box-shadow:0 0 0 1px #9bbeb9}.product-timeline article>span:after{position:absolute;top:10px;left:2px;width:1px;height:calc(100% + 8px);background:#dce5eb;content:""}.product-timeline article:last-child>span:after{display:none}.product-timeline strong{font-size:.72rem}.product-timeline time{margin-left:7px;color:var(--v3-muted);font-size:.65rem}.product-timeline p{margin:4px 0 0;color:#334155;font-size:.75rem}.product-people-list{display:grid;margin:0 -18px 12px}.product-people-list>div{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:9px 18px;border-bottom:1px solid #edf1f5}.product-avatar{display:grid;place-items:center;width:28px;height:28px;background:#e8eef3;color:var(--v3-navy);font-size:.65rem;font-weight:800}.product-people-list strong,.product-people-list small{display:block}.product-people-list strong{font-size:.72rem}.product-people-list small{color:var(--v3-muted);font-size:.64rem}.product-reminder-list{display:grid;gap:0;margin:0 -18px}.product-reminder-list>div{display:grid;grid-template-columns:auto 1fr;gap:9px;padding:10px 18px;border-bottom:1px solid #edf1f5}.product-reminder-list>div.is-overdue{border-left:3px solid var(--v3-red);background:#fffafa}.product-reminder-list i{color:var(--v3-muted)}.product-reminder-list strong,.product-reminder-list small{display:block}.product-reminder-list strong{font-size:.71rem}.product-reminder-list small{margin-top:2px;color:var(--v3-muted);font-size:.63rem}
.product-priority{width:4px;height:28px;background:#cbd5e1}.product-priority.is-low{background:#94a3b8}.product-priority.is-normal{background:#60a5fa}.product-priority.is-high{background:#fb923c}.product-priority.is-urgent{background:#dc2626}
.dashboard-global-search{display:grid;grid-template-columns:auto 1fr auto;align-items:center;margin-bottom:18px;border:1px solid var(--v3-border-strong);background:#fff}.dashboard-global-search i{margin-left:16px;color:var(--v3-muted);font-size:1rem}.dashboard-global-search input{height:50px;border:0!important;padding:0 14px;background:transparent;box-shadow:none!important;font-size:.86rem}.dashboard-global-search button{align-self:stretch;padding:0 18px;border:0;border-left:1px solid var(--v3-border);background:#fff;color:var(--v3-navy);font-size:.72rem;font-weight:800}.dashboard-global-search button:hover{background:#f8fafc}.dashboard-v3-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:18px}.dashboard-v3-main,.dashboard-v3-side{display:grid;align-content:start;gap:18px}.dashboard-v3-side{position:sticky;top:86px}.product-job-queue>a{grid-template-columns:auto minmax(0,1fr) auto auto}.dashboard-quick-records{display:grid;margin:0 -18px -18px}.dashboard-quick-records>a{display:grid;grid-template-columns:34px 1fr;align-items:center;gap:10px;padding:10px 18px;border-top:1px solid #edf1f5}.dashboard-quick-records>a:hover{background:#f8fafc}.dashboard-quick-records>a>i{font-size:1rem;color:var(--v3-teal)}.dashboard-quick-records strong,.dashboard-quick-records small{display:block}.dashboard-quick-records strong{font-size:.72rem}.dashboard-quick-records small{color:var(--v3-muted);font-size:.63rem}.dashboard-activity{display:grid;margin:0 -18px -18px}.dashboard-activity>div{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:9px;padding:9px 18px;border-top:1px solid #edf1f5}.dashboard-activity>div>span{width:6px;height:6px;background:#94a3b8}.dashboard-activity strong,.dashboard-activity small{display:block}.dashboard-activity strong{font-size:.69rem}.dashboard-activity small{color:var(--v3-muted);font-size:.61rem}
/* Certificate shell cohesion. The document contents retain their statutory layout; chrome is flattened. */
body.app-layout :is(.cert-section,.certificate-section,.cert-panel,.certificate-panel,.cert-summary-card,.certificate-summary-card,.cert-toolbar,.certificate-toolbar,.form-section,.section-card){border-radius:0!important;box-shadow:none!important}
body.app-layout :is(.badge,.pill,.app-pill,.status-pill,.status-badge):not(.product-status){border-radius:0!important}
.app-customer-picker-results,.app-customer-picker-result,.app-customer-picker-clear{border-radius:0!important}.app-customer-picker-results{box-shadow:0 12px 25px rgba(15,23,42,.12)}
/* Auth / login: professional two-pane product entry, no floating bubble treatment. */
.auth-body{background:#eef3f6}.login-page{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);min-height:100dvh}.login-hero{display:flex;flex-direction:column;justify-content:space-between;min-height:100dvh;padding:44px 52px;background:var(--v3-navy);color:#fff}.login-brand{display:flex;align-items:center;gap:12px}.login-brand-mark{display:grid;place-items:center;width:50px;height:46px;padding:8px;border:1px solid rgba(255,255,255,.22);border-radius:0!important;background:#fff!important}.login-brand-logo{max-width:100%;max-height:100%;object-fit:contain}.login-brand-title{font-size:.95rem;font-weight:800}.login-brand-subtitle{margin-top:2px;color:#b7c6d2;font-size:.7rem}.login-hero-content{max-width:720px;margin:auto 0}.login-kicker{color:#8ed0c7;font-size:.67rem;font-weight:850;letter-spacing:.13em;text-transform:uppercase}.login-hero h1{max-width:11ch;margin:12px 0 20px;font-size:clamp(2.8rem,4.6vw,4.6rem)!important;line-height:.98!important;letter-spacing:-.055em;font-weight:800}.login-hero p{max-width:61ch;color:#c7d5df;font-size:.94rem!important;line-height:1.65}.login-hero-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:34px;border:1px solid rgba(255,255,255,.16)}.login-hero-point{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:start;padding:15px;border-right:1px solid rgba(255,255,255,.16);color:#dce7ed;font-size:.73rem}.login-hero-point:last-child{border-right:0}.login-hero-point-icon{display:grid;place-items:center;width:25px;height:25px;border:1px solid rgba(255,255,255,.2);border-radius:0!important;background:transparent}.login-panel{display:grid;place-items:center;min-height:100dvh;padding:42px;background:#f8fafc}.login-card{width:100%;max-width:440px;padding:0!important;border:1px solid var(--v3-border-strong)!important;border-radius:0!important;background:#fff;box-shadow:none!important}.login-panel-brand{display:none}.login-card-heading{padding:27px 28px 18px;border-bottom:1px solid var(--v3-border)}.login-card-kicker{color:var(--v3-teal);font-size:.65rem;font-weight:850;letter-spacing:.11em;text-transform:uppercase}.login-card-heading h2{margin:3px 0;font-size:1.65rem;font-weight:800;letter-spacing:-.03em}.login-card-heading p{margin:0;color:var(--v3-muted);font-size:.78rem}.login-card form{padding:22px 28px}.auth-field{margin-bottom:16px}.auth-field>label{display:block;margin-bottom:6px;color:#334155;font-size:.72rem;font-weight:800}.auth-input-wrap{position:relative}.auth-input-wrap input{width:100%;height:46px;padding:0 54px 0 42px;border:1px solid var(--v3-border-strong);background:#fff}.auth-input-icon{position:absolute;left:0;top:0;z-index:2;display:grid;place-items:center;width:42px;height:46px;border-right:1px solid var(--v3-border);color:#6b7d8f;pointer-events:none}.auth-password-toggle{position:absolute;right:0;top:0;height:46px;padding:0 12px;border:0;border-left:1px solid var(--v3-border);background:#f8fafc;color:var(--v3-navy);font-size:.68rem;font-weight:800}.auth-options{display:flex;justify-content:space-between;gap:12px;margin:4px 0 18px;color:var(--v3-muted);font-size:.7rem}.auth-check{display:flex;align-items:center;gap:7px}.auth-check input{width:15px;height:15px}.auth-options a{color:var(--v3-teal);font-weight:750}.auth-submit{display:flex;justify-content:center;align-items:center;gap:8px;width:100%;height:46px;border:1px solid var(--v3-navy);background:var(--v3-navy);color:#fff}.auth-submit:hover{background:var(--v3-navy-dark)}.login-security-note{display:grid;grid-template-columns:auto 1fr;gap:10px;margin:0;padding:15px 28px;border-top:1px solid var(--v3-border);background:#f8fafc}.login-security-icon{color:var(--v3-teal)}.login-security-note strong,.login-security-note span{display:block}.login-security-note strong{font-size:.7rem}.login-security-note span{color:var(--v3-muted);font-size:.64rem}.auth-alert{margin:16px 28px 0;border-radius:0!important}.caps-warning{font-size:.67rem}
@media(max-width:1199.98px){.product-job-layout,.dashboard-v3-layout{grid-template-columns:1fr}.product-job-side,.dashboard-v3-side{position:static}.product-detail-grid{grid-template-columns:1fr}.login-hero-points{grid-template-columns:1fr}.login-hero-point{border-right:0;border-bottom:1px solid rgba(255,255,255,.16)}.login-hero-point:last-child{border-bottom:0}}
@media(max-width:991.98px){.app-main{margin-left:0}.app-page{padding:20px 16px 40px}.product-metric-row{grid-template-columns:repeat(2,1fr)}.product-metric-row>a:nth-child(2){border-right:0}.product-metric-row>a:nth-child(-n+2){border-bottom:1px solid var(--v3-border)}.product-job-summary{grid-template-columns:repeat(2,1fr)}.product-job-summary>div:nth-child(2){border-right:0}.product-job-summary>div:nth-child(-n+2){border-bottom:1px solid var(--v3-border)}.login-page{display:block}.login-hero{display:none}.login-panel{padding:22px;min-height:100dvh}.login-card{max-width:460px}.login-panel-brand{display:flex;align-items:center;gap:10px;padding:18px 28px;border-bottom:1px solid var(--v3-border);font-size:.78rem;font-weight:800}.login-panel-brand img{width:32px;height:28px;object-fit:contain}}
@media(max-width:767.98px){.product-form-grid{grid-template-columns:1fr}.product-span-2{grid-column:auto}.product-check-grid{grid-template-columns:1fr}.product-check-grid label{border-right:0}.product-toolbar{align-items:stretch;flex-direction:column}.product-search{max-width:none}.product-tabs{align-self:flex-start}.product-job-table th:nth-child(4),.product-job-table td:nth-child(4),.product-job-table th:nth-child(5),.product-job-table td:nth-child(5){display:none}.app-page-header.product-header{align-items:flex-start;flex-direction:column}.product-inline-form{flex-direction:column}.product-action-menu>div{left:0;right:auto;width:min(315px,calc(100vw - 32px))}}
@media(max-width:520px){.product-metric-row,.product-job-summary{grid-template-columns:1fr}.product-metric-row>a,.product-job-summary>div{border-right:0!important;border-bottom:1px solid var(--v3-border)}.product-metric-row>a:last-child,.product-job-summary>div:last-child{border-bottom:0}.product-form-card{padding:16px}.product-form-actions{margin:20px -16px -16px;padding:12px 16px}.product-form-actions .app-btn{flex:1}.product-panel{padding:15px}.product-panel-head{margin:-15px -15px 14px;padding:13px 15px}.product-stack-list{margin:-1px -15px -15px}.product-stack-list>a{padding:12px 15px}.product-table thead{display:none}.product-table,.product-table tbody,.product-table tr,.product-table td{display:block;width:100%}.product-table tr{padding:12px 14px;border-bottom:1px solid var(--v3-border)}.product-table td{padding:4px 0;border:0}.product-table td.text-end{text-align:left!important}.dashboard-global-search{grid-template-columns:auto 1fr}.dashboard-global-search button{display:none}}
@media print{.product-job-side,.dashboard-v3-side{position:static}.product-panel{break-inside:avoid}.app-page{padding:0}}
.product-job-context{display:flex;align-items:center;gap:7px;margin-top:10px;padding:7px 10px;border-left:3px solid var(--v3-teal);background:#f0fdfa;color:#315b57;font-size:.7rem}.product-job-context i{color:var(--v3-teal)}
.customer-operations-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:-16px -18px -18px;background:var(--v3-border)}.customer-operations-grid>div{min-width:0;background:#fff}.customer-operations-title{display:flex;justify-content:space-between;padding:10px 18px;border-bottom:1px solid var(--v3-border);background:#f8fafc;color:var(--v3-muted);font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.customer-operations-list{margin:0}.customer-operations-list>a{grid-template-columns:minmax(0,1fr) auto auto}.customer-operations-list>a>div{min-width:0}.customer-operations-list small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:767.98px){.customer-operations-grid{grid-template-columns:1fr}.customer-operations-grid>div+div{border-top:1px solid var(--v3-border)}}

/* Job evidence ------------------------------------------------------------- */
.product-file-list{border-top:1px solid var(--product-border,#d8dee6);margin-top:2px}.product-file-row{display:grid;grid-template-columns:24px minmax(0,1fr) 34px 34px;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid var(--product-border,#d8dee6)}.product-file-row>i{font-size:18px;color:#526274}.product-file-row>div{min-width:0}.product-file-row a{font-weight:700;text-decoration:none}.product-file-row small{display:block;color:#6b7785;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-file-row form{margin:0}.product-file-upload{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;margin-top:14px}.product-file-upload small{grid-column:1/-1;color:#6b7785}.product-file-upload input[type=file]{padding:7px 10px}.product-file-upload .app-btn{white-space:nowrap}@media(max-width:720px){.product-file-upload{grid-template-columns:1fr}.product-file-upload small{grid-column:auto}.product-file-row{grid-template-columns:22px minmax(0,1fr) 32px 32px}}

.product-columns-cov{--cert-table-columns:minmax(155px,.75fr) minmax(210px,1fr) minmax(250px,1.25fr) minmax(125px,.55fr) minmax(145px,.65fr) minmax(170px,.75fr) minmax(125px,.55fr)}
.product-columns-woef{--cert-table-columns:minmax(150px,.7fr) minmax(180px,.9fr) minmax(220px,1.2fr) minmax(110px,.55fr) minmax(125px,.6fr) minmax(150px,.7fr) minmax(150px,.75fr)}
.product-columns-solar{--cert-table-columns:minmax(150px,.75fr) minmax(200px,1fr) minmax(170px,.8fr) minmax(230px,1.15fr) minmax(135px,.65fr) minmax(140px,.7fr) minmax(150px,.75fr) minmax(140px,.6fr)}
.pct-w-0{width:0%}.pct-h-0{height:0%}.pct-w-1{width:1%}.pct-h-1{height:1%}.pct-w-2{width:2%}.pct-h-2{height:2%}.pct-w-3{width:3%}.pct-h-3{height:3%}.pct-w-4{width:4%}.pct-h-4{height:4%}.pct-w-5{width:5%}.pct-h-5{height:5%}.pct-w-6{width:6%}.pct-h-6{height:6%}.pct-w-7{width:7%}.pct-h-7{height:7%}.pct-w-8{width:8%}.pct-h-8{height:8%}.pct-w-9{width:9%}.pct-h-9{height:9%}.pct-w-10{width:10%}.pct-h-10{height:10%}.pct-w-11{width:11%}.pct-h-11{height:11%}.pct-w-12{width:12%}.pct-h-12{height:12%}.pct-w-13{width:13%}.pct-h-13{height:13%}.pct-w-14{width:14%}.pct-h-14{height:14%}.pct-w-15{width:15%}.pct-h-15{height:15%}.pct-w-16{width:16%}.pct-h-16{height:16%}.pct-w-17{width:17%}.pct-h-17{height:17%}.pct-w-18{width:18%}.pct-h-18{height:18%}.pct-w-19{width:19%}.pct-h-19{height:19%}.pct-w-20{width:20%}.pct-h-20{height:20%}.pct-w-21{width:21%}.pct-h-21{height:21%}.pct-w-22{width:22%}.pct-h-22{height:22%}.pct-w-23{width:23%}.pct-h-23{height:23%}.pct-w-24{width:24%}.pct-h-24{height:24%}.pct-w-25{width:25%}.pct-h-25{height:25%}.pct-w-26{width:26%}.pct-h-26{height:26%}.pct-w-27{width:27%}.pct-h-27{height:27%}.pct-w-28{width:28%}.pct-h-28{height:28%}.pct-w-29{width:29%}.pct-h-29{height:29%}.pct-w-30{width:30%}.pct-h-30{height:30%}.pct-w-31{width:31%}.pct-h-31{height:31%}.pct-w-32{width:32%}.pct-h-32{height:32%}.pct-w-33{width:33%}.pct-h-33{height:33%}.pct-w-34{width:34%}.pct-h-34{height:34%}.pct-w-35{width:35%}.pct-h-35{height:35%}.pct-w-36{width:36%}.pct-h-36{height:36%}.pct-w-37{width:37%}.pct-h-37{height:37%}.pct-w-38{width:38%}.pct-h-38{height:38%}.pct-w-39{width:39%}.pct-h-39{height:39%}.pct-w-40{width:40%}.pct-h-40{height:40%}.pct-w-41{width:41%}.pct-h-41{height:41%}.pct-w-42{width:42%}.pct-h-42{height:42%}.pct-w-43{width:43%}.pct-h-43{height:43%}.pct-w-44{width:44%}.pct-h-44{height:44%}.pct-w-45{width:45%}.pct-h-45{height:45%}.pct-w-46{width:46%}.pct-h-46{height:46%}.pct-w-47{width:47%}.pct-h-47{height:47%}.pct-w-48{width:48%}.pct-h-48{height:48%}.pct-w-49{width:49%}.pct-h-49{height:49%}.pct-w-50{width:50%}.pct-h-50{height:50%}.pct-w-51{width:51%}.pct-h-51{height:51%}.pct-w-52{width:52%}.pct-h-52{height:52%}.pct-w-53{width:53%}.pct-h-53{height:53%}.pct-w-54{width:54%}.pct-h-54{height:54%}.pct-w-55{width:55%}.pct-h-55{height:55%}.pct-w-56{width:56%}.pct-h-56{height:56%}.pct-w-57{width:57%}.pct-h-57{height:57%}.pct-w-58{width:58%}.pct-h-58{height:58%}.pct-w-59{width:59%}.pct-h-59{height:59%}.pct-w-60{width:60%}.pct-h-60{height:60%}.pct-w-61{width:61%}.pct-h-61{height:61%}.pct-w-62{width:62%}.pct-h-62{height:62%}.pct-w-63{width:63%}.pct-h-63{height:63%}.pct-w-64{width:64%}.pct-h-64{height:64%}.pct-w-65{width:65%}.pct-h-65{height:65%}.pct-w-66{width:66%}.pct-h-66{height:66%}.pct-w-67{width:67%}.pct-h-67{height:67%}.pct-w-68{width:68%}.pct-h-68{height:68%}.pct-w-69{width:69%}.pct-h-69{height:69%}.pct-w-70{width:70%}.pct-h-70{height:70%}.pct-w-71{width:71%}.pct-h-71{height:71%}.pct-w-72{width:72%}.pct-h-72{height:72%}.pct-w-73{width:73%}.pct-h-73{height:73%}.pct-w-74{width:74%}.pct-h-74{height:74%}.pct-w-75{width:75%}.pct-h-75{height:75%}.pct-w-76{width:76%}.pct-h-76{height:76%}.pct-w-77{width:77%}.pct-h-77{height:77%}.pct-w-78{width:78%}.pct-h-78{height:78%}.pct-w-79{width:79%}.pct-h-79{height:79%}.pct-w-80{width:80%}.pct-h-80{height:80%}.pct-w-81{width:81%}.pct-h-81{height:81%}.pct-w-82{width:82%}.pct-h-82{height:82%}.pct-w-83{width:83%}.pct-h-83{height:83%}.pct-w-84{width:84%}.pct-h-84{height:84%}.pct-w-85{width:85%}.pct-h-85{height:85%}.pct-w-86{width:86%}.pct-h-86{height:86%}.pct-w-87{width:87%}.pct-h-87{height:87%}.pct-w-88{width:88%}.pct-h-88{height:88%}.pct-w-89{width:89%}.pct-h-89{height:89%}.pct-w-90{width:90%}.pct-h-90{height:90%}.pct-w-91{width:91%}.pct-h-91{height:91%}.pct-w-92{width:92%}.pct-h-92{height:92%}.pct-w-93{width:93%}.pct-h-93{height:93%}.pct-w-94{width:94%}.pct-h-94{height:94%}.pct-w-95{width:95%}.pct-h-95{height:95%}.pct-w-96{width:96%}.pct-h-96{height:96%}.pct-w-97{width:97%}.pct-h-97{height:97%}.pct-w-98{width:98%}.pct-h-98{height:98%}.pct-w-99{width:99%}.pct-h-99{height:99%}.pct-w-100{width:100%}.pct-h-100{height:100%}

/* Product v3: COV/WoEF use the same straight-line document language. */
.cov-certificate,
.cov-cert-section,
.cov-detail-grid > div,
.cov-long-text,
.cov-note,
.cov-check,
.cov-fieldset,
.cov-signature-wrap,
.cov-page-icon,
.cov-logo-placeholder,
.cov-pdf-question,
.cov-pdf-subhead,
.cov-pdf-check-table,
.cov-verification-strip,
.cov-meter-grid,
.cov-regulation-note,
.roi-signature-wrap,
.signature-pad-wrap.roi-signature-wrap,
.woef-create-page .app-field > input:not([type="checkbox"]):not([type="radio"]),
.woef-create-page .app-field > select,
.woef-create-page .app-field > textarea,
.woef-create-page .cov-linked-detail,
.woef-create-page .woef-test-sheet-wrap,
.woef-create-page .woef-test-sheet input,
.woef-create-page .woef-test-sheet select,
.woef-create-page .woef-outcome > span,
.woef-failure-field,
.woef-declaration-box,
.woef-series-item {
  border-radius: 0 !important;
  box-shadow: none !important;
}

.cov-certificate,
.cov-cert-section,
.woef-create-page .woef-outcome > span {
  transform: none !important;
}

.cov-cert-section > h3,
.woef-create-page .woef-test-sheet th:first-child,
.woef-create-page .woef-test-sheet th:last-child {
  border-radius: 0 !important;
}

.product-cert-link-search{position:relative;min-width:240px;flex:1 1 320px}.product-cert-link-results{position:absolute;z-index:30;top:calc(100% + 4px);left:0;right:0;max-height:310px;overflow:auto;border:1px solid var(--v3-border-strong);background:#fff;box-shadow:0 12px 28px rgba(15,31,53,.12)}.product-cert-link-result{display:grid;width:100%;gap:2px;padding:10px 12px;border:0;border-bottom:1px solid var(--v3-border);background:#fff;text-align:left}.product-cert-link-result:last-child{border-bottom:0}.product-cert-link-result:hover,.product-cert-link-result:focus{background:#f8fafc;outline:0}.product-cert-link-result strong{color:var(--v3-text);font-size:.78rem}.product-cert-link-result span,.product-cert-link-empty{color:var(--v3-muted);font-size:.68rem}.product-cert-link-empty{padding:12px}.product-inline-form #jobCertificateLinkSubmit:disabled{cursor:not-allowed;opacity:.45}

/* =========================================================
   Product v3.1 — structural component restoration
   The v3 visual cleanup removed several late structural rules from the old
   stylesheet. These rules deliberately restore layout behaviour while keeping
   the straight-line Product v3 visual language.
   ========================================================= */

/* Sidebar create menu ------------------------------------------------------ */
.sidebar-create > summary,
.sidebar-disclosure > summary {
  list-style: none;
  cursor: pointer;
  user-select: none;
}
.sidebar-create > summary::-webkit-details-marker,
.sidebar-disclosure > summary::-webkit-details-marker { display: none; }
.sidebar-create > summary {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 8px 10px;
  line-height: 1.2;
}
.sidebar-create-icon {
  display: inline-grid;
  width: 24px;
  height: 24px;
  place-items: center;
  background: var(--v3-navy);
  color: #fff;
  flex: 0 0 auto;
}
.sidebar-create-chevron {
  margin-left: auto;
  font-size: .66rem;
  transition: transform .16s ease;
}
.sidebar-create[open] .sidebar-create-chevron,
.sidebar-disclosure[open] > summary i { transform: rotate(180deg); }
.sidebar-create-menu {
  display: grid;
  gap: 2px;
  max-height: min(380px, 52vh);
  overflow-y: auto;
  margin-top: 6px;
  padding: 5px;
}
.sidebar-create-link {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  min-height: 39px;
  padding: 7px 8px;
  color: #d9e4ed;
  font-size: .72rem;
  font-weight: 700;
  line-height: 1.25;
  text-decoration: none;
}
.sidebar-create-link:focus-visible {
  outline: 2px solid #fff;
  outline-offset: -2px;
}
.sidebar-record-code {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}
.sidebar-disclosure {
  display: grid;
}
.sidebar-disclosure > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 30px;
}
.sidebar-disclosure > summary i {
  font-size: .62rem;
  transition: transform .16s ease;
}
.sidebar-disclosure-panel { display: grid; }

/* Sidebar signed-in controls ---------------------------------------------- */
.sidebar-footer-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
  margin-top: 8px;
}
.sidebar-footer-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 6px 4px;
  color: #c9d6e1;
  text-decoration: none;
  line-height: 1;
}
.sidebar-footer-actions a:hover,
.sidebar-footer-actions a.active {
  border-color: rgba(255,255,255,.28);
  background: rgba(255,255,255,.08);
  color: #fff;
}

/* Guided one-page certificate toolbar ------------------------------------ */
.app-workflow-toolbar {
  position: sticky;
  top: 78px;
  z-index: 24;
  margin-bottom: 18px;
  padding: 14px 16px 12px;
  border: 1px solid var(--v3-border-strong);
  background: rgba(255,255,255,.985);
  box-shadow: 0 8px 20px rgba(15,47,74,.06);
  backdrop-filter: blur(8px);
}
.app-workflow-heading,
.app-workflow-completion {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}
.app-workflow-eyebrow {
  display: block;
  color: var(--v3-muted);
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.app-workflow-title {
  display: block;
  margin-top: 2px;
  color: var(--v3-text);
  font-size: .86rem;
  font-weight: 800;
}
.app-workflow-save-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--v3-teal);
  font-size: .69rem;
  font-weight: 750;
  white-space: nowrap;
}
.app-workflow-save-status[data-state="dirty"],
.app-workflow-save-status[data-state="saving"] { color: var(--v3-orange); }
.app-workflow-save-status[data-state="offline"],
.app-workflow-save-status[data-state="error"] { color: var(--v3-red); }
.app-workflow-progress {
  height: 4px;
  margin: 11px 0 9px;
  overflow: hidden;
  background: #e7edf3;
}
.app-workflow-progress > span {
  display: block;
  height: 100%;
  width: 0;
  background: var(--v3-teal);
  transition: width .2s ease;
}
.app-workflow-section-nav {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  margin: 8px 0;
  padding-bottom: 3px;
  scrollbar-width: thin;
}
.app-workflow-section-nav button {
  flex: 0 0 auto;
  max-width: 230px;
  min-height: 31px;
  overflow: hidden;
  padding: 5px 9px;
  border: 1px solid var(--v3-border-strong);
  border-radius: 0;
  background: #fff;
  color: #526274;
  font: inherit;
  font-size: .68rem;
  font-weight: 750;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: pointer;
}
.app-workflow-section-nav button:hover,
.app-workflow-section-nav button.is-active {
  border-color: var(--v3-navy);
  background: var(--v3-navy);
  color: #fff;
}
.app-workflow-completion {
  color: var(--v3-muted);
  font-size: .67rem;
  font-weight: 700;
}
.app-workflow-completion small { font-weight: 600; }

/* Reports — action queue is a list, never a squeezed two-column tile grid. */
.reports-action-list {
  grid-template-columns: 1fr !important;
  gap: 0 !important;
  border: 1px solid var(--v3-border);
  background: #fff;
}
.reports-action-list > a {
  grid-template-columns: 38px minmax(0, 1fr) 18px !important;
  min-height: 58px;
  padding: 10px 12px;
  border: 0 !important;
  border-bottom: 1px solid var(--v3-border) !important;
  border-radius: 0 !important;
  background: #fff;
}
.reports-action-list > a:last-child { border-bottom: 0 !important; }
.reports-action-list > a:hover { background: #f8fafc; }
.reports-action-list > a > strong {
  min-width: 0;
  color: var(--v3-teal);
  font-size: 1.12rem;
  line-height: 1;
}
.reports-action-list > a > span {
  min-width: 0;
  color: #41576b;
  font-size: .76rem;
  line-height: 1.35;
}
.reports-action-list > a > i { justify-self: end; }

/* Settings checkbox / compact control rows -------------------------------- */
.app-check-row {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 30px;
  color: #334155;
  font-size: .72rem;
  font-weight: 650;
  cursor: pointer;
}
.app-check-row input[type="checkbox"] {
  width: 15px;
  height: 15px;
  margin: 0;
  flex: 0 0 auto;
  accent-color: var(--v3-navy);
}

/* Certificate view headers ------------------------------------------------ */
.esc-view-page > .app-page-inner > .app-page-header,
.coc-view-page > .app-page-inner > .app-page-header,
.roi-view-page > .app-page-inner > .app-page-header,
.testing-view-page > .app-page-inner > .app-page-header,
.esve-view-page > .app-page-inner > .app-page-header,
.solar-view-page > .app-page-inner > .app-page-header,
.solar-commissioning-view-page > .app-page-inner > .app-page-header,
.cov-view-page > .app-page-inner > .app-page-header,
.woef-view-page > .app-page-inner > .app-page-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
}
.cert-view-header-actions,
.esc-view-header-actions,
.coc-view-header-actions,
.roi-view-header-actions,
.testing-view-header-actions {
  width: 100%;
  margin-left: 0;
  padding-top: 12px;
  border-top: 1px solid var(--v3-border);
  justify-content: flex-start;
}
.cert-view-header-actions .app-badge,
.esc-view-header-actions .app-badge,
.coc-view-header-actions .app-badge,
.roi-view-header-actions .app-badge,
.testing-view-header-actions .app-badge {
  margin-right: 2px;
}

/* Keep the small page icons square and aligned with the v3 system. */
.esc-page-icon,.coc-page-icon,.roi-page-icon,.testing-page-icon,.esve-page-icon,.solar-page-icon,.cov-page-icon {
  border-radius: 0 !important;
  box-shadow: none !important;
}

@media (max-width: 991.98px) {
  .app-workflow-toolbar { top: 8px; }
  .sidebar-create > summary,
  .sidebar-create-link { min-height: 44px; }
}
@media (max-width: 575.98px) {
  .app-workflow-heading,
  .app-workflow-completion {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
  }
  .app-workflow-save-status { white-space: normal; }
  .cert-view-header-actions,
  .esc-view-header-actions,
  .coc-view-header-actions,
  .roi-view-header-actions,
  .testing-view-header-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .cert-view-header-actions .app-btn,
  .esc-view-header-actions .app-btn,
  .coc-view-header-actions .app-btn,
  .roi-view-header-actions .app-btn,
  .testing-view-header-actions .app-btn {
    width: 100%;
  }
}

/* Final v3 flat-surface corrections. */
.signed-in-user { border-radius: 0 !important; box-shadow: none !important; }
.app-workflow-toolbar { box-shadow: none; }


/* =========================================================
   Product v3.2 — full structural UI audit
   Fixes layout regressions found across certificate/admin pages.
   ========================================================= */

/* Every grid child must be allowed to shrink inside the application shell. */
.app-layout-grid > *,
.app-main-stack,
.app-side-stack,
.app-card,
.app-form-grid,
.app-record-main,
.app-record-content {
  min-width: 0;
}

.table-responsive {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* The COV verifier strip has two children. A later legacy COV rule used to
   override it to four tracks, leaving two empty columns and crushing fields. */
.cov-verification-strip.cov-verification-strip-clean {
  grid-template-columns: minmax(0, 1.4fr) minmax(240px, 1fr);
}
.cov-pdf-question-grid > *,
.cov-meter-grid > *,
.cov-verification-strip > * {
  min-width: 0;
}

/* Restore shared overview-card structure removed during the v3 CSS cleanup. */
.account-profile-page .app-overview-card,
.company-settings-page .app-overview-card,
.users-admin-page .app-overview-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px 18px;
  min-height: 0;
  padding: 20px 22px;
}
.account-profile-page .app-overview-card .app-card-head,
.company-settings-page .app-overview-card .app-card-head,
.users-admin-page .app-overview-card .app-card-head {
  min-width: 0;
  margin-bottom: 0;
}
.account-profile-page .app-overview-card .app-card-text,
.company-settings-page .app-overview-card .app-card-text,
.users-admin-page .app-overview-card .app-card-text {
  margin-bottom: 0;
}
.account-profile-page .app-overview-card .app-summary-pills,
.company-settings-page .app-overview-card .app-summary-pills,
.users-admin-page .app-overview-card .app-summary-pills {
  grid-column: 2;
  justify-content: flex-end;
  gap: 8px;
  margin: 0;
}
.company-settings-page .app-company-overview-card .app-tab-row,
.users-admin-page .app-users-overview-card .app-tab-row {
  grid-column: 1 / -1;
  margin-top: 0;
  padding-top: 14px;
  border-top: 1px solid var(--v3-border);
}
.account-profile-page .app-profile-overview-card .app-tab-row { display: none; }

/* Small shared structures which were present in markup but had no v3 rules. */
.app-list-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.app-pagination-wrap {
  display: flex;
  justify-content: center;
  width: 100%;
  margin-top: 18px;
  overflow-x: auto;
}
.app-filter-right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  margin-left: auto;
}
.app-input-group {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: stretch;
  width: 100%;
}
.app-input-group .app-input { min-width: 0; }
.app-input-unit {
  display: flex;
  align-items: center;
  min-width: 54px;
  padding: 0 12px;
  border: 1px solid var(--v3-border-strong);
  border-left: 0;
  background: #f8fafc;
  color: var(--v3-muted);
  font-size: .72rem;
  font-weight: 750;
}
.app-desktop-actions .app-side-actions {
  display: grid;
  gap: 8px;
}

/* Finalise / revision dialog was generated by app.js but its structural CSS
   was removed in v3. Keep it square and consistent with the application. */
.app-review-dialog {
  width: min(620px, calc(100% - 28px));
  max-height: calc(100dvh - 40px);
  padding: 0;
  overflow: auto;
  border: 1px solid var(--v3-border-strong);
  border-radius: 0;
  background: #fff;
  box-shadow: 0 24px 70px rgba(8, 28, 48, .24);
}
.app-review-dialog::backdrop {
  background: rgba(8, 28, 48, .62);
  backdrop-filter: blur(3px);
}
.app-review-dialog-card {
  position: relative;
  margin: 0;
  padding: 28px;
}
.app-review-dialog-card h2 {
  margin: 7px 0 8px;
  color: var(--v3-text);
  font-size: 1.45rem;
  letter-spacing: -.025em;
}
.app-review-dialog-card > p {
  margin: 0 0 20px;
  color: var(--v3-muted);
}
.app-review-close {
  position: absolute;
  top: 14px;
  right: 14px;
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 1px solid var(--v3-border);
  border-radius: 0;
  background: #f8fafc;
  color: #334e68;
}
.app-review-icon {
  display: grid;
  width: 46px;
  height: 46px;
  margin-bottom: 16px;
  place-items: center;
  border: 1px solid #bfe3da;
  border-radius: 0;
  background: #eaf8f4;
  color: var(--v3-teal);
  font-size: 1.3rem;
}
.app-review-summary dl {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin: 0 0 16px;
  border: 1px solid var(--v3-border);
}
.app-review-summary dl > div {
  min-width: 0;
  padding: 12px 14px;
  border-right: 1px solid var(--v3-border);
  border-bottom: 1px solid var(--v3-border);
  background: #fff;
}
.app-review-summary dl > div:nth-child(2n) { border-right: 0; }
.app-review-summary dt {
  color: var(--v3-muted);
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.app-review-summary dd {
  margin: 3px 0 0;
  color: var(--v3-text);
  font-weight: 650;
  overflow-wrap: anywhere;
}
.app-review-warning,
.app-review-ready {
  display: flex;
  gap: 8px;
  padding: 13px 14px;
  border: 1px solid transparent;
  border-radius: 0;
}
.app-review-warning {
  flex-direction: column;
  border-color: #f2d39f;
  background: #fff8ea;
  color: #7a4d00;
}
.app-review-ready {
  align-items: center;
  border-color: #bfe3da;
  background: #eaf8f4;
  color: #146c4c;
  font-weight: 700;
}
.app-review-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 22px;
}
.app-review-dialog .app-field > textarea {
  width: 100%;
  min-height: 110px;
  padding: 11px 13px;
  border: 1px solid var(--v3-border-strong);
  border-radius: 0;
  background: #fff;
  color: var(--v3-text);
  resize: vertical;
}
.app-duplicate-form { display: inline-flex; margin: 0; }

/* Make validation feedback visible again. */
.app-card-needs-attention {
  outline: 3px solid rgba(217, 45, 32, .28);
  outline-offset: 2px;
}

/* The viewport breakpoint must include the permanent 248px application
   sidebar. On common 1366/1440/1536 displays the old 1200px breakpoint left
   only ~600-900px for the main certificate column and caused nested layouts. */
@media (max-width: 1599.98px) {
  /* Certificate pages carry the densest nested grids. Collapse their 360px
     context rail earlier than simple settings/customer pages because the
     fixed desktop sidebar already consumes 248px of viewport width. */
  .esc-create-page .app-layout-grid,
  .esc-view-page .app-layout-grid,
  .coc-create-page .app-layout-grid,
  .coc-view-page .app-layout-grid,
  .roi-create-page .app-layout-grid,
  .roi-view-page .app-layout-grid,
  .testing-create-page .app-layout-grid,
  .testing-view-page .app-layout-grid,
  .esve-create-page .app-layout-grid,
  .esve-view-page .app-layout-grid,
  .solar-create-page .app-layout-grid,
  .solar-view-page .app-layout-grid,
  .solar-commissioning-view-page .app-layout-grid,
  .cov-create-page .app-layout-grid,
  .cov-view-page .app-layout-grid,
  .woef-create-page .app-layout-grid,
  .woef-view-page .app-layout-grid,
  .reports-page .reports-layout {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  body.app-layout .cert-create-side,
  body.app-layout .cert-view-side,
  body.app-layout .coc-create-side,
  body.app-layout .coc-view-side,
  body.app-layout .roi-create-side,
  body.app-layout .roi-view-side,
  body.app-layout .testing-create-side,
  body.app-layout .testing-view-side,
  body.app-layout .cov-create-side,
  body.app-layout .woef-create-side,
  body.app-layout .reports-side {
    position: static !important;
    top: auto !important;
  }
}

@media (max-width: 1199.98px) {
  .account-profile-page .app-overview-card,
  .company-settings-page .app-overview-card,
  .users-admin-page .app-overview-card {
    grid-template-columns: 1fr;
  }
  .account-profile-page .app-overview-card .app-summary-pills,
  .company-settings-page .app-overview-card .app-summary-pills,
  .users-admin-page .app-overview-card .app-summary-pills {
    grid-column: 1;
    justify-content: flex-start;
  }
}

@media (max-width: 1199.98px) {
  .cov-verification-strip.cov-verification-strip-clean {
    grid-template-columns: minmax(0, 1fr) minmax(220px, .8fr);
  }
  .app-review-summary dl { grid-template-columns: 1fr; }
  .app-review-summary dl > div { border-right: 0; }
}

@media (max-width: 767.98px) {
  .cov-verification-strip.cov-verification-strip-clean {
    grid-template-columns: 1fr;
  }
  .app-review-dialog-card { padding: 22px 18px; }
  .app-review-actions {
    flex-direction: column-reverse;
  }
  .app-review-actions .app-btn { width: 100%; }
  .app-filter-right { justify-content: flex-start; margin-left: 0; }
  .app-input-group { grid-template-columns: 1fr; }
  .app-input-unit {
    min-height: 34px;
    border-left: 1px solid var(--v3-border-strong);
    border-top: 0;
  }
}

/* Product v3.2 — account, administration and system-page consistency ------- */
.app-page-icon {
  display: grid;
  width: 54px;
  height: 54px;
  flex: 0 0 54px;
  place-items: center;
  border: 1px solid var(--v3-border-strong);
  border-radius: 0;
  background: #fff;
  color: var(--v3-navy);
  font-size: 1.25rem;
}
.app-page-icon-neutral { background: #f8fafc; }
.app-form-stack { display: grid; gap: 18px; }
.app-form-actions-start { justify-content: flex-start; }

.account-security-layout { align-items: start; }
.security-setup-steps {
  display: grid;
  gap: 0;
  margin: 0 0 20px;
  border: 1px solid var(--v3-border);
}
.security-step {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 14px;
  border-bottom: 1px solid var(--v3-border);
}
.security-step:last-child { border-bottom: 0; }
.security-step > span {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border: 1px solid #b9d9d1;
  background: #eaf8f4;
  color: var(--v3-teal);
  font-size: .72rem;
  font-weight: 850;
}
.security-step strong,
.security-step small { display: block; }
.security-step strong { color: var(--v3-text); font-size: .78rem; }
.security-step small { margin-top: 3px; color: var(--v3-muted); font-size: .7rem; line-height: 1.45; }
.security-setup-key {
  display: block;
  margin-top: 7px;
  padding: 9px 11px;
  overflow-wrap: anywhere;
  border: 1px solid var(--v3-border);
  background: #f8fafc;
  color: var(--v3-navy);
  font-size: .76rem;
}
.security-code-field { max-width: 260px; }
.security-code-field .app-input { letter-spacing: .18em; font-variant-numeric: tabular-nums; }
.security-device-list { display: grid; border: 1px solid var(--v3-border); }
.security-device-row {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 11px;
  padding: 12px;
  border-bottom: 1px solid var(--v3-border);
}
.security-device-row:last-child { border-bottom: 0; }
.security-device-icon {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border: 1px solid var(--v3-border);
  background: #f8fafc;
  color: var(--v3-muted);
}
.security-device-copy { min-width: 0; }
.security-device-copy strong,
.security-device-copy small { display: block; overflow-wrap: anywhere; }
.security-device-copy strong { color: var(--v3-text); font-size: .7rem; line-height: 1.35; }
.security-device-copy small { margin-top: 3px; color: var(--v3-muted); font-size: .64rem; line-height: 1.35; }
.security-revoke-actions { margin-top: 14px; }

.backup-grid {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.35fr);
  gap: 18px;
  align-items: start;
}
.backup-card { min-width: 0; }
.backup-card-icon {
  display: grid;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  place-items: center;
  border: 1px solid #b9d9d1;
  background: #eaf8f4;
  color: var(--v3-teal);
}
.backup-card-icon.is-danger { border-color: #f0c4c0; background: #fff3f2; color: #b42318; }
.backup-warning {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  margin-bottom: 18px;
  padding: 12px 14px;
  border: 1px solid #f2d39f;
  background: #fff8ea;
  color: #7a4d00;
}
.backup-warning strong,
.backup-warning span { display: block; }
.backup-warning strong { font-size: .75rem; }
.backup-warning span { margin-top: 2px; font-size: .68rem; line-height: 1.4; }
.backup-option-list { display: grid; border: 1px solid var(--v3-border); }
.backup-option {
  width: 100%;
  min-height: 0;
  padding: 12px 14px;
  border-bottom: 1px solid var(--v3-border);
  background: #fff;
  align-items: flex-start;
}
.backup-option:last-child { border-bottom: 0; }
.backup-option > span { min-width: 0; }
.backup-option strong,
.backup-option small { display: block; }
.backup-option strong { color: var(--v3-text); font-size: .73rem; }
.backup-option small { margin-top: 2px; color: var(--v3-muted); font-size: .66rem; line-height: 1.4; }
.app-file-input { padding-top: 9px; padding-bottom: 9px; }

@media (max-width: 1199.98px) {
  .backup-grid { grid-template-columns: 1fr; }
}
@media (max-width: 767.98px) {
  .backup-confirm-grid { grid-template-columns: 1fr; }
  .app-page-icon { width: 46px; height: 46px; flex-basis: 46px; }
}

/* Product v3.2 — error pages ---------------------------------------------- */
.system-error-page { min-height: calc(100dvh - 62px); display: grid; align-items: center; }
.system-error-inner { display: grid; place-items: center; }
.system-error-card {
  width: min(620px, 100%);
  padding: 34px;
  border-top: 3px solid var(--v3-navy) !important;
}
.system-error-code {
  margin-bottom: 12px;
  color: #cbd5e1;
  font-size: clamp(3.8rem, 8vw, 6.5rem);
  line-height: .9;
  font-weight: 850;
  letter-spacing: -.07em;
}
.system-error-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }

/* ESC create structural rule moved out of page markup. */
.signature-pad-wrap { touch-action: none; }
.esc-create-page .esc-page-icon { background: #dcfce7; color: #15803d; }

/* Company contact rows are deliberately full-width; the original structural
   rule was lost during the v3 cleanup. */
.company-settings-page .company-contact-field { grid-column: 1 / -1; }
.company-settings-page .company-contact-field .app-input,
.company-settings-page #email,
.company-settings-page #phone { width: 100%; max-width: 100%; }

/* Header and action rows must never force the content column wider than the
   available application workspace. */
.app-page-header > *,
.app-title-row > * { min-width: 0; }
.app-page-title,
.app-card-title { overflow-wrap: anywhere; }
@media (max-width: 1199.98px) {
  .app-page-header {
    align-items: flex-start;
    flex-direction: column;
  }
  .app-page-actions {
    width: 100%;
    justify-content: flex-start;
  }
}
@media (max-width: 575.98px) {
  .app-page-actions { display: grid; grid-template-columns: 1fr; }
  .app-page-actions > .app-btn,
  .app-page-actions > form,
  .app-page-actions > form > .app-btn { width: 100%; }
}
.app-badge.is-success { border-color: #b9d9d1; background: #eaf8f4; color: #146c4c; }

/* =========================================================
   Product v3.3 — finishing pass
   Shared field chrome, information panels, compliance forms,
   and operational reporting.
   ========================================================= */

/* Authentication fields are one control. The icon and Show button sit inside
   the same outer border instead of appearing as separate boxes. */
.auth-input-wrap {
  display: grid !important;
  grid-template-columns: 42px minmax(0, 1fr) auto !important;
  min-height: 46px;
  overflow: hidden;
  border: 1px solid var(--v3-border-strong);
  background: #fff;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.auth-input-wrap:focus-within {
  border-color: #6c879f;
  box-shadow: 0 0 0 2px rgba(15,47,74,.08);
}
.auth-input-wrap .auth-input-icon {
  position: static !important;
  width: 42px !important;
  height: 44px !important;
  border: 0 !important;
  border-right: 1px solid var(--v3-border) !important;
  border-radius: 0 !important;
  background: #f8fafc !important;
  color: #718397;
}
.auth-input-wrap input {
  position: static !important;
  width: 100% !important;
  min-width: 0;
  height: 44px !important;
  padding: 0 12px !important;
  border: 0 !important;
  background: #fff !important;
  box-shadow: none !important;
}
.auth-input-wrap input:focus { box-shadow: none !important; }
.auth-input-wrap .auth-password-toggle {
  position: static !important;
  height: 44px !important;
  width: auto !important;
  min-width: 54px;
  padding: 0 12px;
  display: grid !important;
  place-items: center;
  border: 0 !important;
  border-left: 1px solid var(--v3-border) !important;
  border-radius: 0 !important;
  background: #f8fafc;
}

/* Information summaries are one finished panel, not a stack of rounded cards.
   Explicit child selectors also neutralise the old `.app-detail-list div` rule
   that was drawing lines under nested label/value divs. */
.app-detail-list {
  display: grid !important;
  gap: 0 !important;
  margin-top: 16px !important;
  overflow: hidden;
  border: 1px solid var(--v3-border) !important;
  background: #fff;
}
.app-detail-list > .app-detail-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: center;
  gap: 16px !important;
  min-height: 50px;
  padding: 11px 13px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--v3-border) !important;
  border-radius: 0 !important;
  background: #fff !important;
}
.app-detail-list > .app-detail-row:last-child { border-bottom: 0 !important; }
.app-detail-list .app-detail-label,
.app-detail-list .app-detail-value,
.app-detail-list .app-detail-row > div {
  display: block !important;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}
.app-detail-list .app-detail-label {
  color: var(--v3-muted) !important;
  font-size: .72rem !important;
  font-weight: 700 !important;
  line-height: 1.35;
}
.app-detail-list .app-detail-value {
  color: var(--v3-text) !important;
  font-size: .76rem !important;
  font-weight: 800 !important;
  line-height: 1.35;
  text-align: right;
  overflow-wrap: anywhere;
}

/* Every certificate workflow uses the same square page-icon construction.
   Colour identifies the record type; shape/layout does not change. */
.cert-page-icon,
.esc-page-icon,
.coc-page-icon,
.roi-page-icon,
.testing-page-icon,
.esve-page-icon,
.solar-page-icon,
.cov-page-icon,
.woef-page-icon {
  display: grid !important;
  width: 54px !important;
  height: 54px !important;
  flex: 0 0 54px !important;
  place-items: center !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-size: 1.25rem !important;
}
.woef-page-icon {
  border: 1px solid #b9d9d1 !important;
  background: #eaf8f4 !important;
  color: #0f766e !important;
}

/* COV standard selection and regulatory context. */
.cov-standard-panel {
  display: grid;
  grid-template-columns: minmax(260px, .75fr) minmax(0, 1.25fr);
  gap: 14px;
  margin-bottom: 18px;
  padding: 14px;
  border: 1px solid var(--v3-border);
  background: #f8fafc;
}
.cov-standard-panel .cov-regulation-note { margin: 0 !important; }

/* WoEF imported-installation gate. */
.woef-imported-panel {
  border: 1px solid var(--v3-border);
  background: #f8fafc;
}
.app-toggle-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  padding: 13px 14px;
  margin: 0;
  color: var(--v3-text);
}
.app-toggle-row + .app-toggle-row { border-top: 1px solid var(--v3-border); }
.app-toggle-row input { margin-top: 3px; }
.app-toggle-row strong,
.app-toggle-row small { display: block; }
.app-toggle-row strong { font-size: .75rem; }
.app-toggle-row small { margin-top: 2px; color: var(--v3-muted); font-size: .68rem; line-height: 1.4; }
.woef-imported-fields { display: grid; border-top: 1px solid var(--v3-border); }
.woef-imported-fields.is-hidden { display: none; }
.woef-imported-fields > .app-field { padding: 0 14px 14px; }

/* Appendix D checklist: dense enough for real inspection work, but still
   readable and consistent with the rest of the Product v3 tables. */
.woef-compliance-groups { display: grid; gap: 18px; }
.woef-compliance-group {
  min-width: 0;
  border: 1px solid var(--v3-border);
  background: #fff;
}
.woef-compliance-group-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--v3-border);
  background: #f8fafc;
}
.woef-compliance-group-head span,
.woef-compliance-group-head strong,
.woef-compliance-group-head small { display: block; }
.woef-compliance-group-head span { color: var(--v3-teal); font-size: .58rem; font-weight: 850; letter-spacing: .1em; }
.woef-compliance-group-head strong { margin-top: 1px; color: var(--v3-text); font-size: .78rem; }
.woef-compliance-group-head small { color: var(--v3-muted); font-size: .66rem; white-space: nowrap; }
.woef-compliance-table-wrap { width: 100%; overflow-x: auto; }
.woef-compliance-table {
  width: 100%;
  min-width: 980px;
  border-collapse: collapse;
  table-layout: fixed;
}
.woef-compliance-table th {
  padding: 9px 10px;
  border-right: 1px solid var(--v3-border);
  border-bottom: 1px solid var(--v3-border);
  background: #fff;
  color: #526274;
  font-size: .6rem;
  font-weight: 850;
  letter-spacing: .06em;
  text-align: left;
  text-transform: uppercase;
}
.woef-compliance-table td {
  padding: 10px;
  border-right: 1px solid #e8edf2;
  border-bottom: 1px solid #e8edf2;
  vertical-align: top;
  color: #334155;
  font-size: .69rem;
  line-height: 1.4;
}
.woef-compliance-table th:last-child,
.woef-compliance-table td:last-child { border-right: 0; }
.woef-compliance-table tbody tr:last-child td { border-bottom: 0; }
.woef-compliance-table .woef-ref { width: 72px; color: var(--v3-teal); font-weight: 850; }
.woef-compliance-table .woef-requirement { width: 34%; color: var(--v3-text); font-weight: 650; }
.woef-compliance-table .woef-method { width: 22%; color: var(--v3-muted); }
.woef-compliance-table .woef-method small { display: block; margin-top: 3px; font-size: .62rem; }
.woef-compliance-table select,
.woef-compliance-table input {
  width: 100%;
  min-width: 0;
  height: 36px;
  padding: 0 9px;
  border: 1px solid var(--v3-border-strong);
  background: #fff;
  color: var(--v3-text);
  font-size: .68rem;
}
.woef-check-result:has(option[value="pass"]:checked) { border-color: #8bc9b8; background: #f0faf7; color: #116b4e; }
.woef-check-result:has(option[value="fail"]:checked) { border-color: #e7aaa5; background: #fff4f3; color: #a52a21; }
.woef-check-result:has(option[value="na"]:checked) { background: #f8fafc; color: #526274; }
.woef-view-checklist-table { min-width: 900px; }
.woef-view-checklist-table td:nth-child(1) { width: 64px; white-space: nowrap; color: var(--v3-teal); font-weight: 800; }
.woef-view-checklist-table td:nth-child(2) { min-width: 280px; }
.woef-view-checklist-table small { display: block; margin-top: 2px; color: var(--v3-muted); }

/* Reports v3.3 — an operational page, not a collection of decorative cards. */
.reports-page-shell { max-width: 1560px !important; }
.reports-page-icon {
  display: grid;
  width: 54px;
  height: 54px;
  flex: 0 0 54px;
  place-items: center;
  border: 1px solid #b9d9d1;
  border-radius: 0 !important;
  background: #eaf8f4;
  color: var(--v3-teal);
  font-size: 1.25rem;
}
.reports-header { align-items: flex-end; }
.reports-header-actions { align-items: flex-end; }
.reports-period-form {
  display: grid;
  grid-template-columns: auto 150px auto;
  align-items: center;
  gap: 8px;
}
.reports-period-form label { color: var(--v3-muted); font-size: .68rem; font-weight: 800; }
.reports-period-form select {
  height: 40px;
  padding: 0 32px 0 10px;
  border: 1px solid var(--v3-border-strong);
  background-color: #fff;
  color: var(--v3-text);
  font-size: .72rem;
  font-weight: 700;
}
.reports-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 18px;
  border: 1px solid var(--v3-border);
  background: #fff;
}
.reports-kpi {
  display: grid;
  align-content: start;
  min-height: 112px;
  padding: 17px 18px;
  border-right: 1px solid var(--v3-border);
}
.reports-kpi:last-child { border-right: 0; }
.reports-kpi span { color: var(--v3-muted); font-size: .64rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.reports-kpi strong { margin-top: 5px; color: var(--v3-text); font-size: 2rem; line-height: 1; letter-spacing: -.04em; }
.reports-kpi small { margin-top: 8px; color: var(--v3-muted); font-size: .68rem; line-height: 1.35; }
.reports-kpi.is-attention { box-shadow: inset 0 3px 0 #d97706 !important; }
.reports-dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(360px, .75fr);
  gap: 18px;
  margin-bottom: 18px;
  align-items: stretch;
}
.reports-dashboard-grid > .app-card,
.reports-workflow-card { padding: 20px; }
.reports-head-stat { min-width: 86px; text-align: right; }
.reports-head-stat strong,
.reports-head-stat span { display: block; }
.reports-head-stat strong { color: var(--v3-text); font-size: 1.45rem; line-height: 1; }
.reports-head-stat span { margin-top: 3px; color: var(--v3-muted); font-size: .62rem; text-transform: uppercase; letter-spacing: .06em; }
.reports-chart {
  display: grid;
  grid-template-columns: repeat(12, minmax(32px, 1fr));
  gap: 10px;
  height: 230px;
  margin-top: 8px;
  padding: 12px 0 0;
  border-bottom: 1px solid var(--v3-border);
}

.reports-chart.is-months-1 { grid-template-columns: minmax(180px, 1fr); max-width: 260px; }
.reports-chart.is-months-3 { grid-template-columns: repeat(3, minmax(80px, 1fr)); }
.reports-chart.is-months-6 { grid-template-columns: repeat(6, minmax(60px, 1fr)); }
.reports-chart.is-months-12 { grid-template-columns: repeat(12, minmax(32px, 1fr)); }
.cov-legacy-scope-controls { display: grid; gap: 8px; margin-top: 10px; }
.cov-legacy-scope-controls .cov-check { background: #fff; }
.cov-assessment-level { margin: 16px 0 18px; padding: 14px; border: 1px solid var(--v3-border); background: #fff; }
.cov-assessment-level > small { display: block; margin-top: 8px; color: var(--v3-muted); font-size: .67rem; line-height: 1.4; }
.reports-chart-column {
  display: grid;
  grid-template-rows: 18px minmax(0, 1fr) 22px;
  gap: 5px;
  min-width: 0;
  text-align: center;
}
.reports-chart-value { color: var(--v3-muted); font-size: .62rem; font-weight: 750; }
.reports-chart-track {
  position: relative;
  display: flex;
  align-items: end;
  min-height: 150px;
  border-left: 1px solid #eef2f6;
  border-right: 1px solid #eef2f6;
  background: #fbfcfd;
}
.reports-chart-track > span { display: block; width: 100%; min-height: 2px; background: var(--v3-navy); }
.reports-chart-column small { overflow: hidden; color: var(--v3-muted); font-size: .59rem; white-space: nowrap; }
.reports-completion-strip {
  display: grid;
  grid-template-columns: auto minmax(120px, 1fr) auto;
  gap: 12px;
  align-items: center;
  margin-top: 16px;
}
.reports-completion-strip > div:first-child { display: flex; align-items: baseline; gap: 7px; white-space: nowrap; }
.reports-completion-strip span { color: var(--v3-muted); font-size: .65rem; font-weight: 700; }
.reports-completion-strip strong { font-size: .86rem; }
.reports-completion-strip small { color: var(--v3-muted); font-size: .64rem; white-space: nowrap; }
.reports-progress { height: 7px; background: #e9eef3; }
.reports-progress > span { display: block; height: 100%; background: var(--v3-teal); }
.reports-action-queue { display: grid; border: 1px solid var(--v3-border); }
.reports-action-queue > a {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  gap: 11px;
  align-items: center;
  min-height: 61px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--v3-border);
  color: inherit;
  text-decoration: none;
}
.reports-action-queue > a:last-child { border-bottom: 0; }
.reports-action-queue > a:hover { background: #f8fafc; }
.reports-action-count {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 1px solid var(--v3-border);
  background: #f8fafc;
  color: var(--v3-teal);
  font-size: .82rem;
  font-weight: 850;
}
.reports-action-count.is-warning { border-color: #f0d19a; background: #fff9ec; color: #9a5700; }
.reports-action-count.is-danger { border-color: #efc2be; background: #fff4f3; color: #a52a21; }
.reports-action-queue strong,
.reports-action-queue small { display: block; }
.reports-action-queue strong { color: var(--v3-text); font-size: .72rem; }
.reports-action-queue small { margin-top: 2px; color: var(--v3-muted); font-size: .64rem; line-height: 1.35; }
.reports-action-queue > a > i { color: var(--v3-soft); }
.reports-workflow-table th,
.reports-workflow-table td { white-space: nowrap; }
.reports-workflow-table td:first-child { min-width: 170px; white-space: normal; }
.reports-workflow-link { display: flex; align-items: center; gap: 9px; color: var(--v3-text); }
.reports-workflow-link strong { font-size: .72rem; }
.reports-workflow-link .sidebar-record-code { flex: 0 0 auto; }
.reports-rate { display: grid; grid-template-columns: 42px 88px; gap: 8px; align-items: center; }
.reports-rate strong { font-size: .7rem; text-align: right; }
.reports-rate > span { display: block; height: 6px; background: #e9eef3; }
.reports-rate > span > i { display: block; height: 100%; background: var(--v3-teal); }

@media (max-width: 1399.98px) {
  .reports-dashboard-grid { grid-template-columns: 1fr; }
  .reports-chart { grid-template-columns: repeat(12, minmax(26px, 1fr)); }
}
@media (max-width: 1199.98px) {
  .reports-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reports-kpi:nth-child(2) { border-right: 0; }
  .reports-kpi:nth-child(-n+2) { border-bottom: 1px solid var(--v3-border); }
  .reports-header-actions { width: 100%; }
  .cov-standard-panel { grid-template-columns: 1fr; }
}
@media (max-width: 767.98px) {
  .reports-kpi-grid { grid-template-columns: 1fr; }
  .reports-kpi { border-right: 0; border-bottom: 1px solid var(--v3-border); }
  .reports-kpi:last-child { border-bottom: 0; }
  .reports-period-form { grid-template-columns: 1fr; width: 100%; }
  .reports-period-form select,
  .reports-period-form .app-btn,
  .reports-header-actions > .app-btn { width: 100%; }
  .reports-chart { overflow-x: auto; grid-template-columns: repeat(12, minmax(44px, 1fr)); }
  .reports-completion-strip { grid-template-columns: 1fr; }
  .reports-completion-strip small { white-space: normal; }
  .app-detail-list > .app-detail-row { grid-template-columns: 1fr auto !important; }
}

/* Product v3.3.1 — reports hierarchy and final component polish. */
.reports-period-caption {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: -2px 0 12px;
  color: var(--v3-muted);
  font-size: .66rem;
}
.reports-period-caption i { color: var(--v3-teal); }
.reports-period-caption strong {
  margin-left: auto;
  color: var(--v3-text);
  font-size: .62rem;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.reports-kpi-grid-five { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.reports-kpi-grid-five .reports-kpi { min-height: 104px; }
.reports-queue-total {
  display: grid;
  min-width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid #f0d19a;
  background: #fff9ec;
  color: #9a5700;
  font-size: .92rem;
  font-weight: 850;
}
.reports-secondary-grid {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  gap: 18px;
  margin-bottom: 18px;
}
.reports-secondary-grid > .app-card { min-width: 0; padding: 20px; }
.reports-job-pipeline {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin-top: 14px;
  border: 1px solid var(--v3-border);
  background: #fff;
}
.reports-job-pipeline > a {
  display: grid;
  align-content: start;
  min-width: 0;
  min-height: 100px;
  padding: 14px;
  border-right: 1px solid var(--v3-border);
  color: inherit;
  text-decoration: none;
}
.reports-job-pipeline > a:last-child { border-right: 0; }
.reports-job-pipeline > a:hover { background: #f8fafc; }
.reports-job-pipeline > a.is-danger { box-shadow: inset 0 3px 0 #b9382e; }
.reports-job-pipeline span {
  color: var(--v3-muted);
  font-size: .58rem;
  font-weight: 850;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.reports-job-pipeline strong {
  margin-top: 7px;
  color: var(--v3-text);
  font-size: 1.45rem;
  line-height: 1;
}
.reports-job-pipeline small {
  margin-top: 7px;
  color: var(--v3-muted);
  font-size: .62rem;
  line-height: 1.3;
}
.reports-job-foot {
  display: flex;
  align-items: center;
  min-height: 38px;
  padding: 9px 12px;
  border: 1px solid var(--v3-border);
  border-top: 0;
  background: #f8fafc;
  color: var(--v3-muted);
  font-size: .64rem;
}
.reports-job-foot span { display: flex; align-items: center; gap: 7px; }
.reports-job-foot i { color: var(--v3-teal); }
.reports-team-list {
  margin-top: 14px;
  border: 1px solid var(--v3-border);
}
.reports-team-head,
.reports-team-row {
  display: grid;
  grid-template-columns: minmax(150px, 1.25fr) minmax(120px, .8fr) minmax(120px, .8fr);
  gap: 14px;
  align-items: center;
}
.reports-team-head {
  min-height: 36px;
  padding: 8px 12px;
  border-bottom: 1px solid var(--v3-border);
  background: #f8fafc;
  color: var(--v3-muted);
  font-size: .58rem;
  font-weight: 850;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.reports-team-row {
  min-height: 57px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--v3-border);
}
.reports-team-row:last-child { border-bottom: 0; }
.reports-team-row > div:first-child strong,
.reports-team-row > div:first-child small { display: block; }
.reports-team-row > div:first-child strong { color: var(--v3-text); font-size: .7rem; }
.reports-team-row > div:first-child small { margin-top: 2px; color: var(--v3-muted); font-size: .61rem; }
.reports-team-measure {
  display: grid;
  grid-template-columns: minmax(56px, 1fr) 28px;
  gap: 8px;
  align-items: center;
}
.reports-team-measure > span { display: block; height: 6px; background: #e9eef3; }
.reports-team-measure > span > i { display: block; height: 100%; background: var(--v3-navy); }
.reports-team-measure.is-completed > span > i { background: var(--v3-teal); }
.reports-team-measure > strong { color: var(--v3-text); font-size: .66rem; text-align: right; }
.reports-empty {
  display: grid;
  gap: 3px;
  min-height: 104px;
  align-content: center;
  margin-top: 14px;
  padding: 18px;
  border: 1px dashed var(--v3-border-strong);
  background: #fbfcfd;
}
.reports-empty strong { color: var(--v3-text); font-size: .74rem; }
.reports-empty span { color: var(--v3-muted); font-size: .65rem; line-height: 1.4; }
.reports-cell-attention { color: #9a5700 !important; font-weight: 850; background: #fff9ec !important; }
.reports-workflow-card { margin-bottom: 12px; }
.reports-workflow-table tbody tr:hover td { background: #fbfcfd; }
.app-text-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--v3-teal);
  font-size: .66rem;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
}
.app-text-link:hover { color: var(--v3-navy); }

/* Compliance issue panels use the same finished square information treatment. */
.woef-issue-requirements {
  border: 1px solid var(--v3-border);
  background: #fff;
}
.woef-issue-requirements > div {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  gap: 9px;
  align-items: start;
  padding: 10px 12px;
  border-bottom: 1px solid var(--v3-border);
}
.woef-issue-requirements > div:last-child { border-bottom: 0; }
.woef-issue-requirements i {
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border: 1px solid #b9d9d1;
  background: #eaf8f4;
  color: #0f766e;
  font-size: .68rem;
}
.woef-issue-requirements strong,
.woef-issue-requirements small { display: block; }
.woef-issue-requirements strong { color: var(--v3-text); font-size: .69rem; }
.woef-issue-requirements small { margin-top: 2px; color: var(--v3-muted); font-size: .62rem; line-height: 1.38; }

@media (max-width: 1499.98px) {
  .reports-kpi-grid-five { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .reports-kpi-grid-five .reports-kpi:nth-child(3) { border-right: 0; }
  .reports-kpi-grid-five .reports-kpi:nth-child(-n+3) { border-bottom: 1px solid var(--v3-border); }
  .reports-kpi-grid-five .reports-kpi:nth-child(4) { border-right: 1px solid var(--v3-border); }
  .reports-secondary-grid { grid-template-columns: 1fr; }
}
@media (max-width: 1199.98px) {
  .reports-kpi-grid-five { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reports-kpi-grid-five .reports-kpi { border-right: 1px solid var(--v3-border); border-bottom: 1px solid var(--v3-border); }
  .reports-kpi-grid-five .reports-kpi:nth-child(even) { border-right: 0; }
  .reports-kpi-grid-five .reports-kpi:last-child { border-bottom: 0; }
  .reports-job-pipeline { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .reports-job-pipeline > a { border-bottom: 1px solid var(--v3-border); }
  .reports-job-pipeline > a:nth-child(3) { border-right: 0; }
  .reports-job-pipeline > a:nth-child(4),
  .reports-job-pipeline > a:nth-child(5) { border-bottom: 0; }
}
@media (max-width: 767.98px) {
  .reports-period-caption { align-items: flex-start; flex-wrap: wrap; }
  .reports-period-caption strong { width: 100%; margin-left: 22px; }
  .reports-kpi-grid-five { grid-template-columns: 1fr; }
  .reports-kpi-grid-five .reports-kpi,
  .reports-kpi-grid-five .reports-kpi:nth-child(even),
  .reports-kpi-grid-five .reports-kpi:nth-child(3),
  .reports-kpi-grid-five .reports-kpi:nth-child(4) { border-right: 0; border-bottom: 1px solid var(--v3-border); }
  .reports-kpi-grid-five .reports-kpi:last-child { border-bottom: 0; }
  .reports-job-pipeline { grid-template-columns: 1fr 1fr; }
  .reports-job-pipeline > a,
  .reports-job-pipeline > a:nth-child(3),
  .reports-job-pipeline > a:nth-child(4),
  .reports-job-pipeline > a:nth-child(5) { border-right: 1px solid var(--v3-border); border-bottom: 1px solid var(--v3-border); }
  .reports-job-pipeline > a:nth-child(even) { border-right: 0; }
  .reports-job-pipeline > a:last-child { border-bottom: 0; }
  .reports-team-list { overflow-x: auto; }
  .reports-team-head,
  .reports-team-row { min-width: 620px; }
}

/* COV edition switching: Section 6 is a 2022-only assessment option. */
.cov-section-options .cov-check.is-hidden { display: none !important; }

/* =========================================================
   Product v3.4 — input alignment and sidebar menu refinement
   ========================================================= */

/* Make form controls behave consistently throughout the project. */
.app-form-grid,
.app-form-grid-2,
.product-form-grid,
.app-grid-2,
.app-grid-3 {
  align-items: start;
}
.app-form-grid > *,
.app-form-grid-2 > *,
.product-form-grid > *,
.app-grid-2 > *,
.app-grid-3 > * {
  min-width: 0;
}
.app-field {
  display: grid !important;
  align-content: start;
  gap: 7px;
  min-width: 0;
}
.app-field > input:not([type="checkbox"]):not([type="radio"]),
.app-field > select,
.app-field > textarea,
.app-field > .app-input,
.app-field .app-input {
  width: 100%;
  min-width: 0;
}
.app-field > input:not([type="checkbox"]):not([type="radio"]),
.app-field > select,
.app-field > .app-input,
.app-field .app-input,
.app-input-group {
  min-height: 44px;
}
.app-field > textarea,
textarea.app-input {
  min-height: 110px;
  resize: vertical;
}
.app-help-text,
.app-field .app-help-text,
.app-field .app-help,
.app-field small {
  display: block;
  margin-top: 0;
  color: var(--v3-muted);
  font-size: .7rem;
}
.app-input-group {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: stretch;
  overflow: hidden;
  border: 1px solid var(--v3-border-strong);
  background: #fff;
}
.app-input-group > .app-input,
.app-input-group > input,
.app-input-group > select {
  border: 0 !important;
  height: 42px;
  min-height: 42px;
}
.app-input-group > .app-input:focus,
.app-input-group > input:focus,
.app-input-group > select:focus {
  box-shadow: none !important;
}
.app-input-unit {
  min-width: 56px;
  height: 42px;
  border: 0;
  border-left: 1px solid var(--v3-border);
  background: #f8fafc;
}
.app-check-row {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px;
  min-height: 20px;
  line-height: 1.35;
}
.app-check-row input[type="checkbox"],
.app-check-row input[type="radio"] {
  margin: 0;
  flex: 0 0 auto;
}
.app-check-row > span,
.app-check-row > strong,
.app-check-row > div {
  min-width: 0;
}
.app-form-actions {
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}

/* Backup and admin settings benefit from slightly stronger field alignment. */
.admin-backups-page .backup-confirm-grid,
.email-settings-page .app-form-grid-2 {
  align-items: start;
}
.admin-backups-page .backup-confirm-grid .app-field,
.email-settings-page .app-form-grid-2 .app-field {
  min-width: 0;
}
.email-settings-page .app-check-row {
  margin-top: 2px;
}

/* Improve the sidebar record menu so it feels designed rather than stacked. */
.sidebar-create {
  margin-bottom: 14px;
}
.sidebar-create-menu {
  display: grid;
  gap: 8px;
  max-height: none;
  overflow: visible;
  margin-top: 8px;
  padding: 8px;
}
.sidebar-create-primary {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  padding: 10px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.04);
  color: #d9e4ed;
  text-decoration: none;
}
.sidebar-create-primary:hover {
  background: rgba(255,255,255,.08);
  color: #fff;
}
.sidebar-create-primary-icon {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.08);
  color: #fff;
}
.sidebar-create-primary-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.sidebar-create-primary-copy strong {
  color: #fff;
  font-size: .75rem;
  font-weight: 800;
}
.sidebar-create-primary-copy small {
  color: #a9bac9;
  font-size: .64rem;
  line-height: 1.45;
}
.sidebar-create-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.sidebar-create-card {
  display: grid;
  align-content: start;
  gap: 6px;
  min-height: 78px;
  padding: 10px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.025);
  color: #d9e4ed;
  text-decoration: none;
}
.sidebar-create-card:hover {
  background: rgba(255,255,255,.08);
  color: #fff;
}
.sidebar-create-card strong {
  display: block;
  color: #fff;
  font-size: .72rem;
  font-weight: 800;
  line-height: 1.2;
}
.sidebar-create-card small {
  display: block;
  color: #a9bac9;
  font-size: .62rem;
  line-height: 1.35;
}
.sidebar-create-link {
  display: contents;
}
.sidebar-record-code {
  min-width: 38px;
  width: fit-content;
  height: 22px;
}

@media (max-width: 767.98px) {
  .sidebar-create-grid {
    grid-template-columns: 1fr;
  }
  .app-input-group {
    grid-template-columns: minmax(0, 1fr) auto !important;
  }
}

/* =========================================================
   Product v3.5 — full visual consistency audit
   A final shared layer for forms, panels, navigation and legacy components.
   ========================================================= */

/* Core page rhythm ------------------------------------------------------- */
body.app-layout .app-page-inner,
body.app-layout .product-page,
body.app-layout .reports-page-shell {
  min-width: 0;
}
body.app-layout .app-page-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 17px;
  border-bottom: 1px solid var(--v3-border);
}
body.app-layout .app-title-row {
  display: flex;
  align-items: center;
  gap: 15px;
  min-width: 0;
}
body.app-layout .app-page-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
  flex-wrap: wrap;
}
body.app-layout .app-main-stack,
body.app-layout .app-side-stack {
  gap: 18px;
}
body.app-layout .app-side-panel {
  min-width: 0;
}

/* One card language everywhere ----------------------------------------- */
body.app-layout :is(
  .app-card,
  .app-panel,
  .app-soft-panel,
  .app-search-card,
  .app-filter-bar,
  .app-record-item,
  .app-user-row,
  .app-list-item,
  .app-action-tile,
  .app-mini-card,
  .app-jump-link,
  .app-check-item,
  .app-info-box,
  .app-company-mini,
  .app-user-mini,
  .app-logo-side-preview,
  .app-brand-note,
  .app-temp-password-box,
  .app-danger-box,
  .app-info-note,
  .app-logo-stage,
  .app-timeline-item,
  .app-empty,
  .app-empty-state,
  .app-search-empty,
  .cert-section,
  .cert-test-panel,
  .roi-choice-card,
  .coc-choice-card,
  .testing-result-card,
  .testing-circuit-card,
  .cov-regulation-note,
  .cov-linked-detail,
  .woef-declaration-box,
  .woef-failure-field
) {
  border-radius: 0 !important;
  box-shadow: none !important;
  transform: none !important;
}
body.app-layout .app-card {
  padding: 20px;
}
body.app-layout .app-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  min-width: 0;
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--v3-border);
}
body.app-layout .app-card-head > * { min-width: 0; }
body.app-layout .app-card-title {
  margin-top: 3px;
  margin-bottom: 4px;
  font-size: 1.08rem;
  line-height: 1.2;
  letter-spacing: -.025em;
}
body.app-layout .app-card-text {
  margin: 0;
  color: var(--v3-muted);
  font-size: .76rem;
  line-height: 1.48;
}
body.app-layout .app-card-kicker {
  font-size: .63rem;
  font-weight: 850;
  letter-spacing: .12em;
  text-transform: uppercase;
}

/* Inputs: same height, border and alignment throughout ------------------ */
body.app-layout .app-field {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  align-content: start;
  gap: 6px !important;
  min-width: 0;
  margin: 0;
}
body.app-layout .app-field-label,
body.app-layout .app-field > label,
body.app-layout label.form-label {
  display: block;
  min-height: 18px;
  margin: 0;
  color: #334155;
  font-size: .71rem;
  font-weight: 800;
  line-height: 18px;
}
body.app-layout :is(
  .app-input,
  .form-control,
  .form-select,
  input[type="text"],
  input[type="email"],
  input[type="password"],
  input[type="tel"],
  input[type="number"],
  input[type="date"],
  input[type="datetime-local"],
  input[type="time"],
  input[type="url"],
  select
) {
  width: 100%;
  min-width: 0;
  height: 44px;
  min-height: 44px;
  padding: 0 12px;
  border: 1px solid var(--v3-border-strong);
  border-radius: 0 !important;
  background: #fff;
  color: var(--v3-text);
  box-shadow: none !important;
  font-size: .8rem;
}
body.app-layout textarea,
body.app-layout textarea.app-input {
  width: 100%;
  min-width: 0;
  min-height: 108px;
  padding: 10px 12px;
  border: 1px solid var(--v3-border-strong);
  border-radius: 0 !important;
  background: #fff;
  color: var(--v3-text);
  box-shadow: none !important;
  font-size: .8rem;
  line-height: 1.45;
  resize: vertical;
}
body.app-layout :is(.app-input,.form-control,.form-select,input,select,textarea):focus {
  border-color: #58748e !important;
  outline: 0 !important;
  box-shadow: 0 0 0 2px rgba(15,47,74,.08) !important;
}
body.app-layout :is(input,textarea)::placeholder {
  color: #94a3b8;
  opacity: 1;
}
body.app-layout :is(input,select,textarea):disabled,
body.app-layout :is(input,select,textarea)[readonly] {
  background: #f5f7f9;
  color: #64748b;
}
body.app-layout .app-help-text,
body.app-layout .app-help,
body.app-layout .form-text,
body.app-layout .app-field > small {
  margin: 0;
  color: var(--v3-muted);
  font-size: .66rem;
  line-height: 1.4;
}
body.app-layout .app-form-grid,
body.app-layout .app-form-grid-2,
body.app-layout .app-form-grid-3,
body.app-layout .product-form-grid {
  align-items: start;
  gap: 16px;
}
body.app-layout .app-form-grid > *,
body.app-layout .app-form-grid-2 > *,
body.app-layout .app-form-grid-3 > *,
body.app-layout .product-form-grid > * {
  min-width: 0;
}

/* Composite controls must read as one field. */
body.app-layout .app-input-group,
body.app-layout .input-group,
body.app-layout .cert-input-with-unit {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) auto !important;
  align-items: stretch;
  width: 100%;
  min-width: 0;
  min-height: 44px;
  overflow: hidden;
  border: 1px solid var(--v3-border-strong);
  border-radius: 0 !important;
  background: #fff;
}
body.app-layout :is(.app-input-group,.input-group,.cert-input-with-unit) > :is(input,select,.app-input,.form-control,.form-select) {
  height: 42px !important;
  min-height: 42px !important;
  border: 0 !important;
  box-shadow: none !important;
}
body.app-layout :is(.app-input-unit,.input-group-text,.cert-input-unit) {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 52px;
  height: 42px;
  padding: 0 11px;
  border: 0 !important;
  border-left: 1px solid var(--v3-border) !important;
  border-radius: 0 !important;
  background: #f8fafc;
  color: var(--v3-muted);
  font-size: .66rem;
  font-weight: 800;
  white-space: nowrap;
}
body.app-layout :is(.app-input-group,.input-group,.cert-input-with-unit):focus-within {
  border-color: #58748e;
  box-shadow: 0 0 0 2px rgba(15,47,74,.08);
}

/* Checkboxes/radios stay aligned with their labels instead of floating. */
body.app-layout :is(.app-check-row,.app-check-item,.form-check,.cov-check,.roi-choice-card,.coc-choice-card) input[type="checkbox"],
body.app-layout :is(.app-check-row,.app-check-item,.form-check,.cov-check,.roi-choice-card,.coc-choice-card) input[type="radio"] {
  width: 16px;
  height: 16px;
  min-width: 16px;
  margin: 1px 0 0;
  flex: 0 0 16px;
  accent-color: var(--v3-navy);
}
body.app-layout .app-check-row {
  display: inline-flex !important;
  align-items: flex-start !important;
  gap: 8px;
  width: fit-content;
  max-width: 100%;
  min-height: 20px;
}

/* Filter/search/pagination language ------------------------------------- */
body.app-layout .app-filter-bar {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 16px;
  padding: 13px 14px;
  border: 1px solid var(--v3-border);
  background: #fff;
}
body.app-layout .app-filter-left,
body.app-layout .app-filter-right {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}
body.app-layout .app-segmented {
  display: inline-flex;
  gap: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--v3-border-strong);
  border-radius: 0 !important;
  background: #fff;
}
body.app-layout :is(.app-segment-btn,.app-tab-link,.app-az-btn,.app-filter-clear) {
  min-height: 36px;
  padding: 8px 11px;
  border: 0;
  border-right: 1px solid var(--v3-border);
  border-radius: 0 !important;
  background: #fff;
  color: var(--v3-muted);
  font-size: .7rem;
  font-weight: 800;
}
body.app-layout :is(.app-segment-btn,.app-tab-link,.app-az-btn,.app-filter-clear):last-child { border-right: 0; }
body.app-layout :is(.app-segment-btn,.app-tab-link,.app-az-btn).active,
body.app-layout :is(.app-segment-btn,.app-tab-link,.app-az-btn).is-active {
  background: var(--v3-navy);
  color: #fff;
}
body.app-layout .app-search-input input {
  height: 44px;
  min-height: 44px;
  border-radius: 0 !important;
}
body.app-layout .app-search-clear {
  border: 1px solid var(--v3-border);
  border-radius: 0 !important;
  background: #f8fafc;
}
body.app-layout .pagination {
  display: flex;
  gap: 0;
  margin: 0;
}
body.app-layout .page-item + .page-item { margin-left: -1px; }
body.app-layout .page-link {
  min-width: 36px;
  min-height: 36px;
  display: grid;
  place-items: center;
  padding: 7px 10px;
  border: 1px solid var(--v3-border-strong);
  border-radius: 0 !important;
  background: #fff;
  color: var(--v3-text);
  font-size: .7rem;
  font-weight: 750;
}
body.app-layout .page-item.active .page-link {
  background: var(--v3-navy);
  border-color: var(--v3-navy);
  color: #fff;
}
body.app-layout .page-item.disabled .page-link { background:#f8fafc; color:#a0aec0; }

/* Tables and list rows --------------------------------------------------- */
body.app-layout .app-table-wrap,
body.app-layout .table-responsive {
  border: 1px solid var(--v3-border);
  border-radius: 0 !important;
  background: #fff;
}
body.app-layout .app-table-wrap .table,
body.app-layout .table-responsive .table { border: 0; }
body.app-layout :is(.app-record-item,.app-user-row,.app-list-item) {
  padding: 13px 14px;
  border: 1px solid var(--v3-border);
  background: #fff;
}
body.app-layout :is(.app-record-item,.app-user-row,.app-list-item):hover {
  background: #f8fafc;
  border-color: var(--v3-border-strong);
}

/* Detail panels: one continuous table-like panel. */
body.app-layout .app-detail-list {
  display: grid !important;
  gap: 0 !important;
  overflow: hidden;
  border: 1px solid var(--v3-border);
  background: #fff;
}
body.app-layout .app-detail-list > .app-detail-row {
  display: grid !important;
  grid-template-columns: minmax(125px,.75fr) minmax(0,1.25fr) !important;
  align-items: start;
  gap: 14px !important;
  min-height: 46px;
  padding: 11px 12px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--v3-border) !important;
  border-radius: 0 !important;
  background: #fff !important;
}
body.app-layout .app-detail-list > .app-detail-row:last-child { border-bottom: 0 !important; }
body.app-layout .app-detail-label {
  color: var(--v3-muted);
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .035em;
}
body.app-layout .app-detail-value {
  color: var(--v3-text);
  font-size: .72rem;
  font-weight: 750;
  text-align: right;
  overflow-wrap: anywhere;
}
body.app-layout .app-detail-row-stack {
  grid-template-columns: 1fr !important;
}
body.app-layout .app-detail-row-stack .app-detail-value { text-align: left; }

/* Statuses/metrics should be restrained, never bubble-like. */
body.app-layout :is(.app-badge,.app-pill,.app-status-pill,.app-note-pill,.app-file-pill,.app-count-badge,.cert-soft-pill,.roi-soft-pill,.app-summary-pill) {
  border-radius: 0 !important;
  box-shadow: none !important;
}
body.app-layout .app-metric-card {
  min-height: 104px;
  padding: 16px 17px;
  border-radius: 0 !important;
  box-shadow: none !important;
  transform: none !important;
}
body.app-layout .app-metric-card:hover { transform: none !important; }
body.app-layout .app-metric-card::before {
  top: 0;
  bottom: 0;
  border-radius: 0 !important;
}

/* Buttons and alerts ---------------------------------------------------- */
body.app-layout :is(.app-btn,.btn) {
  min-height: 40px;
  border-radius: 0 !important;
  box-shadow: none !important;
  transform: none !important;
  white-space: nowrap;
}
body.app-layout .app-form-actions,
body.app-layout .app-card-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
  flex-wrap: wrap;
}
body.app-layout .app-form-actions-start { justify-content: flex-start; }
body.app-layout :is(.app-alert,.alert) {
  border-radius: 0 !important;
  box-shadow: none !important;
}
body.app-layout .btn-close {
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* Bootstrap/offcanvas remnants should look native to Product v3. */
body.app-layout .offcanvas {
  border-left: 1px solid var(--v3-border-strong) !important;
  border-radius: 0 !important;
  background: #fff;
  box-shadow: -18px 0 40px rgba(15,23,42,.10) !important;
}
body.app-layout .offcanvas-header {
  min-height: 62px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--v3-border);
}
body.app-layout .offcanvas-title { font-size: .95rem; font-weight: 850; }
body.app-layout .offcanvas-body { padding: 16px; }

/* Certificate sub-components ------------------------------------------- */
body.app-layout :is(
  .cert-section-icon,
  .roi-cert-section-icon,
  .testing-cert-section-icon,
  .app-empty-icon,
  .app-avatar,
  .app-avatar-lg,
  .app-logo-mark,
  .app-logo-placeholder,
  .backup-card-icon,
  .security-device-icon,
  .security-step > span
) {
  border-radius: 0 !important;
  box-shadow: none !important;
}
body.app-layout :is(.cert-section,.roi-cert-section,.testing-cert-section,.cov-cert-section) {
  overflow: hidden;
  border: 1px solid var(--v3-border);
  background: #fff;
}
body.app-layout :is(.cert-section-head,.roi-cert-section-head,.testing-cert-section-head) {
  padding: 14px 16px;
  border-bottom: 1px solid var(--v3-border);
  background: #f8fafc;
}
body.app-layout :is(.cert-section-body,.roi-cert-section-body,.testing-cert-section-body) {
  padding: 16px;
}

/* New-record flyout ----------------------------------------------------- */
@media (min-width: 992px) {
  .sidebar-create { position: relative; z-index: 130; }
  .sidebar-create-menu {
    position: absolute;
    top: 0;
    left: calc(100% + 12px);
    z-index: 180;
    width: 520px;
    max-width: calc(100vw - var(--sidebar-width) - 40px);
    max-height: min(640px, calc(100vh - 40px));
    overflow-y: auto;
    margin: 0;
    padding: 12px;
    border: 1px solid #2c4b65;
    background: #0a2238;
    box-shadow: 0 20px 50px rgba(3,15,28,.28);
  }
  .sidebar-create-menu-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 2px 2px 11px;
    border-bottom: 1px solid rgba(255,255,255,.12);
  }
  .sidebar-create-menu-head strong,
  .sidebar-create-menu-head small { display:block; }
  .sidebar-create-menu-head strong { color:#fff; font-size:.82rem; font-weight:850; }
  .sidebar-create-menu-head small { margin-top:2px; color:#9fb1c0; font-size:.63rem; }
  .sidebar-create-menu-head > span {
    padding: 3px 6px;
    border: 1px solid rgba(255,255,255,.18);
    color:#b9c8d4;
    font-size:.56rem;
    font-weight:850;
    letter-spacing:.08em;
  }
  .sidebar-create-primary { margin-top: 10px; }
  .sidebar-create-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .sidebar-create-card { min-height: 86px; }
}
.sidebar-create-card .sidebar-record-code,
.sidebar-create-primary .sidebar-record-code { margin-bottom: 0; }

/* Authentication stays aligned with the application language. */
.auth-alert,
.login-feature-card,
.login-security-note,
.login-kicker {
  border-radius: 0 !important;
  box-shadow: none !important;
}
.auth-submit:hover,
.auth-submit:focus { transform:none !important; box-shadow:none !important; }

/* Responsive rules ----------------------------------------------------- */
@media (max-width: 1399.98px) {
  body.app-layout .app-layout-grid:not(.keep-two-columns) {
    grid-template-columns: minmax(0,1fr) !important;
  }
  body.app-layout .app-side-panel,
  body.app-layout .app-side-stack {
    position: static !important;
    top: auto !important;
  }
}
@media (max-width: 991.98px) {
  .sidebar-create-menu {
    position: static;
    width: auto;
    max-width: none;
    max-height: 52vh;
    overflow-y: auto;
    margin-top: 8px;
    padding: 8px;
  }
  .sidebar-create-menu-head { display:none; }
  .sidebar-create-grid { grid-template-columns: 1fr 1fr; }
  body.app-layout .app-page-header { align-items:flex-start; flex-direction:column; }
  body.app-layout .app-page-actions { justify-content:flex-start; width:100%; }
}
@media (max-width: 767.98px) {
  body.app-layout .app-page { padding: 18px 14px 34px; }
  body.app-layout .app-title-row { align-items:flex-start; }
  body.app-layout .app-card { padding: 16px; }
  body.app-layout .app-card-head { margin-bottom:14px; padding-bottom:12px; }
  body.app-layout .app-form-grid,
  body.app-layout .app-form-grid-2,
  body.app-layout .app-form-grid-3,
  body.app-layout .product-form-grid { grid-template-columns:1fr !important; }
  body.app-layout .app-detail-list > .app-detail-row { grid-template-columns:1fr !important; gap:3px !important; }
  body.app-layout .app-detail-value { text-align:left; }
  body.app-layout .app-filter-bar,
  body.app-layout .app-filter-left,
  body.app-layout .app-filter-right { align-items:stretch; flex-direction:column; width:100%; }
  body.app-layout .app-segmented { width:100%; }
  body.app-layout :is(.app-segment-btn,.app-tab-link,.app-az-btn,.app-filter-clear) { flex:1; }
  body.app-layout .app-form-actions,
  body.app-layout .app-card-actions { align-items:stretch; flex-direction:column; }
  body.app-layout .app-form-actions .app-btn,
  body.app-layout .app-card-actions .app-btn { width:100%; }
  .sidebar-create-grid { grid-template-columns:1fr; }
}

/* Standalone shared certificate pages ----------------------------------- */
.public-share-page .public-share-shell { max-width: 900px; }
.public-share-page .public-share-header { padding-bottom:16px; border-bottom:1px solid var(--v3-border); }
.public-share-page .public-certificate-details {
  border-radius:0 !important;
  background:var(--v3-border);
}
.public-share-page .app-card { border-radius:0 !important; box-shadow:none !important; }
.public-share-page .brand-mark { border-radius:0 !important; box-shadow:none !important; }
.public-share-page .app-review-ready { border-radius:0 !important; }
.public-share-page .app-btn { border-radius:0 !important; box-shadow:none !important; }

/* Final certificate legacy flattening: these components were still carrying
   radius/shadow values from certs.css even though the surrounding page was flat. */
body.app-layout :is(
  .cert-sheet,.esc-cert-sheet,.coc-cert-sheet,.roi-cert-sheet,.testing-cert-sheet,
  .cert-logo-placeholder,.esc-logo-placeholder,.coc-logo-placeholder,.roi-logo-placeholder,.testing-logo-placeholder,
  .cert-notice,.esc-cert-notice,.coc-cert-notice,.roi-cert-notice,.testing-cert-notice,
  .cert-rendered-text,.esc-rendered-text,.coc-rendered-text,.roi-rendered-text,.testing-rendered-text,
  .cert-mini-stat,.esc-mini-stat,.coc-mini-stat,.roi-mini-stat,.testing-mini-stat,
  .cert-declaration-box,.esc-declaration-box,.coc-declaration-box,.roi-declaration-box,.testing-declaration-box,
  .cert-signature-wrap,.signature-wrap,.esc-signature-wrap,.coc-signature-wrap,.roi-signature-wrap,.testing-signature-wrap,
  .cert-sig-box,.esc-sig-box,.coc-sig-box,.roi-sig-box,.testing-sig-box,
  .cert-result-card,.roi-result-card,.testing-result-card,
  .roi-measurement-card,.roi-measurement-value,.roi-phase-choice-content,.roi-phase-choice-icon,
  .roi-inspector-profile,.roi-inspector-avatar,.roi-inspector-status,.roi-inspector-detail,.roi-inspector-detail-icon,
  .roi-outcome-choice-content,.roi-outcome-choice-icon,.roi-compact-checks,.roi-compact-check,
  .testing-value-tile,.testing-value-tile small,
  .woef-test-sheet-wrap,.woef-test-sheet input,.woef-test-sheet select,.woef-outcome > span
) {
  border-radius:0 !important;
  box-shadow:none !important;
  transform:none !important;
}

/* =========================================================
   Product v3.6 — customer-linked certificate locations + file uploads
   ========================================================= */
.app-certificate-location {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 12px 16px;
  padding: 14px;
  border: 1px solid var(--v3-border);
  background: #f8fafc;
}
.app-certificate-location > .app-field {
  margin: 0;
}
.app-certificate-location-override {
  min-height: 44px;
  padding: 0 12px;
  border: 1px solid var(--v3-border-strong);
  background: #fff;
  color: #334155;
  font-size: .72rem;
  font-weight: 750;
  white-space: nowrap;
}
.app-certificate-location-status {
  grid-column: 1 / -1;
  padding-top: 9px;
  border-top: 1px solid var(--v3-border);
  color: var(--v3-muted);
  font-size: .69rem;
  font-weight: 650;
}
.app-certificate-location select:disabled {
  cursor: not-allowed;
  background: #eef2f6;
  color: #7b8a9c;
}

/* Native file inputs previously inherited the large generic input sizing.
   Keep them compact and make the Browse button part of the same control. */
input[type="file"].app-input,
.app-file-input {
  width: 100%;
  height: 44px !important;
  min-height: 44px !important;
  padding: 0 !important;
  overflow: hidden;
  border: 1px solid var(--v3-border-strong) !important;
  background: #fff !important;
  color: #334155;
  font-size: .76rem !important;
  line-height: 42px;
}
input[type="file"].app-input::file-selector-button,
.app-file-input::file-selector-button {
  height: 42px;
  margin: 0 12px 0 0;
  padding: 0 14px;
  border: 0;
  border-right: 1px solid var(--v3-border);
  border-radius: 0;
  background: #f8fafc;
  color: var(--v3-navy);
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}
input[type="file"].app-input:hover::file-selector-button,
.app-file-input:hover::file-selector-button {
  background: #eef3f7;
}
.product-file-upload {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 8px 10px;
}
.product-file-upload input[type="file"] {
  padding: 0 !important;
}
.product-file-upload .app-btn {
  min-height: 44px;
}
.product-file-upload small {
  margin-top: 0;
}

@media (max-width: 900px) {
  .app-certificate-location {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .app-certificate-location-status {
    grid-column: auto;
  }
  .app-certificate-location-override {
    white-space: normal;
  }
}

/* =========================================================
   Product v3.7 — unified certificate view toolbars
   ========================================================= */
:is(
  .esc-view-page,
  .coc-view-page,
  .roi-view-page,
  .cov-view-page,
  .woef-view-page,
  .solar-view-page,
  .solar-commissioning-view-page,
  .testing-view-page,
  .esve-view-page
) > .app-page-inner > .app-page-header {
  align-items: stretch;
  flex-direction: column;
  gap: 0;
}
:is(
  .esc-view-page,
  .coc-view-page,
  .roi-view-page,
  .cov-view-page,
  .woef-view-page,
  .solar-view-page,
  .solar-commissioning-view-page,
  .testing-view-page,
  .esve-view-page
) > .app-page-inner > .app-page-header > .app-title-row {
  width: 100%;
}
:is(
  .esc-view-page,
  .coc-view-page,
  .roi-view-page,
  .cov-view-page,
  .woef-view-page,
  .solar-view-page,
  .solar-commissioning-view-page,
  .testing-view-page,
  .esve-view-page
) > .app-page-inner > .app-page-header > .app-page-actions {
  width: 100%;
  justify-content: flex-start;
  margin-top: 15px;
  padding-top: 14px;
  border-top: 1px solid var(--v3-border);
}
.app-page-actions > form.app-duplicate-form {
  display: inline-flex;
  margin: 0;
}
.app-page-actions > form.app-duplicate-form > .app-btn {
  width: auto;
}
.app-page-actions > form:last-child .app-btn-danger {
  margin-left: 2px;
}
@media (max-width: 767.98px) {
  .app-page-actions > form.app-duplicate-form,
  .app-page-actions > form.app-duplicate-form > .app-btn {
    width: 100%;
  }
}

/* Product v3.8 — reminder workspace */
.sidebar-nav-count { min-width:24px; height:22px; margin-left:auto; padding:0 6px; display:inline-grid; place-items:center; border:1px solid rgba(255,255,255,.2); background:#b42318; color:#fff; font-size:.7rem; font-weight:800; line-height:1; }
.reminders-metrics { grid-template-columns:repeat(5,minmax(0,1fr)); }
.reminders-metrics .is-attention { border-top-color:#b42318; }
.reminders-metrics .is-attention strong { color:#b42318; }
.reminders-toolbar { align-items:end; }
.reminders-filter { display:flex; align-items:center; gap:8px; margin-left:auto; }
.reminders-filter label { color:var(--v3-muted); font-size:.76rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.reminders-filter .app-input { min-width:190px; }
.reminders-list { overflow:hidden; }
.reminder-row { display:grid; grid-template-columns:34px minmax(0,1fr) auto; gap:14px; align-items:start; padding:18px 20px; border-bottom:1px solid var(--v3-border); }
.reminder-row:last-child { border-bottom:0; }
.reminder-row.is-overdue { box-shadow:inset 3px 0 0 #b42318; }
.reminder-row.is-complete { background:#f8fafc; color:var(--v3-muted); }
.reminder-state { padding-top:2px; color:var(--v3-blue); font-size:1.15rem; }
.reminder-row.is-overdue .reminder-state { color:#b42318; }
.reminder-row.is-complete .reminder-state { color:#37865b; }
.reminder-title-row { display:flex; align-items:center; gap:10px; }
.reminder-title-row h2 { margin:0; color:var(--v3-navy); font-size:.98rem; font-weight:800; }
.reminder-main p { margin:7px 0 0; color:var(--v3-muted); font-size:.86rem; }
.reminder-meta { display:flex; flex-wrap:wrap; gap:8px 16px; margin-top:9px; color:var(--v3-muted); font-size:.76rem; }
.reminder-meta span,.reminder-meta a { display:inline-flex; gap:6px; align-items:center; }
.reminder-actions { display:flex; gap:7px; align-items:center; }
.reminder-actions form { margin:0; }
.dashboard-workflow-start .is-primary { border-left:3px solid var(--v3-blue); }
.dashboard-standalone-records { margin-top:12px; border-top:1px solid var(--v3-border); padding-top:12px; }
.dashboard-standalone-records > summary,.sidebar-standalone-create > summary { color:var(--v3-navy); font-size:.8rem; font-weight:800; cursor:pointer; }
.dashboard-standalone-records > p,.sidebar-standalone-create > small { display:block; margin:5px 0 10px; color:var(--v3-muted); font-size:.74rem; }
.sidebar-standalone-create { padding:10px 12px 12px; border-top:1px solid rgba(255,255,255,.12); }
.sidebar-standalone-create > summary { color:#fff; }
.security-recovery-codes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:12px; }
.security-recovery-codes code { padding:9px 10px; border:1px solid #d4a72c; background:#fff; color:var(--v3-navy); font-size:.86rem; font-weight:800; letter-spacing:.05em; text-align:center; }
.product-job-readiness { margin-bottom:16px; }
.product-job-readiness .product-panel-head strong { color:var(--v3-navy); font-size:1.1rem; }
.product-job-readiness-bar { height:6px; overflow:hidden; background:#e6ebef; }
.product-job-readiness-bar span { display:block; height:100%; background:#37865b; }
.product-job-readiness-items { display:flex; flex-wrap:wrap; gap:9px 18px; padding:13px 16px 15px; color:var(--v3-muted); font-size:.78rem; }
.product-job-readiness-items span { display:inline-flex; align-items:center; gap:6px; }
.product-job-readiness-items .is-complete { color:#28734a; font-weight:700; }
@media (max-width:600px) { .security-recovery-codes { grid-template-columns:1fr; } }
@media (max-width:900px) {
  .reminders-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .reminders-toolbar,.reminders-filter { align-items:stretch; flex-direction:column; margin-left:0; }
  .reminder-row { grid-template-columns:28px minmax(0,1fr); }
  .reminder-actions { grid-column:2; flex-wrap:wrap; }
}

/* =========================================================
   Product v4 — editorial compliance workspace
   A bright, spacious product layer for the application UI. Certificate paper
   layouts remain independently controlled by certs.css and pdf-export.css.
   ========================================================= */
:root {
  --v4-font:"Onest","Avenir Next",Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --v4-canvas:#f6faff;--v4-surface:#fff;--v4-ink:#05142d;--v4-copy:#263851;--v4-muted:#5f7087;
  --v4-line:#dfe7f0;--v4-line-strong:#c9d5e2;--v4-mint:#e7f8f2;--v4-mint-strong:#c9f0e2;
  --v4-green:#087f62;--v4-navy:#07162f;--v4-navy-hover:#102544;--v4-radius-sm:8px;
  --v4-radius-md:12px;--v4-radius-lg:18px;--v4-shadow:0 16px 38px rgba(19,38,66,.055);
  --sidebar-width:264px;--app-bg:var(--v4-canvas);--app-surface:var(--v4-surface);--app-text:var(--v4-ink);
  --app-muted:var(--v4-muted);--app-border:var(--v4-line);--app-border-strong:var(--v4-line-strong);
  --app-navy:var(--v4-navy);--app-radius-sm:var(--v4-radius-sm);--app-radius-md:var(--v4-radius-md);
  --app-radius-lg:var(--v4-radius-lg);--app-radius-xl:var(--v4-radius-lg);--app-radius-xxl:22px;
  --app-shadow:var(--v4-shadow);--app-shadow-soft:0 8px 24px rgba(19,38,66,.045);
  --v3-bg:var(--v4-canvas);--v3-surface:var(--v4-surface);--v3-text:var(--v4-ink);--v3-muted:var(--v4-muted);
  --v3-soft:#8a98aa;--v3-border:var(--v4-line);--v3-border-strong:var(--v4-line-strong);
  --v3-navy:var(--v4-navy);--v3-navy-dark:#030d20;--v3-teal:var(--v4-green);--app-font:var(--v4-font);
}

html,body.app-layout{background:var(--v4-canvas);color:var(--v4-ink)}
body.app-layout{font-family:var(--v4-font);font-size:14px;line-height:1.55}
body.app-layout .app-shell,body.app-layout .app-main{background:var(--v4-canvas)}

/* One typography system across every page and every certificate form. */
body.app-layout :is(button,input,select,textarea,optgroup,option){font-family:var(--v4-font)}
body.app-layout input::file-selector-button{font-family:var(--v4-font);font-weight:650}
body.app-layout :is(.app-card-title,.app-section-title,.checklist-card-title,.checklist-card-head h1,.checklist-card-head h2){font-weight:650}
body.app-layout :is(.app-card-kicker,.app-workflow-eyebrow){font-weight:700}
body.app-layout :is(.app-workflow-title,.app-workflow-section-nav button){font-weight:650}
body.app-layout :is(.app-field-label,.app-field>label,label.form-label){font-weight:650}
body.app-layout :is(.cert-choice-label,.coc-choice-label,.roi-choice-label,.testing-choice-label){font-weight:600}
body.app-layout :is(.app-check-row,.app-check-item,.form-check,.cov-check){font-weight:600}

/* Navigation shell */
body.app-layout .app-sidebar{width:var(--sidebar-width);padding:10px;border-right:1px solid var(--v4-line);background:rgba(255,255,255,.96);box-shadow:none;color:var(--v4-ink)}
body.app-layout .brand-block{padding:10px 8px 18px;border-bottom:1px solid var(--v4-line)}
body.app-layout .brand-link{gap:12px}
body.app-layout .brand-mark{width:40px;height:40px;border:0;border-radius:11px;background:var(--v4-navy);box-shadow:none;color:#fff}
body.app-layout .brand-title{color:var(--v4-ink);font-size:.98rem;font-weight:750;letter-spacing:-.025em}
body.app-layout .brand-subtitle{color:var(--v4-muted);font-size:.69rem;font-weight:500}
body.app-layout .sidebar-create{margin:14px 4px 8px}
body.app-layout .sidebar-create>summary{min-height:44px;padding:8px 10px;border:1px solid var(--v4-navy);border-radius:10px;background:var(--v4-navy);color:#fff;box-shadow:none;font-weight:650}
body.app-layout .sidebar-create>summary:hover{background:var(--v4-navy-hover)}
body.app-layout .sidebar-create-icon{border-radius:7px;background:rgba(255,255,255,.13);color:#fff}
body.app-layout .sidebar-create-menu{padding:7px;border:1px solid var(--v4-line);border-radius:12px;background:#fff;box-shadow:0 20px 48px rgba(10,27,51,.14);color:var(--v4-ink)}
body.app-layout .sidebar-create-menu-head,body.app-layout .sidebar-standalone-create{border-color:var(--v4-line)}
body.app-layout .sidebar-create-menu-head strong,body.app-layout .sidebar-standalone-create>summary{color:var(--v4-ink)}
body.app-layout .sidebar-create-menu-head small,body.app-layout .sidebar-standalone-create>small{color:var(--v4-muted)}
body.app-layout .sidebar-create-menu-head>span{border-color:var(--v4-line-strong);border-radius:6px;background:#f1f5f9;color:#52647a}
body.app-layout .sidebar-standalone-create{border-top:1px solid var(--v4-line)}
body.app-layout .sidebar-create-primary{border:1px solid var(--v4-mint-strong);border-radius:9px;background:var(--v4-mint);color:var(--v4-ink)}
body.app-layout .sidebar-create-primary:hover{border-color:#a9e3cf;background:#dff5ed;color:var(--v4-ink)}
body.app-layout .sidebar-create-primary-icon{border-color:var(--v4-green);background:var(--v4-green);color:#fff}
body.app-layout .sidebar-create-primary-copy strong{color:var(--v4-ink)}
body.app-layout .sidebar-create-primary-copy small{color:#52647a}
body.app-layout .sidebar-create-card,body.app-layout .sidebar-create-link{border-color:var(--v4-line);border-radius:8px;background:#fff;color:var(--v4-copy)}
body.app-layout .sidebar-create-card strong{color:var(--v4-ink)}
body.app-layout .sidebar-create-card small{color:#52647a}
body.app-layout .sidebar-create-card:hover,body.app-layout .sidebar-create-link:hover{border-color:var(--v4-line-strong);background:#f2f7fb;color:var(--v4-ink)}
body.app-layout .sidebar-create-primary:focus-visible,body.app-layout .sidebar-create-card:focus-visible{outline:3px solid rgba(14,116,144,.22);outline-offset:2px}
body.app-layout .sidebar-nav{gap:16px;padding:10px 2px 20px}
body.app-layout .sidebar-heading,body.app-layout .sidebar-disclosure>summary{margin:0 10px 4px;padding:6px 0;border-radius:0;color:var(--v4-muted);font-size:.64rem;font-weight:700;letter-spacing:.12em}
body.app-layout .sidebar-link{min-height:40px;padding:8px 10px;border:0;border-radius:9px;color:#536176;font-size:.82rem;font-weight:600}
body.app-layout .sidebar-link:hover{background:#f1f6fb;color:var(--v4-ink)}
body.app-layout .sidebar-link.active{border:0;background:var(--v4-mint);box-shadow:inset 0 0 0 1px var(--v4-mint-strong);color:var(--v4-ink)}
body.app-layout .sidebar-icon{width:26px;height:26px;border-radius:7px;background:transparent!important;color:#718096!important}
body.app-layout .sidebar-link.active .sidebar-icon{color:var(--v4-green)!important}
body.app-layout .sidebar-footer{margin-top:auto;padding:12px 4px 2px;border-top:1px solid var(--v4-line)}
body.app-layout .signed-in-user{padding:8px}
body.app-layout .signed-in-avatar,body.app-layout .user-avatar{border-radius:9px;background:var(--v4-mint);color:var(--v4-green)}
body.app-layout .signed-in-meta strong{color:var(--v4-ink)}
body.app-layout .signed-in-meta span{color:var(--v4-muted)}
body.app-layout .sidebar-footer-actions a{border:1px solid var(--v4-line);border-radius:8px;background:#fff;color:var(--v4-muted)}
body.app-layout .sidebar-footer-actions a:hover{background:#f4f8fb;color:var(--v4-ink)}
body.app-layout .sidebar-nav-count{border:0;border-radius:999px}

/* Top bar and page introductions */
body.app-layout .app-main{margin-left:var(--sidebar-width)}
body.app-layout .app-topbar{min-height:72px;padding:11px 32px;border-bottom:1px solid var(--v4-line);background:rgba(255,255,255,.92);box-shadow:none;backdrop-filter:blur(14px)}
body.app-layout .topbar-title h2{color:var(--v4-ink);font-size:.95rem;font-weight:700}
body.app-layout .topbar-title p{color:var(--v4-muted);font-size:.7rem}
body.app-layout .topbar-user{border-left-color:var(--v4-line)}
body.app-layout .app-page{padding:38px 38px 64px}
body.app-layout .app-page-inner{max-width:1480px}
body.app-layout .app-page-header{align-items:flex-end;gap:26px;margin-bottom:28px}
body.app-layout .product-header{padding-bottom:0;border-bottom:0}
body.app-layout .app-page-kicker,body.app-layout .product-eyebrow{color:var(--v4-green);font-size:.66rem;font-weight:700;letter-spacing:.13em}
body.app-layout .app-page-title{max-width:900px;margin:5px 0 7px;color:var(--v4-ink);font-size:clamp(2rem,3vw,2.8rem);font-weight:650;letter-spacing:-.048em;line-height:1.07}
body.app-layout .app-page-subtitle{max-width:760px;color:var(--v4-muted);font-size:.92rem;line-height:1.6}

/* Buttons and inputs */
body.app-layout .app-btn,body.app-layout .btn,body.app-layout .auth-submit{border-radius:9px!important;box-shadow:none!important;font-weight:650}
body.app-layout .app-btn{min-height:42px;padding:9px 15px}
body.app-layout .app-btn-primary{border-color:var(--v4-navy);background:var(--v4-navy);color:#fff}
body.app-layout .app-btn-primary:hover{border-color:var(--v4-navy-hover);background:var(--v4-navy-hover)}
body.app-layout .app-btn-secondary{border-color:var(--v4-line-strong);background:#fff;color:var(--v4-ink)}
body.app-layout .app-btn-secondary:hover{border-color:#9eacbc;background:#f8fbfd}
body.app-layout .app-btn-sm{min-height:34px;border-radius:8px!important}
body.app-layout .product-icon-button{border-radius:8px}
body.app-layout :is(.app-input,.form-control,.form-select,input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],input[type=date],input[type=datetime-local],textarea,select){border-color:var(--v4-line-strong);border-radius:9px!important;background:#fff;box-shadow:none!important}
body.app-layout :is(.app-input,.form-control,.form-select,input,textarea,select):focus{border-color:#7892ad!important;box-shadow:0 0 0 3px rgba(14,116,144,.09)!important}
body.app-layout :is(input,textarea)::placeholder{color:#66768b;opacity:1}
body.app-layout .app-field-label,body.app-layout label.form-label{color:#34455c;font-size:.72rem;font-weight:650}
body.app-layout .app-help,body.app-layout .form-text{color:var(--v4-muted)}

/* Cards and panels */
body.app-layout :is(.app-card,.app-panel,.cert-card,.certificate-card,.form-card,.content-card,.dashboard-card,.metric-card,.app-metric-card,.app-stat-card,.product-panel,.product-list-card,.product-form-card){border:1px solid var(--v4-line);border-radius:var(--v4-radius-lg)!important;background:#fff;box-shadow:var(--v4-shadow)!important}
body.app-layout .product-panel{padding:20px}
body.app-layout .product-panel-head{margin:-20px -20px 18px;padding:17px 20px;border-bottom-color:var(--v4-line)}
body.app-layout .product-panel-head h2{color:var(--v4-ink);font-size:1rem;font-weight:700}
body.app-layout .product-panel-head>a{color:var(--v4-green)}
body.app-layout .product-count{border-color:var(--v4-line);border-radius:7px;background:#f7fafc}
body.app-layout .product-metric-row,body.app-layout .product-job-summary{overflow:hidden;border:1px solid var(--v4-line);border-radius:var(--v4-radius-lg);background:#fff;box-shadow:var(--v4-shadow)}
body.app-layout .product-metric-row>a{min-height:118px;padding:20px;border-right-color:var(--v4-line)}
body.app-layout .product-metric-row>a:hover{background:#f8fbfd}
body.app-layout .product-metric-row span{color:var(--v4-muted);font-weight:650}
body.app-layout .product-metric-row strong{color:var(--v4-ink);font-size:2.15rem;font-weight:650}
body.app-layout .product-metric-row small{color:var(--v4-muted)}
body.app-layout .product-form-card{padding:24px}
body.app-layout .product-form-actions{margin:26px -24px -24px;padding:16px 24px;border-top-color:var(--v4-line);border-radius:0 0 17px 17px;background:#f8fbfd}
body.app-layout .product-check-grid{overflow:hidden;border-color:var(--v4-line);border-radius:12px}
body.app-layout .product-check-grid label{border-color:var(--v4-line)}
body.app-layout .product-check-grid label:hover{background:var(--v4-mint)}

/* Lists, tables and search */
body.app-layout .product-list-card{overflow:hidden}
body.app-layout .table thead th,body.app-layout .app-table thead th,body.app-layout .product-table thead th{padding:12px 16px;border-color:var(--v4-line);background:#f4f8fb;color:var(--v4-muted);font-size:.63rem;font-weight:700;letter-spacing:.1em}
body.app-layout .table tbody td,body.app-layout .app-table tbody td,body.app-layout .product-table tbody td{padding:15px 16px;border-color:#e9eef4;color:var(--v4-copy);font-size:.79rem}
body.app-layout .table tbody tr:hover,body.app-layout .product-table tbody tr:hover{background:#f8fbfd}
body.app-layout .product-primary-link{color:var(--v4-ink);font-weight:700}
body.app-layout .product-primary-link:hover{color:var(--v4-green)}
body.app-layout .product-status{min-height:25px;padding:3px 8px;border-radius:999px}
body.app-layout .product-stack-list>a,body.app-layout .product-certificate-row,body.app-layout .dashboard-quick-records>a{border-color:var(--v4-line)}
body.app-layout .product-stack-list>a:hover,body.app-layout .product-certificate-row:hover,body.app-layout .dashboard-quick-records>a:hover{background:#f7fbfd}
body.app-layout .product-search,body.app-layout .dashboard-global-search{min-height:48px;overflow:hidden;border:1px solid var(--v4-line-strong);border-radius:12px;background:#fff;box-shadow:0 8px 22px rgba(19,38,66,.035)}
body.app-layout .dashboard-global-search button{border-left-color:var(--v4-line);background:#fff;color:var(--v4-ink);font-weight:650}
body.app-layout .dashboard-global-search button:hover{background:var(--v4-mint)}
body.app-layout .product-tabs{overflow:hidden;border-color:var(--v4-line-strong);border-radius:10px}
body.app-layout .product-tabs a{border-color:var(--v4-line)}
body.app-layout .product-tabs a.is-active{background:var(--v4-navy)}
body.app-layout .alert{border-radius:10px}
body.app-layout .modal-content,body.app-layout .app-review-dialog{border-radius:18px}

/* Balanced type hierarchy. The legacy UI made nearly every element 800–950,
   which caused Avenir/Onest to render the whole product in a display-bold cut. */
body.app-layout .app-page :where(*:not([data-pdf-root="1"],[data-pdf-root="1"] *)){font-weight:400}
body.app-layout .app-page :is(h1,h2,h3,h4,h5,h6,.app-page-title,.app-card-title,.app-section-title,.product-panel-head h2,.checklist-card-title,.checklist-card-head h1,.checklist-card-head h2,.app-empty-title){font-weight:600}
body.app-layout .app-page :is(strong,b,.app-record-title,.app-user-name,.app-list-title a,.product-primary-link,.cert-link,.testing-link){font-weight:600}
body.app-layout .app-page :is(.app-page-kicker,.app-kicker,.app-card-kicker,.product-eyebrow,.app-workflow-eyebrow,.app-metric-label){font-weight:600}
body.app-layout .app-page :is(.app-btn,.btn,button,.app-segment-btn,.app-tab-link,.app-az-btn,.app-filter-clear,.app-search-clear,.app-workflow-title,.app-field-label,.app-field>label,label.form-label,th,.table thead th,.app-table thead th,.product-table thead th,.cert-soft-table-head,.esc-soft-table-head,.coc-soft-table-head,.roi-soft-table-head,.testing-soft-table-head){font-weight:600}
body.app-layout .app-page :is(.app-badge,.app-pill,.app-status-pill,.app-note-pill,.app-file-pill,.app-count-badge,.product-status,.cert-soft-pill,.roi-soft-pill,.app-summary-pill){font-weight:600}
body.app-layout .app-page :is(.app-page-subtitle,.app-card-text,.app-metric-help,.app-list-sub,.app-record-meta,.app-record-sub,.app-user-sub,.app-help,.app-help-text,.form-text,.cert-soft-cell,.esc-soft-cell,.coc-soft-cell,.roi-soft-cell,.testing-soft-cell){font-weight:400}
body.app-layout .app-page :is(input,select,textarea,optgroup,option){font-weight:400}
body.app-layout .app-page :is(.app-metric-value,.product-metric-row strong,.app-mini-value,.reports-type-total){font-weight:600}
body.app-layout .app-page :is(.cert-choice-label,.coc-choice-label,.roi-choice-label,.testing-choice-label,.app-check-row,.app-check-item,.form-check,.cov-check){font-weight:500}
body.app-layout :is(.topbar-title h2,.topbar-user strong,.signed-in-meta strong,.sidebar-create-primary-copy strong,.sidebar-create-card strong){font-weight:600}
body.app-layout :is(.topbar-title p,.topbar-user span,.signed-in-meta span,.sidebar-create-primary-copy small,.sidebar-create-card small){font-weight:400}

/* Product v4.1 — site-wide spacing rhythm -------------------------------
   Pages previously relied on unrelated component margins, which allowed two
   cards to touch on one route and sit far apart on another. The page shell is
   now the single owner of vertical spacing; continuous controls remain
   intentionally gapless inside their own components. */
body.app-layout {
  --v4-space-1:4px;
  --v4-space-2:8px;
  --v4-space-3:12px;
  --v4-space-4:16px;
  --v4-space-5:20px;
  --v4-space-6:28px;
  --v4-page-gap:var(--v4-space-5);
}
body.app-layout .app-page-inner {
  display:grid;
  align-content:start;
  gap:var(--v4-page-gap);
}
body.app-layout .app-page-inner > * {
  min-width:0;
  margin-block-start:0;
  margin-block-end:0;
}
body.app-layout .app-page-inner > .app-page-header {
  margin-bottom:var(--v4-space-1);
}
body.app-layout :is(
  .app-layout-grid,.app-card-grid,.app-split-grid,.product-detail-grid,
  .product-job-layout,.dashboard-v3-layout,.reports-secondary-grid
) {
  column-gap:var(--v4-space-5);
  row-gap:var(--v4-space-5);
}
body.app-layout :is(
  .app-main-stack,.app-side-stack,.product-job-main,.product-job-side,
  .dashboard-v3-main,.dashboard-v3-side,.app-form-stack
) {
  gap:var(--v4-space-5);
}
body.app-layout :is(.app-form-grid,.app-form-grid-2,.app-form-grid-3,.product-form-grid) {
  column-gap:var(--v4-space-4);
  row-gap:var(--v4-space-4);
}
body.app-layout :is(.app-metric-grid,.reports-kpi-grid) {
  gap:var(--v4-space-4);
  margin-bottom:0;
}
body.app-layout :is(.app-search-card,.app-filter-bar,.dashboard-global-search,.product-toolbar,.product-metric-row,.product-job-summary) {
  margin-bottom:0;
}
body.app-layout .app-card-head {
  margin-bottom:var(--v4-space-4);
}
body.app-layout .app-card-head:has(.app-card-text) {
  padding-bottom:var(--v4-space-4);
}
body.app-layout .app-side-actions {
  gap:var(--v4-space-2);
  margin-top:var(--v4-space-4);
  padding-top:var(--v4-space-4);
}
body.app-layout .app-empty {
  margin:0;
}

@media (max-width:767.98px) {
  body.app-layout {
    --v4-page-gap:14px;
  }
  body.app-layout .app-page-inner > .app-page-header {
    margin-bottom:var(--v4-space-1);
  }
  body.app-layout :is(
    .app-layout-grid,.app-card-grid,.app-split-grid,.product-detail-grid,
    .product-job-layout,.dashboard-v3-layout,.reports-secondary-grid,
    .app-main-stack,.app-side-stack,.product-job-main,.product-job-side,
    .dashboard-v3-main,.dashboard-v3-side,.app-form-stack
  ) {
    column-gap:14px;
    row-gap:14px;
  }
}

/* Product v4.1 — calm, consistent information rows -----------------------
   Certificate sidebars and account summaries share this component. Keep
   labels and values readable without turning every saved value into a
   display-bold heading. PDF certificate artwork is intentionally excluded. */
body.app-layout .app-page :is(.app-detail-label,.app-detail-value):not([data-pdf-root="1"] *) {
  font-weight:500 !important;
}
body.app-layout .app-page .app-detail-list:not([data-pdf-root="1"] *) {
  margin-top:14px !important;
  border-color:var(--v4-line) !important;
  border-radius:10px !important;
  box-shadow:none !important;
}
body.app-layout .app-page .app-detail-list > .app-detail-row:not([data-pdf-root="1"] *) {
  min-height:48px;
  gap:18px !important;
  padding:11px 13px !important;
  border-bottom-color:var(--v4-line) !important;
}
body.app-layout .app-page .app-detail-list .app-detail-label:not([data-pdf-root="1"] *) {
  color:#5e6f85 !important;
  font-size:.7rem !important;
  letter-spacing:.015em !important;
  text-transform:none;
}
body.app-layout .app-page .app-detail-list .app-detail-value:not([data-pdf-root="1"] *) {
  color:var(--v4-ink) !important;
  font-size:.76rem !important;
  line-height:1.42;
}
body.app-layout .app-page .app-detail-list .app-detail-value :is(strong,b):not([data-pdf-root="1"] *) {
  font-weight:500 !important;
}

/* Create/view context rails use one spacing rhythm on every record type. */
body.app-layout .app-page :is(
  .cert-create-side,.esc-create-side,.coc-create-side,.roi-create-side,
  .testing-create-side,.esve-create-side,.solar-create-side,.cov-create-side,
  .woef-create-side,.cert-view-side,.esc-view-side,.coc-view-side,
  .roi-view-side,.testing-view-side,.solar-view-side
) .app-side-stack {
  gap:16px;
}
body.app-layout .app-page :is(
  .cert-create-side,.esc-create-side,.coc-create-side,.roi-create-side,
  .testing-create-side,.esve-create-side,.solar-create-side,.cov-create-side,
  .woef-create-side
) .app-card {
  padding:19px;
}
body.app-layout .app-page :is(
  .cert-create-side,.esc-create-side,.coc-create-side,.roi-create-side,
  .testing-create-side,.esve-create-side,.solar-create-side,.cov-create-side,
  .woef-create-side
) .app-card-title {
  margin-top:4px;
  font-size:1rem;
  line-height:1.25;
}

/* Account centre — Profile, Company and Users now use one layout language. */
body.app-layout :is(.account-profile-page,.company-settings-page,.users-admin-page) {
  --account-gap:20px;
}
body.app-layout :is(.account-profile-page,.company-settings-page,.users-admin-page) .app-page-header {
  align-items:center;
  margin-bottom:22px;
}
body.app-layout :is(.account-profile-page,.company-settings-page,.users-admin-page) .app-page-header .app-inline-row {
  display:none;
}
body.app-layout :is(.account-profile-page,.company-settings-page,.users-admin-page) .app-layout-grid {
  grid-template-columns:minmax(0,1fr) 320px;
  gap:var(--account-gap);
  align-items:start;
}
body.app-layout :is(.account-profile-page,.company-settings-page,.users-admin-page) :is(.app-main-stack,.app-side-stack) {
  gap:var(--account-gap);
}
body.app-layout :is(.account-profile-page,.company-settings-page,.users-admin-page) .app-card {
  padding:22px;
}
body.app-layout :is(.account-profile-page,.company-settings-page,.users-admin-page) .app-card-head {
  margin-bottom:18px;
  padding-bottom:16px;
  border-bottom:1px solid var(--v4-line);
}
body.app-layout :is(.account-profile-page,.company-settings-page,.users-admin-page) .app-card-text {
  margin-top:5px;
  line-height:1.5;
}
body.app-layout :is(.account-profile-page,.company-settings-page,.users-admin-page) .app-overview-card {
  min-height:0;
  margin-bottom:var(--account-gap);
  padding:18px 20px;
  border-radius:14px !important;
  border-top:3px solid var(--v4-green) !important;
  box-shadow:0 10px 28px rgba(19,38,66,.045) !important;
}
body.app-layout :is(.account-profile-page,.company-settings-page,.users-admin-page) .app-overview-card .app-card-head {
  padding:0;
  border:0;
}
body.app-layout :is(.account-profile-page,.company-settings-page,.users-admin-page) .app-overview-card .app-summary-pills {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
}
body.app-layout :is(.account-profile-page,.company-settings-page,.users-admin-page) .app-overview-card .app-pill {
  min-height:34px;
  padding:7px 10px;
  border:1px solid var(--v4-line);
  border-radius:8px !important;
  background:#f7fafc;
  color:#536176;
  font-size:.7rem;
  text-decoration:none;
}
body.app-layout :is(.account-profile-page,.company-settings-page,.users-admin-page) .app-overview-card .app-pill strong {
  color:var(--v4-ink);
  font-weight:600;
}
body.app-layout :is(.account-profile-page,.company-settings-page,.users-admin-page) .app-overview-card .app-tab-row {
  gap:4px;
  padding-top:12px;
}
body.app-layout :is(.account-profile-page,.company-settings-page,.users-admin-page) .app-overview-card .app-tab-link {
  min-height:36px;
  padding:8px 11px;
  border:0;
  border-radius:8px !important;
  color:#5c6d82;
}
body.app-layout :is(.account-profile-page,.company-settings-page,.users-admin-page) .app-overview-card .app-tab-link:hover {
  background:#f1f6f9;
  color:var(--v4-ink);
}
body.app-layout :is(.account-profile-page,.company-settings-page,.users-admin-page) .app-overview-card .app-tab-link.active {
  background:var(--v4-navy);
  color:#fff;
}

/* Company content is the primary task; the compact company summary is its
   right-hand context rail (the PHP source order is retained for stability). */
body.app-layout .company-settings-page .app-main-stack {
  grid-column:1;
  grid-row:1;
}
body.app-layout .company-settings-page .app-side-panel {
  grid-column:2;
  grid-row:1;
}
body.app-layout .company-settings-page .app-logo-stage {
  margin-top:14px;
  padding:18px;
  border:1px solid var(--v4-line);
  border-radius:10px;
  background:#f8fbfd;
}
body.app-layout .company-settings-page .app-side-actions {
  gap:8px;
  margin-top:14px;
}
body.app-layout .company-settings-page .app-main-stack > .app-card:not(.app-overview-card) form .app-form-grid {
  gap:18px;
}

/* User filters and overview read as one orderly management surface. */
body.app-layout .users-admin-page .app-users-overview-card {
  margin-bottom:var(--account-gap);
}
body.app-layout .users-admin-page .app-main-stack > .app-card:first-child {
  margin:0;
}
body.app-layout .users-admin-page :is(.app-search-card,.app-filter-card) {
  margin-bottom:var(--account-gap);
}

@media (max-width:1199.98px) {
  body.app-layout :is(.account-profile-page,.company-settings-page,.users-admin-page) .app-overview-card {
    grid-template-columns:1fr;
    gap:14px;
  }
  body.app-layout :is(.account-profile-page,.company-settings-page,.users-admin-page) .app-overview-card .app-summary-pills {
    grid-column:1;
    justify-content:flex-start;
  }
}
@media (max-width:1399.98px) {
  body.app-layout .company-settings-page .app-main-stack {
    grid-column:1;
    grid-row:1;
  }
  body.app-layout .company-settings-page .app-side-panel {
    grid-column:1;
    grid-row:2;
  }
}
@media (max-width:767.98px) {
  body.app-layout :is(.account-profile-page,.company-settings-page,.users-admin-page) {
    --account-gap:14px;
  }
  body.app-layout :is(.account-profile-page,.company-settings-page,.users-admin-page) .app-page-header {
    align-items:flex-start;
    margin-bottom:18px;
  }
  body.app-layout :is(.account-profile-page,.company-settings-page,.users-admin-page) .app-overview-card,
  body.app-layout :is(.account-profile-page,.company-settings-page,.users-admin-page) .app-card {
    padding:16px;
  }
  body.app-layout :is(.account-profile-page,.company-settings-page,.users-admin-page) .app-overview-card .app-summary-pills {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  body.app-layout :is(.account-profile-page,.company-settings-page,.users-admin-page) .app-overview-card .app-pill {
    justify-content:flex-start;
  }
  body.app-layout .app-page .app-detail-list > .app-detail-row:not([data-pdf-root="1"] *) {
    grid-template-columns:minmax(96px,.8fr) minmax(0,1.2fr) !important;
    gap:12px !important;
  }
}

/* Guided workflow: clear steps, state and next action across every certificate. */
body.app-layout .app-workflow-toolbar{top:84px;margin-bottom:20px;padding:16px;border:1px solid var(--v4-line-strong);border-radius:16px!important;background:rgba(255,255,255,.98);box-shadow:0 16px 36px rgba(19,38,66,.09);backdrop-filter:blur(16px)}
body.app-layout .app-workflow-heading{align-items:center}
body.app-layout .app-workflow-eyebrow{color:var(--v4-green);font-size:.62rem;letter-spacing:.13em}
body.app-layout .app-workflow-title{margin-top:3px;color:var(--v4-ink);font-size:.9rem}
body.app-layout .app-workflow-save-status{padding:6px 9px;border:1px solid #b8e8d7;border-radius:999px;background:#effaf6;color:#08765d;font-size:.67rem;white-space:normal}
body.app-layout .app-workflow-save-status[data-state="dirty"],body.app-layout .app-workflow-save-status[data-state="saving"]{border-color:#f0d5a3;background:#fff8e9;color:#8a5700}
body.app-layout .app-workflow-save-status[data-state="offline"],body.app-layout .app-workflow-save-status[data-state="error"]{border-color:#efc7c4;background:#fff3f2;color:#9b2c25}
body.app-layout .app-workflow-progress-row{display:grid;grid-template-columns:minmax(0,1fr) 42px;align-items:center;gap:10px;margin:13px 0 12px}
body.app-layout .app-workflow-progress{height:8px;margin:0;border-radius:999px;background:#e8eef4}
body.app-layout .app-workflow-progress>span{border-radius:inherit;background:var(--v4-green)}
body.app-layout .app-workflow-percent{color:var(--v4-ink);font-size:.72rem;text-align:right}
body.app-layout .app-workflow-section-nav{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(190px,1fr);gap:8px;margin:0;padding:0 0 5px}
body.app-layout .app-workflow-section-nav button{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:9px;max-width:none;min-height:58px;padding:9px 11px;border:1px solid var(--v4-line);border-radius:10px!important;background:#fff;color:var(--v4-copy);text-align:left;white-space:normal}
body.app-layout .app-workflow-section-nav button:hover{border-color:#a9b9ca;background:#f8fbfd;color:var(--v4-ink)}
body.app-layout .app-workflow-section-nav button.is-active{border-color:#79cdb2;background:var(--v4-mint);color:var(--v4-ink);box-shadow:inset 0 0 0 1px #b8e8d7}
body.app-layout .app-workflow-section-nav button.is-complete:not(.is-active){border-color:#b8e8d7;background:#f7fcfa}
body.app-layout .app-workflow-step-number{display:grid;width:30px;height:30px;place-items:center;border:1px solid var(--v4-line-strong);border-radius:50%;background:#f5f8fb;color:#51647a;font-size:.7rem}
body.app-layout .app-workflow-section-nav button.is-active .app-workflow-step-number{border-color:var(--v4-green);background:var(--v4-green);color:#fff}
body.app-layout .app-workflow-section-nav button.is-complete .app-workflow-step-number{border-color:#8bd6be;background:#dcf6ed;color:#076c54}
body.app-layout .app-workflow-step-copy{display:grid;min-width:0;gap:2px}
body.app-layout .app-workflow-step-copy strong{overflow:hidden;color:inherit;font-size:.72rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}
body.app-layout .app-workflow-step-copy small{color:var(--v4-muted);font-size:.62rem;font-weight:400}
body.app-layout .app-workflow-section-nav button.is-active .app-workflow-step-copy small{color:#286b5b}
body.app-layout .app-workflow-footer{display:grid;grid-template-columns:auto minmax(180px,1fr) auto;align-items:center;gap:12px;margin-top:9px;padding-top:11px;border-top:1px solid var(--v4-line)}
body.app-layout .app-workflow-completion{display:grid;justify-items:center;gap:1px;color:var(--v4-muted);text-align:center}
body.app-layout .app-workflow-completion strong{color:var(--v4-copy);font-size:.69rem;font-weight:600}
body.app-layout .app-workflow-completion small{font-size:.62rem;font-weight:400}
body.app-layout .app-workflow-action{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:7px 11px;border:1px solid var(--v4-line-strong);border-radius:8px!important;background:#fff;color:var(--v4-ink);font-size:.68rem;font-weight:600}
body.app-layout .app-workflow-action:hover{border-color:#91a4b7;background:#f7fafc}
body.app-layout .app-workflow-next{border-color:var(--v4-navy);background:var(--v4-navy);color:#fff}
body.app-layout .app-workflow-next:hover{border-color:var(--v4-navy-hover);background:var(--v4-navy-hover);color:#fff}
body.app-layout .app-workflow-action:disabled{cursor:not-allowed;opacity:.42}
body.app-layout :is(.app-progress,.product-job-readiness-bar,.reports-progress){height:8px;overflow:hidden;border-radius:999px;background:#e8eef4}
body.app-layout :is(.app-progress-bar,.product-job-readiness-bar>span,.reports-progress>span){height:100%;border-radius:inherit;background:var(--v4-green)}
body.app-layout .product-job-readiness-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin-top:12px}
body.app-layout .product-job-readiness-items>span{display:flex;align-items:center;gap:8px;padding:9px 11px;border:1px solid var(--v4-line);border-radius:9px;background:#fff;color:var(--v4-muted)}
body.app-layout .product-job-readiness-items>span.is-complete{border-color:#b8e8d7;background:#f2fbf7;color:#156b55}

/* Shared certificate address source. */
body.app-layout .app-certificate-location{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);align-items:stretch;gap:14px;padding:16px;border:1px solid var(--v4-line);border-radius:14px;background:#f7fafc}
body.app-layout .app-certificate-location-head{grid-column:1/-1;display:flex;align-items:center;gap:11px;padding-bottom:13px;border-bottom:1px solid var(--v4-line)}
body.app-layout .app-certificate-location-head-icon{display:grid;width:34px;height:34px;flex:0 0 34px;place-items:center;border-radius:9px;background:var(--v4-mint);color:var(--v4-green)}
body.app-layout .app-certificate-location-head>span:last-child{display:grid;gap:2px}
body.app-layout .app-certificate-location-head strong{color:var(--v4-ink);font-size:.78rem;font-weight:600}
body.app-layout .app-certificate-location-head small{color:var(--v4-muted);font-size:.66rem;font-weight:400}
body.app-layout .app-certificate-location-site{align-self:start}
body.app-layout .app-certificate-location-site .app-help-text{margin-top:1px}
body.app-layout .app-certificate-location-override{display:grid!important;grid-template-columns:18px minmax(0,1fr);align-items:center!important;gap:10px;width:100%;max-width:none;min-height:0;height:100%;padding:11px 12px;border:1px solid var(--v4-line-strong);border-radius:10px;background:#fff;color:var(--v4-copy);white-space:normal;cursor:pointer}
body.app-layout .app-certificate-location-override:hover{border-color:#9fb1c3;background:#fbfdff}
body.app-layout .app-certificate-location-override:has(input:checked){border-color:#83d2b8;background:var(--v4-mint)}
body.app-layout .app-certificate-location-override input{width:18px;height:18px;margin:0;accent-color:var(--v4-green)}
body.app-layout .app-certificate-location-override-copy{display:grid;gap:2px;min-width:0}
body.app-layout .app-certificate-location-override-copy strong{color:var(--v4-ink);font-size:.72rem;font-weight:600}
body.app-layout .app-certificate-location-override-copy small{color:var(--v4-muted);font-size:.63rem;font-weight:400;line-height:1.4}
body.app-layout .app-certificate-location-status{grid-column:1/-1;display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:10px;padding:10px 12px;border:0;border-radius:10px;background:#edf4f8;color:#466079}
body.app-layout .app-certificate-location-status-icon{display:grid;width:30px;height:30px;place-items:center;border-radius:8px;background:#fff;color:#58748e}
body.app-layout .app-certificate-location-status>span:last-child{display:grid;gap:1px}
body.app-layout .app-certificate-location-status strong{color:inherit;font-size:.64rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
body.app-layout .app-certificate-location-status small{color:inherit;font-size:.67rem;font-weight:400;line-height:1.4}
body.app-layout .app-certificate-location[data-state="customer"] .app-certificate-location-status,body.app-layout .app-certificate-location[data-state="site"] .app-certificate-location-status{background:#ecf8f3;color:#176b55}
body.app-layout .app-certificate-location[data-state="customer"] .app-certificate-location-status-icon,body.app-layout .app-certificate-location[data-state="site"] .app-certificate-location-status-icon{color:var(--v4-green)}
body.app-layout .app-certificate-location[data-state="manual"] .app-certificate-location-status{background:#f1effc;color:#5b3c91}
body.app-layout .app-certificate-location[data-state="manual"] .app-certificate-location-status-icon{color:#6941a5}
body.app-layout .app-certificate-location[data-state="warning"] .app-certificate-location-status{background:#fff7e8;color:#805300}
body.app-layout .app-certificate-location[data-state="loading"] .app-certificate-location-status{background:#eef6fb;color:#2d647f}
body.app-layout .app-certificate-location select:disabled{cursor:not-allowed;background:#edf2f6;color:#6b7b8e;opacity:1}

/* Certificate documents retain their tuned paper geometry. */
body.app-layout [data-pdf-root="1"]{box-shadow:none}

/* Login: the same light, editorial first impression as the workspace. */
body.auth-body{background:var(--v4-canvas);color:var(--v4-ink);font-family:var(--v4-font)}
body.auth-body .login-page{grid-template-columns:minmax(0,1.12fr) minmax(420px,.88fr);background:var(--v4-canvas)}
body.auth-body .login-hero{padding:42px 54px;background:var(--v4-canvas);color:var(--v4-ink)}
body.auth-body .login-brand-mark{width:46px;height:46px;padding:8px;border:1px solid var(--v4-line);border-radius:12px!important;background:#fff!important;box-shadow:0 8px 24px rgba(19,38,66,.05)}
body.auth-body .login-brand-title{color:var(--v4-ink);font-weight:700}
body.auth-body .login-brand-subtitle{color:var(--v4-muted)}
body.auth-body .login-kicker{color:var(--v4-green);font-weight:700}
body.auth-body .login-hero h1{max-width:12ch;margin:14px 0 22px;color:var(--v4-ink);font-size:clamp(3rem,5vw,5.1rem)!important;font-weight:650;line-height:.98!important;letter-spacing:-.065em}
body.auth-body .login-hero p{max-width:64ch;color:var(--v4-muted);font-size:1rem!important;line-height:1.7}
body.auth-body .login-hero-points{gap:10px;margin-top:36px;border:0}
body.auth-body .login-hero-point{min-height:92px;padding:16px;border:1px solid var(--v4-line)!important;border-radius:12px;background:rgba(255,255,255,.76);color:var(--v4-copy)}
body.auth-body .login-hero-point-icon{width:30px;height:30px;border:0;border-radius:8px!important;background:var(--v4-mint);color:var(--v4-green)}
body.auth-body .login-panel{padding:42px;background:#fff}
body.auth-body .login-card{max-width:450px;overflow:hidden;border:1px solid var(--v4-line)!important;border-radius:18px!important;background:#fff;box-shadow:0 24px 60px rgba(19,38,66,.09)!important}
body.auth-body .login-card-heading{padding:30px 30px 20px;border-bottom-color:var(--v4-line)}
body.auth-body .login-card-kicker{color:var(--v4-green);font-weight:700}
body.auth-body .login-card-heading h2{color:var(--v4-ink);font-size:1.85rem;font-weight:650}
body.auth-body .login-card-heading p{color:var(--v4-muted)}
body.auth-body .login-card form{padding:24px 30px}
body.auth-body .auth-field>label{color:#34455c;font-weight:650}
body.auth-body .auth-input-wrap{overflow:hidden;border:1px solid var(--v4-line-strong);border-radius:10px;background:#fff}
body.auth-body .auth-input-wrap:focus-within{border-color:#7892ad;box-shadow:0 0 0 3px rgba(14,116,144,.09)}
body.auth-body .auth-input-wrap input{border:0!important;border-radius:0!important;box-shadow:none!important}
body.auth-body .auth-input-icon{border-right-color:var(--v4-line);color:var(--v4-muted)}
body.auth-body .auth-password-toggle{border-left-color:var(--v4-line);background:#f7fafc;color:var(--v4-ink)}
body.auth-body .auth-options{color:var(--v4-muted)}
body.auth-body .auth-options a{color:var(--v4-green)}
body.auth-body .auth-submit{border-color:var(--v4-navy);border-radius:10px!important;background:var(--v4-navy)}
body.auth-body .auth-submit:hover{background:var(--v4-navy-hover)}
body.auth-body .login-security-note{padding:16px 30px;border-top-color:var(--v4-line);background:#f7fafc}
body.auth-body .login-security-icon{color:var(--v4-green)}

@media (max-width:1100px){
  body.app-layout .app-page{padding:30px 24px 52px}
  body.app-layout .app-topbar{padding-right:24px;padding-left:24px}
}
@media (max-width:991.98px){
  body.app-layout .app-sidebar{box-shadow:18px 0 50px rgba(8,25,49,.15)}
  body.app-layout .app-main{margin-left:0}
}
@media (max-width:767.98px){
  body.app-layout .app-page{padding:24px 16px 46px}
  body.app-layout .app-topbar{min-height:64px;padding:9px 16px}
  body.app-layout .app-page-header{align-items:stretch;gap:18px;margin-bottom:22px}
  body.app-layout .app-page-title{font-size:clamp(1.8rem,9vw,2.35rem)}
  body.app-layout .product-metric-row{border-radius:14px}
  body.app-layout .product-metric-row>a{min-height:96px;padding:16px}
  body.app-layout .product-panel,body.app-layout .product-form-card{border-radius:14px!important}
  body.app-layout .app-workflow-toolbar{top:8px;padding:12px;border-radius:13px!important}
  body.app-layout .app-workflow-heading{align-items:flex-start;flex-direction:column;gap:7px}
  body.app-layout .app-workflow-section-nav{grid-auto-columns:minmax(170px,78vw)}
  body.app-layout .app-workflow-footer{grid-template-columns:1fr 1fr;gap:8px}
  body.app-layout .app-workflow-completion{grid-column:1/-1;grid-row:1}
  body.app-layout .app-workflow-action{width:100%}
  body.app-layout .app-certificate-location{grid-template-columns:1fr;padding:13px}
  body.app-layout .app-certificate-location-head,body.app-layout .app-certificate-location-status{grid-column:auto}
  body.app-layout .app-certificate-location-override{height:auto}
}

/* Product v4.3 - final square geometry and signed-in identity footer.
   Deliberately last so older rounded component rules cannot leak through. */
html body.app-layout.app-layout.app-layout.app-layout *:not(.spinner-border):not(input[type="radio"]),
html body.auth-body.auth-body.auth-body.auth-body *:not(.spinner-border):not(input[type="radio"]) {
	border-radius: 0 !important;
}

body.app-layout input[type="radio"],
body.auth-body input[type="radio"] {
	border-radius: 50% !important;
}

body.app-layout .sidebar-footer {
	margin-top: auto;
	padding: 14px 0 0;
	border-top: 1px solid var(--v4-line);
	background: transparent;
}

body.app-layout .signed-in-user {
	display: grid;
	grid-template-columns: 38px minmax(0, 1fr);
	align-items: center;
	gap: 11px;
	padding: 0 8px 13px;
	border: 0;
	background: transparent;
	box-shadow: none;
}

body.app-layout .signed-in-avatar,
body.app-layout .user-avatar {
	display: grid;
	width: 38px;
	height: 38px;
	place-items: center;
	border: 1px solid #b8e8d7;
	background: var(--v4-mint);
	color: var(--v4-green);
	font-size: .78rem;
	font-weight: 700;
}

body.app-layout .signed-in-meta {
	min-width: 0;
}

body.app-layout .signed-in-meta .signed-in-eyebrow {
	display: block;
	margin: 0 0 2px;
	color: #536176;
	font-size: .56rem;
	font-weight: 600;
	letter-spacing: .1em;
	line-height: 1.2;
	text-transform: uppercase;
}

body.app-layout .signed-in-meta strong {
	display: block;
	max-width: none;
	color: var(--v4-ink);
	font-size: .76rem;
	font-weight: 600;
	line-height: 1.25;
}

body.app-layout .signed-in-meta .signed-in-role {
	display: block;
	margin-top: 2px;
	color: var(--v4-muted);
	font-size: .62rem;
	font-weight: 400;
	line-height: 1.25;
	text-transform: none;
}

body.app-layout .sidebar-footer-actions {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
	border-top: 1px solid var(--v4-line);
	background: transparent;
}

body.app-layout .sidebar-footer-actions a {
	display: inline-flex;
	min-width: 0;
	min-height: 38px;
	align-items: center;
	justify-content: center;
	gap: 5px;
	padding: 7px 5px;
	border: 0;
	border-right: 1px solid var(--v4-line);
	background: transparent;
	color: #607086;
	font-size: .62rem;
	font-weight: 500;
}

body.app-layout .sidebar-footer-actions a:last-child {
	border-right: 0;
}

body.app-layout .sidebar-footer-actions a:hover,
body.app-layout .sidebar-footer-actions a.active {
	background: var(--v4-mint);
	color: var(--v4-green);
}

/* Product v4.4 - calm login typography.
   Supporting content stays regular; hierarchy comes from size and spacing. */
body.auth-body.auth-body {
	font-weight: 400;
}

body.auth-body.auth-body :is(
	.login-brand-subtitle,
	.login-hero p,
	.login-hero-point,
	.login-feature-card,
	.login-card-heading p,
	.auth-input-wrap input,
	.auth-check,
	.login-security-note span,
	.auth-alert,
	.caps-warning
) {
	font-weight: 400;
}

body.auth-body.auth-body :is(
	.auth-field > label,
	.auth-password-toggle,
	.auth-options a,
	.auth-return-link a,
	.login-security-note strong
) {
	font-weight: 500;
}

body.auth-body.auth-body :is(
	.login-brand-title,
	.login-panel-brand,
	.login-kicker,
	.login-card-kicker,
	.login-hero h1,
	.login-card-heading h2,
	.auth-card-head h1,
	.auth-submit
) {
	font-weight: 600;
}

/* Product v4.5 — reporting clarity and true regular-weight placeholders. */
body.auth-body.auth-body .auth-input-wrap input::placeholder {
	color: #8190a4;
	font-weight: 400 !important;
	opacity: 1;
}

.app-line-chart {
	display: grid;
	gap: 12px;
	min-width: 0;
}

.app-line-chart-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	align-items: center;
	color: #66758a;
	font-size: .68rem;
}

.app-line-chart-legend span {
	display: inline-flex;
	align-items: center;
	gap: 7px;
}

.app-line-chart-legend i {
	display: block;
	width: 18px;
	height: 2px;
	background: #0f766e;
}

.app-line-chart-legend .is-finalised i { background: #1d4ed8; }

.app-line-chart-frame {
	min-width: 0;
	padding: 8px 0 0;
	border-bottom: 1px solid var(--v4-line, #d9e2ec);
}

.app-line-chart-canvas {
	display: block;
	width: 100%;
	height: 232px;
}

.dashboard-command-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.45fr) minmax(350px, .75fr);
	gap: var(--v4-space-5, 20px);
}

.dashboard-trend-panel,
.dashboard-attention-panel { min-width: 0; }

.dashboard-chart-summary {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	border: 1px solid var(--v4-line, #d9e2ec);
}

.dashboard-chart-summary > div {
	display: grid;
	gap: 3px;
	padding: 11px 13px;
	border-right: 1px solid var(--v4-line, #d9e2ec);
}

.dashboard-chart-summary > div:last-child { border-right: 0; }
.dashboard-chart-summary span { color: #66758a; font-size: .65rem; }
.dashboard-chart-summary strong { color: var(--v4-ink, #0b1b34); font-size: 1.05rem; font-weight: 600; }

.reports-trend-card .app-line-chart { margin-top: 2px; }
.reports-kpi-grid.reports-kpi-grid-four { grid-template-columns: repeat(4, minmax(0, 1fr)); }

@media (max-width: 1199.98px) {
	.dashboard-command-grid { grid-template-columns: 1fr; }
}

@media (max-width: 767.98px) {
	.app-line-chart-canvas { height: 205px; }
	.dashboard-chart-summary { grid-template-columns: 1fr; }
	.dashboard-chart-summary > div { border-right: 0; border-bottom: 1px solid var(--v4-line, #d9e2ec); }
	.dashboard-chart-summary > div:last-child { border-bottom: 0; }
	.reports-kpi-grid.reports-kpi-grid-four { grid-template-columns: 1fr; }
}

/* Product v4.6 — dedicated company activity workspace. */
.activity-filter {
	display: grid;
	grid-template-columns: minmax(260px, 1fr) 150px 210px auto auto;
	gap: 12px;
	align-items: end;
	padding: 14px;
}

.activity-filter label {
	display: block;
	margin-bottom: 6px;
	color: #56677e;
	font-size: .66rem;
	font-weight: 600;
}

.activity-filter .app-btn { min-height: 42px; }
.activity-list { padding: 0; }

.activity-list-head,
.activity-row {
	display: grid;
	grid-template-columns: minmax(260px, 1.35fr) minmax(150px, .65fr) minmax(160px, .7fr) 130px;
	gap: 18px;
	align-items: center;
}

.activity-list-head {
	padding: 11px 18px 11px 66px;
	border-bottom: 1px solid var(--v4-line, #d9e2ec);
	background: #f7f9fb;
	color: #64748b;
	font-size: .63rem;
	font-weight: 600;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.activity-row {
	position: relative;
	min-height: 72px;
	padding: 12px 18px 12px 66px;
	border-bottom: 1px solid var(--v4-line, #d9e2ec);
}

.activity-row:last-child { border-bottom: 0; }
.activity-row:hover { background: #fbfcfd; }

.activity-state {
	position: absolute;
	left: 18px;
	display: grid;
	width: 32px;
	height: 32px;
	place-items: center;
	border: 1px solid #cfe2df;
	background: #eef8f6;
	color: #0f766e;
}

.activity-action strong,
.activity-action small,
.activity-row time strong,
.activity-row time small { display: block; }

.activity-action strong,
.activity-record :is(a,strong) { color: var(--v4-ink, #0b1b34); font-size: .75rem; font-weight: 600; }
.activity-action small,
.activity-record span,
.activity-row time small { margin-top: 3px; color: #75849a; font-size: .63rem; }
.activity-record a { color: #0f766e; }
.activity-person { display: flex; gap: 7px; align-items: center; color: #56677e; font-size: .7rem; }
.activity-row time { color: var(--v4-ink, #0b1b34); font-size: .7rem; }
.activity-row time strong { font-weight: 500; }

@media (max-width: 991.98px) {
	.activity-filter { grid-template-columns: 1fr 1fr; }
	.activity-search { grid-column: 1 / -1; }
	.activity-list-head { display: none; }
	.activity-row { grid-template-columns: 1fr auto; gap: 8px 16px; }
	.activity-record,.activity-person { grid-column: 1; }
	.activity-row time { grid-column: 2; grid-row: 1; text-align: right; }
}

@media (max-width: 575.98px) {
	.activity-filter { grid-template-columns: 1fr; }
	.activity-filter > * { grid-column: 1; width: 100%; }
	.activity-row { grid-template-columns: 1fr; padding: 14px 14px 14px 58px; }
	.activity-state { left: 14px; }
	.activity-record,.activity-person,.activity-row time { grid-column: 1; grid-row: auto; text-align: left; }
}

/* Product v4.7 — login uses the shared square app mark and lighter field copy. */
body.auth-body.auth-body .login-brand { gap: 12px; }

body.auth-body.auth-body .login-brand-mark,
body.auth-body.auth-body .login-panel-brand .login-brand-mark {
	display: grid;
	flex: 0 0 40px;
	width: 40px;
	height: 40px;
	padding: 0;
	place-items: center;
	border: 1px solid #081a33;
	background: #081a33 !important;
	box-shadow: none;
	color: #fff;
	font-size: 1rem;
}

body.auth-body.auth-body .login-brand-copy {
	display: block;
	min-width: 0;
}

body.auth-body.auth-body .login-brand-title {
	display: block;
	color: var(--v4-ink);
	font-size: .9rem;
	font-weight: 600;
	line-height: 1.2;
}

body.auth-body.auth-body .login-brand-subtitle {
	display: block;
	margin-top: 2px;
	color: var(--v4-muted);
	font-size: .66rem;
	font-weight: 400;
	line-height: 1.25;
}

body.auth-body.auth-body :is(
	.auth-field > label,
	.auth-password-toggle,
	.auth-options a,
	.auth-return-link a,
	.login-security-note strong
) {
	font-weight: 400;
}

body.auth-body.auth-body :is(.login-kicker,.login-card-kicker,.auth-submit) {
	font-weight: 500;
}

body.auth-body.auth-body .auth-input-wrap input::placeholder {
	color: #8a99ad;
	font-weight: 400 !important;
}

@media (max-width: 991.98px) {
	body.auth-body.auth-body .login-panel-brand {
		display: flex;
		align-items: center;
		gap: 11px;
		padding: 17px 28px;
	}
}

/* Product v4.8 — calm sidebar typography. */
body.app-layout.app-layout .brand-title {
	font-weight: 600;
}

body.app-layout.app-layout .brand-subtitle {
	font-weight: 400;
}

body.app-layout.app-layout .sidebar-create > summary {
	font-weight: 500;
}

body.app-layout.app-layout :is(.sidebar-heading,.sidebar-disclosure > summary) {
	font-weight: 500;
}

body.app-layout.app-layout .sidebar-link {
	font-weight: 400;
}

body.app-layout.app-layout .sidebar-link.active {
	font-weight: 500;
}
/* Product v4.9 — safety incident and near-miss workspace */
.sidebar-create-safety{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:center;margin:8px 10px;padding:10px;border:1px solid #bbf7d0;color:#10213b;background:#f0fdf4;text-decoration:none}
.sidebar-create-safety>span{display:grid;place-items:center;width:34px;height:34px;color:#166534;background:#dcfce7}
.sidebar-create-safety strong,.sidebar-create-safety small{display:block;font-weight:500}
.sidebar-create-safety small{margin-top:2px;color:#64748b;font-size:11px;font-weight:400}
.sidebar-safety-group .sidebar-link.active{color:#166534;background:#ecfdf5}
.sidebar-record-code.is-incident{color:#166534;border-color:#86efac;background:#f0fdf4}

.safety-workspace{--safety:#166534;--safety-soft:#ecfdf5;--safety-border:#d7e1ec}
.safety-workspace .product-header{border-bottom-color:var(--safety)}
.safety-workspace .product-eyebrow,.safety-workspace .app-page-kicker{color:var(--safety)}
.safety-workspace .product-panel,.safety-workspace .product-list-card,.safety-workspace .product-toolbar,.safety-workspace .app-btn,.safety-workspace .app-input{border-radius:0}
.safety-metrics>a{border-radius:0}
.safety-metrics>a:first-child,.safety-metrics>a:nth-child(2){border-left-color:#22c55e}
.safety-metrics>a:nth-child(3),.safety-metrics>a:nth-child(4){border-left-color:#f97316}
.safety-filter{display:grid;grid-template-columns:minmax(300px,1fr) 150px 190px auto;gap:12px;align-items:end}
.safety-filter label,.safety-form-grid label>span,.safety-add-action label>span{display:block;margin-bottom:6px;color:#42526b;font-size:12px;font-weight:500}
.safety-register{overflow:hidden}
.safety-register>.product-panel-head{padding:18px 20px;border-bottom:1px solid var(--safety-border)}
.safety-register-head,.safety-register-row{display:grid;grid-template-columns:minmax(270px,1.45fr) minmax(180px,1fr) minmax(160px,.8fr) minmax(145px,.7fr) 145px 40px;gap:16px;align-items:center;padding:12px 20px}
.safety-register-head{color:#64748b;background:#f8fafc;border-bottom:1px solid var(--safety-border);font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase}
.safety-register-row{min-height:78px;border-bottom:1px solid var(--safety-border)}
.safety-register-row:last-child{border-bottom:0}
.safety-register-row>div{min-width:0}
.safety-register-row strong,.safety-register-row small{display:block;font-weight:500}
.safety-register-row small{margin-top:4px;color:#64748b;font-size:12px;font-weight:400}
.safety-register-event{display:grid;grid-template-columns:38px minmax(0,1fr);gap:11px;align-items:center}
.safety-register-event a{color:#0b1b36;font-weight:600;text-decoration:none}
.safety-event-mark{display:grid;place-items:center;width:38px;height:38px;color:#166534;background:#ecfdf5;border:1px solid #bbf7d0}
.safety-event-mark.is-injury,.safety-event-mark.is-illness{color:#b91c1c;background:#fef2f2;border-color:#fecaca}
.safety-event-mark.is-near_miss{color:#b45309;background:#fffbeb;border-color:#fde68a}
.safety-status,.safety-severity{display:inline-flex;align-items:center;width:max-content;padding:5px 8px;border:1px solid #cbd5e1;color:#475569;background:#fff;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.safety-status.is-reported{color:#9a3412;border-color:#fdba74;background:#fff7ed}
.safety-status.is-under_review,.safety-status.is-actions_open{color:#1d4ed8;border-color:#bfdbfe;background:#eff6ff}
.safety-status.is-closed{color:#166534;border-color:#86efac;background:#f0fdf4}
.safety-severity.is-serious,.safety-severity.is-critical{color:#b91c1c;border-color:#fecaca;background:#fef2f2}
.safety-severity.is-moderate{color:#9a3412;border-color:#fed7aa;background:#fff7ed}

.safety-report-form{display:grid;gap:16px}
.safety-report-form .product-panel{padding:22px}
.safety-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}
.safety-form-grid .is-wide{grid-column:1/-1}
.safety-form-grid textarea{resize:vertical}
.safety-check{display:flex;gap:11px;align-items:flex-start;padding:12px;border:1px solid var(--safety-border);background:#f8fafc}
.safety-check input{flex:0 0 auto;width:18px;height:18px;margin-top:2px;accent-color:var(--safety)}
.safety-check span{margin:0}
.safety-check strong,.safety-check small{display:block;font-weight:500}
.safety-check small{margin-top:3px;color:#64748b;font-weight:400}
.safety-legal-note{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;margin-top:16px;padding:13px 14px;color:#713f12;background:#fffbeb;border:1px solid #fde68a}
.safety-legal-note i{font-size:18px}
.safety-legal-note p{margin:0;font-size:13px;line-height:1.5}
.safety-legal-note strong{font-weight:600}
.safety-form-actions{display:flex;justify-content:flex-end;gap:10px;align-items:center}

.safety-summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--safety-border);background:#fff}
.safety-summary-strip>div{min-height:78px;padding:14px 16px;border-right:1px solid var(--safety-border)}
.safety-summary-strip>div:last-child{border-right:0}
.safety-summary-strip span,.safety-summary-strip strong{display:block}
.safety-summary-strip>div>span{margin-bottom:8px;color:#64748b;font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase}
.safety-summary-strip>div>strong:not(.safety-status):not(.safety-severity){color:#10213b;font-size:16px;font-weight:600}
.safety-view-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;margin-top:18px;align-items:start}
.safety-view-layout>main,.safety-view-layout>aside{display:grid;gap:18px;min-width:0}
.safety-view-layout .product-panel{padding:20px}
.safety-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:16px 0 0;border:1px solid var(--safety-border)}
.safety-detail-grid>div{padding:13px 14px;border-right:1px solid var(--safety-border);border-bottom:1px solid var(--safety-border)}
.safety-detail-grid>div:nth-child(2n){border-right:0}
.safety-detail-grid>div:last-child,.safety-detail-grid>div:nth-last-child(2):nth-child(odd){border-bottom:0}
.safety-detail-grid>.is-wide{grid-column:1/-1;border-right:0}
.safety-detail-grid dt{margin-bottom:5px;color:#64748b;font-size:11px;font-weight:500;letter-spacing:.05em;text-transform:uppercase}
.safety-detail-grid dd{margin:0;color:#10213b;font-size:13px;font-weight:400;line-height:1.5}
.safety-investigation-form{margin-top:16px}
.safety-action-list{border:1px solid var(--safety-border);margin-top:16px}
.safety-action-list article{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:12px;align-items:center;min-height:66px;padding:10px 12px;border-bottom:1px solid var(--safety-border)}
.safety-action-list article:last-child{border-bottom:0}
.safety-action-list article.is-complete{color:#64748b;background:#f8fafc}
.safety-action-list article.is-overdue{background:#fff7ed}
.safety-action-list strong,.safety-action-list small{display:block;font-weight:500}
.safety-action-list small{margin-top:4px;color:#64748b;font-size:12px;font-weight:400}
.safety-action-state{display:grid;place-items:center;width:30px;height:30px;color:#166534;background:#ecfdf5;border:1px solid #bbf7d0}
.safety-add-action{display:grid;grid-template-columns:minmax(240px,1fr) 190px 160px auto;gap:10px;align-items:end;margin-top:14px;padding-top:14px;border-top:1px solid var(--safety-border)}
.safety-checklist{border:1px solid var(--safety-border)}
.safety-checklist>div{display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;padding:11px 12px;color:#64748b;border-bottom:1px solid var(--safety-border);font-size:13px}
.safety-checklist>div:last-child{border-bottom:0}
.safety-checklist>div.is-complete{color:#166534;background:#f0fdf4}
.safety-close-form{margin-top:14px}
.safety-close-form .app-btn{width:100%;justify-content:center}
.safety-notification-card{border-left:3px solid #94a3b8}
.safety-notification-card.is-possible{border-left-color:#f59e0b;background:#fffbeb}
.safety-notification-card.is-confirmed{border-left-color:#dc2626;background:#fef2f2}
.safety-notification-card p{color:#475569;font-size:13px;line-height:1.5}
.safety-notification-card a{color:#166534;font-size:13px;font-weight:500}
.product-panel-footer{display:flex;justify-content:flex-end;margin-top:14px;padding-top:14px;border-top:1px solid var(--safety-border)}

@media(max-width:1200px){.safety-register-head{display:none}.safety-register-row{grid-template-columns:minmax(260px,1.4fr) minmax(170px,1fr) minmax(150px,.7fr) 40px}.safety-register-row>div:nth-child(4),.safety-register-row>div:nth-child(5){display:none}.safety-view-layout{grid-template-columns:1fr}.safety-view-layout>aside{grid-template-columns:repeat(3,minmax(0,1fr))}.safety-add-action{grid-template-columns:1fr 1fr}.safety-add-action label:first-child{grid-column:1/-1}}
@media(max-width:767.98px){.safety-filter,.safety-form-grid,.safety-summary-strip,.safety-view-layout>aside,.safety-detail-grid,.safety-add-action{grid-template-columns:1fr}.safety-form-grid .is-wide,.safety-detail-grid>.is-wide,.safety-add-action label:first-child{grid-column:auto}.safety-summary-strip>div{border-right:0;border-bottom:1px solid var(--safety-border)}.safety-register-row{grid-template-columns:minmax(0,1fr) 40px;padding:14px}.safety-register-row>div:not(:first-child){display:none}.safety-detail-grid>div{border-right:0}.safety-detail-grid>div:nth-last-child(2){border-bottom:1px solid var(--safety-border)}.safety-form-actions{align-items:stretch;flex-direction:column-reverse}.safety-form-actions .app-btn{justify-content:center}.safety-action-list article{grid-template-columns:32px minmax(0,1fr)}.safety-action-list article form{grid-column:2}.safety-report-form .product-panel,.safety-view-layout .product-panel{padding:16px}}
@media print{body.safety-view-page{background:#fff}.safety-view-page .app-sidebar,.safety-view-page .app-topbar,.safety-view-page .app-page-header .app-page-actions,.safety-view-page .no-print{display:none}.safety-view-page .app-main{margin:0}.safety-view-page .app-page,.safety-view-page .app-page-inner{width:100%;max-width:none;margin:0;padding:0}.safety-view-page .safety-view-layout{display:block;margin-top:10px}.safety-view-page .safety-view-layout>main,.safety-view-page .safety-view-layout>aside{display:block}.safety-view-page .product-panel{break-inside:avoid;margin-bottom:10px;padding:12px;box-shadow:none}.safety-view-page .safety-view-layout>aside .product-panel{margin-top:10px}.safety-view-page .safety-summary-strip>div{min-height:58px;padding:8px}.safety-view-page .app-page-title{font-size:22px}.safety-view-page .safety-detail-grid>div{padding:8px}.safety-view-page .safety-notification-card a{display:none}}

/* Product v5.0 — unified Safety registers, JSA and Toolbox Talk */
.sidebar-create-safety-row{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:8px 10px 10px}
.sidebar-create-safety-row>a{display:grid;grid-template-columns:26px minmax(0,1fr);gap:7px;align-items:start;padding:9px;color:#10213b;background:#fff;border:1px solid #d7e1ec;text-decoration:none}
.sidebar-create-safety-row>a>i{color:#166534;font-size:15px}
.sidebar-create-safety-row strong,.sidebar-create-safety-row small{display:block;font-weight:500}
.sidebar-create-safety-row small{margin-top:2px;color:#64748b;font-size:9px;font-weight:400;line-height:1.25}
.sidebar-record-code.is-jsa{color:#0369a1;border-color:#bae6fd;background:#f0f9ff}
.sidebar-record-code.is-toolbox{color:#7c3aed;border-color:#ddd6fe;background:#f5f3ff}
.safety-index-wrap{display:grid;gap:20px}
.safety-index-page .app-page-header{margin-bottom:0}
.safety-page-icon{display:grid;place-items:center;flex:0 0 54px;width:54px;height:54px;color:#166534;background:#ecfdf5;border:1px solid #bbf7d0;font-size:22px}
.safety-page-icon.is-jsa{color:#0369a1;background:#f0f9ff;border-color:#bae6fd}
.safety-page-icon.is-toolbox{color:#7c3aed;background:#f5f3ff;border-color:#ddd6fe}
.safety-index-metrics{margin:0}
.safety-index-metrics .app-metric-card{border-radius:0}
.safety-index-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:end;border-radius:0}
.safety-soft-pill{color:#166534;background:#f0fdf4;border-color:#bbf7d0;border-radius:0}
.safety-segmented .app-segment-btn{border-radius:0}
.safety-segmented .app-segment-btn.active{color:#fff;background:#10213b;border-color:#10213b}
.safety-index-register{border-radius:0;overflow:hidden}
.safety-index-register .app-card-head{margin:0;padding:20px;border-bottom:1px solid #d7e1ec}
.safety-incident-filters{display:flex;justify-content:space-between;align-items:center;border-radius:0}
.safety-incident-filters form{display:flex;gap:8px;align-items:center}
.safety-incident-filters select{min-width:190px}
.safety-soft-table{width:100%;overflow-x:auto}
.safety-soft-table-head,.safety-soft-table-row{display:grid;grid-template-columns:minmax(220px,1.25fr) minmax(175px,1fr) minmax(120px,.7fr) minmax(125px,.7fr) minmax(120px,.65fr) 120px 82px;gap:14px;align-items:center;padding:12px 18px}
.safety-soft-table-head{min-width:1030px;color:#64748b;background:#f8fafc;border-bottom:1px solid #d7e1ec;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.safety-soft-table-row{min-width:1030px;min-height:76px;border-bottom:1px solid #d7e1ec}
.safety-soft-table-row:last-child{border-bottom:0}
.safety-soft-table-row.is-toolbox,.safety-soft-table-head.is-toolbox{grid-template-columns:minmax(200px,1.2fr) minmax(150px,.9fr) minmax(140px,.8fr) 95px 85px 110px 105px 82px;min-width:1120px}
.safety-soft-table-row>div{min-width:0}
.safety-soft-table-row a:not(.app-btn){color:#10213b;font-weight:600;text-decoration:none}
.safety-soft-table-row strong,.safety-soft-table-row small{display:block;font-weight:500}
.safety-soft-table-row small{margin-top:4px;color:#64748b;font-size:11px;font-weight:400}
.safety-status.is-draft{color:#9a3412;border-color:#fdba74;background:#fff7ed}
.safety-status.is-active,.safety-status.is-delivered{color:#0369a1;border-color:#bae6fd;background:#f0f9ff}
.safety-status.is-completed,.safety-status.is-closed{color:#166534;border-color:#86efac;background:#f0fdf4}
.safety-status.is-cancelled{color:#64748b;background:#f8fafc}
.safety-severity.is-high,.safety-severity.is-critical{color:#b91c1c;border-color:#fecaca;background:#fef2f2}
.safety-severity.is-medium{color:#9a3412;border-color:#fed7aa;background:#fff7ed}
.safety-severity.is-low{color:#166534;border-color:#bbf7d0;background:#f0fdf4}
.safety-jsa-editor{margin-top:16px;border:1px solid #d7e1ec;overflow-x:auto}
.safety-jsa-editor-head,.safety-jsa-editor-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) 120px minmax(220px,1.2fr) 120px minmax(145px,.7fr);gap:8px;min-width:1080px;padding:10px}
.safety-jsa-editor-head{color:#64748b;background:#f8fafc;border-bottom:1px solid #d7e1ec;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}
.safety-jsa-editor-row{border-bottom:1px solid #d7e1ec}
.safety-jsa-editor-row:last-child{border-bottom:0}
.safety-jsa-overview{margin-top:18px}
.safety-jsa-matrix{margin-top:16px;border:1px solid #d7e1ec;overflow-x:auto}
.safety-jsa-matrix-head,.safety-jsa-matrix-row{display:grid;grid-template-columns:minmax(170px,1fr) minmax(160px,.9fr) 90px minmax(240px,1.35fr) 90px minmax(120px,.65fr);gap:12px;min-width:980px;padding:11px 12px}
.safety-jsa-matrix-head{color:#64748b;background:#f8fafc;border-bottom:1px solid #d7e1ec;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}
.safety-jsa-matrix-row{align-items:start;border-bottom:1px solid #d7e1ec;font-size:13px;line-height:1.45}
.safety-jsa-matrix-row:last-child{border-bottom:0}
.safety-jsa-matrix-row strong{font-weight:500}
.safety-add-step{display:grid;grid-template-columns:1fr 1fr 130px 1.3fr 130px 170px;gap:10px;align-items:end;margin-top:12px}
.safety-add-step label>span{display:block;margin-bottom:5px;color:#64748b;font-size:11px;font-weight:500}
.safety-add-step button{grid-column:1/-1;justify-self:end}
.safety-attendee-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid #d7e1ec}
.safety-attendee-list>div{display:grid;grid-template-columns:22px minmax(0,1fr);gap:9px;align-items:center;padding:11px 12px;border-right:1px solid #d7e1ec;border-bottom:1px solid #d7e1ec}
.safety-attendee-list>div:nth-child(2n){border-right:0}
.safety-attendee-list i{color:#16a34a}
.safety-attendee-list strong,.safety-attendee-list small{display:block;font-weight:500}
.safety-attendee-list small{color:#64748b;font-size:11px;font-weight:400}
.safety-team-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid #d7e1ec}
.safety-team-actions .product-inline-form{flex:1 1 300px}
.safety-job-actions{flex-wrap:wrap;gap:8px}
@media(max-width:1100px){.safety-add-step{grid-template-columns:1fr 1fr}.safety-add-step button{grid-column:auto;justify-self:stretch}.safety-index-search{grid-template-columns:1fr}.safety-index-search .app-summary-pills{justify-content:flex-start}}
@media(max-width:767.98px){.safety-incident-filters{display:grid;gap:10px}.safety-incident-filters form{display:grid;grid-template-columns:1fr auto}.safety-attendee-list{grid-template-columns:1fr}.safety-attendee-list>div{border-right:0}.sidebar-create-safety-row{grid-template-columns:1fr}.safety-page-icon{width:46px;height:46px;flex-basis:46px}.safety-index-search{padding:14px}.safety-index-register .app-card-head{padding:16px}}

/* Product v5.2 — consistent workspace page header icons */
.workspace-page-icon{display:grid;place-items:center;flex:0 0 54px;width:54px;height:54px;color:var(--workspace-icon,#0f766e);background:var(--workspace-icon-bg,#ecfdf5);border:1px solid var(--workspace-icon-border,#a7f3d0);font-size:22px;line-height:1}
.workspace-page-icon i{display:block;line-height:1}
.workspace-page-icon.is-dashboard{--workspace-icon:#0f766e;--workspace-icon-bg:#ecfdf5;--workspace-icon-border:#a7f3d0}
.workspace-page-icon.is-jobs{--workspace-icon:#1d4ed8;--workspace-icon-bg:#eff6ff;--workspace-icon-border:#bfdbfe}
.workspace-page-icon.is-sites{--workspace-icon:#0e7490;--workspace-icon-bg:#ecfeff;--workspace-icon-border:#a5f3fc}
.workspace-page-icon.is-search{--workspace-icon:#475569;--workspace-icon-bg:#f8fafc;--workspace-icon-border:#cbd5e1}
.workspace-page-icon.is-reminders{--workspace-icon:#b45309;--workspace-icon-bg:#fffbeb;--workspace-icon-border:#fde68a}
.workspace-page-icon.is-activity{--workspace-icon:#6d28d9;--workspace-icon-bg:#f5f3ff;--workspace-icon-border:#ddd6fe}
.workspace-page-icon.is-customers{--workspace-icon:#0f766e;--workspace-icon-bg:#ecfdf5;--workspace-icon-border:#a7f3d0}
@media(max-width:767.98px){.workspace-page-icon{width:46px;height:46px;flex-basis:46px;font-size:19px}}

/* Product v5.3 — unified customer editing workspace */
body.customer-edit-page .customer-edit-layout{grid-template-columns:minmax(0,1fr) 310px;gap:20px;align-items:start}
body.customer-edit-page .customer-edit-main,body.customer-edit-page #customerUpdateForm,body.customer-edit-page #customerUpdateForm>.app-main-stack{width:100%;max-width:none}
body.customer-edit-page #customerUpdateForm>.app-main-stack{gap:0;border:1px solid var(--v4-line);background:#fff}
body.customer-edit-page #customerUpdateForm>.app-main-stack>.app-card{margin:0;padding:22px;border:0!important;border-bottom:1px solid var(--v4-line)!important;background:#fff}
body.customer-edit-page #customerUpdateForm>.app-main-stack>.app-card:last-of-type{border-bottom:0!important}
body.customer-edit-page #customerUpdateForm .app-card-head{margin-bottom:18px;padding-bottom:15px}
body.customer-edit-page #customerUpdateForm .app-card-title{font-weight:600}
body.customer-edit-page #customerUpdateForm :is(.app-input,input,textarea)::placeholder{font-weight:400;color:#8a98aa}
body.customer-edit-page #customerUpdateForm :is(.app-input,input,textarea){font-weight:400}
body.customer-edit-page #customerUpdateForm :is(.app-field-label,.app-field>label){font-weight:550}
body.customer-edit-page .customer-edit-side .app-side-stack{gap:16px}
body.customer-edit-page :is(.app-desktop-actions,.customer-edit-jump,.customer-edit-checklist){display:none}
body.customer-edit-page .customer-edit-side .app-card{padding:20px}
body.customer-edit-page .customer-edit-side .app-card-title{font-weight:600}
body.customer-edit-page .customer-edit-side .app-card-text{font-weight:400}
body.customer-edit-page .customer-edit-side .app-detail-list{margin-top:14px!important;border-radius:0!important}
body.customer-edit-page .customer-edit-side .app-detail-value{font-weight:500!important}
body.customer-edit-page .customer-edit-side .app-detail-label{font-weight:500!important}
body.customer-edit-page .customer-edit-danger .app-danger-box{border-radius:0!important;background:#fff}
body.customer-edit-page .customer-edit-danger :is(p,label,input){font-weight:400}
body.customer-edit-page .customer-edit-header .app-page-actions{align-self:center}
@media(max-width:1399.98px){body.customer-edit-page .customer-edit-layout{grid-template-columns:1fr}body.customer-edit-page .customer-edit-side{position:static}}
@media(max-width:991.98px){body.customer-edit-page #customerUpdateForm>.app-main-stack>.app-card{padding:18px}body.customer-edit-page .customer-edit-header .app-page-actions{align-self:stretch}}
@media print{.safety-jsa-matrix,.safety-soft-table{overflow:visible}.safety-jsa-matrix-head,.safety-jsa-matrix-row{min-width:0;grid-template-columns:1.1fr 1fr 60px 1.5fr 60px .8fr;font-size:10px}.safety-attendee-list{grid-template-columns:repeat(2,1fr)}}

/* Product v5.1 — Safety attendance and external signatures */
.safety-attendance-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid #d7e1ec}
.safety-attendance-tools .product-inline-disclosure{margin:0}
.safety-team-picker,.safety-external-signoff{display:grid;gap:13px;padding-top:12px}
.safety-team-picker>p{margin:0;color:#64748b;font-size:12px;line-height:1.45}
.safety-team-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid #d7e1ec}
.safety-team-checks>label{display:grid;grid-template-columns:20px minmax(0,1fr);gap:8px;align-items:center;min-height:52px;padding:9px;border-right:1px solid #d7e1ec;border-bottom:1px solid #d7e1ec;background:#fff}
.safety-team-checks>label:nth-child(2n){border-right:0}
.safety-team-checks>label.is-recorded{color:#64748b;background:#f8fafc}
.safety-team-checks input,.safety-confirm-check input{width:17px;height:17px;accent-color:#166534}
.safety-team-checks span,.safety-team-checks small{display:block;font-size:12px;font-weight:500}
.safety-team-checks small{margin-top:2px;color:#64748b;font-size:10px;font-weight:400}
.safety-confirm-check{display:grid;grid-template-columns:20px minmax(0,1fr);gap:8px;align-items:start;padding:10px;color:#42526b;background:#f0fdf4;border:1px solid #bbf7d0;font-size:12px;line-height:1.45}
.safety-external-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.safety-external-fields label>span{display:block;margin-bottom:5px;color:#64748b;font-size:11px;font-weight:500}
.safety-signature-pad{height:172px;background:#fff;border:1px solid #bfcddd}
.safety-signature-pad canvas{display:block;width:100%;height:170px;touch-action:none}
.safety-signature-actions{display:flex;justify-content:space-between;gap:10px}
.safety-attendee-signature{grid-column:2;width:130px;height:42px;margin-top:6px;object-fit:contain;object-position:left center;background:#fff;border-bottom:1px solid #94a3b8}
@media(max-width:1000px){.safety-attendance-tools{grid-template-columns:1fr}}
@media(max-width:575.98px){.safety-team-checks,.safety-external-fields{grid-template-columns:1fr}.safety-team-checks>label{border-right:0}.safety-signature-actions{flex-direction:column}.safety-signature-actions .app-btn{justify-content:center}}
@media print{.safety-attendee-signature{display:block;width:110px;height:34px}}

/* Product v5.6 — one regular-weight placeholder standard across the app. */
html body input::placeholder,
html body textarea::placeholder {
	color: #7b899b !important;
	font-family: inherit !important;
	font-style: normal !important;
	font-weight: 400 !important;
	letter-spacing: normal !important;
	opacity: 1 !important;
}

html body input::-webkit-input-placeholder,
html body textarea::-webkit-input-placeholder {
	font-weight: 400 !important;
}

html body input::-moz-placeholder,
html body textarea::-moz-placeholder {
	font-weight: 400 !important;
	opacity: 1 !important;
}

/* Product v6.0 — SaaS onboarding, billing and platform operations. */
.workspace-page-icon.is-billing{--workspace-icon:#1d4ed8;--workspace-icon-bg:#eff6ff;--workspace-icon-border:#bfdbfe}
.workspace-page-icon.is-platform{--workspace-icon:#6d28d9;--workspace-icon-bg:#f5f3ff;--workspace-icon-border:#ddd6fe}
.subscription-banner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;margin:14px 22px 0;padding:12px 14px;border:1px solid #fcd34d;background:#fffbeb;color:#713f12;font-size:13px}
.subscription-banner.is-read-only{border-color:#fca5a5;background:#fff1f2;color:#881337}
.subscription-banner>i{font-size:18px}.subscription-banner strong,.subscription-banner span{display:block;font-weight:500}.subscription-banner span{margin-top:2px;font-weight:400}.subscription-banner a{color:inherit;font-weight:600;text-decoration:underline}
.billing-layout{grid-template-columns:minmax(0,1fr) 320px}.billing-plan-card{border-top:3px solid #1d4ed8!important}.billing-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:18px 0;border:1px solid #d7e1ec}.billing-metrics>div{padding:16px;border-right:1px solid #d7e1ec}.billing-metrics>div:last-child{border-right:0}.billing-metrics span,.billing-metrics strong{display:block}.billing-metrics span{color:#64748b;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.06em}.billing-metrics strong{margin-top:5px;color:#0b1b34;font-size:16px;font-weight:600}.billing-actions{display:flex;gap:10px;margin-top:16px}.billing-feature-list{display:grid;margin-top:14px;border:1px solid #d7e1ec}.billing-feature-list span{display:flex;gap:9px;align-items:center;padding:11px 12px;border-bottom:1px solid #d7e1ec;color:#42526b;font-size:13px;font-weight:400}.billing-feature-list span:last-child{border-bottom:0}.billing-feature-list i{color:#16a34a}
.saas-signup-shell{display:grid;grid-template-columns:minmax(320px,440px) minmax(420px,620px);gap:28px;align-items:stretch;justify-content:center;width:min(1120px,calc(100% - 40px));min-height:100vh;margin:0 auto;padding:32px 0}.saas-signup-intro{display:grid;align-content:space-between;gap:38px;min-height:650px;padding:42px;background:#071a35;color:#fff;border-radius:18px}.saas-signup-intro .login-brand-title{color:#fff}.saas-signup-intro .login-brand-subtitle{color:#b8c8d8}.saas-signup-intro h1{max-width:520px;margin:10px 0 14px;color:#fff;font-size:44px;line-height:1.04;font-weight:650}.saas-signup-intro p{max-width:520px;margin:0;color:#cbd5e1;font-size:16px;line-height:1.6}.saas-signup-intro ul{display:grid;gap:12px;margin:0;padding:0;list-style:none}.saas-signup-intro li{display:flex;gap:10px;align-items:center;color:#e2e8f0;font-weight:400}.saas-signup-intro li i{color:#5eead4}.saas-signup-card{align-self:center;width:100%;max-width:none}.saas-signup-card .auth-field>input{display:block;width:100%;height:46px;padding:0 14px;border:1px solid var(--v4-line-strong);border-radius:10px;background:#fff;color:var(--v4-ink);font:inherit;font-weight:400}.saas-signup-card .auth-field>input:focus{border-color:#7892ad;outline:0;box-shadow:0 0 0 3px rgba(14,116,144,.09)}.saas-signup-card .auth-field>input::placeholder{color:#8796aa;font-weight:400;opacity:1}.saas-signup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.saas-terms{margin:16px 0}.auth-return-link{padding:0 30px 26px;color:var(--v4-muted);text-align:center;font-size:.8rem}.auth-return-link a{color:var(--v4-green)}.auth-signup-link{margin-top:18px;padding-top:16px;border-top:1px solid #d7e1ec}
.platform-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.platform-summary article{padding:17px 18px;border:1px solid #d7e1ec;border-left:3px solid #2563eb;background:#fff}.platform-summary article.is-attention{border-left-color:#f59e0b}.platform-summary span,.platform-summary strong{display:block}.platform-summary span{color:#64748b;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.06em}.platform-summary strong{margin-top:6px;color:#0b1b34;font-size:26px;font-weight:600}.platform-company-table td>strong,.platform-company-table td>small{display:block}.platform-company-table td>strong{font-weight:600}.platform-company-table td>small{margin-top:3px;color:#64748b;font-weight:400}.platform-row-actions{display:flex;flex-wrap:wrap;gap:8px}.platform-row-actions form{display:flex;gap:6px}.platform-row-actions select{min-height:34px;border:1px solid #c8d4e3;background:#fff;color:#22324a;font:inherit}
@media(max-width:1100px){.billing-layout{grid-template-columns:1fr}.saas-signup-shell{grid-template-columns:1fr;max-width:680px}.saas-signup-intro{padding-top:20px}.platform-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767.98px){.subscription-banner{grid-template-columns:auto minmax(0,1fr);margin:10px 12px 0}.subscription-banner a{grid-column:2}.billing-metrics,.saas-signup-grid,.platform-summary{grid-template-columns:1fr}.billing-metrics>div{border-right:0;border-bottom:1px solid #d7e1ec}.billing-metrics>div:last-child{border-bottom:0}.saas-signup-shell{width:min(100% - 24px,680px);gap:24px;padding:24px 0}.saas-signup-intro h1{font-size:34px}.platform-row-actions,.platform-row-actions form{display:grid;grid-template-columns:1fr}}

body.auth-body .saas-signup-intro .login-brand-title{color:#fff}
body.auth-body .saas-signup-intro .login-brand-subtitle{color:#b8c8d8}

/* Product v6.1 — SaaS platform control centre */
.platform-control-centre,.platform-company-detail{display:grid;gap:20px}
.platform-header-actions{display:flex;flex-wrap:wrap;gap:8px;align-self:center}
.platform-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.platform-kpis article{min-height:132px;padding:20px;border:1px solid var(--v4-line);border-left:3px solid #2563eb;border-radius:14px;background:#fff;box-shadow:0 10px 32px rgba(19,38,66,.045)}
.platform-kpis article:first-child{border-left-color:#0f8a72}
.platform-kpis article.is-attention{border-left-color:#d97706;background:#fffdf8}
.platform-kpis span,.platform-kpis strong,.platform-kpis small{display:block}
.platform-kpis span{color:var(--v4-muted);font-size:.68rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase}
.platform-kpis strong{margin-top:8px;color:var(--v4-ink);font-size:1.8rem;font-weight:650;line-height:1.15}
.platform-kpis small{margin-top:8px;color:var(--v4-copy);font-size:.74rem;font-weight:400}
.platform-overview-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.85fr);gap:16px}
.platform-bottom-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.platform-chart{position:relative;min-height:220px;margin-top:10px;padding:6px 6px 0}
.platform-chart svg{display:block;width:100%;height:170px;overflow:visible;border-bottom:1px solid var(--v4-line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 41px,rgba(201,213,225,.42) 42px)}
.platform-chart-area{fill:url(#platformArea);stroke:none}
.platform-chart-line{fill:none;stroke:#0f8a72;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.platform-chart-labels{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;margin-top:9px;text-align:center}
.platform-chart-labels span{color:var(--v4-muted);font-size:.67rem;font-weight:500}
.platform-chart-labels strong{display:block;margin-bottom:2px;color:var(--v4-ink);font-size:.78rem;font-weight:650}
.platform-empty{display:flex;align-items:center;justify-content:center;gap:12px;min-height:130px;padding:22px;color:var(--v4-muted);text-align:left}
.platform-empty>i{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--v4-mint);color:var(--v4-green);font-size:1rem}
.platform-empty strong,.platform-empty span{display:block}
.platform-empty strong{color:var(--v4-ink);font-size:.84rem;font-weight:600}
.platform-empty span{margin-top:3px;font-size:.74rem}
.platform-compact-list,.platform-audit-list,.platform-health-list,.platform-event-list{display:grid;margin-top:14px;border-top:1px solid var(--v4-line)}
.platform-compact-list a,.platform-audit-list>div,.platform-health-list>div,.platform-event-list>div{display:flex;align-items:center;gap:11px;min-height:58px;padding:10px 4px;border-bottom:1px solid var(--v4-line);color:inherit;text-decoration:none}
.platform-compact-list a{justify-content:space-between}
.platform-compact-list a:hover strong{color:var(--v4-green)}
.platform-compact-list strong,.platform-compact-list small,.platform-audit-list strong,.platform-audit-list small,.platform-health-list strong,.platform-health-list small,.platform-event-list strong,.platform-event-list small{display:block}
.platform-compact-list strong,.platform-audit-list strong,.platform-health-list strong,.platform-event-list strong{color:var(--v4-ink);font-size:.77rem;font-weight:600}
.platform-compact-list small,.platform-audit-list small,.platform-health-list small,.platform-event-list small{margin-top:3px;color:var(--v4-muted);font-size:.69rem;font-weight:400}
.platform-audit-list i{display:grid;place-items:center;width:30px;height:30px;flex:0 0 auto;border-radius:8px;background:#eef5ff;color:#2563eb}
.platform-health-dot{width:10px;height:10px;flex:0 0 auto;border-radius:50%;background:#94a3b8;box-shadow:0 0 0 4px #f1f5f9}
.platform-health-dot.is-good{background:#0f9f78;box-shadow:0 0 0 4px #e6f8f1}
.platform-health-dot.is-warning{background:#d97706;box-shadow:0 0 0 4px #fff4df}
.platform-filter-bar{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:12px;margin:18px 0;padding:15px;border:1px solid var(--v4-line);border-radius:12px;background:#f7fafc}
.platform-filter-bar label>span,.platform-management-form label,.platform-note-form label{display:block;margin-bottom:6px;color:#42536b;font-size:.69rem;font-weight:600}
.platform-search-control{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;overflow:hidden;border:1px solid var(--v4-line-strong);border-radius:10px;background:#fff}
.platform-search-control i{padding-left:13px;color:var(--v4-muted)}
.platform-search-control input{width:100%;min-height:42px;padding:0 12px;border:0;background:transparent;color:var(--v4-ink);font-weight:400;outline:0}
.platform-search-control input::placeholder,.platform-note-form textarea::placeholder{color:#8a99ad;font-weight:400;opacity:1}
.platform-search-control .app-btn{align-self:stretch;border-radius:0 8px 8px 0}
.platform-filter-bar select,.platform-management-form select,.platform-management-form input,.platform-note-form textarea{width:100%;border:1px solid var(--v4-line-strong);border-radius:10px;background:#fff;color:var(--v4-ink);font:inherit;font-weight:400}
.platform-filter-select{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}
.platform-filter-bar select,.platform-management-form select,.platform-management-form input{min-height:44px;padding:0 12px}
.platform-company-table td{vertical-align:middle}
.platform-company-table td>strong,.platform-company-table td>small,.platform-users-table td>strong,.platform-users-table td>small{display:block}
.platform-company-table td>strong,.platform-users-table td>strong{color:var(--v4-ink);font-weight:600}
.platform-company-table td>small,.platform-users-table td>small{margin-top:4px;color:var(--v4-muted);font-weight:400}
.platform-company-table .platform-danger-copy{color:#b45309}
.platform-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,380px);gap:18px;align-items:start}
.platform-company-kpis article{min-height:118px}
.platform-usage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}
.platform-usage-grid>div{display:flex;align-items:center;gap:10px;min-height:82px;padding:13px;border:1px solid var(--v4-line);border-radius:11px;background:#f8fafc}
.platform-usage-grid i{display:grid;place-items:center;width:34px;height:34px;flex:0 0 auto;border-radius:9px;background:#e9f6f2;color:var(--v4-green)}
.platform-usage-grid strong,.platform-usage-grid small{display:block}
.platform-usage-grid strong{color:var(--v4-ink);font-size:1.05rem;font-weight:650}
.platform-usage-grid small{margin-top:2px;color:var(--v4-muted);font-size:.66rem}
.platform-management-form,.platform-note-form{display:grid;gap:13px;margin-top:16px}
.platform-management-form label{margin:0}
.platform-management-form label select,.platform-management-form label input{margin-top:6px}
.platform-note-form textarea{min-height:104px;padding:11px 12px;resize:vertical}
.platform-external-link{display:flex;align-items:center;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--v4-line);color:var(--v4-green);font-size:.74rem;font-weight:600;text-decoration:none}
.platform-notes{display:grid;gap:9px;margin-top:16px}
.platform-notes article{padding:11px 12px;border-left:3px solid #9dc6bb;background:#f7fafc}
.platform-notes p{margin:0;color:var(--v4-copy);font-size:.75rem;line-height:1.55}
.platform-notes small{display:block;margin-top:7px;color:var(--v4-muted);font-size:.65rem}
.platform-event-list>div{justify-content:space-between}
.platform-event-list>div>i{color:#0f9f78}
.platform-event-list>div.is-error>i{color:#d97706}
.platform-company-page :is(button,select,input):disabled{cursor:not-allowed;opacity:.5}
.platform-addon-picker{display:grid;gap:8px;margin:0;padding:0;border:0}
.platform-addon-picker legend{margin-bottom:6px;color:#42536b;font-size:.69rem;font-weight:600}
.platform-addon-picker>label{position:relative;margin:0;cursor:pointer}
.platform-addon-picker>label>input{position:absolute;width:1px;height:1px;opacity:0}
.platform-addon-picker>label>span{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center;min-height:57px;padding:9px 10px;border:1px solid var(--v4-line);border-radius:10px;background:#fff}
.platform-addon-picker>label>span>i{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#f1f5f9;color:#64748b}
.platform-addon-picker>label strong,.platform-addon-picker>label small{display:block}
.platform-addon-picker>label strong{color:var(--v4-ink);font-size:.76rem;font-weight:600}
.platform-addon-picker>label small{margin-top:2px;color:var(--v4-muted);font-size:.64rem;font-weight:400}
.platform-addon-picker>label em{color:var(--v4-muted);font-size:.67rem;font-style:normal;font-weight:600;white-space:nowrap}
.platform-addon-picker>label>input:checked+span{border-color:#8dd7c2;background:#eefaf6;box-shadow:inset 3px 0 #0f8a72}
.platform-addon-picker>label>input:checked+span>i{background:#dff6ee;color:#08745f}
.platform-addon-picker>label>input:focus-visible+span{outline:2px solid #2563eb;outline-offset:2px}
.platform-addon-picker>label.is-unreleased>span{border-style:dashed;background:#f8fafc;box-shadow:none;color:#64748b}
.platform-addon-picker>label.is-unreleased>span>i{background:#eef2f7;color:#94a3b8}
.platform-release-centre{border-top:3px solid #6d28d9}
.platform-release-form{display:grid;gap:14px;margin-top:16px}
.platform-release-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.platform-release-grid>label>span{grid-template-columns:auto minmax(0,1fr);align-items:start;min-height:96px}
.platform-release-grid>label em{grid-column:1/-1;padding-top:7px;border-top:1px solid var(--v4-line);color:#7c3aed}
.platform-release-grid>label>input:checked+span em{color:#08745f}
.platform-release-grid>article{display:grid;align-content:start;gap:12px;min-width:0;padding:13px;border:1px solid var(--v4-line);background:#f8fafc}
.platform-release-grid>article.is-coming-soon{border-color:#c4b5fd;background:#faf8ff}
.platform-release-grid>article.is-live{border-color:#8dd7c2;background:#eefaf6;box-shadow:inset 3px 0 #0f8a72}
.platform-release-module{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;align-items:center;min-height:42px}
.platform-release-module>i{display:grid;place-items:center;width:32px;height:32px;background:#eef2f7;color:#64748b}
.platform-release-grid>article.is-coming-soon .platform-release-module>i{background:#ede9fe;color:#6d28d9}
.platform-release-grid>article.is-live .platform-release-module>i{background:#dff6ee;color:#08745f}
.platform-release-module strong,.platform-release-module small{display:block}.platform-release-module strong{color:var(--v4-ink);font-size:.76rem;font-weight:600}.platform-release-module small{margin-top:2px;color:var(--v4-muted);font-size:.64rem;font-weight:400}
.platform-release-grid article label>span{display:block;margin-bottom:5px;color:#52637a;font-size:.64rem;font-weight:600}
.platform-release-grid article select{width:100%;min-height:38px;padding:0 9px;border:1px solid var(--v4-line-strong);background:#fff;color:var(--v4-ink);font:inherit;font-size:.7rem;font-weight:500}
.platform-release-grid article>p{margin:0;padding-top:9px;border-top:1px solid var(--v4-line);color:var(--v4-muted);font-size:.64rem;line-height:1.45}
.platform-release-counts{display:flex;flex-wrap:wrap;gap:7px}.platform-release-counts span{padding:6px 9px;border:1px solid var(--v4-line);color:var(--v4-muted);font-size:.67rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.platform-release-footer{display:flex;justify-content:space-between;gap:16px;align-items:center;padding-top:14px;border-top:1px solid var(--v4-line)}
.platform-release-footer p{margin:0;color:var(--v4-muted);font-size:.72rem}.platform-release-footer p i{margin-right:5px;color:#7c3aed}
.platform-addon-total{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid var(--v4-line);border-bottom:1px solid var(--v4-line);color:var(--v4-muted);font-size:.7rem}
.platform-addon-total strong{color:var(--v4-ink);font-weight:600;text-align:right}
.billing-addon-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:16px}
.billing-addon-grid article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;min-height:70px;padding:12px;border:1px solid var(--v4-line);border-radius:11px;background:#f8fafc}
.billing-addon-grid article>i{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#eef2f7;color:#64748b}
.billing-addon-grid strong,.billing-addon-grid small{display:block}
.billing-addon-grid strong{color:var(--v4-ink);font-size:.78rem;font-weight:600}
.billing-addon-grid small{margin-top:3px;color:var(--v4-muted);font-size:.67rem;font-weight:400}
.billing-addon-grid em{color:#64748b;font-size:.67rem;font-style:normal;font-weight:600;white-space:nowrap}
.billing-addon-grid article.is-enabled{border-color:#9bdcc9;background:#effaf6}
.billing-addon-grid article.is-enabled>i{background:#dbf5ec;color:#08745f}
.billing-addon-grid article.is-enabled em{color:#08745f}
.billing-addon-grid article.is-coming-soon{border-style:dashed;border-color:#c4b5fd;background:#faf8ff}.billing-addon-grid article.is-coming-soon>i{background:#ede9fe;color:#6d28d9}.billing-addon-grid article.is-coming-soon em{color:#6d28d9}
@media(max-width:1180px){.platform-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-overview-grid,.platform-detail-grid{grid-template-columns:1fr}.platform-usage-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.platform-release-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:767.98px){.platform-header-actions{width:100%}.platform-header-actions .app-btn{flex:1}.platform-kpis,.platform-bottom-grid,.platform-filter-bar,.billing-addon-grid,.platform-release-grid{grid-template-columns:1fr}.platform-overview-grid{display:grid}.platform-usage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-company-table{min-width:820px}.platform-search-control{grid-template-columns:auto minmax(0,1fr)}.platform-search-control .app-btn{grid-column:1/-1;border-radius:0}.platform-chart{min-height:195px}.platform-chart svg{height:145px}.platform-release-footer{align-items:stretch;flex-direction:column}.platform-release-footer .app-btn{justify-content:center}}
