html,
body {
    height: 100%;
    overflow: hidden;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    font-size: 14px;
}

body {
    margin: 0;
    color: #102033;
    font-family: "Segoe UI", Arial, sans-serif;
    background: #eef3f9;
}

input,
select,
textarea,
button {
    font: inherit;
}

a {
    color: inherit;
}

.login-body {
    background: #f3f7fc;
    overflow: auto;
}

.login-shell {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 24px;
}

.login-surface {
    width: min(440px, 100%);
}

.login-panel {
    background: #fff;
    border: 1px solid #d8e1ed;
    border-radius: 8px;
    padding: 24px;
    box-shadow: 0 16px 46px rgba(15, 45, 80, 0.14);
}

.login-panel h1 {
    margin: 0;
    font-size: 1.45rem;
    font-weight: 750;
}

.muted {
    margin: 5px 0 0;
    color: #65748a;
}

.login-form {
    display: grid;
    gap: 7px;
    margin-top: 22px;
}

.login-form label,
.form-grid label {
    font-size: 0.88rem;
    font-weight: 650;
    color: #40506a;
}

.login-form input,
.login-form select,
.form-grid input,
.form-grid select,
.form-grid textarea,
.search-row input {
    width: 100%;
    min-height: 33px;
    border: 1px solid #b9c6d6;
    border-radius: 0;
    padding: 5px 7px;
    background: #fff;
    color: #071527;
}

.login-form input:focus,
.login-form select:focus,
.form-grid input:focus,
.form-grid select:focus,
.form-grid textarea:focus,
.search-row input:focus {
    border-color: #1c62a3;
    outline: 2px solid rgba(28, 98, 163, 0.15);
}

.login-form button,
.btn-primary-form,
.search-row button {
    min-height: 34px;
    border: 1px solid #0d4f8b;
    background: #0f4c81;
    color: #fff;
    font-weight: 700;
    padding: 6px 15px;
}

.desktop-body {
    overflow: hidden;
}

.desktop-frame {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr);
    width: 100vw;
    height: 100vh;
    background: #f4f7fb;
}

.side-menu {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 14px 12px;
    background: #081936;
    color: #fff;
}

.side-logo {
    min-height: 32px;
    display: grid;
    place-items: center;
    color: #d8e2f0;
    font-size: 0.8rem;
    letter-spacing: 0;
}

.side-link {
    min-height: 42px;
    display: grid;
    place-items: center;
    background: #1c2f51;
    color: #fff;
    text-decoration: none;
    font-weight: 750;
}

.side-link.active {
    background: #17bc83;
}

.side-link.muted-link {
    cursor: default;
}

.side-spacer {
    flex: 1;
}

.desktop-main {
    min-width: 0;
    display: grid;
    grid-template-rows: 64px minmax(0, 1fr) 22px;
}

.top-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 0 28px;
    background: #294bb9;
    color: #fff;
}

.top-title {
    font-size: 1.35rem;
    font-weight: 800;
}

.top-context {
    margin-top: 4px;
    color: #dbe5ff;
    font-size: 0.86rem;
    overflow-wrap: anywhere;
}

.top-company {
    font-weight: 800;
    white-space: nowrap;
}

.work-area {
    min-height: 0;
    min-width: 0;
    overflow: auto;
    padding: 12px 14px 10px;
}

.work-area:has(.master-split) {
    display: flex;
    flex-direction: column;
}

.desktop-footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 0 14px;
    color: #536783;
    font-size: 0.78rem;
    background: #fff;
    border-top: 1px solid #d9e2ee;
}

.module-head {
    min-height: 60px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 16px;
    background: #fff;
    border: 1px solid #d7e0ec;
}

.module-head > div {
    min-width: 0;
}

.module-head h1 {
    margin: 0;
    font-size: 1.3rem;
    font-weight: 750;
}

.module-head p {
    margin: 4px 0 0;
    color: #536783;
    overflow-wrap: anywhere;
}

.module-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.btn-line {
    min-width: 72px;
    min-height: 34px;
    display: grid;
    place-items: center;
    border: 1px solid #c9d5e5;
    background: #fff;
    color: #0b3c6c;
    text-decoration: none;
    font-weight: 700;
    padding: 0 6px;
}

.btn-line.disabled,
.btn-line:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.btn-line.danger-line {
    border-color: #e6b8b8;
    color: #bc1b1b;
}

.btn-line.whatsapp-line {
    border-color: #0c8d6b;
    background: #0f8f6d;
    color: #fff;
}

.message-bar {
    margin-top: 8px;
    padding: 8px 12px;
    border: 1px solid;
    background: #fff;
}

.message-bar.success {
    border-color: #b9e6cd;
    color: #08734f;
}

.message-bar.warning {
    border-color: #f3d19d;
    background: #fff8ea;
    color: #8a4f00;
}

.message-bar.error,
.validation-summary,
.field-validation-error {
    border-color: #f0c4c4;
    color: #b42318;
}

.sales-whatsapp-status {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    align-items: center;
    font-weight: 650;
}

.sales-whatsapp-status a {
    color: inherit;
    font-weight: 800;
}

.master-split {
    height: calc(100vh - 64px - 22px - 12px - 60px - 12px);
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: minmax(260px, 0.95fr) minmax(220px, 1fr);
    gap: 12px;
    margin-top: 10px;
}

.work-area:has(.master-split) .master-split {
    flex: 1 1 0;
    height: auto;
}

.entry-panel,
.grid-panel {
    min-height: 0;
    overflow: hidden;
    background: #fff;
    border: 1px solid #d7e0ec;
}

.entry-panel {
    padding: 12px;
    overflow-y: auto;
}

.form-grid {
    display: grid;
    grid-template-columns: 116px minmax(110px, 1fr) 114px minmax(110px, 1fr);
    gap: 8px 9px;
    align-items: center;
}

.form-grid.compact textarea {
    min-height: 54px;
    resize: vertical;
}

.span-3 {
    grid-column: span 3;
}

.caps {
    text-transform: uppercase;
}

.num {
    text-align: right;
}

.check-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
}

.check-row input {
    width: auto;
    min-height: auto;
}

.check-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    align-items: center;
    min-height: 33px;
}

.entry-actions {
    position: sticky;
    bottom: -12px;
    display: flex;
    justify-content: flex-end;
    margin: 12px -12px -12px;
    padding: 8px 12px;
    border-top: 1px solid #dfe7f1;
    background: #fff;
}

.entry-actions button {
    min-width: 88px;
    min-height: 34px;
    border: 1px solid #0d4f8b;
    background: #0f4c81;
    color: #fff;
    font-weight: 700;
}

.entry-actions .danger-action {
    border-color: #d33131;
    background: #fff;
    color: #c32222;
}

.entry-actions .whatsapp-action {
    border-color: #0c8d6b;
    background: #0f8f6d;
    color: #fff;
}

.entry-actions .btn-line {
    min-width: 88px;
}

.split-actions {
    gap: 8px;
}

.grid-panel {
    display: grid;
    grid-template-rows: 44px minmax(0, 1fr) auto;
}

.search-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 92px;
    gap: 8px;
    padding: 8px;
    border-bottom: 1px solid #dfe7f1;
}

.data-grid-wrap {
    min-height: 0;
    min-width: 0;
    width: 100%;
    overflow: auto;
}

.data-grid {
    min-width: 1060px;
    width: 100%;
    border-collapse: collapse;
    font-size: 0.86rem;
}

.data-grid th,
.data-grid td {
    padding: 6px 7px;
    border-right: 1px solid #dce4ef;
    border-bottom: 1px solid #dce4ef;
    white-space: nowrap;
    vertical-align: middle;
}

.data-grid th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #f5f8fc;
    color: #27425f;
    font-weight: 760;
}

.data-grid tr.selected td {
    background: #dceaff;
}

.data-grid a {
    color: #0f4c81;
    font-weight: 700;
}

.item-grid {
    min-width: 1420px;
}

.delete-row {
    display: flex;
    justify-content: flex-end;
    padding: 8px;
    border-top: 1px solid #dfe7f1;
}

.delete-row button {
    min-height: 32px;
    border: 1px solid #d33131;
    background: #fff;
    color: #c32222;
    font-weight: 700;
    padding: 5px 12px;
}

.page-head,
.status-band,
.metric-grid,
.work-panel {
    margin-bottom: 12px;
}

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

.page-head h1 {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 760;
}

.page-head p {
    margin: 4px 0 0;
    color: #64748b;
}

.status-pill {
    border-radius: 4px;
    padding: 6px 10px;
    font-size: 0.86rem;
    font-weight: 750;
    white-space: nowrap;
}

.status-pill.online {
    background: #dff7ed;
    color: #08734f;
}

.status-pill.offline {
    background: #fff2d8;
    color: #955a00;
}

.status-pill.ok {
    background: #dff7ed;
    color: #08734f;
}

.status-pill.warning {
    background: #fff2d8;
    color: #955a00;
}

.status-pill.error {
    background: #ffe3df;
    color: #b42318;
}

.status-band {
    min-width: 0;
    border: 1px solid #d7e0ec;
    background: #fff;
    padding: 8px 11px;
    overflow-wrap: anywhere;
}

.status-band.ok {
    border-color: #b8e6d4;
    background: #f0fbf6;
}

.status-band.warn {
    border-color: #f0d89d;
    background: #fff8e8;
}

.metric-grid {
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(6, minmax(120px, 1fr));
    gap: 10px;
}

.metric-card,
.work-panel {
    min-width: 0;
    background: #fff;
    border: 1px solid #d7e0ec;
}

.metric-card {
    display: grid;
    gap: 4px;
    min-height: 82px;
    padding: 12px;
}

.metric-card span,
.metric-card small {
    color: #64748b;
}

.metric-card strong {
    font-size: 1.25rem;
}

.section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border-bottom: 1px solid #e5ebf3;
}

.section-title h2 {
    margin: 0;
    font-size: 1rem;
    font-weight: 760;
}

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

.table-status {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    border-radius: 4px;
    padding: 3px 8px;
    font-size: 0.82rem;
    font-weight: 760;
    white-space: nowrap;
}

.table-status.ready {
    background: #dff7ed;
    color: #08734f;
}

.table-status.started {
    background: #fff2d8;
    color: #955a00;
}

.table-status.pending {
    background: #ffe3df;
    color: #b42318;
}

.accounts-shell {
    min-height: 0;
}

.accounts-metrics {
    grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.sales-shell {
    min-height: 0;
}

.purchase-shell {
    min-height: 0;
}

.inventory-shell {
    min-height: 0;
}

.masters-shell {
    min-height: 0;
}

.gst-return-shell {
    min-height: 0;
}

.reports-shell {
    min-height: 0;
}

.sales-metrics,
.purchase-metrics,
.inventory-metrics,
.gst-return-metrics,
.reports-metrics {
    grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.accounts-action-grid,
.reports-action-grid,
.masters-action-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(260px, 1fr));
    gap: 10px;
    padding: 12px;
}

.sales-action-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(260px, 1fr));
    gap: 10px;
    padding: 12px;
}

.purchase-action-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(260px, 1fr));
    gap: 10px;
    padding: 12px;
}

.inventory-action-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(260px, 1fr));
    gap: 10px;
    padding: 12px;
}

.purchase-entry-stack {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
}

.purchase-entry-totals {
    grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.purchase-return-source,
.purchase-return-entry-totals {
    grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.purchase-return-source {
    margin-top: 10px;
}

.grn-entry-totals {
    grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.purchase-order-totals {
    grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.physical-stock-totals {
    grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.opening-stock-totals,
.stock-transfer-totals,
.stock-adjustment-totals {
    grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.data-grid.grn-entry-item-grid {
    min-width: 1780px;
}

.data-grid.grn-entry-list-grid {
    min-width: 1180px;
}

.data-grid.purchase-order-item-grid {
    min-width: 2240px;
}

.data-grid.purchase-order-list-grid {
    min-width: 1320px;
}

.data-grid.physical-stock-item-grid {
    min-width: 1680px;
}

.data-grid.physical-stock-list-grid {
    min-width: 1180px;
}

.data-grid.opening-stock-item-grid {
    min-width: 1420px;
}

.data-grid.opening-stock-list-grid {
    min-width: 1180px;
}

.data-grid.stock-transfer-item-grid {
    min-width: 1580px;
}

.data-grid.stock-transfer-list-grid {
    min-width: 1180px;
}

.data-grid.stock-adjustment-item-grid {
    min-width: 1540px;
}

.data-grid.stock-adjustment-list-grid {
    min-width: 1180px;
}

.data-grid.grn-entry-item-grid input.grn-line-input {
    width: 100%;
    min-width: 72px;
    min-height: 28px;
    border: 1px solid #c8d3e1;
    background: #fff;
    color: #071527;
    padding: 3px 5px;
}

.data-grid.purchase-order-item-grid input.purchase-order-line-input {
    width: 100%;
    min-width: 72px;
    min-height: 28px;
    border: 1px solid #c8d3e1;
    background: #fff;
    color: #071527;
    padding: 3px 5px;
}

.data-grid.physical-stock-item-grid input.physical-stock-line-input {
    width: 100%;
    min-width: 72px;
    min-height: 28px;
    border: 1px solid #c8d3e1;
    background: #fff;
    color: #071527;
    padding: 3px 5px;
}

.data-grid.opening-stock-item-grid input.opening-line-input,
.data-grid.stock-transfer-item-grid input.transfer-line-input,
.data-grid.stock-adjustment-item-grid input.adjustment-line-input,
.data-grid.stock-adjustment-item-grid select.adjustment-line-input {
    width: 100%;
    min-width: 72px;
    min-height: 28px;
    border: 1px solid #c8d3e1;
    background: #fff;
    color: #071527;
    padding: 3px 5px;
}

.data-grid tr.positive-row td {
    background: #f0fdf7;
}

.data-grid tr.negative-row td {
    background: #fff5f5;
}

.data-grid.purchase-return-entry-item-grid {
    min-width: 2460px;
}

.data-grid.purchase-return-entry-list-grid {
    min-width: 1180px;
}

.data-grid.purchase-return-entry-item-grid input.purchase-return-line-input {
    width: 100%;
    min-width: 72px;
    min-height: 28px;
    border: 1px solid #c8d3e1;
    background: #fff;
    color: #071527;
    padding: 3px 5px;
}

.gst-return-action-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(260px, 1fr));
    gap: 10px;
    padding: 12px;
}

.accounts-action {
    min-height: 98px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    border: 1px solid #d7e0ec;
    background: #fff;
    padding: 12px;
}

.accounts-action.ready {
    border-left: 4px solid #17bc83;
}

.accounts-action.pending {
    border-left: 4px solid #c9d5e5;
}

.accounts-action h3 {
    margin: 0;
    font-size: 0.98rem;
    font-weight: 760;
}

.accounts-action p {
    margin: 4px 0;
    color: #536783;
}

.accounts-action small {
    color: #64748b;
}

.report-filter-panel {
    min-width: 0;
    margin-top: 10px;
    border: 1px solid #d7e0ec;
    background: #fff;
    padding: 10px 12px;
}

.report-filter-grid {
    display: grid;
    grid-template-columns: 54px minmax(130px, 1fr) 34px minmax(130px, 1fr) 54px minmax(140px, 1.2fr) 42px minmax(120px, 1fr) 46px minmax(150px, 1fr) 90px;
    gap: 8px;
    align-items: center;
}

.report-filter-grid label {
    margin: 0;
    color: #40506a;
    font-size: 0.88rem;
    font-weight: 650;
}

.report-filter-grid input,
.report-filter-grid select {
    width: 100%;
    min-height: 33px;
    border: 1px solid #b9c6d6;
    border-radius: 0;
    padding: 5px 7px;
    background: #fff;
    color: #071527;
}

.report-filter-grid button {
    min-height: 34px;
    border: 1px solid #0d4f8b;
    background: #0f4c81;
    color: #fff;
    font-weight: 700;
}

.sales-register-filter-grid {
    grid-template-columns: 54px minmax(126px, 1fr) 34px minmax(126px, 1fr) 70px minmax(160px, 1.4fr) 34px minmax(86px, 0.7fr) 34px minmax(78px, 0.7fr) 96px 86px;
}

.sales-report-filter-grid {
    grid-template-columns: 54px minmax(126px, 1fr) 34px minmax(126px, 1fr) 42px minmax(104px, 0.8fr) 70px minmax(156px, 1.3fr) 42px minmax(112px, 0.9fr) 34px minmax(150px, 1.3fr) 34px minmax(86px, 0.7fr) 72px minmax(124px, 0.9fr) 34px minmax(84px, 0.7fr) 56px minmax(150px, 1fr) 86px;
}

.sales-return-filter-grid {
    grid-template-columns: 54px minmax(126px, 1fr) 34px minmax(126px, 1fr) 42px minmax(104px, 0.8fr) 70px minmax(156px, 1.3fr) 34px minmax(86px, 0.7fr) 42px minmax(110px, 0.8fr) 56px minmax(150px, 1.1fr) 86px;
}

.sales-profit-filter-grid {
    grid-template-columns: 54px minmax(126px, 1fr) 34px minmax(126px, 1fr) 42px minmax(98px, 0.8fr) 70px minmax(150px, 1.3fr) 42px minmax(110px, 0.9fr) 34px minmax(150px, 1.3fr) 52px minmax(140px, 1fr) 86px;
}

.day-book-filter-grid {
    grid-template-columns: 54px minmax(126px, 1fr) 34px minmax(126px, 1fr) 54px minmax(130px, 1fr) 34px minmax(120px, 1fr) 52px minmax(150px, 1.2fr) 86px;
}

.customer-outstanding-filter-grid {
    grid-template-columns: 58px minmax(126px, 0.8fr) 70px minmax(190px, 1.8fr) 92px 86px;
}

.supplier-outstanding-filter-grid {
    grid-template-columns: 58px minmax(126px, 0.8fr) 66px minmax(190px, 1.8fr) 92px 86px;
}

.purchase-register-filter-grid {
    grid-template-columns: 54px minmax(126px, 1fr) 34px minmax(126px, 1fr) 70px minmax(160px, 1.4fr) 34px minmax(86px, 0.7fr) 42px minmax(110px, 0.8fr) 96px 86px;
}

.purchase-report-filter-grid {
    grid-template-columns: 54px minmax(126px, 1fr) 34px minmax(126px, 1fr) 42px minmax(104px, 0.8fr) 66px minmax(156px, 1.3fr) 42px minmax(112px, 0.9fr) 34px minmax(150px, 1.3fr) 34px minmax(86px, 0.7fr) 42px minmax(120px, 0.9fr) 56px minmax(150px, 1fr) 86px;
}

.purchase-return-filter-grid {
    grid-template-columns: 54px minmax(126px, 1fr) 34px minmax(126px, 1fr) 42px minmax(104px, 0.8fr) 66px minmax(156px, 1.3fr) 34px minmax(86px, 0.7fr) 42px minmax(110px, 0.8fr) 56px minmax(150px, 1.1fr) 86px;
}

.gstr1-filter-grid {
    grid-template-columns: 54px minmax(126px, 1fr) 34px minmax(126px, 1fr) 58px minmax(92px, 0.8fr) 44px minmax(100px, 0.8fr) 86px;
}

.gstr3b-filter-grid {
    grid-template-columns: 58px minmax(150px, 220px) 86px;
}

.stock-summary-filter-grid {
    grid-template-columns: 58px minmax(160px, 1.4fr) 44px minmax(120px, 0.9fr) 46px minmax(130px, 1fr) 44px minmax(120px, 0.9fr) 52px minmax(110px, 0.8fr) 86px;
}

.stock-ledger-filter-grid {
    grid-template-columns: 42px minmax(250px, 2fr) 46px minmax(130px, 1fr) 54px minmax(126px, 1fr) 34px minmax(126px, 1fr) 86px;
}

.receipt-payment-totals {
    grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.trial-balance-totals {
    grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.profit-loss-totals {
    grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.balance-sheet-totals {
    grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.ledger-book-totals {
    grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.day-book-totals {
    grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.cash-bank-book-totals {
    grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.journal-voucher-totals {
    grid-template-columns: repeat(3, minmax(150px, 1fr));
    margin-top: 10px;
}

.receipt-voucher-totals {
    grid-template-columns: repeat(3, minmax(150px, 1fr));
    margin-top: 10px;
}

.payment-voucher-totals {
    grid-template-columns: repeat(3, minmax(150px, 1fr));
    margin-top: 10px;
}

.supplier-payment-totals {
    grid-template-columns: repeat(4, minmax(150px, 1fr));
    margin-top: 10px;
}

.sales-entry-totals {
    grid-template-columns: repeat(4, minmax(150px, 1fr));
    margin-top: 10px;
}

.quotation-totals {
    grid-template-columns: repeat(4, minmax(150px, 1fr));
    margin-top: 10px;
}

.sales-register-totals {
    grid-template-columns: repeat(5, minmax(140px, 1fr));
}

.sales-report-totals {
    grid-template-columns: repeat(6, minmax(130px, 1fr));
}

.sales-return-totals {
    grid-template-columns: repeat(6, minmax(130px, 1fr));
}

.sales-profit-totals {
    grid-template-columns: repeat(6, minmax(130px, 1fr));
}

.customer-outstanding-totals {
    grid-template-columns: repeat(7, minmax(112px, 1fr));
}

.supplier-outstanding-totals {
    grid-template-columns: repeat(7, minmax(112px, 1fr));
}

.purchase-register-totals {
    grid-template-columns: repeat(6, minmax(130px, 1fr));
}

.purchase-report-totals {
    grid-template-columns: repeat(6, minmax(130px, 1fr));
}

.purchase-return-totals {
    grid-template-columns: repeat(6, minmax(130px, 1fr));
}

.gstr1-totals {
    grid-template-columns: repeat(5, minmax(140px, 1fr));
}

.gstr3b-totals {
    grid-template-columns: repeat(5, minmax(140px, 1fr));
}

.stock-summary-totals {
    grid-template-columns: repeat(6, minmax(130px, 1fr));
}

.stock-ledger-totals {
    grid-template-columns: repeat(5, minmax(140px, 1fr));
}

.reorder-report-totals,
.batch-expiry-totals,
.stock-valuation-totals {
    grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.settings-shell {
    min-height: 0;
    display: grid;
    gap: 12px;
    margin-top: 10px;
}

.settings-entry {
    min-height: 360px;
    max-width: 860px;
}

.settings-grid {
    grid-template-columns: 150px minmax(180px, 1fr) 150px minmax(180px, 1fr);
    padding-top: 12px;
}

.settings-status {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 10px;
    align-items: center;
    margin-top: 10px;
    padding: 8px 10px;
    border: 1px solid #d6e1ee;
    background: #f8fafc;
    color: #334155;
    font-size: 0.9rem;
}

.settings-status.success {
    border-color: #b9e6cd;
    background: #f0fff7;
    color: #08734f;
}

.settings-status.warning {
    border-color: #f3d19d;
    background: #fff8ea;
    color: #8a4f00;
}

.settings-status.error {
    border-color: #f0c4c4;
    background: #fff7f7;
    color: #b42318;
}

.settings-status.muted {
    color: #475569;
}

.settings-status-pill {
    min-height: 24px;
    display: inline-grid;
    place-items: center;
    padding: 2px 8px;
    border: 1px solid currentColor;
    background: #fff;
    font-weight: 750;
}

.settings-status-pill.ok {
    color: #08734f;
}

.settings-status-pill.missing {
    color: #b42318;
}

.settings-audit-panel {
    max-width: 860px;
    min-height: 190px;
    grid-template-rows: auto minmax(0, 1fr);
}

.settings-audit-title {
    padding: 10px 12px;
    border-bottom: 1px solid #dfe7f1;
}

.settings-audit-grid {
    min-width: 760px;
}

.status-ok {
    color: #08734f;
    font-weight: 800;
}

.status-error {
    color: #b42318;
    font-weight: 800;
}

.sales-entry-split {
    grid-template-rows: minmax(420px, 1.2fr) minmax(220px, 0.8fr);
}

.sales-entry-head > div:first-child {
    flex: 1 1 0;
}

.sales-entry-head .module-actions {
    flex: 0 0 auto;
    flex-wrap: nowrap;
}

.sales-entry-head .module-actions > * {
    min-width: 72px;
}

.sales-entry-header-grid {
    grid-template-columns: 122px minmax(130px, 1fr) 122px minmax(130px, 1fr);
}

.sales-item-picker {
    display: grid;
    grid-template-columns: 82px minmax(240px, 1fr) 42px minmax(82px, 110px) 96px;
    gap: 8px;
    align-items: center;
    margin: 12px -12px 0;
    padding: 10px 12px;
    border-top: 1px solid #e5ebf3;
}

.sales-item-picker label {
    margin: 0;
    color: #40506a;
    font-size: 0.88rem;
    font-weight: 650;
}

.sales-item-picker input,
.sales-item-picker select {
    width: 100%;
    min-height: 33px;
    border: 1px solid #b9c6d6;
    border-radius: 0;
    padding: 5px 7px;
    background: #fff;
    color: #071527;
}

.sales-item-picker button {
    min-height: 34px;
    border: 1px solid #0d4f8b;
    background: #0f4c81;
    color: #fff;
    font-weight: 700;
}

.ledger-book-filter-grid {
    grid-template-columns: 54px minmax(130px, 1fr) 34px minmax(130px, 1fr) 54px minmax(220px, 2fr) 54px minmax(140px, 1fr) 90px;
}

.cash-bank-book-filter-grid {
    grid-template-columns: 54px minmax(140px, 1fr) 54px minmax(260px, 2fr) 54px minmax(130px, 1fr) 34px minmax(130px, 1fr) 90px;
}

.ok-text {
    color: #166534;
}

.warn-text {
    color: #c2410c;
}

.synthetic-row td {
    background: #f8fbff;
    font-weight: 650;
}

.receipt-payment-layout {
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 12px;
}

.data-grid.receipt-payment-grid {
    min-width: 520px;
}

.data-grid.receipt-payment-detail-grid {
    min-width: 1280px;
}

.data-grid.trial-balance-group-grid {
    min-width: 720px;
}

.data-grid.trial-balance-ledger-grid {
    min-width: 1180px;
}

.data-grid.trial-balance-voucher-grid {
    min-width: 1280px;
}

.data-grid.profit-loss-summary-grid {
    min-width: 720px;
}

.data-grid.profit-loss-detail-grid {
    min-width: 1060px;
}

.data-grid.balance-sheet-summary-grid {
    min-width: 760px;
}

.data-grid.balance-sheet-ledger-grid {
    min-width: 1360px;
}

.data-grid.balance-sheet-voucher-grid {
    min-width: 1360px;
}

.data-grid.ledger-book-grid {
    min-width: 1180px;
}

.data-grid.day-book-grid {
    min-width: 1360px;
}

.data-grid.cash-bank-book-grid {
    min-width: 1280px;
}

.data-grid.contra-voucher-grid {
    min-width: 1120px;
}

.data-grid.journal-line-grid {
    min-width: 1160px;
}

.data-grid.journal-line-grid input,
.data-grid.journal-line-grid select,
.data-grid.receipt-voucher-line-grid input,
.data-grid.receipt-voucher-line-grid select,
.data-grid.payment-voucher-line-grid input,
.data-grid.payment-voucher-line-grid select {
    width: 100%;
    min-height: 30px;
    border: 1px solid #c8d3e1;
    background: #fff;
    color: #071527;
    padding: 4px 6px;
}

.data-grid.journal-voucher-grid {
    min-width: 920px;
}

.data-grid.receipt-voucher-line-grid {
    min-width: 1180px;
}

.data-grid.receipt-voucher-grid {
    min-width: 1120px;
}

.data-grid.payment-voucher-line-grid {
    min-width: 1180px;
}

.data-grid.payment-voucher-grid {
    min-width: 1120px;
}

.data-grid.supplier-payment-bill-grid {
    min-width: 1280px;
}

.data-grid.supplier-payment-bill-grid input {
    width: 100%;
    min-height: 30px;
    border: 1px solid #c8d3e1;
    background: #fff;
    color: #071527;
    padding: 4px 6px;
}

.data-grid.supplier-payment-grid {
    min-width: 1120px;
}

.sales-item-wrap {
    margin-top: 0;
}

.data-grid.sales-entry-item-grid {
    min-width: 2220px;
}

.data-grid.sales-entry-list-grid {
    min-width: 1280px;
}

.data-grid.sales-return-entry-item-grid {
    min-width: 2480px;
}

.data-grid.sales-return-entry-list-grid {
    min-width: 1120px;
}

.data-grid.delivery-challan-item-grid {
    min-width: 1580px;
}

.data-grid.delivery-challan-list-grid {
    min-width: 1180px;
}

.data-grid.quotation-item-grid {
    min-width: 2120px;
}

.data-grid.quotation-list-grid {
    min-width: 1120px;
}

.data-grid.sales-register-grid {
    min-width: 1840px;
}

.data-grid.sales-report-summary-grid {
    min-width: 2520px;
}

.data-grid.sales-report-detail-grid {
    min-width: 3160px;
}

.data-grid.sales-return-summary-grid {
    min-width: 2180px;
}

.data-grid.sales-return-detail-grid {
    min-width: 2600px;
}

.data-grid.sales-profit-invoice-grid {
    min-width: 1380px;
}

.data-grid.sales-profit-item-grid {
    min-width: 1120px;
}

.data-grid.sales-profit-customer-grid {
    min-width: 900px;
}

.data-grid.sales-profit-detail-grid {
    min-width: 1920px;
}

.data-grid.customer-outstanding-summary-grid {
    min-width: 1180px;
}

.data-grid.customer-outstanding-detail-grid {
    min-width: 1320px;
}

.data-grid.supplier-outstanding-summary-grid {
    min-width: 1180px;
}

.data-grid.supplier-outstanding-detail-grid {
    min-width: 1420px;
}

.data-grid.purchase-register-grid {
    min-width: 2220px;
}

.data-grid.purchase-report-summary-grid {
    min-width: 1840px;
}

.data-grid.purchase-report-detail-grid {
    min-width: 2880px;
}

.data-grid.purchase-return-summary-grid {
    min-width: 2180px;
}

.data-grid.purchase-return-detail-grid {
    min-width: 2460px;
}

.data-grid.gstr1-check-grid {
    min-width: 1960px;
}

.data-grid.gstr1-hsn-grid {
    min-width: 980px;
}

.data-grid.gstr3b-main-grid {
    min-width: 960px;
}

.data-grid.gstr3b-32-grid {
    min-width: 760px;
}

.data-grid.gstr3b-itc-grid {
    min-width: 860px;
}

.data-grid.gstr3b-inward-grid {
    min-width: 880px;
}

.data-grid.stock-summary-grid {
    min-width: 2080px;
}

.data-grid.stock-ledger-grid {
    min-width: 1860px;
}

.data-grid.reorder-report-grid {
    min-width: 1320px;
}

.data-grid.batch-expiry-grid {
    min-width: 1280px;
}

.data-grid.stock-valuation-grid {
    min-width: 1560px;
}

.data-grid td.issue-cell {
    min-width: 320px;
    max-width: 520px;
    white-space: normal;
    line-height: 1.35;
}

.data-grid.sales-entry-item-grid input.sales-line-input {
    width: 100%;
    min-width: 72px;
    min-height: 28px;
    border: 1px solid #c8d3e1;
    background: #fff;
    color: #071527;
    padding: 3px 5px;
}

.data-grid.sales-return-entry-item-grid input.return-line-input {
    width: 100%;
    min-width: 72px;
    min-height: 28px;
    border: 1px solid #c8d3e1;
    background: #fff;
    color: #071527;
    padding: 3px 5px;
}

.data-grid.delivery-challan-item-grid input.delivery-line-input {
    width: 100%;
    min-width: 72px;
    min-height: 28px;
    border: 1px solid #c8d3e1;
    background: #fff;
    color: #071527;
    padding: 3px 5px;
}

.data-grid.quotation-item-grid input.quotation-line-input {
    width: 100%;
    min-width: 72px;
    min-height: 28px;
    border: 1px solid #c8d3e1;
    background: #fff;
    color: #071527;
    padding: 3px 5px;
}

.data-grid.delivery-challan-item-grid input.delivery-line-remarks {
    min-width: 180px;
}

.sales-return-picker {
    grid-template-columns: 104px minmax(180px, 0.8fr) 108px minmax(360px, 2fr) 120px;
}

.delivery-challan-picker {
    grid-template-columns: 92px minmax(360px, 1.8fr) 42px minmax(86px, 0.4fr) 104px;
}

.quotation-picker {
    grid-template-columns: 92px minmax(360px, 1.8fr) 42px minmax(86px, 0.4fr) 104px;
}

.quotation-terms {
    min-height: 74px;
}

.delivery-stock-check {
    min-height: 32px;
    align-items: center;
}

.inline-title {
    margin: 12px -12px 0;
    border-top: 1px solid #e5ebf3;
}

.toolbar-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.compact-action {
    min-width: 124px;
    min-height: 32px;
    padding: 0 10px;
}

@media (max-width: 980px) {
    html,
    body {
        height: auto;
        min-height: 100%;
        overflow: auto;
    }

    .desktop-frame {
        grid-template-columns: 1fr;
        width: 100%;
        height: auto;
        min-height: 100vh;
    }

    .side-menu {
        display: none;
    }

    .desktop-main {
        min-height: 100vh;
        grid-template-rows: auto minmax(0, 1fr) auto;
    }

    .top-bar {
        align-items: flex-start;
        flex-direction: column;
        gap: 6px;
        padding: 10px 14px;
    }

    .top-title {
        font-size: 1.12rem;
    }

    .top-company {
        white-space: normal;
    }

    .work-area {
        overflow: visible;
        padding: 10px;
    }

    .work-area:has(.master-split) {
        display: block;
    }

    .work-area:has(.master-split) .master-split {
        flex: initial;
        height: auto;
    }

    .module-head {
        align-items: stretch;
        flex-direction: column;
        gap: 10px;
        padding: 10px 12px;
    }

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

    .master-split {
        height: auto;
        grid-template-rows: auto auto;
        overflow: visible;
    }

    .entry-panel,
    .grid-panel {
        overflow: visible;
    }

    .form-grid {
        grid-template-columns: 1fr;
        gap: 5px;
    }

    .span-3 {
        grid-column: auto;
    }

    .entry-actions {
        position: static;
        margin: 12px -12px -12px;
    }

    .entry-actions button,
    .module-actions > *,
    .search-row button {
        width: 100%;
    }

    .search-row {
        grid-template-columns: 1fr;
    }

    .data-grid-wrap {
        max-width: 100%;
        overflow-x: auto;
    }

    .accounts-metrics,
    .sales-metrics,
    .purchase-metrics,
    .inventory-metrics,
    .gst-return-metrics,
    .reports-metrics,
    .sales-action-grid,
    .purchase-action-grid,
    .inventory-action-grid,
    .masters-action-grid,
    .gst-return-action-grid,
    .accounts-action-grid,
    .reports-action-grid,
    .receipt-payment-totals,
    .trial-balance-totals,
    .profit-loss-totals,
    .balance-sheet-totals,
    .ledger-book-totals,
    .day-book-totals,
    .cash-bank-book-totals,
    .journal-voucher-totals,
    .receipt-voucher-totals,
    .payment-voucher-totals,
    .supplier-payment-totals,
    .sales-entry-totals,
    .sales-return-entry-totals,
    .delivery-challan-totals,
    .quotation-totals,
    .purchase-entry-totals,
    .purchase-return-source,
    .purchase-return-entry-totals,
    .grn-entry-totals,
    .purchase-order-totals,
    .opening-stock-totals,
    .stock-transfer-totals,
    .stock-adjustment-totals,
    .physical-stock-totals,
    .sales-register-totals,
    .sales-report-totals,
    .sales-return-totals,
    .sales-profit-totals,
    .customer-outstanding-totals,
    .supplier-outstanding-totals,
    .purchase-register-totals,
    .purchase-report-totals,
    .purchase-return-totals,
    .gstr1-totals,
    .gstr3b-totals,
    .stock-summary-totals,
    .stock-ledger-totals,
    .reorder-report-totals,
    .batch-expiry-totals,
    .stock-valuation-totals,
    .receipt-payment-layout {
        grid-template-columns: 1fr;
    }

    .toolbar-actions {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
    }

    .sales-item-picker {
        grid-template-columns: 1fr;
        margin: 12px -12px 0;
    }

    .sales-return-picker {
        grid-template-columns: 1fr;
    }

    .delivery-challan-picker {
        grid-template-columns: 1fr;
    }

    .quotation-picker {
        grid-template-columns: 1fr;
    }

    .settings-entry {
        max-width: none;
    }

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

    .report-filter-grid {
        grid-template-columns: 1fr;
    }

    .sales-register-filter-grid {
        grid-template-columns: 1fr;
    }

    .sales-report-filter-grid {
        grid-template-columns: 1fr;
    }

    .sales-return-filter-grid {
        grid-template-columns: 1fr;
    }

    .sales-profit-filter-grid {
        grid-template-columns: 1fr;
    }

    .day-book-filter-grid {
        grid-template-columns: 1fr;
    }

    .customer-outstanding-filter-grid {
        grid-template-columns: 1fr;
    }

    .supplier-outstanding-filter-grid {
        grid-template-columns: 1fr;
    }

    .purchase-register-filter-grid {
        grid-template-columns: 1fr;
    }

    .purchase-report-filter-grid {
        grid-template-columns: 1fr;
    }

    .purchase-return-filter-grid {
        grid-template-columns: 1fr;
    }

    .gstr1-filter-grid {
        grid-template-columns: 1fr;
    }

    .gstr3b-filter-grid {
        grid-template-columns: 1fr;
    }

    .stock-summary-filter-grid {
        grid-template-columns: 1fr;
    }

    .stock-ledger-filter-grid {
        grid-template-columns: 1fr;
    }

    .accounts-action {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .desktop-footer {
        min-height: 24px;
    }

    .desktop-body {
        overflow: auto;
    }
}

@media (max-width: 560px) {
    html {
        font-size: 13px;
    }

    .login-shell {
        padding: 14px;
    }

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

    .module-head h1 {
        font-size: 1.14rem;
    }

    .data-grid {
        min-width: 860px;
    }
}
