html, body {
    font-family: 'Roboto', sans-serif;
    margin: 0;
    padding: 0;
    background-color: var(--mud-palette-background, #F5F7FA);
}

html {
    /* Safari nie powiększa pól formularzy po ustawieniu tekstu na 16 px. */
    -webkit-text-size-adjust: 100%;
}

body {
    min-height: 100vh;
    min-height: 100dvh;
    overscroll-behavior-y: none;
    -webkit-tap-highlight-color: transparent;
}

/* Chrome na Androidzie może zmieniać dostępną wysokość po schowaniu paska. */
#app {
    min-height: 100vh;
    min-height: 100dvh;
}

button, a, input, select, textarea {
    touch-action: manipulation;
}

html.dark-mode, html.dark-mode body {
    background-color: #1a1a27;
}

.cursor-pointer {
    cursor: pointer;
}

.mud-table-row:not(.mobile-record-open):hover {
    background-color: rgba(21, 101, 192, 0.04) !important;
}

/* Firebird maintenance output block */
.fb-output {
    background: #1e1e1e;
    color: #d4d4d4;
    font-family: 'Cascadia Code', 'Consolas', 'Courier New', monospace;
    font-size: 0.78rem;
    line-height: 1.5;
    padding: 10px 14px;
    border-radius: 4px;
    max-height: 320px;
    overflow-y: auto;
    white-space: pre-wrap;
    word-break: break-all;
}

.fb-line-error { color: #f48771; }
.fb-line-ok    { color: #4ec9b0; }
.fb-line-cmd   { color: #808080; }

/* Telefony i małe ekrany */
@media (max-width: 600px) {
    .faktury-appbar {
        padding-top: env(safe-area-inset-top);
        height: calc(var(--mud-appbar-height, 64px) + env(safe-area-inset-top));
    }

    .faktury-app-title {
        font-size: 1rem !important;
        white-space: nowrap;
    }

    .faktury-desktop-only,
    .faktury-search-button .mud-button-label,
    .faktury-appbar .mud-divider {
        display: none !important;
    }

    .faktury-search-button {
        min-width: 44px !important;
        padding: 10px !important;
    }

    .faktury-company-select {
        min-width: 0 !important;
        width: min(34vw, 150px);
        margin-right: 4px !important;
    }

    .faktury-main-content {
        padding-top: env(safe-area-inset-top);
        padding-bottom: env(safe-area-inset-bottom);
    }

    .faktury-page-container {
        margin-top: 8px !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    .mud-dialog {
        max-height: calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    }

    input, textarea, select {
        font-size: 16px !important;
    }

    .mud-table-container {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}

@media (display-mode: standalone) {
    body {
        padding-bottom: env(safe-area-inset-bottom);
    }
}

/* MudBlazor definiuje display przycisku; zachowaj ukrywanie w pelnym ekranie. */
[data-faktury-fullscreen][hidden] { display: none !important; }

/* The root scrolling element must also suppress pull-to-refresh. */
html { overscroll-behavior-y: none; }
.faktury-mobile-company { display: none; }
@media (max-width: 900px) {
    .faktury-appbar { height: calc(56px + env(safe-area-inset-top)); padding-top: env(safe-area-inset-top); }
    .faktury-appbar .mud-toolbar { height: 56px; min-height: 56px; padding: 0 8px; gap: 2px; }
    .faktury-app-title { font-size: 1rem !important; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-left: 2px !important; }
    .faktury-appbar .faktury-company-select,
    .faktury-appbar .faktury-desktop-only,
    .faktury-appbar .mud-divider,
    .faktury-appbar [data-faktury-fullscreen] { display: none !important; }
    .faktury-search-button { display: none !important; }
    .faktury-appbar .mud-icon-button { width: 44px; height: 44px; flex-shrink: 0; }
    .faktury-mobile-company { display: block; margin-bottom: 16px; }
    .faktury-mobile-fullscreen { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-top: 8px; padding: 8px 12px; color: inherit; }
    /* Reserve the entire fixed toolbar, not just the notch safe area. */
    .faktury-main-content { padding-top: calc(56px + env(safe-area-inset-top)) !important; padding-bottom: calc(20px + env(safe-area-inset-bottom)); }
    html { scroll-padding-top: calc(72px + env(safe-area-inset-top)); }
    input, textarea, select { scroll-margin-top: calc(72px + env(safe-area-inset-top)); font-size: 16px !important; }
}
