:root {
  font-family: "PingFang SC", "Microsoft YaHei", Arial, sans-serif;
  color: #1f2c2a;
  background: #f4f6f4;
  font-synthesis: none;
  --green-900: #153d38;
  --green-700: #1e4d46;
  --green-600: #2d6a60;
  --green-100: #e6f0ed;
  --ink-900: #1f2c2a;
  --ink-700: #536460;
  --ink-500: #7f908b;
  --line: #dfe7e3;
  --paper: #ffffff;
  --warm: #b6854d;
  --red: #bb5d52;
  --shadow: 0 8px 24px rgba(25, 58, 51, .055);
  --amber-100: #f8f0e4;
  --amber-700: #8e6337;
  --blue-100: #e9f0f5;
  --blue-700: #466b7d;
}

.analytics-center { min-width: 0; }
.analytics-tabs { margin-bottom: 18px; }
.analytics-filter-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.analytics-filter-bar > strong { flex: 0 0 auto; color: var(--ink-700); font-size: 12px; }
.analytics-audience-segmented, .analytics-usage-segmented { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(92px, 1fr); width: min(100%, 820px); overflow-x: auto; }
.analytics-audience-segmented button, .analytics-usage-segmented button { min-height: 40px; white-space: nowrap; }
.analytics-audience-summary { cursor: default; }
.analytics-event-table { min-width: 1460px !important; }
.analytics-kpi-grid .analytics-kpi { width: 100%; border: 1px solid var(--line); background: var(--paper); color: inherit; cursor: pointer; text-align: left; box-shadow: var(--shadow); }
.analytics-kpi-grid .analytics-kpi:hover, .analytics-kpi-grid .analytics-kpi:focus-visible { border-color: var(--green-700); outline: 2px solid rgba(37, 99, 82, .18); outline-offset: 1px; }
.analytics-grid { align-items: start; }
.analytics-table-wrap { max-width: 100%; overflow-x: auto; }
.analytics-table-wrap table { min-width: 680px; }
.analytics-quality-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: #edf1ef; }
.analytics-quality-list .detail-stat { min-width: 0; padding: 14px; background: var(--paper); }
.analytics-quality-list .detail-stat span, .analytics-quality-list .detail-stat small { display: block; color: var(--ink-500); font-size: 11px; }
.analytics-quality-list .detail-stat strong { display: block; margin-top: 6px; color: var(--ink-900); font-size: 14px; overflow-wrap: anywhere; }
.analytics-state { display: flex; align-items: center; gap: 12px; padding: 12px 14px; margin-bottom: 14px; border-left: 3px solid var(--green-600); background: var(--green-100); color: var(--ink-700); font-size: 12px; }
.analytics-state.error { border-left-color: var(--red); background: #f9e9e7; }
.analytics-state strong { color: var(--ink-900); }
.analytics-state span { flex: 1; }
.analytics-detail-workspace { min-width: 0; }
.analytics-detail-head { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 16px; margin-bottom: 16px; padding: 16px; background: var(--paper); border-left: 3px solid var(--green-600); box-shadow: var(--shadow); }
.analytics-detail-head span { color: var(--green-700); font-size: 10px; font-weight: 700; }
.analytics-detail-head h3 { margin: 4px 0; color: var(--ink-900); font-size: 18px; }
.analytics-detail-head p { margin: 0; color: var(--ink-500); font-size: 12px; line-height: 1.7; }
.analytics-pagination { display: flex; align-items: center; justify-content: flex-end; gap: 12px; margin-top: 14px; }
.analytics-pagination span { min-width: 56px; color: var(--ink-500); font-size: 11px; text-align: center; }
.analytics-pagination .btn:disabled { cursor: not-allowed; opacity: .45; }

.followup-center-layout { display: grid; grid-template-columns: minmax(240px, .42fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.phone-sales-board { margin-bottom: 18px; }
.project-followup-board { margin-top: 18px; }
.phone-sales-queue { display: grid; gap: 0; margin-top: 18px; border-top: 1px solid var(--line); }
.phone-sales-queue-item { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 0; border-bottom: 1px solid #edf1ef; }
.telephone-sales-layout { display: grid; grid-template-columns: minmax(260px, .42fr) minmax(0, 1fr); gap: 18px; align-items: start; margin-top: 18px; }
.telephone-sales-layout > .phone-sales-queue { margin-top: 0; padding: 0 16px; border: 1px solid var(--line); background: var(--paper); }
.telephone-sales-layout .phone-sales-queue-item { width: 100%; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: var(--ink-700); text-align: left; }
.telephone-sales-layout .phone-sales-queue-item.active, .telephone-sales-layout .phone-sales-queue-item:hover { background: var(--green-100); }
.telephone-sales-layout .phone-sales-queue-item b { color: var(--ink-500); font-size: 11px; font-weight: 500; }
.phone-sales-queue-item > div:first-child { display: grid; gap: 4px; min-width: 0; }
.phone-sales-queue-item strong { color: var(--ink-900); font-size: 13px; }
.phone-sales-queue-item span, .phone-sales-queue-item small { color: var(--ink-500); font-size: 11px; line-height: 1.45; }
.phone-sales-queue-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.empty-state-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 6px; }
.lead-project-relation { margin-top: 18px; }
.lead-link-card { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.lead-link-card:last-child { border-bottom: 0; }
.lead-link-card div { display: grid; gap: 4px; min-width: 0; }
.lead-link-card strong { color: var(--ink-900); font-size: 13px; }
.lead-link-card span { color: var(--ink-500); font-size: 11px; line-height: 1.5; }
.followup-case-list { position: sticky; top: 94px; }
.followup-case-list .panel-body { padding: 0; }
.followup-case-item { width: 100%; border: 0; border-bottom: 1px solid var(--line); background: var(--paper); padding: 14px 16px; display: grid; gap: 5px; text-align: left; color: var(--ink-700); }
.followup-case-item:last-child { border-bottom: 0; }
.followup-case-item:hover, .followup-case-item.active { background: var(--green-100); }
.followup-case-item strong { color: var(--ink-900); font-size: 13px; }
.followup-case-item span, .followup-case-item small { color: var(--ink-500); font-size: 11px; line-height: 1.45; }
.followup-owner-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.followup-owner-card { min-width: 0; padding: 14px; border: 1px solid var(--line); background: #fbfcfb; display: grid; gap: 6px; }
.followup-owner-card > span, .followup-owner-card small { color: var(--ink-500); font-size: 11px; }
.followup-owner-card strong { color: var(--ink-900); font-size: 14px; overflow-wrap: anywhere; }
.followup-owner-form { display: grid; gap: 7px; margin-top: 4px; }
.followup-owner-form select, .followup-owner-form input { width: 100%; min-width: 0; border: 1px solid var(--line); background: #fff; padding: 8px; font-size: 11px; }
.followup-owner-form .btn { width: 100%; min-height: 36px; padding: 7px; }
.followup-timeline-item { display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 12px; padding: 13px 0; border-bottom: 1px solid #edf1ef; }
.followup-timeline-item time, .followup-timeline-item small { color: var(--ink-500); font-size: 11px; }
.followup-timeline-item strong { color: var(--ink-900); font-size: 12px; }
.followup-timeline-item p { margin: 6px 0; color: var(--ink-700); font-size: 12px; line-height: 1.6; white-space: pre-wrap; }
.followup-touch-form { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }

@media (max-width: 900px) {
  .followup-center-layout { grid-template-columns: minmax(0, 1fr); }
  .telephone-sales-layout { grid-template-columns: minmax(0, 1fr); }
  .phone-sales-queue-item { align-items: flex-start; flex-direction: column; }
  .phone-sales-queue-actions { justify-content: flex-start; }
  .lead-link-card { align-items: flex-start; flex-direction: column; }
  .followup-case-list { position: static; }
  .followup-owner-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 700px) {
  .followup-timeline-item { grid-template-columns: minmax(0, 1fr); gap: 5px; }
  .followup-owner-form .btn, .followup-touch-form .btn { min-height: 44px; }
}

@media (max-width: 700px) {
  .analytics-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .analytics-grid { grid-template-columns: minmax(0, 1fr); }
  .analytics-quality-list { grid-template-columns: minmax(0, 1fr); }
  .analytics-state { align-items: flex-start; flex-wrap: wrap; }
  .analytics-state span { flex-basis: 100%; order: 3; }
  .analytics-detail-head { grid-template-columns: minmax(0, 1fr); }
  .analytics-detail-head .btn { width: fit-content; min-height: 44px; }
  .analytics-filter-bar { align-items: stretch; flex-direction: column; gap: 8px; }
  .analytics-audience-segmented, .analytics-usage-segmented { grid-auto-columns: minmax(112px, 1fr); width: 100%; }
  .analytics-pagination { justify-content: space-between; }
  .analytics-pagination .btn { min-height: 44px; }
}

* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; background: #f4f6f4; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
.hidden { display: none !important; }

.app-shell { display: flex; min-height: 100vh; }
.sidebar { width: 246px; flex: 0 0 246px; background: var(--green-900); color: #eaf4f0; padding: 26px 16px 20px; display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; overflow-y: auto; }
.brand { padding: 2px 14px 24px; border-bottom: 1px solid rgba(255,255,255,.12); display: grid; place-items: center; }
.brand-logo-wrap { width: 112px; aspect-ratio: 1; padding: 0; background: transparent; margin: 0; }
.brand-logo-wrap img { width: 100%; height: 100%; display: block; object-fit: contain; filter: drop-shadow(0 0 1px rgba(255,255,255,.72)) drop-shadow(0 3px 5px rgba(0,0,0,.52)); }
.brand h1 { margin: 0; font-size: 16px; letter-spacing: 0; font-weight: 650; }
.brand p { color: #98b5ad; font-size: 11px; margin: 7px 0 0; }
.nav { padding-top: 18px; display: grid; gap: 7px; }
.nav-group { display: block; }
.nav-group-label, .nav-subgroup > summary { list-style: none; cursor: pointer; }
.nav-group-label::-webkit-details-marker, .nav-subgroup > summary::-webkit-details-marker { display: none; }
.nav-group-label { min-height: 31px; padding: 0 14px; color: #789b92; font-size: 10px; font-weight: 700; display: flex; align-items: center; justify-content: space-between; }
.nav-group-label b, .nav-subgroup > summary > b { color: #789b92; font-size: 12px; transition: transform .16s ease; }
.nav-group[open] > .nav-group-label b, .nav-subgroup[open] > summary > b { transform: rotate(180deg); }
.nav-group-items, .nav-subgroup-items { display: grid; gap: 3px; }
.nav-subgroup { display: block; }
.nav-subgroup > summary { min-height: 42px; padding: 0 14px; color: #b5cbc4; font-size: 13px; display: flex; align-items: center; gap: 11px; }
.nav-subgroup > summary:hover, .nav-subgroup[open] > summary { color: #fff; background: rgba(255,255,255,.07); border-radius: 5px; }
.nav-subgroup > summary > b { margin-left: auto; }
.nav-subgroup-items button { padding-left: 42px; font-size: 12px; }
.nav button { border: 0; background: transparent; color: #b5cbc4; text-align: left; padding: 12px 14px; border-radius: 5px; font-size: 13px; display: flex; align-items: center; gap: 11px; }
.nav button:hover, .nav button.active { color: #fff; background: rgba(255,255,255,.11); }
.nav-icon { width: 19px; text-align: center; color: #b5c5bf; font-size: 12px; font-weight: 700; }
.nav-badge { min-width: 19px; height: 19px; margin-left: auto; padding: 0 5px; border-radius: 10px; display: grid; place-items: center; background: #d7a66e; color: #17332c; font-size: 8px; }
.sidebar-footer { margin-top: auto; color: #98b5ad; padding: 16px 14px 0; border-top: 1px solid rgba(255,255,255,.12); font-size: 11px; line-height: 1.7; }
.sidebar-footer strong { color: #e8f3ee; display: block; font-size: 12px; font-weight: 500; }

.main { flex: 1; min-width: 0; }
.topbar { height: 76px; background: rgba(255,255,255,.9); border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; padding: 0 34px; position: sticky; top: 0; z-index: 5; }
.topbar-left { display: flex; align-items: center; gap: 20px; }
.mobile-menu { display: none; }
.project-select { min-width: 220px; border: 0; background: transparent; color: var(--ink-900); font-weight: 650; padding: 8px 0; }
.project-select option { font-weight: 400; }
.topbar-meta { color: var(--ink-500); font-size: 12px; }
.topbar-actions { display: flex; gap: 10px; align-items: center; }
.account-switch { display: grid; gap: 3px; }
.account-switch > span { color: var(--ink-500); font-size: 9px; line-height: 1; }
.role-select, .status-select { border: 1px solid var(--line); background: #fff; color: var(--ink-700); border-radius: 3px; padding: 8px 10px; font-size: 11px; }
.status-select { max-width: 104px; padding: 5px 7px; }
.sync-state { color: var(--green-600); font-size: 10px; padding: 4px 7px; background: var(--green-100); border-radius: 3px; white-space: nowrap; }
.user { display: flex; gap: 10px; align-items: center; margin-left: 10px; padding-left: 16px; border-left: 1px solid var(--line); }
.avatar { width: 32px; height: 32px; border: 0; border-radius: 50%; display: grid; place-items: center; background: var(--green-100); color: var(--green-700); font-weight: 700; font-size: 12px; flex: 0 0 auto; }
.avatar.large { width: 48px; height: 48px; font-size: 16px; }
.user span { font-size: 12px; font-weight: 600; }
.account-summary { display: grid; gap: 2px; text-align: right; margin-left: 4px; }
.account-summary span { color: var(--ink-900); font-size: 11px; font-weight: 700; }
.account-summary small { color: var(--ink-500); font-size: 9px; }
.task-indicator { min-width: 62px; height: 34px; border: 1px solid var(--line); background: #fff; color: var(--ink-700); display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 0 10px; font-size: 11px; font-weight: 700; }
.task-indicator b { min-width: 18px; height: 18px; display: grid; place-items: center; background: #edf1ef; color: var(--green-700); font-size: 9px; border-radius: 50%; }
.task-indicator.has-alert { border-color: #d8b181; color: var(--amber-700); }
.task-indicator.has-alert b { background: #f5e7d5; color: var(--amber-700); }
.home-return { height: 34px; border: 1px solid var(--line); background: #fff; color: var(--green-700); display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 0 10px; font-size: 11px; font-weight: 700; }
.home-return span { font-size: 15px; line-height: 1; }
.home-return:hover { border-color: var(--green-600); background: var(--green-100); }
.mobile-quickbar, .sidebar-scrim { display: none; }

.content { padding: 32px 36px 52px; max-width: 1480px; margin: 0 auto; }
.width-standard .content { max-width: 1180px; }
.sidebar-compact .sidebar { width: 82px; flex-basis: 82px; padding-left: 10px; padding-right: 10px; }
.sidebar-compact .brand { padding-left: 3px; padding-right: 3px; }
.sidebar-compact .brand-logo-wrap { width: 62px; }
.sidebar-compact .brand h1, .sidebar-compact .brand p, .sidebar-compact .nav-label, .sidebar-compact .nav-group-label > span, .sidebar-compact .sidebar-footer { display: none; }
.sidebar-compact .nav-group-label { justify-content: center; padding: 0; }
.sidebar-compact .nav-group-label b { transform: none; }
.sidebar-compact .nav-group[open] > .nav-group-label b { transform: rotate(180deg); }
.sidebar-compact .nav button { justify-content: center; padding: 11px 8px; }
.sidebar-compact .nav-icon { width: auto; }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 27px; }
.eyebrow { color: var(--green-600); font-size: 11px; letter-spacing: 0; text-transform: uppercase; margin-bottom: 9px; font-weight: 700; }
h2 { margin: 0; color: var(--ink-900); font-size: 28px; letter-spacing: 0; line-height: 1.2; }
.subtitle { color: var(--ink-500); margin: 8px 0 0; font-size: 13px; }
.heading-actions { display: flex; gap: 9px; flex-wrap: wrap; justify-content: flex-end; }
.btn { border: 1px solid var(--line); background: #fff; color: var(--ink-700); padding: 9px 13px; border-radius: 4px; font-size: 12px; font-weight: 600; }
.btn:hover { border-color: var(--green-600); color: var(--green-700); }
.btn.primary { color: #fff; border-color: var(--green-700); background: var(--green-700); }
.btn.primary:hover { background: var(--green-900); }
.btn.warm { color: #fff; border-color: var(--warm); background: var(--warm); }
.btn.danger { color: var(--red); }

.kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.kpi { background: var(--paper); border: 1px solid var(--line); padding: 18px 20px; box-shadow: var(--shadow); min-height: 112px; }
.kpi.alert { border-top: 3px solid var(--warm); }
.kpi-label { display: flex; justify-content: space-between; color: var(--ink-500); font-size: 12px; }
.kpi-label b { color: var(--green-600); font-weight: 500; }
.kpi-value { margin-top: 14px; font-size: 27px; font-weight: 700; color: var(--ink-900); }
.kpi-note { color: var(--ink-500); font-size: 11px; margin-top: 3px; }

.grid-2 { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr); gap: 18px; }
.panel { background: var(--paper); border: 1px solid var(--line); box-shadow: var(--shadow); min-width: 0; }
.panel-header { padding: 18px 20px; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.panel-header h3 { margin: 0; font-size: 14px; letter-spacing: 0; }
.panel-header small { color: var(--ink-500); font-size: 11px; }
.panel-body { padding: 20px; }
.pipeline { display: grid; grid-template-columns: repeat(7, minmax(82px, 1fr)); gap: 7px; align-items: end; min-height: 180px; }
.stage { display: flex; flex-direction: column; justify-content: end; gap: 9px; min-width: 0; }
.stage-bar { height: var(--h); background: #bcd8d0; min-height: 28px; position: relative; }
.stage:nth-child(2n) .stage-bar { background: #8fbdb1; }
.stage:nth-child(3n) .stage-bar { background: #5e998b; }
.stage-count { color: var(--green-700); font-size: 16px; font-weight: 700; }
.stage-name { color: var(--ink-500); font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.stage-foot { color: var(--ink-500); font-size: 11px; border-top: 1px solid var(--line); padding-top: 11px; margin-top: 16px; }
.task-list { display: grid; gap: 1px; }
.task { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; gap: 10px; align-items: start; padding: 11px 0; border-bottom: 1px solid #edf1ef; }
.task:last-child { border-bottom: 0; }
.task-dot { width: 8px; height: 8px; border-radius: 50%; margin-top: 5px; background: var(--warm); }
.task-dot.green { background: var(--green-600); }
.task-dot.red { background: var(--red); }
.task-title { font-size: 12px; font-weight: 600; }
.task-meta { color: var(--ink-500); font-size: 11px; margin-top: 4px; }
.task-date { color: var(--ink-500); font-size: 11px; white-space: nowrap; }

.section { margin-top: 18px; }
.toolbar { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; }
.search { min-width: 220px; flex: 1; border: 1px solid var(--line); padding: 10px 12px; outline: none; border-radius: 4px; color: var(--ink-900); }
.search:focus, input:focus, select:focus, textarea:focus { border-color: var(--green-600); box-shadow: 0 0 0 2px rgba(45,106,96,.09); outline: none; }
.filter { border: 1px solid var(--line); padding: 10px 12px; color: var(--ink-700); background: #fff; border-radius: 4px; min-width: 130px; }
.table-wrap { overflow-x: auto; }
table { border-collapse: collapse; width: 100%; min-width: 760px; }
.commercial-table { min-width: 1280px; }
th, td { padding: 14px 20px; text-align: left; border-bottom: 1px solid #edf1ef; font-size: 12px; vertical-align: middle; }
th { color: var(--ink-500); font-size: 11px; font-weight: 600; background: #fbfcfb; white-space: nowrap; }
td { color: var(--ink-700); }
td strong { color: var(--ink-900); display: block; font-size: 12px; }
td small { color: var(--ink-500); font-size: 11px; display: block; margin-top: 4px; }
.status { display: inline-flex; align-items: center; gap: 5px; padding: 4px 7px; font-size: 11px; background: var(--green-100); color: var(--green-700); border-radius: 3px; white-space: nowrap; }
.status.warm { background: #fbf2e5; color: #9b6b37; }
.status.red { background: #f9e9e7; color: #a64e45; }
.status.gray { background: #edf1ef; color: var(--ink-700); }
.row-action { border: 0; background: transparent; color: var(--green-700); padding: 0; font-size: 12px; font-weight: 600; }
.row-action + .row-action { margin-left: 12px; }
.detail-link, .detail-item { border: 0; background: transparent; color: inherit; padding: 0; text-align: left; cursor: pointer; }
.detail-link { display: inline-flex; flex-direction: column; gap: 3px; min-width: 0; }
.detail-link .detail-title { display: block; color: var(--ink-900); font-size: 13px; font-weight: 800; line-height: 1.35; }
.detail-link span { color: var(--ink-500); font-size: 11px; line-height: 1.45; }
.task-main.detail-item { width: 100%; }
.table-detail-link { width: 100%; }
.card-detail-link { max-width: 100%; }
.request-detail-link { align-items: flex-start; }
.detail-link:hover .detail-title, .detail-link:focus-visible .detail-title { color: var(--green-700); }
.detail-link:focus-visible, .detail-item:focus-visible, .clickable-row:focus-visible { outline: 2px solid rgba(37, 99, 82, .32); outline-offset: 2px; }
.clickable-row { cursor: pointer; }
.clickable-row:hover td { background: #fbfdfc; }
.danger-link { color: var(--red); }
.text-red { color: var(--red) !important; }
.report-thumb { width: 72px; height: 48px; display: block; object-fit: cover; border: 1px solid var(--line); }
.role-banner { background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--warm); padding: 17px 20px; margin-bottom: 14px; display: flex; justify-content: space-between; align-items: center; gap: 18px; }
.role-banner span { color: var(--amber-700); font-size: 10px; font-weight: 700; }
.role-banner h3 { margin: 5px 0 0; font-size: 16px; }
.role-banner p { margin: 5px 0 0; color: var(--ink-500); font-size: 11px; }
.role-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }

.flow-board { display: grid; grid-template-columns: repeat(7, minmax(160px, 1fr)); gap: 12px; overflow-x: auto; padding-bottom: 6px; }
.flow-column { background: #f7f9f8; border: 1px solid var(--line); min-height: 250px; }
.flow-column-header { display: flex; justify-content: space-between; padding: 12px; border-bottom: 2px solid #c1dcd4; font-size: 12px; font-weight: 700; }
.flow-column-header span { color: var(--ink-500); font-weight: 500; }
.deal-card { background: #fff; border: 1px solid var(--line); margin: 9px; padding: 12px; box-shadow: 0 4px 10px rgba(25,58,51,.04); }
.deal-card strong { display: block; font-size: 12px; }
.deal-card p { color: var(--ink-500); margin: 6px 0 12px; font-size: 11px; line-height: 1.5; }
.deal-footer { display: flex; justify-content: space-between; color: var(--ink-500); font-size: 10px; }

.process-list { display: grid; gap: 0; }
.process-row { display: grid; grid-template-columns: 32px 130px 1fr 110px; gap: 16px; align-items: center; padding: 15px 0; border-bottom: 1px solid #edf1ef; }
.process-row:last-child { border-bottom: 0; }
.process-index { width: 26px; height: 26px; border: 1px solid #a4cabe; color: var(--green-700); display: grid; place-items: center; font-size: 11px; font-weight: 700; }
.process-title { font-size: 12px; font-weight: 700; }
.process-desc { color: var(--ink-500); font-size: 11px; line-height: 1.5; }
.process-owner { color: var(--ink-700); font-size: 11px; }

.form-layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(260px, .6fr); gap: 18px; }
.form-section { border-bottom: 1px solid var(--line); padding: 0 0 21px; margin-bottom: 21px; }
.form-section:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.form-section h4 { font-size: 13px; margin: 0 0 16px; }
.form-section h5 { margin: 18px 0 10px; font-size: 12px; }
.section-note { margin: -9px 0 13px; color: var(--ink-500); font-size: 11px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; }
.field { display: grid; gap: 7px; }
.field.full { grid-column: 1 / -1; }
.field label { color: var(--ink-700); font-size: 11px; font-weight: 600; }
.field input, .field select, .field textarea { width: 100%; border: 1px solid var(--line); background: #fff; color: var(--ink-900); border-radius: 3px; padding: 10px 11px; font-size: 12px; }
.field input:disabled, .field select:disabled, .field textarea:disabled { background: #f3f5f4; color: var(--ink-500); cursor: not-allowed; }
.field textarea { min-height: 88px; resize: vertical; line-height: 1.6; }
.check-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.check { display: flex; align-items: center; gap: 7px; padding: 9px 10px; border: 1px solid var(--line); font-size: 11px; color: var(--ink-700); }
.check input { accent-color: var(--green-700); }
.choice-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.choice { min-height: 40px; border: 1px solid var(--line); background: #fff; display: flex; align-items: center; padding: 8px 10px; color: var(--ink-700); font-size: 11px; cursor: pointer; }
.choice:hover { border-color: #9fc3ba; }
.choice.selected, .choice:has(input:checked) { border-color: var(--green-600); background: var(--green-100); color: var(--green-900); }
.choice input { width: 14px; height: 14px; margin: 0 8px 0 0; accent-color: var(--green-700); flex: 0 0 auto; }
.choice span { line-height: 1.35; overflow-wrap: anywhere; }
.detail-library { display: grid; gap: 16px; }
.detail-group { padding: 12px; background: #fbfcfb; border: 1px solid #edf1ef; }
.detail-group h5 { margin: 0 0 10px; color: var(--ink-700); font-size: 11px; }
.custom-choice { display: flex; gap: 8px; margin-top: 10px; }
.custom-choice input { flex: 1; min-width: 0; border: 1px solid var(--line); padding: 9px 11px; color: var(--ink-900); }
.top-gap { margin-top: 14px; }
.side-summary { display: grid; gap: 12px; align-content: start; }
.summary-box { border: 1px solid var(--line); padding: 15px; }
.summary-box h4 { margin: 0 0 13px; font-size: 12px; }
.summary-line { display: flex; justify-content: space-between; gap: 10px; color: var(--ink-500); font-size: 11px; padding: 7px 0; border-bottom: 1px solid #edf1ef; }
.summary-line:last-child { border-bottom: 0; }
.summary-line strong { color: var(--ink-900); text-align: right; }
.form-actions { display: flex; gap: 9px; padding-top: 18px; border-top: 1px solid var(--line); margin-top: 21px; }
.survey-selector { display: flex; align-items: center; gap: 10px; margin: -7px 0 16px; }
.survey-selector label { color: var(--ink-500); font-size: 11px; }
.survey-selector select { min-width: 280px; max-width: 100%; border: 1px solid var(--line); background: #fff; padding: 9px 11px; color: var(--ink-900); }
.empty-state { min-height: 150px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; color: var(--ink-500); padding: 28px; text-align: center; }
.empty-state strong { color: var(--ink-900); font-size: 13px; }
.empty-state span { font-size: 11px; line-height: 1.6; }
@media (max-width: 700px) {
  .empty-state-actions { width: 100%; }
  .empty-state-actions .btn { width: 100%; min-height: 44px; }
}

.module-tabs { display: flex; border-bottom: 1px solid var(--line); overflow-x: auto; }
.module-tabs button { background: transparent; border: 0; border-bottom: 2px solid transparent; padding: 12px 16px; color: var(--ink-500); font-size: 12px; white-space: nowrap; }
.module-tabs button.active { color: var(--green-700); border-bottom-color: var(--green-700); font-weight: 700; }
.tab-count { margin-left: 7px; background: #edf1ef; color: var(--ink-500); padding: 2px 5px; border-radius: 3px; font-size: 9px; }
.selection-header { display: flex; justify-content: space-between; gap: 18px; align-items: start; margin-bottom: 18px; }
.selection-header h3 { margin: 0; font-size: 15px; }
.selection-header p { margin: 6px 0 0; color: var(--ink-500); font-size: 11px; }
.selection-count { color: var(--green-700); background: var(--green-100); padding: 6px 9px; font-size: 11px; white-space: nowrap; }
.milestone-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.milestone { border: 1px solid var(--line); padding: 15px; background: #fff; }
.milestone-top { display: flex; justify-content: space-between; gap: 9px; align-items: start; }
.milestone h4 { margin: 0; font-size: 12px; }
.milestone p { color: var(--ink-500); font-size: 11px; line-height: 1.5; margin: 9px 0 14px; min-height: 34px; }
.milestone-meta { display: flex; justify-content: space-between; color: var(--ink-500); font-size: 10px; border-top: 1px solid #edf1ef; padding-top: 10px; }
.template-preview { display: grid; gap: 7px; }
.template-preview > div { display: none; padding: 11px 12px; background: #f7f9f8; border: 1px solid var(--line); }
.template-preview > div.active { display: grid; gap: 5px; }
.template-preview strong { font-size: 11px; }
.template-preview span { color: var(--ink-500); font-size: 10px; line-height: 1.7; }
.activity-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
.activity-item { display: grid; grid-template-columns: 96px 1fr; gap: 4px 12px; padding: 11px 0; border-bottom: 1px solid #edf1ef; min-width: 0; }
.activity-item span { grid-row: 1 / 3; color: var(--ink-500); font-size: 10px; }
.activity-item strong { font-size: 11px; }
.activity-item p { margin: 0; color: var(--ink-500); font-size: 10px; overflow-wrap: anywhere; }

.task-filter-header { align-items: flex-start; }
.task-filters { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.task-filters button { border: 1px solid var(--line); background: #fff; color: var(--ink-500); padding: 7px 9px; font-size: 10px; }
.task-filters button b { margin-left: 4px; color: var(--ink-700); }
.task-filters button.active { border-color: var(--green-700); background: var(--green-700); color: #fff; }
.task-filters button.active b { color: #fff; }
.task-center-list { display: grid; }
.task-center-row { display: grid; grid-template-columns: 116px minmax(220px, 1fr) 140px 108px auto; align-items: center; gap: 16px; min-height: 76px; padding: 13px 20px; border-bottom: 1px solid #edf1ef; }
.task-center-row:last-child { border-bottom: 0; }
.task-center-row.overdue { border-left: 3px solid var(--red); }
.task-center-row.today { border-left: 3px solid var(--warm); }
.task-type { display: grid; gap: 5px; }
.task-type span { color: var(--ink-700); font-size: 11px; font-weight: 700; }
.task-type b { color: var(--ink-500); font-size: 9px; font-weight: 600; }
.task-center-row.overdue .task-type b { color: var(--red); }
.task-center-row.today .task-type b { color: var(--amber-700); }
.task-main { min-width: 0; }
.task-main strong { color: var(--ink-900); font-size: 12px; }
.task-main p { margin: 5px 0 0; color: var(--ink-500); font-size: 10px; line-height: 1.5; overflow-wrap: anywhere; }
.task-owner, .task-due { display: grid; gap: 5px; }
.task-owner span, .task-due span { color: var(--ink-500); font-size: 9px; }
.task-owner strong, .task-due strong { color: var(--ink-700); font-size: 10px; }
.task-handle { min-width: 58px; }
.task-count { display: inline-flex; padding: 4px 7px; background: #edf1ef; color: var(--ink-700); font-size: 10px; white-space: nowrap; }
.task-count.urgent { background: #f8e8df; color: #9c5548; }

.message-center-page, .message-detail-page { min-width: 0; }
.message-center-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.message-filter-bar { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin-bottom: 14px; }
.message-filter-bar button { min-height: 52px; border: 1px solid var(--line); background: #fff; color: var(--ink-700); padding: 9px 12px; display: flex; align-items: center; justify-content: space-between; gap: 10px; text-align: left; }
.message-filter-bar button b { min-width: 24px; height: 24px; padding: 0 6px; display: grid; place-items: center; border-radius: 50%; background: #edf1ef; color: var(--green-700); font-size: 9px; }
.message-filter-bar button.active { border-color: var(--green-700); background: var(--green-700); color: #fff; }
.message-filter-bar button.active b { background: rgba(255,255,255,.18); color: #fff; }
.message-center-list { overflow: hidden; }
.message-center-row { width: 100%; min-height: 86px; border: 0; border-bottom: 1px solid #edf1ef; background: #fff; padding: 14px 18px; display: grid; grid-template-columns: 76px minmax(0, 1fr) 150px; align-items: center; gap: 16px; text-align: left; }
.message-center-row:last-child { border-bottom: 0; }
.message-center-row:hover, .message-center-row:focus-visible { background: #f7faf8; outline: 2px solid var(--green-600); outline-offset: -2px; }
.message-center-row.unread { border-left: 3px solid var(--warm); background: #fffaf2; }
.message-center-row.high:not(.unread) { border-left: 3px solid var(--red); }
.message-kind { color: var(--green-700); font-size: 10px; font-weight: 700; }
.message-copy { min-width: 0; display: grid; gap: 5px; }
.message-copy strong { color: var(--ink-900); font-size: 13px; }
.message-copy small { color: var(--ink-700); font-size: 11px; line-height: 1.55; overflow-wrap: anywhere; }
.message-copy em { color: var(--ink-500); font-size: 9px; font-style: normal; }
.message-meta { display: grid; justify-items: end; gap: 7px; text-align: right; }
.message-meta b { color: var(--amber-700); font-size: 10px; }
.message-meta time { color: var(--ink-500); font-size: 9px; white-space: nowrap; }
.message-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 16px; align-items: start; }
.message-detail-main > header { min-height: 62px; padding: 15px 18px; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.message-detail-main > header > span { color: var(--ink-700); font-size: 12px; font-weight: 700; }
.message-detail-content { padding: 22px; }
.message-detail-content > p { margin: 0; color: var(--ink-900); font-size: 14px; line-height: 1.8; white-space: pre-wrap; overflow-wrap: anywhere; }
.message-detail-content dl { margin: 22px 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--line); }
.message-detail-content dl > div { min-height: 66px; padding: 12px 14px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.message-detail-content dl > div:nth-child(2n) { border-right: 0; }
.message-detail-content dt { color: var(--ink-500); font-size: 9px; }
.message-detail-content dd { margin: 6px 0 0; color: var(--ink-900); font-size: 11px; overflow-wrap: anywhere; }
.message-detail-content section { margin-top: 22px; }
.message-detail-content section h3, .message-detail-history h3 { margin: 0 0 12px; font-size: 13px; }
.message-empty-attachment { min-height: 52px; padding: 15px; border: 1px dashed #cfd9d5; color: var(--ink-500); font-size: 10px; }
.message-detail-main > footer { padding: 14px 18px; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 8px; }
.message-detail-history { padding: 18px; }
.message-history-row { padding: 11px 0; border-bottom: 1px solid #edf1ef; display: grid; gap: 5px; }
.message-history-row:last-child { border-bottom: 0; }
.message-history-row strong { color: var(--ink-900); font-size: 11px; }
.message-history-row span { color: var(--ink-500); font-size: 9px; }

.profile-identity { min-height: 132px; padding: 24px 26px; background: #223733; color: #fff; display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.profile-title { display: flex; align-items: center; gap: 16px; min-width: 0; }
.profile-initial { width: 58px; height: 58px; border: 1px solid rgba(255,255,255,.25); display: grid; place-items: center; color: #fff; font-size: 21px; flex: 0 0 auto; }
.profile-title span { color: #c7a474; font-size: 10px; font-weight: 700; }
.profile-title h3 { margin: 5px 0 0; font-size: 21px; font-weight: 650; }
.profile-title p { margin: 7px 0 0; color: #b8cbc5; font-size: 11px; }
.profile-stage-status { min-width: 130px; padding-left: 24px; border-left: 1px solid rgba(255,255,255,.18); display: grid; gap: 5px; text-align: right; }
.profile-stage-status span, .profile-stage-status small { color: #9eb7af; font-size: 9px; }
.profile-stage-status strong { color: #fff; font-size: 17px; }
.profile-stage-rail { display: grid; grid-template-columns: repeat(7, minmax(84px, 1fr)); background: #fff; border: 1px solid var(--line); border-top: 0; margin-bottom: 18px; overflow-x: auto; }
.profile-stage-rail > div { min-height: 70px; padding: 13px 10px; border-right: 1px solid #edf1ef; display: grid; align-content: center; gap: 6px; text-align: center; }
.profile-stage-rail > div:last-child { border-right: 0; }
.profile-stage-rail span { width: 22px; height: 22px; margin: 0 auto; border: 1px solid #cfd9d5; border-radius: 50%; display: grid; place-items: center; color: var(--ink-500); font-size: 9px; }
.profile-stage-rail b { color: var(--ink-500); font-size: 9px; }
.profile-stage-rail .done span { border-color: var(--green-600); background: var(--green-100); color: var(--green-700); }
.profile-stage-rail .done b { color: var(--green-700); }
.profile-stage-rail .current { background: #f7f1e8; }
.profile-stage-rail .current span { border-color: var(--warm); background: var(--warm); color: #fff; }
.profile-stage-rail .current b { color: var(--amber-700); }
.profile-grid { grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr); }
.profile-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--line); padding: 1px; }
.profile-facts > div { min-height: 70px; background: #fff; padding: 13px; display: grid; align-content: center; gap: 6px; }
.profile-facts span { color: var(--ink-500); font-size: 9px; }
.profile-facts strong { color: var(--ink-900); font-size: 11px; overflow-wrap: anywhere; }
.profile-facts.compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.team-list { display: grid; }
.team-list > div { min-height: 42px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid #edf1ef; }
.team-list > div:last-child { border-bottom: 0; }
.team-list span { color: var(--ink-500); font-size: 10px; }
.team-list strong { color: var(--ink-900); font-size: 11px; text-align: right; }
.profile-needs { display: grid; gap: 18px; }
.profile-needs h4, .profile-delivery h4 { margin: 0 0 10px; color: var(--ink-700); font-size: 11px; }
.profile-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.profile-tags span { padding: 6px 8px; background: #eef3f1; color: var(--green-700); font-size: 10px; }
.profile-empty { margin: 0; color: var(--ink-500); font-size: 10px; }
.profile-note { padding-top: 16px; border-top: 1px solid #edf1ef; }
.profile-note p { margin: 0; color: var(--ink-700); font-size: 11px; line-height: 1.7; }
.profile-risk-list { display: grid; }
.profile-risk-list > button { border: 0; border-bottom: 1px solid #edf1ef; background: #fff; min-height: 54px; padding: 9px 0; display: grid; grid-template-columns: 9px 1fr auto; align-items: center; gap: 10px; text-align: left; }
.profile-risk-list > button:last-child { border-bottom: 0; }
.profile-risk-list strong, .profile-risk-list small { display: block; }
.profile-risk-list strong { color: var(--ink-900); font-size: 11px; }
.profile-risk-list small { color: var(--ink-500); font-size: 9px; margin-top: 4px; }
.profile-risk-list time { color: var(--ink-500); font-size: 9px; white-space: nowrap; }
.risk-dot { width: 8px; height: 8px; border-radius: 50%; background: #aab8b4; }
.risk-dot.overdue { background: var(--red); }
.risk-dot.today { background: var(--warm); }
.risk-dot.soon { background: var(--blue-700); }
.profile-delivery { display: grid; grid-template-columns: 1.3fr .7fr; gap: 28px; padding: 20px; }
.profile-delivery > div:first-child > button { width: 100%; border: 0; border-bottom: 1px solid #edf1ef; background: #fff; min-height: 52px; display: grid; grid-template-columns: 72px 1fr auto; align-items: center; gap: 12px; text-align: left; }
.profile-delivery > div:first-child > button:last-child { border-bottom: 0; }
.profile-delivery > div:first-child > button strong { color: var(--ink-900); font-size: 11px; }
.profile-delivery > div:first-child > button small { color: var(--ink-500); font-size: 9px; }
.profile-timeline { display: grid; }
.profile-timeline > div { display: grid; grid-template-columns: 116px 12px 1fr; gap: 12px; min-height: 66px; }
.profile-timeline time { padding-top: 2px; color: var(--ink-500); font-size: 9px; }
.profile-timeline > div > span { position: relative; width: 8px; height: 8px; border: 2px solid #8bb4a9; border-radius: 50%; margin-top: 3px; }
.profile-timeline > div > span::after { content: ""; position: absolute; top: 8px; left: 2px; width: 1px; height: 48px; background: #dfe7e3; }
.profile-timeline > div:last-child > span::after { display: none; }
.profile-timeline strong { color: var(--ink-900); font-size: 11px; }
.profile-timeline p { margin: 5px 0 0; color: var(--ink-700); font-size: 10px; line-height: 1.5; }
.profile-timeline small { display: block; margin-top: 4px; color: var(--ink-500); font-size: 9px; }

.account-profile { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; padding-bottom: 20px; margin-bottom: 20px; border-bottom: 1px solid var(--line); }
.account-profile strong, .account-profile span { display: block; }
.account-profile strong { color: var(--ink-900); font-size: 13px; }
.account-profile span { color: var(--ink-500); font-size: 10px; margin-top: 5px; }
.account-password { border: 0; padding: 0; margin: 0; }

.public-site { min-height: 100vh; overflow: hidden; background: #fff; color: #202b29; }
.public-hero { position: relative; overflow: hidden; background: #f7f9f8; color: #202b29; }
.public-hero-stage { position: relative; width: min(1420px, 100%); margin: 0 auto; display: grid; place-items: center; overflow: hidden; }
.public-hero-visual { width: 100%; height: clamp(380px, 56svh, 680px); overflow: hidden; background: #1d2825; }
.public-hero-image { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center 52%; }
.public-hero-shade { display: none; }
.public-nav { position: relative; z-index: 1; max-width: 1420px; margin: 0 auto; padding: 9px 32px; display: flex; justify-content: space-between; align-items: center; gap: 24px; background: #fff; }
.public-brand { display: flex; align-items: center; gap: 8px; min-width: 0; }
.public-brand img { width: 59px; height: 29px; object-fit: contain; background: transparent; padding: 0; flex: 0 0 auto; filter: none; }
.public-brand-copy { display: grid; align-content: center; min-width: 0; min-height: 29px; }
.public-brand strong, .public-brand span { display: block; }
.public-brand strong { color: var(--ink-900); font-size: 21px; line-height: 29px; font-weight: 700; white-space: nowrap; }
.public-brand span { margin-top: 3px; color: var(--ink-500); font-size: 8px; line-height: 1.2; }
.public-nav-links { display: flex; align-items: center; gap: 22px; margin-left: auto; }
.public-nav-links a { color: var(--ink-500); font-size: 10px; text-decoration: none; white-space: nowrap; }
.public-nav-links a:hover, .public-nav-links a:focus-visible { color: var(--green-700); }
.public-access { display: flex; gap: 8px; flex: 0 0 auto; }
.public-access button { height: 36px; min-width: 108px; border: 1px solid var(--line); padding: 0 12px; font-size: 10px; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.public-access .access-staff { background: #fff; color: var(--green-700); border-color: #a5beb6; }
.public-access .access-owner { background: #f5ead9; color: #795631; border-color: #d8b27b; font-weight: 700; }
.public-access .access-other { background: #eaf2ef; color: var(--ink-900); border-color: #c3d4ce; }
.public-access .access-contact { background: #b97820; color: #fff; border-color: #b97820; }
.public-access button:hover { background: var(--green-700); border-color: var(--green-700); color: #fff; }
.public-access .access-owner:hover { background: #a97843; border-color: #a97843; }
.public-hero-content { position: absolute; z-index: 1; inset: auto 32px; width: min(1280px, calc(100% - 64px)); margin: auto; padding: 36px 40px; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(290px, .65fr); gap: 48px; align-items: center; box-sizing: border-box; background: rgba(248, 250, 249, .72); border: 1px solid rgba(255,255,255,.78); box-shadow: 0 16px 44px rgba(16,35,30,.16); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.public-hero-main > p { margin: 0 0 14px; color: #9a7345; font-size: 11px; font-weight: 700; }
.public-hero-main h1 { max-width: 850px; margin: 0; color: var(--ink-900); font-size: 36px; line-height: 1.3; font-weight: 650; letter-spacing: 0; }
.public-hero-main > span { display: block; max-width: 700px; margin-top: 16px; color: var(--ink-500); font-size: 13px; line-height: 1.8; }
.public-hero-highlights { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 22px; }
.public-hero-highlights span { color: var(--green-700); font-size: 10px; font-weight: 700; }
.public-hero-highlights span::before { content: ""; display: inline-block; width: 5px; height: 5px; margin: 0 7px 2px 0; background: #c39a66; }
.public-hero-actions { display: flex; gap: 10px; margin-top: 23px; }
.btn.public-primary { border-color: #c69c65; background: #c69c65; color: #18231f; padding: 11px 18px; }
.btn.public-secondary { border-color: rgba(255,255,255,.64); background: rgba(14,31,27,.3); color: #fff; padding: 11px 18px; }
.public-hero-aside { padding-left: 28px; border-left: 1px solid #dce6e2; }
.public-hero-aside small { color: #9a7345; font-size: 9px; font-weight: 700; }
.public-hero-aside strong { display: block; margin-top: 12px; color: var(--ink-900); font-size: 23px; line-height: 1.5; }
.public-hero-aside p { margin: 15px 0 0; color: var(--ink-500); font-size: 11px; line-height: 1.8; }
.public-hero-link { display: inline-flex; align-items: center; gap: 9px; margin-top: 21px; border: 0; border-bottom: 1px solid #a97843; background: transparent; color: #8a6237; padding: 0 0 6px; font-size: 11px; font-weight: 700; }
.public-hero-link span { font-size: 14px; }
.public-hero-note { display: inline-block; margin-top: 21px; color: #8a6237; font-size: 10px; line-height: 1.6; }
.public-hero-stats { max-width: 1420px; margin: 0 auto; padding: 18px 32px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: #dfe8e4; }
.public-hero-stats > div { min-width: 0; padding: 15px 19px; background: #fff; }
.public-hero-stats span, .public-hero-stats strong, .public-hero-stats small { display: block; }
.public-hero-stats span { color: var(--ink-500); font-size: 10px; }
.public-hero-stats strong { margin-top: 7px; color: var(--ink-900); font-size: 20px; line-height: 1.25; }
.public-hero-stats small { margin-top: 5px; color: #9a7345; font-size: 9px; }
.public-stat-values { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.public-stat-values strong { margin-top: 6px; font-size: 19px; }
.public-stat-values strong small { margin: 0 0 3px; color: var(--ink-500); font-size: 9px; font-weight: 500; }
.public-warranty-values { display: flex; align-items: baseline; gap: 18px; }
.public-warranty-values strong { margin-top: 7px; color: var(--ink-900); font-size: 20px; line-height: 1.25; white-space: nowrap; }
.public-next { max-width: 1420px; margin: 0 auto; padding: 13px 32px 16px; color: var(--ink-500); font-size: 10px; }
.public-portfolio { max-width: 100%; margin: 0 auto; padding: 38px 0 58px; }
.public-section-heading { max-width: 1420px; margin: 0 auto 22px; padding: 0 32px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px 40px; align-items: end; }
.public-section-heading > span { grid-column: 1 / -1; color: #9a7345; font-size: 10px; font-weight: 700; }
.public-section-heading h2 { font-size: 27px; }
.public-section-heading p { margin: 0; color: var(--ink-500); font-size: 11px; line-height: 1.7; justify-self: end; }
.portfolio-category-layout { max-width: 1420px; margin: 0 auto; padding: 0 32px; display: grid; gap: 16px; }
.portfolio-owner-row { min-width: 0; }
.portfolio-general-row { min-width: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.portfolio-category { min-width: 0; overflow: hidden; border: 1px solid #e1e9e5; background: #f8faf9; }
.portfolio-viewport { width: 100%; overflow: hidden; }
.portfolio-track { display: flex; gap: 14px; width: max-content; padding: 0 7px; }
.portfolio-track.is-playing { animation: portfolio-scroll 56s linear infinite; }
.portfolio-track.is-playing:hover, .portfolio-track.is-playing:focus-within, .portfolio-track.is-playing.is-interacting { animation-play-state: paused; }
.portfolio-item { position: relative; width: clamp(190px, 20vw, 270px); aspect-ratio: 4 / 5; flex: 0 0 auto; overflow: hidden; border: 0; background: #1d2825; color: #fff; padding: 0; text-align: left; }
.concept-badge { position: absolute; top: 10px; left: 10px; z-index: 2; padding: 5px 7px; background: rgba(18, 28, 25, .72); color: rgba(255, 255, 255, .92); font-size: 9px; line-height: 1; border: 1px solid rgba(255, 255, 255, .28); pointer-events: none; }
.portfolio-item img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .35s ease; }
.portfolio-item img, .portfolio-detail-dialog img, .portfolio-gallery img, .supplier-detail-dialog img { -webkit-touch-callout: none; user-select: none; -webkit-user-drag: none; }
.portfolio-item:hover img, .portfolio-item:focus-visible img { transform: scale(1.02); }
.portfolio-item-copy { position: absolute; left: 0; right: 0; bottom: 0; height: 40%; min-height: 0; box-sizing: border-box; padding: 10px 19px 8px; background: rgba(16, 27, 24, .40); display: grid; align-content: end; gap: 3px; overflow: hidden; color: #fff; }
.portfolio-item-copy small { color: #dfbb83; font-size: 9px; }
.portfolio-item-copy strong { font-size: 14px; line-height: 1.45; }
.portfolio-item-copy > span { color: rgba(255,255,255,.7); font-size: 10px; line-height: 1.5; }
.public-portfolio-empty { max-width: 1420px; margin: 0 auto; padding: 50px 32px; color: var(--ink-500); font-size: 12px; }
.public-auth-backdrop { z-index: 50; background: rgba(9, 20, 18, .72); }
.public-auth-dialog { width: min(500px, 100%); max-height: min(700px, 90vh); overflow-y: auto; background: #f7f9f8; box-shadow: 0 24px 80px rgba(0,0,0,.28); }
.owner-service-choice-dialog { width: min(520px, 100%); }
.owner-service-choice-dialog .public-auth-dialog-header { min-height: 52px; padding: 10px 14px; }
.owner-service-choice-dialog .public-auth-dialog-brand { gap: 9px; }
.owner-service-choice-dialog .public-auth-dialog-brand img { width: 68px; height: 29px; }
.owner-service-choice-dialog .public-auth-dialog-brand strong { font-size: 10px; }
.owner-service-choice-dialog .public-auth-dialog-brand span { margin-top: 2px; font-size: 7px; }
.owner-service-choice-dialog .public-auth-dialog-body { padding: 12px 14px 13px; }
.public-auth-dialog-header { min-height: 64px; padding: 12px 16px; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; gap: 14px; background: #fff; }
.public-auth-dialog-brand { display: flex; align-items: center; gap: 12px; }
.public-auth-dialog-brand img { width: 78px; height: 33px; object-fit: contain; filter: none; }
.public-auth-dialog-brand strong, .public-auth-dialog-brand span { display: block; }
.public-auth-dialog-brand strong { font-size: 13px; }
.public-auth-dialog-brand span { margin-top: 3px; color: var(--ink-500); font-size: 9px; }
.public-auth-dialog-body { padding: 22px; }
.public-auth-heading { margin-bottom: 16px; }
.public-auth-heading > span { color: #9a7345; font-size: 9px; font-weight: 700; }
.public-auth-heading h2 { margin: 7px 0 6px; font-size: 21px; }
.public-auth-heading p { margin: 0; color: var(--ink-500); font-size: 11px; line-height: 1.7; }
.owner-service-choice-heading { margin-bottom: 14px; }
.owner-service-choice-heading h2 { margin-top: 0; font-size: 22px; letter-spacing: 0; }
.owner-service-choice-heading p { font-size: 10px; color: var(--ink-500); }
.owner-service-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.owner-service-choice-card { min-width: 0; min-height: 170px; padding: 13px 12px 10px; border: 1px solid #b8c1bd; border-radius: 6px; background: #fff; color: var(--ink-900); text-align: center; cursor: pointer; display: flex; flex-direction: column; align-items: center; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.owner-service-choice-card:hover, .owner-service-choice-card:focus-visible { border-color: var(--green-700); box-shadow: 0 12px 28px rgba(16,35,30,.1); outline: none; transform: translateY(-2px); }
.owner-service-choice-icon { display: block; width: 47px; height: 34px; margin-bottom: 6px; object-fit: contain; object-position: center; border: 0; border-radius: 0; background: transparent; }
.profile-tab-panels > [hidden], .delivery-tab-panel[hidden] { display: none !important; }
.profile-tabbar, .delivery-tabbar { display: flex; gap: 4px; margin: 0 0 14px; border-bottom: 1px solid var(--line); overflow-x: auto; }
.profile-tabbar button, .delivery-tabbar button { min-height: 40px; padding: 0 14px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--ink-500); white-space: nowrap; }
.profile-tabbar button.active, .delivery-tabbar button.active { border-bottom-color: var(--green-700); color: var(--green-700); font-weight: 700; }
.dashboard-secondary { margin-top: 16px; }
.dashboard-secondary > summary { cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 18px; color: var(--ink-900); font-weight: 700; }
.dashboard-secondary > summary::-webkit-details-marker { display: none; }
.dashboard-secondary[open] > summary { border-bottom: 1px solid var(--line); }
.owner-service-choice-card strong { font-size: 18px; line-height: 1.2; }
.owner-service-choice-card em { margin-top: 6px; font-style: normal; font-size: 10px; line-height: 1.4; }
.owner-service-choice-description { margin-top: 5px; color: var(--ink-700); font-size: 9px; line-height: 1.45; }
.owner-service-choice-card b { display: block; width: 100%; box-sizing: border-box; margin-top: auto; padding: 7px 9px; border-radius: 4px; color: #fff; background: var(--green-700); font-size: 10px; line-height: 1.3; }
.villa-service-card b { background: #b96c13; }
.initialization-entry { display: grid; gap: 10px; padding: 18px; border-left: 3px solid var(--warm); background: #fff8ec; color: var(--ink-700); }
.initialization-entry strong { color: var(--ink-900); font-size: 13px; }
.initialization-entry p { margin: 0; font-size: 11px; line-height: 1.7; }
.initialization-entry .btn { justify-self: start; text-decoration: none; }
.privacy-view-link { display: inline; border: 0; padding: 0; background: transparent; color: var(--green-700); font: inherit; text-decoration: underline; cursor: pointer; }
.privacy-view-link:hover, .privacy-view-link:focus-visible { color: var(--amber-700); }
.privacy-backdrop { z-index: 60; }
.privacy-modal { width: min(780px, 100%); }
.privacy-modal-body { max-height: min(620px, 62vh); overflow-y: auto; color: var(--ink-700); font-size: 12px; line-height: 1.8; }
.privacy-modal-body p { margin: 0 0 12px; }
.privacy-modal-body h4 { margin: 20px 0 7px; color: var(--ink-900); font-size: 14px; }
.privacy-modal-body ul { margin: 0 0 12px; padding-left: 20px; }
.staff-login-intro { display: grid; grid-template-columns: minmax(0, 1fr) 220px; align-items: stretch; gap: 24px; margin-bottom: 22px; }
.staff-login-intro .public-auth-heading { margin-bottom: 0; }
.collaboration-login-entry { min-height: 108px; border: 0; padding: 0; background: transparent; color: var(--ink-900); text-align: left; }
.collaboration-login-entry:hover { background: transparent; }
.collaboration-login-entry:focus-visible { outline: 3px solid rgba(31, 93, 78, .24); outline-offset: 2px; }
.collaboration-login-entry span, .collaboration-login-entry strong, .collaboration-login-entry small { display: block; }
.collaboration-login-entry span { color: #9a7345; font-size: 9px; font-weight: 700; }
.collaboration-login-entry strong { margin-top: 9px; font-size: 24px; line-height: 1.2; }
.collaboration-login-entry small { margin-top: 7px; color: var(--ink-500); font-size: 11px; font-weight: 400; line-height: 1.7; }
.collaboration-login-entry small b { color: var(--green-700); font-size: 14px; font-weight: 700; }
.public-auth-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.public-auth-form.single-column { grid-template-columns: 1fr; }
.public-auth-form .public-submit { grid-column: 1 / -1; min-height: 44px; margin-top: 3px; }
.collaboration-register-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.partner-registration-dialog { width: min(860px, 100%); max-height: min(800px, 90vh); }
.partner-registration-dialog .public-auth-dialog-body { padding: 20px 24px 24px; }
.partner-registration-dialog .public-auth-heading { margin-bottom: 18px; }
.partner-registration-dialog .collaboration-register-form { display: block; }
.partner-stepper { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); border: 1px solid var(--line); background: #fff; }
.partner-stepper button { min-width: 0; min-height: 62px; padding: 9px 8px; border: 0; border-right: 1px solid var(--line); background: #fff; color: var(--ink-500); text-align: left; cursor: pointer; }
.partner-stepper button:last-child { border-right: 0; }
.partner-stepper b, .partner-stepper span { display: block; }
.partner-stepper b { color: #9a7345; font-size: 9px; }
.partner-stepper span { margin-top: 5px; font-size: 10px; line-height: 1.35; }
.partner-stepper button.active { background: var(--green-700); color: #fff; }
.partner-stepper button.active b { color: #dfbb83; }
.partner-stepper button.done { background: #eef4f1; color: var(--green-700); }
.partner-stepper button:focus-visible { position: relative; z-index: 1; outline: 3px solid rgba(31, 93, 78, .24); outline-offset: -3px; }
.partner-registration-step { display: none; min-width: 0; padding: 22px 0 18px; }
.partner-registration-step.active { display: block; }
.partner-step-heading { margin-bottom: 18px; display: grid; grid-template-columns: 38px minmax(0, 1fr); align-items: start; gap: 12px; }
.partner-step-heading > span { width: 38px; height: 38px; display: grid; place-items: center; background: #eef4f1; color: var(--green-700); font-size: 10px; font-weight: 700; }
.partner-step-heading h3 { margin: 0; font-size: 17px; }
.partner-step-heading p { margin: 5px 0 0; color: var(--ink-500); font-size: 10px; line-height: 1.65; }
.partner-business-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.partner-business-card { min-width: 0; cursor: pointer; }
.partner-business-card input, .partner-subject-switch input { position: absolute; opacity: 0; pointer-events: none; }
.partner-business-card > span { min-height: 148px; padding: 16px 14px; border: 1px solid #d8e3de; display: flex; flex-direction: column; background: #fff; transition: border-color .18s ease, background .18s ease, transform .18s ease; }
.partner-business-card b, .partner-business-card strong, .partner-business-card small { display: block; }
.partner-business-card b { color: #9a7345; font-size: 9px; }
.partner-business-card strong { margin-top: 20px; font-size: 12px; line-height: 1.45; }
.partner-business-card small { margin-top: 7px; color: var(--ink-500); font-size: 9px; line-height: 1.65; }
.partner-business-card:has(input:checked) > span { border-color: var(--green-700); background: #eef4f1; }
.partner-business-card:hover > span { transform: translateY(-2px); }
.partner-business-card:focus-within > span { outline: 3px solid rgba(31, 93, 78, .24); outline-offset: 2px; }
.partner-subject-switch { margin-bottom: 16px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid #bfd0c9; }
.partner-subject-switch label { cursor: pointer; }
.partner-subject-switch span { min-height: 46px; display: grid; place-items: center; border-right: 1px solid #bfd0c9; background: #fff; color: var(--ink-700); font-size: 11px; font-weight: 700; }
.partner-subject-switch label:last-child span { border-right: 0; }
.partner-subject-switch label:has(input:checked) span { background: var(--green-700); color: #fff; }
.partner-subject-switch label:focus-within span { outline: 3px solid rgba(31, 93, 78, .24); outline-offset: -3px; }
.partner-profile-grid, .partner-capability-grid, .partner-mode-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.partner-profile-grid > .full, .partner-capability-grid > .full, .partner-mode-fields > .full { grid-column: 1 / -1; }
.partner-subject-fields { display: none; grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.partner-subject-fields.active { display: grid; }
.partner-subject-fields > .full { grid-column: 1 / -1; }
.partner-dynamic-list { display: grid; gap: 12px; }
.partner-dynamic-section { display: none; border: 1px solid var(--line); background: #fff; }
.partner-dynamic-section.active { display: block; }
.partner-dynamic-section > header { min-height: 58px; padding: 13px 15px; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; gap: 16px; background: #f8faf9; }
.partner-dynamic-section > header span { font-size: 12px; font-weight: 700; }
.partner-dynamic-section > header small { color: var(--ink-500); font-size: 9px; line-height: 1.5; text-align: right; }
.partner-capability-grid { padding: 15px; }
.partner-mode-card { border-top: 1px solid var(--line); }
.partner-dynamic-section > header + .partner-mode-card { border-top: 0; }
.partner-mode-card > summary { min-height: 64px; padding: 11px 15px; list-style: none; cursor: pointer; }
.partner-mode-card > summary::-webkit-details-marker { display: none; }
.partner-mode-card > summary label { min-height: 42px; display: flex; align-items: center; gap: 11px; cursor: pointer; }
.partner-mode-card > summary input { width: 18px; height: 18px; accent-color: var(--green-700); }
.partner-mode-card > summary strong, .partner-mode-card > summary small { display: block; }
.partner-mode-card > summary strong { font-size: 11px; }
.partner-mode-card > summary small { margin-top: 4px; color: var(--ink-500); font-size: 9px; line-height: 1.55; }
.partner-mode-card > summary:focus-visible { outline: 3px solid rgba(31, 93, 78, .24); outline-offset: -3px; }
.partner-mode-fields { display: none; padding: 15px; border-top: 1px solid var(--line); background: #fbfdfc; }
.partner-mode-fields.active { display: grid; }
.partner-no-modes { display: none; padding: 24px; border: 1px dashed #c5d3cd; color: var(--ink-500); font-size: 10px; text-align: center; }
.partner-no-modes.active { display: block; }
.partner-proof-upload { padding: 20px; border: 1px dashed #b9cbc4; background: #fbfdfc; display: grid; gap: 9px; }
.partner-proof-upload label { font-size: 12px; font-weight: 700; }
.partner-proof-upload input { width: 100%; min-height: 46px; padding: 9px; border: 1px solid var(--line); background: #fff; }
.partner-proof-upload small { color: var(--ink-500); font-size: 9px; line-height: 1.65; }
.partner-submit-summary { margin-top: 12px; padding: 15px 17px; border-left: 3px solid #9a7345; display: grid; gap: 4px; background: #fff8ec; }
.partner-submit-summary strong { font-size: 11px; }
.partner-submit-summary span { color: var(--ink-500); font-size: 9px; line-height: 1.6; }
.partner-wizard-actions { min-height: 58px; padding-top: 14px; border-top: 1px solid var(--line); display: grid; grid-template-columns: minmax(96px, auto) 1fr minmax(96px, auto); align-items: center; gap: 12px; background: #f7f9f8; }
.partner-wizard-actions > span { color: var(--ink-500); font-size: 10px; text-align: center; }
.partner-wizard-actions .btn:last-child { grid-column: 3; }
.customer-registration-dialog { width: min(820px, 100%); max-height: min(800px, 90vh); }
.customer-registration-dialog .public-auth-dialog-body { min-width: 0; padding: 20px 24px 0; }
.customer-registration-dialog .public-auth-heading { margin-bottom: 18px; }
.customer-registration-wizard { min-width: 0; display: block; }
.customer-registration-stepper { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--line); background: #fff; }
.customer-registration-stepper button { min-width: 0; min-height: 62px; padding: 9px 11px; border: 0; border-right: 1px solid var(--line); display: grid; align-content: center; gap: 4px; background: #fff; color: var(--ink-500); text-align: left; }
.customer-registration-stepper button:last-child { border-right: 0; }
.customer-registration-stepper button:not(:disabled) { cursor: pointer; }
.customer-registration-stepper button[aria-current="step"] { background: var(--green-700); color: #fff; }
.customer-registration-stepper button:focus-visible { position: relative; z-index: 1; outline: 3px solid rgba(31, 93, 78, .24); outline-offset: -3px; }
.customer-registration-stepper b { color: #9a7345; font-size: 9px; }
.customer-registration-stepper button[aria-current="step"] b { color: #dfbb83; }
.customer-registration-stepper span { min-width: 0; overflow-wrap: anywhere; font-size: 10px; line-height: 1.4; }
.customer-registration-step { min-width: 0; min-height: 330px; padding: 22px 0 18px; }
.registration-step-heading { margin-bottom: 18px; display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 12px; }
.registration-step-heading > span { width: 38px; height: 38px; display: grid; place-items: center; background: #eef4f1; color: var(--green-700); font-size: 10px; font-weight: 700; }
.registration-step-heading h3 { margin: 0; font-size: 17px; }
.registration-step-heading p { margin: 5px 0 0; color: var(--ink-500); font-size: 10px; line-height: 1.65; }
.registration-form-grid { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.registration-form-grid > .full { grid-column: 1 / -1; }
.registration-kind-switch { margin: 0 0 18px; padding: 0; border: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.registration-kind-switch legend { grid-column: 1 / -1; margin-bottom: 6px; font-size: 11px; font-weight: 700; }
.registration-kind-switch label, .registration-choice-card { position: relative; min-width: 0; cursor: pointer; }
.registration-kind-switch input, .registration-choice-card input { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.registration-kind-switch label > span, .registration-choice-card > span { pointer-events: none; }
.registration-kind-switch label > span { min-height: 78px; padding: 14px 16px; border: 1px solid #d4dfda; display: grid; align-content: center; gap: 5px; background: #fff; }
.registration-kind-switch strong, .registration-kind-switch small { display: block; }
.registration-kind-switch strong { font-size: 12px; }
.registration-kind-switch small { color: var(--ink-500); font-size: 9px; line-height: 1.5; }
.registration-kind-switch label:has(input:checked) > span, .registration-choice-card:has(input:checked) > span { border-color: var(--green-700); background: #eef4f1; box-shadow: inset 0 0 0 1px var(--green-700); }
.registration-kind-switch label:focus-within > span, .registration-choice-card:focus-within > span { outline: 3px solid rgba(31, 93, 78, .24); outline-offset: 2px; }
.registration-fixed-project, .registration-activation-summary { margin-bottom: 16px; padding: 16px 18px; border-left: 3px solid #9a7345; display: grid; gap: 5px; background: #fff8ec; }
.registration-fixed-project span, .registration-activation-summary span { color: #9a7345; font-size: 9px; font-weight: 700; }
.registration-fixed-project strong, .registration-activation-summary strong { font-size: 14px; }
.registration-fixed-project small, .registration-activation-summary p { margin: 0; color: var(--ink-500); font-size: 10px; line-height: 1.65; }
.registration-choice-section, .registration-source { min-width: 0; margin: 0; padding: 0; border: 0; }
.registration-choice-section + .registration-choice-section, .registration-choice-section + .registration-source { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
.registration-choice-section legend, .registration-source legend { margin-bottom: 10px; color: var(--ink-900); font-size: 11px; font-weight: 700; }
.registration-service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.registration-priority-grid, .registration-source-primary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.registration-choice-card > span { min-height: 50px; padding: 10px 9px; border: 1px solid #d8e3de; display: grid; place-items: center; background: #fff; color: var(--ink-700); font-size: 10px; line-height: 1.45; text-align: center; overflow-wrap: anywhere; }
.registration-source-secondary { min-height: 45px; margin-top: 10px; padding: 10px 12px; display: flex; align-items: center; flex-wrap: wrap; gap: 8px 16px; background: #f2f6f4; }
.registration-source-secondary label { display: inline-flex; align-items: center; gap: 7px; color: var(--ink-700); font-size: 10px; cursor: pointer; }
.registration-source-secondary input { width: 16px; height: 16px; accent-color: var(--green-700); }
.registration-source-secondary p { margin: 0; color: var(--ink-500); font-size: 10px; }
.registration-source > .field { margin-top: 12px; }
.registration-field-error { display: block; margin-top: 5px; color: #9f2f2f; font-size: 9px; line-height: 1.5; }
.registration-live-status { min-height: 18px; color: #9f2f2f; font-size: 10px; line-height: 1.6; }
.registration-review { margin-bottom: 18px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--line); background: var(--line); gap: 1px; }
.registration-review > div { min-width: 0; padding: 12px 14px; display: grid; gap: 4px; background: #fff; }
.registration-review span { color: var(--ink-500); font-size: 8px; }
.registration-review strong { color: var(--ink-900); font-size: 10px; line-height: 1.55; overflow-wrap: anywhere; }
.customer-registration-actions { position: sticky; z-index: 3; bottom: 0; min-height: 62px; margin: 0 -28px; padding: 10px 28px max(10px, env(safe-area-inset-bottom)); border-top: 1px solid var(--line); box-shadow: 0 -9px 24px rgba(16, 42, 35, .07); display: grid; grid-template-columns: minmax(96px, auto) 1fr minmax(96px, auto); align-items: center; gap: 12px; background: #f7f9f8; }
.customer-registration-actions > span { color: var(--ink-500); font-size: 10px; text-align: center; }
.customer-registration-actions .btn:last-child { grid-column: 3; }
.registration-maintenance { padding: 24px; border-left: 3px solid #9a7345; display: grid; gap: 6px; background: #fff8ec; }
.registration-maintenance strong { font-size: 13px; }
.registration-maintenance span { color: var(--ink-500); font-size: 10px; line-height: 1.6; }
.partner-management-body { padding: 18px; }
.partner-management-filters { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.partner-management-filters label { min-width: 0; display: grid; gap: 6px; }
.partner-management-filters span { color: var(--ink-500); font-size: 9px; font-weight: 700; }
.partner-management-filters select { width: 100%; min-height: 40px; border: 1px solid var(--line); padding: 8px 10px; background: #fff; color: var(--ink-700); font-size: 10px; }
.partner-directory-groups { margin-top: 16px; display: grid; gap: 10px; }
.partner-directory-group { border: 1px solid var(--line); background: #fff; }
.partner-directory-group > summary { min-height: 68px; padding: 13px 15px; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; cursor: pointer; }
.partner-directory-group > summary::-webkit-details-marker, .partner-subsection > summary::-webkit-details-marker { display: none; }
.partner-directory-group > summary > div { min-width: 0; display: flex; align-items: center; gap: 12px; }
.partner-directory-group > summary > div > span { width: 34px; height: 34px; flex: 0 0 auto; display: grid; place-items: center; background: #eef4f1; color: var(--green-700); font-size: 9px; font-weight: 700; }
.partner-directory-group > summary strong, .partner-directory-group > summary small { display: block; }
.partner-directory-group > summary strong { font-size: 12px; }
.partner-directory-group > summary small { margin-top: 4px; color: var(--ink-500); font-size: 9px; line-height: 1.45; }
.partner-directory-group > summary > b { color: var(--green-700); font-size: 10px; white-space: nowrap; }
.partner-directory-group[open] > summary { border-bottom: 1px solid var(--line); background: #f8faf9; }
.partner-directory-group > summary:focus-visible, .partner-subsection > summary:focus-visible { outline: 3px solid rgba(31, 93, 78, .24); outline-offset: -3px; }
.partner-directory-list { padding: 12px; display: grid; gap: 12px; }
.partner-profile-card { border: 1px solid #d5e0db; background: #fff; }
.partner-profile-card > header { padding: 15px 16px; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; }
.partner-profile-card > header > div:last-child { display: grid; justify-items: end; gap: 8px; }
.partner-profile-card > header span, .partner-profile-card > header h4, .partner-profile-card > header p { display: block; }
.partner-profile-card > header > div:first-child > span { color: #9a7345; font-size: 9px; font-weight: 700; }
.partner-profile-card > header h4 { margin: 6px 0 0; font-size: 15px; }
.partner-profile-card > header p { margin: 5px 0 0; color: var(--ink-500); font-size: 10px; }
.partner-detail-facts { padding: 13px 16px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.partner-detail-facts div { min-width: 0; }
.partner-detail-facts span, .partner-detail-facts strong { display: block; }
.partner-detail-facts span { color: var(--ink-500); font-size: 8px; }
.partner-detail-facts strong { margin-top: 4px; color: var(--ink-700); font-size: 10px; line-height: 1.55; overflow-wrap: anywhere; }
.partner-review-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
.partner-review-actions .row-action + .row-action { margin-left: 0; }
.partner-review-line { padding: 12px 16px; border-top: 1px solid #e8eeeb; display: grid; grid-template-columns: minmax(170px, 1fr) auto auto; align-items: center; gap: 12px; background: #fbfdfc; }
.partner-review-line span, .partner-review-line strong { display: block; }
.partner-review-line span { color: var(--ink-500); font-size: 8px; }
.partner-review-line strong { margin-top: 3px; font-size: 10px; }
.partner-profile-review { border-bottom: 1px solid var(--line); }
.partner-applications { padding: 12px; display: grid; gap: 10px; background: #f5f8f6; }
.partner-application-card { border: 1px solid #dbe5e0; background: #fff; }
.partner-application-card > header { padding: 13px 15px; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; }
.partner-application-card > header span { color: #9a7345; font-size: 8px; font-weight: 700; }
.partner-application-card > header h5 { margin: 4px 0 0; font-size: 12px; }
.partner-application-card > header p { margin: 4px 0 0; color: var(--ink-500); font-size: 9px; }
.partner-subsection { border-top: 1px solid var(--line); }
.partner-subsection > summary { min-height: 46px; padding: 10px 15px; list-style: none; display: flex; justify-content: space-between; align-items: center; background: #fbfdfc; color: var(--ink-700); font-size: 10px; font-weight: 700; cursor: pointer; }
.partner-subsection > summary span { color: var(--ink-500); font-size: 9px; font-weight: 400; }
.partner-subsection > div { padding: 10px; display: grid; gap: 8px; }
.partner-mode-review, .partner-document-review, .partner-review-history article { padding: 12px; border: 1px solid #e1e9e5; background: #fff; }
.partner-mode-review > header { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.partner-mode-review > header strong, .partner-mode-review > header span { display: block; }
.partner-mode-review > header strong { font-size: 10px; }
.partner-mode-review > header div > span { margin-top: 3px; color: var(--ink-500); font-size: 8px; line-height: 1.5; }
.partner-mode-review > .partner-detail-facts { padding: 11px 0; }
.partner-document-review { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto; align-items: center; gap: 12px; }
.partner-document-review strong, .partner-document-review span { display: block; }
.partner-document-review strong { font-size: 10px; }
.partner-document-review span { margin-top: 3px; color: var(--ink-500); font-size: 8px; }
.partner-review-history { margin: 0 12px 12px; border: 1px solid var(--line); }
.partner-review-history article { display: grid; grid-template-columns: minmax(160px, .35fr) minmax(0, 1fr); gap: 14px; }
.partner-review-history article strong, .partner-review-history article span { display: block; }
.partner-review-history article strong { font-size: 10px; }
.partner-review-history article span, .partner-review-history article p { color: var(--ink-500); font-size: 8px; }
.partner-review-history article p { margin: 0; line-height: 1.6; }
.source-attribution { grid-column: 1 / -1; margin: 0; padding: 14px; border: 1px solid var(--line); background: #fbfdfc; }
.source-attribution legend { padding: 0 6px; color: var(--ink-900); font-size: 13px; font-weight: 700; }
.source-select-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.source-select-field { min-width: 0; }
.source-note-field { grid-column: 1 / -1; }
.source-select-field label { display: block; margin-bottom: 5px; color: var(--ink-700); font-size: 10px; font-weight: 700; }
.source-select-field select, .source-select-field input { width: 100%; }
.source-select-field select:disabled, .source-select-field input:disabled { background: #f2f5f3; color: var(--ink-500); cursor: not-allowed; }
.business-selector { position: relative; }
.business-help { margin-top: 7px; border-left: 3px solid #9a7345; background:#fff8ec; padding:10px 12px; display:grid; gap:3px; color:var(--ink-700); }
.business-help strong { font-size:11px; }
.business-help span { color:var(--ink-500); font-size:10px; line-height:1.6; }
.auth-entry-actions { flex-wrap:wrap; justify-content:flex-end; }
.biometric-login-entry { width: 100%; margin-top: 12px; padding: 12px 0 0; border: 0; border-top: 1px solid var(--line); background: transparent; color: var(--ink-900); text-align: left; }
.biometric-login-entry strong, .biometric-login-entry span { display: block; }
.biometric-login-entry strong { font-size: 13px; font-weight: 700; }
.biometric-login-entry span { margin-top: 4px; color: var(--ink-500); font-size: 10px; line-height: 1.6; }
.biometric-login-entry:hover strong { color: var(--green-700); }
.biometric-login-entry:focus-visible { outline: 3px solid rgba(31, 93, 78, .24); outline-offset: 3px; }
.biometric-device-section { margin-top: 18px; }
.biometric-device-section p { margin: 7px 0 12px; color: var(--ink-500); font-size: 11px; line-height: 1.7; }
.project-business-links { margin-bottom:18px; display:flex; flex-wrap:wrap; gap:8px; }
.public-auth-switch { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; gap: 14px; }
.public-auth-switch span, .public-auth-note { color: var(--ink-500); font-size: 10px; }
.public-auth-switch button { border: 0; background: transparent; color: var(--green-700); padding: 4px 0; font-size: 11px; font-weight: 700; }
.public-auth-note { margin: 16px 0 0; }
.portfolio-detail-backdrop { z-index: 55; background: rgba(8, 18, 16, .82); }
.portfolio-detail-dialog { position: relative; width: min(1120px, 100%); max-height: 92vh; overflow-y: auto; display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(320px, .55fr); background: #fff; }
.portfolio-detail-close { position: absolute; top: 12px; right: 12px; z-index: 2; width: 36px; height: 36px; border: 1px solid rgba(255,255,255,.58); background: rgba(15,29,26,.68); color: #fff; font-size: 22px; }
.portfolio-detail-media { min-height: 520px; background: #18231f; }
.portfolio-detail-media img { width: 100%; height: 100%; min-height: 520px; display: block; object-fit: cover; }
.portfolio-detail-copy { padding: 48px 34px; align-self: center; }
.portfolio-detail-copy > span { color: #9a7345; font-size: 10px; font-weight: 700; }
.portfolio-detail-copy h2 { margin: 13px 0 0; font-size: 25px; line-height: 1.45; }
.portfolio-detail-copy h3 { margin: 10px 0 0; color: var(--ink-500); font-size: 13px; font-weight: 600; }
.portfolio-detail-copy p { margin: 24px 0 0; color: var(--ink-700); font-size: 12px; line-height: 1.9; }
.portfolio-detail-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 22px; }
.portfolio-detail-tags span { border: 1px solid var(--line); padding: 6px 8px; color: var(--ink-500); font-size: 9px; }
.public-footer { min-height: 76px; background: #f4f7f5; color: var(--ink-900); padding: 18px 24px; display: flex; align-items: center; justify-content: center; text-align: center; }
.public-footer-links { display: flex; align-items: center; justify-content: center; gap: 26px; flex-wrap: nowrap; }
.public-footer-links a { color: var(--green-700); font-size: 10px; line-height: 1.5; text-decoration: none; white-space: nowrap; }
.public-footer-links a:hover, .public-footer-links a:focus-visible { color: var(--ink-900); text-decoration: underline; }
.public-trust-section { max-width: 1420px; margin: 0 auto; padding: 44px 32px 58px; border-top: 1px solid #e1e9e5; }
.public-trust-heading { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 40px; align-items: end; }
.public-trust-heading > span { grid-column: 1 / -1; color: #9a7345; font-size: 10px; font-weight: 700; }
.public-trust-heading h2 { margin: 0; color: var(--ink-900); font-size: 26px; }
.public-trust-heading p { margin: 0; color: var(--ink-500); font-size: 11px; line-height: 1.7; }
.public-trust-grid { margin-top: 22px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.public-trust-grid article { min-width: 0; padding: 21px 20px 22px; border: 1px solid #e1e9e5; background: #fbfcfb; }
.public-trust-grid article > span, .public-trust-grid article > strong, .public-trust-grid article > p, .public-trust-grid article > small { display: block; }
.public-trust-grid article > span { color: #9a7345; font-size: 9px; font-weight: 700; }
.public-trust-grid article > strong { margin-top: 9px; color: var(--ink-900); font-size: 15px; line-height: 1.45; }
.public-trust-grid article > p { margin: 10px 0 0; color: var(--ink-500); font-size: 11px; line-height: 1.8; }
.public-trust-grid article > small { margin-top: 16px; color: #9a7345; font-size: 9px; }
@keyframes portfolio-scroll { to { transform: translateX(calc(-50% - 7px)); } }
@media (prefers-reduced-motion: reduce) { .portfolio-track.is-playing { animation: none; } }
@media (max-width: 767px) {
  .public-hero-stats { grid-template-columns: 1fr; padding: 12px 16px; gap: 1px; }
  .public-hero-stats > div { padding: 13px 15px; }
  .public-trust-section { padding: 34px 16px 46px; }
  .public-trust-heading { grid-template-columns: 1fr; gap: 8px; }
  .public-trust-heading > span { grid-column: auto; }
  .public-trust-heading h2 { font-size: 22px; }
  .public-trust-grid { grid-template-columns: 1fr; gap: 9px; }
  .public-hero-note { margin-top: 12px; }
  .commercial-table { min-width: 0; table-layout: fixed; }
  .commercial-table th:nth-child(4), .commercial-table td:nth-child(4),
  .commercial-table th:nth-child(n+5), .commercial-table td:nth-child(n+5) { display: none; }
  table.is-wide-table { min-width: 0; table-layout: fixed; }
  table.is-wide-table th:nth-child(n+4), table.is-wide-table td:nth-child(n+4) { display: none; }
  table.is-wide-table th:nth-child(1), table.is-wide-table td:nth-child(1) { width: 30%; }
  table.is-wide-table th:nth-child(2), table.is-wide-table td:nth-child(2) { width: 36%; }
  table.is-wide-table th:nth-child(3), table.is-wide-table td:nth-child(3) { width: 34%; }
}
.service-page { min-height: 100vh; display: grid; place-content: center; gap: 28px; padding: 30px; text-align: center; background: #eef2ef; }
.service-page img { width: min(132px, 42vw); aspect-ratio: 1; margin: 0 auto; background: transparent; padding: 0; object-fit: contain; filter: drop-shadow(0 3px 7px rgba(20,42,36,.2)); }
.service-page span { color: var(--green-600); font-size: 10px; font-weight: 700; }
.service-page h1 { margin: 10px 0 0; font-size: 25px; }
.service-page p { color: var(--ink-500); font-size: 11px; }

.client-header { padding-bottom: 0; }
.client-header-top { display: flex; justify-content: space-between; align-items: start; gap: 20px; }
.client-welcome-mark { display: grid; gap: 6px; padding-top: 2px; }
.client-welcome-mark span { color: #d8b47c; font-size: 9px; font-weight: 700; }
.client-welcome-mark strong { color: #fff; font-size: 15px; font-weight: 650; }
.client-last-login { color: #c6d9d3 !important; font-size: 10px !important; font-weight: 500 !important; line-height: 1.5; }
.client-survey-header { background: #173f38; }
.client-survey-header .client-welcome-mark span { color: #e5c38e; }
.client-survey-header .portal-brand { margin-top: 22px; color: #d4e4df; }
.client-survey-header h1 { max-width: 980px; }
.client-account-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.client-account-actions button { border: 1px solid rgba(255,255,255,.3); background: transparent; color: #d8e8e3; padding: 8px 10px; font-size: 10px; }
.client-nav { display: flex; gap: 2px; margin-top: 18px; }
.client-nav button { border: 0; border-bottom: 2px solid transparent; background: transparent; color: #9fbab2; padding: 11px 14px; font-size: 11px; }
.client-nav button.active { border-bottom-color: #d2a96f; color: #fff; }
.client-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; padding: 1px; background: var(--line); }
.client-summary > div { background: #fff; min-height: 74px; padding: 13px; display: grid; align-content: center; gap: 6px; }
.client-summary span { color: var(--ink-500); font-size: 9px; }
.client-summary strong { color: var(--ink-900); font-size: 12px; }
.client-disclosure, .client-form-disclosure { padding: 0; overflow: hidden; }
.client-disclosure > summary, .client-form-disclosure > summary { min-height: 78px; padding: 17px 19px; display: grid; grid-template-columns: minmax(0, 1fr) 28px; align-items: center; gap: 18px; list-style: none; cursor: pointer; }
.client-disclosure > summary::-webkit-details-marker, .client-form-disclosure > summary::-webkit-details-marker, .client-workflow-disclosure > summary::-webkit-details-marker, .client-workflow-list details > summary::-webkit-details-marker { display: none; }
.client-disclosure > summary > div, .client-form-disclosure > summary > div { min-width: 0; }
.client-disclosure > summary span, .client-form-disclosure > summary span { display: block; color: #9a7345; font-size: 9px; font-weight: 700; }
.client-disclosure > summary h2, .client-form-disclosure > summary h2 { margin: 5px 0 0; font-size: 15px; line-height: 1.45; }
.client-disclosure > summary p, .client-form-disclosure > summary p { margin: 5px 0 0; color: var(--ink-500); font-size: 10px; line-height: 1.65; overflow-wrap: anywhere; }
.client-disclosure > summary > b, .client-form-disclosure > summary > b { position: relative; width: 28px; height: 28px; border: 1px solid #cbd8d3; }
.client-disclosure > summary > b::before, .client-disclosure > summary > b::after, .client-form-disclosure > summary > b::before, .client-form-disclosure > summary > b::after { content: ""; position: absolute; inset: 50% auto auto 50%; width: 10px; height: 1px; background: var(--green-700); transform: translate(-50%, -50%); }
.client-disclosure > summary > b::after, .client-form-disclosure > summary > b::after { transform: translate(-50%, -50%) rotate(90deg); transition: transform .18s ease; }
.client-disclosure[open] > summary, .client-form-disclosure[open] > summary { border-bottom: 1px solid var(--line); background: #fbfdfc; }
.client-disclosure[open] > summary > b::after, .client-form-disclosure[open] > summary > b::after { transform: translate(-50%, -50%) rotate(0); }
.client-disclosure > summary:focus-visible, .client-form-disclosure > summary:focus-visible, .client-workflow-disclosure > summary:focus-visible, .client-workflow-list details > summary:focus-visible { outline: 3px solid rgba(31, 93, 78, .24); outline-offset: -3px; }
.client-disclosure-body { padding: 19px; }
.client-project-summary .client-disclosure-body { padding: 0; }
.client-project-summary .client-summary { margin: 0; border: 0; }
.customer-login-panel td strong, .customer-login-panel td small { display: block; }
.customer-login-panel td small { margin-top: 4px; color: var(--ink-500); font-size: 9px; }
.client-preview-note { margin-bottom: 12px; border-left: 3px solid var(--warm); background: #fbf4e9; color: var(--amber-700); padding: 11px 13px; font-size: 10px; line-height: 1.6; }
.client-inline-form { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.client-inline-form .btn { margin-top: 12px; }
.client-section-heading span, .rating-form-heading span { color: #9a7345; font-size: 9px; font-weight: 700; }
.client-section-heading h2 { margin: 6px 0; }
.client-section-heading p { margin: 0; color: var(--ink-500); font-size: 10px; line-height: 1.7; }
.client-rating-form { margin-top: 18px; padding: 18px; background: #f7faf8; border-left: 3px solid var(--green-600); }
.rating-form-heading { display: flex; justify-content: space-between; align-items: start; gap: 16px; margin-bottom: 16px; }
.rating-form-heading > div { display: grid; gap: 5px; }
.rating-form-heading strong { color: var(--ink-900); font-size: 12px; line-height: 1.6; }
.rating-choice-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
.rating-choice { min-width: 0; cursor: pointer; }
.rating-choice input { position: absolute; opacity: 0; pointer-events: none; }
.rating-choice > span, .rating-choice > small { display: block; text-align: center; }
.rating-choice > span { min-height: 38px; padding: 9px 4px; border: 1px solid #cad7d2; background: #fff; color: var(--ink-700); font-size: 15px; font-weight: 700; }
.rating-choice > small { margin-top: 5px; color: var(--ink-500); font-size: 8px; line-height: 1.35; }
.rating-choice input:checked + span { border-color: var(--green-700); background: var(--green-700); color: #fff; box-shadow: 0 0 0 2px rgba(30,77,70,.12); }
.client-rating-form > .btn { margin-top: 14px; }
.rating-privacy-note { margin: 10px 0 0; color: var(--ink-500); font-size: 9px; line-height: 1.7; }
.client-rating-list-heading { display: flex; justify-content: space-between; gap: 12px; margin-top: 22px; padding-bottom: 9px; border-bottom: 1px solid var(--line); }
.client-rating-list-heading strong { font-size: 12px; }
.client-rating-list-heading span { color: var(--ink-500); font-size: 9px; }
.client-rating-records article { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px 18px; padding: 16px 0; border-bottom: 1px solid #edf1ef; }
.client-rating-records article:last-child { border-bottom: 0; }
.client-rating-records article > div:first-child span, .client-rating-records article > div:first-child strong { display: block; }
.client-rating-records article > div:first-child span { color: var(--ink-500); font-size: 9px; }
.client-rating-records article > div:first-child strong { margin-top: 4px; font-size: 13px; }
.client-rating-score { display: flex; align-items: center; gap: 5px; color: var(--green-700); }
.client-rating-score b { font-size: 24px; line-height: 1; }
.client-rating-score span { font-size: 8px; line-height: 1.4; }
.client-rating-records article > p { grid-column: 1 / -1; margin: 0; color: var(--ink-700); font-size: 10px; line-height: 1.75; }
.client-rating-records footer { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.client-rating-records footer > span { color: var(--ink-500); font-size: 9px; }
.rating-history { margin-top: 8px; font-size: 9px; }
.client-rating-records .rating-history { grid-column: 1 / -1; }
.rating-history summary { color: var(--green-700); cursor: pointer; font-weight: 700; }
.rating-history > div { margin-top: 8px; border-left: 2px solid #dce6e2; padding-left: 10px; }
.rating-history p { margin: 0; padding: 7px 0; display: grid; gap: 3px; border-bottom: 1px solid #edf1ef; }
.rating-history p:last-child { border-bottom: 0; }
.rating-history p span, .rating-history p em { color: var(--ink-500); font-style: normal; font-weight: 400; line-height: 1.55; }
.rating-score-pill { display: inline-flex; min-width: 46px; justify-content: center; padding: 5px 8px; background: var(--green-100); color: var(--green-700); font-size: 10px; font-weight: 700; }
.rating-score-pill.low { background: #f5e4df; color: #9a4537; }
.ratings-table { min-width: 1080px; }

.modal-backdrop { position: fixed; inset: 0; background: rgba(12, 31, 28, .48); display: grid; place-items: center; z-index: 20; padding: 20px; }
.modal { background: #fff; width: min(680px, 100%); max-height: min(820px, 92vh); overflow-y: auto; box-shadow: 0 20px 70px rgba(0,0,0,.2); }
.modal-header { display: flex; justify-content: space-between; gap: 15px; align-items: start; padding: 22px 24px; border-bottom: 1px solid var(--line); }
.modal-header h3 { margin: 0; font-size: 18px; }
.modal-header p { color: var(--ink-500); font-size: 11px; margin: 6px 0 0; }
.modal-close { background: transparent; border: 0; color: var(--ink-500); font-size: 20px; line-height: 1; }
.modal-body { padding: 24px; }
.modal-footer { padding: 16px 24px; border-top: 1px solid var(--line); display: flex; justify-content: flex-end; gap: 9px; }
.detail-backdrop { background: rgba(10, 22, 19, .72); z-index: 45; }
.detail-modal { width: min(760px, 100%); }
.detail-modal .modal-body { padding: 20px 24px 24px; }
.detail-modal-copy { display: grid; gap: 8px; color: var(--ink-700); font-size: 13px; line-height: 1.8; }
.detail-modal-copy p { margin: 0; font-size: 24px; line-height: 1.35; color: var(--ink-900); font-weight: 700; }
.detail-modal-copy small { color: var(--ink-500); font-size: 11px; }
.detail-stat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 16px 0 4px; }
.detail-stat { border: 1px solid var(--line); background: #fbfdfc; padding: 12px; }
.detail-stat span, .detail-stat small { display: block; color: var(--ink-500); font-size: 10px; line-height: 1.45; }
.detail-stat strong { display: block; margin-top: 4px; color: var(--ink-900); font-size: 17px; line-height: 1.35; }
.detail-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 2px; }
.detail-section { margin-top: 18px; }
.detail-section h3 { margin: 0 0 10px; color: var(--ink-900); font-size: 14px; }
.detail-list { display: grid; gap: 8px; }
.detail-row { border: 1px solid var(--line); background: #fbfdfc; padding: 12px; }
.detail-row strong, .detail-row span, .detail-row p { display: block; }
.detail-row span, .detail-row p { color: var(--ink-500); font-size: 12px; line-height: 1.6; }
.detail-row p { margin: 6px 0 0; }
.kpi-detail { width: 100%; border: 1px solid var(--line); background: #fff; cursor: pointer; text-align: left; }
.kpi-detail:hover,.kpi-detail:focus-visible { border-color: var(--green-700); box-shadow: 0 8px 20px rgba(18,43,37,.08); outline: none; }
@media (max-width: 640px) { .detail-stat-grid { grid-template-columns: 1fr; } }
.portal { min-height: 100vh; background: #f2f5f3; }
.portal-header { background: var(--green-900); color: white; padding: 20px 18px 22px; }
.portal-logo-wrap { width: min(360px, 100%); aspect-ratio: 1622 / 320; padding: 0; background: transparent; margin-bottom: 13px; }
.portal-logo-wrap picture, .portal-logo-wrap img { width: 100%; height: 100%; display: block; }
.portal-logo-wrap img { object-fit: contain; filter: drop-shadow(0 0 1px rgba(255,255,255,.86)) drop-shadow(0 3px 5px rgba(0,0,0,.5)); }
.portal-brand { color: #c5dfd7; font-size: 11px; letter-spacing: 0; }
.portal-header h1 { max-width: 900px; margin: 14px 0 7px; font-size: 24px; line-height: 1.4; font-weight: 650; }
.portal-header p { max-width: 980px; margin: 0; color: #b9d0c9; font-size: 12px; line-height: 1.7; }
.portal-content { max-width: 740px; margin: 0 auto; padding: 15px 14px 32px; }
.client-portal .portal-content { max-width: 920px; }
.portal-card { background: #fff; padding: 19px 16px; border: 1px solid var(--line); margin-bottom: 12px; }
.portal-card h2 { font-size: 15px; margin-bottom: 4px; }
.portal-card .subtitle { font-size: 11px; margin-bottom: 16px; }
.portal .form-grid { grid-template-columns: 1fr; gap: 13px; }
.portal .check-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.survey-intro { margin-bottom: 12px; padding: 17px 18px; border: 1px solid #d9e4df; background: #fff; display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.survey-intro > div { display: grid; gap: 5px; }
.survey-intro span { color: #9a7345; font-size: 9px; font-weight: 700; }
.survey-intro strong { color: var(--ink-900); font-size: 13px; }
.survey-intro p { max-width: 440px; margin: 0; color: var(--ink-500); font-size: 10px; line-height: 1.7; }
.survey-intro b { color: #a35d4e; }
.customer-survey-form .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.customer-survey-form .field:has([required]) label::after { content: " *"; color: #a35d4e; }
.survey-card { padding: 23px 22px; }
.survey-section-title { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 13px; align-items: start; margin-bottom: 19px; padding-bottom: 15px; border-bottom: 1px solid #e7ece9; }
.survey-section-title > span { width: 38px; height: 38px; display: grid; place-items: center; background: #eaf2ef; color: var(--green-700); font-size: 11px; font-weight: 700; }
.survey-section-title h2 { margin: 0; font-size: 16px; }
.survey-section-title p { margin: 5px 0 0; color: var(--ink-500); font-size: 10px; line-height: 1.65; }
.customer-survey-form .choice { min-height: 44px; }
.customer-survey-form .detail-group { background: #f8faf9; }
.portal-submit-area { margin-top: 18px; padding: 25px 20px 21px; border: 1px solid #e1d3bd; background: #fbf7f0; text-align: center; }
.portal-submit-area > span { display: block; color: #8a6237; font-size: 11px; font-weight: 700; }
.portal-submit-area > p { margin: 11px 0 0; color: var(--ink-500); font-size: 10px; line-height: 1.7; }
.portal-submit { display: block; width: min(520px, 100%); margin: 13px auto 0; border-color: #c79b60; background: #c79b60; color: #17241f; padding: 13px 18px; font-size: 13px; }
.portal-submit:hover { border-color: #a97943; background: #a97943; color: #fff; }
.consent-row { display: flex; align-items: flex-start; gap: 9px; margin: 4px 2px 14px; color: var(--ink-700); font-size: 11px; line-height: 1.6; }
.consent-row input { width: 15px; height: 15px; margin: 1px 0 0; accent-color: var(--green-700); flex: 0 0 auto; }
.client-contract-payment > h3 { margin: 24px 0 10px; color: var(--ink-900); font-size: 13px; }
.client-section-heading > span { color: var(--amber-700); font-size: 9px; font-weight: 700; }
.client-section-heading h2 { margin-top: 5px; }
.client-section-heading p { margin: 6px 0 0; color: var(--ink-500); font-size: 10px; line-height: 1.7; }
.payment-overview { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 17px; border: 1px solid var(--line); }
.payment-overview > div { min-width: 0; padding: 13px 14px; border-right: 1px solid var(--line); }
.payment-overview > div:last-child { border-right: 0; }
.payment-overview span, .payment-overview strong { display: block; }
.payment-overview span { color: var(--ink-500); font-size: 9px; }
.payment-overview strong { margin-top: 6px; color: var(--ink-900); font-size: 14px; overflow-wrap: anywhere; }
.contract-list { border-top: 1px solid var(--line); }
.contract-list article { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: center; padding: 13px 0; border-bottom: 1px solid var(--line); }
.contract-list article span, .contract-list article strong, .contract-list article small { display: block; }
.contract-list article > div:first-child span { color: var(--ink-500); font-size: 9px; }
.contract-list article > div:first-child strong { margin-top: 3px; color: var(--ink-900); font-size: 12px; }
.contract-list article > div:first-child small, .contract-sign-state small { margin-top: 4px; color: var(--ink-500); font-size: 9px; }
.contract-sign-state { text-align: right; }
.payment-stage-groups { display: grid; gap: 13px; }
.payment-stage-groups > section { border-top: 2px solid #b9d4cc; background: #f8faf9; }
.payment-stage-groups > section:nth-child(3) { border-top-color: #c8ad82; }
.payment-stage-groups > section > header { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 13px; border-bottom: 1px solid var(--line); }
.payment-stage-groups > section > header span, .payment-stage-groups > section > header strong { display: block; }
.payment-stage-groups > section > header span { color: var(--ink-500); font-size: 8px; }
.payment-stage-groups > section > header strong { margin-top: 3px; color: var(--ink-900); font-size: 11px; }
.payment-stage-groups > section > header > b { color: var(--green-700); font-size: 11px; }
.payment-progress-list article { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto minmax(96px, auto); gap: 10px 12px; align-items: center; padding: 12px 13px; border-bottom: 1px solid #e6ece9; background: #fff; }
.payment-progress-list article:last-child { border-bottom: 0; }
.payment-progress-list article > div:nth-child(2) strong, .payment-progress-list article > div:nth-child(2) small { display: block; }
.payment-progress-list article > div:nth-child(2) strong { color: var(--ink-900); font-size: 11px; }
.payment-progress-list article > div:nth-child(2) small { margin-top: 4px; color: var(--ink-500); font-size: 9px; line-height: 1.5; }
.payment-progress-list article > div:nth-child(2) p { margin: 5px 0 0; color: var(--red); font-size: 9px; }
.payment-progress-list article > b { color: var(--ink-900); font-size: 11px; white-space: nowrap; }
.payment-sequence { width: 28px; height: 28px; display: grid; place-items: center; background: var(--green-100); color: var(--green-700); font-size: 10px; font-weight: 700; }
.payment-state { display: grid; justify-items: end; gap: 5px; text-align: right; }
.payment-state small { color: var(--ink-500); font-size: 8px; }
.payment-state a { color: var(--green-700); font-size: 9px; font-weight: 700; text-decoration: none; }
.payment-state .row-action { font-size: 10px; }
.payment-security-note { margin: 13px 0 0; color: var(--ink-500); font-size: 9px; line-height: 1.7; }
.payment-master-board { margin-bottom: 18px; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow); }
.payment-master-board > .kpi-grid { padding: 16px 18px 0; }
.payment-master-board > .table-wrap { border-top: 1px solid var(--line); }
.payment-master-board table { min-width: 900px; }
.payment-stage-panel table { min-width: 1120px; }
.payment-stage-panel .panel-header > strong { color: var(--green-700); font-size: 12px; white-space: nowrap; }
.profile-payment-section { margin-bottom: 18px; }
.profile-payment-stage-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.profile-payment-stage { min-width: 0; padding: 18px 20px 20px; }
.profile-payment-stage + .profile-payment-stage { border-left: 1px solid var(--line); }
.profile-payment-stage > header { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; }
.profile-payment-stage > header span { color: var(--ink-500); font-size: 9px; }
.profile-payment-stage > header h4 { margin: 4px 0 0; color: var(--ink-900); font-size: 13px; }
.profile-payment-stage > header > strong { color: var(--green-700); font-size: 11px; white-space: nowrap; }
.profile-payment-stage .progress-line { margin: 13px 0 6px; height: 6px; }
.profile-payment-list { display: grid; }
.profile-payment-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 11px 0; border-bottom: 1px solid #edf1ef; }
.profile-payment-row:last-child { border-bottom: 0; }
.profile-payment-row strong, .profile-payment-row small { display: block; }
.profile-payment-row strong { color: var(--ink-900); font-size: 11px; }
.profile-payment-row small { margin-top: 4px; color: var(--ink-500); font-size: 9px; line-height: 1.5; }
.profile-payment-row > b { color: var(--ink-900); font-size: 10px; white-space: nowrap; }
.profile-payment-empty { padding: 18px 0 4px; color: var(--ink-500); font-size: 10px; }
.portal-foot { color: var(--ink-500); font-size: 10px; text-align: center; line-height: 1.7; padding: 14px 20px 20px; }
.progress-line { height: 8px; background: #e8eeeb; margin: 15px 0 8px; overflow: hidden; }
.progress-line span { display: block; width: var(--progress); height: 100%; background: var(--green-600); }
.client-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.client-item { border: 1px solid var(--line); padding: 12px; min-width: 0; }
.client-item strong, .client-item span { display: block; }
.client-item strong { font-size: 12px; }
.client-item span, .client-item p { color: var(--ink-500); font-size: 10px; line-height: 1.6; }
.client-item p { margin: 7px 0 0; }
.client-list { display: grid; }
.client-row { display: flex; justify-content: space-between; align-items: start; gap: 14px; padding: 12px 0; border-bottom: 1px solid #edf1ef; }
.client-row:last-child { border-bottom: 0; }
.client-row strong, .client-row span { display: block; }
.client-row strong { font-size: 12px; }
.client-row span, .client-row time { color: var(--ink-500); font-size: 10px; line-height: 1.6; }
.report-client-row > div { min-width: 0; }
.report-photo { width: 128px; height: 82px; object-fit: cover; border: 1px solid var(--line); flex: 0 0 auto; }
@media (max-width: 520px) {
  .portal-logo-wrap { width: 92px; aspect-ratio: 1; }
  .report-client-row { display: grid; }
  .report-photo { width: 100%; height: auto; max-height: 220px; }
  .public-hero-actions { flex-direction: column; align-items: stretch; max-width: 220px; }
  .public-hero-content h1 { font-size: 26px; }
  .survey-intro { display: block; padding: 15px; }
  .survey-intro p { margin-top: 9px; }
  .customer-survey-form .form-grid { grid-template-columns: 1fr; }
  .survey-card { padding: 18px 15px; }
  .survey-section-title { grid-template-columns: 32px minmax(0, 1fr); gap: 10px; }
  .survey-section-title > span { width: 32px; height: 32px; }
  .public-contact-dialog { padding: 34px 20px 24px; }
  .public-contact-dialog h2 { font-size: 23px; }
  .contact-location-grid, .contact-person-grid { grid-template-columns: 1fr; }
  .contact-person-card { grid-template-columns: minmax(0, 1fr) 70px; padding: 16px; }
  .contact-person-name { font-size: 20px; }
  .supplier-detail-dialog { grid-template-columns: 1fr; }
  .supplier-detail-media, .supplier-detail-media img, .supplier-detail-media video { min-height: 240px; max-height: 42vh; }
  .supplier-detail-copy { padding: 27px 20px; }
  .profile-identity { display: block; }
  .profile-stage-status { margin-top: 16px; padding: 12px 0 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.18); text-align: left; }
  .profile-facts { grid-template-columns: 1fr; }
  .client-rating-form { padding: 15px 12px; }
  .rating-choice-grid { gap: 3px; }
  .rating-choice > span { min-height: 34px; padding: 7px 2px; font-size: 13px; }
  .rating-choice > small { font-size: 7px; }
  .client-rating-records footer { align-items: start; flex-direction: column; }
}

.customer-center-toolbar { margin-bottom: 16px; }
.customer-center-groups { display: grid; gap: 16px; }
.customer-project-group { padding: 0; overflow: hidden; }
.customer-project-group > summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 92px; padding: 20px 24px; cursor: pointer; list-style: none; }
.customer-project-group > summary::-webkit-details-marker { display: none; }
.customer-project-group > summary span { display: block; color: var(--accent, #9a7648); font-size: 11px; font-weight: 700; }
.customer-project-group > summary h2 { margin: 5px 0 3px; font-size: 20px; }
.customer-project-group > summary p { margin: 0; color: var(--muted); }
.customer-project-group > summary > strong { flex: 0 0 auto; font-size: 14px; }
.customer-project-group-body { display: grid; gap: 12px; padding: 0 16px 16px; border-top: 1px solid var(--line); }
.customer-center-card { padding: 18px; border: 1px solid var(--line); background: var(--surface, #fff); }
.customer-center-card.archived { opacity: .78; }
.customer-center-card > header, .customer-center-card > footer { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.customer-center-card > header span { color: var(--accent, #9a7648); font-size: 11px; font-weight: 700; }
.customer-center-card > header h3 { margin: 4px 0; font-size: 18px; }
.customer-center-card > header p { margin: 0; color: var(--muted); }
.customer-center-detail-link { margin-top: 4px; }
.customer-center-detail-link .detail-title { font-size: 18px; }
.customer-center-detail-link span { color: var(--muted); font-weight: 400; }
.customer-center-stages { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 16px 0; }
.customer-center-stage { min-width: 0; padding: 10px 12px; border-left: 3px solid #caa66f; background: #f6f3ee; }
.customer-center-stage.needs-staff { border-left-color: #b5675f; background: #fbf2f1; }
.customer-center-stage b, .customer-center-stage small { display: block; overflow-wrap: anywhere; }
.customer-center-stage small { margin-top: 4px; color: var(--muted); font-size: 11px; }
.customer-center-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin-bottom: 16px; background: var(--line); }
.customer-center-facts > div { min-width: 0; padding: 12px; background: var(--surface, #fff); }
.customer-center-facts span, .customer-center-facts strong { display: block; overflow-wrap: anywhere; }
.customer-center-facts span { margin-bottom: 5px; color: var(--muted); font-size: 11px; }
.customer-center-facts strong { font-size: 13px; line-height: 1.5; }
.customer-center-card > footer { justify-content: flex-end; flex-wrap: wrap; }
.admin-requirement-editor { margin-top: 16px; border: 1px solid var(--line); background: #f7f7f5; }
.admin-requirement-editor .portal-content { width: min(1180px, 100%); margin: 0 auto; padding: 24px; }
.admin-requirement-tabs { position: sticky; top: 0; z-index: 4; margin: 0 0 16px; padding: 8px; background: rgba(247,247,245,.96); border-bottom: 1px solid var(--line); }
.danger-text { color: #a2473f !important; }

@media (max-width: 820px) {
  .customer-center-stages, .customer-center-facts { grid-template-columns: 1fr; }
  .customer-project-group > summary, .customer-center-card > header { align-items: flex-start; }
  .admin-requirement-editor .portal-content { padding: 14px; }
}

@media (max-width: 520px) {
  .customer-project-group > summary { padding: 16px; }
  .customer-project-group-body { padding: 0 10px 10px; }
  .customer-center-card { padding: 14px; }
  .customer-center-card > header, .customer-center-card > footer { display: grid; grid-template-columns: 1fr; }
  .customer-center-card > footer .btn { width: 100%; }
  .admin-requirement-editor { margin-right: -10px; margin-left: -10px; }
}
.toast { position: fixed; left: 50%; bottom: 22px; transform: translateX(-50%); z-index: 40; background: var(--green-900); color: #fff; padding: 11px 16px; box-shadow: var(--shadow); font-size: 12px; }
.pwa-update { position: fixed; right: 18px; bottom: 18px; z-index: 80; min-height: 44px; border: 0; background: var(--green-900); color: #fff; padding: 11px 16px; box-shadow: var(--shadow); font: inherit; cursor: pointer; }
.pwa-update:hover, .pwa-update:focus-visible { background: var(--green-700); outline: 2px solid #fff; outline-offset: 2px; }
.file-preview-backdrop { z-index: 70; align-items: center; background: rgba(7, 17, 15, .78); }
.file-preview-dialog { width: min(1180px, 100%); max-height: 94vh; overflow: hidden; background: #fff; box-shadow: 0 24px 80px rgba(0, 0, 0, .32); }
.file-preview-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 20px 24px; border-bottom: 1px solid var(--line); }
.file-preview-head span { color: var(--gold); font-size: 10px; font-weight: 800; letter-spacing: .14em; }
.file-preview-head h2 { margin: 5px 0 3px; font-size: 20px; }
.file-preview-head p { margin: 0; color: var(--ink-500); font-size: 11px; }
.file-preview-body { display: grid; gap: 24px; max-height: calc(94vh - 104px); overflow: auto; padding: 20px 24px 30px; background: #f3f6f4; }
.file-preview-page { min-width: 0; background: #fff; border: 1px solid var(--line); }
.file-preview-page > header { display: flex; justify-content: space-between; gap: 12px; padding: 10px 12px; border-bottom: 1px solid var(--line); }
.file-preview-page > header span { color: var(--ink-500); font-size: 10px; }
.file-preview-page picture, .file-preview-page picture img { display: block; width: 100%; }
.file-preview-page picture { padding: 12px; box-sizing: border-box; }
.file-preview-page picture img { height: auto; max-height: 74vh; object-fit: contain; background: #fff; }
.file-preview-status { display: grid; gap: 5px; padding: 18px; border-left: 3px solid var(--gold); background: #fff; }
.file-preview-status span { color: var(--ink-500); font-size: 11px; }
.file-tile-section { border-top: 1px solid var(--line); }
.file-tile-section summary { min-height: 44px; padding: 13px 15px; box-sizing: border-box; color: var(--green-700); cursor: pointer; font-size: 12px; font-weight: 700; }
.file-tile-scroll { overflow: auto; padding: 12px; border-top: 1px solid var(--line); background: #e9eeeb; }
.file-tile-grid { display: grid; grid-template-columns: repeat(var(--tile-columns), 256px); gap: 1px; width: max-content; background: #cbd4cf; }
.file-tile-grid img { display: block; width: 256px; height: auto; min-height: 64px; background: #fff; }
@media (max-width: 600px) { .file-preview-dialog { max-height: 100vh; } .file-preview-head { padding: 16px; } .file-preview-body { max-height: calc(100vh - 92px); padding: 12px; } .file-preview-page picture { padding: 6px; } }
.setting-row { min-height: 76px; padding: 15px 0; border-bottom: 1px solid #edf1ef; display: flex; justify-content: space-between; align-items: center; gap: 18px; }
.setting-row:last-child { border-bottom: 0; }
.setting-row strong, .setting-row span { display: block; }
.setting-row strong { font-size: 12px; }
.setting-row > div > span { color: var(--ink-500); font-size: 10px; margin-top: 5px; }
.segmented { display: flex; border: 1px solid var(--line); }
.segmented label { cursor: pointer; }
.segmented input { position: absolute; opacity: 0; pointer-events: none; }
.segmented span { min-width: 58px; padding: 8px 11px; text-align: center; color: var(--ink-500); font-size: 11px; }
.segmented input:checked + span { color: #fff; background: var(--green-700); }
.catalog-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 9px; }
.catalog-stats button, .catalog-stats article { min-width: 0; border: 1px solid var(--line); background: #fff; padding: 15px; text-align: left; color: var(--ink-700); }
.catalog-stats button { display: flex; justify-content: space-between; }
.catalog-stats article { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; }
.catalog-stats article small { grid-column: 1 / -1; color: var(--ink-500); font-size: 9px; }
.catalog-stats strong { color: var(--green-700); font-size: 18px; }
.catalog-group-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.catalog-manager { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.catalog-manager-groups { display: grid; gap: 28px; }
.catalog-manager-group + .catalog-manager-group { padding-top: 25px; border-top: 1px solid var(--line); }
.catalog-manager-group > header { margin-bottom: 13px; display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; }
.catalog-manager-group > header span, .catalog-manager-group > header strong { display: block; }
.catalog-manager-group > header span { color: var(--ink-900); font-size: 13px; font-weight: 700; }
.catalog-manager-group > header p { margin: 5px 0 0; color: var(--ink-500); font-size: 10px; line-height: 1.6; }
.catalog-manager-group > header strong { flex: 0 0 auto; color: var(--green-700); font-size: 10px; }
.catalog-manager-group .catalog-manager { gap: 12px; }
.portfolio-admin-categories { padding-top: 0; padding-bottom: 0; }
.portfolio-admin-category { border-bottom: 1px solid var(--line); }
.portfolio-admin-category:last-child { border-bottom: 0; }
.portfolio-admin-category > summary { min-height: 76px; cursor: pointer; list-style: none; display: grid; grid-template-columns: minmax(0, 1fr) auto 18px; align-items: center; gap: 18px; padding: 15px 18px; }
.portfolio-admin-category > summary::-webkit-details-marker { display: none; }
.portfolio-admin-category > summary:hover { background: #f7f9f8; }
.portfolio-admin-category > summary:focus-visible { outline: 2px solid var(--green-500); outline-offset: -2px; }
.portfolio-admin-category[open] > summary { background: #f7f9f8; }
.portfolio-admin-category-copy, .portfolio-admin-category-stats { min-width: 0; display: grid; gap: 4px; }
.portfolio-admin-category-copy b { color: var(--ink-900); font-size: 13px; }
.portfolio-admin-category-copy small, .portfolio-admin-category-stats small { color: var(--ink-500); font-size: 9px; line-height: 1.5; }
.portfolio-admin-category-stats { justify-items: end; text-align: right; }
.portfolio-admin-category-stats b { color: var(--green-700); font-size: 11px; }
.portfolio-admin-category-chevron { width: 8px; height: 8px; border-right: 1.5px solid var(--green-700); border-bottom: 1.5px solid var(--green-700); transform: rotate(45deg); transition: transform .18s ease; }
.portfolio-admin-category[open] .portfolio-admin-category-chevron { transform: rotate(225deg); }
.portfolio-admin-category-body { padding: 18px; border-top: 1px solid var(--line); background: #fbfcfb; }
.portfolio-admin-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.portfolio-admin-card { min-width: 0; border: 1px solid var(--line); background: #fff; }
.portfolio-admin-card > img { width: 100%; aspect-ratio: 4 / 3; display: block; object-fit: contain; background: #edf1ef; }
.portfolio-admin-card-body { padding: 14px; }
.portfolio-admin-card-meta { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.portfolio-admin-card-meta small { color: var(--ink-500); font-size: 9px; }
.portfolio-admin-card h3 { margin: 13px 0 0; font-size: 14px; line-height: 1.5; }
.portfolio-admin-card p { min-height: 34px; margin: 6px 0 13px; color: var(--ink-500); font-size: 10px; line-height: 1.7; }
.portfolio-form-preview { margin-top: 10px; display: flex; align-items: center; gap: 10px; }
.portfolio-form-preview img { width: 112px; aspect-ratio: 4 / 3; object-fit: cover; border: 1px solid var(--line); }
.portfolio-form-preview span { color: var(--ink-500); font-size: 10px; }
.portfolio-upload-preview { margin-top: 10px; display: grid; grid-template-columns: repeat(auto-fill, minmax(82px, 1fr)); gap: 8px; }
.portfolio-upload-preview[data-file-preview="portfolio-cover"] { grid-template-columns: minmax(0, 112px); }
.portfolio-upload-preview figure { min-width: 0; margin: 0; border: 1px solid var(--line); background: #f7f9f8; }
.portfolio-upload-preview img { width: 100%; aspect-ratio: 4 / 3; display: block; object-fit: contain; background: #edf1ef; }
.portfolio-upload-preview figcaption { overflow: hidden; padding: 5px 6px; color: var(--ink-500); font-size: 9px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.portfolio-upload-preview-empty { grid-column: 1 / -1; padding: 11px 12px; border: 1px dashed #cbd7d2; color: var(--ink-500); font-size: 10px; }
.catalog-section { min-width: 0; border: 1px solid var(--line); align-self: start; }
.catalog-section summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 13px 14px; color: var(--ink-900); font-size: 12px; font-weight: 700; }
.catalog-section summary::-webkit-details-marker { display: none; }
.catalog-section summary strong { color: var(--green-700); font-size: 10px; font-weight: 600; }
.catalog-section[open] summary { border-bottom: 1px solid var(--line); background: #fbfcfb; }
.catalog-section-body { padding: 14px; }
.tag-list { display: flex; flex-wrap: wrap; gap: 6px; min-height: 42px; }
.tag-list > span { display: inline-flex; align-items: center; gap: 4px; background: #f2f5f3; color: var(--ink-700); padding: 6px 7px; font-size: 10px; }
.tag-list button { border: 0; background: transparent; color: var(--ink-500); padding: 0 1px; line-height: 1; }
.density-compact .content { padding-top: 22px; }
.density-compact .panel-header, .density-compact .panel-body { padding-top: 13px; padding-bottom: 13px; }
.density-compact th, .density-compact td { padding-top: 10px; padding-bottom: 10px; }
.density-compact .form-section { padding-bottom: 15px; margin-bottom: 15px; }

/* Brand presentation and public portfolio */
.brand-logo-wrap img,
.portal-logo-wrap img,
.public-auth-dialog-brand img,
.public-footer img,
.service-page img {
  filter: drop-shadow(0 0 2px rgba(255,255,255,.96)) drop-shadow(0 0 7px rgba(255,255,255,.58)) drop-shadow(0 0 16px rgba(193,229,216,.32)) drop-shadow(0 3px 6px rgba(0,0,0,.48));
}
.public-footer img { filter: none; }
.public-hero { height: auto; min-height: 0; }
.public-hero-content { padding-top: 48px; padding-bottom: 42px; }
.public-portfolio-intro { max-width: 1420px; margin: 0 auto 42px; padding: 0 32px; }
.public-portfolio-intro > span { color: #9a7345; font-size: 10px; font-weight: 700; }
.public-portfolio-intro h2 { margin: 8px 0 0; font-size: 27px; }
.public-portfolio-intro p { max-width: 760px; margin: 9px 0 0; color: var(--ink-500); font-size: 11px; line-height: 1.7; }
.portfolio-category .public-section-heading { min-height: 96px; margin: 0; padding: 16px 19px 14px; display: block; }
.portfolio-category .public-section-heading > span { display: block; }
.portfolio-category .public-section-heading h2 { margin: 6px 0 0; font-size: 19px; line-height: 1.35; }
.portfolio-category .public-section-heading p { margin: 5px 0 0; font-size: 10px; line-height: 1.5; }
.portfolio-category .portfolio-viewport { overflow-x: auto; scrollbar-width: thin; }
.portfolio-category .portfolio-track { min-width: max-content; justify-content: flex-start; padding: 0 14px 14px; }
.portfolio-category .portfolio-item { width: clamp(180px, 19vw, 252px); aspect-ratio: 4 / 5; }
.portfolio-category .portfolio-item-copy { height: 40%; min-height: 0; padding: 10px 16px 8px; }
.supplier-category { margin-top: 16px; }
.supplier-category .portfolio-item { width: clamp(240px, 27vw, 360px); aspect-ratio: 16 / 10; }
.supplier-category .portfolio-item-copy { height: 40%; min-height: 0; padding: 10px 16px 8px; }
.supplier-disclaimer { padding: 10px 18px 16px; color: var(--ink-500); font-size: 9px; line-height: 1.6; }
.public-contact-backdrop, .supplier-detail-backdrop { z-index: 70; background: rgba(8,20,17,.78); }
.public-contact-dialog { position: relative; width: min(860px, 100%); max-height: 92vh; overflow-y: auto; background: #f8faf9; padding: 44px; }
.public-contact-dialog > span, .supplier-detail-copy > span { color: #9a7345; font-size: 9px; font-weight: 700; }
.public-contact-dialog h2 { margin: 10px 0 12px; color: var(--ink-900); font-size: 28px; line-height: 1.4; }
.public-contact-dialog > p { max-width: 700px; color: var(--ink-500); font-size: 12px; line-height: 1.9; }
.contact-location-grid, .contact-person-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; margin-top: 24px; }
.contact-location-grid article { border: 1px solid #dfe8e4; background: #fff; padding: 19px; color: var(--ink-900); }
.contact-location-grid small { display: block; color: #9a7345; font-size: 9px; }
.contact-location-grid strong, .contact-location-grid span { display: block; }
.contact-location-grid strong { margin-top: 8px; font-size: 14px; line-height: 1.55; }
.contact-location-grid span { margin-top: 5px; color: var(--ink-500); font-size: 10px; line-height: 1.6; }
.contact-person-card { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) 88px; gap: 14px; align-items: center; padding: 18px; border: 1px solid #214f47; background: #214f47; color: #fff; }
.contact-person-copy { min-width: 0; }
.contact-person-name { display: block; color: #dfb776; font-size: 22px; font-weight: 800; line-height: 1.3; }
.contact-person-phone { display: block; margin-top: 10px; color: #fff; font-size: 16px; font-weight: 750; line-height: 1.45; text-decoration: none; }
.contact-person-phone:hover, .contact-person-phone:focus-visible { color: #f1d6a9; text-decoration: underline; text-underline-offset: 4px; }
.contact-person-copy > span { display: block; margin-top: 8px; color: #bed1cb; font-size: 10px; line-height: 1.6; }
.contact-person-wechat { display: block; margin-top: 15px; color: #dfb776; font-size: 9px; font-weight: 700; }
.contact-person-qr { width: 100%; aspect-ratio: 1; display: block; object-fit: contain; background: #fff; }
@media (max-width: 520px) {
  .public-contact-dialog { padding: 34px 20px 24px; }
  .public-contact-dialog h2 { font-size: 23px; }
  .contact-location-grid, .contact-person-grid { grid-template-columns: 1fr; }
  .contact-person-card { grid-template-columns: minmax(0, 1fr) 70px; gap: 10px; padding: 16px; }
  .contact-person-name { font-size: 20px; }
  .contact-person-phone { font-size: 15px; }
}
.appointment-form { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; margin-top: 24px; padding: 20px; border: 1px solid #dfe8e4; background: #fff; }
.appointment-form .field.full, .appointment-submit { grid-column: 1 / -1; }
.appointment-submit { min-height: 44px; }
.appointment-success { padding: 24px; border: 1px solid #dfe8e4; background: #fff; }
.appointment-success > span { color: #9a7345; font-size: 10px; font-weight: 700; }
.appointment-success h2 { margin: 10px 0 8px; color: var(--ink-900); font-size: 25px; }
.appointment-success p { margin: 0; color: var(--ink-500); font-size: 13px; line-height: 1.7; }
.appointment-success-contact { display: grid; gap: 8px; margin-top: 18px; }
.appointment-success-contact a { color: var(--green-700); font-weight: 700; text-decoration: none; }
.appointment-success-qr { display: flex; gap: 12px; margin: 18px 0; }
.appointment-success-qr img { width: 112px; height: 112px; object-fit: contain; border: 1px solid #e1e9e5; }
.notification-item.unread { border-left: 3px solid #b9864f; }
.supplier-detail-dialog { position: relative; width: min(980px, 100%); max-height: 92vh; overflow-y: auto; display: grid; grid-template-columns: minmax(0,1.15fr) minmax(320px,.85fr); background: #fff; }
.supplier-detail-dialog.has-document { width: min(1180px, 100%); grid-template-columns: minmax(0,1.5fr) minmax(320px,.7fr); }
.supplier-detail-media { min-height: 460px; background: #172822; }
.supplier-detail-media img, .supplier-detail-media video { width: 100%; height: 100%; min-height: 460px; display: block; object-fit: cover; }
.supplier-detail-media.has-document { min-height: min(72vh, 720px); background: #f1f1ef; }
.supplier-document-pages { width: 100%; height: min(72vh, 720px); min-height: 560px; overflow-y: auto; overscroll-behavior: contain; background: #d9ddda; scrollbar-gutter: stable; -webkit-touch-callout: none; user-select: none; }
.supplier-preview-trace { position: sticky; top: 0; z-index: 2; padding: 9px 14px; background: rgba(24,55,48,.96); color: #fff; font-size: 9px; font-weight: 700; text-align: center; }
.supplier-document-sheet { position: relative; margin: 0; min-height: 0; background: #e7ebe8; border-bottom: 1px solid #c8d1cd; overflow: hidden; }
.supplier-document-canvas { display: block; width: 100%; height: auto; aspect-ratio: 1707 / 960; background: #e7ebe8; -webkit-touch-callout: none; user-select: none; touch-action: pan-y; }
.supplier-document-loading { position: absolute; inset: 0; display: grid; place-items: center; color: var(--ink-500); font-size: 10px; pointer-events: none; }
.supplier-document-sheet.loaded .supplier-document-loading { display: none; }
.supplier-document-pages.failed .supplier-document-canvas { opacity: .18; }
.supplier-detail-copy { padding: 44px 36px; }
.supplier-detail-copy h2 { margin: 10px 0 13px; font-size: 25px; line-height: 1.4; }
.supplier-detail-copy strong { display: block; color: var(--green-700); font-size: 12px; line-height: 1.7; }
.supplier-detail-copy p { margin: 18px 0; color: var(--ink-500); font-size: 11px; line-height: 1.9; }
.supplier-detail-copy > div { padding: 13px 0; border-top: 1px solid var(--line); color: var(--ink-700); font-size: 10px; }
.supplier-detail-copy > small { display: block; margin-top: 18px; color: #9a7345; font-size: 9px; line-height: 1.7; }
@media (max-width: 520px) {
  .supplier-detail-dialog.has-document { grid-template-columns: 1fr; }
  .supplier-detail-media.has-document { min-height: 58vh; max-height: none; }
  .supplier-document-pages { height: 58vh; min-height: 420px; }
  .supplier-preview-trace { padding: 8px 10px; font-size: 8px; }
}
.supplier-admin-media { height: 150px; overflow: hidden; background: #1d2825; }
.supplier-admin-media img, .supplier-admin-media video { width: 100%; height: 100%; display: block; object-fit: cover; }
.portfolio-category .portfolio-item-copy strong { font-size: 14px; }
.portfolio-category .portfolio-item-copy > span { font-size: 10px; }
.owner-category .public-section-heading { min-height: 96px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .7fr); gap: 6px 34px; align-items: center; }
.owner-category .public-section-heading > span { grid-column: 1 / -1; }
.owner-category .public-section-heading p { justify-self: end; margin: 0; }
.owner-category .portfolio-item { width: clamp(280px, 28vw, 380px); aspect-ratio: 16 / 10; }
.portfolio-detail-dialog { display: block; width: min(980px, 100%); height: min(92vh, 900px); max-height: 92vh; overflow: hidden; background: #121c19; }
.portfolio-detail-scroll { height: 100%; overflow-y: auto; overscroll-behavior: contain; background: #121c19; }
.portfolio-detail-copy { position: sticky; top: 0; z-index: 1; padding: 34px 40px 27px; background: rgba(18,28,25,.97); color: #fff; border-bottom: 1px solid rgba(255,255,255,.12); }
.portfolio-detail-copy > span { color: #dfbb83; }
.portfolio-detail-copy h2 { color: #fff; margin-top: 10px; }
.portfolio-detail-copy h3 { color: rgba(255,255,255,.7); }
.portfolio-detail-copy p { color: rgba(255,255,255,.76); margin-top: 15px; }
.portfolio-detail-tags span { border-color: rgba(255,255,255,.22); color: rgba(255,255,255,.72); }
.portfolio-gallery { display: grid; gap: 26px; padding: 28px; background: #121c19; }
.portfolio-gallery figure { margin: 0; background: #1d2a26; }
.portfolio-gallery figure img { width: 100%; height: auto; display: block; object-fit: contain; background: #edf1ef; }
.portfolio-gallery figure:has(figcaption b) img { max-height: none; }
.portfolio-gallery figcaption { display: grid; gap: 6px; padding: 14px 17px 17px; color: #fff; }
.portfolio-gallery figcaption b { font-size: 12px; }
.portfolio-gallery figcaption span { color: rgba(255,255,255,.62); font-size: 10px; line-height: 1.6; }
.staff-permission-preview > div, .staff-permission-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.staff-permission-preview > div span, .staff-permission-tags b { padding: 6px 8px; background: var(--green-100); color: var(--green-700); font-size: 10px; font-weight: 600; }
.staff-department-list { display: grid; gap: 8px; margin-top: 8px; }
.staff-department-choice { border: 1px solid var(--line); background: var(--surface); }
.staff-department-choice > summary { min-height: 52px; padding: 10px 12px; display: flex; align-items: center; justify-content: space-between; cursor: pointer; list-style: none; }
.staff-department-choice > summary::-webkit-details-marker { display: none; }
.staff-department-choice > summary span { display: grid; gap: 2px; }
.staff-department-choice > summary strong { font-size: 14px; }
.staff-department-choice > summary small { color: var(--muted); }
.staff-department-choice > summary b { color: var(--gold-700); font-size: 12px; }
.staff-department-choice[open] > summary { border-bottom: 1px solid var(--line); background: var(--green-100); }
.staff-role-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 10px; }
.staff-role-choice { min-width: 0; }
.staff-role-choice input { position: absolute; opacity: 0; pointer-events: none; }
.staff-role-choice span { min-height: 78px; padding: 10px; display: grid; align-content: start; gap: 5px; border: 1px solid var(--line); cursor: pointer; }
.staff-role-choice strong { font-size: 13px; }
.staff-role-choice small { color: var(--muted); line-height: 1.55; }
.staff-role-choice input:checked + span { border-color: var(--green-700); background: var(--green-100); box-shadow: inset 3px 0 0 var(--gold-600); }
.staff-role-choice input:focus-visible + span { outline: 2px solid var(--gold-600); outline-offset: 2px; }
.staff-request-list { display: grid; gap: 1px; padding: 0; }
.staff-request-row { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 17px 20px; border-bottom: 1px solid #edf1ef; }
.staff-request-row:last-child { border-bottom: 0; }
.staff-request-main { min-width: 0; display: grid; gap: 6px; }
.staff-request-main strong { color: var(--ink-900); font-size: 12px; }
.staff-request-main > span { color: var(--ink-500); font-size: 10px; }
.staff-request-actions { display: flex; align-items: center; gap: 9px; flex: 0 0 auto; }
.staff-request-actions small { color: var(--ink-500); font-size: 9px; }
.request-detail-grid { margin:4px 0 2px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
.request-detail-grid div { min-width:0; border:1px solid var(--line); background:#f8faf9; padding:7px 8px; }
.request-detail-grid dt { color:var(--ink-500); font-size:9px; }
.request-detail-grid dd { margin:3px 0 0; color:var(--ink-700); font-size:10px; line-height:1.5; overflow-wrap:anywhere; }
.staff-admin-table { min-width: 1280px; }
.staff-admin-table th:nth-child(2) { width: 300px; }
.staff-admin-table td { vertical-align: top; }
.staff-admin-table td > strong, .staff-admin-table td > small, .staff-admin-table td > .status { display: block; }
.staff-admin-table td > .status { width: max-content; margin-top: 7px; }
.staff-duty { max-width: 300px; color: var(--ink-500); line-height: 1.65; margin-top: 6px; }
.staff-load { color: var(--ink-700); white-space: nowrap; }
.staff-load b { color: var(--green-700); }
.staff-disclosure { padding: 0; overflow: hidden; }
.staff-disclosure > summary { min-height: 68px; padding: 15px 20px; display: flex; align-items: center; justify-content: space-between; gap: 18px; cursor: pointer; list-style: none; }
.staff-disclosure > summary::-webkit-details-marker { display: none; }
.staff-disclosure > summary::after { content: "+"; color: var(--green-700); font-size: 20px; font-weight: 400; }
.staff-disclosure[open] > summary::after { content: "−"; }
.staff-disclosure > summary > div { min-width: 0; }
.staff-disclosure > summary h3, .staff-disclosure > summary small { display: block; }
.staff-disclosure > summary h3 { margin: 0; font-size: 14px; }
.staff-disclosure > summary small { margin-top: 5px; color: var(--ink-500); font-size: 9px; line-height: 1.55; }
.staff-disclosure > summary > .status { margin-left: auto; flex: 0 0 auto; }
.staff-disclosure > .panel-body, .staff-disclosure > .role-architecture-groups, .staff-disclosure > .role-definition-groups, .staff-disclosure > .table-wrap { border-top: 1px solid var(--line); }
.staff-disclosure-tools { padding: 12px 18px; display: flex; justify-content: flex-end; border-top: 1px solid var(--line); background: #f7faf8; }

@media (max-width: 1080px) {
  .sidebar { width: 212px; flex-basis: 212px; }
  .content { padding-left: 24px; padding-right: 24px; }
  .grid-2, .form-layout { grid-template-columns: 1fr; }
  .choice-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .side-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .task-center-row { grid-template-columns: 104px minmax(220px, 1fr) 120px 90px auto; gap: 12px; }
  .public-hero-content { padding-top: 48px; }
  .portfolio-admin-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .public-nav { padding: 10px 20px; gap: 10px; align-items: stretch; flex-direction: column; }
  .public-access { width: 100%; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
  .public-access button { min-width: 0; }
}
@media (max-width: 760px) {
  .staff-role-choice-grid { grid-template-columns: 1fr; }
  .app-shell { display: block; }
  .sidebar { position: fixed; inset: 0 auto 0 0; transform: translateX(-100%); z-index: 15; transition: transform .2s ease; width: 246px; }
  .sidebar-compact .sidebar { width: 246px; }
  .sidebar-compact .brand h1, .sidebar-compact .brand p, .sidebar-compact .nav-label, .sidebar-compact .nav-group-label > span, .sidebar-compact .sidebar-footer { display: initial; }
  .sidebar-compact .nav-group-label { justify-content: space-between; padding: 0 14px; }
  .sidebar-compact .sidebar-footer { display: block; }
  .sidebar-compact .nav button { justify-content: flex-start; padding: 12px 14px; }
  .sidebar.open { transform: translateX(0); }
  .sidebar.open + .sidebar-scrim { display: block; position: fixed; inset: 0; z-index: 14; border: 0; background: rgba(10, 24, 21, .38); }
  .topbar { height: 64px; padding: 0 16px; }
  .mobile-menu { display: inline-flex; border: 0; background: transparent; color: var(--green-700); font-size: 20px; padding: 3px 8px 3px 0; }
  .project-select { min-width: 0; max-width: 150px; font-size: 11px; }
  .topbar-meta, .user span { display: none; }
  .topbar-actions > .btn, .role-select, .sync-state { display: none; }
  .account-switch > span { display: none; }
  .account-summary { display: none; }
  .home-return { width: 34px; padding: 0; border: 0; background: transparent; }
  .home-return b { display: none; }
  .task-indicator { min-width: 34px; width: 34px; padding: 0; border: 0; background: transparent; }
  .task-indicator > span { display: none; }
  .task-indicator b { background: var(--green-100); }
  .task-indicator.has-alert b { background: #f2dfc7; }
  .user { border: 0; margin: 0; padding: 0; }
  .content { padding: 22px 14px 92px; }
  .mobile-quickbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 12; min-height: 62px; padding: 5px 8px max(5px, env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: rgba(255,255,255,.97); display: grid; grid-template-columns: repeat(4, 1fr); }
  .mobile-quickbar button { border: 0; background: transparent; color: var(--ink-500); min-width: 0; display: grid; justify-items: center; align-content: center; gap: 3px; font-size: 9px; }
  .mobile-quickbar button b { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; color: var(--ink-700); background: #edf1ef; font-size: 9px; }
  .mobile-quickbar button.active { color: var(--green-700); font-weight: 700; }
  .mobile-quickbar button.active b { background: var(--green-700); color: #fff; }
  .page-heading { display: block; margin-bottom: 20px; }
  .heading-actions { justify-content: flex-start; margin-top: 17px; }
  h2 { font-size: 23px; }
  .kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .kpi { min-height: 100px; padding: 14px; }
  .kpi-value { font-size: 22px; margin-top: 12px; }
  .panel-header, .panel-body { padding-left: 15px; padding-right: 15px; }
  .pipeline { grid-template-columns: repeat(7, 70px); overflow-x: auto; padding-bottom: 5px; }
  .side-summary { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .field.full { grid-column: auto; }
  .check-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .choice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .client-grid { grid-template-columns: 1fr; }
  .catalog-manager { grid-template-columns: 1fr; }
  .setting-row { align-items: flex-start; flex-direction: column; }
  .segmented { width: 100%; }
  .segmented label { flex: 1; }
  .segmented span { min-width: 0; }
  .process-row { grid-template-columns: 28px 1fr; gap: 10px; }
  .process-owner { grid-column: 2; }
  .milestone-grid { grid-template-columns: 1fr; }
  .role-banner { display: block; }
  .role-actions { justify-content: flex-start; margin-top: 14px; }
  .activity-list { grid-template-columns: 1fr; }
  .modal-backdrop { padding: 0; align-items: end; }
  .modal { max-height: 94vh; }
  .task-filter-header { display: block; }
  .task-filters { justify-content: flex-start; margin-top: 12px; overflow-x: auto; flex-wrap: nowrap; padding-bottom: 3px; }
  .task-filters button { white-space: nowrap; }
  .task-center-row { grid-template-columns: 84px minmax(0, 1fr) auto; gap: 9px 12px; padding: 13px 14px; }
  .task-main { grid-column: 2 / 4; grid-row: 1; }
  .task-type { grid-column: 1; grid-row: 1; align-self: start; }
  .task-owner { grid-column: 2; grid-row: 2; }
  .task-due { grid-column: 3; grid-row: 2; text-align: right; }
  .task-handle { grid-column: 1; grid-row: 2; min-width: 0; padding: 7px 6px; }
  .message-filter-bar { display: flex; overflow-x: auto; gap: 7px; padding-bottom: 3px; }
  .message-filter-bar button { min-width: 108px; min-height: 44px; flex: 0 0 auto; }
  .message-center-row { min-height: 0; grid-template-columns: 58px minmax(0, 1fr); gap: 8px 10px; padding: 13px 12px; }
  .message-center-actions { justify-content: flex-start; }
  .message-meta { grid-column: 2; justify-items: start; grid-auto-flow: column; justify-content: start; text-align: left; }
  .message-detail-layout { grid-template-columns: 1fr; }
  .message-detail-content { padding: 17px 15px; }
  .message-detail-content dl { grid-template-columns: 1fr; }
  .message-detail-content dl > div, .message-detail-content dl > div:nth-child(2n) { border-right: 0; }
  .message-detail-main > footer { position: sticky; bottom: 62px; background: #fff; z-index: 2; }
  .message-detail-main > footer .btn { flex: 1; min-height: 44px; }
  .profile-identity { min-height: 0; padding: 18px; align-items: flex-start; }
  .profile-initial { width: 46px; height: 46px; font-size: 17px; }
  .profile-title h3 { font-size: 17px; }
  .profile-title p { line-height: 1.6; }
  .profile-stage-status { min-width: 84px; padding-left: 14px; }
  .profile-stage-status strong { font-size: 13px; }
  .profile-stage-rail { grid-template-columns: repeat(7, 82px); }
  .profile-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .profile-delivery { grid-template-columns: 1fr; gap: 20px; padding: 15px; }
  .profile-delivery > div:first-child > button { grid-template-columns: 70px 1fr; }
  .profile-delivery > div:first-child > button small { grid-column: 2; }
  .profile-timeline > div { grid-template-columns: 84px 12px 1fr; gap: 9px; }
  .account-profile { grid-template-columns: auto 1fr; }
  .account-profile .btn { grid-column: 1 / -1; width: 100%; }
  .public-hero { height: auto; min-height: 0; }
  .public-nav { padding: 10px 16px; gap: 10px; align-items: stretch; flex-direction: column; }
  .public-nav-links { display: none; }
  .public-brand img { width: 44px; height: 23px; }
  .public-brand-copy { min-height: 23px; }
  .public-brand strong { font-size: 17px; line-height: 23px; }
  .public-brand span { font-size: 5px; }
  .public-access { width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
  .public-access button { min-width: calc(50% - 3px); flex: 1; height: 36px; padding: 0 7px; font-size: 9px; }
  .public-hero-visual { height: clamp(600px, 80svh, 720px); }
  .public-hero-content { inset: auto 16px; width: calc(100% - 32px); display: block; padding: 28px 22px; }
  .public-hero-main h1 { max-width: 520px; font-size: 29px; }
  .public-hero-main > span { max-width: 510px; font-size: 12px; }
  .public-hero-aside { margin-top: 35px; padding: 27px 0 0; border-top: 1px solid #dce6e2; border-left: 0; }
  .public-next { padding: 13px 18px 16px; }
  .public-portfolio { padding: 40px 0 48px; }
  .public-section-heading { grid-template-columns: 1fr; }
  .public-section-heading { padding: 0 16px; }
  .public-section-heading > span { grid-column: auto; }
  .public-section-heading p { justify-self: start; }
  .portfolio-item { width: min(82vw, 360px); }
  .public-auth-backdrop { align-items: center; padding: 14px; }
  .public-auth-dialog { max-height: 94vh; }
  .public-auth-dialog-body { padding: 22px 18px; }
  .owner-service-choice-grid { grid-template-columns: 1fr; }
  .public-auth-form { grid-template-columns: 1fr; }
  .collaboration-register-form { grid-template-columns:1fr; }
  .partner-registration-dialog { width: 100%; height: calc(100dvh - 28px); max-height: calc(100dvh - 28px); }
  .partner-registration-dialog .public-auth-dialog-header { min-height: 64px; padding: 12px 15px; }
  .partner-registration-dialog .public-auth-dialog-body { min-width: 0; padding: 18px 15px 0; }
  .partner-registration-dialog .public-auth-heading { margin-bottom: 14px; }
  .partner-registration-dialog .public-auth-heading h2 { font-size: 21px; }
  .customer-registration-dialog { width: 100%; height: calc(100dvh - 28px); max-height: calc(100dvh - 28px); }
  .customer-registration-dialog .public-auth-dialog-header { min-height: 64px; padding: 12px 15px; }
  .customer-registration-dialog .public-auth-dialog-body { min-width: 0; padding: 18px 15px 0; }
  .customer-registration-dialog .public-auth-heading { margin-bottom: 14px; }
  .customer-registration-dialog .public-auth-heading h2 { font-size: 21px; }
  .customer-registration-stepper button { min-height: 56px; padding: 8px 5px; text-align: center; }
  .customer-registration-stepper span { font-size: 8px; }
  .customer-registration-step { min-height: 0; padding: 18px 0 92px; }
  .registration-form-grid { grid-template-columns: 1fr; }
  .registration-form-grid > .full { grid-column: auto; }
  .registration-kind-switch { grid-template-columns: 1fr 1fr; }
  .registration-kind-switch label > span { min-height: 82px; padding: 12px; }
  .registration-priority-grid, .registration-source-primary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .registration-service-grid { grid-template-columns: 1fr; }
  .registration-review { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .customer-registration-actions { margin: 0 -15px; padding-inline: 15px; }
  .partner-stepper { grid-template-columns: repeat(6, minmax(58px, 1fr)); overflow-x: auto; scrollbar-width: thin; }
  .partner-stepper button { min-width: 58px; min-height: 56px; padding: 8px 6px; }
  .partner-stepper span { font-size: 8px; }
  .partner-registration-step { padding: 18px 0 92px; }
  .partner-business-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .partner-business-card > span { min-height: 132px; padding: 13px 12px; }
  .partner-business-card strong { margin-top: 14px; }
  .partner-profile-grid, .partner-capability-grid, .partner-mode-fields, .partner-subject-fields { grid-template-columns: 1fr; }
  .partner-profile-grid > .full, .partner-capability-grid > .full, .partner-mode-fields > .full, .partner-subject-fields > .full { grid-column: auto; }
  .partner-dynamic-section > header { align-items: flex-start; }
  .partner-dynamic-section > header small { max-width: 52%; }
  .partner-wizard-actions { position: sticky; z-index: 3; bottom: 0; margin: 0 -15px; padding: 10px 15px max(10px, env(safe-area-inset-bottom)); box-shadow: 0 -9px 24px rgba(16, 42, 35, .08); }
  .partner-management-body { padding: 12px; }
  .partner-management-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .partner-directory-group > summary { align-items: flex-start; }
  .partner-profile-card > header { display: grid; }
  .partner-profile-card > header > div:last-child { justify-items: start; }
  .partner-detail-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .partner-review-line { grid-template-columns: 1fr auto; }
  .partner-review-line .partner-review-actions { grid-column: 1 / -1; justify-content: flex-start; }
  .partner-document-review { grid-template-columns: minmax(0, 1fr) auto; }
  .partner-document-review .partner-review-actions { grid-column: 1 / -1; justify-content: flex-start; }
  .partner-review-history article { grid-template-columns: 1fr; gap: 7px; }
  .source-select-grid { grid-template-columns: 1fr; }
  .public-auth-form .field.full, .public-auth-form .public-submit { grid-column: auto; }
  .request-detail-grid { grid-template-columns:1fr; }
  .portfolio-detail-backdrop { align-items: end; }
  .portfolio-detail-dialog { grid-template-columns: 1fr; max-height: 94vh; }
  .portfolio-detail-media, .portfolio-detail-media img { min-height: 260px; max-height: 46vh; }
  .portfolio-detail-copy { padding: 26px 20px 30px; }
  .portfolio-admin-grid { grid-template-columns: 1fr; }
  .portfolio-admin-category > summary { min-height: 88px; grid-template-columns: minmax(0, 1fr) 16px; gap: 6px 12px; padding: 14px; }
  .portfolio-admin-category-stats { grid-column: 1; justify-items: start; text-align: left; }
  .portfolio-admin-category-chevron { grid-column: 2; grid-row: 1 / 3; }
  .portfolio-admin-category-body { padding: 12px; }
  .portfolio-category-layout { padding: 0 16px; }
  .portfolio-general-row { grid-template-columns: 1fr; }
  .portfolio-category .public-section-heading { min-height: 0; }
  .portfolio-category .portfolio-item { width: min(68vw, 250px); }
  .public-footer { min-height: 68px; padding: 16px; }
  .owner-category .public-section-heading { display: block; }
  .owner-category .public-section-heading p { margin-top: 8px; }
  .owner-category .portfolio-item { width: min(78vw, 320px); aspect-ratio: 16 / 10; }
  .client-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .client-header-top { align-items: center; }
  .client-account-actions { gap: 5px; }
  .client-account-actions button { padding: 7px 8px; }
  .profile-payment-stage-grid { grid-template-columns: 1fr; }
  .profile-payment-stage + .profile-payment-stage { border-left: 0; border-top: 1px solid var(--line); }
  .payment-progress-list article { grid-template-columns: 28px minmax(0, 1fr) auto; }
  .payment-progress-list article > b { grid-column: 2; }
  .payment-state { grid-column: 3; grid-row: 1 / 3; }
}

@media (max-width: 520px) {
  .public-hero-actions { flex-direction: column; align-items: stretch; max-width: 220px; }
  .public-hero-content h1 { font-size: 26px; }
  .public-brand img { width: 32px; height: 21px; }
  .public-brand-copy { min-height: 21px; }
  .public-brand strong { font-size: 14px; line-height: 21px; }
  .public-access button { min-width: 92px; padding: 0 6px; }
  .public-auth-dialog-brand img { width: 78px; height: 34px; }
  .staff-login-intro { grid-template-columns: 1fr; gap: 14px; }
  .collaboration-login-entry { min-height: 92px; }
  .public-auth-switch { align-items: flex-start; }
  .profile-identity { display: block; }
  .profile-stage-status { margin-top: 16px; padding: 12px 0 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.18); text-align: left; }
  .profile-facts { grid-template-columns: 1fr; }
  .payment-overview { grid-template-columns: 1fr; }
  .payment-overview > div { border-right: 0; border-bottom: 1px solid var(--line); }
  .payment-overview > div:last-child { border-bottom: 0; }
  .contract-list article { grid-template-columns: 1fr; gap: 8px; }
  .contract-sign-state { text-align: left; }
  .profile-payment-stage { padding: 15px; }
  .profile-payment-row { grid-template-columns: minmax(0, 1fr) auto; }
  .profile-payment-row .status { grid-column: 1 / -1; width: max-content; }
}

.print-title { display: none; }

.public-hero-visual {
  height: clamp(400px, 45svh, 460px);
}
.public-hero-content {
  position: absolute;
  top: 50%;
  left: 50%;
  right: auto;
  bottom: auto;
  transform: translate(-50%, -50%);
  z-index: 2;
  width: min(1280px, calc(100% - 64px));
  max-width: 1280px;
  margin: 0;
  padding: 20px 26px;
  border: 1px solid rgba(255,255,255,.36);
  background: rgba(12, 24, 21, .32);
  box-shadow: 0 20px 50px rgba(0,0,0,.22);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: #fff;
}
.public-hero-main > p { margin-bottom: 8px; }
.public-hero-main h1 { font-size: 30px; line-height: 1.25; }
.public-hero-main > span { margin-top: 10px; font-size: 11px; line-height: 1.65; }
.public-hero-highlights { gap: 7px 16px; margin-top: 13px; }
.public-hero-highlights span { font-size: 9px; }
.public-hero-actions { margin-top: 15px; }
.public-hero-aside strong { margin-top: 8px; font-size: 20px; line-height: 1.4; }
.public-hero-aside p { margin-top: 9px; line-height: 1.65; }
.public-hero-link { margin-top: 12px; }
.public-hero-main > p,
.public-hero-aside small { color: #e3bd84; }
.public-hero-main h1,
.public-hero-aside strong { color: #fff; }
.public-hero-main > span,
.public-hero-aside p { color: rgba(255,255,255,.8); }
.public-hero-highlights span { color: rgba(255,255,255,.92); }
.public-hero-aside { border-left-color: rgba(255,255,255,.24); }
.public-hero-link { border-bottom-color: #ddb77e; color: #f0c98e; }

@media (max-width: 760px) {
  .public-hero-stage { width: 100%; }
  .public-hero-visual {
    height: clamp(500px, 66svh, 560px);
  }
  .public-hero-image { object-position: center 50%; }
  .public-hero-content {
    top: 50%;
    left: 50%;
    right: auto;
    bottom: auto;
    width: calc(100% - 28px);
    display: block;
    padding: 15px 16px;
    border-color: rgba(255,255,255,.32);
    background: rgba(10, 22, 19, .36);
  }
  .public-hero-main > p { margin-bottom: 8px; font-size: 9px; }
  .public-hero-main h1 { font-size: 21px; line-height: 1.3; }
  .public-hero-main > span { margin-top: 8px; font-size: 10px; line-height: 1.55; }
  .public-hero-highlights { gap: 5px 11px; margin-top: 9px; }
  .public-hero-highlights span { font-size: 9px; }
  .public-hero-actions { margin-top: 10px; }
  .public-hero-actions { flex-wrap: wrap; }
  .btn.public-primary { padding: 8px 11px; font-size: 10px; }
  .public-hero-aside {
    margin-top: 12px;
    padding: 11px 0 0;
    border-top-color: rgba(255,255,255,.24);
  }
  .public-hero-aside strong { margin-top: 5px; font-size: 17px; line-height: 1.35; }
  .public-hero-aside p { margin-top: 6px; font-size: 9px; line-height: 1.55; }
  .public-hero-link { margin-top: 8px; font-size: 10px; }
  .appointment-form { grid-template-columns: 1fr; padding: 16px; }
  .appointment-form .field.full, .appointment-submit { grid-column: auto; }
}

@media (max-width: 760px) {
  .public-hero { height: auto; min-height: 0; }
  .public-hero-content { padding: 15px 16px; }
  .public-portfolio-intro { padding: 0 16px; margin-bottom: 30px; }
  .portfolio-category { margin-top: 0; }
  .portfolio-category .public-section-heading { min-height: 84px; padding: 15px 18px 13px; }
  .portfolio-category .portfolio-track { justify-content: flex-start; }
  .portfolio-category .portfolio-item { width: min(68vw, 250px); aspect-ratio: 4 / 5; }
  .portfolio-category .portfolio-item-copy { height: 40%; min-height: 0; padding: 10px 18px 8px; }
  .portfolio-category .portfolio-item-copy strong { font-size: 15px; }
  .portfolio-detail-dialog { width: 100%; height: 94vh; max-height: 94vh; }
  .portfolio-detail-copy { padding: 30px 20px 22px; }
  .portfolio-gallery { padding: 16px; gap: 18px; }
  .staff-request-row { display: block; padding: 16px 15px; }
  .staff-request-actions { justify-content: flex-start; margin-top: 13px; }
}

@page {
  size: A4 portrait;
  margin: 10mm 8mm 12mm;
}

.verification-code-field > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.verification-code-field .btn { min-height: 42px; white-space: nowrap; }
.customer-register-consent { grid-column: 1 / -1; }
.customer-stage-register { min-width: 0; }
.service-stage-choice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.service-stage-choice { min-width: 0; cursor: pointer; }
.service-stage-choice input, .role-check input { position: absolute; opacity: 0; pointer-events: none; }
.service-stage-choice > span { min-height: 72px; padding: 12px; border: 1px solid var(--line); display: grid; align-content: center; gap: 4px; background: #fff; }
.service-stage-choice input:checked + span, .role-check input:checked + span { border-color: var(--green-600); background: var(--green-100); box-shadow: inset 0 0 0 1px var(--green-600); }
.service-stage-choice strong, .service-stage-choice small, .role-check strong, .role-check small { display: block; }
.service-stage-choice strong, .role-check strong { color: var(--ink-900); font-size: 12px; }
.service-stage-choice small, .role-check small { color: var(--ink-500); font-size: 9px; line-height: 1.5; }
.registration-assignment-grid { margin-top: 10px; }
.registration-assignment-grid > section, .add-stage-assignment-section { display: none; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 14px; background: #f7faf8; border-left: 3px solid var(--green-600); }
.registration-assignment-grid > section.active, .add-stage-assignment-section.active { display: grid; }
.registration-assignment-grid header, .add-stage-assignment-section h4 { grid-column: 1 / -1; margin: 0; }
.registration-assignment-grid header strong, .registration-assignment-grid header span { display: block; }
.registration-assignment-grid header strong { font-size: 12px; }
.registration-assignment-grid header span { margin-top: 4px; color: var(--ink-500); font-size: 9px; }
.role-check-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.role-check { cursor: pointer; }
.role-check span { min-height: 58px; padding: 10px 12px; display: grid; align-content: center; gap: 3px; border: 1px solid var(--line); }
.toggle-field { display: flex; align-items: center; gap: 9px; min-height: 42px; }
.toggle-field input { width: 18px; height: 18px; }
.role-definition-list { display: grid; }
.role-definition-list article { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 16px; padding: 14px 18px; border-bottom: 1px solid var(--line); }
.role-definition-list article:last-child { border-bottom: 0; }
.role-definition-list article > div:first-child strong, .role-definition-list article > div:first-child span { display: block; }
.role-definition-list article > div:first-child strong { font-size: 12px; }
.role-definition-list article > div:first-child span { margin-top: 4px; color: var(--ink-500); font-size: 9px; line-height: 1.6; }
.role-architecture-groups, .role-definition-groups, .project-stage-team-groups { display: grid; }
.role-architecture-groups > section, .role-definition-groups > section, .project-stage-team { border-top: 1px solid var(--line); }
.role-architecture-groups > section:first-child, .role-definition-groups > section:first-child, .project-stage-team:first-child { border-top: 0; }
.role-architecture-groups > section > header, .role-definition-groups > section > header, .project-stage-team > header { min-height: 64px; padding: 13px 18px; display: flex; align-items: center; justify-content: space-between; gap: 18px; background: #f7faf8; }
.role-architecture-groups header strong, .role-architecture-groups header span, .role-definition-groups header strong, .role-definition-groups header span { display: block; }
.role-architecture-groups header strong, .role-definition-groups header strong { color: var(--ink-900); font-size: 12px; }
.role-architecture-groups header span, .role-definition-groups header span { margin-top: 3px; color: var(--ink-500); font-size: 9px; }
.role-architecture-groups header b { color: var(--green-700); font-size: 10px; }
.role-architecture-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.role-architecture-list > button { min-width: 0; min-height: 90px; padding: 14px 18px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 5px 14px; align-items: center; text-align: left; border: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; cursor: pointer; }
.role-architecture-list > button:nth-child(2n) { border-right: 0; }
.role-architecture-list > button:hover, .role-architecture-list > button:focus-visible { background: var(--green-100); outline: 2px solid var(--green-600); outline-offset: -2px; }
.role-architecture-list > button span { min-width: 0; grid-column: 1 / -1; }
.role-architecture-list strong, .role-architecture-list small { display: block; }
.role-architecture-list strong { color: var(--ink-900); font-size: 12px; }
.role-architecture-list small { margin-top: 4px; color: var(--ink-500); font-size: 9px; line-height: 1.6; }
.role-architecture-list em { color: var(--green-700); font-size: 8px; font-style: normal; }
.role-architecture-list > button > b { color: var(--warm); font-size: 10px; text-align: right; }
.role-check-section { grid-column: 1 / -1; }
.role-check-section + .role-check-section { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.role-check-section > header { margin-bottom: 7px; display: flex; justify-content: space-between; gap: 12px; }
.role-check-section > header strong { font-size: 11px; }
.role-check-section > header span { color: var(--ink-500); font-size: 9px; }
.role-architecture-detail > p { margin: 0 0 16px; color: var(--ink-700); font-size: 11px; line-height: 1.8; }
.role-architecture-detail h4 { margin: 20px 0 9px; font-size: 11px; }
.role-assigned-people { display: grid; gap: 1px; background: var(--line); }
.role-assigned-people span { padding: 10px 12px; background: #fff; font-size: 10px; }
.project-stage-team > header > div:last-child { display: flex; align-items: center; gap: 10px; }
.project-stage-team > header span, .project-stage-team > header strong { display: block; }
.project-stage-team > header > div:first-child > span { color: var(--ink-500); font-size: 9px; }
.project-stage-team > header > div:first-child > strong { margin-top: 4px; font-size: 12px; }
.project-stage-role-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.project-stage-role-list > div { min-width: 0; min-height: 78px; padding: 12px 14px; display: grid; align-content: center; gap: 3px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.project-stage-role-list > div:nth-child(4n) { border-right: 0; }
.project-stage-role-list > div.missing { background: #fff7f3; box-shadow: inset 3px 0 0 #b8583d; }
.project-stage-role-list span, .project-stage-role-list strong, .project-stage-role-list small { display: block; }
.project-stage-role-list span, .project-stage-role-list small { color: var(--ink-500); font-size: 9px; }
.project-stage-role-list strong { font-size: 11px; }
.stage-team-form-grid .field { align-self: start; }
.stage-team-form-grid .field small { display: block; margin-top: 5px; color: var(--ink-500); font-size: 8px; line-height: 1.55; }
.client-service-tabs { max-width: 920px; margin: 22px auto 0; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); align-items: stretch; gap: 6px; }
.client-service-tabs button { min-width: 0; min-height: 44px; border: 1px solid rgba(255,255,255,.22); background: rgba(255,255,255,.08); color: #fff; padding: 8px 10px; font-size: 11px; line-height: 1.4; white-space: normal; }
.client-service-tabs button.active { background: #fff; color: var(--green-700); border-color: #fff; }
.client-service-tabs .client-add-stage { border-style: dashed; }
.client-requirement-tabs { max-width: 680px; }
.client-requirement-tabs button { min-height: 46px; font-weight: 700; }
.client-service-panel .client-section-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.client-current-stage { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 15px 16px; background: #f7faf8; border-left: 3px solid var(--warm); }
.client-current-stage span, .client-current-stage strong, .client-current-stage small { display: block; }
.client-current-stage span, .client-current-stage small { color: var(--ink-500); font-size: 9px; }
.client-current-stage strong { margin: 4px 0; color: var(--ink-900); font-size: 14px; line-height: 1.5; }
.client-current-stage > b { flex: 0 0 auto; color: var(--green-700); font-size: 22px; }
.client-current-stage + .progress-line { margin-top: 10px; }
.client-stage-team { margin: 18px 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.client-stage-team > div { min-height: 72px; padding: 12px; background: #f7faf8; display: grid; align-content: center; gap: 3px; }
.client-stage-team span, .client-stage-team strong, .client-stage-team small { display: block; }
.client-stage-team span, .client-stage-team small { color: var(--ink-500); font-size: 9px; }
.client-stage-team strong { font-size: 12px; }
.client-workflow-disclosure { border: 1px solid var(--line); }
.client-workflow-disclosure > summary { min-height: 44px; padding: 11px 13px; display: flex; justify-content: space-between; align-items: center; gap: 12px; list-style: none; cursor: pointer; color: var(--green-700); }
.client-workflow-disclosure > summary span { font-size: 11px; font-weight: 700; }
.client-workflow-disclosure > summary strong { font-size: 9px; }
.client-workflow-disclosure[open] > summary { border-bottom: 1px solid var(--line); background: #fbfdfc; }
.client-workflow-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--line); }
.client-workflow-list li { min-width: 0; background: #fff; }
.client-workflow-list li.completed { background: #f6faf8; }
.client-workflow-list li.in_progress { box-shadow: inset 3px 0 0 var(--warm); }
.client-workflow-list details > summary { min-height: 66px; padding: 11px 13px; display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 10px; align-items: center; list-style: none; cursor: pointer; }
.client-workflow-list details > summary > span { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid var(--line); color: var(--ink-500); font-size: 9px; }
.client-workflow-list details > summary strong, .client-workflow-list details > summary small { display: block; }
.client-workflow-list details > summary strong { font-size: 11px; line-height: 1.5; }
.client-workflow-list details > summary small { margin-top: 3px; color: var(--ink-500); font-size: 8px; line-height: 1.5; }
.client-workflow-list li.in_progress details > summary > span { border-color: var(--warm); color: var(--amber-700); }
.client-workflow-list details > p { margin: 0; padding: 0 13px 13px 51px; color: var(--ink-500); font-size: 9px; line-height: 1.65; }
.requirement-field-group, .requirement-text-disclosure { margin-top: 8px; border: 1px solid #dfe8e4; background: #fff; }
.requirement-field-group > summary, .requirement-text-disclosure > summary { min-height: 68px; padding: 13px 15px; display: grid; grid-template-columns: minmax(0, 1fr) 26px; align-items: center; gap: 14px; list-style: none; cursor: pointer; }
.requirement-field-group > summary::-webkit-details-marker, .requirement-text-disclosure > summary::-webkit-details-marker { display: none; }
.requirement-field-group > summary h3, .requirement-text-disclosure > summary h3 { margin: 0; font-size: 13px; }
.requirement-field-group > summary p, .requirement-text-disclosure > summary p { margin: 5px 0 0; color: var(--ink-500); font-size: 9px; line-height: 1.6; }
.requirement-field-group > summary > b, .requirement-text-disclosure > summary > b { position: relative; width: 26px; height: 26px; border: 1px solid #cbd8d3; }
.requirement-field-group > summary > b::before, .requirement-field-group > summary > b::after, .requirement-text-disclosure > summary > b::before, .requirement-text-disclosure > summary > b::after { content: ""; position: absolute; top: 50%; left: 50%; width: 10px; height: 1px; background: var(--green-700); transform: translate(-50%, -50%); }
.requirement-field-group > summary > b::after, .requirement-text-disclosure > summary > b::after { transform: translate(-50%, -50%) rotate(90deg); }
.requirement-field-group[open] > summary, .requirement-text-disclosure[open] > summary { border-bottom: 1px solid #dfe8e4; background: #f8fbf9; }
.requirement-field-group[open] > summary > b::after, .requirement-text-disclosure[open] > summary > b::after { transform: translate(-50%, -50%); }
.requirement-field-group > summary:focus-visible, .requirement-text-disclosure > summary:focus-visible { outline: 3px solid rgba(31, 93, 78, .24); outline-offset: -3px; }
.requirement-field-body { padding: 16px; }
.requirement-field-group .detail-group { background: #f8faf9; }
.requirement-choice-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.requirement-text-grid { margin: 0; }
.stage-requirement-card { padding: 23px 22px; }
.stage-requirement-card .choice { min-height: 44px; }
.stage-requirement-heading { margin-bottom: 6px; padding-bottom: 17px; border-bottom: 1px solid #dfe8e4; display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; }
.stage-requirement-heading span, .stage-requirement-heading strong { display: block; }
.stage-requirement-heading span { color: #9a7345; font-size: 9px; font-weight: 700; }
.stage-requirement-heading h2 { margin: 5px 0 0; font-size: 17px; }
.stage-requirement-heading p { max-width: 620px; margin: 6px 0 0; color: var(--ink-500); font-size: 10px; line-height: 1.7; }
.stage-requirement-heading > strong { flex: 0 0 auto; color: var(--green-700); font-size: 10px; }
.residential-space-plan { margin: 18px 0; border-top: 1px solid #dce6e2; border-bottom: 1px solid #dce6e2; }
.space-plan-heading { padding: 19px 0 16px; display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; }
.space-plan-heading span, .space-plan-external > header span, .space-plan-results > header span { color: #9a7345; font-size: 9px; font-weight: 700; }
.space-plan-heading h3, .space-plan-external > header h3, .space-plan-results > header h3 { margin: 5px 0 0; font-size: 15px; }
.space-plan-heading p, .space-plan-external > header p { max-width: 640px; margin: 6px 0 0; color: var(--ink-500); font-size: 10px; line-height: 1.7; }
.space-plan-heading > strong { flex: 0 0 auto; color: var(--green-700); font-size: 10px; }
.space-plan-type { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid #bfd0c9; }
.space-plan-type label { min-height: 48px; display: grid; place-items: center; background: #fff; color: var(--ink-700); cursor: pointer; font-size: 12px; font-weight: 700; }
.space-plan-type label + label { border-left: 1px solid #bfd0c9; }
.space-plan-type label.active, .space-plan-type label:has(input:checked) { background: var(--green-700); color: #fff; }
.space-plan-type input { position: absolute; opacity: 0; pointer-events: none; }
.space-plan-type label:focus-within { outline: 3px solid rgba(31, 93, 78, .24); outline-offset: -3px; }
.space-plan-switch-note { margin: 8px 0 15px; color: var(--ink-500); font-size: 9px; line-height: 1.6; }
.space-plan-residence-panel[hidden], .space-plan-panel[hidden] { display: none; }
.space-plan-panel-stack, .space-plan-residence-panel { display: grid; gap: 8px; }
.space-plan-panel { border: 1px solid var(--line); background: #fff; }
.space-plan-panel > summary { min-height: 62px; padding: 12px 14px; display: grid; grid-template-columns: 34px minmax(0, 1fr) 22px; align-items: center; gap: 12px; list-style: none; cursor: pointer; }
.space-plan-panel > summary::-webkit-details-marker { display: none; }
.space-plan-panel > summary > span { min-width: 34px; height: 34px; display: grid; place-items: center; background: #eef4f1; color: var(--green-700); font-size: 9px; font-weight: 700; }
.space-plan-panel > summary strong, .space-plan-panel > summary small { display: block; }
.space-plan-panel > summary strong { font-size: 11px; line-height: 1.5; }
.space-plan-panel > summary small { margin-top: 3px; color: var(--ink-500); font-size: 9px; line-height: 1.5; }
.space-plan-panel > summary > b { position: relative; width: 22px; height: 22px; }
.space-plan-panel > summary > b::before, .space-plan-panel > summary > b::after { content: ""; position: absolute; top: 50%; left: 50%; width: 10px; height: 1px; background: var(--green-700); transform: translate(-50%, -50%); }
.space-plan-panel > summary > b::after { transform: translate(-50%, -50%) rotate(90deg); }
.space-plan-panel[open] > summary { border-bottom: 1px solid var(--line); background: #fbfdfc; }
.space-plan-panel[open] > summary > b::after { transform: translate(-50%, -50%); }
.space-plan-panel > summary:focus-visible { outline: 3px solid rgba(31, 93, 78, .24); outline-offset: -3px; }
.space-plan-panel-body { padding: 15px; }
.space-plan-option-group + .space-plan-option-group { margin-top: 17px; padding-top: 17px; border-top: 1px solid #e8eeeb; }
.space-plan-option-group h4 { margin: 0 0 10px; font-size: 11px; }
.space-plan-option-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.space-plan-repeat-section { margin-top: 14px; padding: 16px 0; border-top: 1px solid #dfe8e4; }
.space-plan-repeat-section > header { margin-bottom: 11px; display: flex; justify-content: space-between; align-items: center; gap: 14px; }
.space-plan-repeat-section > header h4 { margin: 0; font-size: 12px; }
.space-plan-repeat-section > header p { margin: 4px 0 0; color: var(--ink-500); font-size: 9px; line-height: 1.6; }
.space-plan-repeat-list { display: grid; gap: 10px; }
.space-plan-repeat-card { padding: 14px; border: 1px solid #dfe8e4; background: #fbfdfc; }
.space-plan-repeat-card > header { margin-bottom: 12px; padding-bottom: 10px; border-bottom: 1px solid #e5ece8; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.space-plan-repeat-card > header span, .space-plan-repeat-card > header strong { display: block; }
.space-plan-repeat-card > header span { color: var(--ink-500); font-size: 8px; }
.space-plan-repeat-card > header strong { margin-top: 3px; font-size: 11px; }
.space-plan-repeat-card > header b { color: #9a7345; font-size: 9px; }
.space-plan-repeat-card .field > input, .space-plan-repeat-card .field > select, .space-plan-panel-body .field > input, .space-plan-panel-body .field > select { width: 100%; min-height: 42px; border: 1px solid var(--line); background: #fff; color: var(--ink-900); padding: 9px 10px; font-size: 11px; }
.space-plan-empty { margin: 0; padding: 14px; border: 1px dashed #cbd8d3; color: var(--ink-500); font-size: 9px; text-align: center; }
.space-plan-external { margin-top: 18px; padding-top: 18px; border-top: 1px solid #dfe8e4; }
.space-plan-external > header { margin-bottom: 13px; }
.space-plan-results { margin-top: 18px; padding: 18px 0; border-top: 1px solid #dfe8e4; }
.space-plan-results > header { margin-bottom: 12px; }
.space-plan-results [data-space-plan-summary] { display: grid; gap: 1px; background: var(--line); border: 1px solid var(--line); }
.space-plan-results article { padding: 13px 14px; background: #fff; }
.space-plan-results article span { color: var(--green-700); font-size: 9px; font-weight: 700; }
.space-plan-results article p { margin: 5px 0 0; color: var(--ink-700); font-size: 10px; line-height: 1.75; overflow-wrap: anywhere; }
.design-requirement-summary { padding: 19px 21px; }
.design-requirement-summary > .space-plan-results { margin: 0; padding: 0; border: 0; }
.space-material-list { display: grid; gap: 9px; }
.space-material-row { border: 1px solid #dfe8e4; background: #f8faf9; }
.space-material-row > header { min-height: 52px; padding: 11px 13px; border-bottom: 1px solid #e3ebe7; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.space-material-row > header span { color: var(--ink-500); font-size: 9px; }
.space-material-row > header strong { color: var(--green-700); font-size: 11px; text-align: right; }
.space-material-selects { padding: 12px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.space-material-selects .field, .equipment-system-row { min-width: 0; }
.space-material-selects select, .equipment-system-row select { width: 100%; min-height: 43px; border: 1px solid var(--line); background: #fff; color: var(--ink-900); padding: 9px 10px; font-size: 10px; }
.space-material-empty { padding: 17px; border: 1px dashed #c5d3cd; background: #fbfdfc; color: var(--ink-500); font-size: 10px; line-height: 1.7; text-align: center; }
.equipment-system-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.profile-space-plan-summary { grid-column: 1 / -1; padding-bottom: 14px; border-bottom: 1px solid #e7ece9; }
.profile-space-plan-summary h4 { margin-top: 10px; }
.profile-space-plan-summary h4:first-child { margin-top: 0; }
.profile-space-plan-summary p { margin: 4px 0 0; color: var(--ink-700); font-size: 10px; line-height: 1.7; }
.client-archive-banner { margin-bottom: 12px; padding: 14px 16px; background: #f3f4f3; border-left: 3px solid var(--ink-500); }
.client-archive-banner strong, .client-archive-banner span { display: block; }
.client-archive-banner strong { font-size: 12px; }
.client-archive-banner span { margin-top: 4px; color: var(--ink-500); font-size: 10px; }
.account-archive p { color: var(--ink-500); font-size: 10px; line-height: 1.7; }

.customer-onboarding, .onboarding-content, .onboarding-workspace, .onboarding-section-editor { min-width: 0; }
.onboarding-content { display: grid; gap: 14px; }
.customer-project-switcher { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.customer-project-tabs { min-width: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.customer-project-tabs button { min-height: 44px; padding: 9px 13px; border: 1px solid var(--line); background: #fff; color: var(--ink-700); cursor: pointer; font-size: 11px; }
.customer-project-tabs button.active { border-color: var(--green-700); background: var(--green-700); color: #fff; }
.onboarding-progress { padding: 14px 16px; border-left: 3px solid var(--green-600); background: #fff; }
.onboarding-progress > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.onboarding-progress span, .onboarding-progress p { color: var(--ink-500); font-size: 10px; }
.onboarding-progress strong { color: var(--green-700); font-size: 18px; }
.onboarding-progress p { margin: 8px 0 0; }
.progress-line { height: 4px; margin-top: 9px; background: #e8eeeb; overflow: hidden; }
.progress-line span { display: block; width: var(--progress); height: 100%; background: var(--warm); }
.onboarding-workspace { display: grid; grid-template-columns: 230px minmax(0, 1fr); align-items: start; gap: 18px; }
.onboarding-section-nav { display: grid; gap: 12px; }
.onboarding-section-nav section { display: grid; gap: 5px; }
.onboarding-section-nav h3 { margin: 0 0 3px; color: var(--ink-500); font-size: 9px; }
.onboarding-section-nav button { width: 100%; min-height: 44px; padding: 9px 10px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; border: 1px solid var(--line); background: #fff; color: var(--ink-700); cursor: pointer; text-align: left; }
.onboarding-section-nav button span { min-width: 0; font-size: 10px; overflow-wrap: anywhere; }
.onboarding-section-nav button b { color: var(--ink-500); font-size: 9px; white-space: nowrap; }
.onboarding-section-nav button.active { border-color: var(--green-700); background: #edf4f1; color: var(--green-700); }
.onboarding-section-editor { padding: 20px; background: #fff; box-shadow: var(--shadow); }
.onboarding-section-editor > header { margin-bottom: 18px; padding-bottom: 14px; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--line); }
.onboarding-section-editor > header span { color: var(--warm); font-size: 9px; font-weight: 700; }
.onboarding-section-editor > header h2 { margin: 5px 0 0; font-size: 18px; }
.onboarding-section-editor > header p { margin: 6px 0 0; color: var(--ink-500); font-size: 10px; line-height: 1.7; }
.onboarding-section-editor > header > b { flex: 0 0 auto; color: var(--green-700); font-size: 10px; }
.onboarding-choice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.onboarding-choice-grid label, .onboarding-staffing-options label { min-width: 0; min-height: 44px; display: flex; align-items: center; gap: 8px; border: 1px solid var(--line); background: #fff; cursor: pointer; }
.onboarding-choice-grid label { padding: 9px 10px; font-size: 10px; }
.onboarding-choice-grid label:has(input:checked), .onboarding-staffing-options label:has(input:checked) { border-color: var(--green-700); background: #edf4f1; }
.onboarding-stage-tabs { margin-bottom: 14px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.onboarding-stage-tabs button { min-height: 44px; border: 1px solid var(--line); background: #fff; color: var(--ink-700); cursor: pointer; font-size: 10px; }
.onboarding-stage-tabs button + button { border-left: 0; }
.onboarding-stage-tabs button.active { background: var(--green-700); color: #fff; }
.onboarding-staffing-options { margin-bottom: 14px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.onboarding-staffing-options label { padding: 12px; }
.onboarding-staffing-options span, .onboarding-staffing-options strong, .onboarding-staffing-options small { min-width: 0; display: block; }
.onboarding-staffing-options strong { font-size: 11px; }
.onboarding-staffing-options small { margin-top: 3px; color: var(--ink-500); font-size: 9px; line-height: 1.5; }
.onboarding-review-note { margin-bottom: 14px; padding: 12px 14px; display: grid; gap: 4px; border-left: 3px solid var(--warm); background: var(--amber-100); color: var(--ink-700); font-size: 10px; }
.onboarding-form-actions { min-height: 60px; margin-top: 20px; padding-top: 14px; display: flex; align-items: center; justify-content: flex-end; gap: 10px; border-top: 1px solid var(--line); }
.onboarding-form-actions .btn { min-height: 44px; }
.onboarding-position { min-width: 54px; color: var(--ink-500); font-size: 10px; text-align: center; white-space: nowrap; }
.onboarding-completion-summary { min-height: 280px; padding: 44px 32px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; background: #fff; box-shadow: var(--shadow); }
.onboarding-completion-summary > span { color: var(--warm); font-size: 9px; font-weight: 700; }
.onboarding-completion-summary h2 { margin: 8px 0; font-size: 22px; }
.onboarding-completion-summary p { margin: 0 0 20px; color: var(--ink-500); font-size: 11px; line-height: 1.7; }

@media (max-width: 760px) {
  .service-stage-choice-grid, .role-check-grid, .client-stage-team, .client-workflow-list { grid-template-columns: 1fr; }
  .registration-assignment-grid > section, .add-stage-assignment-section { grid-template-columns: 1fr; }
  .catalog-group-stats { grid-template-columns: 1fr; }
  .catalog-manager-group > header, .stage-requirement-heading { display: grid; }
  .client-service-tabs { grid-auto-columns: minmax(0, 1fr); }
  .client-service-tabs button { padding-inline: 5px; font-size: 10px; }
  .client-service-tabs .client-add-stage { grid-column: auto; }
  .requirement-choice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .space-material-selects, .equipment-system-grid { grid-template-columns: 1fr; }
  .space-material-row > header { align-items: flex-start; }
  .space-plan-heading, .space-plan-repeat-section > header { display: grid; }
  .space-plan-heading > strong { justify-self: start; }
  .space-plan-option-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .client-disclosure > summary, .client-form-disclosure > summary { padding: 15px; gap: 12px; }
  .client-disclosure-body { padding: 15px; }
  .client-current-stage { align-items: flex-start; }
  .role-definition-list article { grid-template-columns: minmax(0, 1fr) auto; }
  .role-definition-list article > div:last-child { grid-column: 1 / -1; }
  .role-architecture-list, .project-stage-role-list { grid-template-columns: 1fr; }
  .role-architecture-list > button, .project-stage-role-list > div { border-right: 0; }
  .role-architecture-groups > section > header, .role-definition-groups > section > header, .project-stage-team > header { align-items: flex-start; }
  .project-stage-team > header { display: grid; }
  .project-stage-team > header > div:last-child { justify-content: space-between; }
  .customer-project-switcher { align-items: stretch; flex-direction: column; }
  .customer-project-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .onboarding-workspace { grid-template-columns: minmax(0, 1fr); }
  .onboarding-section-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .onboarding-section-editor { padding: 16px; }
  .onboarding-choice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .onboarding-completion-summary { min-height: 220px; padding: 30px 20px; }
}

@media (max-width: 420px) {
  .client-disclosure > summary, .client-form-disclosure > summary { grid-template-columns: minmax(0, 1fr) 26px; }
  .client-current-stage > b { font-size: 18px; }
  .requirement-choice-grid { grid-template-columns: 1fr; }
  .space-plan-option-grid { grid-template-columns: 1fr; }
  .space-plan-panel > summary { grid-template-columns: 30px minmax(0, 1fr) 20px; gap: 9px; padding: 11px; }
  .space-plan-panel > summary > span { min-width: 30px; width: 30px; height: 30px; }
  .space-plan-panel-body, .space-plan-repeat-card { padding: 12px; }
  .stage-requirement-card { padding: 18px 15px; }
  .catalog-manager-group > header strong, .stage-requirement-heading > strong { justify-self: start; }
  .onboarding-section-nav, .onboarding-choice-grid, .onboarding-staffing-options { grid-template-columns: minmax(0, 1fr); }
  .onboarding-section-editor > header { display: grid; }
  .onboarding-form-actions { flex-wrap: wrap; justify-content: space-between; }
  .onboarding-form-actions .btn { flex: 1 1 120px; }
  .onboarding-position { order: -1; flex: 1 0 100%; }
}

@media print {
  html, body {
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }
  body {
    color: #111 !important;
    font-size: 8.5pt;
    line-height: 1.4;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  *, *::before, *::after {
    box-shadow: none !important;
    text-shadow: none !important;
  }
  .app-shell, .main, .content {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
  }
  .sidebar, .sidebar-scrim, .topbar, .mobile-quickbar,
  .heading-actions, .toolbar, .form-actions, .module-tabs,
  .row-action, .task-indicator, .task-filters, .task-handle,
  .role-actions, .custom-choice, .survey-selector,
  .modal-backdrop, .toast, .panel-header > .btn {
    display: none !important;
  }
  .page-heading {
    display: block !important;
    margin: 0 0 5mm !important;
    padding: 0 0 3mm;
    border-bottom: .35mm solid #1e4d46;
    break-after: avoid-page;
  }
  .eyebrow { margin-bottom: 1.5mm; font-size: 7.5pt; }
  h2 { font-size: 18pt; line-height: 1.2; }
  .subtitle { margin-top: 1.5mm; font-size: 8.5pt; }
  h2, h3, h4, h5, .panel-header { break-after: avoid-page; }
  .print-title { display: block !important; }
  .section { margin-top: 4mm !important; }
  .panel, .kpi, .role-banner, .profile-stage-rail,
  .summary-box, .flow-column, .milestone, .detail-group {
    border-color: #bfc9c4 !important;
  }
  .panel {
    min-width: 0 !important;
    overflow: visible !important;
    break-inside: auto;
  }
  .panel-header {
    padding: 3mm 3.5mm;
    background: #f3f6f4 !important;
  }
  .panel-header h3 { font-size: 10pt; }
  .panel-header small { font-size: 7.5pt; }
  .panel-body { padding: 3.5mm; overflow: visible !important; }
  .kpi-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 2.5mm !important;
    margin-bottom: 4mm;
  }
  .kpi {
    min-height: 0 !important;
    padding: 3mm !important;
    break-inside: avoid-page;
  }
  .kpi-label, .kpi-note { font-size: 7pt; }
  .kpi-value { margin-top: 2mm; font-size: 15pt; }
  .grid-2, .form-layout, .profile-grid, .profile-delivery {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 4mm !important;
  }
  .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 3mm !important; }
  .choice-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 1.5mm !important; }
  .check-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .milestone-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 2.5mm !important; }
  .activity-list { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .catalog-manager, .portfolio-admin-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .form-section {
    padding-bottom: 4mm;
    margin-bottom: 4mm;
    break-inside: auto;
  }
  .form-section h4 { margin-bottom: 3mm; font-size: 9.5pt; }
  .field { gap: 1mm; break-inside: avoid-page; }
  .field label, .section-note { font-size: 7.5pt; }
  .field input, .field select, .field textarea {
    min-height: 0 !important;
    padding: 1.5mm 0 !important;
    border: 0 !important;
    border-bottom: .2mm solid #c8d0cc !important;
    border-radius: 0 !important;
    color: #000 !important;
    background: transparent !important;
    box-shadow: none !important;
    font-size: 8.5pt;
    line-height: 1.45;
    appearance: none;
    overflow: visible !important;
    white-space: pre-wrap;
  }
  .choice {
    min-height: 8mm !important;
    padding: 1.5mm 2mm !important;
    font-size: 7.5pt;
    break-inside: avoid-page;
  }
  .choice input { width: 3mm; height: 3mm; margin-right: 1.5mm; }
  .detail-library { gap: 3mm; }
  .detail-group { padding: 3mm; break-inside: auto; }
  .side-summary { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 2.5mm !important; }
  .summary-box { padding: 3mm; break-inside: avoid-page; }
  .table-wrap {
    width: 100% !important;
    max-width: none !important;
    overflow: visible !important;
  }
  table, .commercial-table, .staff-admin-table {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    table-layout: fixed;
  }
  thead { display: table-header-group; }
  tfoot { display: table-footer-group; }
  tr { break-inside: avoid-page; break-after: auto; }
  th, td {
    padding: 2mm 1.5mm !important;
    border-color: #d8dedb !important;
    color: #222 !important;
    font-size: 7.5pt !important;
    line-height: 1.35;
    vertical-align: top;
    white-space: normal !important;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  th { background: #edf2ef !important; font-size: 7pt !important; }
  td strong { font-size: 7.8pt; }
  td small { margin-top: 1mm; font-size: 6.8pt; }
  .print-wide-table th, .print-wide-table td { padding: 1.5mm 1mm !important; font-size: 6.7pt !important; }
  .print-wide-table td strong { font-size: 7pt; }
  .print-action-column th:last-child, .print-action-column td:last-child { display: none !important; }
  .staff-duty { max-width: none; line-height: 1.4; }
  .staff-load { white-space: normal; }
  .staff-permission-tags { gap: 1mm; }
  .staff-permission-tags b { padding: 1mm 1.5mm; font-size: 6.5pt; }
  .status { padding: 1mm 1.5mm; font-size: 6.8pt; white-space: normal; }
  .status-select { max-width: none; padding: 0 !important; }
  .flow-board {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 3mm !important;
    overflow: visible !important;
  }
  .flow-column { min-height: 0 !important; break-inside: avoid-page; }
  .pipeline { grid-template-columns: repeat(7, minmax(0, 1fr)) !important; min-height: 36mm !important; }
  .stage-name { white-space: normal; font-size: 7pt; }
  .process-row { grid-template-columns: 8mm 28mm minmax(0, 1fr) 24mm !important; gap: 2.5mm !important; break-inside: avoid-page; }
  .task-center-row {
    grid-template-columns: 25mm minmax(0, 1fr) 28mm 24mm !important;
    min-height: 0 !important;
    gap: 2.5mm !important;
    padding: 2.5mm 3mm !important;
    break-inside: avoid-page;
  }
  .profile-identity {
    min-height: 0 !important;
    padding: 4mm !important;
    border: .2mm solid #bfc9c4;
    background: #f3f6f4 !important;
    color: #111 !important;
    break-inside: avoid-page;
  }
  .profile-title h3, .profile-title p, .profile-stage-status span, .profile-stage-status strong { color: #111 !important; }
  .profile-initial { color: #111 !important; border-color: #9ba9a3 !important; }
  .profile-stage-rail { grid-template-columns: repeat(7, minmax(0, 1fr)) !important; overflow: visible !important; }
  .profile-stage-rail > div { min-height: 13mm; padding: 2mm 1mm; }
  .profile-facts { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .profile-delivery { padding: 3.5mm; }
  .profile-timeline > div { break-inside: avoid-page; }
  .report-thumb { width: 18mm; height: 12mm; }
  .report-photo { width: 30mm; height: auto; max-height: 24mm; }
  img { max-width: 100% !important; }
  a { color: #111 !important; text-decoration: none; }
}
