:root {
  color-scheme: dark;
  --bg: #080d14;
  --bg-soft: #0b121d;
  --panel: #101a27;
  --panel-2: #142131;
  --panel-3: #19293b;
  --line: #24364a;
  --line-strong: #34506d;
  --text: #f3f7fb;
  --muted: #96a8bb;
  --blue: #3097ff;
  --blue-bright: #59adff;
  --blue-soft: rgba(48, 151, 255, .13);
  --green: #39d6a0;
  --amber: #f2b84b;
  --red: #ff766f;
  --radius: 18px;
  --shadow: 0 24px 70px rgba(0, 0, 0, .28);
  --surface-page: var(--bg);
  --surface-panel: var(--panel);
  --surface-elevated: var(--panel-2);
  --surface-subtle: var(--panel-3);
  --surface-dark-canvas: #09121c;
  --text-primary: var(--text);
  --text-secondary: #c5d4e2;
  --text-muted: var(--muted);
  --text-inverse: #f3f7fb;
  --border-default: var(--line);
  --border-strong: var(--line-strong);
  --accent-primary: var(--blue);
  --accent-primary-hover: var(--blue-bright);
  --status-success: var(--green);
  --status-warning: var(--amber);
  --status-error: var(--red);
  --status-info: var(--blue);
}

* { box-sizing: border-box; }
html { background: var(--bg); min-width: 320px; }
body {
  margin: 0;
  min-height: 100vh;
  background:
    radial-gradient(circle at 84% -10%, rgba(35, 118, 204, .18), transparent 32rem),
    linear-gradient(180deg, #09111b 0, var(--bg) 34rem);
  color: var(--text);
  font-family: "Noto Sans Hebrew", Arial, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { font: inherit; }
button { color: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid rgba(48, 151, 255, .4);
  outline-offset: 2px;
}
button:disabled, input:disabled { opacity: .5; cursor: not-allowed; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.icon { display: block; flex: 0 0 auto; }
.app-frame { min-height: 100vh; min-height: 100dvh; padding-bottom: 24px; }
.main { width: min(1400px, calc(100% - 40px)); margin: 0 auto; padding: 34px 0 92px; }

.topbar {
  position: sticky;
  inset-block-start: 0;
  z-index: 60;
  min-height: 72px;
  padding: 10px max(20px, calc((100vw - 1400px) / 2));
  border-bottom: 1px solid rgba(57, 81, 107, .6);
  background: rgba(8, 14, 23, .86);
  backdrop-filter: blur(18px);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 24px;
}
.brand-button { border: 0; background: none; padding: 0; display: flex; align-items: center; gap: 11px; cursor: pointer; justify-self: start; text-align: right; }
.brand-button > span:last-child { display: flex; flex-direction: column; line-height: 1.15; }
.brand-button strong { font-size: 1.08rem; letter-spacing: .01em; }
.brand-button small { margin-top: 4px; color: var(--muted); font-size: .75rem; }
.brand-mark {
  width: 44px;
  height: 44px;
  border-radius: 13px;
  display: grid;
  place-items: center;
  background: linear-gradient(145deg, #48a7ff, #1767c3);
  color: white;
  box-shadow: 0 8px 28px rgba(48, 151, 255, .24), inset 0 1px rgba(255, 255, 255, .25);
  font-weight: 900;
  letter-spacing: -.04em;
}
.desktop-nav { display: flex; align-items: center; gap: 4px; border: 1px solid var(--line); background: rgba(15, 25, 38, .72); padding: 4px; border-radius: 14px; }
.nav-item { border: 0; background: transparent; color: var(--muted); border-radius: 10px; padding: 9px 14px; display: flex; align-items: center; gap: 8px; cursor: pointer; font-weight: 700; font-size: .88rem; }
.nav-item:hover { color: var(--text); background: rgba(255, 255, 255, .04); }
.nav-item.active { color: white; background: var(--panel-3); box-shadow: inset 0 0 0 1px rgba(77, 163, 255, .2); }
.nav-item.active .icon { color: var(--blue-bright); }
.top-actions { justify-self: end; display: flex; align-items: center; gap: 12px; }
.save-status { color: var(--muted); font-size: .78rem; min-width: 46px; }
.ai-trigger { border: 1px solid #295480; border-radius: 12px; background: var(--blue-soft); color: #beddff; padding: 10px 13px; display: flex; align-items: center; gap: 8px; cursor: pointer; font-weight: 800; font-size: .86rem; }
.ai-trigger:hover { background: rgba(48, 151, 255, .2); }
.mobile-nav { display: none; }

.page-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin-bottom: 24px; }
.page-title h1, .panel-heading h1, .production-head h1 { margin: 0; font-size: clamp(1.7rem, 2.5vw, 2.35rem); letter-spacing: -.035em; line-height: 1.1; }
.page-title p, .panel-heading p, .production-head p { margin: 8px 0 0; color: var(--muted); }
h2 { margin: 0 0 10px; font-size: 1.2rem; }
h3 { margin: 0; font-size: 1rem; }
p { margin: 0; }
.kicker, .modal-kicker { display: block; margin-bottom: 8px; color: var(--blue-bright); font-size: .74rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }

.primary, .secondary, .quiet, .text-button, .small-button {
  border: 0;
  border-radius: 12px;
  min-height: 44px;
  padding: 10px 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  font-weight: 850;
  text-decoration: none;
}
.primary { background: linear-gradient(145deg, #3ba1ff, #1973d5); color: white; box-shadow: 0 10px 26px rgba(27, 116, 213, .24), inset 0 1px rgba(255, 255, 255, .24); }
.primary:hover { filter: brightness(1.08); transform: translateY(-1px); }
.secondary { background: var(--surface-elevated); color: var(--text-secondary); border: 1px solid var(--border-strong); }
.secondary:hover { background: var(--surface-subtle); border-color: #9bc1e8; }
.secondary.active { color: var(--accent-primary); background: var(--blue-soft); border-color: var(--accent-primary); }
.quiet { min-height: 36px; padding: 6px 10px; background: none; color: var(--muted); font-size: .8rem; }
.quiet:hover { color: var(--accent-primary); background: var(--blue-soft); }
.text-button { min-height: auto; padding: 0; background: none; color: var(--blue-bright); text-decoration: underline; }
.small-button { min-height: 36px; padding: 7px 11px; font-size: .8rem; }
.icon-button { width: 40px; height: 40px; border: 1px solid var(--border-default); border-radius: 11px; background: var(--surface-elevated); color: var(--text-secondary); display: grid; place-items: center; cursor: pointer; padding: 0; }
.icon-button:hover { border-color: var(--border-strong); background: var(--surface-subtle); }

.stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-bottom: 18px; }
.stat-card { min-height: 132px; border: 1px solid var(--border-default); border-radius: var(--radius); background: var(--surface-panel); color: var(--text-primary); padding: 19px; display: flex; flex-direction: column; box-shadow: var(--shadow); }
.stat-card > span { color: var(--muted); font-size: .86rem; font-weight: 700; }
.stat-card strong { font-size: 2.2rem; line-height: 1; margin: 15px 0 8px; letter-spacing: -.04em; }
.stat-card small { color: #71859a; font-size: .78rem; }
.project-toolbar { display: flex; gap: 16px; justify-content: space-between; align-items: center; border: 1px solid var(--border-default); background: var(--surface-panel); padding: 10px; border-radius: 15px; margin-bottom: 14px; }
.search-box { flex: 1; }
.search-box input { width: 100%; max-width: 560px; border: 0; background: transparent; color: var(--text); padding: 10px 12px; font-size: .94rem; }
.search-box input::placeholder { color: #72859a; }
.filter-tabs { display: flex; gap: 3px; }
.filter-tabs button, .view-tabs button { border: 0; border-radius: 9px; background: transparent; color: var(--muted); padding: 8px 13px; cursor: pointer; font-weight: 800; font-size: .82rem; }
.filter-tabs button.active, .view-tabs button.active { color: var(--accent-primary); background: var(--blue-soft); box-shadow: inset 0 0 0 1px #9bc1e8; }
.project-list { display: grid; gap: 10px; }
.project-card { border: 1px solid var(--border-default); border-radius: 16px; background: var(--surface-panel); color: var(--text-primary); overflow: hidden; transition: border-color .18s, transform .18s; }
.project-card:hover { border-color: #385777; transform: translateY(-1px); }
.project-card.archived { opacity: .72; }
.project-open { width: 100%; border: 0; background: transparent; padding: 16px; display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; text-align: right; cursor: pointer; }
.project-icon { width: 44px; height: 44px; border: 1px solid #2b4a68; border-radius: 13px; background: var(--blue-soft); color: var(--blue-bright); display: grid; place-items: center; flex: 0 0 auto; }
.project-main { min-width: 0; display: flex; flex-direction: column; gap: 7px; }
.project-heading { display: flex; align-items: center; gap: 10px; min-width: 0; }
.project-heading strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 1rem; }
.project-meta { color: var(--muted); font-size: .8rem; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.status-badge { border-radius: 999px; padding: 4px 8px; font-size: .68rem; font-weight: 900; white-space: nowrap; background: #edf1f5; color: #475d70; }
.status-measured { background: #e7f3ff; color: #075da8; }
.status-planned { background: #eeeafe; color: #5845a6; }
.status-quoted { background: #fff3d6; color: #7a4a00; }
.status-ready { background: #e3f7ee; color: #176344; }
.progress-track { width: min(320px, 100%); height: 4px; border-radius: 999px; background: #dce5ed; overflow: hidden; }
.progress-track i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #217edc, #54b4ff); }
.project-actions { border-top: 1px solid var(--border-default); padding: 4px 12px; display: flex; justify-content: flex-end; gap: 4px; }
.empty-state { border: 1px dashed var(--border-strong); border-radius: 20px; min-height: 300px; padding: 40px 24px; background: var(--surface-subtle); display: grid; place-items: center; align-content: center; text-align: center; }
.empty-state h2 { margin: 18px 0 7px; }
.empty-state p { color: var(--muted); margin-bottom: 20px; }
.empty-icon { width: 68px; height: 68px; display: grid; place-items: center; border-radius: 20px; color: var(--blue-bright); background: var(--blue-soft); border: 1px solid #28517a; }

.modal-backdrop { position: fixed; inset: 0; z-index: 100; background: rgba(2, 6, 12, .74); backdrop-filter: blur(8px); display: grid; place-items: center; padding: 20px; }
.modal-card { position: relative; width: min(640px, 100%); border: 1px solid var(--border-default); border-radius: 22px; background: var(--surface-elevated); color: var(--text-primary); padding: 30px; box-shadow: 0 30px 90px rgba(25,44,62,.22); }
.modal-card h2 { font-size: 1.7rem; margin: 0 0 6px; }
.modal-card > p { color: var(--muted); margin-bottom: 22px; }
.modal-close { position: absolute; inset-block-start: 18px; inset-inline-end: 18px; }
.product-picker { display: grid; gap: 9px; }
.product-choice { width: 100%; border: 1px solid var(--border-default); border-radius: 14px; background: var(--surface-panel); color: var(--text-primary); padding: 15px; display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; text-align: start; cursor: pointer; }
.product-choice:hover { border-color: var(--accent-primary); background: var(--surface-subtle); transform: translateY(-1px); }
.product-choice > span { width: 48px; height: 48px; border-radius: 13px; color: var(--blue-bright); background: var(--blue-soft); display: grid; place-items: center; grid-row: span 2; }
.product-choice strong { align-self: end; }
.product-choice small { align-self: start; color: var(--muted); font-size: .78rem; }
.product-choice > .icon { grid-row: span 2; }

.project-context { margin-bottom: 20px; }
.back-link { border: 0; background: none; color: var(--muted); padding: 4px 0; display: flex; align-items: center; gap: 6px; cursor: pointer; font-size: .82rem; }
.back-link:hover { color: var(--accent-primary); }
.context-line { margin-top: 12px; display: flex; align-items: center; gap: 12px; }
.context-line > div { display: flex; flex-direction: column; min-width: 0; }
.context-line > div strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.context-line > div small { color: var(--muted); font-size: .78rem; }
.context-line .status-badge { margin-inline-start: auto; }
.stepper { list-style: none; margin: 18px 0 0; padding: 0; display: flex; border: 1px solid var(--border-default); border-radius: 15px; overflow-x: auto; background: var(--surface-panel); scrollbar-width: thin; }
.stepper li { min-width: 106px; flex: 1 0 106px; }
.stepper li { position: relative; }
.stepper li:not(:last-child)::after { content: ""; position: absolute; inset-inline-end: 0; inset-block: 14px; width: 1px; background: var(--line); }
.stepper button { width: 100%; border: 0; background: transparent; color: var(--muted); padding: 12px 8px; display: flex; justify-content: center; align-items: center; gap: 8px; cursor: pointer; font-weight: 800; font-size: .8rem; }
.stepper i { width: 24px; height: 24px; border-radius: 50%; background: #edf2f6; color: #405264; display: grid; place-items: center; font-size: .69rem; font-style: normal; }
.stepper .current button { color: var(--accent-primary); background: var(--blue-soft); }
.stepper .current i { background: var(--blue); color: white; box-shadow: 0 0 0 4px rgba(48, 151, 255, .12); }
.stepper .done button { color: #176344; }
.stepper .done i { background: #e3f7ee; color: #176344; }

.panel { border: 1px solid var(--border-default); border-radius: var(--radius); background: var(--surface-panel); color: var(--text-primary); padding: 22px; box-shadow: var(--shadow); }
.panel-heading, .section-heading, .production-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 22px; }
.panel-heading.compact { margin-bottom: 17px; }
.panel-heading.compact h2 { margin: 0; }
.panel-heading p, .section-heading p { font-size: .88rem; }
.workspace-grid { display: grid; gap: 16px; align-items: start; }
.job-grid { grid-template-columns: minmax(0, 1.35fr) minmax(330px, .65fr); }
.measure-grid { grid-template-columns: minmax(0, 1.35fr) minmax(330px, .65fr); }
.analysis-column { display: grid; gap: 16px; position: sticky; top: 92px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.form-grid.three-cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.form-grid.four-cols { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.span-2 { grid-column: 1 / -1; }
.field { min-width: 0; display: flex; flex-direction: column; gap: 7px; color: var(--text-primary); font-size: .86rem; font-weight: 750; }
.field > span { min-height: 21px; }
.field > span:has(.source-badge) { display: flex; align-items: center; gap: 7px; }
.source-badge {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  border: 1px solid #9bc1e8;
  border-radius: 999px;
  padding: 2px 7px;
  background: #e7f3ff;
  color: #075da8;
  font-size: .66rem;
  font-style: normal;
  font-weight: 850;
  white-space: nowrap;
}
.source-calculated { border-color: #9acdb8; background: #e3f7ee; color: #176344; }
.source-userDefined { border-color: #e4c674; background: #fff3d6; color: #7a4a00; }
.source-aiSuggested { border-color: #c9afe0; background: #f4ebfb; color: #68417f; }
.field small { color: var(--muted); font-size: .75rem; line-height: 1.4; font-weight: 500; }
.required { color: var(--red); margin-inline-start: 4px; }
.field input, .field select, .field textarea, .segment-name, .annotation-row input, .annotation-row select, .add-profile input, .profile-prices td input {
  width: 100%;
  min-height: 46px;
  border: 1px solid var(--border-strong);
  border-radius: 11px;
  background: var(--surface-elevated);
  color: var(--text-primary);
  padding: 10px 12px;
}
.field textarea { resize: vertical; min-height: 110px; }
.field input::placeholder, .field textarea::placeholder, .add-profile input::placeholder { color: #60758a; }
.field input:hover, .field select:hover, .field textarea:hover { border-color: #3a5775; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--accent-primary); background: var(--surface-elevated); }
.field.has-error input, .field.has-error select { border-color: var(--red); background: rgba(255, 118, 111, .05); }
.field-error { color: #9d2924 !important; font-weight: 700 !important; }
.number-wrap { display: grid; grid-template-columns: minmax(0, 1fr) max-content; align-items: stretch; overflow: hidden; border: 1px solid var(--border-strong); border-radius: 11px; background: var(--surface-elevated); }
.number-wrap:focus-within { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(48,151,255,.12); }
.number-wrap input { min-width: 0; width: 100%; border: 0; border-radius: 0; padding: 10px 12px; direction: ltr; text-align: start; background: transparent; }
.number-wrap > span { position: static; min-width: 48px; max-width: 120px; padding: 0 12px; border-inline-start: 1px solid var(--border-default); background: var(--surface-subtle); color: var(--text-muted); pointer-events: none; font-size: .75rem; font-weight: 800; display: grid; place-items: center; white-space: nowrap; }
.number-wrap.unit-select-input select { min-width: 72px; width: auto; border: 0; border-inline-start: 1px solid var(--border-default); border-radius: 0; background: var(--surface-subtle); padding-inline: 12px; font-weight: 800; }
.revision-stale { margin-block-end: 16px; }
.profile-family-grid small { display: none; }
.currency-input input { padding-inline-end: 38px; }
.readonly-field { justify-content: flex-end; }
.readonly-field strong { min-height: 46px; padding: 11px 12px; border: 1px solid #9acdb8; border-radius: 11px; background: #e3f7ee; color: #176344; }
.sticky-actions { position: sticky; z-index: 40; bottom: 14px; margin-top: 18px; padding: 10px; border: 1px solid var(--border-default); border-radius: 15px; background: rgba(255,255,255,.94); backdrop-filter: blur(18px); display: flex; align-items: center; justify-content: space-between; gap: 10px; box-shadow: 0 18px 50px rgba(29,50,70,.18); }
.sticky-actions > div { display: flex; gap: 9px; }

.photo-panel { position: sticky; top: 92px; }
.photo-preview { position: relative; min-height: 310px; border: 1px dashed #35516c; border-radius: 15px; overflow: hidden; background: #0a131e; display: grid; place-items: center; }
.photo-preview > div:not(.photo-loading) { display: flex; flex-direction: column; align-items: center; gap: 9px; text-align: center; color: var(--muted); padding: 24px; }
.photo-preview > div strong { color: #dbe8f4; }
.photo-preview > div span { font-size: .8rem; }
.photo-preview img { width: 100%; height: 100%; min-height: 310px; object-fit: cover; display: block; }
.photo-loading { position: absolute; inset: 0; background: rgba(7, 12, 19, .72); display: flex; align-items: center; justify-content: center; gap: 10px; font-weight: 800; }
.spinner { width: 24px; height: 24px; border: 3px solid rgba(255, 255, 255, .2); border-top-color: var(--blue); border-radius: 50%; animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.photo-buttons { margin-top: 11px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.file-button { position: relative; overflow: hidden; }
.file-button input { position: absolute; inline-size: 1px; block-size: 1px; opacity: 0; pointer-events: none; }
.privacy-note { display: block; margin-top: 10px; color: var(--muted); font-size: .72rem; line-height: 1.5; }

.measure-section { margin-top: 25px; padding-top: 22px; border-top: 1px solid var(--line); }
.measure-section:first-of-type { margin-top: 0; padding-top: 0; border-top: 0; }
.measure-section h3 { margin-bottom: 12px; }
.measure-section > p { color: var(--muted); font-size: .8rem; margin: -5px 0 13px; }
.guided-summary{padding:4px 0 2px}.guided-summary h3{font-size:1.15rem;margin:8px 0 4px}.guided-summary>p{color:var(--muted);font-size:.82rem;margin:0 0 17px;max-width:650px}.guided-badge{display:inline-flex;align-items:center;min-height:26px;padding:4px 9px;border-radius:999px;background:var(--blue-soft);color:#075da8;font-size:.7rem;font-weight:900}.guided-badge.advanced{background:#fff3d6;color:#7a4a00}.progressive-trigger{width:100%;margin-top:18px;min-height:62px;padding:10px 13px;border:1px dashed var(--border-strong);border-radius:13px;background:var(--surface-subtle);color:var(--text-primary);display:flex;align-items:center;gap:11px;text-align:start;cursor:pointer}.progressive-trigger>span:first-child{width:34px;height:34px;border-radius:10px;background:var(--blue-soft);color:var(--accent-primary);display:grid;place-items:center}.progressive-trigger>span:nth-child(2){display:grid;gap:2px;flex:1}.progressive-trigger small{color:var(--text-muted);font-size:.72rem}.progressive-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding-bottom:13px;border-bottom:1px solid var(--border-default)}.progressive-head>div{display:grid;gap:6px}.progressive-head strong{font-size:.95rem}
.advanced-measure-intro{display:grid;gap:12px;padding:20px;border:1px solid var(--border-default);border-radius:22px;background:var(--surface-panel);box-shadow:0 14px 34px rgba(28,56,81,.07)}.advanced-measure-intro>div h2{margin:7px 0 3px}.advanced-measure-intro>div p{margin:0;color:var(--text-secondary)}.advanced-measure-intro .measurement-visual{margin:0}.advanced-measure-intro .measurement-guide{margin:0}.advanced-measure-intro>.next-measure{justify-self:end;min-height:44px}
.measure-photo { min-height: 240px; border: 1px dashed #34516d; border-radius: 14px; background: #0a131e; overflow: hidden; position: relative; display: grid; place-items: center; }
.measure-photo > div:not(.simple-overlay) { color: var(--muted); display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; padding: 25px; }
.measure-photo img { width: 100%; height: 260px; object-fit: cover; display: block; }
.simple-overlay { position: absolute; inset: 0; pointer-events: none; }
.simple-overlay span { position: absolute; transform: translate(-50%, -50%); border: 1px solid rgba(255, 255, 255, .28); border-radius: 8px; background: rgba(5, 11, 18, .8); color: white; padding: 5px 7px; font-size: .66rem; font-weight: 800; white-space: nowrap; }
.confidence-card { border: 1px solid var(--line); border-radius: 14px; padding: 14px; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.confidence-card > div:first-child { display: flex; flex-direction: column; }
.confidence-card span { color: var(--muted); font-size: .77rem; }
.confidence-card strong { font-size: 1rem; }
.confidence-card.high { background: rgba(57, 214, 160, .06); border-color: #285d51; }
.confidence-card.medium { background: rgba(242, 184, 75, .06); border-color: #66522e; }
.confidence-card.low { background: rgba(255, 118, 111, .06); border-color: #663c3d; }
.confidence-ring { --fill: calc(var(--score) * 1%); width: 52px; height: 52px; border-radius: 50%; background: conic-gradient(var(--blue) var(--fill), #213247 0); display: grid; place-items: center; }
.confidence-ring::before { content: ""; grid-area: 1/1; width: 39px; height: 39px; border-radius: 50%; background: #101a27; }
.confidence-ring span { position: relative; grid-area: 1/1; color: white; font-weight: 900; }
.warning-list { margin-top: 12px; display: grid; gap: 8px; }
.warning { border: 1px solid #e4c674; border-radius: 11px; background: #fff8e5; color: #6c4608; padding: 11px 12px; display: flex; align-items: flex-start; gap: 9px; font-size: .8rem; line-height: 1.5; }
.warning > i { width: 7px; height: 7px; border-radius: 50%; background: var(--amber); margin-top: 6px; flex: 0 0 auto; }
.warning.critical { border-color: #e7aaa6; background: #fff0ef; color: #852c28; }
.warning.critical > i { background: var(--red); }
.warning.info { border-color: #a9ccea; background: #eef7ff; color: #185b91; }
.warning.info > i { background: var(--blue); }
.warning.success { border-color: #a8d9c4; background: #edf9f3; color: #176647; }
.warning.success > i { background: var(--green); }
.segment-toolbar { margin: 26px 0 12px; padding-top: 22px; border-top: 1px solid var(--line); display: flex; align-items: flex-end; justify-content: space-between; gap: 15px; }
.segment-toolbar p { color: var(--muted); font-size: .8rem; margin-top: 5px; }
.segment-toolbar > div:last-child { display: flex; gap: 7px; }
.stepper-input { min-height: 46px; border: 1px solid var(--border-default); border-radius: 11px; background: var(--surface-elevated); display: grid; grid-template-columns: 44px 1fr 44px; overflow: hidden; }
.stepper-input button { border: 0; background: var(--surface-subtle); color: var(--text-primary); cursor: pointer; font-size: 1.2rem; }
.stepper-input strong { display: grid; place-items: center; }
.segment-list { display: grid; gap: 12px; }
.segment-card { border: 1px solid var(--border-default); border-radius: 15px; background: var(--surface-elevated); color: var(--text-primary); padding: 15px; }
.segment-turn,.stair-method{min-width:0;max-width:100%;margin-top:14px;padding:12px;border:1px solid var(--border-default);border-radius:12px;background:var(--surface-subtle)}
.segment-turn{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:end}
.segment-turn small{grid-column:1/-1}.stair-method>.field{margin-bottom:10px}
.stair-endpoints{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;margin:12px 0;padding:12px;border-radius:10px;background:var(--surface-elevated);font-size:.78rem}
.stair-endpoints span:nth-child(2){flex:1;min-width:0;text-align:center;border-bottom:2px solid var(--accent-primary);padding:6px}
.stair-method .field-hint{line-height:1.45;overflow-wrap:anywhere}
@media(max-width:430px){.segment-turn{grid-template-columns:1fr}.stair-endpoints{font-size:.68rem}.stair-endpoints span:nth-child(2){padding:4px}}
.segment-card header { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; margin-bottom: 14px; }
.segment-id { border: 1px solid #2f5578; border-radius: 8px; background: var(--blue-soft); color: var(--blue-bright); padding: 5px 8px; font-size: .72rem; font-weight: 900; }
.segment-name { min-height: 36px; padding: 6px 9px; font-weight: 800; }
.point-pair { color: #90a7bc; direction: ltr; font-size: .78rem; font-weight: 800; }
.reference-title { margin: 15px 0 8px; color: var(--muted); font-size: .76rem; font-weight: 800; }
.reference-picker { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 5px; }
.reference-picker button { min-height: 58px; border: 1px solid var(--border-default); border-radius: 10px; background: var(--surface-subtle); color: var(--text-secondary); padding: 7px 4px; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; font-size: .68rem; font-weight: 800; }
.reference-picker button i { width: 7px; height: 7px; border-radius: 50%; background: #647b91; }
.reference-picker button.active { border-color: var(--accent-primary); background: var(--blue-soft); color: var(--accent-primary); }
.reference-picker button.active i { background: var(--blue-bright); box-shadow: 0 0 0 4px rgba(48, 151, 255, .12); }

.plan-layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(330px, .6fr); gap: 16px; align-items: start; }
.canvas-panel { padding: 12px; overflow: hidden; }
.canvas-toolbar { min-height: 50px; padding: 2px 4px 10px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.view-tabs { display: flex; gap: 3px; }
.engine-badge { border: 1px solid #9fd5bd; border-radius: 999px; background: #edf9f3; color: #176647; padding: 5px 9px; font-size: .68rem; font-weight: 850; }
.design-panel { position: sticky; top: 92px; max-height: calc(100vh - 110px); overflow: auto; scrollbar-width: thin; }
.design-section { padding: 17px 0; border-top: 1px solid var(--line); display: grid; gap: 11px; }
.design-section:first-of-type { border-top: 0; padding-top: 0; }
.design-section h3 { color: var(--text-secondary); font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.inline-note { border: 1px solid #a9ccea; border-radius: 10px; background: #eef7ff; color: #185b91; padding: 10px; font-size: .75rem; }
.color-field { padding-top: 16px; border-top: 1px solid var(--line); }
.color-picker { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.color-picker input[type="color"] { width: 48px; height: 42px; min-height: 42px; padding: 3px; }
.color-swatch { width: 30px; height: 30px; border: 2px solid #0c1520; border-radius: 50%; background: var(--swatch); box-shadow: 0 0 0 1px #3b536c; cursor: pointer; }
.color-swatch.active { box-shadow: 0 0 0 2px var(--blue), 0 0 0 5px rgba(48, 151, 255, .13); }
.switch-row { grid-column: 1 / -1; min-height: 62px; border: 1px solid var(--border-default); border-radius: 12px; background: var(--surface-subtle); color: var(--text-primary); padding: 10px 12px; display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: center; cursor: pointer; }
.switch-row input { position: absolute; opacity: 0; pointer-events: none; }
.switch-row > span { display: flex; flex-direction: column; }
.switch-row small { color: var(--muted); font-size: .73rem; font-weight: 500; }
.switch-row > i { width: 43px; height: 24px; border-radius: 999px; background: #26394d; position: relative; transition: .2s; }
.switch-row > i::after { content: ""; position: absolute; width: 18px; height: 18px; border-radius: 50%; background: #8fa2b5; top: 3px; right: 3px; transition: .2s; }
.switch-row input:checked ~ i { background: #1f77ca; }
.switch-row input:checked ~ i::after { transform: translateX(-19px); background: white; }
.visual-stage { position: relative; min-height: 570px; border: 1px solid #273d52; border-radius: 17px; background: #09121c; overflow: hidden; display: grid; place-items: center; }
.customer-render { width: 100%; height: 100%; min-height: 520px; display: block; }
.visualization-layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(280px, .55fr); gap: 18px; align-items: start; }
.visual-options { position: sticky; top: 84px; }
.visual-profile-summary { display: grid; gap: 8px; margin-top: 20px; }
.visual-profile-summary > div { padding: 11px 13px; border: 1px solid var(--line); border-radius: 11px; display: flex; justify-content: space-between; gap: 10px; }
.visual-profile-summary span { color: var(--muted); }

.profile-picker-modal { width: min(920px, 100%); max-height: min(88vh, 860px); overflow: auto; }
.profile-search { display: block; margin-bottom: 14px; }
.picker-step { margin-top: 14px; display: grid; gap: 9px; }
.picker-step > strong { color: #b8cadb; font-size: .76rem; letter-spacing: .02em; }
.profile-family-tabs { display: flex; gap: 7px; overflow-x: auto; padding-bottom: 10px; }
.profile-family-tabs button, .profile-recent button { border: 1px solid var(--border-default); background: var(--surface-subtle); color: var(--text-secondary); border-radius: 999px; padding: 7px 11px; white-space: nowrap; cursor: pointer; }
.profile-family-tabs button.active { border-color: var(--blue); color: white; background: rgba(48,151,255,.16); }
.profile-family-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); overflow: visible; }
.profile-family-grid button { min-height: 76px; border-radius: 12px; padding: 8px; display: grid; place-items: center; gap: 2px; white-space: normal; }
.profile-family-grid button i { color: #8cc9ff; font: 900 1.35rem/1 Arial; font-style: normal; }
.profile-family-grid button span { color: inherit; font-size: .72rem; font-weight: 850; }
.profile-family-grid button small { color: #70879b; font-size: .58rem; }
.profile-chip-row { display: flex; gap: 7px; overflow-x: auto; padding-bottom: 5px; }
.profile-chip-row button { min-height: 44px; border: 1px solid var(--border-default); border-radius: 10px; background: var(--surface-subtle); color: var(--text-secondary); padding: 8px 12px; white-space: nowrap; cursor: pointer; }
.profile-chip-row button.active { border-color: var(--accent-primary); background: var(--blue-soft); color: var(--accent-primary); }
.profile-recent { display: flex; align-items: center; gap: 8px; overflow-x: auto; margin: 4px 0 12px; }
.profile-results { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; max-height: 390px; overflow: auto; padding: 2px; }
.profile-option { display: grid; grid-template-columns: 1fr 38px; gap: 4px; border: 1px solid var(--border-default); border-radius: 12px; overflow: hidden; background: var(--surface-elevated); color: var(--text-primary); }
.profile-select { border: 0; color: var(--text-primary); background: transparent; padding: 12px; display: flex; justify-content: space-between; align-items: center; text-align: start; cursor: pointer; }
.profile-select span { display: grid; gap: 3px; }.profile-select small { color: var(--muted); }.profile-select b { color: #9ed7c3; font-size: .78rem; }
.profile-favorite { border: 0; border-inline-start: 1px solid var(--line); background: transparent; color: #52677b; cursor: pointer; }.profile-favorite.active { color: #ffc857; }
.custom-profile { margin-top: 14px; border-top: 1px solid var(--line); padding-top: 12px; }.custom-profile summary { cursor: pointer; font-weight: 800; }.custom-profile .form-grid { margin-top: 12px; align-items: end; }
.profile-field-button { width: 100%; min-height: 60px; border: 1px solid var(--border-default); border-radius: 11px; background: var(--surface-elevated); color: var(--text-primary); padding: 10px 12px; display: flex; align-items: center; justify-content: space-between; text-align: start; cursor: pointer; }
.profile-field-button span { display: grid; gap: 3px; }.profile-field-button small { color: var(--muted); }.profile-field-button b { color: #9ed7c3; font-size: .78rem; }
.profile-orientation { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin-top:7px; }
.profile-orientation button { min-width:0; min-height:58px; border:1px solid var(--border-default); border-radius:11px; background:var(--surface-subtle); color:var(--text-secondary); padding:8px; display:grid; grid-template-columns:34px minmax(0,1fr); align-items:center; gap:8px; text-align:start; cursor:pointer; }
.profile-orientation button.active { border-color:var(--accent-primary); background:var(--blue-soft); color:var(--accent-primary); box-shadow:0 0 0 2px rgba(23,105,210,.08); }
.profile-orientation i { width:32px; height:32px; display:grid; place-items:center; border:1px solid currentColor; border-radius:8px; font:900 1.15rem/1 Arial; font-style:normal; transform:rotate(var(--section-rotation)); }
.profile-orientation span { min-width:0; display:grid; gap:2px; }.profile-orientation strong,.profile-orientation small { overflow-wrap:anywhere; }.profile-orientation small { color:var(--text-muted); font-size:.66rem; }
.cutlist-recovery { margin:14px 0; border:1px solid #e8bd69; border-radius:13px; background:var(--warning-soft); color:#70450a; padding:13px; display:grid; gap:9px; }
.cutlist-recovery>div { display:flex; align-items:center; justify-content:space-between; gap:10px; }.cutlist-recovery span { min-width:0; font-size:.8rem; }.cutlist-recovery button { flex:0 0 auto; }
.material-summary-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }.material-summary-grid article { padding: 15px; border: 1px solid var(--line); border-radius: 13px; display: grid; gap: 5px; }.material-summary-grid span,.material-summary-grid small { color: var(--muted); }.material-summary-grid strong { font-size: 1.25rem; }
.measurement-guide { margin: 0 0 18px; display: grid; gap: 8px; }
.measurement-guide > span { color: var(--muted); font-size: .74rem; font-weight: 800; }
.measurement-guide > div { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; }
.measurement-guide button { min-height: 68px; border: 1px solid var(--border-default); border-radius: 12px; background: var(--surface-subtle); color: var(--text-secondary); padding: 8px; display: grid; grid-template-columns: 24px 1fr; grid-template-rows: auto auto; text-align: start; cursor: pointer; }
.measurement-guide button i { grid-row: 1 / 3; width: 22px; height: 22px; border-radius: 50%; background: var(--blue); color: var(--text-inverse); display: grid; place-items: center; font-style: normal; font-size: .68rem; }
.measurement-guide button strong { direction: ltr; justify-self: start; }
.measurement-guide button small { color: var(--muted); }
.measurement-guide button.active { background: var(--blue-soft); border-color: var(--accent-primary); color: #075da8; box-shadow: 0 0 0 2px rgba(23,105,210,.1); }
.measurement-guide button.active i { background: var(--accent-primary); color: var(--text-inverse); }
.cut-cards { display: none; }
.cut-card { border: 1px solid var(--border-default); border-radius: 13px; background: var(--surface-elevated); color: var(--text-primary); padding: 13px; display: grid; gap: 8px; box-shadow: 0 5px 16px rgba(30,55,78,.05); }
.cut-card header,.cut-card footer,.cut-card-main { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.cut-card header strong { color: var(--accent-primary); }.cut-card header span,.cut-card footer,.cut-card-main span { color: var(--text-muted); font-size: .74rem; }
.cut-card h3 { font-size: .88rem; }.cut-card-main b { direction: ltr; }
.locale-settings { display: grid; align-content: start; gap: 14px; }
[dir="ltr"] body { font-family: Arial, sans-serif; }
[dir="ltr"] .modal-close { left: auto; right: 12px; }
.validation-list { display: grid; gap: 9px; margin-top: 18px; }
.validation-issue { align-items: center; }
.validation-issue span { flex: 1; }
.validation-issue button { min-height: 42px; flex: 0 0 auto; }
.technical-stage { background: radial-gradient(circle at 50% 8%, #17283a, #0a131e 72%); }
.technical-svg { width: 100%; height: 100%; min-height: 560px; }
.drawing-bg { fill: #0c1723; stroke: #22384d; }
.drawing-title { fill: #dce8f4; font: 800 16px Arial; }
.drawing-caption { fill: #8da2b6; font: 700 13px Arial; }
.gate-frame, .pergola-frame { fill: color-mix(in srgb, var(--product-color) 15%, transparent); stroke: var(--product-color); stroke-width: 10; }
.gate-divider { stroke: #8abce9; stroke-width: 5; }
.gate-infill, .pergola-slat { stroke: #66839d; stroke-width: 6; }
.pergola-multiplane-svg .pergola-roof-face { fill: rgba(75, 158, 216, .12); stroke: #78abc7; stroke-width: 2; }
.pergola-multiplane-svg .pergola-internal { stroke: #6f8da6; stroke-width: 3; }
.pergola-multiplane-svg .pergola-ridge { stroke: #ffd070; stroke-width: 8; stroke-linecap: round; }
.pergola-multiplane-svg .pergola-hip { stroke: #8cdbff; stroke-width: 6; stroke-linecap: round; }
.pergola-multiplane-svg .pergola-support circle { fill: #193d57; stroke: #f2b25b; stroke-width: 3; }
.pergola-multiplane-svg .pergola-support text { fill: #f5e1b7; font: 800 13px Arial; paint-order: stroke; stroke: #0c1723; stroke-width: 3; }
.motion-line { stroke: #56b2ff; fill: none; stroke-width: 3; }
.part-labels text, .part-code { fill: #5bb3ff; font: 900 15px Arial; }
.pergola-post { stroke: var(--product-color); stroke-width: 11; }
.wall-line { stroke: #6c7f91; stroke-width: 5; stroke-dasharray: 8 7; }
.gridlines path { stroke: #182b3d; fill: none; }
.ground { stroke: #566d82; stroke-width: 3; }
.rail-main { stroke: var(--product-color); stroke-width: 12; stroke-linecap: round; }
.rail-post { stroke: var(--product-color); stroke-width: 9; stroke-linecap: round; }
.dimension line { stroke: #8ba2b8; stroke-width: 1.5; }
.dimension rect { fill: #142334; stroke: #31516e; }
.dimension text { fill: #dbe9f6; font: 800 12px Arial; }
.ref-point circle { fill: #248ff2; stroke: white; stroke-width: 3; }
.ref-point text { fill: #85c6ff; font: 900 13px Arial; }
.segment-label rect { fill: #111e2c; stroke: #31506d; }
.segment-label text { fill: #d9e6f2; font: 800 12px Arial; }
.segment-label .tiny { fill: #8ba1b5; font: 700 10px Arial; }
.photo-stage { display: block; background: #03070c; }
.photo-stage > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.site-shade { position: absolute; inset: 0; background: rgba(4, 8, 13, .16); }
.site-stage { min-height: 0; height: auto; aspect-ratio: var(--site-photo-aspect, 1 / 1); background: transparent; touch-action: pan-y; }
.site-stage.site-editing { touch-action: none; }
.site-stage > img { object-fit: fill; }
.site-product-layer { position:absolute; inset:0; z-index:2; width:100%; height:100%; transform-origin:50% 50%; pointer-events:none; will-change:transform; }
.site-product-viewport { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.site-product-canvas { display:block; width:100%; height:100%; background:transparent; pointer-events:none; }
.site-product-loading,.site-product-error { position:absolute; inset:0; display:grid; place-content:center; justify-items:center; gap:8px; padding:24px; text-align:center; color:#fff; pointer-events:none; }
.site-product-loading span { width:30px; height:30px; border:3px solid rgba(255,255,255,.32); border-top-color:#fff; border-radius:50%; animation:three-spin .8s linear infinite; }
.site-product-error { z-index:7; background:rgba(8,18,28,.72); pointer-events:auto; }
.site-product-error span { max-width:320px; color:#d5e2ed; }
.site-model { position: absolute; inset:0; width:100%; height:100%; transform-origin:0 0; display:grid; place-items:center; filter:drop-shadow(0 9px 12px rgba(0,0,0,.38)); pointer-events:none; will-change:transform; }
.site-model svg { width: 100%; height: 100%; }
.site-model .customer-render-transparent { background: transparent; }
.site-model .drawing-bg, .site-model .drawing-title, .site-model .drawing-caption, .site-model .gridlines, .site-model .dimension, .site-model .segment-label, .site-model .ref-point { display: none; }
.annotation-canvas { position: absolute; inset: 0; pointer-events: none; }
.measure-line { position: absolute; height: 2px; background: white; transform-origin: 0 50%; box-shadow: 0 0 0 1px rgba(0, 0, 0, .4); }
.measure-line::before, .measure-line::after { content: ""; position: absolute; top: -4px; width: 9px; height: 9px; border-radius: 50%; background: var(--blue); border: 2px solid white; }
.measure-line::before { left: -5px; }
.measure-line::after { right: -5px; }
.point-pin { position: absolute; transform: translate(-50%, -50%); width: 28px; height: 28px; border: 2px solid white; border-radius: 50%; background: #1679d6; color: white; display: grid; place-items: center; font-size: .68rem; font-weight: 900; }
.measure-chip { position: absolute; transform: translate(-50%, -50%); border-radius: 8px; background: rgba(5, 11, 18, .86); color: white; padding: 5px 8px; font-size: .7rem; font-weight: 850; }
.drawing-mode { cursor: crosshair; }
.stage-hint { position: absolute; inset-inline-end: 12px; inset-block-end: 12px; border: 1px solid rgba(255, 255, 255, .18); border-radius: 9px; background: rgba(4, 9, 15, .79); color: #e5eef7; padding: 7px 10px; font-size: .7rem; backdrop-filter: blur(8px); }
.site-overlay-editor { position:absolute; inset:0; z-index:4; touch-action:none; }
.site-overlay-outline { position:absolute; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; }
.site-overlay-outline polygon { fill:none; stroke:rgba(82, 188, 255, .95); stroke-width:.35; vector-effect:non-scaling-stroke; stroke-dasharray:1.2 .8; }
.site-overlay-handle { position:absolute; z-index:5; width:44px; height:44px; transform:translate(-50%,-50%); border:0; border-radius:50%; background:transparent; padding:0; touch-action:none; }
.site-overlay-handle::after { content:""; position:absolute; inset:13px; border:3px solid white; border-radius:50%; background:#187ddb; box-shadow:0 2px 9px rgba(0,0,0,.52); }
.site-spatial-editor { position:absolute; inset:0; z-index:5; pointer-events:none; touch-action:none; }
.site-spatial-cage { position:absolute; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; }
.site-spatial-cage line { stroke:rgba(48,180,255,.96); stroke-width:1.45; vector-effect:non-scaling-stroke; stroke-dasharray:5 4; filter:drop-shadow(0 1px 1px rgba(0,0,0,.8)); }
.site-spatial-cage line.active { stroke:#ffb047; stroke-width:2.35; stroke-dasharray:none; }
.site-spatial-handle { position:absolute; width:48px; height:48px; z-index:7; transform:translate(-50%,-50%); border:0; border-radius:50%; padding:0; background:transparent; pointer-events:auto; touch-action:none; }
.site-spatial-handle::before { content:""; position:absolute; inset:12px; border:3px solid #fff; border-radius:50%; background:#1578d2; box-shadow:0 2px 10px rgba(0,0,0,.58); transition:transform .12s ease,background .12s ease; }
.site-spatial-handle span { position:absolute; inset:0; display:grid; place-items:center; z-index:1; color:#fff; font-size:.66rem; font-weight:900; line-height:1; }
.site-spatial-handle:active::before,.site-spatial-handle:focus-visible::before,.site-spatial-handle.active::before { transform:scale(1.34); background:#ff9a36; box-shadow:0 2px 14px rgba(0,0,0,.72),0 0 0 3px rgba(255,176,71,.38); }
.opening-fit-point { position:absolute; z-index:6; width:28px; height:28px; transform:translate(-50%,-50%); display:grid; place-items:center; border:2px solid white; border-radius:50%; background:#187ddb; color:white; font-size:.72rem; font-weight:900; box-shadow:0 2px 9px rgba(0,0,0,.52); pointer-events:none; }
.site-result .site-overlay-editor, .site-result .stage-hint { display:none; }
.no-photo > div { max-width: 360px; padding: 25px; display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; color: var(--muted); }
.no-photo strong { color: #dce8f4; }
.annotation-editor, .calibration-controls { margin-top: 10px; border: 1px solid #263d53; border-radius: 13px; background: #0c1723; padding: 10px; }
.annotation-tools { display: flex; align-items: center; gap: 10px; }
.annotation-tools span { color: var(--muted); font-size: .74rem; }
.annotation-list { margin-top: 9px; display: grid; gap: 6px; }
.annotation-row { display: grid; grid-template-columns: 42px 110px 1fr 40px; gap: 7px; align-items: center; }
.annotation-row > span { direction: ltr; color: #98b1c7; font-weight: 900; font-size: .75rem; }
.annotation-row input, .annotation-row select { min-height: 40px; padding: 7px 9px; font-size: .78rem; }
.calibration-controls { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.calibration-controls label { display: flex; flex-direction: column; gap: 6px; color: var(--muted); font-size: .7rem; font-weight: 750; }
.calibration-controls input { accent-color: var(--blue); width: 100%; }
.overlay-tools { grid-column: 1 / -1; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; min-width: 0; }
.overlay-tools > span { flex: 1 1 220px; min-width: 0; }
.overlay-reference { position: absolute; z-index: 5; transform: translate(-50%, -50%); width: 28px; height: 28px; border: 2px solid white; border-radius: 50%; background: #208cff; color: white; display: grid; place-items: center; font-size: .68rem; font-weight: 900; box-shadow: 0 4px 14px rgba(0,0,0,.45); }
.customer-visual { min-height: 570px; background: radial-gradient(circle at 50% 25%, #1f3447, #09121c 65%); }
.customer-scene { position: absolute; inset: 7% 6% 18%; display: grid; place-items: center; perspective: 900px; }
.customer-model { width: 92%; height: 92%; transform: rotateX(3deg) rotateY(-7deg); filter: drop-shadow(0 24px 25px rgba(0,0,0,.5)); }
.customer-model svg { width: 100%; height: 100%; }
.customer-model .drawing-bg, .customer-model .drawing-title, .customer-model .drawing-caption, .customer-model .gridlines, .customer-model .dimension, .customer-model .segment-label, .customer-model .ref-point { display: none; }
.customer-floor { position: absolute; inset-inline: 8%; bottom: 0; height: 23%; background: linear-gradient(90deg, transparent, rgba(255,255,255,.1), transparent); transform: rotateX(70deg); transform-origin: bottom; }
.visual-caption { position: absolute; z-index: 4; inset-inline: 18px; bottom: 14px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.visual-caption strong { color: white; }
.visual-caption span { color: var(--muted); }
.visual-caption em { margin-inline-start: auto; border: 1px solid #614d24; border-radius: 999px; padding: 5px 9px; background: #2b2415; color: #ffd986; font-size: .7rem; font-style: normal; }
.visual-caption em.final { border-color: #256147; background: #122b22; color: #8ce2bd; }
.weight-source-list { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }
.weight-source-list span { border: 1px solid #2a4258; border-radius: 999px; background: #0d1925; color: var(--muted); padding: 5px 9px; font-size: .7rem; }
.weight-source-list strong { color: var(--text); }
.quote-trace { display: grid; gap: 7px; }
.quote-trace > div { display: flex; justify-content: space-between; align-items: center; gap: 16px; border-bottom: 1px solid var(--line); padding: 8px 0; }
.quote-trace span { display: grid; gap: 2px; }
.quote-trace small { color: var(--muted); font-size: .72rem; }
.quote-trace b { white-space: nowrap; }
.quote-trace .quote-trace-total { border: 0; border-radius: 10px; background: #102235; padding: 11px; color: #a9d7ff; }
.empty-inline { border: 1px dashed #2a4259; border-radius: 10px; color: var(--muted); padding: 12px; font-size: .78rem; text-align: center; }

.quote-layout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(330px, .6fr); gap: 16px; align-items: start; }
.quote-summary { display: grid; gap: 16px; position: sticky; top: 92px; }
.price-summary { background: radial-gradient(circle at 90% 0, rgba(52, 156, 255, .19), transparent 18rem), linear-gradient(150deg, #132b43, #101c2a); }
.price-summary > span { color: #a7bfd5; font-size: .82rem; font-weight: 750; }
.price-summary > strong { display: block; margin: 8px 0 2px; font-size: clamp(2.25rem, 4vw, 3.4rem); letter-spacing: -.06em; line-height: 1; }
.price-summary > small { color: #8eabc4; }
.price-summary dl { margin: 24px 0 0; border-top: 1px solid #294661; padding-top: 10px; }
.price-summary dl div { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; }
.price-summary dt { color: #9cb2c6; }
.price-summary dd { margin: 0; font-weight: 850; }
.confidence-compact { display: flex; align-items: center; gap: 12px; }
.confidence-compact > span { width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; font-size: 1.15rem; font-weight: 900; background: #1d3044; }
.confidence-compact.high > span { color: var(--green); background: rgba(57, 214, 160, .1); }
.confidence-compact.medium > span { color: var(--amber); background: rgba(242, 184, 75, .1); }
.confidence-compact.low > span { color: var(--red); background: rgba(255, 118, 111, .1); }
.confidence-compact > div { display: flex; flex-direction: column; }
.confidence-compact small { color: var(--muted); }

.production-head { align-items: flex-end; }
.document-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.production-drawing { margin-bottom: 16px; }
.pipeline-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 16px;
}
.pipeline-strip > div {
  min-height: 64px;
  border: 1px solid var(--border-default);
  border-radius: 13px;
  background: var(--surface-elevated);
  color: var(--text-primary);
  padding: 10px;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 3px 8px;
}
.pipeline-strip i { width: 8px; height: 8px; border-radius: 50%; grid-row: span 2; background: var(--green); }
.pipeline-strip span { color: var(--muted); font-size: .72rem; font-weight: 750; }
.pipeline-strip strong { font-size: .8rem; }
.pipeline-strip .blocked { border-color: #e7aaa6; background: #fff0ef; }
.pipeline-strip .blocked i { background: var(--red); }
.pipeline-strip .blocked strong { color: #852c28; }
.production-drawing .technical-svg { min-height: 520px; max-height: 700px; }
.section-heading { align-items: center; }
.revision { direction: ltr; border: 1px solid var(--border-default); border-radius: 8px; background: var(--surface-subtle); color: var(--text-secondary); padding: 6px 8px; font-size: .7rem; font-weight: 850; }
.table-wrap { width: 100%; border: 1px solid var(--border-default); border-radius: 13px; overflow: auto; background: var(--surface-elevated); }
table { width: 100%; border-collapse: collapse; background: var(--surface-elevated); color: var(--text-primary); font-size: .8rem; }
th, td { padding: 11px 12px; border-bottom: 1px solid var(--border-default); text-align: right; white-space: nowrap; }
th { position: sticky; top: 0; z-index: 2; background: #eef3f7; color: var(--text-secondary); font-size: .73rem; }
tr:last-child td { border-bottom: 0; }
tbody tr:hover { background: #f5f9fd; }
.part-code-cell { color: var(--accent-primary); font-weight: 800; }
.production-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 16px; }
.bom-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.bom-grid article { border: 1px solid var(--border-default); border-radius: 11px; background: var(--surface-elevated); color: var(--text-primary); padding: 11px; display: grid; gap: 3px; }
.bom-grid article > span { color: var(--accent-primary); font-size: .67rem; font-weight: 900; }
.bom-grid article > div { color: var(--text-secondary); font-size: .78rem; }
.bom-grid article small { color: var(--muted); font-size: .68rem; line-height: 1.4; }
.safety-note { margin-top: 16px; border: 1px solid #e4c674; border-radius: 13px; background: #fff8e5; color: #6c4608; padding: 13px 15px; display: flex; align-items: flex-start; gap: 13px; font-size: .8rem; }
.safety-note strong { flex: 0 0 auto; color: #734a08; }
.critical-approval { margin-bottom: 16px; }
.approval-check { margin-top: 8px; border: 1px solid #e0b0ad; border-radius: 11px; background: #fff4f3; color: #672b28; padding: 11px 13px; display: flex; align-items: center; gap: 9px; cursor: pointer; font-size: .82rem; font-weight: 750; }
.approval-check:focus-within { outline: 3px solid rgba(24,107,204,.25); outline-offset: 2px; }
.approval-check input { width: 20px; height: 20px; accent-color: var(--accent-primary); flex: 0 0 auto; }

.customer-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.customer-card { border: 1px solid var(--border-default); border-radius: 15px; background: var(--surface-elevated); color: var(--text-primary); padding: 15px; display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; }
.customer-avatar { width: 46px; height: 46px; border-radius: 14px; background: var(--blue-soft); color: var(--blue-bright); display: grid; place-items: center; font-size: 1.2rem; font-weight: 900; }
.customer-info { min-width: 0; display: flex; flex-direction: column; }
.customer-info span { color: var(--text-secondary); font-size: .84rem; direction: ltr; text-align: right; }
.customer-info small { color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.customer-actions { display: flex; align-items: center; gap: 4px; }

.tool-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.tool-card { position: relative; overflow: hidden; }
.tool-card h2 { margin-top: 2px; }
.tool-card > p { min-height: 48px; color: var(--muted); font-size: .82rem; margin-bottom: 17px; }
.tool-number { position: absolute; inset-inline-end: 16px; inset-block-start: 12px; color: rgba(116, 184, 247, .11); font-size: 3rem; font-weight: 950; }
.tool-result { margin-top: 18px; min-height: 98px; border: 1px solid #2a4967; border-radius: 13px; background: rgba(48, 151, 255, .075); padding: 15px; display: flex; flex-direction: column; justify-content: center; }
.tool-result span { color: #91aec8; font-size: .75rem; }
.tool-result strong { font-size: 1.55rem; letter-spacing: -.03em; }
.tool-result.split { display: grid; grid-template-columns: 1fr 1fr; }
.tool-result.split > div { display: flex; flex-direction: column; }
.compact-tools { grid-template-columns: repeat(2,minmax(0,1fr)); }
.quick-weight { margin-top: 16px; }
.weight-flow { display: grid; gap: 18px; }
.weight-step { display: grid; gap: 9px; }
.weight-step > strong,.weight-recent > strong { color: var(--text-secondary); font-size: .78rem; }
.weight-family-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 8px; }
.weight-family-grid button { min-height: 86px; border: 1px solid var(--border-default); border-radius: 13px; background: var(--surface-subtle); color: var(--text-primary); padding: 9px 6px; display: grid; place-items: center; gap: 3px; cursor: pointer; }
.weight-family-grid button i { color: #8cc9ff; font: 900 1.55rem/1 Arial; font-style: normal; }
.weight-family-grid button span { font-size: .72rem; font-weight: 850; text-align: center; }
.weight-family-grid button small { color: var(--text-muted); font-size: .59rem; }
.weight-family-grid button.active { border-color: var(--blue); background: rgba(48,151,255,.14); box-shadow: inset 0 0 0 1px rgba(48,151,255,.22); }
.weight-inputs { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.weight-result-live { min-height: 132px; border: 1px solid #2b6756; border-radius: 16px; background: linear-gradient(145deg,rgba(57,214,160,.10),rgba(48,151,255,.06)); padding: 18px; display: grid; align-content: center; gap: 5px; }
.weight-result-live span { color: var(--text-secondary); font-size: .76rem; }
.weight-result-live strong { color: #176344; font-size: clamp(2rem,5vw,3.4rem); letter-spacing: -.04em; direction: ltr; justify-self: start; }
.weight-result-live small { color: var(--text-muted); direction: ltr; justify-self: start; }
.weight-recent { margin-bottom: 18px; display: grid; gap: 8px; }
.weight-recent > div { display: flex; gap: 7px; overflow-x: auto; }
.weight-recent button { min-height: 44px; border: 1px solid var(--border-default); border-radius: 999px; background: var(--surface-subtle); color: var(--text-secondary); padding: 8px 12px; white-space: nowrap; cursor: pointer; }
.custom-weight { justify-self: start; }
.weight-custom-panel { border: 1px solid #31516d; border-radius: 14px; background: rgba(48,151,255,.06); padding: 14px; display: grid; gap: 10px; }
.weight-custom-panel > strong { color: var(--text-primary); }
.weight-custom-panel > small { color: var(--muted); }
.weight-add { margin-top: 10px; justify-self: start; }
.weight-material-list { margin-top: 20px; border-top: 1px solid var(--line); padding-top: 18px; }
.weight-list-rows { display: grid; gap: 8px; }
.weight-list-rows article { display: grid; grid-template-columns: 30px minmax(0,1fr) max-content auto; align-items: center; gap: 11px; border: 1px solid var(--border-default); border-radius: 12px; background: var(--surface-elevated); color: var(--text-primary); padding: 11px; }
.weight-list-rows article > span { width: 28px; height: 28px; border-radius: 9px; background: var(--blue-soft); color: var(--blue-bright); display: grid; place-items: center; font-weight: 900; }
.weight-list-rows article > div:nth-child(2) { min-width: 0; display: grid; gap: 2px; }
.weight-list-rows article small { color: var(--muted); direction: ltr; justify-self: start; }
.weight-list-rows article > b { color: #a9f0d5; direction: ltr; white-space: nowrap; }
.weight-list-rows article > div:last-child { display: flex; gap: 4px; }
.weight-list-total { margin-top: 10px; border: 1px solid #2b6756; border-radius: 13px; background: rgba(57,214,160,.08); padding: 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.weight-list-total span { color: var(--muted); }
.weight-list-total strong { color: #a9f0d5; font-size: 1.35rem; direction: ltr; }
.empty-inline { border: 1px dashed var(--line); border-radius: 12px; padding: 18px; color: var(--muted); text-align: center; }

/* Community Round 1 — project-centric professional knowledge */
.community-local-note { margin: -7px 0 16px; border: 1px solid var(--border-default); border-radius: 11px; background: var(--surface-subtle); color: var(--text-secondary); padding: 10px 13px; font-size: .76rem; }
.community-toolbar { display: grid; grid-template-columns: auto minmax(260px,1fr) auto; gap: 12px; align-items: center; margin-bottom: 18px; }
.community-filters { display: flex; gap: 8px; }
.community-filters select { min-height: 43px; border: 1px solid var(--border-default); border-radius: 10px; background: var(--surface-elevated); color: var(--text-primary); padding: 8px 11px; }
.community-feed { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.community-card { min-width: 0; overflow: hidden; border: 1px solid var(--border-default); border-radius: 16px; background: var(--surface-elevated); color: var(--text-primary); box-shadow: 0 10px 28px rgba(30,52,73,.08); }
.community-cover { position: relative; width: 100%; aspect-ratio: 16/10; overflow: hidden; border: 0; background: #111f2d; padding: 0; cursor: pointer; color: #7fbdf3; }
.community-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.community-placeholder { width: 100%; height: 100%; min-height: 130px; display: grid; place-items: center; background: radial-gradient(circle at 30% 20%,#1e405e,#0d1824 65%); color: #65b3f5; }
.community-type,.demo-badge { position: absolute; inset-block-start: 10px; inset-inline-start: 10px; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; background: rgba(7,15,24,.82); color: #e5f1fb; padding: 5px 9px; font-size: .68rem; font-weight: 800; backdrop-filter: blur(8px); }
.demo-badge { inset-inline-start: auto; inset-inline-end: 10px; color: #ffd88d; }
.community-card-body { display: grid; gap: 10px; padding: 13px; }
.community-author { display: flex; align-items: center; gap: 8px; }
.community-author > span { width: 31px; height: 31px; border-radius: 10px; background: var(--blue-soft); color: var(--blue-bright); display: grid; place-items: center; font-weight: 900; }
.community-author > div { display: grid; min-width: 0; }
.community-author strong { font-size: .75rem; }.community-author small { color: var(--muted); font-size: .65rem; }
.community-title { border: 0; background: none; color: inherit; padding: 0; text-align: start; cursor: pointer; display: grid; gap: 4px; }
.community-title strong { font-size: 1rem; }.community-title span { color: #9eb0bf; font-size: .78rem; line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.community-meta,.community-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.community-meta span,.community-tags span,.community-badges span { border-radius: 999px; background: var(--blue-soft); color: var(--accent-primary); padding: 4px 8px; font-size: .65rem; }
.community-save { justify-self: start; }
.community-back { margin-bottom: 14px; }
.community-detail { width: min(1050px,100%); margin-inline: auto; display: grid; gap: 16px; }
.community-gallery { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(72%,1fr); gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; border-radius: 18px; }
.community-gallery img,.community-gallery > div { width: 100%; height: min(520px,55vw); object-fit: cover; scroll-snap-align: start; border-radius: 18px; background: #101d2a; }
.community-hero-empty { height: 300px; overflow: hidden; border-radius: 18px; }
.community-detail > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.community-detail h1 { font-size: clamp(1.8rem,4vw,3.1rem); margin: 8px 0; }.community-detail header p { color: #9db0c0; line-height: 1.7; }
.community-badges { display: flex; gap: 6px; }
.community-facts { display: grid; grid-template-columns: repeat(4,1fr); gap: 9px; }
.community-facts > div { min-width: 0; border: 1px solid var(--border-default); border-radius: 12px; background: var(--surface-subtle); color: var(--text-primary); padding: 12px; display: grid; gap: 4px; }
.community-facts span { color: var(--muted); font-size: .68rem; }.community-facts strong { overflow-wrap: anywhere; }
.community-knowledge { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; }
.community-knowledge article { border: 1px solid var(--border-default); border-radius: 14px; background: linear-gradient(145deg,#f8fbfe,#eef5fb); color: var(--text-primary); padding: 16px; }
.community-knowledge span { color: var(--accent-primary); font-size: .72rem; font-weight: 900; text-transform: uppercase; }.community-knowledge p { margin-top: 7px; color: var(--text-secondary); line-height: 1.7; white-space: pre-wrap; }
.community-contact p { color: var(--muted); }.community-contact .primary { display: inline-flex; text-decoration: none; margin-top: 10px; }
.community-comments > div { display: grid; gap: 8px; margin: 12px 0; }.community-comments article { border-bottom: 1px solid var(--border-default); padding: 8px 0; }.community-comments article p { margin: 5px 0; color: var(--text-secondary); }.community-comments article small { color: var(--text-muted); }.community-comments form { display: grid; grid-template-columns: 1fr auto; gap: 8px; }.community-comments input { min-width: 0; border: 1px solid var(--border-default); border-radius: 11px; background: var(--surface-elevated); color: var(--text-primary); padding: 11px; }
.community-detail-actions { display: flex; flex-wrap: wrap; gap: 8px; }.danger { min-height: 42px; border: 1px solid #78414b; border-radius: 10px; background: #2b171c; color: #ffaaa8; padding: 8px 13px; cursor: pointer; }
.community-similar > div { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.community-editor { width: min(970px,100%); margin: auto; }.community-editor > header ol { display: grid; grid-template-columns: repeat(4,1fr); gap: 5px; padding: 0; list-style: none; }.community-editor > header li { display: flex; align-items: center; gap: 7px; color: var(--text-muted); font-size: .72rem; }.community-editor > header li i { width: 27px; height: 27px; border-radius: 9px; background: var(--surface-subtle); color: var(--text-secondary); display: grid; place-items: center; font-style: normal; font-weight: 900; }.community-editor > header li.active,.community-editor > header li.done { color: var(--accent-primary); }.community-editor > header li.active i,.community-editor > header li.done i { background: var(--accent-primary); color: white; }
.community-upload { display: flex; align-items: center; justify-content: space-between; gap: 14px; }.community-upload p { color: var(--muted); }.file-button { position: relative; overflow: hidden; white-space: nowrap; }.file-button input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.community-private-map { margin-bottom: 16px; border: 1px solid #31516d; border-radius: 13px; background: rgba(48,151,255,.06); padding: 13px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }.community-private-map strong,.community-private-map p { width: 100%; }.community-private-map p { color: var(--muted); font-size: .78rem; }.community-private-map label { display: flex; align-items: center; gap: 6px; color: #bdd0df; font-size: .8rem; }
.community-photo-editor { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; margin-top: 14px; }.community-photo-editor article { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; }.community-photo-editor img,.community-photo-editor .community-placeholder { width: 100%; aspect-ratio: 4/3; object-fit: cover; min-height: 0; }.community-photo-editor article > div:last-child { display: flex; flex-wrap: wrap; gap: 4px; padding: 7px; }.community-photo-editor strong { width: 100%; }
.community-editor textarea { width: 100%; resize: vertical; border: 1px solid var(--border-default); border-radius: 10px; background: var(--surface-elevated); color: var(--text-primary); padding: 10px; }.community-editor-knowledge { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }.community-privacy { display: grid; gap: 14px; }.community-privacy > p { border: 1px solid #e4c674; background: #fff8e5; color: #6c4608; border-radius: 12px; padding: 12px; }.community-preview { margin-top: 18px; }.community-preview > .community-card { max-width: 420px; margin: 10px 0; }.community-editor-actions > div { display: flex; gap: 7px; }
.community-report-modal form { display: grid; gap: 12px; margin-top: 14px; }.community-report-modal textarea { width: 100%; border: 1px solid var(--border-default); border-radius: 10px; background: var(--surface-elevated); color: var(--text-primary); padding: 10px; resize: vertical; }

.settings-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(310px, .55fr); gap: 16px; align-items: stretch; }
.settings-actions { margin-top: 18px; display: flex; justify-content: flex-end; }
.backup-card { display: flex; flex-direction: column; justify-content: space-between; gap: 24px; }
.backup-card p { color: var(--muted); font-size: .82rem; }
.backup-card > div:last-child { display: grid; gap: 8px; }
.profile-prices { margin-top: 16px; }
.profile-prices td input { min-height: 38px; padding: 6px 8px; }
.table-number { min-width: 130px; display: grid; grid-template-columns: minmax(72px,1fr) max-content; align-items: stretch; overflow: hidden; border: 1px solid var(--border-strong); border-radius: 9px; background: var(--surface-elevated); }
.table-number input { min-width: 0; width: 100%; border: 0 !important; border-radius: 0; padding: 7px 9px !important; direction: ltr; }
.table-number span { position: static; min-width: 38px; padding: 0 8px; border-inline-start: 1px solid var(--border-default); background: var(--surface-subtle); color: var(--text-muted); font-size: .7rem; display: grid; place-items: center; white-space: nowrap; }
.price-breakdown { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin: 16px 0; }
.price-breakdown > div { padding: 12px; border: 1px solid var(--border-default); border-radius: 10px; background: var(--surface-subtle); color: var(--text-primary); }
.price-breakdown dt { color: var(--muted); font-size: .78rem; }
.price-breakdown dd { margin: 5px 0 0; font-weight: 800; }
.zero-price-confirm { display: flex; gap: 6px; align-items: center; margin-top: 7px; color: var(--muted); font-size: .78rem; white-space: nowrap; }
@media (max-width: 760px) { .price-breakdown { grid-template-columns: 1fr 1fr; } }
.add-profile { margin-top: 12px; display: grid; grid-template-columns: 1fr 180px auto; gap: 8px; }

.assistant-panel { position: fixed; z-index: 90; inset-inline-end: 18px; inset-block-end: 18px; width: min(430px, calc(100vw - 36px)); height: min(680px, calc(100vh - 100px)); border: 1px solid var(--border-default); border-radius: 20px; background: var(--surface-elevated); color: var(--text-primary); box-shadow: 0 28px 80px rgba(29,50,70,.24); display: grid; grid-template-rows: auto 1fr auto auto; overflow: hidden; }
.help-fab{display:none;position:fixed;z-index:75;inset-inline-end:12px;bottom:93px;min-height:46px;padding:9px 14px;border:1px solid #81bcdc;border-radius:24px;background:#164f79;color:white;box-shadow:0 5px 18px #0018;align-items:center;gap:6px;font-weight:700;cursor:pointer}.help-top-button{display:flex;align-items:center;gap:6px;min-height:42px}.assistant-stage-card{padding:12px;border:1px solid var(--border-default);border-radius:12px;background:var(--surface-subtle);line-height:1.5}.assistant-stage-card p{margin:6px 0}.assistant-stage-card small{display:block;margin-top:6px;color:var(--text-secondary)}
.assistant-panel > header { padding: 13px 14px; border-bottom: 1px solid var(--border-default); background: var(--surface-subtle); display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.assistant-panel > header > div { display: flex; align-items: center; gap: 10px; }
.assistant-panel > header > div > div { display: flex; flex-direction: column; }
.assistant-panel header small { color: var(--text-muted); font-size: .68rem; }
.assistant-mark { width: 36px; height: 36px; border: 1px solid #3973a6; border-radius: 11px; background: rgba(48, 151, 255, .13); color: #8ac8ff; display: grid; place-items: center; }
.assistant-messages { min-height: 0; overflow: auto; padding: 14px; display: flex; flex-direction: column; gap: 12px; }
.assistant-welcome { margin: auto; max-width: 290px; text-align: center; color: var(--muted); display: flex; flex-direction: column; align-items: center; gap: 8px; }
.assistant-welcome > span { width: 52px; height: 52px; border-radius: 16px; background: var(--blue-soft); color: var(--blue-bright); display: grid; place-items: center; }
.assistant-welcome strong { color: var(--text-primary); }
.assistant-welcome p { font-size: .8rem; }
.assistant-message { max-width: 88%; display: grid; grid-template-columns: 28px 1fr; gap: 7px; align-items: start; }
.assistant-message > span { width: 28px; height: 28px; border-radius: 9px; background: var(--blue-soft); color: var(--accent-primary); display: grid; place-items: center; font-size: .6rem; font-weight: 900; }
.assistant-message p { border: 1px solid var(--border-default); border-radius: 4px 13px 13px 13px; background: var(--surface-subtle); padding: 9px 11px; color: var(--text-primary); font-size: .8rem; line-height: 1.6; }
.assistant-message.user { align-self: flex-end; grid-template-columns: 1fr 28px; }
.assistant-message.user > span { grid-column: 2; background: #225e96; color: white; }
.assistant-message.user p { grid-column: 1; grid-row: 1; border-radius: 13px 4px 13px 13px; background: #e7f3ff; border-color: #9bc1e8; color: #154f80; }
.assistant-suggestions { padding: 7px 12px; display: flex; gap: 6px; overflow: auto; }
.assistant-suggestions button { flex: 0 0 auto; border: 1px solid var(--border-default); border-radius: 999px; background: var(--surface-subtle); color: var(--text-secondary); padding: 6px 9px; font-size: .69rem; cursor: pointer; }
.assistant-form { border-top: 1px solid var(--border-default); padding: 10px; display: grid; grid-template-columns: 1fr 42px; gap: 7px; }
.assistant-form input { min-width: 0; border: 1px solid var(--border-strong); border-radius: 11px; background: var(--surface-elevated); color: var(--text-primary); padding: 10px 11px; }
.assistant-form button { border: 0; border-radius: 11px; background: var(--blue); display: grid; place-items: center; cursor: pointer; }
.cut-card.assistant-selected{outline:2px solid #2978a8;outline-offset:2px}
.production-table tr.assistant-selected td{background:rgba(41,120,168,.14)}
.typing { display: flex; gap: 4px; padding: 5px 2px; }
.typing b { width: 6px; height: 6px; border-radius: 50%; background: #84bde9; animation: typing 1s infinite; }
.typing b:nth-child(2) { animation-delay: .16s; }
.typing b:nth-child(3) { animation-delay: .32s; }
@keyframes typing { 0%, 70%, 100% { opacity: .3; transform: translateY(0); } 35% { opacity: 1; transform: translateY(-3px); } }
.toast { position: fixed; z-index: 130; inset-inline-start: 50%; inset-block-end: 24px; transform: translateX(50%); max-width: min(560px, calc(100vw - 30px)); border: 1px solid #9acdb8; border-radius: 12px; background: #e3f7ee; color: #176344; padding: 11px 15px; box-shadow: 0 20px 60px rgba(29,50,70,.24); font-size: .83rem; font-weight: 750; text-align: center; }
.toast.error { border-color: #e7aaa6; background: #fff0ef; color: #852c28; }

@media (max-width: 1100px) {
  .topbar { grid-template-columns: 1fr auto; }
  .desktop-nav { display: none; }
  .job-grid, .measure-grid, .plan-layout, .quote-layout { grid-template-columns: 1fr; }
  .analysis-column, .photo-panel, .design-panel, .quote-summary { position: static; max-height: none; }
  .tool-grid { grid-template-columns: 1fr 1fr; }
  .weight-family-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .reference-picker { grid-template-columns: repeat(3, 1fr); }
  .mobile-nav {
    position: fixed;
    z-index: 70;
    inset-inline: 12px;
    inset-block-end: 10px;
    min-height: 66px;
    border: 1px solid #30485f;
    border-radius: 18px;
    background: rgba(9, 16, 25, .94);
    backdrop-filter: blur(18px);
    box-shadow: 0 20px 60px rgba(0, 0, 0, .42);
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    align-items: center;
    padding: 5px;
  }
  .mobile-nav .nav-item { min-width: 0; min-height: 52px; padding: 5px 3px; justify-content: center; flex-direction: column; gap: 2px; font-size: .64rem; }
  .nav-create { width: 52px; height: 52px; justify-self: center; border: 0; border-radius: 17px; background: linear-gradient(145deg, #45a8ff, #1a75d2); color: white; display: grid; place-items: center; box-shadow: 0 8px 25px rgba(48, 151, 255, .3); cursor: pointer; }
  .sticky-actions { bottom: 84px; }
  .toast { bottom: 90px; }
  .assistant-panel { bottom: 86px; height: min(650px, calc(100vh - 170px)); }
  .help-fab{display:flex}.help-top-button{display:none}
}

@media (max-width: 760px) {
  .community-toolbar { grid-template-columns: 1fr; }.community-tabs { order: 0 }.community-toolbar .search-box { order: 1 }.community-filters { order: 2 }.community-filters select { flex: 1; min-width: 0; }
  .community-feed { grid-template-columns: 1fr; }.community-card { border-radius: 14px; }.community-cover { aspect-ratio: 16/9; }
  .community-facts { grid-template-columns: 1fr 1fr; }.community-knowledge { grid-template-columns: 1fr; }.community-detail > header { flex-direction: column; }.community-detail > header > button { width: 100%; }
  .community-similar > div { display: flex; overflow-x: auto; }.community-similar .community-card { flex: 0 0 84%; }
  .community-editor > header ol { overflow-x: auto; grid-template-columns: repeat(4,minmax(115px,1fr)); padding-bottom: 8px; }.community-photo-editor { grid-template-columns: 1fr 1fr; }.community-editor-knowledge { grid-template-columns: 1fr; }.community-upload { align-items: stretch; flex-direction: column; }.community-upload .file-button { justify-content: center; }.community-comments form { grid-template-columns: 1fr; }
  .pipeline-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pipeline-strip > div:last-child { grid-column: 1 / -1; }
  .main { width: min(100% - 24px, 1400px); padding-top: 20px; }
  .topbar { min-height: 62px; padding: 8px 12px; gap: 8px; }
  .brand-mark { width: 39px; height: 39px; border-radius: 11px; }
  .brand-button small { display: none; }
  .ai-trigger span { display: none; }
  .ai-trigger { width: 42px; height: 42px; padding: 0; justify-content: center; }
  .save-status { display: none; }
  .page-title { align-items: flex-start; margin-bottom: 18px; }
  .page-title p { font-size: .82rem; }
  .page-title .primary { width: 48px; min-width: 48px; padding: 0; font-size: 0; }
  .page-title .primary .icon { width: 22px; height: 22px; }
  .stats-grid { grid-template-columns: repeat(3, 1fr); gap: 7px; }
  .stat-card { min-height: 104px; padding: 13px; }
  .stat-card strong { font-size: 1.75rem; margin: 10px 0 5px; }
  .stat-card small { display: none; }
  .project-toolbar { align-items: stretch; flex-direction: column; gap: 4px; }
  .filter-tabs { display: grid; grid-template-columns: repeat(3, 1fr); }
  .filter-tabs button { padding: 8px 5px; }
  .project-open { padding: 13px; grid-template-columns: auto 1fr; }
  .project-open > .icon { display: none; }
  .project-heading { align-items: flex-start; flex-direction: column; gap: 4px; }
  .project-meta { max-width: 100%; }
  .project-actions { justify-content: space-between; }
  .modal-card { padding: 23px 16px 16px; }
  .modal-close { top: 12px; left: 12px; right: auto; }
  [dir="ltr"] .modal-close { left: auto; right: 12px; }
  .modal-backdrop:has(.profile-picker-modal) { align-items: end; padding: 0; }
  .profile-picker-modal { width: 100%; max-width: none; max-height: 92dvh; border-radius: 22px 22px 0 0; padding-bottom: calc(18px + env(safe-area-inset-bottom)); }
  .profile-family-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .profile-family-grid button { min-height: 72px; }
  .profile-family-tabs button,.profile-recent button,.profile-chip-row button,.profile-select,.profile-favorite { min-height: 48px; }
  .stepper button { flex-direction: column; gap: 4px; padding: 8px 2px; }
  .stepper button span { font-size: .62rem; }
  .context-line .status-badge { display: none; }
  .panel { padding: 16px; border-radius: 15px; }
  .form-grid, .form-grid.three-cols, .form-grid.four-cols { grid-template-columns: 1fr; }
  .span-2 { grid-column: auto; }
  .photo-buttons { grid-template-columns: 1fr; }
  .sticky-actions { padding: 7px; align-items: stretch; }
  .sticky-actions > button, .sticky-actions > div { flex: 1; }
  .sticky-actions > div { display: grid; grid-template-columns: 1fr 1fr; }
  .sticky-actions button { min-width: 0; padding: 9px 10px; font-size: .78rem; }
  .segment-toolbar { align-items: flex-start; flex-direction: column; }
  .segment-card header { grid-template-columns: auto 1fr; }
  .point-pair { grid-column: 1 / -1; }
  .reference-picker { grid-template-columns: repeat(2, 1fr); }
  .canvas-toolbar { align-items: stretch; flex-direction: column; }
  .view-tabs { display: grid; grid-template-columns: repeat(4, 1fr); }
  .view-tabs button { padding: 8px 5px; font-size: .72rem; }
  .engine-badge { align-self: flex-start; }
  .visual-stage, .technical-svg { min-height: 370px; }
  .annotation-row { grid-template-columns: 38px 88px 1fr 36px; }
  .calibration-controls { grid-template-columns: 1fr 1fr; }
  .production-head { align-items: flex-start; flex-direction: column; }
  .production-table { display: none; }
  .cut-cards { display: grid; gap: 9px; }
  .document-actions { width: 100%; }
  .document-actions button { flex: 1; }
  .production-drawing .technical-svg { min-height: 380px; }
  .production-grid, .customer-grid, .tool-grid, .compact-tools, .settings-layout { grid-template-columns: 1fr; }
  .weight-family-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .weight-family-grid button { min-height: 78px; }
  .weight-inputs { grid-template-columns: 1fr 1fr; }
  .weight-result-live { position: sticky; bottom: 84px; z-index: 8; box-shadow: 0 14px 35px rgba(0,0,0,.35); }
  .weight-list-rows article { grid-template-columns: 28px minmax(0,1fr) max-content; }
  .weight-list-rows article > div:last-child { grid-column: 2 / -1; }
  .visualization-layout { grid-template-columns: 1fr; }.visual-options { position: static; }.profile-results,.material-summary-grid { grid-template-columns: 1fr; }.customer-render { min-height: 340px; }
  .bom-grid { grid-template-columns: 1fr; }
  .safety-note { flex-direction: column; gap: 5px; }
  .customer-card { grid-template-columns: auto 1fr; }
  .customer-actions { grid-column: 1 / -1; justify-content: space-between; border-top: 1px solid var(--line); padding-top: 8px; }
  .tool-card > p { min-height: auto; }
  .add-profile { grid-template-columns: 1fr; }
  .assistant-panel { inset-inline-end: 8px; width: calc(100vw - 16px); }
  .measurement-guide > div { display: flex; overflow-x: auto; padding-bottom: 4px; }
  .measurement-guide button { flex: 0 0 145px; min-height: 72px; }
}

@media (max-width: 430px) {
  .main { width: min(100% - 16px, 1400px); }
  .stats-grid { grid-template-columns: 1fr 1fr 1fr; }
  .stat-card > span { font-size: .7rem; }
  .weight-inputs { grid-template-columns: 1fr; }
  .weight-family-grid button { min-height: 84px; }
  .weight-list-total { align-items: flex-start; flex-direction: column; }
  .project-icon { width: 40px; height: 40px; }
  .stepper i { width: 21px; height: 21px; }
  .visual-stage, .technical-svg { min-height: 320px; }
  .annotation-row { grid-template-columns: 34px 1fr 36px; }
  .annotation-row select { grid-column: 2; }
  .annotation-row .icon-button { grid-column: 3; grid-row: 1 / span 2; }
}

@media print {
  :root { color-scheme: light; }
  body { background: white; color: #101820; }
  .topbar, .mobile-nav, .project-context, .sticky-actions, .document-actions, .assistant-panel, .toast, .critical-approval { display: none !important; }
  .main { width: 100%; padding: 0; }
  .panel { break-inside: avoid; box-shadow: none; background: white; color: #101820; border-color: #cbd5df; margin-bottom: 12px; }
  .production-head { margin-bottom: 12px; }
  .drawing-bg { fill: white; stroke: #bcc8d3; }
  .drawing-title { fill: #172433; }
  .drawing-caption { fill: #4b5e70; }
  .gridlines path { stroke: #e3e9ee; }
  table { background: white; color: #162331; }
  th { background: #eef3f7; color: #26394b; }
  th, td { border-color: #d8e0e7; }
  .safety-note { color: #6b4c0d; background: #fff9e8; border-color: #cdb878; }
}

/* Round 7 · deterministic custom geometry */
.geometry-mode-panel{margin-bottom:14px}.geometry-mode-panel.simplified .panel-heading{margin-bottom:10px}.geometry-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:5px;border:1px solid var(--line);border-radius:13px;background:#0a141f}.geometry-mode-switch button{min-height:54px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--muted);padding:8px 12px;display:grid;gap:1px;text-align:start;cursor:pointer}.geometry-mode-switch button strong{color:#d8e5f1;font-size:.84rem}.geometry-mode-switch button small{font-size:.68rem}.geometry-mode-switch button.active{border-color:#3a72a5;background:linear-gradient(145deg,rgba(48,151,255,.17),rgba(48,151,255,.07));box-shadow:inset 0 0 0 1px rgba(105,181,255,.12)}.geometry-mode-switch button.active strong{color:#fff}
.custom-workspace{border:1px solid var(--border-default);border-radius:20px;background:var(--surface-panel);color:var(--text-primary);box-shadow:var(--shadow);overflow:hidden}.custom-workspace-head{padding:20px 22px;border-bottom:1px solid var(--border-default);display:flex;align-items:center;justify-content:space-between;gap:22px}.custom-workspace-head h2{margin:0 0 5px;font-size:1.4rem}.custom-workspace-head p{color:var(--text-muted);max-width:760px;font-size:.82rem}.custom-editor-layout{display:grid;grid-template-columns:minmax(0,2.15fr) minmax(290px,.85fr);min-height:690px}.custom-canvas-shell{min-width:0;padding:14px;background:var(--surface-dark-canvas);color:var(--text-inverse);display:flex;flex-direction:column;gap:10px}.custom-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.custom-primary-tools,.custom-view-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.custom-view-tools{direction:ltr}.custom-canvas{min-height:470px;flex:1;border:1px solid #294962;border-radius:17px;overflow:hidden;background:var(--surface-dark-canvas);color:var(--text-inverse);cursor:crosshair;touch-action:none;user-select:none}.custom-geometry-svg{display:block;width:100%;height:100%;min-height:470px;touch-action:none}.custom-canvas-bg{fill:#08131e;stroke:#31526d}.custom-grid{opacity:.42}.custom-grid path{fill:none;stroke:#22435e;stroke-width:1}.custom-touch-hint{color:#b6d6ee;font-size:.76rem;font-weight:750}
.custom-segment{cursor:pointer}.custom-segment line{stroke:#7bbfff;stroke-width:5;stroke-linecap:round;transition:.16s}.custom-segment text{fill:#a9c5de;font-size:13px;font-weight:800;paint-order:stroke;stroke:#08131e;stroke-width:5px}.custom-segment.is-diagonal line{stroke:#8b74d8;stroke-width:2.5;stroke-dasharray:10 8}.custom-segment.semantic-wall line{stroke:#a7b1ba;stroke-width:9;stroke-dasharray:2 7}.custom-segment:hover line,.custom-segment.is-selected line{stroke:#ffd166;stroke-width:8}.custom-segment.has-error line{stroke:var(--red)}.custom-point{cursor:pointer}.custom-point circle{fill:#10263a;stroke:#a6d5ff;stroke-width:4;transition:.15s;transform-box:fill-box;transform-origin:center}.custom-point text{fill:#fff;font-size:16px;font-weight:950;paint-order:stroke;stroke:#08131e;stroke-width:5px}.custom-point:hover circle,.custom-point.is-selected circle{fill:#d99e2c;stroke:#ffe19a;transform:scale(1.25)}.custom-point.has-error circle{fill:#5a2024;stroke:#ff918b}.custom-post{fill:#39d6a0;stroke:#d1ffef;stroke-width:3;cursor:pointer}.custom-post.is-selected{fill:#ffd166}.custom-obstacle{fill:rgba(255,118,111,.14);stroke:#ff8b84;stroke-width:2;stroke-dasharray:7 5;cursor:pointer}.custom-obstacle.is-selected{fill:rgba(255,209,102,.2);stroke:#ffd166}.custom-empty{fill:#6f879b;font-size:18px;font-weight:800}
.custom-segment .custom-hit{stroke:transparent;stroke-width:32;stroke-dasharray:none;pointer-events:stroke}.custom-point .custom-hit,.custom-post .custom-hit,.custom-obstacle .custom-hit{fill:transparent;stroke:transparent;transform:none;pointer-events:all}.custom-post>rect:not(.custom-hit){fill:#39d6a0;stroke:#d1ffef;stroke-width:3}.custom-post.is-selected>rect:not(.custom-hit){fill:#ffd166}
.custom-inspector{padding:20px;border-inline-start:1px solid var(--border-default);background:var(--surface-panel);color:var(--text-primary);overflow:auto}.inspector-title{padding-bottom:13px;margin-bottom:15px;border-bottom:1px solid var(--border-default);display:flex;flex-direction:column;gap:3px}.inspector-title span{font-weight:900}.inspector-title small{color:var(--text-muted);font-size:.72rem}.custom-inspector-head{margin-bottom:18px;display:flex;justify-content:space-between;align-items:center;gap:12px}.custom-inspector-head>div{display:flex;flex-direction:column}.custom-inspector-head span{color:var(--text-muted);font-size:.7rem}.custom-inspector-head strong{font-size:1.2rem}.selection-id{border:1px solid var(--border-strong);border-radius:999px;padding:4px 8px;font:700 .65rem/1 monospace;direction:ltr}.custom-inspector-empty{min-height:280px;display:grid;place-items:center;align-content:center;gap:8px;text-align:center;color:var(--text-muted)}.custom-inspector-empty>span{width:64px;height:64px;border:1px solid #99bfe4;border-radius:18px;background:var(--blue-soft);color:var(--accent-primary);display:grid;place-items:center;font-weight:950;direction:ltr}.custom-inspector-empty strong{color:var(--text-primary)}.custom-inspector-empty p{max-width:250px;font-size:.78rem}.selected-pair{margin-bottom:14px;border:1px solid var(--border-default);border-radius:12px;background:var(--surface-subtle);padding:10px;display:flex;align-items:center;justify-content:center;gap:14px;direction:ltr}.selected-pair span{width:38px;height:38px;border-radius:10px;background:var(--blue-soft);color:var(--accent-primary);display:grid;place-items:center;font-weight:950}.selected-pair i{color:var(--text-muted);font-style:normal}.custom-inspector .field{margin-bottom:12px}.custom-inspector .full{width:100%}
.custom-delete-row{min-height:48px;margin-top:20px;padding-top:13px;border-top:1px solid var(--line);display:flex;align-items:center;gap:7px;flex-wrap:wrap}.custom-delete-row>span{flex:1 0 100%;color:#f2aaa6;font-size:.75rem}.danger{min-height:40px;border:1px solid #984e4c;border-radius:10px;background:#6e2f31;color:#fff;padding:8px 13px;cursor:pointer;font-weight:850}.danger-text{color:#ff928c}.inline-confirm{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.inline-confirm span{color:#ffc0bc;font-size:.78rem}.custom-diagonal-controls{min-height:50px;border:1px solid #273d52;border-radius:12px;background:#0d1925;padding:7px 10px;display:flex;align-items:center;gap:7px}.custom-diagonal-controls>span:first-child{margin-inline-end:auto;color:#a9bed1;font-size:.75rem;font-weight:800}.custom-diagonal-controls select{min-height:36px;border:1px solid #314d67;border-radius:9px;background:#0a131d;color:#fff;padding:4px 9px}
.custom-issue-list{display:grid;gap:6px}.custom-status{width:100%;min-height:56px;border:1px solid #315544;border-radius:12px;background:#0e251e;color:#c2f3de;padding:9px 12px;display:grid;grid-template-columns:10px 1fr;align-items:center;gap:10px;text-align:start}.custom-status i{width:9px;height:9px;border-radius:50%;background:var(--green)}.custom-status span{display:flex;flex-direction:column;font-size:.75rem}.custom-status strong{font-size:.78rem}.custom-status.error{border-color:#704044;background:#28161a;color:#ffc0bc}.custom-status.error i{background:var(--red)}.custom-status.warning{border-color:#66542d;background:#241e11;color:#f6d998}.custom-status.warning i{background:var(--amber)}.custom-plan-stage{display:block;padding:0}.custom-plan-stage .custom-canvas-shell{width:100%;min-height:580px;border-radius:14px}.custom-plan-stage .custom-canvas,.custom-plan-stage .custom-geometry-svg{min-height:410px}.plan-custom-inspector{margin:-4px -4px 20px;padding:14px;border:1px solid #2a435a;border-radius:14px;background:#0d1824}
@media(max-width:820px){.geometry-mode-switch{grid-template-columns:1fr 1fr}.geometry-mode-switch button{min-height:58px;padding:8px}.geometry-mode-switch button small{display:none}.progressive-trigger{min-height:68px}.progressive-head{align-items:flex-start}.custom-workspace-head{align-items:flex-start;flex-direction:column}.custom-editor-layout{display:flex;flex-direction:column;min-height:0}.custom-canvas-shell{padding:9px}.custom-canvas,.custom-geometry-svg{min-height:390px}.custom-inspector{position:sticky;z-index:12;bottom:80px;max-height:58dvh;border:1px solid #39536b;border-radius:20px 20px 0 0;box-shadow:0 -24px 60px rgba(0,0,0,.45)}.custom-toolbar{align-items:flex-start;flex-direction:column}.custom-primary-tools{width:100%;display:grid;grid-template-columns:1fr 1fr}.custom-primary-tools .primary{grid-column:1/-1}.custom-view-tools{width:100%;overflow-x:auto;flex-wrap:nowrap}.custom-view-tools .icon-button{min-width:44px;min-height:44px}.custom-diagonal-controls{align-items:stretch;flex-wrap:wrap}.custom-diagonal-controls>span:first-child{flex:1 0 100%}.custom-diagonal-controls select{flex:1}}
@media(max-width:430px){.custom-canvas,.custom-geometry-svg{min-height:330px}.custom-workspace-head{padding:16px}.custom-primary-tools{grid-template-columns:1fr}.custom-primary-tools .primary{grid-column:auto}}
/* Round 8 — premium interactive visualization */
.visualization-canvas{min-width:0}.premium-visual-toolbar{gap:12px}.visual-mode-tabs{flex-wrap:wrap}.three-toolbar{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 92%,transparent);overflow-x:auto}.three-toolbar button,.three-toolbar select{min-height:40px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font:inherit;padding:0 12px;white-space:nowrap}.three-toolbar button:hover,.three-toolbar button.active{border-color:var(--accent);color:var(--accent)}.three-stage{position:relative;min-height:560px;overflow:hidden;border-radius:0 0 18px 18px;background:#626d78;isolation:isolate}.three-viewport{position:absolute;inset:0}.three-canvas{display:block;width:100%;height:100%;touch-action:none;outline:none}.three-loading,.three-message{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:12px;text-align:center;padding:24px;color:#f0f6fb}.three-loading span{width:34px;height:34px;border:3px solid #7d8b98;border-top-color:#d8ecff;border-radius:50%;animation:three-spin .8s linear infinite}.three-message span{max-width:420px;color:#e0e9f0}.three-message button{margin-top:4px}.three-gesture-hint{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:7px;padding:9px 14px;border-radius:999px;background:rgba(22,31,40,.78);border:1px solid rgba(218,235,249,.3);backdrop-filter:blur(10px);color:#f2f7fb;font-size:.88rem;pointer-events:none;animation:hint-in .35s ease}.three-status{position:absolute;top:16px;inset-inline-start:16px;display:flex;flex-direction:column;gap:2px;padding:8px 11px;border-radius:10px;background:rgba(22,31,40,.72);backdrop-filter:blur(9px);color:#edf5fb;font-size:.76rem}.three-status b{font-size:.82rem}.three-selection{position:absolute;inset-inline-end:16px;bottom:16px;min-width:190px;max-width:300px;padding:12px 36px 12px 14px;border:1px solid rgba(210,229,245,.3);border-radius:13px;background:rgba(24,34,43,.9);backdrop-filter:blur(12px);color:#f3f8fc;box-shadow:0 18px 45px rgba(0,0,0,.22)}.three-selection[hidden]{display:none}.three-selection button{position:absolute;top:5px;inset-inline-end:7px;border:0;background:transparent;color:#c2d1dc;font-size:22px}.three-selection span,.three-selection small{display:block;color:#c2d1dc}.three-selection strong{display:block;margin:2px 0}.three-scene-glow{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 120px rgba(235,246,255,.08)}.three-empty{min-height:420px}.customer-mode .three-status,.customer-layout .visual-options{display:none}.customer-mode{background:#d7e0e6}.visual-warning{margin-top:16px;padding:12px;border-radius:10px;background:var(--warning-soft);display:grid;gap:4px}.visual-focus{position:fixed!important;inset:12px!important;z-index:1200!important;background:var(--bg);padding:0!important;border-radius:20px;box-shadow:0 30px 100px rgba(0,0,0,.5)}.visual-focus .visualization-canvas{height:100%}.visual-focus .three-stage{min-height:calc(100vh - 145px)}.visual-focus+.sticky-actions{display:none}.customer-layout.visual-focus .visualization-canvas{grid-column:1/-1}.customer-layout.visual-focus .premium-visual-toolbar .engine-badge{display:none}
@keyframes three-spin{to{transform:rotate(360deg)}}@keyframes hint-in{from{opacity:0;transform:translate(-50%,8px)}}
@media(max-width:760px){.premium-visual-toolbar{align-items:flex-start}.premium-visual-toolbar .engine-badge{display:none}.three-toolbar{padding:8px;gap:6px}.three-toolbar button,.three-toolbar select{min-height:44px;padding:0 10px}.three-stage{min-height:430px;border-radius:0 0 14px 14px}.three-status{top:10px;inset-inline-start:10px}.three-selection{inset-inline:10px;bottom:10px;max-width:none}.three-gesture-hint{bottom:68px;white-space:nowrap;font-size:.78rem}.visual-focus{inset:0!important;border-radius:0}.visual-focus .three-stage{min-height:calc(100dvh - 116px)}.visual-focus .canvas-panel{border-radius:0}.visualization-layout.customer-layout .visual-options{display:none}}
@media(max-width:760px){.site-placement-controls{grid-template-columns:1fr}.site-placement-controls .overlay-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.site-placement-controls .overlay-tools>span{grid-column:1/-1}.site-placement-controls .overlay-tools button{min-width:0;min-height:44px;white-space:normal}.site-stage{width:100%;max-width:100%;overflow:hidden}}
@media(prefers-reduced-motion:reduce){.three-loading span{animation:none}.three-gesture-hint{animation:none}}
.customer-mode .three-message{color:#152334}.customer-mode .three-message span{color:#53677a}

/* Round 8.5 — light-first field workspace */
:root{color-scheme:light;--bg:#f4f7fa;--surface:#fff;--panel:#fff;--panel-2:#f8fafc;--panel-3:#eef4fb;--line:#dbe4ed;--line-strong:#b9c8d7;--text:#17212b;--muted:#657588;--accent:#1769d2;--blue:#1769d2;--blue-bright:#1769d2;--blue-soft:#e8f2ff;--green:#16825a;--green-soft:#e8f7f0;--amber:#a96508;--warning-soft:#fff5df;--red:#c63d3d;--red-soft:#fff0ef;--shadow:0 12px 34px rgba(27,52,75,.09)}
html,body,#app,.app-frame{max-width:100%;overflow-x:clip}body{background:linear-gradient(180deg,#f8fafc 0,#f2f6fa 45%,#edf3f8 100%);color:var(--text);font-size:16px}.main{max-width:1400px}.topbar{padding-top:max(10px,env(safe-area-inset-top));background:rgba(255,255,255,.92);border-color:var(--line);box-shadow:0 1px 18px rgba(28,52,74,.06);backdrop-filter:blur(18px)}.brand-mark{background:linear-gradient(145deg,#1b75dc,#1257b2);box-shadow:0 7px 18px rgba(23,105,210,.22)}.brand small,.topbar small{color:var(--muted)}.desktop-nav{background:#f2f6fa;border-color:var(--line);box-shadow:none}.desktop-nav button{color:#536579}.desktop-nav button:hover,.desktop-nav button.active{background:#fff;color:var(--accent);box-shadow:0 2px 8px rgba(31,59,84,.08)}
.panel,.stat-card,.project-card,.customer-card,.tool-card,.visual-card,.quote-card,.community-card{background:var(--surface);border-color:var(--line);box-shadow:var(--shadow)}.stat-card small{color:var(--muted)}.project-toolbar{background:#fff;border-color:var(--line);box-shadow:var(--shadow)}.search-box input{color:var(--text)}.filter-tabs button.active,.view-tabs button.active{color:var(--accent);background:var(--blue-soft);box-shadow:inset 0 0 0 1px #9bc1e8}.empty-state{background:#fff;border-color:#bdcddd}.empty-icon{border-color:#b4d2ef}.panel-heading p,.section-heading p,.helper,.field small,p{color:var(--muted)}.kicker{color:var(--accent)}.status-badge{box-shadow:none}.status-draft{background:#eef2f6;color:#586b7c}.status-ready{background:var(--green-soft);color:#126a49}.status-warning{background:var(--warning-soft);color:#8b5609}.status-error{background:var(--red-soft);color:#a42f2f}
input,select,textarea,.field input,.field select,.field textarea,.number-wrap,.unit-select-input{background:#fff;color:var(--text);border-color:var(--line-strong)}input:focus,select:focus,textarea:focus,.number-wrap:focus-within{outline:3px solid rgba(23,105,210,.14);border-color:var(--accent)}.field>span{color:#405264}.number-wrap>span{color:#667a8d;background:#f4f7fa;border-inline-start:1px solid var(--line);padding-inline:11px;white-space:nowrap}.primary{background:linear-gradient(180deg,#2176d9,#155ebd);border-color:#155ebd;box-shadow:0 7px 18px rgba(23,105,210,.2)}.secondary,.quiet,.icon-button,.back-link{background:#fff;color:#344b61;border-color:var(--line-strong)}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid rgba(23,105,210,.28);outline-offset:2px}
.project-context{background:transparent}.context-line{background:#fff;border-color:var(--line);box-shadow:0 5px 18px rgba(30,55,77,.05)}.stepper{background:#fff;border-color:var(--line)}.stepper li:after{background:var(--line)}.stepper button{color:var(--muted)}.stepper .current button,.stepper .done button{color:var(--accent)}.stepper i{background:#f0f4f8;border-color:var(--line-strong);color:#63778a}.stepper .current i,.stepper .done i{background:var(--accent);border-color:var(--accent);color:#fff}
.mobile-step-progress{display:none}.measurement-visual{margin:12px 0 18px;padding:16px;border:1px solid #d7e3ee;border-radius:18px;background:linear-gradient(145deg,#fbfdff,#edf5fc)}.measurement-visual svg{display:block;width:100%;max-height:250px}.measurement-visual .diagram-opening{fill:#fff;stroke:#425f78;stroke-width:4}.measurement-visual .diagram-structure{fill:none;stroke:#425f78;stroke-width:4}.measurement-visual .diagram-ground{fill:none;stroke:#9aabba;stroke-width:3}.measurement-visual .diagram-arrow,.measurement-visual .diagram-rise{fill:none;stroke:var(--accent);stroke-width:3}.measurement-visual text{fill:#31495e;font-weight:800;text-anchor:middle}.measurement-visual .diagram-points text{fill:var(--accent);font-size:18px}.measurement-visual figcaption{margin-top:10px;color:#53697d;font-size:.82rem;text-align:center}.measurement-guide button{background:#f6f9fc;color:#31495e;border-color:var(--line)}.measurement-guide button:hover{background:var(--blue-soft);border-color:#9bc1e8}.photo-preview{background:#f6f9fc;border-color:#bdcddd}.photo-preview>div strong{color:#32485c}.measurement-primary-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.corner-height-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.progressive-trigger{background:#f6f9fc;border-color:var(--line);color:#32495e}.progressive-content{background:#fbfcfe;border-color:var(--line)}
.mobile-nav{background:rgba(255,255,255,.96);border-color:var(--line);box-shadow:0 -10px 30px rgba(28,52,74,.08);padding-bottom:max(6px,env(safe-area-inset-bottom))}.mobile-nav button{min-width:0;min-height:52px;color:#6a7d90}.mobile-nav button.active{color:var(--accent);background:var(--blue-soft)}.mobile-nav button i{background:transparent;color:inherit}.sticky-actions{background:rgba(248,250,252,.94);border-color:var(--line);backdrop-filter:blur(14px)}
.modal-backdrop{background:rgba(23,33,43,.36);backdrop-filter:blur(4px)}.modal-card{background:#fff;color:var(--text);border-color:var(--line);box-shadow:0 30px 90px rgba(25,44,62,.22)}.profile-picker,.weight-step,.weight-custom-panel,.weight-result-live,.weight-material-list{background:#fff;border-color:var(--line)}.profile-chip-row button,.weight-family-grid button{background:#f7f9fc;color:#31495e;border-color:var(--line)}.profile-chip-row button.active,.weight-family-grid button.active{background:var(--blue-soft);color:var(--accent);border-color:#83b4e8}.weight-result-live{box-shadow:0 16px 35px rgba(34,61,84,.12)}
.geometry-mode-switch{background:#eef3f8;border-color:var(--line)}.geometry-mode-switch button{color:var(--muted)}.geometry-mode-switch button strong{color:#344b61}.geometry-mode-switch button.active{border-color:#87b4df;background:#e8f3ff;box-shadow:none}.geometry-mode-switch button.active strong{color:#145ead}.custom-workspace{box-shadow:0 16px 38px rgba(18,39,58,.16)}.three-stage,.custom-canvas-shell,.custom-canvas{color-scheme:dark}.three-toolbar{background:#fff}.three-toolbar button,.three-toolbar select{background:#fff;color:#30485d}
.settings-layout,.production-grid,.visualization-layout,.job-layout,.measure-layout>*{min-width:0}table{max-width:100%}.table-wrap{max-width:100%;overflow:auto;overscroll-behavior-inline:contain}img,svg,canvas{max-width:100%}.mobile-step-progress details button,.mobile-nav button,.sticky-actions button,.field input,.field select,.field textarea{min-height:44px}
@media(max-width:820px){.main{width:min(calc(100% - 24px),1400px);padding-bottom:calc(102px + env(safe-area-inset-bottom))}.topbar{padding-inline:12px}.desktop-nav{display:none}.project-context{margin-bottom:12px}.context-line{padding:10px;border-radius:14px}.stepper{display:none}.mobile-step-progress{display:grid;grid-template-columns:1fr auto;gap:8px 12px;margin-top:10px;padding:12px 14px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:0 5px 18px rgba(30,55,77,.05)}.mobile-step-progress>div:first-child{display:flex;flex-direction:column}.mobile-step-progress span{font-size:.72rem;color:var(--muted)}.mobile-step-progress strong{font-size:1rem}.mobile-progress-track{grid-column:1/-1;height:5px;overflow:hidden;border-radius:999px;background:#e6edf4}.mobile-progress-track i{display:block;height:100%;border-radius:inherit;background:var(--accent)}.mobile-step-progress details{grid-column:2;grid-row:1}.mobile-step-progress summary{min-height:44px;display:flex;align-items:center;padding:0 10px;border:1px solid var(--line);border-radius:10px;color:var(--accent);font-size:.76rem;font-weight:800;list-style:none;cursor:pointer}.mobile-step-progress details>div{position:absolute;z-index:50;inset-inline:12px;margin-top:8px;padding:8px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 22px 55px rgba(29,52,73,.2);display:grid;gap:4px}.mobile-step-progress details button{display:grid;grid-template-columns:30px 1fr;align-items:center;gap:8px;width:100%;border:0;border-radius:9px;background:transparent;color:#40576b;text-align:start}.mobile-step-progress details button.active{background:var(--blue-soft);color:var(--accent)}.mobile-step-progress details i{width:28px;height:28px;border-radius:50%;background:#edf2f7;display:grid;place-items:center;font-style:normal}.mobile-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));inset-inline:0;bottom:0;border-radius:0;padding-inline:6px}.mobile-nav button{padding:5px 2px;font-size:.64rem}.mobile-nav button svg{width:19px;height:19px}.sticky-actions{position:sticky;z-index:20;bottom:calc(68px + env(safe-area-inset-bottom));margin:20px -12px -24px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));display:grid;grid-template-columns:minmax(110px,.6fr) minmax(0,1.4fr);gap:8px}.sticky-actions .primary{min-height:52px}.measurement-primary-fields,.corner-height-grid{grid-template-columns:1fr}.field input,.field select,.field textarea{font-size:16px}.modal-card{position:fixed;inset-inline:8px;bottom:0;max-height:min(88dvh,760px);overflow:auto;border-radius:22px 22px 0 0;padding-bottom:max(18px,env(safe-area-inset-bottom))}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-grid>*:nth-child(3){grid-column:1/-1}.panel{padding:17px;border-radius:17px}.panel-heading{align-items:flex-start}.panel-heading h1,.panel-heading h2{line-height:1.18}.number-wrap{min-width:0}.number-wrap input{min-width:0;width:100%}.three-stage{min-width:0}.customer-actions,.document-actions{flex-wrap:wrap}.customer-actions>*{min-height:44px}.custom-inspector{bottom:calc(69px + env(safe-area-inset-bottom))}}
@media(max-width:430px){.main{width:calc(100% - 16px)}.panel{padding:14px}.measurement-diagram{padding:10px}.measurement-diagram svg{max-height:210px}.mobile-step-progress{padding:10px 11px}.mobile-step-progress summary{padding-inline:8px}.context-line .status-badge{max-width:110px;overflow:hidden;text-overflow:ellipsis}.weight-family-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.weight-inputs{grid-template-columns:1fr}.document-actions{display:grid;grid-template-columns:1fr 1fr}.three-toolbar{max-width:100%;overflow-x:auto}.visual-focus{max-width:100vw}}

@media(max-width:820px){
  .app-frame,.main,.workspace-grid,.measure-grid,.plan-layout,.visualization-layout,.production-grid,.quote-layout,.panel,.segment-list,.segment-card,.design-section,.field,.profile-field,.profile-field-button,.profile-results,.profile-option,.profile-select,.material-summary-grid,.bom-grid,.weight-screen{min-width:0;max-width:100%}
  .segment-card,.design-section,.panel{overflow-wrap:anywhere}
  .profile-field-button{gap:8px}.profile-field-button>span,.profile-select>span{min-width:0}.profile-field-button strong,.profile-field-button small,.profile-select strong,.profile-select small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .profile-field-button>b,.profile-select>b{flex:0 0 auto;white-space:nowrap}
  .profile-orientation{grid-template-columns:1fr 1fr}.profile-orientation button{grid-template-columns:30px minmax(0,1fr);padding:7px}.profile-orientation i{width:29px;height:29px}
  .cutlist-recovery>div{align-items:stretch;flex-direction:column}.cutlist-recovery button{width:100%}
  .production-table{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.production-table table{width:max-content;min-width:100%}
}
@media(max-width:430px){.measurement-visual{padding:10px}.measurement-visual svg{max-height:210px}}

/* Round 8.5.1 — semantic runtime and mobile layer policy */
:root{--surface-page:var(--bg);--surface-panel:var(--surface);--surface-elevated:#fff;--surface-subtle:var(--panel-2);--surface-dark-canvas:#091521;--text-primary:var(--text);--text-secondary:#405264;--text-muted:var(--muted);--text-inverse:#eef7ff;--border-default:var(--line);--border-strong:var(--line-strong);--accent-primary:var(--accent);--accent-primary-hover:#1259b4;--status-success:var(--green);--status-warning:var(--amber);--status-error:var(--red);--status-info:var(--accent);--layer-local-sticky:20;--layer-action:30;--layer-navigation:40;--layer-sheet:100;--layer-toast:130}
html,body,#app,.app-frame{min-width:0;overflow-x:hidden}.main{min-width:0}.mobile-nav{z-index:var(--layer-navigation)}.sticky-actions{z-index:var(--layer-action)}.modal-backdrop{z-index:var(--layer-sheet)}.toast{z-index:var(--layer-toast)}
.custom-delete-row>span,.inline-confirm span,.danger-text{color:var(--status-error)}.custom-diagonal-controls{border-color:var(--border-default);background:var(--surface-subtle)}.custom-diagonal-controls>span:first-child{color:var(--text-muted)}.custom-diagonal-controls select{border-color:var(--border-strong);background:var(--surface-elevated);color:var(--text-primary)}.custom-status{border-color:#acd8c7;background:var(--green-soft);color:#126a49}.custom-status.error{border-color:#efb8b5;background:var(--red-soft);color:#9e2f2f}.custom-status.warning{border-color:#e8ce91;background:var(--warning-soft);color:#835109}.plan-custom-inspector{border-color:var(--border-default);background:var(--surface-subtle);color:var(--text-primary)}
@media(max-width:820px){.custom-inspector{position:relative;z-index:auto;bottom:auto;max-height:none;border-color:var(--border-default);border-radius:16px;box-shadow:var(--shadow)}.mobile-step-progress details>div{z-index:var(--layer-sheet)}.visual-focus{min-height:100dvh}}

/* Round 8.6.1A — controlled light-surface contrast corrections */
.price-summary{border:1px solid #b6d2e9;background:#edf5fc;color:#17212b}
.price-summary>span{color:#466276}.price-summary>strong{color:#17212b}.price-summary>small{color:#516b7f}.price-summary dl{border-color:#c7dcec}.price-summary dt{color:#435e73}.price-summary dd{color:#17212b}
.weight-source-list span{border-color:#b7cfe4;background:#eef4f8;color:#415c70}.weight-source-list strong{color:#17212b}
.weight-list-rows article>b{color:#126a49}.weight-list-total strong{color:#126a49}
.picker-step>strong{color:#425e73}
.community-title span{color:#4d687c}.community-detail header p{color:#50697d}.community-private-map label{color:#405b70}
.tool-result{border-color:#b5d3ec;background:#eff6fc}.tool-result span{color:#466277}
.photo-preview>div:not(.photo-loading){color:#516b7f}.photo-preview>div strong{color:#253f53}.photo-loading{background:#0f1f2d;color:#ffffff}.photo-buttons .file-button{background:#ffffff;color:#304b60;border-color:var(--line-strong)}.field-photo-actions .file-button{background:#ffffff;color:#304b60;border-color:var(--line-strong)}.field-photo-busy{color:#233e51}.measure-photo>div:not(.simple-overlay){color:#d6e5f1}.measure-photo>div:not(.simple-overlay) strong{color:#ffffff}
.ai-trigger{border-color:#7eafd9;background:#e8f2ff;color:#145b9e}.point-pair{color:#4d687d}
.profile-family-grid button i{color:#1769d2}.weight-family-grid button i{color:#1769d2}.profile-family-grid button small{color:#536b7f}.profile-family-tabs button.active{border-color:#155ebd;background:#1769d2;color:#ffffff}.profile-family-tabs button.active i{color:#ffffff}.profile-family-tabs button.active small{color:#ffffff}.profile-select b{color:#126a49}.profile-field-button b{color:#126a49}

/* v1.7.3 — debug-only photo upload handoff, enabled only with ?photoDebug=1 */
.photo-diagnostic{margin-top:12px;padding:10px;border:1px dashed #8bb1d1;border-radius:10px;background:#f5f9fd;color:#314d62;font-size:.76rem;line-height:1.45}.photo-diagnostic summary{cursor:pointer;font-weight:800;color:#234b6c}.photo-diagnostic p{margin:7px 0;color:#50697d}.photo-diagnostic textarea{display:block;box-sizing:border-box;width:100%;min-height:112px;margin:8px 0;padding:8px;border:1px solid #b7cbdd;border-radius:8px;background:#fff;color:#243f54;font:12px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;direction:ltr;text-align:left;resize:vertical}.photo-diagnostic button{min-height:34px}

/* v1.8.6C — open workflow, explicit technical/commercial release domains */
.calculation-unavailable{min-height:260px;display:grid;place-content:center;justify-items:center;gap:10px;padding:24px;text-align:center;color:var(--text-primary);background:var(--surface-subtle)}.calculation-unavailable.compact{min-height:170px;border:1px dashed var(--border-strong);border-radius:14px}.calculation-unavailable span{max-width:620px;color:var(--text-muted)}.calculation-unavailable>div{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.cut-production-status{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;background:#edf2f7;color:#52677a;font-size:.68rem;font-weight:850;white-space:nowrap}.cut-production-status.status-final{background:var(--green-soft);color:#126a49}.cut-production-status.status-pending_measurement,.cut-production-status.status-approximate{background:var(--warning-soft);color:#835109}.cut-production-status.status-unsupported{background:var(--red-soft);color:#9e2f2f}.production-accessible,.production-approval{display:grid;gap:18px}.production-blocker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.production-blocker-grid article{min-width:0;padding:15px;border:1px solid #efc1bd;border-radius:14px;background:var(--red-soft);display:grid;gap:8px}.production-blocker-grid article span{color:#6f4242;overflow-wrap:anywhere}.production-blocker-grid article .secondary{justify-self:start}.quote-release-status{margin-top:16px;display:grid;gap:7px}.quote-release-status.is-ready{border-color:#acd8c7}.quote-release-status.is-pending{border-color:#e8ce91}.quote-release-status button{justify-self:start}.quote-absent{margin-bottom:14px}.document-actions button:disabled{opacity:.48;cursor:not-allowed}
@media(max-width:600px){.production-blocker-grid{grid-template-columns:1fr}.production-accessible .document-actions,.production-approval .document-actions{display:grid;grid-template-columns:1fr}.calculation-unavailable{min-height:210px;padding:18px}.cut-production-status{white-space:normal}}

/* v1.8.6E1 — deterministic Pergola roof and support editor */
.roof-form-section{display:grid;gap:16px}.roof-form-grid{display:grid;grid-template-columns:repeat(5,minmax(118px,1fr));gap:10px;overflow-x:auto;padding:2px 1px 8px;scroll-snap-type:x proximity}.roof-form-card{min-height:132px;border:1px solid var(--line);border-radius:16px;background:var(--panel-2);color:var(--text);padding:10px;display:grid;grid-template-rows:78px auto;align-items:center;text-align:center;cursor:pointer;scroll-snap-align:start}.roof-form-card svg{width:100%;height:76px;fill:none;stroke:currentColor;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.roof-form-card strong{font-size:.88rem;line-height:1.25}.roof-form-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 26%,transparent);color:var(--accent)}.roof-conversion,.datum-note{border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:14px;padding:14px;background:color-mix(in srgb,var(--accent) 7%,var(--surface));display:flex;gap:10px;align-items:center;flex-wrap:wrap}.roof-conversion p,.datum-note span{margin:0;flex:1 1 260px}.nested-profile{border-top:1px solid var(--line);padding-top:14px}.support-editor{display:grid;gap:12px;border-top:1px solid var(--line);padding-top:16px}.support-editor>header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.support-editor>header p{margin:4px 0 0}.support-editor>header>div:last-child{display:flex;gap:8px;flex-wrap:wrap}.support-list{display:grid;gap:10px}.support-card{border:1px solid var(--line);border-radius:14px;background:var(--panel-2);padding:12px;display:grid;gap:10px;min-width:0}.support-card>header{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.support-card>header span{color:var(--muted)}.support-card>header button{margin-inline-start:auto}.support-card p{margin:0}.support-card .form-grid{min-width:0}.support-card input,.support-card select{min-width:0}.roof-form-card,.support-editor button{min-height:44px}
@media(max-width:600px){.roof-form-grid{grid-template-columns:repeat(5,146px);margin-inline:-4px}.roof-form-card{min-height:126px}.support-editor>header{display:grid}.support-editor>header>div:last-child{display:grid;grid-template-columns:1fr 1fr;width:100%}.support-card .form-grid{grid-template-columns:1fr}.roof-conversion{display:grid}.datum-note{align-items:flex-start}.datum-note strong{width:100%}}

/* v1.8.6F — Freeform Pergola frame plan and touch inspector */
.freeform-canvas-shell,.freeform-inspector{min-width:0;max-width:100%;display:grid;gap:12px}.freeform-canvas-shell{padding:10px;background:#172535;border-radius:16px;color:#e9f2f9}.freeform-canvas-shell small{color:#c4d6e4}.freeform-toolbar{display:flex;gap:7px;flex-wrap:wrap}.freeform-toolbar button{min-height:44px;padding:7px 10px;border:1px solid #6a8599;border-radius:10px;background:#29425a;color:white;font-size:.82rem}.freeform-toolbar button.active{background:#1769d2;border-color:#8bbded}.freeform-toolbar button:disabled{opacity:.4}.freeform-plan{display:block;width:100%;height:clamp(320px,54dvh,530px);border:1px solid #526d83;border-radius:12px;touch-action:none;user-select:none;max-width:100%}.freeform-plan [data-frame-node],.freeform-plan [data-frame-beam]{cursor:pointer}.freeform-inspector{overflow-wrap:anywhere}.freeform-inspector .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.freeform-inspector .field,.freeform-inspector input,.freeform-inspector select{min-width:0;max-width:100%}.freeform-inspector label:not(.field){display:flex;gap:8px;align-items:center;min-height:44px}.freeform-inspector .input-unit{display:flex;min-width:0}.freeform-inspector .input-unit input{width:100%;min-width:0}.freeform-inspector .input-unit i{font-style:normal;padding:9px;background:#edf3f9;color:#435a6b}.freeform-canvas-shell .inline-note{overflow-wrap:anywhere}
.freeform-snap-mode{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.freeform-snap-mode strong{font-size:.8rem}.freeform-snap-mode button{min-height:42px;padding:6px 11px;border:1px solid #7091a9;border-radius:10px;background:#29425a;color:#fff;font-weight:750}.freeform-snap-mode button.active{background:#1769d2;border-color:#b8dcfa}.freeform-snap-mode small{width:100%;font-size:.72rem}
@media(max-width:600px){.freeform-inspector .form-grid{grid-template-columns:1fr}.freeform-toolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.freeform-toolbar button{min-width:0;white-space:normal;line-height:1.2}.freeform-plan{height:clamp(340px,55dvh,520px)}.plan-layout .canvas-panel{min-width:0;overflow:hidden}}
.freeform-face-draft,.freeform-roof-schedule{display:grid;gap:9px;min-width:0;max-width:100%;overflow-wrap:anywhere}.freeform-face-draft{padding:10px;border:1px solid #7598b3;border-radius:12px}.freeform-face-draft button,.freeform-roof-row{min-height:44px}.freeform-face-draft .freeform-anchor-choice{display:flex;flex-wrap:wrap;gap:8px;min-width:0}.freeform-face-draft select{min-width:0;max-width:100%;flex:1 1 180px}.freeform-roof-schedule{padding:12px;border:1px solid #aec5d4;border-radius:12px}.freeform-roof-row{display:grid;gap:4px;width:100%;max-width:100%;min-width:0;text-align:start;white-space:normal;overflow-wrap:anywhere;padding:10px;border:1px solid #91afc1;border-radius:10px;background:#edf6fb;color:#19384b}.freeform-roof-row span{min-width:0}.three-status button[data-action="toggle-roof-surfaces"]{min-height:44px;white-space:normal}
.freeform-roof-row.invalid{border-color:#a94c39;background:#fff1ed}.freeform-roof-row .field-error{color:#873623}.freeform-plan [data-frame-face]{cursor:pointer}
.freeform-face-vertices{display:flex;gap:7px;flex-wrap:wrap}.freeform-face-vertices button{min-height:44px;padding:6px 10px;border:1px solid #9eb5c8;border-radius:9px;overflow-wrap:anywhere}

/* Field first: the ordinary measurement and sketch remain readable on phones. */
.measurement-special-options,.stair-reference-chooser,.stair-extra-checks,.stair-issues,.stair-rail-details,.frame-professional-details,.freeform-roof-details{min-width:0;max-width:100%;overflow-wrap:anywhere;border:1px solid var(--border-default);border-radius:12px;padding:10px;margin-block:8px}
.measurement-special-options summary,.stair-reference-chooser summary,.stair-extra-checks summary,.stair-issues summary,.stair-rail-details summary,.frame-professional-details summary,.freeform-roof-details summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:650}
.measurement-special-options button,.frame-dimension-editor button,.freeform-inspector>button{min-height:44px}
.stair-field-card{display:grid;gap:12px}.stair-field-card>header{display:flex;align-items:center;justify-content:space-between;gap:9px;flex-wrap:wrap}.stair-field-card .form-grid{min-width:0}.stair-primary-field{min-width:0}.stair-primary-field small{display:block;line-height:1.35;color:var(--text-secondary)}.stair-ab-diagram svg{width:min(100%,360px);height:auto;display:block;margin-inline:auto}.stair-reference-chooser select{max-width:100%}.stair-rail-details .rail-end-grid{min-width:0}
.stair-draft-preview,.stair-draft-empty{min-width:0;max-width:100%;padding:16px;display:grid;gap:10px;align-content:center;color:var(--text-primary)}.stair-draft-preview svg{width:100%;max-width:650px;height:min(45dvh,330px);margin:auto}.stair-draft-preview p,.stair-draft-empty p{max-width:60ch;line-height:1.45}.stair-preview-stage{min-height:340px}
.stair-plan-route{min-width:0;max-width:100%;margin:0;padding:12px 16px;background:var(--surface-subtle);color:var(--text-primary);border:1px solid var(--border-default);border-radius:12px}.stair-plan-route figcaption{font-weight:700}.stair-plan-route svg{display:block;width:100%;max-width:540px;height:auto;max-height:260px;margin:auto}.stair-plan-route text{font-size:12px}.stair-draft-preview .stair-plan-route{margin-top:8px}
.frame-dimension-editor{min-width:0;border:1px solid var(--border-default);border-radius:12px;padding:12px;display:grid;gap:9px}.frame-dimension-editor h4{margin:0}.frame-dimension-editor p,.frame-dimension-editor small{margin:0;line-height:1.4}.frame-professional-details .form-grid{margin-top:10px}.freeform-roof-details>summary{padding-inline:4px}
.freeform-quick-dimension{display:grid;gap:8px;padding:14px;border:2px solid #f5cf81;border-radius:12px;background:#22374a;color:#fff;max-width:100%}.freeform-quick-dimension strong{font-size:1.05rem}.freeform-quick-dimension .field{display:grid;gap:7px;min-width:0}.freeform-quick-dimension .input-unit{display:flex;min-width:0;max-width:100%}.freeform-quick-dimension input{width:100%;min-width:0;min-height:48px;padding:10px;border-radius:8px;font-size:1.15rem;color:#1b2d3b;background:#fff}.freeform-quick-dimension .input-unit i{padding:12px;background:#e6eef5;color:#243c50;font-style:normal}.freeform-quick-dimension small{color:#d9e6ef;line-height:1.5}
.architectural-plan-controls{display:grid;gap:10px;padding:12px;border:1px solid #849db2;border-radius:12px;background:#21384b;color:#f1f7fb;min-width:0}.architectural-plan-controls p,.architectural-plan-controls small{margin:0;line-height:1.45;color:#d7e6ee}.architectural-plan-controls .plan-scale-ready{color:#a9f5cb}.architectural-plan-controls .plan-scale-failed{color:#ffd1bc}.architectural-plan-controls .plan-controls-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.architectural-plan-controls .plan-calibration-steps{display:flex;flex-wrap:wrap;gap:6px}.architectural-plan-controls .plan-calibration-steps button{min-height:44px;border:1px solid #8099aa;border-radius:9px;padding:8px;background:#35516a;color:#fff}.architectural-plan-controls .plan-calibration-steps button.active{background:#146bd3;border-color:#a3d6ff}.architectural-plan-controls .plan-calibration-lengths{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.architectural-plan-controls .field{min-width:0}.architectural-plan-controls .input-unit{display:flex}.architectural-plan-controls input[type=number]{min-width:0;width:100%;min-height:44px;color:#213444;background:white}.architectural-plan-controls .input-unit i{padding:10px;background:#e6eef5;color:#213444;font-style:normal}.architectural-plan-controls .file-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center}.architectural-plan-controls strong{overflow-wrap:anywhere}
.architectural-plan-controls summary{cursor:pointer;min-height:44px;display:list-item;font-weight:700}.architectural-plan-controls[open] summary{margin-bottom:8px}
@media(max-width:430px){.stair-field-card .form-grid,.frame-dimension-editor .form-grid{grid-template-columns:1fr}.stair-field-card input,.stair-field-card select,.frame-dimension-editor input{max-width:100%;min-width:0}.stair-field-card .field,.frame-dimension-editor .field{min-width:0}.measurement-special-options,.stair-rail-details,.freeform-roof-details{width:100%}}

/* Post-H fabrication review: keep saw status and operative progress legible on phones. */
.workshop-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:12px 0 18px}
.workshop-controls button,.workshop-controls select,.workshop-progress button{min-height:44px}
.workshop-controls label{display:flex;gap:8px;align-items:center}
.cut-saw-pending,.cut-saw-ready{display:grid;gap:8px;padding:12px;margin-top:12px;border-radius:12px;background:rgba(61,91,115,.18);overflow-wrap:anywhere}
.cut-saw-pending{border:1px solid #b27551}.cut-saw-ready{border:1px solid #79bda8}
.cut-saw-ready>div,.cut-end-grid{display:grid;gap:8px}
.cut-saw-ready details{margin-top:6px}.cut-saw-ready summary{cursor:pointer;min-height:40px}
.workshop-progress{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;flex-wrap:wrap}
.workshop-mode .cut-cards{display:grid;gap:16px}.workshop-mode .cut-card{font-size:1.1rem;padding:18px}.workshop-mode .cut-card-main b{font-size:1.6rem}
.freeform-planning-heading{display:grid;gap:5px;margin:12px 0}.freeform-member-row{display:flex;align-items:center;gap:10px;min-height:46px;flex-wrap:wrap}.freeform-member-row button{min-height:42px}
.freeform-wide-plan{width:100%;max-width:100%}.freeform-profile-planning{display:grid;gap:13px;margin:18px 0 24px}.freeform-profile-planning>p{margin:0;color:var(--text-secondary)}.freeform-profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.freeform-profile-card{min-width:0;display:grid;align-content:start;gap:11px;padding:15px;border:1px solid var(--border-default);border-radius:14px;background:var(--surface-subtle)}.freeform-profile-card header{display:grid;gap:3px}.freeform-profile-card header small{color:var(--text-muted)}.freeform-profile-orientation{display:flex;gap:7px}.freeform-profile-orientation button{min-height:42px;flex:1;border:1px solid var(--border-strong);border-radius:9px;background:var(--surface-elevated);color:var(--text-primary)}.freeform-profile-orientation button.active{border-color:var(--accent-primary);background:var(--blue-soft)}.freeform-member-row{padding:8px 0;border-bottom:1px solid var(--border-default)}.freeform-member-row select{min-height:42px;max-width:170px}.freeform-member-row .secondary{max-width:min(100%,240px);overflow-wrap:anywhere}.freeform-next-plan{width:100%;margin-top:18px}
@media(max-width:430px){.workshop-mode .production-table{display:none}.workshop-mode .cut-cards{display:grid}.workshop-controls{justify-content:stretch}.workshop-controls>*{flex:1}}

.cut-part-diagram{display:block;width:100%;max-width:540px;height:auto;margin:.7rem auto;background:#f7fbfd;border:1px solid #c7dbe5;border-radius:12px;overflow:visible;direction:ltr}
.cut-part-diagram text{font:12px system-ui,sans-serif;fill:#173d53}
.cut-part-diagram circle{fill:#1467a0}
.cut-part-diagram .cut-profile-body{fill:#dce8ee;stroke:#36566a;stroke-width:2}
.cut-part-diagram .cut-plane-edges{fill:none;stroke:#be641f;stroke-width:4;stroke-linecap:round}
.cut-part-diagram .cut-measured-edge{fill:none;stroke:#1467a0;stroke-width:5;stroke-linecap:round}
.cut-part-diagram .cut-dimension-arrows{fill:#1467a0}
.cut-part-diagram .cut-mark-point{fill:#1467a0;stroke:#fff;stroke-width:2}
.cut-part-diagram .cut-measure-label{font-weight:800;font-size:16px;fill:#104f7c}
.cut-part-diagram .cut-point-label{font-weight:750;fill:#104f7c}
.cut-part-diagram .cut-other-face{font-size:10px;fill:#506779}
.cut-part-diagram .cut-angle-label{font-weight:650}
.workshop-mode .cut-cards{display:grid;gap:1rem}
.workshop-mode .production-table{display:none}
.workshop-mode .cut-card{font-size:1.12rem}
.workshop-mode .cut-saw-ready strong{font-size:1.18rem}
.physical-cut-editor{margin-block:12px;padding:12px;background:var(--surface,#edf3f7);border-radius:12px}.physical-cut-editor form{display:grid;gap:12px;margin-block:15px}.physical-cut-editor label{display:grid;gap:6px}.physical-cut-editor input,.physical-cut-editor select{width:100%;min-height:44px}.physical-cut-editor input[type=checkbox]{width:22px;min-height:22px}.physical-cut-editor p{overflow-wrap:anywhere}.workshop-mode .production-table{display:none}.workshop-mode .cut-cards{display:grid}.workshop-mode .cut-card header strong{font-size:1.7rem}.workshop-mode .cut-card-main b{font-size:2rem}
.connection-angle-annotations{color:#aebdce;font-size:.85rem;padding:12px}.connection-angle-annotations small{display:block;line-height:1.8}.angle-toggle{display:flex;align-items:center;gap:10px;margin:12px}.angle-toggle input{width:22px;height:22px}

/* Field measurement and model annotations */
.route-measure-sketch{margin:12px 0;padding:12px;border:1px solid rgba(129,172,192,.35);border-radius:14px;background:rgba(22,49,70,.38)}
.route-measure-sketch svg{display:block;width:100%;max-width:390px;max-height:150px;color:#b8e2ef}
.route-measure-sketch figcaption{font-size:.83rem;line-height:1.4}
.three-angle-label{position:absolute;z-index:4;transform:translate(-50%,-120%);pointer-events:none;white-space:nowrap;max-width:38%;overflow:hidden;text-overflow:ellipsis;border:1px solid rgba(178,219,237,.5);border-radius:8px;background:rgba(14,38,57,.82);color:#e0f5fb;padding:3px 7px;font-size:12px;box-shadow:0 2px 9px #0018}
.joint-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:8px}.joint-choice{display:flex;align-items:center;gap:8px;padding:10px;border:1px solid #637c8e;border-radius:12px;cursor:pointer}.joint-choice.selected{border-color:#73c9e9;background:#234254}.joint-choice svg{flex:none;width:52px;height:48px}.joint-choice span{display:grid;gap:4px}.joint-choice small{line-height:1.3}
.quick-cut-choices .joint-choice{width:100%;text-align:start;color:inherit;background:transparent;font:inherit}.quick-cut-choices .joint-choice.selected{background:#234254}.quick-cut-choices .joint-choice:focus-visible{outline:3px solid #73c9e9;outline-offset:2px}.quick-cut-choices .form-grid{margin-block:12px}.quick-cut-choices input[type="number"]{max-width:100%}
.stair-post-measurements,.stair-pending-cuts{margin-block:16px;padding:14px;border:1px solid #607b8d;border-radius:12px}.stair-post-measurements summary,.stair-pending-cuts summary{cursor:pointer;font-weight:700}.stair-post-measurements .field small{display:block;line-height:1.4}.stair-post-measurements .form-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
@media(max-width:430px){.joint-choice-grid{grid-template-columns:1fr}.three-angle-label{font-size:11px;max-width:45%}.route-measure-sketch{padding:6px}}
.saw-stock-panel{display:grid;gap:16px;max-width:920px}.saw-stock-panel h2{margin:0}.saw-stock-settings{display:flex;gap:12px;flex-wrap:wrap}.saw-stock-settings label{display:grid;gap:6px;flex:1 1 190px;font-weight:600}.saw-stock-settings input{width:100%;min-height:48px;padding:10px;border:1px solid var(--border-default);border-radius:9px;background:var(--surface-elevated);color:var(--text-primary)}.saw-stock-total{font-size:1.15rem}.saw-stock-group{border:1px solid var(--border-default);border-radius:14px;padding:16px;display:grid;gap:12px;background:var(--surface-elevated)}.saw-stock-group h3{margin:0}.saw-stock-pattern{border:1px solid var(--border-default);border-radius:10px;padding:14px;display:grid;gap:10px}.saw-stock-pattern ul{margin:0;padding-inline-start:22px}.saw-stock-pattern li{padding-block:5px}.saw-stock-pattern li small{display:block;color:var(--text-muted);overflow-wrap:anywhere}.saw-stock-pattern strong{font-size:1.07rem}.saw-stock-panel .warning{padding:12px;border-radius:10px}

/* Cutting and fitting output: complete readable rows with explicit output kind. */
.work-plan-counts{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0}
.cut-work-item{border:1px solid var(--border,#526478);border-radius:12px;padding:12px 14px;margin:8px 0;break-inside:avoid}
.cut-work-item header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.cut-work-item header span{font-size:.86rem}
.cut-work-item[data-plan-kind="preparation"]{border-inline-start:5px solid #be873c}
.cut-work-item[data-plan-kind="missing"]{border-inline-start:5px solid #bf5561}
.cut-work-core{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:6px 0}
.cut-work-number{font-size:1.3rem;white-space:nowrap}
.cut-work-angles{margin:4px 0;color:var(--muted,#58697a)}
.cut-work-hint{margin:8px 0}
.cut-work-codes span{white-space:nowrap}
.cut-work-item p{overflow-wrap:anywhere}
.cut-work-item details{margin-block:4px}
.showcase-editor { max-width: 900px; margin: 16px auto; }
.showcase-search-panel h3 { margin: 20px 0 10px; font-size: 1rem; }
.showcase-trade-tabs { display: flex; flex-wrap: wrap; gap: 9px; margin: 14px 0 6px; }
.showcase-trade-tabs button { min-width: 96px; padding: 11px 15px; border-radius: 999px; font-weight: 800; }
.showcase-filter-help { margin: 12px 0 0; color: var(--text-secondary); font-size: .84rem; }
.showcase-filters { display: grid; grid-template-columns: minmax(220px,2fr) minmax(150px,1fr); gap: 12px; align-items: end; }
.showcase-upload { display: flex; flex-wrap: wrap; gap: 12px; margin: 20px 0 10px; }
.showcase-media-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 14px; margin: 20px 0; }
.showcase-media-grid figure { margin: 0; overflow: hidden; border: 1px solid var(--border-default); border-radius: 14px; background: var(--surface-subtle); }
.showcase-media-grid img, .showcase-media-grid video { display: block; width: 100%; max-height: 440px; object-fit: contain; background: #152536; }
.showcase-media-grid figure button { margin: 8px; }
.showcase-list-row { display: flex; gap: 12px; align-items: center; justify-content: space-between; flex-wrap: wrap; padding: 14px 0; border-bottom: 1px solid var(--border-default); }
.showcase-list-row div { flex: 1 1 230px; }
.showcase-list-row strong, .showcase-list-row small { display: block; }
.showcase-list-row p { margin: 6px 0 0; }
.public-showcase { min-height: 100vh; background: var(--surface-subtle); color: var(--text-primary); }
.public-showcase header { display: flex; align-items: center; justify-content: space-between; padding: 20px max(20px,calc((100vw - 920px)/2)); background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); }
.public-showcase header a { color: var(--accent,#2563eb); font-weight: 800; font-size: 1.2rem; text-decoration: none; }
.public-showcase main { max-width: 920px; margin: auto; padding: 32px 20px 80px; }
.public-showcase h1 { font-size: clamp(2rem,6vw,3.5rem); line-height: 1.1; margin: 10px 0 18px; }
.public-showcase .showcase-lead { font-size: 1.18rem; line-height: 1.65; }
.public-showcase .showcase-story { white-space: pre-wrap; line-height: 1.8; }
@media(max-width:600px) { .showcase-filters, .showcase-media-grid { grid-template-columns: 1fr; } .showcase-trade-tabs { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); } .showcase-trade-tabs button { min-width: 0; } .public-showcase main { padding-top: 22px; } }
