/* ASN System V4.8.9 — sistema visual único
   Estilos exclusivamente, não modifica lógica de negócio, chamadas Supabase ou permissões. */
html.asn-brand-v482{
 --asn-ruby:#d82945;--asn-ruby-strong:#e73550;--asn-ruby-soft:rgba(216,41,69,.14);
 --asn-surface:#121b26;--asn-surface-2:#182332;--asn-stroke:#303f50;
 --asn-ink:#f4f7fb;--asn-muted:#c0cddd;--asn-dim:#9aadc4;
 --asn-nav-w:266px;--asn-nav-bg:#0a1119!important;--asn-nav-bg2:#101a24!important;
 --asn-nav-line:#293747!important;--asn-nav-text:#d1dbe8!important;
 --asn-nav-muted:#a2b2c5!important;--asn-nav-active:#ba2339!important;
 --accent:#d82945!important;--accent-hover:#e9465e!important;
 -webkit-text-size-adjust:100%;text-size-adjust:100%;
}
html.asn-brand-v482[data-theme=dark]{
 color-scheme:dark;
 --bg-main:#0c121a!important;--bg-secondary:#141d27!important;--bg-tertiary:#1a2633!important;
 --bg-elevated:#1c2936!important;--border:#344456!important;--border-soft:#2d3d4d!important;
 --text-main:#f4f7fb!important;--text-support:#c8d4e2!important;--text-muted:#afbed1!important;
 --asn-control-bg:#101923;--asn-control-text:#f5f8fc;--asn-control-placeholder:#acbed2;
 --asn-card-bg:#141e29;--asn-card-border:#334253;--asn-detail:#bdccdc;
 --cf-bg:#0c121a!important;--cf-panel:#141e29!important;--cf-border:#344456!important;
 --cf-text:#f4f7fb!important;--cf-muted:#becddd!important;
}
html.asn-brand-v482[data-theme=light],html.asn-brand-v482:not([data-theme]){
 color-scheme:light;
 --bg-main:#f2f5f9!important;--bg-secondary:#fff!important;--bg-tertiary:#f1f5fa!important;
 --bg-elevated:#fff!important;--border:#d6dfeb!important;--border-soft:#e0e7f0!important;
 --text-main:#162235!important;--text-support:#3e5065!important;--text-muted:#52667d!important;
 --asn-control-bg:#fff;--asn-control-text:#182538;--asn-control-placeholder:#61728a;
 --asn-card-bg:#fff;--asn-card-border:#d9e2ee;--asn-detail:#506176;
 --cf-bg:#f2f5f9!important;--cf-panel:#fff!important;--cf-border:#d9e2ee!important;
 --cf-text:#162235!important;--cf-muted:#495b70!important;
}
html.asn-brand-v482:not(.asn-auth-page) body{
 color:var(--text-main)!important;background:var(--bg-main)!important;
}
html.asn-brand-v482:not(.asn-auth-page) .main-content{background:transparent!important;color:var(--text-main)!important;min-width:0!important;}
html.asn-brand-v482 :is(.main-content,main.wrap,main.page,.page-content,.pc-main,.catalogo-container){min-width:0}
html.asn-brand-v482 :is(.main-content,main.wrap,main.page) :is(h1,h2,h3,h4){color:var(--text-main);}
/* Navegação recriada pela navigation-v450.js, preservando acesso e troca de empresa */
html.asn-brand-v482 .asn-sidebar.sidebar{
 width:var(--asn-nav-w)!important;background:linear-gradient(165deg,#101923 0%,#0a1119 92%)!important;
 border-right:1px solid #2c3847!important;box-shadow:7px 0 26px rgba(0,0,0,.17)!important;
 color:#ecf2fa!important;overscroll-behavior:contain!important;
}
html.asn-brand-v482 .asn-sidebar .asn-nav-brand{
 height:85px!important;min-height:85px!important;padding:0 16px!important;gap:10px!important;
 border-bottom:1px solid #263441!important;
}
html.asn-brand-v482 .asn-sidebar .asn-nav-mark{
 background:transparent url('asn-logo-icon-v483.png') center / contain no-repeat!important;
 width:51px!important;height:51px!important;flex:0 0 51px!important;
 font-size:0!important;color:transparent!important;border:0!important;box-shadow:none!important;
}
html.asn-brand-v482 .asn-nav-brand-text strong{font-size:18px!important;letter-spacing:-.035em!important;color:#f7faff!important;font-weight:900!important}
html.asn-brand-v482 .asn-nav-brand-text .asn-word-system{color:#f14a60!important;font-weight:600!important}
html.asn-brand-v482 .asn-nav-brand-text small{color:#aab9c9!important;font-size:10px!important;letter-spacing:.075em!important;margin-top:5px!important}
html.asn-brand-v482 .asn-sidebar .asn-nav-company{background:#151f2c!important;border:1px solid #354456!important;border-radius:13px!important;margin:12px 13px 2px!important;padding:12px 12px!important}
html.asn-brand-v482 .asn-sidebar .asn-nav-company strong{color:#f4f7fa!important;font-size:12px!important;line-height:1.35!important}
html.asn-brand-v482 .asn-sidebar .asn-nav-company small{color:#aebed0!important;font-size:10px!important}
html.asn-brand-v482 .asn-sidebar .asn-nav-company .asn-nav-plan{color:#c0d2e0!important;font-size:10px!important}
html.asn-brand-v482 .asn-sidebar .asn-nav-company-select{background:#0f1925!important;color:#f2f6fd!important;border:1px solid #4a5c70!important;font-size:12px!important;min-height:37px!important}
html.asn-brand-v482 .asn-sidebar nav{padding:8px 12px 11px!important;scrollbar-width:thin;scrollbar-color:#3a4b5d transparent}
html.asn-brand-v482 .asn-sidebar .asn-nav-group{color:#99a9ba!important;letter-spacing:.12em!important;font-size:10px!important;padding:17px 11px 7px!important}
html.asn-brand-v482 .asn-sidebar .asn-nav-link{
 border-radius:10px!important;color:#ced9e8!important;gap:12px!important;padding:12px 12px!important;
 margin:3px 0!important;line-height:1.35!important;font-size:12px!important;font-weight:680!important;
 min-height:44px!important;box-shadow:none!important;transition:background .16s,color .16s,border .16s!important;
}
html.asn-brand-v482 .asn-sidebar .asn-nav-link:hover{background:#202d3b!important;color:#fff!important}
html.asn-brand-v482 .asn-sidebar .asn-nav-link.active{
 background:linear-gradient(98deg,#ad172e 0%,#e23750 100%)!important;
 border:1px solid rgba(255,125,141,.48)!important;box-shadow:0 4px 17px rgba(182,23,49,.24),inset 0 1px 0 rgba(255,255,255,.13)!important;
 color:#fff!important;padding:12px 12px!important;margin:3px 0!important;
}
html.asn-brand-v482 .asn-sidebar .asn-nav-icon{width:21px!important;flex:0 0 21px!important;color:inherit!important;display:grid!important;place-items:center!important}
html.asn-brand-v482 .asn-sidebar .asn-nav-icon svg{width:19px;height:19px;display:block}
html.asn-brand-v482 .asn-nav-chip{background:#422633!important;color:#ffb3be!important}
html.asn-brand-v482 .asn-nav-footer{background:#0d151e!important;border-top:1px solid #2d3b49!important;padding:10px 12px!important}
html.asn-brand-v482 .asn-nav-user{font-size:10px!important;color:#bbc9d8!important}
html.asn-brand-v482 .asn-nav-cloud{color:#8cefc8!important;border-color:#326555!important}
html.asn-brand-v482 .asn-nav-mobile{background:#ac1931!important;color:#fff!important;border:1px solid #ec5b6d!important;box-shadow:0 5px 21px #0005!important;border-radius:12px!important;width:46px!important;height:46px!important;top:12px!important;left:12px!important}
html.asn-brand-v482 .asn-sidebar :is(a,button,select):focus-visible{outline:2px solid #ffadb9!important;outline-offset:2px!important}
/* Padronização de cartões, modais e tabelas sem alterar status semânticos */
html.asn-brand-v482:not(.asn-auth-page) :is(.main-content,main.wrap,main.page,.page-content) :is(
 .card,.dash-card,.v34-panel,.v34-kpi,.v34-filterbar,.cf-panel,.cf-card,.pp-card,.pc-card,.pc-mini-card,
 .cat-card,.cat-summary-card,.panel,.form-container,.table-container,.chart-card,.box-card,.metric-card,.dashboard-card,
 .summary-card,.filter-panel,.fiscal-card,.glass-card,.kpi-card){
 background:var(--asn-card-bg)!important;border:1px solid var(--asn-card-border)!important;
 border-radius:15px!important;box-shadow:0 10px 32px rgba(4,12,22,.09)!important;color:var(--text-main)!important;
}
html.asn-brand-v482:not(.asn-auth-page)[data-theme=dark] :is(.main-content,main.wrap,main.page) :is(.card,.dash-card,.v34-panel,.v34-kpi,.cf-panel,.pp-card,.pc-card,.cat-card,.panel){box-shadow:0 9px 28px rgba(0,0,0,.16)!important}
html.asn-brand-v482:not(.asn-auth-page) :is(.main-content,main.wrap,main.page) :is(.card,.dash-card,.cf-panel,.pc-card,.pp-card) :is(h2,h3,h4){color:var(--text-main)!important}
html.asn-brand-v482:not(.asn-auth-page) :is(.main-content,main.wrap,main.page) :is(.card,.dash-card,.cf-panel,.pc-card,.pp-card) :is(p,small,.muted,.subtitle,.description){color:var(--text-support)}
html.asn-brand-v482:not(.asn-auth-page) :is(.main-content,main.wrap,main.page) :is(table,thead,tbody,tr,td,th){border-color:var(--border)!important}
html.asn-brand-v482:not(.asn-auth-page) :is(.main-content,main.wrap,main.page) :is(th,thead){color:var(--text-support)!important}
html.asn-brand-v482:not(.asn-auth-page) :is(.main-content,main.wrap,main.page) td{color:var(--text-main)}
html.asn-brand-v482:not(.asn-auth-page) :is(.main-content,main.wrap,main.page) :is(table,.table-responsive,.table-container){max-width:100%;}
/* Campos: evitar fonte quase invisível em todos os módulos, inclusive selects e autofill */
html.asn-brand-v482:not(.asn-auth-page) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea){
 background:var(--asn-control-bg)!important;color:var(--asn-control-text)!important;
 -webkit-text-fill-color:var(--asn-control-text)!important;border:1px solid var(--border)!important;
 opacity:1!important;caret-color:var(--asn-ruby-strong)!important;min-height:43px;
 border-radius:10px!important;max-width:100%;font-size:max(14px,1em);line-height:1.35!important;
}
html.asn-brand-v482:not(.asn-auth-page) :is(input,textarea)::placeholder{color:var(--asn-control-placeholder)!important;-webkit-text-fill-color:var(--asn-control-placeholder)!important;opacity:1!important}
html.asn-brand-v482:not(.asn-auth-page) :is(select,select option){color:var(--asn-control-text)!important;background:var(--asn-control-bg)!important}
html.asn-brand-v482:not(.asn-auth-page) :is(input,textarea,select):-webkit-autofill{-webkit-text-fill-color:var(--asn-control-text)!important;box-shadow:0 0 0 80px var(--asn-control-bg) inset!important}
html.asn-brand-v482:not(.asn-auth-page) :is(input,textarea,select):focus-visible{outline:2px solid #ef7085!important;outline-offset:2px!important;border-color:#ef7085!important;box-shadow:0 0 0 4px rgba(226,52,80,.11)!important}
html.asn-brand-v482:not(.asn-auth-page) :is(label,.form-label,.field-label,.cf-form label,.v34-filterbar label){color:var(--text-support)!important;opacity:1!important}
html.asn-brand-v482:not(.asn-auth-page) :is(.muted,.helper,.hint,.help-text,.description,.subtext,.v34-muted,.v34-kpi-desc,.v34-kpi-label){color:var(--text-support)!important;opacity:1!important}
html.asn-brand-v482:not(.asn-auth-page) button:not(:disabled){opacity:1}
html.asn-brand-v482:not(.asn-auth-page) :is(.v34-btn-primary,.cf-btn-primary,.btn-primary,.btn-submit,.pp-btn-primary,button.primary,button.btn-primary){
 color:#fff!important;background:linear-gradient(115deg,#b71e35,#e43d57)!important;
 border-color:#ef6d82!important;box-shadow:0 6px 18px rgba(188,28,52,.17)!important;border-radius:10px!important;
}
html.asn-brand-v482:not(.asn-auth-page) :is(.btn-secondary,.v34-btn:not(.v34-btn-primary),.cf-btn:not(.cf-btn-primary)){
 color:var(--text-main)!important;background:var(--bg-tertiary)!important;border:1px solid var(--border)!important;
}
html.asn-brand-v482:not(.asn-auth-page) :is(button,a,select,input,textarea):focus-visible{outline:2px solid #f77b90!important;outline-offset:2px!important}
/* indicadores existentes e quadro financeiro */
html.asn-brand-v482 .v34-kpi-icon,html.asn-brand-v482 .asn-v487-card-icon{background:linear-gradient(150deg,#ae142e,#e13b54)!important;color:#fff!important;border-radius:11px!important}
html.asn-brand-v482 .v34-kpi-value{color:var(--text-main)!important;font-weight:850!important}
html.asn-brand-v482 .asn-v487-costs-grid>*{min-width:0}
/* Login e cadastro mantém tema premium legível */
html.asn-brand-v482.asn-auth-page{color-scheme:dark!important;--asn-control-bg:#111c29;--asn-control-text:#f8fafc;--asn-control-placeholder:#b6c8d9}
html.asn-brand-v482.asn-auth-page body{background:radial-gradient(ellipse at 76% 8%,rgba(134,26,47,.29),transparent 45%),#0b121b!important;color:#f5f8fc!important}
html.asn-brand-v482.asn-auth-page :is(.wrap,.shell){background:#161f2b!important;border:1px solid #3e4c5c!important;border-radius:21px!important;box-shadow:0 26px 72px #0006!important}
html.asn-brand-v482.asn-auth-page :is(.brand,.hero){background:linear-gradient(150deg,#212431,#111b29)!important}
html.asn-brand-v482.asn-auth-page :is(h1,h2,h3,.panel h2){color:#fff!important}
html.asn-brand-v482.asn-auth-page :is(.sub,.note,.foot,.brand p,.hero p,.hero li){color:#cfdae7!important;opacity:1!important}
html.asn-brand-v482.asn-auth-page :is(label,.g label,.group label){color:#e1eaf4!important;opacity:1!important}
html.asn-brand-v482.asn-auth-page :is(input,textarea,select){background:#101b29!important;color:#f7fafc!important;-webkit-text-fill-color:#f7fafc!important;border:1px solid #667b91!important;min-height:46px!important;font-size:16px!important;opacity:1!important}
html.asn-brand-v482.asn-auth-page :is(input,textarea)::placeholder{color:#bdcbdc!important;-webkit-text-fill-color:#bdcbdc!important;opacity:1!important}
html.asn-brand-v482.asn-auth-page :is(button.primary,button#btn-criar,.primary){background:linear-gradient(115deg,#ad1c32,#e33e57)!important;border:1px solid #f06f84!important;color:#fff!important;opacity:1!important}
html.asn-brand-v482.asn-auth-page :is(a.secondary,button.secondary,.link){color:#f0f5fc!important;opacity:1!important}
html.asn-brand-v482.asn-auth-page :is(input,textarea,select):focus-visible{border-color:#ff9eae!important;outline:2px solid #ff9eae!important;outline-offset:2px!important}
html.asn-brand-v482.asn-auth-page :is(.status.err,.error){color:#ffe6ea!important}
html.asn-brand-v482.asn-auth-page :is(.status.ok,.success){color:#d6ffed!important}
@media(max-width:1024px){
 html.asn-brand-v482 :is(.main-content,main.wrap,main.page){max-width:100%!important}
 html.asn-brand-v482 .asn-sidebar nav{padding:8px!important}
}
@media(max-width:900px){
 html.asn-brand-v482 .asn-sidebar.sidebar{width:min(288px,calc(100vw - 54px))!important;max-width:min(288px,calc(100vw - 54px))!important;transform:translateX(-103%)!important}
 html.asn-brand-v482 .asn-sidebar.sidebar.show,html.asn-brand-v482 .asn-sidebar.sidebar.open{transform:translateX(0)!important}
 html.asn-brand-v482 body.asn-mobile-menu-open{overflow:hidden!important}
 html.asn-brand-v482 .asn-nav-mobile{display:grid!important;place-items:center!important}
 html.asn-brand-v482 body.asn-nav-ready .main-content,
 html.asn-brand-v482 body.asn-nav-ready>main.wrap,
 html.asn-brand-v482 body.asn-nav-ready>main.page{margin-left:0!important;max-width:100vw!important;width:100%!important;padding-top:74px!important}
 html.asn-brand-v482 :is(.main-content,.pc-main,main.wrap,main.page){padding-left:16px!important;padding-right:16px!important}
 html.asn-brand-v482 :is(.main-content,main.wrap,main.page) :is(.dashboard-cards,.cards,.grid,.form-grid){max-width:100%;min-width:0}
 html.asn-brand-v482 :is(.table-container,.cf-table-wrap,.pp-table-wrap,.pc-table-container){overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
}
@media(max-width:580px){
 html.asn-brand-v482 .main-content{padding-left:12px!important;padding-right:12px!important;overflow-x:clip!important}
 html.asn-brand-v482:not(.asn-auth-page) :is(.main-content,main.wrap,main.page) :is(.card,.dash-card,.v34-panel,.cf-panel,.pp-card,.pc-card,.panel,.form-container){border-radius:13px!important}
 html.asn-brand-v482 .asn-nav-mobile{top:max(10px,env(safe-area-inset-top))!important;left:11px!important}
 html.asn-brand-v482 :is(.main-content,main.wrap,main.page) :is(input:not([type=checkbox]):not([type=radio]),textarea,select){font-size:16px!important}
 html.asn-brand-v482.asn-auth-page body{padding:12px!important;min-height:100dvh}
 html.asn-brand-v482.asn-auth-page :is(.wrap,.shell){width:100%!important;max-width:100%!important;border-radius:15px!important}
 html.asn-brand-v482.asn-auth-page :is(.brand,.hero){padding:24px 19px!important}
 html.asn-brand-v482.asn-auth-page :is(.panel,.form){padding:25px 19px!important}
}
@media(prefers-reduced-motion:reduce){html.asn-brand-v482 *{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
/* Ajustes de componentes específicos que tinham largura rígida no celular */
@media(max-width:640px){
 html.asn-brand-v482 .main-content>.section-header-row{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:13px!important}
 html.asn-brand-v482 .main-content>.section-header-row>.section-title{font-size:1.15rem!important;line-height:1.35!important;max-width:100%!important}
 html.asn-brand-v482 .main-content>.section-header-row>div{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;width:100%!important}
 html.asn-brand-v482 .main-content>.section-header-row>div>button{min-width:0!important;width:100%!important;overflow-wrap:anywhere!important;line-height:1.3!important;padding:11px 8px!important;min-height:54px!important;font-size:.80rem!important}
 html.asn-brand-v482 .fin-unified-tabs{max-width:100%!important;overflow-x:auto!important;scrollbar-width:thin!important;scrollbar-color:#66788a transparent!important;overscroll-behavior-x:contain!important;scroll-snap-type:x proximity!important;padding-bottom:9px!important}
 html.asn-brand-v482 .fin-unified-tabs>button{flex:0 0 auto!important;scroll-snap-align:start!important;white-space:nowrap!important}
 html.asn-brand-v482 .main-content>.table-compras{overflow-x:auto!important;max-width:100%!important;-webkit-overflow-scrolling:touch}
 html.asn-brand-v482 .main-content>.table-compras table{min-width:610px!important}
}

/* V4.9.0 — indicador de localização do menu: somente a rota ativa recebe rubi. */
html.asn-brand-v482 .asn-sidebar nav a.asn-nav-link[aria-current="page"]{
 background:linear-gradient(98deg,#af1830,#e13751)!important;
 border:1px solid rgba(255,141,156,.65)!important;
 color:#fff!important;
 box-shadow:0 4px 16px rgba(180,20,50,.23),inset 0 1px 0 rgba(255,255,255,.12)!important;
}
html.asn-brand-v482 .asn-sidebar nav a.asn-nav-link[aria-current="page"] .asn-nav-icon,
html.asn-brand-v482 .asn-sidebar nav a.asn-nav-link[aria-current="page"] .asn-nav-label{color:#fff!important;}
