/* DuzziPrev Release Polish 7.4 — camada final, previsível e reversível. */
:root {
    --dp-polish-brand: #176f67;
    --dp-polish-brand-strong: #105a54;
    --dp-polish-focus: #2563eb;
    --dp-polish-text: #17201e;
    --dp-polish-muted: #5d6b67;
    --dp-polish-border: #d9e3df;
    --dp-polish-surface: #ffffff;
    --dp-polish-radius: 14px;
    --dp-polish-shadow: 0 10px 28px rgba(15, 23, 42, .07);
}

html { scroll-behavior: smooth; }
body { text-rendering: optimizeLegibility; }

/* Foco consistente e perceptível em teclado, sem remover o foco nativo. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 3px solid color-mix(in srgb, var(--dp-polish-focus) 72%, white);
    outline-offset: 3px;
}

/* Tamanho mínimo seguro para alvos acionáveis em telas touch. */
:where(button, [role="button"], input[type="submit"], input[type="button"], input[type="reset"]):not(.btn-close) {
    min-height: 38px;
}

:where(input, select, textarea) {
    accent-color: var(--dp-polish-brand);
}

:where(.v2-button, .action-btn, .btn, .primary, .submit-button) {
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, background-color .16s ease;
}

:where(.v2-button, .action-btn, .btn, .primary, .submit-button):hover:not(:disabled) {
    transform: translateY(-1px);
}

:where(.surface-card, .table-card, .v2-panel, .v2-client-section, .card-pro, .panel, .message, .facts) {
    border-color: var(--dp-polish-border);
    box-shadow: var(--dp-polish-shadow);
}

/* Hierarquia de texto: metadados pequenos, conteúdo essencial confortável. */
:where(.v2-nav-item, .v2-button, .action-btn, .btn, .form-label, label) {
    letter-spacing: .005em;
}

:where(.form-control, .form-select, input, select, textarea) {
    border-radius: 10px;
}

:where(.form-control, .form-select, input, select, textarea):focus {
    border-color: color-mix(in srgb, var(--dp-polish-focus) 58%, var(--dp-polish-border));
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--dp-polish-focus) 13%, transparent);
}

/* Estados vazios, de carregamento e de erro devem continuar legíveis em qualquer tema. */
:where(.empty-state, .dp-empty-state, .loading-state, .error-state) {
    border-radius: var(--dp-polish-radius);
}

@media (max-width: 760px) {
    :where(.v2-topbar, .v2-sidebar, .shell, main) { max-width: 100%; }
    :where(.v2-topbar-actions, .page-actions, .action-bar) { gap: 8px; flex-wrap: wrap; }
    :where(.table-responsive, .table-card) { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
    :where(.modal-dialog) { margin: 12px; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

@media (forced-colors: active) {
    :where(a, button, input, select, textarea):focus-visible { outline: 2px solid CanvasText; }
}

/* ========================================================================
   DuzziPrev 18.6.16 — Mobile Foundation
   Final responsive guard. This file is loaded after the legacy visual layers,
   so mobile decisions here cannot be undone by older desktop !important rules.
   ======================================================================== */

@media (max-width: 1050px) {
    /* Login: legacy v15 rules declared after the old media queries were
       restoring a two-column desktop layout. Keep tablet/mobile single-column. */
    body.dp-login-page .auth-layout {
        grid-template-columns: minmax(0, 1fr) !important;
        width: 100% !important;
        min-width: 0 !important;
    }
    body.dp-login-page .brand-panel {
        min-height: 190px !important;
        padding: 26px 28px 48px !important;
    }
    body.dp-login-page .brand-inner {
        min-height: auto !important;
    }
    body.dp-login-page .brand-copy {
        margin: 24px 0 0 !important;
    }
    body.dp-login-page .brand-copy h1 {
        font-size: 34px !important;
    }
    body.dp-login-page .brand-copy > p {
        margin-top: 9px !important;
        font-size: 12px !important;
    }
    body.dp-login-page .brand-kicker,
    body.dp-login-page .product-points,
    body.dp-login-page .brand-footer {
        display: none !important;
    }
    body.dp-login-page .auth-side {
        min-height: calc(100svh - 164px) !important;
        margin-top: -24px !important;
        padding: 40px 20px 30px !important;
        border-radius: 26px 26px 0 0 !important;
    }
    body.dp-login-page .auth-topbar {
        display: none !important;
    }
    body.dp-login-page .auth-wrap {
        width: min(100%, 500px) !important;
        margin: auto !important;
    }
}

@media (max-width: 760px) {
    html, body {
        max-width: 100%;
        overflow-x: clip;
    }

    /* Auth controls remain readable and avoid iOS focus zoom. */
    body.dp-login-page .brand-panel {
        min-height: 122px !important;
        padding: max(18px, env(safe-area-inset-top)) 18px 30px !important;
    }
    body.dp-login-page .brand-logo {
        width: 148px !important;
        max-width: 52vw !important;
    }
    body.dp-login-page .brand-copy {
        display: none !important;
    }
    body.dp-login-page .auth-side {
        min-height: calc(100svh - 104px) !important;
        margin-top: -18px !important;
        padding: 30px 18px max(24px, env(safe-area-inset-bottom)) !important;
        border-radius: 22px 22px 0 0 !important;
    }
    body.dp-login-page .auth-wrap {
        width: 100% !important;
        max-width: 480px !important;
        padding: 8px 0 14px !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }
    body.dp-login-page .auth-wrap h2 {
        font-size: clamp(27px, 8vw, 31px) !important;
        line-height: 1.08 !important;
    }
    body.dp-login-page .auth-subtitle {
        margin: 8px 0 22px !important;
        font-size: 12px !important;
    }
    body.dp-login-page .field {
        margin-bottom: 14px !important;
    }
    body.dp-login-page .field-label {
        font-size: 12px !important;
    }
    body.dp-login-page .input-shell input {
        min-width: 0 !important;
        height: 52px !important;
        font-size: 16px !important;
        border-radius: 11px !important;
    }
    body.dp-login-page .submit-button {
        min-height: 52px !important;
        height: 52px !important;
        font-size: 13px !important;
        border-radius: 11px !important;
    }
    body.dp-login-page .password-toggle {
        min-height: 40px !important;
        padding-inline: 10px !important;
        font-size: 11px !important;
    }
    body.dp-login-page .form-options {
        margin: 3px 0 18px !important;
        align-items: center !important;
        gap: 10px !important;
        font-size: 11px !important;
    }
    body.dp-login-page .remember input {
        width: 18px !important;
        height: 18px !important;
    }
    body.dp-login-page .support-inline {
        font-size: 11px !important;
    }
    body.dp-login-page .trial-link {
        min-height: 58px !important;
        padding: 12px 13px !important;
        border-radius: 11px !important;
    }
    body.dp-login-page .trial-link strong {
        font-size: 11px !important;
    }
    body.dp-login-page .trial-link small {
        font-size: 10px !important;
        line-height: 1.35 !important;
    }
    body.dp-login-page .auth-footer {
        gap: 10px !important;
        font-size: 10px !important;
    }

    /* Trial signup and simple authentication pages. */
    body.dp-signup-page .form-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }
    body.dp-signup-page .field.full {
        grid-column: auto !important;
    }
    body.dp-signup-page :is(input, select, textarea),
    body:not(.duzzi-authenticated) .auth-card :is(input, select, textarea) {
        font-size: 16px !important;
    }

    /* Authenticated shell: a final guard against later desktop layers. */
    body.duzzi-authenticated,
    body.duzzi-authenticated .shell,
    body.duzzi-authenticated .app-main,
    body.duzzi-authenticated .page-wrap {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }
    body.duzzi-authenticated .app-main {
        margin-left: 0 !important;
        padding-bottom: calc(84px + env(safe-area-inset-bottom)) !important;
    }
    body.duzzi-authenticated .page-wrap {
        padding-left: 10px !important;
        padding-right: 10px !important;
        overflow-x: clip;
    }
    body.duzzi-authenticated .toolbar-grid,
    body.duzzi-authenticated .dp16-form-grid.cols-2,
    body.duzzi-authenticated .dp16-form-grid.cols-3,
    body.duzzi-authenticated .dp16-form-grid.cols-4 {
        grid-template-columns: minmax(0, 1fr) !important;
    }
    body.duzzi-authenticated .toolbar-actions,
    body.duzzi-authenticated .page-actions {
        max-width: 100% !important;
        flex-wrap: wrap !important;
    }
    body.duzzi-authenticated :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea, .form-control, .form-select) {
        max-width: 100% !important;
        font-size: 16px !important;
    }
    body.duzzi-authenticated :is(.table-responsive, .rp-table-wrap, .rural-journey-scroll, .dp15-board, .v2-lead-board) {
        max-width: 100% !important;
        overflow-x: auto !important;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
    }
    body.duzzi-authenticated :is(.modal-dialog, .offcanvas, .dropdown-menu) {
        max-width: calc(100vw - 20px) !important;
    }
}

@media (max-width: 420px) {
    body.dp-login-page .auth-side {
        padding-left: 14px !important;
        padding-right: 14px !important;
    }
    body.dp-login-page .form-options {
        display: grid !important;
        grid-template-columns: 1fr !important;
        justify-items: start !important;
    }
    body.dp-login-page .support-inline {
        display: inline-flex !important;
    }
    body.dp-login-page .trial-link {
        align-items: flex-start !important;
    }
    body.dp-login-page .trial-link small {
        max-width: none !important;
    }
    body.dp-login-page .auth-footer {
        flex-direction: column !important;
    }
    body.dp-login-page .auth-footer span {
        display: none !important;
    }
}

@media (max-height: 520px) and (orientation: landscape) {
    body.dp-login-page .brand-panel {
        display: none !important;
    }
    body.dp-login-page .auth-side {
        min-height: 100svh !important;
        margin-top: 0 !important;
        border-radius: 0 !important;
        padding-top: 18px !important;
    }
    body.dp-login-page .auth-wrap {
        max-width: 540px !important;
    }
}
