/* Application foundation: shared tokens, layout and component primitives. */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("./fonts/InterVariable.2bf3d951bf9d.woff2?v=20260904") format("woff2");
}
:root {
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-right: env(safe-area-inset-right, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left: env(safe-area-inset-left, 0px);
  --mobile-topbar-height: calc(64px + var(--safe-top));
  color-scheme: light;
  /* Horizon design tokens. Feature styles consume these aliases instead of
     introducing page-specific colours, radii or control measurements. */
  --ui-canvas: #f7f7f5;
  --ui-panel: #ffffff;
  --ui-surface-soft: #f5f5f5;
  --ui-surface-hover: #f5f5f5;
  --ui-ink: #171717;
  --ui-copy: #262626;
  --ui-muted: #737373;
  --ui-line: #e5e5e5;
  --ui-line-strong: #d4d4d4;
  --ui-forest: #176b50;
  --ui-forest-strong: #115440;
  --ui-forest-soft: #e7f1ed;
  --ui-danger: #a43f37;
  --ui-danger-soft: #fff0ee;
  --ui-warning: #8a5a12;
  --ui-warning-soft: #fff3d9;
  --ui-info: #365f84;
  --ui-info-soft: #edf4fa;
  --ui-font-sans: Inter, "Segoe UI Variable", "Segoe UI", "Microsoft YaHei UI", system-ui, -apple-system, sans-serif;
  --ui-font-mono: "Geist Mono", "Cascadia Code", "SFMono-Regular", Consolas, monospace;
  --wa-font-family-body: var(--ui-font-sans);
  --wa-font-family-heading: var(--ui-font-sans);
  --wa-font-family-code: var(--ui-font-mono);
  --ui-text-micro: 11px;
  --ui-text-caption: 12px;
  --ui-text-body: 14px;
  --ui-text-body-lg: 16px;
  --ui-text-subheading: 20px;
  --ui-text-heading-sm: 24px;
  --ui-text-heading: 30px;
  --ui-text-heading-lg: 36px;
  --ui-text-display: 48px;
  --ui-radius-input: 6px;
  --ui-radius-button: 8px;
  --ui-radius-card: 12px;
  --ui-radius-large: 16px;
  --ui-radius-pill: 9999px;
  /* Compatibility aliases. New work uses the semantic radius tokens above. */
  --ui-radius-xs: var(--ui-radius-input);
  --ui-radius-sm: var(--ui-radius-input);
  --ui-radius-md: var(--ui-radius-button);
  --ui-radius-lg: var(--ui-radius-card);
  --ui-control-compact: 32px;
  --ui-control-default: 40px;
  --ui-control-large: 44px;
  --ui-space-1: 4px;
  --ui-space-2: 8px;
  --ui-space-3: 12px;
  --ui-space-4: 16px;
  --ui-space-5: 20px;
  --ui-space-6: 24px;
  --ui-space-8: 32px;
  --ui-space-10: 40px;
  --ui-space-12: 48px;
  --ui-space-16: 64px;
  --ui-space-20: 80px;
  --ui-space-24: 96px;
  --ui-shadow-subtle: 0 1px 2px rgba(0,0,0,.05);
  --ui-shadow-overlay: 0 22px 64px rgba(18,31,47,.20);
  --ui-focus-ring: 0 0 0 3px rgba(23,107,80,.14);
  --ui-content-max: 1480px;
  --forest-950: #082d24;
  --forest-900: #0b3b2e;
  --forest-800: #115440;
  --forest-700: #176b50;
  --forest-100: #dcece6;
  --sage-50: #f4f7f5;
  --sage-100: #e9efec;
  --line: var(--ui-line);
  --border: var(--line);
  --ink: var(--ui-ink);
  --muted: var(--ui-muted);
  --surface: var(--ui-panel);
  --canvas: var(--ui-canvas);
  --danger: var(--ui-danger);
  --warning: var(--ui-warning);
  --sidebar: 196px;
  font-family: var(--ui-font-sans);
  color: var(--ink);
  background: var(--canvas);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-height: 100vh; min-height: 100dvh; overflow-x: hidden; color:var(--ui-copy); background: var(--canvas); font:400 var(--ui-text-body)/1.5 var(--ui-font-sans); font-optical-sizing:auto; }
a { color: var(--forest-700); text-underline-offset: 2px; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:where(button, a, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--ui-forest);
  outline-offset: 2px;
}
:where(button, input, select, textarea):disabled,
:where(.button, .secondary-button, .icon-button).disabled {
  cursor: not-allowed;
  opacity: .52;
  pointer-events: none;
}
.app-shell { min-height: 100vh; padding-left: var(--sidebar); }
.app-sidebar { position: fixed; inset: 0 auto 0 0; z-index: 30; width: var(--sidebar); display: flex; flex-direction: column; padding: 15px 10px; color: white; background: var(--forest-950); }
.app-brand { display: flex; align-items: center; gap: 10px; min-height: 44px; color: inherit; text-decoration: none; font-weight: 750; font-size: 14px; }
.brand-mark { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid rgba(255,255,255,.2); border-radius: 8px; background: rgba(255,255,255,.08); font-size: 18px; }
.primary-nav { display: grid; gap: 4px; margin-top: 24px; }
.primary-nav a { display: flex; align-items: center; gap: 12px; min-height: 42px; padding: 0 12px; border-radius: 7px; color: #dbe8e3; text-decoration: none; font-size: 14px; }
.primary-nav a:hover, .primary-nav a:focus-visible { color: white; background: rgba(255,255,255,.1); outline: none; }
.primary-nav i { width: 18px; font-size: 17px; }
.nav-secondary { margin-top: 20px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.16); }
.sidebar-user { display: flex; align-items: center; gap: 10px; margin-top: auto; padding: 12px 8px 2px; }
.sidebar-user span:last-child { display: grid; }
.sidebar-user small { color: #a9c1b8; }
.user-avatar { display: grid; flex: 0 0 auto; place-items: center; width: 34px; height: 34px; border-radius: 50%; color: white; background: var(--forest-700); font-size: 12px; font-weight: 800; }
.app-main { min-width: 0; }
.app-topbar { position: sticky; top: 0; z-index: 20; height: 64px; display: flex; align-items: center; gap: 20px; padding: 0 24px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.96); }
.nav-toggle { display: none; border: 0; background: transparent; font-size: 22px; }
kbd { padding: 2px 6px; border: 1px solid #d6ddda; border-radius: 4px; color: var(--muted); background: #f6f8f7; font: 11px/1.4 ui-monospace, monospace; white-space: nowrap; }
.topbar-actions { display: flex; align-items: center; gap: 18px; margin-left: auto; color: var(--muted); }
.topbar-actions form { margin: 0; }
.today { white-space: nowrap; }
.topbar-user { display: flex; align-items: center; gap: 8px; min-height: 42px; padding: 0; border: 0; color: var(--ink); background: transparent; cursor: pointer; }
.topbar-user .user-avatar { width: 30px; height: 30px; }
.page-shell { width: 100%; max-width: 1600px; margin: 0 auto; padding: 28px 24px 56px; }
.page-heading, .context-header { display: flex; justify-content: space-between; align-items: end; gap: 22px; margin-bottom: 22px; }
h1 { margin: 0; font-size: var(--ui-text-heading-lg); font-weight:600; line-height: 1.1; letter-spacing: -.025em; }
h2 { margin: 0; font-size: var(--ui-text-subheading); font-weight:600; line-height:1.4; }
h3 { margin: 0; font-size: var(--ui-text-body-lg); font-weight:600; line-height:1.5; }
p { line-height: 1.55; }
.eyebrow { margin: 0 0 6px; color: #557168; text-transform: none; letter-spacing: .015em; font-size: .78rem; font-weight: 600; }
.muted { color: var(--muted); }
.button, .secondary-button { display: inline-flex; align-items: center; justify-content: center; gap: var(--ui-space-2); min-height: var(--ui-control-default); padding: 0 16px; border: 1px solid transparent; border-radius: var(--ui-radius-button); text-decoration: none; font-weight: 600; line-height: 1; white-space: nowrap; cursor: pointer; transition: border-color .15s ease, background-color .15s ease, color .15s ease, transform .08s ease; }
.button { color: white; border-color: var(--ui-forest-strong); background: var(--ui-forest); }
.button:hover { color: white; background: var(--ui-forest-strong); }
.button:active, .secondary-button:active, .icon-button:active { transform: translateY(1px); }
.secondary-button, .button.secondary { color: var(--ui-copy); border-color: var(--ui-line-strong); background: var(--ui-panel); }
.secondary-button:hover, .button.secondary:hover { color: var(--ui-ink); border-color: #aeb9c5; background: var(--ui-surface-hover); }
.button.secondary::after { display: none; }
.icon-action-group { display: flex; align-items: center; gap: 5px; }
.icon-action-group form { margin: 0; }
.icon-button { display: inline-grid; width: var(--ui-control-default); height: var(--ui-control-default); min-width: var(--ui-control-default); flex: 0 0 var(--ui-control-default); padding: 0; place-items: center; border: 1px solid var(--ui-line-strong); border-radius: var(--ui-radius-button); color: var(--ui-copy); background: var(--ui-panel); font: inherit; line-height: 1; cursor: pointer; text-decoration: none; transition: border-color .15s ease, background-color .15s ease, color .15s ease, transform .08s ease; }
.icon-button > i { display: block; line-height: 1; }
.icon-button:hover { border-color: #b8c6c0; background: var(--sage-50); }
.icon-button-danger { color: var(--danger); }
.icon-button-small { width: var(--ui-control-compact); height: var(--ui-control-compact); min-width: var(--ui-control-compact); flex-basis: var(--ui-control-compact); }
.compact-button { min-height: var(--ui-control-compact); padding: 0 11px; font-size: 12px; }
.danger { color: var(--danger); border-color: #e1c3bf; }
.action-bar, .form-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.message { margin-bottom: 16px; padding: 11px 14px; border-left: 3px solid var(--forest-700); background: var(--forest-100); }
.card, .form-card, .empty-state, .auth-card, .hero-panel { border: 1px solid var(--line); border-radius: var(--ui-radius-card); background: var(--surface); }
.card { padding: 20px; }
.form-card { width: min(780px, 100%); padding: 24px; }
.auth-card { width: min(440px, calc(100% - 32px)); margin: 70px auto; padding: 32px; }
.hero-panel { padding: 42px; }
.detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
.card dl { display: grid; grid-template-columns: 135px 1fr; gap: 10px; margin: 0; }
.card dt { color: var(--muted); }
.card dd { margin: 0; font-weight: 650; }
.section-block { margin-top: 26px; }
.section-heading, .workspace-heading, .entry-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.status-pill, .visibility-tag { display: inline-flex; align-items: center; width: fit-content; padding: 5px 9px; border-radius: 999px; color: #185a45; background: var(--forest-100); font-size: 12px; font-weight: 750; }
.table-wrap { width: 100%; overflow: hidden; border: 1px solid var(--line); border-radius: var(--ui-radius-card); background: white; }
table { width: 100%; border-collapse: collapse; table-layout: auto; }
th, td { padding: 11px 13px; text-align: left; border-bottom: 1px solid #e6ece9; vertical-align: middle; }
th { color: #64736e; background: #f8faf9; text-transform: uppercase; letter-spacing: .07em; font-size: .7rem; }
tbody tr:last-child td { border-bottom: 0; }
.stacked-form p, .field-row { display: grid; gap: 6px; margin: 0 0 16px; }
.field-row[hidden] { display: none !important; }
.stacked-form label, .field-row label, fieldset legend { font-weight: 700; }
.stacked-form input, .stacked-form select, .stacked-form textarea, .field-row input, .field-row select, .field-row textarea { width: 100%; min-height: 40px; padding: 9px 11px; border: 1px solid var(--ui-line-strong); border-radius: var(--ui-radius-input); background: white; }
.stacked-form textarea { min-height: 110px; }
.stacked-form ul { margin: 0; padding: 0; list-style: none; }
.stacked-form ul label { display: flex; align-items: center; gap: 8px; font-weight: 500; }
.stacked-form ul input { width: auto; }
.errorlist { margin: 4px 0; color: var(--danger); }
.empty-state { padding: 34px; text-align: center; }
.metric-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(130px,1fr)); border: 1px solid var(--line); border-radius: 8px; background: white; }
.metric-card { padding: 17px 18px; border-right: 1px solid var(--line); }
.metric-card:last-child { border-right: 0; }
.metric-card span { display: block; color: var(--muted); font-size: 12px; }
.metric-card strong { display: block; margin-top: 5px; color: var(--forest-800); font-size: 1.7rem; }
.metric-card.warning strong { color: var(--danger); }
.dashboard-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.dashboard-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.dashboard-list li { display: flex; justify-content: space-between; gap: 16px; padding-bottom: 9px; border-bottom: 1px solid #e7ece9; }
.entity-link { display: grid; gap: 2px; text-decoration: none; }
.entity-link strong { color: var(--ink); font-weight: 650; }
.entity-link small { color: var(--muted); font-size: 11px; }
.context-header { align-items: center; margin-bottom: 10px; }
.context-header h1 { font-size: 1.75rem; }
.context-meta { display: flex; flex-wrap: wrap; gap: 0; margin-top: 8px; color: var(--muted); font-size: 13px; }
.context-meta span + span::before { content: "·"; margin: 0 9px; color: #9aa7a2; }
.context-tabs { display: flex; gap: 26px; margin: 0 -24px 20px; padding: 0 24px; border-bottom: 1px solid var(--line); }
.context-tabs a { position: relative; padding: 13px 2px; color: #3f4c47; text-decoration: none; font-weight: 650; }
.context-tabs a.active::after { content: ""; position: absolute; right: 0; bottom: -1px; left: 0; height: 3px; background: var(--forest-700); }
.communication-workspace { display: grid; grid-template-columns: minmax(0,1.16fr) minmax(500px,.84fr); height: calc(100vh - 190px); min-height: 690px; margin: -20px -24px -56px; overflow: hidden; }
.communication-stream { min-width: 0; padding: 22px 24px 50px; border-right: 1px solid var(--line); overflow-y: auto; }
.composer-panel { min-width: 0; padding: 18px 18px 24px; overflow-y: auto; background: #fbfcfb; }
.timeline-rail { position: relative; display: grid; gap: 12px; }
.timeline-rail::before { content: ""; position: absolute; top: 22px; bottom: 22px; left: 18px; width: 1px; background: #cdd8d3; }
.communication-entry { position: relative; display: grid; grid-template-columns: 38px 1fr; gap: 12px; }
.timeline-marker { z-index: 1; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; color: white; background: var(--forest-700); font-size: 11px; font-weight: 800; }
.communication-entry-body { min-width: 0; padding: 16px 17px; border: 1px solid var(--line); border-radius: 7px; background: white; }
.entry-heading time { display: block; margin-bottom: 4px; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; font-size: 10px; }
.rich-content { line-height: 1.55; overflow-wrap: anywhere; }
.rich-content p:first-child { margin-top: 0; }
.rich-content img { display: inline-block; width: auto; max-width: min(100%, 320px); max-height: 250px; margin: 8px 8px 8px 0; border-radius: 6px; object-fit: contain; vertical-align: top; cursor: zoom-in; }
.lead-image-card img, .product-hero-image img { width: 100%; max-height: 360px; object-fit: contain; border-radius: 12px; background: #f4f5f1; }
.audit-json { white-space: pre-wrap; overflow-wrap: anywhere; font-size: .78rem; background: #f4f5f1; padding: 12px; border-radius: 8px; }
.image-lightbox { border: 0; border-radius: 12px; padding: 42px 18px 18px; max-width: 92vw; max-height: 92vh; background: #17251f; }
.image-lightbox::backdrop { background: rgba(8, 18, 14, .82); }
.image-lightbox img { max-width: 86vw; max-height: 80vh; object-fit: contain; }
.image-lightbox button { position: absolute; right: 12px; top: 8px; border: 0; background: transparent; color: white; font-size: 28px; cursor: pointer; }
.table-thumbnail { display: inline-flex; width: 52px; height: 52px; object-fit: contain; object-position:center; border-radius: 8px; background: #fff; vertical-align: middle; align-items: center; justify-content: center; }
.table-thumbnail-placeholder { color: #87958e; border: 1px dashed #cbd4cf; font-size: 1.15rem; }
table tbody tr { min-height: 72px; }
table tbody td { height: 72px; }
.pagination { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 16px; }
.pagination-pages { display: flex; align-items: center; gap: 6px; }
.pagination-summary { color: var(--muted); font-size: .9rem; }
.page-number { display: inline-flex; min-width: 34px; height: 34px; align-items: center; justify-content: center; border-radius: 8px; color: var(--forest); text-decoration: none; }
.page-number.active { background: var(--forest); color: white; }
.disabled { opacity: .45; pointer-events: none; }
.management-card { display: block; color: inherit; text-decoration: none; }
.management-card > i { font-size: 1.5rem; color: var(--forest); }
.project-hero { display: grid; grid-template-columns: 112px minmax(0, 1fr) auto; align-items: center; gap: 22px; padding: 12px 0 22px; }
.project-hero-image { width: 112px; height: 112px; border-radius: 14px; overflow: hidden; background: #eef1eb; border: 1px solid var(--border); }
.project-hero-image img { width: 100%; height: 100%; object-fit: contain; object-position:center; background:#fff; cursor: zoom-in; }
.project-hero-image span { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; color: #87958e; font-size: 1.8rem; }
.project-hero-copy h1 { margin: 3px 0 8px; }
.project-hero-copy p:last-child { margin: 0; color: var(--muted); }
.project-hero-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
.project-settings-dialog { width: min(920px, calc(100vw - 32px)); max-height: min(880px, calc(100vh - 32px)); padding: 0; border: 0; border-radius: 16px; box-shadow: 0 24px 80px rgba(8, 30, 22, .28); overflow: hidden; }
.project-settings-dialog::backdrop { background: rgba(10, 25, 19, .58); backdrop-filter: blur(2px); }
.project-settings-form { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; max-height: min(880px, calc(100vh - 32px)); }
.modal-heading { display: flex; justify-content: space-between; gap: 20px; padding: 22px 26px 18px; border-bottom: 1px solid var(--border); }
.modal-heading h2, .modal-heading p { margin: 0; }
.modal-close { border: 0; background: transparent; font-size: 28px; line-height: 1; cursor: pointer; color: var(--muted); }
.settings-scroll { overflow-y: auto; padding: 4px 26px 24px; }
.settings-section { padding: 20px 0; border-bottom: 1px solid var(--border); }
.settings-section:last-child { border-bottom: 0; }
.settings-section h3 { margin: 0 0 14px; }
.settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.field-span-2 { grid-column: 1 / -1; }
.owner-picker { border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; }
.owner-picker ul { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 4px 0 0; padding: 0; list-style: none; }
.checkbox-card { display: flex; gap: 10px; align-items: flex-start; border: 1px solid var(--border); border-radius: 10px; padding: 12px; }
.checkbox-card label { display: grid; gap: 3px; cursor: pointer; }
.checkbox-card input[type="checkbox"] { cursor: pointer; }
.checkbox-card small, .field-row small { color: var(--muted); }
.customer-participant-field > p { margin: 0 0 8px; font-size: 12px; line-height: 1.45; }
.modal-actions { display: flex; justify-content: flex-end; gap: 10px; padding: 16px 26px; border-top: 1px solid var(--border); background: #fbfcfa; }
.modal-action-spacer { flex: 1; }
.form-errors { margin: 14px 26px 0; color: var(--danger); }
.project-settings-dialog [hidden] { display: none !important; }
.project-create-dialog { width:min(960px,calc(100vw - 32px)); }
.visibility-hint { display:inline-flex; align-items:center; gap:5px; margin-left:8px; padding:3px 7px; border-radius:999px; font-size:10px; font-weight:700; vertical-align:middle; }
.visibility-hint.customer-visible { color:#166347; background:#dcefe6; }
.visibility-hint.internal-only { color:#81531d; background:#f7ead5; }
.project-rich-field { border:1px solid #bdcac4; border-radius:7px; overflow:hidden; background:white; }
.project-rich-field .rich-toolbar { background:#f8faf9; }
.project-rich-editor { min-height:120px; max-height:260px; }
.project-owner-picker { position:relative; display:grid; gap:8px; }
.owner-selection { display:flex; flex-wrap:wrap; gap:7px; min-height:36px; }
.owner-chip { display:inline-flex; align-items:center; gap:7px; min-height:34px; padding:3px 8px 3px 4px; border:1px solid #c9d5d0; border-radius:18px; color:#26332f; background:white; cursor:pointer; }
.owner-avatar { display:grid; width:26px; height:26px; flex:0 0 auto; place-items:center; border-radius:50%; color:white; background:var(--forest-700); font-size:9px; font-weight:800; }
.owner-search { position:relative; display:block; }
.owner-search i { position:absolute; top:50%; left:11px; color:var(--muted); transform:translateY(-50%); }
.owner-search input { width:100%; min-height:40px; padding:8px 10px 8px 34px; border:1px solid #bdcac4; border-radius:6px; }
.owner-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; max-height:190px; overflow-y:auto; }
.owner-options > button { display:grid; grid-template-columns:28px minmax(0,1fr) 20px; gap:8px; align-items:center; min-height:46px; padding:6px 8px; border:1px solid var(--line); border-radius:6px; color:var(--ink); background:white; text-align:left; cursor:pointer; }
.owner-options > button:hover { border-color:#9fb1a9; background:#f6f9f7; }
.owner-options > button.selected { border-color:#8fb8a8; background:#edf6f2; }
.owner-options > button > span:nth-child(2) { display:grid; min-width:0; }
.owner-options > button strong,.owner-options > button small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.owner-options > button small { color:var(--muted); font-size:10px; }
.owner-options > button > i { color:var(--forest-700); opacity:0; }
.owner-options > button.selected > i { opacity:1; }
.project-image-dropzone { display:flex; gap:14px; align-items:center; min-height:96px; padding:12px; border:1px dashed #9fb1a9; border-radius:8px; background:#f8faf9; cursor:pointer; }
.project-image-dropzone:hover { border-color:var(--forest-700); background:#f1f6f3; }
.project-image-dropzone input { position:absolute; width:1px; height:1px; opacity:0; }
.project-image-dropzone > span:last-child { display:grid; gap:4px; }
.project-image-dropzone small { color:var(--muted); }
.project-image-preview { display:grid; width:88px; height:72px; flex:0 0 auto; place-items:center; border:1px solid var(--line); border-radius:6px; color:#71867e; background:white; overflow:hidden; font-size:20px; }
.project-image-preview img { width:100%; height:100%; object-fit:cover; }
.project-narrative.rich-content p:first-child,.project-definition-list .rich-content p:first-child { margin-top:0; }
.project-narrative.rich-content p:last-child,.project-definition-list .rich-content p:last-child { margin-bottom:0; }
.back-link { display: inline-flex; align-items: center; gap: 7px; margin: 2px 0 12px; color: var(--forest); text-decoration: none; font-weight: 650; }
.back-button { padding: 0; border: 0; background: transparent; cursor: pointer; }
.product-detail-hero { grid-template-columns: 112px minmax(0,1fr) auto; padding-top: 0; }
.product-detail-image { width: 112px; height: 112px; overflow: hidden; border: 1px solid var(--border); border-radius: 14px; background: #eef1eb; }
.product-detail-image img { width: 100%; height: 100%; object-fit: contain; object-position:center; background:#fff; }
.product-detail-image span { display: grid; width: 100%; height: 100%; place-items: center; color: #87958e; font-size: 1.8rem; }
.product-detail-image-button{position:relative;padding:0;cursor:zoom-in;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.product-detail-image-button:hover{border-color:#91aa9f;box-shadow:0 8px 24px rgba(21,53,41,.12);transform:translateY(-1px)}.product-detail-image-button:focus-visible{outline:3px solid rgba(23,107,80,.22);outline-offset:3px}.product-image-zoom-hint{position:absolute;right:6px;bottom:6px!important;display:grid!important;width:25px!important;height:25px!important;place-items:center!important;border-radius:999px!important;background:rgba(255,255,255,.92)!important;color:#285d4b!important;box-shadow:0 2px 8px rgba(18,48,37,.18);font-size:12px!important;pointer-events:none}.product-image-lightbox{width:min(96vw,1500px);height:min(94vh,1100px);max-width:none;max-height:none;margin:auto;padding:0;border:0;border-radius:12px;background:#111914;box-shadow:0 24px 80px rgba(0,0,0,.42);overflow:hidden}.product-image-lightbox::backdrop{background:rgba(8,18,14,.82);backdrop-filter:blur(3px)}.product-image-lightbox>img{display:block;width:100%;height:100%;object-fit:contain;background:#111914}.product-image-lightbox-close{position:absolute;z-index:1;top:14px;right:14px;display:grid;width:42px;height:42px;place-items:center;padding:0;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(14,24,20,.76);color:#fff;cursor:pointer;backdrop-filter:blur(8px)}.product-image-lightbox-close:hover{background:rgba(255,255,255,.18)}.product-image-lightbox-close:focus-visible{outline:3px solid rgba(255,255,255,.42);outline-offset:2px}@media(max-width:680px){.product-image-lightbox{width:100vw;height:100dvh;border-radius:0}.product-image-lightbox-close{top:calc(10px + var(--safe-top));right:calc(10px + var(--safe-right))}}
.product-spec-grid dl { grid-template-columns: 140px 1fr; }
.spec-notes { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--border); }
.drawing-upload { display: grid; grid-template-columns: minmax(220px,1.2fr) minmax(180px,1fr) auto auto; gap: 10px; align-items: start; margin: 14px 0 18px; }
.inline-check { display: inline-flex; gap: 7px; align-items: center; white-space: nowrap; }
.drawing-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(320px,1fr)); gap: 16px; }
.drawing-card { overflow: hidden; border: 1px solid var(--border); border-radius: 12px; background: white; }
.drawing-preview { height: 300px; background: #eef1eb; }
.drawing-preview iframe { width: 100%; height: 100%; border: 0; }
.drawing-meta { display: grid; gap: 5px; padding: 13px 15px; }
.drawing-meta span { color: var(--muted); font-size: .85rem; }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.product-detail-pilot { --pilot-surface-subtle: #f1f5f3; --pilot-border-strong: #b8c6c0; --pilot-focus: rgba(23,107,80,.28); --pilot-radius-control: 6px; --pilot-radius-panel: 8px; }
.product-detail-pilot button:focus-visible, .product-detail-pilot a:focus-visible, .product-detail-pilot input:focus-visible, .product-detail-pilot select:focus-visible, .product-detail-pilot textarea:focus-visible { outline: 3px solid var(--pilot-focus); outline-offset: 2px; }
.product-back-link { margin-bottom: 16px; font-size: 14px; font-weight: 600; }
.product-detail-pilot .product-detail-hero { display: grid; grid-template-columns: 104px minmax(0,1fr) auto; align-items: center; gap: 20px; padding: 0 0 24px; border-bottom: 1px solid var(--line); }
.product-detail-pilot .product-detail-image { width: 104px; height: 104px; border-radius: var(--pilot-radius-panel); background: var(--pilot-surface-subtle); }
.product-hero-copy { min-width: 0; }
.product-hero-copy h1 { max-width: 900px; margin: 2px 0 10px; font-size: clamp(1.75rem,2.5vw,2.25rem); font-weight: 700; line-height: 1.12; letter-spacing: -.025em; }
.product-identity-meta { display: flex; flex-wrap: wrap; gap: 8px 18px; color: var(--muted); font-size: 14px; }
.product-identity-meta a, .product-identity-meta span { display: inline-flex; align-items: center; gap: 7px; }
.product-identity-meta a { color: var(--forest-700); text-decoration: none; font-weight: 600; }
.product-identity-meta i { color: #56756a; }
.product-hero-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.product-status { display: inline-flex; min-height: 30px; align-items: center; gap: 6px; padding: 4px 9px; border-radius: var(--pilot-radius-control); font-size: 12px; font-weight: 600; }
.product-status.status-active { color: #155d45; background: #dcece6; }
.product-status.status-on-hold { color: #7a4b12; background: #f5e8d1; }
.product-status.status-archived { color: #665b69; background: #ebe7ec; }
.product-hero-button-row{display:flex;align-items:center;gap:8px}.product-lifecycle-dialog{width:min(680px,calc(100vw - 32px));}.product-lifecycle-dialog>.settings-scroll{max-height:calc(100dvh - 210px);overscroll-behavior:contain}.lifecycle-action-form{display:grid;gap:10px;padding:18px 0}.lifecycle-action-form h3,.lifecycle-action-form p{margin:0}.lifecycle-action-form p{color:var(--muted);font-size:13px}.lifecycle-action-form button{justify-self:start}.lifecycle-archive-form{margin-top:4px}@media(max-width:680px){.product-hero-button-row{flex-wrap:wrap;justify-content:flex-end}}
.lifecycle-current-state{display:flex;align-items:center;justify-content:space-between;gap:16px}.lifecycle-current-state h3,.lifecycle-current-state p{margin:0}.lifecycle-choice-grid{display:grid;gap:9px}.lifecycle-choice-card{display:grid;width:100%;min-height:76px;box-sizing:border-box;grid-template-columns:38px minmax(0,1fr) 18px;align-items:center;gap:12px;padding:13px 14px;border:1px solid #ccd9d3;border-radius:9px;background:#fff;color:#20342c;text-align:left;cursor:pointer;white-space:normal}.lifecycle-choice-card>i:first-child{display:grid;width:36px;height:36px;place-items:center;border-radius:7px;background:#e7f1ec;color:#176b50;font-size:17px}.lifecycle-choice-card span{display:grid;min-width:0;gap:3px;align-content:center}.lifecycle-choice-card strong,.lifecycle-choice-card small{display:block;min-width:0;overflow:visible;text-overflow:clip;white-space:normal}.lifecycle-choice-card strong{line-height:1.25}.lifecycle-choice-card small{color:var(--muted);font-weight:400;line-height:1.35}.lifecycle-choice-card:hover,.lifecycle-choice-card:focus-visible{border-color:#8db6a5;background:#f4f9f6;outline:0}.lifecycle-choice-danger>i:first-child{background:#f7e8e5;color:#9a4138}.lifecycle-choice-danger:hover{border-color:#d7a59f;background:#fff7f5}.lifecycle-form-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin-top:5px}.lifecycle-form-actions button{justify-self:auto}
.product-overview-layout { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(270px,.75fr); gap: 16px; margin-top: 24px; align-items: start; }
.product-overview-sidebar { display: grid; gap: 16px; }
.preferred-supplier-badge { display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; border-radius: 999px; color: #17624f; background: #dceee8; font-size: .8rem; font-weight: 700; white-space: nowrap; }
.preferred-supplier-form { display: grid; gap: 12px; max-width: 620px; }
.preferred-supplier-form label { display: grid; gap: 6px; font-weight: 650; }
.preferred-supplier-form select,.preferred-supplier-form textarea { width: 100%; }
.product-panel { border: 1px solid var(--line); border-radius: var(--pilot-radius-panel); background: var(--surface); overflow: hidden; }
.product-panel-heading { padding: 17px 20px 14px; border-bottom: 1px solid var(--line); }
.product-panel-heading p, .product-section-heading .section-label { margin: 0 0 3px; color: var(--muted); font-size: 12px; font-weight: 500; }
.product-panel-heading h2, .product-section-heading h2 { font-size: 1rem; font-weight: 700; }
.product-definition-list { display: grid; grid-template-columns: 1fr 1fr; margin: 0; }
.product-definition-list > div { padding: 14px 20px; border-bottom: 1px solid #e8edea; }
.product-definition-list > div:nth-child(odd):not(.definition-wide) { border-right: 1px solid #e8edea; }
.product-definition-list .definition-wide { grid-column: 1 / -1; }
.product-definition-list dt, .product-development-list dt { margin-bottom: 6px; color: var(--muted); font-size: 12px; font-weight: 500; }
.product-definition-list dd, .product-development-list dd { margin: 0; color: var(--ink); font-weight: 600; }
.dimension-group dd { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 20px; font-variant-numeric: tabular-nums; }
.dimension-group dd span { display: inline-flex; align-items: baseline; gap: 5px; min-width: 70px; }
.dimension-group dd small { color: var(--muted); font-size: 11px; font-weight: 600; }
.dimension-group dd em { color: var(--muted); font-size: 12px; font-style: normal; font-weight: 400; }
.product-development-list { margin: 0; }
.product-development-list > div { padding: 14px 20px; border-bottom: 1px solid #e8edea; }
.product-development-list > div:last-child { border-bottom: 0; }
.product-section { margin-top: 28px; }
.product-section-heading { display: flex; justify-content: space-between; gap: 18px; align-items: flex-end; margin-bottom: 14px; }
.product-section-heading h2 { font-size: 1.08rem; }
.product-section-heading p:not(.section-label) { margin: 5px 0 0; color: var(--muted); font-size: 14px; }
.product-section-heading-actions { align-items: center; }
.product-action-surface { padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--pilot-radius-panel); background: var(--pilot-surface-subtle); }
.upload-field { display: grid; gap: 5px; }
.upload-field label { color: var(--muted); font-size: 12px; font-weight: 600; }
.product-action-surface input[type="file"], .product-action-surface input[type="text"] { width: 100%; min-height: 40px; padding: 0 10px; border: 1px solid var(--pilot-border-strong); border-radius: var(--pilot-radius-control); background: white; }
.product-action-surface input[type="file"] { padding: 5px 7px; color: var(--muted); font-size: 13px; }
.product-action-surface input[type="file"]::file-selector-button { height: 28px; margin-right: 9px; padding: 0 10px; border: 1px solid #c6d1cc; border-radius: 4px; color: #293730; background: #f8faf9; font: inherit; font-weight: 600; cursor: pointer; }

/* Action Type is a shared identity primitive. Status and urgency keep their own
   semantic colours; these palettes only distinguish controlled Action Types. */
.action-type-chip {
  --action-type-fg: #0f5c46;
  --action-type-bg: #edf6f2;
  --action-type-border: #bfd8cd;
  display: inline-flex;
  width: max-content;
  max-width: 100%;
  min-height: 28px;
  align-items: center;
  padding: 5px 12px;
  overflow: hidden;
  border: 1px solid var(--action-type-border);
  border-radius: 999px;
  color: var(--action-type-fg);
  background: var(--action-type-bg);
  font-size: 12px;
  font-weight: 750;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.action-type-chip--forest { --action-type-fg:#0f5c46; --action-type-bg:#edf6f2; --action-type-border:#bfd8cd; }
.action-type-chip--sage { --action-type-fg:#496759; --action-type-bg:#f0f5f1; --action-type-border:#cddbd3; }
.action-type-chip--teal { --action-type-fg:#155e63; --action-type-bg:#edf7f6; --action-type-border:#bedcda; }
.action-type-chip--blue { --action-type-fg:#3f5f7c; --action-type-bg:#eff4f8; --action-type-border:#c7d7e4; }
.action-type-chip--indigo { --action-type-fg:#4f5f8b; --action-type-bg:#f1f3f9; --action-type-border:#cfd5e8; }
.action-type-chip--violet { --action-type-fg:#66547f; --action-type-bg:#f5f1f8; --action-type-border:#dcd1e7; }
.action-type-chip--clay { --action-type-fg:#9a4d2d; --action-type-bg:#fbf1ec; --action-type-border:#e9bca9; }
.action-type-chip--amber { --action-type-fg:#8a5c14; --action-type-bg:#fbf5e9; --action-type-border:#ead1a2; }
.action-type-chip--ochre { --action-type-fg:#78621d; --action-type-bg:#f8f5e9; --action-type-border:#ded3a7; }
.action-type-chip--rose { --action-type-fg:#8a4e5c; --action-type-bg:#faf1f3; --action-type-border:#e5c4cc; }
.action-type-chip--slate { --action-type-fg:#53615d; --action-type-bg:#f2f5f4; --action-type-border:#d2dcda; }
.action-type-preview { margin-top: 2px; }
.drawing-upload .attachment-title-field,
.drawing-upload .upload-option-field,
.drawing-upload .upload-submit-field { display: grid; grid-template-rows: 20px 54px 18px; gap: 0; min-width: 0; }
.drawing-upload .upload-control-label { color: var(--muted); font-size: 12px; font-weight: 650; }
.drawing-upload .upload-field-spacer { display: block; min-height: 18px; }
.customer-visible-check { align-self: stretch; min-height: 54px; padding: 0; }
.customer-visible-check input { width: 16px; height: 16px; }
.drawing-upload .upload-submit-field > .secondary-button { align-self: stretch; min-height: 54px; }
.product-detail-pilot .drawing-card { border-radius: var(--pilot-radius-panel); box-shadow: none; }
.product-detail-pilot .drawing-grid { grid-template-columns: repeat(3,minmax(0,1fr)); align-items: start; }
.product-detail-pilot .drawing-preview { position: relative; display: block; aspect-ratio: 210 / 297; height: auto; overflow: hidden; padding: 0; background: #eef1eb; }
.product-detail-pilot .drawing-preview > img,
.product-detail-pilot .drawing-preview > iframe { position: absolute; inset: 12px; display: block; width: calc(100% - 24px); height: calc(100% - 24px); max-width: none; max-height: none; border: 0; background: white; }
.product-detail-pilot .drawing-preview > img { object-fit: contain; object-position: center; }
.drawing-upload .upload-limit { color: var(--muted); font-size: 12px; }
.drawing-upload .upload-error { margin: 0; color: #a43f37; font-size: 12px; line-height: 1.35; }
.file-preview-icon { display: grid; width: 100%; height: 100%; place-items: center; align-content: center; gap: 10px; padding: 20px; color: var(--muted); text-align: center; }
.file-preview-icon i { color: #5d756b; font-size: 42px; }
.file-preview-icon span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.product-detail-pilot .drawing-meta { padding: 12px 14px 14px; }
.drawing-title-row { display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.drawing-title-row > div:first-child { display: grid; gap: 4px; min-width: 0; }
.drawing-title-row > div:first-child span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.drawing-actions { display: flex; flex: 0 0 auto; gap: 5px; }
.drawing-actions form { margin: 0; }
.drawing-actions a, .drawing-actions button { display: inline-grid; width: 34px; height: 34px; padding: 0; place-items: center; border: 1px solid var(--line); border-radius: var(--pilot-radius-control); color: var(--forest-700); background: white; font: inherit; cursor: pointer; text-decoration: none; }
.drawing-actions button { color: var(--forest-700); }
.drawing-actions form button { color: var(--danger); }
.drawing-actions a:hover, .drawing-actions button:hover { border-color: var(--pilot-border-strong); background: var(--pilot-surface-subtle); }
.product-attachment-upload { display: grid; grid-template-columns: minmax(220px,1.2fr) minmax(180px,1fr) minmax(260px,1fr) auto auto; gap: 12px; align-items: end; margin: 14px 0 18px; }
.product-attachment-upload fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.product-attachment-type legend { margin-bottom: 6px; color: var(--muted); font-size: 12px; font-weight: 650; }
.product-attachment-type ul { display: flex; min-height: 40px; margin: 0; padding: 0; gap: 10px; align-items: center; list-style: none; }
.product-attachment-type label,.product-attachment-internal { display: inline-flex; gap: 6px; align-items: center; white-space: nowrap; }
.product-attachment-table { width: 100%; border-collapse: collapse; }
.product-attachment-table th,.product-attachment-table td { padding: 11px 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
.product-attachment-table th { color: var(--muted); font-size: 12px; font-weight: 700; }
.product-attachment-table .action-column { width: 180px; text-align: right; }
.product-attachment-table .drawing-actions { justify-content: flex-end; }
.deadline-overdue { color: var(--danger); font-weight: 650; }
.status-overdue { margin-left: 6px; color: #8f2f28; background: #fce9e7; }
.document-type-field { display: flex; margin: 0; padding: 0; gap: 12px; border: 0; }
.document-type-field legend { width: 100%; margin-bottom: 8px; font-weight: 700; }
.document-type-field label { display: inline-flex; gap: 6px; align-items: center; }
.product-empty-state { width: 100%; padding: 28px 20px; border-radius: var(--pilot-radius-panel); }
.product-empty-state > i { color: #6d8179; font-size: 24px; }
.product-empty-state h3 { margin-top: 8px; }
.product-empty-state p { margin: 6px 0 0; color: var(--muted); }
.product-table-wrap { width: 100%; max-width: 100%; overflow-x: auto; }
.product-table-wrap table { min-width: 620px; }
.product-table-wrap th, .product-table-wrap td { height: auto; padding-top: 12px; padding-bottom: 12px; }
.supplier-relationship-row{cursor:pointer;transition:background-color .14s ease,box-shadow .14s ease}.supplier-relationship-row:hover,.supplier-relationship-row:focus-visible{background:#f2f8f5;outline:0;box-shadow:inset 3px 0 0 var(--accent,#176b50)}.supplier-relationship-row td:first-child strong,.supplier-relationship-row td:first-child small{display:block}.supplier-relationship-row td:first-child small{margin-top:3px;color:var(--muted,#6c7f77);font-size:12px}.supplier-relationship-row .action-column{color:#527066;text-align:center}.supplier-detail-shell{display:flex;max-height:min(90vh,900px);flex-direction:column}.supplier-detail-view{display:grid;gap:14px}.supplier-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;border:1px solid var(--border,#d7e0dc);border-radius:10px;overflow:hidden}.supplier-detail-grid>div{min-height:86px;padding:15px 17px;border-right:1px solid var(--border,#d7e0dc);border-bottom:1px solid var(--border,#d7e0dc);background:#fff}.supplier-detail-grid>div:nth-child(3n){border-right:0}.supplier-detail-grid dt{margin:0 0 7px;color:var(--muted,#687c74);font-size:12px;font-weight:650;text-transform:uppercase;letter-spacing:.04em}.supplier-detail-grid dd{margin:0;color:var(--ink,#1b2b25);font-weight:600;line-height:1.45}.supplier-detail-grid .supplier-detail-wide{grid-column:1/-1;border-right:0}.supplier-detail-edit fieldset{min-width:0;margin:0;padding:0;border:0}.supplier-detail-edit[hidden],.supplier-detail-view[hidden],[data-supplier-view-actions][hidden]{display:none!important}@media(max-width:900px){.supplier-detail-grid{grid-template-columns:1fr 1fr}.supplier-detail-grid>div:nth-child(3n){border-right:1px solid var(--border,#d7e0dc)}.supplier-detail-grid>div:nth-child(2n){border-right:0}}@media(max-width:620px){.supplier-detail-grid{grid-template-columns:1fr}.supplier-detail-grid>div{border-right:0!important}}
.supplier-workflow-dialog{width:min(1040px,calc(100vw - 32px))!important;height:min(820px,calc(100dvh - 32px));max-width:1040px!important;max-height:calc(100dvh - 32px)!important;overflow:hidden!important}.supplier-workflow-dialog>.project-settings-form{height:100%;min-height:0;max-height:none}.supplier-workflow-dialog>.project-settings-form>.settings-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-top:20px}.supplier-workflow-dialog>.project-settings-form>.modal-heading,.supplier-workflow-dialog>.project-settings-form>.modal-actions{min-height:0}.supplier-detail-shell{width:100%;height:100%;max-height:none;min-height:0;background:#fff}.supplier-detail-shell>.modal-heading,.supplier-detail-shell>.modal-actions{flex:0 0 auto}.supplier-detail-view{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:10px 24px 24px;scrollbar-gutter:stable}.supplier-detail-edit{flex:1 1 auto;min-height:0;overflow:hidden}.supplier-detail-edit fieldset{display:grid;height:100%;min-height:0;grid-template-rows:minmax(0,1fr) auto}.supplier-detail-edit .settings-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.supplier-detail-grid>div{min-width:0}.modal-scroll-locked,.modal-scroll-locked body{overflow:hidden!important;overscroll-behavior:none}@media(max-width:700px){.supplier-workflow-dialog{width:100vw!important;height:100dvh;max-height:100dvh!important;border-radius:0!important}.supplier-detail-view{padding-inline:16px}}
.numeric-column { text-align: right; font-variant-numeric: tabular-nums; }
.action-column { width: 70px; text-align: right; }
.empty-value { color: var(--muted); font-weight: 400; }
.product-communication-list { overflow: hidden; border: 1px solid var(--line); border-radius: var(--pilot-radius-panel); background: white; }
.product-communication-list > article { padding: 18px 20px; border-bottom: 1px solid var(--line); }
.product-communication-list > article:last-child { border-bottom: 0; }
.product-communication-list h3 { margin: 7px 0 10px; font-size: 1rem; }
.communication-summary { max-width: 100ch; margin: 0; color: #35423d; line-height: 1.55; }
.communication-record-meta { display: flex; justify-content: space-between; gap: 14px; align-items: center; }
.communication-record-meta time { color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.product-detail-pilot .product-settings-dialog { max-height: min(880px,calc(100dvh - 32px)); border-radius: 12px; }
.product-detail-pilot .product-settings-dialog .project-settings-form { max-height: min(880px,calc(100dvh - 32px)); }
.modal-context { margin: 0 0 3px; color: var(--muted); font-size: 12px; font-weight: 600; }
@media (max-width: 980px) {
  .product-overview-layout { grid-template-columns: 1fr; }
  .product-development-list { display: grid; grid-template-columns: 1fr 1fr; }
  .product-development-list > div:nth-child(odd) { border-right: 1px solid #e8edea; }
  .product-detail-pilot .drawing-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .product-attachment-upload { grid-template-columns: 1fr; }
  .product-attachment-table-wrap { overflow: visible; }
  .product-attachment-table,.product-attachment-table tbody,.product-attachment-table tr,.product-attachment-table td { display: block; width: 100%; }
  .product-attachment-table thead { display: none; }
  .product-attachment-table tr { margin-bottom: 12px; padding: 8px 12px; border: 1px solid var(--line); border-radius: var(--pilot-radius-panel); background: white; }
  .product-attachment-table td { display: grid; grid-template-columns: 112px minmax(0,1fr); padding: 7px 0; border: 0; text-align: left; }
  .product-attachment-table td::before { color: var(--muted); font-size: 12px; font-weight: 700; }
  .product-attachment-table td:nth-child(1)::before { content: "Attachment"; }
  .product-attachment-table td:nth-child(2)::before { content: "File type"; }
  .product-attachment-table td:nth-child(3)::before { content: "Uploaded on"; }
  .product-attachment-table td:nth-child(4)::before { content: "Internal only"; }
  .product-attachment-table td:nth-child(5)::before { content: "Actions"; }
  .product-attachment-table .action-column { width: 100%; }
  .product-attachment-table .drawing-actions { justify-content: flex-start; }
  .product-detail-pilot .product-detail-hero { grid-template-columns: 80px minmax(0,1fr); gap: 14px; }
  .product-detail-pilot .product-detail-image { width: 80px; height: 80px; }
  .product-hero-copy h1 { font-size: 1.5rem; }
  .product-identity-meta { gap: 6px 12px; font-size: 13px; }
  .product-hero-actions { grid-column: 1 / -1; width: 100%; flex-direction: row; justify-content: space-between; align-items: center; }
  .product-definition-list, .product-development-list { grid-template-columns: 1fr; }
  .product-definition-list > div:nth-child(odd):not(.definition-wide), .product-development-list > div:nth-child(odd) { border-right: 0; }
  .product-panel-heading, .product-definition-list > div, .product-development-list > div, .product-communication-list > article { padding-right: 16px; padding-left: 16px; }
  .product-section-heading { align-items: flex-start; flex-direction: column; }
  .product-section-heading-actions .secondary-button { width: 100%; }
  .product-detail-pilot .drawing-grid { grid-template-columns: 1fr; }
  .communication-record-meta { align-items: flex-start; }
}

/* System-wide workbench standard, promoted from the Product Detail pilot. */
:root {
  --forest: var(--forest-700);
  --surface-subtle: #f1f5f3;
  --surface-raised: #fbfcfb;
  --border-strong: #b8c6c0;
  --focus-ring: rgba(23,107,80,.28);
  --radius-control: 6px;
  --radius-panel: 8px;
}
html { scroll-padding-top: 84px; }
body { color: #19231f; font-size: 14px; line-height: 1.45; }
body, button, input, select, textarea { font-family: var(--ui-font-sans); }
::selection { color: white; background: var(--forest-700); }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 2px; }
.skip-link { position: fixed; z-index: 1000; top: 8px; left: 8px; padding: 9px 12px; border-radius: var(--radius-control); color: white; background: var(--forest-900); transform: translateY(-150%); }
.skip-link:focus { transform: none; }
.app-sidebar { border-right: 1px solid rgba(255,255,255,.08); }
.primary-nav a.active { color: white; background: rgba(255,255,255,.13); box-shadow: inset 3px 0 0 #8fc4ae; }
.app-topbar { box-shadow: 0 1px 0 rgba(8,45,36,.03); }
.page-shell { max-width: 1520px; padding-top: 24px; }
.page-heading { align-items: center; margin-bottom: 20px; }
.page-heading > div > p:last-child:not(.eyebrow), .compact-heading p { max-width: 70ch; margin: 5px 0 0; color: var(--muted); }
.compact-heading h1 { font-size: clamp(1.65rem,2.5vw,2.15rem); }
h1 { font-size: clamp(1.75rem,2.7vw,2.35rem); }
h2 { font-size: 1rem; }
h3 { font-size: .95rem; }
.button, .secondary-button, .icon-button { transition: border-color 120ms ease, background-color 120ms ease, color 120ms ease, transform 80ms ease; }
.button:active, .secondary-button:active, .icon-button:active { transform: translateY(1px); }
.button, .secondary-button { border-radius: var(--radius-control); white-space: nowrap; }
.icon-button { border-radius: var(--radius-control); }
.icon-button i { line-height: 1; }
.card, .form-card, .empty-state, .auth-card, .hero-panel, .table-wrap, .metric-grid { border-radius: var(--radius-panel); box-shadow: none; }
.workspace-panel { min-width: 0; padding: 18px 20px; border: 1px solid var(--line); border-radius: var(--radius-panel); background: white; }
.workspace-panel > .section-heading { padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.metric-grid { grid-template-columns: repeat(auto-fit,minmax(150px,1fr)); overflow: hidden; }
.metric-card { position: relative; min-height: 98px; padding: 18px 18px 14px; }
.metric-card > i { position: absolute; top: 17px; right: 17px; color: #769087; font-size: 16px; }
.metric-card strong { font-size: 1.55rem; font-variant-numeric: tabular-nums; }
.dashboard-grid { gap: 16px; }
.dashboard-list { gap: 0; }
.dashboard-list li { min-height: 52px; align-items: center; padding: 9px 0; }
.dashboard-list li:last-child { padding-bottom: 0; border-bottom: 0; }
.count-label { color: var(--muted); font-size: 12px; font-weight: 650; white-space: nowrap; }
.empty-row { justify-content: flex-start !important; color: var(--muted); }
.empty-row i { margin-right: 4px; }
.record-list { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-panel); background: white; }
.record-row { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; gap: 13px; align-items: center; padding: 15px 18px; border-bottom: 1px solid var(--line); }
.record-row:last-child { border-bottom: 0; }
.record-icon { display: grid; width: 32px; height: 32px; place-items: center; border-radius: var(--radius-control); color: var(--forest-700); background: var(--forest-100); }
.record-main { min-width: 0; }
.record-main h3 { margin: 3px 0; }
.record-main p { max-width: 100ch; margin: 3px 0 0; color: #3c4944; }
.record-meta { color: var(--muted); font-size: 11px; }
.compact-empty { padding: 28px 20px; }
.compact-empty > i { color: #70867d; font-size: 22px; }
.compact-empty h3 { margin-top: 7px; }
.table-wrap { overflow-x: auto; }
table { min-width: 680px; }
th { height: 38px; padding: 9px 12px; background: #f5f8f6; }
tbody tr { min-height: 64px; }
table tbody td { height: 64px; padding: 9px 12px; }
tbody tr:hover { background: #fbfcfb; }
.table-thumbnail { width: 48px; height: 48px; border-radius: var(--radius-control); }
.pagination { min-height: 42px; padding-top: 2px; }
.page-number { border-radius: var(--radius-control); }
.page-number.active { color: white; background: var(--forest-700); }
.form-card { padding: 22px; }
.form-card > .stacked-form, .form-card.stacked-form { max-width: 720px; }
.stacked-form input, .stacked-form select, .stacked-form textarea, .field-row input, .field-row select, .field-row textarea { border-radius: var(--radius-control); }
.stacked-form input:hover, .stacked-form select:hover, .stacked-form textarea:hover, .field-row input:hover, .field-row select:hover, .field-row textarea:hover { border-color: #94a89f; }
.form-actions { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--line); }
.empty-state { color: var(--muted); }
.empty-state h2, .empty-state h3 { color: var(--ink); }
.empty-state p { max-width: 52ch; margin: 7px auto 0; }
.context-header { padding: 4px 0 16px; border-bottom: 0; }
.context-tabs { gap: 8px; margin-bottom: 24px; }
.context-tabs a { padding: 12px 10px; border-radius: 5px 5px 0 0; font-size: 13px; }
.context-tabs a:hover { background: #edf3f0; }
.detail-grid { gap: 16px; }
.detail-grid .card { padding: 18px 20px; }
.detail-grid .card h2 { margin-bottom: 13px; }
.management-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.management-card { position: relative; min-height: 132px; padding: 18px; }
.management-card > i { display: grid; width: 34px; height: 34px; place-items: center; border-radius: var(--radius-control); color: var(--forest-700); background: var(--forest-100); font-size: 16px; }
.management-card h2 { margin: 14px 0 4px; }
.management-card p { margin: 0; color: var(--muted); font-size: 13px; }
.management-card::after { content: "\F135"; position: absolute; top: 18px; right: 18px; color: #7d9189; font-family: bootstrap-icons; }
.message { border-radius: var(--radius-control); }
.timeline-item { padding: 17px 19px; }
.audit-json { border-radius: var(--radius-control); }
.auth-card h1 { margin-bottom: 8px; }
.public-header { height: 60px; }
.public-shell { min-height: calc(100dvh - 60px); }
.image-lightbox button { display: grid; width: 34px; height: 34px; place-items: center; font-size: 18px; }

@media (max-width: 980px) {
  .management-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dashboard-grid, .detail-grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .page-shell { padding: 18px 14px 42px; }
  .page-heading { align-items: flex-start; }
  .page-heading .button { align-self: flex-start; }
  .metric-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .metric-card:nth-child(2n) { border-right: 0; }
  .management-grid { grid-template-columns: 1fr; }
  .record-row { grid-template-columns: 32px minmax(0,1fr) auto; padding: 13px; }
  .context-tabs { margin-right: -14px; margin-left: -14px; padding: 0 14px; overflow-x: auto; }
  .context-tabs a { white-space: nowrap; }
  .pagination { align-items: flex-start; flex-direction: column; }
  .pagination-pages { width: 100%; overflow-x: auto; }
  .auth-card { margin: 30px auto; padding: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
.settings-grid.four-columns { grid-template-columns: repeat(4,minmax(0,1fr)); }
.settings-grid.three-columns { grid-template-columns: repeat(3,minmax(0,1fr)); }
@media (max-width: 760px) {
  .project-hero { grid-template-columns: 80px 1fr; }
  .project-hero-image { width: 80px; height: 80px; }
  .project-hero-actions { grid-column: 1 / -1; flex-direction: row; justify-content: space-between; align-items: center; width: 100%; }
  .settings-grid { grid-template-columns: 1fr; }
  .owner-options { grid-template-columns:1fr; }
  .field-span-2 { grid-column: auto; }
  .product-detail-hero { grid-template-columns: 80px 1fr; }
  .product-detail-image { width: 80px; height: 80px; }
  .drawing-upload { grid-template-columns: 1fr; }
  .settings-grid.four-columns, .settings-grid.three-columns { grid-template-columns: 1fr; }
}
.rich-content table { margin: 12px 0; }
.rich-content th, .rich-content td { padding: 7px 9px; border: 1px solid var(--line); }
.entry-meta { display: grid; gap: 3px; margin-top: 10px; color: var(--muted); font-size: 12px; }
.attachment-chips { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.attachment-chip { display: inline-flex; align-items: center; gap: 7px; max-width: 100%; min-height: 34px; padding: 5px 9px; border: 1px solid var(--line); border-radius: 5px; color: #31423c; text-decoration: none; background: #fafcfb; }
.attachment-chip span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.attachment-chip small { color: var(--muted); }
.communication-form { display: grid; gap: 9px; }
.communication-form .field-row { margin: 0; }
.communication-page { padding: 2px 4px 50px; }
.communication-titlebar { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; margin: 8px 0 20px; }
.communication-titlebar h2 { margin: 2px 0 5px; font-size: 1.7rem; }
.communication-title-actions { display: flex; align-items: center; gap: 16px; }
.timeline-count { color: var(--muted); font-size: 1rem; }
.communication-filters { display: inline-flex; gap: 4px; margin: -2px 0 20px 72px; padding: 4px; border: 1px solid var(--line); border-radius: 10px; background: #f7f9f8; }
.communication-filters a { display: inline-flex; min-height: 34px; align-items: center; gap: 7px; padding: 5px 11px; border-radius: 7px; color: #52615b; text-decoration: none; font-size: 13px; font-weight: 650; }
.communication-filters a:hover { background: white; }
.communication-filters a.active { color: var(--ink); background: white; box-shadow: 0 1px 4px rgba(18,45,34,.12); }
.communication-filters span { width: 8px; height: 8px; border-radius: 50%; }
.communication-filters .filter-internal span { background: #c88a3d; }
.communication-filters .filter-customer span { background: #24855f; }
.communication-timeline { gap: 18px; }
.communication-timeline::before { left: 27px; top: 28px; bottom: 28px; }
.communication-timeline .communication-entry { grid-template-columns: 56px minmax(0,1fr); gap: 18px; }
.timeline-author { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 5px; }
.timeline-author .timeline-marker { width: 54px; height: 54px; font-size: 14px; }
.communication-timeline .communication-entry-body { padding: 20px 24px; border-radius: 11px; box-shadow: 0 1px 2px rgba(20,40,32,.03); }
.entry-heading { display: flex; justify-content: space-between; gap: 18px; align-items: flex-start; }
.entry-heading h3 { margin: 6px 0 0; font-size: 1.18rem; }
.entry-author-line { margin-top: 3px; color: var(--muted); font-size: 12px; }
.entry-actions { display: flex; align-items: center; gap: 12px; }
.visibility-tag { display: inline-flex; min-height: 30px; align-items: center; padding: 4px 11px; border-radius: 999px; color: var(--forest-700); background: #e2f0ea; font-size: 12px; font-weight: 700; white-space: nowrap; }
.visibility-customer { color: #166347; background: #dcefe6; }
.visibility-internal { color: #81531d; background: #f7ead5; }
.entry-edit-button { width: 32px; height: 32px; }
.communication-content { margin-top: 16px; color: #25312c; font-size: 1rem; }
.communication-content .user-mention, .user-mention { display: inline-flex; padding: 1px 5px; border-radius: 4px; color: var(--forest-700); background: #e2f0ea; font-weight: 700; }
.communication-timeline .entry-meta { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--line); font-size: 13px; }
.communication-related-products { display: grid; gap: 10px; margin-top: 16px; padding-top: 13px; border-top: 1px solid var(--line); }
.communication-related-products-heading { display: flex; align-items: center; gap: 7px; color: var(--ink); font-size: 13px; }
.communication-related-products-heading > span { display: inline-grid; min-width: 22px; height: 22px; place-items: center; padding: 0 6px; border-radius: 999px; color: #5d6b65; background: #edf2ef; font-size: 11px; font-weight: 700; }
.communication-product-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.communication-product-card { position: relative; display: grid; grid-template-columns: 54px minmax(0,1fr); gap: 11px; min-width: 0; min-height: 76px; align-items: center; padding: 10px 12px 10px 10px; border: 1px solid #d8e2dd; border-radius: 9px; color: var(--ink); background: #fff; text-decoration: none; transition: border-color .16s ease,box-shadow .16s ease,transform .16s ease; }
.communication-product-card:hover { border-color: #8fb6a6; box-shadow: 0 6px 18px rgba(21,53,41,.08); transform: translateY(-1px); }
.communication-product-card:focus-visible { outline: 3px solid rgba(23,107,80,.18); outline-offset: 2px; }
.communication-product-card[hidden] { display: none !important; }
.communication-product-thumb { display: grid; width: 54px; height: 54px; place-items: center; overflow: hidden; border-radius: 7px; color: #8b9a94; background: #f0f3f1; }
.communication-product-thumb img { width: 100%; height: 100%; object-fit: cover; }
.communication-product-thumb i { font-size: 19px; }
.communication-product-copy { display: grid; min-width: 0; gap: 2px; }
.communication-product-copy small,.communication-product-copy strong,.communication-product-copy > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.communication-product-copy small { color: #586a63; font-size: 10px; font-weight: 700; letter-spacing: .01em; }
.communication-product-copy strong { font-size: 13px; line-height: 1.25; }
.communication-product-copy > span { color: var(--muted); font-size: 11px; }
.communication-product-status { position: absolute; top: 8px; right: 8px; padding: 2px 6px; border-radius: 999px; color: #75685d; background: #eeeae6; font-size: 9px; font-weight: 750; text-transform: uppercase; }
.communication-product-card:has(.communication-product-status) .communication-product-copy { padding-right: 48px; }
.communication-products-toggle { justify-self: start; padding: 2px 0; border: 0; color: var(--forest-700); background: transparent; font-size: 12px; font-weight: 700; cursor: pointer; }
.communication-products-toggle:hover { text-decoration: underline; }
@media (max-width: 980px) { .communication-product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 680px) { .communication-product-grid { grid-template-columns: 1fr; } }
.communication-dialog { width: min(880px,calc(100vw - 32px)); max-height: calc(100vh - 32px); padding: 0; border: 0; border-radius: 16px; box-shadow: 0 24px 80px rgba(8,30,22,.28); overflow: hidden; }
.communication-dialog::backdrop { background: rgba(10,25,19,.58); backdrop-filter: blur(2px); }
.communication-modal-form { display: grid; grid-template-rows: auto minmax(0,1fr) auto; max-height: calc(100vh - 32px); }
.communication-form-scroll { display: grid; gap: 16px; padding: 20px 26px 26px; overflow-y: auto; }
.communication-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.editor-label { display: flex; justify-content: space-between; align-items: center; font-weight: 650; }
.editor-label span { color: var(--muted); font-size: 12px; font-weight: 400; }
.mention-editor-wrap { position: relative; }
.mention-menu { position: absolute; z-index: 5; top: 100%; left: 12px; width: min(320px,calc(100% - 24px)); max-height: 240px; padding: 6px; border: 1px solid var(--line); border-radius: 9px; background: white; box-shadow: 0 12px 30px rgba(15,40,30,.16); overflow-y: auto; }
.mention-menu button { display: flex; width: 100%; align-items: center; justify-content: flex-start; gap: 10px; padding: 9px 10px; border: 0; border-radius: 6px; background: transparent; text-align: left; cursor: pointer; }
.mention-menu button:hover,.mention-menu button[aria-selected="true"] { background: var(--sage-100); }
.mention-menu button > span:last-child { display: grid; min-width: 0; gap: 1px; }
.mention-menu span { color: var(--muted); }
.mention-menu .owner-avatar { color: #fff; }
.mention-menu .mention-user-copy { gap: 2px; }
.mention-menu .mention-user-heading { display: flex; min-width: 0; align-items: center; gap: 7px; color: var(--ink); }
.mention-menu .mention-user-heading strong { min-width: 0; overflow: hidden; color: inherit; text-overflow: ellipsis; white-space: nowrap; }
.mention-menu .mention-user-type { display: inline-flex; flex: 0 0 auto; align-items: center; min-height: 18px; padding: 2px 6px; border-radius: 999px; color: #53625c; background: #edf1ef; font-size: 9px; font-weight: 700; line-height: 1; }
.toolbar-divider { width: 1px; height: 22px; margin: 0 4px; background: var(--line); }
.attachment-dropzone { display: flex; align-items: center; gap: 9px; min-height: 48px; padding: 7px 10px; border: 1px dashed #aebdb6; border-radius: 6px; color: var(--muted); background: white; }
.attachment-dropzone.dragging { border-color: var(--forest-700); background: var(--forest-100); }
.attachment-dropzone > span { flex: 1; }
.attachment-dropzone input[type=file] { position: absolute; width: 1px; height: 1px; opacity: 0; }
.upload-queue { display: grid; gap: 5px; }
.upload-row { display: grid; grid-template-columns: 20px minmax(0,1fr) 70px 55px 30px; align-items: center; gap: 8px; min-height: 38px; padding: 5px 8px; border: 1px solid var(--line); border-radius: 5px; background: white; }
.upload-row span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.upload-row small { color: var(--muted); }
.upload-row button { border: 0; background: transparent; cursor: pointer; }
.upload-complete { color: var(--forest-700); font-size: 12px; }
.product-selector, .visibility-selector { margin: 0; padding: 0; border: 0; }
.product-selector-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.archived-products-toggle { display:inline-flex!important; min-height:var(--ui-control-compact); align-items:center!important; gap:8px!important; padding:0!important; border:0!important; background:transparent!important; color:var(--ui-muted); font-size:12px!important; font-weight:650!important; cursor:pointer; }
.archived-products-toggle input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.archived-products-switch { position:relative; width:38px; height:22px; flex:0 0 38px; border:1px solid #9eada6; border-radius:var(--ui-radius-pill); background:#cfd7d3; transition:border-color .15s ease,background-color .15s ease; }
.archived-products-switch::after { content:""; position:absolute; top:2px; left:2px; width:16px; height:16px; border-radius:50%; background:#fff; box-shadow:0 1px 4px rgba(24,51,41,.25); transition:transform .15s ease; }
.archived-products-toggle input:checked + .archived-products-switch { border-color:var(--ui-forest); background:var(--ui-forest); }
.archived-products-toggle input:checked + .archived-products-switch::after { transform:translateX(16px); }
.archived-products-toggle input:focus-visible + .archived-products-switch { outline:3px solid rgba(23,107,80,.2); outline-offset:2px; }
.product-selector ul { display: flex; flex-wrap: wrap; gap: 7px; margin: 7px 0 0; padding: 0; list-style: none; }
.product-selector label { display: flex; gap: 6px; align-items: center; padding: 5px 8px; border: 1px solid var(--line); border-radius: 5px; background: white; font-size: 12px; font-weight: 500; }
.product-selector label.is-archived-product { background:#f6f7f6; color:#607069; }
.archived-product-badge { margin-left:3px; padding:2px 5px; border-radius:999px; color:#6c5b50; background:#ebe7e2; font-size:9px; font-weight:750; text-transform:uppercase; }
.visibility-selector { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.visibility-selector legend { grid-column: 1 / -1; }
.visibility-selector label { display: flex; align-items: start; gap: 8px; min-height: 52px; padding: 7px 8px; border: 1px solid var(--line); border-radius: 6px; background: white; }
.visibility-selector label span { display: grid; }
.visibility-selector small { color: var(--muted); font-size: 11px; }
.composer-actions { position: sticky; bottom: -24px; z-index: 2; display: flex; justify-content: end; gap: 8px; margin: 0 -18px -24px; padding: 12px 18px 14px; border-top: 1px solid var(--line); background: #fbfcfb; }
.link-danger { padding: 0; border: 0; color: var(--danger); background: transparent; cursor: pointer; text-decoration: underline; }
.season-filter { display: grid; gap: 5px; min-width: 200px; }
.season-filter select { min-height: 38px; padding: 7px 10px; border: 1px solid #bdcac4; border-radius: 6px; background: white; }
.portfolio-row-form { display: grid; grid-template-columns: minmax(100px,.8fr) minmax(120px,1fr) minmax(105px,.8fr) minmax(150px,1.4fr) minmax(110px,.9fr) minmax(120px,.9fr) 58px; gap: 7px; align-items: start; }
.portfolio-row-form-compact { grid-template-columns: minmax(140px,.8fr) minmax(260px,1.5fr) minmax(140px,.8fr) 68px; align-items: center; }
.portfolio-table select, .portfolio-table input { width: 100%; min-width: 0; max-width: none; padding: 6px; border: 1px solid #cbd5d1; border-radius: 5px; }
.portfolio-table ul { max-height: 84px; margin: 0; padding: 0; overflow: auto; list-style: none; }
.portfolio-table ul label { display: flex; gap: 4px; font-size: 12px; }
.portfolio-table td:first-child small { display: block; color: var(--muted); }
.document-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(300px,1fr)); gap: 12px; }
.version-list { display: grid; gap: 7px; padding-left: 18px; }
.version-list li { display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.version-list form { margin: 0; }
.public-layout { min-height: 100vh; }
.public-header { height: 64px; display: flex; align-items: center; padding: 0 28px; color: white; background: var(--forest-950); }
.public-shell { padding: 30px 16px; }
@media (max-width: 1100px) {
  :root { --sidebar: 72px; }
  .app-sidebar { width: 72px; }
  .app-brand > span:last-child, .primary-nav span, .sidebar-user > span:last-child { display: none; }
  .app-brand, .primary-nav a { justify-content: center; }
  .communication-workspace { grid-template-columns: 1fr; height: auto; overflow: visible; }
  .communication-stream { border-right: 0; border-bottom: 1px solid var(--line); }
  .composer-panel { background: white; }
}
@media (max-width: 760px) {
  :root { --sidebar: 0px; }
  .app-shell { padding-left: 0; }
  .app-sidebar { width: 240px; transform: translateX(-100%); transition: transform .2s ease; }
  .nav-open .app-sidebar { transform: translateX(0); }
  .app-brand > span:last-child, .primary-nav span, .sidebar-user > span:last-child { display: grid; }
  .app-brand, .primary-nav a { justify-content: flex-start; }
  .nav-toggle { display: inline-flex; }
  .app-topbar { padding: 0 14px; }
  .today, .topbar-user > span:not(.user-avatar) { display: none; }
  .page-shell { padding: 20px 14px 44px; }
  .page-heading, .context-header { align-items: flex-start; flex-direction: column; }
  .detail-grid, .dashboard-grid { grid-template-columns: 1fr; }
  .metric-grid { grid-template-columns: repeat(2,1fr); }
  .metric-card { border-bottom: 1px solid var(--line); }
  .context-tabs { margin-right: -14px; margin-left: -14px; padding: 0 14px; overflow-x: auto; }
  .communication-workspace { margin: -20px -14px -44px; }
  .communication-stream, .composer-panel { padding: 18px 14px 36px; }
  .visibility-selector { grid-template-columns: 1fr; }
  .attachment-dropzone { flex-wrap: wrap; }
  .table-wrap { overflow-x: auto; }
  .portfolio-table { min-width: 900px; }

  /* Communication composer: make the form shrink to the mobile viewport
     without clipping the rich-text surface. */
  .communication-form-scroll { min-width: 0; max-width: 100%; padding: 14px; }
  .communication-form-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .communication-modal-form .tiptap-editor,
  .communication-modal-form .tiptap-toolbar,
  .communication-modal-form .tiptap-surface,
  .communication-modal-form .tiptap-content { min-width: 0; max-width: 100%; }
  .communication-modal-form .tiptap-toolbar { padding: 6px; gap: 2px; flex-wrap: wrap; }
  .communication-modal-form .editor-label { align-items: flex-start; flex-direction: column; gap: 4px; }
}

.search-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.search-grid .section-heading h2 { display: inline-flex; align-items: center; gap: 8px; }
.search-grid .section-heading h2 i { color: var(--forest-700); }
.document-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.document-grid .card { padding: 16px; }
.document-grid .card > p { margin: 10px 0; color: var(--muted); font-size: 13px; }
.document-grid details { margin-top: 13px; padding-top: 11px; border-top: 1px solid var(--line); }
.document-grid summary { color: var(--forest-700); cursor: pointer; font-size: 12px; font-weight: 650; }
.recycle-list { display: grid; gap: 8px; }
.recycle-row { padding: 14px 16px; }
.recycle-row .section-heading { margin: 0; }
.empty-state > i:first-child { display: inline-block; margin-bottom: 8px; color: #71867e; font-size: 24px; }
.status-draft { color: #52615b; background: #edf1ef; }
.status-active { color: #155d45; background: #dcece6; }
.status-on_hold, .status-on-hold { color: #7a4b12; background: #f5e8d1; }
.status-archived { color: #665b69; background: #ebe7ec; }
.project-overview-layout { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 16px; align-items: start; }
.project-source-panel { grid-column: 1 / -1; }
.project-definition-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0; }
.project-definition-list > div { min-width: 0; padding: 14px 20px; border-bottom: 1px solid #e8edea; }
.project-definition-list > div:nth-child(odd):not(.definition-wide) { border-right: 1px solid #e8edea; }
.project-definition-list > div:nth-last-child(-n+2) { border-bottom: 0; }
.project-definition-list .definition-wide { grid-column: 1 / -1; border-bottom: 0; }
.project-definition-list dt { margin-bottom: 5px; color: var(--muted); font-size: 12px; }
.project-definition-list dd { margin: 0; font-weight: 600; }
.project-dashboard-overview{display:grid;gap:16px;padding-bottom:28px}.project-snapshot-grid{display:grid;grid-template-columns:minmax(360px,.82fr) minmax(0,1.18fr);gap:16px;align-items:stretch}.project-snapshot-grid>.product-panel{height:100%}.project-brief-panel .project-narrative{padding:18px 20px;max-height:240px;overflow:auto}.overview-module{overflow:hidden;border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:0 5px 18px rgba(18,48,37,.035)}.overview-module-heading{display:flex;min-height:66px;align-items:center;justify-content:space-between;gap:16px;padding:13px 18px;border-bottom:1px solid var(--border)}.overview-module-heading h2{display:flex;align-items:center;gap:8px;margin:2px 0 0;font-size:18px}.overview-module-heading h2 span{display:inline-grid;min-width:25px;height:25px;place-items:center;padding:0 7px;border-radius:999px;background:#edf3f0;color:#52685f;font-size:11px}.overview-module-heading .section-label{margin:0}.overview-product-list,.overview-record-list{display:grid}.overview-product-row{display:grid;grid-template-columns:58px minmax(0,1fr) auto 18px;align-items:center;gap:14px;min-height:78px;padding:10px 16px;border-bottom:1px solid #e6ece9;color:inherit;text-decoration:none;transition:background .14s ease}.overview-product-row:last-child,.overview-record-list>*:last-child{border-bottom:0}.overview-product-row:hover,.overview-product-row:focus-visible,.overview-communication-row:hover,.overview-communication-row:focus-visible{background:#f4f9f6;outline:0}.overview-product-thumb{display:grid;width:56px;height:56px;place-items:center;overflow:hidden;border:1px solid #dce4e0;border-radius:8px;background:#f1f4f2;color:#7c9087}.overview-product-thumb img{width:100%;height:100%;object-fit:contain;background:#fff}.overview-product-main{display:grid;gap:2px;min-width:0}.overview-product-main strong{color:#176b50;font-size:12px;letter-spacing:.025em}.overview-product-main b,.overview-product-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overview-product-main small{color:var(--muted);font-weight:400}.overview-row-arrow{color:#70847b}.overview-secondary-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.overview-file-row,.overview-communication-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:76px;padding:11px 15px;border-bottom:1px solid #e6ece9}.overview-file-preview{display:grid;width:46px;height:46px;place-items:center;overflow:hidden;border-radius:7px;background:#edf3f0;color:#55736a;font-size:20px}.overview-file-preview img{width:100%;height:100%;object-fit:cover}.overview-file-row>div,.overview-communication-row>div{display:grid;gap:2px;min-width:0}.overview-file-row span,.overview-file-row small,.overview-communication-row span,.overview-communication-row small{overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.overview-communication-row{grid-template-columns:38px minmax(0,1fr) auto;color:inherit;text-decoration:none}.overview-avatar{display:grid!important;width:36px;height:36px;place-items:center;border-radius:50%;background:#176b50;color:#fff!important;font-weight:750}.overview-empty{display:flex;min-height:116px;align-items:center;justify-content:center;gap:13px;padding:24px;color:var(--muted)}.overview-empty>i{font-size:25px}.overview-empty div{display:grid;gap:3px}.overview-empty strong{color:#344a42}.project-dashboard-overview>.project-source-panel{width:100%}@media(max-width:980px){.project-snapshot-grid,.overview-secondary-grid{grid-template-columns:1fr}}@media(max-width:680px){.overview-product-row{grid-template-columns:48px minmax(0,1fr) 16px}.overview-product-thumb{width:46px;height:46px}.overview-product-row .product-status{grid-column:2}.overview-module-heading{align-items:flex-start}.overview-secondary-grid{grid-template-columns:1fr}.overview-file-row,.overview-communication-row{grid-template-columns:40px minmax(0,1fr)}.overview-file-row>.icon-button,.overview-communication-row>.visibility-tag{display:none}}
.project-narrative { padding: 14px 20px; }
.project-narrative p { max-width: none; }
.project-narrative.rich-content,
.project-narrative.rich-content > * { width: auto; max-width: 100%; }
.attribute-group-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
@media (max-width: 1100px) { .document-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 760px) { .search-grid, .document-grid, .project-overview-layout, .attribute-group-grid { grid-template-columns: 1fr; } .project-source-panel { grid-column: auto; } .project-definition-list { grid-template-columns: 1fr; } .project-definition-list > div { border-right: 0 !important; } }

/* Configurable product workspace */
.page-shell:has(> .product-workspace-page) { display:flex; max-width:none; height:calc(100dvh - 64px); margin:0; padding:18px 20px 16px; overflow:hidden; flex-direction:column; }
.page-shell:has(> .product-workspace-page) > .message-stack { flex:0 0 auto; }
.product-workspace-page { display:flex; width:100%; height:auto; min-height:0; flex:1 1 auto; flex-direction:column; }
.workspace-header { display:flex; justify-content:space-between; gap:24px; align-items:flex-end; margin:2px 0 20px; }
.button.secondary { color:var(--forest-700); border-color:#bdcac4; background:white; }
.button.secondary:hover { border-color:#8ea39a; background:#f1f6f3; }
.workspace-header h1 { margin:4px 0 0; font-size:2.15rem; letter-spacing:-.035em; }
.workspace-header-actions { display:flex; gap:8px; }
.workspace-export-form { display:flex; margin:0; }
.workspace-viewbar { display:flex; gap:4px; margin:0 0 12px; padding-bottom:1px; overflow-x:auto; border-bottom:1px solid var(--line); }
.workspace-view { display:inline-flex; align-items:center; gap:7px; min-height:39px; padding:8px 12px; border-bottom:2px solid transparent; color:#53635d; font-size:13px; font-weight:650; text-decoration:none; white-space:nowrap; }
.workspace-view:hover { color:var(--forest-700); background:#f4f7f5; }
.workspace-view.active { color:var(--ink); border-bottom-color:var(--forest-700); }
.workspace-dimension-bar { display:flex; justify-content:flex-end; gap:10px; align-items:center; margin:-2px 0 10px; color:var(--muted); font-size:12px; }
.workspace-dimension-switch { display:inline-flex; gap:3px; padding:3px; border:1px solid var(--line); border-radius:7px; background:#eef3f0; }
.workspace-dimension-switch a { display:inline-flex; min-height:30px; align-items:center; gap:6px; padding:4px 10px; border-radius:5px; color:#53635d; text-decoration:none; font-size:12px; font-weight:700; }
.workspace-dimension-switch a:hover { color:var(--forest-700); }
.workspace-dimension-switch a.active { color:var(--ink); background:white; box-shadow:0 1px 3px rgba(18,45,34,.12); }
.workspace-toolbar { display:flex; justify-content:space-between; gap:18px; align-items:center; margin-bottom:12px; }
.workspace-search-form { display:flex; flex:1; flex-wrap:wrap; gap:7px; align-items:center; }
.workspace-search { position:relative; min-width:260px; flex:1 1 300px; }
.workspace-search i { position:absolute; top:50%; left:11px; color:#74857e; transform:translateY(-50%); }
.workspace-search input { width:100%; padding-left:34px; }
.workspace-search-form input,.workspace-search-form select { min-height:38px; padding:7px 10px; border:1px solid #bdcac4; border-radius:var(--radius-control); background:white; }
.workspace-search-form select { max-width:185px; }
.workspace-result-summary { color:var(--muted); font-size:13px; white-space:nowrap; }
.workspace-result-summary strong { color:var(--ink); }
.workspace-filter-button { position:relative; }
.filter-count-inline { padding:2px 6px; border-radius:10px; color:var(--forest-700); background:var(--forest-100); font-size:9px; font-weight:800; text-transform:uppercase; }
.filter-count { display:grid; position:absolute; top:-5px; right:-5px; min-width:17px; height:17px; place-items:center; padding:0 4px; border:2px solid white; border-radius:10px; color:white; background:var(--forest-700); font-size:9px; font-weight:800; }
.workspace-table-shell { min-height:220px; flex:1 1 auto; border:1px solid var(--line); border-radius:10px; background:white; overflow:hidden; }
.workspace-table-shell > .table-wrap { width:100%; height:100%; max-height:100%; border:0; border-radius:0; overflow:auto; overscroll-behavior:contain; scrollbar-gutter:stable; }
.workspace-table { min-width:100%; width:max-content; }
.workspace-table th { position:sticky; top:0; z-index:3; height:42px; color:#63736d; background:#f5f8f6; font-size:11px; letter-spacing:.045em; text-transform:uppercase; white-space:nowrap; box-shadow:inset 0 -1px var(--line); }
.workspace-table td { min-width:135px; max-width:300px; height:62px; border-top:1px solid #edf0ee; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.workspace-table th:first-child,.workspace-table td:first-child { padding-left:15px; }
.workspace-table .column-thumbnail,.workspace-table .cell-thumbnail { min-width:68px; width:68px; }
.workspace-table .column-code,.workspace-table .cell-code { min-width:165px; }
.workspace-table .column-name,.workspace-table .cell-link { min-width:230px; }
.workspace-actions { min-width:52px!important; width:52px; text-align:right; }
.workspace-table th.workspace-actions { z-index:5; right:0; }
.workspace-table td.workspace-actions { position:sticky; z-index:2; right:0; background:white; box-shadow:-1px 0 var(--line); }
.workspace-table tr:hover td.workspace-actions { background:#fbfcfb; }
.workspace-thumbnail { display:grid; width:42px; height:42px; place-items:center; padding:0; border:1px solid var(--line); border-radius:6px; color:#85958f; background:#f4f6f5; overflow:hidden; }
.workspace-thumbnail:is(button) { cursor:zoom-in; transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease; }
.workspace-thumbnail:is(button):hover { border-color:#91aa9f; box-shadow:0 5px 14px rgba(21,53,41,.12); transform:translateY(-1px); }
.workspace-thumbnail:is(button):focus-visible { outline:3px solid rgba(23,107,80,.22); outline-offset:2px; }
.workspace-thumbnail img { width:100%; height:100%; object-fit:cover; }
.workspace-th-inner { position:relative; display:flex; align-items:center; gap:7px; min-height:42px; padding-right:18px; }
.workspace-sort-link { display:inline-flex; align-items:center; gap:5px; color:inherit; text-decoration:none; }
.workspace-sort-link:hover,.workspace-sort-link.active { color:var(--forest-700); }
.workspace-sort-link i { font-size:12px; opacity:.6; }
.project-sort-link{display:inline-flex;align-items:center;gap:5px;color:inherit;text-decoration:none}
.project-sort-link:hover,.project-sort-link.active{color:var(--forest-700)}
.project-sort-link i{font-size:11px;opacity:.65}
.column-pin { width:24px; height:24px; border:0; border-radius:5px; background:transparent; color:#789087; display:grid; place-items:center; cursor:pointer; opacity:0; }
.workspace-table th:hover .column-pin,.column-pin.active { opacity:1; }
.column-pin.active { color:var(--forest-700); background:#dfece6; }
.column-resizer { position:absolute; top:0; right:0; width:7px; height:100%; cursor:col-resize; }
.column-resizer:hover { background:rgba(23,107,80,.16); }
.workspace-table th.is-pinned,.workspace-table td.is-pinned { position:sticky; z-index:4; background:white; box-shadow:1px 0 var(--line); }
.workspace-table th.is-pinned { z-index:6; background:#f5f8f6; }
.workspace-table tr:hover td.is-pinned { background:#fbfcfb; }
.workspace-product-link { color:var(--ink); font-weight:650; text-decoration:none; }
.workspace-product-link:hover { color:var(--forest-700); text-decoration:underline; }
.workspace-code { color:#385e50; font-size:12px; font-weight:700; letter-spacing:.025em; }
.workspace-table tr.editing { background:#f4f8f6; }
.workspace-project-divider td { position:sticky; left:0; z-index:1; height:auto; padding:9px 14px!important; border-top:1px solid #cdd9d4; border-bottom:1px solid #dce4e0; background:#edf3f0; }
.workspace-project-divider:first-child td { border-top:0; }
.workspace-project-divider td > div { position:sticky; left:14px; display:flex; width:calc(100vw - var(--sidebar) - 90px); max-width:100%; justify-content:space-between; gap:20px; align-items:center; }
.workspace-project-divider a { display:flex; min-width:0; gap:12px; align-items:center; color:var(--ink); text-decoration:none; }
.workspace-project-divider a strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.workspace-project-divider td > div > span { color:var(--muted); font-size:12px; white-space:nowrap; }
.workspace-edit-row td { height:auto!important; padding:13px 16px!important; background:#f4f8f6; }
.workspace-inline-form { display:grid; grid-template-columns:auto; grid-auto-flow:column; grid-auto-columns:minmax(170px,240px); gap:10px; align-items:end; max-width:calc(100vw - 240px); overflow-x:auto; padding:2px 2px 8px; }
.workspace-inline-form > div { display:grid; gap:5px; }
.workspace-inline-form label { color:#5f7069; font-size:11px; font-weight:650; }
.workspace-inline-form input,.workspace-inline-form select { width:100%; min-height:38px; padding:7px 9px; border:1px solid #b8c6c0; border-radius:5px; background:white; }
.workspace-inline-form select[multiple] { min-height:72px; }
.workspace-inline-actions { display:flex!important; grid-auto-flow:column; align-items:center; align-self:end; gap:6px; padding:4px 8px 4px 2px; position:sticky; left:0; z-index:3; background:#fff; box-shadow:8px 0 12px -12px rgba(18,49,39,.45); }
.workspace-dialog { width:min(760px,calc(100vw - 32px)); max-height:calc(100vh - 32px); padding:0; border:0; border-radius:14px; box-shadow:0 24px 80px rgba(8,30,22,.28); }
.workspace-dialog-wide { width:min(1040px,calc(100vw - 32px)); }
.workspace-dialog-xwide { width:min(1280px,calc(100vw - 24px)); }
.workspace-dialog-small { width:min(520px,calc(100vw - 32px)); }
.workspace-dialog::backdrop { background:rgba(10,25,19,.54); backdrop-filter:blur(2px); }
.workspace-dialog form { display:grid; max-height:calc(100vh - 32px); grid-template-rows:auto minmax(0,1fr) auto; }
.workspace-dialog header,.workspace-dialog footer { display:flex; justify-content:space-between; gap:12px; align-items:center; padding:16px 20px; }
.workspace-dialog header { border-bottom:1px solid var(--line); }
.workspace-dialog footer { justify-content:flex-end; border-top:1px solid var(--line); background:#fafbfa; }
.workspace-dialog footer .link-danger { margin-right:auto; }
.workspace-dialog h2 { margin:3px 0 0; font-size:1.25rem; }
.workspace-dialog-body { display:grid; gap:14px; padding:20px; overflow-y:auto; }
.workspace-dialog-body > label { display:grid; gap:6px; font-weight:650; }
.workspace-dialog-body input,.workspace-dialog-body select { min-height:40px; padding:8px 10px; border:1px solid #bdcac4; border-radius:5px; background:white; }
.attribute-filter-list { display:grid; gap:8px; }
.workspace-core-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.workspace-core-filters label { display:grid; gap:5px; color:#5f7069; font-size:12px; font-weight:650; }
.filter-section-heading { display:flex; justify-content:space-between; align-items:end; margin-top:4px; padding-top:16px; border-top:1px solid var(--line); }
.filter-section-heading h3 { margin:0; font-size:1rem; }
.filter-section-heading span { color:var(--muted); font-size:11px; }
.attribute-filter-row { display:grid; grid-template-columns:minmax(150px,.8fr) minmax(240px,1.2fr) minmax(130px,.7fr) minmax(160px,1fr) 38px; gap:8px; align-items:center; }
.multi-filter-grid fieldset,.column-group { margin:0; padding:12px; border:1px solid var(--line); border-radius:8px; background:#fbfcfb; }
.multi-filter-grid legend,.column-group legend { padding:0 5px; color:var(--ink); font-weight:750; }
.check-list { display:grid; gap:6px; max-height:180px; overflow:auto; }
.check-list label { display:flex!important; grid-template-columns:none!important; align-items:center; gap:8px; min-height:28px; color:var(--ink)!important; font-size:13px!important; font-weight:500!important; }
.check-list label span { display:grid; }
.check-list label small { color:var(--muted); font-size:10px; }
.column-picker { grid-template-columns:1fr 1fr; align-items:start; }
.column-search { grid-column:1/-1; }
.column-picker fieldset { display:grid; gap:5px; margin:0; padding:0; border:0; }
.column-picker .column-group { margin:0; padding:12px; border:1px solid var(--line); border-radius:8px; background:#fbfcfb; }
.column-picker legend { margin-bottom:8px; font-weight:750; }
.column-picker label { display:flex; gap:9px; align-items:center; min-height:37px; padding:6px 8px; border-radius:5px; font-size:13px; }
.column-picker label:hover { background:#f3f6f4; }
.column-picker label input { min-height:auto; }
.column-picker label span { display:grid; }
.column-picker label small { color:var(--muted); font-size:10px; }
.check-row { display:flex!important; grid-auto-flow:column; justify-content:start; align-items:center; gap:10px; }
.check-row input { min-height:auto; }
@media (max-width:900px) {
  .page-shell:has(> .product-workspace-page) { padding:14px; }
  .workspace-header { align-items:flex-start; flex-direction:column; }
  .workspace-toolbar { align-items:flex-start; flex-direction:column; }
  .workspace-search-form { width:100%; }
  .workspace-search-form select { max-width:none; flex:1 1 145px; }
  .workspace-inline-form { max-width:calc(100vw - 80px); }
}
@media (max-width:620px) {
  .page-shell:has(> .product-workspace-page) { height:calc(100dvh - 64px); padding:12px 10px; }
  .workspace-header-actions { width:100%; }
  .workspace-dimension-bar { justify-content:space-between; }
  .workspace-header-actions .button { flex:1; }
  .workspace-search { min-width:100%; }
  .attribute-filter-row,.column-picker,.workspace-core-filters { grid-template-columns:1fr; }
  .attribute-filter-row .icon-button { justify-self:end; }
  .workspace-inline-form { max-width:calc(100vw - 36px); }
}
/* Tiptap rich text editor */
.tiptap-editor{position:relative;border:1px solid var(--border,#cfd9d4);border-radius:8px;background:#fff;overflow:visible}.tiptap-toolbar{display:flex;align-items:center;gap:3px;min-height:46px;padding:6px 8px;border-bottom:1px solid #dce4e0;background:#f7faf8;border-radius:8px 8px 0 0;position:sticky;top:0;z-index:3;flex-wrap:wrap}.tiptap-toolbar button,.toolbar-color{width:32px;height:32px;border:0;border-radius:5px;background:transparent;color:#38564b;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.tiptap-toolbar button:hover,.tiptap-toolbar button.active,.toolbar-color:hover{background:#e2eee8;color:#0f6b4f}.tiptap-toolbar select{height:32px;width:auto;min-width:78px;padding:0 24px 0 8px;border-color:#ccd8d2;background-color:#fff;font-size:13px}.tiptap-toolbar .table-size-select{min-width:70px;padding-right:20px}.tiptap-toolbar .toolbar-divider,.tiptap-table-tools .toolbar-divider{width:1px;height:22px;background:#d4ded9;margin:0 3px;flex:0 0 auto}.toolbar-spacer{flex:1}.toolbar-color{position:relative}.toolbar-color input{position:absolute;inset:0;opacity:0;cursor:pointer}.tiptap-surface{min-width:0;max-width:100%;min-height:190px}.tiptap-content{min-width:0;max-width:100%;min-height:190px;padding:18px 20px;outline:none;line-height:1.65;color:#1d2e28;overflow-wrap:anywhere;word-break:break-word;white-space:normal}.tiptap-content p,.tiptap-content li,.tiptap-content blockquote,.tiptap-content h2,.tiptap-content h3,.tiptap-content th,.tiptap-content td{max-width:100%;overflow-wrap:anywhere;word-break:break-word}.tiptap-content pre{max-width:100%;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.tiptap-content p{margin:0 0 .8em}.tiptap-content h2,.tiptap-content h3{margin:1em 0 .45em}.tiptap-content blockquote{border-left:3px solid #6f9d8c;margin:1em 0;padding:.25em 0 .25em 1em;color:#536b62}.tiptap-content table{border-collapse:collapse;width:100%;max-width:100%;margin:1em 0}.tiptap-content th,.tiptap-content td{border:1px solid #cbd8d2;padding:8px 10px;vertical-align:top;min-width:80px}.tiptap-content th{background:#edf4f1;font-weight:650}.tiptap-content .selectedCell:after{background:rgba(31,125,92,.12)}.tiptap-content img{max-width:100%;height:auto;border-radius:6px}.tiptap-image-node{position:relative;display:inline-block;max-width:100%;margin:8px 0;line-height:0}.tiptap-image-node img{display:block;max-width:100%;height:auto;border-radius:6px}.tiptap-image-node.ProseMirror-selectednode img,.tiptap-image-node:hover img{outline:2px solid rgba(23,107,80,.45);outline-offset:2px}.tiptap-image-resize-handle{position:absolute;right:-7px;bottom:-7px;width:15px;height:15px;border:2px solid #fff;border-radius:50%;background:#176b50;box-shadow:0 1px 5px rgba(12,33,24,.22);cursor:nwse-resize;opacity:0;transition:opacity .12s ease}.tiptap-image-node.ProseMirror-selectednode .tiptap-image-resize-handle,.tiptap-image-node:hover .tiptap-image-resize-handle{opacity:1}.tiptap-table-tools{display:flex;align-items:center;gap:5px;padding:6px 10px;background:#edf4f1;border-bottom:1px solid #d6e1dc;overflow-x:auto}.tiptap-table-tools span{font-size:12px;font-weight:700;color:#557067;margin-right:4px}.tiptap-table-tools button{width:30px;height:30px;display:inline-grid;place-items:center;white-space:nowrap;border:1px solid #c8d6d0;background:#fff;border-radius:5px;padding:0;font-size:14px;color:#38564b}.tiptap-table-tools button:hover{background:#f7fbf9;border-color:#9eb8ad;color:#0f6b4f}.danger-text{color:#a33a32!important}.tiptap-editor .mention-menu{left:18px;top:auto;bottom:20px;z-index:8}.tiptap-editor .mention-menu button{display:flex;align-items:center;gap:9px}.tiptap-editor .mention-menu small{display:block}.tiptap-content p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:#83958e;pointer-events:none;height:0}

/* Structured product creation */
.product-create-dialog{width:min(1440px,calc(100vw - 24px));height:min(940px,calc(100dvh - 24px));max-width:none;max-height:none;padding:0;border:0;border-radius:10px;box-shadow:0 24px 80px rgba(22,55,43,.22);overflow:hidden}.product-create-dialog::backdrop{background:rgba(18,35,29,.48)}.product-create-form{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#f5f8f6}.product-create-scroll{overflow:auto;padding:0 24px 20px}.product-form-section{padding:18px 0;border-top:1px solid #d9e2de}.product-form-section:first-child{border-top:0}.product-form-section-heading{display:flex;align-items:flex-start;gap:11px;margin-bottom:13px}.product-form-section-heading h3{margin:0 0 2px;font-size:17px}.product-form-section-heading p{margin:0;color:#687c74;font-size:13px}.section-index{width:25px;height:25px;border-radius:50%;background:#dcebe4;color:#17694f;display:grid;place-items:center;font-weight:700;font-size:12px;flex:0 0 auto}.field-explanation{margin:0 0 8px;color:#667b72;font-size:13px}.prototype-mode-selector{display:grid;grid-template-columns:1fr 1fr;gap:8px}.prototype-mode-selector label{position:relative;display:grid;grid-template-columns:32px 1fr;align-items:center;gap:10px;padding:11px 12px;border:1px solid #ccd8d2;border-radius:7px;background:#fff;cursor:pointer;min-height:70px}.prototype-mode-selector label:has(input:checked){border-color:#1b7557;box-shadow:0 0 0 2px rgba(27,117,87,.1);background:#f7fbf9}.prototype-mode-selector input{position:absolute!important;opacity:0!important;width:1px!important;height:1px!important;pointer-events:none}.model-choice-icon{width:32px;height:32px;border-radius:6px;background:#edf3f0;color:#547066;display:grid;place-items:center;font-size:16px}.prototype-mode-selector label:has(input:checked) .model-choice-icon{background:#d9eee5;color:#12684d}.prototype-mode-selector strong,.prototype-mode-selector small{display:block}.prototype-mode-selector small{margin-top:2px;color:#6b7e76;font-weight:400;font-size:12px}.product-identity-form-grid{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:20px}.product-image-dropzone{border:1px dashed #9db5aa;border-radius:8px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:12px;text-align:center;cursor:pointer;min-height:220px}.product-image-dropzone.dragging{border-color:#176b50;background:#f0f8f4}.product-image-dropzone input{position:absolute;opacity:0;pointer-events:none}.product-image-preview{width:170px!important;height:170px!important;aspect-ratio:1/1;border-radius:7px;background:#f2f5f3;display:grid;place-items:center;overflow:hidden;color:#82958d;font-size:28px}.product-image-preview img{display:block;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:contain!important;object-position:center!important;background:#fff}.product-image-dropzone small{color:#71837c;font-size:11px;line-height:1.35;max-width:190px}.compact-measurement-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.attribute-form-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}.attribute-form-group{border:1px solid #d3ddd8;border-radius:8px;background:#fff;overflow:hidden}.attribute-form-group summary{list-style:none;display:flex;align-items:center;justify-content:space-between;padding:11px 13px;cursor:pointer;background:#f8faf9}.attribute-form-group summary::-webkit-details-marker{display:none}.attribute-form-group summary span strong,.attribute-form-group summary span small{display:block}.attribute-form-group summary small{color:#71837b;margin-top:2px}.attribute-form-group[open] summary{border-bottom:1px solid #dce4e0}.attribute-form-group[open] summary>i{transform:rotate(180deg)}.attribute-form-group>.settings-grid{padding:13px}.required-mark{margin-left:6px;color:#936525;font-size:10px;text-transform:uppercase;letter-spacing:.04em}.form-progress{margin-right:auto;color:#62776e;font-size:13px}.product-create-dialog .modal-actions{display:flex;align-items:center}.product-create-dialog .errorlist{color:#a43f37;margin:5px 0 0;padding:0;list-style:none;font-size:13px}.field-row[hidden],.attribute-form-group[hidden]{display:none!important}
@media(max-width:1000px){.attribute-form-groups{grid-template-columns:1fr}.compact-measurement-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:800px){.product-create-dialog{width:100vw;height:100dvh;border-radius:0}.product-create-scroll{padding:0 16px 20px}.prototype-mode-selector,.product-identity-form-grid{grid-template-columns:1fr}.compact-measurement-grid{grid-template-columns:1fr 1fr}.product-image-dropzone{min-height:210px}.tiptap-toolbar{position:static}.form-progress{display:none}}

/* Unified Product Editor */
.product-editor-form .product-form-section{scroll-margin-top:72px}.product-error-summary{margin:0 24px;padding:10px 13px;border-left:3px solid #a8443c;background:#fff4f2}.model-detail-grid{margin-top:10px}.physical-spec-grid{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,2.2fr);gap:16px;align-items:start}.primary-material-field textarea{min-height:84px;resize:vertical}.measurement-fields{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:12px}.packaging-level-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.packaging-level{border:1px solid #d3ddd8;border-radius:8px;background:#fff;overflow:hidden}.packaging-level-heading{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid #e0e7e3;background:#f8faf9}.packaging-level-heading>i{width:30px;height:30px;border-radius:6px;background:#e3eee9;color:#176b50;display:grid;place-items:center}.packaging-level-heading h4{margin:0;font-size:15px}.packaging-level-heading p{margin:2px 0 0;color:#6f817a;font-size:12px}.packaging-fields{padding:13px}.attribute-groups-vertical{display:grid!important;grid-template-columns:1fr!important;gap:9px}.attribute-groups-vertical .attribute-form-group{width:100%}.attribute-fields-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.attribute-fields-grid textarea,.attribute-fields-grid select[multiple]{min-height:80px}.advanced-product-section{border-top:1px solid #d9e2de}.advanced-product-section>summary{display:flex;align-items:center;justify-content:space-between;list-style:none;cursor:pointer}.advanced-product-section>summary::-webkit-details-marker{display:none}.advanced-product-section>summary .product-form-section-heading{margin:0}.advanced-product-section[open]>summary{margin-bottom:13px}.advanced-product-section[open]>summary>i{transform:rotate(180deg)}.image-dimensions{font-size:11px;color:#5f766d;background:#edf4f1;border-radius:4px;padding:3px 6px}.product-image-preview{background:repeating-conic-gradient(#e7ece9 0 25%,#f7f9f8 0 50%) 50%/16px 16px!important;border:1px solid #d6dfda}.product-image-preview img{background:transparent!important}.product-settings-dialog .product-create-scroll{padding-top:0}.product-settings-dialog .form-progress{margin-right:auto}.product-editor-form textarea[data-auto-grow]{overflow:hidden;resize:none}
@media(max-width:1100px){.attribute-fields-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.measurement-fields{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:850px){.physical-spec-grid,.packaging-level-grid{grid-template-columns:1fr}.attribute-fields-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.measurement-fields,.attribute-fields-grid{grid-template-columns:1fr}.product-error-summary{margin:0 16px}}

/* Product editor controls: searchable multi-select and compact advanced card. */
.advanced-product-section{margin-top:18px;border:1px solid #d3ddd8;border-radius:8px;background:#fff;overflow:hidden}.advanced-product-section>summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:15px 17px;list-style:none;cursor:pointer;background:#f8faf9}.advanced-product-section>summary::marker,.advanced-product-section>summary::-webkit-details-marker{content:"";display:none}.advanced-product-section>summary .product-form-section-heading{margin:0}.advanced-product-section>summary>i{color:#5d7168;transition:transform .15s ease}.advanced-product-section[open]>summary{margin-bottom:0;border-bottom:1px solid #e0e7e3}.advanced-product-section[open]>summary>i{transform:rotate(180deg)}.advanced-product-fields{padding:16px 17px 18px}.attribute-multi-select{position:relative}.attribute-multi-select>select{position:absolute!important;inline-size:1px!important;block-size:1px!important;opacity:0!important;pointer-events:none!important}.attribute-multi-select-trigger{width:100%;min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 11px;border:1px solid #bfcfc7;border-radius:6px;background:#fff;color:#1d2d26;text-align:left;cursor:pointer}.attribute-multi-select-trigger:hover,.attribute-multi-select.is-open .attribute-multi-select-trigger{border-color:#167055;box-shadow:0 0 0 3px rgba(22,112,85,.09)}.attribute-multi-select-values{display:flex;flex-wrap:wrap;gap:4px;min-width:0}.attribute-multi-select-tag{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:3px 7px;border-radius:4px;background:#e3f0ea;color:#176b50;font-size:12px;font-weight:650}.attribute-multi-select-placeholder{color:#75877f}.attribute-multi-select-panel{position:absolute;z-index:30;top:calc(100% + 5px);left:0;width:min(360px,100%);display:none;border:1px solid #a9c2b6;border-radius:7px;background:#fff;box-shadow:0 14px 30px rgba(22,55,43,.16);overflow:hidden}.attribute-multi-select.is-open .attribute-multi-select-panel{display:block}.attribute-multi-select-search{display:flex;align-items:center;gap:8px;padding:9px 10px;border-bottom:1px solid #e2e9e5;color:#688076}.attribute-multi-select-search input{width:100%;border:0!important;box-shadow:none!important;outline:0;padding:2px!important;min-height:24px!important}.attribute-multi-select-options{max-height:240px;overflow-y:auto;padding:5px}.attribute-multi-select-options label{display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:5px;cursor:pointer}.attribute-multi-select-options label:hover{background:#f0f7f3}.attribute-multi-select-options input{width:16px;height:16px;accent-color:#176b50}

/* Product editor empty media and structure grouping */
.product-image-preview{background:#f2f5f3!important}
.product-image-preview img{background:#fff!important}
.product-image-preview img[hidden],.product-image-preview [hidden]{display:none!important}
.product-image-preview>[data-product-image-placeholder]{width:46px;height:46px;border-radius:9px;background:#e3ece7;color:#6f877d;display:grid;place-items:center;font-size:22px}
.structure-fields{grid-template-columns:minmax(0,720px)}
.structure-fields .field-span-2{grid-column:1}

/* Rich editor table controls and cell-selection behavior. */
.tiptap-content table{border:1px solid #cbd8d2;box-shadow:inset 0 -1px #cbd8d2}
.tiptap-content .selectedCell{position:relative}
.tiptap-content .selectedCell:after{content:"";position:absolute;inset:0;background:rgba(31,125,92,.16);pointer-events:none;z-index:1}
.tiptap-table-tools .table-tool-control{position:relative;width:30px;height:30px;display:inline-grid;place-items:center;border:1px solid #c8d6d0;background:#fff;border-radius:5px;color:#38564b;cursor:pointer;flex:0 0 auto}
.tiptap-table-tools .table-tool-control:hover{background:#f7fbf9;border-color:#9eb8ad;color:#0f6b4f}
.tiptap-table-tools .table-tool-control input{position:absolute;inset:0;opacity:0;cursor:pointer}
.tiptap-table-tools .table-tool-select{height:30px;min-width:92px;width:auto;padding:0 22px 0 8px;border:1px solid #c8d6d0;border-radius:5px;background:#fff;color:#1d2e28;font-size:13px}

/* Project files */
.file-filter-bar{display:flex;align-items:end;gap:12px;margin:0 0 16px;padding:12px;border:1px solid var(--line);border-radius:9px;background:#f8faf9}
.file-filter-bar label{display:grid;gap:5px;min-width:190px;color:var(--muted);font-size:12px;font-weight:650}
.file-filter-bar select{height:38px;min-width:190px;padding:0 30px 0 10px;border:1px solid #cbd8d2;border-radius:7px;background:#fff;color:var(--ink)}
.document-preview-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));align-items:start}
.document-card{padding:0;overflow:hidden;height:430px;display:grid;grid-template-rows:220px minmax(0,1fr)}
.document-preview{height:220px;border-bottom:1px solid var(--line);background:#f3f6f4;display:grid;place-items:center;overflow:hidden}
.document-preview img{width:100%;height:100%;object-fit:contain;background:#fff}
.document-preview iframe{width:100%;height:100%;border:0;background:#fff}
.document-card-body{padding:16px;min-height:0;display:flex;flex-direction:column}
.document-card-heading{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.document-card-heading h2{margin:3px 0 0;font-size:1.08rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.document-meta{margin:10px 0;color:var(--muted);font-size:13px}
.document-scope{display:block;margin-top:4px;color:var(--muted);font-size:12px;font-weight:500}
.document-card details{margin-top:auto;padding-top:11px;border-top:1px solid var(--line)}
.document-card summary{color:var(--forest-700);cursor:pointer;font-size:12px;font-weight:650}
.document-card .version-list{max-height:72px;overflow:auto}
.external-preview{background:#eef4f1}
@media(max-width:760px){.file-filter-bar{align-items:stretch;flex-direction:column}.file-filter-bar label,.file-filter-bar select{width:100%;min-width:0}.document-preview-grid{grid-template-columns:1fr}.document-card{height:400px;grid-template-rows:190px minmax(0,1fr)}.document-preview{height:190px}}

/* Product workspace refinement */
.workspace-header-compact{margin-bottom:12px}
.workspace-subtitle{margin:6px 0 0;color:var(--muted);font-size:14px}
.workspace-controls-card{display:grid;gap:10px;margin-bottom:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}
.workspace-control-row{display:flex;justify-content:space-between;gap:16px;align-items:center}
.workspace-viewbar{display:flex;align-items:center;gap:8px;min-height:34px;overflow-x:auto}
.workspace-view-label{color:#60766d;font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.workspace-muted{color:var(--muted);font-size:13px}
.workspace-search{position:relative;min-width:380px}
.workspace-search i{position:absolute;left:12px;top:50%;transform:translateY(-50%);z-index:1;color:#60766d;pointer-events:none}
.workspace-search input{width:100%;height:42px;padding-left:38px!important}
.workspace-table{border-collapse:separate;border-spacing:0}
.workspace-table th,.workspace-table td{border-right:1px solid #e0e8e4}
.workspace-table td{min-width:56px}
.workspace-table th{min-width:56px}
.workspace-table th:last-child,.workspace-table td:last-child{border-right:0}
.workspace-table th{user-select:none}
.workspace-th-inner{min-width:0}
.workspace-sort-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.column-pin.active{background:#dbece5;color:#0f6b4f;border-color:#9bc3b5}
.column-resizer{right:-3px;width:9px}
.workspace-table th.is-pinned,.workspace-table td.is-pinned{border-right:1px solid #c3d2cc;box-shadow:1px 0 0 #c3d2cc,6px 0 10px rgba(21,48,38,.05)}
.workspace-filter-layout{grid-template-columns:360px minmax(0,1fr);align-items:start;gap:16px}
.condition-only-layout{grid-template-columns:minmax(0,1fr)}
.condition-only-layout .condition-builder-panel{max-width:980px;margin:0 auto;width:100%}
.workspace-filter-sidebar,.condition-builder-panel,.selected-column-panel,.column-picker-main{border:1px solid var(--line);border-radius:10px;background:#fff}
.workspace-filter-sidebar,.condition-builder-panel{padding:14px}
.workspace-filter-sidebar h3,.condition-builder-panel h3,.selected-column-panel h3{margin:0 0 8px;font-size:16px}
.filter-compact-grid{display:grid;gap:10px}
.filter-compact-grid fieldset{margin:0;padding:10px;border:1px solid #d8e2de;border-radius:8px;background:#fafcfa}
.filter-compact-grid legend{padding:0 4px;color:#1d2e28;font-size:12px;font-weight:750}
.check-list-compact{max-height:126px}
.filter-status-field{display:grid;gap:5px;color:#60766d;font-size:12px;font-weight:700}
.condition-builder-head{display:flex;justify-content:space-between;gap:16px;align-items:start;margin-bottom:12px}
.condition-builder-head p{margin:3px 0 0;color:var(--muted);font-size:13px}
.condition-builder-head label{display:grid;gap:5px;min-width:170px;color:#60766d;font-size:12px;font-weight:700}
.condition-list{gap:9px}
.condition-row{position:relative;grid-template-columns:minmax(260px,1.45fr) minmax(140px,.65fr) minmax(180px,.9fr) 38px}
.field-combobox{position:relative}
.field-combobox input{width:100%}
.field-suggestions{position:absolute;z-index:20;top:calc(100% + 5px);left:0;right:0;max-height:290px;overflow:auto;padding:6px;border:1px solid #b8c8c1;border-radius:8px;background:#fff;box-shadow:0 14px 36px rgba(13,39,29,.18)}
.field-suggestions[hidden]{display:none}
.field-suggestions button{display:grid;width:100%;gap:2px;padding:8px 9px;border:0;border-radius:6px;background:transparent;color:#1d2e28;text-align:left;cursor:pointer}
.field-suggestions button:hover,.field-suggestions button.active{background:#eef6f2;color:#0f6b4f}
.field-suggestions small{color:#6b7f77;font-size:11px}
.field-suggestion-group{display:grid;gap:2px;padding:4px 0}
.field-suggestion-group+ .field-suggestion-group{border-top:1px solid #edf2ef;margin-top:4px;padding-top:8px}
.field-suggestion-group>span{padding:2px 8px;color:#60766d;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.empty-suggestion{padding:12px;color:var(--muted);font-size:13px}
.column-picker-layout{grid-template-columns:minmax(0,1fr) 280px;gap:16px}
.column-picker-stepped{grid-template-columns:260px minmax(0,1fr) 280px;align-items:start}
.column-config-dialog header p{margin:3px 0 0;color:var(--muted);font-size:13px}
.column-configurator{grid-template-columns:270px minmax(0,1fr) 310px;gap:14px;align-items:stretch;background:#f5f8f6}
.column-config-groups,.column-config-fields,.selected-column-panel-rich{border:1px solid var(--line);border-radius:10px;background:#fff}
.column-config-groups{padding:12px;display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px}
.column-group-nav{border:1px solid var(--line);border-radius:10px;background:#fff;padding:12px;align-self:stretch}
.column-group-tabs{display:grid;gap:6px;max-height:520px;overflow:auto;padding-right:2px}
.column-group-tabs button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;align-items:center;width:100%;min-height:46px;padding:8px 10px;border:1px solid transparent;border-radius:8px;background:transparent;color:#1d2e28;text-align:left;cursor:pointer}
.column-group-tabs button:hover{background:#f5f8f6}
.column-group-tabs button.active{border-color:#9fc3b7;background:#eaf5f0;color:#0f6b4f}
.column-group-tabs span{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.column-group-tabs small{grid-column:1;color:#6b7f77;font-size:11px;white-space:nowrap}
.column-group-tabs b{grid-row:1/3;grid-column:2;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#176b50;color:#fff;display:grid;place-items:center;font-size:11px}
.column-group-tabs b[hidden]{display:none}
.column-config-fields{padding:14px;min-width:0}
.column-picker-section-head{display:flex;justify-content:space-between;gap:16px;align-items:end;margin-bottom:10px}
.column-picker-section-head h3{margin:0;font-size:16px}
.column-picker-section-head span{color:var(--muted);font-size:12px}
.column-config-toolbar{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:12px}
.column-config-toolbar h3{margin:0;font-size:17px}
.column-config-toolbar span{color:var(--muted);font-size:12px}
.column-config-actions{display:flex;gap:8px;white-space:nowrap}
.column-config-actions .button{min-height:34px;padding:6px 10px;font-size:13px}
.column-picker-main{padding:14px}
.picker-search{position:relative;display:block;margin-bottom:12px}
.picker-search i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#60766d;pointer-events:none}
.picker-search input{width:100%;padding-left:38px!important}
.column-field-sections{min-height:360px}
.column-field-sections .column-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;max-height:520px;overflow:auto;padding:0;border:0;background:transparent}
.column-field-sections .column-group[hidden]{display:none}
.column-field-sections legend{grid-column:1/-1;margin:0 0 2px;color:#60766d;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.column-field-card{position:relative;display:grid!important;grid-template-columns:28px minmax(0,1fr)!important;gap:9px;align-items:center;min-height:58px!important;padding:10px!important;border:1px solid #d8e2de;border-radius:9px;background:#fff;color:#1d2e28;cursor:pointer}
.column-field-card:hover{border-color:#b3c9c0;background:#fbfdfc}
.column-field-card:has(input:checked){border-color:#71aa96;background:#eef8f3;box-shadow:inset 3px 0 #176b50}
.column-field-card input{position:absolute!important;opacity:0!important;pointer-events:none!important}
.column-field-check{width:24px;height:24px;border:1px solid #c7d5cf;border-radius:7px;background:#fff;color:transparent;display:grid;place-items:center}
.column-field-card:has(input:checked) .column-field-check{border-color:#176b50;background:#176b50;color:#fff}
.column-field-copy{display:grid;gap:2px;min-width:0}
.column-field-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.column-field-copy small{color:#6c8078;font-size:11px;text-transform:none}
.column-group-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}
.selected-column-panel{padding:14px;align-self:start;position:sticky;top:8px}
.selected-column-panel-rich{align-self:stretch;position:static;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:10px}
.selected-column-head{display:flex;justify-content:space-between;gap:12px;align-items:start}
.selected-column-head h3{margin:0 0 2px}
.selected-column-head span{color:var(--muted);font-size:12px}
.selected-column-panel [data-selected-columns]{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.selected-column-panel [data-selected-columns] span{max-width:100%;padding:5px 7px;border:1px solid #d4e1dc;border-radius:999px;background:#f5f8f6;color:#1d2e28;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.selected-column-panel-rich [data-selected-columns]{display:grid;align-content:start;gap:7px;overflow:auto;margin:0;padding-right:2px}
.selected-column-panel-rich [data-selected-columns] span{padding:0;border:0;border-radius:0;background:transparent}
.selected-column-item{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:8px;align-items:center;min-height:44px;padding:8px 8px 8px 10px;border:1px solid #d8e2de;border-radius:8px;background:#fbfcfb;cursor:grab;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.selected-column-item:active{cursor:grabbing}.selected-column-item.is-dragging{opacity:.45}.selected-column-item.drop-before{border-top:3px solid #167055;transform:translateY(2px)}.selected-column-item.drop-after{border-bottom:3px solid #167055;transform:translateY(-2px)}
.selected-column-drag{display:grid;width:20px;height:28px;place-items:center;color:#91a39b;font-size:16px}.selected-column-item:hover .selected-column-drag{color:#176b50}
.selected-column-actions{display:flex;gap:1px}.selected-column-actions button{width:24px!important;height:24px!important}.selected-column-actions button:disabled{opacity:.32;cursor:not-allowed}.selected-column-actions button:disabled:hover{background:transparent!important;color:#60766d!important}
.selected-column-item strong,.selected-column-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.selected-column-item strong{font-size:13px}
.selected-column-item small{color:#6c8078;font-size:11px}
.selected-column-item button{width:26px;height:26px;border:0;border-radius:6px;background:transparent;color:#60766d;cursor:pointer}
.selected-column-item button:hover{background:#e8f1ed;color:#9c362f}
.selected-column-panel p{margin:10px 0 0;color:var(--muted);font-size:12px;line-height:1.45}
@media(max-width:1000px){.workspace-filter-layout,.column-picker-layout,.column-picker-stepped,.column-configurator{grid-template-columns:1fr}.column-group-list,.column-field-sections .column-group{grid-template-columns:1fr}.selected-column-panel{position:static}.workspace-control-row{align-items:flex-start;flex-direction:column}.workspace-search{min-width:100%}.column-config-toolbar{align-items:flex-start;flex-direction:column}.column-config-actions{width:100%}.column-config-actions .button{flex:1}}

/* SaaS UI system pass: restrained enterprise workbench polish */
:root{
  --radius-control:7px;
  --radius-card:11px;
  --radius-panel:14px;
  --surface-subtle:#fbfcfb;
  --surface-muted:#f1f5f3;
  --border-strong:#c8d5cf;
  --shadow-card:0 1px 2px rgba(13,35,27,.035),0 10px 28px rgba(13,35,27,.035);
  --shadow-raised:0 18px 54px rgba(13,35,27,.16);
  --focus-ring:0 0 0 3px rgba(23,107,80,.16);
}
html{scroll-behavior:smooth}
body{
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  background:linear-gradient(180deg,#f8faf8 0,#f4f7f5 260px,#f6f8f6 100%);
}
a{color:var(--forest-700);text-underline-offset:3px}
a:hover{color:var(--forest-800)}
.app-shell{background:transparent}
.app-sidebar{
  box-shadow:inset -1px 0 rgba(255,255,255,.08),10px 0 32px rgba(8,45,36,.08);
}
.app-brand{letter-spacing:-.01em}
.brand-mark{
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.22),0 8px 20px rgba(0,0,0,.12);
}
.primary-nav{gap:4px}
.primary-nav a{
  min-height:40px;
  border-radius:9px;
  color:rgba(255,255,255,.78);
  transition:background .14s ease,color .14s ease,transform .14s ease;
}
.primary-nav a:hover{background:rgba(255,255,255,.09);color:#fff}
.primary-nav a.active{
  color:#fff;
  background:rgba(255,255,255,.15);
  box-shadow:inset 3px 0 rgba(255,255,255,.7);
}
.sidebar-user{
  border-color:rgba(255,255,255,.12);
  background:rgba(255,255,255,.07);
  border-radius:12px;
}
.app-topbar{
  backdrop-filter:blur(12px);
  background:rgba(255,255,255,.82);
  border-bottom:1px solid rgba(200,213,207,.82);
}
.page-shell{width:min(100%,1720px)}
.topbar-user,.nav-toggle{transition:background .14s ease,border-color .14s ease,box-shadow .14s ease}
.topbar-user:hover,.nav-toggle:hover{background:#f2f7f4;border-color:#bdd0c8}
.page-heading{
  margin-bottom:22px;
  padding-bottom:16px;
  border-bottom:1px solid var(--line);
}
.page-heading h1{
  letter-spacing:-.035em;
  line-height:1.03;
}
.page-heading p{
  max-width:760px;
  color:#60746c;
  line-height:1.45;
}
.compact-heading{margin-bottom:16px}
.section-heading{
  padding-bottom:10px;
  border-bottom:1px solid #edf2ef;
}
.section-heading h2{
  display:flex;
  align-items:center;
  gap:8px;
  letter-spacing:-.015em;
}
.card,.form-card,.table-wrap,.workspace-panel,.management-card,.metric-card,.section-block,.record-list,.settings-panel{
  border:1px solid var(--line);
  border-radius:var(--radius-panel);
  background:var(--surface);
  box-shadow:var(--shadow-card);
}
.card:hover,.management-card:hover,.metric-card:hover{
  border-color:#cbd8d2;
  box-shadow:0 1px 2px rgba(13,35,27,.04),0 14px 34px rgba(13,35,27,.055);
}
.metric-grid{gap:14px}
.metric-card{
  padding:18px;
  min-height:120px;
}
.metric-card span{
  color:#60746c;
  font-size:12px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.metric-card strong{
  margin-top:8px;
  letter-spacing:-.03em;
}
.dashboard-grid{gap:16px;align-items:start}
.dashboard-list{display:grid;gap:0}
.dashboard-list li{
  min-height:48px;
  padding:12px 4px;
  border-bottom:1px solid #edf2ef;
}
.dashboard-list li:last-child{border-bottom:0}
.dashboard-list li:hover{background:#fbfdfc}
.record-list{overflow:hidden}
.record-row{
  padding:15px 16px;
  border-bottom:1px solid #edf2ef;
  transition:background .14s ease;
}
.record-row:last-child{border-bottom:0}
.record-row:hover{background:#fbfdfc}
.record-icon{
  width:34px;
  height:34px;
  border-radius:9px;
  background:#eaf4ef;
  color:var(--forest-700);
}
.record-meta{
  color:#60746c;
  font-size:11px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.eyebrow{
  color:#557168;
  font-size:.78rem;
  font-weight:650;
  letter-spacing:.01em;
  text-transform:none;
}

/* 2026-07 system redesign: mature product-development workbench */
:root{
  --sidebar:216px;
  --canvas:#f3f6f4;
  --surface:#fff;
  --surface-subtle:#f7f9f8;
  --line:#dfe6e2;
  --line-strong:#cbd7d1;
  --ink:#17231f;
  --muted:#66756f;
  font-family:var(--ui-font-sans);
}
body{background:var(--canvas);font-size:14px;letter-spacing:0}
.app-sidebar{padding:16px 12px 12px;background:#0a352b;border-right:1px solid rgba(255,255,255,.06)}
.app-brand{min-height:50px;padding:0 8px;gap:11px}
.app-brand>span:last-child{display:grid;gap:1px;line-height:1.15}
.app-brand>span:last-child strong{font-size:15px;letter-spacing:.02em}
.app-brand>span:last-child small{color:#a8c0b7;font-size:10px;font-weight:500;letter-spacing:.01em}
.brand-mark{width:36px;height:36px;border-color:rgba(255,255,255,.15);border-radius:7px;background:rgba(255,255,255,.07)}
.nav-label{margin:20px 10px 7px;color:#7fa196;font-size:10px;font-weight:650;letter-spacing:.03em;text-transform:none}
.primary-nav,.nav-secondary{gap:3px;margin:0;padding:0;border:0}
.primary-nav a{min-height:40px;padding:0 10px;border-radius:6px;color:#c9d9d4;font-size:13px}
.primary-nav a.active{color:#fff;background:rgba(255,255,255,.105);box-shadow:inset 2px 0 0 #9dceba}
.primary-nav a:hover{background:rgba(255,255,255,.07)}
.sidebar-user{margin-top:auto;padding:10px;border:1px solid rgba(255,255,255,.07);border-radius:8px;background:rgba(255,255,255,.045)}
.sidebar-user strong{font-size:12px}.sidebar-user small{font-size:10px}
.app-topbar{height:60px;padding:0 22px;background:rgba(255,255,255,.97);box-shadow:none}
.topbar-actions{font-size:12px}
.page-shell{max-width:1540px;padding:28px 28px 56px}
.page-heading{min-height:68px;margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.page-heading h1{font-size:clamp(1.75rem,2.3vw,2.2rem);font-weight:720;letter-spacing:-.03em}
.page-heading p{margin-top:6px!important;font-size:13px}
.page-kicker,.section-kicker{display:block;margin:0 0 5px;color:#58746a;font-size:11px;font-weight:650;letter-spacing:.01em;text-transform:none}
.page-heading-actions{display:flex;gap:8px;align-items:center}
.button,.secondary-button{min-height:38px;padding:0 14px;border-radius:6px;font-size:13px;box-shadow:none}
.button:active,.secondary-button:active,.icon-button:active{transform:translateY(1px)}
.button:focus-visible,.secondary-button:focus-visible,.icon-button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(23,107,80,.16);outline-offset:1px}
.card,.form-card,.workspace-panel,.record-list,.list-surface,.table-wrap,.workspace-controls-card,.workspace-table-shell{border-color:var(--line);border-radius:8px;box-shadow:0 1px 2px rgba(15,45,34,.025)}
.section-block{margin-top:24px}
.section-heading{margin:0;padding:15px 18px;border-bottom:1px solid var(--line)}
.section-heading h2{font-size:15px;font-weight:700}
.section-heading.outside-heading{margin-bottom:9px;padding:0;border:0}
.section-heading.outside-heading h2{font-size:17px}
.section-link{display:inline-flex;gap:6px;align-items:center;color:#42685a;font-size:12px;font-weight:650;text-decoration:none}

/* Dashboard */
.dashboard-heading{align-items:flex-end}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;border:0;background:transparent;overflow:visible}
.metric-card{display:flex;min-height:106px;gap:14px;align-items:center;padding:18px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 1px 2px rgba(15,45,34,.03)}
.metric-icon{display:grid!important;width:38px;height:38px;flex:0 0 auto;place-items:center;border-radius:7px;color:#2c7058!important;background:#e8f1ed;font-size:16px!important}
.metric-card>div{display:grid;grid-template-columns:auto auto;gap:1px 14px;align-items:baseline}
.metric-card>div>span{grid-column:1;color:#53655e;font-size:12px;font-weight:650}
.metric-card strong{grid-column:2;grid-row:1/3;margin:0;color:#174f3e;font-size:25px;line-height:1;font-variant-numeric:tabular-nums}
.metric-card small{grid-column:1;color:#8a9893;font-size:10px}
.metric-card.attention .metric-icon{color:#756126!important;background:#f3efdf}.metric-card.warning .metric-icon{color:#8b551b!important;background:#f6eadb}
.dashboard-grid{gap:12px}.workspace-panel{overflow:hidden;background:#fff}
.dashboard-list{gap:0;padding:0 18px}
.dashboard-list li{min-height:55px;align-items:center;padding:9px 2px;border-bottom:1px solid #edf1ef}
.dashboard-list li:last-child{border-bottom:0}.dashboard-list-compact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:30px}
.dashboard-list-compact li:nth-last-child(-n+2){border-bottom:0}
.entity-link strong{font-size:13px}.count-label{color:#55665f;font-size:11px;font-weight:650}
.season-list li{min-height:49px}.record-list{overflow:hidden;background:#fff}
.record-row{min-height:76px;padding:13px 16px;border-bottom:1px solid #edf1ef}.record-row:last-child{border-bottom:0}
.record-icon{width:34px;height:34px;border-radius:7px}.record-meta{font-size:10px;letter-spacing:.01em;text-transform:none}.record-main h3{font-size:13px}.record-main p{margin:3px 0 0;color:var(--muted);font-size:12px}

/* Lists and tables */
.list-surface{overflow:hidden;background:#fff}
.list-toolbar{display:flex;justify-content:space-between;align-items:center;min-height:48px;padding:0 14px;border-bottom:1px solid var(--line);background:#fafcfb}
.list-toolbar>div{display:flex;gap:6px;align-items:baseline}.list-toolbar strong{font-size:16px;font-variant-numeric:tabular-nums}.list-toolbar span{color:var(--muted);font-size:11px}
.list-hint{display:inline-flex;gap:6px;align-items:center}.table-wrap-flush{border:0;border-radius:0;box-shadow:none}
.entity-table{min-width:900px}.entity-table th{height:37px;padding:8px 12px;color:#60716a;background:#f7f9f8;font-size:10px;font-weight:700;letter-spacing:.01em;text-transform:none}
.entity-table td{height:64px;padding:7px 12px;border-color:#edf1ef}.entity-table tbody tr{transition:background .12s ease}.entity-table tbody tr:hover{background:#f7faf8}
.project-table th:first-child,.project-table td:first-child{width:64px}.project-table th:last-child,.project-table td:last-child{width:46px;padding-right:10px}
.table-thumbnail{width:44px;height:44px;border:1px solid #e1e7e4;border-radius:6px;background:#f5f7f6}
.table-code{color:#3c6758;font-size:11px;font-weight:650;text-decoration:none;white-space:nowrap}.table-primary-link{color:var(--ink);font-size:13px;font-weight:650;text-decoration:none}.table-primary-link:hover{text-decoration:underline}
.owner-stack{display:flex;min-width:70px}.mini-avatar{display:grid;width:27px;height:27px;margin-left:-6px;place-items:center;border:2px solid #fff;border-radius:50%;color:#31584a;background:#dfece6;font-size:9px;font-weight:750}.mini-avatar:first-child{margin-left:0}
.row-open{opacity:0;transition:opacity .12s ease}.entity-table tr:hover .row-open{opacity:1}
.status-pill{padding:4px 8px;border-radius:10px;font-size:10px;font-weight:700}
.pagination{margin-top:12px;padding:0 2px}.page-number{border-radius:6px}

/* Management */
.management-section{margin-top:24px}.management-section-heading{margin-bottom:10px}.management-section-heading span{font-size:15px;font-weight:700}.management-section-heading p{margin:3px 0 0;color:var(--muted);font-size:12px}
.management-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.management-card{display:grid;grid-template-columns:38px minmax(0,1fr) 20px;min-height:82px;gap:12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:8px;color:inherit;background:#fff;text-decoration:none;box-shadow:0 1px 2px rgba(15,45,34,.02)}
.management-card:hover{border-color:#b8cac2;background:#fbfdfc}.management-card>span:nth-child(2){min-width:0}.management-card h2{margin:0 0 3px;font-size:13px}.management-card p{margin:0;color:var(--muted);font-size:11px}.management-card>i{color:#899790;font-size:12px}
.management-icon{display:grid;width:38px;height:38px;place-items:center;border-radius:7px;color:#2c7058;background:#e7f1ed;font-size:16px}

/* Workspace */
.workspace-header{align-items:flex-end;margin:0 0 14px}.workspace-header h1{font-size:2rem}.workspace-subtitle{margin:5px 0 0;color:var(--muted);font-size:12px}
.workspace-controls-card{margin-bottom:10px;padding:0 14px;background:#fff}.workspace-viewbar{margin:0;padding:0;border-bottom:1px solid var(--line)}
.workspace-view-label{display:flex;align-items:center;padding:0 10px 0 0;color:#73817c;font-size:10px;font-weight:700}.workspace-view{min-height:40px;padding:8px 10px;font-size:12px}.workspace-control-row{display:flex;justify-content:space-between;align-items:center;min-height:52px}
.workspace-dimension-bar{justify-content:flex-start;margin:0}.workspace-toolbar{margin-bottom:9px}.workspace-search-form{gap:6px}.workspace-search-form input,.workspace-search-form select{min-height:36px}
.workspace-table-shell{border-radius:8px}.workspace-table th{height:38px;font-size:10px;letter-spacing:.01em;text-transform:none}.workspace-table td{height:56px}
.workspace-dialog{border-radius:10px}.workspace-dialog::backdrop{background:rgba(9,28,21,.48);backdrop-filter:none}.workspace-dialog header,.workspace-dialog footer{padding:14px 18px}.workspace-dialog-body{padding:16px 18px}
.column-configurator{grid-template-columns:220px minmax(0,1fr) 250px;gap:12px}.column-config-groups,.column-config-fields,.selected-column-panel{border-radius:7px}.column-field-card{min-height:56px}

/* Forms, dialogs and low-frequency pages */
.project-settings-dialog,.product-create-dialog,.workspace-dialog{border:1px solid rgba(25,57,45,.08);border-radius:10px;box-shadow:0 24px 70px rgba(8,30,22,.22)}
.modal-heading{padding:18px 22px 15px}.settings-scroll{padding:2px 22px 22px}.modal-actions{padding:13px 22px}.settings-section{padding:17px 0}
.form-card{border-radius:8px}.empty-state{border-style:dashed;background:#fbfcfb}.recycle-row{border-radius:8px}

@media(max-width:1100px){:root{--sidebar:76px}.nav-label,.app-brand>span:last-child{display:none}.app-brand{justify-content:center}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.management-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-list-compact{grid-template-columns:1fr}}
@media(max-width:760px){.page-shell{padding:20px 14px 42px}.page-heading{align-items:flex-start;min-height:auto}.page-heading-actions{width:100%}.page-heading-actions>*{flex:1}.metric-grid{grid-template-columns:1fr 1fr}.metric-card{min-height:90px;padding:13px}.metric-icon{display:none!important}.metric-card>div{width:100%}.management-grid{grid-template-columns:1fr}.list-hint{display:none}.row-open{opacity:1}.workspace-control-row{align-items:flex-start;flex-direction:column;padding:10px 0}.column-configurator{grid-template-columns:1fr}.selected-column-panel{display:none}}
.entity-link strong,.record-main h3{letter-spacing:-.01em}
.table-wrap{overflow:hidden}
table{border-collapse:separate;border-spacing:0}
thead th{
  background:#f6f9f7;
  border-bottom:1px solid var(--line);
  color:#5b6f67;
  font-size:12px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}
tbody td{
  border-bottom:1px solid #edf2ef;
  vertical-align:middle;
}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover td{background:#fbfdfc}
.table-thumbnail,.product-list-thumb{
  border:1px solid #dbe4df;
  box-shadow:0 1px 2px rgba(13,35,27,.04);
}
.table-thumbnail-placeholder,.image-placeholder,.product-image-placeholder{
  background:#f1f5f3;
  color:#7d9289;
}
.button,.secondary-button,.danger-button,.compact-button,.icon-button{
  border-radius:var(--radius-control);
  transition:background .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease,transform .08s ease;
}
.button:hover,.secondary-button:hover,.icon-button:hover{transform:translateY(-1px)}
.button:focus-visible,.secondary-button:focus-visible,.danger-button:focus-visible,.icon-button:focus-visible,
input:focus,select:focus,textarea:focus{
  outline:none;
  border-color:#8fb5a7!important;
  box-shadow:var(--focus-ring)!important;
}
.icon-button{
  min-width:38px;
  height:38px;
  background:#fff;
  border:1px solid #d8e2de;
}
.icon-button:hover{background:#f3faf6;border-color:#b7cbc3}
.icon-action-group{gap:8px}
input,select,textarea{
  border-radius:var(--radius-control);
  border-color:#cbd8d2;
  background:#fff;
}
label{color:#1d2e28}
.helptext,.field-explanation{color:#6b7f77}
.form-card,.project-create-dialog,.product-create-dialog,.modal-card{
  box-shadow:var(--shadow-raised);
}
dialog{
  border-radius:14px;
}
dialog::backdrop{background:rgba(18,35,29,.50)}
.modal-header,.modal-actions{
  background:#fff;
  border-color:var(--line);
}
.status-pill{
  border:1px solid transparent;
  border-radius:999px;
  font-size:12px;
  font-weight:750;
  line-height:1;
  white-space:nowrap;
}
.status-draft{background:#edf2ef;color:#52655e}
.status-active{background:#dcefe7;color:#0f6b4f}
.status-on_hold{background:#fff1d8;color:#7c5716}
.status-archived,.status-archive{background:#f1e8e4;color:#7f433a}
.status-cancelled,.status-canceled{background:#f5dfdc;color:#963c34}
.message{
  border-left:4px solid var(--forest-700);
  border-radius:9px;
  background:#edf7f2;
  box-shadow:0 1px 2px rgba(13,35,27,.04);
}
.empty-state{
  border:1px dashed #c6d5ce;
  border-radius:var(--radius-panel);
  background:linear-gradient(180deg,#fff,#f8fbf9);
  box-shadow:none;
}
.empty-state i{
  color:#7f968d;
}
.pagination{
  margin-top:16px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
}
.page-number{
  border-radius:7px;
  border:1px solid transparent;
}
.page-number:hover{border-color:#cbd8d2;background:#f5f8f6}
.page-number.active{background:var(--forest-700);color:#fff}
.management-grid{gap:14px}
.management-card{
  min-height:150px;
  padding:18px;
}
.management-card h2{
  letter-spacing:-.02em;
}
.settings-grid{gap:14px}
.file-filter-bar,.workspace-controls-card{
  box-shadow:var(--shadow-card);
}
.document-preview-grid{gap:16px}
.document-card{
  border-radius:var(--radius-panel);
  box-shadow:var(--shadow-card);
}
.document-preview{
  background:linear-gradient(180deg,#f8faf9,#edf3f0);
}
.document-card-heading h2{letter-spacing:-.015em}
.file-preview-icon{
  color:#60746c;
}
.tiptap-editor{
  border-radius:10px;
  box-shadow:0 1px 2px rgba(13,35,27,.03);
}
.tiptap-toolbar{
  background:#f8fbf9;
  border-radius:10px 10px 0 0;
}
.tiptap-content{
  font-size:15px;
}
.tiptap-content table{
  border-radius:6px;
  overflow:hidden;
}
.tiptap-content th{
  background:#eaf3ef;
}
.product-create-dialog,.project-create-dialog{
  border:1px solid rgba(255,255,255,.5);
}
.product-form-section-heading h3{
  letter-spacing:-.02em;
}
.attribute-form-group,.packaging-level{
  border-color:#d8e2de;
  box-shadow:0 1px 2px rgba(13,35,27,.025);
}
.attribute-form-group summary,.packaging-level-heading{
  background:#fafcfa;
}
.workspace-controls-card,.workspace-filter-sidebar,.condition-builder-panel,.column-picker-main,.column-config-groups,.column-config-fields,.selected-column-panel-rich{
  border-radius:var(--radius-panel);
}
.workspace-table th{
  background:#f6f9f7;
}
.workspace-table td{
  background:#fff;
}
.field-suggestions,.mention-menu{
  box-shadow:0 16px 38px rgba(13,35,27,.18);
}
@media(max-width:900px){
  .page-shell{padding-inline:16px}
  .page-heading{gap:12px}
  .metric-card{min-height:104px}
  .card,.form-card,.table-wrap,.workspace-panel,.management-card,.metric-card,.section-block,.record-list{border-radius:12px}
}

/* Final cascade lock for the SaaS redesign */
.app-brand>span:last-child{display:grid;gap:1px}
.app-brand>span:last-child strong{font-size:15px}.app-brand>span:last-child small{display:block;color:#a8c0b7;font-size:10px;font-weight:500}
.nav-label{display:block;margin:20px 10px 7px;color:#7fa196;font-size:10px;font-weight:650;letter-spacing:.03em;text-transform:none}
.primary-nav,.nav-secondary{margin:0;padding:0;border:0}
.page-kicker,.section-kicker,.record-meta,.workspace-header .record-meta{letter-spacing:.01em;text-transform:none}
.metric-card{display:flex;min-height:106px;gap:14px;align-items:center;padding:18px;border-radius:8px}
.metric-card>i{position:static}.metric-card>div>span{text-transform:none;letter-spacing:0}
.management-grid{gap:9px}
.management-card{display:grid;grid-template-columns:38px minmax(0,1fr) 20px;min-height:82px;padding:14px;gap:12px;align-items:center}
.management-card::after{content:none}.management-card>i{display:block;width:auto;height:auto;color:#899790;background:transparent;font-size:12px}
.management-card h2{margin:0 0 3px;font-size:13px;letter-spacing:0}.management-card p{font-size:11px}
.entity-table th,.workspace-table th{text-transform:none;letter-spacing:.01em}
.workspace-header .record-meta{font-size:10px;font-weight:650}
@media(max-width:1100px){.nav-label,.app-brand>span:last-child{display:none}}
.recycle-list.list-surface{display:block;overflow:hidden;background:#fff}
.recycle-list.list-surface .recycle-row{display:flex;justify-content:space-between;gap:18px;align-items:center;min-height:74px;padding:12px 15px;border:0;border-bottom:1px solid #edf1ef;background:#fff}
.recycle-list.list-surface .recycle-row:last-child{border-bottom:0}
.recycle-row-main{display:flex;min-width:0;gap:12px;align-items:center}.recycle-row-main>div{min-width:0}.recycle-row-main h2{margin:3px 0 0;overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}
.recycle-row .action-bar{flex-wrap:nowrap}.recycle-row form{margin:0}

/* Project overview mosaic */
.project-dashboard-overview{
  display:grid;
  gap:14px;
  padding-bottom:28px;
  overflow-x:hidden;
}
.project-dashboard-overview *{
  min-width:0;
}
.project-overview-mosaic{
  display:grid;
  grid-template-columns:minmax(360px,.88fr) minmax(0,1.12fr);
  gap:14px;
  align-items:start;
}
.project-overview-brief-stack{
  display:grid;
  grid-template-rows:auto minmax(142px,1fr);
  gap:14px;
  min-width:0;
}
.project-overview-mosaic .overview-module,
.project-dashboard-overview .overview-module{
  min-width:0;
  overflow:hidden;
}
.project-dashboard-overview .overview-module-heading.compact-heading{
  min-height:54px;
  padding:10px 16px;
}
.project-dashboard-overview .overview-module-heading h2{
  font-size:17px;
  line-height:1.15;
}
.project-snapshot-card .compact-definition-list{
  grid-template-columns:1fr 1fr;
}
.project-snapshot-card .compact-definition-list>div{
  min-height:70px;
  padding:13px 16px;
}
.project-brief-panel{
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
}
.project-brief-panel .project-narrative{
  max-height:none;
  min-height:0;
  padding:16px 18px;
  overflow-x:hidden;
  overflow-y:auto;
}
.project-dashboard-overview .rich-content,
.project-dashboard-overview .rich-content *{
  max-width:100%;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.project-dashboard-overview .rich-content table{
  display:block;
  max-width:100%;
  overflow-x:hidden;
  table-layout:fixed;
}
.project-dashboard-overview .rich-content img{
  max-width:100%;
  height:auto;
}
.overview-attachments-card .overview-record-list,
.overview-communication-card .overview-record-list{
  max-height:254px;
  overflow-x:hidden;
  overflow-y:auto;
}
.project-dashboard-overview .overview-file-row,
.project-dashboard-overview .overview-communication-row{
  min-height:64px;
  padding:9px 14px;
}
.project-dashboard-overview .overview-file-row strong,
.project-dashboard-overview .overview-communication-row strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.project-dashboard-overview .overview-file-row span,
.project-dashboard-overview .overview-file-row small,
.project-dashboard-overview .overview-communication-row span,
.project-dashboard-overview .overview-communication-row small{
  max-width:100%;
}
.project-dashboard-overview .compact-empty{
  min-height:112px;
  padding:18px;
}
.overview-products-module .overview-product-list{
  grid-template-columns:1fr;
}
.overview-products-module .overview-product-row{
  min-height:72px;
}
.project-source-panel .source-definition-list{
  grid-template-columns:minmax(220px,.32fr) minmax(0,1fr);
}
.project-source-panel .source-definition-list>div{
  min-height:86px;
}
.project-source-panel .definition-wide dd{
  max-height:220px;
  overflow-x:hidden;
  overflow-y:auto;
}
@media(max-width:980px){
  .project-overview-mosaic,
  .project-source-panel .source-definition-list{
    grid-template-columns:1fr;
  }
  .project-overview-brief-stack{
    grid-template-rows:auto;
  }
  .project-brief-panel .project-narrative{
    max-height:360px;
  }
}
@media(max-width:680px){
  .project-snapshot-card .compact-definition-list{
    grid-template-columns:1fr;
  }
  .project-source-panel .source-definition-list>div,
  .project-snapshot-card .compact-definition-list>div{
    min-height:auto;
  }
}

/* Caret-anchored mention suggestions. Coordinates are set by rich-editor.js. */
.tiptap-editor .mention-menu{top:0;bottom:auto}
.tiptap-editor .mention-menu strong,.tiptap-editor .mention-menu small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Shared with the project detail Owners field. */
.project-owner-avatar {
  display: grid;
  width: 30px;
  min-width: 30px;
  height: 30px;
  margin-left: -5px;
  place-items: center;
  border: 2px solid #fff;
  border-radius: 50%;
  color: #31584a;
  background: #dfece6;
  font-size: 10px;
  font-weight: 750;
  line-height: 1;
}
.project-owner-avatar:first-child { margin-left: 0; }
.project-owner-avatar--overflow { color: #596b63; background: #edf1f3; }
.project-owner-avatar:focus-visible { outline: 2px solid #176b50; outline-offset: 2px; }
