/* Shared type scale for Bootstrap / Symfony UX components. */
@font-face {
    font-family: Inter;
    src: url("../fonts/Inter-Regular-GbyqcsO.woff2") format('woff2');
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}
@font-face {
    font-family: Inter;
    src: url("../fonts/Inter-Medium-ffoKD_D.woff2") format('woff2');
    font-style: normal;
    font-weight: 500;
    font-display: swap;
}
@font-face {
    font-family: Inter;
    src: url("../fonts/Inter-SemiBold-WxdNjFQ.woff2") format('woff2');
    font-style: normal;
    font-weight: 600;
    font-display: swap;
}
@font-face {
    font-family: Inter;
    src: url("../fonts/Inter-Bold-A1WMeap.woff2") format('woff2');
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}

:root {
    --gm-font-ui: Inter, system-ui, sans-serif;
    --gm-type-caption: .75rem;
    --gm-type-label: .8125rem;
    --gm-type-control: .875rem;
    --gm-type-body: .9375rem;
    --gm-type-section: 1rem;
    --gm-type-dialog: 1.125rem;
    --gm-type-title: clamp(1.5rem, 1.15rem + 1.15vw, 2rem);
    --gm-type-total: 1.5rem;
    --gm-type-muted: #647168;
    --bs-body-font-family: var(--gm-font-ui);
    --bs-body-font-size: var(--gm-type-body);
    --bs-body-line-height: 1.55;
    --bs-secondary-color: var(--gm-type-muted);
}

body {
    font-family: var(--gm-font-ui);
    font-size: var(--gm-type-body);
    font-weight: 400;
    line-height: 1.55;
    letter-spacing: 0;
    font-kerning: normal;
    text-rendering: optimizeLegibility;
}

button, input, select, textarea, .ts-control, .ts-dropdown {
    font-family: var(--gm-font-ui);
}

.app-header h1, .login-content h1 {
    font-size: var(--gm-type-title);
    font-weight: 600 !important;
    line-height: 1.18;
    letter-spacing: -.035em;
}

.app-panel > .card-header, .app-form-section-title {
    font-size: var(--gm-type-section);
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: -.015em;
    text-transform: none;
    color: var(--bs-body-color);
}

.modal-title {
    font-size: var(--gm-type-dialog) !important;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: -.02em;
}

.form-label, .app-offer-item-label {
    font-size: var(--gm-type-label);
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0;
    text-transform: none;
    color: #536159;
}
.form-label { display: block; }

.app-offer-item-label { margin-bottom: 6px; }
.app-field-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: 9px;
}
.app-field-heading .form-label { margin-bottom: 0; }
.app-field-heading .btn {
    border: 0;
    min-height: 0;
    padding: 0;
    font-size: var(--gm-type-label);
    line-height: 1.4;
    white-space: nowrap;
}
.form-control, .form-select, .ts-control {
    font-size: var(--gm-type-body) !important;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: 0;
}
.form-control::placeholder {
    font-size: inherit;
    font-weight: 400;
    color: var(--gm-type-muted);
    opacity: .85;
}
.ts-wrapper.form-select .ts-control { min-height: 42px; }
.ts-wrapper.single .ts-control { flex-wrap: nowrap; }
.ts-wrapper.single .ts-control > .item {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.app-pricing-choice .app-segmented .btn { min-height: 44px; }
.app-phone > .ts-wrapper {
    border-top-left-radius: 8px !important;
    border-bottom-left-radius: 8px !important;
}
.ts-dropdown.app-dial-dropdown {
    min-width: min(18rem, calc(100vw - 64px));
    max-width: calc(100vw - 64px);
}
.input-group > .input-group-text, .ts-dropdown, .dropdown-item {
    font-size: var(--gm-type-control);
    line-height: 1.45;
}

.btn, .btn-sm, .app-header .btn, .app-offer-toolbar .btn, .app-segmented .btn {
    font-size: var(--gm-type-control);
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: 0;
}
.btn-lg { font-size: var(--gm-type-body); }
.pin-toggle, .app-offer-action { font-size: var(--gm-type-label); }
.app-segmented .btn { font-variant-numeric: tabular-nums; }
.sidebar-link { font-size: var(--gm-type-control); line-height: 1.4; }
.account-name { font-size: var(--gm-type-label); line-height: 1.4; }
.account-role { font-size: var(--gm-type-caption); line-height: 1.4; }

.small, small { font-size: var(--gm-type-caption); line-height: 1.5; }
.app-label {
    font-size: var(--gm-type-caption);
    font-weight: 500;
    line-height: 1.45;
    letter-spacing: .055em;
    color: var(--gm-type-muted);
}
.app-table { font-size: var(--gm-type-control); line-height: 1.5; }
.app-table > :not(caption) > * > * { font-size: inherit; }
.app-table thead th {
    font-size: var(--gm-type-caption);
    font-weight: 500;
    line-height: 1.45;
    letter-spacing: .025em;
    text-transform: none;
    color: var(--gm-type-muted);
}
.app-table .small, .app-pager .small, .app-pager .page-link,
.app-toolbar-count, .section-count, .app-line-tile .small,
.app-machine-price.is-empty, .app-offer-item-hint, .app-picker-price,
.app-offer-bar .small, .site-footer, .site-footer .container, .site-footer a {
    font-size: var(--gm-type-caption);
    line-height: 1.5;
    letter-spacing: 0;
}
.app-table .small, .app-toolbar-count, .app-machine-price.is-empty,
.app-offer-item-hint, .site-footer, .site-footer .container {
    color: var(--gm-type-muted) !important;
}

.app-machine-model, .app-offer-item-name, .app-offer-view-model, .app-picker-text {
    font-size: var(--gm-type-control);
    line-height: 1.45;
    letter-spacing: -.01em;
}
.app-machine-model, .app-offer-item-name [data-role='model'], .app-offer-view-model {
    font-weight: 500 !important;
}
.app-machine-model { min-height: 2.9em; }
.app-line-tile-name {
    font-size: var(--gm-type-body);
    font-weight: 500;
    line-height: 1.45;
    letter-spacing: -.01em;
}
.app-offer-empty, .alert { font-size: var(--gm-type-control) !important; line-height: 1.55; }
.app-offer-item .form-control {
    font-size: var(--gm-type-control) !important;
    min-height: 42px;
}
.app-qty .btn { font-size: 1rem; min-height: 42px; }

.app-price, .app-machine-price, .app-offer-item-total,
.app-offer-view-total, .app-offer-totals dd {
    font-size: var(--gm-type-body);
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0;
    font-variant-numeric: lining-nums tabular-nums;
}
.app-offer-item-gross { font-size: var(--gm-type-caption); font-weight: 400; }
.app-offer-totals, .app-offer-facts, .app-offer-contact {
    font-size: var(--gm-type-control);
    line-height: 1.5;
}
.app-offer-totals dt { font-weight: 400; }
.app-offer-totals .app-offer-net { display: block; font-size: inherit; letter-spacing: 0; }
.app-offer-totals .app-offer-net dt { font-size: var(--gm-type-label); font-weight: 500; }
.app-offer-totals .app-offer-net dd {
    font-size: var(--gm-type-total);
    font-weight: 600;
    line-height: 1.25;
    text-align: left;
    margin-top: 8px;
    letter-spacing: 0;
    overflow-wrap: anywhere;
}
.app-offer-bar .app-price { font-size: 1.25rem; letter-spacing: 0; }
.app-offer-facts dd, .app-price input, [inputmode='decimal'],
[data-field='quantity'], .app-code, .pin-cell {
    font-variant-numeric: lining-nums tabular-nums;
}
.app-code { font-family: var(--gm-font-ui); font-size: var(--gm-type-control); font-weight: 600; }
.app-offer-item-total .app-offer-item-label { text-align: left; }
.app-offer-item-total > span:last-child {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    min-height: 42px;
}
.pin-cell { font-size: 1.5rem; line-height: 1; font-weight: 500; }

@media (max-width: 575.98px) {
    .form-control, .form-select, .ts-control, .app-offer-item .form-control {
        font-size: 1rem !important;
        min-height: 44px;
    }
    .app-qty .btn { min-height: 44px; }
    .app-offer-item-total > span:last-child { min-height: 44px; }
    .app-machine-model { font-size: var(--gm-type-label); }
    .app-offer-item-name, .app-offer-view-model { font-size: var(--gm-type-control); }
    .app-header .btn { font-size: var(--gm-type-label); }
}

@media (max-width: 767.98px) {
    .app-offer-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .app-offer-picker { min-width: 0; }
}
@media (max-width: 359.98px) {
    .app-offer-toolbar { grid-template-columns: minmax(0, 1fr); }
    .app-offer-picker { grid-column: 1; }
}

/* Price selection keeps list and sale prices separate, with one total per row. */
.app-offer-item {
    grid-template-columns: 3.25rem minmax(0, 1fr) 2rem;
    grid-template-areas: 'photo name remove' 'fields fields fields' 'total total total';
    gap: 14px 10px;
}
.app-offer-pricing-fields {
    grid-area: fields;
    display: grid;
    grid-template-columns: 104px minmax(0, 1fr) minmax(0, 1fr) 76px;
    gap: 10px;
    align-items: start;
}
.app-offer-pricing-fields > * { grid-area: auto; min-width: 0; margin: 0; }
.app-offer-item-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 10px;
    border-top: 1px solid var(--bs-border-color-translucent);
}
.app-offer-item-total .app-offer-item-label { margin: 0; }
.app-offer-item-hint { white-space: normal; overflow: visible; line-height: 1.45; }
.app-offer-item .form-control[readonly] { background: #f1f4ee; color: #536159; }
.is-custom .app-offer-pricing-fields { grid-template-columns: 104px minmax(0, 1fr) 76px; }
.app-machine-prices { margin: 8px 0 0; font-variant-numeric: tabular-nums; }
.app-machine-prices > div { display: flex; justify-content: space-between; gap: 8px; padding: 3px 0; }
.app-machine-prices dt { color: var(--gm-type-muted); font-size: var(--gm-type-caption); font-weight: 400; }
.app-machine-prices dd { margin: 0; font-size: var(--gm-type-label); font-weight: 500; text-align: right; overflow-wrap: anywhere; }
@media (max-width: 575.98px) {
    .app-offer-item { grid-template-columns: 2.75rem minmax(0, 1fr) 2rem; }
    .app-offer-pricing-fields, .is-custom .app-offer-pricing-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .app-offer-item-qty { order: 1; }
    .app-offer-item-discount { order: 2; }
    .app-offer-item-list { order: 3; }
    .app-offer-item-price { order: 4; }
    .is-custom .app-offer-item-list { grid-column: 1 / -1; }
}
@media (max-width: 359.98px) {
    .app-offer-item-qty { grid-column: 1 / -1; }
    .app-offer-item-discount { order: 5; }
}

.app-money-input{display:flex;gap:8px;min-width:0}.app-money-input>.form-control{flex:1;min-width:0}.app-money-input>.form-select{flex:0 0 104px;width:104px}.app-exchange-note{font-size:12px;color:var(--bs-secondary-color);margin-top:6px;line-height:1.5;overflow-wrap:anywhere}
