.login-page{background:#101927 var(--login-background) center/cover fixed no-repeat;position:relative}
.login-page:before{content:"";position:fixed;inset:0;background:#07111fcc;z-index:0}
.login-card{position:relative;z-index:1}
.file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.file-card{min-width:0}
.file-card img{width:100%;height:170px;object-fit:cover;border-radius:6px}
.file-card h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.file-icon{height:170px;display:grid;place-items:center;background:var(--surface-2);border:1px dashed var(--border);font-weight:700;font-size:24px;border-radius:6px}
@media(max-width:700px){.file-grid{grid-template-columns:1fr}}
.shipment-row{grid-template-columns:repeat(4,minmax(180px,1fr));align-items:start}
.shipment-row>label{grid-column:auto}
.shipment-row>label:not(.check){display:grid;grid-template-rows:minmax(2.5em,auto) auto;align-content:start;min-width:0;overflow-wrap:break-word}
.shipment-row>label>input,.shipment-row>label>select{min-width:0;width:100%}
.shipment-row .check{align-self:center;min-height:46px}
.shipment-row .full-row{grid-column:1/-1}
.shipment-row .row-footer{justify-content:flex-end}
@media(max-width:1100px){.shipment-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.shipment-row{grid-template-columns:1fr}.shipment-row .row-footer .danger-button{width:100%}}
#opening-manufacturer-field .manufacturer-grid,#serial-manufacturer-field .manufacturer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:700px){#opening-manufacturer-field .manufacturer-grid,#serial-manufacturer-field .manufacturer-grid{grid-template-columns:1fr}}
.opening-fast-entry{display:grid;grid-template-columns:minmax(360px,1.2fr) minmax(300px,.8fr);gap:14px;align-items:start}.opening-serial-panel textarea{min-height:210px}.opening-manufacturer-panel{margin:0;border:1px solid var(--border);border-radius:8px;padding:12px;background:var(--surface-2)}.opening-manufacturer-panel legend{padding:0 7px;font-weight:700}.opening-manufacturer-panel .manufacturer-grid{grid-template-columns:1fr;gap:10px}.opening-warranty-actions{align-items:center}.opening-warranty-box{margin-top:14px;border-top:1px solid var(--border);padding-top:12px}.opening-warranty-box h3{margin:0 0 6px}.opening-warranty-list{display:grid;gap:10px;margin-top:10px}.opening-warranty-row{display:grid;grid-template-columns:minmax(180px,.8fr) repeat(2,minmax(0,1fr));gap:10px;align-items:end;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2)}.opening-warranty-row strong{align-self:center;word-break:break-word}.opening-warranty-row label{display:grid;gap:5px}
@media(max-width:900px){.opening-fast-entry{grid-template-columns:1fr}.opening-serial-panel textarea{min-height:180px}.opening-warranty-row{grid-template-columns:1fr}.opening-warranty-row strong{align-self:auto}}
.accounting-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px}.metric-card,.account-card,.debt-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px}.metric-card{display:flex;flex-direction:column;gap:8px}.metric-card strong{font-size:1.35rem}.account-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:14px 0}.account-card{display:grid;gap:10px}.account-card label{display:grid;gap:5px}.compact-form{margin-top:14px}.debt-list{display:grid;gap:10px}.debt-card summary{display:flex;justify-content:space-between;gap:14px;cursor:pointer}.debt-card[open] summary{padding-bottom:12px;border-bottom:1px solid var(--border)}.filter-inline{display:flex;gap:8px;flex-wrap:wrap}.accounting-summary+.panel{margin-top:0}table small{display:block;color:var(--muted);margin-top:4px}
@media(max-width:700px){.accounting-summary{grid-template-columns:1fr}.debt-card summary{flex-direction:column}.account-grid{grid-template-columns:1fr}.filter-inline{width:100%}.filter-inline>*{flex:1;min-width:0}}
.metric-card,.account-card,.debt-card{background:var(--surface)}
@media(max-width:700px){.accounting-table td:nth-child(1)::before{content:"Ngày"}.accounting-table td:nth-child(2)::before{content:"Loại"}.accounting-table td:nth-child(3)::before{content:"Tài khoản"}.accounting-table td:nth-child(4)::before{content:"Nội dung"}.accounting-table td:nth-child(5)::before{content:"Đối tác / chứng từ"}.accounting-table td:nth-child(6)::before{content:"Số tiền"}.accounting-table td:nth-child(7)::before{content:"Thao tác"}}
.input-action{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.business-lookup-status a{font-weight:600}@media(max-width:600px){.input-action{grid-template-columns:1fr}.input-action button{width:100%}}
.warranty-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.8fr);gap:18px;align-items:start}.warranty-action{position:sticky;top:16px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0}.detail-grid>div{border-bottom:1px solid var(--border);padding:8px}.detail-grid dt{color:var(--muted);font-size:12px;text-transform:uppercase;font-weight:700}.detail-grid dd{margin:5px 0 0}.warranty-timeline{border-left:2px solid var(--border);margin-left:8px;padding-left:20px}.warranty-timeline article{position:relative;padding:0 0 20px}.warranty-timeline article:before{content:"";position:absolute;left:-27px;top:3px;width:12px;height:12px;border-radius:50%;background:var(--primary)}.warranty-timeline article span{display:block;color:var(--muted);font-size:12px;margin-top:4px}.warranty-eligibility{padding:12px;border:1px solid var(--border);border-radius:7px;background:var(--surface-2)}@media(max-width:950px){.warranty-layout{grid-template-columns:1fr}.warranty-action{position:static}}@media(max-width:600px){.detail-grid{grid-template-columns:1fr}}
.warranty-step-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.warranty-step-nav button.active{background:var(--primary);color:#fff}.warranty-step-actions{display:flex;justify-content:space-between;gap:10px}.warranty-step-actions #warranty-step-next{margin-left:auto}@media(max-width:700px){.warranty-step-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.warranty-step-nav button{white-space:normal}}
.internal-chat{position:fixed;right:18px;bottom:18px;z-index:45}.chat-open-control{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}.chat-toggle{display:flex;align-items:center;gap:8px;width:max-content;background:var(--primary);border:1px solid var(--primary);border-radius:6px;padding:9px 13px;color:#fff;box-shadow:var(--shadow);font-weight:700;cursor:pointer}.chat-toggle b{display:inline-grid;place-items:center;min-width:22px;height:22px;border-radius:999px;background:var(--danger);font-size:12px}.chat-panel{width:min(680px,calc(100vw - 32px));height:min(560px,calc(100vh - 86px));background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);overflow:hidden;display:none;grid-template-rows:auto 1fr;margin-bottom:10px}.chat-open-control:checked~.chat-panel,.internal-chat[data-open="1"] .chat-panel{display:grid}.chat-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border);background:var(--surface-2)}.chat-header strong{display:block}.chat-body{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:0}.chat-sidebar{border-right:1px solid var(--border);padding:10px;display:grid;grid-template-rows:auto 1fr;gap:10px;min-width:0}.chat-list{display:grid;align-content:start;gap:6px;overflow:auto}.chat-list-item{display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;padding:9px;border-radius:8px}.chat-list-item.active{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 12%,var(--surface))}.chat-list-item span{min-width:0;overflow:hidden;text-overflow:ellipsis}.chat-list-item small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-list-item b{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:999px;background:var(--danger);color:#fff;font-size:11px}.chat-room{display:grid;grid-template-rows:1fr auto;min-width:0;min-height:0}.chat-messages{padding:12px;overflow:auto;display:grid;align-content:start;gap:9px;background:var(--surface)}.chat-message{display:flex}.chat-message.mine{justify-content:flex-end}.chat-message>div{max-width:min(82%,420px);border:1px solid var(--border);border-radius:12px;padding:9px 11px;background:var(--surface-2)}.chat-message.mine>div{background:color-mix(in srgb,var(--primary) 18%,var(--surface));border-color:color-mix(in srgb,var(--primary) 45%,var(--border))}.chat-message strong{font-size:12px;color:var(--muted)}.chat-message p{margin:4px 0;white-space:pre-wrap;overflow-wrap:anywhere}.chat-message time{display:block;text-align:right;color:var(--muted);font-size:11px}.chat-form{border-top:1px solid var(--border);padding:10px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.chat-emoji{grid-column:1/-1;display:flex;gap:5px;flex-wrap:wrap}.chat-emoji button{padding:5px 8px}.chat-form textarea{min-height:48px;max-height:110px}.chat-form .primary{align-self:end;min-height:48px}
@media(max-width:700px){.internal-chat{left:auto;right:12px;bottom:calc(12px + env(safe-area-inset-bottom))}.chat-panel{position:fixed;left:10px;right:10px;bottom:64px;width:auto;height:min(620px,calc(100vh - 86px));margin-bottom:0}.chat-body{grid-template-columns:1fr;grid-template-rows:auto 1fr}.chat-sidebar{border-right:0;border-bottom:1px solid var(--border);max-height:180px}.chat-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:110px}.chat-list-item{min-width:0}.chat-message>div{max-width:92%}}
.chat-room{position:relative}.chat-jump-latest{position:absolute;right:14px;bottom:82px;z-index:3;border:1px solid color-mix(in srgb,var(--primary) 35%,var(--border));background:color-mix(in srgb,var(--surface) 84%,var(--primary));color:var(--primary);border-radius:999px;padding:7px 12px;box-shadow:var(--shadow);font-weight:700;opacity:.86}.chat-jump-latest:hover{opacity:1}.chat-jump-latest[hidden]{display:none!important}.combo-search{position:relative;display:grid;gap:6px;min-width:0;width:100%}.input-action .combo-search{min-width:0;flex:1}.combo-filter{width:100%;height:42px}.combo-native-select,.combo-search>select{position:absolute!important;inline-size:1px!important;block-size:1px!important;opacity:0!important;pointer-events:none!important;clip-path:inset(50%)!important}.combo-suggestions{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:60;display:none;max-height:240px;overflow:auto;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow);padding:6px}.combo-search[data-open="1"] .combo-suggestions{display:grid;gap:4px}.combo-suggestions button{width:100%;text-align:left;padding:8px 10px}.combo-suggestions button.is-disabled,.combo-suggestions button:disabled{opacity:.52;cursor:not-allowed;color:var(--muted);background:rgba(148,163,184,.12);border-style:dashed}.combo-suggestions span{padding:8px;color:var(--muted)}.quick-product-button,#open-quick-product,#open-partner,#add-shipment,.business-lookup-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border-radius:10px;font-weight:700;gap:6px}.quick-product-button,#open-quick-product,#open-partner,#add-shipment{border:1px solid var(--primary);color:#fff;background:var(--primary);box-shadow:0 8px 18px rgba(37,99,235,.18)}.quick-product-button:hover,#open-quick-product:hover,#open-partner:hover,#add-shipment:hover{background:var(--primary-hover,#1d4ed8)}.document-items-section>.section-heading{position:sticky;top:10px;z-index:25;background:color-mix(in srgb,var(--surface) 94%,transparent);border:1px solid var(--border);border-radius:10px;padding:10px;box-shadow:0 10px 24px rgba(0,0,0,.08)}.date-input-pair{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px}.date-input-pair input[data-until]{min-width:0}.date-input-pair input[type=date]{min-width:44px}
.document-row{border-color:color-mix(in srgb,var(--border) 82%,var(--primary));box-shadow:0 8px 20px rgba(15,23,42,.06)}
.document-row:nth-child(even){background:color-mix(in srgb,var(--surface-2) 75%,var(--surface))}
.document-row.duplicate-product-row{border-color:var(--danger);box-shadow:0 0 0 2px color-mix(in srgb,var(--danger) 22%,transparent)}
.date-input-pair input[type=date]{inline-size:44px!important;min-width:44px!important;max-width:44px!important;padding:0!important;color:transparent!important;text-indent:-999px!important;cursor:pointer!important;overflow:hidden!important}
.date-input-pair input[type=date]::-webkit-calendar-picker-indicator{opacity:1!important;margin:auto!important;cursor:pointer!important}
.action-menu summary::after{content:"\25BE";font-size:12px;color:var(--muted)}
.document-items-section{position:relative;overflow:visible}.document-items-section>.section-heading{position:sticky!important;top:10px!important;z-index:70!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;background:color-mix(in srgb,var(--surface) 96%,transparent)!important;border:1px solid var(--border)!important;border-radius:10px!important;padding:10px!important;box-shadow:0 10px 24px rgba(0,0,0,.08)!important}.document-items-section>.section-heading h2{margin:0!important}.document-items-section>.section-heading .primary,.document-items-section>.section-heading #add-item{margin-left:auto!important;white-space:nowrap!important}
@media(max-width:700px){.document-items-section>.section-heading{top:8px!important}.document-items-section>.section-heading .primary,.document-items-section>.section-heading #add-item{width:100%!important;margin-left:0!important}}

/* Hotfix 1.10.24: stabilize document controls across local and hosting */
.combo-search > select.combo-native-select,
.combo-search > .combo-native-select {
    display: none !important;
    visibility: hidden !important;
    position: absolute !important;
    inline-size: 1px !important;
    block-size: 1px !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* 1.10.42: giao diện thống nhất cho nút nổi thêm sản phẩm. */
.floating-add-item {
    min-height: 44px !important;
    padding: 11px 17px !important;
    border: 1px solid var(--primary) !important;
    border-radius: 10px !important;
    background: var(--primary) !important;
    color: #fff !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: .01em !important;
    transition: background-color .16s ease, box-shadow .16s ease, transform .16s ease !important;
}
.floating-add-item:hover {
    background: var(--primary-hover) !important;
    border-color: var(--primary-hover) !important;
    transform: translateY(-1px) !important;
}
.floating-add-item:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--primary) 28%, transparent) !important;
    outline-offset: 2px !important;
}

/* Hotfix 1.10.33: nút thêm sản phẩm nổi khi cuộn sâu trong phiếu mua/bán. */
.floating-add-item {
    position: fixed !important;
    right: 28px !important;
    bottom: 96px !important;
    z-index: 780 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    min-width: 150px !important;
    box-shadow: 0 14px 34px rgba(15, 23, 42, .22) !important;
}
.floating-add-item[hidden] {
    display: none !important;
}
@media (max-width: 700px) {
    .floating-add-item {
        right: 16px !important;
        bottom: 92px !important;
        min-width: 132px !important;
        max-width: calc(100vw - 32px) !important;
    }
}

.warranty-item-row,.warranty-condition-row{grid-template-columns:repeat(12,minmax(0,1fr));overflow:visible}.warranty-case-items{display:grid;gap:14px;margin-top:16px}.warranty-case-item,.warranty-item-result{min-width:0;border:1px solid var(--border);border-radius:8px;padding:12px;background:var(--surface-2)}.warranty-case-item h3{margin-top:0}.warranty-item-results{display:grid;gap:12px}.warranty-item-result{display:grid;gap:10px}.warranty-item-result label{display:grid;gap:5px}.warranty-item-row .input-action{min-width:0}.warranty-item-row input,.warranty-item-row select,.warranty-condition-row input,.warranty-condition-row textarea{min-width:0;max-width:100%}
@media(max-width:900px){.warranty-item-row .third,.warranty-condition-row .half{grid-column:1/-1}.warranty-item-row .row-footer button{width:100%}.warranty-case-item .detail-grid{grid-template-columns:1fr}}
.document-items-section {
    position: relative !important;
    overflow: visible !important;
}
.document-items-section > .section-heading {
    position: sticky !important;
    top: 10px !important;
    z-index: 90 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    background: color-mix(in srgb, var(--surface) 97%, transparent) !important;
    border: 1px solid var(--border) !important;
    border-radius: 10px !important;
    padding: 10px !important;
    box-shadow: 0 12px 26px rgba(15, 23, 42, .10) !important;
}
.document-items-section > .section-heading h2 {
    margin: 0 !important;
}
.document-items-section > .section-heading .primary,
.document-items-section > .section-heading #add-item {
    margin-left: auto !important;
    white-space: nowrap !important;
}
.document-row {
    border: 1px solid color-mix(in srgb, var(--border) 82%, var(--primary)) !important;
    background: color-mix(in srgb, var(--surface) 94%, var(--primary)) !important;
    box-shadow: 0 8px 20px rgba(15, 23, 42, .06) !important;
}
.document-row:nth-child(even) {
    background: color-mix(in srgb, var(--surface-2) 78%, var(--surface)) !important;
}
.document-row:focus-within {
    border-color: color-mix(in srgb, var(--primary) 65%, var(--border)) !important;
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary) 14%, transparent), 0 10px 24px rgba(15, 23, 42, .08) !important;
}
.date-input-pair,
.document-date-input-pair {
    position: relative !important;
    display: block !important;
    min-inline-size: 0 !important;
    inline-size: 100% !important;
}
.date-input-pair > input:not([type="date"]),
.document-date-input-pair > input:not([type="date"]):not([type="hidden"]) {
    inline-size: 100% !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    box-sizing: border-box !important;
    padding-right: 48px !important;
}
.date-input-pair input[type="date"],
.document-date-input-pair input[type="date"] {
    position: absolute !important;
    inset-block: 0 !important;
    right: 0 !important;
    inline-size: 44px !important;
    min-inline-size: 44px !important;
    max-inline-size: 44px !important;
    block-size: 100% !important;
    min-block-size: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    color: transparent !important;
    background: transparent !important;
    border-color: transparent !important;
    text-indent: -999px !important;
    cursor: pointer !important;
    overflow: hidden !important;
    z-index: 2 !important;
    color-scheme: light dark;
}
.date-input-pair input[type="date"]::-webkit-calendar-picker-indicator,
.document-date-input-pair input[type="date"]::-webkit-calendar-picker-indicator {
    opacity: 0 !important;
    inline-size: 100% !important;
    block-size: 100% !important;
    margin: 0 !important;
    cursor: pointer !important;
}
.date-picker-visual-icon {
    position: absolute;
    top: 50%;
    right: 12px;
    z-index: 3;
    width: 20px;
    height: 20px;
    color: var(--text);
    transform: translateY(-50%);
    pointer-events: none !important;
}
.date-control {
    position: relative;
    display: block;
    min-width: 0;
    width: 100%;
}
.date-control:not(.date-control--formatted) > .date-picker-native-target {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    padding: 10px 44px 10px 12px !important;
    color: var(--text) !important;
    background: var(--surface) !important;
    border-color: var(--border) !important;
    text-indent: 0 !important;
    opacity: 1 !important;
    clip-path: none !important;
    pointer-events: auto !important;
    overflow: visible !important;
}
.date-control > .date-picker-native-target::-webkit-calendar-picker-indicator {
    position: absolute;
    inset-block: 0;
    right: 0;
    width: 44px;
    height: 100%;
    margin: 0;
    opacity: 0 !important;
    cursor: pointer;
}
.graphite-dashboard .dashboard-chart-panel .topbar {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
}
.graphite-dashboard .dashboard-chart-panel .filters {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
    max-width: 620px !important;
    min-width: 0 !important;
    gap: 12px !important;
}
.graphite-dashboard .dashboard-chart-panel .filters > * {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}
.graphite-dashboard .dashboard-chart-panel .filters > button {
    grid-column: 1 / -1 !important;
}
.graphite-dashboard .dashboard-date-control > .date-picker-native-target {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    opacity: 0 !important;
    pointer-events: auto !important;
    cursor: pointer !important;
}
.graphite-dashboard .dashboard-date-control:focus-within {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
    border-radius: 8px;
}
@media (max-width: 480px) {
    .graphite-dashboard .dashboard-chart-panel .filters {
        grid-template-columns: minmax(0, 1fr) !important;
        max-width: none !important;
    }
    .graphite-dashboard .dashboard-chart-panel .filters > button {
        grid-column: auto !important;
    }
}
@media (max-width: 700px) {
    .document-items-section > .section-heading {
        top: 8px !important;
        display: grid !important;
    }
    .document-items-section > .section-heading .primary,
    .document-items-section > .section-heading #add-item {
        inline-size: 100% !important;
        margin-left: 0 !important;
    }
}

/* Hotfix 1.10.24: keep document item actions visible while editing long documents */
.document-shell,
.document-shell form,
.document-items-section,
form:has(.document-items-section) {
    overflow: visible !important;
}
.document-items-section > .section-heading {
    position: sticky !important;
    top: 0 !important;
    z-index: 320 !important;
    backdrop-filter: blur(10px);
}
.document-items-section > .section-heading #add-item {
    flex: 0 0 auto !important;
}

/* Hotfix 1.10.26: JS fallback for long purchase/sale documents */
.document-items-section > .section-heading.is-fixed {
    position: fixed !important;
    top: 8px !important;
    z-index: 720 !important;
    background: color-mix(in srgb, var(--surface) 97%, transparent) !important;
    border: 1px solid var(--border) !important;
    border-radius: 10px !important;
    box-shadow: 0 14px 36px rgba(15, 23, 42, .18) !important;
}
.serial-option.selected-elsewhere,
.serial-option:disabled {
    opacity: .72 !important;
    cursor: not-allowed !important;
    font-weight: 800 !important;
    border-color: var(--danger) !important;
    background: color-mix(in srgb, var(--danger) 10%, var(--surface)) !important;
    color: var(--text) !important;
}
@media (max-width: 700px) {
    .document-items-section > .section-heading.is-fixed {
        left: 8px !important;
        right: 8px !important;
        width: auto !important;
        top: 8px !important;
    }
}

/* Hotfix 1.10.28: visible validation state for required autocomplete fields */
.combo-search.is-invalid .combo-filter {
    border-color: var(--danger) !important;
    background: color-mix(in srgb, var(--danger) 8%, var(--surface)) !important;
}
.combo-error {
    font-size: 12px !important;
    margin-top: 2px !important;
}

/* Hotfix 1.10.29: ổn định thanh Sản phẩm trong phiếu mua/bán.
   Luôn dùng sticky trong khung nội dung, không dùng fixed để tránh kéo giãn layout trên hosting. */
.document-shell,
.document-shell form,
.document-items-section {
    overflow: visible !important;
    max-width: 100% !important;
}
.document-items-section > .section-heading,
.document-items-section > .section-heading.is-fixed {
    position: sticky !important;
    top: 10px !important;
    left: auto !important;
    right: auto !important;
    inset-inline: auto !important;
    z-index: 360 !important;
    width: auto !important;
    inline-size: auto !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    margin: 0 0 14px !important;
    padding: 10px 14px !important;
    background: color-mix(in srgb, var(--surface) 97%, transparent) !important;
    border: 1px solid var(--border) !important;
    border-radius: 10px !important;
    box-shadow: 0 12px 26px rgba(15, 23, 42, .10) !important;
    backdrop-filter: blur(10px) !important;
}
.document-items-section > .section-heading h2 {
    min-width: 0 !important;
    margin: 0 !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
}
.document-items-section > .section-heading #add-item {
    flex: 0 0 auto !important;
    width: auto !important;
    margin-left: auto !important;
    white-space: nowrap !important;
}
@media (max-width: 700px) {
    .document-items-section > .section-heading,
    .document-items-section > .section-heading.is-fixed {
        top: 8px !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
        align-items: stretch !important;
        gap: 10px !important;
        padding: 10px !important;
    }
    .document-items-section > .section-heading #add-item {
        width: 100% !important;
        margin-left: 0 !important;
    }
}

/* Giữ các nút chuyển bước bảo hành ngoài vùng nút Chat nội bộ. */
.warranty-step-actions {
    padding-right: 180px;
}
@media (max-width: 700px) {
    .warranty-step-actions {
        padding-right: 0;
        padding-bottom: 70px;
    }
}
/* Opening stock: keep row identity and actions aligned across desktop and mobile. */
#opening-stock-form{overflow:visible}
.opening-stock-row{display:block;margin-bottom:18px;padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}
.opening-stock-row-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-2px 0 14px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.opening-stock-row-header strong{font-size:16px}
.opening-stock-row-header .remove-opening-row{flex:0 0 auto}
.opening-stock-note{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}
.opening-stock-form-actions{align-items:center;margin:4px 0 0;padding-top:14px;border-top:1px solid var(--border)}
.opening-stock-form-actions button{min-height:42px}
.opening-warranty-row{grid-template-columns:minmax(140px,.5fr) repeat(2,minmax(220px,1fr))}
@media(max-width:1100px){.opening-fast-entry{grid-template-columns:1fr}.opening-warranty-row{grid-template-columns:repeat(2,minmax(0,1fr))}.opening-warranty-row strong{grid-column:1/-1;padding-bottom:8px;border-bottom:1px solid var(--border)}}
@media(max-width:700px){.opening-stock-row{padding:12px}.opening-stock-row-header{align-items:stretch;flex-direction:column}.opening-stock-row-header .remove-opening-row{width:100%}.opening-stock-form-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.opening-stock-form-actions button{width:100%;min-width:0;white-space:normal}.opening-warranty-row{grid-template-columns:1fr}.opening-warranty-row strong{grid-column:auto}.opening-stock-note input{min-height:44px}}

/* 1.11 document editor: progressive disclosure and aligned controls. */
.inventory-v111 .document-shell{gap:20px;max-width:1500px;margin-inline:auto}
.inventory-v111 .document-shell>.form-section{padding:20px;background:var(--surface);border-color:color-mix(in srgb,var(--border) 90%,transparent);box-shadow:0 12px 30px rgba(0,0,0,.14)}
.inventory-v111 .document-shell>.form-section>.section-heading{padding-bottom:13px;border-bottom:1px solid var(--border)}
.inventory-v111 .document-row{grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;padding:18px;margin-bottom:16px;border-radius:13px;background:var(--surface-2);border-color:color-mix(in srgb,var(--border) 86%,var(--primary));box-shadow:0 10px 26px rgba(0,0,0,.12)}
.inventory-v111 .document-row:nth-child(even){background:color-mix(in srgb,var(--surface-2) 92%,var(--surface))}
.inventory-v111 .document-row:focus-within{border-color:color-mix(in srgb,var(--primary) 62%,var(--border));box-shadow:0 14px 30px rgba(0,0,0,.18),0 0 0 2px color-mix(in srgb,var(--primary) 14%,transparent)}
.inventory-v111 .document-row .product-field{grid-column:span 8}
.inventory-v111 .document-row .quantity-field{grid-column:span 4}
.inventory-v111 .product-picker{display:grid;grid-template-columns:58px minmax(0,1fr);gap:11px;align-items:start;min-width:0}
.inventory-v111 .product-row-thumbnail{display:inline-flex;width:58px;height:58px;align-items:center;justify-content:center;overflow:hidden;border:1px solid var(--border);border-radius:11px;background:var(--surface);box-shadow:0 6px 16px rgba(0,0,0,.13)}
.inventory-v111 .product-row-thumbnail img{display:block;width:100%;height:100%;object-fit:contain;padding:5px}
.inventory-v111 .product-row-thumbnail.is-fallback img{opacity:.5}
.inventory-v111 .product-picker>.input-action{min-width:0}
.inventory-v111 .item-details{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start;padding-top:2px}
.inventory-v111 .item-details>label,.inventory-v111 .document-advanced-grid>label,.inventory-v111 .document-advanced-grid>fieldset{align-self:start}
.inventory-v111 .document-row>label>select,.inventory-v111 .document-row>label>input,.inventory-v111 .document-row>label>.serial-launch,.inventory-v111 .item-details select,.inventory-v111 .item-details input,.inventory-v111 .document-advanced-grid select,.inventory-v111 .document-advanced-grid input,.inventory-v111 .document-advanced-grid .serial-launch{height:46px;min-height:46px}
.inventory-v111 .document-advanced{min-width:0;margin-top:2px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--surface) 64%,var(--surface-2));overflow:hidden}
.inventory-v111 .document-advanced>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:12px 15px;cursor:pointer;list-style:none;font-weight:800;color:var(--text)}
.inventory-v111 .document-advanced>summary::-webkit-details-marker{display:none}
.inventory-v111 .document-advanced>summary::after{content:"+";display:grid;place-items:center;flex:0 0 26px;width:26px;height:26px;border-radius:999px;background:color-mix(in srgb,var(--primary) 15%,var(--surface));color:var(--primary);font-size:18px}
.inventory-v111 .document-advanced[open]>summary{border-bottom:1px solid var(--border)}
.inventory-v111 .document-advanced[open]>summary::after{content:"−"}
.inventory-v111 .document-advanced>summary small{margin-left:auto;font-weight:500}
.inventory-v111 .document-advanced-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:start;padding:15px}
.inventory-v111 .document-advanced-grid .serial-field{grid-column:auto}
.inventory-v111 .document-advanced-grid .manufacturer-field{margin:0;padding:10px;min-height:100%;border-radius:9px}
.inventory-v111 .document-advanced-grid .manufacturer-field legend{font-size:13px}
.inventory-v111 .document-advanced-grid .manufacturer-print-choice{min-height:46px;align-content:center}
.inventory-v111 .manufacturer-managed-field{display:grid;gap:7px;align-content:start;min-width:0}
.inventory-v111 .manufacturer-managed-field>strong{font-size:13px}
.inventory-v111 .manufacturer-managed-field>span{display:flex;align-items:center;min-height:46px;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:var(--surface);font-weight:700}
.inventory-v111 .serial-launch{background:var(--surface);border-color:var(--border)}
.inventory-v111 .serial-launch:hover{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,var(--surface))}
.inventory-v111 .row-footer{padding-top:2px;border-top:1px solid color-mix(in srgb,var(--border) 65%,transparent)}
.inventory-v111 .document-submit-actions{position:relative;z-index:8;align-items:center;padding-top:14px;border-top:1px solid var(--border)}
.inventory-v111 .has-internal-chat .document-submit-actions{padding-right:175px}
.inventory-v111 .has-internal-chat .document-total{margin-right:165px}
@media(max-width:1200px){.inventory-v111 .document-advanced-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.inventory-v111 .document-row .product-field{grid-column:span 8}.inventory-v111 .document-row .quantity-field{grid-column:span 4}}
@media(max-width:700px){
    .inventory-v111 .document-shell{gap:14px}
    .inventory-v111 .document-shell>.form-section{padding:13px}
    .inventory-v111 .document-header-grid,
    .document-filter-bar{min-width:0;width:100%}
    .inventory-v111 .document-header-field,
    .document-filter-bar label{min-width:0;max-width:100%;overflow:hidden}
    .inventory-v111 .document-header-field input[type="date"],
    .document-filter-bar input[type="date"]{display:block;inline-size:100%;min-inline-size:0!important;max-inline-size:100%!important;box-sizing:border-box;overflow:hidden}
    .inventory-v111 .document-header-field .date-input-pair input[type="date"],
    .inventory-v111 .document-header-field .document-date-input-pair input[type="date"],
    .document-filter-bar .date-input-pair input[type="date"]{inline-size:44px!important;min-inline-size:44px!important;max-inline-size:44px!important}
    .inventory-v111 .document-row{display:grid;grid-template-columns:1fr;padding:13px;gap:12px;border-radius:11px}
    .inventory-v111 .document-row .product-field,.inventory-v111 .document-row .quantity-field,.inventory-v111 .document-row .full-row{grid-column:1/-1}
    .inventory-v111 .product-picker{grid-template-columns:52px minmax(0,1fr)}
    .inventory-v111 .product-row-thumbnail{width:52px;height:52px}
    .inventory-v111 .item-details,.inventory-v111 .document-advanced-grid{grid-template-columns:1fr;gap:12px}
    .inventory-v111 .document-advanced>summary{align-items:flex-start}
    .inventory-v111 .document-advanced>summary small{display:none}
    .inventory-v111 .document-advanced-grid{padding:12px}
    .inventory-v111 .row-footer .remove-item{width:100%}
    .inventory-v111 .has-internal-chat .document-submit-actions{padding-right:0;padding-bottom:74px}
    .inventory-v111 .has-internal-chat .document-total{bottom:72px;margin-right:0}
    .inventory-v111 .document-submit-actions{display:grid;grid-template-columns:1fr;gap:8px}
    .inventory-v111 .document-submit-actions>*{width:100%;text-align:center}
}
