/* GUIA DE LEITURA: interações gerais da interface, menu lateral e apresentação de estados.
 * Os seletores definem onde aplicar cada regra; a ordem na cascata e as consultas @media afetam o resultado visual.
 * Visão geral: docs/permanente/GUIA_DO_CODIGO.md.
 */
:root{--ad-primary-blue:#165f8f;--ad-primary-blue-hover:#104c73;--ad-primary-blue-soft:#e8f2f8;--ad-primary-orange:#e97818;--ad-primary-orange-hover:#c75f0c;--ad-primary-orange-soft:#fff0e2;--ad-primary:var(--ad-primary-orange);--ad-primary-hover:var(--ad-primary-orange-hover);--ad-primary-soft:var(--ad-primary-orange-soft);--ad-secondary:var(--ad-primary-blue);--ad-bg:#f4f6f8;--ad-surface:#fff;--ad-surface-subtle:#f8fafb;--ad-text:#18242c;--ad-text-muted:#66747d;--ad-border:#dbe2e7;--ad-success:#28734d;--ad-warning:#a46b12;--ad-warning-soft:#fff5df;--ad-danger:#a43e3e;--ad-danger-soft:#fbecec;--ad-sidebar:#0d3e63;--ad-sidebar-muted:#a9c3d5;--ad-radius-sm:7px;--ad-radius:10px;--ad-radius-lg:14px;--ad-shadow:0 1px 2px rgba(20,54,76,.06);--ad-space-1:4px;--ad-space-2:8px;--ad-space-3:12px;--ad-space-4:16px;--ad-space-5:20px;--ad-space-6:24px;--ad-sidebar-width:260px;--ink:var(--ad-text);--muted:var(--ad-text-muted);--paper:var(--ad-bg);--line:var(--ad-border);--green:var(--ad-primary-blue);--green2:var(--ad-primary-blue-soft);--red:var(--ad-danger);--red2:var(--ad-danger-soft);--white:var(--ad-surface)}
html{scroll-behavior:smooth}body.app-body{margin:0;min-height:100vh;background:var(--ad-bg);color:var(--ad-text);font:14px/1.45 Inter,"Segoe UI",Arial,sans-serif}.svg-sprite{position:absolute;width:0;height:0;overflow:hidden}.app-sidebar{position:fixed;inset:0 auto 0 0;width:var(--ad-sidebar-width);z-index:50;display:flex;flex-direction:column;background:var(--ad-sidebar);color:#fff;border-right:1px solid rgba(255,255,255,.06)}.doisa-brand{height:72px;display:flex;align-items:center;gap:12px;padding:0 20px;color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.08)}.brand-mark{width:34px;height:34px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.34);border-radius:9px;font-weight:850;font-size:18px}.doisa-brand strong,.doisa-brand small{display:block}.doisa-brand strong{font-size:14px;letter-spacing:.16em}.doisa-brand small{margin-top:2px;color:var(--ad-sidebar-muted);font-size:10px;letter-spacing:.02em}.side-nav{display:block;flex:1;overflow-y:auto;padding:16px 12px;scrollbar-width:thin;scrollbar-color:#52665e transparent}.side-nav a,.side-nav summary{min-height:42px;display:flex;align-items:center;gap:11px;border-radius:8px;color:#cbd7d2;text-decoration:none;font-weight:600;cursor:pointer}.side-nav>.nav-item,.side-nav summary{padding:0 12px;margin:2px 0}.side-nav svg,.app-topbar svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}.side-nav #i-grid rect{fill:none}.side-nav a:hover,.side-nav summary:hover{background:rgba(255,255,255,.055);color:#fff}.side-nav>.nav-item.active,.nav-group div a.active{background:#205e48;color:#fff}.nav-group{position:static;color:inherit}.nav-group summary{list-style:none}.nav-group summary::-webkit-details-marker{display:none}.nav-group summary span{flex:1}.nav-group summary .chevron{width:15px;transition:transform .18s}.nav-group[open] summary .chevron{transform:rotate(90deg)}.nav-group>div{position:static!important;display:grid!important;min-width:0!important;background:transparent!important;border:0!important;box-shadow:none!important;padding:2px 0 7px 43px!important}.nav-group:not([open])>div{display:none!important}.nav-group div a{min-height:36px;padding:7px 10px!important;color:var(--ad-sidebar-muted)!important;font-size:13px;white-space:normal!important}.nav-group div a:hover,.nav-group div a.active{color:#fff!important}.sidebar-footer{padding:16px 20px 20px;border-top:1px solid rgba(255,255,255,.07)}.sidebar-footer span,.sidebar-footer small{display:block}.sidebar-footer span{font-size:10px;font-weight:800;letter-spacing:.13em}.sidebar-footer small{font-size:10px;color:var(--ad-sidebar-muted);margin-top:2px}.app-shell{min-height:100vh;margin-left:var(--ad-sidebar-width)}header.app-topbar{position:sticky;top:0;z-index:35;height:64px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.96);color:var(--ad-text);border-bottom:1px solid var(--ad-border);backdrop-filter:blur(8px)}.page-context small,.page-context strong{display:block}.page-context small{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--ad-text-muted)}.page-context strong{font-size:16px;margin-top:1px}.icon-button{width:38px;height:38px;padding:0;display:none;place-items:center;background:transparent;color:var(--ad-text);border:1px solid var(--ad-border)}.account-menu{position:relative;color:var(--ad-text)}.account-menu summary{min-width:190px;display:flex;align-items:center;gap:10px;list-style:none;cursor:pointer}.account-menu summary::-webkit-details-marker{display:none}.avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--ad-primary-soft);color:var(--ad-primary);font-weight:800}.account-copy{flex:1}.account-copy strong,.account-copy small{display:block}.account-copy strong{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.account-copy small{color:var(--ad-text-muted);font-size:11px}.account-menu .chevron{width:14px;transform:rotate(90deg)}.account-menu>div{position:absolute;right:0;top:44px;width:220px;padding:7px;background:#fff;border:1px solid var(--ad-border);border-radius:var(--ad-radius);box-shadow:0 14px 35px rgba(18,37,30,.14)}.account-heading{padding:10px;border-bottom:1px solid var(--ad-border);margin-bottom:4px}.account-heading strong,.account-heading small{display:block}.account-heading small{color:var(--ad-text-muted)}.account-menu>div a{display:block;padding:9px 10px;border-radius:6px;color:var(--ad-text);text-decoration:none}.account-menu>div a:hover{background:var(--ad-bg)}.account-menu .logout{color:var(--ad-danger)}.app-main{max-width:none;margin:0;padding:28px clamp(20px,3vw,42px) 64px}.sidebar-scrim{display:none}
.app-main h1{font-family:Inter,"Segoe UI",sans-serif;font-size:30px;letter-spacing:-.025em}.app-main h2{font-family:Inter,"Segoe UI",sans-serif;font-size:17px;letter-spacing:-.01em}.hero,.dash-heading{align-items:center;margin-bottom:22px}.hero h1,.dash-heading h1{font-family:Inter,"Segoe UI",sans-serif}.eyebrow{color:var(--ad-primary);letter-spacing:.1em}.panel,.form-card,.info-card,.balance-card,.metrics article{border:1px solid var(--ad-border);border-radius:var(--ad-radius);box-shadow:var(--ad-shadow);background:var(--ad-surface)}.panel{overflow:hidden}.panel-title{min-height:58px;padding:15px 18px}.panel-title h2{font-size:16px}.metrics,.dash-kpis{gap:12px;background:transparent;border:0}.dash-kpis{grid-template-columns:repeat(4,minmax(150px,1fr))}.dash-kpis a{position:relative;min-height:116px;padding:18px;background:#fff;border:1px solid var(--ad-border)!important;border-radius:var(--ad-radius);box-shadow:var(--ad-shadow)}.dash-kpis a:hover{border-color:#b7c9c0!important;transform:translateY(-1px)}.dash-kpis span{color:var(--ad-text-muted);letter-spacing:.045em}.dash-kpis strong{font-family:Inter,"Segoe UI",sans-serif;font-size:30px;letter-spacing:-.03em}.dash-kpis small{font-size:11px}.dash-main{gap:14px}.chart-area{background:repeating-linear-gradient(to top,#fff 0,#fff 49px,#edf1ef 50px)}.columns i{border-radius:4px 4px 1px 1px}.entry-bar{background:var(--ad-primary)}.exit-bar{background:#a65b55}.dash-actions{justify-content:flex-start;padding:18px 0}.recent-panel{margin-top:0}
.button,button{min-height:38px;border-radius:var(--ad-radius-sm);padding:9px 14px;font-weight:700;font-size:13px;transition:background .15s,border-color .15s,color .15s,transform .1s}.button:active,button:active{transform:translateY(1px)}.button.dark,.button.green,.green,button.dark{background:var(--ad-primary);color:#fff}.button.dark:hover,.button.green:hover,.green:hover{background:var(--ad-primary-hover)}.button.red,.red{background:var(--ad-danger);color:#fff}.button:not(.dark):not(.green):not(.red),.hero-actions .button:not(.dark){background:#fff;color:var(--ad-secondary);border:1px solid var(--ad-border)}.hero-actions{display:flex;gap:8px;flex-wrap:wrap}.link-button{padding:4px 6px;min-height:0;background:transparent!important;color:var(--ad-primary)!important}.link-button.danger{color:var(--ad-danger)!important}
input,select,textarea{min-height:40px;border:1px solid #cbd5d0;border-radius:var(--ad-radius-sm);padding:9px 11px;background:#fff;color:var(--ad-text);outline:none}textarea{min-height:92px;resize:vertical}input:hover,select:hover,textarea:hover{border-color:#aebdb6}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid rgba(22,92,66,.17);outline-offset:1px;border-color:var(--ad-primary)}label{color:#33463e;font-size:13px}.search,.filters{gap:8px;padding:14px;background:var(--ad-surface-subtle);border:1px solid var(--ad-border);border-radius:var(--ad-radius);margin-bottom:12px;flex-wrap:wrap}.panel>.search,.panel>.filters{margin:0;border-width:0 0 1px;border-radius:0}.filters button,.search button{background:var(--ad-primary)}
table{font-size:13px}th{height:41px;padding:10px 14px;background:#f5f7f6;color:#5e6d66;font-size:10px;letter-spacing:.065em;border-bottom:1px solid var(--ad-border)}td{height:49px;padding:11px 14px;border-bottom:1px solid #e9eeeb}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#f8faf9}.number,.stock{text-align:right;font-variant-numeric:tabular-nums}.stock{font-family:Inter,"Segoe UI",sans-serif;font-size:15px}.tag,.status-badge,[class*="receipt-"]{border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.035em;text-transform:uppercase}.tag,.status-badge{display:inline-flex;padding:4px 8px}.tag.entrada,.receipt-finalizado,.status-badge.active{background:var(--ad-primary-soft);color:var(--ad-success)}.tag.saida,.receipt-cancelado,.status-badge.inactive{background:var(--ad-danger-soft);color:var(--ad-danger)}.receipt-rascunho{background:var(--ad-warning-soft);color:var(--ad-warning)}td.status-ativo,td.status-inativo{background:transparent}.pagination{min-height:58px;padding:13px 16px;border-top:1px solid var(--ad-border)}.pagination a{padding:7px 10px;border:1px solid var(--ad-border);border-radius:6px;background:#fff}.empty{padding:48px 20px}.alert{border:1px solid transparent;border-radius:var(--ad-radius);padding:12px 14px}.alert.success{border-color:#c8dfd3}.alert.error,.alert.danger{background:var(--ad-danger-soft);color:#7f3030;border-color:#efd0d0}
dialog{border:0;border-radius:var(--ad-radius-lg);padding:0;box-shadow:0 25px 80px rgba(10,25,19,.25)}dialog::backdrop{background:rgba(10,25,19,.5);backdrop-filter:blur(2px)}.dialog-card{border-radius:var(--ad-radius-lg)}.form-grid{gap:14px}.form-card,.narrow-form{padding:24px}.info-card dl{gap:16px}.balance-card{background:var(--ad-sidebar)}.balance-card strong,.metrics strong{font-family:Inter,"Segoe UI",sans-serif}.permission-groups{gap:12px}.permission-group{background:#fff;border-color:var(--ad-border);border-radius:var(--ad-radius)}.import-summary{gap:12px;margin-bottom:14px}.import-summary div{background:#fff;border:1px solid var(--ad-border);border-radius:var(--ad-radius)}
@media(max-width:1100px){.dash-kpis{grid-template-columns:repeat(2,1fr)}.dash-kpis a:nth-child(n){border:1px solid var(--ad-border)!important}}
@media(max-width:900px){.app-sidebar{transform:translateX(-100%);transition:transform .2s}.app-shell{margin-left:0}.app-body.sidebar-open .app-sidebar{transform:none}.app-body.sidebar-open .sidebar-scrim{display:block;position:fixed;inset:0;z-index:45;background:rgba(10,25,19,.42)}.icon-button{display:grid}header.app-topbar{padding:0 18px}.page-context{margin-right:auto;margin-left:12px}.app-main{padding:24px 18px 56px}.account-copy{display:none}.account-menu summary{min-width:0}.dash-main{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}}
@media(max-width:620px){header.app-topbar{height:58px}.page-context small{display:none}.page-context strong{font-size:14px}.account-menu .chevron{display:none}.app-main{padding:18px 12px 44px}.hero,.dash-heading{display:block}.hero-actions,.hero .actions{margin-top:14px}.hero-actions .button{flex:1;text-align:center}.dash-kpis{grid-template-columns:1fr 1fr;gap:8px}.dash-kpis a{min-height:100px;padding:14px}.dash-kpis strong{font-size:25px}.dash-actions{display:grid}.form-grid{grid-template-columns:1fr}.import-summary{grid-template-columns:1fr 1fr}.filters input,.filters select{max-width:none}.movement-list>a{grid-template-columns:52px 68px 1fr}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}table{min-width:680px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.auth-page{background:var(--ad-bg)}.auth-card{border-color:var(--ad-border);border-radius:var(--ad-radius-lg);box-shadow:0 18px 50px rgba(18,37,30,.09)}.auth-card h1{font-family:Inter,"Segoe UI",sans-serif;font-size:28px}.auth-brand{display:flex;align-items:center;gap:10px;padding-bottom:17px;border-bottom:1px solid var(--ad-border)}.auth-brand span{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:var(--ad-sidebar);color:#fff;font-weight:800}.auth-brand strong{letter-spacing:.14em;font-size:13px}.auth-help{margin:-8px 0 4px;color:var(--ad-text-muted)}
.process-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:0 0 18px;padding:0;list-style:none;counter-reset:steps}.process-steps li{position:relative;padding:12px 10px 12px 42px;background:#fff;border-block:1px solid var(--ad-border);color:var(--ad-text-muted);font-weight:650}.process-steps li:first-child{border-left:1px solid var(--ad-border);border-radius:var(--ad-radius) 0 0 var(--ad-radius)}.process-steps li:last-child{border-right:1px solid var(--ad-border);border-radius:0 var(--ad-radius) var(--ad-radius) 0}.process-steps li:before{counter-increment:steps;content:counter(steps);position:absolute;left:12px;top:10px;width:22px;height:22px;display:grid;place-items:center;border:1px solid #bcc9c3;border-radius:50%;font-size:11px}.process-steps li.done:before{content:'✓';background:var(--ad-primary);border-color:var(--ad-primary);color:#fff}.process-steps li.current{color:var(--ad-primary);background:var(--ad-primary-soft)}@media(max-width:620px){.process-steps{grid-template-columns:1fr 1fr}.process-steps li:nth-child(n){border:1px solid var(--ad-border);border-radius:0}}
.doisa-brand{height:72px;display:flex;align-items:center;gap:12px;padding:0 20px;color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.1)}.doisa-brand strong,.doisa-brand small{display:block}.doisa-brand strong{font-size:14px;letter-spacing:.09em}.doisa-brand strong em,.auth-brand strong em{color:#ff9a42;font-style:normal}.doisa-brand small{margin-top:2px;color:var(--ad-sidebar-muted);font-size:10px}.brand-mark,.doisa-symbol{position:relative;width:36px;height:36px;display:block;border:1px solid rgba(255,255,255,.3);border-radius:9px;background:#fff}.brand-mark i,.brand-mark b,.doisa-symbol i,.doisa-symbol b{position:absolute;display:block;border-radius:2px;transform:skew(-12deg)}.brand-mark i,.doisa-symbol i{width:8px;height:22px;left:9px;top:7px;background:var(--ad-primary-blue)}.brand-mark b,.doisa-symbol b{width:8px;height:16px;right:9px;bottom:7px;background:var(--ad-primary-orange)}.side-nav>.nav-item.active,.nav-group div a.active{background:#1a608d;color:#fff}.side-nav a:hover,.side-nav summary:hover{background:rgba(255,255,255,.075)}.avatar{background:var(--ad-primary-blue-soft);color:var(--ad-primary-blue)}.eyebrow{color:var(--ad-primary-blue)}.dash-kpis a:before{content:'';position:absolute;left:0;top:18px;width:3px;height:30px;border-radius:0 3px 3px 0;background:var(--ad-primary-blue)}.dash-kpis a:nth-child(4n+2):before,.dash-kpis a:nth-child(4n+4):before{background:var(--ad-primary-orange)}.entry-bar{background:var(--ad-primary-orange)}.button.dark,.button.green,.green,button.dark{background:var(--ad-primary-orange)}.button.dark:hover,.button.green:hover,.green:hover{background:var(--ad-primary-orange-hover)}.button:not(.dark):not(.green):not(.red),.hero-actions .button:not(.dark){color:var(--ad-primary-blue)}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible,summary:focus-visible{outline-color:rgba(22,95,143,.2);border-color:var(--ad-primary-blue)}.auth-brand .doisa-symbol{flex:0 0 34px;width:34px;height:34px;background:#fff;border-color:var(--ad-border)}.auth-brand strong{color:var(--ad-primary-blue)}
.section-label{display:flex;align-items:center;gap:12px;margin:26px 0 10px;color:var(--ad-primary-blue);font-size:11px;font-weight:850;letter-spacing:.09em;text-transform:uppercase}.section-label:after{content:'';height:1px;flex:1;background:var(--ad-border)}.finance-kpis{display:grid;grid-template-columns:repeat(3,minmax(190px,1fr));gap:12px;margin-bottom:16px}.finance-kpis>a,.finance-kpis>article{position:relative;display:block;min-height:112px;padding:18px;background:#fff;border:1px solid var(--ad-border);border-radius:var(--ad-radius);color:var(--ad-text);text-decoration:none;box-shadow:var(--ad-shadow)}.finance-kpis span,.receipt-financial-summary span{display:block;color:var(--ad-text-muted);font-size:10px;font-weight:800;letter-spacing:.055em;text-transform:uppercase}.finance-kpis strong,.receipt-financial-summary strong{display:block;margin:7px 0 3px;font-size:22px;letter-spacing:-.02em}.finance-kpis small{color:var(--ad-text-muted)}.danger-metric{border-color:#e9c7c7!important}.danger-metric strong,.negative,.status-negativo{color:var(--ad-danger)!important}.status-negativo{background:var(--ad-danger-soft)!important}.status-baixo{background:var(--ad-warning-soft)!important;color:var(--ad-warning)!important}.status-zerado{background:#eef1f3!important;color:#5f6d75!important}.status-ok{background:#e8f3ed!important;color:var(--ad-success)!important}.dashboard-alert-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin:18px 0;background:var(--ad-border);border:1px solid var(--ad-border);border-radius:var(--ad-radius);overflow:hidden}.dashboard-alert-strip a{padding:13px;background:#fff;color:var(--ad-text);text-decoration:none}.dashboard-alert-strip b{color:var(--ad-danger)}.receipt-financial-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:12px 0 18px;background:var(--ad-border);border:1px solid var(--ad-border);border-radius:var(--ad-radius);overflow:hidden}.receipt-financial-summary>div{padding:16px;background:#fff}.receipt-financial-summary>div:last-child strong{color:var(--ad-primary-orange)}.alert.warning{background:var(--ad-warning-soft);color:#76520e;border-color:#ead59f}.narrow-form label small{display:block;margin-top:4px;color:var(--ad-text-muted)}@media(max-width:1100px){.finance-kpis{grid-template-columns:repeat(2,1fr)}.dashboard-alert-strip{grid-template-columns:1fr 1fr}}@media(max-width:620px){.finance-kpis{grid-template-columns:1fr}.dashboard-alert-strip,.receipt-financial-summary{grid-template-columns:1fr}}
.allocation-product-preview{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;margin:12px 0 18px;background:var(--ad-border);border:1px solid var(--ad-border);border-radius:var(--ad-radius);overflow:hidden}.allocation-product-preview span{padding:13px;background:#fff;color:var(--ad-text-muted);font-size:10px;text-transform:uppercase}.allocation-product-preview strong{display:block;margin-top:5px;color:var(--ad-text);font-size:14px;text-transform:none}.batch-selection-bar{display:none;position:sticky;top:70px;z-index:4;align-items:center;justify-content:space-between;padding:12px 16px;background:#eaf2f7;border-bottom:1px solid var(--ad-border)}.batch-selection-bar.visible{display:flex}@media(max-width:800px){.allocation-product-preview{grid-template-columns:1fr 1fr}.allocation-product-preview span:last-child{grid-column:1/-1}}

/* Saída protegida por POST mantém o controle legível no menu da conta. */
.account-menu>div .logout-form{margin:0;padding:0;border:0;box-shadow:none;background:transparent}.account-menu>div .logout-form>button{display:block;width:100%;min-height:42px;text-align:left;padding:9px 10px;border:0;border-radius:6px;background:transparent;color:var(--ad-danger);font:inherit;white-space:normal;cursor:pointer}.account-menu>div .logout-form>button:hover{background:var(--ad-bg)}.account-menu>div .logout-form>button:focus-visible{outline:2px solid currentColor;outline-offset:2px}
