﻿:root{--blue-900:#17365d;--blue-700:#1f4e79;--blue-500:#2f75b5;--blue-100:#d9e7f5;--surface:#fff;--background:#f4f7fb;--text:#263238;--muted:#607080;--border:#cfd8e3;--danger:#a61b1b;--success:#26734d;--shadow:0 10px 30px rgba(23,54,93,.09)}
*{box-sizing:border-box}body{margin:0;color:var(--text);background:var(--background);font-family:Tahoma,"Segoe UI",sans-serif;font-size:15px}a{color:inherit;text-decoration:none}.topbar{min-height:76px;padding:12px 28px;color:#fff;background:var(--blue-900);display:flex;align-items:center;gap:28px;box-shadow:var(--shadow)}.brand{display:flex;align-items:center;gap:12px;min-width:265px}.brand-mark{width:44px;height:44px;border-radius:10px;background:#fff;color:var(--blue-900);display:grid;place-items:center;font-weight:800}.brand strong,.brand small{display:block}.brand small{color:#c7d6e8;margin-top:2px}.nav{display:flex;gap:6px;flex:1}.nav a{padding:10px 12px;border-radius:8px}.nav a:hover{background:rgba(255,255,255,.12)}.logout{display:flex;align-items:center;gap:12px}.page-shell{width:min(1220px,calc(100% - 32px));margin:28px auto 48px}.hero,.page-title{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px}h1,h2{color:var(--blue-900);margin-top:0}h1{margin-bottom:8px;font-size:clamp(28px,4vw,42px)}h2{font-size:20px;border-bottom:2px solid var(--blue-100);padding-bottom:10px}p{line-height:1.55}.eyebrow{color:var(--blue-500);font-size:12px;font-weight:800;letter-spacing:.11em}.status-badge,.tag,.status{display:inline-flex;align-items:center;border-radius:999px;font-weight:700;white-space:nowrap}.status-badge{padding:10px 14px;background:var(--blue-100);color:var(--blue-900)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:24px}.metric-card,.panel,.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}.metric-card{padding:22px;transition:transform .15s ease}.metric-card:hover{transform:translateY(-2px)}.metric-card span,.metric-card strong{display:block}.metric-card span{color:var(--muted)}.metric-card strong{color:var(--blue-900);font-size:34px;margin-top:8px}.panel{padding:22px;margin-bottom:22px}.panel-muted{background:#edf3f9}.check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.path{padding:12px;border:1px dashed var(--border);background:#fff;border-radius:8px;overflow-wrap:anywhere;font-family:Consolas,monospace}.two-columns{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(520px,1.6fr);gap:22px;align-items:start}.form-grid{display:grid;gap:8px}label{font-weight:700;color:var(--blue-900);margin-top:8px}input,select,textarea{width:100%;min-height:40px;border:1px solid #9fb2c7;border-radius:8px;background:#fff;color:var(--text);font:inherit;padding:8px 10px}input:focus,select:focus,textarea:focus{outline:3px solid rgba(47,117,181,.18);border-color:var(--blue-500)}.checkbox-line{display:flex;align-items:center;gap:8px;font-weight:400;color:var(--text)}.checkbox-line input{width:18px;min-height:18px}.checkbox-line.compact{margin:0;white-space:nowrap}.button-row,.search-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}.search-row input[type=text],.search-row input:not([type]){flex:1;min-width:220px}.button{border:0;border-radius:8px;min-height:38px;padding:9px 14px;cursor:pointer;font:inherit;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.button-primary{color:var(--button-text,#fff);background:var(--button-primary,var(--blue-700))}.button-secondary{color:var(--blue-900);background:var(--blue-100)}.button-danger{color:#fff;background:var(--danger)}.button-success{color:#fff;background:var(--success)}.button-small{min-height:30px;padding:6px 9px;font-size:13px}.table-wrap{overflow-x:auto;margin-top:18px}table{width:100%;border-collapse:collapse}th,td{padding:11px 10px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}th{color:var(--blue-900);background:var(--blue-100)}tr.inactive{opacity:.68}.actions{white-space:nowrap}.inline-form{display:inline-block}.tag{margin-left:8px;padding:3px 7px;color:var(--blue-900);background:var(--blue-100);font-size:11px}.status{padding:4px 8px;font-size:12px}.status.active{color:var(--success);background:#e5f5ec}.status.disabled{color:var(--danger);background:#fbe8e8}.empty{color:var(--muted);text-align:center;padding:28px}.alert{margin-bottom:18px;padding:13px 16px;border-radius:8px;font-weight:700}.alert-success{color:#164b31;background:#dff3e8;border:1px solid #9dd1b4}.alert-error,.validation{color:var(--danger)}.alert-error{background:#fbe8e8;border:1px solid #e5abab}.auth-shell{min-height:calc(100vh - 170px);display:grid;place-items:center}.auth-card{width:min(520px,100%);padding:30px}footer{padding:24px;color:var(--muted);text-align:center}@media(max-width:900px){.topbar,.hero,.page-title{flex-direction:column}.nav{flex-wrap:wrap}.cards,.check-grid,.two-columns{grid-template-columns:1fr}.logout{width:100%;justify-content:space-between}}


/* V0.2 - Cadastros comerciais */
.nav{flex-wrap:wrap}.dashboard-six{grid-template-columns:repeat(3,minmax(0,1fr))}.data-layout{display:grid;grid-template-columns:minmax(390px,.9fr) minmax(650px,1.6fr);gap:22px;align-items:start}.compact-form{grid-template-columns:minmax(320px,.65fr) minmax(650px,1.7fr)}.form-panel{position:sticky;top:18px}.form-section{border:1px solid var(--border);border-radius:10px;padding:14px;margin:4px 0 10px;background:#fafcff}.form-section h3{color:var(--blue-700);font-size:15px;margin:0 0 10px;padding-bottom:8px;border-bottom:1px solid var(--blue-100)}.field-grid{display:grid;gap:10px 14px}.field-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.field-grid.address{grid-template-columns:120px minmax(240px,1fr) minmax(160px,.7fr) 80px}.field-span-2{grid-column:span 2}.address-main{min-width:0}.field-grid label{display:block;margin-top:0;margin-bottom:5px}.subline{display:block;color:var(--muted);margin-top:4px}.input-prefix,.input-suffix{display:flex;align-items:stretch}.input-prefix span,.input-suffix span{display:grid;place-items:center;min-width:44px;padding:0 10px;background:var(--blue-100);color:var(--blue-900);font-weight:700;border:1px solid #9fb2c7}.input-prefix span{border-radius:8px 0 0 8px;border-right:0}.input-suffix span{border-radius:0 8px 8px 0;border-left:0}.input-prefix input{border-radius:0 8px 8px 0}.input-suffix input{border-radius:8px 0 0 8px}.list-panel table{font-size:14px}.list-panel td strong{display:block}@media(max-width:1150px){.data-layout,.compact-form{grid-template-columns:1fr}.form-panel{position:static}.field-grid.address{grid-template-columns:120px 1fr 1fr 80px}}@media(max-width:720px){.dashboard-six,.field-grid.two,.field-grid.address{grid-template-columns:1fr}.field-span-2{grid-column:auto}.topbar{padding:12px 16px}.page-shell{width:min(100% - 20px,1220px)}.actions{white-space:normal}.actions .button,.actions .inline-form{margin:2px 0}}


/* ================================================================
   V0.2.1 — Correção responsiva dos cadastros
   Evita que formulários e tabelas invadam o painel vizinho.
   ================================================================ */

html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

.page-shell {
    width: min(1440px, calc(100% - 40px));
}

.page-title > div,
.hero > div,
.panel,
.form-grid,
.form-section,
.field-grid,
.field-grid > div,
.two-columns > *,
.data-layout > * {
    min-width: 0;
}

input,
select,
textarea {
    min-width: 0;
    max-width: 100%;
}

/* Cadastros básicos */
.two-columns {
    grid-template-columns: minmax(300px, .72fr) minmax(0, 1.5fr);
}

/* Cadastros comerciais */
.data-layout {
    grid-template-columns: minmax(460px, .92fr) minmax(0, 1.35fr);
    gap: 22px;
}

.data-layout.compact-form {
    grid-template-columns: minmax(360px, .72fr) minmax(0, 1.5fr);
}

.form-panel {
    top: 16px;
}

.form-section {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}

.field-grid.two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* Endereço em doze colunas flexíveis: 4+8 e 9+3. */
.field-grid.address {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    align-items: end;
}

.address-cep {
    grid-column: span 4;
}

.address-main {
    grid-column: span 8;
}

.address-city {
    grid-column: span 9;
}

.address-uf {
    grid-column: span 3;
}

.input-prefix,
.input-suffix {
    min-width: 0;
}

.input-prefix input,
.input-suffix input {
    min-width: 0;
}

/* Pesquisa não força a largura mínima do painel. */
.search-row {
    display: grid;
    grid-template-columns: minmax(170px, 1fr) auto auto;
    align-items: center;
    gap: 10px;
}

.search-row > input {
    min-width: 0 !important;
    width: 100%;
}

/* Tabelas permanecem dentro do painel e ganham rolagem própria. */
.list-panel {
    min-width: 0;
}

.table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-gutter: stable;
    -webkit-overflow-scrolling: touch;
}

.list-panel table {
    min-width: 640px;
}

.list-panel th,
.list-panel td {
    overflow-wrap: anywhere;
}

.actions {
    white-space: nowrap;
}

/* Navegação e painel principal */
.topbar {
    flex-wrap: wrap;
}

.nav {
    min-width: 0;
}

.dashboard-six {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 1120px) {
    .data-layout,
    .data-layout.compact-form,
    .two-columns {
        grid-template-columns: minmax(0, 1fr);
    }

    .form-panel {
        position: static;
    }

    .list-panel table {
        min-width: 780px;
    }
}

@media (max-width: 960px) {
    .dashboard-six,
    .cards,
    .check-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .topbar {
        gap: 14px;
    }

    .brand {
        min-width: 0;
    }

    .nav {
        order: 3;
        width: 100%;
    }

    .logout {
        margin-left: auto;
    }
}

@media (max-width: 680px) {
    .page-shell {
        width: min(100% - 20px, 1440px);
        margin-top: 18px;
    }

    .field-grid.two,
    .field-grid.address,
    .dashboard-six,
    .cards,
    .check-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .field-span-2,
    .address-cep,
    .address-main,
    .address-city,
    .address-uf {
        grid-column: 1 / -1;
    }

    .search-row {
        grid-template-columns: minmax(0, 1fr);
        align-items: stretch;
    }

    .search-row .button {
        width: 100%;
    }

    .checkbox-line.compact {
        white-space: normal;
    }

    .page-title .button,
    .hero .status-badge {
        align-self: stretch;
        text-align: center;
    }

    .button-row .button {
        width: 100%;
    }

    .logout {
        width: 100%;
        margin-left: 0;
    }
}


/* V0.3 — Produtos, fotos e importação controlada */
.page-actions{display:flex;flex-wrap:wrap;gap:10px}.product-layout{display:grid;grid-template-columns:minmax(500px,.95fr) minmax(0,1.35fr);gap:22px;align-items:start}.product-form-panel{position:sticky;top:16px;min-width:0}.product-list-panel{min-width:0}.field-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.field-span-3{grid-column:span 3}.readonly-field{color:#516170;background:#eef2f6;border-color:#c5d0dc}textarea{resize:vertical}.photo-editor{display:grid;grid-template-columns:190px minmax(0,1fr);gap:18px;align-items:start}.photo-preview{width:190px;height:190px;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#eef3f8}.photo-preview img,.product-thumb img{width:100%;height:100%;object-fit:contain;background:#fff}.photo-placeholder{width:100%;height:100%;display:grid;place-content:center;gap:6px;text-align:center;color:var(--muted)}.photo-fields{min-width:0}.product-search{display:grid;grid-template-columns:minmax(190px,1.4fr) minmax(150px,.8fr) minmax(150px,.8fr) auto auto;gap:10px;align-items:center}.product-cards{display:grid;gap:14px;margin-top:18px}.product-card{display:grid;grid-template-columns:132px minmax(0,1fr);gap:16px;padding:15px;border:1px solid var(--border);border-radius:12px;background:#fff}.product-card.inactive{opacity:.68}.product-thumb{width:132px;height:132px;border:1px solid var(--border);border-radius:10px;overflow:hidden;display:grid;place-items:center;color:var(--muted);background:#eef3f8}.product-info{min-width:0}.product-title-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.product-title-row h3{color:var(--blue-900);margin:3px 0 0;font-size:19px}.product-title-row small{color:var(--muted)}.product-classification{color:var(--blue-700);font-weight:700;margin:8px 0}.product-description{margin:8px 0;color:var(--muted);overflow-wrap:anywhere}.product-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px 14px;font-size:13px}.product-meta span{min-width:0;overflow-wrap:anywhere}.product-actions{margin-bottom:0}.dashboard-products{grid-template-columns:repeat(4,minmax(0,1fr))}.import-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end}.import-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.steps{line-height:1.8}.import-table{min-width:1080px}.import-ok{background:#fbfffc}.import-error{background:#fffafa}@media(max-width:1200px){.product-layout{grid-template-columns:minmax(0,1fr)}.product-form-panel{position:static}.dashboard-products{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.field-grid.three,.product-meta,.dashboard-products{grid-template-columns:repeat(2,minmax(0,1fr))}.field-span-3{grid-column:span 2}.product-search{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.product-search>input:first-child,.product-search .button{grid-column:1/-1}}@media(max-width:650px){.field-grid.three,.product-meta,.dashboard-products,.import-summary{grid-template-columns:minmax(0,1fr)}.field-span-3{grid-column:auto}.photo-editor,.product-card,.import-form{grid-template-columns:minmax(0,1fr)}.photo-preview,.product-thumb{width:min(100%,220px);height:190px;justify-self:center}.product-search{grid-template-columns:minmax(0,1fr)}.product-search>*{grid-column:1/-1}.product-title-row{flex-direction:column}.page-actions{width:100%}.page-actions .button{width:100%}}

.select-search{margin-bottom:6px}.label-action{display:flex;justify-content:space-between;align-items:center;gap:8px}.link-button{border:0;background:transparent;color:var(--blue-700);font-weight:700;cursor:pointer}.quick-dialog{width:min(480px,calc(100% - 28px));border:0;border-radius:14px;padding:24px}.quick-dialog::backdrop{background:rgba(15,30,50,.45)}.auth-link{text-align:center}.auth-link a{text-decoration:underline;font-weight:700}.narrow-panel{max-width:620px;margin-inline:auto}[hidden]{display:none!important}


/* ================================================================
   V0.5 — Área do cliente, vitrine e intenção de compra
   ================================================================ */

.store-hero {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 28px;
    margin-bottom: 24px;
    padding: 28px;
    border-radius: 18px;
    color: #ffffff;
    background:
        linear-gradient(
            135deg,
            var(--blue-900),
            var(--blue-700));
    box-shadow: var(--shadow);
}

.store-hero h1,
.store-hero .eyebrow {
    color: #ffffff;
}

.store-hero p {
    max-width: 720px;
    color: #e5eef8;
}

.store-hero-actions,
.page-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.store-filter {
    position: sticky;
    top: 8px;
    z-index: 5;
}

.store-grid {
    display: grid;
    grid-template-columns:
        repeat(auto-fill, minmax(270px, 1fr));
    gap: 20px;
}

.compact-store-grid {
    grid-template-columns:
        repeat(auto-fill, minmax(250px, 1fr));
}

.store-product-card {
    overflow: hidden;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 16px;
    box-shadow: var(--shadow);
    transition:
        transform .18s ease,
        box-shadow .18s ease;
}

.store-product-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 34px rgba(23, 54, 93, .14);
}

.store-photo {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #edf3f9;
}

.store-photo img,
.interest-history-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.store-photo .photo-placeholder,
.interest-history-photo .photo-placeholder {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    color: var(--muted);
    background: #edf3f9;
}

.new-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    padding: 7px 10px;
    border-radius: 999px;
    color: #ffffff;
    background: var(--success);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.store-product-body {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 18px;
}

.store-product-body h2 {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 21px;
}

.store-category {
    color: var(--blue-500);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.store-meta,
.store-description {
    margin: 0;
    color: var(--muted);
}

.store-description {
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}

.store-values {
    display: grid;
    gap: 9px;
    padding: 13px;
    border-radius: 10px;
    background: #f5f8fc;
}

.store-price {
    color: var(--blue-900);
    font-size: 25px;
}

.store-stock {
    color: var(--muted);
}

.hidden-price-box {
    display: grid;
    gap: 4px;
}

.hidden-price {
    width: fit-content;
    color: var(--blue-900);
    font-size: 24px;
    filter: blur(6px);
    user-select: none;
}

.hidden-price-box a {
    color: var(--blue-700);
    font-size: 13px;
    font-weight: 800;
    text-decoration: underline;
}

.store-actions {
    display: flex;
    justify-content: flex-end;
}

.heart-button {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 8px 13px;
    border: 1px solid #d6b8c2;
    border-radius: 999px;
    color: #8f294b;
    background: #ffffff;
    cursor: pointer;
    font: inherit;
    font-weight: 800;
}

.heart-button span {
    font-size: 21px;
    line-height: 1;
}

.heart-button:hover,
.heart-button.liked {
    color: #ffffff;
    background: #b3265b;
    border-color: #b3265b;
}

.interest-box {
    border: 1px solid var(--blue-100);
    border-radius: 10px;
    background: #fbfdff;
}

.interest-box summary {
    padding: 12px 14px;
    color: var(--blue-900);
    cursor: pointer;
    font-weight: 800;
}

.interest-box[open] summary {
    border-bottom: 1px solid var(--blue-100);
}

.compact-form {
    padding: 14px;
}

.interest-warning,
.portal-note {
    margin: 12px 14px 0;
    padding: 10px;
    border-radius: 8px;
    color: #6b5100;
    background: #fff5cc;
    font-size: 13px;
}

.store-login-action {
    width: 100%;
    text-align: center;
}

.portal-disclaimer {
    margin-top: 24px;
    padding: 16px 18px;
    border-left: 5px solid var(--blue-500);
    border-radius: 8px;
    color: var(--blue-900);
    background: var(--blue-100);
}

.customer-auth-shell {
    min-height: calc(100vh - 230px);
    display: grid;
    place-items: center;
    padding: 20px 0;
}

.customer-auth-card {
    width: min(660px, 100%);
    padding: 28px;
    border: 1px solid var(--border);
    border-radius: 18px;
    background: var(--surface);
    box-shadow: var(--shadow);
}

.customer-auth-card h1 {
    font-size: 34px;
}

.interest-list {
    display: grid;
    gap: 16px;
}

.interest-history-card {
    display: grid;
    grid-template-columns: 130px minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    margin-bottom: 0;
}

.interest-history-photo {
    width: 130px;
    aspect-ratio: 1;
    overflow: hidden;
    border-radius: 10px;
}

.status-novo {
    color: #744d00;
    background: #fff0b8;
}

.status-contatado {
    color: var(--blue-900);
    background: var(--blue-100);
}

.status-concluido {
    color: #ffffff;
    background: var(--success);
}

.status-cancelado {
    color: #ffffff;
    background: var(--danger);
}

.four-cards {
    grid-template-columns: repeat(4, 1fr);
}

.panel-header {
    display: flex;
    justify-content: space-between;
    gap: 20px;
}

.admin-interest-filter {
    margin-bottom: 18px;
}

.inline-status-form {
    min-width: 155px;
    display: grid;
    gap: 7px;
}

.inline-status-form select {
    min-width: 145px;
}

.ranking-list {
    display: grid;
    gap: 10px;
    padding-left: 24px;
}

.ranking-list li {
    padding: 10px 0;
    border-bottom: 1px solid var(--border);
}

.ranking-list li span,
.ranking-list li strong {
    display: inline-block;
}

.ranking-list li strong {
    float: right;
    color: #b3265b;
}

.compact-table table {
    min-width: 650px;
}

.empty-inline {
    color: var(--muted);
    text-align: center;
}

.muted {
    color: var(--muted);
}

.select-search {
    width: 100%;
}

.quick-dialog input {
    width: 100%;
}

@media (max-width: 1050px) {
    .topbar {
        flex-wrap: wrap;
    }

    .nav {
        order: 3;
        width: 100%;
        overflow-x: auto;
    }

    .four-cards {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 760px) {
    .store-hero {
        display: grid;
    }

    .store-hero-actions {
        width: 100%;
    }

    .store-hero-actions .button {
        flex: 1;
        text-align: center;
    }

    .store-filter {
        position: static;
    }

    .interest-history-card {
        grid-template-columns: 90px minmax(0, 1fr);
    }

    .interest-history-card > :last-child {
        grid-column: 1 / -1;
    }

    .interest-history-photo {
        width: 90px;
    }

    .four-cards {
        grid-template-columns: 1fr;
    }
}


/* V0.6 — Estoque real, indicadores e identidade visual */
.brand-mark{overflow:hidden;flex:0 0 44px}.brand-logo{width:100%;height:100%;object-fit:contain;background:#fff}.brand-logo-print{display:none}.calculation-preview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--blue-100)}.calculation-preview div{padding:10px;background:var(--surface);border-radius:8px}.calculation-preview span,.calculation-preview strong{display:block}.calculation-preview span{color:var(--muted);font-size:12px}.calculation-preview strong{margin-top:4px;color:var(--blue-900);font-size:17px}.negative-value{color:var(--danger)!important;font-weight:800}.positive-value{color:var(--success);font-weight:800}.stock-alert-card,.stock-alert-row{box-shadow:inset 4px 0 0 var(--danger)}.company-config-layout{display:grid;grid-template-columns:minmax(540px,1.5fr) minmax(320px,.7fr);gap:22px;align-items:start}.company-preview{position:sticky;top:18px;background:var(--background)}.preview-topbar{padding:16px;display:flex;align-items:center;gap:12px;background:var(--blue-900);color:#fff;border-radius:10px 10px 0 0}.preview-logo{width:42px;height:42px;display:grid;place-items:center;background:var(--surface);color:var(--blue-900);border-radius:9px;font-weight:800}.preview-content{padding:18px;background:var(--surface);color:var(--text);border-radius:0 0 10px 10px}.preview-content h3{color:var(--blue-900)}.color-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.color-grid label{display:grid;grid-template-columns:1fr 64px;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:8px}.color-grid input[type=color]{padding:2px;min-height:36px}.company-logo-preview{min-height:140px}.company-logo-preview img{object-fit:contain}.admin-nav{font-size:13px}
@media(max-width:1050px){.company-config-layout{grid-template-columns:1fr}.company-preview{position:static}.calculation-preview{grid-template-columns:1fr}}
@media print{.topbar{background:#fff!important;color:#000!important;box-shadow:none}.brand-logo-screen,.brand-initials{display:none!important}.brand-logo-print{display:block!important}.nav,.logout,.button,footer{display:none!important}.page-shell{width:100%;margin:0}.panel{box-shadow:none}}

/* V0.7 — Importação controlada e Central de alertas */
.import-explanation .metric-card strong{font-size:24px}.import-explanation small{display:block;margin-top:8px;color:var(--muted);line-height:1.45}.confirmation-panel{border:2px solid var(--success)}.import-complete{box-shadow:inset 4px 0 0 var(--success)}.validation-list{color:var(--danger);line-height:1.55}.wide-import-table{min-width:1180px}.info-panel{box-shadow:inset 4px 0 0 var(--blue-500)}.alert-level-empty{box-shadow:inset 4px 0 0 var(--danger)!important}.alert-level-critical{box-shadow:inset 4px 0 0 #e67e22!important}.alert-level-near{box-shadow:inset 4px 0 0 #d4a017!important}.status.alert-level-empty{color:#8d1616;background:#fbe8e8;box-shadow:none!important}.status.alert-level-critical{color:#8c4c00;background:#fff0dc;box-shadow:none!important}.status.alert-level-near{color:#6e5700;background:#fff7c7;box-shadow:none!important}.alert-product-row td:first-child{padding-left:16px}.alert-mini-summary{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0}.alert-mini-summary span{padding:9px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface)}.dashboard-alert-list{display:grid;gap:8px}.dashboard-alert-item{display:flex;justify-content:space-between;gap:18px;padding:12px 14px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.dashboard-alert-item span,.dashboard-alert-item strong,.dashboard-alert-item small{display:block}.dashboard-alert-item small{color:var(--muted);margin-top:3px}.future-finance-line{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:18px;padding:15px;border:1px dashed var(--border);border-radius:10px;background:var(--blue-100)}.future-finance-line span:first-child,.future-finance-line strong,.future-finance-line small{display:block}.future-finance-line small{color:var(--muted);margin-top:3px}.future-alert-placeholder{display:flex;gap:10px;flex-wrap:wrap}.future-alert-placeholder span{padding:8px 11px;border-radius:8px;background:var(--blue-100)}
@media(max-width:760px){.dashboard-alert-item,.future-finance-line{display:grid}.alert-summary-cards{grid-template-columns:1fr}}


/* ================================================================
   V0.8 — Navegação organizada, responsividade móvel e Vendas
   Referências funcionais: navegação off-canvas, hierarquia por grupos,
   espaçamento responsivo e cartões adaptáveis.
   ================================================================ */

:root {
    --topbar-height: 72px;
    --sidebar-width: 264px;
    --touch-target: 44px;
}

button,
a,
input,
select,
textarea,
summary {
    -webkit-tap-highlight-color: transparent;
}

.app-topbar {
    position: sticky;
    top: 0;
    z-index: 80;
    min-height: var(--topbar-height);
    padding: 10px 20px;
    flex-wrap: nowrap;
}

.app-topbar .brand {
    min-width: 240px;
}

.topbar-context {
    min-width: 0;
    flex: 1;
}

.topbar-context-title {
    display: block;
    overflow: hidden;
    color: #dce8f5;
    font-size: 14px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.topbar-user {
    flex: 0 0 auto;
}

.nav-toggle {
    width: var(--touch-target);
    height: var(--touch-target);
    display: none;
    flex: 0 0 var(--touch-target);
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, .25);
    border-radius: 10px;
    color: #fff;
    background: rgba(255, 255, 255, .08);
    cursor: pointer;
    font: inherit;
    font-size: 24px;
}

.admin-shell {
    min-height: calc(100vh - var(--topbar-height));
    display: grid;
    grid-template-columns: var(--sidebar-width) minmax(0, 1fr);
}

.admin-sidebar {
    position: sticky;
    top: var(--topbar-height);
    z-index: 60;
    height: calc(100vh - var(--topbar-height));
    overflow-y: auto;
    padding: 16px 12px 28px;
    color: #e9f1f9;
    background: color-mix(in srgb, var(--blue-900) 94%, #000 6%);
    border-right: 1px solid rgba(255, 255, 255, .08);
}

.side-nav {
    display: grid;
    gap: 6px;
}

.side-nav-link,
.side-nav-group > summary,
.side-nav-submenu a {
    min-height: var(--touch-target);
    display: flex;
    align-items: center;
    gap: 10px;
    border-radius: 10px;
}

.side-nav-link,
.side-nav-group > summary {
    padding: 10px 12px;
    font-weight: 700;
}

.side-nav-link:hover,
.side-nav-link.active,
.side-nav-group > summary:hover,
.side-nav-group[open] > summary {
    color: #fff;
    background: rgba(255, 255, 255, .12);
}

.side-nav-icon {
    width: 24px;
    flex: 0 0 24px;
    text-align: center;
    font-size: 18px;
}

.side-nav-group {
    min-width: 0;
}

.side-nav-group > summary {
    list-style: none;
    cursor: pointer;
}

.side-nav-group > summary::-webkit-details-marker {
    display: none;
}

.side-nav-chevron {
    margin-left: auto;
    transition: transform .15s ease;
}

.side-nav-group[open] .side-nav-chevron {
    transform: rotate(180deg);
}

.side-nav-submenu {
    display: grid;
    gap: 3px;
    margin: 4px 0 8px 34px;
    padding-left: 10px;
    border-left: 1px solid rgba(255, 255, 255, .18);
}

.side-nav-submenu a {
    min-width: 0;
    padding: 8px 10px;
    color: #d9e6f4;
    font-size: 13px;
}

.side-nav-submenu a:hover {
    color: #fff;
    background: rgba(255, 255, 255, .1);
}

.sidebar-backdrop {
    display: none;
}

.admin-main {
    min-width: 0;
}

.admin-main .page-shell {
    width: min(1600px, calc(100% - 40px));
}

.portal-navigation {
    position: sticky;
    top: var(--topbar-height);
    z-index: 70;
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 6px 18px;
    color: var(--blue-900);
    background: var(--surface);
    border-bottom: 1px solid var(--border);
    box-shadow: 0 4px 16px rgba(23, 54, 93, .06);
}

.portal-navigation > a {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    padding: 8px 12px;
    border-radius: 8px;
    font-weight: 700;
}

.portal-navigation > a:hover {
    background: var(--blue-100);
}

.portal-logout {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: 10px;
}

.portal-page-shell {
    width: min(1440px, calc(100% - 32px));
}

/* Atalhos internos de Produtos substituem os links espalhados no cabeçalho. */
.product-module-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 22px;
    padding: 10px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--surface);
    box-shadow: var(--shadow);
}

.product-module-nav a {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    border-radius: 9px;
    color: var(--blue-900);
    background: var(--blue-100);
    font-weight: 700;
}

.product-module-nav a:hover {
    filter: brightness(.97);
}

/* Tela de interesses com largura útil e conteúdo sem corte. */
.interest-page,
.admin-interest-page {
    min-width: 0;
}

.interest-page .interest-list {
    width: 100%;
}

.interest-history-card {
    width: 100%;
    grid-template-columns: 112px minmax(0, 1fr) minmax(120px, auto);
    align-items: start;
}

.interest-history-card h2 {
    overflow-wrap: anywhere;
}

.interest-history-card p {
    margin: 6px 0;
    overflow-wrap: anywhere;
}

.interest-history-card > :last-child {
    justify-self: end;
}

.admin-interest-page .panel {
    min-width: 0;
}

.admin-interest-table {
    min-width: 1180px;
}

.admin-interest-table td {
    max-width: 270px;
    overflow-wrap: anywhere;
}

.admin-interest-table td[data-label="Observação"] {
    min-width: 210px;
}

/* Importação Excel e fotos. */
.import-source-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    align-items: end;
}

.import-source-grid .field-span-all {
    grid-column: 1 / -1;
}

.import-help-box {
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--blue-100);
}

.import-photo-status {
    display: grid;
    gap: 3px;
    min-width: 170px;
}

.import-photo-status small {
    overflow-wrap: anywhere;
}

/* Vendas. */
.sales-layout {
    display: grid;
    grid-template-columns: minmax(420px, .85fr) minmax(0, 1.45fr);
    gap: 22px;
    align-items: start;
}

.sales-form-panel {
    position: sticky;
    top: calc(var(--topbar-height) + 16px);
}

.sale-product-picker {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 110px auto;
    gap: 10px;
    align-items: end;
}

.sale-cart {
    margin-top: 14px;
}

.sale-cart table {
    min-width: 620px;
}

.sale-cart-empty {
    padding: 18px;
    color: var(--muted);
    text-align: center;
}

.sale-total-box {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--blue-100);
}

.sale-total-box span,
.sale-total-box strong {
    display: block;
}

.sale-total-box span {
    color: var(--muted);
    font-size: 12px;
}

.sale-total-box strong {
    margin-top: 4px;
    color: var(--blue-900);
    font-size: 18px;
}

.sale-total-box .sale-grand-total strong {
    font-size: 23px;
}

.sale-history-filter {
    display: grid;
    grid-template-columns: minmax(170px, 1fr) 150px 150px auto;
    gap: 10px;
    align-items: end;
}

.sale-history-table {
    min-width: 940px;
}

.sale-detail-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 16px;
}

.sale-detail-grid > div {
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: 9px;
    background: #fafcff;
}

.sale-detail-grid span,
.sale-detail-grid strong {
    display: block;
}

.sale-detail-grid span {
    color: var(--muted);
    font-size: 12px;
}

.sale-detail-grid strong {
    margin-top: 4px;
}

.status-concluida {
    color: #fff;
    background: var(--success);
}

.status-cancelada {
    color: #fff;
    background: var(--danger);
}

.mobile-only {
    display: none;
}

@media (max-width: 1180px) {
    .sales-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .sales-form-panel {
        position: static;
    }
}

@media (max-width: 980px) {
    .nav-toggle {
        display: inline-flex;
    }

    .app-topbar {
        padding-inline: 12px;
        gap: 10px;
    }

    .app-topbar .brand {
        min-width: 0;
        flex: 1;
    }

    .brand-text {
        min-width: 0;
    }

    .brand-text strong,
    .brand-text small {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .topbar-context,
    .topbar-user .user-name {
        display: none;
    }

    .topbar-user {
        width: auto;
        margin-left: auto;
    }

    .admin-shell {
        display: block;
    }

    .admin-sidebar {
        position: fixed;
        top: var(--topbar-height);
        left: 0;
        width: min(var(--sidebar-width), calc(100vw - 48px));
        height: calc(100dvh - var(--topbar-height));
        transform: translateX(-105%);
        transition: transform .2s ease;
        box-shadow: 14px 0 34px rgba(0, 0, 0, .22);
    }

    body.sidebar-open {
        overflow: hidden;
    }

    body.sidebar-open .admin-sidebar {
        transform: translateX(0);
    }

    .sidebar-backdrop {
        position: fixed;
        inset: var(--topbar-height) 0 0 0;
        z-index: 55;
        display: block;
        visibility: hidden;
        border: 0;
        opacity: 0;
        background: rgba(10, 20, 35, .55);
        transition: opacity .2s ease, visibility .2s ease;
    }

    body.sidebar-open .sidebar-backdrop {
        visibility: visible;
        opacity: 1;
    }

    .admin-main .page-shell {
        width: min(100% - 24px, 1600px);
        margin-top: 20px;
    }

    .portal-navigation {
        position: fixed;
        top: var(--topbar-height);
        left: 0;
        right: 0;
        z-index: 75;
        max-height: calc(100dvh - var(--topbar-height));
        display: none;
        overflow-y: auto;
        align-items: stretch;
        flex-direction: column;
        padding: 12px;
    }

    body.portal-nav-open {
        overflow: hidden;
    }

    body.portal-nav-open .portal-navigation {
        display: flex;
    }

    .portal-navigation > a,
    .portal-logout {
        width: 100%;
    }

    .portal-logout {
        flex-wrap: wrap;
        justify-content: space-between;
        margin: 0;
        padding: 8px 12px;
        border-top: 1px solid var(--border);
    }

    .portal-page-shell {
        width: min(100% - 24px, 1440px);
    }

    .import-source-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .import-source-grid .field-span-all {
        grid-column: auto;
    }

    .sale-history-filter,
    .sale-detail-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    body {
        font-size: 14px;
    }

    .app-topbar .brand-mark {
        width: 40px;
        height: 40px;
        flex-basis: 40px;
    }

    .topbar-user .button:first-of-type {
        display: none;
    }

    .page-shell,
    .admin-main .page-shell,
    .portal-page-shell {
        width: min(100% - 16px, 1600px);
        margin-top: 14px;
    }

    .page-title,
    .hero {
        gap: 12px;
        margin-bottom: 16px;
    }

    .page-title h1,
    .hero h1 {
        font-size: clamp(26px, 9vw, 36px);
    }

    .panel,
    .metric-card,
    .customer-auth-card,
    .auth-card {
        padding: 16px;
        border-radius: 12px;
    }

    input,
    select,
    textarea,
    .button {
        min-height: var(--touch-target);
    }

    .product-module-nav {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding: 8px;
    }

    .product-module-nav a {
        width: 100%;
        text-align: center;
    }

    .interest-history-card {
        grid-template-columns: 82px minmax(0, 1fr);
        gap: 12px;
    }

    .interest-history-photo {
        width: 82px;
    }

    .interest-history-card > :last-child {
        grid-column: 1 / -1;
        justify-self: start;
    }

    .sale-product-picker,
    .sale-total-box,
    .sale-history-filter,
    .sale-detail-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .sale-product-picker .button,
    .sale-history-filter .button {
        width: 100%;
    }

    /* Tabelas administrativas viram cartões, preservando os rótulos. */
    .responsive-data-table {
        min-width: 0 !important;
    }

    .responsive-data-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
    }

    .responsive-data-table,
    .responsive-data-table tbody,
    .responsive-data-table tr,
    .responsive-data-table td {
        display: block;
        width: 100%;
    }

    .responsive-data-table tbody {
        display: grid;
        gap: 12px;
    }

    .responsive-data-table tr {
        overflow: hidden;
        border: 1px solid var(--border);
        border-radius: 12px;
        background: var(--surface);
        box-shadow: 0 6px 18px rgba(23, 54, 93, .06);
    }

    .responsive-data-table td {
        max-width: none !important;
        min-height: 42px;
        display: grid;
        grid-template-columns: minmax(105px, .42fr) minmax(0, 1fr);
        gap: 12px;
        align-items: start;
        padding: 10px 12px;
        border-bottom: 1px solid var(--border);
        white-space: normal;
    }

    .responsive-data-table td:last-child {
        border-bottom: 0;
    }

    .responsive-data-table td::before {
        content: attr(data-label);
        color: var(--blue-900);
        font-weight: 800;
    }

    .responsive-data-table .inline-status-form {
        min-width: 0;
    }

    .responsive-data-table .inline-status-form select,
    .responsive-data-table .inline-status-form .button {
        width: 100%;
        min-width: 0;
    }

    .desktop-only {
        display: none !important;
    }

    .mobile-only {
        display: initial;
    }
}

@media (max-width: 430px) {
    .brand-text small {
        display: none;
    }

    .product-module-nav {
        grid-template-columns: minmax(0, 1fr);
    }

    .store-grid,
    .compact-store-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .interest-history-card {
        grid-template-columns: minmax(0, 1fr);
    }

    .interest-history-photo {
        width: 100%;
        max-height: 220px;
        aspect-ratio: 4 / 3;
    }

    .responsive-data-table td {
        grid-template-columns: minmax(0, 1fr);
        gap: 4px;
    }
}


/* V0.8 — atalhos organizados do painel. */
.dashboard-primary {
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

.dashboard-module-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.dashboard-module-grid article {
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--surface);
}

.dashboard-module-grid h3 {
    margin: 0 0 6px;
    color: var(--blue-900);
}

.dashboard-module-grid p {
    margin: 0 0 14px;
    color: var(--muted);
}

.compact-link-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.compact-link-grid a {
    min-height: 44px;
    display: flex;
    align-items: center;
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: 9px;
    color: var(--blue-900);
    background: var(--blue-100);
    font-weight: 700;
    text-decoration: none;
}

.compact-link-grid a:hover,
.compact-link-grid a:focus-visible {
    border-color: var(--blue-500);
    background: var(--surface);
}

@media (max-width: 820px) {
    .dashboard-module-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 460px) {
    .compact-link-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}


/* V0.9 — Pendências, exclusões e pesquisa visual de Vendas. */
.status-pendente,.alert-level-pending{color:#7a4b00;background:#fff0c7}.registration-pending-card,.alert-level-pending{box-shadow:inset 4px 0 0 #d68b00!important}.product-status-stack{display:grid;gap:6px;justify-items:end}.button-outline-danger{background:#fff;color:var(--danger);border:1px solid var(--danger)}.button-outline-danger:hover{background:#fbe8e8}.dashboard-registration-pendings{margin-top:22px}.dashboard-registration-pendings h3{margin-bottom:10px;color:var(--blue-900)}
.sale-product-search{display:grid;gap:10px}.sale-search-input-wrap{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center;padding:0 12px;border:1px solid var(--border);border-radius:10px;background:#fff}.sale-search-input-wrap input{border:0;box-shadow:none;padding-left:0}.sale-product-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:330px;overflow:auto;padding:3px}.sale-product-option{display:grid;grid-template-columns:66px minmax(0,1fr);gap:10px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:10px;background:#fff;text-align:left;cursor:pointer}.sale-product-option:hover,.sale-product-option:focus{border-color:var(--blue-500);box-shadow:0 0 0 2px color-mix(in srgb,var(--blue-500) 22%,transparent)}.sale-option-photo,.sale-selected-photo,.sale-cart-thumb,.sale-detail-photo{display:grid;place-items:center;overflow:hidden;border:1px solid var(--border);border-radius:8px;background:#f2f5f8;color:var(--muted);font-size:11px}.sale-option-photo{width:66px;height:66px}.sale-option-photo img,.sale-selected-photo img,.sale-cart-thumb img,.sale-detail-photo img{width:100%;height:100%;object-fit:contain;background:#fff}.sale-option-info{display:grid;gap:4px;min-width:0}.sale-option-info strong{color:var(--blue-900)}.sale-option-info small{color:var(--muted)}.sale-selected-product{display:grid;grid-template-columns:88px minmax(0,1fr) 100px auto auto;gap:12px;align-items:end;padding:12px;border:2px solid var(--blue-500);border-radius:12px;background:var(--blue-100)}.sale-selected-photo{width:88px;height:88px;grid-row:span 2}.sale-selected-product strong,.sale-selected-product small{display:block}.sale-selected-product small{margin-top:5px;color:var(--muted)}.sale-cart-product{display:grid;grid-template-columns:54px minmax(0,1fr);gap:9px;align-items:center}.sale-cart-product span:last-child{display:grid}.sale-cart-product small{color:var(--muted)}.sale-cart-thumb{width:54px;height:54px}.sale-detail-photo{width:72px;height:72px}.sale-results-empty::after{content:'Nenhum produto encontrado.';display:block;padding:20px;color:var(--muted);text-align:center;grid-column:1/-1}
@media(max-width:800px){.sale-product-results{grid-template-columns:1fr}.sale-selected-product{grid-template-columns:72px minmax(0,1fr)}.sale-selected-photo{width:72px;height:72px}.sale-selected-product>div:nth-child(3),.sale-selected-product>.button{grid-column:1/-1}.product-status-stack{justify-items:start}}
