:root{
    --bg:#07111f;
    --panel:#101d31;
    --panel-2:#0b1728;
    --line:#22314a;
    --text:#f8fafc;
    --muted:#94a3b8;
    --primary:#f59e0b;
    --danger:#ef4444;
    --success:#22c55e;
    --company-color:#f59e0b;
}
*{box-sizing:border-box}
html{min-height:100%}
body{margin:0;min-height:100vh;font-family:Inter,Arial,sans-serif;background:var(--bg);color:var(--text)}
button,input{font:inherit}
button{cursor:pointer}
a{text-decoration:none}

.auth-body{
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:24px;
    background:
        radial-gradient(circle at 18% 12%,rgba(37,99,235,.18),transparent 30%),
        radial-gradient(circle at 82% 86%,rgba(245,158,11,.13),transparent 28%),
        var(--bg);
}
.auth-shell{
    width:min(1050px,100%);
    display:grid;
    grid-template-columns:1.1fr .9fr;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:28px;
    background:rgba(7,17,31,.92);
    box-shadow:0 28px 80px rgba(0,0,0,.35);
}
.auth-showcase{
    min-height:610px;
    padding:64px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    background:
        linear-gradient(140deg,rgba(37,99,235,.19),rgba(8,19,33,.2)),
        var(--panel-2);
}
.brand{font-size:27px;font-weight:950;letter-spacing:-1px}
.brand.large{font-size:38px}
.brand span{color:var(--primary)}
.auth-showcase h1{max-width:520px;font-size:46px;line-height:1.05;margin:32px 0 18px}
.auth-showcase p{max-width:540px;font-size:18px}
.feature-list{display:grid;gap:13px;margin-top:30px;color:#dbeafe}
.feature-list div{padding:11px 0;border-bottom:1px solid rgba(255,255,255,.07)}
.auth-card{
    width:100%;
    padding:54px 45px;
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:24px;
}
.auth-shell .auth-card{border:0;border-radius:0}
.auth-card.register-card{width:min(780px,100%)}
.mobile-brand{display:none}
.auth-card small,.welcome small,.panel small{color:#7dd3fc;font-weight:900;letter-spacing:.12em;font-size:10px}
.auth-card h2{font-size:32px;margin:10px 0 8px}
.auth-card p,.panel p,.welcome p{color:var(--muted);line-height:1.55}
label{display:block;margin:15px 0 7px;font-size:13px;font-weight:850}
input{
    width:100%;
    height:49px;
    border-radius:12px;
    border:1px solid var(--line);
    background:#081321;
    color:#fff;
    padding:0 13px;
    outline:none;
}
input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.13)}
button{
    min-height:48px;
    border:0;
    border-radius:12px;
    padding:0 18px;
    background:linear-gradient(135deg,var(--primary),#f97316);
    color:#111827;
    font-weight:950;
}
.auth-card form>button{width:100%;margin-top:20px}
.auth-links{display:flex;justify-content:space-between;gap:15px;margin-top:20px}
.auth-links a,.back-link{color:#bfdbfe;font-size:13px}
.auth-links .primary-link{color:#fbbf24;font-weight:900}
.back-link{display:block;text-align:center;margin-top:18px}
.flash{padding:13px;border-radius:12px;margin:15px 0;line-height:1.45}
.flash.error{background:rgba(239,68,68,.13);border:1px solid rgba(239,68,68,.3);color:#fecaca}
.flash.success{background:rgba(34,197,94,.13);border:1px solid rgba(34,197,94,.3);color:#bbf7d0}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.form-grid .full{grid-column:1/-1}
.plan-banner{display:flex;justify-content:space-between;align-items:center;margin:18px 0 4px;padding:15px;border-radius:14px;background:rgba(34,197,94,.09);border:1px solid rgba(34,197,94,.24)}
.plan-banner strong{font-size:24px}.plan-banner span{color:#bbf7d0}

.app-body{background:#07111f}
.topbar{
    min-height:76px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:13px 26px;
    background:rgba(16,29,49,.96);
    border-bottom:1px solid var(--line);
    position:sticky;
    top:0;
    z-index:10;
}
.topbar-brand small,.topbar-user small{display:block;color:var(--muted);margin-top:3px}
.topbar-user{display:flex;align-items:center;gap:18px;text-align:right}
.topbar-user form{margin:0}
.topbar button{width:auto;margin:0}
.secondary{background:#22314a;color:#fff}
.container{width:min(1180px,calc(100% - 30px));margin:28px auto 50px}
.welcome{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:24px;
    border:1px solid var(--line);
    border-radius:20px;
    background:linear-gradient(135deg,rgba(37,99,235,.11),rgba(245,158,11,.05)),var(--panel);
}
.welcome h1{font-size:31px;margin:8px 0 4px}
.progress-ring{
    width:112px;height:112px;border-radius:50%;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    border:9px solid rgba(255,255,255,.08);
    border-top-color:var(--company-color);
    background:#081321;
}
.progress-ring strong{font-size:23px}.progress-ring span{font-size:11px;color:var(--muted)}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:16px}
.cards article,.panel{
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:18px;
    padding:20px;
}
.cards span{display:block;color:var(--muted);font-size:12px;font-weight:800}
.cards strong{display:block;font-size:26px;margin-top:9px}
.cards small{display:block;color:#7dd3fc;margin-top:5px}
.dashboard-grid{display:grid;grid-template-columns:1.4fr .6fr;gap:16px;margin-top:16px}
.panel-title{display:flex;justify-content:space-between;align-items:center;gap:12px}
.panel-title h2,.next-module h2{margin:7px 0}
.badge{padding:7px 10px;border-radius:999px;background:rgba(59,130,246,.13);color:#93c5fd;font-size:11px;font-weight:900}
.steps{display:grid;gap:10px;margin-top:18px}
.step{display:flex;align-items:center;gap:13px;padding:13px;border:1px solid var(--line);border-radius:13px;background:#081321}
.step>span{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#22314a;font-weight:900}
.step.done>span{background:rgba(34,197,94,.18);color:#4ade80}
.step strong,.step small{display:block}.step small{margin-top:3px;color:var(--muted);letter-spacing:0;font-size:11px}
.status-box{margin-top:18px;padding:13px;border-radius:12px;background:rgba(245,158,11,.11);color:#fbbf24;border:1px solid rgba(245,158,11,.25);font-weight:850}

@media(max-width:850px){
    .auth-shell{grid-template-columns:1fr;max-width:560px}
    .auth-showcase{display:none}
    .mobile-brand{display:block;margin-bottom:25px}
    .dashboard-grid{grid-template-columns:1fr}
    .cards{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
    .auth-body{padding:12px}
    .auth-card{padding:28px 20px;border-radius:18px}
    .form-grid{grid-template-columns:1fr}
    .form-grid .full{grid-column:auto}
    .auth-links{flex-direction:column;text-align:center}
    .topbar{padding:12px 15px}
    .topbar-user>div{display:none}
    .container{width:min(100% - 20px,1180px)}
    .welcome{align-items:flex-start}
    .progress-ring{width:85px;height:85px;border-width:7px}
    .cards{grid-template-columns:1fr}
}

/* v0.3.0 */
.topnav{display:flex;align-items:center;gap:8px}.topnav a{padding:10px 13px;border-radius:10px;color:var(--muted);font-size:13px;font-weight:850}.topnav a.active,.topnav a:hover{background:#22314a;color:#fff}.page-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:16px}.page-head h1{margin:7px 0 4px}.page-head p{margin:0;color:var(--muted)}.page-head>button{width:auto;padding:0 20px}.user-summary{margin-top:0}.users-panel{padding:0;overflow:hidden}.filters{display:grid;grid-template-columns:1fr 210px auto auto;gap:10px;padding:16px;border-bottom:1px solid var(--line)}.filters select,.modal select{height:49px;border:1px solid var(--line);border-radius:12px;background:#081321;color:#fff;padding:0 12px}.filters button,.filters .button-link{width:auto;margin:0}.button-link{min-height:48px;display:flex;align-items:center;justify-content:center;padding:0 18px;border-radius:12px;background:#22314a;color:#fff;font-weight:900}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;min-width:860px}.data-table th,.data-table td{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.data-table th{font-size:10px;letter-spacing:.08em;color:#7dd3fc;background:#0b1728}.data-table td{font-size:13px}.data-table td small{display:block;margin-top:4px;color:var(--muted)}.empty{text-align:center!important;color:var(--muted)}.role-badge,.status{display:inline-flex;padding:6px 9px;border-radius:999px;font-size:10px;font-weight:950}.role-badge.admin{background:rgba(168,85,247,.15);color:#d8b4fe}.role-badge.supervisor{background:rgba(59,130,246,.15);color:#93c5fd}.role-badge.seller{background:rgba(245,158,11,.15);color:#fbbf24}.role-badge.promoter{background:rgba(34,197,94,.15);color:#86efac}.status.active{background:rgba(34,197,94,.14);color:#86efac}.status.inactive{background:rgba(239,68,68,.14);color:#fca5a5}.row-actions{display:flex;gap:7px}.row-actions form{margin:0}button.small{min-height:34px;padding:0 10px;font-size:11px}button.danger{background:rgba(239,68,68,.18);color:#fca5a5;border:1px solid rgba(239,68,68,.25)}button.success-btn{background:rgba(34,197,94,.18);color:#86efac;border:1px solid rgba(34,197,94,.25)}.modal-backdrop{position:fixed;inset:0;display:none;place-items:center;padding:16px;background:rgba(2,6,23,.78);z-index:100}.modal-backdrop.open{display:grid}.modal{width:min(650px,100%);padding:22px;border:1px solid var(--line);border-radius:20px;background:var(--panel);box-shadow:0 25px 80px rgba(0,0,0,.45)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start}.modal-head h2{margin:7px 0}.icon-button{width:38px;min-height:38px;padding:0;background:#22314a;color:#fff;font-size:24px}.form-help{font-size:12px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.modal-actions button{width:auto}.cta-link{display:flex;justify-content:center;align-items:center;min-height:46px;margin-top:18px;border-radius:12px;background:linear-gradient(135deg,var(--primary),#f97316);color:#111827;font-weight:950}.step{color:inherit}@media(max-width:850px){.topnav{display:none}.filters{grid-template-columns:1fr 1fr}}@media(max-width:620px){.page-head{align-items:stretch;flex-direction:column}.page-head>button{width:100%}.filters{grid-template-columns:1fr}.modal-actions{flex-direction:column-reverse}.modal-actions button{width:100%}}

/* v0.4.0 - Importador Universal Base */
.import-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;margin-bottom:16px}
.import-upload-card h2,.import-help-card h2,.import-inspector h2,.import-history h2{margin:7px 0}
.import-upload-form select,.sheet-settings select,.mapping-table select{width:100%;height:49px;border:1px solid var(--line);border-radius:12px;background:#081321;color:#fff;padding:0 12px}
.import-upload-form input[type=file]{padding:11px;height:auto;min-height:49px}
.mini-steps{display:grid;gap:10px;margin-top:15px}.mini-steps>div{display:flex;gap:11px;align-items:flex-start;padding:10px;border-radius:12px;background:#081321;border:1px solid var(--line)}
.mini-steps span{width:29px;height:29px;display:grid;place-items:center;border-radius:50%;background:#22314a;color:#7dd3fc;font-weight:950;flex:0 0 auto}.mini-steps p{margin:0}
.import-inspector,.import-history{margin-top:16px}.template-match{margin:14px 0;padding:12px;border-radius:12px;background:rgba(34,197,94,.11);border:1px solid rgba(34,197,94,.25);color:#bbf7d0}
.sheet-settings{display:grid;grid-template-columns:1fr 180px auto;gap:10px;align-items:end;padding:15px;margin:16px 0;border-radius:14px;background:#081321;border:1px solid var(--line)}.sheet-settings button{margin:0;width:auto}
.template-name-row{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:end;margin-bottom:14px}.layout-signature{padding:11px 14px;border:1px solid var(--line);border-radius:12px;background:#081321}.layout-signature small{display:block;margin-bottom:5px}.layout-signature code{color:#fbbf24}
.mapping-table-wrap,.preview-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}.mapping-table,.preview-table{width:100%;border-collapse:collapse;min-width:850px}.mapping-table th,.mapping-table td,.preview-table th,.preview-table td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.mapping-table th,.preview-table th{background:#0b1728;color:#7dd3fc;font-size:10px;letter-spacing:.07em}.mapping-table td,.preview-table td{font-size:12px}.mapping-table select{min-width:220px;height:40px}
.preview-block{margin-top:18px}.preview-block>small{display:block;margin-bottom:8px}.preview-table td{max-width:260px;overflow:hidden;text-overflow:ellipsis}
.import-actions{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:17px}.import-actions span{color:var(--muted);font-size:12px;line-height:1.45}.import-actions button{width:auto;flex:0 0 auto}.table-link{color:#7dd3fc;font-weight:900}
@media(max-width:900px){.import-grid{grid-template-columns:1fr}.sheet-settings{grid-template-columns:1fr 1fr}.sheet-settings button{grid-column:1/-1}.template-name-row{grid-template-columns:1fr}.import-actions{align-items:stretch;flex-direction:column}.import-actions button{width:100%}}
@media(max-width:620px){.sheet-settings{grid-template-columns:1fr}}

/* v0.4.2 - Validação visual do mapeamento */
.mapping-required{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin:15px 0;
    padding:14px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#081321;
}
.mapping-required>div:first-child strong{
    display:block;
    margin-top:4px;
}
.mapping-required-list{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}
.mapping-requirement{
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:8px 10px;
    border-radius:999px;
    font-size:11px;
    font-weight:900;
}
.mapping-requirement b{
    display:grid;
    place-items:center;
    width:19px;
    height:19px;
    border-radius:50%;
}
.mapping-requirement.complete{
    color:#bbf7d0;
    background:rgba(34,197,94,.13);
    border:1px solid rgba(34,197,94,.28);
}
.mapping-requirement.complete b{
    background:rgba(34,197,94,.25);
}
.mapping-requirement.pending{
    color:#fde68a;
    background:rgba(245,158,11,.12);
    border:1px solid rgba(245,158,11,.28);
}
.mapping-requirement.pending b{
    background:rgba(245,158,11,.23);
}
.mapping-required p{
    width:100%;
    margin:0;
    color:var(--muted);
    font-size:12px;
}
#saveMappingButton:disabled{
    opacity:.45;
    cursor:not-allowed;
    filter:grayscale(.45);
}

/* v0.5.0 - Gestão de Lojas e importação real */
.primary-button-link{
    background:linear-gradient(135deg,var(--primary),#f97316);
    color:#111827;
}
.import-execution{margin-top:16px}
.import-result-grid{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:10px;
    margin-top:16px;
}
.import-result-grid article{
    padding:14px;
    border:1px solid var(--line);
    border-radius:13px;
    background:#081321;
}
.import-result-grid span{
    display:block;
    color:var(--muted);
    font-size:11px;
    font-weight:850;
}
.import-result-grid strong{
    display:block;
    margin-top:7px;
    font-size:23px;
}
.plan-warning{
    margin-top:14px;
    padding:14px;
    border-radius:13px;
    background:rgba(245,158,11,.11);
    border:1px solid rgba(245,158,11,.28);
    color:#fde68a;
}
.plan-warning p{margin:6px 0 0;color:#fcd34d}
.validation-errors{margin-top:15px}
.validation-errors>strong{display:block;margin-bottom:9px}
.execute-import-form{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin-top:16px;
    padding:16px;
    border:1px solid rgba(34,197,94,.28);
    border-radius:14px;
    background:rgba(34,197,94,.08);
}
.execute-import-form p{margin:5px 0 0;color:var(--muted)}
.execute-import-form button{width:auto;white-space:nowrap}
.template-match a{color:#86efac}
@media(max-width:1000px){
    .import-result-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:620px){
    .import-result-grid{grid-template-columns:1fr 1fr}
    .execute-import-form{align-items:stretch;flex-direction:column}
    .execute-import-form button{width:100%}
}

/* v0.6.0 Produtos */
.data-table td strong{line-height:1.3}

/* v0.7.0 - Promotores */
.promoter-layout{display:grid;grid-template-columns:330px 1fr;gap:16px;margin-top:16px}
.promoter-list,.promoter-detail{padding:18px}
.promoter-card{display:flex;justify-content:space-between;gap:12px;padding:13px;margin-top:9px;border:1px solid var(--line);border-radius:13px;color:var(--text);background:#081321}
.promoter-card.selected{border-color:var(--primary);box-shadow:0 0 0 2px rgba(245,158,11,.12)}
.promoter-card small,.promoter-card span{display:block;color:var(--muted);margin-top:4px;font-size:11px}
.promoter-tabs{display:flex;gap:8px;margin:16px 0}
.tab{width:auto;min-height:40px;background:#22314a;color:#fff}
.tab.active{background:var(--primary);color:#111827}
.tab-panel{display:none}.tab-panel.active{display:block}
textarea{width:100%;min-height:90px;border-radius:12px;border:1px solid var(--line);background:#081321;color:#fff;padding:12px}
.store-check-list{display:grid;grid-template-columns:1fr 1fr;gap:9px;max-height:430px;overflow:auto}
.store-check-list label{display:flex;align-items:center;gap:10px;margin:0;padding:11px;border:1px solid var(--line);border-radius:12px;background:#081321}
.store-check-list input{width:18px;height:18px}.store-check-list small{display:block;color:var(--muted);margin-top:3px}
.schedule-form{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:9px}
.schedule-form select{height:49px;border:1px solid var(--line);border-radius:12px;background:#081321;color:#fff;padding:0 10px}
.schedule-form button{margin:0}
.schedule-list{display:grid;gap:9px;margin-top:15px}
.schedule-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#081321}
.schedule-item small{display:block;color:var(--muted);margin-top:4px}
.empty-state{padding:50px 20px;text-align:center}
@media(max-width:900px){.promoter-layout{grid-template-columns:1fr}.schedule-form{grid-template-columns:1fr 1fr}.store-check-list{grid-template-columns:1fr}}
@media(max-width:620px){.schedule-form{grid-template-columns:1fr}}

/* v0.7.1 - Refinamento e padronização */
.topbar{gap:18px}
.topbar-brand{flex:0 0 auto;min-width:150px}
.topbar-brand .brand{display:block;color:var(--text);text-decoration:none}
.topnav{flex:1;min-width:0;justify-content:center;overflow-x:auto;scrollbar-width:thin;padding:3px}
.topnav a{white-space:nowrap;flex:0 0 auto}
.topbar-user{flex:0 0 auto}
.logout-form{margin:0}
.compact-button{min-height:38px;padding:0 14px}
.flash{transition:opacity .25s ease,transform .25s ease,max-height .35s ease,margin .35s ease,padding .35s ease}
.flash-hide{opacity:0;transform:translateY(-6px);max-height:0!important;margin-top:0!important;margin-bottom:0!important;padding-top:0!important;padding-bottom:0!important;overflow:hidden}
button.is-loading{opacity:.7;cursor:wait}
.page-head h1{letter-spacing:-.02em}
.panel,.cards article{box-shadow:0 10px 30px rgba(0,0,0,.08)}
.data-table tbody tr:hover{background:rgba(255,255,255,.025)}
.data-table th{position:sticky;top:0;z-index:1}
.form-grid select{width:100%;height:49px;border:1px solid var(--line);border-radius:12px;background:#081321;color:#fff;padding:0 12px}
@media(max-width:980px){
  .topbar{flex-wrap:wrap;align-items:center;padding:12px 15px}
  .topbar-brand{order:1}.topbar-user{order:2;margin-left:auto}.topnav{order:3;flex-basis:100%;justify-content:flex-start;border-top:1px solid var(--line);padding-top:9px}
}
@media(max-width:560px){
  .topbar-user-info{display:none}
  .topbar-brand small{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .container{margin-top:18px}
  .cards{grid-template-columns:1fr 1fr}
  .data-table th,.data-table td{padding:12px}
}
@media(max-width:380px){.cards{grid-template-columns:1fr}}


/* =========================================================
   TradeVision UI 2.0 — Tema Claro Fluent / Windows 11
   ========================================================= */
:root{
    --bg:#f3f3f3;
    --panel:#ffffff;
    --panel-2:#f8f9fb;
    --line:#e5e5e5;
    --text:#1f1f1f;
    --muted:#616161;
    --primary:#0067c0;
    --primary-hover:#005a9e;
    --primary-soft:#e5f1fb;
    --danger:#c42b1c;
    --success:#107c10;
    --warning:#9d5d00;
    --company-color:#0067c0;
    --brand-accent:#ff8a00;
    --shadow:0 4px 14px rgba(0,0,0,.06);
    --shadow-hover:0 8px 24px rgba(0,0,0,.10);
}

html{background:var(--bg)}
body,.app-body{background:var(--bg);color:var(--text)}
body{
    font-family:"Segoe UI Variable","Segoe UI",Inter,Arial,sans-serif;
    -webkit-font-smoothing:antialiased;
}
.brand{color:#17233a}
.brand span{color:var(--brand-accent)}
a{color:var(--primary)}

.topbar{
    background:rgba(255,255,255,.96);
    border-bottom:1px solid var(--line);
    box-shadow:0 1px 4px rgba(0,0,0,.04);
    backdrop-filter:blur(18px);
}
.topbar-brand .brand{color:#17233a}
.topbar-brand small,.topbar-user small{color:var(--muted)}
.topbar-user strong{color:var(--text)}

.topnav a{
    color:#575757;
    border:1px solid transparent;
    transition:background .18s ease,color .18s ease,border-color .18s ease;
}
.topnav a:hover{
    background:#f3f3f3;
    color:#1f1f1f;
    border-color:#ebebeb;
}
.topnav a.active{
    background:var(--primary-soft);
    color:var(--primary);
    border-color:#c7e2f7;
}

.container{color:var(--text)}
.page-head h1,.welcome h1,.panel h2,.auth-card h2{color:var(--text)}
.page-head p,.panel p,.welcome p{color:var(--muted)}
.page-head small,.welcome small,.panel small,.auth-card small{
    color:var(--primary);
}

.panel,.cards article,.welcome,.auth-card{
    background:var(--panel);
    border:1px solid var(--line);
    box-shadow:var(--shadow);
}
.panel:hover,.cards article:hover{
    box-shadow:var(--shadow-hover);
}
.welcome{
    background:
        linear-gradient(135deg,rgba(0,103,192,.07),rgba(255,255,255,.82)),
        var(--panel);
}
.cards span{color:var(--muted)}
.cards strong{color:var(--text)}
.cards small{color:var(--primary)}

.progress-ring{
    background:#fff;
    border-color:#e8e8e8;
    border-top-color:var(--primary);
    color:var(--text);
}
.progress-ring span{color:var(--muted)}

button,.primary-button-link,.cta-link{
    background:var(--primary);
    color:#fff;
    border:1px solid var(--primary);
    box-shadow:0 1px 2px rgba(0,0,0,.08);
    transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
button:hover,.primary-button-link:hover,.cta-link:hover{
    background:var(--primary-hover);
    border-color:var(--primary-hover);
    box-shadow:0 4px 12px rgba(0,103,192,.20);
}
button:active,.primary-button-link:active,.cta-link:active{
    transform:translateY(1px);
}
button.secondary,.button-link,.tab{
    background:#fff;
    color:#323130;
    border:1px solid #d1d1d1;
    box-shadow:none;
}
button.secondary:hover,.button-link:hover,.tab:hover{
    background:#f5f5f5;
    border-color:#bdbdbd;
}
.tab.active{
    background:var(--primary-soft);
    color:var(--primary);
    border-color:#b8d9f2;
}
button.danger{
    background:#fff1f0;
    color:var(--danger);
    border:1px solid #f0b8b3;
}
button.success-btn{
    background:#eff8ef;
    color:var(--success);
    border:1px solid #b9dfb9;
}

input,select,textarea,
.form-grid select,.filters select,.modal select,.schedule-form select{
    background:#fff;
    color:var(--text);
    border:1px solid #cfcfcf;
    box-shadow:inset 0 1px 2px rgba(0,0,0,.025);
}
input::placeholder,textarea::placeholder{color:#8a8a8a}
input:hover,select:hover,textarea:hover{border-color:#adadad}
input:focus,select:focus,textarea:focus{
    border-color:var(--primary);
    box-shadow:0 0 0 3px rgba(0,103,192,.14);
}
label{color:#323130}

.filters{
    background:#fafafa;
    border-bottom-color:var(--line);
}
.users-panel{background:#fff}

.data-table{
    background:#fff;
    color:var(--text);
}
.data-table th{
    background:#f7f7f7;
    color:#4a4a4a;
    border-bottom:1px solid var(--line);
}
.data-table td{
    color:#2b2b2b;
    border-bottom:1px solid #ededed;
}
.data-table td small{color:var(--muted)}
.data-table tbody tr:hover{background:#f3f8fd}
.empty{color:var(--muted)}

.step,.promoter-card,.schedule-item,.store-check-list label,
.import-result-grid article,.mapping-required{
    background:#fff;
    border-color:var(--line);
    color:var(--text);
}
.step:hover,.promoter-card:hover,.schedule-item:hover,.store-check-list label:hover{
    background:#f8fbfe;
}
.step>span{
    background:#f0f0f0;
    color:#4a4a4a;
}
.step.done>span{
    background:#e7f4e7;
    color:var(--success);
}
.step small,.promoter-card small,.promoter-card span,
.schedule-item small,.store-check-list small{
    color:var(--muted);
}
.promoter-card.selected{
    border-color:var(--primary);
    background:var(--primary-soft);
    box-shadow:0 0 0 2px rgba(0,103,192,.10);
}

.role-badge.admin{background:#f3e8ff;color:#6b21a8}
.role-badge.supervisor{background:#e8f1ff;color:#005a9e}
.role-badge.seller{background:#fff4ce;color:#8a5700}
.role-badge.promoter{background:#e7f4e7;color:#107c10}
.status.active{background:#e7f4e7;color:#107c10}
.status.inactive{background:#fde7e9;color:#a4262c}

.flash.success{
    background:#f1faf1;
    border-color:#b7ddb7;
    color:#0b6a0b;
}
.flash.error{
    background:#fff1f0;
    border-color:#efb4af;
    color:#a4262c;
}
.plan-banner,.execute-import-form{
    background:#f1faf1;
    border-color:#b7ddb7;
    color:#0b6a0b;
}
.plan-warning{
    background:#fff8e8;
    border-color:#ead49a;
    color:#7a4b00;
}
.plan-warning p{color:#7a4b00}
.template-match{
    background:#f1faf1;
    border-color:#b7ddb7;
    color:#0b6a0b;
}
.template-match a{color:#0067c0}

.modal-backdrop{background:rgba(0,0,0,.35);backdrop-filter:blur(4px)}
.modal{
    background:#fff;
    color:var(--text);
    border-color:var(--line);
    box-shadow:0 20px 60px rgba(0,0,0,.18);
}
.icon-button{
    background:#fff;
    color:#444;
    border:1px solid #d1d1d1;
}

.auth-body{
    background:
        radial-gradient(circle at 12% 10%,rgba(0,103,192,.10),transparent 32%),
        radial-gradient(circle at 88% 88%,rgba(255,138,0,.08),transparent 30%),
        #f3f3f3;
}
.auth-shell{
    background:#fff;
    border-color:var(--line);
    box-shadow:0 24px 70px rgba(0,0,0,.12);
}
.auth-showcase{
    background:
        linear-gradient(145deg,rgba(0,103,192,.12),rgba(255,255,255,.72)),
        #eef6fc;
    color:var(--text);
}
.auth-showcase p,.feature-list{color:#4f4f4f}
.feature-list div{border-bottom-color:rgba(0,0,0,.07)}
.auth-card{background:#fff}
.auth-links a,.back-link{color:var(--primary)}
.auth-links .primary-link{color:var(--primary)}

.badge{
    background:var(--primary-soft);
    color:var(--primary);
}
.status-box{
    background:#fff8e8;
    color:#7a4b00;
    border-color:#ead49a;
}

.mapping-requirement.complete{
    color:#0b6a0b;
    background:#f1faf1;
    border-color:#b7ddb7;
}
.mapping-requirement.pending{
    color:#7a4b00;
    background:#fff8e8;
    border-color:#ead49a;
}
#saveMappingButton:disabled{
    background:#e0e0e0;
    color:#8a8a8a;
    border-color:#d0d0d0;
}

::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:#f2f2f2}
::-webkit-scrollbar-thumb{
    background:#c7c7c7;
    border:2px solid #f2f2f2;
    border-radius:999px;
}
::-webkit-scrollbar-thumb:hover{background:#a8a8a8}

@media(max-width:980px){
    .topnav{
        background:#fff;
        border-top-color:var(--line);
    }
}


/* =========================================================
   TradeVision UI 2.1 — Design System + Sidebar Fluent
   ========================================================= */
:root{
    --tv-radius-xs:6px;
    --tv-radius-sm:9px;
    --tv-radius-md:12px;
    --tv-radius-lg:16px;
    --tv-radius-xl:22px;
    --tv-space-1:4px;
    --tv-space-2:8px;
    --tv-space-3:12px;
    --tv-space-4:16px;
    --tv-space-5:20px;
    --tv-space-6:24px;
    --tv-space-8:32px;
    --tv-sidebar-width:244px;
    --tv-sidebar-collapsed:76px;
    --tv-topbar-height:68px;
    --tv-focus:0 0 0 3px rgba(0,103,192,.16);
}

.app-body{
    padding-left:var(--tv-sidebar-width);
    transition:padding-left .2s ease;
}
.sidebar-collapsed.app-body{padding-left:var(--tv-sidebar-collapsed)}

.tv-sidebar{
    position:fixed;
    inset:0 auto 0 0;
    z-index:60;
    width:var(--tv-sidebar-width);
    display:flex;
    flex-direction:column;
    background:rgba(255,255,255,.97);
    border-right:1px solid var(--line);
    box-shadow:2px 0 10px rgba(0,0,0,.035);
    backdrop-filter:blur(20px);
    transition:width .2s ease,transform .2s ease;
}
.sidebar-collapsed .tv-sidebar{width:var(--tv-sidebar-collapsed)}

.tv-sidebar-head{
    min-height:var(--tv-topbar-height);
    display:flex;
    align-items:center;
    gap:12px;
    padding:10px 14px;
    border-bottom:1px solid var(--line);
}
.tv-logo-mark{
    flex:0 0 42px;
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:13px;
    background:linear-gradient(135deg,#0067c0,#3a96dd);
    color:#fff;
    font-size:21px;
    font-weight:900;
    box-shadow:0 5px 14px rgba(0,103,192,.23);
}
.tv-brand-text{
    min-width:0;
    overflow:hidden;
    white-space:nowrap;
    transition:opacity .14s ease;
}
.tv-brand-text strong{display:block;font-size:19px;color:#17233a}
.tv-brand-text strong span{color:var(--brand-accent)}
.tv-brand-text small{display:block;color:var(--muted);margin-top:2px}
.sidebar-collapsed .tv-brand-text{opacity:0;pointer-events:none}

.tv-sidebar-nav{
    display:flex;
    flex-direction:column;
    gap:4px;
    padding:14px 10px;
    overflow-y:auto;
}
.tv-sidebar-nav a{
    min-height:44px;
    display:flex;
    align-items:center;
    gap:12px;
    padding:9px 12px;
    border-radius:11px;
    color:#4d4d4d;
    font-size:13px;
    font-weight:700;
    border:1px solid transparent;
    white-space:nowrap;
    transition:background .16s ease,color .16s ease,border-color .16s ease;
}
.tv-sidebar-nav a:hover{
    background:#f4f4f4;
    color:#1f1f1f;
}
.tv-sidebar-nav a.active{
    background:var(--primary-soft);
    color:var(--primary);
    border-color:#cce4f7;
}
.tv-sidebar-nav .tv-icon{
    flex:0 0 26px;
    width:26px;
    height:26px;
    display:grid;
    place-items:center;
    border-radius:8px;
    font-size:17px;
    font-style:normal;
}
.tv-nav-label{
    overflow:hidden;
    transition:opacity .14s ease;
}
.sidebar-collapsed .tv-nav-label{opacity:0;pointer-events:none}

.tv-sidebar-footer{
    margin-top:auto;
    padding:12px 10px;
    border-top:1px solid var(--line);
}
.tv-user-card{
    display:flex;
    align-items:center;
    gap:10px;
    padding:8px;
    border-radius:12px;
    background:#f7f7f7;
}
.tv-avatar{
    flex:0 0 36px;
    width:36px;
    height:36px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#ddebf7;
    color:var(--primary);
    font-weight:900;
}
.tv-user-info{
    min-width:0;
    overflow:hidden;
    transition:opacity .14s ease;
}
.tv-user-info strong,.tv-user-info small{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.tv-user-info strong{font-size:12px}
.tv-user-info small{color:var(--muted);margin-top:2px}
.sidebar-collapsed .tv-user-info{opacity:0;pointer-events:none}

.topbar{
    left:var(--tv-sidebar-width);
    min-height:var(--tv-topbar-height);
    padding:10px 22px;
    transition:left .2s ease;
}
.sidebar-collapsed .topbar{left:var(--tv-sidebar-collapsed)}
.topbar .topbar-brand,.topbar .topnav{display:none}
.tv-page-title{
    display:flex;
    flex-direction:column;
}
.tv-page-title strong{font-size:15px}
.tv-page-title small{color:var(--muted);margin-top:3px}

.tv-sidebar-toggle{
    width:40px;
    min-height:40px;
    padding:0;
    display:grid;
    place-items:center;
    background:#fff;
    color:#333;
    border:1px solid #d7d7d7;
    box-shadow:none;
    font-size:20px;
}
.tv-sidebar-toggle:hover{
    background:#f4f4f4;
    border-color:#bebebe;
}

.tv-sidebar-overlay{display:none}

.container{
    width:min(1240px,calc(100% - 36px));
    margin-top:26px;
}

/* Design system components */
.tv-card{
    background:#fff;
    border:1px solid var(--line);
    border-radius:var(--tv-radius-lg);
    box-shadow:var(--shadow);
    padding:var(--tv-space-5);
}
.tv-stack{display:flex;flex-direction:column;gap:var(--tv-space-4)}
.tv-cluster{display:flex;align-items:center;flex-wrap:wrap;gap:var(--tv-space-3)}
.tv-grid{display:grid;gap:var(--tv-space-4)}
.tv-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.tv-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.tv-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}

.tv-btn{
    min-height:42px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:0 15px;
    border-radius:9px;
    font-weight:700;
}
.tv-btn-primary{background:var(--primary);color:#fff;border:1px solid var(--primary)}
.tv-btn-secondary{background:#fff;color:#323130;border:1px solid #d1d1d1}
.tv-btn-danger{background:#fff1f0;color:var(--danger);border:1px solid #efb4af}

.tv-pill{
    display:inline-flex;
    align-items:center;
    gap:6px;
    min-height:28px;
    padding:4px 10px;
    border-radius:999px;
    font-size:11px;
    font-weight:800;
}
.tv-pill-blue{background:#e5f1fb;color:#0067c0}
.tv-pill-green{background:#e7f4e7;color:#107c10}
.tv-pill-red{background:#fde7e9;color:#a4262c}
.tv-pill-yellow{background:#fff4ce;color:#8a5700}

.tv-section-title{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:16px;
}
.tv-section-title h2{margin:3px 0 0;font-size:20px}
.tv-section-title p{margin:5px 0 0;color:var(--muted)}

.tv-empty{
    padding:44px 20px;
    text-align:center;
    color:var(--muted);
}
.tv-empty strong{display:block;color:var(--text);font-size:17px;margin-bottom:6px}

.tv-fade-out{
    opacity:0;
    transform:translateY(-5px);
    transition:opacity .25s ease,transform .25s ease;
}

/* More compact premium cards */
.cards article{
    min-height:116px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:18px 20px;
}
.cards article strong{font-size:28px;letter-spacing:-.5px}

/* Cleaner page headers */
.page-head{
    padding:2px 0 5px;
}
.page-head h1{
    font-size:30px;
    letter-spacing:-.6px;
}
.page-head>button,.page-head>.button-link{
    min-width:148px;
}

/* Table toolbar and table polish */
.filters{
    border-radius:16px 16px 0 0;
}
.data-table th{
    height:42px;
    text-transform:none;
    letter-spacing:.025em;
    font-size:11px;
}
.data-table td{height:56px}

/* Accessibility */
a:focus-visible,button:focus-visible,input:focus-visible,
select:focus-visible,textarea:focus-visible{
    outline:none;
    box-shadow:var(--tv-focus);
}

@media(max-width:980px){
    .app-body,.sidebar-collapsed.app-body{padding-left:0}
    .tv-sidebar{
        width:min(286px,84vw);
        transform:translateX(-102%);
        box-shadow:10px 0 30px rgba(0,0,0,.14);
    }
    .sidebar-mobile-open .tv-sidebar{transform:translateX(0)}
    .sidebar-collapsed .tv-sidebar{width:min(286px,84vw)}
    .sidebar-collapsed .tv-brand-text,
    .sidebar-collapsed .tv-nav-label,
    .sidebar-collapsed .tv-user-info{
        opacity:1;
        pointer-events:auto;
    }
    .topbar,.sidebar-collapsed .topbar{left:0}
    .tv-sidebar-overlay{
        position:fixed;
        inset:0;
        z-index:55;
        background:rgba(0,0,0,.28);
        backdrop-filter:blur(2px);
    }
    .sidebar-mobile-open .tv-sidebar-overlay{display:block}
}
@media(max-width:720px){
    .tv-grid-2,.tv-grid-3,.tv-grid-4{grid-template-columns:1fr}
    .container{width:min(100% - 20px,1240px)}
    .page-head h1{font-size:26px}
}


/* =========================================================
   v0.8.0 — Agenda Inteligente
   ========================================================= */
.agenda-page-head{align-items:flex-end}
.agenda-summary{margin-top:0}

.agenda-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-top:16px;
    padding:14px 16px;
}
.agenda-navigation,.agenda-filters{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
}
.agenda-navigation .button-link{
    min-width:42px;
    padding:0 12px;
}
.agenda-navigation strong{
    margin-left:6px;
    font-size:17px;
}
.agenda-filters select{
    min-width:150px;
    height:42px;
    border:1px solid #cfcfcf;
    border-radius:9px;
    background:#fff;
    color:var(--text);
    padding:0 10px;
}
.agenda-filters button{min-height:42px;margin:0}

.agenda-calendar-panel{padding:0;overflow:hidden}
.agenda-weekdays{
    display:grid;
    grid-template-columns:repeat(7,1fr);
    border-bottom:1px solid var(--line);
    background:#f7f7f7;
}
.agenda-weekdays span{
    padding:11px;
    text-align:center;
    color:var(--muted);
    font-size:11px;
    font-weight:800;
}
.agenda-month-grid{
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
}
.agenda-day{
    min-height:142px;
    padding:8px;
    border-right:1px solid #ededed;
    border-bottom:1px solid #ededed;
    background:#fff;
    transition:background .15s ease,box-shadow .15s ease;
}
.agenda-day:nth-child(7n){border-right:0}
.agenda-day.outside{background:#fafafa;color:#999}
.agenda-day.today{
    background:#f3f8fd;
    box-shadow:inset 0 0 0 2px rgba(0,103,192,.18);
}
.agenda-day.drag-over,.agenda-list-day.drag-over{
    background:#e5f1fb;
    box-shadow:inset 0 0 0 2px var(--primary);
}
.agenda-day-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:28px;
}
.agenda-day-head>span{
    width:27px;
    height:27px;
    display:grid;
    place-items:center;
    border-radius:50%;
    font-size:12px;
    font-weight:800;
}
.agenda-day.today .agenda-day-head>span{
    background:var(--primary);
    color:#fff;
}
.agenda-day-head button{
    width:27px;
    min-height:27px;
    padding:0;
    border-radius:8px;
    background:transparent;
    color:var(--primary);
    border-color:transparent;
    box-shadow:none;
    opacity:0;
}
.agenda-day:hover .agenda-day-head button{opacity:1}
.agenda-day-events{display:grid;gap:5px;margin-top:5px}
.agenda-event{
    padding:6px 7px;
    border-radius:8px;
    border-left:3px solid var(--primary);
    background:#eaf4fc;
    color:#234;
    overflow:hidden;
    cursor:grab;
}
.agenda-event.block{
    border-left-color:#9d5d00;
    background:#fff4ce;
    color:#6f4900;
    cursor:default;
}
.agenda-event.dragging{opacity:.45}
.agenda-event strong,.agenda-event small{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.agenda-event strong{font-size:10px}
.agenda-event small{margin-top:2px;font-size:9px;color:inherit;opacity:.78}

.agenda-list-panel{padding:0;overflow:hidden}
.agenda-list-day{
    display:grid;
    grid-template-columns:90px 1fr;
    min-height:112px;
    border-bottom:1px solid var(--line);
    transition:background .15s ease;
}
.agenda-list-day:last-child{border-bottom:0}
.agenda-list-date{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    border-right:1px solid var(--line);
    background:#fafafa;
}
.agenda-list-date strong{font-size:28px}
.agenda-list-date span{color:var(--muted);font-size:11px}
.agenda-list-content{padding:14px}
.agenda-list-title{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:8px;
}
.agenda-list-event{
    display:grid;
    grid-template-columns:76px 1fr auto;
    align-items:center;
    gap:12px;
    padding:10px 12px;
    margin-top:7px;
    border:1px solid #dceaf5;
    border-radius:11px;
    background:#f5faff;
    cursor:grab;
}
.agenda-list-event.block{
    border-color:#ead49a;
    background:#fff8e8;
    cursor:default;
}
.agenda-time{
    color:var(--primary);
    font-size:12px;
    font-weight:900;
}
.agenda-event-info strong,.agenda-event-info small{display:block}
.agenda-event-info small{margin-top:3px;color:var(--muted)}
.agenda-empty-day{padding:12px;text-align:left}

.agenda-modal{width:min(760px,100%)}
.agenda-modal select{
    width:100%;
    height:49px;
    border:1px solid #cfcfcf;
    border-radius:12px;
    background:#fff;
    color:var(--text);
    padding:0 12px;
}

@media(max-width:1050px){
    .agenda-toolbar{align-items:stretch;flex-direction:column}
    .agenda-month-grid{min-width:860px}
    .agenda-calendar-panel{overflow-x:auto}
}
@media(max-width:700px){
    .agenda-page-head{align-items:stretch}
    .agenda-page-head .tv-cluster{width:100%}
    .agenda-page-head .tv-cluster button{flex:1}
    .agenda-filters{display:grid;grid-template-columns:1fr 1fr;width:100%}
    .agenda-filters select,.agenda-filters button{width:100%;min-width:0}
    .agenda-navigation strong{width:100%;margin:5px 0 0}
    .agenda-list-day{grid-template-columns:64px 1fr}
    .agenda-list-event{grid-template-columns:1fr}
    .agenda-time{margin-bottom:-4px}
}


/* =========================================================
   v0.8.1 — Correção do botão de abrir/recolher menu
   Mantém o botão sempre visível acima da sidebar.
   ========================================================= */
.tv-sidebar-toggle{
    position:fixed !important;
    top:14px !important;
    left:calc(var(--tv-sidebar-width) + 14px) !important;
    z-index:120 !important;
    width:40px !important;
    height:40px !important;
    min-height:40px !important;
    display:grid !important;
    place-items:center !important;
    visibility:visible !important;
    opacity:1 !important;
    padding:0 !important;
    background:#ffffff !important;
    color:#323130 !important;
    border:1px solid #cfcfcf !important;
    border-radius:10px !important;
    box-shadow:0 4px 14px rgba(0,0,0,.10) !important;
}
.tv-sidebar-toggle:hover{
    background:#f3f3f3 !important;
    border-color:#a9a9a9 !important;
}
.sidebar-collapsed .tv-sidebar-toggle{
    left:calc(var(--tv-sidebar-collapsed) + 14px) !important;
}
.topbar{
    padding-left:74px !important;
}
@media(max-width:980px){
    .tv-sidebar-toggle,
    .sidebar-collapsed .tv-sidebar-toggle{
        top:14px !important;
        left:14px !important;
    }
    .topbar{
        padding-left:66px !important;
    }
}


/* =========================================================
   v0.8.2 — Correção definitiva do botão do menu
   ========================================================= */
.topbar{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
}
.topbar > .tv-cluster{
    display:flex !important;
    align-items:center !important;
    gap:12px !important;
}
.tv-sidebar-toggle{
    position:relative !important;
    top:auto !important;
    left:auto !important;
    z-index:130 !important;
    flex:0 0 40px !important;
    width:40px !important;
    height:40px !important;
    min-height:40px !important;
    display:grid !important;
    place-items:center !important;
    visibility:visible !important;
    opacity:1 !important;
    margin:0 !important;
    padding:0 !important;
    background:#ffffff !important;
    color:#323130 !important;
    border:1px solid #cfcfcf !important;
    border-radius:10px !important;
    box-shadow:0 2px 8px rgba(0,0,0,.08) !important;
}
.tv-sidebar-toggle:hover{
    background:#f3f3f3 !important;
    border-color:#a9a9a9 !important;
}
.topbar{
    padding-left:22px !important;
}
@media(max-width:980px){
    .topbar{
        padding-left:14px !important;
    }
    .tv-page-title small{
        display:none;
    }
}


/* =========================================================
   v0.8.3 — Alinhamento definitivo do topo
   ========================================================= */
.topbar > .tv-cluster{
    position:relative !important;
    min-width:0 !important;
    padding-left:54px !important;
}
.topbar .tv-sidebar-toggle{
    position:absolute !important;
    top:50% !important;
    left:0 !important;
    transform:translateY(-50%) !important;
    margin:0 !important;
}
.tv-page-title{
    min-width:0 !important;
    padding:0 !important;
}
.tv-page-title strong,
.tv-page-title small{
    display:block !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
}
.topbar-user{
    flex:0 0 auto !important;
    margin-left:18px !important;
}
@media(max-width:980px){
    .topbar > .tv-cluster{
        padding-left:50px !important;
    }
    .topbar-user-info{
        display:none !important;
    }
}


/* =========================================================
   v0.9.0 — Execução em Campo
   ========================================================= */
.field-toolbar{margin-top:16px;padding:14px 16px}
.field-filters{display:flex;align-items:center;gap:10px}
.field-filters input,.field-filters select{
    height:42px;
    border:1px solid #cfcfcf;
    border-radius:9px;
    background:#fff;
    padding:0 11px;
}
.field-filters button{margin:0}

.field-visit-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
    margin-top:16px;
}
.field-visit-card{display:flex;flex-direction:column;gap:14px}
.field-visit-card-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:12px;
}
.field-visit-card h2{margin:4px 0 3px;font-size:18px}
.field-visit-card p{margin:0;color:var(--muted)}
.field-promoter{
    padding:9px 11px;
    border-radius:9px;
    background:#f6f6f6;
    font-size:12px;
    font-weight:700;
}
.field-status{
    display:inline-flex;
    align-items:center;
    min-height:28px;
    padding:5px 9px;
    border-radius:999px;
    font-size:10px;
    font-weight:850;
    white-space:nowrap;
}
.status-planned{background:#e5f1fb;color:#0067c0}
.status-checked_in,.status-in_progress{background:#fff4ce;color:#8a5700}
.status-completed{background:#e7f4e7;color:#107c10}
.status-missed,.status-cancelled{background:#fde7e9;color:#a4262c}

.field-progress-mini{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7px;
}
.field-progress-mini span{
    padding:7px;
    border-radius:8px;
    background:#f4f4f4;
    color:#777;
    font-size:10px;
    font-weight:750;
}
.field-progress-mini span.done{
    background:#e7f4e7;
    color:#107c10;
}
.field-visit-card .tv-btn{margin-top:auto}

.field-visit-hero{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
}
.field-visit-hero h2{margin:5px 0;font-size:25px}
.field-visit-hero p{margin:0;color:var(--muted)}
.field-checkin-card{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-top:16px;
}
.field-checkin-card h2{margin:4px 0}
.field-checkin-card p{margin:0;color:var(--muted)}
.field-checkin-card button{width:auto}

.field-execution-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
    margin-top:16px;
}
.field-photo-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;
    margin-top:14px;
}
.field-photo-grid figure{
    margin:0;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:10px;
    background:#f7f7f7;
}
.field-photo-grid img{
    width:100%;
    aspect-ratio:1/1;
    object-fit:cover;
    display:block;
}
.field-photo-grid figcaption{
    padding:6px;
    color:var(--muted);
    font-size:10px;
    text-transform:capitalize;
}
.field-inline-form{
    display:grid;
    grid-template-columns:2fr 1fr auto;
    gap:8px;
}
.field-inline-form select{
    min-width:0;
    height:44px;
    border:1px solid #cfcfcf;
    border-radius:9px;
    background:#fff;
    padding:0 10px;
}
.field-inline-form button{margin:0}
.field-record-list{display:grid;gap:7px;margin-top:14px}
.field-record-list>div{
    display:flex;
    justify-content:space-between;
    gap:12px;
    padding:9px 10px;
    border:1px solid var(--line);
    border-radius:9px;
    background:#fafafa;
    font-size:11px;
}
.field-record-list span{color:var(--muted)}
.field-checkout-card{
    background:linear-gradient(135deg,#f4f9fd,#fff);
}
.field-completed{
    margin-top:16px;
    padding:38px;
    text-align:center;
}
.field-completed h2{margin:13px 0 7px}

@media(max-width:1050px){
    .field-visit-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:780px){
    .field-visit-grid,.field-execution-grid{grid-template-columns:1fr}
    .field-checkin-card,.field-visit-hero{align-items:stretch;flex-direction:column}
    .field-checkin-card button{width:100%}
    .field-inline-form{grid-template-columns:1fr}
}
@media(max-width:520px){
    .field-filters{align-items:stretch;flex-direction:column}
    .field-filters>*{width:100%}
    .field-photo-grid{grid-template-columns:1fr 1fr}
}


/* =========================================================
   v0.9.1 — Portal do Promotor
   ========================================================= */
body.promoter-portal .tv-sidebar-nav{
    padding-top:18px;
}
body.promoter-portal .tv-sidebar-nav a{
    font-size:14px;
}
body.promoter-portal .field-visit-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
}
@media(max-width:780px){
    body.promoter-portal .field-visit-grid{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   v0.9.2 — Fluxo de Visita Guiada em Blocos
   ========================================================= */
.guided-steps{margin-top:16px}
.guided-stepper{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:8px;
    margin-bottom:16px;
}
.guided-step{
    display:flex;
    align-items:center;
    gap:8px;
    min-height:50px;
    padding:8px 10px;
    border:1px solid var(--line);
    border-radius:11px;
    background:#fff;
    color:#777;
}
.guided-step>span{
    flex:0 0 27px;
    width:27px;
    height:27px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#efefef;
    font-size:11px;
    font-weight:900;
}
.guided-step small{font-size:10px;font-weight:800}
.guided-step.active{
    background:#e5f1fb;
    border-color:#9bc8eb;
    color:#005a9e;
}
.guided-step.active>span{
    background:#0067c0;
    color:#fff;
}
.guided-step.done{
    background:#f1faf1;
    border-color:#b7ddb7;
    color:#107c10;
}
.guided-step.done>span{
    background:#107c10;
    color:#fff;
}
.guided-block{padding:22px}
.guided-block-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:17px;
}
.guided-block-head h2{margin:4px 0 6px}
.guided-block-head p{margin:0;color:var(--muted)}
.active-block{
    border-color:#c5dff3;
    box-shadow:0 8px 26px rgba(0,103,192,.08);
}
.guided-area-list{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    margin-top:16px;
}
.guided-area-list article{
    display:flex;
    align-items:center;
    gap:10px;
    padding:9px;
    border:1px solid var(--line);
    border-radius:11px;
    background:#fafafa;
}
.guided-area-list img{
    width:62px;
    height:62px;
    object-fit:cover;
    border-radius:8px;
}
.guided-area-list strong,.guided-area-list small{display:block}
.guided-area-list small{margin-top:3px;color:var(--muted)}
.guided-next-button{margin-top:15px}
.guided-complete-form{margin-top:15px}
.guided-dual-actions{margin-top:15px}
.guided-dual-actions form{margin:0}
.guided-area-after-list{display:grid;gap:13px}
.guided-area-after-list>article{
    display:grid;
    grid-template-columns:minmax(240px,1fr) minmax(260px,1fr);
    gap:16px;
    padding:14px;
    border:1px solid var(--line);
    border-radius:13px;
    background:#fafafa;
}
.guided-area-after-list>article.complete{
    border-color:#b7ddb7;
    background:#f7fcf7;
}
.area-comparison{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
}
.area-comparison figure{
    margin:0;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:10px;
    background:#fff;
}
.area-comparison img{
    display:block;
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
}
.area-comparison figcaption{
    padding:6px;
    text-align:center;
    color:var(--muted);
    font-size:10px;
    font-weight:800;
}
@media(max-width:1000px){
    .guided-stepper{grid-template-columns:repeat(3,1fr)}
    .guided-area-list{grid-template-columns:1fr 1fr}
}
@media(max-width:720px){
    .guided-stepper{grid-template-columns:1fr 1fr}
    .guided-step small{font-size:9px}
    .guided-area-list{grid-template-columns:1fr}
    .guided-area-after-list>article{grid-template-columns:1fr}
}


/* =========================================================
   TradeVision v1.0.0 — Dashboard Operacional
   ========================================================= */
.operational-dashboard{padding-bottom:32px}
.operational-head{align-items:flex-end}
.operational-date-filter{
    display:flex;
    align-items:center;
    gap:8px;
}
.operational-date-filter input{
    height:42px;
    border:1px solid #cfcfcf;
    border-radius:9px;
    background:#fff;
    padding:0 11px;
}
.operational-date-filter button{margin:0}

.operational-kpis{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:12px;
    margin-top:2px;
}
.operational-kpi{
    min-height:116px;
    display:flex;
    align-items:center;
    gap:12px;
    padding:16px;
    border:1px solid var(--line);
    border-radius:15px;
    background:#fff;
    box-shadow:var(--shadow);
    color:var(--text);
    transition:transform .15s ease,box-shadow .15s ease;
}
.operational-kpi:hover{
    transform:translateY(-2px);
    box-shadow:var(--shadow-hover);
}
.operational-kpi-icon{
    flex:0 0 40px;
    width:40px;
    height:40px;
    display:grid;
    place-items:center;
    border-radius:12px;
    font-size:18px;
    font-weight:900;
}
.operational-kpi span,.operational-kpi strong,.operational-kpi small{display:block}
.operational-kpi span{color:var(--muted);font-size:11px;font-weight:750}
.operational-kpi strong{margin:4px 0 2px;font-size:27px;letter-spacing:-.5px}
.operational-kpi small{color:var(--muted);font-size:10px}
.operational-kpi.blue .operational-kpi-icon{background:#e5f1fb;color:#0067c0}
.operational-kpi.green .operational-kpi-icon{background:#e7f4e7;color:#107c10}
.operational-kpi.amber .operational-kpi-icon{background:#fff4ce;color:#8a5700}
.operational-kpi.gray .operational-kpi-icon{background:#f1f1f1;color:#555}
.operational-kpi.red .operational-kpi-icon{background:#fde7e9;color:#a4262c}
.operational-kpi.violet .operational-kpi-icon{background:#f3e8ff;color:#6b21a8}

.operational-grid-main{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
    margin-top:16px;
}
.operational-grid-bottom{
    display:grid;
    grid-template-columns:minmax(340px,.85fr) minmax(0,1.15fr);
    gap:16px;
    margin-top:16px;
}
.operational-progress-panel,.operational-trend-panel,
.operational-promoters-panel,.operational-visits-panel,
.operational-alerts-panel,.operational-photos-panel{
    min-width:0;
}
.operational-progress-ring{
    --progress:0;
    flex:0 0 92px;
    width:92px;
    height:92px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:
        radial-gradient(circle at center,#fff 61%,transparent 63%),
        conic-gradient(#107c10 calc(var(--progress)*1%),#e8e8e8 0);
}
.operational-progress-ring strong{font-size:21px}
.operational-progress-bar{
    height:10px;
    overflow:hidden;
    border-radius:999px;
    background:#ededed;
}
.operational-progress-bar span{
    display:block;
    height:100%;
    border-radius:inherit;
    background:linear-gradient(90deg,#0067c0,#107c10);
}
.operational-status-strip{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:8px;
    margin-top:16px;
}
.operational-status-strip>div{
    padding:10px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#fafafa;
}
.operational-status-strip strong,.operational-status-strip span{display:block}
.operational-status-strip strong{margin:5px 0 2px;font-size:18px}
.operational-status-strip span{color:var(--muted);font-size:10px}
.dot{
    width:9px;
    height:9px;
    display:block;
    border-radius:50%;
}
.dot.green{background:#107c10}.dot.amber{background:#d29200}
.dot.gray{background:#8a8a8a}.dot.red{background:#c42b1c}

.operational-trend{
    height:210px;
    display:grid;
    grid-template-columns:repeat(7,1fr);
    align-items:end;
    gap:10px;
    padding:12px 4px 0;
    border-bottom:1px solid var(--line);
}
.trend-day{
    min-width:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    height:100%;
}
.trend-bars{
    flex:1;
    width:100%;
    display:flex;
    align-items:flex-end;
    justify-content:center;
    gap:4px;
}
.trend-bars span{
    width:min(18px,38%);
    min-height:4px;
    border-radius:5px 5px 0 0;
}
.trend-total{background:#c8ddef}
.trend-completed{background:#107c10}
.trend-day>strong{margin-top:8px;font-size:10px}
.trend-day>small{color:var(--muted);font-size:9px}
.trend-legend{
    display:flex;
    gap:16px;
    margin-top:12px;
    color:var(--muted);
    font-size:10px;
}
.trend-legend span{display:flex;align-items:center;gap:6px}
.legend-box{width:10px;height:10px;border-radius:3px}
.legend-box.total{background:#c8ddef}.legend-box.completed{background:#107c10}

.operational-promoter-list,.operational-visit-list,.operational-alert-list{
    display:grid;
    gap:7px;
}
.operational-promoter-row{
    display:grid;
    grid-template-columns:42px minmax(0,1fr) auto 90px;
    align-items:center;
    gap:10px;
    padding:9px 10px;
    border:1px solid var(--line);
    border-radius:11px;
    color:var(--text);
    background:#fff;
}
.operational-promoter-row:hover,.operational-visit-row:hover,
.operational-alert-row:hover{background:#f4f9fd}
.operational-promoter-avatar{
    width:38px;height:38px;display:grid;place-items:center;
    border-radius:50%;background:#e5f1fb;color:#0067c0;font-weight:900;
}
.operational-promoter-info strong,.operational-promoter-info small,
.operational-promoter-numbers strong,.operational-promoter-numbers small{
    display:block;
}
.operational-promoter-info small,.operational-promoter-numbers small{
    margin-top:2px;color:var(--muted);font-size:10px;
}
.operational-promoter-numbers{text-align:right}
.mini-progress{
    height:7px;
    overflow:hidden;
    border-radius:999px;
    background:#ededed;
}
.mini-progress span{
    display:block;height:100%;background:#107c10;border-radius:inherit;
}

.operational-visit-row{
    display:grid;
    grid-template-columns:52px minmax(0,1fr) auto auto;
    align-items:center;
    gap:10px;
    padding:10px;
    border:1px solid var(--line);
    border-radius:11px;
    color:var(--text);
}
.operational-visit-time{
    color:#0067c0;
    font-size:12px;
    font-weight:900;
}
.operational-visit-info strong,.operational-visit-info small{display:block}
.operational-visit-info small{margin-top:3px;color:var(--muted);font-size:10px}
.operational-visit-assets{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:3px;
    color:var(--muted);
    font-size:9px;
}
.operational-visit-assets .alert{color:#a4262c;font-weight:800}

.operational-alert-row{
    display:grid;
    grid-template-columns:54px minmax(0,1fr);
    align-items:center;
    gap:10px;
    padding:9px;
    border:1px solid var(--line);
    border-radius:11px;
    color:var(--text);
}
.alert-days{
    width:48px;height:48px;display:grid;place-items:center;
    align-content:center;border-radius:11px;background:#fff4ce;color:#8a5700;
}
.alert-days.urgent{background:#fde7e9;color:#a4262c}
.alert-days strong,.alert-days small{display:block;line-height:1}
.alert-days strong{font-size:17px}.alert-days small{margin-top:3px;font-size:9px}
.operational-alert-row>div:last-child strong,
.operational-alert-row>div:last-child small{display:block}
.operational-alert-row>div:last-child small{margin-top:3px;color:var(--muted);font-size:10px}

.operational-photo-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:9px;
}
.operational-photo-card{
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:11px;
    background:#fff;
    color:var(--text);
}
.operational-photo-card img{
    width:100%;
    aspect-ratio:4/3;
    display:block;
    object-fit:cover;
}
.operational-photo-card div{padding:8px}
.operational-photo-card strong,.operational-photo-card small{
    display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.operational-photo-card strong{font-size:10px}
.operational-photo-card small{margin-top:3px;color:var(--muted);font-size:9px}

.operational-totals-strip{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:1px;
    margin-top:16px;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:15px;
    background:var(--line);
    box-shadow:var(--shadow);
}
.operational-totals-strip a{
    min-height:86px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:14px 18px;
    background:#fff;
    color:var(--text);
}
.operational-totals-strip a:hover{background:#f4f9fd}
.operational-totals-strip strong{font-size:23px}
.operational-totals-strip span{margin-top:4px;color:var(--muted);font-size:10px}

@media(max-width:1180px){
    .operational-kpis{grid-template-columns:repeat(3,1fr)}
    .operational-photo-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:900px){
    .operational-grid-main,.operational-grid-bottom{grid-template-columns:1fr}
    .operational-promoter-row{grid-template-columns:42px minmax(0,1fr) auto}
    .operational-promoter-row .mini-progress{grid-column:2/4}
    .operational-totals-strip{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:680px){
    .operational-head{align-items:stretch}
    .operational-date-filter{width:100%}
    .operational-date-filter input{flex:1}
    .operational-kpis{grid-template-columns:1fr 1fr}
    .operational-status-strip{grid-template-columns:1fr 1fr}
    .operational-visit-row{grid-template-columns:44px minmax(0,1fr) auto}
    .operational-visit-assets{display:none}
    .operational-photo-grid{grid-template-columns:1fr 1fr}
    .operational-totals-strip{grid-template-columns:1fr 1fr}
}
@media(max-width:440px){
    .operational-kpis{grid-template-columns:1fr}
    .operational-photo-grid{grid-template-columns:1fr 1fr}
}


/* =========================================================
   TradeVision v1.0.1 — Central de Fotos
   ========================================================= */
.photo-center{padding-bottom:38px}
.photo-center-head{align-items:flex-end}
.photo-filter-panel{margin-top:16px;padding:16px}
.photo-filters{
    display:grid;
    grid-template-columns:repeat(5,minmax(140px,1fr)) auto;
    align-items:end;
    gap:10px;
}
.photo-filters>div{min-width:0}
.photo-filters label{display:block;margin-bottom:6px;font-size:10px;font-weight:800;color:var(--muted)}
.photo-filters input,.photo-filters select{
    width:100%;
    height:42px;
    border:1px solid #cfcfcf;
    border-radius:9px;
    background:#fff;
    padding:0 10px;
}
.photo-filter-actions{
    display:flex;
    align-items:center;
    gap:8px;
}
.photo-filter-actions button,.photo-filter-actions a{margin:0;white-space:nowrap}

.photo-mode-tabs{
    display:inline-flex;
    gap:4px;
    margin:16px 0;
    padding:4px;
    border:1px solid var(--line);
    border-radius:11px;
    background:#fff;
}
.photo-mode-tabs a{
    padding:9px 14px;
    border-radius:8px;
    color:var(--muted);
    font-size:11px;
    font-weight:800;
}
.photo-mode-tabs a.active{
    background:var(--primary-soft);
    color:var(--primary);
}

.photo-gallery{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
}
.photo-card{
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:15px;
    background:#fff;
    box-shadow:var(--shadow);
}
.photo-open{
    position:relative;
    width:100%;
    min-height:0;
    display:block;
    padding:0;
    overflow:hidden;
    border:0;
    border-radius:0;
    background:#eef2f5;
    box-shadow:none;
}
.photo-open:hover{background:#eef2f5;border:0;box-shadow:none}
.photo-open img{
    display:block;
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
    transition:transform .25s ease;
}
.photo-open:hover img{transform:scale(1.025)}
.photo-zoom-badge{
    position:absolute;
    right:9px;
    bottom:9px;
    padding:5px 8px;
    border-radius:999px;
    background:rgba(0,0,0,.64);
    color:#fff;
    font-size:9px;
    font-weight:800;
}
.photo-card-body{padding:12px}
.photo-card-title{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
}
.photo-card-title strong{font-size:11px;color:var(--primary)}
.photo-card-title small{color:var(--muted);font-size:9px;white-space:nowrap}
.photo-card-body h3{
    margin:9px 0 4px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:15px;
}
.photo-card-body p{
    margin:0;
    min-height:28px;
    color:var(--muted);
    font-size:10px;
}
.photo-card-actions{
    display:flex;
    justify-content:space-between;
    gap:8px;
    margin-top:11px;
    padding-top:10px;
    border-top:1px solid var(--line);
}
.photo-card-actions a{font-size:10px;font-weight:800}

.comparison-grid{display:grid;gap:14px}
.comparison-card{
    padding:16px;
    border:1px solid var(--line);
    border-radius:15px;
    background:#fff;
    box-shadow:var(--shadow);
}
.comparison-card-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:13px;
}
.comparison-card-head h2{margin:4px 0 4px;font-size:18px}
.comparison-card-head p{margin:0;color:var(--muted);font-size:11px}
.comparison-images{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
}
.comparison-images figure{
    margin:0;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:12px;
    background:#f7f7f7;
}
.comparison-images button{
    width:100%;
    min-height:0;
    display:block;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
}
.comparison-images button:hover{border:0;background:transparent;box-shadow:none}
.comparison-images img{
    width:100%;
    aspect-ratio:16/9;
    display:block;
    object-fit:cover;
}
.comparison-images figcaption{
    padding:8px;
    text-align:center;
    color:var(--muted);
    font-size:10px;
    font-weight:850;
}
.comparison-images figure.pending{
    display:flex;
    flex-direction:column;
}
.comparison-pending{
    flex:1;
    min-height:180px;
    display:grid;
    place-items:center;
    align-content:center;
    padding:20px;
    text-align:center;
    color:var(--muted);
}
.comparison-pending strong,.comparison-pending small{display:block}
.comparison-pending small{margin-top:5px}

.photo-modal{
    position:fixed;
    inset:0;
    z-index:500;
    display:none;
}
.photo-modal.open{display:block}
.photo-modal-backdrop{
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.74);
    backdrop-filter:blur(5px);
}
.photo-modal-content{
    position:absolute;
    inset:4vh 4vw;
    display:grid;
    grid-template-columns:minmax(0,1fr) 310px;
    overflow:hidden;
    border-radius:18px;
    background:#111;
    box-shadow:0 28px 90px rgba(0,0,0,.42);
}
.photo-modal-close{
    position:absolute;
    top:14px;
    right:14px;
    z-index:3;
    width:40px;
    min-height:40px;
    padding:0;
    border-radius:50%;
    background:rgba(255,255,255,.92);
    color:#222;
    border:0;
}
.photo-modal-image-wrap{
    min-width:0;
    display:grid;
    place-items:center;
    overflow:auto;
    background:#111;
}
.photo-modal-image-wrap img{
    max-width:100%;
    max-height:92vh;
    object-fit:contain;
}
.photo-modal-info{
    padding:30px 24px;
    background:#fff;
    color:var(--text);
}
.photo-modal-info small{color:var(--primary);font-weight:850}
.photo-modal-info h2{margin:8px 0 15px}
.photo-modal-info p{color:var(--muted);font-size:12px;line-height:1.5}
.photo-modal-info .tv-btn{margin-top:18px}

.timeline-drawer{
    position:fixed;
    top:0;
    right:0;
    bottom:0;
    z-index:420;
    width:min(460px,94vw);
    display:flex;
    flex-direction:column;
    background:#fff;
    box-shadow:-18px 0 60px rgba(0,0,0,.20);
}
.timeline-overlay{
    position:fixed;
    inset:0;
    z-index:410;
    background:rgba(0,0,0,.28);
}
.timeline-drawer-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:15px;
    padding:20px;
    border-bottom:1px solid var(--line);
}
.timeline-drawer-head h2{margin:4px 0}
.timeline-drawer-head p{margin:0;color:var(--muted)}
.timeline-body{
    flex:1;
    overflow:auto;
    padding:18px 20px 30px;
}
.timeline-item{
    position:relative;
    display:grid;
    grid-template-columns:18px auto minmax(0,1fr);
    align-items:center;
    gap:10px;
    min-height:50px;
    padding:8px 0;
}
.timeline-item:not(:last-child)::after{
    content:"";
    position:absolute;
    top:36px;
    bottom:-9px;
    left:8px;
    width:2px;
    background:#e5e5e5;
}
.timeline-item>img{
    width:52px;
    height:52px;
    object-fit:cover;
    border-radius:9px;
}
.timeline-item strong,.timeline-item small{display:block}
.timeline-item small{margin-top:3px;color:var(--muted);font-size:10px}
.timeline-dot{
    position:relative;
    z-index:1;
    width:16px;
    height:16px;
    display:block;
    border:4px solid #fff;
    border-radius:50%;
    box-shadow:0 0 0 1px #d7d7d7;
}
.timeline-dot.green{background:#107c10}
.timeline-dot.blue{background:#0067c0}
.timeline-dot.amber{background:#d29200}
.timeline-dot.red{background:#c42b1c}

@media(max-width:1180px){
    .photo-filters{grid-template-columns:repeat(3,1fr)}
    .photo-gallery{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:860px){
    .photo-filters{grid-template-columns:1fr 1fr}
    .photo-gallery{grid-template-columns:1fr 1fr}
    .photo-modal-content{
        inset:2vh 2vw;
        grid-template-columns:1fr;
        grid-template-rows:minmax(0,1fr) auto;
    }
    .photo-modal-info{padding:17px 20px}
}
@media(max-width:620px){
    .photo-filters{grid-template-columns:1fr}
    .photo-filter-actions{width:100%}
    .photo-filter-actions>*{flex:1}
    .photo-gallery{grid-template-columns:1fr}
    .comparison-images{grid-template-columns:1fr}
    .comparison-card-head{flex-direction:column}
}


/* =========================================================
   TradeVision v1.1.0 — Mapa Operacional
   ========================================================= */
.operational-map-page{
    padding-bottom:38px;
}

.operational-map-head{
    align-items:flex-end;
}

.map-filter-panel{
    margin-top:16px;
    padding:16px;
}

.map-filters{
    display:grid;
    grid-template-columns:180px minmax(190px,1fr) minmax(180px,1fr) auto;
    align-items:end;
    gap:10px;
}

.map-filters label{
    display:block;
    margin-bottom:6px;
    color:var(--muted);
    font-size:10px;
    font-weight:800;
}

.map-filters input,
.map-filters select{
    width:100%;
    height:42px;
    border:1px solid #cfcfcf;
    border-radius:9px;
    background:#fff;
    padding:0 10px;
}

.map-filter-actions{
    display:flex;
    align-items:center;
    gap:8px;
}

.map-filter-actions button,
.map-filter-actions a{
    margin:0;
    white-space:nowrap;
}

.operational-map-layout{
    display:grid;
    grid-template-columns:minmax(0,1.55fr) minmax(320px,.75fr);
    gap:16px;
    margin-top:16px;
}

.map-panel,
.map-list-panel{
    min-width:0;
}

.map-panel{
    position:relative;
    padding:0;
    overflow:hidden;
}

.map-panel-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:16px 18px;
    border-bottom:1px solid var(--line);
}

.map-panel-head h2,
.map-list-head h2{
    margin:4px 0 0;
}

.map-legend{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:10px;
    color:var(--muted);
    font-size:9px;
}

.map-legend span{
    display:flex;
    align-items:center;
    gap:5px;
}

.map-dot{
    width:9px;
    height:9px;
    display:block;
    border-radius:50%;
}

.map-dot.planned{
    background:#6b7280;
}

.map-dot.progress{
    background:#d29200;
}

.map-dot.completed{
    background:#107c10;
}

.map-dot.alert{
    background:#c42b1c;
}

.operational-map{
    width:100%;
    height:620px;
    background:#eef2f5;
}

.map-empty-message{
    position:absolute;
    inset:50% auto auto 50%;
    z-index:400;
    width:min(360px,calc(100% - 34px));
    transform:translate(-50%,-50%);
    padding:18px;
    border:1px solid var(--line);
    border-radius:13px;
    background:rgba(255,255,255,.94);
    text-align:center;
    box-shadow:var(--shadow);
    pointer-events:none;
}

.map-empty-message strong,
.map-empty-message span{
    display:block;
}

.map-empty-message span{
    margin-top:6px;
    color:var(--muted);
    font-size:11px;
    line-height:1.45;
}

.map-list-panel{
    padding:0;
    overflow:hidden;
}

.map-list-head{
    padding:16px 18px;
    border-bottom:1px solid var(--line);
}

.map-visit-list{
    max-height:620px;
    overflow:auto;
    padding:10px;
}

.map-visit-row{
    display:grid;
    grid-template-columns:11px minmax(0,1fr);
    gap:10px;
    padding:11px 10px;
    margin-bottom:8px;
    border:1px solid var(--line);
    border-radius:11px;
    background:#fff;
    color:var(--text);
    transition:background .15s ease,border-color .15s ease;
}

.map-visit-row:hover{
    background:#f4f9fd;
    border-color:#bdd8ed;
}

.map-visit-status{
    width:10px;
    height:10px;
    display:block;
    margin-top:4px;
    border-radius:50%;
}

.map-visit-status.status-planned{
    background:#6b7280;
}

.map-visit-status.status-checked_in,
.map-visit-status.status-in_progress{
    background:#d29200;
}

.map-visit-status.status-completed{
    background:#107c10;
}

.map-visit-status.status-missed,
.map-visit-status.status-cancelled{
    background:#c42b1c;
}

.map-visit-info{
    min-width:0;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
}

.map-visit-info strong,
.map-visit-info small{
    display:block;
}

.map-visit-info strong{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.map-visit-info small{
    margin-top:3px;
    color:var(--muted);
    font-size:10px;
}

.map-visit-meta{
    grid-column:2;
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:7px;
    color:var(--muted);
    font-size:9px;
}

.gps-alert,
.coordinate-alert{
    padding:3px 7px;
    border-radius:999px;
    font-weight:800;
}

.gps-alert{
    background:#fde7e9;
    color:#a4262c;
}

.coordinate-alert{
    background:#fff4ce;
    color:#8a5700;
}

.missing-coordinates-panel{
    margin-top:16px;
}

.missing-coordinate-list{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:8px;
}

.missing-coordinate-list a{
    padding:10px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#fafafa;
    color:var(--text);
}

.missing-coordinate-list a:hover{
    background:#f4f9fd;
    border-color:#bdd8ed;
}

.missing-coordinate-list strong,
.missing-coordinate-list small{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.missing-coordinate-list small{
    margin-top:3px;
    color:var(--muted);
    font-size:10px;
}

.tv-map-marker-wrapper{
    background:transparent;
    border:0;
}

.tv-map-marker{
    position:relative;
    width:30px;
    height:30px;
    display:grid;
    place-items:center;
    border:4px solid #fff;
    border-radius:50% 50% 50% 0;
    background:var(--marker-color);
    transform:rotate(-45deg);
    box-shadow:0 5px 14px rgba(0,0,0,.28);
}

.tv-map-marker i{
    width:9px;
    height:9px;
    display:block;
    border-radius:50%;
    background:#fff;
}

.leaflet-popup-content-wrapper{
    border-radius:13px;
    box-shadow:0 12px 35px rgba(0,0,0,.18);
}

.leaflet-popup-content{
    width:250px !important;
    margin:15px;
}

.tv-map-popup small,
.tv-map-popup h3,
.tv-map-popup p{
    display:block;
}

.tv-map-popup>small:first-child{
    color:var(--primary);
    font-size:9px;
    font-weight:850;
    text-transform:uppercase;
}

.tv-map-popup h3{
    margin:5px 0 6px;
    font-size:16px;
}

.tv-map-popup p{
    margin:3px 0;
    color:#616161;
    font-size:11px;
}

.tv-map-popup-metrics{
    display:flex;
    flex-wrap:wrap;
    gap:5px;
    margin:10px 0;
}

.tv-map-popup-metrics span{
    padding:4px 7px;
    border-radius:999px;
    background:#f1f1f1;
    color:#555;
    font-size:9px;
    font-weight:750;
}

.tv-map-popup-alert{
    margin:8px 0;
    padding:7px 8px;
    border-radius:8px;
    background:#fde7e9;
    color:#a4262c;
    font-size:10px;
    font-weight:800;
}

.tv-map-popup a{
    display:inline-flex;
    margin-top:10px;
    padding:7px 10px;
    border-radius:8px;
    background:#0067c0;
    color:#fff;
    font-size:10px;
    font-weight:850;
}

@media(max-width:1180px){
    .operational-map-layout{
        grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);
    }

    .missing-coordinate-list{
        grid-template-columns:repeat(3,1fr);
    }
}

@media(max-width:900px){
    .operational-map-layout{
        grid-template-columns:1fr;
    }

    .operational-map{
        height:520px;
    }

    .map-visit-list{
        max-height:none;
    }

    .map-filters{
        grid-template-columns:1fr 1fr;
    }
}

@media(max-width:650px){
    .map-panel-head{
        align-items:flex-start;
        flex-direction:column;
    }

    .map-legend{
        justify-content:flex-start;
    }

    .map-filters{
        grid-template-columns:1fr;
    }

    .map-filter-actions{
        width:100%;
    }

    .map-filter-actions>*{
        flex:1;
    }

    .operational-map{
        height:440px;
    }

    .missing-coordinate-list{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   TradeVision v1.1.1 — Correção de renderização do mapa
   ========================================================= */
.operational-map{
    position:relative;
    overflow:hidden;
    min-height:440px;
}

.operational-map .leaflet-container,
#operationalMap{
    width:100% !important;
}

.leaflet-container{
    background:#eef2f5;
}

.leaflet-tile{
    image-rendering:auto;
}


/* =========================================================
   TradeVision v1.1.2 — Correção definitiva dos tiles Leaflet
   ========================================================= */
#operationalMap{
    position:relative !important;
    width:100% !important;
    height:620px !important;
    min-width:0 !important;
    overflow:hidden !important;
    contain:layout paint;
}

#operationalMap.leaflet-container{
    font:inherit;
}

#operationalMap .leaflet-map-pane,
#operationalMap .leaflet-tile-pane,
#operationalMap .leaflet-overlay-pane,
#operationalMap .leaflet-shadow-pane,
#operationalMap .leaflet-marker-pane,
#operationalMap .leaflet-tooltip-pane,
#operationalMap .leaflet-popup-pane{
    position:absolute !important;
    left:0 !important;
    top:0 !important;
}

#operationalMap img.leaflet-tile{
    width:256px !important;
    height:256px !important;
    max-width:none !important;
    max-height:none !important;
    min-width:256px !important;
    min-height:256px !important;
    padding:0 !important;
    margin:0 !important;
    border:0 !important;
    object-fit:fill !important;
}

#operationalMap .leaflet-tile-container{
    pointer-events:none;
}

@media(max-width:900px){
    #operationalMap{
        height:520px !important;
    }
}

@media(max-width:650px){
    #operationalMap{
        height:440px !important;
    }
}


/* =========================================================
   TradeVision v1.1.5 — Edição de Lojas
   ========================================================= */
.store-row-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
}

.store-row-actions form{
    margin:0;
}

.store-row-actions button{
    white-space:nowrap;
}

.store-edit-backdrop{
    z-index:520;
    padding:20px;
    overflow:auto;
}

.store-edit-modal{
    width:min(880px,100%);
    max-height:calc(100vh - 40px);
    margin:auto;
    overflow:auto;
}

.store-edit-modal .modal-head{
    position:sticky;
    top:0;
    z-index:3;
    padding-bottom:14px;
    background:#fff;
    border-bottom:1px solid var(--line);
}

.store-edit-modal .modal-head p{
    margin:5px 0 0;
    color:var(--muted);
}

.store-edit-sections{
    display:grid;
    gap:16px;
    padding-top:17px;
}

.store-edit-sections>section{
    padding:16px;
    border:1px solid var(--line);
    border-radius:13px;
    background:#fafafa;
}

.store-edit-section-title{
    margin-bottom:13px;
}

.store-edit-section-title strong,
.store-edit-section-title small{
    display:block;
}

.store-edit-section-title strong{
    font-size:14px;
}

.store-edit-section-title small{
    margin-top:3px;
    color:var(--muted);
    font-size:10px;
}

.store-edit-modal .form-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
}

.store-edit-modal .form-grid .full{
    grid-column:1/-1;
}

.store-edit-modal .store-address-field{
    grid-column:span 1;
}

.store-radius-input{
    position:relative;
}

.store-radius-input input{
    padding-right:75px;
}

.store-radius-input span{
    position:absolute;
    top:50%;
    right:12px;
    transform:translateY(-50%);
    color:var(--muted);
    font-size:10px;
    pointer-events:none;
}

.store-coordinate-help{
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-height:49px;
    padding:9px 11px;
    border:1px solid #cce4f7;
    border-radius:10px;
    background:#f4f9fd;
}

.store-coordinate-help strong,
.store-coordinate-help small{
    display:block;
}

.store-coordinate-help strong{
    color:var(--primary);
    font-size:11px;
}

.store-coordinate-help small{
    margin-top:3px;
    color:var(--muted);
    font-size:9px;
    line-height:1.4;
}

.store-edit-modal .modal-actions{
    position:sticky;
    bottom:0;
    z-index:3;
    margin:18px -1px -1px;
    padding:14px 0 0;
    background:#fff;
    border-top:1px solid var(--line);
}

@media(max-width:720px){
    .store-edit-backdrop{
        padding:8px;
    }

    .store-edit-modal{
        max-height:calc(100vh - 16px);
    }

    .store-edit-modal .form-grid{
        grid-template-columns:1fr;
    }

    .store-edit-modal .form-grid .full,
    .store-edit-modal .store-address-field{
        grid-column:auto;
    }

    .store-row-actions{
        align-items:stretch;
        flex-direction:column;
    }

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


/* =========================================================
   TradeVision v1.1.6 — Vinculação Inteligente de Equipe
   ========================================================= */
.store-edit-modal select{
    width:100%;
    height:49px;
    border:1px solid #cfcfcf;
    border-radius:12px;
    background:#fff;
    color:var(--text);
    padding:0 12px;
}

.store-edit-modal select:focus{
    border-color:var(--primary);
    outline:2px solid rgba(0,103,192,.16);
    outline-offset:0;
}

.store-link-help{
    display:block;
    margin-top:6px;
    color:var(--muted);
    font-size:9px;
    line-height:1.35;
}


/* =========================================================
   TradeVision v1.2.2 — Tela Inteligente da Visita
   ========================================================= */
.smart-visit-hero{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:20px;
    border:1px solid #cce2f3;
    border-radius:16px;
    background:
        radial-gradient(circle at top right,rgba(0,103,192,.10),transparent 36%),
        linear-gradient(135deg,#ffffff,#f4f9fd);
    box-shadow:var(--shadow);
}

.smart-visit-identity{
    min-width:0;
    display:flex;
    align-items:center;
    gap:14px;
}

.smart-visit-store-icon{
    flex:0 0 50px;
    width:50px;
    height:50px;
    display:grid;
    place-items:center;
    border-radius:15px;
    background:#0067c0;
    color:#fff;
    font-size:22px;
    box-shadow:0 8px 22px rgba(0,103,192,.22);
}

.smart-visit-identity small,
.smart-visit-identity h2,
.smart-visit-identity p{
    display:block;
}

.smart-visit-identity h2{
    margin:4px 0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:25px;
}

.smart-visit-identity p{
    margin:0;
    color:var(--muted);
    font-size:11px;
}

.smart-visit-status-wrap{
    flex:0 0 auto;
    display:grid;
    justify-items:end;
}

.smart-visit-status-wrap>strong{
    margin-top:8px;
    font-size:28px;
    line-height:1;
}

.smart-visit-status-wrap>small{
    margin-top:3px;
    color:var(--muted);
}

.smart-visit-dashboard{
    display:grid;
    grid-template-columns:minmax(0,1.25fr) minmax(410px,.75fr);
    gap:14px;
    margin-top:14px;
}

.smart-progress-card,
.smart-visit-metrics{
    padding:17px;
    border:1px solid var(--line);
    border-radius:15px;
    background:#fff;
    box-shadow:var(--shadow);
}

.smart-progress-card-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
}

.smart-progress-card-head h3{
    margin:5px 0 0;
    font-size:18px;
}

.smart-progress-number{
    flex:0 0 auto;
    color:#0067c0;
    font-size:28px;
    font-weight:900;
}

.smart-main-progress{
    height:12px;
    margin-top:16px;
    overflow:hidden;
    border-radius:999px;
    background:#e8edf1;
}

.smart-main-progress span,
.smart-progress-track span{
    display:block;
    height:100%;
    border-radius:inherit;
    background:linear-gradient(90deg,#0067c0,#00a36c);
    transition:width .3s ease;
}

.smart-progress-caption{
    display:flex;
    justify-content:space-between;
    gap:12px;
    margin-top:9px;
    color:var(--muted);
    font-size:10px;
}

.smart-visit-metrics{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:7px;
}

.smart-visit-metrics>div{
    min-width:0;
    padding:9px;
    border-radius:11px;
    background:#f7f8fa;
}

.smart-visit-metrics span,
.smart-visit-metrics strong,
.smart-visit-metrics small{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.smart-visit-metrics span{
    color:var(--muted);
    font-size:9px;
    font-weight:750;
}

.smart-visit-metrics strong{
    margin-top:5px;
    font-size:15px;
}

.smart-visit-metrics small{
    margin-top:3px;
    color:var(--muted);
    font-size:8px;
}

.smart-execution-workspace{
    display:grid;
    grid-template-columns:minmax(250px,.38fr) minmax(0,1fr);
    align-items:start;
    gap:14px;
    margin-top:14px;
}

.smart-step-list{
    position:sticky;
    top:82px;
    display:grid;
    gap:7px;
}

.smart-step-card{
    display:grid;
    grid-template-columns:34px minmax(0,1fr) auto;
    align-items:center;
    gap:9px;
    min-height:60px;
    padding:10px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fff;
    opacity:.72;
}

.smart-step-card.current{
    border-color:#8fc4ea;
    background:#eef7fd;
    box-shadow:0 7px 20px rgba(0,103,192,.10);
    opacity:1;
}

.smart-step-card.status-completed,
.smart-step-card.status-skipped{
    border-color:#b8ddb9;
    background:#f3faf3;
    opacity:1;
}

.smart-step-card.status-locked{
    background:#f7f7f7;
    color:#888;
}

.smart-step-number{
    width:31px;
    height:31px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#ededed;
    font-size:11px;
    font-weight:900;
}

.smart-step-card.current .smart-step-number{
    background:#0067c0;
    color:#fff;
}

.smart-step-card.status-completed .smart-step-number,
.smart-step-card.status-skipped .smart-step-number{
    background:#107c10;
    color:#fff;
}

.smart-step-info strong,
.smart-step-info small{
    display:block;
}

.smart-step-info strong{
    font-size:11px;
}

.smart-step-info small{
    margin-top:3px;
    color:var(--muted);
    font-size:9px;
}

.smart-step-symbol{
    color:#0067c0;
    font-weight:900;
}

.smart-active-stage{
    min-width:0;
}

.smart-active-stage>.guided-block{
    margin:0;
}

.smart-optional-stage{
    background:linear-gradient(135deg,#fff,#f7fbfe);
}

.smart-coming-soon{
    padding:15px;
    border:1px dashed #98c8ea;
    border-radius:12px;
    background:#f3f9fd;
    text-align:center;
}

.smart-coming-soon strong,
.smart-coming-soon span{
    display:block;
}

.smart-coming-soon strong{
    color:#0067c0;
}

.smart-coming-soon span{
    margin-top:5px;
    color:var(--muted);
    font-size:10px;
}

.smart-visit-card-progress{
    padding:10px;
    border-radius:10px;
    background:#f7f8fa;
}

.smart-visit-card-progress>div:first-child{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}

.smart-visit-card-progress span{
    color:var(--muted);
    font-size:10px;
    font-weight:750;
}

.smart-visit-card-progress strong{
    color:#0067c0;
    font-size:13px;
}

.smart-progress-track{
    height:7px;
    margin-top:7px;
    overflow:hidden;
    border-radius:999px;
    background:#e4e8ec;
}

.smart-visit-card-progress small{
    display:block;
    margin-top:6px;
    color:var(--muted);
    font-size:9px;
}

@media(max-width:1150px){
    .smart-visit-dashboard{
        grid-template-columns:1fr;
    }

    .smart-visit-metrics{
        grid-template-columns:repeat(5,1fr);
    }
}

@media(max-width:900px){
    .smart-execution-workspace{
        grid-template-columns:1fr;
    }

    .smart-step-list{
        position:static;
        grid-template-columns:repeat(4,1fr);
    }

    .smart-step-card{
        grid-template-columns:30px minmax(0,1fr);
    }

    .smart-step-symbol{
        display:none;
    }
}

@media(max-width:700px){
    .smart-visit-hero{
        align-items:flex-start;
        flex-direction:column;
    }

    .smart-visit-status-wrap{
        width:100%;
        grid-template-columns:1fr auto;
        align-items:center;
        justify-items:start;
    }

    .smart-visit-status-wrap>strong{
        justify-self:end;
        margin:0;
    }

    .smart-visit-status-wrap>small{
        display:none;
    }

    .smart-visit-metrics{
        grid-template-columns:1fr 1fr;
    }

    .smart-visit-metrics>div:first-child{
        grid-column:1/-1;
    }

    .smart-step-list{
        display:flex;
        overflow-x:auto;
        scroll-snap-type:x mandatory;
        padding-bottom:5px;
    }

    .smart-step-card{
        flex:0 0 205px;
        scroll-snap-align:start;
    }

    .smart-progress-caption{
        align-items:flex-start;
        flex-direction:column;
    }
}

@media(max-width:480px){
    .smart-visit-identity{
        align-items:flex-start;
    }

    .smart-visit-store-icon{
        width:42px;
        height:42px;
        flex-basis:42px;
    }

    .smart-visit-identity h2{
        font-size:20px;
    }

    .smart-progress-card,
    .smart-visit-metrics{
        padding:13px;
    }
}


/* =========================================================
   TradeVision v1.2.3 — Fotos Inteligentes
   ========================================================= */
.smart-photo-counter{flex:0 0 auto;min-width:82px;padding:10px 13px;border-radius:12px;background:#e5f1fb;color:#0067c0;text-align:center}
.smart-photo-counter strong,.smart-photo-counter small{display:block}
.smart-photo-counter strong{font-size:22px}
.smart-photo-counter small{margin-top:2px;font-size:9px;font-weight:800}
.smart-photo-hint{margin-bottom:15px;padding:12px 14px;border:1px solid #cbe1f2;border-radius:11px;background:#f3f9fd}
.smart-photo-hint strong,.smart-photo-hint span{display:block}
.smart-photo-hint strong{color:#0067c0;font-size:11px}
.smart-photo-hint span{margin-top:4px;color:var(--muted);font-size:10px;line-height:1.45}
.smart-photo-capture-form{padding:15px;border:1px solid var(--line);border-radius:13px;background:#fafafa}
.smart-photo-preview{display:flex;align-items:center;gap:11px;padding:10px;border:1px solid #b7ddb7;border-radius:11px;background:#f4fbf4}
.smart-photo-preview[hidden]{display:none}
.smart-photo-preview img{flex:0 0 82px;width:82px;height:82px;object-fit:cover;border-radius:9px}
.smart-photo-preview.compact img{flex-basis:58px;width:58px;height:58px}
.smart-photo-preview strong,.smart-photo-preview small{display:block}
.smart-photo-preview small{margin-top:3px;color:var(--muted);font-size:9px}
.smart-area-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
.smart-area-photo-card{overflow:hidden;border:1px solid var(--line);border-radius:13px;background:#fff}
.smart-area-image-button{position:relative;width:100%;min-height:0;display:block;padding:0;border:0;border-radius:0;background:#eee;box-shadow:none}
.smart-area-image-button:hover{border:0;background:#eee;box-shadow:none}
.smart-area-image-button img{width:100%;aspect-ratio:16/9;display:block;object-fit:cover}
.smart-area-image-button>span{position:absolute;right:9px;bottom:9px;padding:5px 8px;border-radius:999px;background:rgba(0,0,0,.62);color:#fff;font-size:9px;font-weight:800}
.smart-area-photo-info{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:11px}
.smart-area-photo-info strong,.smart-area-photo-info small{display:block}
.smart-area-photo-info small{margin-top:3px;color:var(--muted);font-size:9px}
.smart-area-photo-card>form,.smart-retake-details{margin:0 11px 11px}
.smart-retake-details{border:1px solid var(--line);border-radius:10px;background:#fafafa}
.smart-retake-details summary{padding:9px 10px;cursor:pointer;color:#0067c0;font-size:10px;font-weight:800}
.smart-retake-details form{padding:0 10px 10px}
.smart-photo-stage-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;padding:14px;border:1px solid #b7ddb7;border-radius:12px;background:#f4fbf4}
.smart-photo-stage-footer strong,.smart-photo-stage-footer small{display:block}
.smart-photo-stage-footer small{margin-top:4px;color:var(--muted);font-size:9px}
.smart-photo-stage-footer form{flex:0 0 auto;margin:0}
.smart-after-progress{margin-bottom:15px;padding:12px 14px;border-radius:12px;background:#f7f8fa}
.smart-after-progress>div:first-child{display:flex;justify-content:space-between;gap:10px;margin-bottom:7px}
.smart-after-progress span{color:var(--muted);font-size:10px}
.smart-after-progress strong{color:#0067c0}
.smart-comparison-list{display:grid;gap:13px}
.smart-comparison-card{padding:13px;border:1px solid var(--line);border-radius:14px;background:#fff}
.smart-comparison-card.complete{border-color:#b7ddb7;background:#f9fcf9}
.smart-comparison-card.pending{border-color:#ead79e}
.smart-comparison-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:11px}
.smart-comparison-title strong,.smart-comparison-title small{display:block}
.smart-comparison-title small{margin-top:3px;color:var(--muted);font-size:9px}
.smart-comparison-images{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.smart-comparison-images figure{margin:0;overflow:hidden;border:1px solid var(--line);border-radius:11px;background:#f5f5f5}
.smart-comparison-images button{width:100%;min-height:0;display:block;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.smart-comparison-images button:hover{border:0;background:transparent;box-shadow:none}
.smart-comparison-images img{width:100%;aspect-ratio:4/3;display:block;object-fit:cover}
.smart-comparison-images figcaption{padding:7px;text-align:center;color:var(--muted);font-size:9px;font-weight:800}
.smart-after-placeholder{min-height:160px;display:grid;place-items:center;align-content:center;padding:16px;text-align:center;color:var(--muted)}
.smart-after-placeholder strong,.smart-after-placeholder small{display:block}
.smart-after-placeholder small{margin-top:4px;font-size:9px}
.smart-after-form{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.smart-photo-pending-alert{margin-top:14px;padding:13px 14px;border:1px solid #ead79e;border-radius:12px;background:#fff9e8}
.smart-photo-pending-alert strong,.smart-photo-pending-alert span{display:block}
.smart-photo-pending-alert strong{color:#8a5700}
.smart-photo-pending-alert span{margin-top:4px;color:var(--muted);font-size:10px}
.execution-photo-modal{position:fixed;inset:0;z-index:700;display:none}
.execution-photo-modal.open{display:block}
.execution-photo-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.78);backdrop-filter:blur(4px)}
.execution-photo-dialog{position:absolute;inset:4vh 4vw;display:grid;grid-template-rows:minmax(0,1fr) auto;overflow:hidden;border-radius:17px;background:#111;box-shadow:0 26px 90px rgba(0,0,0,.42)}
.execution-photo-close{position:absolute;top:12px;right:12px;z-index:2;width:40px;min-height:40px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.94);color:#222}
.execution-photo-image-wrap{display:grid;place-items:center;overflow:auto}
.execution-photo-image-wrap img{max-width:100%;max-height:80vh;object-fit:contain}
.execution-photo-info{padding:14px 18px;background:#fff}
.execution-photo-info small{color:#0067c0;font-weight:800}
.execution-photo-info h2{margin:5px 0}
.execution-photo-info p{margin:0;color:var(--muted);font-size:11px}
@media(max-width:800px){.smart-area-gallery{grid-template-columns:1fr}.smart-photo-stage-footer{align-items:stretch;flex-direction:column}.smart-photo-stage-footer form,.smart-photo-stage-footer button{width:100%}}
@media(max-width:560px){.smart-after-placeholder{min-height:120px}.execution-photo-dialog{inset:2vh 2vw}}


/* =========================================================
   TradeVision v1.2.4 — Upload Rápido de Fotos
   ========================================================= */
.fast-photo-uploading{
    overflow:hidden !important;
}

.fast-photo-upload-overlay{
    position:fixed;
    inset:0;
    z-index:1200;
    display:none;
    place-items:center;
    padding:20px;
    background:rgba(11,24,36,.72);
    backdrop-filter:blur(6px);
}

.fast-photo-upload-overlay.open{
    display:grid;
}

.fast-photo-upload-card{
    width:min(400px,100%);
    padding:28px 24px;
    border:1px solid rgba(255,255,255,.8);
    border-radius:20px;
    background:#fff;
    text-align:center;
    box-shadow:0 28px 90px rgba(0,0,0,.30);
}

.fast-photo-upload-icon{
    width:62px;
    height:62px;
    display:grid;
    place-items:center;
    margin:0 auto 14px;
    border-radius:18px;
    background:#e5f1fb;
    font-size:28px;
}

.fast-photo-upload-card>small{
    color:#0067c0;
    font-size:9px;
    font-weight:900;
    letter-spacing:.12em;
}

.fast-photo-upload-card h2{
    margin:7px 0 5px;
    font-size:22px;
}

.fast-photo-upload-card p{
    margin:0;
    color:var(--muted);
    font-size:11px;
}

.fast-photo-upload-progress{
    height:12px;
    margin-top:20px;
    overflow:hidden;
    border-radius:999px;
    background:#e6ebef;
}

.fast-photo-upload-progress span{
    display:block;
    width:0;
    height:100%;
    border-radius:inherit;
    background:linear-gradient(90deg,#0067c0,#00a36c);
    transition:width .18s ease;
}

.fast-photo-upload-card>strong{
    display:block;
    margin-top:9px;
    color:#0067c0;
    font-size:20px;
}

.fast-photo-upload-card>em{
    display:block;
    margin-top:12px;
    color:var(--muted);
    font-size:9px;
    font-style:normal;
}

@media(max-width:520px){
    .fast-photo-upload-overlay{
        padding:12px;
    }

    .fast-photo-upload-card{
        padding:24px 18px;
        border-radius:17px;
    }
}


/* =========================================================
   TradeVision v1.3.0 — PWA Base
   ========================================================= */
.tv-pwa-toast{
    position:fixed;
    right:18px;
    bottom:18px;
    z-index:1500;
    width:min(430px,calc(100vw - 36px));
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:14px;
    border:1px solid #c9dce9;
    border-radius:15px;
    background:#fff;
    box-shadow:0 18px 55px rgba(0,0,0,.22);
}

.tv-pwa-toast[hidden]{
    display:none;
}

.tv-pwa-toast strong,
.tv-pwa-toast span{
    display:block;
}

.tv-pwa-toast strong{
    color:#0067c0;
    font-size:12px;
}

.tv-pwa-toast span{
    margin-top:4px;
    color:var(--muted);
    font-size:10px;
    line-height:1.4;
}

.tv-pwa-toast-actions{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    gap:6px;
}

.tv-pwa-toast-actions button{
    min-height:36px;
    margin:0;
    padding:0 11px;
    white-space:nowrap;
    font-size:9px;
}

html[data-connection="offline"] .topbar::after{
    content:"Offline";
    flex:0 0 auto;
    padding:5px 8px;
    border-radius:999px;
    background:#fde7e9;
    color:#a4262c;
    font-size:9px;
    font-weight:850;
}

@media(max-width:620px){
    .tv-pwa-toast{
        right:10px;
        bottom:10px;
        width:calc(100vw - 20px);
        align-items:stretch;
        flex-direction:column;
    }

    .tv-pwa-toast-actions{
        width:100%;
    }

    .tv-pwa-toast-actions button{
        flex:1;
    }
}


/* =========================================================
   TradeVision v1.3.1 — Banco Local IndexedDB
   ========================================================= */
.tv-local-db-chip{
    flex:0 0 auto;
    min-height:38px;
    display:flex;
    align-items:center;
    gap:8px;
    padding:6px 10px;
    border:1px solid #c9dce9;
    border-radius:999px;
    background:#fff;
    color:var(--text);
    box-shadow:none;
}

.tv-local-db-chip:hover{
    border-color:#8fc4ea;
    background:#f4f9fd;
    box-shadow:none;
}

.tv-local-db-chip.error{
    border-color:#efb4b4;
    background:#fff4f4;
}

.tv-local-db-dot{
    width:9px;
    height:9px;
    flex:0 0 9px;
    border-radius:50%;
    background:#107c10;
    box-shadow:0 0 0 4px rgba(16,124,16,.12);
}

.tv-local-db-chip.error .tv-local-db-dot{
    background:#c42b1c;
    box-shadow:0 0 0 4px rgba(196,43,28,.12);
}

.tv-local-db-chip strong,
.tv-local-db-chip small{
    display:block;
    text-align:left;
    line-height:1.15;
}

.tv-local-db-chip strong{
    font-size:9px;
}

.tv-local-db-chip small{
    margin-top:2px;
    color:var(--muted);
    font-size:8px;
}

.tv-local-db-modal{
    position:fixed;
    inset:0;
    z-index:1600;
    display:none;
}

.tv-local-db-modal.open{
    display:block;
}

.tv-local-db-backdrop{
    position:absolute;
    inset:0;
    background:rgba(11,24,36,.72);
    backdrop-filter:blur(5px);
}

.tv-local-db-dialog{
    position:absolute;
    top:50%;
    left:50%;
    width:min(540px,calc(100vw - 28px));
    max-height:calc(100vh - 28px);
    overflow:auto;
    transform:translate(-50%,-50%);
    padding:24px;
    border:1px solid #d5e1e9;
    border-radius:19px;
    background:#fff;
    box-shadow:0 28px 90px rgba(0,0,0,.30);
}

.tv-local-db-close{
    position:absolute;
    top:12px;
    right:12px;
    width:38px;
    min-height:38px;
    padding:0;
    border-radius:50%;
    background:#f2f4f6;
    color:#333;
}

.tv-local-db-dialog>small{
    color:#0067c0;
    font-weight:900;
    letter-spacing:.1em;
}

.tv-local-db-dialog h2{
    margin:7px 0;
}

.tv-local-db-dialog>p{
    margin:0;
    color:var(--muted);
    font-size:11px;
    line-height:1.5;
}

.tv-local-db-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
    margin-top:18px;
}

.tv-local-db-grid article{
    padding:12px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#f8f9fa;
}

.tv-local-db-grid span,
.tv-local-db-grid strong{
    display:block;
}

.tv-local-db-grid span{
    color:var(--muted);
    font-size:9px;
}

.tv-local-db-grid strong{
    margin-top:5px;
    font-size:14px;
}

.tv-local-db-description{
    margin:14px 0;
    padding:13px;
    border:1px solid #cbe1f2;
    border-radius:12px;
    background:#f3f9fd;
}

.tv-local-db-description strong,
.tv-local-db-description span{
    display:block;
}

.tv-local-db-description strong{
    color:#0067c0;
    font-size:11px;
}

.tv-local-db-description span{
    margin-top:4px;
    color:var(--muted);
    font-size:10px;
    line-height:1.45;
}

.tv-local-db-dialog>button{
    width:100%;
}

.tv-local-db-dialog>em{
    display:block;
    margin-top:12px;
    color:var(--muted);
    font-size:9px;
    font-style:normal;
    text-align:center;
}

@media(max-width:760px){
    .tv-local-db-chip{
        min-width:38px;
        width:38px;
        justify-content:center;
        padding:0;
    }

    .tv-local-db-chip>span:last-child{
        display:none;
    }

    .tv-local-db-grid{
        grid-template-columns:1fr 1fr;
    }
}


/* =========================================================
   TradeVision v1.3.2 — Agenda Offline
   ========================================================= */
.offline-agenda-button{
    min-height:42px;
    display:flex;
    align-items:center;
    gap:8px;
    text-align:left;
}

.offline-agenda-button>span:first-child{
    font-size:18px;
    font-weight:900;
}

.offline-agenda-button strong,
.offline-agenda-button small{
    display:block;
}

.offline-agenda-button strong{
    font-size:10px;
}

.offline-agenda-button small{
    margin-top:2px;
    color:var(--muted);
    font-size:8px;
}

.tv-offline-agenda-chip{
    flex:0 0 auto;
    min-height:38px;
    display:flex;
    align-items:center;
    gap:8px;
    padding:6px 10px;
    border:1px solid #d4dbe0;
    border-radius:999px;
    background:#fff;
    color:var(--text);
    box-shadow:none;
}

.tv-offline-agenda-chip:hover{
    border-color:#8fc4ea;
    background:#f4f9fd;
    box-shadow:none;
}

.tv-offline-agenda-chip.ready{
    border-color:#b7ddb7;
    background:#f4fbf4;
}

.tv-offline-agenda-chip>span:first-child{
    color:#0067c0;
    font-size:16px;
    font-weight:900;
}

.tv-offline-agenda-chip strong,
.tv-offline-agenda-chip small{
    display:block;
    text-align:left;
    line-height:1.15;
}

.tv-offline-agenda-chip strong{
    font-size:9px;
}

.tv-offline-agenda-chip small{
    margin-top:2px;
    color:var(--muted);
    font-size:8px;
}

.offline-agenda-panel{
    margin-top:14px;
    border-color:#b7ddb7;
    background:linear-gradient(135deg,#fff,#f7fcf7);
}

.offline-agenda-panel-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    margin-bottom:14px;
}

.offline-agenda-panel-head small{
    color:#107c10;
    font-weight:900;
    letter-spacing:.08em;
}

.offline-agenda-panel-head h2{
    margin:5px 0;
}

.offline-agenda-panel-head p{
    margin:0;
    color:var(--muted);
    font-size:10px;
}

.offline-agenda-list{
    display:grid;
    gap:8px;
}

.offline-agenda-card{
    display:grid;
    grid-template-columns:60px minmax(0,1fr) auto;
    align-items:center;
    gap:12px;
    padding:12px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fff;
}

.offline-agenda-time{
    display:grid;
    place-items:center;
    min-height:44px;
    border-radius:10px;
    background:#e5f1fb;
    color:#0067c0;
    font-size:13px;
    font-weight:900;
}

.offline-agenda-info{
    min-width:0;
}

.offline-agenda-info strong,
.offline-agenda-info span,
.offline-agenda-info small{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.offline-agenda-info span{
    margin-top:4px;
    color:var(--muted);
    font-size:9px;
}

.offline-agenda-info small{
    margin-top:5px;
    color:#47545d;
    font-size:9px;
    font-weight:750;
}

.offline-agenda-saved{
    padding:5px 8px;
    border-radius:999px;
    background:#dff6dd;
    color:#107c10;
    font-size:8px;
    font-weight:900;
}

@media(max-width:760px){
    .tv-offline-agenda-chip{
        min-width:38px;
        width:38px;
        justify-content:center;
        padding:0;
    }

    .tv-offline-agenda-chip>span:last-child{
        display:none;
    }

    .offline-agenda-card{
        grid-template-columns:52px minmax(0,1fr);
    }

    .offline-agenda-saved{
        grid-column:2;
        justify-self:start;
    }
}


/* =========================================================
   TradeVision v1.3.3 — App Engine Offline
   ========================================================= */
.offline-app-body{
    min-height:100vh;
    margin:0;
    background:#f4f6f8;
    color:#1f1f1f;
}

.offline-app-header{
    position:sticky;
    top:0;
    z-index:10;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    min-height:68px;
    padding:12px 18px;
    border-bottom:1px solid #dbe3e8;
    background:rgba(255,255,255,.96);
    backdrop-filter:blur(8px);
}

.offline-app-brand{
    display:flex;
    align-items:center;
    gap:10px;
}

.offline-app-logo{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:12px;
    background:#0067c0;
    color:#fff;
    font-weight:900;
}

.offline-app-brand strong,
.offline-app-brand small{
    display:block;
}

.offline-app-brand small{
    margin-top:2px;
    color:#68747d;
    font-size:9px;
}

.offline-app-status{
    display:flex;
    align-items:center;
    gap:7px;
    padding:6px 9px;
    border-radius:999px;
    background:#fde7e9;
    color:#a4262c;
    font-size:9px;
    font-weight:850;
}

.offline-app-status span{
    width:8px;
    height:8px;
    border-radius:50%;
    background:#c42b1c;
}

.offline-app-container{
    width:min(920px,100%);
    margin:0 auto;
    padding:18px;
}

.offline-app-hero{
    padding:20px;
    border:1px solid #cce2f3;
    border-radius:17px;
    background:linear-gradient(135deg,#fff,#f1f8fd);
    box-shadow:0 10px 28px rgba(0,0,0,.06);
}

.offline-app-hero small{
    color:#0067c0;
    font-weight:900;
    letter-spacing:.08em;
}

.offline-app-hero h1{
    margin:7px 0 5px;
}

.offline-app-hero p{
    margin:0;
    color:#66727c;
    font-size:11px;
}

.offline-app-visit-list{
    display:grid;
    gap:10px;
    margin-top:14px;
}

.offline-app-visit-card{
    display:grid;
    grid-template-columns:58px minmax(0,1fr) auto;
    align-items:center;
    gap:12px;
    padding:13px;
    border:1px solid #dce3e8;
    border-radius:14px;
    background:#fff;
    box-shadow:0 7px 20px rgba(0,0,0,.05);
}

.offline-app-time{
    min-height:48px;
    display:grid;
    place-items:center;
    border-radius:11px;
    background:#e5f1fb;
    color:#0067c0;
    font-weight:900;
}

.offline-app-visit-info{
    min-width:0;
}

.offline-app-visit-info strong,
.offline-app-visit-info span,
.offline-app-visit-info small{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.offline-app-visit-info span{
    margin-top:4px;
    color:#6b7780;
    font-size:9px;
}

.offline-app-visit-info small{
    margin-top:5px;
    color:#47545d;
    font-size:9px;
    font-weight:750;
}

.offline-app-visit-card button{
    white-space:nowrap;
}

.offline-app-detail,
.offline-app-execution{
    margin-top:14px;
    padding:18px;
    border:1px solid #dce3e8;
    border-radius:16px;
    background:#fff;
    box-shadow:0 10px 28px rgba(0,0,0,.07);
}

.offline-app-section-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
}

.offline-app-section-head small{
    color:#0067c0;
    font-weight:900;
    letter-spacing:.08em;
}

.offline-app-section-head h2{
    margin:5px 0;
}

.offline-app-section-head p{
    margin:0;
    color:#66727c;
    font-size:10px;
    line-height:1.45;
}

.offline-app-detail-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
    margin-top:15px;
}

.offline-app-detail-grid article{
    padding:12px;
    border-radius:12px;
    background:#f7f8fa;
}

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

.offline-app-detail-grid span{
    color:#6b7780;
    font-size:9px;
}

.offline-app-detail-grid strong{
    margin-top:5px;
    font-size:12px;
}

.offline-app-notice,
.offline-app-next{
    margin:14px 0;
    padding:13px;
    border:1px solid #cbe1f2;
    border-radius:12px;
    background:#f3f9fd;
}

.offline-app-notice strong,
.offline-app-notice span,
.offline-app-next strong,
.offline-app-next span{
    display:block;
}

.offline-app-notice strong,
.offline-app-next strong{
    color:#0067c0;
}

.offline-app-notice span,
.offline-app-next span{
    margin-top:4px;
    color:#66727c;
    font-size:10px;
    line-height:1.45;
}

.offline-app-detail>button{
    width:100%;
}

.offline-app-progress-head{
    display:flex;
    justify-content:space-between;
    gap:10px;
    margin-top:16px;
}

.offline-app-progress{
    height:11px;
    margin-top:8px;
    overflow:hidden;
    border-radius:999px;
    background:#e7ebee;
}

.offline-app-progress span{
    display:block;
    width:0;
    height:100%;
    border-radius:inherit;
    background:linear-gradient(90deg,#0067c0,#00a36c);
}

.offline-app-uuid{
    margin-top:14px;
    padding:12px;
    border:1px dashed #a9b9c4;
    border-radius:12px;
    background:#fafafa;
}

.offline-app-uuid span,
.offline-app-uuid strong{
    display:block;
}

.offline-app-uuid span{
    color:#6b7780;
    font-size:9px;
}

.offline-app-uuid strong{
    margin-top:5px;
    overflow-wrap:anywhere;
    font-family:monospace;
    font-size:10px;
}

.offline-app-empty{
    padding:35px 20px;
    border:1px dashed #b8c4cc;
    border-radius:15px;
    background:#fff;
    text-align:center;
}

.offline-app-empty>div{
    color:#0067c0;
    font-size:30px;
}

.offline-app-empty strong,
.offline-app-empty span{
    display:block;
}

.offline-app-empty strong{
    margin-top:10px;
}

.offline-app-empty span{
    margin-top:5px;
    color:#66727c;
    font-size:10px;
    line-height:1.45;
}

@media(max-width:680px){
    .offline-app-container{
        padding:12px;
    }

    .offline-app-visit-card{
        grid-template-columns:52px minmax(0,1fr);
    }

    .offline-app-visit-card button{
        grid-column:1/-1;
        width:100%;
    }

    .offline-app-detail-grid{
        grid-template-columns:1fr 1fr;
    }

    .offline-app-section-head{
        align-items:stretch;
        flex-direction:column;
    }
}


/* TradeVision v1.3.4 — Offline API Engine */
.tv-local-db-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
}

.tv-local-db-actions button{
    width:100%;
    margin:0;
}

@media(max-width:520px){
    .tv-local-db-actions{
        grid-template-columns:1fr;
    }
}


/* TradeVision v1.3.4.1 — correção de falso modo offline */
html[data-connection="offline"],
html[data-connection="offline"] body,
.offline-app-body{
    background:#f4f6f8 !important;
    color:#1f1f1f !important;
    color-scheme:light;
}

/* TradeVision 3.0.0 — Gestão da Plataforma */
.platform-auth-body .auth-showcase{background:linear-gradient(145deg,#081a33,#0a4d8c)}
.platform-sidebar .tv-sidebar-head small{color:#93c5fd}
.platform-dashboard{padding-bottom:48px}
.platform-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}
.platform-primary{background:#0067c0!important;color:#fff!important;border-color:#0067c0!important}
.platform-table{width:100%;border-collapse:collapse}
.platform-table th,.platform-table td{padding:14px 12px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:middle}
.platform-table th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#64748b}
.platform-table td strong{display:block}.platform-table td small{display:block;color:#64748b;margin-top:3px}
.platform-status{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700;background:#e2e8f0;color:#334155}
.platform-status.active{background:#dcfce7;color:#166534}.platform-status.trial{background:#fef3c7;color:#92400e}.platform-status.suspended,.platform-status.cancelled{background:#fee2e2;color:#991b1b}
.platform-actions{display:flex;gap:8px;align-items:center}.platform-actions form{margin:0}
.platform-two-col{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.85fr);gap:20px;align-items:start}
.platform-form label{display:block;font-weight:700;font-size:13px;margin:14px 0 6px}.platform-form input,.platform-form select{width:100%}
.platform-form .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}
.platform-form button[type=submit]{margin-top:18px}
.platform-admin-list{margin-top:24px;border-top:1px solid #e5e7eb;padding-top:18px}.platform-admin-list h3{margin:0 0 12px}.platform-admin-list>div{display:grid;grid-template-columns:1fr 1.3fr auto;gap:10px;padding:10px 0;border-bottom:1px solid #eef2f7}.platform-admin-list span{color:#64748b}.platform-admin-list em{font-style:normal;font-size:12px;font-weight:700;color:#166534}
@media(max-width:1200px){.platform-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.platform-two-col{grid-template-columns:1fr}.platform-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-form .form-grid{grid-template-columns:1fr}.platform-table{min-width:900px}}


/* TradeVision 3.1.0 — Planos e Limites */
.platform-plan-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.platform-plan-card{display:flex;flex-direction:column;gap:18px}.platform-plan-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.platform-plan-head small{font-size:11px;color:#0067c0;font-weight:800;letter-spacing:.08em}.platform-plan-head h2{margin:4px 0 0}.platform-plan-price{font-size:28px;font-weight:800}.platform-plan-price small{font-size:12px;color:#64748b;font-weight:500}.platform-limit-list{border-top:1px solid #e5e7eb}.platform-limit-list>div{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #eef2f7}.platform-limit-list span{color:#64748b}.platform-limit-form-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.platform-limit-title{margin-top:28px}.platform-usage-panel{margin-bottom:20px}.platform-usage-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.platform-usage-item{padding:14px;border:1px solid #e5e7eb;border-radius:14px;background:#f8fafc}.platform-usage-item>div:first-child{display:flex;justify-content:space-between;gap:10px}.platform-usage-item span{font-size:12px;color:#64748b}.platform-usage-item strong{font-size:13px}.platform-progress{height:7px!important;margin-top:10px;background:#e2e8f0;border-radius:999px;overflow:hidden}.platform-progress i{display:block;height:100%;background:#0067c0;border-radius:999px}.platform-usage-item small{display:block;margin-top:8px;color:#64748b}@media(max-width:1200px){.platform-plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-limit-form-grid,.platform-usage-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.platform-plan-grid,.platform-limit-form-grid,.platform-usage-grid{grid-template-columns:1fr}}

/* TradeVision 3.2.0 — Suporte e Auditoria */
.platform-support-panel{border:1px solid #bfdbfe;background:linear-gradient(180deg,#f8fbff,#fff)}
.platform-support-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end}
.platform-support-form label{display:block;font-size:13px;font-weight:700;margin-bottom:6px}.platform-support-form input{width:100%}
.platform-support-button{white-space:nowrap;background:#0f4c81!important}.platform-secure-badge{display:inline-flex;padding:6px 10px;border-radius:999px;background:#dbeafe;color:#1e40af;font-size:12px;font-weight:800}
.platform-support-banner{position:sticky;top:0;z-index:80;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 20px;background:#fff7ed;border-bottom:1px solid #fdba74;box-shadow:0 3px 12px rgba(124,45,18,.08)}
.platform-support-banner>div{display:flex;align-items:center;gap:12px;min-width:0}.platform-support-banner strong{display:inline-flex;padding:5px 9px;border-radius:999px;background:#c2410c;color:#fff;font-size:11px;letter-spacing:.06em}.platform-support-banner span{font-size:13px;color:#7c2d12;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.platform-support-banner form{margin:0}.platform-support-banner button{margin:0;padding:8px 12px;background:#fff;border:1px solid #ea580c;color:#9a3412;border-radius:9px;font-weight:800}
.platform-audit-section{margin-bottom:20px}.platform-audit-table code{font-size:11px;background:#eef2f7;padding:4px 7px;border-radius:7px}.platform-audit-table{min-width:1050px}
@media(max-width:760px){.platform-support-form{grid-template-columns:1fr}.platform-support-banner{align-items:flex-start;flex-direction:column}.platform-support-banner>div{align-items:flex-start;flex-direction:column}.platform-support-banner span{white-space:normal}.platform-support-banner form,.platform-support-banner button{width:100%}}

.platform-commercial-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin:18px 0}.platform-commercial-kpis .panel{padding:18px}.platform-commercial-kpis small{display:block;font-weight:800;color:#64748b}.platform-commercial-kpis strong{display:block;font-size:24px;margin-top:6px}.platform-billing-panel textarea{width:100%}@media(max-width:900px){.platform-commercial-kpis{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.platform-commercial-kpis{grid-template-columns:1fr}}

/* TradeVision 3.4.0 — Personalização por empresa */
.platform-brand-preview{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid #dbe3eb;border-left:5px solid var(--brand-primary);border-radius:14px;background:linear-gradient(135deg,#fff,var(--brand-secondary));min-width:270px}
.platform-brand-preview>span,.platform-brand-preview>img{width:48px;height:48px;display:grid;place-items:center;border-radius:11px;background:var(--brand-primary);color:white;font-weight:900;object-fit:contain;padding:4px}
.platform-brand-preview div{display:flex;flex-direction:column;gap:2px}.platform-brand-preview strong{color:#0f172a;font-size:15px}.platform-brand-preview small{color:#64748b;letter-spacing:0;font-size:11px}
.platform-color-field{display:grid;grid-template-columns:58px 1fr;gap:8px}.platform-color-field input[type=color]{padding:3px;cursor:pointer}
.platform-logo-upload small{display:block;margin-top:6px;color:#64748b;letter-spacing:0}.platform-remove-logo{display:flex;align-items:end}.platform-remove-logo label{display:flex;gap:8px;align-items:center;margin-bottom:12px}.platform-remove-logo input{width:auto;height:auto}
.tv-logo-mark img.tv-company-logo-runtime{padding:2px;background:#fff}

/* TradeVision 3.5.0 — Dashboard Gerencial */
.management-dashboard{padding-bottom:40px}.management-filters{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr)) auto;gap:12px;align-items:end;margin-bottom:18px}.management-filters label{display:block;font-size:11px;font-weight:800;color:#64748b;margin-bottom:5px;text-transform:uppercase}.management-filters input,.management-filters select{width:100%}.management-kpis{display:grid;grid-template-columns:repeat(6,minmax(145px,1fr));gap:14px;margin-bottom:18px}.management-kpis .operational-kpi{min-height:112px}.management-trend{height:270px;display:flex;align-items:flex-end;gap:8px;overflow-x:auto;padding:18px 4px 4px}.management-trend-day{min-width:42px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}.management-trend-day .trend-bars{height:205px;width:30px;display:flex;align-items:flex-end;gap:3px}.management-trend-day .trend-bars span{width:13px;min-height:3px;border-radius:5px 5px 1px 1px}.management-trend-day small{font-size:10px;color:#64748b}.management-trend-day strong{font-size:11px}.management-sub{display:block;color:#64748b;margin-top:3px}.management-dashboard .panel{margin-bottom:18px}
@media(max-width:1250px){.management-kpis{grid-template-columns:repeat(3,1fr)}.management-filters{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.management-kpis{grid-template-columns:repeat(2,1fr)}.management-filters{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.management-kpis,.management-filters{grid-template-columns:1fr}}

/* TradeVision 3.6.0 — Ruptura e Estoque Inteligente */
.stock-dashboard{padding-bottom:40px}.stock-filters{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr)) auto;gap:12px;align-items:end;margin-bottom:18px}.stock-filters label{display:block;font-size:11px;font-weight:800;color:#64748b;margin-bottom:5px;text-transform:uppercase}.stock-filters input,.stock-filters select{width:100%}.stock-kpis{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:14px;margin-bottom:18px}.stock-dashboard .panel{margin-bottom:18px}.stock-sub{display:block;color:#64748b;margin-top:3px}.stock-danger{color:#b91c1c}.stock-alert{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800}.stock-alert.rupture{background:#fee2e2;color:#991b1b}.stock-alert.low{background:#fef3c7;color:#92400e}.stock-threshold-form{display:flex;gap:6px;align-items:center}.stock-threshold-form input{width:78px;min-width:78px}
@media(max-width:1100px){.stock-kpis{grid-template-columns:repeat(3,1fr)}.stock-filters{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.stock-kpis{grid-template-columns:repeat(2,1fr)}.stock-filters{grid-template-columns:1fr 1fr}}
@media(max-width:500px){.stock-kpis,.stock-filters{grid-template-columns:1fr}}

/* TradeVision 3.7.0 — Data Curta e Validade */
.expiry-dashboard{padding-bottom:40px}.expiry-filters{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr)) auto;gap:12px;align-items:end;margin-bottom:18px}.expiry-filters label{display:block;font-size:11px;font-weight:800;color:#64748b;margin-bottom:5px;text-transform:uppercase}.expiry-filters input,.expiry-filters select{width:100%}.expiry-kpis{display:grid;grid-template-columns:repeat(6,minmax(145px,1fr));gap:14px;margin-bottom:18px}.expiry-dashboard .panel{margin-bottom:18px}.expiry-sub{display:block;color:#64748b;margin-top:3px}.expiry-status{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800}.expiry-status.expired,.expiry-status.critical{background:#fee2e2;color:#991b1b}.expiry-status.warning{background:#fef3c7;color:#92400e}.expiry-status.attention{background:#ede9fe;color:#6d28d9}.expiry-status.ok{background:#dcfce7;color:#166534}
@media(max-width:1150px){.expiry-kpis{grid-template-columns:repeat(3,1fr)}.expiry-filters{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.expiry-kpis{grid-template-columns:repeat(2,1fr)}.expiry-filters{grid-template-columns:1fr 1fr}}
@media(max-width:500px){.expiry-kpis,.expiry-filters{grid-template-columns:1fr}}

/* TradeVision 3.8.0 — Checklist Dinâmico */
.checklist-admin{padding-bottom:40px}.checklist-admin-grid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(420px,1.2fr);gap:18px;margin-bottom:18px}.checklist-template-list{display:grid;gap:9px}.checklist-template-card{display:grid;grid-template-columns:1fr auto;gap:5px 12px;padding:13px;border:1px solid #e5e9ef;border-radius:12px;text-decoration:none;color:inherit}.checklist-template-card.selected{border-color:#0067c0;background:#f4f9ff}.checklist-template-card strong,.checklist-template-card small{display:block}.checklist-template-card small{color:#64748b;margin-top:3px}.checklist-template-card em{grid-column:1/3;font-style:normal;font-size:11px;color:#64748b}.checklist-template-form label,.checklist-item-new label{display:block;font-size:12px;font-weight:700;color:#475569;margin:8px 0 5px}.checklist-template-form input,.checklist-template-form select,.checklist-item-new input,.checklist-item-new select{width:100%}.checklist-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:end}.check-box{display:flex!important;gap:8px;align-items:center;padding-bottom:10px}.check-box input{width:auto!important}.checklist-item-new{display:grid;grid-template-columns:2fr 1fr 90px 130px auto;gap:10px;align-items:end;margin-bottom:18px}.dynamic-checklist-items{display:grid;gap:12px;margin-bottom:16px}.dynamic-checklist-item{border:1px solid #e5e9ef;border-radius:12px;padding:14px;background:#fff}.dynamic-checklist-question{display:flex;gap:10px;align-items:flex-start;margin-bottom:10px}.dynamic-checklist-question>span{display:grid;place-items:center;min-width:26px;height:26px;border-radius:50%;background:#eaf4ff;color:#0067c0;font-weight:800}.dynamic-checklist-question strong,.dynamic-checklist-question small{display:block}.dynamic-checklist-question small{color:#64748b;margin-top:3px}.dynamic-checklist-item textarea,.dynamic-checklist-item>input{width:100%}.dynamic-yes-no{display:flex;gap:10px}.dynamic-yes-no label{cursor:pointer}.dynamic-yes-no input{position:absolute;opacity:0}.dynamic-yes-no span{display:inline-flex;padding:9px 18px;border:1px solid #d8dee8;border-radius:9px;font-weight:700}.dynamic-yes-no input:checked+span{background:#eaf4ff;border-color:#0067c0;color:#0057a4}
@media(max-width:900px){.checklist-admin-grid{grid-template-columns:1fr}.checklist-item-new{grid-template-columns:1fr 1fr}.checklist-item-new>div:first-child{grid-column:1/3}}
@media(max-width:600px){.checklist-item-new,.checklist-form-row{grid-template-columns:1fr}.checklist-item-new>div:first-child{grid-column:auto}.dynamic-yes-no{display:grid;grid-template-columns:1fr 1fr}.dynamic-yes-no span{justify-content:center}}

/* TradeVision 3.8.1 — Cadastro manual de Lojas e Produtos */
.page-head-actions{display:flex;gap:9px;flex-wrap:wrap}.manual-create{padding-bottom:40px}.manual-form-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:14px}.manual-form-grid label{display:block;font-size:12px;font-weight:800;color:#475569;margin-bottom:6px}.manual-form-grid input,.manual-form-grid select{width:100%}.manual-form-grid .span-2{grid-column:span 2}.manual-form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
@media(max-width:900px){.manual-form-grid{grid-template-columns:1fr 1fr}.manual-form-grid .span-2{grid-column:span 2}}
@media(max-width:560px){.manual-form-grid{grid-template-columns:1fr}.manual-form-grid .span-2{grid-column:auto}.page-head-actions{width:100%}.page-head-actions a{flex:1;text-align:center}}

/* TradeVision 3.9.0 — Central de Alertas */
.alert-center{padding-bottom:40px}.alert-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:16px}.alert-kpis a{background:#fff;border:1px solid #e4e9f0;border-radius:14px;padding:14px;text-decoration:none;color:inherit}.alert-kpis small{display:block;color:#64748b;font-size:10px;font-weight:800}.alert-kpis strong{font-size:27px}.alert-filters{display:flex;gap:10px;align-items:center;margin-bottom:16px}.alert-filters select{min-width:180px}.alert-list{display:grid;gap:12px}.alert-card{background:#fff;border:1px solid #e5e9ef;border-left:5px solid #94a3b8;border-radius:14px;padding:16px}.alert-card.critical{border-left-color:#dc2626}.alert-card.warning{border-left-color:#f59e0b}.alert-card.attention{border-left-color:#2563eb}.alert-card.resolved{opacity:.72}.alert-card-head{display:flex;justify-content:space-between;gap:10px}.alert-type,.alert-status{font-size:10px;font-weight:900;padding:5px 8px;border-radius:999px;background:#eef2f7;margin-right:5px}.alert-card h2{font-size:18px;margin:12px 0 7px}.alert-store span,.alert-people span{color:#64748b;font-size:12px}.alert-store strong{display:block}.alert-details,.alert-people{display:flex;gap:18px;flex-wrap:wrap;margin-top:10px}.alert-details b{font-size:12px}.alert-action-note{background:#f7f9fc;padding:10px;border-radius:9px;margin-top:12px;font-size:13px}.alert-action-note small{display:block;font-weight:800;color:#64748b;margin-bottom:3px}.alert-actions{display:flex;gap:10px;align-items:flex-end;margin-top:13px}.alert-actions form{display:flex;gap:8px;align-items:flex-end;flex:1}.alert-actions textarea{flex:1;min-width:220px}
@media(max-width:900px){.alert-kpis{grid-template-columns:repeat(2,1fr)}.alert-actions,.alert-actions form{align-items:stretch;flex-direction:column}.alert-actions textarea{width:100%}}
@media(max-width:560px){.alert-kpis{grid-template-columns:1fr 1fr}.alert-filters{display:grid}.alert-filters select{min-width:0;width:100%}.alert-card-head{align-items:flex-start;flex-direction:column}}

/* TradeVision 3.9.1 — Notificações ao Vendedor */
.tv-notification-wrap{position:relative;margin-left:auto;margin-right:8px}.tv-notification-bell{position:relative;width:42px;height:42px;border:1px solid #dce3ec;background:#fff;border-radius:12px;display:grid;place-items:center;cursor:pointer}.tv-notification-icon{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;font-weight:900;font-size:13px;background:#eef4fb;color:#0b65b5}.tv-notification-badge{position:absolute;right:-5px;top:-6px;min-width:20px;height:20px;padding:0 5px;display:grid;place-items:center;border-radius:999px;background:#94a3b8;color:#fff;font-size:10px;font-weight:900;border:2px solid #fff}.tv-notification-badge.has-alerts{background:#dc2626}.tv-notification-popover{position:absolute;right:0;top:50px;width:min(390px,calc(100vw - 30px));background:#fff;border:1px solid #dfe5ed;border-radius:15px;box-shadow:0 18px 48px rgba(15,23,42,.18);z-index:1000;overflow:hidden}.tv-notification-head{padding:13px 14px;border-bottom:1px solid #edf1f5;display:flex;justify-content:space-between;gap:10px;align-items:center}.tv-notification-head strong,.tv-notification-head small{display:block}.tv-notification-head small{color:#64748b;margin-top:2px;font-size:11px}.tv-enable-browser-notifications{font-size:10px;padding:7px 9px}.tv-notification-list{max-height:330px;overflow:auto}.tv-notification-item{display:block;padding:11px 14px;border-bottom:1px solid #edf1f5;text-decoration:none;color:inherit;border-left:4px solid #94a3b8}.tv-notification-item.critical{border-left-color:#dc2626}.tv-notification-item.warning{border-left-color:#f59e0b}.tv-notification-item.attention{border-left-color:#2563eb}.tv-notification-item span{font-size:9px;font-weight:900;color:#64748b;text-transform:uppercase}.tv-notification-item strong,.tv-notification-item small{display:block}.tv-notification-item strong{font-size:13px;margin:3px 0}.tv-notification-item small{font-size:11px;color:#64748b}.tv-notification-item:hover{background:#f8fafc}.tv-notification-empty{padding:24px;text-align:center;color:#64748b;font-size:12px}.tv-notification-all{display:block;padding:11px;text-align:center;text-decoration:none;font-weight:800;font-size:12px;background:#f8fafc}.topbar{overflow:visible}
@media(max-width:700px){.tv-notification-popover{position:fixed;right:10px;left:10px;top:70px;width:auto}.tv-enable-browser-notifications{font-size:9px}}

.tv-nav-label{display:flex;align-items:center;gap:7px}.tv-nav-alert-badge{display:inline-grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#dc2626;color:#fff;font-size:9px;font-weight:900;margin-left:auto}

/* TradeVision 3.9.1.1 — compatibilidade do botão de menu */
@media (min-width:901px){
  body.sidebar-collapsed .tv-sidebar{width:74px}
  body.sidebar-collapsed .tv-sidebar .tv-brand-text,
  body.sidebar-collapsed .tv-sidebar .tv-nav-label,
  body.sidebar-collapsed .tv-sidebar .tv-user-info{display:none}
  body.sidebar-collapsed .topbar,
  body.sidebar-collapsed .container{margin-left:74px}
}
@media (max-width:900px){
  .tv-sidebar{transform:translateX(-105%);transition:transform .22s ease;z-index:1200}
  body.sidebar-mobile-open .tv-sidebar,.tv-sidebar.mobile-open{transform:translateX(0)}
  .tv-sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(15,23,42,.38);z-index:1190}
  .tv-sidebar-overlay.active,body.sidebar-mobile-open .tv-sidebar-overlay{display:block}
}
\n/* TradeVision 3.9.2 */.commercial-actions{padding-bottom:40px}.commercial-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:15px}.commercial-kpis>a,.commercial-kpis>div{background:#fff;border:1px solid #e3e8ef;border-radius:14px;padding:14px;text-decoration:none;color:inherit}.commercial-kpis small{display:block;font-size:9px;font-weight:900;color:#64748b}.commercial-kpis strong{display:block;font-size:27px;margin-top:4px}.commercial-kpis span{font-size:10px;color:#64748b}.commercial-kpis .critical{border-color:#fecaca}.commercial-kpis .critical strong{color:#dc2626}.commercial-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.commercial-panel{overflow:hidden;padding:0;margin-bottom:14px}.commercial-panel h2{font-size:16px;padding:15px;margin:0;border-bottom:1px solid #edf1f5}.commercial-table-wrap{overflow:auto}.commercial-table-wrap table{width:100%;border-collapse:collapse}.commercial-table-wrap th,.commercial-table-wrap td{padding:10px 12px;border-bottom:1px solid #edf1f5;text-align:left;font-size:11px}.commercial-table-wrap th{font-size:9px;color:#64748b;background:#f8fafc}.commercial-footer-actions{display:flex;gap:9px;flex-wrap:wrap}@media(max-width:1100px){.commercial-kpis{grid-template-columns:repeat(3,1fr)}}@media(max-width:800px){.commercial-grid{grid-template-columns:1fr}.commercial-kpis{grid-template-columns:repeat(2,1fr)}}
/* TradeVision 3.10.0 — Fotos e Auditoria */
.photo-audit{padding-bottom:42px}.photo-audit-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:11px;margin-bottom:16px}.photo-audit-kpis>a,.photo-audit-kpis>div{background:#fff;border:1px solid #e3e8ef;border-radius:14px;padding:14px;text-decoration:none;color:inherit}.photo-audit-kpis small{display:block;font-size:9px;font-weight:900;color:#64748b}.photo-audit-kpis strong{display:block;font-size:27px;margin:4px 0}.photo-audit-kpis span{font-size:10px;color:#64748b}.photo-audit-kpis .warning{border-color:#fed7aa;background:#fffaf5}.photo-audit-kpis .warning strong{color:#c2410c}.photo-audit-grid{display:grid;grid-template-columns:1.5fr .8fr;gap:14px}.audit-sub{display:block;color:#64748b;margin-top:3px}.audit-status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:900}.audit-status.complete{background:#dcfce7;color:#166534}.audit-status.incomplete{background:#fee2e2;color:#991b1b}.photo-filters{grid-template-columns:repeat(6,minmax(120px,1fr)) auto!important}.comparison-images img{width:100%;height:300px;object-fit:cover;display:block}.comparison-card{background:#fff;border:1px solid #e3e8ef;border-radius:14px;overflow:hidden}.comparison-card-head{display:flex;justify-content:space-between;padding:14px}.comparison-card-head h2{margin:3px 0}.comparison-images{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#e5e7eb}.comparison-images figure{margin:0;background:#fff}.comparison-images figcaption{padding:9px;font-weight:800;text-align:center}.comparison-pending{height:300px;display:grid;place-items:center;background:#f8fafc;color:#64748b}
@media(max-width:1200px){.photo-audit-kpis{grid-template-columns:repeat(3,1fr)}.photo-filters{grid-template-columns:repeat(3,1fr)!important}}@media(max-width:900px){.photo-audit-grid{grid-template-columns:1fr}.comparison-images{grid-template-columns:1fr}}@media(max-width:620px){.photo-audit-kpis{grid-template-columns:repeat(2,1fr)}.photo-filters{grid-template-columns:1fr!important}}

/* TradeVision 3.10.1 — Avaliação da Execução */
.execution-review{padding-bottom:42px}.review-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:15px}.review-overview .panel{padding:14px}.review-overview small,.review-overview strong,.review-overview span{display:block}.review-overview small{font-size:9px;font-weight:900;color:#64748b}.review-overview strong{font-size:17px;margin:4px 0}.review-overview span{font-size:10px;color:#64748b}.review-photo-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}.review-photo-columns h3{font-size:14px;margin:0 0 9px}.review-photo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.review-photo-grid figure{margin:0;border:1px solid #e3e8ef;border-radius:11px;overflow:hidden}.review-photo-grid img{width:100%;height:220px;object-fit:cover;display:block}.review-photo-grid figcaption{padding:7px;font-size:10px}.review-photo-empty{height:220px;display:grid;place-items:center;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:11px;color:#64748b}.review-form-panel{margin-top:15px}.review-status-options{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.review-status-options input{position:absolute;opacity:0}.review-status-options span{display:flex;justify-content:center;padding:12px;border:1px solid #dce3ec;border-radius:11px;font-weight:800;cursor:pointer}.review-status-options .approved input:checked+span{background:#dcfce7;border-color:#22c55e;color:#166534}.review-status-options .improve input:checked+span{background:#fef3c7;border-color:#f59e0b;color:#92400e}.review-status-options .rejected input:checked+span{background:#fee2e2;border-color:#ef4444;color:#991b1b}.review-form-grid{display:grid;grid-template-columns:180px 1fr;gap:12px;margin-bottom:12px}.review-form-grid label{display:block;font-size:11px;font-weight:800;color:#64748b;margin-bottom:5px}.review-form-grid input,.review-form-grid textarea{width:100%}.review-pill{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:900}.review-pill.approved{background:#dcfce7;color:#166534}.review-pill.improve{background:#fef3c7;color:#92400e}.review-pill.rejected{background:#fee2e2;color:#991b1b}.review-pill.pending{background:#eef2f7;color:#64748b}.review-readonly{padding:14px;background:#f8fafc;border-radius:11px}.review-readonly p{margin:0 0 8px}.review-readonly small{color:#64748b}
@media(max-width:900px){.review-overview{grid-template-columns:repeat(2,1fr)}.review-photo-columns{grid-template-columns:1fr}}@media(max-width:600px){.review-status-options{grid-template-columns:1fr}.review-form-grid{grid-template-columns:1fr}.review-photo-grid{grid-template-columns:1fr}}

/* TradeVision 3.11.0 — Ranking e Performance */
.team-performance{padding-bottom:42px}.team-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:11px;margin-bottom:15px}.team-kpis>div{background:#fff;border:1px solid #e3e8ef;border-radius:14px;padding:14px}.team-kpis small,.team-kpis strong,.team-kpis span{display:block}.team-kpis small{font-size:9px;font-weight:900;color:#64748b}.team-kpis strong{font-size:25px;margin:4px 0}.team-kpis span{font-size:10px;color:#64748b}.team-filter{margin-bottom:15px}.team-filter form{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr)) auto auto;gap:10px;align-items:end}.team-filter label{display:block;font-size:10px;font-weight:800;color:#64748b;margin-bottom:5px}.team-ranking{overflow:hidden;padding:0}.team-ranking .tv-section-title{padding:15px}.team-ranking .tv-section-title>span{font-size:10px;color:#64748b}.team-sub{display:block;color:#64748b;margin-top:3px}.rank-position{display:inline-grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#eef2f7;font-weight:900}.rank-position.top{background:#fff3cd;color:#8a5b00}.team-progress{width:85px;height:5px;background:#e8edf3;border-radius:999px;overflow:hidden;margin-top:5px}.team-progress i{display:block;height:100%;background:var(--company-color,#0067c0);border-radius:999px}.team-note{margin-top:12px;padding:12px 14px;border-radius:11px;background:#f8fafc;color:#64748b;font-size:10px}.team-note strong{color:#334155}
@media(max-width:1150px){.team-kpis{grid-template-columns:repeat(3,1fr)}.team-filter form{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.team-kpis{grid-template-columns:repeat(2,1fr)}.team-filter form{grid-template-columns:1fr}}

/* TradeVision 3.12.0 — Central de Comunicação */
.communication-center{padding-bottom:42px}.comm-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin-bottom:15px}.comm-kpis>div{background:#fff;border:1px solid #e3e8ef;border-radius:14px;padding:14px}.comm-kpis small,.comm-kpis strong{display:block}.comm-kpis small{font-size:9px;font-weight:900;color:#64748b}.comm-kpis strong{font-size:25px;margin-top:4px}.comm-channels{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}.comm-channels>div{border:1px solid #e3e8ef;border-radius:12px;padding:13px;opacity:.65}.comm-channels>div.active{opacity:1;border-color:var(--company-color,#0067c0)}.comm-channels strong,.comm-channels span{display:block}.comm-channels span{font-size:10px;color:#64748b;margin-top:4px}.comm-settings{border-top:1px solid #edf1f5;padding-top:15px}.comm-toggle{font-weight:900}.comm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin:14px 0}.comm-grid label{display:block;font-size:10px;font-weight:800;color:#64748b;margin-bottom:5px}.comm-events{display:flex;gap:16px;flex-wrap:wrap;margin:10px 0 15px;font-size:11px}.comm-history{margin-top:15px;padding:0;overflow:hidden}.comm-history .tv-section-title{padding:15px}.comm-status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:900}.comm-status.pending{background:#fef3c7;color:#92400e}.comm-status.sent{background:#dcfce7;color:#166534}.comm-status.failed{background:#fee2e2;color:#991b1b}.comm-status.cancelled{background:#eef2f7;color:#64748b}@media(max-width:900px){.comm-kpis,.comm-channels{grid-template-columns:repeat(2,1fr)}.comm-grid{grid-template-columns:1fr}}

/* TradeVision 3.12.1.1 — correção visual da Central de Comunicação */
.comm-smtp-box{margin:16px 0;padding:14px;border:1px solid #e3e8ef;border-radius:13px;background:#f8fafc}
.comm-smtp-box .tv-section-title.compact{padding:0 0 10px;margin:0}
.comm-smtp-box h3{margin:2px 0 0;font-size:15px}
.comm-settings select{width:100%;min-height:44px;border:1px solid #dce3ec;border-radius:10px;padding:0 10px;background:#fff}
.comm-toggle{display:flex!important;align-items:center;gap:9px;margin:16px 0!important}
.comm-toggle input,.comm-events input{width:20px!important;height:20px!important;min-height:0!important;margin:0!important;accent-color:var(--company-color,#0067c0)}
.comm-events label{display:flex!important;align-items:center;gap:7px}
.comm-status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:900}
.comm-status.pending{background:#fef3c7;color:#92400e}.comm-status.sent{background:#dcfce7;color:#166534}.comm-status.failed{background:#fee2e2;color:#991b1b}
