:root { --ink:#17212b; --muted:#5f6b76; --line:#cfd8dc; --paper:#f7faf9; --accent:#006d77; --danger:#a31d2d; }
* { box-sizing:border-box; } body { margin:0; font:15px/1.45 system-ui,sans-serif; color:var(--ink); background:var(--paper); } .topbar { min-height:58px; display:flex; align-items:center; gap:24px; padding:0 28px; background:#fff; border-bottom:1px solid var(--line); } .brand { font-weight:750; color:var(--ink); text-decoration:none; } nav { display:flex; align-items:center; gap:18px; flex:1; } a { color:var(--accent); } nav a { padding:8px 0; text-decoration:none; color:var(--ink); } nav a:hover,.header-link:hover { color:var(--accent); } .account-summary,.account-actions { display:flex; align-items:center; gap:12px; white-space:nowrap; } .account-name { font-weight:600; } .role-label { color:var(--muted); font-size:13px; padding-left:9px; border-left:1px solid var(--line); } .account-summary form { margin:0; } .sign-out { background:#fff; color:var(--ink); border-color:var(--line); } .header-link { padding:8px 0; color:var(--ink); text-decoration:none; } .header-account-button { padding:8px 12px; font-weight:700; } .page { max-width:1280px; margin:0 auto; padding:32px 24px 64px; } .page-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:22px; } h1 { font-size:27px; margin:0 0 4px; letter-spacing:0; } h2 { font-size:18px; margin-top:0; letter-spacing:0; } p { color:var(--muted); margin-top:0; } .actions,.filters { display:flex; flex-wrap:wrap; gap:9px; } .filters { padding:14px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin-bottom:18px; } input,select,textarea,button { font:inherit; padding:7px 9px; border:1px solid #aebcc2; border-radius:4px; background:#fff; } textarea { min-height:88px; width:100%; } button,.button { display:inline-block; padding:7px 9px; border:1px solid var(--accent); border-radius:4px; background:var(--accent); color:#fff; text-decoration:none; cursor:pointer; } .danger { background:var(--danger); border-color:var(--danger); } table { width:100%; border-collapse:collapse; background:#fff; } th,td { padding:9px 10px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; } th { color:var(--muted); font-weight:600; } .details { display:grid; grid-template-columns:150px 1fr; max-width:900px; } .details dt,.details dd { margin:0; padding:9px; border-bottom:1px solid var(--line); } .details dt { font-weight:700; } section { margin:24px 0; padding-top:18px; border-top:1px solid var(--line); } label { display:block; margin:10px 0; } .tool-grid,.builder-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:20px; } .notice { padding:10px 12px; margin-bottom:12px; background:#e8f3f1; border-left:4px solid var(--accent); } .notice.error { background:#f8e7e7; border-color:var(--danger); } .auth-panel { max-width:420px; margin:60px auto; background:#fff; padding:28px; border:1px solid var(--line); } .auth-panel form p { margin-bottom:16px; } .auth-panel input { display:block; width:100%; margin-top:6px; } .auth-panel .helptext,.auth-panel ul { color:var(--muted); font-size:12px; } .auth-panel-footer { margin-top:22px; padding-top:16px; border-top:1px solid var(--line); } .auth-panel-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; } .auth-panel-actions .button { text-align:center; } .muted { color:var(--muted); } @media (max-width:850px) { .topbar { padding:12px 16px; flex-wrap:wrap; } .account-summary,.account-actions { margin-left:auto; } nav { order:3; flex-basis:100%; } } @media (max-width:700px) { .page { padding:24px 14px; } .page-heading { display:block; } table { font-size:13px; } .auth-panel { margin:32px auto; padding:22px; } }

.brand { display:inline-flex; align-items:center; gap:10px; flex-shrink:0; padding:10px 0; font-size:18px; letter-spacing:-.4px; }
.brand-mark { display:block; flex-shrink:0; width:34px; height:34px; object-fit:contain; clip-path:ellipse(48.5% 50% at 50% 50%); }

/* Landing page */
.home-page { background:#f5f8f6; }
.home-page .page { max-width:1440px; padding:24px 28px 48px; }
.home-hero { position:relative; min-height:490px; margin:0; padding:0; border:1px solid #dbe5df; border-radius:24px; overflow:hidden; background:#e9efed; box-shadow:0 16px 48px #183e4509; }
.home-hero-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.home-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#f4f8f7f5 0%,#f4f8f7e8 30%,#f4f8f760 53%,transparent 72%); }
.home-hero-content { position:relative; z-index:1; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; min-height:490px; padding:52px clamp(24px,4vw,64px); }
.home-hero-content::before { content:""; width:48px; height:5px; margin-bottom:24px; border-radius:8px; background:linear-gradient(90deg,#006d77 60%,#d6a648 60%); }
.home-brand { display:flex; align-items:center; gap:18px; margin-bottom:12px; }
.home-brand .brand-mark { width:76px; height:76px; }
.home-hero-content h1 { max-width:560px; margin:0 0 12px; font-size:clamp(40px,4.5vw,64px); font-weight:750; letter-spacing:-2.5px; line-height:1.05; color:#153b3e; }
.home-brand h1 { margin:0; }
.home-hero-content p { max-width:465px; margin:0 0 28px; color:#435b5c; font-size:17px; line-height:1.7; }
.home-hero-content .home-hero-subtitle { margin:0 0 20px; color:#153b3e; font-size:clamp(22px,2.4vw,30px); font-weight:600; letter-spacing:-.5px; line-height:1.2; }
.home-hero-content p strong { display:inline-block; margin-bottom:10px; color:#006d77; font-size:21px; letter-spacing:-.4px; }
.home-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.home-actions .button { min-height:46px; padding:12px 18px; border-radius:8px; font-size:14px; font-weight:700; transition:background .15s,box-shadow .15s; }
.home-primary-action { box-shadow:0 5px 14px #006d7720; }
.home-primary-action:hover { background:#00545d; box-shadow:0 7px 18px #006d7730; }
.home-primary-action span { margin-left:15px; }
.home-actions .home-secondary-action { color:#244c4f; background:#ffffffd9; border-color:#b6caca; }
.home-secondary-action:hover { background:#fff; }
.home-sign-in { margin-left:4px; color:#244c4f; font-size:14px; font-weight:600; text-underline-offset:4px; }
.home-page a:focus-visible { outline:3px solid #a97618; outline-offset:4px; }
.home-workflow { margin:34px auto 0; padding:0; border:0; }
.home-workflow-heading { margin-bottom:22px; }
.home-workflow-heading span,.page-kicker { display:block; margin-bottom:7px; color:#8a5a0a; font-size:12px; font-weight:800; text-transform:uppercase; }
.home-workflow-heading span { color:#577775; font-size:10px; letter-spacing:1.8px; }
.home-workflow-heading h2 { margin:0; color:#183e42; font-size:clamp(23px,2.3vw,30px); letter-spacing:-.7px; line-height:1.25; }
.home-workflow ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin:0; padding:0; list-style:none; }
.home-workflow li { position:relative; min-width:0; padding:22px 24px; border:1px solid #dbe5df; border-radius:16px; background:#fff; box-shadow:0 4px 16px #183e4504; }
.home-step-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; }
.home-step-top > span { color:#68807f; font-size:12px; font-weight:650; letter-spacing:1px; }
.home-step-top svg { width:68px; height:48px; color:#007c80; overflow:visible; }
.home-workflow li:nth-child(2) { background:#eef5f2; }
.home-workflow li:nth-child(2) svg { color:#487c61; }
.home-workflow li:nth-child(3) { background:#faf7ef; border-color:#e6e0d1; }
.home-workflow li:nth-child(3) svg { color:#a87922; }
.home-workflow li strong { display:block; margin-bottom:6px; color:#203f42; font-size:17px; }
.home-workflow li p { margin:0; font-size:13px; line-height:1.6; }
@media (max-width:850px) {
  .home-hero::after { background:linear-gradient(90deg,#f4f8f7f5,#f4f8f7dd 55%,#f4f8f755); }
  .home-workflow ol { gap:12px; }
  .home-workflow li { padding:18px; }
}
@media (max-width:600px) {
  .home-page .page { padding:14px 14px 32px; }
  .home-hero { min-height:0; border-radius:18px; }
  .home-hero-image { object-position:65% center; }
  .home-hero::after { background:#f4f8f7df; }
  .home-hero-content { min-height:0; padding:32px 22px; }
  .home-hero-content h1 { font-size:42px; letter-spacing:-1.8px; }
  .home-brand { gap:12px; }
  .home-brand .brand-mark { width:54px; height:54px; }
  .home-hero-content p { font-size:15px; }
  .home-hero-content p strong { font-size:18px; }
  .home-actions { gap:10px; }
  .home-actions .button { padding:11px 13px; }
  .home-sign-in { padding:10px 0; }
  .home-workflow { margin-top:28px; }
  .home-workflow ol { grid-template-columns:1fr; }
  .home-step-top { margin-bottom:10px; }
  .home-workflow li { padding:18px 22px; }
}
.account-placeholder { max-width:680px; margin:60px auto; padding:28px 0; border-top:1px solid var(--line); }
.account-placeholder h1 { margin-bottom:10px; font-size:34px; }
.account-placeholder p { max-width:540px; margin-bottom:24px; font-size:17px; }
.contact-page { max-width:760px; margin:48px auto; padding:30px 0; border-top:1px solid var(--line); }
.contact-page h1 { margin-bottom:12px; font-size:36px; }
.contact-page p { max-width:620px; margin-bottom:24px; font-size:17px; line-height:1.65; }
.contact-email { padding:10px 14px; font-weight:700; }

@media (max-width:700px) {
  .account-placeholder { margin:34px 0; }
  .contact-page { margin:24px 0; }
}

.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.private-access-badge { display:inline-flex; width:max-content; padding:2px 6px; border:1px solid #a68b38; border-radius:3px; color:#67550d; background:#fff8d8; font-size:11px; font-weight:750; }
.private-access-heading { align-items:center; margin-bottom:24px; }
.private-access-heading .page-kicker { margin-bottom:4px; }
.private-access-summary { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); margin:0 0 28px; border:1px solid var(--line); background:#fff; }
.private-access-summary > div { display:flex; align-items:center; justify-content:space-between; gap:16px; min-width:0; min-height:64px; padding:15px 18px; border-right:1px solid var(--line); }
.private-access-summary > div:last-child { border-right:0; }
.private-access-summary dt { color:var(--muted); font-size:12px; font-weight:700; }
.private-access-summary dd { margin:0; font-size:21px; font-weight:750; font-variant-numeric:tabular-nums; }
.private-access-layout { display:grid; grid-template-columns:minmax(300px,340px) minmax(0,1fr); gap:24px; align-items:start; }
.private-collection-list,.private-access-editor { border:1px solid var(--line); background:#fff; }
.private-collection-list { position:sticky; top:18px; overflow:hidden; }
.private-collection-toolbar { padding:18px; border-bottom:1px solid var(--line); }
.private-collection-toolbar .section-heading-row { margin-bottom:14px; }
.private-collection-toolbar .section-heading-row h2 { margin:0; }
.private-new-collection { display:block; width:100%; margin-bottom:14px; padding:9px 12px; text-align:center; font-weight:700; }
.private-collection-search { margin:0; }
.private-collection-search input { width:100%; }
.collection-filter { display:grid; grid-template-columns:repeat(3,1fr); margin-top:11px; }
.collection-filter button { min-width:0; padding:6px; border-color:#aebcc2; border-radius:0; color:var(--ink); background:#fff; font-size:12px; }
.collection-filter button:first-child { border-radius:4px 0 0 4px; }
.collection-filter button + button { border-left:0; }
.collection-filter button:last-child { border-radius:0 4px 4px 0; }
.collection-filter button[aria-pressed="true"] { color:#fff; background:#455a64; border-color:#455a64; }
.private-collection-list nav { display:flex; flex:initial; flex-direction:column; align-items:stretch; gap:0; width:100%; max-height:620px; overflow:auto; }
.private-collection-link { display:flex; flex-direction:column; align-items:stretch; gap:7px; width:100%; padding:16px 18px; border-bottom:1px solid var(--line); color:var(--ink); text-align:left; text-decoration:none; }
.private-collection-link:hover { background:#f3f7f7; }
.private-collection-link.active { background:#e8f3f1; box-shadow:inset 4px 0 var(--accent); }
.collection-link-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; width:100%; }
.collection-link-heading strong { min-width:0; overflow-wrap:anywhere; }
.collection-state { flex:0 0 auto; color:#25613b; font-size:11px; font-weight:750; text-transform:uppercase; }
.collection-state.archived { color:#8b3945; }
.collection-description { display:-webkit-box; overflow:hidden; color:var(--muted); font-size:12px; line-height:1.35; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.collection-counts { display:flex; flex-wrap:wrap; gap:5px 16px; color:var(--muted); font-size:12px; }
.collection-counts > span { display:flex; gap:5px; }
.collection-counts b { color:var(--ink); }
.collection-updated { color:#7c878f; font-size:11px; }
.private-collection-empty { padding:28px 18px; text-align:center; }
.private-collection-empty strong { display:block; margin-bottom:5px; }
.private-collection-empty p { margin:0; font-size:13px; }
.private-filter-empty { margin:0; padding:18px 14px; text-align:center; }
.private-access-editor { min-width:0; margin:0; padding:0; }
.private-editor-header { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:20px 22px; border-bottom:1px solid var(--line); }
.private-editor-header h2 { margin:2px 0 0; font-size:20px; overflow-wrap:anywhere; }
.editor-eyebrow { color:var(--muted); font-size:11px; font-weight:750; text-transform:uppercase; }
.private-access-metadata { display:grid; grid-template-columns:minmax(190px,.7fr) minmax(260px,1.3fr); gap:24px; padding:24px 22px; }
.private-access-metadata label { margin:0; }
.field-label { display:block; margin-bottom:6px; font-size:13px; font-weight:700; }
.private-access-metadata input,.private-access-metadata textarea { display:block; width:100%; margin:0; }
.private-membership-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 22px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#f1f6f4; }
.private-membership-heading h3 { margin:0 0 2px; font-size:16px; }
.private-membership-heading p { margin:0; font-size:12px; }
.membership-totals { display:flex; gap:14px; white-space:nowrap; }
.membership-totals span { color:var(--muted); font-size:12px; }
.membership-totals b { color:var(--ink); font-size:15px; font-variant-numeric:tabular-nums; }
.private-picker-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.private-picker[data-picker-kind="user"] { grid-column:1 / -1; border-top:1px solid var(--line); }
.private-picker { min-width:0; margin:0; padding:20px 22px 24px; border:0; }
.private-picker + .private-picker { border-left:1px solid var(--line); }
.private-picker-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:14px; }
.private-picker-heading h4 { margin:0; font-size:15px; }
.private-picker-heading span { color:var(--muted); font-size:11px; }
.private-picker-heading strong { color:var(--accent); font-size:12px; white-space:nowrap; }
.private-picker > input[type="search"] { width:100%; margin:0; }
.picker-actions { display:flex; align-items:center; gap:14px; min-height:42px; }
.picker-actions .text-button { font-size:12px; }
.picker-selected-toggle { display:flex; align-items:center; gap:5px; margin:0; color:var(--muted); font-size:12px; }
.picker-selected-toggle input { margin:0; }
.picker-result-count { min-height:22px; padding-top:2px; color:var(--muted); font-size:11px; }
.private-checkbox-list { max-height:440px; overflow:auto; border:1px solid var(--line); }
.private-checkbox-list > label { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:11px; align-items:center; min-height:56px; margin:0; padding:10px 12px; border-bottom:1px solid var(--line); cursor:pointer; }
.private-checkbox-list > label:last-of-type { border-bottom:0; }
.private-checkbox-list > label:hover { background:#f3f7f7; }
.private-checkbox-list > label.is-selected { background:#edf7f6; }
.private-checkbox-list > label > input { accent-color:var(--accent); }
.private-checkbox-list > label > span { min-width:0; }
.private-checkbox-list strong,.private-checkbox-list small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.private-checkbox-list small { margin-top:3px; color:var(--muted); font-size:11px; }
.picker-type { display:inline-block; min-width:30px; margin-right:7px; color:#455a64; font-size:11px; }
.picker-empty-result { margin:0; padding:24px 12px; color:var(--muted); text-align:center; }
.private-editor-actions { display:flex; align-items:center; gap:16px; padding:18px 22px; border-top:1px solid var(--line); background:#f1f6f4; }
.private-editor-actions > span { color:var(--muted); font-size:12px; }
.collection-status-panel { display:flex; align-items:center; justify-content:space-between; gap:22px; padding:18px 22px; border-top:1px solid var(--line); background:#fff; }
.collection-status-panel p { margin:2px 0 0; font-size:12px; }
.collection-status-panel form { margin:0; }
.private-access-activity { margin-top:38px; padding-top:24px; }
.empty-note { margin:0; padding:14px; color:var(--muted); }
.unavailable-row { background:#fff8f0; }
.access-warning { color:#8a3d12; font-weight:700; }
.disabled-button { color:var(--muted); background:#eef1f1; border-color:var(--line); pointer-events:none; }
.private-access-button { color:#4f430d; background:#fff8d8; border-color:#b9a352; }
.private-profile-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border:1px solid var(--line); background:#fff; }
.private-profile-list > div { padding:13px 15px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.private-profile-list > div:nth-child(2n) { border-right:0; }
.private-profile-list strong,.private-profile-list span { display:block; }
.private-profile-list span { margin-top:3px; color:var(--muted); font-size:12px; }
.private-profile-list p { margin:7px 0 0; }

@media (max-width:900px) {
  .private-access-layout { grid-template-columns:1fr; }
  .private-collection-list { position:static; }
  .private-collection-list nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); max-height:360px; }
  .private-collection-link:nth-child(odd) { border-right:1px solid var(--line); }
}
@media (max-width:700px) {
  .private-access-heading { display:block; }
  .private-access-heading .actions { margin-top:12px; }
  .private-access-summary { grid-template-columns:1fr 1fr; }
  .private-access-summary > div { border-bottom:1px solid var(--line); }
  .private-access-summary > div:nth-child(2n) { border-right:0; }
  .private-access-summary > div:nth-last-child(-n+2) { border-bottom:0; }
  .private-access-metadata,.private-picker-grid,.private-collection-list nav { grid-template-columns:1fr; }
  .private-collection-link:nth-child(odd) { border-right:0; }
  .private-profile-list { grid-template-columns:1fr; }
  .private-profile-list > div { border-right:0; }
  .private-picker + .private-picker { border-top:1px solid var(--line); border-left:0; }
  .private-membership-heading,.collection-status-panel { align-items:flex-start; flex-direction:column; }
  .private-editor-actions { align-items:stretch; flex-direction:column; }
  .private-editor-actions .secondary-button { text-align:center; }
}

button:disabled { cursor:not-allowed; opacity:.48; }
.secondary-button { background:#fff; color:var(--ink); border-color:#aebcc2; }
.text-button { border:0; padding:4px 0; color:var(--accent); background:transparent; }
.primary-action { min-height:42px; padding:9px 16px; font-weight:700; }
.assembly-heading { align-items:center; margin-bottom:12px; }
.workflow-status { margin:2px 0 0; }
.assembly-workspace { display:grid; grid-template-columns:minmax(420px,.95fr) minmax(440px,1.05fr); gap:30px; align-items:start; }
.assembly-controls { min-width:0; }
.workflow-section { margin:0; padding:20px 0; border-top:1px solid var(--line); }
.workflow-section.first-section { border-top:0; padding-top:0; }
.workflow-section h2 { margin-bottom:13px; }
.workflow-section select:not([size]), .workflow-section input[type="text"], .workflow-section input[type="search"], .workflow-section input[inputmode="numeric"] { width:100%; min-height:40px; }
.section-heading-row { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.section-heading-row h2 { margin-bottom:0; }
.state-badge,.stage-number { display:inline-flex; align-items:center; justify-content:center; min-width:28px; min-height:26px; padding:2px 8px; border:1px solid #b6c2c7; border-radius:4px; color:var(--muted); font-size:12px; font-weight:700; text-transform:uppercase; }
.state-badge.complete { color:#245d37; background:#e7f4ea; border-color:#a7cfb2; }
.state-badge.blocked { color:#7f1d2d; background:#fff0f1; border-color:#d8aeb3; }
.stage-number { min-width:26px; border-radius:50%; color:#fff; background:#455a64; border-color:#455a64; }
.assembly-chain { display:grid; gap:7px; margin:15px 0 12px; padding:0; list-style:none; }
.chain-row { display:grid; grid-template-columns:40px minmax(0,1fr) auto; align-items:center; gap:10px; min-height:54px; padding:7px 9px; background:#fff; border:1px solid var(--line); border-radius:5px; }
.chain-row.no-type { grid-template-columns:minmax(0,1fr) auto; }
.type-code { display:inline-flex; align-items:center; justify-content:center; width:38px; min-height:30px; border-radius:4px; color:#fff; background:#455a64; font-size:12px; font-weight:800; }
.chain-details,.branch-details { min-width:0; display:flex; flex-direction:column; }
.chain-details strong,.branch-details strong,.chain-details small,.branch-details small { overflow-wrap:anywhere; }
.chain-details small,.branch-details small { color:var(--muted); }
.module-picker { padding:13px; background:#eef4f3; border-left:3px solid var(--accent); }
.module-picker label { margin-top:0; font-weight:700; }
.module-picker select { display:block; width:100%; min-height:154px; margin-top:8px; padding:4px; }
.module-picker select option { padding:6px 8px; }
.module-picker select option.private-module-option { color:#b42318; font-weight:750; }
.private-module-row { border-color:#d9938d; background:#fff6f5; }
.private-module-row .chain-details strong,.private-module-preview .legend-heading strong { color:#b42318; }
.assembly-workspace .private-access-badge { color:#9f1c13; background:#fff0ee; border-color:#df9d97; }
.field-note,.validation-line { margin:7px 0 0; color:var(--muted); font-size:13px; }
.validation-line { min-height:20px; }
.output-grid,.batch-header-grid { display:grid; grid-template-columns:minmax(150px,.7fr) minmax(260px,1.3fr); gap:16px; align-items:end; }
.output-grid.single-field { grid-template-columns:minmax(150px,260px); }
.segmented-field { margin:10px 0; padding:0; border:0; }
.segmented-field legend { margin-bottom:6px; font-weight:400; }
.segmented-control { display:grid; grid-template-columns:1fr 1fr; }
.segmented-control input { position:absolute; opacity:0; pointer-events:none; }
.segmented-control label { margin:0; padding:8px 10px; border:1px solid #aebcc2; color:var(--ink); background:#fff; text-align:center; cursor:pointer; }
.segmented-control label:first-of-type { border-radius:4px 0 0 4px; }
.segmented-control label:last-of-type { border-left:0; border-radius:0 4px 4px 0; }
.segmented-control input:checked + label { color:#fff; background:var(--accent); border-color:var(--accent); }
.output-section .primary-action { margin-top:12px; width:100%; }
.construct-preview { position:sticky; top:18px; min-width:0; padding:20px; border:1px solid var(--line); border-radius:6px; background:#fff; }
.construct-map { position:relative; width:min(100%,460px); aspect-ratio:1; margin:7px auto 14px; }
.construct-map svg { display:block; width:100%; height:100%; }
.construct-map-empty { position:absolute; inset:0; display:grid; place-items:center; color:var(--muted); }
.construct-map-empty[hidden] { display:none; }
.map-segment { fill:none; stroke-width:34; stroke-linecap:butt; }
.map-center-value,.map-center-unit { text-anchor:middle; fill:var(--ink); }
.map-center-value { font-size:26px; font-weight:750; }
.map-center-unit { fill:var(--muted); font-size:13px; }
.length-total { color:var(--muted); font-variant-numeric:tabular-nums; }
.preview-legend { display:grid; gap:0; border-top:1px solid var(--line); }
.legend-row { display:grid; grid-template-columns:12px minmax(0,1fr); gap:10px; padding:12px 0; border-bottom:1px solid #e4e9eb; }
.legend-swatch { width:10px; height:34px; border-radius:2px; }
.legend-heading { display:flex; justify-content:space-between; gap:12px; }
.legend-heading span { color:var(--muted); white-space:nowrap; }
.legend-row p,.keyword-line { margin:3px 0 0; color:var(--muted); font-size:12px; overflow-wrap:anywhere; }
.batch-workspace { display:grid; gap:0; }
.batch-header-grid { grid-template-columns:minmax(280px,1.5fr) minmax(260px,1fr); }
.batch-header-grid.restricted-output { grid-template-columns:1fr; }
.batch-slot-layout { display:grid; grid-template-columns:minmax(320px,.9fr) minmax(420px,1.1fr); gap:24px; align-items:start; margin-top:14px; }
.batch-slot-list { margin-top:0; }
.batch-slot-row { align-items:start; }
.batch-slot-actions { display:flex; align-items:center; gap:13px; padding:5px 2px; }
.danger-text { color:var(--danger); }
.batch-slot-picker { min-width:0; }
.batch-mode-field { margin-top:0; }
.batch-option-actions { display:flex; justify-content:flex-end; gap:7px; margin:9px 0; }
.branch-list { display:grid; gap:6px; max-height:430px; overflow:auto; padding-right:4px; }
.branch-option { display:grid; grid-template-columns:auto 40px minmax(0,1fr); gap:8px; align-items:start; margin:0; padding:9px; background:#fff; border:1px solid var(--line); border-radius:5px; cursor:pointer; }
.branch-option input { width:17px; height:17px; margin:7px 1px 0 0; accent-color:var(--accent); }
.stage-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:10px; }
.batch-summary { display:flex; align-items:center; justify-content:space-between; gap:22px; padding-bottom:0; }
.batch-summary h2 { margin-bottom:3px; }
.batch-summary .primary-action { min-width:220px; }
@media (max-width:1050px) {
  .assembly-workspace { grid-template-columns:1fr; }
  .construct-preview { position:static; }
  .batch-slot-layout { grid-template-columns:1fr; }
  .batch-header-grid { grid-template-columns:1fr 1fr; }
  .batch-header-grid > label:first-child { grid-column:1 / -1; }
}
@media (max-width:700px) {
  .assembly-heading { display:flex; }
  .output-grid,.batch-header-grid { grid-template-columns:1fr; }
  .batch-header-grid > label:first-child { grid-column:auto; }
  .batch-slot-row { grid-template-columns:38px minmax(0,1fr); }
  .batch-slot-actions { grid-column:2; justify-content:flex-start; }
  .batch-option-actions { justify-content:stretch; }
  .batch-option-actions button { flex:1; }
  .batch-summary { align-items:stretch; flex-direction:column; }
  .batch-summary .primary-action { width:100%; }
  .construct-preview { padding:14px; }
  .legend-heading { display:block; }
}

.catalog-heading { align-items:center; }
.catalog-header-actions { display:flex; align-items:center; gap:14px; padding:5px; border:1px solid var(--line); border-radius:6px; background:#fff; box-shadow:0 1px 2px rgba(23,33,43,.06); }
.catalog-view-switch { display:flex; align-items:stretch; border:1px solid #aebcc2; border-radius:4px; overflow:hidden; }
.catalog-switch-button { padding:7px 12px; color:var(--ink); background:#fff; text-decoration:none; border-right:1px solid #aebcc2; }
.catalog-switch-button:last-child { border-right:0; }
.catalog-switch-button.active { color:#fff; background:#455a64; }
.catalog-secondary-actions { display:flex; align-items:center; gap:8px; padding-left:14px; border-left:1px solid var(--line); }
.location-button { background:#2f6f44; border-color:#2f6f44; font-weight:700; }
.export-button { color:var(--ink); background:#fff; border-color:#aebcc2; }
.catalog-tools { margin:0 0 18px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#fff; }
.catalog-tools summary { padding:12px 14px; cursor:pointer; font-weight:700; }
.catalog-tool-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; border-top:1px solid var(--line); }
.catalog-tool-grid form { display:flex; flex-direction:column; align-items:flex-start; gap:10px; min-width:0; padding:16px; border-right:1px solid var(--line); }
.catalog-tool-grid form:last-child { border-right:0; }
.catalog-tool-grid h2 { margin:0; font-size:16px; }
.catalog-tool-grid label { margin:0; }
.catalog-tool-grid input[type="file"],.catalog-tool-grid select { width:100%; }
.catalog-filters { display:grid; grid-template-columns:minmax(220px,1.4fr) repeat(4,minmax(120px,.8fr)) auto; }
.catalog-table-wrap { overflow:auto; border:1px solid var(--line); background:#fff; }
.catalog-table { min-width:920px; }
.catalog-table tbody tr:hover { background:#f2f7f6; }
.record-filename { display:block; max-width:430px; margin-top:2px; color:var(--muted); overflow-wrap:anywhere; }
.record-actions { min-width:285px; white-space:nowrap; }
.record-action-group { display:flex; align-items:center; gap:16px; min-height:30px; }
.record-action-group form { display:inline; margin:0; }
.row-action { display:inline-block; padding:4px 7px; border:1px solid #aebcc2; border-radius:4px; color:var(--ink); background:#fff; text-decoration:none; line-height:1.2; }
.download-action { color:#fff; background:var(--accent); border-color:var(--accent); font-weight:700; }
.delete-action { color:var(--danger); border-color:#d8aeb3; }
.record-heading h1 { max-width:850px; overflow-wrap:anywhere; }
.record-details { max-width:none; }
.inline-action { margin-left:12px; white-space:nowrap; }
.record-edit-grid { display:grid; grid-template-columns:minmax(0,2fr) minmax(220px,1fr); gap:28px; align-items:start; }
.record-edit-grid form > button { margin-top:14px; }
.keyword-fieldset { margin:18px 0 0; padding:0; border:0; }
.keyword-fieldset legend { margin-bottom:9px; font-weight:700; }
.keyword-choice-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }
.keyword-choice { display:flex; align-items:center; gap:7px; min-height:36px; margin:0; padding:5px 7px; border:1px solid var(--line); border-radius:5px; background:#fff; cursor:pointer; font-size:13px; overflow-wrap:anywhere; }
.keyword-choice input { width:17px; height:17px; margin:0; accent-color:var(--accent); }
.location-heading { align-items:center; }
.location-toolbar { display:grid; grid-template-columns:auto minmax(260px,480px) auto; gap:10px; align-items:center; margin:18px 0 12px; }
.location-toolbar label { margin:0; font-weight:700; }
.location-table-wrap { max-height:68vh; overflow:auto; border:1px solid var(--line); background:#fff; }
.location-table { min-width:1040px; }
.location-table th { position:sticky; top:0; z-index:2; background:#eef3f3; }
.location-table tr[hidden] { display:none; }
.location-table tr:target { background:#e8f3f1; }
.location-table select { width:100%; min-width:90px; }
.location-filename { max-width:520px; overflow-wrap:anywhere; }
.location-save-bar { position:sticky; bottom:0; display:flex; justify-content:flex-end; gap:9px; padding:14px 0; background:var(--paper); }
.catalog-pagination { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:18px; min-height:58px; padding:10px 0; }
.catalog-pagination > span { color:var(--muted); font-variant-numeric:tabular-nums; }
.pagination-side { display:flex; justify-content:flex-start; }
.pagination-next { justify-content:flex-end; }

@media (max-width:950px) {
  .catalog-tool-grid { grid-template-columns:1fr; }
  .catalog-tool-grid form { border-right:0; border-bottom:1px solid var(--line); }
  .catalog-tool-grid form:last-child { border-bottom:0; }
  .catalog-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .record-edit-grid { grid-template-columns:1fr; }
  .keyword-choice-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:700px) {
  .catalog-heading,.location-heading { display:block; }
  .catalog-heading .actions,.location-heading .actions { margin-top:12px; }
  .catalog-filters,.location-toolbar { grid-template-columns:1fr; }
  .catalog-header-actions { align-items:stretch; flex-direction:column; gap:8px; margin-top:12px; }
  .catalog-view-switch { display:grid; grid-template-columns:1fr 1fr; text-align:center; }
  .catalog-secondary-actions { padding:8px 0 0; border-top:1px solid var(--line); border-left:0; }
  .catalog-secondary-actions .button { flex:1; text-align:center; }
  .catalog-pagination { grid-template-columns:1fr 1fr; }
  .catalog-pagination > span { grid-column:1 / -1; grid-row:1; text-align:center; }
  .pagination-side { grid-row:2; }
  .keyword-choice-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .record-action-group { gap:12px; }
}

.credit-balance { padding:5px 8px; border:1px solid #9dbfc1; border-radius:4px; color:#075a62; background:#edf7f6; font-size:13px; font-weight:750; text-decoration:none; }
.builder-credit-summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:11px 12px; border:1px solid var(--line); background:#fff; }
.builder-credit-summary > div { display:flex; align-items:baseline; gap:7px; }
.builder-credit-summary strong { font-size:23px; }
.builder-credit-summary span { color:var(--muted); }
.zero-credit-message { margin:10px 0 0; padding:9px 11px; border-left:3px solid #8a5a0a; background:#fff7e8; color:#6b4a11; }
.balance-panel { display:flex; flex-direction:column; min-width:150px; padding:10px 14px; border:1px solid #9dbfc1; background:#edf7f6; }
.balance-panel strong { color:#075a62; font-size:28px; line-height:1; }
.balance-panel span { margin-top:4px; color:var(--muted); font-size:13px; }
.search-toolbar { display:grid; grid-template-columns:auto minmax(220px,460px) auto auto; gap:9px; align-items:center; margin:0 0 18px; padding:13px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.search-toolbar label { margin:0; font-weight:700; }
.table-frame { overflow:auto; border:1px solid var(--line); background:#fff; }
.data-table { min-width:780px; }
.data-table th { background:#eef3f3; }
.table-subline { display:block; max-width:500px; margin-top:3px; color:var(--muted); overflow-wrap:anywhere; }
.empty-cell { padding:24px; color:var(--muted); text-align:center; }
.balance-value { display:inline-flex; min-width:42px; justify-content:center; padding:4px 8px; border:1px solid #9dbfc1; color:#075a62; background:#edf7f6; font-weight:800; }
.credit-adjust-form { display:grid; grid-template-columns:90px minmax(220px,1fr) auto auto; gap:8px; align-items:end; min-width:560px; }
.credit-adjust-form label { margin:0; color:var(--muted); font-size:12px; }
.credit-adjust-form input { display:block; width:100%; margin-top:3px; }
.account-access-form { display:grid; grid-template-columns:minmax(190px,1fr) auto; gap:8px; align-items:end; min-width:300px; }
.account-access-form label { margin:0; color:var(--muted); font-size:12px; }
.account-access-form input { display:block; width:100%; margin-top:3px; }
.compact-button { min-height:34px; padding:6px 10px; white-space:nowrap; }
.add-credit,.primary-compact { background:#2f6f44; border-color:#2f6f44; }
.remove-credit { color:var(--danger); background:#fff; border-color:#d8aeb3; }
.records-section { margin-top:28px; }
.records-section > .section-heading-row { margin-bottom:10px; }
.records-section > .section-heading-row span { color:var(--muted); }
.signed-amount { font-weight:800; font-variant-numeric:tabular-nums; }
.signed-amount.positive { color:#2f6f44; }
.signed-amount.negative { color:var(--danger); }
.table-actions { display:flex; align-items:center; gap:8px; }
.table-actions form { margin:0; }
.basket-link { display:inline-flex; align-items:center; gap:5px; }
.basket-count { display:inline-flex; min-width:21px; height:21px; align-items:center; justify-content:center; padding:0 5px; border-radius:50%; background:#0b6870; color:#fff; font-size:12px; font-weight:800; }
.basket-checkout-band { display:flex; align-items:center; justify-content:flex-end; gap:28px; margin-top:18px; padding:16px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.basket-checkout-band > .basket-total { display:flex; flex-direction:column; color:var(--muted); font-size:13px; }
.basket-checkout-band > .basket-total strong { color:var(--ink); font-size:24px; }
.basket-checkout-band form { margin:0; }
.basket-order-actions { display:flex; flex-direction:row; align-items:center; gap:10px; }
.basket-order-actions form { margin:0; }
.postal-address { display:flex; flex-direction:column; margin:0; font-style:normal; overflow-wrap:anywhere; }
.account-information { max-width:820px; margin-top:0; padding-top:0; border-top:0; }
.account-details { display:grid; grid-template-columns:180px minmax(0,1fr); margin:0; border:1px solid var(--line); background:#fff; }
.account-details dt,.account-details dd { margin:0; padding:13px 15px; border-bottom:1px solid var(--line); }
.account-details dt { color:var(--muted); font-weight:700; }
.account-details dt:last-of-type,.account-details dd:last-of-type { border-bottom:0; }
.account-address-note { margin:14px 0 0; }
.basket-delivery-band { display:grid; grid-template-columns:minmax(180px,.7fr) minmax(240px,1fr) auto; align-items:start; gap:24px; margin:0 0 18px; padding:14px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.basket-delivery-band > div { display:flex; flex-direction:column; }
.basket-delivery-band .page-kicker { margin-bottom:4px; }
.delivery-label { margin-bottom:4px; color:var(--muted); font-size:12px; font-weight:700; text-transform:uppercase; }
.account-address-cell { min-width:230px; }
.address-editor { margin-top:9px; }
.address-editor summary { color:var(--accent); font-weight:700; cursor:pointer; }
.address-edit-form { display:grid; grid-template-columns:1fr 1fr; gap:7px; width:430px; margin-top:9px; padding-top:9px; border-top:1px solid var(--line); }
.address-edit-form label { margin:0; color:var(--muted); font-size:12px; }
.address-edit-form input { display:block; width:100%; margin-top:3px; }
.address-edit-form button { align-self:end; }

@media (max-width:850px) {
  .account-summary { flex-wrap:wrap; white-space:normal; }
  .credit-adjust-form { grid-template-columns:80px minmax(180px,1fr); min-width:380px; }
  .credit-adjust-form button { width:100%; }
  .account-access-form { min-width:280px; }
  .basket-delivery-band { grid-template-columns:1fr 1fr; }
  .basket-delivery-band > a { grid-column:1 / -1; }
}
@media (max-width:700px) {
  .order-page-heading { display:flex; align-items:flex-start; }
  .search-toolbar { grid-template-columns:1fr 1fr; }
  .search-toolbar label,.search-toolbar input { grid-column:1 / -1; }
  .builder-credit-summary { align-items:flex-start; flex-direction:column; }
  .basket-checkout-band { align-items:stretch; flex-direction:column; gap:12px; }
  .basket-order-actions { flex-wrap:wrap; }
  .basket-delivery-band,.account-details { grid-template-columns:1fr; }
  .account-details dt { padding-bottom:3px; border-bottom:0; }
  .account-details dd { padding-top:3px; }
  .address-edit-form { grid-template-columns:1fr; width:280px; }
}

/* Public assembly guide */
.assembly-guide-page { background:#f5f8f6; }
.assembly-guide-page .page { max-width:1200px; }
.guide-hero { position:relative; isolation:isolate; overflow:hidden; padding:32px 40px; border:1px solid #d6e4dd; border-radius:22px; background:linear-gradient(120deg,#e7f1ed,#f5f7ef); }
.guide-back { display:inline-block; margin-bottom:30px; color:#466561; font-size:13px; text-decoration:none; }
.guide-back span { margin-right:6px; }
.guide-hero .page-kicker { color:#557b71; font-size:11px; letter-spacing:1.5px; }
.guide-hero h1 { position:relative; max-width:760px; margin:0 0 22px; color:#183e42; font-size:clamp(30px,4vw,46px); line-height:1.15; letter-spacing:-1.5px; }
.guide-hero-bottom { display:flex; align-items:center; flex-wrap:wrap; gap:16px 28px; }
.guide-hero-bottom p { margin:0; color:#4d6864; }
.guide-hero-bottom .button { padding:11px 17px; border-radius:8px; font-weight:650; }
.guide-hero-bottom .button span { margin-left:18px; }
.guide-motif { position:absolute; z-index:-1; right:-65px; top:-55px; width:340px; height:340px; border:38px solid #006d7709; border-radius:50%; }
.guide-motif span { position:absolute; inset:20px; border:2px dashed #006d771c; border-radius:50%; }
.guide-layout { display:grid; grid-template-columns:235px minmax(0,1fr); align-items:start; gap:36px; margin-top:32px; }
.guide-sidebar { position:sticky; top:24px; }
.guide-sidebar nav { display:flex; flex-direction:column; align-items:stretch; gap:4px; }
.guide-nav-label { margin:10px 12px; color:#6a7e79; font-size:10px; font-weight:750; letter-spacing:1.7px; text-transform:uppercase; }
.guide-sidebar nav a { display:flex; align-items:center; gap:12px; padding:10px 12px; border-radius:7px; color:#355651; font-size:13px; }
.guide-sidebar nav a span { color:#718f83; font-size:11px; font-variant-numeric:tabular-nums; }
.guide-sidebar nav a:hover { background:#e5eee8; color:#005e65; }
.guide-contact { display:grid; gap:9px; margin:22px 12px 0; padding-top:22px; border-top:1px solid #d6e4dd; font-size:12px; }
.guide-contact strong { color:#526b65; font-weight:600; }
.guide-contact a { width:fit-content; text-underline-offset:4px; }
.guide-steps { overflow:hidden; border:1px solid #dce5df; border-radius:16px; background:#fff; }
.guide-step { display:grid; grid-template-columns:38px minmax(0,1fr); gap:18px; margin:0; padding:30px; border-top:1px solid #e6ece8; scroll-margin-top:24px; }
.guide-step:first-child { border-top:0; }
.guide-step:target { background:#f5faf7; }
.guide-step-number { display:flex; align-items:center; justify-content:center; height:38px; border:1px solid #d3e5db; border-radius:50%; color:#337568; background:#eff6f1; font-size:12px; font-weight:750; }
.guide-step h2 { margin:6px 0 16px; color:#214843; font-size:20px; line-height:1.35; letter-spacing:-.35px; }
.guide-step p { margin:0 0 15px; color:#52645f; font-size:14px; line-height:1.8; }
.guide-step p:last-child { margin-bottom:0; }
.guide-step a { overflow-wrap:anywhere; text-underline-offset:3px; }
.guide-callout { margin-top:20px; padding:18px 20px; border-left:3px solid #af8735; border-radius:0 8px 8px 0; background:#faf6eb; }
.guide-callout > strong { display:block; margin-bottom:8px; color:#76602e; font-size:13px; }
.guide-callout p { color:#72664a; font-size:13px; }
.guide-feedback-link { display:inline-block; font-size:14px; font-weight:650; }
.assembly-guide-page a:focus-visible { outline:3px solid #a97618; outline-offset:4px; }
@media (max-width:850px) {
  .guide-layout { grid-template-columns:1fr; gap:24px; }
  .guide-sidebar { position:static; }
  .guide-sidebar nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .guide-nav-label { grid-column:1 / -1; }
  .guide-contact { display:none; }
}
@media (max-width:600px) {
  .guide-hero { padding:24px; }
  .guide-hero h1 { letter-spacing:-.8px; }
  .guide-motif { right:-200px; }
  .guide-back { margin-bottom:24px; }
  .guide-sidebar nav a { gap:8px; padding:9px 5px; font-size:12px; }
  .guide-step { grid-template-columns:30px minmax(0,1fr); gap:12px; padding:24px 16px; }
  .guide-step-number { height:30px; font-size:11px; }
  .guide-step h2 { margin-top:2px; font-size:19px; }
  .guide-callout { padding:14px; }
}
.guide-protocol-download { display:flex; align-items:center; gap:12px; margin:22px 0 0; padding:16px 12px; border:1px solid #cbded3; border-radius:10px; color:#245e54; background:#eaf3ed; text-decoration:none; }
.guide-protocol-download:hover { background:#deece3; border-color:#96baa6; }
.guide-protocol-icon { flex:0 0 28px; font-size:26px; text-align:center; }
.guide-protocol-download strong { display:block; font-size:12px; line-height:1.5; }
.guide-protocol-download small { display:block; margin-top:3px; color:#526f65; font-size:11px; }

/* Checkout agreement and public terms */
.basket-terms { margin-top:24px; padding:18px 20px; border:1px solid #d3e2d9; border-radius:10px; background:#eef5f0; }
.basket-terms label { display:flex; align-items:flex-start; gap:12px; margin:0; color:#294e45; font-size:14px; cursor:pointer; }
.basket-terms input { flex:0 0 auto; width:18px; height:18px; margin:2px 0 0; accent-color:var(--accent); cursor:pointer; }
.basket-terms a { text-underline-offset:3px; font-weight:650; }
.basket-terms input:focus-visible { outline:3px solid #a97618; outline-offset:4px; }
.terms-page { max-width:860px; margin:0 auto; }
.terms-content { margin-top:24px; padding:36px 40px; border:1px solid #dce5df; border-radius:16px; background:#fff; }
.terms-content p { color:#465c54; font-size:15px; line-height:1.85; margin:0 0 24px; }
.terms-content p:last-child { margin-bottom:0; }
.terms-content h2 { margin:30px 0 12px; color:#214843; font-size:20px; }
.terms-content a { text-underline-offset:3px; }
@media (max-width:600px) {
  .terms-content { padding:24px; }
  .basket-terms { padding:16px; }
}

.catalog-privacy-form { margin:0; }
.catalog-privacy-form select { min-width:100px; margin:0; padding:6px 8px; }

.backbone-picker summary { cursor:pointer; font-weight:700; overflow-wrap:anywhere; }
.backbone-picker[open] summary { margin-bottom:10px; }
