/* 4zure Certificate Portal parity layer v0.8.1
   Visual/UX authority: 4zurePortal frontend commit dc6bcc54a5d0edbe24e5a196d036259627ca2725.
   Loads after historical Legacy CSS and the first shell layer. */

:root {
  --canvas-strong:#eeebe4;
  --surface-raised:#fff;
  --surface-subtle:#efeee9;
  --positive:#2f9650;
  --positive-bg:#e8f6eb;
  --warning:#aa6b16;
  --warning-bg:#fbf0dc;
  --danger:#b94d4d;
  --danger-bg:#fbe9e9;
  --accent:#376f5a;
  --accent-bg:#e8f2ed;
  --shadow-md:0 1px 2px rgba(20,25,21,.05),0 18px 45px rgba(20,25,21,.07);
  --premium-border:color-mix(in srgb,var(--brand-500) 22%,var(--border));
  --premium-panel-tint:color-mix(in srgb,var(--surface) 96%,var(--canvas));
  --premium-shadow:0 1px 2px rgba(18,24,20,.05),0 18px 50px rgba(18,24,20,.075);
  --shell-brand-row-height:5.2rem;
  --shell-control-gap:.7rem;
  --shell-control-padding-inline:.85rem;
  --shell-sidebar-surface:
    radial-gradient(circle at 20% -10%,rgba(84,191,85,.18),transparent 17rem),
    linear-gradient(180deg,var(--graphite-900),var(--graphite-950));
}

html,
body {
  background:var(--canvas);
}

.page {
  min-height:100vh;
  min-height:100dvh;
  width:100%;
  display:grid;
  place-items:center;
  padding:
    max(1.5rem,env(safe-area-inset-top))
    max(1.5rem,env(safe-area-inset-right))
    max(1.5rem,env(safe-area-inset-bottom))
    max(1.5rem,env(safe-area-inset-left));
  color:var(--ink-900);
  background-color:var(--canvas);
  background-image:
    radial-gradient(circle at 14% 12%,color-mix(in srgb,var(--brand-500) 9%,transparent),transparent 28rem),
    linear-gradient(180deg,color-mix(in srgb,var(--canvas) 94%,var(--surface-muted)),var(--canvas));
}

.page:has(#portalView:not([hidden])) {
  display:block;
  min-height:100vh;
  min-height:100dvh;
  width:100%;
  margin:0;
  padding:0 !important;
  background:var(--canvas);
}

.portal.portal-shell {
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  min-height:100vh;
  min-height:100dvh;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:var(--canvas) !important;
  box-shadow:none !important;
}

.portal-shell,
.portal-shell__body,
.main-content,
.portal-header,
.dashboard,
.dashboard-grid,
.toolbar,
.report-card-grid,
.report-object-card,
.object-card-main,
.object-card-field,
.object-card-details,
.object-card-actions,
.product-summary-panel,
.product-summary-grid,
.product-summary-card,
.license-status,
.license-product-summary,
.performed-by-summary,
.performed-by-controls,
.assignments-overview-panel,
.planned-panel,
.followup-panel {
  min-width:0;
}

.portal-shell__body {
  width:100%;
}

.sidebar {
  min-height:100vh;
  min-height:100dvh;
  padding:0 .75rem 1rem;
  background:var(--shell-sidebar-surface);
}

.sidebar__brand-row {
  min-height:var(--shell-brand-row-height);
  padding:0 .5rem;
}

.sidebar__brand-row .brand img {
  max-width:7.2rem;
  max-height:2.25rem;
}

body.unified-product-view .sidebar__navigation > p,
body.unified-product-view .product-navigation {
  display:none !important;
}

body.unified-product-view #workflowTabs::before {
  margin-top:0;
}

.product-navigation .product-pill,
#workflowTabs button {
  min-height:3rem;
  grid-template-columns:1.6rem minmax(0,1fr);
  gap:.7rem;
  padding:.55rem .7rem;
  border-radius:.75rem;
}

#workflowTabs button::before {
  display:none !important;
  content:none !important;
}

.portal-nav-icon {
  display:grid;
  width:1.6rem;
  height:1.6rem;
  place-items:center;
  color:rgba(226,234,228,.72);
}

.portal-nav-icon svg {
  width:1.1rem;
  height:1.1rem;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.portal-nav-copy {
  display:grid;
  min-width:0;
  gap:.08rem;
}

.portal-nav-copy strong {
  overflow:hidden;
  color:inherit;
  font-size:.88rem;
  font-weight:690;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.portal-nav-copy small {
  overflow:hidden;
  color:rgba(226,234,228,.57);
  font-size:.7rem;
  font-weight:500;
  line-height:1.3;
  text-overflow:ellipsis;
  white-space:nowrap;
}

#workflowTabs button.active .portal-nav-icon {
  color:#72d99a;
}

.topbar {
  min-width:0;
  min-height:var(--shell-topbar-height);
  padding:.8rem clamp(1rem,2.4vw,2.25rem);
}

.topbar__actions {
  flex:0 0 auto;
}

.portal-session-source {
  display:none !important;
}

.portal-session-control {
  position:relative;
  min-width:0;
  min-height:var(--shell-control-height);
  display:flex;
  align-items:center;
  gap:var(--shell-control-gap);
}

.portal-user-menu {
  position:relative;
  min-width:0;
}

.portal-user-menu__trigger {
  min-width:0;
  min-height:var(--shell-control-height);
  max-width:min(18rem,calc(100vw - 2rem));
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:.6rem;
  padding:.25rem .55rem .25rem .3rem;
  border:1px solid var(--border);
  border-radius:var(--shell-control-radius);
  color:var(--ink-900);
  background:color-mix(in srgb,var(--surface) 94%,transparent);
  box-shadow:var(--shadow-sm);
  text-align:left;
}

.portal-user-menu__trigger:hover,
.portal-user-menu__trigger:focus-visible,
.portal-user-menu__trigger[aria-expanded="true"] {
  background:var(--surface-muted);
}

.portal-user-menu__avatar {
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:.68rem;
  color:#f4f8f4;
  background:linear-gradient(145deg,#3f5948,#27352c);
  font-size:.7rem;
  font-weight:820;
}

.portal-user-menu__identity {
  min-width:0;
}

.portal-user-menu__identity small,
.portal-user-menu__identity strong,
.portal-user-menu__identity span {
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.portal-user-menu__identity small {
  color:var(--ink-500);
  font-size:.58rem;
}

.portal-user-menu__identity strong {
  margin-top:.05rem;
  font-size:.76rem;
}

.portal-user-menu__identity span {
  margin-top:.03rem;
  color:var(--ink-500);
  font-size:.62rem;
}

.portal-user-menu__chevron {
  width:.9rem;
  height:.9rem;
  color:var(--ink-500);
  transition:transform 150ms ease;
}

.portal-user-menu__trigger[aria-expanded="true"] .portal-user-menu__chevron {
  transform:rotate(180deg);
}

.portal-user-menu__panel {
  position:absolute;
  z-index:70;
  top:calc(100% + .55rem);
  right:0;
  width:min(19rem,calc(100vw - 1.5rem));
  padding:.45rem;
  border:1px solid var(--border);
  border-radius:calc(var(--shell-control-radius) + .13rem);
  color:var(--ink-900);
  background:var(--surface-raised);
  box-shadow:var(--shadow-lg);
}

.portal-user-menu__panel[hidden] {
  display:none;
}

.portal-user-menu__summary {
  min-width:0;
  padding:.75rem;
  border-bottom:1px solid var(--border);
}

.portal-user-menu__summary strong,
.portal-user-menu__summary span,
.portal-user-menu__summary small {
  display:block;
  overflow-wrap:anywhere;
}

.portal-user-menu__summary strong {
  font-size:.8rem;
}

.portal-user-menu__summary span,
.portal-user-menu__summary small {
  margin-top:.18rem;
  color:var(--ink-500);
  font-size:.66rem;
}

.portal-user-menu__panel > button {
  width:100%;
  min-height:var(--shell-control-height);
  display:flex;
  align-items:center;
  margin-top:.15rem;
  padding:.55rem var(--shell-control-padding-inline);
  border-radius:var(--shell-control-radius);
  color:var(--danger);
  background:transparent;
  font-size:.72rem;
  font-weight:720;
  text-align:left;
}

.portal-user-menu__panel > button:hover,
.portal-user-menu__panel > button:focus-visible {
  background:var(--surface-muted);
}

.main-content {
  width:min(100%,var(--shell-content-max-width));
  margin:0 auto;
  padding:var(--shell-content-padding);
}

.main-content .portal-header {
  display:block;
  margin:0 0 1.5rem;
  padding:0 0 1.25rem;
  border-bottom:1px solid var(--border);
}

.main-content .portal-header > div:first-child {
  max-width:57rem;
}

.toolbar {
  position:sticky;
  top:calc(var(--shell-topbar-height) + .75rem);
  display:flex !important;
  flex-wrap:wrap;
  align-items:center;
  gap:.65rem !important;
  width:100%;
  margin-bottom:1rem;
  padding:.7rem;
}

.toolbar #searchInput {
  flex:1 1 22rem;
  width:auto !important;
  max-width:none !important;
  min-width:0;
  min-height:var(--shell-control-height);
}

#countText {
  flex:0 0 auto;
}

.performed-by-controls {
  min-width:0;
  margin-left:0 !important;
}

.performed-by-controls label {
  min-width:0;
  min-height:var(--shell-control-height);
  padding:.25rem .4rem .25rem .65rem;
}

.performed-by-controls select {
  min-width:8.25rem;
  min-height:var(--shell-control-height);
  padding:0 .4rem;
}

.view-toggle {
  min-height:var(--shell-control-height);
  padding:0 !important;
  gap:.2rem;
}

#viewModeToggle.view-toggle button {
  min-height:var(--shell-control-height) !important;
  padding:0 .8rem;
}

.license-product-summary > div {
  min-width:0 !important;
  flex:1 1 15rem;
}

.product-summary-grid {
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}

.product-summary-card {
  min-width:0;
}

.dashboard-grid {
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
}

.dashboard-card-main,
.dashboard-card-documents,
.dashboard-card-wide {
  min-width:0;
}

.report-card-grid {
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}

.report-object-card {
  overflow:hidden;
}

.report-details-toggle {
  width:100%;
  min-height:var(--shell-control-height);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  padding:.6rem .8rem;
  border:1px solid var(--border);
  border-radius:.8rem;
  color:var(--ink-700);
  background:var(--surface-muted);
  font-size:.78rem;
  font-weight:760;
  text-align:left;
}

.report-details-toggle:hover,
.report-details-toggle:focus-visible {
  color:var(--ink-900);
  border-color:var(--border-strong);
  background:var(--surface-subtle);
}

.report-details-toggle svg {
  width:1rem;
  height:1rem;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:transform 150ms ease;
}

.report-details-toggle[aria-expanded="true"] svg {
  transform:rotate(180deg);
}

.report-object-card:not(.is-expanded) .object-card-details,
.report-object-card:not(.is-expanded) .work-meta-panel,
.report-object-card:not(.is-expanded) .object-card-field .unified-inline-row,
.report-object-card:not(.is-expanded) .object-card-field .inline-edit-row,
.report-object-card:not(.is-expanded) .object-card-field .inline-doc-row,
.report-object-card:not(.is-expanded) .object-card-assignment .inline-doc-row {
  display:none !important;
}

.report-object-card:not(.is-expanded) .object-card-field,
.report-object-card:not(.is-expanded) .object-card-asset,
.report-object-card:not(.is-expanded) .object-card-assignment {
  min-height:0 !important;
  grid-template-rows:auto auto auto !important;
}

.report-object-card:not(.is-expanded) .object-card-field > strong,
.report-object-card:not(.is-expanded) .object-card-field > small {
  min-height:0 !important;
}

.report-object-card:not(.is-expanded) .object-card-main {
  gap:.65rem !important;
}

.object-card-select {
  width:44px !important;
  min-width:44px;
  min-height:44px !important;
}

.object-card-select input,
.select-visible input,
.bulk-check input,
.planned-completed-chip input {
  width:18px !important;
  height:18px !important;
}

.select-visible,
.bulk-check,
.planned-completed-chip {
  min-height:44px !important;
  align-items:center;
}

.refresh-btn,
.link-btn,
.assignment-btn,
.assignment-pdf-btn,
.object-override-btn,
.hide-report-btn,
.work-save-btn,
.followup-message-actions button,
.followup-message-form button,
.performed-by-chip,
.dashboard-status-filter-indicator button,
.assignment-toggle-btn,
.message-priority-toggle {
  min-height:var(--shell-control-height) !important;
}

.inline-card-input,
.work-meta-grid input,
.work-meta-grid select,
#followupSearchInput,
#followupMessageSearch,
.followup-message-form input,
.followup-message-form textarea {
  min-height:var(--shell-control-height) !important;
}

.object-card-field .inline-card-input,
.object-card-asset .inline-card-input,
.object-card-assignment .inline-card-input,
.object-card-field .object-override-btn,
.object-card-field .assignment-btn,
.object-card-asset .object-override-btn,
.object-card-assignment .assignment-btn {
  height:var(--shell-control-height) !important;
  min-height:var(--shell-control-height) !important;
}

.card-action-group .assignment-btn,
.card-action-group .assignment-pdf-btn,
.card-action-group .link-btn {
  min-height:var(--shell-control-height) !important;
}

.work-meta-grid input,
.work-meta-grid select,
#followupSearchInput,
#followupMessageSearch,
.followup-message-form input,
.followup-message-form textarea,
.inline-card-input {
  border-color:var(--border) !important;
  border-radius:.78rem !important;
  background:var(--surface) !important;
  color:var(--ink-900) !important;
}

:focus-visible {
  outline:3px solid var(--focus);
  outline-offset:3px;
}

/* Latest Portal auth composition. */
.login-card {
  width:min(100%,43rem) !important;
  min-height:0 !important;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(1.75rem,4vw,3rem) !important;
  border:1px solid var(--premium-border) !important;
  border-radius:var(--radius-xl) !important;
  color:var(--ink-900) !important;
  background:
    radial-gradient(circle at 100% 0%,color-mix(in srgb,var(--brand-500) 7%,transparent),transparent 18rem),
    var(--premium-panel-tint) !important;
  box-shadow:var(--premium-shadow) !important;
  backdrop-filter:none !important;
}

.login-brand {
  position:static !important;
  display:flex;
  align-items:center;
  min-height:3.2rem;
  margin:0 0 clamp(2rem,5vw,3.25rem) !important;
  padding:0 0 1.2rem;
  border-bottom:1px solid var(--border);
}

.login-brand__mark {
  width:min(10.5rem,52vw) !important;
  height:3.2rem !important;
  min-width:0;
  min-height:0;
  padding:0 !important;
  background:transparent !important;
}

.login-brand__mark img {
  width:100%;
  max-width:100% !important;
  max-height:3.2rem !important;
  object-fit:contain;
  object-position:left center;
  filter:brightness(.38) saturate(1.35) contrast(1.08);
}

.login-kicker {
  margin:0 !important;
  color:var(--accent) !important;
  font-size:.75rem !important;
}

.login-card h1 {
  max-width:40rem;
  margin:.75rem 0 .9rem !important;
  color:var(--ink-900) !important;
  font-size:clamp(2rem,5vw,3.35rem) !important;
}

.login-card .lead {
  max-width:39rem;
  margin:0 0 1.8rem !important;
  color:var(--ink-600) !important;
  font-size:1rem !important;
  line-height:1.65 !important;
}

.login-card label {
  color:var(--ink-700) !important;
}

.login-card input {
  min-height:var(--shell-control-height) !important;
  border:1px solid var(--border) !important;
  background:var(--surface) !important;
  color:var(--ink-900) !important;
}

.login-card input::placeholder {
  color:var(--ink-500) !important;
}

.login-card input:hover {
  border-color:var(--border-strong) !important;
}

.login-card input:focus {
  border-color:color-mix(in srgb,var(--brand-600) 62%,var(--border)) !important;
  outline:3px solid color-mix(in srgb,var(--brand-500) 24%,transparent) !important;
  background:var(--surface) !important;
}

.login-card button[type="submit"] {
  min-height:3rem !important;
  border-color:color-mix(in srgb,var(--brand-700) 78%,#0d2414) !important;
  background:linear-gradient(180deg,color-mix(in srgb,var(--brand-600) 92%,white),var(--brand-700)) !important;
}

.login-card .error:not(:empty) {
  border-color:color-mix(in srgb,var(--danger) 28%,var(--border)) !important;
  background:var(--danger-bg) !important;
  color:var(--danger) !important;
}

@media (max-width:1320px) {
  .dashboard-grid {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media (max-width:1180px) {
  .portal-user-menu__identity {
    display:none;
  }

  .portal-user-menu__trigger {
    width:var(--shell-control-height);
    padding:.2rem;
  }

  .portal-user-menu__chevron {
    display:none;
  }
}

@media (max-width:1040px) {
  .portal.portal-shell {
    display:block !important;
    grid-template-columns:minmax(0,1fr) !important;
  }

  .portal-shell__body {
    grid-column:auto !important;
  }

  .sidebar {
    width:var(--shell-drawer-width) !important;
    transform:translateX(-105%);
    transition:transform 190ms cubic-bezier(.2,.8,.2,1);
    box-shadow:var(--shadow-lg);
  }

  .sidebar.sidebar--open {
    transform:translateX(0);
  }

  .sidebar__close,
  .topbar__menu {
    display:grid !important;
  }

  .navigation-scrim {
    position:fixed;
    z-index:25;
    inset:0;
    display:block;
    width:100%;
    height:100%;
    padding:0;
    border:0;
    border-radius:0;
    background:rgba(7,11,8,.56);
    box-shadow:none;
    backdrop-filter:blur(3px);
  }

  .main-content {
    width:100%;
  }

  .report-card-grid {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media (max-width:900px) {
  #viewModeToggle.view-toggle {
    display:none !important;
  }

  .report-card-grid {
    grid-template-columns:1fr !important;
  }

  .object-card-main,
  .object-card-details,
  .card-action-group,
  .work-meta-grid {
    grid-template-columns:1fr !important;
  }
}

@media (max-width:720px) {
  :root {
    --shell-topbar-height:4.25rem;
    --shell-content-padding:
      1.35rem max(.8rem,env(safe-area-inset-right)) 4rem
      max(.8rem,env(safe-area-inset-left));
  }

  .page {
    place-items:center;
    padding:
      max(1.25rem,env(safe-area-inset-top))
      max(1.25rem,env(safe-area-inset-right))
      max(1.25rem,env(safe-area-inset-bottom))
      max(1.25rem,env(safe-area-inset-left));
  }

  .login-card {
    padding:clamp(1.35rem,5vw,1.8rem) !important;
    border-radius:var(--radius-lg) !important;
  }

  .login-brand {
    margin-bottom:2rem !important;
    padding-bottom:1rem;
  }

  .topbar {
    padding:
      .65rem max(.8rem,env(safe-area-inset-right)) .65rem
      max(.8rem,env(safe-area-inset-left));
  }

  .topbar__actions {
    gap:.4rem;
  }

  .toolbar {
    position:relative;
    top:auto;
    display:grid !important;
    grid-template-columns:minmax(0,1fr);
  }

  .toolbar #searchInput,
  .performed-by-controls,
  .performed-by-controls label,
  .performed-by-controls select {
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
  }

  .performed-by-controls {
    display:grid !important;
    grid-template-columns:minmax(0,1fr);
  }

  .product-summary-grid,
  .dashboard-grid {
    grid-template-columns:1fr !important;
  }

  .product-summary-card,
  .product-summary-head {
    min-width:0;
    flex-direction:column;
  }

  .license-product-summary {
    display:grid !important;
    grid-template-columns:minmax(0,1fr);
  }

  .license-product-summary > div {
    width:100%;
  }

  .object-card-top {
    grid-template-columns:44px minmax(0,1fr) auto !important;
  }

  .hide-report-btn {
    padding-inline:.7rem !important;
  }

  .portal-user-menu__panel {
    position:fixed;
    top:calc(var(--shell-topbar-height) + .1rem);
    right:max(.5rem,env(safe-area-inset-right));
  }
}

@media (max-width:480px) {
  .topbar__eyebrow {
    display:none;
  }

  .topbar__title {
    max-width:9.5rem;
    font-size:.88rem;
  }

  .sidebar {
    width:min(19rem,calc(100vw - 3rem)) !important;
  }

  .report-object-card {
    padding:14px !important;
  }

  .object-card-top {
    gap:.5rem !important;
  }
}

@media (max-width:360px) {
  .login-brand__mark {
    width:9rem !important;
    height:2.8rem !important;
  }

  .login-card button[type="submit"] {
    width:100%;
  }
}

@media (max-height:520px) and (min-width:700px) {
  .page:not(:has(#portalView:not([hidden]))) {
    place-items:start center;
    padding:1rem;
  }

  .login-card {
    padding:1.4rem 2rem !important;
  }

  .login-brand {
    min-height:2.6rem;
    margin-bottom:1rem !important;
    padding-bottom:.75rem;
  }

  .login-brand__mark {
    height:2.5rem !important;
  }

  .login-card h1 {
    font-size:2rem !important;
  }

  .login-card .lead {
    margin-bottom:1rem !important;
    line-height:1.45 !important;
  }
}

@media (prefers-reduced-motion:reduce) {
  .sidebar,
  .portal-user-menu__chevron,
  .report-details-toggle svg {
    transition:none !important;
  }
}

/* Neutralize Legacy generic input width on the visually-hidden switch control. */
#hiddenReportsSwitch > #showHiddenReportsInput {
  width:1px !important;
  min-width:0 !important;
  max-width:1px !important;
  height:1px !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
}

.skip-link {
  min-height:44px;
  display:flex;
  align-items:center;
}

/* Information hierarchy cleanup: one navigation dimension, one page title. */
body.unified-product-view .sidebar__navigation > p:first-child {
  display:none !important;
}

body.unified-product-view #workflowTabs {
  margin-top:0 !important;
}

body.unified-product-view #workflowTabs::before {
  content:"Arbeidsflyt";
  display:block;
  margin:0 0 .45rem .45rem;
  color:rgba(226,234,228,.46);
  font-size:.63rem;
  font-weight:760;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.topbar__eyebrow {
  color:var(--ink-500);
  font-size:.63rem;
  letter-spacing:.08em;
}

.topbar__title {
  font-size:.93rem;
  font-weight:720;
}

.main-content .portal-header h1 {
  margin-bottom:.55rem;
}

.main-content .portal-header .lead {
  max-width:48rem;
}

@media (max-width:720px) {
  .main-content .portal-header {
    margin-bottom:1.1rem;
    padding-bottom:1rem;
  }
}

/* Legacy has one workspace and one navigation group: remove non-actionable hierarchy. */
.sidebar__context {
  display:none !important;
}

body.unified-product-view #workflowTabs::before {
  display:none !important;
  content:none !important;
}

.content-eyebrow {
  display:none !important;
}

.sidebar__footer--compact {
  min-height:3rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  margin-top:auto;
  padding:.9rem .55rem .2rem;
  border-top:1px solid rgba(255,255,255,.08);
  color:rgba(226,234,228,.55);
  font-size:.67rem;
}

.sidebar__integration {
  display:inline-flex;
  align-items:center;
  gap:.45rem;
}

.sidebar__footer--compact .environment-card__version {
  color:rgba(226,234,228,.42);
  font-size:.64rem;
}

.portal.portal-shell[hidden] {
  display:none !important;
}

/* Approved Portal brand lockup: logo + Product Owner slogan as real UI text. */
.sidebar__brand-lockup {
  min-width:0;
  display:flex;
  align-items:center;
  gap:.68rem;
}

.wordmark {
  width:7.2rem;
  height:2.25rem;
  display:block;
  flex:0 0 auto;
  background-image:url("/brand/4zure-logo-sidebar.svg");
  background-position:left center;
  background-repeat:no-repeat;
  background-size:contain;
  color:transparent;
  font-size:0;
  line-height:0;
  text-decoration:none;
}

.wordmark > * {
  display:none;
}

.sidebar__brand-divider {
  width:1px;
  height:2.2rem;
  flex:0 0 auto;
  background:rgba(226,234,228,.2);
}

.sidebar__brand-statement {
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:.08rem;
  color:rgba(226,234,228,.62);
  font-size:.59rem;
  font-weight:690;
  letter-spacing:.025em;
  line-height:1.08;
  white-space:nowrap;
}

.sidebar__brand-statement > span {
  display:block;
}

@media (max-width:480px) {
  .sidebar__brand-lockup {
    gap:.52rem;
  }

  .wordmark {
    width:6rem;
    height:1.9rem;
  }

  .sidebar__brand-divider {
    height:1.9rem;
  }

  .sidebar__brand-statement {
    font-size:.54rem;
    letter-spacing:.018em;
  }
}

@media (max-width:360px) {
  .wordmark {
    width:5.45rem;
    height:1.72rem;
  }

  .sidebar__brand-divider {
    height:1.72rem;
  }

  .sidebar__brand-statement {
    font-size:.5rem;
  }
}

/* Full-bleed application contract: no historical outer card/chrome around signed-in Portal. */
html:has(#portalView:not([hidden])),
body:has(#portalView:not([hidden])) {
  margin:0 !important;
  padding:0 !important;
  background:var(--canvas) !important;
}

body:has(#portalView:not([hidden])) > .page {
  width:100% !important;
  max-width:none !important;
  min-height:100vh !important;
  min-height:100dvh !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
}

#portalView:not([hidden]) {
  position:relative;
  inset:0;
  width:100% !important;
  max-width:none !important;
  min-height:100vh !important;
  min-height:100dvh !important;
}

/* Auth must not inherit historical Portal page/card offsets. */
.page:not(:has(#portalView:not([hidden]))) {
  min-height:100vh !important;
  min-height:100dvh !important;
  display:grid !important;
  place-items:center !important;
  padding:
    max(1.5rem,env(safe-area-inset-top))
    max(1.5rem,env(safe-area-inset-right))
    max(1.5rem,env(safe-area-inset-bottom))
    max(1.5rem,env(safe-area-inset-left)) !important;
}

.page:not(:has(#portalView:not([hidden]))) .login-card {
  margin:0 !important;
}

@media (max-width:720px) {
  .page:not(:has(#portalView:not([hidden]))) {
    padding:
      max(1rem,env(safe-area-inset-top))
      max(.75rem,env(safe-area-inset-right))
      max(1rem,env(safe-area-inset-bottom))
      max(.75rem,env(safe-area-inset-left)) !important;
  }
}

@media (max-height:520px) and (min-width:700px) {
  .page:not(:has(#portalView:not([hidden]))) {
    place-items:start center !important;
    padding:1rem !important;
  }

  .page:not(:has(#portalView:not([hidden]))) .login-card {
    margin:0 !important;
  }
}

/* Planning workspace parity: remove historical fixed-width grid constraints. */
.planned-header {
  display:grid !important;
  grid-template-columns:minmax(0,1fr) !important;
  gap:1rem !important;
  align-items:start !important;
}

.planned-header > * {
  min-width:0;
}

.planned-inline-form {
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  justify-self:stretch !important;
  display:grid !important;
  grid-template-columns:
    minmax(0,1.25fr)
    minmax(0,.9fr)
    minmax(0,1fr)
    minmax(6.5rem,.42fr)
    minmax(9rem,.55fr) !important;
  gap:.65rem !important;
}

.planned-inline-form > * {
  min-width:0 !important;
  max-width:100%;
}

.planned-inline-form .planned-add-btn {
  width:100% !important;
  min-width:0 !important;
}

.planned-urgent-inline {
  width:100%;
  min-width:0 !important;
}

@media (max-width:900px) {
  .planned-inline-form {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  .planned-inline-form #plannedObjectInput,
  .planned-inline-form #plannedNoteInput {
    grid-column:1 / -1;
  }
}

@media (max-width:560px) {
  .planned-inline-form {
    grid-template-columns:minmax(0,1fr) !important;
  }

  .planned-inline-form > * {
    grid-column:auto !important;
  }
}

.planned-grid {
  grid-template-columns:repeat(auto-fit,minmax(min(20rem,100%),1fr)) !important;
}

.planned-card,
.planned-card-top,
.planned-card-collapsible-body,
.planned-edit-grid,
.planned-details,
.planned-actions,
.planned-search-row,
.planned-summary-row,
.planned-summary-counts {
  min-width:0;
  max-width:100%;
}

@media (max-width:720px) {
  .planned-grid,
  .planned-edit-grid,
  .planned-details,
  .planned-actions {
    grid-template-columns:minmax(0,1fr) !important;
  }

  .planned-card-top {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
  }

  .planned-badges {
    justify-content:flex-start !important;
  }
}

/* Report-local product filtering replaces obsolete global Product navigation. */
.report-product-filter {
  min-width:0;
  display:flex;
  align-items:center;
  gap:.55rem;
}

.report-product-filter__label {
  color:var(--ink-500);
  font-size:.68rem;
  font-weight:760;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.report-product-filter__buttons {
  display:inline-flex;
  min-width:0;
  padding:.2rem;
  border:1px solid var(--border);
  border-radius:var(--shell-control-radius);
  background:var(--surface);
}

.report-product-filter__buttons button {
  min-width:4.5rem;
  min-height:44px;
  margin:0;
  padding:.55rem .8rem;
  border:0;
  border-radius:calc(var(--shell-control-radius) - .2rem);
  background:transparent;
  color:var(--ink-600);
  box-shadow:none;
  font:inherit;
  font-size:.78rem;
  font-weight:720;
}

.report-product-filter__buttons button:hover {
  background:var(--surface-muted);
  color:var(--ink-900);
}

.report-product-filter__buttons button.active,
.report-product-filter__buttons button[aria-pressed="true"] {
  background:color-mix(in srgb,var(--brand-500) 11%,var(--surface));
  color:var(--brand-700);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand-500) 24%,var(--border));
}

/* Report-only controls must never leak into planning, assignments or follow-up. */
body:not([data-workflow-tab="reports"]) #hiddenReportsSwitch,
body:not([data-workflow-tab="reports"]) #viewModeToggle,
body:not([data-workflow-tab="reports"]) #performedByControls,
body:not([data-workflow-tab="reports"]) #productSummaryPanel,
body:not([data-workflow-tab="reports"]) #performedBySummary,
body:not([data-workflow-tab="reports"]) #bulkControls,
body:not([data-workflow-tab="reports"]) #documentPackageActions,
body:not([data-workflow-tab="reports"]) #licenseStatus,
body:not([data-workflow-tab="reports"]) #dashboardCards,
body:not([data-workflow-tab="reports"]) #reportCards,
body:not([data-workflow-tab="reports"]) .table-wrap,
body:not([data-workflow-tab="reports"]) .toolbar,
body:not([data-workflow-tab="reports"]) .search-row {
  display:none !important;
}

@media (max-width:720px) {
  .report-product-filter {
    width:100%;
    display:grid;
    gap:.35rem;
  }

  .report-product-filter__buttons {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    width:100%;
  }

  .report-product-filter__buttons button {
    min-width:0;
    width:100%;
  }
}

/* Auth layout must use the same centered 43rem composition as 4zure Portal. */
.page:not(:has(#portalView:not([hidden]))) {
  grid-template-columns:minmax(0,43rem) !important;
  justify-content:center !important;
  align-content:center !important;
}

.page:not(:has(#portalView:not([hidden]))) .login-card {
  width:100% !important;
  max-width:43rem !important;
  justify-self:stretch !important;
}

@media (max-height:520px) and (min-width:700px) {
  .page:not(:has(#portalView:not([hidden]))) {
    align-content:start !important;
  }
}

/* Dashboard status filtering is report-local and must not leak into other workspaces. */
body:not([data-workflow-tab="reports"]) #dashboardStatusFilterIndicator {
  display:none !important;
}

/* Drive-only bulk packaging is contextual, not a global mixed-product action. */
body[data-workflow-tab="reports"]:not([data-report-product-filter="drive"])
.dashboard-card-documents {
  display:none !important;
}

/* v0.8.1 theme parity and report-card disclosure refinement. */
.login-brand {
  justify-content:space-between;
  gap:1rem;
}

/* Cards must size independently; expanding one must not stretch its sibling. */
.report-card-grid {
  align-items:start !important;
}

.report-object-card {
  align-self:start;
  height:auto !important;
}

.report-details-toggle {
  border-color:color-mix(in srgb,var(--brand-500) 24%,var(--border));
  color:var(--ink-900);
  background:color-mix(in srgb,var(--brand-500) 6%,var(--surface-muted));
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--surface) 35%,transparent);
}

.report-details-toggle:hover,
.report-details-toggle:focus-visible,
.report-details-toggle[aria-expanded="true"] {
  border-color:color-mix(in srgb,var(--brand-500) 48%,var(--border-strong));
  color:var(--ink-900);
  background:color-mix(in srgb,var(--brand-500) 10%,var(--surface-subtle));
}

.report-details-toggle[aria-expanded="true"] {
  box-shadow:inset .2rem 0 0 var(--brand-500);
}

.report-details-all-toggle {
  flex:0 0 auto;
  min-height:var(--shell-control-height);
  padding:0 .8rem;
  border:1px solid var(--border);
  border-radius:var(--shell-control-radius);
  color:var(--ink-700);
  background:var(--surface);
  box-shadow:var(--shadow-sm);
  font-size:.75rem;
  font-weight:760;
  cursor:pointer;
}

.report-details-all-toggle:hover,
.report-details-all-toggle:focus-visible {
  color:var(--ink-900);
  border-color:color-mix(in srgb,var(--brand-500) 42%,var(--border-strong));
  background:color-mix(in srgb,var(--brand-500) 6%,var(--surface));
}

.report-details-all-toggle[aria-pressed="true"] {
  color:var(--ink-900);
  border-color:color-mix(in srgb,var(--brand-500) 48%,var(--border-strong));
  background:color-mix(in srgb,var(--brand-500) 10%,var(--surface));
}

.report-details-all-toggle[hidden] {
  display:none !important;
}

@media (max-width:720px) {
  .report-details-all-toggle {
    width:100%;
  }
}

/* Historical hard-coded light surfaces that remain active in table mode. */
/* Tokenize active Legacy work surfaces so both Portal themes are complete. */
.report-object-card,
.planned-panel,
.planned-card,
.assignments-overview-panel,
.assignment-overview-card,
.assignment-object-card,
.followup-panel,
.followup-card,
.followup-message-card,
.work-meta-panel,
.dashboard-card,
.license-status {
  border-color:var(--border) !important;
  background:var(--surface) !important;
  color:var(--ink-900) !important;
  box-shadow:var(--shadow-sm) !important;
}

.object-card-main > div,
.object-card-field,
.assignment-object-card-meta div,
.followup-card-grid div,
.work-meta-grid input,
.work-meta-grid select,
.followup-message-form input,
.followup-message-form textarea {
  border-color:var(--border) !important;
  background:var(--surface-muted) !important;
  color:var(--ink-900) !important;
}

.object-label,
.object-card-details dt,
.object-card-field > small,
.assignment-object-card-meta span,
.followup-card-grid span,
.followup-card-top small,
.followup-message-card-top small,
.followup-header p,
.planned-header p,
.assignments-overview-header p {
  color:var(--ink-600) !important;
}

.object-card-main strong,
.object-card-details dd,
.object-card-field > strong,
.assignment-object-card-top strong,
.assignment-object-card-meta strong,
.followup-card-top strong,
.followup-card-grid strong,
.followup-message-card-top strong,
.followup-message-card p,
.followup-header h2,
.planned-header h2,
.assignments-overview-header h2,
.followup-message-header h3 {
  color:var(--ink-900) !important;
}

/* Complete token coverage for metadata and follow-up controls in both themes. */
.work-meta-header > span,
.work-meta-grid label span {
  color:var(--ink-600) !important;
}

.work-save-btn {
  border-color:var(--border) !important;
  background:var(--surface-muted) !important;
  color:var(--ink-900) !important;
}

.work-save-btn:hover,
.work-save-btn:focus-visible {
  border-color:var(--border-strong) !important;
  background:var(--surface-subtle) !important;
}

.work-followup {
  background:var(--warning-bg) !important;
  color:var(--warning) !important;
}

.work-failed {
  background:var(--danger-bg) !important;
  color:var(--danger) !important;
}

.work-ignored {
  background:var(--surface-subtle) !important;
  color:var(--ink-700) !important;
}

.work-4zure {
  background:var(--positive-bg) !important;
  color:var(--positive) !important;
}

.work-customer {
  background:var(--accent-bg) !important;
  color:var(--accent) !important;
}

.followup-messages-panel {
  border-top-color:var(--border) !important;
}

.followup-summary span {
  background:var(--positive-bg) !important;
  color:var(--positive) !important;
}

.followup-card.empty,
.followup-message-card.empty,
.followup-message-header p {
  color:var(--ink-600) !important;
}

.followup-message-form button,
.message-priority-toggle,
.followup-message-actions button {
  border-color:var(--border) !important;
  background:var(--surface-muted) !important;
  color:var(--ink-900) !important;
}

.followup-message-form button:hover,
.followup-message-form button:focus-visible,
.message-priority-toggle:hover,
.message-priority-toggle:focus-visible,
.followup-message-actions button:hover,
.followup-message-actions button:focus-visible {
  border-color:var(--border-strong) !important;
  background:var(--surface-subtle) !important;
}

.message-badges span {
  background:var(--positive-bg) !important;
  color:var(--positive) !important;
}

.message-badges .message-open {
  background:var(--positive-bg) !important;
  color:var(--positive) !important;
}

.message-badges .message-closed {
  background:var(--surface-subtle) !important;
  color:var(--ink-700) !important;
}

.status.manual-failed-status,
.assignment-object-status.manual-failed-status {
  background:var(--danger-bg) !important;
  color:var(--danger) !important;
}

.status.manual-ignored-status,
.assignment-object-status.manual-ignored-status {
  background:var(--surface-subtle) !important;
  color:var(--ink-700) !important;
}

.report-object-card.has-manual-status {
  border-color:color-mix(in srgb,var(--danger) 28%,var(--border)) !important;
}

/* v0.8.2: fixed light application theme with a dark branded login card. */
.page:not(:has(#portalView:not([hidden]))) {
  background:
    radial-gradient(circle at 18% 18%,rgba(83,172,69,.08),transparent 27rem),
    linear-gradient(135deg,#f5f3ee 0%,#fbfaf7 52%,#f2f0eb 100%) !important;
}

.page:not(:has(#portalView:not([hidden]))) .login-card {
  border-color:rgba(104,146,116,.30) !important;
  color:#edf1ee !important;
  background:
    radial-gradient(circle at 100% 0%,rgba(83,172,69,.12),transparent 22rem),
    linear-gradient(145deg,#151d18 0%,#18231c 56%,#1a2c22 100%) !important;
  box-shadow:0 22px 60px rgba(20,30,24,.16) !important;
}

.page:not(:has(#portalView:not([hidden]))) .login-brand {
  border-bottom-color:rgba(237,241,238,.14) !important;
}

.page:not(:has(#portalView:not([hidden]))) .login-brand__mark img {
  filter:none !important;
}

.page:not(:has(#portalView:not([hidden]))) .login-kicker {
  color:#70d186 !important;
}

.page:not(:has(#portalView:not([hidden]))) .login-card h1 {
  color:#f4f7f5 !important;
}

.page:not(:has(#portalView:not([hidden]))) .login-card .lead {
  color:#b8c1ba !important;
}

.page:not(:has(#portalView:not([hidden]))) .login-card label {
  color:#d6ddd8 !important;
}

.page:not(:has(#portalView:not([hidden]))) .login-card input {
  border-color:#435349 !important;
  background:#202923 !important;
  color:#f4f7f5 !important;
  box-shadow:none !important;
}

.page:not(:has(#portalView:not([hidden]))) .login-card input::placeholder {
  color:#87928a !important;
}

.page:not(:has(#portalView:not([hidden]))) .login-card input:hover {
  border-color:#536057 !important;
}

.page:not(:has(#portalView:not([hidden]))) .login-card input:focus {
  border-color:#70d186 !important;
  background:#26332a !important;
  outline:3px solid rgba(112,209,134,.22) !important;
}

.page:not(:has(#portalView:not([hidden]))) .login-card button[type="submit"] {
  border:1px solid #215b2a !important;
  color:#fff !important;
  background:linear-gradient(180deg,#2b7f38,#24672f) !important;
  box-shadow:0 .8rem 2rem rgba(36,103,47,.24) !important;
}

.page:not(:has(#portalView:not([hidden]))) .login-card button[type="submit"]:hover,
.page:not(:has(#portalView:not([hidden]))) .login-card button[type="submit"]:focus-visible {
  background:linear-gradient(180deg,#2e823d,#24672f) !important;
}

.page:not(:has(#portalView:not([hidden]))) .login-card .error:not(:empty) {
  border-color:#6e3b3b !important;
  background:#351f1f !important;
  color:#f3a0a0 !important;
}

/* v0.8.3: keep the hidden-report feature, but mount it as a complete toolbar control. */
.toolbar #hiddenReportsSwitch.hidden-switch {
  position:static !important;
  inset:auto !important;
  width:auto !important;
  min-width:max-content !important;
  max-width:none !important;
  min-height:var(--shell-control-height) !important;
  display:inline-flex !important;
  flex:0 0 auto;
  align-items:center;
  gap:.45rem;
  margin:0 !important;
  padding:.3rem .55rem .3rem .45rem !important;
  border:1px solid var(--border) !important;
  border-radius:var(--shell-control-radius) !important;
  color:var(--ink-700) !important;
  background:var(--surface) !important;
  box-shadow:var(--shadow-sm) !important;
}
.toolbar #hiddenReportsSwitch .hidden-switch-text,
.toolbar #hiddenReportsSwitch .hidden-switch-count,
.toolbar #hiddenReportsSwitch .hidden-switch-track { display:inline-flex !important; }
.toolbar #hiddenReportsSwitch .hidden-switch-text {
  align-items:center;
  white-space:nowrap;
  font-size:.75rem;
  font-weight:720;
}
.toolbar #hiddenReportsSwitch .hidden-switch-count {
  min-width:1.6rem;
  min-height:1.6rem;
  padding:0 .4rem;
  background:var(--surface-muted);
  color:var(--ink-700);
  font-size:.7rem;
}
.toolbar #hiddenReportsSwitch .hidden-switch-track { flex:0 0 auto; }
.toolbar #hiddenReportsSwitch.disabled { opacity:.65; }
.toolbar #hiddenReportsSwitch.active {
  border-color:color-mix(in srgb,var(--brand-500) 35%,var(--border)) !important;
  color:var(--ink-900) !important;
  background:color-mix(in srgb,var(--brand-500) 7%,var(--surface)) !important;
}
@media (max-width:720px) {
  .toolbar #hiddenReportsSwitch.hidden-switch {
    width:100% !important;
    justify-content:flex-start;
  }
}

/* v0.8.4: inactive dashboard status filter must never render as an empty pill. */
#dashboardStatusFilterIndicator[hidden] {
  display:none !important;
}

/* v0.9.0: locale controls and accessible task feedback. */
.portal-language-selector {
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  font-size:.78rem;
  font-weight:700;
}

.portal-language-selector select {
  min-height:2.25rem;
  padding:.35rem 1.8rem .35rem .6rem;
  border:1px solid var(--line-200,#d7dbd7);
  border-radius:.45rem;
  background:var(--surface-0,#fff);
  color:var(--ink-900,#17201a);
}

.portal-language-selector--login {
  position:absolute;
  inset-block-start:1rem;
  inset-inline-end:1rem;
  color:#f5f3ee;
}

.portal-language-selector--login select {
  border-color:rgba(255,255,255,.3);
  background:#223128;
  color:#fff;
}

.portal-task-dialog-backdrop {
  position:fixed;
  inset:0;
  z-index:10000;
  display:grid;
  place-items:center;
  padding:1rem;
  background:rgba(13,20,16,.58);
}

.portal-task-dialog {
  width:min(32rem,100%);
  padding:1.35rem;
  border-radius:.8rem;
  background:#fff;
  color:#17201a;
  box-shadow:0 24px 72px rgba(0,0,0,.28);
}

.portal-task-dialog h2 { margin:0 0 .75rem; font-size:1.25rem; }
.portal-task-dialog__description { margin:.25rem 0 1.25rem; white-space:pre-line; }
.portal-task-dialog__field { display:grid; gap:.5rem; margin:.25rem 0 1.25rem; }
.portal-task-dialog__field span { white-space:pre-line; }
.portal-task-dialog__field input { width:100%; min-height:2.7rem; }
.portal-task-dialog__actions { display:flex; justify-content:flex-end; gap:.6rem; }
.portal-task-dialog--destructive { border-top:.3rem solid #b42318; }
.portal-task-dialog button.danger { background:#b42318; border-color:#b42318; color:#fff; }
.portal-dialog-open { overflow:hidden; }

.portal-notice-region {
  position:fixed;
  inset-block-start:1rem;
  inset-inline-end:1rem;
  z-index:10020;
  display:grid;
  gap:.6rem;
  width:min(26rem,calc(100vw - 2rem));
}

.portal-notice {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  padding:.85rem 1rem;
  border:1px solid #b8d8be;
  border-radius:.65rem;
  background:#f2faf3;
  color:#17201a;
  box-shadow:0 10px 30px rgba(23,32,26,.16);
}

.portal-notice--error { border-color:#e6aaa4; background:#fff4f2; }
.portal-notice button { min-width:2rem; min-height:2rem; padding:0; background:transparent; color:inherit; }

@media (max-width:640px) {
  .portal-language-selector--portal > span { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .portal-language-selector--login { position:static; justify-self:end; margin-block-end:.5rem; }
}

/* v0.9.1: selection is a Drive document-package action, not a generic report action. */
.report-object-card.no-bulk-selection .object-card-select {
  display:none !important;
}

.report-object-card.no-bulk-selection .object-card-top {
  grid-template-columns:minmax(0,1fr) auto !important;
}

body:not([data-report-product-filter="drive"]) .table-wrap thead th:first-child,
body:not([data-report-product-filter="drive"]) #reportRows > tr > td.report-select-cell {
  display:none !important;
}
