/* =========================================================
   ADORNN COMPACT TRANSACTION FORMS
   ERPNext / Frappe v16

   IMPORTANT:
   Do NOT force .layout-main-section to width:100%.
   Saved documents have a right-side Frappe document sidebar.
   Main content must flex/shrink beside that sidebar.
   ========================================================= */


/* =========================================================
   BASE WIDTH / FLEX FIX
   ========================================================= */

.adornn-compact-form .layout-main-section {
    max-width: none !important;
    width: auto !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

.adornn-compact-form .form-page,
.adornn-compact-form .form-layout,
.adornn-compact-form .form-tab-content,
.adornn-compact-form .section-body {
    max-width: none !important;
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

.adornn-compact-form .page-body {
    max-width: 100% !important;
    width: auto !important;
    min-width: 0 !important;
}

.adornn-compact-form .section-body {
    padding: 6px !important;
}

.adornn-compact-form .form-section,
.adornn-compact-form .form-section .section-body,
.adornn-compact-form .form-section .section-body > .row,
.adornn-compact-form .form-column {
    min-width: 0 !important;
    box-sizing: border-box !important;
}


/* =========================================================
   DESKTOP COMPACT FIELD LAYOUT
   Label on left, field on right
   ========================================================= */

@media (min-width: 1100px) {

    .adornn-compact-form
    .frappe-control
    .form-group.horizontal {
        display: grid !important;
        grid-template-columns: 120px minmax(0, 1fr) !important;
        column-gap: 8px !important;
        align-items: center !important;
        margin-bottom: 6px !important;
        min-width: 0 !important;
    }

    .adornn-compact-form
    .frappe-control
    .form-group.horizontal > .clearfix {
        grid-column: 1 !important;
        margin: 0 !important;
        padding: 0 !important;
        min-width: 0 !important;
    }

    .adornn-compact-form
    .frappe-control
    .form-group.horizontal > .clearfix .control-label {
        margin: 0 !important;
        padding: 0 5px 0 0 !important;
        font-size: 12px !important;
        line-height: 1.2 !important;
        white-space: normal !important;
    }

    .adornn-compact-form
    .frappe-control
    .form-group.horizontal > .control-input-wrapper {
        grid-column: 2 !important;
        min-width: 0 !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .adornn-compact-form
    .frappe-control
    .form-group.horizontal .control-input,
    .adornn-compact-form
    .frappe-control
    .form-group.horizontal .input-with-feedback,
    .adornn-compact-form
    .frappe-control
    .form-group.horizontal .form-control {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        margin: 0 !important;
        box-sizing: border-box !important;
    }

    .adornn-compact-form
    .form-column > .frappe-control {
        margin-bottom: 2px !important;
        min-width: 0 !important;
    }

    /* Large controls / tables stay in normal vertical layout */
    .adornn-compact-form
    .frappe-control[data-fieldtype="Text"] .form-group.horizontal,

    .adornn-compact-form
    .frappe-control[data-fieldtype="Small Text"] .form-group.horizontal,

    .adornn-compact-form
    .frappe-control[data-fieldtype="Long Text"] .form-group.horizontal,

    .adornn-compact-form
    .frappe-control[data-fieldtype="Text Editor"] .form-group.horizontal,

    .adornn-compact-form
    .frappe-control[data-fieldtype="Code"] .form-group.horizontal,

    .adornn-compact-form
    .frappe-control[data-fieldtype="HTML"] .form-group.horizontal,

    .adornn-compact-form
    .frappe-control[data-fieldtype="Table"] .form-group.horizontal,

    .adornn-compact-form
    .frappe-control[data-fieldtype="Table MultiSelect"] .form-group.horizontal,

    .adornn-compact-form
    .frappe-control[data-fieldtype="Attach"] .form-group.horizontal,

    .adornn-compact-form
    .frappe-control[data-fieldtype="Attach Image"] .form-group.horizontal,

    .adornn-compact-form
    .frappe-control[data-fieldtype="Image"] .form-group.horizontal {
        display: block !important;
        margin-bottom: 8px !important;
    }
}


/* =========================================================
   ADORNN LOGIN PAGE LOGO
   ========================================================= */

.page-card-head .app-logo,
.for-login .page-card-head img,
.for-email-login .page-card-head img,
.for-forgot .page-card-head img,
.for-signup .page-card-head img {
    width: 258px !important;
    max-width: 258px !important;
    height: auto !important;
    max-height: none !important;
    object-fit: contain !important;
    display: block !important;
}

.page-card-head {
    width: 100% !important;
    max-width: none !important;
}

.page-card-head img.app-logo {
    width: 258px !important;
    min-width: 258px !important;
    max-width: 258px !important;
    height: 90px !important;
    min-height: 90px !important;
    max-height: 90px !important;
    object-fit: contain !important;
    object-position: left center !important;
    flex-shrink: 0 !important;
}


/* =========================================================
   ADORNN WIDE TRANSACTION LAYOUT
   ========================================================= */

@media (min-width: 1100px) {

    .adornn-compact-form .form-layout {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    .adornn-compact-form .section-body {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    .adornn-compact-form .form-section .section-body > .row {
        margin-left: -4px !important;
        margin-right: -4px !important;
        width: auto !important;
        max-width: none !important;
        min-width: 0 !important;
    }

    .adornn-compact-form .form-column {
        padding-left: 4px !important;
        padding-right: 4px !important;
        min-width: 0 !important;
    }

    .adornn-compact-form .frappe-control.input-max-width {
        max-width: none !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    .adornn-compact-form .control-input-wrapper,
    .adornn-compact-form .control-input,
    .adornn-compact-form .form-control,
    .adornn-compact-form .input-with-feedback {
        max-width: none !important;
        width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }

    .adornn-compact-form .form-column.col-sm-4 {
        flex: 0 0 33.333333% !important;
        max-width: 33.333333% !important;
        min-width: 0 !important;
    }

    .adornn-compact-form .form-column.col-sm-6 {
        flex: 0 0 50% !important;
        max-width: 50% !important;
        min-width: 0 !important;
    }

    .adornn-compact-form .form-column.col-sm-12 {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        width: 100% !important;
        min-width: 0 !important;
    }
}


/* =========================================================
   CLEAR BOLD FIELD LABELS
   ========================================================= */

.adornn-compact-form .control-label {
    font-weight: 600 !important;
    color: var(--text-color) !important;
    opacity: 1 !important;
}


/* =========================================================
   SALES INVOICE ITEMS / GRID SAFETY
   ========================================================= */

.adornn-compact-form .grid-field,
.adornn-compact-form .grid-wrapper,
.adornn-compact-form .grid-body,
.adornn-compact-form .form-grid {
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

.adornn-compact-form .grid-field {
    overflow-x: auto !important;
}


/* =========================================================
   ADORNN SALES INVOICE - INVOICE SUMMARY
   ========================================================= */

.adornn-invoice-summary {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    margin: 8px 0 10px 0;
    padding: 8px 10px;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    background: var(--fg-color);
    overflow: hidden;
}

.adornn-summary-title {
    font-weight: 600;
    margin-bottom: 7px;
}

.adornn-summary-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
    min-width: 0;
}

.adornn-summary-grid > div {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 6px;
    min-width: 0;
    min-height: 32px;
    padding: 5px 7px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    box-sizing: border-box;
}

.adornn-summary-grid span {
    font-weight: 600;
    min-width: 0;
}

.adornn-summary-grid strong {
    white-space: nowrap;
    text-align: right;
    flex-shrink: 0;
}

.adornn-doc-amount {
    font-weight: 700;
}

@media (min-width: 1100px) {

    .adornn-invoice-summary {
        margin: 8px 0 12px 0 !important;
        padding: 8px 10px !important;
    }

    .adornn-summary-title {
        font-weight: 600;
        margin-bottom: 6px;
    }

    .adornn-summary-grid {
        display: grid !important;
        grid-template-columns:
            1fr
            0.9fr
            1.25fr
            1fr
            0.9fr
            1.35fr !important;
        gap: 8px !important;
    }

    .adornn-summary-grid > div {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        gap: 5px !important;
        min-width: 0 !important;
        white-space: nowrap;
    }

    .adornn-summary-grid strong {
        font-weight: 600;
    }

    .adornn-doc-amount {
        border: 2px solid var(--primary-color) !important;
        background: var(--control-bg) !important;
        font-weight: 700 !important;
    }

    .adornn-doc-amount span,
    .adornn-doc-amount strong {
        font-weight: 700 !important;
    }
}

@media (max-width: 1099px) {

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


/* =========================================================
   ADORNN SALES INVOICE - DISPATCH / LOGISTICS
   ========================================================= */

.adornn-dispatch-block {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    margin: 10px 0 12px 0;
}

.adornn-dispatch-title {
    font-weight: 700;
    margin-bottom: 8px;
}

.adornn-gst-title {
    margin-top: 12px;
    font-weight: 700;
}

.adornn-dispatch-grid,
.adornn-gst-grid {
    min-width: 0;
    box-sizing: border-box;
}

.adornn-moved-field {
    margin: 0 !important;
    padding: 0 !important;
    min-width: 0 !important;
}

.adornn-moved-field .form-group {
    margin-bottom: 2px !important;
}


/* =========================================================
   DESKTOP TWO-PANEL DISPATCH / E-WAY LAYOUT
   ========================================================= */

@media (min-width: 1100px) {

    .adornn-dispatch-block {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
        grid-template-rows: auto auto !important;
        gap: 8px 12px !important;
        border: 0 !important;
        padding: 0 !important;
        background: transparent !important;
        overflow: hidden !important;
    }

    .adornn-dispatch-block > .adornn-dispatch-title:first-child {
        grid-column: 1;
        grid-row: 1;
        margin: 0 0 6px 0 !important;
    }

    .adornn-dispatch-grid {
        grid-column: 1;
        grid-row: 2;

        display: grid !important;
        grid-template-columns:
            minmax(0, 1fr)
            minmax(0, 1fr) !important;

        gap: 6px 8px !important;

        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;

        padding: 10px !important;
        border: 1px solid var(--border-color);
        border-radius: 6px;
        background: var(--fg-color);

        box-sizing: border-box !important;
        overflow: hidden !important;
    }

    .adornn-gst-title {
        grid-column: 2;
        grid-row: 1;
        margin: 0 0 6px 0 !important;
    }

    .adornn-gst-grid {
        grid-column: 2;
        grid-row: 2;

        display: grid !important;
        grid-template-columns:
            minmax(0, 1fr)
            minmax(0, 1fr) !important;

        gap: 8px !important;
        align-items: center !important;

        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;

        padding: 10px !important;
        border: 1px solid var(--border-color);
        border-radius: 6px;
        background: var(--fg-color);

        box-sizing: border-box !important;
        overflow: hidden !important;
    }

    .adornn-dispatch-grid .frappe-control,
    .adornn-gst-grid .frappe-control {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .adornn-dispatch-grid
    .frappe-control
    .form-group.horizontal {
        grid-template-columns: 105px minmax(0, 1fr) !important;
        column-gap: 6px !important;
    }

    .adornn-gst-grid > .frappe-control,
    .adornn-gst-grid > .adornn-readonly-field {
        display: grid !important;
        grid-template-columns: 90px minmax(0, 1fr) !important;
        align-items: center !important;
        column-gap: 7px !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
    }

    .adornn-gst-grid .control-label,
    .adornn-gst-grid .adornn-readonly-field > label {
        display: block !important;
        margin: 0 !important;
        padding: 0 !important;
        font-weight: 700 !important;
        font-size: 11px !important;
        line-height: 1.2 !important;
        white-space: normal !important;
        text-align: left !important;
        min-width: 0 !important;
    }

    .adornn-gst-grid .control-input-wrapper,
    .adornn-gst-grid .adornn-readonly-control {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
    }

    .adornn-gst-grid .form-control,
    .adornn-gst-grid .control-input,
    .adornn-gst-grid .adornn-readonly-control .form-control {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        box-sizing: border-box !important;
    }
}


/* =========================================================
   E-WAY / E-INVOICE READONLY ROWS
   ========================================================= */

.adornn-gst-readonly-rows {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.adornn-readonly-field {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.adornn-readonly-field label {
    display: block;
    font-weight: 700;
    margin-bottom: 4px;
}

.adornn-readonly-value {
    min-height: 32px;
    padding: 6px 8px;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    background: var(--control-bg);
    word-break: break-word;
    overflow-wrap: anywhere;
    box-sizing: border-box;
    max-width: 100%;
}

.adornn-irn-row {
    grid-column: 1 / -1;
}


/* =========================================================
   SMALLER SCREEN FALLBACK
   ========================================================= */

@media (max-width: 1099px) {

    .adornn-dispatch-block {
        display: block !important;
    }

    .adornn-dispatch-grid,
    .adornn-gst-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px 10px;
        margin-bottom: 12px;
    }

    .adornn-gst-readonly-rows {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}


/* =========================================================
   ADORNN PAGE-LEVEL SAVED DOCUMENT SIDEBAR FIX
   Main form must shrink beside Frappe's right document sidebar.
   ========================================================= */

@media (min-width: 992px) {

    .adornn-compact-page .page-body .page-body-container {
        min-width: 0 !important;
    }

    .adornn-compact-page .layout-main {
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: flex-start !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    .adornn-compact-page .layout-main-section-wrapper {
        flex: 1 1 auto !important;
        width: auto !important;
        max-width: none !important;
        min-width: 0 !important;
        overflow: hidden !important;
    }

    .adornn-compact-page .layout-main-section {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }

    .adornn-compact-page .layout-side-section:not(.hide-sidebar) {
        flex: 0 0 var(--form-sidebar-width) !important;
        width: var(--form-sidebar-width) !important;
        min-width: var(--form-sidebar-width) !important;
        max-width: var(--form-sidebar-width) !important;
        box-sizing: border-box !important;
    }

    .adornn-compact-page .form-page,
    .adornn-compact-page .form-layout,
    .adornn-compact-page .form-tab-content,
    .adornn-compact-page .form-section,
    .adornn-compact-page .section-body {
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }
}

/* =========================================================
   ADORNN SALES INVOICE - SAVED DOCUMENT RESPONSIVE FIX

   Desktop viewport can be wide while the actual Sales Invoice
   main area becomes narrow because Frappe shows the document
   sidebar. Adapt ADORNN custom panels to the real saved form.
   ========================================================= */

@media (min-width: 1100px) {

    /*
     * Saved/submitted form:
     * Invoice Summary changes from 6 cells in one row
     * to 3 columns x 2 rows.
     */
    .adornn-compact-page.adornn-existing-document .adornn-summary-grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }

    /*
     * Stack Dispatch and E-Way panels vertically.
     * Each panel then gets the full main-form width.
     */
    .adornn-compact-page.adornn-existing-document .adornn-dispatch-block {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        overflow: visible !important;
    }

    .adornn-compact-page.adornn-existing-document
    .adornn-dispatch-block > .adornn-dispatch-title:first-child,
    .adornn-compact-page.adornn-existing-document .adornn-gst-title {
        display: block !important;
        width: 100% !important;
        margin: 8px 0 6px 0 !important;
    }

    .adornn-compact-page.adornn-existing-document .adornn-dispatch-grid,
    .adornn-compact-page.adornn-existing-document .adornn-gst-grid {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-bottom: 10px !important;
        box-sizing: border-box !important;
    }

    /*
     * Keep two fields per row inside each full-width panel.
     */
    .adornn-compact-page.adornn-existing-document .adornn-dispatch-grid {
        display: grid !important;
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;
        gap: 7px 8px !important;
    }

    .adornn-compact-page.adornn-existing-document .adornn-gst-grid {
        display: grid !important;
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }

    /*
     * Compact labels slightly because saved form has less space.
     */
    .adornn-compact-page.adornn-existing-document
    .adornn-dispatch-grid
    .frappe-control
    .form-group.horizontal {
        grid-template-columns:
            90px minmax(0, 1fr) !important;
        column-gap: 6px !important;
    }

    .adornn-compact-page.adornn-existing-document
    .adornn-gst-custom-panel {
        grid-template-columns:
            1fr !important;
        gap: 8px !important;
    }

    .adornn-compact-page.adornn-existing-document
    .adornn-gst-cell {
        grid-template-columns:
            120px minmax(0, 1fr) !important;
        min-width: 0 !important;
    }
}


/* =========================================================
   ADORNN TRUE RESPONSIVE FORM WIDTH
   Respond to actual main-form width, not browser viewport.
   ========================================================= */

.adornn-compact-page .layout-main-section-wrapper {
    container-type: inline-size;
    container-name: adornn-main;
}


/* Narrow saved-form area — normally when Frappe sidebar is visible */
@container adornn-main (max-width: 700px) {

    .adornn-invoice-summary {
        width: 100% !important;
        max-width: 100% !important;
        overflow: hidden !important;
    }

    .adornn-summary-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;
        gap: 7px !important;
    }

    .adornn-summary-grid > div {
        min-width: 0 !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }


    /* Stack Dispatch and E-Way panels */
    .adornn-dispatch-block {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        overflow: visible !important;
    }

    .adornn-dispatch-block > .adornn-dispatch-title:first-child,
    .adornn-gst-title {
        display: block !important;
        width: 100% !important;
        margin: 10px 0 6px 0 !important;
    }

    .adornn-dispatch-grid,
    .adornn-gst-grid {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        margin-bottom: 10px !important;
    }


    /* Two compact fields per row */
    .adornn-dispatch-grid {
        display: grid !important;
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }

    .adornn-dispatch-grid
    .frappe-control
    .form-group.horizontal {
        grid-template-columns:
            88px minmax(0, 1fr) !important;
        column-gap: 5px !important;
    }


    /* E-Way / E-Invoice */
    .adornn-gst-grid {
        display: block !important;
    }

    .adornn-gst-custom-panel {
        display: grid !important;
        grid-template-columns:
            1fr !important;
        gap: 8px !important;
        width: 100% !important;
    }

    .adornn-gst-cell {
        grid-template-columns:
            115px minmax(0, 1fr) !important;
        width: 100% !important;
        min-width: 0 !important;
    }


    /* Items table stays inside main form */
    .grid-field,
    .grid-wrapper,
    .form-grid {
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .grid-field {
        overflow-x: auto !important;
    }
}


/* Medium main-form width */
@container adornn-main (min-width: 701px) and (max-width: 900px) {

    .adornn-summary-grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr)) !important;
    }

    .adornn-dispatch-block {
        display: block !important;
    }

    .adornn-dispatch-grid,
    .adornn-gst-grid {
        width: 100% !important;
        max-width: 100% !important;
        margin-bottom: 10px !important;
    }
}


/* =========================================================
   ADORNN SALES INVOICE - COMPACT TOP TOOLBAR
   Hide Previous / Next document arrows only.
   ========================================================= */

.adornn-sales-invoice-page .prev-doc,
.adornn-sales-invoice-page .next-doc {
    display: none !important;
}

/* ADORNN compact forms: prevent sticky tabs from covering top fields after scroll */
.adornn-compact-page .form-tabs-list {
    position: static !important;
}
