@import "main-layout.css";
@import "main-view.css";
@import "mocked-invoice.css";
@import "responsive.css";
@import "shared-styles.css";
@import "buy-me-coffee.css";
@import "integrity-dialog.css";
@import "landing.css";
@import "colors.css";
@import "smart-issuer-textfield.css";
@import "covered-fields.css";
@import "invoice-info-summary.css";
@import "tax-field.css";
@import "dialogs.css";
@import "plausi.css";
@import "bank-field.css";
@import "cookiebanner.css";
@import "legal.css";
@import "feedback.css";
@import "icons.css";
@import "tb-tutorial.css";
@import "popover.css";
@import "more-info.css";
@import "en-invoice.css";
@import "footer-fields.css";
@import "xml-header.css";
@import "multi-invoice.css";
@import "disabled.css";
@import "tb-app-shell.css";

::placeholder {
    color: rgba(112, 112, 112, 0.32) !important;
    opacity: 1;
}

/*vaadin-text-field::part(helper-text), vaadin-text-field::part(label), vaadin-number-field::part(helper-text), vaadin-number-field::part(label),*/
/*vaadin-text-area::part(helper-text), vaadin-text-area::part(label) {*/
/*    display: none;*/
/*}*/

.address-field-text-area::part(label),
.tb-invoice-date-field::part(label),
.tb-invoice-number-field::part(label),
.invoice-free-text-field::part(label) {
    display: none;
}

.tb-invoice-date-field,
.tb-customer-nr-field,
.tb-invoice-number-field {
    padding-top: .4rem;
}

body {
    -webkit-text-size-adjust: 100%;
}

.tb-form-illustration {
    width: 20px !important;
    height: 50px !important;
}


vaadin-text-area[readonly]::part(input-field),
vaadin-text-field[readonly]::part(input-field) {
    background-color: var(--lumo-base-color);
}

.tb-info-summary-edit::part(input-field) {
    background-color: var(--lumo-contrast-10pct) !important;
}

/* Layout: Footer immer am Ende */
.main-wrapper {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.view-container {
    flex: 1 1 auto;
}

.footer {
    margin-top: auto;
}


/*-----*/

/* Grid v2 */
.tb-invoice-positions-grid {
    font-size: .8rem !important;
    max-height: 250px;
    overflow-y: auto;
    scrollbar-width: thin !important;
}

@media (max-width: 600px) {
    .tb-invoice-positions-grid {
        max-height: none !important;
        height: auto !important;
        overflow-y: visible !important;
    }
}

.tb-invoice-positions-grid::-webkit-scrollbar {
    width: 6px;
    height: 2px !important;
}

.tb-invoice-positions-grid::-webkit-scrollbar-thumb {
    background-color: rgba(0, 0, 0, .2);
    border-radius: 4px;
}

.tb-invoice-positions-grid::-webkit-scrollbar-track {
    background: transparent;
}

.tb-invoice-positions-grid::part(body-cell) {
    padding: 0 !important;
    margin: 0 !important;
}

/* Name/Beschreibung: zweizeilig */
.tb-grid-name-desc-wrapper {
    display: flex;
    flex-direction: column;
    width: 100%;
}

.tb-grid-name-field::part(input-field) {
    font-weight: 600;
    font-size: .75rem;
}

.tb-grid-description-field-v2::part(input-field) {
    min-height: 2.2rem;
    font-size: .6rem;
}

/* VAT + Steuer */
.tb-grid-vat-combobox-v2 {
    width: 3.2rem;
    font-size: .6rem;
}

.tb-grid-vat-combobox-v2::part(toggle-button) {
    display: none;
}

.tb-grid-tax-amount-field,
.tb-grid-total-field {
    width: 100%;
    font-size: .6rem !important;
}

.tb-grid-tax-amount-field::part(value),
.tb-grid-total-field::part(value) {
    text-align: right;
}

vaadin-grid::part(row) {
    padding: 0 !important;
    align-items: start;
    justify-content: start;
}

.tb-grid-delete-button {
    margin-top: 0;
}

.tb-grid-position-field {
    padding: 0 !important;
}

.tb-grid-name-field {
    padding: 0 !important;
    margin: 0 !important;
}

.tb-grid-position {
    padding: 0 2px !important;
}

.tb-grid-vat-combobox-v2 {
    padding: 0 !important;
}

.tb-grid-tax-amount-field, .tb-grid-total-field {
    padding: 0;
}

.tb-toggle-desc-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    color: var(--lumo-contrast);
    cursor: pointer;
    font-size: .6rem;
    scale: 0.7;
}

.tb-invoice-summary-sum-desc, .tb-invoice-summary-sum {
    padding: 0;
}

vaadin-number-field[readonly].tb-grid-tax-amount-field,
vaadin-number-field[readonly].tb-grid-total-field {
    --vaadin-input-field-readonly-border: 0 solid transparent;
}

vaadin-number-field[readonly].tb-grid-tax-amount-field::part(input-field),
vaadin-number-field[readonly].tb-grid-total-field::part(input-field){
    border-top: 1px dashed var(--lumo-contrast-30pct);
}
vaadin-number-field[readonly].tb-grid-total-field::part(input-field){
    border-left: 1px dashed var(--lumo-contrast-30pct);
}

.tb-invoice-summary-field > [slot="suffix"],
.tb-grid-total-field > [slot="suffix"],
.tb-grid-tax-amount-field > [slot="suffix"] {
    border-left: 1px dashed var(--lumo-contrast-30pct) !important;
    padding-left: 5px;
    margin-left: 5px;
    height: 20px;
    display: flex;
    flex-direction: column;
    align-self: center;
    justify-content: center;
}

.tb-grid-unit-price-field > [slot="suffix"]{
    border-left: 1px solid var(--lumo-contrast-30pct) !important;
    padding-left: 5px;
    margin-left: 5px;
    height: 20px;
    display: flex;
    flex-direction: column;
    align-self: center;
    justify-content: center;
}
.tb-grid-unit-price-field > [slot="suffix"] span,
.tb-grid-total-field > [slot="suffix"] span,
.tb-grid-tax-amount-field > [slot="suffix"] span {
    background-color: red !important;
}

vaadin-text-field::part(helper-text),
vaadin-text-area::part(helper-text) {
    opacity: 0;
    transform: translateY(2px);
    transition: opacity 180ms ease-out, transform 180ms ease-out;
}

vaadin-text-field[ghost-visible]::part(helper-text),
vaadin-text-area[ghost-visible]::part(helper-text) {
    opacity: 1;
    transform: translateY(0);
}

vaadin-text-field[ghost-hiding]::part(helper-text),
vaadin-text-area[ghost-hiding]::part(helper-text) {
    opacity: 0;
    transform: translateY(2px);
}


.tb-main-shell {
    display: flex;
    flex-direction: row;
    justify-content: end;
}

.tb-main-shell-preview {
    width: 25vw;
}

.tb-pdf-preview {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

/* Basiszustand des Frames */
.tb-pdf-preview-frame {
    width: 100%;
    height: 100%;
    border: none;
    opacity: 1;
    filter: none;
    transition: opacity 180ms ease-out, filter 180ms ease-out;
}

/* Während Update: leicht ausfaden + ganz leicht blur */
.tb-pdf-preview.tb-pdf-preview-updating .tb-pdf-preview-frame {
    opacity: 0.25;
    filter: blur(1px);
}

/* Optional: kleiner „Loading“-Overlay */
.tb-pdf-preview::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0;
    transition: opacity 180ms ease-out;
}

.tb-pdf-preview.tb-pdf-preview-updating::after {
    opacity: 1;
    background: radial-gradient(circle at 50% 20%, rgba(255,255,255,0.45), transparent 60%);
}
