:root {
    --ottua-primary: #203632;
    --ottua-primary-hover: #2f4a44;
    --ottua-primary-soft: #edf2ef;
    --ottua-primary-border: #b9c9c4;
    --ottua-page-bg: #f5f6f4;
    --ottua-surface: #ffffff;
    --ottua-surface-muted: #f7f9f7;
    --ottua-border: #dde4e1;
    --ottua-text: #202725;
    --ottua-muted: #68726f;
    --ottua-shadow: 0 2px 10px rgba(32, 54, 50, 0.07);
}

/* V1.11 Quick Price Share */
.qps-category-shortcuts{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 10px}.qps-category-chip{display:inline-flex;align-items:center;min-height:34px;padding:7px 13px;border:1px solid #d6e0da;border-radius:18px;color:#53645d;background:#fff;font-size:12px;font-weight:700;text-decoration:none}.qps-category-chip:hover,.qps-category-chip.is-active{border-color:#275b47;background:#edf4f0;color:#174b37}.qps-selection-toolbar{position:sticky;top:8px;z-index:12;display:flex;justify-content:space-between;align-items:center;gap:18px;margin:14px 0;padding:12px 16px;border:1px solid #ccdcd3;border-left:4px solid #184f3b;border-radius:8px;background:rgba(249,252,250,.97);box-shadow:0 8px 24px rgba(25,64,48,.08);backdrop-filter:blur(8px)}.qps-selection-toolbar>div:first-child{display:flex;align-items:baseline;gap:14px}.qps-selection-toolbar strong{font-size:13px;letter-spacing:.5px;color:#184f3b}.qps-selection-toolbar span{font-size:12px;color:#67756f}.qps-selection-toolbar b{font-size:17px;color:#122e23}.qps-select-column{width:42px;text-align:center}.qps-product-select,[data-qps-select-page]{width:17px;height:17px;accent-color:#1c6048}.qps-unavailable{color:#a4aea9}.qps-modal{width:min(690px,calc(100vw - 32px));border:0;border-radius:12px;padding:0;box-shadow:0 28px 80px rgba(9,37,26,.3)}.qps-modal::backdrop{background:rgba(10,30,22,.46);backdrop-filter:blur(2px)}.qps-modal form{padding:26px}.qps-modal-heading{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:16px;border-bottom:1px solid #e0e7e3}.qps-modal-heading h3{margin:5px 0 0}.eyebrow{font-size:11px;letter-spacing:1.5px;color:#4f6f61;font-weight:800}.qps-modal-close{border:0;background:transparent;color:#68766f;font-size:30px;line-height:1;cursor:pointer}.qps-modal-count{margin:18px 0 12px;color:#53635c}.qps-modal-count strong{font-size:22px;color:#174b37}.qps-modal-grid{grid-template-columns:1fr 1fr}.qps-adjustment-control{display:flex;align-items:center;border:1px solid #ccd6d1;border-radius:5px;overflow:hidden}.qps-adjustment-control input{border:0!important;border-radius:0!important}.qps-adjustment-control span{padding:0 12px;color:#64726c}.qps-preflight-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0}.qps-preflight-summary>div{display:flex;flex-direction:column;padding:16px;border:1px solid #e0e6e3;border-radius:8px;background:#fafcfb}.qps-preflight-summary strong{font-size:26px}.qps-preflight-summary span{font-size:12px;color:#6d7b75}.qps-preflight-summary .is-ready strong{color:#18704f}.qps-preflight-summary .is-blocked strong{color:#a74c39}.qps-preflight-section{margin-top:22px}.qps-preflight-section h4{font-size:12px;letter-spacing:1px;color:#53685e}.qps-preflight-list{display:grid;gap:8px}.qps-preflight-item{display:grid;grid-template-columns:62px 1fr auto;gap:14px;align-items:center;padding:10px 13px;border:1px solid #e0e6e3;border-radius:7px}.qps-preflight-item img,.qps-preflight-placeholder{width:58px;height:48px;object-fit:contain;background:#f5f7f5;border-radius:4px}.qps-preflight-placeholder{display:grid;place-items:center;color:#b1503e;font-weight:800}.qps-preflight-item>div:nth-child(2){display:flex;flex-direction:column;gap:4px}.qps-preflight-item span,.qps-preflight-item li{font-size:12px;color:#6b7872}.qps-preflight-item ul{margin:3px 0 0;padding-left:18px}.qps-preflight-item>b{font-size:10px;letter-spacing:1px}.qps-preflight-item.is-ready>b{color:#18704f}.qps-preflight-item.is-blocked>b{color:#a74c39}.qps-preflight-actions{position:sticky;bottom:12px;margin-top:24px;padding:14px 16px;display:flex;justify-content:space-between;align-items:center;border:1px solid #c9dad1;border-radius:8px;background:#f5faf7;box-shadow:0 8px 24px rgba(25,64,48,.1)}.qps-preflight-actions>div{display:flex;flex-direction:column}.qps-preflight-actions span{font-size:12px;color:#68766f}.qps-result-meta{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 18px}.qps-result-meta span{padding:6px 10px;border-radius:14px;background:#edf4f0;color:#285642;font-size:12px;font-weight:700}.qps-result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:20px}.qps-result-grid article{border:1px solid #dce4e0;border-radius:9px;overflow:hidden;background:#f5f7f5}.qps-result-grid img{display:block;width:100%;height:auto}.qps-result-grid article>div{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:#fff}@media(max-width:800px){.qps-selection-toolbar{position:static;align-items:flex-start;flex-direction:column}.qps-selection-toolbar .action-group{width:100%;display:grid;grid-template-columns:1fr 1fr}.qps-selection-toolbar [data-qps-open]{grid-column:1/-1}.qps-modal-grid,.qps-preflight-summary{grid-template-columns:1fr 1fr}.qps-preflight-actions{position:static;align-items:flex-start;gap:12px;flex-direction:column}}

/* V1.10 Phase 2B · Custom Development Quote */
.quote-type-switcher { display:flex; align-items:end; justify-content:space-between; gap:28px; margin:4px 0 24px; padding:20px 24px; border-left:4px solid #203632; background:#f3f7f5; }
.quote-type-switcher small,.custom-section-heading small,.custom-detail-hero small,.custom-detail-overview small,.custom-requirement-summary small,.custom-terms small,.custom-quote-remarks small { color:#70807c; font-size:11px; font-weight:700; letter-spacing:.08em; }
.quote-type-switcher h3 { margin:4px 0; color:#203632; }
.quote-type-switcher p { margin:0; color:#6b7a76; }
.quote-type-switcher label { width:min(430px,42%); }
.quote-type-switcher.is-custom { border-left-color:#b48a45; background:#f8f6f0; }
.custom-quote-page { max-width:1280px; margin:0 auto; }
.custom-quote-form { display:grid; gap:20px; }
.custom-quote-section { padding:22px 24px; border:1px solid #dbe3e0; border-radius:10px; background:#fff; }
.custom-section-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:18px; }
.custom-section-heading>div { display:flex; align-items:baseline; gap:10px; }
.custom-section-heading h3 { margin:0; color:#203632; font-size:17px; }
.custom-section-heading>span { color:#81908c; font-size:12px; }
.custom-quote-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.custom-requirement-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.custom-requirement-grid textarea { min-height:72px; resize:vertical; }
.custom-fee-table-wrap { overflow-x:auto; }
.custom-fee-table { width:100%; border-collapse:collapse; }
.custom-fee-table th { padding:10px; border-bottom:1px solid #cdd8d4; color:#60716c; font-size:12px; text-align:left; }
.custom-fee-table td { padding:8px 6px; border-bottom:1px solid #edf1ef; }
.custom-fee-table th:nth-last-child(-n+3),.custom-fee-table td:nth-last-child(-n+3) { text-align:right; }
.custom-fee-table input,.custom-fee-table select { min-width:105px; }
.custom-fee-table td:nth-child(2) input { min-width:260px; }
.custom-fee-subtotal { white-space:nowrap; font-weight:700; color:#203632; }
.custom-fee-remove { border:0; background:transparent; color:#a14848; font-size:22px; cursor:pointer; }
.custom-commercial-grid { display:grid; grid-template-columns:1fr 1fr 1.2fr; gap:18px; align-items:stretch; margin-bottom:18px; }
.custom-live-total { display:grid; grid-template-columns:1fr auto; gap:7px 18px; padding:16px 18px; background:#203632; color:#fff; border-radius:8px; }
.custom-live-total span { font-size:12px; color:#d8e1de; }
.custom-live-total strong { text-align:right; font-size:15px; }
.custom-live-total strong:last-child { font-size:20px; }
.custom-quote-submit { position:sticky; bottom:12px; z-index:5; justify-content:flex-end; padding:12px; background:rgba(255,255,255,.92); backdrop-filter:blur(8px); }
.custom-asset-upload-grid { grid-template-columns:repeat(4,minmax(0,1fr)); align-items:end; }
.custom-asset-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-top:18px; }
.custom-asset-card { display:grid; gap:10px; padding:12px; border:1px solid #dce4e1; border-radius:8px; background:#fff; }
.custom-asset-card.is-archived { opacity:.6; background:#f3f3f3; }
.custom-asset-preview { display:grid; place-items:center; height:130px; overflow:hidden; border-radius:6px; background:#eef3f1; color:#40544e; font-weight:800; }
.custom-asset-preview img { width:100%; height:100%; object-fit:contain; }
.custom-asset-card strong { display:block; overflow-wrap:anywhere; }
.custom-asset-card small { display:block; margin-top:4px; color:#73827e; }
.custom-asset-actions { display:flex; align-items:center; gap:12px; font-size:12px; }
.custom-asset-actions form { margin:0; }
.custom-asset-actions button { padding:0; border:0; background:transparent; color:#9d4c4c; cursor:pointer; }
.custom-detail-hero { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:18px; padding:28px 30px; border-radius:10px; background:#203632; color:#fff; }
.custom-detail-hero h2 { margin:5px 0; font-size:30px; letter-spacing:.04em; }
.custom-detail-hero p { margin:0; color:#dce5e2; }
.custom-detail-hero-meta { text-align:right; }
.custom-detail-hero-meta span,.custom-detail-hero-meta strong { display:block; }
.custom-detail-hero-meta span { color:#c4d1cd; }
.custom-detail-hero-meta strong { margin-top:8px; padding:5px 12px; border-radius:999px; background:#fff; color:#203632; }
.custom-detail-overview { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin-bottom:20px; overflow:hidden; border:1px solid #dce4e1; border-radius:10px; background:#dce4e1; }
.custom-detail-overview>div { padding:16px 18px; background:#fff; }
.custom-detail-overview>div.wide { grid-column:span 2; }
.custom-detail-overview strong { display:block; margin-top:6px; color:#203632; }
.custom-requirement-summary { display:grid; grid-template-columns:repeat(2,1fr); gap:14px 24px; }
.custom-requirement-summary>div { padding-bottom:12px; border-bottom:1px solid #edf1ef; }
.custom-requirement-summary>div.wide { grid-column:1/-1; }
.custom-requirement-summary p { margin:6px 0 0; white-space:pre-wrap; line-height:1.6; }
.custom-quote-total-panel { display:grid; grid-template-columns:1fr minmax(360px,.8fr); gap:40px; margin-top:20px; padding:24px 28px; border-top:2px solid #203632; background:#f6f8f7; }
.custom-terms strong,.custom-terms span { display:block; margin-top:7px; }
.custom-terms span { color:#71807c; }
.custom-total-lines { display:grid; grid-template-columns:1fr auto; gap:8px 24px; align-items:center; }
.custom-total-lines strong { text-align:right; }
.custom-total-lines .grand { margin-top:7px; padding-top:12px; border-top:1px solid #203632; color:#203632; font-size:18px; }
.custom-quote-remarks { margin-top:18px; padding:18px 22px; background:#f3f6f5; }
.custom-quote-remarks p { margin:7px 0 0; white-space:pre-wrap; }
@media (max-width:900px) {
    .quote-type-switcher,.custom-section-heading { align-items:stretch; flex-direction:column; }
    .quote-type-switcher label { width:100%; }
    .custom-quote-grid,.custom-requirement-grid,.custom-commercial-grid,.custom-asset-upload-grid,.custom-detail-overview,.custom-requirement-summary,.custom-quote-total-panel { grid-template-columns:1fr; }
    .custom-asset-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .custom-detail-overview>div.wide,.custom-requirement-summary>div.wide { grid-column:auto; }
}

.price-display-warning {
    margin: 0 0 16px;
    padding: 10px 12px;
    border-left: 3px solid #b7791f;
    background: #fffaf0;
    color: #744210;
    font-size: 13px;
    line-height: 1.55;
}

.order-detail-price-terms-summary {
    display: block;
    margin-top: 5px;
    color: #6f7d79;
    font-weight: 400;
}

body {
    margin: 0;
    font-family: "Microsoft YaHei", Arial, sans-serif;
    background: var(--ottua-page-bg);
    color: var(--ottua-text);
}

.layout {
    display: flex;
    min-height: 100vh;
}

.sidebar {
    width: 240px;
    background: #0f4c81;
    color: #fff;
    padding: 20px 0;
    display: flex;
    flex-direction: column;
}

.brand {
    font-size: 24px;
    font-weight: bold;
    padding: 0 20px 20px;
}

.nav-link {
    display: block;
    padding: 12px 20px;
    color: #fff;
    text-decoration: none;
    border-left: 3px solid transparent;
}

.nav-link:hover {
    background: #145ea3;
    border-left-color: #ffd54f;
}

.main {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.topbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 30px;
    background: #fff;
    border-bottom: 1px solid #e5e7eb;
}

.sidebar nav {
    flex: 1;
}

.system-version {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    margin: 18px 20px 0;
    padding-top: 14px;
    border-top: 1px solid rgba(255, 255, 255, 0.22);
    color: rgba(255, 255, 255, 0.78);
    font-size: 12px;
}

.system-version strong {
    color: #fff;
    font-weight: 600;
}

.role-badge,
.status-badge {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 2px 8px;
    border: 1px solid #b9cee3;
    border-radius: 4px;
    background: #edf5fc;
    color: #15558a;
    font-size: 13px;
    line-height: 1.2;
    vertical-align: middle;
}

.topbar-user .role-badge { margin-left: 6px; }
.topbar-user {
    flex: 0 0 auto;
    white-space: nowrap;
}
.status-badge.active { border-color: #a7d4b6; background: #edf8f0; color: #23713b; }
.status-badge.inactive { border-color: #d7dce2; background: #f2f4f6; color: #68727d; }
.account-create-form { margin-bottom: 22px; }
.account-inline-form select { min-width: 96px; }
.account-actions { display: inline-block; margin-right: 10px; }
.account-actions summary { color: #15558a; cursor: pointer; }
.reset-password-form {
    display: grid;
    grid-template-columns: minmax(130px, 1fr) minmax(130px, 1fr) auto;
    gap: 8px;
    min-width: 450px;
    margin-top: 10px;
    padding: 10px;
    border: 1px solid #d9e2ec;
    background: #f7f9fb;
}
.success-link { color: #23713b; }

@media (max-width: 760px) {
    .reset-password-form { grid-template-columns: 1fr; min-width: 250px; }
}

.topbar h1 {
    margin-right: 20px;
}

.topbar-tools {
    display: flex;
    align-items: center;
    gap: 18px;
}

.global-search-form {
    display: flex;
    width: min(440px, 38vw);
}

.global-search-form input {
    min-width: 0;
    flex: 1;
    padding: 8px 10px;
    border: 1px solid #cbd5e1;
    border-right: 0;
    border-radius: 5px 0 0 5px;
}

.global-search-form button {
    flex: 0 0 auto;
    white-space: nowrap;
    padding: 8px 13px;
    border: 1px solid #0f4c81;
    border-radius: 0 5px 5px 0;
    background: #0f4c81;
    color: #fff;
    cursor: pointer;
}

@media (max-width: 1100px) {
    .topbar {
        align-items: flex-start;
        flex-wrap: wrap;
        gap: 12px;
    }

    .topbar-tools {
        width: 100%;
        justify-content: space-between;
    }

    .global-search-form {
        width: min(520px, 72%);
    }
}

.content {
    padding: 24px;
}

/* Keep controls in the last few table rows above desktop/browser bottom chrome. */
.bottom-interaction-clearance {
    margin-bottom: calc(220px + env(safe-area-inset-bottom, 0px));
}

/* Leave real scrollable room below the product actions so desktop chrome cannot cover them. */
.product-list-bottom-spacer {
    height: calc(160px + env(safe-area-inset-bottom, 0px));
    pointer-events: none;
}

.cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 20px;
    margin-bottom: 20px;
}

.card, .panel {
    background: #fff;
    border-radius: 8px;
    padding: 20px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}

.num {
    font-size: 28px;
    font-weight: bold;
    color: #0f4c81;
    margin: 8px 0 0;
}

.login-body {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    background: linear-gradient(135deg, #0f4c81, #2f7ecf);
}

.login-card {
    width: 360px;
    background: #fff;
    padding: 30px;
    border-radius: 10px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.2);
}

.login-card input {
    width: 100%;
    padding: 10px;
    margin-bottom: 12px;
    box-sizing: border-box;
}

.login-card button {
    width: 100%;
    padding: 12px;
    background: #0f4c81;
    color: #fff;
    border: none;
    border-radius: 6px;
    cursor: pointer;
}

.hint {
    color: #666;
    font-size: 13px;
}

.login-error {
    margin-bottom: 12px;
    padding: 9px 11px;
    border: 1px solid #fecaca;
    border-radius: 5px;
    background: #fef2f2;
    color: #991b1b;
    font-size: 14px;
}

.login-version {
    margin: 18px 0 0;
    color: #64748b;
    font-size: 12px;
    text-align: center;
}

.audit-log-heading {
    align-items: flex-end;
}

.audit-log-filter {
    display: flex;
    align-items: center;
    gap: 8px;
}

.audit-log-filter select,
.audit-log-filter input {
    min-height: 38px;
    padding: 7px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 5px;
    box-sizing: border-box;
}

.audit-log-filter input {
    width: 260px;
}

.audit-log-table .audit-time {
    min-width: 155px;
    white-space: nowrap;
}

.audit-username {
    display: block;
    margin-top: 3px;
    color: #64748b;
    font-size: 12px;
}

.audit-module {
    display: inline-block;
    padding: 3px 7px;
    border-radius: 4px;
    background: #e8f1f8;
    color: #15558a;
    font-size: 13px;
}

@media (max-width: 900px) {
    .audit-log-heading,
    .audit-log-filter {
        align-items: stretch;
    }

    .audit-log-filter {
        flex-wrap: wrap;
    }

    .audit-log-filter input {
        width: min(100%, 280px);
    }
}

.password-panel {
    max-width: 620px;
}

.password-panel h2 {
    margin-top: 0;
}

.password-form {
    display: grid;
    gap: 8px;
    max-width: 460px;
}

.password-form input {
    width: 100%;
    box-sizing: border-box;
}

.password-form .btn {
    justify-self: start;
    margin-top: 8px;
}

.muted-text,
.field-hint {
    color: #64748b;
}

.field-hint {
    margin: -2px 0 6px;
    font-size: 13px;
}

.flash-messages {
    display: grid;
    gap: 8px;
    margin-bottom: 16px;
}

.flash-message {
    padding: 11px 14px;
    border: 1px solid #bfdbfe;
    border-radius: 6px;
    background: #eff6ff;
    color: #1e3a8a;
}

.flash-message.success {
    border-color: #bbf7d0;
    background: #f0fdf4;
    color: #166534;
}

.flash-message.error {
    border-color: #fecaca;
    background: #fef2f2;
    color: #991b1b;
}

.duplicate-model-warning {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 18px;
    padding: 12px 14px;
    border-left: 4px solid #b7791f;
    background: #fff8e8;
    color: #5f471a;
}

.duplicate-model-warning strong {
    color: #7a4d0b;
}

.duplicate-model-warning span {
    font-weight: 600;
    color: #203632;
}

.duplicate-model-warning small {
    margin-left: auto;
    color: #77613a;
}

.backup-status-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.backup-status-card h3,
.backup-status-time {
    margin-top: 0;
}

.backup-status-time {
    margin-bottom: 5px;
    color: #0f4c81;
    font-size: 18px;
    font-weight: 700;
}

.backup-status-card span {
    margin-bottom: 10px;
    color: #64748b;
    font-size: 13px;
}

.backup-summary {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}

.backup-summary > div {
    padding: 12px 14px;
    border: 1px solid #dbe3ec;
    border-radius: 6px;
    background: #f8fafc;
}

.backup-summary span,
.backup-summary strong {
    display: block;
}

.backup-summary span {
    margin-bottom: 5px;
    color: #64748b;
    font-size: 13px;
}

.backup-type {
    display: inline-block;
    padding: 3px 7px;
    border-radius: 4px;
    background: #e2e8f0;
    color: #334155;
    font-size: 13px;
}

.backup-type.auto {
    background: #dcfce7;
    color: #166534;
}

.backup-type.manual {
    background: #dbeafe;
    color: #1e40af;
}

.backup-type.restore {
    background: #fef3c7;
    color: #92400e;
}

.backup-actions {
    min-width: 310px;
}

.backup-restore-form {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-left: 12px;
}

.backup-restore-form input {
    width: 92px;
    padding: 6px 8px;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
}

.backup-manifest-details {
    margin-top: 7px;
    max-width: 540px;
}

.backup-manifest-details summary {
    color: #203632;
    cursor: pointer;
    font-size: 12px;
    font-weight: 700;
}

.backup-manifest-details small {
    display: block;
    margin-top: 5px;
    color: #64748b;
    font-size: 11px;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.dashboard-todo-panel {
    margin-bottom: 20px;
}

.dashboard-tasks {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 1px solid #e2e8f0;
    border-bottom: 1px solid #e2e8f0;
}

.dashboard-task-section {
    min-width: 0;
    padding: 14px 18px;
    border-right: 1px solid #e2e8f0;
}

.dashboard-task-section:first-child {
    padding-left: 0;
}

.dashboard-task-section:last-child {
    padding-right: 0;
    border-right: 0;
}

.dashboard-task-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}

.dashboard-task-heading h4 {
    margin: 0;
}

.dashboard-task-heading span,
.search-result-group h4 span {
    min-width: 24px;
    padding: 2px 6px;
    border-radius: 4px;
    background: #e2e8f0;
    color: #334155;
    font-size: 12px;
    text-align: center;
}

.dashboard-task-row,
.search-result-row {
    display: block;
    padding: 9px 0;
    border-bottom: 1px solid #edf2f7;
    color: #0f172a;
    text-decoration: none;
}

.dashboard-task-row:hover,
.search-result-row:hover {
    color: #0f4c81;
}

.dashboard-task-row strong,
.dashboard-task-row span,
.search-result-row strong,
.search-result-row span {
    display: block;
    overflow-wrap: anywhere;
}

.dashboard-task-row span,
.search-result-row span {
    margin-top: 3px;
    color: #64748b;
    font-size: 13px;
}

.dashboard-empty {
    margin: 12px 0;
    color: #64748b;
    font-size: 13px;
}

.dashboard-more {
    display: inline-block;
    margin-top: 10px;
    color: #0f4c81;
    font-size: 13px;
    text-decoration: none;
}

.search-empty-state {
    padding: 46px 20px;
    text-align: center;
}

.search-empty-state p {
    color: #64748b;
}

.search-result-groups {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid #e2e8f0;
}

.search-result-group {
    min-width: 0;
    padding: 16px 22px 20px 0;
    border-bottom: 1px solid #e2e8f0;
}

.search-result-group:nth-child(odd) {
    border-right: 1px solid #e2e8f0;
}

.search-result-group:nth-child(even) {
    padding-right: 0;
    padding-left: 22px;
}

.search-result-group h4 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0 0 6px;
}

table {
    width: 100%;
    border-collapse: collapse;
}

th, td {
    padding: 10px;
    border-bottom: 1px solid #ddd;
    text-align: left;
}

th {
    background: #f2f6fa;
}

.detail-card {
    background: #f8fafc;
    padding: 16px;
    border-radius: 6px;
    margin-bottom: 16px;
}

.order-price-overview,
.quote-price-overview {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid var(--ottua-border);
}

.order-price-terms,
.order-amount-details,
.quote-price-terms,
.quote-amount-details {
    padding: 14px 16px;
    border: 1px solid var(--ottua-border);
    border-radius: 8px;
    background: var(--ottua-surface);
}

.order-price-terms h4,
.order-amount-details h4,
.quote-price-terms h4,
.quote-amount-details h4 {
    margin: 0 0 10px;
    color: var(--ottua-text);
}

.order-price-term-row,
.order-amount-detail-row,
.quote-price-term-row,
.quote-amount-detail-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 18px;
    padding: 8px 0;
}

.order-price-term-row + .order-price-term-row,
.order-amount-detail-row + .order-amount-detail-row,
.quote-price-term-row + .quote-price-term-row,
.quote-amount-detail-row + .quote-amount-detail-row {
    border-top: 1px solid var(--ottua-border);
}

.order-price-term-row span,
.order-amount-detail-row span,
.quote-price-term-row span,
.quote-amount-detail-row span {
    color: var(--ottua-muted);
}

.order-price-term-row strong,
.order-amount-detail-row strong,
.quote-price-term-row strong,
.quote-amount-detail-row strong {
    text-align: right;
    white-space: nowrap;
}

.quote-customer-terms-summary {
    display: grid;
    gap: 6px;
    padding: 8px 0;
}

.quote-customer-terms-summary strong {
    color: var(--ottua-primary);
    font-size: 16px;
}

.quote-customer-terms-summary span {
    color: var(--ottua-muted);
    font-size: 13px;
    line-height: 1.55;
}

.order-grand-total,
.quote-grand-total {
    margin-top: 2px;
    padding-top: 11px;
}

.order-grand-total span,
.order-grand-total strong,
.quote-grand-total span,
.quote-grand-total strong {
    color: var(--ottua-primary);
    font-weight: 700;
}

.order-grand-total strong,
.quote-grand-total strong {
    font-size: 22px;
}

@media (max-width: 760px) {
    .order-price-overview,
    .quote-price-overview {
        grid-template-columns: 1fr;
    }

    .order-price-term-row,
    .order-amount-detail-row,
    .quote-price-term-row,
    .quote-amount-detail-row {
        align-items: flex-start;
        flex-direction: column;
        gap: 4px;
    }

    .order-price-term-row strong,
    .order-amount-detail-row strong,
    .quote-price-term-row strong,
    .quote-amount-detail-row strong {
        text-align: left;
    }
}

.page-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.action-group {
    display: flex;
    align-items: center;
    gap: 8px;
}

.btn {
    display: inline-block;
    padding: 8px 14px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    text-decoration: none;
    font-size: 14px;
}

.btn-primary {
    background: #0f4c81;
    color: #fff;
}

.btn-secondary {
    background: #e5e7eb;
    color: #222;
}

.danger-btn {
    color: #b91c1c;
}

.btn-link {
    background: none;
    border: none;
    color: #0f4c81;
    cursor: pointer;
    padding: 0;
    text-decoration: underline;
}

.btn-link.danger {
    color: #c0392b;
}

.crud-form {
    margin-bottom: 16px;
    padding: 12px;
    background: #f8fafc;
    border-radius: 6px;
    border: 1px solid #e5e7eb;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.form-grid label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 14px;
}

.form-grid .form-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 14px;
}

.form-grid .full-width {
    grid-column: 1 / -1;
}

.form-grid input,
.form-grid select,
.form-grid textarea {
    padding: 8px;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
}

.form-grid textarea {
    min-height: 80px;
}

.product-main-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px 12px;
}

.product-main-grid label {
    gap: 4px;
}

.product-main-grid input {
    padding: 7px;
}

.admin-body .product-suggestion-field {
    position: relative;
}

.admin-body .product-suggestion-control {
    position: relative;
}

.admin-body .product-suggestion-control > input {
    width: 100%;
}

.admin-body .product-suggestion-list {
    position: absolute;
    z-index: 40;
    top: calc(100% + 5px);
    right: 0;
    left: 0;
    max-height: 250px;
    overflow-y: auto;
    padding: 5px;
    border: 1px solid var(--ottua-border, #d9e0de);
    border-radius: 9px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(32, 54, 50, 0.16);
}

.admin-body .product-suggestion-list[hidden] {
    display: none;
}

.admin-body .product-suggestion-option {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 8px;
    padding: 9px 10px;
    border: 0;
    border-radius: 6px;
    color: var(--ottua-text, #25312f);
    background: transparent;
    text-align: left;
    cursor: pointer;
}

.admin-body .product-suggestion-option > span {
    color: var(--ottua-primary, #203632);
    font-weight: 800;
}

.admin-body .product-suggestion-option:hover,
.admin-body .product-suggestion-option.is-active {
    color: var(--ottua-primary, #203632);
    background: #edf2f0;
}

.admin-body .product-suggestion-empty {
    padding: 10px;
    color: var(--ottua-muted, #687671);
    font-size: 12px;
}

.product-common-fields {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #e5e7eb;
}

.product-common-fields > strong {
    display: block;
    margin-bottom: 8px;
}

.product-common-grid {
    grid-template-columns: 110px 110px 110px 160px repeat(4, minmax(110px, 1fr));
    gap: 8px;
    align-items: end;
}

.product-common-grid label {
    gap: 4px;
}

.product-common-grid .common-wide {
    grid-column: span 4;
}

.common-triple-input {
    display: grid;
    grid-template-columns: repeat(3, minmax(84px, 1fr));
    gap: 6px;
    width: 100%;
}

.common-box-size {
    grid-column: span 3;
    min-width: 286px;
}

.common-volume {
    min-width: 110px;
}

.form-actions {
    display: flex;
    gap: 10px;
    margin-top: 12px;
}

.inline-form {
    display: inline-block;
    margin-left: 6px;
}

.notice {
    padding: 10px 12px;
    margin: 12px 0;
    border: 1px solid #bfdbfe;
    border-radius: 6px;
    background: #eff6ff;
    color: #1e3a8a;
}

.notice.error {
    border-color: #fecaca;
    background: #fef2f2;
    color: #991b1b;
}

.notice.success {
    border-color: #bbf7d0;
    background: #f0fdf4;
    color: #166534;
}

.import-confirm-form {
    margin: 12px 0 16px;
}

.import-summary {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 10px;
    margin: 16px 0;
}

.import-summary div {
    padding: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #f8fafc;
}

.import-summary span {
    display: block;
    margin-bottom: 6px;
    color: #64748b;
    font-size: 13px;
}

.import-summary strong {
    color: #0f4c81;
    font-size: 18px;
}

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

.product-thumb {
    width: 70px;
    height: 70px;
    object-fit: contain;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    background: #fff;
}

.search-form {
    display: flex;
    gap: 8px;
    margin-bottom: 14px;
}

.search-form input {
    min-width: 320px;
    padding: 8px;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
}

.search-form select {
    min-width: 112px;
    padding: 8px;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    background: #fff;
}

.qps-filter-field {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #53645d;
    font-size: 12px;
    font-weight: 700;
}

.qps-filter-field select {
    min-width: 96px;
}

.customer-search-form input {
    width: min(560px, 100%);
}

.empty-table-message {
    padding: 28px 16px;
    color: #64748b;
    text-align: center;
}

.bulk-delete-form {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}

.select-col {
    width: 70px;
    text-align: center;
}

.select-col label {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.variant-details summary {
    color: #0f4c81;
    cursor: pointer;
    font-weight: 600;
}

.variant-common {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 12px;
    margin-top: 8px;
    padding: 8px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #f8fafc;
    color: #475569;
    font-size: 13px;
}

.variant-price-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(150px, 1fr));
    gap: 6px;
    margin-top: 8px;
    min-width: 360px;
}

.variant-price-pill {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 7px 9px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #fff;
    font-size: 13px;
}

.variant-price-pill strong {
    color: #0f172a;
}

.variant-editor {
    margin-top: 10px;
}

.variant-editor-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 6px;
}

.variant-edit-table {
    min-width: 520px;
    table-layout: fixed;
}

.variant-edit-table th,
.variant-edit-table td {
    vertical-align: top;
    padding: 7px;
}

.variant-edit-table th:nth-child(1),
.variant-edit-table td:nth-child(1) {
    width: 220px;
}

.variant-edit-table th:nth-child(2),
.variant-edit-table td:nth-child(2) {
    width: 130px;
}

.variant-edit-table th:nth-child(3),
.variant-edit-table td:nth-child(3) {
    width: 130px;
}

.variant-edit-table input,
.variant-edit-table textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 6px;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    font-family: inherit;
    font-size: 13px;
}

.variant-edit-table textarea {
    min-height: 34px;
    resize: vertical;
}

.variant-edit-table .triple-input {
    display: grid;
    grid-template-columns: repeat(3, 54px);
    gap: 4px;
    min-width: 174px;
}

.variant-image-cell {
    min-width: 104px;
}

.variant-thumb {
    display: block;
    width: 62px;
    height: 62px;
    object-fit: contain;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    background: #fff;
    margin-bottom: 6px;
}

.empty-thumb {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #94a3b8;
    font-size: 12px;
}

.variant-image-input {
    max-width: 104px;
    font-size: 12px;
}

.clear-variant-image {
    display: inline-block;
    margin-top: 4px;
    font-size: 12px;
}

.product-detail-page {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.product-detail-actions {
    margin-bottom: 0;
}

.product-detail-actions h3,
.product-detail-section h4,
.product-variant-card h5,
.product-packaging-card h5 {
    margin: 0;
}

.product-detail-eyebrow,
.product-detail-section-kicker {
    margin: 0 0 4px;
    color: var(--ottua-primary);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.product-detail-hero {
    display: grid;
    grid-template-columns: minmax(220px, 320px) minmax(0, 1fr);
    gap: 28px;
    align-items: center;
    padding: 24px;
    border: 1px solid var(--ottua-border);
    border-radius: 10px;
    background: var(--ottua-surface-muted);
}

.product-detail-main-image {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 250px;
    overflow: hidden;
    border: 1px solid var(--ottua-border);
    border-radius: 8px;
    background: #fff;
}

.product-detail-main-image img,
.product-variant-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.product-detail-image-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    min-height: 100px;
    color: var(--ottua-muted);
    background: #f1f3f2;
    font-size: 13px;
}

.product-detail-model {
    color: var(--ottua-primary);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.05em;
}

.product-detail-model-line {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.product-status-badge {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 2px 9px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
}

.product-status-active {
    border-color: #a7d4b6;
    background: #edf8f0;
    color: #23713b;
}

.product-status-development {
    border-color: #e9c982;
    background: #fff8e7;
    color: #9a6500;
}

.product-status-disabled {
    border-color: #d7dce2;
    background: #f2f4f6;
    color: #68727d;
}

.product-status-notice {
    margin: 12px 0 0;
    padding: 9px 11px;
    border-left: 3px solid #8a949e;
    background: #f3f5f6;
    color: #59636d;
    font-size: 13px;
}

.product-detail-summary h2 {
    margin: 8px 0 12px;
    font-size: clamp(26px, 3vw, 38px);
    line-height: 1.18;
}

.product-detail-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.product-detail-tags span {
    padding: 5px 10px;
    border: 1px solid var(--ottua-primary-border);
    border-radius: 999px;
    background: var(--ottua-primary-soft);
    color: var(--ottua-primary);
    font-size: 13px;
}

.product-detail-metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 24px;
}

.product-detail-metrics > div {
    padding: 14px;
    border-left: 3px solid var(--ottua-primary);
    background: #fff;
}

.product-detail-metrics span,
.product-packaging-grid span,
.product-detail-remarks > span {
    display: block;
    margin-bottom: 4px;
    color: var(--ottua-muted);
    font-size: 12px;
}

.product-detail-metrics strong {
    font-size: 18px;
}

.product-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
    gap: 20px;
    align-items: start;
}

.product-detail-main,
.product-detail-sidebar {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.product-detail-section {
    padding: 18px;
    border: 1px solid var(--ottua-border);
    border-radius: 8px;
    background: #fff;
}

.product-detail-section-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}

.product-detail-section-heading > span {
    color: var(--ottua-muted);
    font-size: 13px;
}

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

.product-variant-card {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--ottua-border);
    border-radius: 8px;
    background: var(--ottua-surface-muted);
}

.product-variant-image {
    height: 142px;
    border-right: 1px solid var(--ottua-border);
    background: #fff;
}

.product-variant-content {
    min-width: 0;
    padding: 12px;
}

.product-variant-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    padding-bottom: 9px;
    border-bottom: 1px solid var(--ottua-border);
}

.product-variant-heading strong {
    color: var(--ottua-primary);
    white-space: nowrap;
}

.product-variant-facts,
.product-basic-list {
    margin: 0;
}

.product-variant-facts > div,
.product-basic-list > div {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 8px;
    padding: 7px 0;
    border-bottom: 1px solid var(--ottua-border);
}

.product-variant-facts > div:last-child,
.product-basic-list > div:last-child {
    border-bottom: 0;
}

.product-variant-facts dt,
.product-basic-list dt {
    color: var(--ottua-muted);
    font-size: 12px;
}

.product-variant-facts dd,
.product-basic-list dd {
    min-width: 0;
    margin: 0;
    overflow-wrap: anywhere;
}

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

.product-packaging-card {
    padding: 14px;
    border: 1px solid var(--ottua-border);
    border-radius: 8px;
    background: var(--ottua-surface-muted);
}

.product-packaging-card h5 {
    margin-bottom: 12px;
    color: var(--ottua-primary);
}

.product-packaging-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 14px;
}

.product-packaging-grid strong {
    display: block;
    overflow-wrap: anywhere;
    font-size: 14px;
}

.product-basic-list > div {
    grid-template-columns: 82px minmax(0, 1fr);
    padding: 9px 0;
}

.product-detail-remarks {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--ottua-border);
}

.product-detail-remarks p {
    margin: 0;
    overflow-wrap: anywhere;
    line-height: 1.65;
}

.product-history-section {
    padding-bottom: 8px;
}

.product-history-table {
    min-width: 760px;
}

.product-history-table a {
    color: var(--ottua-primary);
    font-weight: 600;
}

.product-detail-empty {
    margin: 0;
    padding: 28px 16px;
    color: var(--ottua-muted);
    text-align: center;
}

@media (max-width: 1100px) {
    .product-variant-grid,
    .product-packaging-list {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 820px) {
    .product-detail-hero,
    .product-detail-layout {
        grid-template-columns: 1fr;
    }

    .product-detail-main-image {
        height: 280px;
    }
}

@media (max-width: 560px) {
    .product-detail-hero {
        padding: 14px;
    }

    .product-detail-main-image {
        height: 220px;
    }

    .product-detail-metrics,
    .product-packaging-grid {
        grid-template-columns: 1fr;
    }

    .product-variant-card {
        grid-template-columns: 92px minmax(0, 1fr);
    }

    .product-variant-image {
        height: 132px;
    }
}

.order-list-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.filter-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.filter-tab {
    padding: 6px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    color: #334155;
    text-decoration: none;
    background: #fff;
}

.filter-tab.active {
    border-color: #0f4c81;
    background: #e8f1fa;
    color: #0f4c81;
    font-weight: 600;
}

.payment-status-form {
    margin-left: 0;
}

.payment-status-form select {
    padding: 6px;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
}

@media (max-width: 1400px) {
    .product-common-grid {
        grid-template-columns: repeat(4, minmax(120px, 1fr));
    }

    .product-common-grid .common-wide {
        grid-column: span 2;
    }

    .common-box-size {
        grid-column: span 2;
    }
}

.order-item-row {
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 12px;
    margin-bottom: 12px;
    background: #fff;
}

.compact-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.remove-item-btn {
    margin-top: 8px;
}

.finish-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.finish-option {
    padding: 8px 12px;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    background: #fff;
    color: #334155;
    cursor: pointer;
}

.finish-option.selected {
    border-color: #0f4c81;
    background: #e8f1fa;
    color: #0f4c81;
    font-weight: 600;
}

.quick-order-form {
    background: #fff;
}

.quick-items-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 18px;
}

.quick-items-footer {
    display: flex;
    justify-content: flex-end;
    margin: 8px 0 12px;
}

.quick-item-row {
    border: 1px solid #dbe3ed;
    border-radius: 6px;
    padding: 12px;
    margin-bottom: 12px;
    background: #f8fafc;
}

.remove-quick-item {
    margin-top: 8px;
}

.history-price-tip {
    display: none;
    margin-top: 10px;
    padding: 10px;
    border: 1px solid #bfdbfe;
    border-radius: 6px;
    background: #eff6ff;
}

.history-price-tip.visible {
    display: block;
}

.history-price-title {
    margin-bottom: 6px;
    color: #1e3a8a;
    font-size: 13px;
    font-weight: 600;
}

.history-price-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.history-price-pill {
    min-width: 220px;
    max-width: 360px;
    padding: 8px 10px;
    border: 1px solid #93c5fd;
    border-radius: 6px;
    background: #fff;
    color: #0f172a;
    text-align: left;
    cursor: pointer;
    overflow-wrap: anywhere;
}

.history-price-pill strong,
.history-price-pill span,
.history-price-pill small {
    display: block;
}

.history-price-pill strong {
    color: #0f4c81;
}

.history-price-pill span,
.history-price-pill small {
    margin-top: 3px;
    color: #475569;
}

.quick-total {
    display: flex;
    justify-content: flex-end;
    align-items: baseline;
    gap: 12px;
    padding: 12px 0;
    font-size: 16px;
}

.quick-total strong {
    color: #0f4c81;
    font-size: 24px;
}

.quick-price-conditions {
    min-width: 0;
    margin: 0;
    padding: 14px 16px 16px;
    border: 1px solid var(--ottua-border);
    border-radius: 8px;
    background: var(--ottua-surface-muted);
}

.quick-price-conditions legend {
    padding: 0 6px;
    color: var(--ottua-text);
    font-weight: 700;
}

.admin-body .quick-order-entry-page .quick-price-mode-field {
    display: grid;
    grid-template-columns: minmax(260px, 0.9fr) minmax(280px, 1.4fr);
    align-items: end;
    gap: 14px 20px;
    margin-bottom: 14px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--ottua-border);
}

.admin-body .quick-order-entry-page .quick-price-mode-field label {
    margin: 0;
}

.admin-body .quick-order-entry-page .quick-price-mode-field label > span {
    display: block;
    margin-bottom: 6px;
    color: var(--ottua-text);
    font-weight: 700;
}

.admin-body .quick-order-entry-page .quick-price-mode-field p {
    margin: 0 0 8px;
    color: var(--ottua-muted);
    font-size: 13px;
    line-height: 1.55;
}

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

.quick-price-condition {
    display: flex;
    min-height: 42px;
    align-items: center;
    gap: 18px;
    padding: 10px 12px;
    border: 1px solid var(--ottua-border);
    border-radius: 6px;
    background: var(--ottua-surface);
}

.admin-body .quick-order-entry-page .quick-price-condition.is-mode-locked .quick-price-toggle {
    cursor: default;
}

.admin-body .quick-order-entry-page .quick-price-condition.is-mode-locked .quick-price-toggle::after {
    content: "由价格模式锁定";
    color: var(--ottua-muted);
    font-size: 11px;
    font-weight: 400;
}

.quick-price-toggle {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    flex-direction: row;
    gap: 8px;
    margin: 0;
    font-weight: 600;
    cursor: pointer;
}

.quick-price-toggle input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--ottua-primary);
}

.quick-rate-field {
    display: flex;
    flex: 1;
    align-items: center;
    flex-direction: row;
    justify-content: flex-end;
    gap: 8px;
    margin: 0;
    color: var(--ottua-muted);
}

.quick-rate-field[hidden] {
    display: none;
}

.quick-rate-field select {
    width: 104px;
    min-width: 104px;
}

.rate-input-control {
    display: inline-flex;
    width: 126px;
    min-width: 126px;
    align-items: center;
    border: 1px solid var(--ottua-border);
    border-radius: 6px;
    background: var(--ottua-surface);
    overflow: hidden;
}

.rate-input-control:focus-within {
    border-color: var(--ottua-primary);
    box-shadow: 0 0 0 2px rgba(32, 54, 50, 0.1);
}

.rate-input-control input {
    width: 92px;
    min-width: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    text-align: right;
}

.rate-input-control input:focus {
    outline: 0;
    box-shadow: none;
}

.rate-input-control > span {
    padding-right: 10px;
    color: var(--ottua-muted);
    font-weight: 700;
}

.admin-body .order-edit-price-mode {
    margin: 0 0 12px;
    color: var(--ottua-muted);
}

.admin-body .order-edit-price-mode strong {
    color: var(--ottua-primary);
}

.admin-body .quick-order-entry-page .quick-unit-price-field .quick-price-input-hint,
.admin-body .quick-order-entry-page .quick-unit-price-field .quick-base-unit-preview,
.admin-body .quick-order-entry-page .quick-unit-price-field .quick-customer-unit-preview {
    display: block;
    margin-top: 5px;
    color: var(--ottua-muted);
    font-size: 12px;
    line-height: 1.35;
}

.admin-body .quick-order-entry-page .quick-unit-price-field .quick-base-unit-preview,
.admin-body .quick-order-entry-page .quick-unit-price-field .quick-customer-unit-preview {
    color: var(--ottua-primary);
    font-weight: 600;
}

.admin-body .quick-order-entry-page .quick-unit-price-field .quick-base-unit-preview[hidden],
.admin-body .quick-order-entry-page .quick-unit-price-field .quick-customer-unit-preview[hidden] {
    display: none;
}

.quick-amount-summary {
    width: min(430px, 100%);
    margin: 14px 0 16px auto;
    padding: 10px 16px;
    border: 1px solid var(--ottua-border);
    border-radius: 8px;
    background: var(--ottua-surface-muted);
}

.admin-body .quick-order-entry-page .quick-price-mode-summary {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 2px 16px;
    margin-bottom: 6px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--ottua-border);
    color: var(--ottua-muted);
}

.admin-body .quick-order-entry-page .quick-price-mode-summary strong {
    justify-self: end;
    color: var(--ottua-primary);
}

.admin-body .quick-order-entry-page .quick-price-mode-summary small {
    grid-column: 1 / -1;
    color: var(--ottua-muted);
    font-size: 12px;
}

.quick-amount-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 20px;
    padding: 7px 0;
    color: var(--ottua-muted);
}

.quick-amount-row strong {
    color: var(--ottua-text);
    font-size: 16px;
}

.quick-amount-summary .quick-total {
    margin-top: 5px;
    padding: 12px 0 3px;
    border-top: 1px solid var(--ottua-border);
    color: var(--ottua-text);
}

.quick-amount-summary .quick-final-amount strong {
    color: var(--ottua-primary);
    font-size: 24px;
}

@media (max-width: 760px) {
    .admin-body .quick-order-entry-page .quick-price-mode-field {
        grid-template-columns: 1fr;
    }

    .quick-price-condition-grid {
        grid-template-columns: 1fr;
    }

    .quick-price-condition {
        align-items: stretch;
        flex-direction: column;
        gap: 10px;
    }

    .quick-rate-field {
        justify-content: space-between;
    }

    .quick-amount-summary {
        width: auto;
        margin-left: 0;
    }
}

/* OTTUA phase-one brand overrides for screen pages only. */
body:not(.print-body) .sidebar {
    background: var(--ottua-primary);
}

body:not(.print-body) .nav-link:hover {
    background: var(--ottua-primary-hover);
    border-left-color: rgba(255, 255, 255, 0.72);
}

body:not(.print-body) .topbar {
    background: var(--ottua-surface);
    border-bottom-color: var(--ottua-border);
}

body:not(.print-body) .card,
body:not(.print-body) .panel {
    background: var(--ottua-surface);
    border-color: var(--ottua-border);
    box-shadow: var(--ottua-shadow);
}

body:not(.print-body) .crud-form,
body:not(.print-body) .detail-card,
body:not(.print-body) .quick-item-row,
body:not(.print-body) .variant-common-info,
body:not(.print-body) .import-summary,
body:not(.print-body) .backup-summary,
body:not(.print-body) .dashboard-section,
body:not(.print-body) .reset-password-form {
    border-color: var(--ottua-border);
    background: var(--ottua-surface-muted);
}

body:not(.print-body) .role-badge,
body:not(.print-body) .status-badge:not(.active):not(.inactive) {
    border-color: var(--ottua-primary-border);
    background: var(--ottua-primary-soft);
    color: var(--ottua-primary);
}

body:not(.print-body) .account-actions summary,
body:not(.print-body) .btn-link,
body:not(.print-body) .variant-details summary,
body:not(.print-body) .quick-total strong,
body:not(.print-body) .history-price-pill strong,
body:not(.print-body) .import-summary strong,
body:not(.print-body) .backup-status-time,
body:not(.print-body) .dashboard-more-link {
    color: var(--ottua-primary);
}

body:not(.print-body) input,
body:not(.print-body) select,
body:not(.print-body) textarea,
body:not(.print-body) .search-input,
body:not(.print-body) .payment-status-select,
body:not(.print-body) .variant-editor input {
    border-color: var(--ottua-border);
}

body:not(.print-body) .global-search-form button,
body:not(.print-body) .btn-primary,
.login-body .login-card button {
    border-color: var(--ottua-primary);
    background: var(--ottua-primary);
    color: #ffffff;
}

body:not(.print-body) .global-search-form button:hover,
body:not(.print-body) .btn-primary:hover,
.login-body .login-card button:hover {
    border-color: var(--ottua-primary-hover);
    background: var(--ottua-primary-hover);
}

body:not(.print-body) table th {
    background: var(--ottua-surface-muted);
}

body:not(.print-body) table th,
body:not(.print-body) table td {
    border-color: var(--ottua-border);
}

body:not(.print-body) .filter-tab.active,
body:not(.print-body) .finish-option.selected {
    border-color: var(--ottua-primary);
    background: var(--ottua-primary-soft);
    color: var(--ottua-primary);
}

body:not(.print-body) .history-price-tip {
    border-color: var(--ottua-primary-border);
    background: var(--ottua-primary-soft);
}

body:not(.print-body) .history-price-title {
    color: var(--ottua-primary);
}

body:not(.print-body) .history-price-pill {
    border-color: var(--ottua-primary-border);
    background: var(--ottua-surface);
    color: var(--ottua-text);
}

body:not(.print-body) .quick-order-form {
    background: var(--ottua-surface);
}

.login-body {
    background: linear-gradient(135deg, var(--ottua-primary), var(--ottua-primary-hover));
}

.login-card {
    background: var(--ottua-surface);
    box-shadow: 0 8px 24px rgba(32, 54, 50, 0.16);
}

.print-body {
    background: #e5e7eb;
    color: #111827;
}

.print-toolbar {
    display: flex;
    gap: 10px;
    justify-content: center;
    padding: 16px;
}

.a4-page {
    width: 210mm;
    min-height: 297mm;
    margin: 0 auto 24px;
    padding: 16mm;
    box-sizing: border-box;
    background: #fff;
    box-shadow: 0 8px 30px rgba(15, 23, 42, 0.18);
}

.print-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    border-bottom: 2px solid #0f4c81;
    padding-bottom: 14px;
}

.print-header h1 {
    margin: 0;
    color: #0f4c81;
    font-size: 28px;
}

.print-header p {
    margin: 4px 0 0;
    color: #6b7280;
}

.print-order-meta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
}

.print-order-meta strong {
    font-size: 18px;
}

.print-order-meta span {
    padding: 4px 10px;
    border-radius: 4px;
    background: #e8f1fa;
    color: #0f4c81;
}

.print-info-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin: 18px 0;
}

.print-info-grid div {
    border: 1px solid #dbe3ed;
    padding: 10px;
    min-height: 48px;
}

.print-info-grid span {
    display: block;
    color: #64748b;
    font-size: 12px;
    margin-bottom: 6px;
}

.print-table th,
.print-table td {
    font-size: 13px;
    vertical-align: middle;
}

.print-table .print-item-row.has-item-remark td {
    padding-bottom: 5px;
    border-bottom: 0;
}

.print-table .print-item-remark-row td {
    padding: 0 10px 9px;
    border-bottom: 1px solid #dbe3ed;
}

.print-item-remark {
    display: flex;
    align-items: baseline;
    gap: 7px;
    padding: 6px 8px;
    border-left: 2px solid #94a3b8;
    background: #f8fafc;
    color: #475569;
    font-size: 11.5px;
    line-height: 1.45;
}

.print-item-remark strong {
    flex: 0 0 auto;
    color: #334155;
}

.print-item-remark span {
    min-width: 0;
    overflow-wrap: anywhere;
    white-space: pre-line;
}

.bilingual-table th span {
    color: #64748b;
    font-size: 11px;
    font-weight: 500;
}

.bilingual-info-grid span {
    min-height: 28px;
}

.product-image-placeholder {
    width: 58px;
    height: 46px;
    border: 1px dashed #94a3b8;
    color: #94a3b8;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    line-height: 1.4;
    text-align: center;
}

.product-image-placeholder.large-placeholder {
    width: 86px;
    height: 70px;
}

.print-product-image {
    display: block;
    width: 86px;
    height: 70px;
    object-fit: contain;
    border: 1px solid #dbe3ed;
    background: #fff;
}

.print-summary {
    display: grid;
    grid-template-columns: 1fr 220px;
    gap: 18px;
    margin-top: 18px;
}

.print-summary h3 {
    margin: 0 0 8px;
}

.print-summary p {
    min-height: 70px;
    margin: 0;
    padding: 10px;
    border: 1px solid #dbe3ed;
}

.print-total-box {
    border: 1px solid #0f4c81;
    padding: 14px;
    text-align: right;
}

.print-total-box span {
    display: block;
    color: #64748b;
}

.print-total-box strong {
    font-size: 26px;
    color: #0f4c81;
}

.print-price-terms strong {
    display: block;
    font-size: 12.5px;
    line-height: 1.55;
}

.sales-print-summary {
    grid-template-columns: minmax(0, 1fr) 290px;
    break-inside: avoid;
    page-break-inside: avoid;
}

.sales-amount-breakdown {
    padding: 8px 12px;
    text-align: left;
}

.sales-amount-line {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: baseline;
    gap: 14px;
    padding: 7px 0;
}

.sales-amount-line + .sales-amount-line {
    border-top: 1px solid #dbe3ed;
}

.sales-amount-line span {
    margin: 0;
    font-size: 11.5px;
    line-height: 1.35;
}

.sales-amount-line strong {
    color: #111827;
    font-size: 15px;
    white-space: nowrap;
}

.sales-grand-total {
    margin-top: 2px;
    padding-top: 10px;
}

.sales-grand-total span {
    color: #0f4c81;
    font-weight: 700;
}

.sales-grand-total strong {
    color: #0f4c81;
    font-size: 22px;
}

.print-footer {
    display: flex;
    justify-content: space-between;
    margin-top: 26px;
    padding-top: 10px;
    border-top: 1px solid #dbe3ed;
    color: #64748b;
    font-size: 12px;
}

.sales-order-print {
    --sales-order-brand: #203632;
    --sales-order-ink: #1f2926;
    --sales-order-muted: #69736f;
    --sales-order-border: #d9e0dd;
    --sales-order-soft: #f4f6f5;
}

.sales-order-print .print-toolbar .btn-primary {
    border-color: var(--sales-order-brand);
    background: var(--sales-order-brand);
}

.sales-order-print .print-toolbar .btn-secondary {
    border-color: #b8c5c1;
    color: var(--sales-order-brand);
}

.sales-order-print .sales-order-document {
    color: var(--sales-order-ink);
}

.sales-order-print .sales-order-header {
    align-items: flex-end;
    border-bottom-color: var(--sales-order-brand);
    padding-bottom: 13px;
}

.sales-order-print .sales-order-brand {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.sales-order-print .sales-order-logo {
    display: block;
    width: 156px;
    max-width: 100%;
    height: auto;
    max-height: 30px;
    object-fit: contain;
    object-position: left center;
}

.sales-order-print .sales-order-brand h1 {
    margin: 7px 0 0;
    color: var(--sales-order-brand);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.2em;
    line-height: 1.2;
}

.sales-order-print .sales-order-brand p {
    margin: 4px 0 0;
    color: var(--sales-order-muted);
    font-size: 11.5px;
    letter-spacing: 0.025em;
}

.sales-order-print .print-order-meta strong {
    color: var(--sales-order-brand);
    font-size: 20px;
    letter-spacing: 0.015em;
}

.sales-order-print .print-order-meta small {
    color: var(--sales-order-muted);
    font-size: 8.5px;
    font-weight: 700;
    letter-spacing: 0.13em;
}

.sales-order-print .print-order-meta span {
    border: 1px solid #d4dedb;
    background: #f1f4f3;
    color: var(--sales-order-brand);
}

.sales-order-print .sales-order-info-sections {
    display: grid;
    grid-template-columns: 1.15fr 1fr 0.85fr;
    margin: 13px 0 15px;
    border: 1px solid var(--sales-order-border);
    border-top: 2px solid var(--sales-order-brand);
    border-radius: 4px;
    background: #fff;
    overflow: hidden;
    break-inside: avoid;
    page-break-inside: avoid;
}

.sales-order-print .sales-order-info-section {
    min-width: 0;
    padding: 9px 11px 10px;
}

.sales-order-print .sales-order-info-section + .sales-order-info-section {
    border-left: 1px solid var(--sales-order-border);
}

.sales-order-print .sales-order-info-section h2 {
    display: flex;
    align-items: baseline;
    gap: 6px;
    margin: 0 0 7px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--sales-order-border);
    color: var(--sales-order-brand);
    font-size: 11px;
    line-height: 1.2;
}

.sales-order-print .sales-order-info-section h2 span {
    color: var(--sales-order-muted);
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 0.08em;
}

.sales-order-print .sales-order-info-section dl {
    margin: 0;
}

.sales-order-print .sales-order-info-section dl > div {
    margin: 0 0 6px;
}

.sales-order-print .sales-order-info-section dl > div:last-child {
    margin-bottom: 0;
}

.sales-order-print .sales-order-info-section dt,
.sales-order-print .sales-order-date-pair small {
    display: block;
    margin-bottom: 2px;
    color: var(--sales-order-muted);
    font-size: 8.5px;
    font-weight: 500;
    line-height: 1.25;
}

.sales-order-print .sales-order-info-section dd {
    margin: 0;
    color: var(--sales-order-ink);
    font-size: 10px;
    font-weight: 650;
    line-height: 1.32;
    overflow-wrap: anywhere;
}

.sales-order-print .sales-order-address dd {
    font-weight: 500;
}

.sales-order-print .sales-order-customer-name dd {
    color: var(--sales-order-brand);
    font-size: 11.5px;
    font-weight: 750;
}

.sales-order-print .sales-order-date-pair {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.sales-order-print .sales-order-date-pair strong {
    display: block;
    font-size: 9.5px;
    line-height: 1.25;
}

.sales-order-print .sales-order-date-pair span:last-child strong {
    color: var(--sales-order-brand);
    font-size: 10.5px;
    font-weight: 750;
}

.sales-order-print .sales-order-commercial-total dd {
    color: var(--sales-order-brand);
    font-size: 14px;
    font-weight: 750;
}

.sales-order-print .sales-order-price-components {
    display: grid !important;
    gap: 0;
    margin-top: 4px !important;
    border-top: 1px solid var(--sales-order-border);
}

.sales-order-print .sales-order-price-components > span {
    display: grid;
    grid-template-columns: 62px minmax(0, 1fr);
    gap: 5px;
    align-items: baseline;
    margin: 0 !important;
    padding: 3px 0;
    border-bottom: 1px solid var(--sales-order-border);
}

.sales-order-print .sales-order-price-components small {
    color: var(--sales-order-muted);
    font-size: 8px;
    font-weight: 500;
}

.sales-order-print .sales-order-price-components strong {
    color: var(--sales-order-ink);
    font-size: 8.8px;
    line-height: 1.3;
}

.sales-order-print .print-info-grid div {
    border-color: var(--sales-order-border);
    background: #fff;
}

.sales-order-print .print-info-grid span,
.sales-order-print .bilingual-table th span,
.sales-order-print .sales-amount-line span {
    color: var(--sales-order-muted);
}

.sales-order-print .print-table th {
    border-top: 1px solid var(--sales-order-brand);
    border-bottom-color: #cbd5d2;
    background: var(--sales-order-soft);
    color: var(--sales-order-brand);
}

.sales-order-print .print-table td {
    border-bottom-color: var(--sales-order-border);
}

.sales-order-print .print-table .print-item-remark-row td {
    border-bottom-color: var(--sales-order-border);
}

.sales-order-print .print-item-remark {
    border-left-color: var(--sales-order-brand);
    background: #f6f8f7;
    color: #52605b;
}

.sales-order-print .print-item-remark strong {
    color: var(--sales-order-brand);
}

.sales-order-print .print-product-image {
    border-color: var(--sales-order-border);
}

.sales-order-print .print-summary h3 {
    color: var(--sales-order-brand);
}

.sales-order-print .print-summary p {
    border-color: var(--sales-order-border);
}

.sales-order-print .sales-order-execution-meta {
    margin: 0;
    border-top: 1px solid var(--sales-order-border);
}

.sales-order-print .sales-order-execution-meta > div {
    display: grid;
    grid-template-columns: 104px minmax(0, 1fr);
    gap: 8px;
    padding: 6px 0;
    border-bottom: 1px solid var(--sales-order-border);
}

.sales-order-print .sales-order-execution-meta dt {
    color: var(--sales-order-muted);
    font-size: 8px;
    font-weight: 500;
}

.sales-order-print .sales-order-execution-meta dd {
    margin: 0;
    color: var(--sales-order-ink);
    font-size: 9.5px;
    font-weight: 650;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.sales-order-print .sales-order-execution-remarks dd {
    font-weight: 500;
    white-space: pre-wrap;
}

.sales-order-print .sales-amount-breakdown {
    border-color: var(--sales-order-brand);
}

.sales-order-print .sales-amount-line + .sales-amount-line {
    border-top-color: var(--sales-order-border);
}

.sales-order-print .sales-amount-line strong {
    color: var(--sales-order-ink);
}

.sales-order-print .sales-grand-total span,
.sales-order-print .sales-grand-total strong {
    color: var(--sales-order-brand);
}

.sales-order-print .sales-order-footer {
    align-items: flex-end;
    gap: 24px;
    border-top-color: var(--sales-order-border);
    color: var(--sales-order-muted);
}

.sales-order-print .sales-order-footer-note {
    max-width: 62%;
    line-height: 1.55;
}

.sales-order-print .sales-order-footer-brand {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    text-align: right;
}

.sales-order-print .sales-order-footer-brand > strong {
    color: var(--sales-order-brand);
    font-size: 16px;
    letter-spacing: 0.14em;
}

.sales-order-print .sales-order-footer-brand > span {
    margin-top: 3px;
    color: var(--sales-order-ink);
    font-size: 11px;
}

.production-order-print {
    --production-order-brand: #203632;
    --production-order-ink: #202725;
    --production-order-muted: #68726f;
    --production-order-border: #d9e0dd;
    --production-order-soft: #f2f5f3;
}

.production-order-print .print-toolbar .btn-primary {
    border-color: var(--production-order-brand);
    background: var(--production-order-brand);
}

.production-order-print .print-toolbar .btn-secondary {
    border-color: #b8c5c1;
    color: var(--production-order-brand);
}

.production-order-print .production-order-document {
    color: var(--production-order-ink);
}

.production-order-print .production-order-header {
    align-items: flex-end;
    padding-bottom: 12px;
    border-bottom-color: var(--production-order-brand);
}

.production-order-brand {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.production-order-logo {
    display: block;
    width: 156px;
    max-width: 100%;
    height: auto;
    max-height: 30px;
    object-fit: contain;
    object-position: left center;
}

.production-order-print .production-order-brand h1 {
    margin: 7px 0 0;
    color: var(--production-order-brand);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.18em;
    line-height: 1.2;
}

.production-order-print .production-order-brand p {
    margin: 4px 0 0;
    color: var(--production-order-muted);
    font-size: 11.5px;
    letter-spacing: 0.025em;
}

.production-order-print .print-order-meta small {
    color: var(--production-order-muted);
    font-size: 10px;
    letter-spacing: 0.1em;
}

.production-order-print .print-order-meta strong {
    color: var(--production-order-brand);
}

.production-order-print .print-order-meta span {
    border: 1px solid #d4dedb;
    background: var(--production-order-soft);
    color: var(--production-order-brand);
}

.production-order-print .production-info-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin: 14px 0;
}

.production-order-print .production-info-grid div {
    min-height: 40px;
    padding: 8px;
    border-color: var(--production-order-border);
}

.production-order-print .production-info-grid span {
    margin-bottom: 4px;
    color: var(--production-order-muted);
}

.production-order-print .production-order-table th {
    border-top: 1px solid var(--production-order-brand);
    border-bottom-color: #cbd5d2;
    background: var(--production-order-soft);
    color: var(--production-order-brand);
}

.production-order-print .production-order-table td {
    border-bottom-color: var(--production-order-border);
}

.production-order-print .production-configuration-row td {
    padding: 7px 9px;
    color: #52635e;
    font-size: 10.5px;
    background: #f4f7f5;
}

.production-order-print .production-configuration-row span {
    margin-left: 14px;
}

.production-order-print .production-configuration-row strong {
    color: var(--production-order-brand);
}

.production-order-table th:nth-child(1) { width: 82px; }
.production-order-table th:nth-child(2) { width: 12%; }
.production-order-table th:nth-child(3) { width: 17%; }
.production-order-table th:nth-child(4) { width: 10%; }
.production-order-table th:nth-child(5) { width: 10%; }
.production-order-table th:nth-child(6) { width: 7%; }
.production-order-table th:nth-child(7) { width: 8%; }

.production-order-print .print-product-image,
.production-order-print .product-image-placeholder.large-placeholder {
    width: 72px;
    height: 58px;
    border-color: var(--production-order-border);
}

.production-order-print .production-notes {
    margin-top: 14px;
    break-inside: avoid;
    page-break-inside: avoid;
}

.production-order-print .production-notes h3 {
    margin: 0 0 6px;
    color: var(--production-order-brand);
    font-size: 14px;
}

.production-order-print .production-notes p {
    min-height: 48px;
    margin: 0;
    padding: 9px;
    border: 1px solid var(--production-order-border);
    white-space: pre-line;
}

.production-order-print .production-order-footer {
    align-items: flex-end;
    gap: 20px;
    margin-top: 18px;
    border-top-color: var(--production-order-border);
    color: var(--production-order-muted);
}

.production-order-footer-brand {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    text-align: right;
}

.production-order-footer-brand strong {
    color: var(--production-order-brand);
    font-size: 15px;
    letter-spacing: 0.14em;
}

.production-order-footer-brand small {
    margin-top: 2px;
    color: var(--production-order-ink);
    font-size: 10px;
}

.order-filter-groups {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
}

.admin-body .order-list-heading {
    margin-bottom: 12px;
}

.admin-body .order-list-heading h3,
.admin-body .order-list-heading .eyebrow {
    margin: 0;
}

.admin-body .order-result-count {
    margin: 0;
    color: var(--ottua-muted);
    font-size: 13px;
}

.admin-body .order-result-count strong {
    color: var(--ottua-primary);
    font-size: 17px;
}

.admin-body .order-search-panel {
    display: grid;
    gap: 12px;
    margin-bottom: 18px;
    padding: 15px 16px;
    border: 1px solid var(--ottua-border);
    border-left: 3px solid var(--ottua-primary);
    border-radius: 8px;
    background: var(--ottua-surface-muted);
}

.admin-body .order-search-primary {
    display: grid;
    grid-template-columns: minmax(280px, 1fr) minmax(170px, 220px);
    gap: 12px;
}

.admin-body .order-search-primary label,
.admin-body .order-search-secondary label {
    display: grid;
    gap: 5px;
    color: var(--ottua-muted);
    font-size: 11px;
    font-weight: 700;
}

.admin-body .order-search-primary input,
.admin-body .order-search-primary select,
.admin-body .order-search-secondary select {
    width: 100%;
    min-width: 0;
    background: #fff;
}

.admin-body .order-date-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 0;
    padding: 0;
    border: 0;
}

.admin-body .order-date-filter legend {
    float: left;
    min-width: 58px;
    padding: 7px 8px 0 0;
    color: var(--ottua-muted);
    font-size: 11px;
    font-weight: 700;
}

.admin-body .order-date-chip {
    position: relative;
    cursor: pointer;
}

.admin-body .order-date-chip input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.admin-body .order-date-chip span {
    display: inline-flex;
    min-height: 32px;
    align-items: center;
    padding: 5px 11px;
    border: 1px solid var(--ottua-border);
    border-radius: 16px;
    background: #fff;
    color: var(--ottua-muted);
    font-size: 12px;
    font-weight: 700;
}

.admin-body .order-date-chip.is-active span,
.admin-body .order-date-chip input:focus-visible + span {
    border-color: var(--ottua-primary-border);
    background: var(--ottua-primary-soft);
    color: var(--ottua-primary);
}

.admin-body .order-search-secondary {
    display: grid;
    grid-template-columns: minmax(150px, 220px) minmax(150px, 220px) 1fr;
    gap: 12px;
    align-items: end;
}

.admin-body .order-search-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

.admin-body .order-updated-cell {
    color: var(--ottua-muted);
    font-size: 11px;
    white-space: nowrap;
}

.admin-body .order-list-scroll {
    max-width: 100%;
    overflow-x: auto;
}

.admin-body .order-list-table {
    min-width: 1040px;
    font-size: 12px;
}

.admin-body .order-row-actions {
    display: flex;
    min-width: 132px;
    flex-wrap: wrap;
    gap: 5px 10px;
    align-items: center;
}

.admin-body .order-row-actions .btn-link {
    margin: 0;
    white-space: nowrap;
}

.admin-body .order-empty-row td {
    padding: 36px 18px;
    text-align: center;
}

.admin-body .order-empty-row td strong,
.admin-body .order-empty-row td span {
    display: block;
}

.admin-body .order-empty-row td span {
    margin: 6px 0 14px;
    color: var(--ottua-muted);
    font-size: 12px;
}

.order-progress-form {
    display: grid;
    grid-template-columns: minmax(92px, 1fr) minmax(128px, 1fr);
    gap: 6px;
    min-width: 230px;
}

.order-progress-form .btn-link {
    grid-column: 1 / -1;
    justify-self: start;
}

.order-progress-form select,
.order-progress-form input {
    min-width: 0;
    padding: 7px 8px;
}

.order-progress-date-editor {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.order-progress-date-editor[hidden] {
    display: none;
}

.order-progress-date-editor small {
    color: #64748b;
    font-size: 10px;
    font-weight: 650;
    line-height: 1;
}

.order-progress-date-editor input {
    width: 100%;
}

.status-pill {
    display: inline-block;
    padding: 4px 8px;
    border: 1px solid #bfd3e5;
    border-radius: 4px;
    background: #eef5fb;
    color: #15558a;
}

.status-pill + small {
    display: block;
    margin-top: 5px;
    color: #64748b;
}

.shipment-heading {
    align-items: flex-end;
}

.month-filter {
    display: flex;
    align-items: center;
    gap: 8px;
}

.month-filter input {
    width: 160px;
}

.shipment-summary,
.status-count-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    margin: 18px 0;
}

.shipment-summary > div,
.status-count-grid > div {
    border: 1px solid #dbe3ed;
    padding: 12px;
    background: #f8fafc;
}

.shipment-summary span,
.shipment-summary strong,
.status-count-grid span,
.status-count-grid strong {
    display: block;
}

.shipment-summary span,
.status-count-grid span {
    margin-bottom: 5px;
    color: #64748b;
    font-size: 13px;
}

.shipment-summary strong,
.status-count-grid strong {
    color: #0f4c81;
    font-size: 20px;
}

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

.shipment-table {
    min-width: 1080px;
}

.shipment-product-summary {
    min-width: 250px;
    white-space: normal;
    line-height: 1.6;
}

.empty-cell {
    padding: 36px 12px;
    color: #64748b;
    text-align: center;
}

.recent-shipment-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 10px;
}

.recent-shipment-list a {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 10px 12px;
    border-left: 3px solid #15558a;
    background: #f5f8fb;
    color: #1f2937;
    text-decoration: none;
}

.recent-shipment-list span {
    color: #64748b;
    font-size: 13px;
}

.health-overview {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 18px 0 24px;
    padding: 14px 16px;
    border: 1px solid #a7d4b6;
    background: #edf8f0;
    color: #23713b;
}

.health-overview.warning {
    border-color: #e5b0b0;
    background: #fff1f1;
    color: #a12828;
}

.system-status-table {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 24px;
    margin-bottom: 24px;
}

.system-status-table > div {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 11px 0;
    border-bottom: 1px solid #e5e7eb;
}

.system-status-table span {
    color: #64748b;
}

@media (max-width: 900px) {
    .order-list-heading,
    .shipment-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .order-filter-groups {
        align-items: flex-start;
    }

    .admin-body .order-search-primary,
    .admin-body .order-search-secondary {
        grid-template-columns: 1fr;
    }

    .admin-body .order-search-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .month-filter {
        flex-wrap: wrap;
    }

    .shipment-summary,
    .status-count-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .system-status-table {
        grid-template-columns: 1fr;
    }
}

/* OTTUA phase-one brand overrides for later screen-only components. */
body:not(.print-body) .status-pill {
    border-color: var(--ottua-primary-border);
    background: var(--ottua-primary-soft);
    color: var(--ottua-primary);
}

body:not(.print-body) .shipment-summary > div,
body:not(.print-body) .status-count-grid > div {
    border-color: var(--ottua-border);
    background: var(--ottua-surface-muted);
}

body:not(.print-body) .shipment-summary span,
body:not(.print-body) .status-count-grid span,
body:not(.print-body) .system-status-table span,
body:not(.print-body) .empty-cell,
body:not(.print-body) .status-pill + small {
    color: var(--ottua-muted);
}

body:not(.print-body) .shipment-summary strong,
body:not(.print-body) .status-count-grid strong {
    color: var(--ottua-primary);
}

body:not(.print-body) .recent-shipment-list a {
    border-left-color: var(--ottua-primary);
    background: var(--ottua-surface-muted);
    color: var(--ottua-text);
}

body:not(.print-body) .system-status-table > div {
    border-bottom-color: var(--ottua-border);
}

@media print {
    @page {
        size: A4;
        margin: 12mm;
    }

    html,
    body.print-body {
        margin: 0;
        padding: 0;
        background: #fff;
    }

    .print-toolbar {
        display: none;
    }

    .a4-page {
        width: 100%;
        min-height: auto;
        margin: 0;
        padding: 0;
        box-shadow: none;
    }

    .print-table {
        table-layout: fixed;
    }

    .print-table th,
    .print-table td {
        padding: 6px;
        font-size: 11.5px;
        overflow-wrap: anywhere;
    }

    .print-table .print-item-row.has-item-remark {
        break-after: avoid;
        page-break-after: avoid;
    }

    .print-table .print-item-remark-row {
        break-before: avoid;
        page-break-before: avoid;
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .print-table .print-item-remark-row td {
        padding: 0 6px 6px;
    }

    .print-item-remark {
        padding: 5px 7px;
        font-size: 10.5px;
    }

    .bilingual-table th span {
        font-size: 10px;
    }

    .print-product-image,
    .product-image-placeholder.large-placeholder {
        width: 70px;
        height: 58px;
    }

    .sales-order-print .sales-order-header,
    .sales-order-print .sales-print-summary,
    .sales-order-print .sales-order-footer {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .sales-order-print .sales-order-logo {
        width: 148px;
        max-height: 28px;
    }

    .production-order-print .production-order-document,
    .production-order-print .production-order-table th {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .production-order-print .production-order-header,
    .production-order-print .production-info-grid,
    .production-order-print .production-notes,
    .production-order-print .production-order-footer,
    .production-order-print .production-item-row {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .production-order-print .production-order-logo {
        width: 148px;
        max-height: 28px;
    }

    .production-order-print .production-info-grid {
        margin: 10px 0;
    }

    .production-order-print .production-order-table th,
    .production-order-print .production-order-table td {
        padding: 5px;
        font-size: 10.5px;
    }

    .production-order-print .print-product-image,
    .production-order-print .product-image-placeholder.large-placeholder {
        width: 62px;
        height: 50px;
    }

    .production-order-print .production-notes {
        margin-top: 10px;
    }

    .production-order-print .production-notes p {
        min-height: 34px;
        padding: 7px;
        font-size: 11px;
    }

    .production-order-print .production-order-footer {
        margin-top: 12px;
    }
}

/* V1.9 Phase 2.1: quotation bulk product matching */
.admin-body .quote-entry-page .quick-items-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.admin-body .quote-entry-page .quick-items-header .entry-section-title {
    width: auto;
    flex: 1 1 auto;
}

.admin-body .quote-entry-page #open-bulk-product-match {
    flex: 0 0 auto;
    white-space: nowrap;
}

.bulk-product-dialog {
    width: min(820px, calc(100vw - 48px));
    max-height: min(780px, calc(100vh - 48px));
    box-sizing: border-box;
    padding: 0;
    border: 1px solid var(--ottua-border);
    border-radius: 12px;
    background: var(--ottua-surface);
    color: var(--ottua-text);
    box-shadow: 0 22px 60px rgba(15, 32, 28, 0.24);
    overflow: auto;
}

.bulk-product-dialog::backdrop {
    background: rgba(19, 34, 31, 0.52);
}

.bulk-product-dialog-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    padding: 22px 24px 18px;
    border-bottom: 1px solid var(--ottua-border);
}

.bulk-product-dialog-header small {
    color: var(--ottua-muted);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.bulk-product-dialog-header h3 {
    margin: 4px 0 6px;
    color: var(--ottua-primary);
    font-size: 22px;
}

.bulk-product-dialog-header p {
    margin: 0;
    color: var(--ottua-muted);
    font-size: 13px;
    line-height: 1.6;
}

.bulk-product-dialog-close {
    width: 34px;
    height: 34px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--ottua-surface-muted);
    color: var(--ottua-muted);
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
}

.bulk-product-input-label,
.bulk-product-models,
.bulk-product-match-actions,
.bulk-product-error,
.bulk-product-summary,
.bulk-product-results {
    margin-right: 24px;
    margin-left: 24px;
}

.bulk-product-input-label {
    display: block;
    margin-top: 18px;
    margin-bottom: 7px;
    font-size: 13px;
    font-weight: 700;
}

.bulk-product-models {
    display: block;
    width: calc(100% - 48px);
    min-height: 142px;
    box-sizing: border-box;
    resize: vertical;
    font-family: Consolas, "Microsoft YaHei", monospace;
    line-height: 1.6;
}

.bulk-product-match-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-top: 10px;
}

.bulk-product-match-actions > span {
    color: var(--ottua-muted);
    font-size: 12px;
}

.bulk-product-error {
    margin-top: 12px;
    padding: 10px 12px;
    border: 1px solid #edc9c9;
    border-radius: 7px;
    background: #fff3f3;
    color: #9b2f2f;
    font-size: 13px;
}

.bulk-product-summary {
    margin-top: 16px;
    padding: 10px 12px;
    border-left: 3px solid var(--ottua-primary);
    background: var(--ottua-primary-soft);
    color: var(--ottua-primary);
    font-size: 13px;
    font-weight: 700;
}

.bulk-product-results {
    max-height: 285px;
    margin-top: 10px;
    overflow: auto;
    border-top: 1px solid var(--ottua-border);
}

.bulk-product-result {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 11px 8px;
    border-bottom: 1px solid var(--ottua-border);
}

.bulk-product-result.needs-variant {
    background: #fff8e8;
}

.bulk-product-result-status {
    color: var(--ottua-primary);
    font-size: 18px;
    font-weight: 800;
    text-align: center;
}

.bulk-product-result.is-not_found .bulk-product-result-status,
.bulk-product-result.is-duplicate .bulk-product-result-status {
    color: #a34a4a;
}

.bulk-product-result.is-ambiguous .bulk-product-result-status {
    color: #a77216;
}

.bulk-product-result-copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 3px;
}

.bulk-product-result-copy > strong {
    color: var(--ottua-text);
    font-size: 14px;
}

.bulk-product-result-copy > span,
.bulk-product-result-copy > small {
    color: var(--ottua-muted);
    font-size: 12px;
}

.bulk-product-variant-field {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: 4px;
    color: var(--ottua-muted);
    font-size: 12px;
}

.bulk-product-variant-field select {
    width: min(220px, 100%);
    padding: 6px 8px;
}

.bulk-product-result-choice {
    color: var(--ottua-primary);
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.bulk-product-dialog-footer {
    position: sticky;
    bottom: 0;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 16px;
    padding: 16px 24px 20px;
    border-top: 1px solid var(--ottua-border);
    background: var(--ottua-surface);
}

@media (max-width: 760px) {
    .bulk-product-dialog {
        width: calc(100vw - 24px);
    }

    .bulk-product-match-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .bulk-product-result {
        grid-template-columns: 28px minmax(0, 1fr);
    }

    .bulk-product-result-choice {
        grid-column: 2;
    }
}

/* Product Asset Library */
.product-asset-count {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 2px 8px;
    border-radius: 999px;
    background: #eef3f1;
    color: #38514b;
    font-size: 12px;
    white-space: nowrap;
}

.product-assets-section {
    margin-top: 20px;
}

.product-assets-heading,
.product-assets-heading-actions,
.product-asset-group-heading,
.product-asset-title-line,
.product-asset-actions {
    display: flex;
    align-items: center;
}

.product-assets-heading {
    gap: 20px;
}

.product-assets-heading-actions {
    gap: 14px;
    margin-left: auto;
    white-space: nowrap;
}

.product-assets-heading-actions > span {
    color: #5f706c;
    font-size: 13px;
    font-weight: 700;
}

.product-assets-checklist {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 14px 0 18px;
}

.product-assets-checklist span {
    padding: 5px 9px;
    border-radius: 4px;
    background: #f4f6f5;
    color: #677570;
    font-size: 12px;
}

.product-assets-checklist .complete {
    background: #e8f2ee;
    color: #27614e;
}

.product-assets-checklist .missing {
    background: #f7f1ec;
    color: #8a6145;
}

.product-assets-checklist .coverage {
    background: transparent;
    border: 1px solid #d9e1de;
}

.product-asset-upload-panel,
.product-asset-edit-details {
    border: 1px solid #dce4e1;
    border-radius: 6px;
    background: #fbfcfc;
}

.product-asset-upload-panel {
    margin-bottom: 18px;
}

.product-asset-upload-panel > summary,
.product-asset-edit-details > summary {
    cursor: pointer;
    color: #203632;
    font-weight: 700;
}

.product-asset-upload-panel > summary {
    padding: 11px 14px;
}

.product-asset-upload-form {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    padding: 0 14px 14px;
    border-top: 1px solid #e5ebe9;
}

.product-asset-upload-form label,
.product-asset-edit-form label {
    display: grid;
    gap: 5px;
    color: #5c6d68;
    font-size: 12px;
    font-weight: 600;
}

.product-asset-fixed-product {
    grid-column: 1 / -1;
    display: flex;
    gap: 10px;
    align-items: baseline;
    padding-top: 12px;
}

.product-asset-fixed-product span {
    color: #77837f;
    font-size: 12px;
}

.product-asset-file-field {
    grid-column: span 2;
}

.product-asset-primary-field {
    grid-column: 1 / -1;
    display: flex !important;
    grid-template-columns: none !important;
    align-items: center;
    gap: 8px !important;
    font-weight: 400 !important;
}

.product-asset-primary-field input {
    width: auto;
}

.product-asset-upload-form > .btn {
    justify-self: start;
}

.product-assets-groups {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.product-asset-group {
    min-width: 0;
    border-top: 1px solid #cdd8d4;
}

.product-asset-group-heading {
    justify-content: space-between;
    gap: 12px;
    padding: 11px 0 8px;
}

.product-asset-group-heading h5,
.product-asset-group-heading h6,
.product-color-asset-group h6 {
    margin: 0;
    color: #203632;
    font-size: 13px;
    letter-spacing: 0.025em;
}

.product-asset-group-heading > span {
    color: #7b8985;
    font-size: 12px;
}

.product-asset-row {
    display: grid;
    grid-template-columns: 66px minmax(0, 1fr) auto;
    gap: 11px;
    align-items: center;
    min-height: 78px;
    padding: 8px 0;
    border-top: 1px solid #edf0ef;
}

.product-asset-row.archived {
    opacity: 0.68;
}

.product-asset-preview {
    display: grid;
    place-items: center;
    width: 64px;
    height: 64px;
    overflow: hidden;
    border: 1px solid #e1e7e5;
    border-radius: 5px;
    background: #f7f9f8;
}

.product-asset-preview a,
.product-asset-preview img {
    display: block;
    width: 100%;
    height: 100%;
}

.product-asset-preview img {
    object-fit: contain;
}

.product-asset-file-icon {
    color: #556963;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.product-asset-info {
    min-width: 0;
}

.product-asset-title-line {
    flex-wrap: wrap;
    gap: 6px;
}

.product-asset-info strong,
.product-asset-info > span,
.product-asset-info small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.product-asset-info strong {
    color: #203632;
    font-size: 13px;
}

.product-asset-info > span {
    margin-top: 3px;
    color: #64736f;
    font-size: 12px;
}

.product-asset-info small {
    margin-top: 3px;
    color: #8a9592;
    font-size: 11px;
}

.product-asset-status {
    padding: 2px 5px;
    border-radius: 3px;
    background: #e7f0ed;
    color: #356453;
    font-size: 10px;
    font-weight: 700;
}

.product-asset-status.archived {
    background: #eee;
    color: #696969;
}

.product-asset-actions {
    position: relative;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
    max-width: 170px;
}

.product-asset-actions form {
    margin: 0;
}

.product-asset-actions .danger {
    color: #a04b47;
}

.product-asset-edit-details {
    position: relative;
    background: #fff;
}

.product-asset-edit-details > summary {
    padding: 3px 7px;
    font-size: 12px;
}

.product-asset-edit-details[open] .product-asset-edit-form {
    position: absolute;
    z-index: 8;
    right: 0;
    top: calc(100% + 5px);
    width: 300px;
    padding: 12px;
    border: 1px solid #cfdad6;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(32, 54, 50, 0.14);
}

.product-asset-edit-form {
    display: grid;
    gap: 9px;
}

.product-color-assets {
    margin-top: 22px;
    border-top: 2px solid #203632;
}

.product-color-asset-group {
    padding: 8px 0 2px;
    border-top: 1px solid #e7ecea;
}

.product-color-asset-group > h6 {
    padding-bottom: 3px;
}

.product-asset-empty {
    margin: 0;
    padding: 12px 0;
    color: #929d99;
    font-size: 12px;
}

@media (max-width: 980px) {
    .product-assets-groups,
    .product-asset-upload-form {
        grid-template-columns: 1fr;
    }

    .product-asset-file-field,
    .product-asset-fixed-product,
    .product-asset-primary-field {
        grid-column: auto;
    }
}

@media (max-width: 720px) {
    .product-assets-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .product-assets-heading-actions {
        margin-left: 0;
    }

    .product-asset-row {
        grid-template-columns: 58px minmax(0, 1fr);
    }

    .product-asset-preview {
        width: 56px;
        height: 56px;
    }

    .product-asset-actions {
        grid-column: 1 / -1;
        justify-content: flex-start;
        max-width: none;
    }
}

/* V1.8 RC order payment integration. Kept inside the admin UI only. */
.admin-body .order-status-date-cell small,
.admin-body .order-status-date-cell strong,
.admin-body .order-payment-cell small {
    display: block;
}

.admin-body .order-status-date-cell small,
.admin-body .order-payment-cell small,
.admin-body .legacy-payment-note {
    margin-top: 3px;
    color: var(--ottua-muted);
    font-size: 11px;
    font-weight: 500;
    line-height: 1.35;
}

.admin-body .order-status-date-cell strong {
    margin-top: 3px;
    color: var(--ottua-primary);
    font-size: 13px;
}

.admin-body .payment-summary-status {
    display: inline-flex;
    gap: 5px;
    align-items: center;
    font-weight: 750;
    white-space: nowrap;
}

.admin-body .payment-status-paid {
    color: #187347;
}

.admin-body .payment-status-partial {
    color: #9a6a00;
}

.admin-body .payment-status-unpaid {
    color: #69736f;
}

.admin-body .payment-overpaid {
    color: #8b5a00 !important;
    font-weight: 700 !important;
}

.admin-body .order-payment-records {
    margin: 22px 0;
    padding: 20px;
    border: 1px solid var(--ottua-border);
    border-top: 3px solid var(--ottua-primary);
    border-radius: 14px;
    background: #fff;
}

.admin-body .order-payment-heading {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    margin-bottom: 16px;
}

.admin-body .order-payment-heading h4,
.admin-body .order-payment-heading p {
    margin: 0;
}

.admin-body .order-payment-heading h4 {
    color: var(--ottua-primary);
}

.admin-body .order-payment-heading h4 span {
    margin-left: 7px;
    color: var(--ottua-muted);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
}

.admin-body .order-payment-heading p {
    margin-top: 5px;
    color: var(--ottua-muted);
    font-size: 12px;
}

.admin-body .order-payment-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.admin-body .order-payment-summary-grid > div {
    min-width: 0;
    padding: 13px 14px;
    border-radius: 9px;
    background: var(--ottua-surface-muted);
}

.admin-body .order-payment-summary-grid small,
.admin-body .order-payment-summary-grid strong,
.admin-body .order-payment-summary-grid em {
    display: block;
}

.admin-body .order-payment-summary-grid small {
    color: var(--ottua-muted);
    font-size: 11px;
    font-weight: 650;
}

.admin-body .order-payment-summary-grid strong {
    margin-top: 5px;
    color: var(--ottua-primary);
    font-size: 18px;
    overflow-wrap: anywhere;
}

.admin-body .order-payment-summary-grid em {
    margin-top: 4px;
    color: #8b5a00;
    font-size: 11px;
    font-style: normal;
    font-weight: 700;
}

.admin-body .order-payment-progress {
    height: 6px;
    margin: 11px 0 17px;
    overflow: hidden;
    border-radius: 999px;
    background: #e6ece9;
}

.admin-body .order-payment-progress span {
    display: block;
    height: 100%;
    max-width: 100%;
    border-radius: inherit;
    background: var(--ottua-primary);
}

.admin-body .order-payment-table-wrap {
    margin-top: 16px;
    overflow-x: auto;
}

.admin-body .order-payment-table {
    margin: 0;
}

.admin-body .order-payment-table td {
    vertical-align: top;
}

.admin-body .order-payment-table td small,
.admin-body .payment-file-link {
    display: block;
    margin-top: 4px;
    font-size: 11px;
}

.admin-body .payment-file-link {
    color: var(--ottua-primary);
    overflow-wrap: anywhere;
}

.admin-body .payment-row-voided {
    color: #7f8885;
    background: #f7f8f8;
}

.admin-body .payment-row-voided > td:not(:last-child) {
    opacity: 0.78;
}

.admin-body .payment-voided-badge {
    display: inline-flex !important;
    width: fit-content;
    padding: 2px 6px;
    border-radius: 999px;
    background: #ecefed;
    color: #69736f;
    font-size: 10px !important;
    font-weight: 700;
}

.admin-body .payment-entry-page {
    max-width: 980px;
    margin: 0 auto;
}

.admin-body .payment-entry-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(420px, 0.9fr);
    gap: 24px;
    align-items: end;
    padding: 20px;
    border-top: 3px solid var(--ottua-primary);
    border-radius: 12px;
    background: var(--ottua-surface-muted);
}

.admin-body .payment-entry-header small,
.admin-body .payment-entry-header p,
.admin-body .payment-entry-header h2 {
    margin: 0;
}

.admin-body .payment-entry-header > div > small {
    color: var(--ottua-muted);
    font-weight: 700;
    letter-spacing: 0.1em;
}

.admin-body .payment-entry-header h2 {
    margin-top: 4px;
    color: var(--ottua-primary);
}

.admin-body .payment-entry-header p {
    margin-top: 5px;
    color: var(--ottua-muted);
}

.admin-body .payment-entry-header dl {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
}

.admin-body .payment-entry-header dl > div {
    padding: 10px;
    border-radius: 8px;
    background: #fff;
}

.admin-body .payment-entry-header dt {
    color: var(--ottua-muted);
    font-size: 10px;
    font-weight: 650;
}

.admin-body .payment-entry-header dd {
    margin: 4px 0 0;
    color: var(--ottua-primary);
    font-size: 15px;
    font-weight: 750;
}

.admin-body .payment-entry-form {
    margin-top: 18px;
}

.admin-body .form-error {
    padding: 10px 12px;
    border-radius: 7px;
    background: #fff0f0;
    color: #9b2f2f;
    font-weight: 650;
}

@media (max-width: 1050px) {
    .admin-body .order-payment-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-body .payment-entry-header {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .admin-body .order-payment-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-body .order-payment-summary-grid,
    .admin-body .payment-entry-header dl {
        grid-template-columns: 1fr;
    }
}

/* Quick order sales workbench (screen/admin only). */
@media screen {
    .admin-body .quick-order-entry-page {
        width: 100%;
        min-width: 0;
        padding: 0;
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    .admin-body .quick-order-entry-page .quick-workbench-heading {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 20px;
        margin-bottom: 18px;
    }

    .admin-body .quick-order-entry-page .quick-workbench-heading h2 {
        margin: 2px 0 4px;
        color: var(--ottua-primary);
        font-size: clamp(24px, 2.1vw, 32px);
        line-height: 1.15;
    }

    .admin-body .quick-order-entry-page .quick-workbench-heading p,
    .admin-body .quick-order-entry-page .quick-section-heading p {
        margin: 0;
        color: var(--ottua-muted);
        font-size: 13px;
        line-height: 1.5;
    }

    .admin-body .quick-order-entry-page .quick-workbench-kicker,
    .admin-body .quick-order-entry-page .quick-section-heading > div > span {
        color: var(--ottua-primary);
        font-size: 11px;
        font-weight: 800;
        letter-spacing: 0.12em;
    }

    .admin-body .quick-order-entry-page .quick-order-form {
        min-width: 0;
        margin: 0;
        padding: 0;
        border: 0;
        background: transparent;
    }

    .admin-body .quick-order-entry-page .quick-workbench-top {
        display: grid;
        grid-template-columns: minmax(320px, 0.88fr) minmax(420px, 1.12fr);
        gap: 16px;
        min-width: 0;
    }

    .admin-body .quick-order-entry-page .quick-workbench-card {
        min-width: 0;
        padding: 18px;
        border: 1px solid var(--ottua-border);
        border-radius: 12px;
        background: var(--ottua-surface);
        box-shadow: 0 4px 16px rgba(32, 54, 50, 0.055);
    }

    .admin-body .quick-order-entry-page .quick-section-heading {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 14px;
        margin-bottom: 15px;
    }

    .admin-body .quick-order-entry-page .quick-section-heading h3 {
        margin: 2px 0 1px;
        color: var(--ottua-primary);
        font-size: 16px;
        line-height: 1.3;
    }

    .admin-body .quick-order-entry-page .quick-inline-action {
        flex: 0 0 auto;
        padding: 7px 10px;
        border: 1px solid var(--ottua-primary-border);
        border-radius: 7px;
        background: var(--ottua-primary-soft);
        color: var(--ottua-primary);
        font-size: 12px;
        font-weight: 700;
        text-decoration: none;
    }

    .admin-body .quick-order-entry-page .quick-inline-action:hover {
        border-color: var(--ottua-primary);
        background: var(--ottua-primary);
        color: #fff;
    }

    .admin-body .quick-order-entry-page .quick-customer-search-field,
    .admin-body .quick-order-entry-page .quick-order-field-grid label,
    .admin-body .quick-order-entry-page .quick-order-remarks {
        display: flex;
        min-width: 0;
        flex-direction: column;
        gap: 6px;
        color: var(--ottua-text);
        font-size: 13px;
        font-weight: 650;
    }

    .admin-body .quick-order-entry-page .quick-customer-search-field input {
        min-height: 44px;
        padding: 10px 12px;
        border-color: var(--ottua-primary-border);
        font-size: 15px;
        font-weight: 700;
    }

    .admin-body .quick-order-entry-page .quick-customer-preview {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0 18px;
        margin-top: 14px;
        padding: 12px 14px;
        border: 1px solid var(--ottua-border);
        border-radius: 8px;
        background: var(--ottua-surface-muted);
    }

    .admin-body .quick-order-entry-page .quick-customer-preview > div {
        min-width: 0;
        padding: 7px 0;
        border-bottom: 1px solid var(--ottua-border);
    }

    .admin-body .quick-order-entry-page .quick-customer-preview > div:nth-last-child(-n + 2) {
        border-bottom: 0;
    }

    .admin-body .quick-order-entry-page .quick-customer-preview span,
    .admin-body .quick-order-entry-page .quick-customer-preview strong {
        display: block;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .admin-body .quick-order-entry-page .quick-customer-preview span {
        margin-bottom: 3px;
        color: var(--ottua-muted);
        font-size: 11px;
    }

    .admin-body .quick-order-entry-page .quick-customer-preview strong {
        color: var(--ottua-text);
        font-size: 13px;
    }

    .admin-body .quick-order-entry-page .quick-customer-preview.is-empty strong {
        color: var(--ottua-muted);
        font-weight: 500;
    }

    .admin-body .quick-order-entry-page .quick-order-field-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 12px;
    }

    .admin-body .quick-order-entry-page .quick-order-field-grid label:first-child,
    .admin-body .quick-order-entry-page .quick-order-field-grid label:nth-child(4) {
        grid-column: span 2;
    }

    .admin-body .quick-order-entry-page .quick-order-field-grid input,
    .admin-body .quick-order-entry-page .quick-order-field-grid select {
        width: 100%;
        min-width: 0;
        min-height: 38px;
        padding: 8px 9px;
    }

    .admin-body .quick-order-entry-page .quick-commercial-card {
        display: grid;
        grid-template-columns: minmax(0, 1.55fr) minmax(240px, 0.45fr);
        gap: 14px 16px;
        margin-top: 16px;
    }

    .admin-body .quick-order-entry-page .quick-commercial-card > .quick-section-heading {
        grid-column: 1 / -1;
        margin-bottom: 0;
        padding-bottom: 12px;
        border-bottom: 1px solid var(--ottua-border);
    }

    .admin-body .quick-order-entry-page .quick-section-heading-horizontal {
        align-items: flex-end;
    }

    .admin-body .quick-order-entry-page .quick-price-conditions {
        width: 100%;
        box-sizing: border-box;
        background: var(--ottua-surface-muted);
    }

    .admin-body .quick-order-entry-page .quick-order-remarks textarea {
        min-height: 122px;
        resize: vertical;
    }

    .admin-body .quick-order-entry-page .quick-items-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 18px;
        margin: 22px 0 12px;
        padding: 15px 18px;
        border: 1px solid var(--ottua-border);
        border-left: 4px solid var(--ottua-primary);
        border-radius: 10px;
        background: var(--ottua-surface);
    }

    .admin-body .quick-order-entry-page .quick-items-header .quick-section-heading {
        margin: 0;
    }

    .admin-body .quick-order-entry-page .quick-items-header .btn {
        flex: 0 0 auto;
        min-height: 40px;
    }

    .admin-body .quick-order-entry-page #quick-items {
        min-width: 0;
    }

    .admin-body .quick-order-entry-page .quick-item-row {
        min-width: 0;
        margin-bottom: 12px;
        padding: 14px;
        border: 1px solid var(--ottua-border);
        border-left: 4px solid var(--ottua-primary-border);
        border-radius: 10px;
        background: var(--ottua-surface);
        box-shadow: 0 3px 12px rgba(32, 54, 50, 0.055);
        transition: border-color 0.15s ease, box-shadow 0.15s ease;
    }

    .admin-body .quick-order-entry-page .quick-item-row:focus-within,
    .admin-body .quick-order-entry-page .quick-item-row.quick-collapsed {
        border-left-color: var(--ottua-primary);
        box-shadow: 0 5px 18px rgba(32, 54, 50, 0.09);
    }

    .admin-body .quick-order-entry-page .quick-item-editor {
        display: grid;
        grid-template-columns: 82px minmax(0, 1fr);
        gap: 14px;
        min-width: 0;
    }

    .admin-body .quick-order-entry-page .quick-item-editor-image {
        display: flex;
        width: 80px;
        height: 80px;
        align-items: center;
        justify-content: center;
        overflow: hidden;
        border: 1px solid var(--ottua-border);
        border-radius: 8px;
        background: var(--ottua-surface-muted);
        color: var(--ottua-muted);
        font-size: 11px;
    }

    .admin-body .quick-order-entry-page .quick-item-editor-image img {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

    .admin-body .quick-order-entry-page .compact-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 10px 12px;
        min-width: 0;
    }

    .admin-body .quick-order-entry-page .compact-grid label,
    .admin-body .quick-order-entry-page .compact-grid .quick-field-quantity {
        min-width: 0;
        gap: 5px;
        color: var(--ottua-muted);
        font-size: 12px;
    }

    .admin-body .quick-order-entry-page .compact-grid input,
    .admin-body .quick-order-entry-page .compact-grid select,
    .admin-body .quick-order-entry-page .compact-grid textarea {
        width: 100%;
        min-width: 0;
        min-height: 36px;
        padding: 7px 8px;
    }

    .admin-body .quick-order-entry-page .quick-field-model {
        grid-column: span 2;
        position: relative;
        z-index: 4;
    }

    .admin-body .quick-order-entry-page .quick-product-suggestions {
        position: absolute;
        top: calc(100% + 4px);
        right: 0;
        left: 0;
        z-index: 30;
        display: grid;
        max-height: 324px;
        overflow-y: auto;
        padding: 6px;
        border: 1px solid var(--ottua-primary-border);
        border-radius: 9px;
        background: #fff;
        box-shadow: 0 12px 30px rgba(32, 54, 50, 0.18);
    }

    .admin-body .quick-order-entry-page .quick-product-suggestions[hidden] {
        display: none;
    }

    .admin-body .quick-order-entry-page .quick-product-suggestion {
        display: grid;
        grid-template-columns: 56px minmax(0, 1fr);
        gap: 10px;
        width: 100%;
        align-items: center;
        padding: 7px;
        border: 0;
        border-bottom: 1px solid var(--ottua-border);
        border-radius: 6px;
        background: #fff;
        color: var(--ottua-text);
        font: inherit;
        text-align: left;
        cursor: pointer;
    }

    .admin-body .quick-order-entry-page .quick-product-suggestion:last-child {
        border-bottom: 0;
    }

    .admin-body .quick-order-entry-page .quick-product-suggestion:hover,
    .admin-body .quick-order-entry-page .quick-product-suggestion:focus-visible {
        background: var(--ottua-primary-soft);
        outline: 0;
    }

    .admin-body .quick-order-entry-page .quick-product-suggestion-image {
        display: flex;
        width: 54px;
        height: 54px;
        align-items: center;
        justify-content: center;
        overflow: hidden;
        border: 1px solid var(--ottua-border);
        border-radius: 6px;
        background: var(--ottua-surface-muted);
        color: var(--ottua-muted);
        font-size: 9px;
    }

    .admin-body .quick-order-entry-page .quick-product-suggestion-image img {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

    .admin-body .quick-order-entry-page .quick-product-suggestion-copy,
    .admin-body .quick-order-entry-page .quick-product-suggestion-copy strong,
    .admin-body .quick-order-entry-page .quick-product-suggestion-copy small {
        display: block;
        min-width: 0;
    }

    .admin-body .quick-order-entry-page .quick-product-suggestion-copy strong {
        color: var(--ottua-primary);
        font-size: 14px;
    }

    .admin-body .quick-order-entry-page .quick-product-suggestion-copy > span {
        display: block;
        overflow: hidden;
        margin-top: 2px;
        font-size: 12px;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .admin-body .quick-order-entry-page .quick-product-suggestion-copy small {
        overflow: hidden;
        margin-top: 3px;
        color: var(--ottua-muted);
        font-size: 10px;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .admin-body .quick-order-entry-page .quick-field-model input,
    .admin-body .quick-order-entry-page .quick-field-quantity input,
    .admin-body .quick-order-entry-page .quick-unit-price-field input,
    .admin-body .quick-order-entry-page .quick-field-subtotal input {
        border-color: var(--ottua-primary-border);
        color: var(--ottua-text);
        font-weight: 700;
    }

    .admin-body .quick-order-entry-page .quick-field-category select {
        background: var(--ottua-surface-muted);
        color: var(--ottua-muted);
    }

    .admin-body .quick-order-entry-page .quick-field-subtotal input[readonly] {
        background: var(--ottua-primary-soft);
        color: var(--ottua-primary);
    }

    .admin-body .quick-order-entry-page .compact-grid .quick-field-remarks {
        grid-column: span 3;
    }

    .admin-body .quick-order-entry-page .quick-field-remarks textarea {
        min-height: 54px;
        resize: vertical;
    }

    .admin-body .quick-order-entry-page .quick-quantity-stepper {
        display: grid;
        grid-template-columns: 44px minmax(0, 1fr) 44px;
        width: 100%;
        overflow: hidden;
        border: 1px solid var(--ottua-primary-border);
        border-radius: 7px;
        background: var(--ottua-surface);
        box-sizing: border-box;
    }

    .admin-body .quick-order-entry-page .quick-quantity-stepper button {
        position: relative;
        width: 44px;
        min-width: 44px;
        max-width: 44px;
        min-height: 44px;
        margin: 0;
        padding: 0;
        border: 0;
        background: var(--ottua-surface-muted);
        color: var(--ottua-primary);
        font-size: 18px;
        font-weight: 800;
        cursor: pointer;
    }

    .admin-body .quick-order-entry-page .quick-quantity-stepper button:hover {
        background: var(--ottua-primary-soft);
    }

    .admin-body .quick-order-entry-page .quick-quantity-stepper input {
        position: relative;
        width: 100%;
        min-width: 0;
        min-height: 44px;
        padding: 5px 2px;
        border: 0;
        border-right: 1px solid var(--ottua-border);
        border-left: 1px solid var(--ottua-border);
        border-radius: 0;
        text-align: center;
        box-shadow: none;
    }

    .admin-body .quick-order-entry-page .quick-quantity::-webkit-inner-spin-button,
    .admin-body .quick-order-entry-page .quick-quantity::-webkit-outer-spin-button {
        margin: 0;
        appearance: none;
    }

    .admin-body .quick-order-entry-page .quick-quantity {
        appearance: textfield;
    }

    .admin-body .quick-order-entry-page .quick-item-edit-actions {
        margin-top: 10px;
        padding-top: 10px;
    }

    .admin-body .quick-order-entry-page .quick-item-summary {
        min-height: 78px;
        padding: 10px 12px;
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    .admin-body .quick-order-entry-page .quick-item-summary-image {
        flex-basis: 72px;
        width: 72px;
        height: 72px;
        border-radius: 7px;
    }

    .admin-body .quick-order-entry-page .quick-item-summary-main {
        grid-template-columns: minmax(140px, 1.45fr) minmax(75px, 0.8fr) minmax(80px, 0.9fr) minmax(58px, 0.55fr) minmax(76px, 0.8fr) minmax(86px, 0.9fr);
        gap: 10px;
    }

    .admin-body .quick-order-entry-page .quick-item-summary-product strong,
    .admin-body .quick-order-entry-page .quick-item-summary-cell:last-of-type strong {
        color: var(--ottua-primary);
        font-size: 15px;
    }

    .admin-body .quick-order-entry-page .history-price-tip {
        margin-top: 10px;
    }

    .admin-body .quick-order-entry-page .entry-amount-header {
        margin-top: 20px;
    }

    .admin-body .quick-order-entry-page .quick-order-main-actions {
        align-items: center;
        flex-wrap: wrap;
    }

    .admin-body .quick-order-entry-page .quick-reset-draft {
        padding: 6px 4px;
        border: 0;
        background: transparent;
        color: var(--ottua-muted);
        font: inherit;
        font-size: 12px;
        text-decoration: underline;
        cursor: pointer;
    }

    .admin-body .quick-order-entry-page .quick-draft-status {
        min-width: 120px;
        color: var(--ottua-primary);
        font-size: 12px;
        font-weight: 650;
    }

    .admin-body .quick-order-sticky-summary {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 14px;
        min-width: 0;
        padding: 10px 14px;
        border-top: 3px solid var(--ottua-primary);
    }

    .admin-body .quick-order-sticky-metrics {
        display: grid;
        grid-template-columns: repeat(4, minmax(82px, 1fr));
        gap: 4px 12px;
        min-width: 0;
    }

    .admin-body .quick-order-sticky-metric {
        min-width: 0;
        color: var(--ottua-muted);
        font-size: 10px;
        font-weight: 700;
        letter-spacing: 0.06em;
    }

    .admin-body .quick-order-sticky-metric strong {
        overflow: hidden;
        color: var(--ottua-text);
        font-size: 16px;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .admin-body .quick-order-sticky-metric.is-total strong {
        color: var(--ottua-primary);
        font-size: 20px;
    }

    .admin-body .quick-order-sticky-terms {
        grid-column: 1 / -1;
        gap: 4px;
    }

    .admin-body .quick-order-sticky-terms span {
        padding: 2px 7px;
        font-size: 10px;
    }

    .admin-body .quick-order-sticky-actions {
        gap: 7px;
    }

    .admin-body .quick-order-sticky-actions button {
        min-height: 36px;
        padding: 8px 11px;
        font-size: 12px;
    }
}

@media screen and (max-width: 1180px) {
    .admin-body .quick-order-entry-page .quick-workbench-top,
    .admin-body .quick-order-entry-page .quick-commercial-card {
        grid-template-columns: 1fr;
    }

    .admin-body .quick-order-entry-page .quick-commercial-card > .quick-section-heading {
        grid-column: 1;
    }

    .admin-body .quick-order-entry-page .compact-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .admin-body .quick-order-entry-page .quick-field-model,
    .admin-body .quick-order-entry-page .compact-grid .quick-field-remarks {
        grid-column: span 2;
    }

    .admin-body .quick-order-entry-page .quick-item-summary-main {
        grid-template-columns: minmax(140px, 1.4fr) repeat(5, minmax(64px, 1fr));
    }

    .admin-body .quick-order-sticky-summary {
        grid-template-columns: 1fr;
    }

    .admin-body .quick-order-sticky-actions {
        justify-content: flex-end;
    }
}

@media screen and (max-width: 760px) {
    .admin-body .quick-order-entry-page .quick-workbench-heading,
    .admin-body .quick-order-entry-page .quick-items-header,
    .admin-body .quick-order-entry-page .quick-section-heading-horizontal {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-body .quick-order-entry-page .quick-order-field-grid,
    .admin-body .quick-order-entry-page .compact-grid {
        grid-template-columns: 1fr;
    }

    .admin-body .quick-order-entry-page .quick-order-field-grid label:first-child,
    .admin-body .quick-order-entry-page .quick-order-field-grid label:nth-child(4),
    .admin-body .quick-order-entry-page .quick-field-model,
    .admin-body .quick-order-entry-page .compact-grid .quick-field-remarks {
        grid-column: auto;
    }

    .admin-body .quick-order-entry-page .quick-item-editor {
        grid-template-columns: 1fr;
    }

    .admin-body .quick-order-entry-page .quick-item-summary-main {
        grid-template-columns: repeat(2, minmax(90px, 1fr));
    }

    .admin-body .quick-order-sticky-metrics {
        grid-template-columns: repeat(2, minmax(82px, 1fr));
    }

    .admin-body .quick-order-sticky-actions {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media screen {
    .dashboard-page {
        --dashboard-border: #e2e8e4;
        --dashboard-soft: #f6f8f6;
        --dashboard-muted: #68756f;
        display: grid;
        gap: 20px;
    }

    .dashboard-page .dashboard-priority-grid {
        display: grid;
        grid-template-columns: repeat(5, minmax(160px, 1fr));
        gap: 16px;
    }

    .dashboard-page .dashboard-priority-card {
        min-height: 132px;
        display: flex;
        flex-direction: column;
        padding: 18px;
        border: 1px solid var(--dashboard-border);
        box-shadow: 0 5px 16px rgba(32, 54, 50, 0.055);
        color: #203632;
        text-decoration: none;
        transition: transform 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
    }

    .dashboard-page .dashboard-priority-card:hover {
        transform: translateY(-2px);
        border-color: #b8c8c1;
        box-shadow: 0 8px 22px rgba(32, 54, 50, 0.1);
    }

    .dashboard-page .dashboard-card-label {
        color: #53615b;
        font-size: 14px;
        font-weight: 700;
    }

    .dashboard-page .dashboard-card-value {
        margin: 13px 0 8px;
        color: #203632;
        font-size: 36px;
        line-height: 1;
        font-weight: 800;
    }

    .dashboard-page .dashboard-card-note {
        margin-top: auto;
        color: var(--dashboard-muted);
        font-size: 12px;
    }

    .dashboard-page .dashboard-shipment-card {
        background: linear-gradient(145deg, #ffffff 0%, #f0f4f2 100%);
    }

    .dashboard-page .dashboard-section-eyebrow {
        margin: 0 0 2px;
        color: #7b8781;
        font-size: 10px;
        font-weight: 700;
        letter-spacing: 0.14em;
    }

    .dashboard-page .dashboard-panel-heading h3 {
        margin: 0;
    }

    .dashboard-page .dashboard-shipment-panel,
    .dashboard-page .dashboard-todo-panel,
    .dashboard-page .dashboard-today-workspace,
    .dashboard-page .dashboard-quick-panel {
        margin: 0;
        border-color: var(--dashboard-border);
        box-shadow: 0 5px 16px rgba(32, 54, 50, 0.055);
    }

    .dashboard-page .dashboard-panel-heading {
        margin-bottom: 14px;
    }

    .dashboard-page .dashboard-today-workspace {
        margin: 0;
        padding: 0;
        overflow: hidden;
    }

    .dashboard-page .dashboard-today-heading {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 20px;
        padding: 18px 20px 14px;
        border-bottom: 1px solid var(--dashboard-border);
        background: var(--dashboard-soft);
    }

    .dashboard-page .dashboard-today-heading h2 {
        margin: 0;
        color: #203632;
        font-size: 20px;
    }

    .dashboard-page .dashboard-today-heading > span {
        color: var(--dashboard-muted);
        font-size: 12px;
    }

    .dashboard-page .dashboard-task-summary-list {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding: 4px 20px 8px;
    }

    .dashboard-page .dashboard-task-summary-list > a {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 18px;
        min-width: 0;
        padding: 13px 8px;
        border-bottom: 1px solid #e8ece9;
        color: #203632;
        text-decoration: none;
    }

    .dashboard-page .dashboard-task-summary-list > a:nth-child(odd) {
        padding-right: 20px;
        border-right: 1px solid #e8ece9;
    }

    .dashboard-page .dashboard-task-summary-list > a:nth-child(even) {
        padding-left: 20px;
    }

    .dashboard-page .dashboard-task-summary-list > a:hover {
        background: #f7f9f7;
    }

    .dashboard-page .dashboard-task-summary-list > a > span {
        display: grid;
        gap: 2px;
        min-width: 0;
    }

    .dashboard-page .dashboard-task-summary-list strong {
        font-size: 14px;
    }

    .dashboard-page .dashboard-task-summary-list small {
        color: var(--dashboard-muted);
        font-size: 11px;
        overflow-wrap: anywhere;
    }

    .dashboard-page .dashboard-task-summary-list b {
        min-width: 38px;
        color: #203632;
        font-size: 25px;
        line-height: 1;
        text-align: right;
    }

    .dashboard-page .dashboard-task-summary-list .has-overdue b,
    .dashboard-page .dashboard-task-summary-list .has-overdue small,
    .dashboard-page .dashboard-task-row.is-overdue span {
        color: #a34a43;
    }

    .dashboard-page .recent-shipment-list {
        display: grid;
        gap: 8px;
    }

    .dashboard-page .recent-shipment-list .recent-shipment-item {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 20px;
        padding: 13px 15px;
        border: 1px solid #e7ebe8;
        border-radius: 4px;
        background: #fff;
        color: #203632;
        text-decoration: none;
    }

    .dashboard-page .recent-shipment-list .recent-shipment-item:hover {
        background: #f7f9f7;
        border-color: #bcc9c3;
    }

    .dashboard-page .recent-shipment-primary,
    .dashboard-page .recent-shipment-meta {
        display: flex;
        align-items: center;
        gap: 16px;
    }

    .dashboard-page .recent-shipment-primary strong {
        font-size: 15px;
    }

    .dashboard-page .recent-shipment-primary span {
        color: var(--dashboard-muted);
        font-size: 13px;
    }

    .dashboard-page .recent-shipment-meta {
        color: #718078;
        font-size: 12px;
    }

    .dashboard-page .recent-shipment-meta strong {
        color: #44534c;
        font-size: 13px;
    }

    .dashboard-page .dashboard-status-pill {
        padding: 3px 8px;
        border-radius: 999px;
        background: #e7efeb;
        color: #203632;
        font-weight: 700;
    }

    .dashboard-page .dashboard-tasks {
        grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
        gap: 12px;
        border: 0;
    }

    .dashboard-page .dashboard-task-section {
        min-height: 210px;
        padding: 14px;
        border: 1px solid var(--dashboard-border);
        border-radius: 4px;
        background: #fafbfa;
    }

    .dashboard-page .dashboard-task-section:first-child,
    .dashboard-page .dashboard-task-section:last-child {
        padding: 14px;
        border-right: 1px solid var(--dashboard-border);
    }

    .dashboard-page .dashboard-task-heading {
        padding-bottom: 9px;
        border-bottom: 1px solid #e5e9e6;
    }

    .dashboard-page .dashboard-task-heading h4 {
        color: #203632;
        font-size: 15px;
    }

    .dashboard-page .dashboard-task-heading span {
        min-width: 30px;
        background: #e4ece8;
        color: #203632;
        font-size: 14px;
        font-weight: 700;
    }

    .dashboard-page .dashboard-task-row {
        margin: 0 -4px;
        padding: 11px 8px;
        border-radius: 4px;
    }

    .dashboard-page .dashboard-task-row:hover {
        background: #eef3f0;
        color: #203632;
    }

    .dashboard-page .dashboard-more {
        color: #203632;
        font-weight: 600;
    }

    .dashboard-page .dashboard-overview {
        display: flex;
        align-items: center;
        gap: 28px;
        min-height: 54px;
        padding: 10px 18px;
        border: 1px solid var(--dashboard-border);
        border-radius: 8px;
        background: #f8faf8;
        color: var(--dashboard-muted);
    }

    .dashboard-page .dashboard-overview div {
        display: flex;
        align-items: baseline;
        gap: 7px;
    }

    .dashboard-page .dashboard-overview span,
    .dashboard-page .dashboard-overview p {
        font-size: 12px;
    }

    .dashboard-page .dashboard-overview strong {
        color: #34443d;
        font-size: 18px;
    }

    .dashboard-page .dashboard-overview p {
        order: -1;
        margin: 0 auto 0 0;
        color: #52615a;
        font-weight: 700;
        letter-spacing: 0.04em;
    }

    .dashboard-page .dashboard-quick-panel {
        padding: 18px 20px;
    }

    .dashboard-page .dashboard-quick-actions {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
        margin-top: 14px;
    }

    .admin-body .nav-system-group {
        margin-top: 18px;
        padding-top: 12px;
        border-top: 1px solid rgba(255, 255, 255, 0.12);
    }

    .admin-body .nav-system-group .nav-section-title {
        color: rgba(255, 255, 255, 0.42);
    }

    .admin-body .nav-system-group .nav-link {
        padding-top: 7px;
        padding-bottom: 7px;
        color: rgba(255, 255, 255, 0.66);
        font-size: 13px;
    }
}

@media screen and (max-width: 1500px) {
    .dashboard-page .dashboard-priority-grid {
        grid-template-columns: repeat(3, minmax(150px, 1fr));
    }

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

@media screen and (max-width: 900px) {
    .dashboard-page .dashboard-priority-grid {
        grid-template-columns: 1fr 1fr;
    }

    .dashboard-page .dashboard-tasks {
        grid-template-columns: 1fr;
    }

    .dashboard-page .dashboard-task-summary-list {
        grid-template-columns: 1fr;
    }

    .dashboard-page .dashboard-task-summary-list > a:nth-child(odd),
    .dashboard-page .dashboard-task-summary-list > a:nth-child(even) {
        padding-right: 8px;
        padding-left: 8px;
        border-right: 0;
    }

    .dashboard-page .recent-shipment-list .recent-shipment-item,
    .dashboard-page .recent-shipment-primary,
    .dashboard-page .recent-shipment-meta {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px;
    }

    .dashboard-page .dashboard-overview {
        align-items: flex-start;
        flex-wrap: wrap;
        gap: 12px 22px;
    }

    .dashboard-page .dashboard-overview p {
        width: 100%;
    }
}

@media screen and (max-width: 560px) {
    .dashboard-page .dashboard-priority-grid {
        grid-template-columns: 1fr;
    }

    .dashboard-page .dashboard-quick-actions .btn {
        width: 100%;
        box-sizing: border-box;
        text-align: center;
    }

    .dashboard-page .dashboard-today-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 4px;
    }
}
.customer-form-panel[hidden] {
    display: none;
}

.customer-form-panel {
    margin-bottom: 18px;
}

.customer-list-contact {
    display: grid;
    gap: 3px;
}

.customer-list-contact a {
    color: inherit;
    text-decoration: none;
}

.customer-list-contact a:hover {
    color: #203632;
    text-decoration: underline;
}

.customer-list-recent {
    max-width: 300px;
}

.customer-list-actions {
    white-space: nowrap;
}

/* Unified OTTUA admin interface. Intentionally scoped away from print documents. */
.admin-body {
    background: var(--ottua-page-bg);
    color: var(--ottua-text);
    line-height: 1.5;
}

.admin-body .sidebar {
    background: var(--ottua-primary);
}

.admin-body .brand {
    padding-bottom: 16px;
    font-size: 22px;
    letter-spacing: 0.04em;
}

.admin-body .sidebar nav {
    overflow-y: auto;
    padding: 2px 0 8px;
}

.admin-body .nav-group + .nav-group {
    margin-top: 14px;
}

.admin-body .nav-section-title {
    padding: 0 20px 6px 23px;
    color: rgba(255, 255, 255, 0.58);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.admin-body .nav-link {
    margin: 1px 10px;
    padding: 10px 14px;
    border-left: 3px solid transparent;
    border-radius: 0 6px 6px 0;
    color: rgba(255, 255, 255, 0.84);
    font-size: 14px;
    transition: background 0.16s ease, color 0.16s ease, border-color 0.16s ease;
}

.admin-body .nav-link:hover {
    border-left-color: rgba(255, 255, 255, 0.5);
    background: var(--ottua-primary-hover);
    color: #fff;
}

.admin-body .nav-link.active {
    border-left-color: #fff;
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
    font-weight: 700;
}

.admin-body .system-version {
    margin-top: 12px;
}

.admin-body .topbar {
    min-height: 68px;
    padding: 14px 28px;
    background: var(--ottua-surface);
    border-bottom-color: var(--ottua-border);
}

.admin-body .topbar h1 {
    margin: 0 20px 0 0;
    color: var(--ottua-text);
    font-size: 22px;
    line-height: 1.25;
    font-weight: 700;
}

.admin-body .content {
    padding: 24px 28px 32px;
}

.admin-body .card,
.admin-body .panel {
    border: 1px solid var(--ottua-border);
    border-radius: 8px;
    background: var(--ottua-surface);
    box-shadow: var(--ottua-shadow);
}

.admin-body .page-actions {
    gap: 16px;
    min-height: 38px;
}

.admin-body .page-actions > h3,
.admin-body .page-actions > div > h3 {
    margin: 0;
    color: var(--ottua-text);
    font-size: 18px;
    line-height: 1.35;
}

.admin-body .page-actions-only {
    justify-content: flex-end;
}

.admin-body .page-intro {
    min-width: 0;
}

.admin-body .page-intro .hint {
    margin: 0;
}

.admin-body .btn {
    display: inline-flex;
    min-height: 36px;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: 7px 14px;
    border: 1px solid transparent;
    border-radius: 6px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    transition: background 0.16s ease, border-color 0.16s ease, color 0.16s ease;
}

.admin-body .btn-primary,
.admin-body .global-search-form button {
    border-color: var(--ottua-primary);
    background: var(--ottua-primary);
    color: #fff;
}

.admin-body .btn-primary:hover,
.admin-body .global-search-form button:hover {
    border-color: var(--ottua-primary-hover);
    background: var(--ottua-primary-hover);
}

.admin-body .btn-secondary {
    border-color: var(--ottua-border);
    background: var(--ottua-surface);
    color: var(--ottua-text);
}

.admin-body .btn-secondary:hover {
    border-color: var(--ottua-primary-border);
    background: var(--ottua-primary-soft);
    color: var(--ottua-primary);
}

.admin-body .btn-link,
.admin-body .dashboard-more,
.admin-body .dashboard-task-row:hover,
.admin-body .search-result-row:hover,
.admin-body .backup-status-time,
.admin-body .import-summary strong,
.admin-body .variant-details summary,
.admin-body .history-price-pill strong,
.admin-body .quick-total strong,
.admin-body .shipment-summary strong,
.admin-body .status-count-grid strong {
    color: var(--ottua-primary);
}

.admin-body .btn-link {
    font: inherit;
    font-weight: 600;
    text-decoration: none;
}

.admin-body .btn-link:hover {
    text-decoration: underline;
}

.admin-body .order-delete-disabled {
    display: inline-flex;
    cursor: not-allowed;
}

.admin-body .order-delete-disabled .btn-link:disabled {
    color: #8a9390;
    cursor: not-allowed;
    opacity: 0.72;
    text-decoration: none;
}

.admin-body input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.admin-body select,
.admin-body textarea {
    box-sizing: border-box;
    border-color: var(--ottua-border);
    border-radius: 6px;
    background: var(--ottua-surface);
    color: var(--ottua-text);
    font-family: inherit;
    transition: border-color 0.16s ease, box-shadow 0.16s ease;
}

.admin-body input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):focus,
.admin-body select:focus,
.admin-body textarea:focus {
    border-color: var(--ottua-primary);
    box-shadow: 0 0 0 3px rgba(32, 54, 50, 0.12);
    outline: none;
}

.admin-body .global-search-form input {
    border-color: var(--ottua-border);
    border-radius: 6px 0 0 6px;
}

.admin-body .global-search-form button {
    border-radius: 0 6px 6px 0;
    font-family: inherit;
    font-weight: 600;
}

.admin-body .form-grid label,
.admin-body .form-grid .form-field,
.admin-body fieldset legend {
    color: var(--ottua-text);
    font-weight: 600;
}

.admin-body .crud-form,
.admin-body .detail-card,
.admin-body .quick-item-row,
.admin-body .variant-common-info,
.admin-body .import-summary,
.admin-body .backup-summary,
.admin-body .reset-password-form {
    border-color: var(--ottua-border);
    background: var(--ottua-surface-muted);
}

.admin-body table th {
    background: var(--ottua-surface-muted);
    color: var(--ottua-text);
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
}

.admin-body table th,
.admin-body table td {
    border-color: var(--ottua-border);
    vertical-align: middle;
}

.admin-body table tbody tr:hover td {
    background: var(--ottua-surface-muted);
}

.admin-body .table-scroll,
.admin-body .table-wrap {
    border-radius: 6px;
}

.admin-body .filter-tab {
    border-color: var(--ottua-border);
    border-radius: 6px;
    background: var(--ottua-surface);
    color: var(--ottua-text);
}

.admin-body .filter-tab:hover,
.admin-body .filter-tab.active,
.admin-body .finish-option.selected {
    border-color: var(--ottua-primary);
    background: var(--ottua-primary-soft);
    color: var(--ottua-primary);
}

.admin-body .role-badge,
.admin-body .status-badge,
.admin-body .status-pill,
.admin-body .product-status-badge {
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.admin-body .status-pill,
.admin-body .role-badge,
.admin-body .status-badge:not(.active):not(.inactive) {
    border-color: var(--ottua-primary-border);
    background: var(--ottua-primary-soft);
    color: var(--ottua-primary);
}

.admin-body .hint {
    color: var(--ottua-muted);
}

.admin-body .user-identity {
    display: grid;
    gap: 3px;
    min-width: 140px;
}

.admin-body .user-identity strong {
    color: var(--ottua-text);
    font-size: 14px;
}

.admin-body .user-identity span,
.admin-body .user-login-time {
    color: var(--ottua-muted);
    font-size: 13px;
}

.admin-body .user-login-time {
    white-space: nowrap;
}

@media screen and (max-width: 1100px) {
    .admin-body .content {
        padding: 20px;
    }
}

/* Quick order and quotation entry pages: screen-only visual unification. */
.admin-body .business-entry-page {
    border-color: var(--ottua-border);
    background: var(--ottua-surface);
}

.admin-body .business-entry-form {
    margin-bottom: 0;
    padding: 18px;
    border: 1px solid var(--ottua-border);
    border-radius: 10px;
    background: var(--ottua-surface-muted);
}

.admin-body .business-entry-form .entry-section-title,
.admin-body .quote-detail-page .entry-section-title {
    margin: 8px 0 2px;
    padding: 10px 12px;
    border-left: 3px solid var(--ottua-primary);
    border-radius: 0 7px 7px 0;
    background: var(--ottua-primary-soft);
    color: var(--ottua-primary);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.35;
}

.admin-body .business-entry-form .form-grid > .entry-section-title:first-child {
    margin-top: 0;
}

.admin-body .business-entry-form .form-grid > .entry-section-title:not(:first-child) {
    margin-top: 10px;
}

.admin-body .business-entry-form .entry-section-header {
    margin-top: 22px;
}

.admin-body .business-entry-form .entry-section-header .entry-section-title {
    width: 100%;
    margin: 0;
    box-sizing: border-box;
}

.admin-body .business-entry-form .quick-price-conditions,
.admin-body .business-entry-form .quick-item-row,
.admin-body .business-entry-form .quick-amount-summary,
.admin-body .business-entry-form .quick-item-summary {
    border-color: var(--ottua-border);
    border-radius: 9px;
    background: var(--ottua-surface);
}

.admin-body .business-entry-form .quick-price-conditions {
    padding: 16px 18px 18px;
}

.admin-body .business-entry-form .quick-price-condition {
    border-color: var(--ottua-border);
    background: var(--ottua-surface-muted);
}

.admin-body .business-entry-form .quick-item-row {
    margin-bottom: 14px;
    padding: 16px;
    box-shadow: 0 2px 8px rgba(32, 54, 50, 0.05);
}

.admin-body .business-entry-form .quick-item-summary {
    min-height: 74px;
    padding: 12px 14px;
    box-shadow: 0 2px 8px rgba(32, 54, 50, 0.05);
}

.admin-body .business-entry-form .quick-item-edit-actions {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--ottua-border);
}

.admin-body .business-entry-form .remove-quote-item {
    display: block;
    margin: 12px 0 0 auto;
}

.admin-body .btn-danger {
    border-color: #b91c1c;
    background: #ffffff;
    color: #b91c1c;
}

.admin-body .btn-danger:hover {
    border-color: #b91c1c;
    background: #b91c1c;
    color: #ffffff;
}

.admin-body .business-entry-form .history-price-tip {
    margin-top: 14px;
    padding: 12px 14px;
    border-color: var(--ottua-primary-border);
    border-radius: 9px;
    background: var(--ottua-primary-soft);
}

.admin-body .business-entry-form .history-price-title {
    margin-bottom: 9px;
    color: var(--ottua-primary);
    font-size: 13px;
    font-weight: 700;
}

.admin-body .business-entry-form .history-price-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 9px;
}

.admin-body .business-entry-form .history-price-pill {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    width: 100%;
    min-width: 0;
    max-width: none;
    padding: 10px 12px;
    border-color: var(--ottua-primary-border);
    border-radius: 7px;
    background: var(--ottua-surface);
    color: var(--ottua-text);
    cursor: default;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.admin-body .business-entry-form .history-price-pill:hover {
    border-color: var(--ottua-primary);
    box-shadow: 0 3px 10px rgba(32, 54, 50, 0.1);
}

.admin-body .business-entry-form .history-price-content {
    min-width: 0;
}

.admin-body .business-entry-form .history-price-pill strong {
    color: var(--ottua-primary);
    font-size: 15px;
}

.admin-body .business-entry-form .history-price-pill span,
.admin-body .business-entry-form .history-price-pill small {
    color: var(--ottua-muted);
    line-height: 1.45;
}

.admin-body .business-entry-form .history-price-apply {
    flex: 0 0 auto;
    min-height: 34px;
    padding: 7px 12px;
    border: 1px solid var(--ottua-primary);
    border-radius: 6px;
    background: var(--ottua-primary);
    color: #ffffff;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.admin-body .business-entry-form .history-price-apply:hover {
    border-color: var(--ottua-primary-hover);
    background: var(--ottua-primary-hover);
}

.admin-body .business-entry-form .history-price-heading {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 4px;
}

.admin-body .business-entry-form .history-price-heading strong {
    display: inline;
}

.admin-body .business-entry-form .history-price-source {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    margin: 0;
    padding: 3px 7px;
    border: 1px solid var(--ottua-primary-border);
    border-radius: 999px;
    color: var(--ottua-primary);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    background: var(--ottua-primary-soft);
}

.admin-body .business-entry-form .history-price-source.is-order {
    border-color: var(--ottua-primary);
    background: var(--ottua-primary);
    color: #ffffff;
}

.admin-body .business-entry-form .history-price-source.is-quote {
    background: var(--ottua-primary-soft);
}

.admin-body .business-entry-form .history-price-source.is-excel,
.admin-body .business-entry-form .history-price-source.is-history {
    border-color: var(--ottua-border);
    background: var(--ottua-surface-muted);
    color: var(--ottua-muted);
}

.admin-body .business-entry-form .history-price-secondary,
.admin-body .business-entry-form .history-price-terms,
.admin-body .business-entry-form .history-price-scope-unknown {
    display: block;
    margin: 3px 0;
    font-size: 12px;
    line-height: 1.4;
}

.admin-body .business-entry-form .history-price-secondary {
    color: var(--ottua-text);
}

.admin-body .business-entry-form .history-price-terms {
    color: var(--ottua-muted);
}

.admin-body .business-entry-form .history-price-scope-unknown {
    width: fit-content;
    padding: 2px 7px;
    border-radius: 999px;
    background: var(--ottua-surface-muted);
    color: var(--ottua-muted);
    font-weight: 600;
}

.admin-body .product-history-price {
    display: grid;
    gap: 2px;
}

.admin-body .product-history-price strong {
    color: var(--ottua-primary);
    white-space: nowrap;
}

.admin-body .product-history-price small,
.admin-body .product-history-mode {
    color: var(--ottua-muted);
    font-size: 12px;
    line-height: 1.35;
}

.admin-body .excel-history-price {
    display: grid;
    gap: 2px;
}

.admin-body .excel-history-price strong {
    color: var(--ottua-primary);
}

.admin-body .excel-history-price small {
    color: var(--ottua-muted);
    font-size: 11px;
}

.admin-body .quote-entry-page .quote-key-field {
    padding: 11px 12px;
    border: 1px solid var(--ottua-primary-border);
    border-radius: 8px;
    background: var(--ottua-surface);
}

.admin-body .quote-entry-page .quote-key-field input,
.admin-body .quote-entry-page .quote-key-field select {
    font-weight: 600;
}

.admin-body .quote-entry-page .quote-price-mode-field {
    display: grid;
    grid-template-columns: minmax(260px, 0.9fr) minmax(280px, 1.4fr);
    align-items: end;
    gap: 14px 20px;
    margin-bottom: 14px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--ottua-border);
}

.admin-body .quote-entry-page .quote-price-mode-field label {
    margin: 0;
}

.admin-body .quote-entry-page .quote-price-mode-field label > span {
    display: block;
    margin-bottom: 6px;
    color: var(--ottua-text);
    font-weight: 700;
}

.admin-body .quote-entry-page .quote-price-mode-field p {
    margin: 0 0 8px;
    color: var(--ottua-muted);
    font-size: 13px;
    line-height: 1.55;
}

.admin-body .quote-entry-page .quote-price-condition.is-mode-locked,
.admin-body .quote-entry-page .quick-price-condition.is-mode-locked {
    border-color: var(--ottua-primary-border);
}

.admin-body .quote-entry-page .quick-price-condition.is-mode-locked .quick-price-toggle {
    cursor: default;
}

.admin-body .quote-entry-page .quick-price-condition.is-mode-locked .quick-price-toggle::after {
    content: "由价格模式锁定";
    color: var(--ottua-muted);
    font-size: 11px;
    font-weight: 400;
}

.admin-body .quote-entry-page .quote-customer-field {
    grid-column: span 2;
}

.admin-body .quote-entry-page .quote-status-field select {
    color: var(--ottua-primary);
}

.admin-body .quote-entry-page .quote-item-grid {
    row-gap: 12px;
}

.admin-body .quote-entry-page .quote-item-section-label {
    display: flex;
    align-items: center;
    grid-column: 1 / -1;
    gap: 8px;
    color: var(--ottua-primary);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.admin-body .quote-entry-page .quote-item-section-label::after {
    flex: 1;
    height: 1px;
    background: var(--ottua-border);
    content: "";
}

.admin-body .quote-entry-page .quote-trade-section-label {
    margin-top: 2px;
}

.admin-body .quote-entry-page .quote-product-preview {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
    padding: 8px;
    border: 1px solid var(--ottua-border);
    border-radius: 8px;
    background: #ffffff;
}

.admin-body .quote-entry-page .quote-product-image {
    display: flex;
    width: 96px;
    height: 96px;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    color: var(--ottua-muted);
    font-size: 12px;
    text-align: center;
}

.admin-body .quote-entry-page .quote-product-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.admin-body .quote-entry-page .quote-product-preview small {
    color: var(--ottua-muted);
    font-size: 11px;
}

.admin-body .quote-entry-page .quote-field-model {
    position: relative;
    z-index: 4;
}

.admin-body .quote-entry-page .quote-product-suggestions {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    left: 0;
    z-index: 30;
    display: grid;
    max-height: 324px;
    overflow-y: auto;
    padding: 6px;
    border: 1px solid var(--ottua-primary-border);
    border-radius: 9px;
    background: #ffffff;
    box-shadow: 0 12px 30px rgba(32, 54, 50, 0.18);
}

.admin-body .quote-entry-page .quote-product-suggestions[hidden] {
    display: none;
}

.admin-body .quote-entry-page .quote-product-suggestion {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 10px;
    width: 100%;
    align-items: center;
    padding: 7px;
    border: 0;
    border-bottom: 1px solid var(--ottua-border);
    border-radius: 6px;
    background: #ffffff;
    color: var(--ottua-text);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.admin-body .quote-entry-page .quote-product-suggestion:last-child {
    border-bottom: 0;
}

.admin-body .quote-entry-page .quote-product-suggestion:hover,
.admin-body .quote-entry-page .quote-product-suggestion:focus-visible {
    background: var(--ottua-primary-soft);
    outline: 0;
}

.admin-body .quote-entry-page .quote-product-suggestion-image {
    display: flex;
    width: 54px;
    height: 54px;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 1px solid var(--ottua-border);
    border-radius: 6px;
    background: var(--ottua-surface-muted);
    color: var(--ottua-muted);
    font-size: 9px;
}

.admin-body .quote-entry-page .quote-product-suggestion-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.admin-body .quote-entry-page .quote-product-suggestion-copy,
.admin-body .quote-entry-page .quote-product-suggestion-copy strong,
.admin-body .quote-entry-page .quote-product-suggestion-copy small {
    display: block;
    min-width: 0;
}

.admin-body .quote-entry-page .quote-product-suggestion-copy strong {
    color: var(--ottua-primary);
    font-size: 14px;
}

.admin-body .quote-entry-page .quote-product-suggestion-copy > span {
    display: block;
    overflow: hidden;
    margin-top: 2px;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-body .quote-entry-page .quote-product-suggestion-copy small {
    overflow: hidden;
    margin-top: 3px;
    color: var(--ottua-muted);
    font-size: 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-body .quote-entry-page .quote-field-category {
    color: var(--ottua-muted);
}

.admin-body .quote-entry-page .quote-field-category select {
    background: var(--ottua-surface-muted);
    color: var(--ottua-muted);
}

.admin-body .quote-entry-page .quote-primary-field {
    color: var(--ottua-primary);
}

.admin-body .quote-entry-page .quote-primary-field input,
.admin-body .quote-entry-page .quote-primary-field select {
    border-color: var(--ottua-primary-border);
    background: #ffffff;
    color: var(--ottua-text);
    font-weight: 650;
}

.admin-body .quote-entry-page .quote-transaction-field {
    padding: 10px;
    border: 1px solid var(--ottua-border);
    border-radius: 8px;
    background: var(--ottua-surface-muted);
}

.admin-body .quote-entry-page .quote-field-subtotal input[readonly] {
    background: var(--ottua-primary-soft);
    color: var(--ottua-primary);
    font-weight: 700;
}

.admin-body .quote-entry-page .quote-field-unit-price .quote-price-input-hint,
.admin-body .quote-entry-page .quote-field-unit-price .quote-customer-unit-preview,
.admin-body .quote-entry-page .quote-field-unit-price .quote-base-unit-preview {
    display: block;
    margin-top: 5px;
    color: var(--ottua-muted);
    font-size: 12px;
    line-height: 1.35;
}

.admin-body .quote-entry-page .quote-field-unit-price .quote-customer-unit-preview {
    color: var(--ottua-primary);
    font-weight: 700;
}

.admin-body .quote-entry-page .quote-field-unit-price .quote-base-unit-preview {
    color: var(--ottua-primary);
    font-weight: 600;
}

.admin-body .quote-entry-page .quote-field-unit-price .quote-base-unit-preview[hidden] {
    display: none;
}

.admin-body .quote-entry-page .quote-price-mode-summary {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 2px 16px;
    margin-bottom: 6px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--ottua-border);
    color: var(--ottua-muted);
}

.admin-body .quote-entry-page .quote-customer-price-terms {
    display: grid;
    gap: 3px;
    margin-bottom: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--ottua-border);
}

.admin-body .quote-entry-page .quote-customer-price-terms > span {
    color: var(--ottua-muted);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.03em;
}

.admin-body .quote-entry-page .quote-customer-price-terms strong {
    color: var(--ottua-primary);
    font-size: 15px;
}

.admin-body .quote-entry-page .quote-customer-price-terms small {
    color: var(--ottua-muted);
    font-size: 12px;
}

.admin-body .quote-entry-page .quote-price-mode-summary strong {
    justify-self: end;
    color: var(--ottua-primary);
}

.admin-body .quote-entry-page .quote-price-mode-summary small {
    grid-column: 1 / -1;
    color: var(--ottua-muted);
    font-size: 12px;
}

.admin-body .quote-entry-page .quote-item-remarks-field {
    margin-top: 2px;
}

@media screen and (max-width: 640px) {
    .admin-body .quote-entry-page .quote-price-mode-field {
        grid-template-columns: 1fr;
    }

    .admin-body .business-entry-form .history-price-pill {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-body .business-entry-form .history-price-apply {
        width: 100%;
    }
}

.admin-body .business-entry-form .entry-amount-header,
.admin-body .business-entry-form .quick-amount-summary {
    width: min(430px, 100%);
    margin-left: auto;
    box-sizing: border-box;
}

.admin-body .business-entry-form .entry-amount-header {
    margin-bottom: 8px;
}

.admin-body .business-entry-form .quick-amount-summary {
    margin-top: 0;
    padding: 12px 18px;
}

.admin-body .business-entry-form .form-actions {
    justify-content: flex-end;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid var(--ottua-border);
}

.admin-body .business-entry-form .quick-item-summary-edit,
.admin-body .quick-duplicate-actions .secondary,
.admin-body .quick-order-sticky-actions .secondary {
    min-height: 36px;
    padding: 8px 14px;
    border: 1px solid var(--ottua-border);
    border-radius: 6px;
    background: var(--ottua-surface-muted);
    color: var(--ottua-text);
    cursor: pointer;
}

.admin-body .business-entry-form .quick-item-summary-edit:hover,
.admin-body .quick-duplicate-actions .secondary:hover,
.admin-body .quick-order-sticky-actions .secondary:hover {
    border-color: var(--ottua-primary-border);
    background: var(--ottua-primary-soft);
    color: var(--ottua-primary);
}

.admin-body .quick-order-sticky-summary {
    right: 18px;
    bottom: 14px;
    left: 240px;
    border-color: var(--ottua-border);
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 10px 30px rgba(32, 54, 50, 0.18);
}

.admin-body .quick-order-sticky-terms {
    flex-wrap: wrap;
}

.admin-body .quick-order-sticky-actions button {
    min-height: 38px;
    padding: 9px 16px;
    border: 1px solid transparent;
    border-radius: 6px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

.admin-body .quick-order-sticky-actions [data-sticky-submit] {
    border-color: var(--ottua-primary);
    background: var(--ottua-primary);
    color: #ffffff;
}

.admin-body .quick-order-sticky-actions [data-sticky-submit]:hover {
    border-color: var(--ottua-primary-hover);
    background: var(--ottua-primary-hover);
}

.admin-body .quote-detail-actions {
    flex-wrap: wrap;
}

.admin-body .quote-detail-actions .btn {
    min-height: 36px;
}

.admin-body .quote-detail-actions .quote-action-back,
.admin-body .quote-detail-actions .quote-action-output {
    background: var(--ottua-surface);
}

.admin-body .quote-detail-actions .quote-action-copy {
    border-color: var(--ottua-primary-border);
    background: var(--ottua-primary-soft);
    color: var(--ottua-primary);
}

.admin-body .quote-detail-actions .quote-action-edit {
    border-color: var(--ottua-primary-border);
    background: var(--ottua-primary-soft);
    color: var(--ottua-primary);
}

.admin-body .quote-detail-actions .quote-action-edit:hover,
.admin-body .quote-detail-actions .quote-action-copy:hover {
    border-color: var(--ottua-primary);
    background: var(--ottua-primary);
    color: #ffffff;
}

.admin-body .quote-detail-actions .quote-action-convert {
    box-shadow: 0 3px 10px rgba(32, 54, 50, 0.18);
}

.admin-body .quote-status-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 9px;
    border: 1px solid var(--ottua-border);
    border-radius: 999px;
    background: var(--ottua-surface);
    color: var(--ottua-muted);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
}

.admin-body .quote-status-badge.is-sent {
    border-color: var(--ottua-primary-border);
    background: var(--ottua-primary-soft);
    color: var(--ottua-primary);
}

.admin-body .quote-status-badge.is-confirmed,
.admin-body .quote-status-badge.is-converted {
    border-color: var(--ottua-primary);
    background: var(--ottua-primary);
    color: #ffffff;
}

.admin-body .quote-status-badge.is-cancelled {
    border-color: #e4b4b4;
    background: #fff7f7;
    color: #b91c1c;
}

.admin-body .quote-detail-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 24px;
    padding: 18px;
    border-color: var(--ottua-border);
    border-radius: 10px;
    background: var(--ottua-surface-muted);
}

.admin-body .quote-detail-summary > p {
    margin: 0;
    padding: 9px 0;
    border-bottom: 1px solid var(--ottua-border);
}

.admin-body .quote-detail-summary .quote-price-overview {
    grid-column: 1 / -1;
}

.admin-body .quote-detail-summary .quote-amount-details {
    border-color: var(--ottua-border);
}

.admin-body .quote-detail-summary .quote-amount-detail-row:not(.quote-grand-total) span {
    color: #84908c;
    font-size: 12px;
}

.admin-body .quote-detail-summary .quote-amount-detail-row:not(.quote-grand-total) strong {
    color: #66716d;
    font-size: 13px;
    font-weight: 500;
}

.admin-body .quote-detail-summary .quote-grand-total {
    margin: 7px -5px -2px;
    padding: 11px 5px 3px;
    border-top: 2px solid var(--ottua-primary);
    background: var(--ottua-primary-soft);
}

.admin-body .quote-detail-summary .quote-grand-total span,
.admin-body .quote-detail-summary .quote-grand-total strong {
    color: var(--ottua-primary);
}

.admin-body .quote-detail-summary .quote-grand-total span {
    font-size: 14px;
    letter-spacing: 0.035em;
}

.admin-body .quote-detail-summary .quote-grand-total strong {
    font-size: 25px;
}

.admin-body .quote-detail-products-title {
    margin: 20px 0 10px;
}

.admin-body .quote-detail-table {
    border: 1px solid var(--ottua-border);
    background: var(--ottua-surface);
}

@media screen and (max-width: 900px) {
    .admin-body .quick-order-sticky-summary {
        right: 10px;
        bottom: 10px;
        left: 10px;
    }
}

@media screen and (max-width: 760px) {
    .admin-body .business-entry-form {
        padding: 14px;
    }

    .admin-body .business-entry-form .history-price-list,
    .admin-body .quote-detail-summary {
        grid-template-columns: 1fr;
    }

    .admin-body .business-entry-form .entry-amount-header,
    .admin-body .business-entry-form .quick-amount-summary {
        width: 100%;
    }

    .admin-body .quote-entry-page .quote-customer-field {
        grid-column: 1 / -1;
    }
}

/* Product profile completeness: admin screens only. */
.admin-body .product-completeness-cell {
    min-width: 112px;
}

.admin-body .product-completeness-summary {
    display: inline-flex;
    flex-direction: column;
    gap: 2px;
    line-height: 1.2;
}

.admin-body .product-completeness-summary strong {
    color: var(--ottua-text);
    font-size: 16px;
}

.admin-body .product-completeness-summary span,
.admin-body .product-completeness-level {
    color: var(--ottua-muted);
    font-size: 12px;
    font-weight: 700;
}

.admin-body .product-completeness-complete .product-completeness-level,
.admin-body .product-completeness-summary.product-completeness-complete strong {
    color: var(--ottua-primary);
}

.admin-body .product-completeness-pending .product-completeness-level,
.admin-body .product-completeness-summary.product-completeness-pending strong {
    color: #9a6500;
}

.admin-body .product-completeness-incomplete .product-completeness-level,
.admin-body .product-completeness-summary.product-completeness-incomplete strong {
    color: #68727d;
}

.admin-body .product-completeness-card {
    border-top: 3px solid var(--ottua-primary);
}

.admin-body .product-completeness-card.product-completeness-pending {
    border-top-color: #c58a18;
}

.admin-body .product-completeness-card.product-completeness-incomplete {
    border-top-color: #8a949e;
}

.admin-body .product-completeness-heading {
    align-items: center;
    margin-bottom: 8px;
}

.admin-body .product-completeness-heading > strong {
    color: var(--ottua-primary);
    font-size: 28px;
    line-height: 1;
}

.admin-body .product-completeness-pending .product-completeness-heading > strong {
    color: #9a6500;
}

.admin-body .product-completeness-incomplete .product-completeness-heading > strong {
    color: #68727d;
}

.admin-body .product-completeness-progress {
    width: 100%;
    height: 8px;
    margin: 10px 0 16px;
    overflow: hidden;
    border: 0;
    border-radius: 999px;
    background: var(--ottua-surface-muted);
    appearance: none;
}

.admin-body .product-completeness-progress::-webkit-progress-bar {
    border-radius: 999px;
    background: var(--ottua-surface-muted);
}

.admin-body .product-completeness-progress::-webkit-progress-value {
    border-radius: 999px;
    background: var(--ottua-primary);
}

.admin-body .product-completeness-progress::-moz-progress-bar {
    border-radius: 999px;
    background: var(--ottua-primary);
}

.admin-body .product-completeness-pending .product-completeness-progress::-webkit-progress-value {
    background: #c58a18;
}

.admin-body .product-completeness-pending .product-completeness-progress::-moz-progress-bar {
    background: #c58a18;
}

.admin-body .product-completeness-incomplete .product-completeness-progress::-webkit-progress-value {
    background: #8a949e;
}

.admin-body .product-completeness-incomplete .product-completeness-progress::-moz-progress-bar {
    background: #8a949e;
}

.admin-body .product-completeness-groups {
    display: grid;
    gap: 16px;
}

.admin-body .product-completeness-groups h5 {
    margin: 0 0 8px;
    color: var(--ottua-text);
    font-size: 13px;
}

.admin-body .product-completeness-list {
    display: grid;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.admin-body .product-completeness-list li {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    color: var(--ottua-muted);
    font-size: 12px;
    line-height: 1.45;
}

.admin-body .product-completeness-list.completed li span {
    color: var(--ottua-primary);
    font-weight: 700;
}

.admin-body .product-completeness-list.missing li span {
    color: #8a949e;
    font-weight: 700;
}

.admin-body .product-completeness-list li.empty {
    font-style: italic;
}

/* Work task sheets: admin interface only. */
.admin-body .task-page-eyebrow {
    margin: 0 0 4px;
    color: var(--ottua-primary);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.14em;
}

.admin-body .task-filter-bar {
    display: grid;
    grid-template-columns: minmax(220px, 1.5fr) repeat(3, minmax(140px, 1fr)) auto;
    gap: 12px;
    align-items: end;
    margin: 18px 0;
    padding: 16px;
    border: 1px solid var(--ottua-border);
    border-radius: 12px;
    background: var(--ottua-surface-muted);
}

.admin-body .task-filter-bar label,
.admin-body .task-side-card label {
    display: grid;
    gap: 6px;
    color: var(--ottua-muted);
    font-size: 12px;
    font-weight: 700;
}

.admin-body .task-filter-actions,
.admin-body .task-detail-actions .action-group {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.admin-body .task-table-wrap {
    overflow-x: auto;
}

.admin-body .task-table td strong,
.admin-body .task-table td small,
.admin-body .task-relations-cell span {
    display: block;
}

.admin-body .task-table td small,
.admin-body .task-relations-cell {
    margin-top: 4px;
    color: var(--ottua-muted);
    font-size: 11px;
    line-height: 1.55;
}

.admin-body .task-number-link {
    color: var(--ottua-muted);
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}

.admin-body .task-title-link {
    display: block;
    color: var(--ottua-primary);
    font-size: 14px;
    font-weight: 800;
    line-height: 1.4;
}

.admin-body .task-title-cell {
    min-width: 190px;
}

.admin-body .task-status,
.admin-body .task-priority {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 3px 9px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.admin-body .task-status {
    color: var(--ottua-primary);
    background: #e8efed;
}

.admin-body .task-status-进行中,
.admin-body .task-status-待确认,
.admin-body .task-priority-重要 {
    color: #8a5d00;
    background: #fff3d6;
}

.admin-body .task-status-已完成 {
    color: #176b48;
    background: #e6f4ed;
}

.admin-body .task-status-已取消,
.admin-body .task-priority-普通 {
    color: #68727d;
    background: #eef1f3;
}

.admin-body .task-priority-紧急 {
    color: #a42d2d;
    background: #fbe6e6;
}

.admin-body .task-overdue {
    color: #a42d2d;
    font-weight: 800;
}

.admin-body .task-editor {
    display: grid;
    gap: 18px;
}

.admin-body .task-form-section,
.admin-body .task-detail-section,
.admin-body .task-side-card,
.admin-body .task-detail-hero {
    border: 1px solid var(--ottua-border);
    border-radius: 14px;
    background: #fff;
}

.admin-body .task-form-section,
.admin-body .task-detail-section,
.admin-body .task-side-card {
    padding: 20px;
}

.admin-body .task-section-heading {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--ottua-border);
}

.admin-body .task-section-heading > span {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--ottua-primary);
    font-size: 11px;
    font-weight: 800;
}

.admin-body .task-section-heading h4,
.admin-body .task-section-heading p,
.admin-body .task-detail-section h4,
.admin-body .task-side-card h4 {
    margin: 0;
}

.admin-body .task-section-heading p {
    margin-top: 3px;
    color: var(--ottua-muted);
    font-size: 12px;
}

.admin-body .task-detail-hero {
    margin: 16px 0;
    padding: 20px;
    border-top: 3px solid var(--ottua-primary);
}

.admin-body .task-detail-hero > div:first-child {
    display: flex;
    gap: 8px;
    margin-bottom: 16px;
}

.admin-body .task-detail-hero dl {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 0;
}

.admin-body .task-detail-hero dl div {
    display: grid;
    gap: 4px;
}

.admin-body .task-detail-hero dt,
.admin-body .task-relation-grid span,
.admin-body .task-feedback-display span {
    color: var(--ottua-muted);
    font-size: 11px;
    font-weight: 700;
}

.admin-body .task-detail-hero dd {
    margin: 0;
    font-weight: 800;
}

.admin-body .task-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 310px;
    gap: 18px;
    align-items: start;
}

.admin-body .task-detail-layout main,
.admin-body .task-detail-sidebar,
.admin-body .task-feedback-display {
    display: grid;
    gap: 18px;
}

.admin-body .task-detail-section h4,
.admin-body .task-side-card h4 {
    margin-bottom: 14px;
    color: var(--ottua-primary);
}

.admin-body .task-preformatted {
    color: var(--ottua-text);
    line-height: 1.75;
    white-space: pre-wrap;
}

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

.admin-body .task-relation-grid div,
.admin-body .task-feedback-display > div {
    display: grid;
    gap: 5px;
    padding: 12px;
    border-radius: 9px;
    background: var(--ottua-surface-muted);
}

.admin-body .task-side-card {
    display: grid;
    gap: 12px;
}

.admin-body .task-side-card .btn {
    justify-content: center;
}

@media (max-width: 1050px) {
    .admin-body .task-filter-bar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-body .task-detail-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .admin-body .task-filter-bar,
    .admin-body .task-detail-hero dl,
    .admin-body .task-relation-grid {
        grid-template-columns: 1fr;
    }
}

/* Outsource purchase tracking: admin interface only. */
.admin-body .purchase-page-eyebrow {
    margin: 0 0 4px;
    color: var(--ottua-primary);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.14em;
}

.admin-body .purchase-filter-bar {
    display: grid;
    grid-template-columns: minmax(220px, 1.5fr) minmax(150px, 0.8fr) minmax(180px, 1fr) auto;
    gap: 12px;
    align-items: end;
    margin: 18px 0;
    padding: 16px;
    border: 1px solid var(--ottua-border);
    border-radius: 12px;
    background: var(--ottua-surface-muted);
}

.admin-body .purchase-filter-bar label,
.admin-body .purchase-side-card label {
    display: grid;
    gap: 6px;
    color: var(--ottua-muted);
    font-size: 12px;
    font-weight: 700;
}

.admin-body .purchase-filter-actions,
.admin-body .purchase-detail-actions .action-group {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.admin-body .purchase-table-wrap {
    overflow-x: auto;
}

.admin-body .purchase-table td strong,
.admin-body .purchase-table td small {
    display: block;
}

.admin-body .purchase-table td small {
    margin-top: 4px;
    color: var(--ottua-muted);
    font-size: 11px;
}

.admin-body .purchase-table .actions {
    white-space: nowrap;
}

.admin-body .purchase-more-actions {
    display: inline-block;
    margin-left: 8px;
    vertical-align: top;
    white-space: normal;
}

.admin-body .purchase-more-actions summary {
    color: var(--ottua-primary);
    cursor: pointer;
    list-style: none;
}

.admin-body .purchase-more-actions summary::-webkit-details-marker {
    display: none;
}

.admin-body .purchase-more-menu {
    display: grid;
    min-width: 210px;
    gap: 6px;
    margin-top: 7px;
    padding: 10px;
    border: 1px solid var(--ottua-border);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(32, 54, 50, 0.1);
}

.admin-body .purchase-list-delete-form {
    display: inline;
    margin: 0;
}

.admin-body .purchase-list-delete-form button {
    padding: 0;
    border: 0;
    background: transparent;
    color: #b91c1c;
    font: inherit;
    cursor: pointer;
}

.admin-body .purchase-list-delete-form button:hover {
    text-decoration: underline;
}

.admin-body .purchase-more-menu > button[disabled] {
    padding: 0;
    border: 0;
    background: transparent;
    color: #9ca3af;
    font: inherit;
    text-align: left;
    cursor: not-allowed;
}

.admin-body .purchase-more-menu small {
    max-width: 210px;
    color: var(--ottua-muted);
    font-size: 11px;
    line-height: 1.45;
    white-space: normal;
}

.admin-body .purchase-delete-locked {
    display: inline-flex;
    align-items: center;
    max-width: 230px;
    color: var(--ottua-muted);
    font-size: 12px;
    line-height: 1.35;
}

.admin-body .purchase-number-link {
    color: var(--ottua-primary);
    font-weight: 800;
    white-space: nowrap;
}

.admin-body .purchase-status,
.admin-body .purchase-risk,
.admin-body .purchase-progress-badge {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 3px 9px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.admin-body .purchase-status-pending,
.admin-body .purchase-status-confirmed,
.admin-body .purchase-status-ordered,
.admin-body .purchase-status-preparing,
.admin-body .purchase-status-transit {
    color: var(--ottua-primary);
    background: var(--ottua-primary-soft);
}

.admin-body .purchase-status-preparing,
.admin-body .purchase-status-transit,
.admin-body .purchase-status-partial,
.admin-body .purchase-progress-badge {
    color: #8a5d00;
    background: #fff3d6;
}

.admin-body .purchase-status-received {
    color: #176b48;
    background: #e6f4ed;
}

.admin-body .purchase-status-exception,
.admin-body .purchase-risk.is-impact {
    color: #a42d2d;
    background: #fbe6e6;
}

.admin-body .purchase-status-cancelled,
.admin-body .purchase-risk {
    color: #68727d;
    background: #eef1f3;
}

.admin-body .purchase-track-editor {
    display: grid;
    gap: 18px;
}

.admin-body .purchase-form-section,
.admin-body .purchase-detail-section,
.admin-body .purchase-side-card,
.admin-body .purchase-detail-hero {
    border: 1px solid var(--ottua-border);
    border-radius: 14px;
    background: #fff;
}

.admin-body .purchase-form-section,
.admin-body .purchase-detail-section,
.admin-body .purchase-side-card {
    padding: 20px;
}

.admin-body .purchase-section-heading {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--ottua-border);
}

.admin-body .purchase-section-heading > span {
    display: grid;
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--ottua-primary);
    font-size: 11px;
    font-weight: 800;
}

.admin-body .purchase-section-heading h4,
.admin-body .purchase-section-heading p,
.admin-body .purchase-detail-section h4,
.admin-body .purchase-side-card h4 {
    margin: 0;
}

.admin-body .purchase-section-heading p {
    margin-top: 3px;
    color: var(--ottua-muted);
    font-size: 12px;
}

.admin-body .purchase-items-heading .btn {
    margin-left: auto;
}

.admin-body .purchase-checkbox-field {
    display: flex !important;
    flex-direction: row !important;
    align-items: center;
    align-self: end;
    min-height: 38px;
    gap: 9px !important;
    padding: 8px 11px;
    border: 1px solid var(--ottua-border);
    border-radius: 7px;
    background: var(--ottua-surface-muted);
}

.admin-body .purchase-checkbox-field input {
    margin: 0;
}

.admin-body .purchase-item-list {
    display: grid;
    gap: 10px;
}

.admin-body .purchase-item-row {
    padding: 14px;
    border: 1px solid var(--ottua-border);
    border-radius: 10px;
    background: var(--ottua-surface-muted);
}

.admin-body .purchase-item-row-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
    color: var(--ottua-primary);
}

.admin-body .purchase-item-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.admin-body .purchase-item-grid label {
    display: grid;
    gap: 6px;
    color: var(--ottua-text);
    font-size: 12px;
    font-weight: 700;
}

.admin-body .purchase-item-grid .full-width {
    grid-column: 1 / -1;
}

.admin-body .purchase-catalog-picker {
    display: grid;
    gap: 10px;
    margin-bottom: 14px;
    padding: 12px;
    border: 1px solid var(--ottua-border);
    border-radius: 9px;
    background: #fff;
}

.admin-body .purchase-catalog-search-row {
    display: grid;
    grid-template-columns: minmax(190px, 1fr) auto auto;
    gap: 8px;
}

.admin-body .purchase-catalog-results {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    color: var(--ottua-muted);
    font-size: 12px;
}

.admin-body .purchase-catalog-result {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 8px;
    align-items: center;
    padding: 7px 8px;
    border: 1px solid var(--ottua-border);
    border-radius: 7px;
    background: var(--ottua-surface-muted);
    color: var(--ottua-text);
    text-align: left;
    cursor: pointer;
}

.admin-body .purchase-catalog-result:hover {
    border-color: var(--ottua-primary);
    background: var(--ottua-primary-soft);
}

.admin-body .purchase-catalog-result span {
    color: var(--ottua-muted);
    font-size: 11px;
}

.admin-body .purchase-catalog-result-image {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    overflow: hidden;
    border: 1px solid var(--ottua-border);
    border-radius: 6px;
    background: #fff;
}

.admin-body .purchase-catalog-result-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.admin-body .purchase-catalog-result-copy {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.admin-body .purchase-catalog-result-copy strong,
.admin-body .purchase-catalog-result-copy span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-body .purchase-variant-picker {
    display: grid;
    max-width: 320px;
    gap: 5px;
    color: var(--ottua-muted);
    font-size: 12px;
    font-weight: 700;
}

.admin-body .purchase-variant-picker[hidden] {
    display: none;
}

.admin-body .purchase-manual-product-layout {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 12px;
}

.admin-body .purchase-manual-image {
    display: grid;
    width: 120px;
    height: 120px;
    place-items: center;
    align-self: start;
    overflow: hidden;
    border: 1px solid var(--ottua-border);
    border-radius: 9px;
    background: #fff;
}

.admin-body .purchase-manual-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.admin-body .purchase-manual-image span,
.admin-body .purchase-image-missing {
    color: var(--ottua-muted);
    font-size: 10px;
    text-align: center;
}

.admin-body .purchase-image-missing {
    display: grid;
    gap: 3px;
    padding: 6px;
    line-height: 1.35;
}

.admin-body .purchase-image-missing strong {
    color: var(--ottua-text);
    font-size: 11px;
}

.admin-body .purchase-image-missing small {
    color: var(--ottua-muted);
    font-size: 9px;
    font-weight: 500;
}

.admin-body .purchase-image-editor {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    align-items: center;
    padding: 11px;
    border-radius: 8px;
    background: #f4f6f5;
}

.admin-body .purchase-image-editor label {
    display: flex;
    flex: 1 1 240px;
    gap: 8px;
    align-items: center;
}

.admin-body .purchase-image-editor input[type="file"] {
    min-width: 0;
}

.admin-body .purchase-image-remove-option {
    flex: 0 0 auto !important;
    flex-direction: row !important;
}

.admin-body .purchase-image-editor small {
    flex: 1 0 100%;
    color: var(--ottua-muted);
}

.admin-body .purchase-image-warning {
    margin: 12px 0 0;
    padding: 9px 11px;
    border-radius: 7px;
    color: #8a5d00;
    background: #fff3d6;
    font-size: 12px;
}

.admin-body .purchase-order-source {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    padding: 18px 20px;
    border: 1px solid #b9c8c4;
    border-left: 4px solid var(--ottua-primary);
    border-radius: 12px;
    background: var(--ottua-primary-soft);
}

.admin-body .purchase-order-source div {
    display: grid;
    gap: 4px;
}

.admin-body .purchase-order-source span,
.admin-body .purchase-order-quantity-facts span {
    color: var(--ottua-muted);
    font-size: 11px;
    font-weight: 700;
}

.admin-body .purchase-order-source strong {
    color: var(--ottua-primary);
    font-size: 15px;
}

.admin-body .purchase-order-source p {
    grid-column: 1 / -1;
    margin: 0;
    color: var(--ottua-muted);
    font-size: 12px;
}

.admin-body .purchase-order-item-card {
    display: grid;
    grid-template-columns: minmax(300px, 1.2fr) minmax(155px, 0.62fr) minmax(270px, 0.95fr);
    gap: 12px;
    align-items: center;
    position: relative;
    padding: 12px 14px;
    border: 1px solid var(--ottua-border);
    border-radius: 12px;
    background: var(--ottua-surface-muted);
    opacity: 0.66;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease;
}

.admin-body .purchase-order-item-card.is-selected {
    border-color: #9db3ad;
    background: #fff;
    box-shadow: inset 4px 0 0 var(--ottua-primary), 0 5px 14px rgba(32, 54, 50, 0.08);
    opacity: 1;
}

.admin-body .purchase-order-item-select {
    grid-column: 1 / -1;
}

.admin-body .purchase-order-item-select label {
    display: inline-flex;
    gap: 7px;
    align-items: center;
    padding: 5px 10px;
    border: 1px solid var(--ottua-border);
    border-radius: 999px;
    background: #fff;
    color: var(--ottua-primary);
    font-size: 11px;
    font-weight: 800;
}

.admin-body .purchase-order-item-select input {
    margin: 0;
}

.admin-body .purchase-order-product {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 11px;
    align-items: center;
}

.admin-body .purchase-order-product-image {
    display: grid;
    width: 120px;
    height: 120px;
    place-items: center;
    overflow: hidden;
    border: 1px solid var(--ottua-border);
    border-radius: 9px;
    background: var(--ottua-surface-muted);
}

.admin-body .purchase-order-product-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}

.admin-body .purchase-order-product-image span {
    color: var(--ottua-muted);
    font-size: 10px;
}

.admin-body .purchase-order-product-copy {
    display: grid;
    gap: 4px;
}

.admin-body .purchase-order-product-copy strong {
    color: var(--ottua-primary);
    font-size: 15px;
}

.admin-body .purchase-order-product-copy span {
    font-weight: 700;
}

.admin-body .purchase-order-product-copy small,
.admin-body .purchase-order-product-copy em {
    color: var(--ottua-muted);
    font-size: 11px;
    font-style: normal;
}

.admin-body .purchase-order-product-copy em {
    color: #9a5d11;
}

.admin-body .purchase-order-quantity-facts {
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
}

.admin-body .purchase-order-quantity-facts div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    padding: 7px 9px;
    border-radius: 8px;
    background: var(--ottua-surface-muted);
}

.admin-body .purchase-order-quantity-facts strong {
    color: var(--ottua-primary);
    font-size: 15px;
}

.admin-body .purchase-order-quick-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    align-self: stretch;
    align-content: center;
}

.admin-body .purchase-order-quick-actions > label {
    display: grid;
    gap: 5px;
    color: var(--ottua-text);
    font-size: 11px;
    font-weight: 750;
}

.admin-body .purchase-order-quick-actions input[type="number"] {
    min-width: 0;
    padding: 8px 9px;
}

.admin-body .purchase-order-quantity-primary {
    color: var(--ottua-primary) !important;
}

.admin-body .purchase-order-quantity-primary input {
    border-color: #9db3ad;
    background: #f7faf8;
    color: var(--ottua-primary);
    font-size: 15px;
    font-weight: 800;
}

.admin-body .purchase-order-quantity-warning {
    grid-column: 1 / -1;
    padding: 7px 9px;
    border: 1px solid #e5c77e;
    border-radius: 7px;
    background: #fff8e6;
    color: #815b05;
    font-size: 10px;
    line-height: 1.45;
}

.admin-body .purchase-order-quantity-warning[hidden] {
    display: none;
}

.admin-body .purchase-order-more {
    grid-column: 1 / -1;
    border-top: 1px solid var(--ottua-border);
}

.admin-body .purchase-order-more summary,
.admin-body .purchase-item-more summary {
    display: flex;
    gap: 8px;
    align-items: center;
    padding: 8px 2px 1px;
    color: var(--ottua-primary);
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
    list-style: none;
}

.admin-body .purchase-order-more summary::-webkit-details-marker,
.admin-body .purchase-item-more summary::-webkit-details-marker {
    display: none;
}

.admin-body .purchase-order-more summary::before,
.admin-body .purchase-item-more summary::before {
    content: "+";
    display: grid;
    width: 18px;
    height: 18px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--ottua-primary);
    font-size: 12px;
}

.admin-body .purchase-order-more[open] summary::before,
.admin-body .purchase-item-more[open] summary::before {
    content: "-";
}

.admin-body .purchase-order-more summary span,
.admin-body .purchase-item-more summary span {
    color: var(--ottua-muted);
    font-size: 10px;
    font-weight: 600;
}

.admin-body .purchase-order-more-grid,
.admin-body .purchase-item-more-grid {
    display: grid;
    grid-template-columns: minmax(150px, 0.7fr) repeat(2, minmax(220px, 1fr));
    gap: 10px;
    padding-top: 10px;
}

.admin-body .purchase-order-more-grid > label,
.admin-body .purchase-item-more-grid > label {
    display: grid;
    gap: 5px;
    color: var(--ottua-text);
    font-size: 11px;
    font-weight: 700;
}

.admin-body .purchase-order-more-grid textarea,
.admin-body .purchase-item-more-grid textarea {
    min-height: 54px;
    resize: vertical;
}

.admin-body .purchase-order-more-grid .purchase-image-editor,
.admin-body .purchase-item-more-grid .purchase-image-editor {
    grid-column: 1 / -1;
    padding: 7px 9px;
}

.admin-body .purchase-item-more {
    border-top: 1px solid var(--ottua-border);
}

.admin-body .purchase-detail-product-image {
    display: block;
    width: 54px;
    height: 54px;
    object-fit: contain;
    border: 1px solid var(--ottua-border);
    border-radius: 7px;
    background: #fff;
}

.admin-body .purchase-item-detail-table td small {
    display: block;
    margin-top: 4px;
    color: var(--ottua-muted);
}

.admin-body .order-purchase-overview {
    margin-top: 22px;
    padding: 20px;
    border: 1px solid var(--ottua-border);
    border-radius: 14px;
    background: #fff;
}

.admin-body .order-purchase-overview-heading {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    margin-bottom: 14px;
}

.admin-body .order-purchase-overview-heading h4,
.admin-body .order-purchase-overview-heading p {
    margin: 0;
}

.admin-body .order-purchase-overview-heading p {
    margin-top: 4px;
    color: var(--ottua-muted);
    font-size: 12px;
}

.admin-body .order-purchase-execution-list {
    display: grid;
    gap: 9px;
}

.admin-body .order-purchase-execution {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(170px, 0.8fr) minmax(190px, 1fr);
    gap: 14px;
    align-items: center;
    padding: 12px 14px;
    border: 1px solid var(--ottua-border);
    border-radius: 9px;
    background: var(--ottua-surface-muted);
}

.admin-body .order-purchase-execution.has-risk {
    border-color: #e7b8b8;
    background: #fff6f6;
}

.admin-body .order-purchase-execution > div {
    display: grid;
    gap: 4px;
}

.admin-body .order-purchase-execution small,
.admin-body .order-purchase-execution span {
    color: var(--ottua-muted);
    font-size: 11px;
}

.admin-body .order-purchase-risk {
    color: #a42d2d;
    font-size: 11px;
}

.admin-body .purchase-form-actions {
    margin-top: 0;
}

.admin-body .purchase-detail-hero {
    margin: 16px 0;
    padding: 20px;
    border-top: 3px solid var(--ottua-primary);
}

.admin-body .purchase-detail-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}

.admin-body .purchase-detail-hero dl {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 0;
}

.admin-body .purchase-detail-hero dl div {
    display: grid;
    gap: 4px;
}

.admin-body .purchase-detail-hero dt {
    color: var(--ottua-muted);
    font-size: 11px;
    font-weight: 700;
}

.admin-body .purchase-detail-hero dd {
    margin: 0;
    font-weight: 800;
}

.admin-body .purchase-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 310px;
    gap: 18px;
    align-items: start;
}

.admin-body .purchase-detail-layout main,
.admin-body .purchase-detail-sidebar,
.admin-body .purchase-side-card {
    display: grid;
    gap: 18px;
}

.admin-body .purchase-detail-section h4,
.admin-body .purchase-side-card h4 {
    margin-bottom: 14px;
    color: var(--ottua-primary);
}

.admin-body .purchase-note-block {
    min-height: 58px;
    padding: 13px;
    border-radius: 9px;
    background: var(--ottua-surface-muted);
    line-height: 1.7;
    white-space: pre-wrap;
}

.admin-body .purchase-note-block.is-impact {
    color: #842828;
    background: #fff2f2;
}

.admin-body .purchase-side-card .btn {
    justify-content: center;
}

@media (max-width: 1050px) {
    .admin-body .purchase-filter-bar,
    .admin-body .purchase-item-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-body .purchase-detail-layout {
        grid-template-columns: 1fr;
    }

    .admin-body .purchase-order-item-card {
        grid-template-columns: 1fr 1fr;
    }

    .admin-body .purchase-order-quick-actions,
    .admin-body .purchase-order-more {
        grid-column: 1 / -1;
    }

    .admin-body .purchase-order-more-grid,
    .admin-body .purchase-item-more-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .admin-body .purchase-filter-bar,
    .admin-body .purchase-item-grid,
    .admin-body .purchase-detail-hero dl {
        grid-template-columns: 1fr;
    }

    .admin-body .purchase-order-source,
    .admin-body .purchase-order-item-card,
    .admin-body .purchase-order-quick-actions,
    .admin-body .purchase-order-more-grid,
    .admin-body .purchase-item-more-grid,
    .admin-body .order-purchase-execution {
        grid-template-columns: 1fr;
    }

    .admin-body .purchase-catalog-search-row,
    .admin-body .purchase-catalog-results,
    .admin-body .purchase-manual-product-layout {
        grid-template-columns: 1fr;
    }

    .admin-body .purchase-manual-image {
        width: 120px;
    }

    .admin-body .order-purchase-overview-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-body .purchase-items-heading {
        flex-wrap: wrap;
    }

    .admin-body .purchase-items-heading .btn {
        width: 100%;
        margin-left: 42px;
    }
}

/* OTTUA work task sheet: isolated from all existing print documents. */
.task-work-order-print {
    color: #1d2926;
    background: #eef1f0;
    font-family: Arial, "Microsoft YaHei", "PingFang SC", sans-serif;
}

.task-work-order-print *,
.task-work-order-print *::before,
.task-work-order-print *::after {
    box-sizing: border-box;
}

.task-work-order-print .task-work-order-document {
    display: block;
    min-height: 277mm;
    border-top: 4px solid #203632;
}

.task-work-order-print .task-print-header {
    display: grid;
    grid-template-columns: minmax(145px, 0.85fr) minmax(310px, 2fr) minmax(160px, 0.9fr);
    gap: 0;
    align-items: stretch;
    margin-top: 1px;
    border: 1px solid #9eada8;
    border-top: 0;
    border-bottom: 2px solid #203632;
    background: #fff;
}

.task-work-order-print .task-print-brand,
.task-work-order-print .task-print-title,
.task-work-order-print .task-print-number {
    display: grid;
    align-content: center;
    min-width: 0;
    padding: 11px 14px;
}

.task-work-order-print .task-print-brand,
.task-work-order-print .task-print-title {
    border-right: 1px solid #cdd5d2;
}

.task-work-order-print .task-print-brand img {
    display: block;
    width: 124px;
    height: 36px;
    object-fit: contain;
    object-position: left center;
}

.task-work-order-print .task-print-brand p,
.task-work-order-print .task-print-title p,
.task-work-order-print .task-print-number span,
.task-work-order-print .task-print-number small {
    margin: 5px 0 0;
    color: #66716e;
    font-size: 10px;
}

.task-work-order-print .task-print-title {
    text-align: center;
}

.task-work-order-print .task-print-title h1 {
    margin: 0;
    color: #203632;
    font-size: 22px;
    letter-spacing: 0.12em;
}

.task-work-order-print .task-print-title p {
    margin-bottom: 8px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
}

.task-work-order-print .task-print-task-title {
    display: grid;
    gap: 3px;
    padding-top: 8px;
    border-top: 1px solid #d7dddb;
}

.task-work-order-print .task-print-task-title span {
    color: #66716e;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.06em;
}

.task-work-order-print .task-print-task-title strong {
    color: #203632;
    font-size: 16px;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.task-work-order-print .task-print-number {
    justify-items: end;
    text-align: right;
}

.task-work-order-print .task-print-number strong {
    margin-top: 5px;
    color: #4f5e5a;
    font-size: 12px;
    line-height: 1.2;
}

.task-work-order-print .task-print-number-line {
    display: flex;
    gap: 8px;
    align-items: center;
    justify-content: flex-end;
    margin-top: 7px;
}

.task-work-order-print .task-print-number-line small {
    margin: 0;
    line-height: 1.35;
}

.task-work-order-print .task-print-number-line small b {
    padding: 0;
    border: 0;
    background: transparent;
    color: #203632;
    font-size: 11px;
    font-weight: 700;
}

.task-work-order-print .task-print-number-line b {
    padding: 3px 8px;
    border: 1px solid #203632;
    border-radius: 999px;
    color: #203632;
    background: #edf2f0;
    font-size: 10px;
    line-height: 1;
}

.task-work-order-print .task-print-meta {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin: 12px 0 0;
    border: 1px solid #cdd5d2;
    border-radius: 2px;
    overflow: hidden;
}

.task-work-order-print .task-print-meta div {
    display: grid;
    gap: 4px;
    min-height: 50px;
    padding: 8px 11px;
    border-right: 1px solid #cdd5d2;
    border-bottom: 1px solid #cdd5d2;
}

.task-work-order-print .task-print-meta div:nth-child(3n) {
    border-right: 0;
}

.task-work-order-print .task-print-meta div:nth-last-child(-n + 3) {
    border-bottom: 0;
}

.task-work-order-print .task-print-meta span,
.task-work-order-print .task-print-relation-grid span,
.task-work-order-print .task-print-feedback-box > span,
.task-work-order-print .task-print-signatures span {
    color: #66716e;
    font-size: 10px;
}

.task-work-order-print .task-print-meta strong,
.task-work-order-print .task-print-relation-grid strong {
    color: #1d2926;
    font-size: 13px;
    line-height: 1.35;
}

.task-work-order-print .task-print-section {
    margin-top: 8px;
    break-inside: avoid;
}

.task-work-order-print .task-print-section h2 {
    margin: 0;
    padding: 7px 11px;
    border-left: 4px solid #203632;
    color: #203632;
    background: #eef2f1;
    font-size: 11.5px;
    letter-spacing: 0.07em;
}

.task-work-order-print .task-print-relation-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    border: 1px solid #d7dddb;
    border-top: 0;
}

.task-work-order-print .task-print-relation-grid div {
    display: grid;
    gap: 4px;
    min-height: 42px;
    padding: 6px 10px;
    border-right: 1px solid #d7dddb;
    border-bottom: 1px solid #d7dddb;
}

.task-work-order-print .task-print-relation-grid div:nth-child(2n) {
    border-right: 0;
}

.task-work-order-print .task-print-relation-grid div:nth-last-child(-n + 2) {
    border-bottom: 0;
}

.task-work-order-print .task-print-text {
    line-height: 1.8;
    white-space: pre-wrap;
}

.task-work-order-print .task-print-content {
    display: block;
}

.task-work-order-print .task-print-content-body {
    display: block;
    min-height: 64mm;
    border: 1.5px solid #aebbb7;
    border-top: 0;
    background: #fff;
}

.task-work-order-print .task-print-content-body > .task-print-text {
    min-height: 72mm;
    padding: 10px 14px;
    color: #1d2926;
    font-size: 14px;
    line-height: 1.8;
}

.task-work-order-print .task-print-feedback-box {
    display: grid;
    grid-template-columns: 125px 1fr;
    min-height: 24mm;
    border: 1px solid #d7dddb;
    border-top: 0;
}

.task-work-order-print .task-print-feedback-box.remarks {
    min-height: 18mm;
}

.task-work-order-print .task-print-feedback-box > span,
.task-work-order-print .task-print-feedback-box > div {
    padding: 9px 10px;
}

.task-work-order-print .task-print-feedback-box > span {
    display: flex;
    flex-direction: column;
    gap: 4px;
    border-right: 1px solid #d7dddb;
    font-weight: 700;
}

.task-work-order-print .task-print-feedback-box > span strong {
    color: #203632;
    font-size: 11px;
}

.task-work-order-print .task-print-feedback-box > span small {
    color: #7b8582;
    font-size: 9px;
    letter-spacing: 0.08em;
}

.task-work-order-print .task-print-feedback-box > .task-print-text {
    font-size: 13px;
    line-height: 1.65;
}

.task-work-order-print .task-print-signatures {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border: 1px solid #d7dddb;
    border-top: 0;
}

.task-work-order-print .task-print-signatures div {
    display: grid;
    grid-template-rows: auto auto 1fr;
    gap: 2px;
    min-height: 18mm;
    padding: 9px 10px;
    border-right: 1px solid #d7dddb;
}

.task-work-order-print .task-print-signatures div:last-child {
    border-right: 0;
}

.task-work-order-print .task-print-signatures span {
    color: #203632;
    font-size: 10px;
    font-weight: 700;
}

.task-work-order-print .task-print-signatures small {
    color: #7b8582;
    font-size: 8px;
    letter-spacing: 0.07em;
}

.task-work-order-print .task-print-signatures strong {
    align-self: end;
    min-height: 15px;
    font-size: 12px;
}

.task-work-order-print .task-print-footer {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid #203632;
    color: #66716e;
    font-size: 9px;
}

.task-work-order-print .task-print-feedback {
    margin-bottom: 8px;
}

.task-work-order-print .task-print-footer > div {
    display: flex;
    gap: 10px;
    align-items: baseline;
}

.task-work-order-print .task-print-footer strong {
    color: #203632;
    font-size: 13px;
    letter-spacing: 0.16em;
}

.task-work-order-print .task-print-footer span {
    color: #203632;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.task-work-order-print .task-print-footer small {
    color: #7b8582;
    font-size: 8.5px;
}

@media print {
    .task-work-order-print .task-work-order-document {
        height: auto;
        min-height: auto;
        border-top-color: #203632;
        box-sizing: border-box;
    }

}

/* Sales order detail header: one structured surface, three clear information groups. */
.admin-body .order-detail-card {
    padding: 0;
    border: 1px solid var(--ottua-border);
    border-radius: 10px;
    background: var(--ottua-surface);
    overflow: hidden;
}

.admin-body .order-detail-document-header {
    display: flex;
    justify-content: flex-end;
    padding: 16px 20px 14px;
    border-top: 3px solid var(--ottua-primary);
    border-bottom: 1px solid var(--ottua-border);
    background: var(--ottua-surface-muted);
}

.admin-body .order-detail-document-meta {
    display: grid;
    justify-items: end;
    gap: 4px;
    text-align: right;
}

.admin-body .order-detail-document-meta small {
    color: var(--ottua-muted);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.admin-body .order-detail-document-meta > strong {
    color: var(--ottua-primary);
    font-size: 21px;
    letter-spacing: 0.015em;
}

.admin-body .order-detail-header-groups {
    display: grid;
    grid-template-columns: 1.14fr 1fr 0.86fr;
    border-top: 0;
}

.admin-body .order-detail-header-group {
    min-width: 0;
    padding: 20px;
}

.admin-body .order-detail-header-group + .order-detail-header-group {
    border-left: 1px solid var(--ottua-border);
}

.admin-body .order-detail-header-group h3 {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin: 0 0 16px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--ottua-border);
    color: var(--ottua-primary);
    font-size: 16px;
}

.admin-body .order-detail-header-group h3 span {
    color: var(--ottua-muted);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.08em;
}

.admin-body .order-detail-header-group dl {
    margin: 0;
}

.admin-body .order-detail-header-group dl > div {
    margin-bottom: 13px;
}

.admin-body .order-detail-header-group dl > div:last-child {
    margin-bottom: 0;
}

.admin-body .order-detail-header-group dt,
.admin-body .order-detail-date-pair small {
    display: block;
    margin-bottom: 4px;
    color: var(--ottua-muted);
    font-size: 12px;
    font-weight: 600;
}

.admin-body .order-detail-header-group dd {
    margin: 0;
    color: var(--ottua-text);
    font-size: 14px;
    font-weight: 650;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.admin-body .order-detail-address dd {
    font-weight: 500;
}

.admin-body .order-detail-customer-name dd {
    color: var(--ottua-primary);
    font-size: 17px;
    font-weight: 750;
}

.admin-body .order-detail-date-pair {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding: 11px 12px;
    border-radius: 7px;
    background: var(--ottua-surface-muted);
}

.admin-body .order-detail-date-pair strong {
    display: block;
    font-size: 13px;
}

.admin-body .order-detail-date-pair span:last-child strong {
    color: var(--ottua-primary);
    font-size: 14px;
    font-weight: 750;
}

.admin-body .order-detail-status {
    display: inline-flex;
    padding: 4px 9px;
    border: 1px solid #ccd7d3;
    border-radius: 999px;
    background: var(--ottua-surface-muted);
    color: var(--ottua-primary);
    font-size: 12px;
}

.admin-body .order-detail-total dd {
    color: var(--ottua-primary);
    font-size: 23px;
    font-weight: 750;
}

.admin-body .order-detail-price-components {
    display: grid !important;
    gap: 0;
    margin-top: 8px !important;
    border-top: 1px solid var(--ottua-border);
}

.admin-body .order-detail-price-components > span {
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 8px;
    align-items: baseline;
    margin: 0 !important;
    padding: 7px 0;
    border-bottom: 1px solid var(--ottua-border);
}

.admin-body .order-detail-price-components small {
    color: var(--ottua-muted);
    font-size: 11px;
    font-weight: 600;
}

.admin-body .order-detail-price-components strong {
    color: var(--ottua-text);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
}

.admin-body .order-detail-supporting-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(360px, 1.15fr);
    gap: 18px;
    padding: 18px 20px 20px;
    border-top: 1px solid var(--ottua-border);
    background: var(--ottua-surface-muted);
}

.admin-body .order-detail-remarks,
.admin-body .order-detail-supporting-grid .order-amount-details {
    padding: 14px 16px;
    border: 1px solid var(--ottua-border);
    border-radius: 8px;
    background: var(--ottua-surface);
}

.admin-body .order-detail-remarks h4 {
    margin: 0 0 10px;
}

.admin-body .order-detail-remarks p {
    margin: 0;
    color: var(--ottua-muted);
    line-height: 1.65;
    white-space: pre-wrap;
}

.admin-body .order-execution-meta {
    margin: 0;
    border-top: 1px solid var(--ottua-border);
}

.admin-body .order-execution-meta > div {
    display: grid;
    grid-template-columns: 126px minmax(0, 1fr);
    gap: 12px;
    min-width: 0;
    padding: 9px 0;
    border-bottom: 1px solid var(--ottua-border);
}

.admin-body .order-execution-meta dt,
.admin-body .order-execution-meta dd {
    margin: 0;
}

.admin-body .order-execution-meta dt {
    color: var(--ottua-muted);
    font-size: 11px;
    font-weight: 600;
}

.admin-body .order-execution-meta dd {
    color: var(--ottua-text);
    font-size: 13px;
    font-weight: 650;
    overflow-wrap: anywhere;
}

.admin-body .order-execution-remarks {
    white-space: pre-wrap;
}

/* V1.8.2 order-detail workspace: one clear next action with quiet supporting controls. */
.admin-body .order-next-workspace {
    margin-bottom: 18px;
    border: 1px solid var(--ottua-border);
    border-left: 4px solid var(--ottua-primary);
    border-radius: 9px;
    background: var(--ottua-surface);
    overflow: hidden;
}

.admin-body .order-next-heading,
.admin-body .order-next-main,
.admin-body .order-action-groups {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 14px 18px;
}

.admin-body .order-next-heading {
    padding-bottom: 10px;
    background: var(--ottua-surface-muted);
}

.admin-body .order-next-heading small {
    color: var(--ottua-muted);
    font-size: 10px;
    font-weight: 750;
    letter-spacing: 0.13em;
}

.admin-body .order-next-heading h3 {
    margin: 2px 0 0;
    color: var(--ottua-primary);
    font-size: 17px;
}

.admin-body .order-next-status {
    padding: 4px 9px;
    border-radius: 999px;
    background: #e8efec;
    color: var(--ottua-primary);
    font-size: 12px;
    font-weight: 700;
}

.admin-body .order-next-main {
    min-height: 54px;
    border-top: 1px solid var(--ottua-border);
    border-bottom: 1px solid var(--ottua-border);
}

.admin-body .order-next-copy {
    display: grid;
    gap: 3px;
}

.admin-body .order-next-copy strong {
    color: var(--ottua-text);
    font-size: 16px;
}

.admin-body .order-next-copy span,
.admin-body .order-next-waiting {
    color: var(--ottua-muted);
    font-size: 12px;
}

.admin-body .order-next-cancelled strong {
    color: #7d4d4d;
}

.admin-body .order-next-primary {
    min-width: 132px;
    text-align: center;
}

.admin-body .order-next-read-actions,
.admin-body .order-common-actions > div,
.admin-body .order-more-actions-body {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 14px;
}

.admin-body .order-action-groups {
    align-items: flex-start;
    padding-top: 12px;
    padding-bottom: 12px;
}

.admin-body .order-common-actions {
    display: grid;
    gap: 6px;
}

.admin-body .order-common-actions > strong {
    color: var(--ottua-muted);
    font-size: 11px;
    letter-spacing: 0.04em;
}

.admin-body .order-edit-warning {
    color: #8a6a2a;
    font-size: 11px;
}

.admin-body .order-more-actions {
    min-width: 110px;
    color: var(--ottua-muted);
    font-size: 12px;
}

.admin-body .order-more-actions summary {
    cursor: pointer;
    font-weight: 700;
    text-align: right;
}

.admin-body .order-more-actions-body {
    justify-content: flex-end;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--ottua-border);
}

.admin-body .order-detail-status-form {
    display: flex;
    align-items: flex-end;
    gap: 8px;
}

.admin-body .order-detail-status-form label {
    display: grid;
    gap: 3px;
    color: var(--ottua-muted);
    font-size: 11px;
}

.admin-body .order-detail-status-form select {
    min-width: 112px;
}

.admin-body .order-payment-notice {
    margin-top: 10px;
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 750;
}

.admin-body .order-payment-notice.is-outstanding {
    background: #fff6df;
    color: #7d5c16;
}

.admin-body .order-payment-notice.is-complete {
    background: #e7f2ed;
    color: var(--ottua-primary);
}

@media (max-width: 980px) {
    .admin-body .order-detail-header-groups,
    .admin-body .order-detail-supporting-grid {
        grid-template-columns: 1fr;
    }

    .admin-body .order-detail-header-group + .order-detail-header-group {
        border-top: 1px solid var(--ottua-border);
        border-left: 0;
    }

    .admin-body .order-detail-supporting-grid {
        padding: 16px;
    }

    .admin-body .order-detail-document-header {
        padding: 14px 16px;
    }

    .admin-body .order-next-main,
    .admin-body .order-action-groups {
        align-items: flex-start;
        flex-direction: column;
    }

    .admin-body .order-more-actions,
    .admin-body .order-more-actions summary {
        width: 100%;
        text-align: left;
    }

    .admin-body .order-more-actions-body {
        justify-content: flex-start;
    }
}

@media (max-width: 560px) {
    .admin-body .order-detail-date-pair {
        grid-template-columns: 1fr;
    }

    .admin-body .order-execution-meta > div {
        grid-template-columns: 1fr;
        gap: 3px;
    }

    .admin-body .order-next-heading,
    .admin-body .order-next-main,
    .admin-body .order-action-groups {
        padding-right: 13px;
        padding-left: 13px;
    }

    .admin-body .order-next-read-actions,
    .admin-body .order-detail-status-form {
        align-items: stretch;
        flex-direction: column;
        width: 100%;
    }
}

/* OTTUA branded customer Sales Order. All rules stay inside the sales print scope. */
.sales-order-print .sales-order-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 34px;
    padding: 4px 0 14px;
    border-bottom: 2px solid var(--sales-order-brand);
}

.sales-order-print .sales-order-brand {
    display: flex;
    flex: 1 1 auto;
    flex-direction: row;
    align-items: center;
    gap: 21px;
    min-width: 0;
}

.sales-order-print .sales-order-logo {
    flex: 0 0 auto;
    width: 172px;
    max-height: 38px;
}

.sales-order-print .sales-order-brand-copy {
    min-width: 0;
    padding-left: 21px;
    border-left: 1px solid var(--sales-order-border);
}

.sales-order-print .sales-order-brand-copy h1 {
    margin: 0;
    color: var(--sales-order-brand);
    font-size: 21px;
    font-weight: 750;
    letter-spacing: 0.16em;
    line-height: 1.1;
}

.sales-order-print .sales-order-document-meta {
    display: grid;
    flex: 0 0 250px;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px 14px;
    align-items: end;
    text-align: right;
}

.sales-order-print .sales-order-number {
    grid-column: 1;
}

.sales-order-print .sales-order-document-meta small {
    display: block;
    margin-bottom: 2px;
    color: var(--sales-order-muted);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.sales-order-print .sales-order-number strong {
    display: block;
    color: var(--sales-order-brand);
    font-size: 20px;
    font-weight: 750;
    line-height: 1.15;
    overflow-wrap: anywhere;
}

.sales-order-print .sales-order-status {
    align-self: center;
    justify-self: end;
    padding: 3px 8px;
    border: 1px solid #cbd6d2;
    border-radius: 999px;
    background: #f3f6f5;
    color: var(--sales-order-brand);
    font-size: 9px;
    font-weight: 700;
    white-space: nowrap;
}

.sales-order-print .sales-order-info-sections {
    display: grid;
    grid-template-columns: minmax(0, 1.46fr) minmax(0, 1fr);
    margin: 16px 0 18px;
    border: 0;
    border-top: 1px solid var(--sales-order-border);
    border-bottom: 1px solid var(--sales-order-border);
    border-radius: 0;
    background: #fff;
    overflow: visible;
}

.sales-order-print .sales-order-info-section {
    min-width: 0;
    padding: 14px 18px 15px;
}

.sales-order-print .sales-order-info-section:first-child {
    padding-left: 0;
}

.sales-order-print .sales-order-info-section:last-child {
    padding-right: 0;
}

.sales-order-print .sales-order-info-section + .sales-order-info-section {
    border-left: 1px solid var(--sales-order-border);
}

.sales-order-print .sales-order-info-section h2 {
    display: flex;
    align-items: baseline;
    gap: 7px;
    margin: 0 0 11px;
    padding: 0;
    border: 0;
    color: var(--sales-order-brand);
    font-size: 10.5px;
    font-weight: 750;
    letter-spacing: 0.09em;
}

.sales-order-print .sales-order-info-section h2 span {
    color: var(--sales-order-muted);
    font-size: 8px;
    font-weight: 500;
    letter-spacing: 0;
}

.sales-order-print .sales-order-info-section dl > div {
    margin-bottom: 8px;
}

.sales-order-print .sales-order-info-section dt,
.sales-order-print .sales-order-date-pair small {
    margin-bottom: 2px;
    font-size: 8px;
    letter-spacing: 0.015em;
}

.sales-order-print .sales-order-info-section dd {
    font-size: 9.5px;
    line-height: 1.4;
}

.sales-order-print .sales-order-customer-name dd {
    font-size: 12.5px;
}

.sales-order-print .sales-order-customer-info.is-sparse dl > div {
    margin-bottom: 5px;
}

.sales-order-print .sales-order-customer-info.is-sparse dd {
    line-height: 1.25;
}

.sales-order-print .sales-order-date-pair {
    gap: 18px;
}

.sales-order-print .sales-order-date-pair strong {
    font-size: 10px;
}

.sales-order-print .sales-order-date-pair span:last-child strong {
    font-size: 11.5px;
}

.sales-order-print .sales-order-state-pair {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 18px;
    margin-bottom: 0 !important;
}

.sales-order-print .sales-order-state-pair small {
    display: block;
    margin-bottom: 2px;
    color: var(--sales-order-muted);
    font-size: 8px;
    font-weight: 600;
}

.sales-order-print .sales-order-state-pair strong {
    display: block;
    color: var(--sales-order-ink);
    font-size: 10px;
    font-weight: 700;
}

.sales-order-print .sales-order-terms-line {
    margin: 9px 0 0 !important;
}

.sales-order-print .sales-order-terms-line small {
    display: block;
    margin-bottom: 2px;
    color: #89938f;
    font-size: 7.2px;
    font-weight: 600;
    letter-spacing: 0.015em;
}

.sales-order-print .sales-order-terms-line strong {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0 5px;
    color: #66716d;
    font-size: 8.6px;
    font-weight: 600;
    line-height: 1.25;
}

.sales-order-print .sales-order-terms-line .sales-order-terms-detail {
    flex-basis: 100%;
    color: #89938f;
    font-size: 7.7px;
    font-weight: 500;
}

.sales-order-print .sales-order-terms-line i {
    color: #a8b0ad;
    font-style: normal;
    font-weight: 400;
}

.sales-order-print .sales-order-commercial-total dd {
    font-size: 15px;
}

.sales-order-print .sales-order-price-components {
    margin-top: 5px !important;
    border-top: 0;
}

.sales-order-print .sales-order-price-components > span {
    grid-template-columns: 58px minmax(0, 1fr);
    padding: 2px 0;
    border-bottom: 0;
}

.sales-order-print .sales-order-price-components small {
    font-size: 7.8px;
}

.sales-order-print .sales-order-price-components strong {
    font-size: 8.5px;
}

.sales-order-print .sales-order-product-table {
    width: 100%;
    border-collapse: collapse;
    border-top: 1.5px solid var(--sales-order-brand);
}

.sales-order-print .sales-order-product-table .sales-order-col-image { width: 13%; }
.sales-order-print .sales-order-product-table .sales-order-col-model { width: 13%; }
.sales-order-print .sales-order-product-table .sales-order-col-product { width: 19%; }
.sales-order-print .sales-order-product-table .sales-order-col-material { width: 10%; }
.sales-order-print .sales-order-product-table .sales-order-col-finish { width: 11%; }
.sales-order-print .sales-order-product-table .sales-order-col-qty { width: 7%; }
.sales-order-print .sales-order-product-table .sales-order-col-price { width: 13%; }
.sales-order-print .sales-order-product-table .sales-order-col-amount { width: 14%; }

.sales-order-print .sales-order-product-table th {
    padding: 7px 6px;
    border-top: 0;
    border-right: 0;
    border-bottom: 1px solid #c8d2cf;
    border-left: 0;
    background: #f3f5f4;
    color: var(--sales-order-brand);
    font-size: 8.5px;
    font-weight: 750;
    letter-spacing: 0.045em;
    line-height: 1.2;
    text-align: left;
}

.sales-order-print .sales-order-product-table th span {
    color: var(--sales-order-muted);
    font-size: 7.5px;
    font-weight: 500;
    letter-spacing: 0;
}

.sales-order-print .sales-order-repeated-brand,
.sales-order-print .sales-order-repeated-order {
    display: block;
    margin-bottom: 3px;
    color: var(--sales-order-brand);
    font-size: 6.5px;
    font-weight: 800;
    letter-spacing: 0.08em;
    line-height: 1;
    white-space: nowrap;
}

.sales-order-print .sales-order-repeated-order {
    max-width: 100%;
    overflow: hidden;
    color: var(--sales-order-muted);
    font-size: 5.8px;
    font-weight: 600;
    letter-spacing: 0;
    text-overflow: ellipsis;
}

@media screen {
    .sales-order-print .sales-order-table-running-footer {
        display: none;
    }
}

.sales-order-print .sales-order-product-table td {
    padding: 9px 6px;
    border-right: 0;
    border-bottom: 1px solid #e2e7e5;
    border-left: 0;
    color: var(--sales-order-ink);
    font-size: 9.5px;
    line-height: 1.4;
    vertical-align: middle;
}

.sales-order-print .sales-order-image-cell {
    text-align: center;
}

.sales-order-print .print-product-image,
.sales-order-print .product-image-placeholder.large-placeholder {
    display: block;
    width: 88px;
    height: 88px;
    margin: 0 auto;
    border: 1px solid #e0e6e3;
    border-radius: 2px;
    background: #fff;
    object-fit: contain;
}

.sales-order-print .product-image-placeholder.large-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #9aa49f;
    font-size: 7.5px;
    line-height: 1.4;
}

.sales-order-print .product-image-placeholder.large-placeholder span {
    font-size: 7px;
}

.sales-order-print .sales-order-model-cell strong {
    color: var(--sales-order-brand);
    font-size: 14.5px;
    font-weight: 850;
    letter-spacing: 0.015em;
}

.sales-order-print .sales-order-product-cell strong {
    color: #45524d;
    font-size: 9.2px;
    font-weight: 600;
}

.sales-order-print .sales-order-number-cell,
.sales-order-print .sales-order-money-cell {
    text-align: right !important;
    font-variant-numeric: tabular-nums;
}

.sales-order-print .sales-order-money-cell {
    white-space: nowrap;
}

.sales-order-print .print-item-remark-row td {
    padding: 0 6px 7px;
}

.sales-order-print .print-item-remark {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 8px;
    padding: 5px 8px;
    border-left: 1px solid #cfd8d5;
    background: #fafbfa;
    color: #56635e;
    font-size: 8.5px;
}

.sales-order-print .print-item-remark strong {
    color: var(--sales-order-muted);
    font-size: 7px;
    font-weight: 650;
    letter-spacing: 0.04em;
}

.sales-order-print .sales-print-summary {
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 24px;
    margin-top: 16px;
}

.sales-order-print .sales-order-requirements h3 {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin: 0 0 7px;
    color: var(--sales-order-brand);
    font-size: 10.5px;
    letter-spacing: 0.08em;
}

.sales-order-print .sales-order-requirements h3 span {
    color: var(--sales-order-muted);
    font-size: 8px;
    font-weight: 500;
    letter-spacing: 0;
}

.sales-order-print .sales-order-execution-meta {
    border-top: 1px solid var(--sales-order-border);
}

.sales-order-print .sales-order-execution-meta > div {
    grid-template-columns: 112px minmax(0, 1fr);
    padding: 5px 0;
}

.sales-order-print .sales-order-execution-meta dt {
    font-size: 8px;
}

.sales-order-print .sales-order-execution-meta dd {
    font-size: 9.5px;
}

.sales-order-print .sales-amount-breakdown {
    padding: 9px 13px 12px;
    border: 1px solid #c8d2cf;
    border-top: 2px solid var(--sales-order-brand);
    background: #fff;
}

.sales-order-print .sales-amount-line {
    padding: 6px 0;
}

.sales-order-print .sales-amount-line span {
    color: var(--sales-order-muted);
    font-size: 9px;
    line-height: 1.25;
}

.sales-order-print .sales-amount-line span small {
    font-size: 7.5px;
    font-weight: 400;
}

.sales-order-print .sales-amount-line strong {
    font-size: 13px;
}

.sales-order-print .sales-grand-total {
    align-items: end;
    margin-top: 4px;
    padding-top: 10px;
    border-top: 1.5px solid var(--sales-order-brand) !important;
}

.sales-order-print .sales-grand-total span {
    display: flex;
    flex-direction: column;
    gap: 2px;
    color: var(--sales-order-brand);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
}

.sales-order-print .sales-grand-total span small {
    color: var(--sales-order-muted);
    font-size: 7.5px;
    font-weight: 500;
    letter-spacing: 0;
}

.sales-order-print .sales-grand-total strong {
    color: var(--sales-order-brand);
    font-size: 24px;
    font-weight: 800;
}

.sales-order-print .sales-order-footer {
    align-items: flex-end;
    gap: 22px;
    margin-top: 17px;
    padding-top: 8px;
    border-top: 1px solid var(--sales-order-border);
}

.sales-order-print .sales-order-footer-note {
    max-width: 44%;
    font-size: 8px;
    line-height: 1.5;
}

.sales-order-print .sales-order-footer-brand {
    flex: 1 1 auto;
}

.sales-order-print .sales-order-footer-brand > strong {
    font-size: 14px;
    letter-spacing: 0.12em;
}

.sales-order-print .sales-order-footer-brand > span {
    margin-top: 2px;
    color: var(--sales-order-ink);
    font-size: 7.8px;
}

.sales-order-print .sales-order-footer-brand > small {
    margin-top: 2px;
    color: var(--sales-order-muted);
    font-size: 7.5px;
}

@media print {
    .sales-order-print .sales-order-document,
    .sales-order-print .sales-order-product-table th {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .sales-order-print .sales-order-header,
    .sales-order-print .sales-order-info-sections,
    .sales-order-print .sales-print-summary,
    .sales-order-print .sales-order-footer,
    .sales-order-print .print-item-row,
    .sales-order-print .print-item-remark-row {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .sales-order-print .sales-order-product-table thead {
        display: table-header-group;
    }

    .sales-order-print .sales-order-table-running-footer {
        display: table-footer-group;
    }

    .sales-order-print .sales-order-table-running-footer td {
        padding: 4px 5px;
        border-top: 1px solid var(--sales-order-border);
        border-bottom: 0;
        color: var(--sales-order-muted);
        font-size: 6.5px;
        font-weight: 600;
        letter-spacing: 0.02em;
    }

    .sales-order-print .sales-order-table-running-footer td span:last-child {
        float: right;
    }

    .sales-order-print .sales-order-logo {
        width: 160px;
        max-height: 34px;
    }

    .sales-order-print .sales-order-brand-copy h1 {
        font-size: 18.5px;
    }

    .sales-order-print .sales-order-document-meta {
        flex-basis: 235px;
    }

    .sales-order-print .sales-order-product-table th {
        padding: 6px 5px;
        font-size: 8px;
    }

    .sales-order-print .sales-order-product-table td {
        padding: 7px 5px;
        font-size: 9px;
    }

    .sales-order-print .print-product-image,
    .sales-order-print .product-image-placeholder.large-placeholder {
        width: 86px;
        height: 86px;
    }

    .sales-order-print .sales-order-model-cell strong {
        font-size: 13.5px;
    }

}

/* OTTUA branded customer quotation. Scoped away from all other print documents. */
.quotation-print {
    --quotation-brand: #203632;
    --quotation-ink: #1f2926;
    --quotation-muted: #69736f;
    --quotation-border: #d9e0dd;
    --quotation-soft: #f3f5f4;
}

.quotation-print .print-toolbar .btn-primary {
    border-color: var(--quotation-brand);
    background: var(--quotation-brand);
}

.quotation-print .print-toolbar .btn-secondary {
    border-color: #b8c5c1;
    color: var(--quotation-brand);
}

.quotation-print .quotation-document {
    color: var(--quotation-ink);
}

.quotation-print .quotation-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 34px;
    padding: 4px 0 14px;
    border-bottom: 2px solid var(--quotation-brand);
}

.quotation-print .quotation-brand {
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    gap: 21px;
    min-width: 0;
}

.quotation-print .quotation-logo {
    display: block;
    flex: 0 0 auto;
    width: 172px;
    max-width: 100%;
    height: auto;
    max-height: 38px;
    object-fit: contain;
    object-position: left center;
}

.quotation-print .quotation-brand-copy {
    min-width: 0;
    padding-left: 21px;
    border-left: 1px solid var(--quotation-border);
}

.quotation-print .quotation-brand-copy h1 {
    margin: 0;
    color: var(--quotation-brand);
    font-size: 21px;
    font-weight: 750;
    letter-spacing: 0.16em;
    line-height: 1.1;
}

.quotation-print .quotation-document-meta {
    display: grid;
    flex: 0 0 250px;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px 14px;
    align-items: end;
    text-align: right;
}

.quotation-print .quotation-number {
    grid-column: 1;
}

.quotation-print .quotation-document-meta small {
    display: block;
    margin-bottom: 2px;
    color: var(--quotation-muted);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.quotation-print .quotation-number strong {
    display: block;
    color: var(--quotation-brand);
    font-size: 19px;
    font-weight: 750;
    line-height: 1.15;
    overflow-wrap: anywhere;
}

.quotation-print .quotation-status {
    align-self: center;
    justify-self: end;
    padding: 3px 8px;
    border: 1px solid #cbd6d2;
    border-radius: 999px;
    background: #f3f6f5;
    color: var(--quotation-brand);
    font-size: 9px;
    font-weight: 700;
    white-space: nowrap;
}

.quotation-print .quotation-info-sections {
    display: grid;
    grid-template-columns: minmax(0, 1.46fr) minmax(0, 1fr);
    margin: 16px 0 18px;
    border-top: 1px solid var(--quotation-border);
    border-bottom: 1px solid var(--quotation-border);
    background: #fff;
    break-inside: avoid;
    page-break-inside: avoid;
}

.quotation-print .quotation-info-section {
    min-width: 0;
    padding: 14px 18px 15px;
}

.quotation-print .quotation-info-section:first-child {
    padding-left: 0;
}

.quotation-print .quotation-info-section:last-child {
    padding-right: 0;
}

.quotation-print .quotation-info-section + .quotation-info-section {
    border-left: 1px solid var(--quotation-border);
}

.quotation-print .quotation-info-section h2 {
    display: flex;
    align-items: baseline;
    gap: 7px;
    margin: 0 0 11px;
    color: var(--quotation-brand);
    font-size: 10.5px;
    font-weight: 750;
    letter-spacing: 0.09em;
}

.quotation-print .quotation-info-section h2 span {
    color: var(--quotation-muted);
    font-size: 8px;
    font-weight: 500;
    letter-spacing: 0;
}

.quotation-print .quotation-info-section dl,
.quotation-print .quotation-commercial-terms dl {
    margin: 0;
}

.quotation-print .quotation-info-section dl > div {
    margin: 0 0 8px;
}

.quotation-print .quotation-info-section dl > div:last-child {
    margin-bottom: 0;
}

.quotation-print .quotation-info-section dt,
.quotation-print .quotation-date-pair small {
    display: block;
    margin-bottom: 2px;
    color: var(--quotation-muted);
    font-size: 8px;
    font-weight: 500;
    line-height: 1.25;
}

.quotation-print .quotation-info-section dd {
    margin: 0;
    color: var(--quotation-ink);
    font-size: 9.5px;
    font-weight: 650;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.quotation-print .quotation-customer-name dd {
    color: var(--quotation-brand);
    font-size: 12.5px;
    font-weight: 750;
}

.quotation-print .quotation-date-pair {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.quotation-print .quotation-date-pair strong {
    display: block;
    font-size: 10px;
    line-height: 1.25;
}

.quotation-print .quotation-date-pair span:last-child strong {
    color: var(--quotation-brand);
    font-size: 11px;
}

.quotation-print .quotation-state-line dd {
    font-size: 10px;
    font-weight: 700;
}

.quotation-print .quotation-terms-block {
    margin-top: 9px !important;
}

.quotation-print .quotation-terms-block > dt {
    color: #89938f;
    font-size: 7.2px;
    font-weight: 600;
    letter-spacing: 0.015em;
}

.quotation-print .quotation-terms-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 5px 18px;
    margin-top: 3px;
}

.quotation-print .quotation-terms-grid > span {
    display: block;
}

.quotation-print .quotation-terms-grid .quotation-price-mode {
    grid-column: 1 / -1;
}

.quotation-print .quotation-terms-grid small {
    display: block;
    margin-bottom: 1px;
    color: #89938f;
    font-size: 7px;
    font-weight: 600;
}

.quotation-print .quotation-terms-grid strong {
    display: block;
    color: #66716d;
    font-size: 8.6px;
    font-weight: 600;
    line-height: 1.25;
}

.quotation-print .quotation-customer-price-terms {
    display: grid;
    gap: 2px;
    margin-top: 3px;
}

.quotation-print .quotation-customer-price-terms strong {
    color: #66716d;
    font-size: 8.6px;
    font-weight: 600;
}

.quotation-print .quotation-customer-price-terms small {
    color: #89938f;
    font-size: 7.4px;
    font-weight: 500;
}

.quotation-print .quotation-product-table {
    width: 100%;
    border-collapse: collapse;
    border-top: 1.5px solid var(--quotation-brand);
}

.quotation-print .quotation-product-table .quotation-col-image { width: 13%; }
.quotation-print .quotation-product-table .quotation-col-model { width: 13%; }
.quotation-print .quotation-product-table .quotation-col-product { width: 19%; }
.quotation-print .quotation-product-table .quotation-col-material { width: 10%; }
.quotation-print .quotation-product-table .quotation-col-finish { width: 11%; }
.quotation-print .quotation-product-table .quotation-col-qty { width: 7%; }
.quotation-print .quotation-product-table .quotation-col-price { width: 13%; }
.quotation-print .quotation-product-table .quotation-col-amount { width: 14%; }

.quotation-print .quotation-product-table th {
    padding: 7px 6px;
    border: 0;
    border-bottom: 1px solid #c8d2cf;
    background: var(--quotation-soft);
    color: var(--quotation-brand);
    font-size: 8.5px;
    font-weight: 750;
    letter-spacing: 0.045em;
    line-height: 1.2;
    text-align: left;
}

.quotation-print .quotation-product-table th span {
    color: var(--quotation-muted);
    font-size: 7.5px;
    font-weight: 500;
    letter-spacing: 0;
}

.quotation-print .quotation-repeated-brand,
.quotation-print .quotation-repeated-number {
    display: block;
    margin-bottom: 3px;
    color: var(--quotation-brand);
    font-size: 6.5px;
    font-weight: 800;
    letter-spacing: 0.08em;
    line-height: 1;
    white-space: nowrap;
}

.quotation-print .quotation-repeated-number {
    max-width: 100%;
    overflow: hidden;
    color: var(--quotation-muted);
    font-size: 5.8px;
    font-weight: 600;
    letter-spacing: 0;
    text-overflow: ellipsis;
}

@media screen {
    .quotation-print .quotation-table-running-footer {
        display: none;
    }
}

.quotation-print .quotation-product-table td {
    padding: 10px 6px;
    border: 0;
    border-bottom: 1px solid #e2e7e5;
    color: var(--quotation-ink);
    font-size: 9.5px;
    line-height: 1.4;
    vertical-align: middle;
}

.quotation-print .quotation-image-cell {
    text-align: center;
}

.quotation-print .print-product-image,
.quotation-print .product-image-placeholder.large-placeholder {
    display: block;
    width: 88px;
    height: 88px;
    margin: 0 auto;
    border: 1px solid #e0e6e3;
    border-radius: 2px;
    background: #fff;
    object-fit: contain;
}

.quotation-print .product-image-placeholder.large-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #9aa49f;
    font-size: 7.5px;
    line-height: 1.4;
}

.quotation-print .product-image-placeholder.large-placeholder span {
    font-size: 7px;
}

.quotation-print .quotation-model-cell strong {
    color: var(--quotation-brand);
    font-size: 14.5px;
    font-weight: 850;
    letter-spacing: 0.015em;
}

.quotation-print .quotation-product-cell strong {
    color: #45524d;
    font-size: 9.2px;
    font-weight: 600;
}

.quotation-print .quotation-number-cell,
.quotation-print .quotation-money-cell {
    text-align: right !important;
    font-variant-numeric: tabular-nums;
}

.quotation-print .quotation-money-cell {
    white-space: nowrap;
}

.quotation-print .print-item-remark-row td {
    padding: 0 6px 7px;
}

.quotation-print .print-item-remark {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 8px;
    padding: 5px 8px;
    border-left: 1px solid #cfd8d5;
    background: #fafbfa;
    color: #52605b;
    font-size: 8.5px;
}

.quotation-print .print-item-remark strong {
    color: var(--quotation-muted);
    font-size: 7px;
    font-weight: 650;
    letter-spacing: 0.04em;
}

.quotation-print .quotation-summary {
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 24px;
    margin-top: 16px;
    break-inside: avoid;
    page-break-inside: avoid;
}

.quotation-print .quotation-commercial-terms h3 {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin: 0 0 7px;
    color: var(--quotation-brand);
    font-size: 10.5px;
    letter-spacing: 0.08em;
}

.quotation-print .quotation-commercial-terms h3 span {
    color: var(--quotation-muted);
    font-size: 8px;
    font-weight: 500;
    letter-spacing: 0;
}

.quotation-print .quotation-commercial-terms dl {
    border-top: 1px solid var(--quotation-border);
}

.quotation-print .quotation-commercial-terms dl > div {
    display: grid;
    grid-template-columns: 118px minmax(0, 1fr);
    gap: 8px;
    padding: 5px 0;
    border-bottom: 1px solid var(--quotation-border);
}

.quotation-print .quotation-commercial-terms dt {
    color: var(--quotation-muted);
    font-size: 8px;
    font-weight: 500;
}

.quotation-print .quotation-commercial-terms dd {
    margin: 0;
    color: var(--quotation-ink);
    font-size: 9px;
    font-weight: 650;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.quotation-print .quotation-terms-remarks dd {
    font-weight: 500;
    white-space: pre-wrap;
}

.quotation-print .quotation-amount-breakdown {
    padding: 9px 13px 12px;
    border: 1px solid #c8d2cf;
    border-top: 2px solid var(--quotation-brand);
    background: #fff;
}

.quotation-print .quotation-amount-breakdown .sales-amount-line {
    padding: 6px 0;
}

.quotation-print .quotation-amount-breakdown .sales-amount-line span {
    color: var(--quotation-muted);
    font-size: 9px;
    line-height: 1.25;
}

.quotation-print .quotation-amount-breakdown .sales-amount-line span small {
    font-size: 7.5px;
    font-weight: 400;
}

.quotation-print .quotation-amount-breakdown .sales-amount-line strong {
    color: var(--quotation-ink);
    font-size: 13px;
}

.quotation-print .quotation-grand-total {
    align-items: end;
    margin-top: 4px;
    padding-top: 10px !important;
    border-top: 1.5px solid var(--quotation-brand) !important;
}

.quotation-print .quotation-grand-total span {
    display: flex;
    flex-direction: column;
    gap: 2px;
    color: var(--quotation-brand) !important;
    font-size: 10.5px !important;
    font-weight: 800;
    letter-spacing: 0.035em;
}

.quotation-print .quotation-grand-total span small {
    color: var(--quotation-muted);
    font-size: 7.5px;
    font-weight: 500;
    letter-spacing: 0;
}

.quotation-print .quotation-grand-total strong {
    color: var(--quotation-brand) !important;
    font-size: 25px !important;
    font-weight: 800;
}

.quotation-print .quotation-footer {
    align-items: flex-end;
    gap: 22px;
    margin-top: 17px;
    padding-top: 8px;
    border-top: 1px solid var(--quotation-border);
    color: var(--quotation-muted);
}

.quotation-print .quotation-footer-note {
    max-width: 44%;
    font-size: 8px;
    line-height: 1.5;
}

.quotation-print .quotation-footer-brand {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    align-items: flex-end;
    text-align: right;
}

.quotation-print .quotation-footer-brand > strong {
    color: var(--quotation-brand);
    font-size: 14px;
    letter-spacing: 0.12em;
}

.quotation-print .quotation-footer-brand > span {
    margin-top: 2px;
    color: var(--quotation-ink);
    font-size: 7.8px;
}

.quotation-print .quotation-footer-brand > small {
    margin-top: 2px;
    color: var(--quotation-muted);
    font-size: 7.5px;
}

@media print {
    .quotation-print .quotation-document,
    .quotation-print .quotation-product-table th {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .quotation-print .quotation-header,
    .quotation-print .quotation-info-sections,
    .quotation-print .quotation-summary,
    .quotation-print .quotation-footer,
    .quotation-print .print-item-row,
    .quotation-print .print-item-remark-row {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .quotation-print .quotation-product-table thead {
        display: table-header-group;
    }

    .quotation-print .quotation-table-running-footer {
        display: table-footer-group;
    }

    .quotation-print .quotation-table-running-footer td {
        padding: 4px 5px;
        border-top: 1px solid var(--quotation-border);
        border-bottom: 0;
        color: var(--quotation-muted);
        font-size: 6.5px;
        font-weight: 600;
        letter-spacing: 0.02em;
    }

    .quotation-print .quotation-table-running-footer td span:last-child {
        float: right;
    }

    .quotation-print .quotation-logo {
        width: 160px;
        max-height: 34px;
    }

    .quotation-print .quotation-brand-copy h1 {
        font-size: 18.5px;
    }

    .quotation-print .quotation-document-meta {
        flex-basis: 235px;
    }

    .quotation-print .quotation-product-table th {
        padding: 6px 5px;
        font-size: 8px;
    }

    .quotation-print .quotation-product-table td {
        padding: 7px 5px;
        font-size: 9px;
    }

    .quotation-print .print-product-image,
    .quotation-print .product-image-placeholder.large-placeholder {
        width: 86px;
        height: 86px;
    }

    .quotation-print .quotation-model-cell strong {
        font-size: 13.5px;
    }
}
/* V1.10 Phase 1B · spray-gun configuration management */
.configuration-pricing-section,
.spray-packaging-section {
    border-top: 2px solid #203632;
}

.configuration-edit-form {
    margin: 18px 0;
    padding: 18px;
    background: #f4f7f5;
    border: 1px solid #d9e1de;
    border-radius: 10px;
}

.configuration-form-heading,
.quote-configuration-heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    margin-bottom: 14px;
}

.configuration-form-heading span,
.quote-configuration-heading small,
.quote-configuration-help {
    color: #6c7b77;
    font-size: 12px;
}

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

.configuration-remarks-field { grid-column: span 2; }

.configuration-pricing-table th,
.configuration-pricing-table td { vertical-align: middle; }

.configuration-pricing-table tr.is-archived,
.spray-packaging-row.is-archived { opacity: .58; }

.configuration-status {
    display: inline-flex;
    padding: 4px 8px;
    border-radius: 999px;
    background: #e8f3ed;
    color: #245940;
    font-size: 12px;
    white-space: nowrap;
}

.configuration-status.archived { background: #eceeed; color: #66716d; }

.configuration-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    white-space: nowrap;
}

.configuration-actions form { margin: 0; }

.spray-packaging-list { display: grid; gap: 10px; }

.spray-packaging-row {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(320px, 1.2fr) auto;
    gap: 18px;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid #e2e7e5;
}

.spray-packaging-row > div,
.spray-packaging-row form { display: flex; align-items: center; gap: 10px; }
.spray-packaging-row > div { flex-wrap: wrap; }
.spray-packaging-row small { color: #74817d; }
.spray-packaging-row label { flex: 1; }

.quote-configuration-panel {
    margin-top: 4px;
    padding: 16px 18px;
    border-left: 3px solid #203632;
    background: #f5f8f7;
    border-radius: 0 10px 10px 0;
}

.quote-configuration-heading strong { display: block; color: #203632; }
.quote-configuration-state { color: #41675e; font-size: 12px; font-weight: 700; }

.quote-configuration-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px 12px;
}

.quote-config-remark-field { grid-column: span 2; }
.quote-configuration-help { margin: 10px 0 0; }
.quote-unit-price[readonly] { background: #eef3f1; color: #203632; font-weight: 700; }

.quote-configuration-progress {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 0 0 12px;
    padding: 10px 14px;
    border-left: 3px solid #41675e;
    background: #f1f5f3;
    color: #52645f;
    font-size: 12px;
}

.quote-configuration-progress[hidden] { display: none; }
.quote-configuration-progress strong { color: #203632; font-size: 13px; }

.quote-configuration-editor[hidden],
.quote-configuration-summary[hidden] { display: none; }

.quote-configuration-editor-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-top: 12px;
}

.quote-configuration-editor-footer .quote-configuration-help { margin: 0; }

.quote-configuration-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding-top: 4px;
}

.quote-configuration-summary-copy {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px 24px;
    flex: 1;
    min-width: 0;
}

.quote-configuration-summary-copy p {
    margin: 0;
    min-width: 0;
}

.quote-configuration-summary-copy p[data-packaging-remark-line] {
    grid-column: 1 / -1;
}

.quote-configuration-summary-copy small {
    display: block;
    margin-bottom: 2px;
    color: #7a8985;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .04em;
}

.quote-configuration-summary-copy strong,
.quote-configuration-summary-copy span {
    display: block;
    overflow-wrap: anywhere;
    color: #203632;
    font-size: 13px;
    line-height: 1.45;
}

.quote-configuration-summary .edit-quote-configuration {
    flex: 0 0 auto;
    white-space: nowrap;
}

.bulk-configuration-required {
    display: inline-flex;
    margin-top: 6px;
    color: #8a5a16;
    font-weight: 700;
}

.bulk-product-result.is-configuration-required { background: #fffaf0; }
.bulk-configure-product { align-self: center; }

.document-configuration-summary,
.print-configuration-summary {
    margin-top: 5px;
    color: #65736f;
    font-size: 11px;
    line-height: 1.4;
}

.document-configuration-summary span,
.document-configuration-summary small,
.print-configuration-summary span,
.print-configuration-summary small { display: block; }

.print-configuration-summary { font-size: 8px; color: #68746f; }
.print-configuration-summary small { color: #85908c; }

@media (max-width: 1100px) {
    .configuration-form-grid,
    .quote-configuration-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .quote-configuration-summary { align-items: flex-start; }
    .quote-configuration-summary-copy { grid-template-columns: 1fr; }
    .quote-configuration-summary-copy p[data-packaging-remark-line] { grid-column: auto; }
    .spray-packaging-row { grid-template-columns: 1fr; }
}
/* V1.10.1 spray gun center: dedicated, quiet workflow for configurable products. */
.spray-center-page,
.spray-form-page,
.spray-detail-page,
.spray-packaging-page {
    max-width: 1220px;
    margin: 0 auto;
}

.spray-center-heading {
    align-items: flex-start;
    border-bottom: 1px solid #e5ebe8;
    padding-bottom: 22px;
    margin-bottom: 22px;
}

.spray-center-heading h3,
.spray-detail-heading h3 {
    margin: 3px 0 6px;
    color: #203632;
    font-size: 24px;
}

.spray-center-intro,
.spray-detail-heading p {
    margin: 0;
    color: #6e7d79;
    max-width: 680px;
}

.spray-stat-strip,
.spray-summary-band {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border: 1px solid #dfe7e3;
    border-radius: 12px;
    margin-bottom: 20px;
    background: #f8faf9;
}

.spray-stat-strip > div,
.spray-summary-band > div {
    padding: 17px 20px;
    border-right: 1px solid #dfe7e3;
}

.spray-stat-strip > div:last-child,
.spray-summary-band > div:last-child { border-right: 0; }
.spray-stat-strip span,
.spray-summary-band span { display: block; color: #71807b; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }
.spray-stat-strip strong,
.spray-summary-band strong { display: block; margin-top: 5px; color: #203632; font-size: 20px; }
.spray-summary-band { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.spray-summary-band strong em { color: #a15b20; font-size: 14px; font-style: normal; }

.spray-filter-bar { margin-bottom: 14px; }
.spray-filter-bar input { min-width: 320px; }
.spray-gun-table td { vertical-align: middle; }
.spray-gun-table td small { display: block; color: #7d8a86; margin-top: 3px; }
.spray-list-image {
    width: 62px;
    height: 62px;
    object-fit: contain;
    display: block;
    border: 1px solid #e1e8e5;
    border-radius: 8px;
    background: #fff;
}
.spray-list-image.empty { display: grid; place-items: center; color: #99a39f; font-size: 10px; }
.spray-model-link { color: #203632; font-weight: 800; font-size: 15px; }
.spray-required-badge { display: inline-block; padding: 3px 8px; border-radius: 999px; background: #fff0df; color: #965313; font-size: 12px; font-weight: 700; }
.spray-import-panel { margin-top: 22px; padding: 16px 18px; border-top: 1px solid #e5ebe8; color: #50615c; }
.spray-import-panel summary { cursor: pointer; font-weight: 700; color: #203632; }
.spray-import-panel form { display: flex; gap: 10px; max-width: 720px; }
.spray-import-panel select { flex: 1; }

.spray-product-form { display: grid; gap: 18px; }
.spray-form-section,
.spray-detail-section {
    border: 1px solid #e1e8e5;
    border-radius: 12px;
    padding: 22px;
    background: #fff;
}
.spray-more-section > summary { cursor: pointer; color: #203632; font-weight: 750; letter-spacing: .02em; }
.spray-more-section[open] > summary { margin-bottom: 18px; }
.spray-section-heading { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; margin-bottom: 18px; }
.spray-section-heading > div:first-child { display: flex; align-items: center; gap: 10px; }
.spray-section-heading > div:first-child > span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #203632; color: #fff; font-size: 11px; }
.spray-section-heading h4 { margin: 0; color: #203632; font-size: 16px; }
.spray-section-heading p { margin: 2px 0 0; color: #74817d; font-size: 12px; }
.spray-basic-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.spray-basic-grid .full-width { grid-column: 1 / -1; }
.spray-color-rows { display: grid; gap: 10px; margin-bottom: 14px; }
.spray-color-row { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(320px, 2fr) auto; gap: 16px; align-items: center; padding: 13px; border: 1px solid #e4eae7; border-radius: 9px; background: #fafcfb; }
.spray-color-image { display: grid; grid-template-columns: 54px 1fr; gap: 12px; align-items: center; }
.spray-color-image img,
.spray-color-image span { width: 54px; height: 54px; object-fit: contain; border-radius: 7px; border: 1px solid #dde5e1; background: #fff; }
.spray-color-image span { display: grid; place-items: center; color: #9aa4a0; font-size: 9px; }
.spray-form-footer { display: flex; justify-content: space-between; align-items: center; padding: 18px 22px; border-radius: 12px; background: #203632; color: #fff; }
.spray-form-footer p { margin: 0; opacity: .78; }

.spray-detail-heading { align-items: flex-start; padding-bottom: 18px; border-bottom: 1px solid #e3eae6; margin-bottom: 18px; }
.spray-detail-page { display: grid; gap: 18px; }
.spray-detail-page .spray-summary-band { margin-bottom: 0; }
.spray-color-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(145px, 1fr)); gap: 14px; }
.spray-color-gallery article { border: 1px solid #e1e8e5; border-radius: 10px; padding: 10px; text-align: center; background: #fafcfb; }
.spray-color-gallery img,
.spray-gallery-empty { width: 100%; height: 124px; object-fit: contain; background: #fff; border-radius: 7px; }
.spray-gallery-empty { display: grid; place-items: center; color: #9ba5a1; font-size: 11px; }
.spray-color-gallery strong { display: block; color: #203632; margin-top: 8px; }
.spray-configuration-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 16px; margin-bottom: 16px; background: #f4f8f6; border-radius: 10px; }
.spray-configuration-form .full-width { grid-column: 1 / -1; }
.spray-configuration-table .archived-row { opacity: .58; background: #f7f7f7; }
.spray-configuration-table form,
.spray-gun-table .table-actions { display: inline-flex; gap: 9px; }
.spray-asset-list { display: grid; gap: 8px; }
.spray-asset-list article { display: flex; justify-content: space-between; gap: 16px; align-items: center; padding: 12px 14px; border: 1px solid #e3e9e6; border-radius: 8px; }
.spray-asset-list strong,
.spray-asset-list small { display: block; }
.spray-asset-list small { color: #7b8984; margin-top: 3px; }

.spray-packaging-list { display: grid; gap: 10px; }
.spray-packaging-list article { display: grid; grid-template-columns: minmax(300px, 1.5fr) minmax(320px, 1fr) auto; align-items: end; gap: 18px; padding: 18px; border: 1px solid #e1e8e5; border-radius: 10px; }
.spray-packaging-list article.archived { opacity: .62; background: #f6f7f7; }
.spray-packaging-code span,
.spray-packaging-code strong,
.spray-packaging-code small { display: block; }
.spray-packaging-code span { color: #798681; font-size: 11px; letter-spacing: .05em; }
.spray-packaging-code strong { color: #203632; margin: 4px 0; }
.spray-packaging-list form { display: flex; align-items: end; gap: 10px; }

@media (max-width: 960px) {
    .spray-stat-strip,
    .spray-summary-band { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .spray-basic-grid,
    .spray-configuration-form { grid-template-columns: 1fr 1fr; }
    .spray-color-row,
    .spray-packaging-list article { grid-template-columns: 1fr; }
}

/* V1.11 Phase 2A: desktop-first, mobile-usable foundation and essential workflows. */
.mobile-header-title,
.mobile-nav-backdrop {
    display: none;
}

@media screen and (max-width: 768px) {
    .admin-body {
        min-width: 0;
        overflow-x: clip;
    }

    .admin-body .layout {
        display: block;
        width: 100%;
        min-width: 0;
    }

    .admin-body .main {
        width: 100%;
        min-width: 0;
    }

    .admin-body .sidebar {
        position: fixed;
        inset: 0 auto 0 0;
        z-index: 2100;
        width: min(286px, 84vw);
        min-width: 0;
        box-sizing: border-box;
        transform: translateX(-102%);
        transition: transform .2s ease;
        box-shadow: 16px 0 36px rgba(14, 35, 29, .24);
    }

    .admin-body.mobile-nav-open .sidebar {
        transform: translateX(0);
    }

    .admin-body .mobile-nav-backdrop {
        position: fixed;
        inset: 0;
        z-index: 2050;
        display: block;
        visibility: hidden;
        width: 100%;
        height: 100%;
        padding: 0;
        border: 0;
        background: rgba(16, 30, 25, .48);
        opacity: 0;
        pointer-events: none;
        transition: opacity .2s ease, visibility .2s ease;
    }

    .admin-body.mobile-nav-open .mobile-nav-backdrop {
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
    }

    .admin-body.mobile-nav-open {
        overflow: hidden;
    }

    .admin-body .topbar {
        position: sticky;
        top: 0;
        z-index: 1000;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 8px 12px;
        min-height: 0;
        padding: 10px 12px;
        box-shadow: 0 3px 12px rgba(32, 54, 50, .08);
    }

    .admin-body .mobile-header-title {
        display: flex;
        min-width: 0;
        align-items: center;
        gap: 10px;
    }

    .admin-body .mobile-header-title > div {
        display: grid;
        min-width: 0;
        line-height: 1.15;
    }

    .admin-body .mobile-header-title strong {
        overflow: hidden;
        color: var(--ottua-primary);
        font-size: 14px;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .admin-body .mobile-header-title small {
        color: var(--ottua-muted);
        font-size: 10px;
        letter-spacing: .06em;
    }

    .admin-body .mobile-menu-button {
        display: inline-flex;
        min-width: 66px;
        min-height: 44px;
        align-items: center;
        justify-content: center;
        gap: 6px;
        padding: 8px 10px;
        border: 1px solid var(--ottua-border);
        border-radius: 7px;
        background: var(--ottua-surface);
        color: var(--ottua-primary);
        font: inherit;
        font-size: 13px;
        font-weight: 700;
    }

    .admin-body .topbar > h1 {
        align-self: center;
        overflow: hidden;
        margin: 0;
        font-size: 17px;
        text-align: right;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .admin-body .topbar-tools {
        grid-column: 1 / -1;
        display: block;
        width: 100%;
    }

    .admin-body .global-search-form {
        width: 100%;
    }

    .admin-body .global-search-form input,
    .admin-body .global-search-form button {
        min-height: 42px;
    }

    .admin-body .topbar-user {
        display: none;
    }

    .admin-body .content {
        width: 100%;
        min-width: 0;
        box-sizing: border-box;
        padding: 12px 12px 24px;
    }

    .admin-body .panel,
    .admin-body .card,
    .admin-body .detail-card,
    .admin-body .crud-form,
    .admin-body .business-entry-form {
        min-width: 0;
        box-sizing: border-box;
    }

    .admin-body .panel {
        padding: 14px;
    }

    .admin-body .page-actions,
    .admin-body .page-actions-only,
    .admin-body .action-group,
    .admin-body .form-actions,
    .admin-body .search-form {
        align-items: stretch;
        flex-direction: column;
        width: 100%;
    }

    .admin-body .search-form input {
        box-sizing: border-box;
        min-width: 0;
        width: 100%;
    }

    .admin-body .page-actions {
        gap: 12px;
    }

    .admin-body .action-group,
    .admin-body .form-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .admin-body .action-group > :only-child,
    .admin-body .form-actions > :only-child {
        grid-column: 1 / -1;
    }

    .admin-body .btn,
    .admin-body button,
    .admin-body select,
    .admin-body input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]) {
        min-height: 44px;
    }

    .admin-body textarea,
    .admin-body select,
    .admin-body input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]) {
        max-width: 100%;
    }

    .admin-body .form-grid,
    .admin-body .compact-grid,
    .admin-body .quick-workbench-top,
    .admin-body .quick-order-field-grid,
    .admin-body .quick-price-condition-grid {
        grid-template-columns: 1fr !important;
    }

    .admin-body .filter-tabs,
    .admin-body .qps-category-shortcuts {
        display: flex;
        width: 100%;
        flex-wrap: nowrap;
        gap: 8px;
        overflow-x: auto;
        padding-bottom: 6px;
        scrollbar-width: thin;
    }

    .admin-body .filter-tab,
    .admin-body .qps-category-chip {
        flex: 0 0 auto;
        min-height: 40px;
        box-sizing: border-box;
        white-space: nowrap;
    }

    .admin-body .table-scroll,
    .admin-body .table-wrap {
        max-width: 100%;
        overflow-x: auto;
    }

    .admin-body table:not(.mobile-card-table) {
        display: block;
        max-width: 100%;
        overflow-x: auto;
    }

    .admin-body .mobile-card-table-wrap {
        overflow: visible;
    }

    .admin-body .mobile-card-table,
    .admin-body .mobile-card-table tbody,
    .admin-body .mobile-card-table tr,
    .admin-body .mobile-card-table td {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }

    .admin-body .mobile-card-table {
        border: 0;
        background: transparent;
    }

    .admin-body .mobile-card-table thead {
        display: none;
    }

    .admin-body .mobile-card-table tbody {
        display: grid;
        gap: 12px;
    }

    .admin-body .mobile-card-table tr {
        overflow: hidden;
        padding: 12px;
        border: 1px solid var(--ottua-border);
        border-radius: 10px;
        background: var(--ottua-surface);
        box-shadow: 0 2px 8px rgba(32, 54, 50, .06);
    }

    .admin-body .mobile-card-table td {
        position: relative;
        min-width: 0;
        padding: 7px 0;
        border: 0;
        border-bottom: 1px solid var(--ottua-border);
        overflow-wrap: anywhere;
        text-align: left;
    }

    .admin-body .mobile-card-table td:last-child {
        border-bottom: 0;
    }

    .admin-body .mobile-card-table td::before {
        display: block;
        margin-bottom: 2px;
        color: var(--ottua-muted);
        font-size: 10px;
        font-weight: 700;
        letter-spacing: .04em;
    }

    .admin-body .mobile-card-table .actions,
    .admin-body .mobile-card-table td:last-child {
        display: flex;
        flex-wrap: wrap;
        gap: 8px 14px;
        align-items: center;
        padding-top: 10px;
    }

    .admin-body .mobile-card-table .inline-form {
        margin: 0;
    }

    /* Product Center card list keeps selection and price visible at a glance. */
    .admin-body .product-mobile-cards tr {
        position: relative;
        display: grid;
        grid-template-columns: 88px minmax(0, 1fr);
        gap: 0 12px;
        padding: 12px;
    }

    .admin-body .product-mobile-cards td:nth-child(1) {
        position: absolute;
        top: 12px;
        right: 12px;
        z-index: 1;
        width: 44px;
        padding: 0;
        border: 0;
        text-align: right;
    }

    .admin-body .product-mobile-cards td:nth-child(2) {
        grid-column: 1;
        grid-row: 1 / span 5;
        padding: 0;
        border: 0;
    }

    .admin-body .product-mobile-cards td:nth-child(2) .product-thumb {
        width: 88px;
        height: 88px;
        object-fit: contain;
        border-radius: 8px;
        background: #f7f9f8;
    }

    .admin-body .product-mobile-cards td:nth-child(n+3) {
        grid-column: 2;
    }

    .admin-body .product-mobile-cards td:nth-child(3) {
        padding-top: 0;
        padding-right: 46px;
        color: var(--ottua-primary);
        font-size: 17px;
        font-weight: 800;
    }

    .admin-body .product-mobile-cards td:nth-child(4) {
        font-weight: 700;
    }

    .admin-body .product-mobile-cards td:nth-child(5)::before { content: "分类"; }
    .admin-body .product-mobile-cards td:nth-child(6)::before { content: "材质"; }
    .admin-body .product-mobile-cards td:nth-child(7)::before { content: "颜色"; }
    .admin-body .product-mobile-cards td:nth-child(8)::before { content: "资料"; }
    .admin-body .product-mobile-cards td:nth-child(9)::before { content: "价格范围"; }
    .admin-body .product-mobile-cards td:nth-child(10)::before { content: "状态"; }
    .admin-body .product-mobile-cards td:nth-child(11)::before { content: "资料完整度"; }

    .admin-body .product-mobile-cards td:nth-child(n+5):nth-child(-n+11) {
        display: grid;
        grid-template-columns: 72px minmax(0, 1fr);
        align-items: center;
        gap: 8px;
    }

    .admin-body .product-mobile-cards td:nth-child(n+5):nth-child(-n+11)::before {
        margin: 0;
    }

    .admin-body .product-mobile-cards td:nth-child(12) {
        grid-column: 1 / -1;
    }

    .admin-body .qps-product-select,
    .admin-body [data-qps-select-page] {
        width: 22px;
        height: 22px;
    }

    .admin-body .qps-selection-toolbar {
        position: static;
        width: 100%;
        box-sizing: border-box;
        padding: 12px;
    }

    .admin-body .qps-selection-toolbar > div:first-child {
        width: 100%;
        justify-content: space-between;
    }

    .admin-body .qps-selection-toolbar .action-group {
        width: 100%;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-body .qps-selection-toolbar [data-qps-open] {
        grid-column: 1 / -1;
    }

    .admin-body .qps-modal {
        width: calc(100vw - 24px);
        max-height: 90vh;
        overflow-y: auto;
    }

    .admin-body .qps-modal form {
        padding: 18px 14px;
    }

    .admin-body .qps-modal-grid,
    .admin-body .qps-preflight-summary {
        grid-template-columns: 1fr;
    }

    .admin-body .qps-preflight-item {
        grid-template-columns: 54px minmax(0, 1fr);
    }

    .admin-body .qps-preflight-item > b {
        grid-column: 2;
    }

    .admin-body .qps-preflight-actions,
    .admin-body .qps-result-grid article > div {
        align-items: stretch;
    }

    .admin-body .qps-result-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .admin-body .qps-result-grid img {
        max-width: 100%;
        height: auto;
    }

    /* Customer, quotation and order lists become readable cards. */
    .admin-body .customer-mobile-cards td:nth-child(1),
    .admin-body .quote-mobile-cards td:nth-child(1),
    .admin-body .order-mobile-cards td:nth-child(1) {
        color: var(--ottua-primary);
        font-size: 17px;
        font-weight: 800;
    }

    .admin-body .customer-mobile-cards td:nth-child(2)::before { content: "国家/地区"; }
    .admin-body .customer-mobile-cards td:nth-child(3)::before { content: "联系人"; }
    .admin-body .customer-mobile-cards td:nth-child(4)::before { content: "联系方式"; }
    .admin-body .customer-mobile-cards td:nth-child(5)::before { content: "最近业务"; }

    .admin-body .quote-mobile-cards td:nth-child(2)::before { content: "客户"; }
    .admin-body .quote-mobile-cards td:nth-child(3)::before { content: "报价日期"; }
    .admin-body .quote-mobile-cards td:nth-child(4)::before { content: "有效期"; }
    .admin-body .quote-mobile-cards td:nth-child(5)::before { content: "产品种类"; }
    .admin-body .quote-mobile-cards td:nth-child(6)::before { content: "总数量"; }
    .admin-body .quote-mobile-cards td:nth-child(7)::before { content: "总金额"; }
    .admin-body .quote-mobile-cards td:nth-child(8)::before { content: "状态"; }
    .admin-body .quote-mobile-cards td:nth-child(9)::before { content: "订单"; }
    .admin-body .quote-mobile-cards td:nth-child(7) {
        color: var(--ottua-primary);
        font-size: 19px;
        font-weight: 800;
    }

    .admin-body .order-mobile-cards td:nth-child(2)::before { content: "客户"; }
    .admin-body .order-mobile-cards td:nth-child(3)::before { content: "产品种类"; }
    .admin-body .order-mobile-cards td:nth-child(4)::before { content: "总数量"; }
    .admin-body .order-mobile-cards td:nth-child(5)::before { content: "总金额"; }
    .admin-body .order-mobile-cards td:nth-child(6)::before { content: "下单日期"; }
    .admin-body .order-mobile-cards td:nth-child(7)::before { content: "状态日期"; }
    .admin-body .order-mobile-cards td:nth-child(8)::before { content: "订单进度"; }
    .admin-body .order-mobile-cards td:nth-child(9)::before { content: "付款状态"; }
    .admin-body .order-mobile-cards td:nth-child(10)::before { content: "最近修改"; }
    .admin-body .order-mobile-cards td:nth-child(5) {
        color: var(--ottua-primary);
        font-size: 19px;
        font-weight: 800;
    }

    .admin-body .order-mobile-cards .order-updated-cell {
        display: grid;
        grid-template-columns: 72px minmax(0, 1fr);
        gap: 8px;
        align-items: center;
    }

    .admin-body .order-mobile-cards .order-updated-cell::before {
        margin: 0;
    }

    .admin-body .order-mobile-cards .order-empty-row td {
        display: block;
        text-align: center;
    }

    .admin-body .order-mobile-cards .order-empty-row td::before {
        content: none;
    }

    .admin-body .order-mobile-cards .order-progress-form,
    .admin-body .order-mobile-cards .order-progress-date-editor {
        width: 100%;
    }

    .admin-body .order-list-scroll {
        overflow: visible;
    }

    .admin-body .order-list-table {
        min-width: 0;
        font-size: inherit;
    }

    .admin-body .order-row-actions {
        min-width: 0;
        gap: 8px 14px;
    }

    /* Detail product tables use the same data and URLs in a vertical presentation. */
    .admin-body .quote-item-mobile-cards td:nth-child(1),
    .admin-body .order-item-mobile-cards td:nth-child(1) {
        padding-top: 0;
        color: var(--ottua-primary);
        font-size: 17px;
        font-weight: 800;
    }

    .admin-body .quote-item-mobile-cards td:nth-child(1) .product-thumb {
        width: 100%;
        height: 150px;
        object-fit: contain;
        border-radius: 8px;
        background: #f7f9f8;
    }

    .admin-body .quote-item-mobile-cards td:nth-child(2)::before { content: "型号"; }
    .admin-body .quote-item-mobile-cards td:nth-child(3)::before { content: "产品名称"; }
    .admin-body .quote-item-mobile-cards td:nth-child(4)::before { content: "材质"; }
    .admin-body .quote-item-mobile-cards td:nth-child(5)::before { content: "颜色"; }
    .admin-body .quote-item-mobile-cards td:nth-child(6)::before { content: "数量"; }
    .admin-body .quote-item-mobile-cards td:nth-child(7)::before { content: "Unit Price / 单价"; }
    .admin-body .quote-item-mobile-cards td:nth-child(8)::before { content: "Amount / 金额"; }
    .admin-body .quote-item-mobile-cards td:nth-child(9)::before { content: "备注"; }
    .admin-body .quote-item-mobile-cards td:nth-child(2),
    .admin-body .quote-item-mobile-cards td:nth-child(8) {
        color: var(--ottua-primary);
        font-weight: 800;
    }

    .admin-body .order-item-mobile-cards td:nth-child(2)::before { content: "产品名称"; }
    .admin-body .order-item-mobile-cards td:nth-child(3)::before { content: "颜色"; }
    .admin-body .order-item-mobile-cards td:nth-child(4)::before { content: "材质"; }
    .admin-body .order-item-mobile-cards td:nth-child(5)::before { content: "数量"; }
    .admin-body .order-item-mobile-cards td:nth-child(6)::before { content: "单价"; }
    .admin-body .order-item-mobile-cards td:nth-child(7)::before { content: "金额"; }
    .admin-body .order-item-mobile-cards td:nth-child(8)::before { content: "箱数"; }
    .admin-body .order-item-mobile-cards td:nth-child(9)::before { content: "净重"; }
    .admin-body .order-item-mobile-cards td:nth-child(10)::before { content: "毛重"; }
    .admin-body .order-item-mobile-cards td:nth-child(11)::before { content: "尺寸"; }
    .admin-body .order-item-mobile-cards td:nth-child(12)::before { content: "体积"; }
    .admin-body .order-item-mobile-cards td:nth-child(13)::before { content: "配置"; }
    .admin-body .order-item-mobile-cards td:nth-child(14)::before { content: "备注"; }
    .admin-body .order-item-mobile-cards td:nth-child(7) {
        color: var(--ottua-primary);
        font-weight: 800;
    }

    .admin-body .quote-detail-summary,
    .admin-body .quote-price-overview,
    .admin-body .order-detail-header-groups,
    .admin-body .order-detail-supporting-grid,
    .admin-body .order-payment-summary-grid {
        grid-template-columns: 1fr !important;
    }

    .admin-body .quote-detail-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
    }

    .admin-body .quote-detail-actions .inline-form,
    .admin-body .quote-detail-actions .btn {
        width: 100%;
    }

    .admin-body .order-detail-document-meta {
        justify-items: start;
        text-align: left;
    }

    .admin-body .order-detail-document-header {
        justify-content: flex-start;
    }

    .admin-body .order-detail-header-group,
    .admin-body .order-detail-supporting-grid {
        padding: 14px;
    }

    .admin-body .order-next-primary,
    .admin-body .order-next-main form,
    .admin-body .order-next-main .btn {
        width: 100%;
    }

    /* Product detail is image/model/price first, with one-column variants. */
    .admin-body .product-detail-page,
    .admin-body .product-detail-hero,
    .admin-body .product-detail-layout,
    .admin-body .product-variant-grid,
    .admin-body .product-packaging-list {
        min-width: 0;
        grid-template-columns: 1fr !important;
    }

    .admin-body .product-detail-main-image {
        width: 100%;
        height: 230px;
    }

    .admin-body .product-detail-model-line,
    .admin-body .product-detail-section-heading,
    .admin-body .product-variant-heading {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .admin-body .product-detail-metrics {
        grid-template-columns: 1fr;
    }

    .admin-body .product-variant-card {
        grid-template-columns: 104px minmax(0, 1fr);
    }

    /* Quick Order remains the existing workflow, but fits and no longer covers content. */
    .admin-body .quick-workbench-heading,
    .admin-body .quick-section-heading-horizontal,
    .admin-body .quick-items-header {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-body .quick-item-editor {
        grid-template-columns: 1fr !important;
    }

    .admin-body .quick-item-editor-image {
        width: 100%;
        height: 160px;
    }

    .admin-body .quick-item-summary {
        flex-direction: column;
    }

    .admin-body .quick-item-summary-main {
        width: 100%;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-body .quick-item-summary-edit,
    .admin-body .quick-reconfigure {
        width: 100%;
        min-height: 44px;
    }

    .admin-body .quick-config-summary,
    .admin-body .quick-config-cascade,
    .admin-body .quick-config-pricing {
        grid-template-columns: 1fr !important;
    }

    .admin-body .quick-config-dialog {
        padding: 12px;
    }

    .admin-body .quick-config-dialog-panel {
        width: calc(100vw - 24px);
        max-height: 90vh;
        box-sizing: border-box;
        padding: 18px 14px;
    }

    .admin-body .quick-config-dialog-actions,
    .admin-body .quick-item-edit-actions,
    .admin-body .quick-order-main-actions {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
    }

    .admin-body .quick-order-sticky-summary {
        position: static !important;
        display: grid;
        margin-top: 14px;
        padding: 12px;
        box-shadow: none;
    }

    .admin-body .quick-order-sticky-metrics,
    .admin-body .quick-order-sticky-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
    }

    .admin-body .quick-order-sticky-actions > :last-child {
        grid-column: 1 / -1;
    }

    .admin-body .quick-order-sticky-spacer {
        display: none;
    }

    /* Dashboard and spray-gun management receive containment, not a redesign. */
    .admin-body .cards,
    .admin-body .dashboard-task-summary-list,
    .admin-body .dashboard-grid,
    .admin-body .spray-stat-strip,
    .admin-body .spray-summary-band {
        grid-template-columns: 1fr !important;
    }

    .admin-body .spray-center-page,
    .admin-body .spray-detail-page,
    .admin-body .spray-form-page,
    .admin-body .spray-packaging-page {
        width: 100%;
        min-width: 0;
    }

    .admin-body .spray-filter-bar input {
        min-width: 0;
        width: 100%;
    }

    .admin-body .spray-gun-table {
        min-width: 680px;
    }

    .admin-body .product-list-bottom-spacer,
    .admin-body .bottom-interaction-clearance {
        margin-bottom: 0;
    }

    .admin-body .product-list-bottom-spacer {
        height: 20px;
    }
}

@media screen and (max-width: 480px) {
    .admin-body .qps-modal-grid,
    .admin-body .qps-preflight-summary,
    .admin-body .quote-detail-actions,
    .admin-body .action-group,
    .admin-body .form-actions {
        grid-template-columns: 1fr;
    }

    .admin-body .qps-selection-toolbar .action-group {
        grid-template-columns: 1fr 1fr;
    }

    .admin-body .product-mobile-cards tr {
        grid-template-columns: 76px minmax(0, 1fr);
    }

    .admin-body .product-mobile-cards td:nth-child(2) .product-thumb {
        width: 76px;
        height: 76px;
    }
}
