:root {
  color-scheme: light;
  --ink: #25221f;
  --muted: #736d65;
  --line: #ded8cf;
  --paper: #f8f5ef;
  --surface: #fffdf9;
  --accent: #d7522a;
  --accent-dark: #a83818;
  --green: #2e7258;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: var(--paper); }
.home-page { background:
  radial-gradient(circle at top left, rgb(255 244 230 / 92%) 0, transparent 36%),
  radial-gradient(circle at 80% 12%, rgb(214 82 42 / 12%) 0, transparent 22%),
  linear-gradient(180deg, #fbf7f0 0%, #f4ede2 100%); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .5; }

.app-header {
  min-height: 112px;
  padding: 24px clamp(24px, 4vw, 64px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
  background: var(--surface);
}

.eyebrow, .step { margin: 0 0 5px; color: var(--accent); font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 0; font-family: Georgia, serif; font-size: clamp(28px, 4vw, 42px); font-weight: 500; }
h2 { margin-bottom: 0; font-size: 19px; }

.status-pill { padding: 9px 14px; border: 1px solid #c8ded5; border-radius: 999px; color: var(--green); background: #edf7f2; font-size: 13px; font-weight: 700; }
.status-pill[data-state="partial"] { color: #8a5c13; border-color: #e4c994; background: #fff6df; }
.status-pill[data-state="invalid"] { color: #992f2f; border-color: #e3b4b4; background: #fff0f0; }

.workspace { display: grid; grid-template-columns: minmax(340px, 440px) minmax(0, 1fr); min-height: calc(100vh - 112px); }
.controls { padding: 28px; border-right: 1px solid var(--line); background: #f2eee7; overflow: auto; }
.result-area { min-width: 0; padding: 28px clamp(24px, 4vw, 52px) 52px; }
.panel, .canvas-panel { border: 1px solid var(--line); border-radius: 16px; background: var(--surface); box-shadow: 0 8px 25px rgb(64 50 35 / 5%); }
.panel { margin-bottom: 18px; padding: 20px; }
.section-heading, .canvas-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.section-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }

.material-picker { width: 100%; margin-bottom: 14px; padding: 12px; display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 12px; align-items: center; border: 1px solid #cfc7bc; border-radius: 12px; color: var(--ink); text-align: left; background: #faf7f2; }
.material-picker:hover { border-color: var(--accent); }
.material-swatch { width: 48px; height: 48px; border: 1px solid rgb(37 34 31 / 18%); border-radius: 9px; box-shadow: inset 0 0 0 1px rgb(255 255 255 / 25%); }
.material-summary { min-width: 0; display: grid; gap: 2px; }
.material-summary small { color: var(--accent); font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.material-summary strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
.material-summary > span { color: var(--muted); font-size: 11px; line-height: 1.35; }
.material-picker-action { color: var(--accent); font-size: 12px; font-weight: 800; }

.field-grid { display: grid; gap: 12px; }
.two-columns { grid-template-columns: 1fr 1fr; }
.part-fields { grid-template-columns: 1.4fr 1fr 1fr .8fr; }
label { display: grid; gap: 6px; color: var(--muted); font-size: 12px; font-weight: 700; }
input, select, textarea { width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid #ccc5bb; border-radius: 9px; color: var(--ink); background: white; outline: none; }
input:focus, select:focus, textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgb(215 82 42 / 12%); }
.select-label { margin-top: 12px; }
.field-hint { margin: 12px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.checkbox-label { display: flex; align-items: center; gap: 8px; margin-top: 12px; }
.checkbox-label input { width: 17px; min-height: 17px; accent-color: var(--accent); }

.part-list { display: grid; gap: 10px; }
.part-row { padding: 13px; border: 1px solid #e4ded5; border-radius: 12px; background: #faf7f2; }
.part-row-heading { display: flex; justify-content: space-between; margin-bottom: 10px; }
.part-number { font-size: 13px; }
.remove-part { border: 0; color: #9c3e2a; background: transparent; font-size: 12px; }
.manufacturing-options { margin-top: 12px; border-top: 1px solid #e1dad0; }
.manufacturing-options summary { padding: 12px 0 2px; color: var(--accent); font-size: 12px; font-weight: 800; cursor: pointer; }
.edge-editor { margin-top: 10px; padding: 12px; border: 1px solid #e1dad0; border-radius: 10px; background: white; }
.edge-editor > strong { display: block; margin-bottom: 10px; font-size: 12px; }
.edge-configs { display: grid; gap: 7px; }
.edge-config { padding: 7px; display: grid; grid-template-columns: 58px 126px 85px minmax(76px, auto); gap: 7px; align-items: center; border: 1px solid #ddd5ca; border-radius: 8px; background: #faf7f2; }
.edge-config label { display: flex; align-items: center; gap: 5px; color: var(--ink); }
.edge-config input { width: 15px; min-height: 15px; accent-color: var(--accent); }
.edge-config select, .edge-config button { min-height: 34px; padding: 6px 8px; }
.selected-edge-label { grid-column: 2 / -1; overflow: hidden; color: var(--green); font-size: 11px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.edge-toolbar { grid-template-columns: 1fr; }
.edge-catalog-item { grid-template-columns: 60px minmax(190px, 1fr) 120px; }
.secondary-button { min-height: 36px; padding: 7px 11px; border: 1px solid #cfc7bc; border-radius: 8px; color: var(--ink); background: white; font-size: 12px; font-weight: 700; }
.calculate-button { width: 100%; min-height: 56px; padding: 0 18px; display: flex; justify-content: space-between; align-items: center; border: 0; border-radius: 12px; color: white; background: var(--accent); font-weight: 800; box-shadow: 0 9px 22px rgb(168 56 24 / 20%); }
.calculate-button:hover { background: var(--accent-dark); }

.metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 18px; }
.metrics article { padding: 16px 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.metrics span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 12px; }
.metrics strong { font-family: Georgia, serif; font-size: 27px; font-weight: 500; }
.canvas-panel { overflow: hidden; }
.canvas-heading { padding: 20px 22px 0; }
.cut-legend { padding: 12px 22px 16px; display: flex; flex-wrap: wrap; gap: 10px 18px; color: var(--muted); font-size: 11px; }
.cut-legend span { display: inline-flex; align-items: center; gap: 6px; }
.cut-legend i { width: 22px; height: 3px; display: inline-block; border-radius: 2px; }
.legend-trim { background: #c84c3b; }.legend-rip { background: #2475a8; }.legend-cross { background: #d48624; }.legend-finish { background: #8b55a3; }.legend-edge { background: #168267; }
.canvas { min-height: 520px; padding: 24px; display: grid; place-items: center; overflow: auto; border-top: 1px solid var(--line); background-color: #ede9e2; background-image: linear-gradient(#ded9d1 1px, transparent 1px), linear-gradient(90deg, #ded9d1 1px, transparent 1px); background-size: 24px 24px; }
.canvas svg { display: block; width: 100%; min-width: 620px; height: auto; max-height: 72vh; filter: drop-shadow(0 8px 12px rgb(46 38 29 / 12%)); }
.empty-state { max-width: 330px; text-align: center; color: var(--muted); }
.empty-state h3 { margin-bottom: 6px; color: var(--ink); }
.empty-icon { width: 58px; height: 58px; margin: 0 auto 14px; display: grid; place-items: center; border: 1px solid #c9c2b8; border-radius: 50%; background: var(--surface); font-size: 25px; }
.error-box { margin-top: 14px; padding: 14px; border: 1px solid #e0aaa0; border-radius: 10px; color: #862f20; background: #fff0ed; font-size: 13px; }
.error-box ul { margin: 8px 0 0; padding-left: 18px; }
.unplaced-panel { margin-top: 18px; }
.unplaced-panel ul { margin-bottom: 0; }
.quote-panel { margin-top: 18px; }
.quote-total { color: var(--accent); font-family: Georgia, serif; font-size: 25px; font-weight: 500; white-space: nowrap; }
.quote-actions { display: flex; align-items: center; gap: 12px; }
.checkout-button { min-height: 36px; padding: 7px 13px; border: 0; border-radius: 8px; color: white; background: var(--accent); font-size: 12px; font-weight: 800; }
.quote-lines { display: grid; }
.quote-line { padding: 9px 0; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px; border-bottom: 1px solid #ebe5dc; font-size: 12px; }
.quote-line span:first-child { overflow: hidden; text-overflow: ellipsis; }
.quote-line-quantity { color: var(--muted); white-space: nowrap; }
.quote-line-amount { min-width: 88px; text-align: right; font-weight: 800; white-space: nowrap; }
.quote-metrics { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 8px 16px; color: var(--muted); font-size: 11px; }
.quote-warning { margin-top: 12px; padding: 10px 12px; border: 1px solid #e4c994; border-radius: 8px; color: #7a5317; background: #fff6df; font-size: 11px; line-height: 1.45; }

.material-dialog { width: min(920px, calc(100vw - 32px)); max-height: min(780px, calc(100vh - 32px)); padding: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; color: var(--ink); background: var(--surface); box-shadow: 0 28px 80px rgb(31 26 21 / 28%); }
.material-dialog::backdrop { background: rgb(35 31 27 / 58%); backdrop-filter: blur(3px); }
.checkout-dialog { width: min(620px, calc(100vw - 32px)); padding: 0; border: 1px solid var(--line); border-radius: 18px; color: var(--ink); background: var(--surface); box-shadow: 0 28px 80px rgb(31 26 21 / 28%); }
.checkout-dialog::backdrop { background: rgb(35 31 27 / 58%); backdrop-filter: blur(3px); }
.checkout-fields { padding: 20px 22px; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.checkout-comment, .checkout-result { grid-column: 1 / -1; }
.checkout-footer { padding: 16px 22px; display: flex; justify-content: flex-end; gap: 10px; border-top: 1px solid var(--line); }
.checkout-submit { width: auto; min-width: 190px; min-height: 42px; gap: 28px; }
.checkout-result { padding: 12px; border: 1px solid #c8ded5; border-radius: 9px; color: var(--green); background: #edf7f2; font-size: 12px; line-height: 1.45; }
.dialog-heading { padding: 20px 22px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.dialog-close { width: 38px; height: 38px; border: 1px solid var(--line); border-radius: 50%; color: var(--ink); background: white; font-size: 24px; line-height: 1; }
.catalog-toolbar { padding: 16px 22px; display: grid; grid-template-columns: 1fr 190px; gap: 14px; border-bottom: 1px solid var(--line); background: #f8f4ed; }
.catalog-list { max-height: 510px; padding: 10px 22px; overflow: auto; }
.catalog-item { width: 100%; padding: 12px 8px; display: grid; grid-template-columns: 60px minmax(190px, 1fr) 110px 180px; gap: 16px; align-items: center; border: 0; border-bottom: 1px solid #e7e1d8; color: var(--ink); text-align: left; background: transparent; }
.catalog-item:hover, .catalog-item[data-selected="true"] { background: #f5eee4; }
.catalog-item[data-selected="true"] { box-shadow: inset 3px 0 var(--accent); }
.catalog-swatch { width: 58px; height: 58px; border: 1px solid rgb(37 34 31 / 18%); border-radius: 8px; }
.catalog-description, .catalog-value { display: grid; gap: 4px; }
.catalog-description strong { font-size: 15px; }
.catalog-description span, .catalog-value small { color: var(--muted); font-size: 12px; }
.catalog-value strong { font-size: 13px; font-variant-numeric: tabular-nums; }
.catalog-empty { padding: 32px; color: var(--muted); text-align: center; }
.catalog-disclaimer { margin: 0; padding: 12px 22px; border-top: 1px solid var(--line); color: var(--muted); background: #f8f4ed; font-size: 11px; line-height: 1.45; }
.import-actions { padding: 22px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.import-action { min-height: 46px; font-size: 13px; }

.manager-back { display: inline-flex; align-items: center; text-decoration: none; }
.header-nav { display: flex; gap: 8px; }
.home-header { align-items: flex-start; gap: 24px; background:
  linear-gradient(180deg, rgb(255 255 255 / 92%), rgb(255 253 249 / 88%)),
  repeating-linear-gradient(135deg, transparent 0 12px, rgb(215 82 42 / 0.03) 12px 13px); }
.home-lead { max-width: 760px; margin: 12px 0 0; color: var(--muted); font-size: 16px; line-height: 1.6; }
.home-main { max-width: 1320px; margin: 0 auto; padding: 32px clamp(24px, 4vw, 64px) 56px; }
.home-hero { margin-bottom: 24px; padding: 32px; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr); gap: 24px; border: 1px solid #decdb8; border-radius: 28px; background:
  linear-gradient(145deg, rgb(255 254 251 / 98%) 0%, rgb(248 238 228 / 96%) 100%);
  box-shadow: 0 24px 60px rgb(64 50 35 / 10%); }
.home-hero-copy h2 { max-width: 700px; font-family: Georgia, serif; font-size: clamp(34px, 4.2vw, 56px); line-height: 1.05; }
.home-hero-copy p:last-of-type { max-width: 720px; margin: 14px 0 0; color: var(--muted); font-size: 16px; line-height: 1.7; }
.home-hero-actions { margin-top: 22px; display: flex; flex-wrap: wrap; gap: 10px; }
.home-hero-visual { min-height: 320px; padding: 18px; display: grid; align-content: start; gap: 12px; border: 1px solid rgb(255 255 255 / 55%); border-radius: 24px; background:
  linear-gradient(180deg, rgb(119 84 59 / 12%), rgb(255 255 255 / 32%)),
  linear-gradient(135deg, #ecd9c6 0%, #f7efe6 58%, #fffdfa 100%); }
.hero-chip { width: fit-content; padding: 8px 12px; border: 1px solid rgb(88 69 52 / 14%); border-radius: 999px; color: #5a4a3f; background: rgb(255 255 255 / 72%); font-size: 12px; font-weight: 700; }
.hero-chip-primary { color: white; background: linear-gradient(135deg, #d7522a 0%, #a83818 100%); }
.hero-panels { margin-top: 8px; display: grid; gap: 12px; }
.hero-panel { min-height: 88px; padding: 18px; display: grid; align-content: end; border-radius: 22px; color: white; background-size: cover; background-position: center; box-shadow: inset 0 -42px 72px rgb(0 0 0 / 26%); }
.hero-panel span { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; opacity: .9; }
.hero-panel strong { font-size: 22px; font-family: Georgia, serif; font-weight: 500; }
.hero-panel-cutting { background:
  linear-gradient(135deg, rgb(47 85 105 / 84%), rgb(27 53 68 / 88%)),
  radial-gradient(circle at 12% 22%, rgb(255 255 255 / 24%) 0, transparent 18%); }
.hero-panel-facades { background:
  linear-gradient(135deg, rgb(151 112 76 / 88%), rgb(92 62 43 / 88%)),
  radial-gradient(circle at 80% 18%, rgb(255 255 255 / 20%) 0, transparent 20%); }
.hero-panel-doors { background:
  linear-gradient(135deg, rgb(87 97 74 / 86%), rgb(48 55 45 / 88%)),
  radial-gradient(circle at 22% 24%, rgb(255 255 255 / 16%) 0, transparent 16%); }
.home-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-bottom: 22px; }
.home-card { min-height: 220px; padding: 24px; display: grid; gap: 14px; align-content: start; border: 1px solid #dccfbe; border-radius: 18px; color: var(--ink); text-decoration: none; background:
  linear-gradient(160deg, #fffefb 0%, #f6ede2 100%);
  box-shadow: 0 18px 45px rgb(64 50 35 / 8%);
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.home-card:hover { transform: translateY(-2px); border-color: #c98d68; box-shadow: 0 24px 54px rgb(64 50 35 / 12%); }
.home-card-step { color: var(--accent); font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.home-card h3 { margin: 0; font-family: Georgia, serif; font-size: 28px; font-weight: 500; }
.home-card p { margin: 0; color: var(--muted); line-height: 1.6; }
.home-card strong { margin-top: auto; color: var(--accent-dark); font-size: 13px; }
.home-banners { display: grid; grid-template-columns: 1.1fr .9fr; gap: 18px; }
.promo-banner { min-height: 220px; padding: 24px; display: grid; gap: 18px; align-content: space-between; border-radius: 24px; box-shadow: 0 16px 40px rgb(64 50 35 / 10%); }
.promo-banner h3 { margin: 0; font-family: Georgia, serif; font-size: clamp(26px, 3vw, 36px); font-weight: 500; line-height: 1.08; }
.promo-banner p:last-of-type { margin: 12px 0 0; max-width: 700px; line-height: 1.65; }
.promo-banner-accent { color: white; background:
  linear-gradient(130deg, rgb(215 82 42 / 96%) 0%, rgb(145 49 24 / 98%) 100%),
  radial-gradient(circle at 84% 22%, rgb(255 255 255 / 16%) 0, transparent 24%); }
.promo-banner-accent .step,
.promo-banner-accent p,
.promo-banner-accent a { color: white; }
.promo-banner-accent .secondary-button { border-color: rgb(255 255 255 / 28%); background: rgb(255 255 255 / 10%); }
.promo-banner-light { color: var(--ink); background:
  linear-gradient(135deg, #fffdf9 0%, #efe0cf 100%),
  radial-gradient(circle at 86% 20%, rgb(215 82 42 / 10%) 0, transparent 18%); }
.promo-banner-dark { color: white; grid-column: 1 / -1; background:
  linear-gradient(135deg, rgb(41 40 37 / 96%) 0%, rgb(71 63 54 / 96%) 100%),
  radial-gradient(circle at 84% 18%, rgb(255 255 255 / 10%) 0, transparent 18%); }
.promo-banner-dark p { color: rgb(255 255 255 / 0.82); }
.promo-banner-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.promo-banner-dark .secondary-button { border-color: rgb(255 255 255 / 18%); color: white; background: rgb(255 255 255 / 8%); }
.facade-selects { margin-top: 16px; display: grid; gap: 12px; }
.supplier-switch { display: grid; grid-template-columns: repeat(2, 1fr); gap: 4px; margin: 0; padding: 4px; border: 1px solid var(--line); border-radius: 12px; background: #f2f5f7; }
.supplier-switch label { cursor: pointer; }
.supplier-switch input { position: absolute; opacity: 0; pointer-events: none; }
.supplier-switch span { display: block; padding: 10px 12px; border-radius: 9px; text-align: center; font-weight: 700; color: var(--muted); transition: background .15s ease, color .15s ease, box-shadow .15s ease; }
.supplier-switch input:checked + span { background: #fff; color: var(--ink); box-shadow: 0 2px 8px rgba(26, 41, 52, .12); }
.facade-filter-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.facade-options { display: grid; gap: 9px; margin: 0; padding: 12px; border: 1px solid var(--line); border-radius: 12px; }
.facade-options legend { padding: 0 6px; color: var(--muted); font-size: 12px; font-weight: 800; text-transform: uppercase; }
.facade-options > label { display: flex; align-items: center; gap: 8px; }
.facade-options input[type="checkbox"] { width: auto; }
.facade-price-panel { margin: 24px 28px 0; }
.price-breakdown { margin-top: 14px; display: grid; gap: 8px; }
.price-breakdown-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.price-breakdown-row span:last-child { font-variant-numeric: tabular-nums; font-weight: 700; }
.facade-preview-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.facade-preview { min-width: 0; margin: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #f3eee7; }
.facade-preview-media { position: relative; display: grid; place-items: center; aspect-ratio: 4 / 5; overflow: hidden; background: linear-gradient(145deg,#eee7de,#dcd3c8); }
.facade-preview-media img { width: 100%; height: 100%; object-fit: cover; }
.facade-preview-media img[data-empty="true"] { display: none; }
.facade-preview-media:has(img[data-empty="true"])::after { content: "Визуал уточняется"; padding: 14px; color: var(--muted); text-align: center; font-size: 12px; font-weight: 700; }
.facade-preview-media.decor-media { aspect-ratio: 1 / 1; }
.facade-preview figcaption { display: grid; gap: 3px; padding: 10px; }
.facade-preview figcaption strong { font-size: 12px; }
.facade-preview figcaption span { color: var(--muted); font-size: 11px; line-height: 1.3; }
.model-description { margin: -4px 0 0; color: var(--green); font-size: 12px; }
.facade-spec-panel { margin-top: 18px; }
.facade-price-note { margin-top: 5px; color: #8a5c13; }
.manager-shell { max-width: 1440px; margin: 0 auto; padding: 28px; }
.manager-login { max-width: 520px; margin: 60px auto; }
.manager-tabs { margin-bottom: 12px; display: flex; flex-wrap: wrap; gap: 8px; }
.manager-tabs ~ [hidden], #manager-workspace [hidden] { display: none !important; }
.manager-tab[data-active="true"] { border-color: var(--accent); color: white; background: var(--accent); }
.manager-login-form { margin-top: 18px; display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: end; }
.manager-toolbar { display: grid; grid-template-columns: minmax(280px, 1fr) auto auto; gap: 12px; align-items: end; }
.manager-grid { display: grid; grid-template-columns: minmax(320px, 410px) minmax(0, 1fr); gap: 18px; }
.manager-sources { display: grid; gap: 18px; }
.sources-grid { display: grid; grid-template-columns: minmax(320px, 1.15fr) minmax(320px, .85fr); gap: 18px; }
.source-list, .source-imports { display: grid; gap: 10px; }
.source-card, .source-import-card { padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: #faf7f2; }
.source-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.source-kind { padding: 3px 8px; border-radius: 999px; background: #edf7f2; color: var(--green); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.source-card p, .source-import-card p { margin: 8px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.source-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 12px; }
.source-meta div { padding: 9px 10px; border: 1px solid #ebe5dc; border-radius: 9px; background: white; }
.source-meta span { display: block; color: var(--muted); font-size: 11px; }
.source-meta strong { display: block; margin-top: 3px; font-size: 13px; }
.source-preview { margin-top: 12px; }
.source-preview summary { cursor: pointer; font-weight: 800; color: var(--accent-dark); }
.source-preview-table { margin-top: 10px; max-height: 420px; overflow: auto; border: 1px solid var(--line); border-radius: 10px; background: white; }
.source-preview-row { display: grid; grid-template-columns: 120px minmax(260px, 1fr) 70px 110px 110px; gap: 10px; padding: 8px 10px; border-bottom: 1px solid #eee8df; align-items: center; font-size: 12px; }
.source-preview-row:last-child { border-bottom: 0; }
.source-preview-head { position: sticky; top: 0; z-index: 1; background: #f4efe8; font-weight: 800; }
.source-status.applied { background: #e5f7ea; color: #21763a; }
.source-actions { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 8px; }
.source-status { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; padding: 4px 8px; border-radius: 999px; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.source-status.demo { color: #8a5c13; background: #fff6df; }
.source-status.uploaded { color: var(--green); background: #edf7f2; }
.source-import-card strong { display: block; }
.source-import-card small { color: var(--muted); font-size: 11px; }
.source-import-status { display: inline-flex; margin-top: 10px; padding: 3px 8px; border-radius: 999px; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; background: #eef2ff; color: #3f56cf; }
.source-hidden-input { display: none; }
.manager-list-panel, .manager-detail { min-height: 600px; margin-bottom: 0; }
.manager-order-list { display: grid; gap: 8px; }
.manager-order-item { width: 100%; padding: 12px; display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; border: 1px solid var(--line); border-radius: 10px; color: var(--ink); text-align: left; background: #faf7f2; }
.manager-order-item:hover, .manager-order-item[data-selected="true"] { border-color: var(--accent); background: #fff7f2; }
.manager-order-item > span:not(.manager-status), .manager-order-item > small { grid-column: 1 / -1; }
.manager-order-item small, .manager-muted { color: var(--muted); font-size: 12px; }
.client-status-history { grid-column: 1 / -1; color: var(--muted); font-size: 14px; }
.client-status-history summary { cursor: pointer; }
.client-status-history ol { margin: 8px 0 0; padding-left: 20px; }
.client-status-history li { display: flex; gap: 10px; justify-content: space-between; padding: 3px 0; }
.client-status-history li small { color: var(--muted); }
.client-profile { margin: 18px 0; padding: 14px; border: 1px solid var(--line); border-radius: 10px; }
.client-profile summary { cursor: pointer; font-weight: 700; }
.client-profile form { display: grid; gap: 12px; margin-top: 14px; max-width: 560px; }
.client-order-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.client-contact { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 20px 0; padding: 14px; border: 1px solid var(--line); border-radius: 10px; background: #faf7f2; }
.client-contact span { color: var(--muted); flex: 1 1 240px; }
.manager-status { padding: 3px 7px; border-radius: 999px; color: var(--green); background: #edf7f2; font-size: 10px; font-weight: 800; }
.manager-detail > .empty-state { margin: 170px auto 0; }
.manager-info { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.manager-info-row { padding: 10px 12px; display: grid; gap: 4px; border: 1px solid #ebe5dc; border-radius: 9px; }
.manager-info-row:last-child { grid-column: 1 / -1; }
.manager-subheading { margin: 24px 0 10px; font-size: 14px; }
.manager-mail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.manager-mail-card { padding: 12px; display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: center; border: 1px solid var(--line); border-radius: 10px; }
.manager-mail-card small, .manager-mail-card button { grid-column: 1 / -1; }
.mail-state { padding: 3px 7px; border-radius: 999px; font-size: 10px; font-weight: 800; }
.mail-state.sent { color: var(--green); background: #edf7f2; }
.mail-state.failed { color: #992f2f; background: #fff0f0; }
.mail-state.pending_configuration { color: #8a5c13; background: #fff6df; }
.manager-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.danger-button { color: #992f2f; border-color: #e3b4b4; }
.manager-history { margin: 0; padding-left: 24px; }
.manager-history li { padding: 7px 0 7px 5px; border-bottom: 1px solid #ebe5dc; }
.manager-history li strong, .manager-history li span { display: block; }
.manager-table { display: grid; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.manager-operations[data-healthy="false"] { border-color: #d8785c; background: #fff7f2; }
.manager-table > .manager-muted { margin: 0; padding: 12px; }
.manager-table-row { padding: 9px 12px; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px; align-items: center; border-bottom: 1px solid #ebe5dc; font-size: 12px; }
.manager-table-row:last-child { border-bottom: 0; }
.quote-row strong { min-width: 90px; text-align: right; }

@media (max-width: 1050px) {
  .workspace { grid-template-columns: 1fr; }
  .controls { border-right: 0; border-bottom: 1px solid var(--line); }
  .part-fields { grid-template-columns: 1fr 1fr; }
  .manager-grid { grid-template-columns: 1fr; }
  .sources-grid, .source-meta { grid-template-columns: 1fr; }
  .manager-list-panel, .manager-detail { min-height: 0; }
  .home-hero { grid-template-columns: 1fr; }
  .home-grid { grid-template-columns: 1fr; }
  .home-banners { grid-template-columns: 1fr; }
}

@media (max-width: 650px) {
  .app-header { align-items: flex-start; gap: 16px; }
  .status-pill { display: none; }
  .controls, .result-area { padding: 18px; }
  .two-columns, .part-fields, .metrics { grid-template-columns: 1fr 1fr; }
  .canvas { min-height: 360px; padding: 12px; }
  .home-main { padding: 20px 18px 42px; }
  .home-hero { padding: 20px; border-radius: 20px; }
  .home-hero-copy h2 { font-size: 32px; }
  .hero-panel strong { font-size: 20px; }
  .home-card h3 { font-size: 24px; }
  .promo-banner { min-height: 0; padding: 20px; border-radius: 20px; }
  .catalog-toolbar { grid-template-columns: 1fr; }
  .import-actions { grid-template-columns: 1fr; }
  .catalog-item { grid-template-columns: 48px minmax(0, 1fr); }
  .catalog-swatch { width: 46px; height: 46px; }
  .catalog-value { display: none; }
  .edge-config { grid-template-columns: 52px 120px 1fr; }
  .edge-config .edge-selection { grid-column: 3; }
  .selected-edge-label { grid-column: 1 / -1; }
  .manager-shell { padding: 18px; }
  .manager-login-form, .manager-toolbar, .manager-info, .manager-mail-grid { grid-template-columns: 1fr; }
  .client-order-actions, .client-contact { align-items: stretch; }
  .client-order-actions .secondary-button, .client-contact .secondary-button { text-align: center; }
}
.wardrobe-workspace { grid-template-columns: minmax(340px, 520px) minmax(0, 1fr); }
.wardrobe-fields { margin-top: 20px; }
.wardrobe-canvas { min-height: 520px; }
.wardrobe-canvas svg { display: block; width: 100%; max-height: 620px; }
.wardrobe-canvas.layer-doors .wardrobe-cabinet-layer { display: none; }
.wardrobe-canvas.layer-cabinet .wardrobe-doors-layer { opacity: .1; pointer-events: none; }
.wardrobe-canvas.layer-cabinet .wardrobe-cabinet-layer { opacity: 1; }
.cabinet-partition { cursor: ew-resize; }
.cabinet-shelf { cursor: ns-resize; }
.cabinet-partition, .cabinet-shelf { transition: filter .12s ease; }
.cabinet-partition:hover, .cabinet-shelf:hover, .cabinet-partition.is-active, .cabinet-shelf.is-active { filter: brightness(.72) saturate(1.4); }
.cabinet-dimension-label { opacity: 0; pointer-events: none; font-size: 12px; font-weight: 800; fill: #b84220; paint-order: stroke; stroke: #fff; stroke-width: 4px; transition: opacity .12s ease; }
.cabinet-partition:hover + .cabinet-dimension-label, .cabinet-shelf:hover + .cabinet-dimension-label, .cabinet-partition.is-active + .cabinet-dimension-label, .cabinet-shelf.is-active + .cabinet-dimension-label { opacity: 1; }
.wardrobe-layer-switch { display: inline-flex; padding: 4px; border: 1px solid var(--line); border-radius: 14px; background: #f2ede6; }
.wardrobe-layer-switch button { border: 0; border-radius: 10px; padding: 9px 13px; background: transparent; color: var(--muted); font: inherit; font-size: 13px; font-weight: 800; cursor: pointer; }
.wardrobe-layer-switch button.is-active { background: #fff; color: var(--ink); box-shadow: 0 2px 8px rgba(44, 37, 31, .1); }
.wardrobe-layer-switch button:disabled { opacity: .4; cursor: not-allowed; }
.cabinet-section-shelves { display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: 10px; margin: 14px 0; }
.cabinet-section-shelves label { padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.cabinet-construction { margin: 14px 0; padding: 14px; border: 1px solid var(--line); border-radius: 14px; }
.cabinet-construction legend { padding: 0 6px; font-weight: 700; }
.cabinet-construction-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: 10px 16px; align-items: end; }
.cabinet-construction-options .checkbox-line { display: flex; align-items: center; gap: 9px; min-height: 44px; }
#cabinet-shelf-depth-hint { display: block; margin-top: 6px; color: var(--accent); font-size: 11px; font-weight: 700; }
.cabinet-geometry-editor { position: absolute; z-index: 25; top: 92px; right: 22px; width: min(340px, calc(100% - 44px)); padding: 14px; border: 1px solid #cfc5b9; border-radius: 14px; background: #fff; box-shadow: 0 16px 45px rgba(50, 39, 29, .22); }
.cabinet-geometry-editor[hidden] { display: none; }
.cabinet-geometry-editor > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.cabinet-geometry-editor button { width: 30px; height: 30px; border: 0; border-radius: 50%; background: #f1ece6; color: var(--muted); font-size: 20px; }
.cabinet-geometry-editor label { display: grid; gap: 5px; color: var(--muted); font-size: 12px; font-weight: 700; }
.cabinet-geometry-editor p { margin: 9px 0 0; color: var(--muted); font-size: 11px; }
.cabinet-interior-editor { position: absolute; z-index: 26; top: 92px; right: 22px; width: min(360px, calc(100% - 44px)); padding: 14px; border: 1px solid #cfc5b9; border-radius: 14px; background: #fff; box-shadow: 0 16px 45px rgba(50, 39, 29, .22); }
.cabinet-interior-editor[hidden] { display: none; }
.cabinet-interior-editor > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.cabinet-interior-editor > label { display: grid; gap: 5px; margin-top: 10px; color: var(--muted); font-size: 12px; font-weight: 700; }
.cabinet-interior-editor > div:first-child button { width: 30px; height: 30px; border: 0; border-radius: 50%; background: #f1ece6; font-size: 20px; }
.cabinet-section-zone { cursor: pointer; }
.cabinet-section-zone:hover { fill: #d65a31; fill-opacity: .08; }
.cabinet-interior-item { cursor: ns-resize; }
.cabinet-interior-item:hover { filter: brightness(.9) saturate(1.2); }
.cabinet-interior-list { display: grid; gap: 6px; margin-top: 12px; }
.cabinet-interior-list button { padding: 8px; border: 1px solid var(--line); border-radius: 8px; color: #862f20; background: #fff; text-align: left; }
.spec-table-wrap { overflow-x: auto; margin-top: 18px; }
.spec-table { width: 100%; border-collapse: collapse; }
.spec-table th, .spec-table td { padding: 12px 10px; border-bottom: 1px solid #ded5ca; text-align: left; }
.spec-table th { color: #766e66; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }
.spec-table code { white-space: nowrap; }
.canvas-panel { position: relative; }
.wardrobe-workspace .canvas-panel { overflow: visible; }
#middle-frame-field { display: block; margin-top: 18px; }
#middle-frame-field[hidden], #door-mode-field[hidden], #opening-width-b-field[hidden], #door-count-b-field[hidden] { display: none; }
.sketch-editor-hint { margin: 16px 0 0; padding: 12px 14px; border-radius: 10px; color: #635b53; background: #fff4ea; line-height: 1.45; }
.additional-hardware { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 18px; padding: 16px; border: 1px solid #ded5ca; border-radius: 12px; background: #fff; }
.additional-hardware[hidden] { display: none; }
.additional-hardware > strong { grid-column: 1 / -1; }
.additional-hardware .checkbox-line { display: flex; align-items: center; gap: 9px; align-self: end; min-height: 44px; }
.sketch-editor-hint strong { color: var(--accent); }
.canvas-action-hint { color: var(--accent); font-size: 13px; font-weight: 700; }
.canvas-diagnostics { position: absolute; z-index: 18; top: 90px; left: 22px; right: 22px; padding: 12px 14px; border: 1px solid #d9836d; border-radius: 12px; color: #862f20; background: rgba(255, 240, 237, .96); box-shadow: 0 10px 30px rgba(91, 42, 30, .14); }
.canvas-diagnostics[hidden] { display: none; }
.canvas-diagnostics strong { display: block; margin-bottom: 6px; }
.canvas-diagnostics button { display: block; width: 100%; padding: 5px 0; border: 0; color: inherit; background: transparent; text-align: left; font: inherit; cursor: pointer; }
.canvas-diagnostics button:hover { text-decoration: underline; }
.field-invalid { outline: 2px solid #d65a31 !important; outline-offset: 2px; }
.wardrobe-canvas.has-diagnostics svg { opacity: .58; }
.wardrobe-insert { cursor: pointer; transition: filter .15s ease, opacity .15s ease; }
.wardrobe-insert:hover, .wardrobe-insert:focus, .wardrobe-insert.is-active { filter: brightness(1.12); opacity: .88; outline: 3px solid #d65a31; outline-offset: -4px; }
.section-popover { position: absolute; z-index: 20; width: min(290px, calc(100% - 24px)); padding: 16px; border: 1px solid #cfc5b9; border-radius: 14px; background: #fff; box-shadow: 0 18px 55px rgba(50, 39, 29, .24); }
.section-popover[hidden] { display: none; }
.popover-heading { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.popover-heading div { display: grid; gap: 3px; }
.popover-heading small { color: var(--accent); font-weight: 700; }
.popover-heading button { width: 32px; height: 32px; border: 0; border-radius: 50%; color: #6c6259; background: #f1ece6; font-size: 22px; cursor: pointer; }
.section-popover label { display: grid; gap: 6px; margin-top: 10px; color: var(--muted); font-size: 12px; font-weight: 700; }
.popover-action { width: 100%; margin-top: 10px; padding: 10px; border: 1px solid #ded5ca; border-radius: 9px; color: var(--accent); background: #fff; text-align: left; cursor: pointer; }
.popover-save { width: 100%; margin-top: 12px; }
.divider-position { margin-top: 12px; padding: 10px; border-radius: 10px; background: #fff5ee; }
.divider-position-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.divider-position p { margin: 8px 0 0; color: var(--muted); font-size: 11px; line-height: 1.35; }
.wardrobe-divider-label { pointer-events: none; font-size: 11px; font-weight: 800; fill: #d64d29; paint-order: stroke; stroke: #fff; stroke-width: 3px; }
.wardrobe-cart-list { display: grid; gap: 10px; margin-top: 14px; }
.wardrobe-cart-item { display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: center; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.wardrobe-cart-item p { margin: 4px 0 0; color: var(--muted); }
.wardrobe-cart-actions { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.wardrobe-cart-actions button { padding: 7px 9px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); cursor: pointer; }
.wardrobe-cart-actions .danger-button { color: #a43821; }
.manager-files-note { margin-top: 14px; padding: 14px; border: 1px dashed #d8c8b7; border-radius: 12px; background: #fcf8f2; }
.manager-files-note strong { display: block; margin-bottom: 8px; font-size: 12px; }
.manager-files-note p { margin: 6px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.manager-files-note code { color: var(--accent-dark); font-size: 11px; }
