/* Mobile Portal follows Portal Comercial Android. Desktop rules stay untouched. */
.mobile-menu-backdrop[hidden], .mobile-password-eye { display:none; }
.mobile-password { display:contents; }
html.mobile-app { background:#f6f8f5; --header-altura:72px; --fonte:Roboto,"Segoe UI",sans-serif; --fonte-condensada:Roboto,"Segoe UI",sans-serif; --rio-ink:#17191b; --rio-muted:#66717d; --rio-action:#a1ff00; }
.mobile-app body { background:#f6f8f5; color:#17191b; font-family:Roboto,"Segoe UI",sans-serif; }
.mobile-app *, .mobile-app *::before, .mobile-app *::after { box-sizing:border-box; }
.mobile-app [hidden] { display:none !important; }
.mobile-app .header { background:#f6f8f5; color:#17191b; box-shadow:none; border:0; backdrop-filter:none; padding-top:env(safe-area-inset-top); }
.mobile-app .header__inner { min-height:72px; height:auto; padding:10px 16px; gap:12px; }
.mobile-app .header__logo { order:1; margin:0; }
.mobile-app .header__logo img { width:112px; height:39px; filter:none; }
.mobile-app .menu-toggle { order:0; display:flex; margin:0; flex-shrink:0; width:44px; height:44px; padding:10px; border:0; background:transparent; box-shadow:none; }
.mobile-app .menu-toggle span { background:#17191b; }
.mobile-app .header-session { order:2; margin-left:auto; gap:4px; }
.mobile-app .header-session #sessionName { display:none; }
.mobile-app .lang-trigger, .mobile-app .header-session__logout { color:#17191b; background:transparent; border:0; box-shadow:none; min-height:44px; }
.mobile-app .lang-trigger::after { border-color:#66717d; }
.mobile-app .portal-shell, .mobile-app .portal-shell.sidebar-collapsed { display:block; padding:18px 20px 32px; max-width:760px; margin:auto; }
.mobile-app .portal-main { min-width:0; width:100%; }
.mobile-app .portal-sidebar, .mobile-app .sidebar-collapsed .portal-sidebar {
 position:fixed; inset:calc(72px + env(safe-area-inset-top)) auto 0 0; width:min(320px,86vw); height:auto; min-height:0; z-index:1002;
 display:block; background:#fff; color:#17191b; border:0; border-radius:0 24px 24px 0; padding:16px; overflow-y:auto;
 box-shadow:8px 0 32px #17251b22; transform:translateX(-110%); visibility:hidden; transition:transform .22s ease,visibility .22s;
}
.mobile-app.mobile-menu-open .portal-sidebar { transform:translateX(0); visibility:visible; }
.mobile-app .portal-sidebar::after, .mobile-app .portal-sidebar__top { display:none; }
.mobile-app .portal-sidebar__block { display:block; padding-top:8px; margin-top:8px; border-color:#e9ece8; }
.mobile-app .portal-sidebar__label, .mobile-app .sidebar-collapsed .portal-sidebar__label { display:block; color:#66717d; padding:8px; }
.mobile-app .portal-menu, .mobile-app .sidebar-collapsed .portal-menu { display:flex; justify-content:flex-start; min-height:50px; padding:12px 14px; border:0; border-radius:14px; color:#17191b; gap:14px; }
.mobile-app .portal-menu span, .mobile-app .sidebar-collapsed .portal-menu span { display:inline; opacity:1; visibility:visible; width:auto; position:static; }
.mobile-app .portal-menu i { color:#4c7c00; }
.mobile-app .portal-menu.is-active, .mobile-app .portal-menu.active, .mobile-app .portal-menu[aria-current="page"] { background:#e3f5cd; color:#3a5f00; box-shadow:0 2px 5px #13281916; font-weight:700; }
.mobile-app .mobile-menu-backdrop { position:fixed; inset:72px 0 0; z-index:1001; display:block; border:0; background:#17251b55; width:100%; height:calc(100dvh - 72px); }
.mobile-app.mobile-menu-open body { overflow:hidden; }
.mobile-app h1,.mobile-app h2,.mobile-app h3 { font-family:inherit; letter-spacing:-.02em; color:#17191b; }
.mobile-app .admin-view__head, .mobile-app .catalog-view .admin-view__head { border:0; background:transparent; box-shadow:none; padding:10px 0 20px; }
.mobile-app .admin-view__head h2 { font-size:28px; line-height:1.2; }
.mobile-app .admin-view__head p { font-size:15px; color:#66717d; line-height:1.55; }
.mobile-app .admin-card,.mobile-app .calc-card,.mobile-app .accordion,.mobile-app .product-info-card { background:#fff; border:0; border-radius:22px; box-shadow:none; padding:18px; margin-bottom:18px; min-width:0; }
.mobile-app .accordion { padding:0; overflow:hidden; }
.mobile-app .accordion__header { min-height:64px; background:#fff; color:#17191b; padding:16px 18px; border:0; }
.mobile-app .accordion__label { font-size:18px; }
.mobile-app .accordion__grid { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; padding:0 12px 14px; }
.mobile-app .card { display:grid; grid-template-columns:36px minmax(0,1fr) auto; align-items:center; gap:10px; min-height:76px; padding:12px; background:#f6f8f5; border:0; border-radius:14px; box-shadow:none; transform:none; }
.mobile-app .card::before,.mobile-app .card::after { display:none; }
.mobile-app .card__icon { width:32px; height:32px; font-size:22px; background:transparent; color:#4c7c00; margin:0; box-shadow:none; }
.mobile-app .card__name { font-size:15px; text-align:left; margin:0; overflow-wrap:anywhere; }
.mobile-app .card__actions { display:flex; flex-wrap:wrap; gap:4px; margin:0; }
.mobile-app .card__action { min-height:44px; min-width:40px; border-radius:10px; font-size:12px; }
.mobile-app .card__action--calc { background:#e3f5cd; color:#3a5f00; }
.mobile-app #calcView .grid,.mobile-app .admin-form,.mobile-app .admin-form--two,.mobile-app .admin-filter,.mobile-app .admin-filter--compact { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; }
.mobile-app #calcView .wrap { padding:0; }
.mobile-app #calcView .resumo { position:static; width:auto; }
.mobile-app .calc-card h2 { font-size:21px; line-height:1.3; margin-bottom:18px; }
.mobile-app .campo,.mobile-app #campos > div { background:#fafcf9; padding:14px 12px; margin-bottom:14px; border-radius:14px; }
.mobile-app label { font-size:14px; font-weight:650; line-height:1.5; }
.mobile-app input:not([type="checkbox"]):not([type="radio"]),.mobile-app select,.mobile-app textarea {
 width:100%; min-width:0; min-height:52px; padding:12px 14px; margin-top:8px; border:1px solid #cdd7e1; border-radius:12px; background:#f3f6f9; color:#17191b; font:inherit; font-size:16px; box-shadow:none;
}
.mobile-app input[type="checkbox"],.mobile-app input[type="radio"] { width:22px; height:22px; flex-shrink:0; accent-color:#4c7c00; }
.mobile-app .admin-btn,.mobile-app #calcView .btn,.mobile-app .login-submit { min-height:52px; border-radius:18px; background:#a1ff00; color:#17191b; border:0; box-shadow:none; font-size:16px; }
.mobile-app .admin-btn.sec,.mobile-app .rate-toggle,.mobile-app .mini-btn { background:#f0f4ed; border-radius:12px; border:0; color:#3a5f00; min-height:44px; padding:10px 14px; }
.mobile-app .rate-row { display:flex; flex-direction:column; align-items:stretch; gap:4px; }
.mobile-app .rate-row input { width:100%; }
.mobile-app .linha { background:#f6f8f5; border:0; border-radius:12px; padding:12px; margin:8px 0; gap:12px; flex-wrap:wrap; }
.mobile-app .horas { font-size:20px; }
.mobile-app .total { border-radius:16px; background:#eaf6de; padding:18px; }
.mobile-app .total .val { font-size:30px; color:#416a00; }
.mobile-app .admin-filter__actions { display:flex; gap:8px; flex-wrap:wrap; }
.mobile-app .admin-filter__actions > * { flex:1; }
.mobile-app #propostas > .admin-card { background:transparent; padding:0; }
.mobile-app #propostas .admin-filter { padding:16px; background:#fff; border-radius:20px; margin-bottom:20px; }
.mobile-app #propostas .admin-table-wrap { overflow:visible; border:0; background:transparent; box-shadow:none; }
.mobile-app #proposalsTable,.mobile-app #proposalsTable tbody { display:block; width:100%; min-width:0; }
.mobile-app #proposalsTable .mobile-table-heading { display:none; }
.mobile-app #proposalsTable tr[data-proposal-row] { display:flex; flex-direction:column; background:#fff; border-radius:22px; padding:18px; margin-bottom:16px; border:0; box-shadow:none; }
.mobile-app #proposalsTable td { display:flex; align-items:baseline; justify-content:space-between; text-align:left; gap:12px; width:auto; padding:6px 0; border:0; white-space:normal; overflow-wrap:anywhere; font-size:14px; }
.mobile-app #proposalsTable td::before { content:attr(data-mobile-label); color:#66717d; font-size:12px; flex-shrink:0; max-width:50%; }
.mobile-app #proposalsTable td:nth-child(2) { font-size:20px; font-weight:650; }
.mobile-app #proposalsTable td:nth-child(4) { font-size:23px; color:#416a00; }
.mobile-app #proposalsTable .row-icon-btn { width:48px; height:48px; border-radius:14px; background:#e3f5cd; color:#3a5f00; }
.mobile-app .admin-detail { min-width:0; width:100%; padding:14px; border-radius:20px; }
.mobile-app .admin-detail input,.mobile-app .admin-detail select { max-width:100%; }
.mobile-app .creation-hero,.mobile-app .creation-modes,.mobile-app .home-ai-guide,.mobile-app .ai-chat-card { border:0; background:#fff; color:#17191b; border-radius:22px; box-shadow:none; padding:20px; }
.mobile-app .creation-hero::before,.mobile-app .creation-hero::after { display:none; }
.mobile-app .creation-hero h1 { font-size:30px; color:#17191b; }
.mobile-app .creation-hero p,.mobile-app .creation-hero .home-greeting { color:#66717d; }
.mobile-app .creation-mode-grid,.mobile-app .ai-workspace,.mobile-app .home-ai-guide__workspace { display:grid; grid-template-columns:minmax(0,1fr); }
.mobile-app .ai-message,.mobile-app .voice-mode__message { border-radius:20px; padding:14px; background:#fff; box-shadow:none; }
.mobile-app .ai-message--user,.mobile-app .voice-mode__message--user { background:#e6f2d5; }
.mobile-app .voice-mode__dialog { width:100%; max-width:100%; max-height:100dvh; border-radius:0; padding:16px; background:#f6f8f5; }
.mobile-app .voice-orb { width:170px; height:170px; }
.mobile-app .voice-mode__controls { flex-wrap:wrap; gap:8px; }
.mobile-app .footer { background:#f6f8f5; color:#66717d; border:0; }
.mobile-app .footer__inner { padding:16px 20px calc(16px + env(safe-area-inset-bottom)); }
.mobile-app .login-brand { display:none; }
.mobile-app .login-page { display:block; min-height:100dvh; }
.mobile-app .login-form-panel { padding:32px 24px; min-height:100dvh; background:#f6f8f5; align-items:flex-start; }
.mobile-app .login-card { width:100%; max-width:440px; margin:auto; }
.mobile-app .login-card__logo-mobile { display:block; height:44px; margin-bottom:40px; }
.mobile-app .login-card h1 { font-size:34px; }
.mobile-app .login-card > p { font-size:16px; color:#66717d; }
.mobile-app .mobile-password { display:flex; position:relative; align-items:center; }
.mobile-app .mobile-password input { padding-right:54px; }
.mobile-app .mobile-password-eye { display:flex; align-items:center; justify-content:center; position:absolute; right:4px; top:10px; width:46px; height:46px; background:transparent; border:0; color:#17191b; border-radius:12px; }
.mobile-app .mobile-password-eye svg { width:24px; fill:none; stroke:currentColor; stroke-width:1.7; }
.mobile-app .mobile-password-eye .eye-slash { display:none; }
.mobile-app .mobile-password-eye[aria-pressed="true"] .eye-slash { display:block; }
@media (prefers-reduced-motion:no-preference) {
 .mobile-app [data-admin-view]:not([hidden]) { animation:mobile-enter .2s ease-out; }
 @keyframes mobile-enter { from { opacity:.4; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }
}
@media (prefers-reduced-motion:reduce) { .mobile-app * { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }

.mobile-app .proposal-modal { padding:12px; align-items:center; }
.mobile-app .proposal-modal__panel { width:100%; max-width:720px; max-height:calc(100dvh - 24px); border-radius:22px; }
.mobile-app .proposal-modal .admin-detail { padding:20px 16px; }
.mobile-app .admin-view__head::after { display:none; }

.mobile-filter-toggle { display:none; }
.mobile-app .mobile-filter-toggle { display:block; width:100%; min-height:48px; border:0; border-radius:14px; background:#e3f5cd; color:#3a5f00; font:inherit; font-weight:600; margin-bottom:16px; }
.mobile-app #propostas .admin-filter__title { display:none; }
.mobile-app #propostas .admin-filter:not(.mobile-filters-open) { display:none; }
.mobile-app .catalog-view .portal-section { padding:0; border:0; background:transparent; box-shadow:none; }
.mobile-app .catalog-view .accordions { padding:0; }
.mobile-app .accordion__title { gap:12px; min-width:0; }
.mobile-app .accordion__title::before { flex-shrink:0; }
.mobile-app .accordion__chevron { flex-shrink:0; }

.mobile-app .portal-menu.is-active i { color:#3a5f00; filter:none; }

.mobile-app .portal-menu span { font-size:16px; line-height:1.4; }
.mobile-app .portal-menu i { font-size:20px; width:24px; flex-shrink:0; }
.mobile-app .portal-menu[title="Início"] { display:none; }
.mobile-app .creation-hero__glow { display:none; }
.mobile-app .home-ai-unavailable { background:#fff7df; border:1px solid #eddb9e; box-shadow:none; color:#493e22; border-radius:18px; }
.mobile-app .home-ai-unavailable strong { color:#493e22; font-size:16px; }
.mobile-app .home-ai-unavailable p { font-size:14px; color:#6a6048; }
.mobile-app .home-ai-unavailable a { font-size:16px; min-height:52px; border-radius:16px; }

/* Calculator controls retain native inputs for business logic and desktop layout. */
.mobile-select-control,.mobile-required,.mobile-requirement-note,.mobile-only-hint,.mobile-number > button { display:none; }
.mobile-number { display:contents; }
.mobile-app .mobile-native-select { display:none !important; }
.mobile-app .mobile-select-control {
 display:flex; align-items:center; justify-content:space-between; gap:14px; width:100%; min-width:0; min-height:56px;
 padding:14px 16px; margin-top:8px; background:#f3f6f9; color:#17191b; border:1px solid #cdd7e1; border-radius:14px;
 font:inherit; font-size:16px; text-align:left; line-height:1.4; cursor:pointer;
}
.mobile-app .mobile-select-control::after { content:""; flex-shrink:0; width:8px; height:8px; border-right:2px solid #4c643c; border-bottom:2px solid #4c643c; transform:rotate(45deg); margin:0 2px 4px; }
.mobile-app .mobile-select-control:disabled { opacity:.55; cursor:default; }
.mobile-app .mobile-select-control:focus-visible,.mobile-app .mobile-number button:focus-visible { outline:3px solid #669d19; outline-offset:2px; }
.mobile-app .mobile-number,.mobile-app .stepper { display:flex; align-items:center; gap:4px; width:100%; min-width:0; padding:4px; border:1px solid #cdd7e1; border-radius:12px; background:#f3f6f9; margin:8px 0 12px; }
.mobile-app .mobile-number > input,.mobile-app .stepper > input { flex:1; width:0; min-width:0; text-align:center; margin:0; border:0; padding:8px 4px; background:transparent; appearance:textfield; -moz-appearance:textfield; }
.mobile-app .mobile-number input::-webkit-inner-spin-button,.mobile-app .stepper input::-webkit-inner-spin-button { -webkit-appearance:none; }
.mobile-app .mobile-number > button,.mobile-app .stepper > button { display:block; flex:0 0 44px; width:44px; height:48px; padding:0; border:0; border-radius:10px; background:#e3f5cd; color:#3a5f00; font-size:24px; cursor:pointer; }
.mobile-app .mobile-required:not([hidden]) { display:inline-block; padding:1px 7px; margin-left:6px; border-radius:6px; color:#7d470b; background:#fff2dd; font-size:11px; font-weight:600; vertical-align:middle; }
.mobile-app .mobile-optional { display:none; }
.mobile-app .mobile-requirement-note:not([hidden]),.mobile-app .mobile-only-hint { display:block; font-size:13px; line-height:1.5; color:#7d470b; }
.mobile-app .rate-row > span { display:block; width:100%; }
.mobile-app .mobile-choice-sheet { box-sizing:border-box; width:100%; max-width:540px; max-height:min(82dvh,720px); padding:22px 20px max(20px,env(safe-area-inset-bottom)); margin:auto auto 0; border:0; border-radius:24px 24px 0 0; background:#fff; color:#17191b; box-shadow:0 -12px 48px #17251522; }
.mobile-app .mobile-choice-sheet[open] { display:flex; flex-direction:column; gap:12px; }
.mobile-app .mobile-choice-sheet::backdrop { background:#13201766; backdrop-filter:blur(3px); }
.mobile-app .mobile-choice-sheet h2 { margin:0; font-size:21px; line-height:1.4; }
.mobile-app .mobile-choice-sheet > input { flex-shrink:0; margin:0; }
.mobile-app .mobile-choice-list { overflow:auto; overscroll-behavior:contain; min-height:0; display:flex; flex-direction:column; gap:8px; }
.mobile-app .mobile-choice-sheet button { flex-shrink:0; min-height:54px; text-align:left; padding:14px 16px; border:0; border-radius:14px; background:#f6f8f5; color:#17191b; font:inherit; font-size:16px; line-height:1.4; }
.mobile-app .mobile-choice-sheet button[aria-pressed="true"] { background:#e3f5cd; color:#3a5f00; box-shadow:inset 3px 0 #669d19; font-weight:650; }
.mobile-app .mobile-choice-sheet button:disabled { opacity:.5; }
.mobile-app .mobile-choice-sheet .mobile-choice-close { text-align:center; background:#edf2e8; }
@media (prefers-reduced-motion:no-preference) {
 .mobile-app .mobile-choice-sheet[open] { animation:mobile-sheet-enter .18s ease-out; }
 @keyframes mobile-sheet-enter { from { opacity:.3; transform:translateY(32px); } to { opacity:1; transform:translateY(0); } }
}

/* Override the calculator's ID-scoped desktop grid, including landscape phones. */
.mobile-app #calcView .rate-row { display:flex; flex-direction:column; align-items:stretch; gap:4px; }
.mobile-app #calcView .rate-row > span { display:block; width:100%; font-size:14px; font-weight:650; color:#17191b; }
.mobile-app #calcView .mobile-number,.mobile-app #calcView .stepper { display:flex; width:100%; box-sizing:border-box; }
.mobile-app #calcView .mobile-number > input,.mobile-app #calcView .stepper > input { flex:1; width:0; min-width:0; min-height:48px; padding:8px 4px; margin:0; border:0; background:transparent; text-align:center; font-size:17px; }
.mobile-app #calcView .mobile-number > button,.mobile-app #calcView .stepper > button { flex:0 0 44px; width:44px; height:48px; min-height:48px; padding:0; }
.mobile-app #calcView .bankplus-grid-row,.mobile-app #calcView .bankplus-grid-row--acquirer { grid-template-columns:minmax(0,1fr); }
.mobile-app #calcView .bankplus-grid-head { display:none; }
