.purchase-rejection-notice { margin: 0 0 16px; padding: 12px 16px; border: 1px solid #b44343; border-left-width: 4px; border-radius: 6px; background: #fff4f4; color: #602323; overflow-wrap: anywhere; }
.purchase-rejection-notice > div { margin-top: 6px; }
.purchase-rejection-reason { white-space: pre-wrap; overflow-wrap: anywhere; }
#purchaseOrderDetailDialog > .inquiry-work-dialog-shell { display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 16px; background: #fffaf3; overflow: hidden; }
#purchaseOrderDetailDialog .dialog-header, #purchaseOrderDetailActions { flex-shrink: 0; }
#purchaseOrderDetailBody { flex: 1 1 auto; min-height: 0; overflow: auto; }
#purchaseOrderReturnUploadPanel { flex-shrink: 0; max-height: 28vh; overflow: auto; }
.purchase-detail-multiline, .purchase-detail-terms { white-space: pre-wrap; overflow-wrap: anywhere; }
.purchase-detail-mail-files > div { margin: 6px 0; overflow-wrap: anywhere; }
.approval-settings-tabs { margin-bottom: 16px; }
.approval-settings-panel { padding: 16px; }
.approval-settings-panel fieldset { margin: 16px 0; }
.approval-step-row { display: grid; grid-template-columns: 72px minmax(120px, 1fr) minmax(160px, 2fr) auto; gap: 12px; align-items: end; padding: 12px 0; border-bottom: 1px solid #c8ceca; }
.approval-step-row label { min-width: 0; }
.approval-step-row select, .approval-step-row input { width: 100%; min-width: 0; }
.approval-observers { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 8px; }
.approval-settings-panel input[type="checkbox"] { flex: 0 0 18px; width: 18px; min-width: 18px; height: 18px; padding: 0; }
.approval-inbox-row { padding: 12px 0; border-bottom: 1px solid #c8ceca; overflow-wrap: anywhere; }
.approval-notification { margin: 4px 0; }
.approval-timeline li { margin: 8px 0; overflow-wrap: anywhere; }
#electronicApprovalDetailBody { min-width: 0; overflow-x: auto; }
#electronicApprovalActions textarea { width: 100%; min-height: 64px; }
@media (max-width: 700px) {
  .approval-step-row { grid-template-columns: 64px minmax(0, 1fr); }
  .approval-step-row > label:nth-of-type(2) { grid-column: 1 / -1; }
  .approval-step-row > .row { grid-column: 1 / -1; }
  .approval-observers { grid-template-columns: minmax(0, 1fr); }
}

:root {
  --ui-font-family: "Segoe UI", "Microsoft JhengHei", sans-serif;
  --bg: #f4efe7;
  --ink: #1f2421;
  --accent: #0f766e;
  --accent-2: #cc7a00;
  --line: #d7cfc3;
  --card: rgba(255, 252, 247, 0.88);
  --shadow: 0 20px 40px rgba(31, 36, 33, 0.08);
  --radius: 18px;
  --mono: var(--ui-font-family);
  --sidebar-width: 240px;
  --sidebar-collapsed: 64px;
  --ui-title-size: 28px;
  --ui-page-title-size: 18px;
  --ui-section-title-size: 16px;
  --ui-label-size: 14px;
  --ui-control-size: 14px;
  --ui-button-size: 14px;
  --ui-table-size: 14px;
  --ui-small-size: 14px;
  --textarea-single-row-height: 38px;
}

* {
  box-sizing: border-box;
  font-family: var(--ui-font-family);
}

html,
body {
  margin: 0;
  min-height: 100%;
}

body {
  color: var(--ink);
  background:
    radial-gradient(circle at top left, rgba(15, 118, 110, 0.12), transparent 28%),
    radial-gradient(circle at top right, rgba(204, 122, 0, 0.12), transparent 25%),
    linear-gradient(180deg, #f7f2eb 0%, #efe6d8 100%);
  font-family: var(--ui-font-family);
  font-size: 16px;
  overflow-x: hidden;
}

.record-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 0.75rem;
  font-size: 0.95rem;
}

.record-table th,
.record-table td {
  border-bottom: 1px solid rgba(31, 41, 55, 0.16);
  padding: 0.55rem 0.6rem;
  text-align: left;
  vertical-align: top;
}

.record-table th {
  background: rgba(31, 41, 55, 0.06);
  font-weight: 700;
}

.record-row {
  cursor: pointer;
}

.record-row:hover {
  background: rgba(47, 107, 63, 0.08);
}

.quote-editor td {
  background: rgba(247, 250, 247, 0.95);
}

.table-scroll {
  overflow-x: auto;
}

.editable-table input {
  min-width: 110px;
}

.editable-table .po-item-name,
.editable-table .po-item-note {
  min-width: 180px;
}

.term-list {
  display: grid;
  gap: 8px;
}

.purchase-term-row {
  align-items: center;
  grid-template-columns: auto minmax(220px, 1fr) auto auto;
}

.purchase-term-row .po-term-text {
  width: 100%;
}

.hidden {
  display: none !important;
}

.login-shell {
  min-height: 100vh;
  display: grid;
  place-items: start center;
  padding: 24px;
  background: radial-gradient(circle at top, #f7f3ed 0%, #efe7dd 55%, #e9dfd3 100%);
  font-family: var(--ui-font-family);
}

.login-page {
  width: 100%;
  max-width: 1080px;
  display: grid;
  justify-items: center;
  gap: 8px;
}

.login-brand {
  width: 100%;
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  position: relative;
  text-align: center;
}

.login-brand-logo {
  width: 104px;
  height: 56px;
  object-fit: contain;
  position: absolute;
  top: 50%;
  right: calc(50% + 94px);
  transform: translateY(-50%);
}

.login-brand-text {
  display: grid;
  gap: 4px;
  justify-items: center;
  min-width: 0;
}

.login-brand h1 {
  margin: 0;
  font-size: 28px;
  line-height: 1.2;
  font-weight: 700;
}

.login-company-name {
  color: #6b6b6b;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.3;
}

.login-card {
  width: min(300px, calc(100vw - 32px));
  margin: 0 auto 24px;
  padding: 14px;
  border: 1px solid #e2dcd4;
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 20px 40px rgba(27, 27, 27, 0.08);
}

.login-copy {
  margin: 8px 0 12px;
  color: #6b6b6b;
  font-size: 14px;
  line-height: 1.45;
}

.login-form {
  display: grid;
  gap: 12px;
}

.login-card h2 {
  margin: 0 0 10px;
  font-size: 16px;
  line-height: 1.2;
}

.login-card label {
  display: grid;
  gap: 4px;
  margin: 0;
  font-size: 14px;
  font-weight: 700;
}

.login-card input {
  width: 100%;
  padding: 6px 8px;
  font-size: 14px;
  border-radius: 10px;
  border-color: #e2dcd4;
  background: #ffffff;
  box-sizing: border-box;
}

.login-card button {
  padding: 6px 10px;
  font-size: 14px;
}

.login-card .actions {
  display: flex;
  gap: 8px;
  justify-content: space-between;
}

.login-card .actions button {
  flex: 0 0 45%;
  max-width: 45%;
}

.login-card .actions button[type="submit"] {
  background: #c26e2c;
  color: #ffffff;
}

.login-card .actions button[type="submit"]:hover {
  background: #8d4b1c;
}

.login-card .actions button.ghost {
  background: #dddddd;
  color: #1b1b1b;
  border-color: #dddddd;
}

.search-input-wrap {
  position: relative;
}

.search-input-wrap input {
  padding-right: 28px;
}

.search-clear-btn {
  position: absolute;
  top: 50%;
  right: 8px;
  transform: translateY(-50%);
  padding: 0;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: #dddddd;
  color: #1b1b1b;
  font-size: 14px;
  line-height: 1;
  font-weight: 700;
}

.search-clear-btn:hover,
.search-clear-btn:active {
  background: #d0d0d0;
}

#loginForm .search-clear-btn {
  display: grid;
  place-items: center;
  box-sizing: border-box;
  width: 24px;
  height: 24px;
  min-width: 24px;
  min-height: 24px;
  padding: 0;
  margin: 0;
  border: 0;
  font-size: 18px;
  line-height: 1;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
}

#loginForm .search-input-wrap input { padding-right: 40px; }

.app-layout {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  min-height: 100vh;
}

.sidebar {
  order: 1;
  width: var(--sidebar-width);
  position: sticky;
  top: 0;
  height: 100vh;
  height: 100dvh;
  padding: 16px;
  background: #fff;
  color: #1b1b1b;
  border-right: 1px solid #e2dcd4;
  box-shadow: 8px 0 18px rgba(27, 27, 27, 0.08);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transition: width 180ms ease, padding 180ms ease;
  font-family: var(--ui-font-family);
}

.sidebar.collapsed {
  width: 0;
  padding: 0;
  border-right: 0;
  box-shadow: none;
  overflow: hidden;
}

.sidebar.collapsed .sidebar-head {
  justify-content: center;
}

.sidebar.collapsed .sidebar-head > :first-child,
.sidebar.collapsed .sidebar-actions {
  display: none;
}

.sidebar-head {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
  position: relative;
  z-index: 3;
  background: #fff;
}

.sidebar-actions {
  display: flex;
  align-items: center;
  gap: 14px;
}

.icon-btn.home-btn,
.icon-btn.menu-btn {
  width: 44px;
  min-width: 44px;
  height: 44px;
  border: 0;
  border-radius: 14px;
  background: transparent;
  color: #111;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  box-shadow: none;
}

.icon-btn.menu-btn {
  background: rgba(27, 27, 27, 0.11);
}

.icon-btn.home-btn:hover,
.icon-btn.menu-btn:hover,
.icon-btn.home-btn:focus-visible,
.icon-btn.menu-btn:focus-visible {
  background: rgba(27, 27, 27, 0.14);
}

.home-btn svg {
  width: 34px;
  height: 34px;
  fill: currentColor;
}

.menu-btn {
  font-size: 30px;
  line-height: 1;
}

.header-shortcuts {
  display: flex;
  align-items: center;
  gap: 14px;
  width: max-content;
  margin: 0;
}

.header-shortcuts.hidden {
  display: none;
}

.sidebar-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  padding-right: 4px;
}

.sidebar.collapsed .sidebar-scroll {
  display: none;
  overflow: hidden;
}

.sidebar h2,
.sidebar h3,
.sidebar p,
.sidebar .row,
.sidebar .module-list,
.sidebar .sidebar-note,
.sidebar .notice {
  transition: opacity 140ms ease;
}

.sidebar.collapsed h2,
.sidebar.collapsed h3,
.sidebar.collapsed p,
.sidebar.collapsed .row,
.sidebar.collapsed .module-list,
.sidebar.collapsed .sidebar-note,
.sidebar.collapsed .notice {
  opacity: 0;
  pointer-events: none;
}

.sidebar.collapsed .sidebar-section {
  padding: 0;
  border: 0;
  margin: 0 0 14px;
}

.sidebar-kicker {
  display: none;
}

.sidebar h2 {
  margin: 0;
  color: #1b1b1b;
  font-size: 22px;
  line-height: 1.25;
  font-weight: 700;
}

.sidebar-section {
  padding: 0;
  margin-bottom: 14px;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.sidebar-section h3 {
  margin: 0 0 10px;
  padding: 10px 12px;
  border-radius: 12px;
  background: #c96f2a;
  color: #fff;
  font-size: 17px;
  line-height: 1.2;
  font-weight: 700;
}

.sidebar-copy {
  color: #6b6b6b;
  line-height: 1.45;
  font-size: 14px;
}

.icon-btn {
  position: relative;
  z-index: 2;
  width: 44px;
  min-width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 14px;
  background: #dddddd;
  color: #1b1b1b;
}

.module-list {
  display: grid;
  gap: 10px;
  padding-left: 12px;
  border-left: 2px solid #e6ded4;
}

.module-card {
  display: grid;
  gap: 4px;
  text-align: left;
  border-radius: 14px;
  background: #efe7dd;
  color: #1b1b1b;
  padding: 10px 12px;
  font-family: inherit;
}

.module-card:hover {
  background: #f3ece4;
}

.module-card strong {
  font-size: 1rem;
  line-height: 1.25;
}

.module-card span {
  color: #6b6b6b;
  font-size: 14px;
  line-height: 1.45;
}

.sidebar-note {
  margin: 12px 0 0;
  color: #6b6b6b;
  font-size: 14px;
  line-height: 1.55;
}

.main-shell {
  order: 2;
  min-width: 0;
  padding: 28px;
}

.hero {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-areas: "shortcuts title user";
  gap: 20px;
  align-items: center;
  min-width: 0;
}

.hero > * {
  min-width: 0;
}

.hero > .header-shortcuts {
  grid-area: shortcuts;
}

.hero > :nth-child(2) {
  grid-area: title;
}

.hero > .hero-card {
  grid-area: user;
  justify-self: end;
}

.hero h1 {
  margin: 0 0 10px;
  font-family: var(--ui-font-family);
  font-size: 28px;
  line-height: 1.2;
  font-weight: 700;
}

.identity-mirror-warning {
  margin: 0;
  color: #714b12;
  font-size: var(--ui-control-size);
  line-height: 1.5;
}

.identity-mirror-warning:empty {
  display: none;
}

.eyebrow {
  margin: 0 0 8px;
  color: #6b6b6b;
  font-family: var(--ui-font-family);
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  font-size: 16px;
}

.subtitle {
  max-width: 72ch;
  color: #6b6b6b;
  font-size: 0.88rem;
  line-height: 1.55;
}

.hero-card,
.card {
  background: var(--card);
  border: 1px solid rgba(255, 255, 255, 0.5);
  box-shadow: var(--shadow);
  border-radius: var(--radius);
  backdrop-filter: blur(10px);
}

.hero-card {
  padding: 0;
  display: grid;
  gap: 12px;
  width: max-content;
  min-width: 0;
  max-width: none;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.storage-provider-grid {
  display: grid;
  grid-auto-rows: max-content;
  align-items: start;
  gap: 14px;
  margin: 14px 0;
}

.storage-provider-card {
  position: relative;
  min-width: 0;
  height: auto;
  padding: 14px;
  border: 1px solid var(--line, #ddd4c7);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.48);
}

.storage-provider-card .checkline {
  margin-top: 0;
  font-weight: 700;
}

.storage-provider-card code {
  overflow-wrap: anywhere;
}

.collapsible-cloud-source:not(.source-expanded) {
  padding-block: 10px;
}

.collapsible-cloud-source:not(.source-expanded) > :not(.cloud-source-header) {
  display: none;
}

.cloud-source-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.cloud-source-header .checkline {
  margin: 0;
}

.outlook-application-settings {
  margin: 14px 0;
  padding: 12px 0;
  border-top: 1px solid var(--line, #ddd4c7);
  border-bottom: 1px solid var(--line, #ddd4c7);
}

.outlook-application-settings > summary {
  cursor: pointer;
  font-weight: 800;
}

.outlook-application-settings-body {
  min-width: 0;
  padding-top: 8px;
}

.outlook-application-setup-status:empty {
  display: none;
}

.cloud-source-toggle {
  min-width: 42px;
  padding: 5px 12px;
  font-size: 1.15rem;
  line-height: 1;
}

.storage-save-row {
  align-items: center;
  margin-bottom: 12px;
}

.local-data-source-settings {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--line, #ddd4c7);
}

.hero > .hero-card {
  background: transparent;
  border: 0;
  box-shadow: none;
  border-radius: 0;
  backdrop-filter: none;
}

.hero-meta {
  order: 2;
  color: #1b1b1b;
  font-size: 0.9rem;
  line-height: 1.45;
}

.hero-description {
  order: 3;
  color: #6b6b6b;
  font-size: 14px;
  line-height: 1.45;
}

.user-bar {
  display: flex;
  gap: 12px;
  align-items: flex-end;
  justify-content: flex-end;
  order: 1;
  padding-bottom: 0;
  border-bottom: 0;
}

.user-profile {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
}

.user-profile:hover .avatar-fallback,
.user-profile:focus-visible .avatar-fallback {
  outline: 2px solid var(--accent, #1b1b1b);
  outline-offset: 3px;
}

.user-name {
  font-family: var(--ui-font-family);
  font-size: 14px;
  font-weight: 600;
}

.avatar-fallback {
  width: 40px;
  height: 40px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 1px solid #e2dcd4;
  background: #f1e9df;
  color: #1b1b1b;
}

.avatar-fallback svg {
  width: 20px;
  height: 20px;
  fill: currentColor;
}

.avatar-fallback img {
  display: none;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.avatar-fallback.has-image img {
  display: block;
}

.avatar-fallback.has-image svg {
  display: none;
}

.logout-icon-btn {
  width: 62px;
  height: 62px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: #1b1b1b;
}

.logout-icon-btn svg {
  width: 54px;
  height: 44px;
  margin-top: 16px;
  fill: currentColor;
}

.tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 24px 0 18px;
}

.tab,
button {
  border: 0;
  border-radius: 999px;
  padding: 12px 18px;
  background: var(--ink);
  color: white;
  cursor: pointer;
  transition: transform 120ms ease, opacity 120ms ease, background 120ms ease;
}

.tab:hover,
button:hover {
  transform: translateY(-1px);
}

.tab.active {
  background: linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);
}

button.ghost {
  background: white;
  color: var(--ink);
  border: 1px solid var(--line);
}

.panel {
  display: none;
}

.panel.active {
  display: block;
}

.grid {
  display: grid;
  gap: 18px;
  margin-bottom: 18px;
}

.grid.two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grid.four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.inquiry-project-row {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(11rem, 0.75fr);
  gap: 12px;
  align-items: end;
}

.inquiry-project-row-3 {
  grid-template-columns: minmax(10rem, 0.75fr) minmax(0, 1.45fr) minmax(0, 1.2fr);
}

.inquiry-project-create-grid {
  grid-template-columns: minmax(9rem, 0.75fr) minmax(14rem, 1.35fr) minmax(14rem, 1.2fr) minmax(11rem, 1fr);
  align-items: start;
}

.personal-signature-dialog {
  width: min(620px, calc(100vw - 32px));
}

.personal-signature-section + .personal-signature-section {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid #ddd5ca;
}

.personal-signature-section h3 {
  margin: 0 0 6px;
}

.personal-signature-section textarea {
  width: 100%;
  box-sizing: border-box;
  margin: 8px 0 10px;
}

.signature-image-preview {
  display: none;
  width: min(100%, 360px);
  min-height: 100px;
  align-items: center;
  justify-content: center;
  margin: 10px 0;
  padding: 12px;
  box-sizing: border-box;
  border: 1px solid #d8d0c6;
  background-color: #f6f2ec;
  background-image: linear-gradient(45deg, #e2ddd5 25%, transparent 25%), linear-gradient(-45deg, #e2ddd5 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #e2ddd5 75%), linear-gradient(-45deg, transparent 75%, #e2ddd5 75%);
  background-size: 20px 20px;
  background-position: 0 0, 0 10px, 10px -10px, -10px 0;
}

.signature-image-preview.has-image {
  display: flex;
}

.signature-image-preview img {
  max-width: 100%;
  max-height: 180px;
  object-fit: contain;
}

.inquiry-main-detail-row {
  grid-template-columns: 11rem minmax(16rem, 1fr);
}

.inquiry-equipment-contact-field {
  min-width: 0;
}

.inquiry-reply-date-field {
  width: 11rem;
}

.inquiry-reply-date-field input {
  min-width: 0;
}

.inquiry-record-note-field {
  min-width: 0;
}

.inquiry-description-field {
  flex: 1 1 24rem;
  min-width: min(100%, 18rem);
}

.inquiry-description-field textarea {
  min-height: 5.5rem;
  resize: vertical;
}

.negotiation-inquiry-description-reference {
  margin: 4px 0 12px;
}

.negotiation-inquiry-description-title {
  display: block;
  font-size: 1em;
  font-weight: 700;
}

.negotiation-inquiry-description-reference p {
  margin: 4px 0 0;
  padding: 8px 10px;
  border-left: 4px solid #b45309;
  background: #fff3df;
  color: #9a3412;
  font-weight: 700;
  line-height: 1.55;
  white-space: pre-wrap;
}

.linked-inquiry-summary {
  margin: 10px 0 4px;
  font-weight: 700;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.inquiry-warranty-field .hint {
  margin-bottom: 0;
}

.inquiry-project-row label {
  margin-top: 10px;
}

.negotiation-contact-row,
.negotiation-quote-row,
.negotiation-payment-row,
.negotiation-warranty-row,
.negotiation-template-engineer-row {
  display: grid;
  gap: 12px;
  align-items: end;
}

.negotiation-source-owner-row {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(16rem, 1fr);
  gap: 12px;
  align-items: start;
}

.source-files-panel {
  min-width: 0;
  margin: 0 0 14px;
  padding: 14px 16px 16px;
  border: 1px solid var(--line-strong, #a9a39a);
  border-radius: 8px;
}

.source-files-panel > legend {
  padding: 0 8px;
  font-weight: 800;
  color: var(--ink);
}

.source-files-panel > label {
  display: block;
  margin-bottom: 6px;
}

.negotiation-source-field,
.negotiation-inquiry-owner-field {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.negotiation-source-file-links:empty {
  display: none;
}

.negotiation-source-file-links .record-link-list {
  align-items: flex-start;
}

.negotiation-scan-source-choices {
  display: grid;
  gap: 6px;
  margin-top: 12px;
}

.negotiation-scan-source-list {
  display: grid;
  gap: 6px;
}

.negotiation-scan-source-option {
  min-width: 0;
  align-items: flex-start;
}

.negotiation-scan-source-option span {
  overflow-wrap: anywhere;
}

.negotiation-source-scan-actions {
  margin-top: 12px;
}

.negotiation-contact-row {
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
}

.negotiation-vendor-contact-row {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
}

.negotiation-vendor-picker-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  gap: 10px;
  align-items: end;
}

.negotiation-vendor-picker-row > button,
.negotiation-vendor-contact-row > button {
  min-height: 44px;
  width: max-content;
  max-width: 100%;
}

@media (max-width: 640px) {
  .negotiation-vendor-picker-row,
  .negotiation-vendor-contact-row {
    grid-template-columns: minmax(0, 1fr);
  }
}

.negotiation-quote-row {
  display: flex;
  flex-wrap: wrap;
}

.negotiation-quote-row > label {
  flex: 1 1 10rem;
}

.negotiation-quote-row > .negotiation-brand-field {
  flex: 1.7 1 16rem;
}

.negotiation-quote-row > .negotiation-currency-field {
  flex: 0 0 8.5rem;
}

.negotiation-doc-status.success {
  color: #166534;
  font-weight: 700;
}

.payment-schedule-edit-btn {
  align-self: end;
  min-height: 44px;
}

.payment-schedule-rows {
  display: grid;
  gap: 8px;
  margin: 8px 0;
}

.payment-schedule-row {
  display: grid;
  grid-template-columns: max-content 7rem 9rem 12rem 8rem 8rem minmax(6rem, 0.7fr) auto;
  grid-template-areas:
    "type label percent timing days method custom remove"
    "toggle note note note note note . remove";
  gap: 4px 8px;
  align-items: end;
  padding: 6px 8px;
  border: 1px solid var(--line, #d8d2c8);
  border-radius: 8px;
}

.payment-schedule-row > label {
  margin: 0;
  line-height: 1.25;
}

.payment-schedule-row input:not([type="checkbox"]),
.payment-schedule-row select {
  min-height: 0;
  height: 30px;
  padding: 3px 7px;
  border-radius: 6px;
  line-height: 20px;
}

.payment-schedule-dialog-shell {
  min-height: 0 !important;
  max-height: min(82vh, 720px) !important;
  padding: 12px !important;
  gap: 8px;
}

#paymentScheduleDialog {
  width: min(1260px, calc(100vw - 24px));
  max-width: calc(100vw - 24px);
  border-radius: 10px;
}

.payment-schedule-dialog-handle {
  cursor: move;
  user-select: none;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--line, #d8d2c8);
}

.payment-schedule-type-field { grid-area: type; }
.payment-schedule-label-field { grid-area: label; }
.payment-schedule-percent-field { grid-area: percent; }
.payment-schedule-timing-field { grid-area: timing; }
.payment-schedule-days-field { grid-area: days; }
.payment-schedule-method-field { grid-area: method; }
.payment-schedule-custom-method { grid-area: custom; }
.payment-schedule-note-toggle { grid-area: toggle; }

.payment-schedule-percent-field,
.payment-schedule-days-field {
  display: grid;
  gap: 3px;
  white-space: nowrap;
}

.payment-schedule-note-toggle {
  min-width: max-content;
  white-space: nowrap;
}

.payment-schedule-percent {
  width: 6ch;
  min-width: 6ch;
  box-sizing: content-box;
  padding-left: 5px;
  padding-right: 5px;
}

.payment-schedule-days {
  width: 8ch;
  min-width: 8ch;
  box-sizing: content-box;
  padding-left: 5px;
  padding-right: 5px;
}

.payment-schedule-note {
  grid-area: note;
}

.payment-schedule-row > .remove-payment-schedule-row-btn {
  grid-area: remove;
  align-self: center;
}

.acceptance-payment-conditions {
  display: grid;
  gap: 8px;
}

.acceptance-payment-condition-row {
  padding: 10px;
  border: 1px solid var(--line, #d8d2c8);
  border-radius: 6px;
}

@media (max-width: 980px) {
  .payment-schedule-row {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 8rem), 1fr));
    grid-template-areas: none;
  }

  .payment-schedule-row > * {
    grid-area: auto;
  }

  .payment-schedule-note {
    grid-column: 1 / -1;
  }

  .payment-schedule-row > .remove-payment-schedule-row-btn {
    grid-column: auto;
  }
}

@media (max-width: 720px) {
  #paymentScheduleDialog {
    width: calc(100vw - 12px);
    max-width: calc(100vw - 12px);
  }

  .payment-schedule-dialog-handle {
    cursor: default;
  }
}

.negotiation-payment-row {
  display: flex;
  flex-wrap: wrap;
}

.negotiation-payment-terms-field {
  flex: 1.5 1 24rem;
  display: flex;
  align-items: center;
  min-height: 44px;
  margin: 0;
  padding: 8px 12px;
  border: 1px solid var(--line, #d8d2c8);
  border-radius: 10px;
  color: #1f2937;
  white-space: pre-line;
}

.payment-schedule-required {
  color: #b45309;
  font-weight: 700;
}

.vendor-payment-reference {
  color: var(--muted, #6b7280);
}

.negotiation-payment-row > .payment-schedule-edit-btn {
  flex: 0 0 auto;
}

.negotiation-billing-method-field {
  flex: 1 1 18rem;
}

.negotiation-warranty-row {
  display: flex;
  flex-wrap: wrap;
}

.negotiation-warranty-row > label {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.negotiation-warranty-description-field {
  flex: 1.5 1 24rem;
}

.negotiation-warranty-period-field {
  flex: 1 1 10rem;
}

.negotiation-warranty-hint {
  margin: 4px 0 0;
}

.negotiation-template-engineer-row {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
}

.negotiation-template-engineer-row > label,
.negotiation-engineer-field,
.negotiation-engineer-mobile-field,
.negotiation-engineer-field .autocomplete-field,
.negotiation-template-engineer-row input,
.negotiation-template-engineer-row select {
  min-width: 0;
  max-width: 100%;
}

.negotiation-engineer-field {
  width: 100%;
}

.negotiation-engineer-field .autocomplete-field {
  display: block;
  width: 100%;
}

.negotiation-engineer-mobile-field {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.attachment-choice-row {
  display: grid;
  grid-template-columns: minmax(12rem, auto) minmax(0, 1fr);
  align-items: center;
  gap: 6px 12px;
}

.attachment-choice-row .document-download-link {
  min-width: 0;
  overflow-wrap: anywhere;
  text-align: left;
}

.linked-negotiation-source-row {
  grid-template-columns: max-content minmax(0, 1fr);
}

@media (max-width: 760px) {
  .negotiation-source-owner-row,
  .negotiation-template-engineer-row {
    grid-template-columns: minmax(0, 1fr);
  }

  .attachment-choice-row {
    grid-template-columns: minmax(0, 1fr);
  }
}

.template-placeholder-guide {
  margin-top: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px 12px;
}

.template-placeholder-guide summary {
  cursor: pointer;
  font-weight: 700;
}

.template-placeholder-grid {
  display: grid;
  grid-template-columns: repeat(3, max-content minmax(0, 1fr));
  gap: 8px 14px;
  margin-top: 12px;
  font-size: var(--ui-control-size);
}

.template-placeholder-grid code {
  color: var(--accent);
  overflow-wrap: anywhere;
}

.rule-template-placeholder-guide {
  margin-bottom: 14px;
}

.purchase-generated-links {
  display: grid;
  gap: 6px;
  margin-top: 10px;
}

.purchase-generated-links .document-download-link {
  width: fit-content;
  max-width: 100%;
  overflow-wrap: anywhere;
  text-align: left;
}

.negotiation-create-actions {
  margin-top: 12px;
}

.negotiation-meeting-record-panel {
  min-width: 0;
  margin: 18px 0 0;
  padding: 14px 16px 16px;
  border: 1px solid var(--line-strong, #a9a39a);
  border-radius: 8px;
}

.negotiation-meeting-record-panel > legend {
  padding: 0 8px;
  font-weight: 800;
  color: var(--ink);
}

.negotiation-page-save-actions {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 14px 0 4px;
  border-top: 1px solid var(--line);
  background: var(--card, #fff);
}

.negotiation-page-save-actions .hint {
  margin: 0;
}

.negotiation-contact-row label,
.negotiation-quote-row label {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.field-display-line {
  min-height: 42px;
  display: flex;
  align-items: center;
  color: var(--muted);
  font-weight: 700;
}

.personnel-note {
  min-height: 0;
  margin: 10px 0 0;
}

.template-file-list {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.template-file-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 8px;
  align-items: center;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.72);
}

.inquiry-generate-row {
  margin-top: 16px;
}

.card {
  padding: 20px;
}

.card h2 {
  margin-top: 0;
}

label {
  display: block;
  margin: 10px 0 6px;
  font-weight: 700;
}

input,
textarea,
select {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.82);
  color: var(--ink);
  font: inherit;
}

textarea {
  resize: vertical;
}

.row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 14px;
}

.ai-action-status {
  color: #555;
  font-size: 0.92rem;
  font-weight: 800;
  line-height: 1.5;
}

.ai-action-status.status-working,
.ai-action-status.status-fallback,
.ai-action-status.status-error {
  color: #b42318;
}

.ai-action-status.status-working {
  animation: model-test-pulse 900ms ease-in-out infinite alternate;
}

.ai-action-status.status-success {
  color: #16713b;
}

.preview {
  min-height: 340px;
  white-space: pre-wrap;
  background: #182027;
  color: #dbf5ec;
  padding: 16px;
  border-radius: 16px;
  font-family: var(--mono);
  font-size: 0.9rem;
  overflow: auto;
}

.record-list,
.contact-list {
  display: grid;
  gap: 10px;
}

.contact-list {
  max-height: 420px;
  overflow: auto;
}

.autocomplete-field {
  position: relative;
}

.autocomplete-field > input {
  padding-right: 44px;
}

.autocomplete-toggle {
  position: absolute;
  top: 50%;
  right: 8px;
  display: inline-flex;
  width: 30px;
  height: 30px;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--ink);
  font-size: 1rem;
  line-height: 1;
  transform: translateY(-50%);
  box-shadow: none;
}

.autocomplete-toggle:hover,
.autocomplete-toggle:focus-visible {
  background: rgba(15, 118, 110, 0.1);
  transform: translateY(-50%);
  outline: 2px solid rgba(15, 118, 110, 0.28);
}

.autocomplete-menu {
  position: absolute;
  z-index: 30;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  max-height: 320px;
  overflow-y: auto;
  padding: 6px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fffdf9;
  box-shadow: 0 14px 32px rgba(31, 36, 33, 0.18);
}

.autocomplete-option {
  display: grid;
  width: 100%;
  gap: 3px;
  padding: 10px 12px;
  border-radius: 10px;
  background: transparent;
  color: var(--ink);
  text-align: left;
}

.autocomplete-option:hover,
.autocomplete-option:focus-visible {
  transform: none;
  background: rgba(15, 118, 110, 0.1);
  outline: 2px solid rgba(15, 118, 110, 0.35);
}

.autocomplete-option span,
.autocomplete-empty {
  color: #666;
  font-size: 0.88rem;
}

.autocomplete-empty {
  margin: 8px;
}

.contact-picker-table {
  min-width: 1040px;
  table-layout: fixed;
}

.contact-picker-table th:first-child,
.contact-picker-table td:first-child {
  text-align: center;
}

.contact-picker-table th {
  position: relative;
  user-select: none;
}

.resizable-record-table {
  min-width: 100%;
  table-layout: fixed;
}

.resizable-record-table th {
  position: relative;
  user-select: none;
}

.resizable-record-table td {
  overflow-wrap: anywhere;
}

.resizable-record-table th,
.resizable-record-table td {
  vertical-align: middle;
}

.resizable-record-table th {
  padding-top: 8px;
  padding-bottom: 8px;
}

.record-sort-button {
  display: inline-flex;
  width: calc(100% - 14px);
  align-items: center;
  gap: 6px;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: 800;
  justify-content: flex-start;
  text-align: left;
  box-shadow: none;
  cursor: pointer;
}

.record-sort-button.active .sort-indicator {
  color: var(--accent);
}

.sort-indicator {
  font-weight: 900;
  line-height: 1;
}

.record-sort-button:hover,
.record-sort-button:focus-visible {
  transform: none;
  outline: 2px solid rgba(15, 118, 110, 0.25);
  outline-offset: 2px;
}

.resizable-record-table td {
  padding-top: 8px;
  padding-bottom: 8px;
  line-height: 1.35;
}

#inquiryRecordsDialog .table-scroll,
#negotiationRecordsDialog .table-scroll,
#purchaseOrderRecordsDialog .table-scroll,
#purchaseApprovalProgressDialog .table-scroll {
  max-height: calc(100vh - 260px);
  overflow: auto;
}

#inquiryRecordsDialog .table-scroll {
  padding-bottom: 18px;
  scrollbar-gutter: stable both-edges;
}

.record-action-cell {
  white-space: normal;
}

.record-action-cell .small {
  margin: 2px 3px 2px 0;
  padding: 7px 10px;
  min-height: 34px;
}

.purchase-record-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 12px;
}

.purchase-record-toolbar button small {
  margin-left: 6px;
  color: var(--muted);
  font-weight: 700;
}

#purchasePendingDialog summary {
  display: none;
}

.purchase-pending-dialog-shell {
  width: 100%;
  max-width: 100%;
  height: calc(100vh - 8px);
  max-height: calc(100vh - 8px);
  resize: none;
}

.purchase-pending-section > summary {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
  list-style: none;
}

.purchase-pending-section > summary::-webkit-details-marker {
  display: none;
}

.purchase-pending-section > summary span {
  font-size: 1.35rem;
  font-weight: 800;
}

.purchase-pending-section > summary small {
  color: var(--muted);
  font-weight: 700;
}

.purchase-pending-body {
  display: grid;
  gap: 12px;
  padding-top: 12px;
}

.purchase-pending-body > input {
  max-width: 560px;
}

.purchase-source-row {
  cursor: pointer;
}

.purchase-source-row:hover {
  background: rgba(15, 118, 110, 0.08);
}

.negotiation-inline-editor td {
  background: rgba(247, 250, 247, 0.95);
}

.negotiation-inline-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  gap: 10px;
  align-items: end;
}

.negotiation-round-editor-grid {
  grid-template-columns: minmax(110px, 0.7fr) minmax(110px, 0.7fr) minmax(180px, 1fr) minmax(220px, 1.2fr) minmax(220px, 1fr) auto;
}

.negotiation-round-editor-grid .negotiation-inline-note {
  grid-column: auto;
}

.negotiation-round-editor-grid .negotiation-inline-note-input {
  min-height: 42px;
}

.negotiation-round-list {
  display: grid;
  gap: 6px;
  margin-bottom: 10px;
}

.negotiation-round-list-title {
  font-weight: 700;
}

.negotiation-round-row {
  display: grid;
  grid-template-columns: 70px 130px 130px 170px minmax(180px, 1fr) minmax(160px, 1fr) minmax(132px, auto);
  gap: 8px;
  padding: 7px 10px;
  border: 1px solid var(--line);
  background: #fff;
}

.negotiation-round-actions {
  display: flex;
  align-items: start;
  gap: 6px;
}

.negotiation-round-actions button.danger {
  color: #fff;
  background: #9f2f2f;
  border-color: #9f2f2f;
}

.negotiation-round-empty {
  margin: 0 0 8px;
}

.negotiation-round-view {
  max-width: 100%;
  overflow-x: auto;
}

.negotiation-round-view-table {
  width: 100%;
  min-width: 980px;
  border-collapse: collapse;
}

.negotiation-round-view-table th,
.negotiation-round-view-table td {
  padding: 9px 10px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}

.negotiation-round-view-table th {
  background: var(--surface-muted);
  font-weight: 700;
  white-space: nowrap;
}

.negotiation-meeting-record-section {
  margin-top: 16px;
}

.negotiation-meeting-record-section h3 {
  margin: 0 0 8px;
  font-size: 1rem;
}

.negotiation-inline-note {
  grid-column: 1 / span 3;
}

.selected-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px;
}

.selected-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 4px 8px;
  background: #fffdf9;
  font-size: 0.88rem;
  font-weight: 700;
}

.selected-chip button {
  min-height: 0;
  padding: 0 4px;
  border: 0;
  background: transparent;
  color: var(--muted);
  box-shadow: none;
}

.contact-picker-table td {
  overflow-wrap: anywhere;
}

.column-resize-handle {
  position: absolute;
  z-index: 2;
  top: 0;
  right: -5px;
  width: 10px;
  height: 100%;
  cursor: col-resize;
  touch-action: none;
}

.column-resize-handle::after {
  content: "";
  position: absolute;
  top: 20%;
  bottom: 20%;
  left: 4px;
  width: 2px;
  border-radius: 2px;
  background: rgba(31, 41, 55, 0.28);
}

.column-resize-handle:hover::after,
.column-resize-handle:focus-visible::after,
body.resizing-table-column .column-resize-handle::after {
  background: var(--accent);
}

body.resizing-table-column {
  cursor: col-resize;
  user-select: none;
}

.file-picker-row {
  align-items: center;
  margin-top: 8px;
}

.file-picker-row .notice {
  margin-top: 0;
  flex: 1 1 240px;
  min-width: 0;
  overflow-wrap: anywhere;
}

.inquiry-draft-card textarea {
  min-height: 260px;
}

.inquiry-paired-section {
  align-self: start;
  min-width: 0;
}

.negotiation-round-row.is-editing {
  border-color: var(--accent);
  background: #eef7f5;
}

.paired-workspace-grid.single-pane {
  grid-template-columns: minmax(0, 1fr);
}

.paired-workspace-grid.single-pane > .inquiry-fixed-section {
  grid-column: 1 / -1;
}

.inquiry-fixed-section-title {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 800;
}

.inquiry-paired-section > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0;
  cursor: pointer;
  font-size: 1.25rem;
  font-weight: 800;
  list-style: none;
}

.inquiry-paired-section > summary::-webkit-details-marker {
  display: none;
}

.inquiry-paired-section > summary::after {
  content: "展開";
  color: var(--muted);
  font-size: 14px;
  font-weight: 600;
}

.inquiry-paired-section[open] > summary::after {
  content: "縮起";
}

.inquiry-paired-section-body {
  padding-top: 12px;
  min-width: 0;
}

.inquiry-work-toolbar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 12px;
}

.inquiry-work-toolbar button {
  min-height: 40px;
  padding: 9px 16px;
}

.app-dialog.inquiry-work-dialog {
  width: calc(100vw - 8px);
  max-width: calc(100vw - 8px);
  height: calc(100vh - 8px);
  max-height: calc(100vh - 8px);
}

.inquiry-work-dialog-shell {
  width: 100%;
  height: 100%;
  max-height: 100%;
  box-sizing: border-box;
  resize: none;
}

#inquiryRecordsDialog .inquiry-work-dialog-shell,
#negotiationRecordsDialog .inquiry-work-dialog-shell,
#purchaseOrderRecordsDialog .inquiry-work-dialog-shell {
  grid-template-rows: auto auto minmax(0, 1fr);
  align-content: start;
  overflow: hidden;
}

#purchaseOrderRecordsDialog .inquiry-work-dialog-shell {
  grid-template-rows: auto auto auto minmax(0, 1fr);
}

#inquiryRecordsDialog .inquiry-work-dialog-shell {
  grid-template-rows: auto minmax(0, 1fr);
}

#inquiryRecordsDialog .inner-tabs,
#negotiationRecordsDialog .inner-tabs,
#purchaseOrderRecordsDialog .inner-tabs {
  align-self: start;
  margin: 0;
}

#inquiryRecordsDialog .inner-tab,
#negotiationRecordsDialog .inner-tab,
#purchaseOrderRecordsDialog .inner-tab {
  min-height: 40px;
  padding: 8px 14px;
}

#purchaseOrderRecordsDialog #purchaseOrderList {
  min-height: 0;
  overflow: auto;
}

.purchase-detail-row .link-button {
  max-width: 100%;
  overflow-wrap: anywhere;
  text-align: left;
}

#inquiryRecordsDialog .inner-panel,
#negotiationRecordsDialog .inner-panel {
  min-height: 0;
  overflow: auto;
}

#inquiryRecordsDialog .record-toggle-cell > .negotiation-compact-cell {
  display: flex;
  align-items: center;
  gap: 4px;
  min-height: 34px;
  max-height: none;
  overflow: hidden;
  white-space: nowrap;
  -webkit-line-clamp: unset;
  -webkit-box-orient: unset;
}

#inquiryRecordsDialog .record-toggle-cell > .negotiation-compact-cell .small {
  flex: 0 0 auto;
  margin: 0;
}

#inquiryRecordsDialog tr.is-expanded .record-toggle-cell > .negotiation-compact-cell {
  display: flex;
  white-space: nowrap;
}

.inquiry-quote-editor-dialog {
  width: min(980px, calc(100vw - 24px));
  max-width: 980px;
}

.inquiry-quote-editor-dialog-shell {
  max-height: calc(100dvh - 24px);
  overflow: auto;
}

.inquiry-quote-editor-body {
  display: grid;
  gap: 12px;
}

.inquiry-quote-editor-context {
  display: grid;
  gap: 4px;
  padding: 2px 0 4px;
  font-size: 1.05rem;
}

.inquiry-quote-editor-context strong {
  font-size: 1.18rem;
}

#compareDialog .inquiry-work-dialog-shell {
  grid-template-rows: auto minmax(0, 1fr);
  align-content: start;
  overflow: hidden;
}

.inquiry-work-dialog-shell > .dialog-head {
  position: sticky;
  top: -20px;
  z-index: 4;
  margin: -20px -20px 0;
  padding: 16px 20px;
  border-bottom: 1px solid var(--line);
  background: #fffaf3;
}

.inquiry-compare-dialog-body {
  min-height: 0;
  overflow: auto;
}

.scan-preview-window {
  position: fixed;
  z-index: 40;
  top: 110px;
  right: 24px;
  width: min(620px, calc(100vw - 32px));
  height: min(640px, calc(100vh - 140px));
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid rgba(31, 41, 55, 0.24);
  border-radius: 18px;
  background: #fffaf3;
  box-shadow: 0 18px 48px rgba(31, 41, 55, 0.24);
}

.scan-preview-window.collapsed {
  width: 220px;
  height: auto;
  grid-template-rows: auto;
}

.scan-preview-window-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  background: #f3eadf;
  cursor: move;
  touch-action: none;
  user-select: none;
}

.scan-preview-window.collapsed .scan-preview-window-head {
  border-bottom: 0;
}

.scan-preview-window-head h2 {
  margin: 0;
  font-size: 1.05rem;
}

.scan-preview-window-actions {
  display: flex;
  gap: 6px;
}

.scan-preview-window-actions button {
  cursor: pointer;
}

.scan-preview-window-body {
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  overflow: auto;
  padding: 12px;
}

.scan-preview-window.collapsed .scan-preview-window-body {
  display: none;
}

.scan-preview-window .preview {
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
  margin: 0;
  overflow: auto;
  white-space: pre-wrap;
}

.scan-preview-launcher {
  min-width: 112px;
}

.scan-preview-launcher-host {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
}

body.dragging-scan-preview {
  cursor: move;
  user-select: none;
}

.acceptance-checklist {
  display: grid;
  gap: 8px;
  padding: 12px 14px;
  border: 1px solid rgba(31, 36, 33, 0.08);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.58);
}

.sidebar-contact-list {
  max-height: 320px;
  margin-top: 12px;
}

.contact-card {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: start;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.72);
}

.contact-main {
  display: grid;
  gap: 4px;
}

.contact-meta {
  color: #6a675f;
  font-size: 14px;
  line-height: 1.45;
}

.sidebar .contact-card {
  background: rgba(255, 255, 255, 0.95);
}

.sidebar .contact-meta {
  color: #4c4a45;
}

.record {
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.65);
}

.record-title {
  font-weight: 700;
}

.record-meta,
.muted,
.notice {
  color: #555;
  font-size: 0.92rem;
  line-height: 1.5;
}

.bootstrap-warnings {
  margin: 0 0 16px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff8e6;
  color: #5f4500;
}

.bootstrap-warnings ul {
  margin: 6px 0 0;
  padding-left: 20px;
}



.record-form {
  display: grid;
  gap: 6px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed var(--line);
}

.small {
  width: fit-content;
  padding: 8px 12px;
  border-radius: 12px;
  font-size: 0.9rem;
}

.inner-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

.inner-tab {
  background: #f4f0e8;
  color: var(--ink);
  border: 1px solid var(--line);
  padding: 8px 12px;
}

.settings-tab-group {
  display: grid;
  gap: 12px;
}

.settings-list-defaults-card {
  max-width: 980px;
}

.settings-list-default-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}

.settings-list-default-item h3,
.settings-list-default-item p {
  margin-top: 0;
}

@media (max-width: 680px) {
  .settings-list-default-item {
    align-items: stretch;
    flex-direction: column;
  }
}

.inner-tab.active {
  background: var(--accent);
  color: white;
}

.inner-panel {
  display: none;
}

.inner-panel.active {
  display: block;
}

#negotiationRecordsDialog .inner-panel.active {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  min-width: 0;
  min-height: 0;
  overflow: hidden;
}

#negotiationRecordsDialog .record-list {
  grid-template-rows: minmax(0, 1fr);
  min-width: 0;
  min-height: 0;
  overflow: hidden;
}

#negotiationRecordsDialog .table-scroll {
  width: 100%;
  max-width: 100%;
  height: 100%;
  max-height: none;
  min-width: 0;
  min-height: 0;
  overflow-x: scroll;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.checkline {
  display: flex;
  gap: 8px;
  align-items: center;
  margin-top: 6px;
}

.scan-file-choice {
  align-items: flex-start;
  min-width: 0;
}

.scan-file-choice input[type="checkbox"] {
  flex: 0 0 18px;
  width: 18px;
  min-width: 18px;
  height: 18px;
  min-height: 18px;
  margin: 3px 0 0;
  padding: 0;
}

.scan-file-choice > span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.hint {
  margin-top: 8px;
  color: #666;
  font-size: 0.92rem;
}

.compare-box {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px dashed var(--line);
}

.compare-summary {
  margin-top: 10px;
  padding: 12px 14px;
  border-radius: 14px;
  background: rgba(15, 118, 110, 0.08);
  border: 1px solid rgba(15, 118, 110, 0.18);
  line-height: 1.6;
}

.compare-summary.muted {
  color: #666;
  background: rgba(31, 36, 33, 0.05);
  border-color: rgba(31, 36, 33, 0.08);
}

.compare-group-label {
  display: inline-flex;
  align-items: center;
  margin-top: 8px;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(204, 122, 0, 0.12);
  color: #9a5b00;
  font-size: 14px;
  font-weight: 700;
}

.checkline.dimmed {
  opacity: 0.52;
}

.attachment-preview {
  margin-top: 10px;
  padding: 12px 14px;
  border-radius: 14px;
  background: rgba(31, 36, 33, 0.05);
  border: 1px solid rgba(31, 36, 33, 0.08);
  line-height: 1.6;
  white-space: pre-wrap;
}

.vendor-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.vendor-toolbar input,
.vendor-toolbar select {
  flex: 1 1 240px;
}

.vendor-toolbar.secondary {
  margin-top: 12px;
}

.vendor-list {
  display: grid;
  gap: 12px;
}

.vendor-card {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 14px;
  background: rgba(255, 255, 255, 0.7);
  display: grid;
  gap: 8px;
}

.vendor-card-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: start;
}

.vendor-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 4px 10px;
  background: rgba(15, 118, 110, 0.12);
  color: var(--accent);
  font-size: 14px;
  font-weight: 700;
}

.purchase-mail-workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}

.purchase-mail-workspace > *,
.purchase-mail-panel > * {
  min-width: 0;
}

.purchase-mail-workspace.single-pane {
  grid-template-columns: minmax(0, 1fr);
}

.purchase-mail-panel.hidden {
  display: none;
}

.purchase-mail-panel {
  display: grid;
  gap: 14px;
}

.purchase-mail-attachment-list {
  display: grid;
  gap: 4px;
  white-space: normal;
}

.purchase-saved-attachment-row {
  margin: 0;
  gap: 6px 12px;
  align-items: center;
}

.purchase-saved-attachment-row .document-download-link {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
  text-align: left;
}

@media (max-width: 1100px) {
  .purchase-mail-workspace {
    grid-template-columns: minmax(0, 1fr);
  }
}

.purchase-mail-attachment-row {
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 4px 8px;
  padding: 2px 0;
}

.purchase-mail-attachment-row label {
  min-width: 0;
}

.purchase-mail-attachment-row .document-download-link {
  width: fit-content;
  max-width: 100%;
}

.purchase-generated-document-box {
  margin: 10px 0;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.purchase-generated-document-box .purchase-generated-links {
  display: grid;
  gap: 4px;
}

.purchase-content-section > legend,
.purchase-generated-document-box > legend {
  padding: 0 4px;
  font-weight: 700;
}

@media (max-width: 760px) {
  .purchase-mail-attachment-row {
    grid-template-columns: auto minmax(0, 1fr) auto;
  }
}

.status-pill {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin-top: 4px;
  border-radius: 999px;
  padding: 3px 9px;
  background: rgba(15, 118, 110, 0.12);
  color: var(--accent);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.4;
  white-space: nowrap;
}

.inquiry-sent-negotiation-badge {
  background: rgba(21, 94, 117, 0.12);
  color: #155e75;
}

.ghost-badge {
  background: rgba(31, 36, 33, 0.08);
  color: #50544e;
}

.vendor-meta {
  color: #555;
  line-height: 1.5;
  word-break: break-word;
}

.vendor-meta.primary {
  font-weight: 700;
  color: var(--ink);
}

.small-link {
  color: var(--accent);
  font-size: 0.92rem;
  text-decoration: none;
  align-self: center;
}

.small-link:hover {
  text-decoration: underline;
}

.record-link-list {
  display: grid;
  gap: 4px;
  margin-top: 6px;
}

.link-button {
  width: fit-content;
  border: 0;
  background: transparent;
  color: var(--accent);
  padding: 0;
  text-align: left;
  text-decoration: underline;
  font: inherit;
  cursor: pointer;
}

.negotiation-result-dialog-shell {
  max-width: min(1120px, calc(100vw - 48px));
}

.negotiation-result-summary {
  display: grid;
  gap: 4px;
  margin-bottom: 14px;
}

.negotiation-readonly-section {
  margin-top: 14px;
  padding: 14px;
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.45);
}

.negotiation-readonly-section > h3 {
  margin: 0 0 12px;
  font-size: 1rem;
}

.negotiation-readonly-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 16px;
}

.negotiation-readonly-field {
  display: grid;
  grid-template-columns: minmax(8rem, 0.42fr) minmax(0, 1fr);
  gap: 8px;
  min-width: 0;
  padding: 9px 0;
  border-bottom: 1px solid rgba(40, 34, 28, 0.12);
}

.negotiation-readonly-field > span,
.negotiation-readonly-field > div {
  min-width: 0;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.negotiation-readonly-wide {
  grid-column: 1 / -1;
}

@media (max-width: 960px) {
  .negotiation-readonly-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .negotiation-readonly-grid,
  .negotiation-readonly-field {
    grid-template-columns: 1fr;
  }

  .negotiation-readonly-wide {
    grid-column: auto;
  }
}

.negotiation-round-create-actions {
  display: flex;
  justify-content: flex-start;
  margin: 4px 0 12px;
}

.negotiation-result-editor {
  border: 1px solid var(--line);
  padding: 14px;
  background: rgba(255, 255, 255, 0.5);
}

.negotiation-result-editor h3 {
  margin: 0 0 12px;
  font-size: 1rem;
}

.negotiation-result-grid {
  display: grid;
  grid-template-columns: minmax(150px, 0.8fr) minmax(180px, 1fr) minmax(220px, 1.2fr);
  gap: 12px;
}

.negotiation-result-note,
.negotiation-result-attachment,
.negotiation-complete-check {
  grid-column: 1 / -1;
}

.negotiation-result-attachment {
  display: grid;
  gap: 10px;
}

.negotiation-result-attachment .field-label {
  font-weight: 700;
}

.negotiation-result-existing-attachments,
.negotiation-result-new-attachment {
  display: grid;
  gap: 7px;
  border: 1px solid var(--line);
  padding: 10px;
  background: #fff;
}

.negotiation-result-existing-list {
  display: grid;
  gap: 7px;
}

.negotiation-result-existing-list .attachment-choice-row {
  grid-template-columns: minmax(12rem, auto) minmax(0, 1fr) 34px;
}

.negotiation-result-existing-list .remove-negotiation-result-existing-file-btn {
  width: 34px;
  min-width: 34px;
  height: 34px;
  padding: 0;
  font-size: 1.25rem;
  line-height: 1;
}

@media (max-width: 760px) {
  .negotiation-result-existing-list .attachment-choice-row {
    grid-template-columns: minmax(0, 1fr) 34px;
  }

  .negotiation-result-existing-list .attachment-choice-row .attachment-choice {
    grid-column: 1 / -1;
  }
}

.negotiation-result-new-file-list {
  display: grid;
  gap: 6px;
}

.negotiation-result-new-file-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 34px;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 4px 6px 4px 10px;
  border: 1px solid var(--line);
}

.negotiation-result-new-file-row > span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.negotiation-result-new-file-row .remove-negotiation-result-new-file-btn {
  width: 34px;
  min-width: 34px;
  height: 34px;
  padding: 0;
  font-size: 1.25rem;
  line-height: 1;
}

.negotiation-result-existing-empty {
  margin: 0;
}

.dialog-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 16px;
}

.vendor-log {
  min-height: 260px;
}

.app-dialog {
  width: min(1120px, calc(100vw - 12px));
  max-width: calc(100vw - 12px);
  border: 0;
  border-radius: 22px;
  padding: 0;
  background: transparent;
  overflow: hidden;
}

.app-dialog::backdrop {
  background: rgba(15, 21, 26, 0.45);
}

.dialog-shell {
  background: #fffaf3;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 22px;
  padding: 20px;
  display: grid;
  gap: 14px;
  max-height: calc(100vh - 12px);
  overflow-y: auto;
  overflow-x: hidden;
}

.dialog-shell.wide {
  width: 100%;
  max-width: 100%;
  max-height: calc(100vh - 12px);
  overflow-x: hidden;
  overflow-y: auto;
  resize: both;
  min-width: 0;
  min-height: 480px;
  box-sizing: border-box;
}

.dialog-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.dialog-header .close-dialog {
  margin-left: auto;
}

#recipientDialog .dialog-shell.wide {
  height: min(720px, calc(100vh - 24px));
  min-height: min(480px, calc(100vh - 24px));
  resize: none;
  grid-template-rows: auto auto auto auto minmax(0, 1fr);
}

#recipientDialog #contactKeyword {
  display: block;
  height: 48px;
  min-height: 48px;
  max-height: 48px;
  flex: none;
}

#recipientDialog #contactResults {
  min-height: 180px;
  overflow: auto;
  align-content: start;
}

.dialog-shell.wide.maximized {
  width: 100%;
  max-width: 100%;
  height: calc(100vh - 8px);
  max-height: calc(100vh - 8px);
  resize: none;
}

.dialog-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.dialog-head h3 {
  margin: 0;
}

.dialog-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.dialog-grid > label,
.dialog-shell > label {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.vendor-form-layout {
  display: grid;
  gap: 14px;
}

.vendor-form-row {
  display: grid;
  gap: 12px;
  min-width: 0;
}

.vendor-form-row-3 {
  grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr));
}

.vendor-form-row-top {
  grid-template-columns: minmax(260px, 1fr) minmax(10ch, 14ch) minmax(10ch, 14ch) minmax(8ch, 12ch);
}

.vendor-form-row-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.vendor-form-row-contacts {
  grid-template-columns: minmax(0, 1.1fr) minmax(120px, 0.45fr) minmax(0, 1fr);
}

.negotiation-result-payment-field {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  align-items: end;
  gap: 8px;
  min-width: 0;
}

.negotiation-result-payment-field > label {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.negotiation-result-payment-field > .payment-schedule-edit-btn {
  min-height: 42px;
}

@media (max-width: 640px) {
  .template-placeholder-grid {
    grid-template-columns: max-content minmax(0, 1fr);
  }

  .negotiation-result-payment-field {
    grid-template-columns: minmax(0, 1fr);
  }

  .negotiation-result-payment-field > .payment-schedule-edit-btn {
    width: max-content;
  }
}

.vendor-form-row-payment {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.vendor-form-row-meta {
  grid-template-columns: minmax(140px, 180px) minmax(160px, 220px) minmax(180px, 1fr);
}

.vendor-form-layout label {
  display: grid;
  gap: 6px;
  min-width: 0;
  margin: 0;
}

.vendor-form-layout .field-full,
.vendor-form-layout .field-wide {
  min-width: 0;
}

.vendor-form-layout .field-short {
  max-width: 180px;
}

.vendor-form-layout .field-10ch {
  min-width: 10ch;
}

.vendor-form-layout .field-8ch {
  min-width: 8ch;
}

.vendor-form-layout .field-date {
  max-width: 240px;
}

.vendor-form-layout textarea {
  resize: vertical;
  white-space: pre-wrap;
}

#vendorFormWebsite {
  min-height: 42px;
}

#vendorFormAddress {
  min-height: 56px;
}

#vendorFormRemarks {
  min-height: 96px;
}

.vendor-detail-section {
  display: grid;
  gap: 8px;
}

.vendor-detail-section .section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.vendor-detail-row {
  display: grid;
  gap: 8px;
  align-items: center;
  margin-bottom: 8px;
}

.vendor-detail-row-brand {
  grid-template-columns: minmax(160px, 1.25fr) minmax(150px, 1fr) minmax(140px, 1fr) minmax(120px, 140px) auto;
}

.vendor-detail-row-contact {
  grid-template-columns: minmax(10ch, 1fr) minmax(8ch, 0.8fr) minmax(14ch, 1fr) minmax(6ch, 0.5fr) minmax(140px, 1fr) minmax(180px, 1.2fr) minmax(120px, 1fr) auto;
}

.legacy-vendor-fields {
  display: none;
}

.vendor-duplicates {
  display: block;
  max-height: calc(100vh - 180px);
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 6px;
  min-width: 0;
}

.duplicate-group {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 0;
  margin-bottom: 14px;
  background: rgba(255, 255, 255, 0.72);
  min-width: 0;
  overflow: hidden;
}

.duplicate-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  cursor: pointer;
  list-style: none;
  margin: 0;
}

.duplicate-head::-webkit-details-marker {
  display: none;
}

.duplicate-head-title {
  font-weight: 700;
  min-width: 0;
  overflow-wrap: anywhere;
}

.duplicate-head-actions {
  flex: 0 0 auto;
}

.duplicate-body {
  display: grid;
  gap: 12px;
  padding: 0 16px 16px;
  min-width: 0;
}

.duplicate-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: 12px;
  min-width: 0;
}

.duplicate-item {
  border-radius: 14px;
  padding: 12px;
  background: rgba(15, 118, 110, 0.07);
  display: grid;
  gap: 8px;
  min-width: 0;
  overflow: hidden;
}

.duplicate-merged-preview {
  border-radius: 14px;
  padding: 12px;
  background: rgba(204, 122, 0, 0.08);
  border: 1px solid rgba(204, 122, 0, 0.18);
  display: grid;
  gap: 8px;
  min-width: 0;
  overflow: hidden;
}

.duplicate-fields {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.duplicate-fields > div {
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
}

.duplicate-label {
  color: #5f645d;
  font-weight: 700;
}

.duplicate-value {
  min-width: 0;
  word-break: break-word;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}

.duplicate-edit-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  min-width: 0;
  overflow-x: hidden;
}

.duplicate-edit-row {
  display: grid;
  gap: 6px;
  margin: 0;
  min-width: 0;
  overflow: hidden;
}

.duplicate-edit-control {
  min-width: 0;
  max-width: 100%;
}

.duplicate-edit-control textarea,
textarea.duplicate-edit-control {
  min-height: 88px;
}

.duplicate-edit-row[data-wide="true"] {
  grid-column: 1 / -1;
}

.vendor-duplicates progress,
progress {
  width: 100%;
  height: 14px;
}

.notice {
  margin-top: 10px;
}

/* Dense operational layout: keep forms scannable without wasting vertical space. */
.app-layout .main-shell {
  padding: 20px;
}

.app-layout .grid {
  gap: 12px;
  margin-bottom: 12px;
}

.app-layout .card {
  padding: 16px;
  border-radius: 8px;
}

.app-layout .card h2 {
  margin: 0 0 12px;
  font-size: 1.25rem;
  line-height: 1.3;
}

.app-layout .card h3 {
  margin: 16px 0 8px;
  font-size: 1rem;
  line-height: 1.3;
}

.app-layout label {
  margin: 4px 0;
  font-size: 0.9rem;
}

.app-layout input,
.app-layout textarea,
.app-layout select {
  min-height: 38px;
  border-radius: 8px;
  padding: 8px 10px;
}

.app-layout input[type="checkbox"] {
  width: 18px;
  min-width: 18px;
  height: 18px;
  min-height: 18px;
  margin: 0;
  padding: 0;
}

.app-layout .record-table {
  margin-top: 8px;
  font-size: 14px;
}

.app-layout .record-table th,
.app-layout .record-table td {
  padding: 6px 8px;
  vertical-align: middle;
}

.app-layout .row {
  gap: 8px;
  margin-top: 10px;
}

.purchase-order-editor {
  overflow: hidden;
}

.po-info-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 8px 12px;
  align-items: start;
}

.po-field {
  min-width: 0;
}

.purchase-status-display {
  display: flex;
  min-height: 44px;
  width: 100%;
  align-items: center;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface-muted, #f4f1ec);
  color: var(--text);
}

.po-field-no,
.po-field-status,
.po-field-date,
.po-field-currency,
.po-field-rate,
.po-field-rate-action {
  width: 100%;
  max-width: 190px;
  justify-self: start;
}

.po-field-no,
.po-field-rate {
  max-width: 120px;
}

.po-number-hint {
  display: block;
  margin-top: 3px;
}

.po-helper-text {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.35;
}

.po-field-no,
.po-field-status,
.po-field-date,
.po-field-currency,
.po-field-rate,
.po-field-rate-action {
  grid-column: span 2;
}

.po-field-project {
  grid-column: span 5;
}

.po-field-code {
  grid-column: span 3;
}

.po-field-owner,
.po-field-owner-email {
  grid-column: span 3;
}

.po-contact-row {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 2fr) repeat(4, minmax(0, 1fr));
  gap: 8px 12px;
  padding-bottom: 2px;
}

.po-contact-row > * {
  min-width: 0;
}

.po-vendor-search-btn {
  width: 64px;
  font-size: 14px;
}

.po-field-vendor .autocomplete-field > input {
  padding-right: 72px;
}

.po-field-engineer {
  grid-column: 1 / span 3;
  display: grid;
  grid-template-rows: 25px auto;
  min-width: 0;
  align-content: start;
}

.po-field-engineer-mobile {
  grid-column: span 2;
  display: grid;
  grid-template-rows: 25px auto;
  min-width: 0;
  align-content: start;
}

.po-field-demand-date {
  grid-column: span 2;
  min-width: 0;
  max-width: 100%;
}

.po-field-engineer-supplement {
  grid-column: span 2;
  display: grid;
  grid-template-rows: 25px auto;
  min-width: 0;
  align-content: start;
  gap: 0;
}

.po-field-engineer-supplement .checkline {
  min-height: 25px;
  margin: 0;
  white-space: nowrap;
}

.po-field-engineer-supplement > input {
  width: 100%;
  min-width: 0;
}

.po-field-billing {
  grid-column: span 4;
}

.po-field-address {
  grid-column: span 10;
}

.po-field-owner {
  grid-column: span 2;
  display: grid;
  grid-template-rows: 25px auto;
  align-content: start;
  width: 100%;
  max-width: calc(10em + 54px);
}

.po-field-owner-email {
  display: grid;
  grid-template-rows: 25px auto;
  align-content: start;
  min-width: 0;
}

.po-field-tax {
  grid-column: span 2;
}

.po-field-rate-action {
  display: flex;
  grid-column: span 3;
  align-items: end;
  gap: 8px;
  max-width: none;
}

.po-rate-caption {
  display: flex;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
  margin: 0 0 10px;
  color: #666;
  font-size: 0.92rem;
  line-height: 1.35;
  white-space: nowrap;
}

.field-caption {
  font-size: 0.9rem;
  font-weight: 700;
}

.po-field-rate-action button {
  width: auto;
  white-space: nowrap;
  min-height: 38px;
  padding: 8px 10px;
  border-radius: 8px;
}

.purchase-engineer-selections {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 4px;
}

.purchase-engineer-chip {
  display: inline-flex;
  max-width: 100%;
  align-items: center;
  gap: 4px;
  padding: 3px 4px 3px 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface-muted, #f4f1ec);
}

.purchase-engineer-chip > span {
  overflow-wrap: anywhere;
}

.purchase-engineer-remove {
  width: 24px;
  min-width: 24px;
  min-height: 24px;
  padding: 0;
  border: 0;
  background: transparent;
}

.purchase-engineer-suggestion {
  display: grid;
  grid-template-columns: 20px minmax(0, auto) minmax(0, 1fr);
  align-items: center;
}

.purchase-engineer-option-check {
  width: 20px;
  color: var(--accent);
  font-weight: 700;
}

.purchase-amount-comparison {
  flex: 1 1 100%;
  color: #b42318;
  font-size: 14px;
  line-height: 1.4;
}

.purchase-item-table {
  min-width: 1100px;
  table-layout: fixed;
}

.purchase-item-table .col-seq { width: 38px; }
.purchase-item-table .col-item { width: 24%; }
.purchase-item-table .col-unit { width: 68px; }
.purchase-item-table .col-qty { width: 76px; }
.purchase-item-table .col-currency { width: 72px; }
.purchase-item-table .col-price { width: 110px; }
.purchase-item-table .col-total { width: 110px; }
.purchase-item-table .col-date { width: 132px; }
.purchase-item-table .col-note { width: 18%; }
.purchase-item-table .col-action { width: 64px; }

.purchase-item-table input,
.purchase-item-table textarea {
  width: 100%;
  min-width: 0;
  min-height: 34px;
  padding: 6px 7px;
  font-size: 14px;
}

.purchase-item-table .po-item-name {
  display: block;
  resize: none;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  line-height: 1.4;
}

.purchase-item-table .small {
  padding: 6px 8px;
}

.purchase-item-scan-dialog-shell {
  width: min(760px, calc(100vw - 32px));
}

.purchase-item-scan-dialog-shell > section {
  display: grid;
  gap: 8px;
}

.purchase-item-scan-dialog-shell > section h4 {
  margin: 0;
}

.purchase-item-scan-dialog-shell input[type="file"] {
  width: 100%;
}

.term-list {
  gap: 2px;
}

.purchase-term-row {
  display: grid;
  grid-template-columns: 34px 24px minmax(0, 1fr) 38px 60px;
  gap: 5px;
  align-items: center;
  margin: 0;
  padding: 3px 4px;
  border-bottom: 1px solid var(--line);
  transition: background-color 120ms ease, border-color 120ms ease, box-shadow 120ms ease;
}

.purchase-term-number {
  color: var(--muted);
  font-weight: 700;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.purchase-term-row .po-term-checked {
  justify-self: center;
  margin: 0;
}

.purchase-term-row .po-term-text {
  width: 100%;
  min-height: 34px;
  padding: 6px 8px;
  resize: vertical;
}

.purchase-term-row .remove-po-term-btn,
.purchase-term-row .drag-po-term-btn {
  width: 100%;
  padding: 6px 8px;
}

.purchase-term-row.dragging {
  position: relative;
  z-index: 1;
  opacity: 1;
  background: #d9eee8;
  border: 1px solid var(--brand);
  box-shadow: 0 3px 10px rgba(22, 69, 58, 0.18);
}

.purchase-default-terms-dialog-shell {
  max-height: min(84vh, 820px);
}

.purchase-default-term-list {
  display: grid;
  gap: 2px;
  max-height: min(58vh, 590px);
  overflow: auto;
  padding-right: 4px;
}

.purchase-default-term-row {
  display: grid;
  grid-template-columns: 34px 104px minmax(280px, 1fr) 104px;
  gap: 6px;
  align-items: center;
  padding: 3px 4px;
  border-bottom: 1px solid var(--line);
  transition: background-color 120ms ease, border-color 120ms ease, box-shadow 120ms ease;
}

.purchase-default-term-row.dragging {
  position: relative;
  z-index: 1;
  background: #d9eee8;
  border: 1px solid var(--brand);
  box-shadow: 0 3px 10px rgba(22, 69, 58, 0.18);
}

.purchase-default-term-number {
  color: var(--muted);
  font-weight: 700;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.purchase-default-term-check {
  min-height: 34px;
  margin: 0;
  white-space: nowrap;
}

.purchase-default-term-text {
  width: 100%;
  min-height: var(--textarea-single-row-height);
  padding: 6px 8px;
  resize: vertical;
}

.purchase-default-term-actions {
  display: grid;
  grid-template-columns: 38px 60px;
  gap: 4px;
}

.purchase-default-term-actions button {
  width: 100%;
  min-height: 34px;
  padding: 4px 6px;
}

.drag-purchase-default-term-btn {
  cursor: grab;
}

.drag-purchase-default-term-btn:active {
  cursor: grabbing;
}

.drag-po-term-btn {
  cursor: grab;
}

.drag-po-term-btn:active {
  cursor: grabbing;
}

.purchase-preview-panel {
  margin-top: 14px;
  border-top: 1px solid var(--line);
  padding-top: 10px;
}

.purchase-preview-panel summary {
  cursor: pointer;
  font-weight: 700;
  font-size: 0.95rem;
}

.purchase-preview-panel .preview {
  min-height: 160px;
  max-height: 320px;
  margin-bottom: 0;
}

.purchase-order-record-row {
  cursor: pointer;
}

.purchase-order-record-row:focus-visible {
  outline: 3px solid #1f7a68;
  outline-offset: -3px;
}

.purchase-detail-body {
  display: grid;
  gap: 14px;
}

.purchase-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 14px;
}

.purchase-detail-row {
  display: grid;
  grid-template-columns: minmax(120px, 0.36fr) minmax(0, 1fr);
  gap: 8px;
  min-width: 0;
  padding: 8px 0;
  border-bottom: 1px solid rgba(40, 34, 28, 0.12);
}

.purchase-detail-row span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.purchase-detail-terms {
  margin: 0;
  padding-left: 24px;
}

.acceptance-workspace {
  grid-template-columns: minmax(360px, 0.85fr) minmax(520px, 1.4fr);
}

.acceptance-meta-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px 12px;
  margin: 8px 0 10px;
  align-items: end;
}

.acceptance-payment-ready {
  min-height: 38px;
  gap: 8px;
  padding: 7px 9px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.62);
  line-height: 1.3;
}

.acceptance-checklist {
  gap: 0;
  padding: 4px 10px;
  border-radius: 8px;
}

.acceptance-checklist .checkline {
  gap: 8px;
  min-height: 34px;
  margin: 0;
  padding: 6px 2px;
  border-bottom: 1px solid rgba(31, 36, 33, 0.08);
  font-size: 0.88rem;
  line-height: 1.35;
}

.acceptance-checklist .checkline:last-child {
  border-bottom: 0;
}

.acceptance-period-bar {
  justify-content: space-between;
  margin: 8px 0 0;
}

.acceptance-item-table-wrap {
  overflow-x: auto;
  margin: 6px 0 10px;
  border: 1px solid rgba(31, 36, 33, 0.1);
  border-radius: 8px;
}

.acceptance-item-table {
  min-width: 1050px;
  margin: 0;
  font-size: 14px;
}

.acceptance-item-table th,
.acceptance-item-table td {
  padding: 5px 6px;
  white-space: nowrap;
}

.acceptance-item-table td:nth-child(2) {
  min-width: 180px;
  white-space: normal;
}

.acceptance-item-table input {
  width: 88px;
  min-height: 30px;
  padding: 4px 6px;
}

.document-summary {
  display: grid;
  gap: 3px;
  margin: 4px 0 8px;
  font-size: 14px;
}

.acceptance-review-table-wrap {
  margin: 6px 0 8px;
  border: 1px solid rgba(31, 36, 33, 0.1);
  border-radius: 8px;
}

.acceptance-review-table {
  margin: 0;
  font-size: 14px;
}

.acceptance-review-table th,
.acceptance-review-table td {
  padding: 5px 6px;
  vertical-align: top;
}

.acceptance-review-table select {
  min-width: 120px;
  min-height: 32px;
  padding: 4px 6px;
}

.acceptance-review-table textarea {
  width: 100%;
  min-width: 220px;
  min-height: 48px;
  padding: 5px 7px;
  resize: vertical;
}

.acceptance-review-source {
  color: #6b6b6b;
  white-space: nowrap;
}

.acceptance-review-actions {
  min-width: 210px;
}

.acceptance-review-actions button {
  margin: 0 4px 4px 0;
}

.acceptance-custom-opinion {
  display: grid;
  grid-template-columns: 140px minmax(180px, 1fr) auto;
  gap: 8px;
  margin: 6px 0;
}

.acceptance-custom-opinion select,
.acceptance-custom-opinion input {
  min-height: 34px;
  padding: 5px 7px;
}

.custom-review-opinion-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 8px;
}

.custom-review-chip {
  padding: 3px 7px;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.62);
  font-size: 14px;
}

.home-dashboard {
  display: grid;
  gap: 14px;
}

.home-summary-card .section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}

.home-summary-card .section-head > div {
  min-width: 0;
}

.home-summary-card #purchaseApprovalInboxBtn {
  display: block;
  margin-top: 10px;
  max-width: 100%;
  white-space: normal;
  text-align: center;
}

.home-summary-card #refreshHomeDashboardBtn {
  margin-left: auto;
}

.app-layout .home-summary-card h2,
.home-summary-card h2 {
  font-size: 16px;
  line-height: 1.2;
}

.home-summary-card .eyebrow,
.home-summary-card #refreshHomeDashboardBtn {
  font-size: 14px;
}

.home-metric-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding-bottom: 4px;
  gap: 8px;
}

.home-metric {
  --metric-color: #ed7615;
  width: 100%;
  min-width: 0;
  min-height: 72px;
  padding: 10px 12px;
  border: 1px solid #d5dfeb;
  border-left: 6px solid var(--metric-color);
  border-radius: 8px;
  background: #fff;
  color: #174764;
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  align-items: center;
  gap: 10px;
  text-align: left;
  box-shadow: 0 1px 2px rgba(24, 48, 64, 0.08);
}

.home-metric:nth-child(2) { --metric-color: #d14545; }
.home-metric:nth-child(3) { --metric-color: #0ca4d8; }
.home-metric:nth-child(4) { --metric-color: #159c59; }
.home-metric:nth-child(5) { --metric-color: #b08226; }
.home-metric:nth-child(6) { --metric-color: #6873a3; }

.home-metric-copy {
  display: grid;
  gap: 6px;
  min-width: 0;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.home-metric-copy small {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.35;
  color: #526575;
}

.home-metric:hover { background: #f4f8fb; }
.home-metric:focus-visible { outline: 2px solid #227e9e; outline-offset: 2px; }

.home-metric strong {
  color: #8c341d;
  font-size: 22px;
  line-height: 1;
}

.home-project-table th,
.home-project-table td {
  text-align: center;
  overflow-wrap: anywhere;
}

.home-project-todo-list {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
}

.home-project-table {
  width: 100%;
  min-width: 900px;
  table-layout: fixed;
}

.home-project-table th:first-child,
.home-project-table td:first-child {
  text-align: left;
}

.home-count-link {
  border: 0;
  background: transparent;
  color: var(--accent);
  cursor: pointer;
  font: inherit;
  font-weight: 700;
  padding: 0.15rem 0.35rem;
}

.home-count-link:hover,
.home-count-link:focus-visible {
  text-decoration: underline;
}


@media (max-width: 1180px) {
  .app-layout {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .sidebar {
    position: sticky;
    width: var(--sidebar-width);
    height: 100vh;
  }

  .sidebar.collapsed h2,
  .sidebar.collapsed h3,
  .sidebar.collapsed p,
  .sidebar.collapsed .row,
  .sidebar.collapsed .module-list,
  .sidebar.collapsed .sidebar-note,
  .sidebar.collapsed .notice {
    opacity: 0;
    pointer-events: none;
  }

  .po-info-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .po-field-project {
    grid-column: span 4;
  }

  .po-field-address,
  .po-field-engineer,
  .po-field-owner,
  .po-field-owner-email {
    grid-column: span 3;
  }

  .po-field-demand-date,
  .po-field-engineer-mobile {
    grid-column: span 3;
  }

  .po-field-demand-date {
    min-width: 0;
    max-width: none;
    grid-column: span 2;
  }

  .po-field-engineer-supplement {
    grid-column: span 3;
  }

  .po-field-code,
  .po-field-tax {
    grid-column: span 2;
  }

  .acceptance-workspace {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 960px) {
  .hero,
  .grid.two,
  .grid.four {
    grid-template-columns: 1fr;
  }

  .local-model-fields,
  .provider-model-pricing-row {
    grid-template-columns: 1fr;
  }

  .dialog-grid {
    grid-template-columns: 1fr;
  }

  .main-shell {
    padding: 16px;
  }

  .dialog-shell {
    padding: 16px;
  }

  .hero-card,
  .card {
    padding: 16px;
  }

  .tabs,
  .inner-tabs {
    gap: 8px;
  }

  .preview {
    min-height: 240px;
  }

  .vendor-card-head {
    flex-direction: column;
    align-items: stretch;
  }

  .duplicate-head {
    flex-direction: column;
    align-items: stretch;
  }

  .duplicate-edit-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .duplicate-fields > div {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .duplicate-edit-row[data-wide="true"] {
    grid-column: 1 / -1;
  }

  .vendor-form-row-3,
  .vendor-form-row-top,
  .vendor-form-row-2,
  .vendor-form-row-contacts,
  .vendor-form-row-payment,
  .vendor-form-row-meta,
  .vendor-detail-row-brand,
  .vendor-detail-row-contact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .vendor-form-layout .field-wide,
  .vendor-form-layout .field-full {
    grid-column: 1 / -1;
  }

  .po-field-contact,
  .po-field-engineer,
  .po-field-owner,
  .po-field-owner-email,
  .po-field-email,
  .po-field-billing {
    grid-column: span 3;
  }
}

@media (max-width: 640px) {
  .acceptance-custom-opinion {
    grid-template-columns: 1fr;
  }

  :root {
    --sidebar-width: 184px;
    --sidebar-collapsed: 56px;
  }

  .main-shell {
    padding: 12px;
  }

  .login-shell {
    padding: 16px;
  }

  .login-brand {
    min-height: auto;
    display: grid;
    gap: 8px;
  }

  .login-brand-logo {
    position: static;
    transform: none;
    width: 92px;
    height: 50px;
  }

  .login-brand h1 {
    font-size: 24px;
  }

  .sidebar {
    padding: 14px 12px;
  }

  .sidebar-section {
    padding: 14px;
  }

  .hero h1 {
    font-size: clamp(1.7rem, 8vw, 2.4rem);
  }

  .subtitle,
  .sidebar-copy,
  .record-meta,
  .notice,
  .hint {
    line-height: 1.6;
  }

  .tabs,
  .inner-tabs,
  .row,
  .vendor-toolbar,
  .vendor-toolbar.secondary {
    gap: 8px;
  }

  .tab,
  .inner-tab {
    flex: 0 1 auto;
    justify-content: center;
    text-align: center;
  }

  .row > button,
  .vendor-toolbar > button {
    flex: 0 1 auto;
    width: auto;
    max-width: 100%;
  }

  .vendor-toolbar > input,
  .vendor-toolbar > select,
  .vendor-toolbar.secondary > select {
    flex: 1 1 100%;
    width: 100%;
  }

  .row > .small,
  .row > .ghost.small {
    width: auto;
  }

  .contact-card,
  .vendor-card {
    padding: 12px;
  }

  .contact-card {
    grid-template-columns: 1fr;
  }

  .contact-card input[type="checkbox"] {
    justify-self: start;
  }

  .record-form {
    gap: 8px;
  }

  .preview {
    min-height: 180px;
    font-size: 14px;
    padding: 12px;
  }

  .app-dialog,
  .dialog-shell.wide {
    width: calc(100vw - 8px);
    max-width: calc(100vw - 8px);
  }

  .vendor-duplicates {
    max-height: calc(100vh - 120px);
    padding-right: 2px;
  }

  .duplicate-group,
  .duplicate-item,
  .duplicate-merged-preview {
    padding: 10px;
  }

  .dialog-head {
    align-items: stretch;
    flex-direction: column;
  }

  .duplicate-edit-grid {
    grid-template-columns: 1fr;
  }

  .vendor-form-row-3,
  .vendor-form-row-top,
  .vendor-form-row-2,
  .vendor-form-row-contacts,
  .vendor-form-row-payment,
  .vendor-form-row-meta,
  .vendor-detail-row-brand,
  .vendor-detail-row-contact {
    grid-template-columns: 1fr;
  }

  .vendor-form-layout .field-short,
  .vendor-form-layout .field-date {
    max-width: none;
  }

  .app-layout .main-shell {
    padding: 10px;
  }

  .po-info-grid,
  .acceptance-meta-grid {
    grid-template-columns: 1fr;
  }

  .po-info-grid > *,
  .acceptance-meta-grid > * {
    grid-column: 1 / -1;
  }

  .po-contact-row {
    grid-template-columns: minmax(220px, 1.5fr) repeat(4, minmax(150px, 1fr));
  }

  .purchase-detail-grid,
  .purchase-detail-row {
    grid-template-columns: 1fr;
  }

  .purchase-term-row {
    grid-template-columns: 30px 22px minmax(0, 1fr) 36px 58px;
  }

  .purchase-default-term-row {
    grid-template-columns: 30px minmax(0, 1fr) 100px;
  }

  .purchase-default-term-check {
    grid-column: 2;
  }

  .purchase-default-term-text {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .purchase-default-term-actions {
    grid-column: 3;
    grid-row: 1;
    grid-template-columns: 36px 60px;
  }

  .negotiation-inline-grid {
    grid-template-columns: 1fr;
  }

  .negotiation-round-editor-grid,
  .negotiation-round-row {
    grid-template-columns: 1fr;
  }

  .negotiation-inline-note {
    grid-column: 1;
  }
}

@media (min-width: 1321px) {
  .duplicate-edit-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.purchase-preview-image {
  display: block;
  width: 100%;
  height: auto;
  background: #fff;
  border: 1px solid #d8dde3;
}

.provider-list {
  display: grid;
  gap: 14px;
  margin-top: 12px;
}

.model-routing-settings {
  min-width: 0;
  margin: 14px 0;
  padding: 14px;
  border: 1px solid var(--line, #d8d0c5);
  border-radius: 14px;
}

.model-routing-settings legend {
  padding: 0 8px;
  font-weight: 700;
}

.model-routing-settings:disabled {
  opacity: 0.58;
  background: rgba(31, 36, 33, 0.035);
}

.model-routing-settings:disabled select {
  cursor: not-allowed;
}

.model-settings-subtitle {
  margin: 18px 0 8px;
}

.model-test-status {
  align-self: center;
  font-weight: 800;
}

.storage-test-status {
  align-self: center;
  font-weight: 800;
}

.model-test-status.status-testing,
.model-test-status.status-error,
.storage-test-status.status-testing,
.storage-test-status.status-error {
  color: #b42318;
}

.model-test-status.status-testing,
.storage-test-status.status-testing {
  animation: model-test-pulse 900ms ease-in-out infinite alternate;
}

.model-test-status.status-warning {
  color: #9a5b00;
}

.model-test-status.status-success,
.storage-test-status.status-success {
  color: #16713b;
}

@keyframes model-test-pulse {
  from { opacity: 0.58; }
  to { opacity: 1; }
}

.provider-card {
  border: 1px solid var(--line, #d8d0c5);
  border-radius: 18px;
  padding: 16px;
  background: rgba(255, 255, 255, 0.55);
}

.provider-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.provider-summary-list {
  display: grid;
  gap: 8px;
}

button.provider-summary-row {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 11px 14px;
  border: 1px solid var(--line, #d8d0c5);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.72);
  color: var(--ink);
  text-align: left;
}

button.provider-summary-row:hover,
button.provider-summary-row:focus-visible {
  transform: none;
  background: rgba(15, 118, 110, 0.08);
}

.provider-summary-row span:first-child {
  font-weight: 800;
}

.provider-summary-row span:last-child {
  color: #555;
  font-size: 14px;
}

.provider-summary-row .provider-connection-success,
.provider-connection-success {
  margin-left: 4px;
  color: #16713b;
  font-size: 14px;
  font-weight: 700;
}

.provider-editor {
  margin-top: 12px;
}

.provider-editor-head-actions {
  margin-top: 0;
}

.local-model-fields {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(12rem, 0.8fr);
  gap: 12px;
  align-items: end;
}

.model-order-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

@media (max-width: 760px) {
  .scan-preview-window,
  .scan-preview-window.collapsed {
    top: auto !important;
    right: 8px !important;
    bottom: 8px !important;
    left: 8px !important;
    width: auto;
    max-height: 65vh;
  }

  .inquiry-project-row {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .inquiry-equipment-contact-field {
    grid-column: auto;
  }

  .model-order-grid { grid-template-columns: 1fr; }
}

.provider-model-pricing-row {
  display: grid;
  grid-template-columns: minmax(16rem, 1fr) 8ch 8ch 7ch;
  gap: 10px;
  align-items: end;
}

.provider-model-pricing-row label {
  min-width: 0;
  font-size: 14px;
}

.provider-model-field input {
  width: 100%;
}

.provider-compact-field input {
  width: 100%;
  min-width: 0;
  padding-inline: 6px;
  text-align: center;
}

.provider-compact-field small {
  display: block;
  white-space: nowrap;
  color: var(--muted, #6d675f);
  font-size: 14px;
  font-weight: 400;
}

.provider-compact-field input[type="number"] {
  appearance: textfield;
  -moz-appearance: textfield;
}

.provider-compact-field input[type="number"]::-webkit-inner-spin-button,
.provider-compact-field input[type="number"]::-webkit-outer-spin-button {
  margin: 0;
  appearance: none;
}

.rule-template-settings {
  margin: 18px 0;
  border: 1px solid var(--line, #d8d0c5);
  border-radius: 16px;
  padding: 14px;
}

.rule-template-settings summary {
  cursor: pointer;
  font-weight: 700;
}

.rule-template-section {
  margin-top: 12px;
  border-top: 1px solid var(--line, #d8d0c5);
  padding-top: 12px;
}

.rule-template-section > summary {
  cursor: pointer;
  font-weight: 700;
}

.rule-template-section-content {
  display: grid;
  gap: 8px;
  padding-top: 12px;
}

.collapsible-settings-content {
  padding-top: 14px;
}

.rule-template-settings textarea {
  min-height: 220px;
  white-space: pre-wrap;
}

.ai-audit-card,
.ai-audit-launch-card {
  margin-top: 18px;
}

.sync-settings-card {
  margin-top: 18px;
}

.sync-settings-card h2 {
  margin-top: 0;
}

.sync-settings-grid {
  display: grid;
  grid-template-columns: minmax(0, 360px);
  gap: 12px;
  align-items: end;
}

.sync-settings-grid input {
  width: 100%;
}

.ai-audit-launch-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.ai-audit-launch-card h2,
.ai-audit-dialog h2 {
  margin: 0;
}

.ai-audit-dialog {
  width: min(1600px, calc(100vw - 12px));
}

.ai-audit-dialog-shell {
  height: calc(100vh - 12px);
  resize: none !important;
  grid-template-rows: auto minmax(0, 1fr);
}

.ai-audit-content {
  min-height: 0;
  overflow-y: auto;
  padding-right: 4px;
}

.ai-audit-toolbar {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: 8px 0;
  background: #fffaf3;
  align-items: center;
}

.ai-audit-search-grid {
  display: grid;
  grid-template-columns: minmax(18rem, 2fr) repeat(5, minmax(9rem, 1fr));
  gap: 10px;
  margin: 12px 0;
  align-items: end;
}

button.danger {
  background: #9f2f2f;
  border-color: #9f2f2f;
  color: #fff;
}

button.danger:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.cloud-folder-dialog-shell {
  max-height: min(82vh, 760px);
  display: flex;
  flex-direction: column;
}

.cloud-folder-rows {
  min-height: 180px;
  overflow-y: auto;
  display: grid;
  align-content: start;
  gap: 8px;
  padding: 6px 2px;
}

button.cloud-folder-row {
  width: 100%;
  display: flex;
  justify-content: flex-start;
  gap: 10px;
  text-align: left;
}

.cloud-folder-actions {
  margin-top: 12px;
  justify-content: space-between;
}

.ai-audit-head {
  align-items: flex-start;
  justify-content: space-between;
}

.ai-audit-head h2 {
  margin-top: 0;
}

.ai-audit-table-wrap {
  margin-top: 12px;
  overflow: auto;
}

.ai-audit-table {
  min-width: 1120px;
  width: 100%;
  border-collapse: collapse;
}

.ai-audit-table th,
.ai-audit-table td {
  padding: 10px;
  border-bottom: 1px solid var(--line, #d8d0c5);
  text-align: left;
  vertical-align: top;
}

.ai-audit-table th {
  white-space: nowrap;
}

.ai-audit-table .audit-number {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.attachment-choice-box,
.quote-file-box {
  margin: 14px 0;
  padding: 12px 14px;
  border: 1px solid var(--line, #d8d0c4);
  border-radius: 14px;
}

.attachment-choice-list {
  display: grid;
  gap: 8px;
}

.attachment-choice {
  justify-content: flex-start;
}

.template-variable-help {
  margin: 0.25rem 0 0.9rem;
  color: var(--muted);
  line-height: 1.65;
}

.template-variable-help code {
  color: var(--ink);
  font-weight: 700;
}

.template-upload-box {
  margin-top: 1rem;
}

.vendor-card-preview-content {
  min-height: 260px;
  display: grid;
  place-items: center;
}

.vendor-card-preview-image {
  display: block;
  max-width: 100%;
  max-height: 72vh;
  object-fit: contain;
}

.vendor-card-preview-frame {
  width: 100%;
  height: 72vh;
  border: 0;
}

.inquiry-recipient-editor {
  display: grid;
  gap: 10px;
  margin-bottom: 14px;
  min-width: 0;
  max-width: 100%;
}

#inquiryRecipientsTable,
.inquiry-recipient-table-scroll {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.inquiry-recipient-table-scroll {
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-gutter: stable;
}

.inquiry-recipient-table {
  width: 100%;
  min-width: 720px;
  table-layout: fixed;
}

.inquiry-recipient-table th:nth-child(1) { width: 22%; }
.inquiry-recipient-table th:nth-child(2) { width: calc(10ic + 2.5rem); }
.inquiry-recipient-table th:nth-child(3),
.inquiry-recipient-table th:nth-child(4) { width: calc(15ch + 2.5rem); }
.inquiry-recipient-table th:nth-child(5) { width: auto; }
.inquiry-recipient-table th:nth-child(6) { width: 5rem; }

.inquiry-recipient-table th,
.inquiry-recipient-table td {
  min-width: 0;
}

.inquiry-recipient-table input {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.inquiry-recipient-table .remove-inquiry-recipient-btn {
  width: 100%;
  min-width: 0;
  padding-inline: 8px;
}

.vendor-directory-layout {
  display: grid;
  gap: 14px;
}

.vendor-directory-results-card {
  min-width: 0;
}

#vendorDirectoryResults .record-table td {
  white-space: pre-line;
}

#vendorDirectoryResults .vendor-directory-record-row:not(.is-expanded) .negotiation-compact-cell {
  display: -webkit-box;
  max-height: 56px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

#vendorDirectoryResults .vendor-directory-record-row:not(.is-expanded) .link-btn {
  display: inline;
  white-space: normal;
}

#vendorDirectoryResults .vendor-directory-record-row.is-expanded .negotiation-compact-cell {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

#vendorDirectoryResults .link-btn {
  padding: 0;
  min-height: 0;
  border: 0;
  color: var(--accent);
  background: transparent;
  text-decoration: underline;
  text-align: left;
}

.vendor-detail-edit-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(120px, 1fr)) auto;
  gap: 10px;
  align-items: end;
  margin-bottom: 10px;
}

.vendor-detail-edit-row label {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.inquiry-record-toolbar,
.inquiry-record-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 10px;
}

.inquiry-record-toolbar.inquiry-quoted-toolbar {
  display: grid;
  align-items: stretch;
}

.inquiry-record-toolbar.negotiation-record-toolbar {
  display: grid;
  align-items: stretch;
}

.inquiry-quoted-filter-row,
.inquiry-quoted-action-row,
.negotiation-record-filter-row,
.negotiation-record-action-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.inquiry-quoted-filter-row {
  flex-wrap: wrap;
}

.negotiation-record-filter-row {
  flex-wrap: wrap;
}

.inquiry-quoted-action-row,
.negotiation-record-action-row {
  flex-wrap: nowrap;
  overflow-x: auto;
  padding-bottom: 2px;
}

.inquiry-quoted-action-row > button,
.negotiation-record-action-row > button {
  flex: 0 0 auto;
  width: max-content;
  white-space: nowrap;
}

.inquiry-record-search {
  width: min(360px, 100%);
  max-width: 360px;
}

.record-filter-label {
  display: grid;
  grid-template-columns: auto minmax(150px, 190px);
  align-items: center;
  gap: 7px;
  margin: 0;
  white-space: nowrap;
}

.record-filter-label input,
.record-filter-label select {
  min-height: 42px;
}

.multi-select-filter {
  position: relative;
  min-width: min(360px, 100%);
}

.multi-select-filter > summary {
  display: flex;
  align-items: center;
  min-height: 42px;
  padding: 8px 38px 8px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface, #fff);
  cursor: pointer;
  list-style: none;
  white-space: normal;
}

.multi-select-filter > summary::-webkit-details-marker {
  display: none;
}

.multi-select-filter > summary::after {
  content: "▾";
  position: absolute;
  right: 13px;
  top: 11px;
}

.multi-select-filter[open] > summary::after {
  content: "▴";
}

.multi-select-filter-popover {
  position: absolute;
  z-index: 30;
  top: calc(100% + 4px);
  left: 0;
  width: min(360px, calc(100vw - 48px));
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface, #fff);
  box-shadow: 0 10px 24px rgb(0 0 0 / 14%);
}

.multi-select-filter-popover > input {
  width: 100%;
  min-height: 40px;
  margin-bottom: 8px;
}

.multi-select-filter-options {
  display: grid;
  gap: 4px;
}

.negotiation-purchase-status-option {
  min-height: 36px;
  margin: 0;
  padding: 5px 4px;
}

.negotiation-purchase-status-empty {
  margin: 4px;
}

.quote-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(140px, 1fr));
  gap: 10px;
}

.quote-summary-grid label {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.inquiry-overdue,
.inquiry-overdue strong {
  color: #b42318;
  font-weight: 700;
}

@media (max-width: 1200px) {
  .ai-audit-search-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .app-layout {
    display: block;
    min-width: 0;
  }

  .app-layout .sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 70;
    width: min(84vw, 280px);
    height: 100dvh;
  }

  .app-layout .sidebar.collapsed {
    width: 0;
  }

  .app-layout .main-shell {
    width: 100%;
    min-width: 0;
    margin-left: 0;
    padding: 10px;
  }

  .hero {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 10px;
  }

  .hero-card {
    min-width: 0;
  }

  .tabs {
    margin: 14px 0 12px;
  }

  .tab {
    flex: 0 1 auto;
    padding-inline: 10px;
  }

  .inquiry-work-toolbar {
    display: flex;
    flex-wrap: wrap;
  }

  .inquiry-work-toolbar button {
    width: auto;
    flex: 0 1 auto;
    padding-inline: 8px;
  }

  .inquiry-paired-section > summary {
    font-size: 1.05rem;
  }

  .app-dialog,
  .app-dialog.inquiry-work-dialog {
    width: calc(100vw - 4px);
    max-width: calc(100vw - 4px);
    height: calc(100dvh - 4px);
    max-height: calc(100dvh - 4px);
    border-radius: 12px;
  }

  .dialog-shell,
  .dialog-shell.wide,
  .dialog-shell.wide.maximized,
  .inquiry-work-dialog-shell {
    width: 100%;
    min-width: 0;
    min-height: 0;
    height: 100%;
    max-height: 100%;
    padding: 12px;
    border-radius: 12px;
  }

  .inquiry-work-dialog-shell > .dialog-head {
    top: -12px;
    margin: -12px -12px 0;
    padding: 10px 12px;
  }

  .dialog-head {
    align-items: flex-start;
    flex-direction: row;
  }

  .dialog-head h2,
  .dialog-head h3 {
    font-size: 1.05rem;
  }

  .dialog-head button {
    min-height: 38px;
    padding: 7px 11px;
  }

  .record-list,
  .table-scroll,
  .ai-audit-table-wrap,
  .vendor-table-wrap {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
  }

  .record-table {
    min-width: 720px;
  }

  .quote-summary-grid {
    grid-template-columns: 1fr;
  }

  .vendor-detail-edit-row {
    grid-template-columns: 1fr;
  }

  .inquiry-record-search {
    max-width: 100%;
  }

  .inquiry-record-toolbar > .inquiry-record-search,
  .record-filter-label {
    width: 100%;
    max-width: 100%;
  }

  .inquiry-quoted-filter-row > .inquiry-record-search,
  .inquiry-quoted-filter-row > .record-filter-label,
  .negotiation-record-filter-row > .inquiry-record-search,
  .negotiation-record-filter-row > .record-filter-label,
  .negotiation-record-filter-row > .multi-select-filter {
    width: 100%;
    max-width: 100%;
  }

  .record-filter-label {
    grid-template-columns: 1fr;
    white-space: normal;
  }

  .model-order-grid,
  .ai-audit-search-grid,
  .provider-model-pricing-row,
  .local-model-fields,
  .dialog-grid,
  .grid.two,
  .grid.four {
    grid-template-columns: 1fr;
  }

  .provider-model-pricing-row input,
  .provider-model-pricing-row select {
    width: 100%;
  }

  .ai-audit-dialog-shell {
    grid-template-rows: auto minmax(0, 1fr);
  }

  .scan-preview-window,
  .scan-preview-window.collapsed {
    max-height: min(65dvh, 560px);
  }
}
.panel.permission-hidden {
  display: none !important;
}

.panel.permission-view-only {
  border-color: #d8d2c9;
}

.panel.permission-view-only button:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

.permission-empty-state {
  margin-bottom: 18px;
  border-color: #d8b36a;
  background: #fff8e8;
  color: #714b12;
  font-weight: 700;
}

/* Typography aligned with construction-report UI scale. */
.login-brand h1,
.hero h1 {
  font-size: var(--ui-title-size);
}

.login-company-name,
.eyebrow,
.dialog-head h2,
.dialog-head h3,
.dialog-header h2,
.dialog-header h3,
.scan-preview-window-head h2,
.inquiry-fixed-section-title,
.inquiry-paired-section > summary,
.app-layout .card h3,
.sidebar-section h3 {
  font-size: var(--ui-section-title-size);
}

.card h2,
.app-layout .card h2 {
  font-size: var(--ui-page-title-size);
}

.subtitle,
.sidebar-copy,
.hero-meta,
.notice,
.hint,
.ai-action-status,
.model-test-status,
.storage-test-status,
.small-link,
.field-caption,
.record-filter-label,
.provider-model-pricing-row label {
  font-size: var(--ui-label-size);
}

label,
.app-layout label,
.module-card strong,
.contact-meta,
.selected-chip,
.home-project-table th,
.home-project-table td,
.provider-summary-row span:last-child,
.provider-connection-success {
  font-size: var(--ui-label-size);
}

input,
textarea,
select,
.app-layout input,
.app-layout textarea,
.app-layout select,
.login-card input,
.login-card label,
.login-copy,
.dynamic-field-label,
.template-variable-help,
.field-help,
.provider-compact-field small,
.hero-description,
.module-card span,
.sidebar-note,
.purchase-helper-note,
.acceptance-custom-opinion,
.credential-expiry-status {
  font-size: var(--ui-control-size);
}

button,
.tab,
.inner-tab,
.login-card button,
.small,
.ghost.small,
.link-button,
.button-link,
.record-sort-button,
button.provider-summary-row,
button.cloud-folder-row {
  font-size: var(--ui-button-size);
}

.record-table,
.app-layout .record-table,
.record-table th,
.record-table td,
.contact-picker-table th,
.contact-picker-table td,
.resizable-record-table th,
.resizable-record-table td,
.ai-audit-table th,
.ai-audit-table td {
  font-size: var(--ui-table-size);
}

.purchase-item-table,
.purchase-item-table input,
.acceptance-item-table,
.acceptance-item-table input,
.acceptance-review-table,
.acceptance-review-table select,
.acceptance-review-table textarea {
  font-size: var(--ui-small-size);
}

textarea[data-auto-grow="true"] {
  min-height: var(--textarea-single-row-height);
  height: var(--textarea-single-row-height);
  overflow-y: hidden;
}

.home-metric strong {
  font-size: 22px;
}

@media (max-width: 640px) {
  .login-brand h1,
  .hero h1 {
    font-size: 24px;
  }

  .dialog-head h2,
  .dialog-head h3,
  .inquiry-paired-section > summary {
    font-size: var(--ui-section-title-size);
  }

  .preview {
    font-size: var(--ui-control-size);
  }
}
.outlook-workflow-status,
#outlookSettingsStatus {
  margin: 0;
  min-width: 0;
  overflow-wrap: anywhere;
}

#connectOutlookSettingsBtn:disabled,
#outlookInquiryBtn:disabled,
#outlookNegotiationBtn:disabled,
#createPurchaseOrderMailBtn:disabled {
  cursor: not-allowed;
  filter: grayscale(1);
  opacity: 0.5;
}
.credential-expiry-banner {
  margin: 0 24px 14px;
  padding: 12px 16px;
  border: 1px solid #c9913f;
  border-left-width: 5px;
  border-radius: 6px;
  background: #fff7e8;
  color: #5d3c0b;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.credential-expiry-banner.expiry-critical,
.credential-expiry-banner.expiry-expired {
  border-color: #b23a31;
  background: #fff0ee;
  color: #74231d;
}

.credential-expiry-actions,
.entra-guide-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.credential-expiry-actions {
  flex: 0 0 auto;
}

.entra-guide-row {
  justify-content: space-between;
  margin-bottom: 10px;
}

.button-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.credential-expiry-status.status-success {
  color: #24633f;
}

.credential-expiry-status.status-warning {
  color: #965315;
}

.credential-expiry-status.status-error {
  color: #9b2d25;
}

@media (max-width: 760px) {
  .credential-expiry-banner {
    margin: 0 12px 12px;
    align-items: flex-start;
    flex-direction: column;
  }
}
.purchase-order-detail-actions {
  justify-content: flex-end;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

/* Consolidated small-screen safety layer for every application module. */
@media (max-width: 960px) {
  .app-layout {
    display: block;
    min-width: 0;
  }

  .app-layout .sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 70;
    width: min(84vw, 280px);
    height: 100dvh;
  }

  .app-layout .sidebar.collapsed {
    width: 0;
    padding: 0;
    border-right: 0;
    box-shadow: none;
  }

  .app-layout .main-shell,
  main,
  .panel,
  .card,
  fieldset,
  .grid,
  .record-list,
  .vendor-directory-layout,
  .inquiry-paired-section,
  .purchase-order-editor,
  .acceptance-workspace {
    min-width: 0;
    max-width: 100%;
  }

  .app-layout .main-shell {
    width: 100%;
    margin-left: 0;
    padding: 14px;
  }

  .inquiry-project-row,
  .inquiry-project-row-3,
  .inquiry-project-create-grid,
  .inquiry-main-detail-row,
  .negotiation-source-owner-row,
  .negotiation-template-engineer-row,
  .negotiation-result-grid,
  .dialog-grid,
  .local-model-fields,
  .provider-model-pricing-row,
  .purchase-detail-grid,
  .acceptance-workspace {
    grid-template-columns: minmax(0, 1fr);
  }

  .negotiation-result-note,
  .negotiation-result-attachment,
  .negotiation-complete-check {
    grid-column: 1;
  }

  .provider-card-head,
  .ai-audit-launch-card,
  .vendor-detail-section .section-head,
  .purchase-pending-section > summary,
  .cloud-folder-actions,
  .storage-save-row,
  .entra-guide-row {
    align-items: stretch;
    flex-wrap: wrap;
  }

  .provider-card-head > *,
  .ai-audit-launch-card > *,
  .storage-save-row > * {
    min-width: 0;
    max-width: 100%;
  }

  .record-list,
  .table-scroll,
  .negotiation-round-view,
  .acceptance-item-table-wrap,
  .acceptance-review-table-wrap,
  .ai-audit-table-wrap,
  .vendor-table-wrap,
  .inquiry-recipient-table-scroll {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-gutter: stable;
  }

  .app-dialog,
  .app-dialog.inquiry-work-dialog {
    width: calc(100vw - 8px);
    max-width: calc(100vw - 8px);
    max-height: calc(100dvh - 8px);
  }

  .dialog-shell,
  .dialog-shell.wide,
  .dialog-shell.wide.maximized,
  .inquiry-work-dialog-shell {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    max-height: calc(100dvh - 8px);
    resize: none;
  }

  .dialog-head,
  .dialog-header {
    min-width: 0;
  }

  .dialog-head > :first-child,
  .dialog-header > :first-child,
  .dialog-head h2,
  .dialog-head h3,
  .dialog-header h2,
  .dialog-header h3 {
    min-width: 0;
    overflow-wrap: anywhere;
  }
}

@media (max-width: 640px) {
  .app-layout .main-shell {
    padding: 8px;
  }

  .hero {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "shortcuts user"
      "title title";
    align-items: start;
  }

  .header-shortcuts {
    grid-area: shortcuts;
  }

  .hero > :nth-child(2) {
    grid-area: title;
  }

  .hero > .hero-card {
    grid-area: user;
  }

  .tabs,
  .inner-tabs {
    width: 100%;
    max-width: 100%;
    flex-wrap: nowrap;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-gutter: stable;
    padding-bottom: 3px;
  }

  .tabs > *,
  .inner-tabs > * {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  .card,
  .hero-card,
  .dialog-shell,
  .dialog-shell.wide,
  .dialog-shell.wide.maximized,
  .inquiry-work-dialog-shell {
    padding: 10px;
  }

  .source-files-panel,
  .negotiation-meeting-record-panel,
  .negotiation-result-editor,
  .negotiation-readonly-section,
  .attachment-choice-box,
  .quote-file-box,
  .model-routing-settings,
  .provider-card,
  .rule-template-settings {
    padding: 10px;
  }

  .dialog-head {
    align-items: flex-start;
    flex-direction: row;
  }

  .dialog-head > form,
  .dialog-head > button,
  .dialog-header > form,
  .dialog-header > button {
    flex: 0 0 auto;
  }

  .inquiry-quoted-action-row,
  .negotiation-record-action-row,
  .purchase-record-toolbar,
  .ai-audit-toolbar {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    flex-wrap: nowrap;
    overscroll-behavior-inline: contain;
    padding-bottom: 3px;
  }

  .inquiry-quoted-action-row > *,
  .negotiation-record-action-row > *,
  .purchase-record-toolbar > *,
  .ai-audit-toolbar > * {
    flex: 0 0 auto;
  }

  .multi-select-filter,
  .multi-select-filter-popover {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  .credential-expiry-banner {
    margin-inline: 8px;
  }
}
.purchase-record-search-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; margin: 10px 0; }
.purchase-record-search-grid label { display: grid; grid-template-columns: 7em minmax(0, 1fr); align-items: center; gap: 6px; margin: 0; }
.purchase-record-search-grid input { margin: 0; }
#purchaseRecordSearchForm > .row > .checkline { display: inline-flex; align-items: center; gap: 6px; width: auto; white-space: nowrap; }
#purchaseRecordSearchForm input[type="radio"] { width: 18px; height: 18px; min-width: 18px; padding: 0; flex: 0 0 18px; }
.po-project-summary-row { grid-column: 1 / -1; display: grid; grid-template-columns: calc(10em + 52px) minmax(0, 1fr) minmax(0, 1fr) calc(10em + 52px); gap: 12px; }
.po-project-summary-row > .po-field { grid-column: auto; min-width: 0; }
@media (max-width: 1000px) { .po-project-summary-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .po-project-summary-row { grid-template-columns: 1fr; } .purchase-search-dates label { grid-template-columns: 1fr; } }
.purchase-search-dates { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.history-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.history-fields label { min-width: 0; }
@media (max-width: 700px) {
  .purchase-search-dates { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .history-fields { grid-template-columns: 1fr; }
}
#purchaseRecordSearchSection { border: 1px solid #d8d3ca; padding: 12px; border-radius: 6px; }
#purchaseRecordSearchForm label { min-width: 0; }
@media (max-width: 700px) { .purchase-record-search-grid { grid-template-columns: 1fr; } }
/* Keep import paths and review tables inside the dialog on narrow screens. */
.historical-dialog .history-body { min-width: 0; max-width: 100%; }
.historical-dialog .history-status,
.historical-dialog .history-summary { overflow-wrap: anywhere; }
.historical-dialog input[type="file"] { max-width: 100%; }
.historical-dialog .history-items { max-width: 100%; }

#loginProgressStatus.notice { color: #176b35; font-weight: 700; }
#purchasePendingReturnDialog > .inquiry-work-dialog-shell {
  display: flex; flex-direction: column; min-width: 0; min-height: 0; overflow: hidden;
}
#purchasePendingReturnDialog .dialog-header,
#purchasePendingReturnSearch { flex: 0 0 auto; min-width: 0; }
#purchasePendingReturnList { flex: 1 1 auto; min-width: 0; min-height: 0; overflow: hidden; }
#purchasePendingReturnList > .table-scroll { width: 100%; height: 100%; max-width: 100%; overflow: auto; scrollbar-gutter: stable; }
.historical-dialog > .inquiry-work-dialog-shell { display: flex; flex-direction: column; min-width: 0; min-height: 0; overflow: hidden; }
.historical-dialog .dialog-header, .historical-dialog .history-status { flex: 0 0 auto; }
.historical-dialog .history-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden; padding: 0 4px 12px; }
.historical-dialog .history-items { overflow: auto; }
.historical-dialog .history-items table { table-layout: fixed; width: 100%; min-width: 1100px; }
.historical-dialog .history-items th:first-child { width: 48px; }
.historical-dialog .history-items th:nth-child(2) { width: 24%; }
.historical-dialog .history-items th:last-child { width: 52px; }
.historical-dialog .history-items input, .historical-dialog .history-items textarea { width: 100%; min-width: 0; }
.historical-dialog .history-items textarea { min-height: 70px; resize: vertical; }
.historical-dialog .autocomplete-field > input { padding-right: 12px; }
.historical-dialog .history-section { margin: 16px 0; min-width: 0; }
.historical-dialog .history-actions { padding-top: 12px; }
.historical-dialog .history-engineers { display: grid; gap: 8px; }
.historical-dialog .history-engineers > .row { display: grid; grid-template-columns: minmax(0, 1fr) 36px; gap: 6px; margin: 0; }
.historical-dialog .history-engineers > .row input { min-width: 0; }
.historical-dialog .history-engineers > .row button { padding: 0; min-width: 0; min-height: 44px; height: 44px; }
.historical-dialog .po-info-grid { width: 100%; min-width: 0; max-width: 100%; }
@media (max-width: 900px) {
  .historical-dialog .po-info-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .historical-dialog .po-info-grid > .po-field { grid-column: auto; max-width: 100%; min-width: 0; }
  .historical-dialog .po-contact-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .historical-dialog .po-info-grid,
  .historical-dialog .po-contact-row,
  .historical-dialog .po-project-summary-row { grid-template-columns: minmax(0, 1fr); }
  .historical-dialog .po-info-grid > * { grid-column: 1 / -1; }
}
.purchase-compact-table .purchase-order-record-row td { padding: 4px 8px; vertical-align: top; }
.purchase-record-cell { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 28px; height: 28px; }
.purchase-record-cell .link-button { padding: 0; white-space: inherit; line-height: inherit; min-height: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; vertical-align: top; }
.purchase-record-number { display: flex; align-items: flex-start; gap: 4px; }
.purchase-record-number .purchase-row-toggle { flex: 0 0 24px; width: 24px; height: 28px; min-height: 0; padding: 0; border-radius: 4px; line-height: 26px; }
.purchase-order-record-row.is-expanded .purchase-record-cell { height: auto; white-space: pre-wrap; overflow-wrap: anywhere; }

.historical-dialog .history-term-type { max-width: 205px; }
.historical-dialog .history-terms { min-width: 0; }

/* Workflow actions: keep creation, mail generation, and record saving distinct. */
#openInquiryRecipientPickerBtn {
  width: fit-content;
  justify-self: start;
}
.mail-generation-box {
  grid-column: 1 / -1;
  min-width: 0;
  border: 1px solid var(--line-strong, #a9a39a);
  border-radius: 8px;
  padding: 14px 16px;
  margin: 12px 0;
  align-items: flex-end;
  background: var(--card, #fff);
}
.mail-generation-box > label {
  display: grid;
  gap: 4px;
  margin: 0;
}

.inquiry-rfq-repair-status {
  color: var(--muted);
  font-size: 14px;
  min-width: 0;
}
#negotiationReplyDueDateField {
  flex: 0 1 12rem;
}
.mail-generation-box > button {
  flex: 0 0 auto;
  margin-bottom: 0;
}
.negotiation-draft-actions .ai-action-status {
  flex: 0 0 100%;
  order: 10;
  margin-top: 4px;
}
#negotiationOwnerDisplay {
  display: inline;
}
#tab-negotiation .personnel-note {
  grid-column: 1 / -1;
  align-self: start;
  background: var(--card, #fff);
}
.negotiation-mail-save-actions {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  overflow-x: auto;
}
.negotiation-mail-save-actions > button {
  flex: 0 0 auto;
  white-space: nowrap;
}
.negotiation-mail-save-actions > .outlook-workflow-status {
  order: 1;
}
#negotiationPendingDialog > .inquiry-work-dialog-shell {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  overflow: hidden;
}
#negotiationPendingDialog .dialog-head {
  flex: 0 0 auto;
}
#negotiationPendingSection {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  align-content: start;
}

.mail-generation-heading {
  flex: 0 0 100%;
  margin: 0;
}

.purchase-attachment-divider {
  width: 100%;
  border: 0;
  border-top: 1px solid var(--line-strong, #a9a39a);
  margin: 18px 0 14px;
}

.payment-scan-reference {
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
}
#paymentScheduleScanReference {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  max-height: 180px;
  overflow-y: auto;
  margin-top: 6px;
}

#siteNoticeHost {
  position: fixed;
  inset: 18px 18px auto auto;
  width: min(520px, calc(100vw - 36px));
  max-height: calc(100vh - 36px);
  overflow: auto;
  margin: 0;
  padding: 4px;
  border: 0;
  background: transparent;
  z-index: 2147483647;
  pointer-events: none;
}
.site-notice {
  padding: 14px 18px;
  margin-bottom: 10px;
  border: 1px solid #a6c4bb;
  border-left: 5px solid #167568;
  border-radius: 10px;
  background: #fffdf8;
  color: #172b25;
  box-shadow: 0 4px 18px #0003;
  font-size: 14px;
  font-weight: 600;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  pointer-events: none;
}

/* Reserve the delete action width; long negotiation filenames wrap instead. */
.negotiation-source-file-links .attachment-choice-row:has(> .danger) {
  width: 100%;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr) auto;
}
.negotiation-source-file-links .attachment-choice-row > .danger {
  white-space: nowrap;
  width: auto;
  min-width: max-content;
  justify-self: end;
}
.negotiation-source-file-links .staged-negotiation-source-link {
  min-width: 0;
  overflow-wrap: anywhere;
  text-align: left;
}

.purchase-upload-search-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
}
.purchase-upload-search-row > label { margin: 0; white-space: nowrap; }
.purchase-upload-search-row > input { flex: 1 1 260px; min-width: 0; width: auto; }
.purchase-upload-search-row > select { flex: 0 1 220px; width: auto; min-width: 150px; }

#purchasePendingDialog { overflow: hidden; box-sizing: border-box; }
#purchasePendingDialog > .purchase-pending-dialog-shell {
  display: flex; flex-direction: column; min-width: 0; min-height: 0;
  height: 100%; max-height: 100%; overflow: hidden;
}
#purchasePendingDialog .dialog-header { flex: 0 0 auto; }
#purchasePendingDialog .purchase-pending-body {
  display: flex; flex-direction: column; flex: 1 1 0;
  min-width: 0; min-height: 0; overflow: auto;
}
#purchasePendingDialog .purchase-pending-body > :not(#purchaseNegotiationSources) { flex-shrink: 0; }
#purchaseNegotiationSources { flex: 1 1 0; min-width: 0; min-height: 100px; display: flex; overflow: hidden; }
#purchaseNegotiationSources > .table-scroll { flex: 1 1 0; min-width: 0; min-height: 0; max-width: 100%; overflow: auto; }
#purchaseNegotiationSources table { table-layout: fixed; }
#purchaseNegotiationSources td { padding: 6px 8px; vertical-align: top; }
#purchaseNegotiationSources td:first-child { white-space: nowrap; }
.purchase-pending-cell { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 24px; max-height: 24px; }
.purchase-pending-cell br { display: none; }
.is-expanded > td > .purchase-pending-cell { white-space: pre-wrap; overflow-wrap: anywhere; max-height: none; }
.is-expanded > td > .purchase-pending-cell br { display: initial; }
.purchase-pending-expand { margin-left: 6px; white-space: nowrap; }

.purchase-mail-generation-actions > legend {
  padding: 0 6px;
  font-weight: 700;
}
.purchase-mail-generation-controls { align-items: flex-end; }
.purchase-mail-generation-controls > label { display: grid; gap: 4px; margin: 0; }
.purchase-mail-generation-controls > button { flex: 0 0 auto; margin-bottom: 0; }

/* Shared compact workflow lists. */
button.purchase-row-toggle { background: #1f2723; color: #fff; border: 1px solid #1f2723; border-radius: 4px; width: 28px; min-width: 28px; height: 28px; min-height: 28px; padding: 0; line-height: 26px; cursor: pointer; }
button.purchase-row-toggle:hover { background: #343e38; }
button.purchase-row-toggle:focus-visible { outline: 2px solid #00877d; outline-offset: 2px; }
.record-toggle-cell { position: relative; padding-left: 44px !important; }
.record-toggle-cell > .purchase-row-toggle { position: absolute; left: 8px; top: 6px; margin: 0; }
.negotiation-compact-table { table-layout: fixed; }
.negotiation-compact-table td { padding: 6px 8px; vertical-align: top; }
.negotiation-compact-cell { line-height: 28px; max-height: calc(var(--record-lines, 2) * 28px); overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: var(--record-lines, 2); overflow-wrap: anywhere; }
.negotiation-compact-cell .link-button { white-space: normal; padding: 0; line-height: inherit; }
.is-expanded > td > .negotiation-compact-cell { display: block; max-height: none; white-space: pre-wrap; }
#negotiationArchiveSearchSection { border: 1px solid #d8d3ca; padding: 12px; border-radius: 6px; width: 100%; }
#negotiationArchiveSearchForm label { min-width: 0; }
.negotiation-archive-search-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px 12px; margin: 10px 0; }
.negotiation-archive-search-grid label { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 6px; margin: 0; }
.negotiation-archive-search-grid label:nth-child(4) { grid-column: 1 / span 1; }
.negotiation-archive-search-grid label:nth-child(5) { grid-column: 2 / span 1; }
@media (max-width: 980px) { .negotiation-archive-search-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .negotiation-archive-search-grid label:nth-child(4), .negotiation-archive-search-grid label:nth-child(5) { grid-column: auto; } }
@media (max-width: 650px) { .negotiation-archive-search-grid { grid-template-columns: 1fr; } .negotiation-archive-search-grid label { grid-template-columns: 7em minmax(0, 1fr); } }

/* Attachment viewers share the same viewport expansion for PDF and Office. */
.app-dialog.attachment-dialog { max-height: calc(100dvh - 24px); }
.attachment-dialog > .card { display: flex; flex-direction: column; max-height: calc(100dvh - 24px); box-sizing: border-box; margin: 0; }
.attachment-dialog .attachment-name { overflow-wrap: anywhere; margin: 4px 0 12px; }
.attachment-dialog .attachment-preview { min-height: 0; overflow: auto; flex: 1; }
.attachment-dialog .attachment-preview:empty { display: none; }
.attachment-dialog .attachment-preview iframe { display: block; width: 100%; height: 65dvh; border: 0; }
.app-dialog.attachment-dialog-expanded { position: fixed; inset: 0; margin: 0; width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; border-radius: 0; }
.attachment-dialog-expanded > .card { height: 100%; max-height: 100%; border-radius: 0; padding: 12px; }
.attachment-dialog-expanded h2 { margin: 0 0 4px; font-size: 18px; }
.attachment-dialog-expanded .attachment-preview { padding: 0; display: flex; }
.attachment-dialog-expanded .attachment-preview iframe { height: 100%; flex: 1; min-height: 0; }
.attachment-dialog-expanded .attachment-preview img { object-fit: contain; }

.attachment-window-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-shrink: 0; margin-bottom: 8px; }
.attachment-dialog .attachment-window-header h2 { margin: 0; }
.attachment-window-controls { display: flex; align-items: center; flex-shrink: 0; margin-left: auto; }
.attachment-dialog .attachment-window-button { display: inline-flex; align-items: center; justify-content: center; width: 44px; min-width: 44px; height: 36px; padding: 0; border: 0; border-radius: 0; background: transparent; color: #202522; box-shadow: none; }
.attachment-dialog .attachment-window-button:hover { background: #dedbd5; }
.attachment-dialog .attachment-window-close:hover { background: #c42b1c; color: white; }
.attachment-dialog .attachment-window-button:focus-visible { outline: 2px solid #2764b0; outline-offset: -2px; }
.attachment-window-button svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.3; }

/* Keep all attachment actions in the title bar to preserve preview height. */
.attachment-dialog .attachment-window-header { gap: 8px; margin-bottom: 4px; flex-wrap: wrap; }
.attachment-dialog .attachment-window-controls { gap: 6px; justify-content: flex-end; }
.attachment-window-controls > [data-action="preview"],
.attachment-window-controls > [data-action="download"] { padding: 6px 14px; min-height: 36px; white-space: nowrap; }
.attachment-dialog .attachment-name { margin: 0 0 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex-shrink: 0; }
.attachment-dialog [role="status"] { margin: 4px 0; }
.attachment-dialog [role="status"]:empty { display: none; }
.attachment-dialog .attachment-preview { margin-top: 0; }
@media (max-width: 480px) {
  .attachment-dialog .attachment-window-controls { gap: 2px; }
  .attachment-window-controls > [data-action="preview"],
  .attachment-window-controls > [data-action="download"] { padding: 6px 8px; }
  .attachment-dialog .attachment-window-button { width: 36px; min-width: 36px; }
}

#poSupplierQualification.supplier-action-required {
  display: block;
  color: #14532d;
  font-weight: 700;
}

#purchaseReturnUploadDialog { width: min(680px, calc(100vw - 24px)); }
#purchaseReturnUploadDialog > .card { margin: 0; padding: 16px; min-height: 0; max-height: calc(100dvh - 24px); overflow-y: auto; }
#purchaseReturnUploadDialog .dialog-header { gap: 8px; margin-bottom: 8px; }
#purchaseReturnUploadDialog h2 { margin: 0; }
#purchaseReturnUploadDialog .purchase-return-toolbar { display: flex; flex-wrap: wrap; gap: 8px; margin-left: auto; }
#purchaseReturnUploadDialog .purchase-return-toolbar button { padding: 8px 14px; white-space: nowrap; }
#purchaseOrderReturnUploadPanel { margin: 0; padding: 8px 10px; min-height: 0; max-height: none; overflow: visible; }
#purchaseReturnUploadMessage { margin: 4px 0; line-height: 1.35; }
#purchaseReturnUploadMessage:empty { display: none; }
#purchaseReturnArchiveStatus { margin-top: 4px; padding: 6px 8px; line-height: 1.35; white-space: normal; }
#purchaseReturnArchiveStatus .purchase-return-attachment-row { flex-wrap: nowrap; align-items: center; gap: 8px; padding: 3px 0; }
#purchaseReturnArchiveStatus .document-download-link { text-align: left; white-space: normal; overflow-wrap: anywhere; line-height: 1.35; }
#purchaseReturnArchiveStatus .delete-purchase-return-btn { flex: 0 0 auto; }

/* Compact attachment filenames in both purchase record lists. */
.purchase-record-cell .document-download-link {
  font-size: 13px;
  line-height: 1.4;
  text-align: left;
}

.historical-dialog .history-file-row { display:flex; align-items:flex-start; gap:8px; margin:6px 0; }
.historical-dialog .history-file-choice { display:flex; align-items:flex-start; gap:8px; flex:1; min-width:0; margin:6px 0; }
.historical-dialog .history-file-choice input[type="checkbox"] { width:16px; min-width:16px; height:16px; flex:0 0 16px; margin:3px 0 0; }
.historical-dialog .history-file-choice span { min-width:0; overflow-wrap:anywhere; }
.historical-dialog .history-file-row button { flex-shrink:0; }

.historical-dialog .history-payment-row { display:grid; grid-template-columns:1.2fr 1fr .65fr 1.5fr .8fr 1.1fr auto; gap:6px 10px; padding:10px; margin:8px 0; border:1px solid var(--border, #d8cec1); border-radius:10px; align-items:end; }
.historical-dialog .history-payment-row label { margin:0; min-width:0; gap:2px; }
.historical-dialog .history-payment-row input:not([type="checkbox"]), .historical-dialog .history-payment-row select { width:100%; min-height:36px; height:36px; padding:5px 8px; border-radius:6px; }
.historical-dialog .history-payment-row > label:nth-child(7) { grid-column:1 / 3; grid-row:2; }
.historical-dialog .history-payment-row .history-payment-check { display:flex; flex-direction:row; align-items:center; gap:6px; grid-column:3 / 5; grid-row:2; align-self:center; }
.historical-dialog .history-payment-check input[type="checkbox"] { width:16px; min-width:16px; height:16px; margin:0; flex:0 0 16px; }
.historical-dialog .history-payment-row .history-payment-note { grid-column:5 / 8; grid-row:2; }
.historical-dialog .history-payment-row > button { grid-column:7; grid-row:1; width:auto; min-height:36px; padding:5px 10px; }
@media (max-width:900px) {
 .historical-dialog .history-payment-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .historical-dialog .history-payment-row > label:nth-child(7), .historical-dialog .history-payment-row .history-payment-check, .historical-dialog .history-payment-row .history-payment-note, .historical-dialog .history-payment-row > button { grid-column:auto; grid-row:auto; }
}

.historical-dialog .history-attachment-group { min-width:0; margin:12px 0; padding:12px 14px; border:1px solid #cfc5b8; border-radius:10px; }
.historical-dialog .history-attachment-group > legend { padding:0 6px; font-weight:700; }
#purchaseOrderDetailDialog .purchase-detail-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 0 auto; }
#purchaseOrderDetailDialog #purchaseOrderDetailActions { display:contents; }
#purchaseOrderDetailDialog .purchase-detail-toolbar button { margin:0; min-height:40px; height:40px; padding:8px 16px; display:inline-flex; align-items:center; justify-content:center; line-height:1.4; white-space:nowrap; }

.procurement-search-two-rows.purchase-record-search-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px 14px; }
.procurement-search-two-rows.purchase-record-search-grid label { display:flex; flex-direction:column; align-items:stretch; gap:4px; min-width:0; }
.procurement-date-range { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 6px; min-width:0; }
.procurement-date-range > .search-field-caption { grid-column:1 / -1; }
.procurement-search-two-rows input, .procurement-search-two-rows select { width:100%; min-width:0; margin:0; }
.acceptance-search-section { border:1px solid #d8cec1; border-radius:8px; padding:12px; margin:10px 0; }
[data-acceptance-search] .checkline { display:inline-flex; align-items:center; gap:6px; width:auto; margin:0; }
[data-acceptance-search] input[type="radio"] { width:18px; min-width:18px; height:18px; margin:0; }
#acceptanceEditorDialog { width:min(1400px,calc(100vw - 24px)); max-width:calc(100vw - 24px); }
#acceptanceEditorDialog > .card { overflow:auto; max-height:calc(100dvh - 48px); }
@media(max-width:1100px) { .procurement-search-two-rows.purchase-record-search-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .procurement-search-two-rows.purchase-record-search-grid { grid-template-columns:1fr; } }

.procurement-date-range > .search-field-caption { font-weight:700; }
.acceptance-record-action { display:flex; align-items:center; padding:3px 0; }
