/* ZIP 3/12 — World-class design system, shell, navigation and component standardization layer.
   Non-destructive override loaded after legacy visual locks. */
:root{
  --zip3-bg:#f6f9fc;
  --zip3-surface:#ffffff;
  --zip3-surface-raised:#ffffff;
  --zip3-surface-muted:#eef6ff;
  --zip3-text:#0f172a;
  --zip3-text-muted:#64748b;
  --zip3-border:#dbe4ef;
  --zip3-border-strong:#b7c7dd;
  --zip3-primary:var(--tenant-brand-primary,#2563eb);
  --zip3-accent:var(--tenant-brand-accent,#0f766e);
  --zip3-success:#087443;
  --zip3-warning:#a15c07;
  --zip3-danger:#b42318;
  --zip3-info:#2357a4;
  --zip3-focus:#0f62fe;
  --zip3-shadow-sm:0 4px 14px rgba(15,23,42,.08);
  --zip3-shadow-md:0 14px 38px rgba(15,23,42,.12);
  --zip3-shadow-lg:0 28px 72px rgba(15,23,42,.16);
  --zip3-radius-xs:8px;
  --zip3-radius-sm:12px;
  --zip3-radius-md:18px;
  --zip3-radius-lg:26px;
  --zip3-radius-xl:34px;
  --zip3-space-1:4px;
  --zip3-space-2:8px;
  --zip3-space-3:12px;
  --zip3-space-4:16px;
  --zip3-space-5:20px;
  --zip3-space-6:24px;
  --zip3-space-8:32px;
  --zip3-space-10:40px;
  --zip3-content:1440px;
  --zip3-topbar:76px;
  --zip3-touch:44px;
  --zip3-font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
body[data-density-mode="compact"]{--zip3-space-4:12px;--zip3-space-6:18px;--zip3-topbar:64px;--zip3-radius-md:14px}
body[data-content-width="narrow"]{--zip3-content:1180px}
body.depo-v3{font-family:var(--zip3-font);background:radial-gradient(circle at top left,rgba(37,99,235,.12),transparent 28rem),linear-gradient(180deg,#f8fafc 0%,var(--zip3-bg) 48%,#edf3f8 100%);color:var(--zip3-text)}
body.depo-v3::before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(255,255,255,.22) 1px,transparent 1px),linear-gradient(180deg,rgba(255,255,255,.20) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(180deg,rgba(0,0,0,.22),transparent 48%);z-index:0}
body.depo-v3 .depo-shell{position:relative;z-index:1;background:transparent}
body.depo-v3 :where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid color-mix(in srgb,var(--zip3-focus),transparent 12%);outline-offset:3px;box-shadow:0 0 0 6px color-mix(in srgb,var(--zip3-focus),transparent 84%)}
body.depo-v3 .skip-link{min-height:var(--zip3-touch);display:inline-flex;align-items:center;z-index:9999}

/* Global shell */
.zip3-shell-header{min-height:var(--zip3-topbar);display:grid;grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:var(--zip3-space-4);width:min(100% - 32px,var(--zip3-content));margin-inline:auto;padding:12px 0}
.zip3-shell-brand{display:flex;align-items:center;gap:12px;min-width:0;color:var(--zip3-text)}
.zip3-shell-logo{width:48px;height:48px;border-radius:17px;display:grid;place-items:center;background:linear-gradient(180deg,#fff,var(--zip3-surface-muted));border:1px solid var(--zip3-border);box-shadow:var(--zip3-shadow-sm);overflow:hidden;flex:0 0 auto}
.zip3-shell-logo img{width:33px;height:33px;object-fit:contain}
.zip3-shell-brand-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.zip3-shell-brand-copy strong{font-size:1.02rem;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:min(48vw,520px)}
.zip3-shell-brand-copy small{font-size:.82rem;color:var(--zip3-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:min(50vw,560px)}
.zip3-shell-status{display:flex;align-items:center;gap:8px;min-width:0;justify-content:center;background:rgba(255,255,255,.72);border:1px solid var(--zip3-border);border-radius:999px;padding:8px 12px;box-shadow:var(--zip3-shadow-sm)}
.zip3-shell-status-name{font-size:.88rem;font-weight:900;color:var(--zip3-text);max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.zip3-shell-status-summary{font-size:.78rem;color:var(--zip3-text-muted);max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.zip3-scope-chip{display:inline-flex;align-items:center;min-height:26px;padding:5px 10px;border-radius:999px;font-size:.76rem;font-weight:950;letter-spacing:.03em;text-transform:uppercase;background:#fff;border:1px solid var(--zip3-border);color:var(--zip3-primary)}.zip3-scope-chip--platform-admin{color:#6741d9}.zip3-scope-chip--customer-owner{color:#1d4ed8}.zip3-scope-chip--tenant-workspace{color:#0f766e}.zip3-shell-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}.zip3-user-chip{display:flex;align-items:center;gap:8px;max-width:240px;padding:8px 10px;border:1px solid var(--zip3-border);border-radius:999px;background:#fff;box-shadow:var(--zip3-shadow-sm);color:var(--zip3-text-muted);font-weight:800}.zip3-user-chip span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.zip3-icon-button{min-width:var(--zip3-touch);min-height:var(--zip3-touch);display:inline-grid;place-items:center;border:1px solid var(--zip3-border);border-radius:999px;background:#fff;color:var(--zip3-text);box-shadow:var(--zip3-shadow-sm);font-weight:900}.zip3-logout-form{margin:0}.zip3-logout-form button,.zip3-logout-button{min-height:var(--zip3-touch);border:1px solid var(--zip3-border);border-radius:999px;background:#fff;padding:9px 14px;color:var(--zip3-primary);font-weight:950;box-shadow:var(--zip3-shadow-sm)}

.zip3-command-strip{width:min(100% - 32px,var(--zip3-content));margin:0 auto 10px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--zip3-border),transparent 18%);border-radius:18px;background:rgba(255,255,255,.68);box-shadow:var(--zip3-shadow-sm)}.zip3-command-left,.zip3-command-right{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}.zip3-command-title{font-size:.82rem;font-weight:950;color:var(--zip3-text)}.zip3-command-meta{font-size:.78rem;color:var(--zip3-text-muted)}.zip3-kbd-hint{display:inline-flex;align-items:center;gap:4px;min-height:28px;padding:4px 8px;border:1px solid var(--zip3-border);border-radius:8px;background:#fff;color:var(--zip3-text-muted);font-size:.76rem;font-weight:850}.zip3-live-lock{display:inline-flex;align-items:center;gap:6px;color:var(--zip3-danger);font-weight:900;font-size:.78rem}

.zip3-shell-nav{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;width:min(100% - 32px,var(--zip3-content));margin-inline:auto;padding:0 0 12px}.zip3-nav-link{position:relative;display:flex!important;align-items:center;gap:10px;min-height:46px;padding:9px 13px!important;border:1px solid transparent!important;border-radius:999px!important;background:transparent!important;color:var(--zip3-text-muted)!important;font-weight:900!important;white-space:nowrap;text-decoration:none;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}.zip3-nav-link:hover,.zip3-nav-link:focus-visible{background:#fff!important;border-color:var(--zip3-border)!important;color:var(--zip3-primary)!important;box-shadow:var(--zip3-shadow-sm)}.zip3-nav-link.is-active,.zip3-nav-link[aria-current="page"]{background:linear-gradient(180deg,#fff,#fff8ef)!important;border-color:color-mix(in srgb,var(--zip3-primary),#fff 64%)!important;color:var(--zip3-primary)!important;box-shadow:var(--zip3-shadow-md)}.zip3-nav-link.is-active::after,.zip3-nav-link[aria-current="page"]::after{content:"";position:absolute;left:18px;right:18px;bottom:-13px;height:3px;border-radius:999px;background:linear-gradient(90deg,var(--zip3-primary),var(--zip3-accent))}.zip3-nav-icon{width:22px;height:22px;display:inline-grid;place-items:center;flex:0 0 auto}.zip3-nav-icon svg{width:19px;height:19px}.zip3-nav-copy{display:flex;flex-direction:column;line-height:1.08}.zip3-nav-copy strong{font-size:.91rem}.zip3-nav-copy small{font-size:.70rem;color:inherit;opacity:.72}.zip3-nav-badge{min-width:20px;min-height:20px;padding:2px 6px;border-radius:999px;background:color-mix(in srgb,var(--zip3-primary),#fff 86%);color:var(--zip3-primary);font-size:.70rem;font-weight:950}

/* Information architecture helpers */
.zip3-breadcrumbs{width:min(100% - 32px,var(--zip3-content));margin:16px auto 0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--zip3-text-muted);font-size:.82rem}.zip3-breadcrumbs a{font-weight:850;color:var(--zip3-primary)}.zip3-breadcrumbs [aria-current="page"]{color:var(--zip3-text);font-weight:950}.zip3-page-standard{display:grid;gap:var(--zip3-space-6)}.zip3-page-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--zip3-space-4);margin-bottom:var(--zip3-space-4)}.zip3-page-toolbar .page-title,.zip3-page-toolbar h1{margin-bottom:6px}.zip3-page-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.zip3-route-family-tag{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 9px;background:#fff;border:1px solid var(--zip3-border);font-size:.75rem;font-weight:950;color:var(--zip3-text-muted)}

/* Component standardization: cards, KPIs, forms, tables, state blocks */
body.depo-v3 :where(.card,.panel,.surface-card,.dashboard-card,.module-card,.stat-card,.form-card,.table-card,.auth-card,.zip3-card){background:var(--zip3-surface-raised);border:1px solid var(--zip3-border);border-radius:var(--zip3-radius-lg);box-shadow:var(--zip3-shadow-sm);min-width:0}body.depo-v3 :where(.card,.panel,.surface-card,.dashboard-card,.module-card,.stat-card,.form-card,.table-card,.auth-card,.zip3-card):hover{box-shadow:var(--zip3-shadow-md)}body.depo-v3 :where(.stats-grid,.module-grid,.cards-grid,.grid){gap:var(--zip3-space-4)}.zip3-kpi{display:grid;gap:6px;padding:18px;border:1px solid var(--zip3-border);border-radius:22px;background:linear-gradient(180deg,#fff,#fff9f2);box-shadow:var(--zip3-shadow-sm)}.zip3-kpi small{font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;font-weight:900;color:var(--zip3-text-muted)}.zip3-kpi strong{font-size:clamp(1.6rem,3vw,2.4rem);letter-spacing:-.04em;color:var(--zip3-text)}.zip3-kpi span{font-size:.84rem;color:var(--zip3-text-muted)}
body.depo-v3 :where(form){accent-color:var(--zip3-primary)}body.depo-v3 :where(label){font-weight:850;color:var(--zip3-text)}body.depo-v3 :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea){min-height:44px;border:1px solid var(--zip3-border);border-radius:14px;background:#fff;padding:10px 12px;box-shadow:inset 0 1px 0 rgba(255,255,255,.55);transition:border-color .16s ease,box-shadow .16s ease}body.depo-v3 :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea):focus{border-color:color-mix(in srgb,var(--zip3-primary),#fff 32%);box-shadow:0 0 0 4px color-mix(in srgb,var(--zip3-primary),transparent 84%)}body.depo-v3 :where(input[aria-invalid="true"],select[aria-invalid="true"],textarea[aria-invalid="true"]){border-color:var(--zip3-danger);box-shadow:0 0 0 4px color-mix(in srgb,var(--zip3-danger),transparent 86%)}.zip3-field-hint{font-size:.78rem;color:var(--zip3-text-muted);margin-top:4px}.zip3-form-dirty{box-shadow:0 0 0 3px color-mix(in srgb,var(--zip3-warning),transparent 84%)}
body.depo-v3 :where(.btn,button.btn,a.btn,.button,.primary-button,.secondary-button,input[type="submit"]){min-height:var(--zip3-touch);border-radius:999px;font-weight:950;transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}body.depo-v3 :where(.btn,button.btn,a.btn,.button,.primary-button,.secondary-button,input[type="submit"]):hover{transform:translateY(-1px);box-shadow:var(--zip3-shadow-md)}body.depo-v3 :where(.btn.primary,.button.primary,.primary-button,input[type="submit"]){background:linear-gradient(135deg,var(--zip3-primary),var(--zip3-accent));border-color:transparent;color:#fff}.zip3-button-ghost{background:transparent!important;border-color:transparent!important;box-shadow:none!important;color:var(--zip3-text-muted)!important}
body.depo-v3 :where(table){width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--zip3-border);border-radius:20px;overflow:hidden;box-shadow:var(--zip3-shadow-sm)}body.depo-v3 :where(th){background:#fbf7f0;color:var(--zip3-text);font-size:.78rem;letter-spacing:.04em;text-transform:uppercase}body.depo-v3 :where(th,td){padding:12px 14px;border-bottom:1px solid var(--zip3-border);vertical-align:middle}body.depo-v3 :where(tr:last-child td){border-bottom:0}body.depo-v3 :where(tbody tr):hover{background:#fff9f2}.zip3-table-scroll{overflow:auto;border-radius:20px;box-shadow:var(--zip3-shadow-sm)}.zip3-density-toggle-target[data-density="compact"] :where(th,td){padding:8px 10px}
body.depo-v3 :where(.empty-state,.loading-state,.zip3-empty-state,.zip3-error-state){border:1px dashed var(--zip3-border-strong);border-radius:24px;padding:28px;text-align:center;background:rgba(255,255,255,.70);color:var(--zip3-text-muted)}.zip3-empty-state strong,.zip3-error-state strong{display:block;margin-bottom:4px;color:var(--zip3-text);font-size:1.05rem}.zip3-skeleton{position:relative;overflow:hidden;background:linear-gradient(90deg,#eee3d7,#fff,#eee3d7);background-size:220% 100%;animation:zip3Shimmer 1.4s linear infinite;border-radius:14px;min-height:18px}@keyframes zip3Shimmer{to{background-position:-220% 0}}

/* Mobile and tablet */
.zip3-mobile-menu-button{display:none}.zip3-nav-backdrop{display:none}.zip3-mobile-bottom-safe{height:0}@media (max-width: 980px){.zip3-shell-header{grid-template-columns:1fr auto;gap:10px}.zip3-shell-status{grid-column:1 / -1;justify-content:flex-start;overflow:hidden}.zip3-shell-status-summary{display:none}.zip3-user-chip{display:none}.zip3-mobile-menu-button{display:inline-grid}.zip3-command-strip{align-items:flex-start;flex-direction:column}.zip3-shell-nav{position:fixed;left:16px;right:16px;top:calc(var(--zip3-topbar) + env(safe-area-inset-top,0px) + 74px);z-index:260;display:none;max-height:min(64vh,520px);overflow:auto;flex-direction:column;padding:10px;border:1px solid var(--zip3-border);border-radius:24px;background:rgba(255,255,255,.98);box-shadow:var(--zip3-shadow-lg)}body.zip3-nav-open .zip3-shell-nav{display:flex}body.zip3-nav-open .zip3-nav-backdrop{display:block;position:fixed;inset:0;z-index:240;background:rgba(20,16,12,.34);backdrop-filter:blur(2px)}.zip3-nav-link{width:100%;border-radius:18px!important}.zip3-nav-link.is-active::after,.zip3-nav-link[aria-current="page"]::after{left:10px;right:auto;top:12px;bottom:12px;width:4px;height:auto}.container,.shell-main{width:min(100% - 24px,var(--zip3-content));padding-bottom:88px}body.depo-v3 .mobile-bottom-nav{box-shadow:0 -12px 36px rgba(31,24,18,.16)}}@media (max-width: 640px){.zip3-shell-header{width:min(100% - 20px,var(--zip3-content));padding:10px 0}.zip3-shell-logo{width:42px;height:42px;border-radius:14px}.zip3-shell-brand-copy strong{max-width:58vw}.zip3-shell-brand-copy small{max-width:62vw}.zip3-shell-status{border-radius:16px;align-items:flex-start;flex-direction:column;gap:4px}.zip3-command-strip,.zip3-shell-nav,.zip3-breadcrumbs{width:min(100% - 20px,var(--zip3-content))}.zip3-command-right{display:none}.page-header,.section-header,.card-header,.zip3-page-toolbar{flex-direction:column;align-items:stretch}.actions,.page-actions,.form-actions,.zip3-page-actions{justify-content:stretch}.actions > *,.page-actions > *,.form-actions > *,.zip3-page-actions > *{flex:1 1 auto}.mobile-bottom-nav .mobile-nav-item{min-height:56px}}

/* Public/auth parity */
body.surface-kind-public .public-header,body.surface-kind-auth .public-header{border-radius:28px;background:rgba(255,255,255,.78);border-color:var(--zip3-border);box-shadow:var(--zip3-shadow-md);backdrop-filter:blur(18px)}body.surface-kind-auth .auth-card{max-width:560px;width:100%}.public-topnav-link[aria-current="page"],.public-topnav-link.is-active{background:#fff;border-color:var(--zip3-border);color:var(--zip3-primary);box-shadow:var(--zip3-shadow-sm)}

/* Accessibility preferences */
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}.zip3-nav-link:hover,body.depo-v3 :where(.btn,button.btn,a.btn,.button,.primary-button,.secondary-button,input[type="submit"]):hover{transform:none}}
@media (prefers-contrast: more){:root{--zip3-border:#8f7c68;--zip3-border-strong:#5d4b3b;--zip3-text-muted:#34291f}body.depo-v3 :where(.zip3-nav-link,.btn,button.btn,a.btn,.button,input,select,textarea,table){border-width:2px}}
@media print{body.depo-v3::before,.zip3-command-strip,.zip3-shell-nav,.zip3-shell-actions,.mobile-bottom-nav,.zip3-nav-backdrop{display:none!important}.zip3-shell-header{position:static;display:block}.depo-top-shell{position:static;box-shadow:none;border-bottom:1px solid #ccc}.container,.shell-main{width:100%;padding:0}.card,.panel,.table-card{box-shadow:none!important}}

/* JS acceptance proof */
.zip3-design-proof{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.zip3-js-enhanced body{}body.zip3-js-ready .zip3-shell-header{view-transition-name:zip3-shell-header}

/* v850 authenticated shell hardening: keep command strips stable on narrow screens. */
.zip3-command-copy,.zip3-command-actions{min-width:0;}
.zip3-command-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;}
.zip3-command-copy :where(strong,small){overflow-wrap:anywhere;}
.zip3-command-actions .btn{white-space:normal;text-align:center;}
@media (max-width:640px){
  .zip3-command-actions{width:100%;justify-content:flex-start;}
  .zip3-command-actions .btn{flex:1 1 136px;}
}

/* v850 platform shell contrast closeout: secondary actions sit on light command strips. */
body.depo-v3.surface-kind-platform :where(.zip3-shell-actions .btn.secondary.small,.zip3-command-strip .btn.secondary.small,.zip3-mobile-menu-button),
body.depo-v3[data-surface-kind="platform"] :where(.zip3-shell-actions .btn.secondary.small,.zip3-command-strip .btn.secondary.small,.zip3-mobile-menu-button){
  border:1px solid rgba(24,35,52,.14)!important;
  background:#fff!important;
  color:#172033!important;
  box-shadow:0 8px 18px rgba(15,23,42,.06)!important;
}
body.depo-v3.surface-kind-platform :where(.zip3-shell-actions .btn.secondary.small:hover,.zip3-shell-actions .btn.secondary.small:focus-visible,.zip3-command-strip .btn.secondary.small:hover,.zip3-command-strip .btn.secondary.small:focus-visible),
body.depo-v3[data-surface-kind="platform"] :where(.zip3-shell-actions .btn.secondary.small:hover,.zip3-shell-actions .btn.secondary.small:focus-visible,.zip3-command-strip .btn.secondary.small:hover,.zip3-command-strip .btn.secondary.small:focus-visible){
  border-color:rgba(37,99,235,.34)!important;
  background:#f8fbff!important;
  color:#0f172a!important;
}
body.depo-v3.surface-kind-platform :where(.zip3-scope-pill),
body.depo-v3[data-surface-kind="platform"] :where(.zip3-scope-pill){
  border:1px solid rgba(37,99,235,.18)!important;
  background:#fff!important;
  color:#1d4ed8!important;
}
body.depo-v3.surface-kind-platform :where(.zip3-command-strip),
body.depo-v3[data-surface-kind="platform"] :where(.zip3-command-strip){
  border-color:rgba(24,35,52,.10)!important;
  background:rgba(255,255,255,.92)!important;
}
body.depo-v3.surface-kind-platform :where(.zip3-command-copy .zip3-command-kicker,.zip3-command-copy strong),
body.depo-v3[data-surface-kind="platform"] :where(.zip3-command-copy .zip3-command-kicker,.zip3-command-copy strong){
  color:#172033!important;
}
body.depo-v3.surface-kind-platform :where(.zip3-command-copy small),
body.depo-v3[data-surface-kind="platform"] :where(.zip3-command-copy small){
  color:#526174!important;
}
body.depo-v3.surface-kind-platform.public-auth-premium-v706 .zip3-shell-actions .btn.secondary.small,
body.depo-v3.surface-kind-platform.public-auth-premium-v706 .zip3-shell-actions .zip3-mobile-menu-button,
body.depo-v3.surface-kind-platform.public-auth-premium-v706 .zip3-command-strip .btn.secondary.small,
body.depo-v3[data-surface-kind="platform"].public-auth-premium-v706 .zip3-shell-actions .btn.secondary.small,
body.depo-v3[data-surface-kind="platform"].public-auth-premium-v706 .zip3-shell-actions .zip3-mobile-menu-button,
body.depo-v3[data-surface-kind="platform"].public-auth-premium-v706 .zip3-command-strip .btn.secondary.small{
  border-color:rgba(24,35,52,.14)!important;
  background:#fff!important;
  color:#172033!important;
}

/* v850 polish: keep shell copy and hero light layers measurable without overflow noise. */
body.depo-v3 .zip3-shell-status{
  min-width:0;
}
body.depo-v3 .zip3-shell-status-summary{
  white-space:normal;
  overflow-wrap:break-word;
  word-break:normal;
  line-height:1.25;
  max-width:min(42vw,320px);
}
body.depo-v3 :where(.detail-hero.dashboard-hero){
  box-sizing:border-box;
  max-width:100%;
  contain:paint;
}
body.depo-v3 :where(.detail-hero.dashboard-hero)::after{
  right:0;
}
body.depo-v3 :where(.alert strong,.card strong,.detail-hero strong){
  overflow-wrap:anywhere;
}
