:root{--bg:#f4f7fb;--surface:#fff;--surface2:#f8fafc;--text:#172033;--muted:#687386;--border:#dde4ee;--nav:#0b1220;--nav2:#121c30;--accent:#e11d48;--accent2:#be123c;--ok:#059669;--warn:#d97706;--danger:#dc2626;--shadow:0 12px 35px rgba(15,23,42,.08);--radius:16px;--sidebar:268px}html[data-theme=dark]{--bg:#0b1220;--surface:#131d30;--surface2:#18243a;--text:#edf2f7;--muted:#9aa8bd;--border:#2b3952;--shadow:0 12px 35px rgba(0,0,0,.24)}*{box-sizing:border-box}body{margin:0;font:15px/1.5 Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}.hidden{display:none!important}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:800;color:var(--accent)}.brand-mark{width:58px;height:58px;border-radius:17px;background:linear-gradient(135deg,var(--accent),#7c3aed);color:#fff;display:grid;place-items:center;font-weight:950;box-shadow:0 12px 28px rgba(225,29,72,.25)}.brand-mark.small{width:42px;height:42px;border-radius:12px}.login-view{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top right,rgba(225,29,72,.18),transparent 32%),var(--bg)}.login-card{width:min(430px,100%);background:var(--surface);border:1px solid var(--border);border-radius:24px;padding:34px;box-shadow:var(--shadow)}.login-card h1{font-size:2rem;margin:.35rem 0}.login-card h1 span{color:var(--accent)}label{display:grid;gap:7px;font-weight:750;margin:16px 0}input,select,textarea{width:100%;border:1px solid var(--border);border-radius:11px;padding:12px 13px;background:var(--surface);color:var(--text);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(225,29,72,.12)}.btn{border:0;border-radius:11px;padding:11px 15px;font-weight:800;cursor:pointer}.btn.primary{background:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent2)}.btn.ghost{background:var(--surface2);color:var(--text);border:1px solid var(--border);width:100%;margin-top:10px}.btn.small{padding:7px 10px;font-size:.78rem}.btn.danger{background:#fee2e2;color:#b91c1c}.app{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:var(--nav);color:#fff;display:flex;flex-direction:column;z-index:20}.sidebar-brand{height:76px;display:flex;align-items:center;gap:12px;padding:0 18px;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-brand strong,.sidebar-brand small{display:block}.sidebar-brand small{color:#94a3b8}.sidebar nav{padding:16px 12px;display:grid;gap:5px;overflow:auto}.nav-label{padding:16px 11px 5px;color:#64748b;font-size:.68rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.nav-btn{border:0;background:transparent;color:#cbd5e1;padding:11px 12px;border-radius:11px;text-align:left;cursor:pointer;font-weight:750;display:flex;gap:11px}.nav-btn:hover,.nav-btn.active{background:rgba(225,29,72,.14);color:#fff}.nav-btn.active{box-shadow:inset 3px 0 var(--accent)}.sidebar-user{margin-top:auto;padding:14px;display:grid;grid-template-columns:38px 1fr 35px;gap:9px;align-items:center;border-top:1px solid rgba(255,255,255,.08)}.sidebar-user strong,.sidebar-user small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user small{color:#94a3b8}.avatar{width:38px;height:38px;border-radius:11px;background:var(--accent);display:grid;place-items:center;font-weight:900}.sidebar-user button{border:0;background:rgba(255,255,255,.08);color:#fff;border-radius:9px;height:35px;cursor:pointer}.topbar{position:fixed;top:0;left:var(--sidebar);right:0;height:76px;background:color-mix(in srgb,var(--surface) 93%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 28px;z-index:15}.topbar h2{margin:0;font-size:1.05rem}.topbar small{color:var(--muted)}.top-actions{display:flex;gap:8px;align-items:center}.icon-btn{width:42px;height:42px;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:11px;cursor:pointer}.view{margin-left:var(--sidebar);padding:102px 28px 40px}.page-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-end;margin-bottom:20px}.page-head h1{margin:0;font-size:1.7rem}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.kpi{padding:18px}.kpi small{color:var(--muted);text-transform:uppercase;font-size:.7rem;font-weight:900;letter-spacing:.07em}.kpi strong{display:block;font-size:1.7rem;margin:4px 0}.grid-2{display:grid;grid-template-columns:1.35fr .65fr;gap:14px;margin-top:14px}.panel{padding:18px}.panel h3{margin:0 0 14px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;padding:13px;margin-bottom:14px}.toolbar input{flex:1;min-width:220px}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:13px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}.data-table th{font-size:.72rem;text-transform:uppercase;color:var(--muted)}.status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:.7rem;font-weight:900}.status.ok{background:#dcfce7;color:#047857}.status.partial{background:#fef3c7;color:#b45309}.status.pending{background:#ffe4e6;color:#be123c}.progress{height:9px;background:var(--surface2);border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;background:var(--accent)}.activity{display:grid;gap:11px}.activity-item{display:grid;grid-template-columns:36px 1fr;gap:9px;padding-bottom:10px;border-bottom:1px solid var(--border)}.activity-item i{width:36px;height:36px;border-radius:10px;background:var(--surface2);display:grid;place-items:center;font-style:normal}.empty{text-align:center;padding:40px;color:var(--muted)}.modal-backdrop{position:fixed;inset:0;background:rgba(2,6,23,.66);display:grid;place-items:center;padding:20px;z-index:100}.modal{width:min(720px,100%);max-height:90vh;overflow:auto;background:var(--surface);border-radius:20px;border:1px solid var(--border);box-shadow:0 25px 70px rgba(0,0,0,.3)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--border)}.modal-head h3{margin:0}.modal-head button{border:0;background:none;color:var(--text);font-size:1.4rem;cursor:pointer}.modal-body{padding:20px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 14px}.form-grid .full{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:9px;padding:18px 20px;border-top:1px solid var(--border)}.toast-root{position:fixed;right:18px;top:18px;z-index:200;display:grid;gap:8px}.toast{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--accent);padding:12px 14px;border-radius:11px;box-shadow:var(--shadow);min-width:260px}.quick-links{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.quick-link{border:1px solid var(--border);background:var(--surface2);color:var(--text);border-radius:12px;padding:14px;text-align:left;cursor:pointer;font-weight:800}.legacy-note{padding:14px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:12px;margin-bottom:14px}#menuBtn{display:none}@media(max-width:1050px){.kpis{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}}@media(max-width:760px){:root{--sidebar:250px}.sidebar{transform:translateX(-100%);transition:.25s}.app.menu-open .sidebar{transform:none}.topbar{left:0;padding:0 14px}.view{margin-left:0;padding:94px 14px 30px}#menuBtn{display:block}.top-actions .primary{display:none}.kpis,.form-grid,.quick-links{grid-template-columns:1fr}.page-head{align-items:stretch;flex-direction:column}}
.catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.catalog-card{overflow:hidden}.catalog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--border)}.catalog-head>div{display:flex;align-items:center;gap:11px}.catalog-head h3{margin:0}.catalog-head small,.catalog-item small{display:block;color:var(--muted)}.catalog-icon{width:38px;height:38px;border-radius:11px;background:var(--surface2);display:grid;place-items:center;font-weight:900;color:var(--accent)}.catalog-list{max-height:410px;overflow:auto}.catalog-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 18px;border-bottom:1px solid var(--border)}.catalog-item:last-child{border-bottom:0}.catalog-actions{display:flex;gap:6px}.empty.compact{padding:24px}@media(max-width:900px){.catalog-grid{grid-template-columns:1fr}}@media(max-width:560px){.catalog-item,.catalog-head{align-items:stretch;flex-direction:column}.catalog-actions{width:100%}.catalog-actions .btn{flex:1}}

/* Comuna ERP 2.0.7 — identidade e desempenho */
.full-width{width:100%}.brand-logo-frame{display:grid;place-items:center;background:#070b12;border:1px solid rgba(255,255,255,.1);box-shadow:0 14px 34px rgba(2,6,23,.22);overflow:hidden}.brand-logo-frame img{display:block;width:100%;height:100%;object-fit:contain}.login-logo{width:82px;height:82px;border-radius:22px;padding:8px;margin-bottom:18px}.sidebar-logo{width:48px;height:48px;border-radius:14px;padding:4px;flex:0 0 auto}.sidebar-brand{height:88px}.sidebar-brand strong{font-size:1rem}.sidebar-brand small{font-size:.72rem}.topbar-title{min-width:0}.topbar-title h2,.topbar-title small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.boot-view{position:fixed;inset:0;z-index:500;background:radial-gradient(circle at 80% 10%,rgba(225,29,72,.22),transparent 34%),#0b1220;color:#fff;display:grid;place-items:center;transition:opacity .25s ease,visibility .25s ease}.boot-view.hidden{display:grid!important;opacity:0;visibility:hidden;pointer-events:none}.boot-content{width:min(320px,80vw);display:grid;justify-items:center;text-align:center;gap:8px}.boot-logo{width:102px;height:102px;border-radius:28px;padding:8px;margin-bottom:10px}.boot-content strong{font-size:1.5rem}.boot-content span{color:#9aa8bd}.boot-progress{height:4px;width:190px;background:rgba(255,255,255,.12);border-radius:999px;overflow:hidden;margin-top:12px}.boot-progress i{display:block;width:42%;height:100%;background:var(--accent);border-radius:inherit;animation:boot-slide 1.15s ease-in-out infinite}@keyframes boot-slide{0%{transform:translateX(-110%)}100%{transform:translateX(340%)}}.login-view{background:radial-gradient(circle at top right,rgba(225,29,72,.2),transparent 34%),linear-gradient(135deg,var(--bg),var(--surface2))}.login-card{position:relative;overflow:hidden}.login-card:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--accent),#fb7185)}.login-help{color:var(--muted);font-size:.82rem;margin-bottom:4px}.view.route-loading{min-height:calc(100vh - 76px)}.skeleton-page{display:grid;gap:15px}.skeleton-head,.skeleton-card,.skeleton-line{background:linear-gradient(90deg,var(--surface2) 25%,color-mix(in srgb,var(--surface2) 65%,var(--border)) 50%,var(--surface2) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.25s infinite;border-radius:12px}.skeleton-head{height:78px;width:min(460px,80%)}.skeleton-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.skeleton-card{height:112px;border:1px solid var(--border)}.skeleton-panel{height:330px;border:1px solid var(--border)}@keyframes skeleton-shimmer{to{background-position:-200% 0}}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 14px;border-top:1px solid var(--border)}.pagination-info{margin-right:auto;color:var(--muted);font-size:.82rem}.pagination .btn[disabled]{opacity:.45;cursor:not-allowed}.data-table tbody{contain:content}.view{content-visibility:auto;contain-intrinsic-size:900px}.card{transform:translateZ(0)}
@media(max-width:1050px){.skeleton-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.sidebar-brand{height:78px}.sidebar-logo{width:43px;height:43px}.topbar-title small{display:none}.skeleton-kpis{grid-template-columns:1fr}.pagination{flex-wrap:wrap}.pagination-info{width:100%;margin:0 0 4px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.boot-progress i,.skeleton-head,.skeleton-card,.skeleton-line{animation:none!important}}
.modal-actions .btn.ghost{width:auto;margin-top:0}.btn:disabled,.quick-link:disabled{opacity:.58;cursor:wait}.login-card button:disabled{filter:saturate(.6)}

/* Comuna ERP 2.0.9 — QR Code e check-in por câmera */
.page-actions{display:flex;gap:9px;flex-wrap:wrap}.profile-with-qr{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px}.profile-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-info p{margin:.35rem 0 0}.qr-profile-card{background:var(--surface2);border:1px solid var(--border);border-radius:16px;padding:18px;text-align:center;align-self:start}.qr-profile-card h3{margin:.2rem 0 12px}.qr-canvas{width:260px;max-width:100%;min-height:260px;margin:0 auto 12px;background:#fff;border:1px solid #dbe3ed;border-radius:14px;padding:10px;display:grid;place-items:center;overflow:hidden}.qr-canvas canvas,.qr-canvas img{display:block;max-width:100%;height:auto}.qr-token{display:inline-block;padding:6px 9px;border-radius:8px;background:var(--surface);border:1px solid var(--border);font-size:.82rem;letter-spacing:.06em}.qr-help{font-size:.78rem;margin:10px 0}.qr-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.checkin-toolbar{margin-top:14px}.scanner-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:18px}.scanner-main{min-width:0}.scanner-controls{display:flex;align-items:flex-end;gap:9px;flex-wrap:wrap;margin-bottom:12px}.scanner-controls label{margin:0;flex:1;min-width:200px}.qr-reader{position:relative;min-height:360px;background:#070b12;border-radius:16px;overflow:hidden;display:grid;place-items:center;color:#fff;border:1px solid var(--border)}.qr-reader video,.qr-camera-video{width:100%;height:100%;min-height:360px;object-fit:cover}.scanner-placeholder,.scanner-error{display:grid;gap:7px;text-align:center;padding:30px;max-width:430px}.scanner-placeholder span,.scanner-error span{color:#a7b4c8}.scanner-error strong{color:#fda4af}.scanner-frame{position:absolute;left:50%;top:50%;width:min(260px,70%);aspect-ratio:1;transform:translate(-50%,-50%);border:3px solid #fff;border-radius:18px;box-shadow:0 0 0 999px rgba(2,6,23,.32);pointer-events:none}.manual-qr-form{display:grid;grid-template-columns:1fr auto;align-items:end;gap:9px;margin-top:12px}.manual-qr-form label{margin:0}.scanner-note{font-size:.78rem}.scanner-result{background:var(--surface2);border:1px solid var(--border);border-radius:16px;padding:16px;min-height:360px}.scan-person-head{display:grid;grid-template-columns:52px 1fr;gap:12px;align-items:center;padding-bottom:14px;border-bottom:1px solid var(--border)}.scan-person-head h3{margin:0}.scan-person-head p{margin:0}.scan-person-head code{font-size:.72rem;color:var(--muted)}.scan-avatar{width:52px;height:52px;border-radius:15px;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:1.35rem;font-weight:900}.scan-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.scan-fields>div{padding:10px;background:var(--surface);border:1px solid var(--border);border-radius:11px;min-width:0}.scan-fields small,.scan-fields strong,.scan-fields span{display:block}.scan-fields small{color:var(--muted);font-size:.69rem;text-transform:uppercase;font-weight:900;margin-bottom:4px}.scan-fields strong{white-space:normal}.scan-alert{padding:12px 14px;border-radius:12px;margin:12px 0}.scan-alert p{margin:.3rem 0 0}.scan-alert.error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.scan-alert.warning{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.scan-result-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.scan-success{text-align:center;padding:40px 16px}.scan-success-icon{width:72px;height:72px;border-radius:50%;background:#dcfce7;color:#047857;display:grid;place-items:center;margin:0 auto 16px;font-size:2.2rem;font-weight:900}.scan-success h3{margin:0}.scan-success p{margin:8px 0 18px}
@media(max-width:900px){.profile-with-qr,.scanner-layout{grid-template-columns:1fr}.qr-profile-card{width:min(360px,100%);margin:auto}.scanner-result{min-height:auto}}
@media(max-width:600px){.page-actions,.page-actions .btn{width:100%}.qr-actions,.scan-fields{grid-template-columns:1fr}.manual-qr-form{grid-template-columns:1fr}.scanner-controls>*{width:100%}.qr-reader,.qr-reader video,.qr-camera-video{min-height:300px}.scan-result-actions .btn{width:100%}}

/* Comuna ERP 2.0.9 — histórico de pagamentos e controle de parcelas */
.history-link{border:0;background:transparent;color:var(--ok);font-weight:900;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:3px 0}.history-link:hover{color:color-mix(in srgb,var(--ok) 70%,var(--text))}.participant-payment-history,.payment-history-panel{margin-top:20px;padding:18px;background:var(--surface);border:1px solid var(--border);border-radius:16px}.participant-payment-history[data-focus-history=true]{outline:3px solid color-mix(in srgb,var(--accent) 20%,transparent);outline-offset:3px}.history-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.history-panel-head h3{margin:.1rem 0}.history-panel-head p{margin:.3rem 0 0}.history-count{white-space:nowrap;padding:6px 10px;border-radius:999px;background:var(--surface2);border:1px solid var(--border);color:var(--muted);font-size:.75rem;font-weight:900}.history-toolbar{margin:0 0 12px;padding:0;background:transparent;border:0}.payment-history-table td small{display:block;color:var(--muted);font-size:.72rem;margin-top:3px;white-space:normal}.payment-history-table td{vertical-align:top}.payment-history-table .history-note{min-width:180px;white-space:normal}.movement-badge{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:.68rem;font-weight:900;background:var(--surface2);border:1px solid var(--border)}.movement-badge.positive{background:#dcfce7;color:#047857;border-color:#bbf7d0}.movement-badge.negative{background:#fee2e2;color:#b91c1c;border-color:#fecaca}.movement-badge.benefit{background:#ede9fe;color:#6d28d9;border-color:#ddd6fe}.movement-value{font-weight:950}.movement-value.positive{color:#047857}.movement-value.negative{color:#b91c1c}.movement-value.benefit{color:#6d28d9}.history-untracked{background:#fff7ed}.history-untracked td:first-child{box-shadow:inset 4px 0 #f59e0b}.payment-summary{display:grid;gap:4px;padding:13px 14px;border-radius:12px;background:var(--surface2);border:1px solid var(--border);margin:8px 0 0}.payment-summary strong,.payment-summary span,.payment-summary small{display:block}.payment-summary small{color:var(--muted)}.empty.compact{padding:22px}.payment-history-panel{margin-top:18px}
@media(max-width:760px){.history-panel-head{flex-direction:column}.history-panel-head .btn{width:100%}.history-toolbar{display:grid}.payment-history-table{min-width:980px}.participant-payment-history{padding:14px}}

/* Comuna ERP 2.0.10 — visualização gráfica dos relatórios */
.report-view-switch{display:inline-flex;gap:5px;padding:5px;margin:14px 0;background:var(--surface2);border:1px solid var(--border);border-radius:13px}.report-view-button{border:0;background:transparent;color:var(--muted);padding:10px 15px;border-radius:9px;font-weight:900;cursor:pointer}.report-view-button:hover{color:var(--text)}.report-view-button.active{background:var(--surface);color:var(--accent);box-shadow:0 4px 15px rgba(15,23,42,.08)}.report-view>.panel{margin-top:0}.report-insights{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px}.report-insight{position:relative;overflow:hidden;padding:18px;border:1px solid var(--border)}.report-insight:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--accent)}.report-insight.positive:before{background:var(--ok)}.report-insight.info:before{background:#2563eb}.report-insight.warning:before{background:var(--warn)}.report-insight small,.report-insight strong,.report-insight span{display:block}.report-insight small{color:var(--muted);font-weight:850}.report-insight strong{font-size:1.72rem;line-height:1.15;margin:7px 0 5px}.report-insight span{font-size:.78rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.report-chart-card{padding:20px;min-width:0;border:1px solid var(--border)}.report-chart-card.report-chart-wide{grid-column:span 2}.report-chart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}.report-chart-head h3{margin:.1rem 0}.report-chart-head .eyebrow{margin:0 0 3px}.chart-caption{font-size:.72rem;color:var(--muted);white-space:nowrap;padding:6px 9px;background:var(--surface2);border:1px solid var(--border);border-radius:999px}.chart-select-label{display:flex;align-items:center;gap:8px;margin:0;color:var(--muted);font-size:.72rem}.chart-select-label select{width:auto;min-width:128px;padding:8px 30px 8px 10px;background:var(--surface2)}.horizontal-chart{display:grid;gap:14px}.horizontal-chart.compact-chart{gap:11px}.report-bar-row{display:grid;gap:6px}.report-bar-label{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.report-bar-label span{font-size:.82rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-bar-label strong{font-size:.78rem;white-space:nowrap}.report-bar-track,.coverage-track{height:12px;background:var(--surface2);border:1px solid var(--border);border-radius:999px;overflow:hidden}.report-bar-track i,.coverage-track i{display:block;width:var(--bar-width);height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),#fb7185);transition:width .45s ease}.report-bar-track i.positive{background:linear-gradient(90deg,var(--ok),#34d399)}.report-bar-track i.warning{background:linear-gradient(90deg,var(--warn),#fbbf24)}.report-bar-track i.negative{background:linear-gradient(90deg,var(--danger),#fb7185)}.report-bar-track i.info{background:linear-gradient(90deg,#2563eb,#60a5fa)}.donut-layout{display:grid;grid-template-columns:minmax(180px,.85fr) minmax(180px,1fr);align-items:center;gap:24px;min-height:260px}.report-donut{--chart-one:var(--ok);--chart-two:var(--warn);--chart-three:#94a3b8;width:min(220px,100%);aspect-ratio:1;border-radius:50%;margin:auto;background:conic-gradient(var(--chart-one) 0 var(--slice-a),var(--chart-two) var(--slice-a) var(--slice-b),var(--chart-three) var(--slice-b) 100%);display:grid;place-items:center;position:relative}.report-donut:before{content:"";position:absolute;inset:22%;border-radius:50%;background:var(--surface);box-shadow:inset 0 0 0 1px var(--border)}.report-donut>div{position:relative;text-align:center;display:grid}.report-donut strong{font-size:1.65rem}.report-donut span{font-size:.72rem;color:var(--muted)}.donut-legend{display:grid;gap:12px}.donut-legend>div{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:9px;padding-bottom:10px;border-bottom:1px solid var(--border)}.donut-legend>div:last-child{border-bottom:0}.donut-legend i{width:10px;height:10px;border-radius:3px}.donut-legend i.chart-one{background:var(--ok)}.donut-legend i.chart-two{background:var(--warn)}.donut-legend i.chart-three{background:#94a3b8}.donut-legend span{font-size:.82rem}.donut-legend strong{font-size:.85rem}.chart-footnote{margin:15px 0 0;color:var(--muted);font-size:.72rem}.operation-chart-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:30px}.operation-chart-layout h4{margin:0 0 14px}.coverage-list{display:grid;gap:18px}.coverage-item{padding:14px;background:var(--surface2);border:1px solid var(--border);border-radius:13px}.coverage-item>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.coverage-item span,.coverage-item strong{font-size:.83rem}.coverage-track{height:10px;background:var(--surface)}.coverage-track i{background:linear-gradient(90deg,#2563eb,#60a5fa)}.coverage-item:nth-child(2) .coverage-track i{background:linear-gradient(90deg,#7c3aed,#a78bfa)}.coverage-item small{display:block;color:var(--muted);font-size:.7rem;margin-top:7px}
@media(max-width:1050px){.report-insights{grid-template-columns:repeat(2,minmax(0,1fr))}.donut-layout{grid-template-columns:1fr}.operation-chart-layout{grid-template-columns:1fr}}
@media(max-width:760px){.report-view-switch{display:grid;grid-template-columns:1fr 1fr;width:100%}.report-insights,.report-chart-grid{grid-template-columns:1fr}.report-chart-card.report-chart-wide{grid-column:auto}.report-chart-head{flex-direction:column}.chart-caption{white-space:normal}.chart-select-label{width:100%;justify-content:space-between}.chart-select-label select{flex:1}.report-insight span{white-space:normal}.donut-layout{min-height:auto}.report-donut{width:min(210px,80vw)}.report-bar-label{align-items:flex-start}.report-bar-label span{white-space:normal}.operation-chart-layout{gap:22px}}
@media(prefers-reduced-motion:reduce){.report-bar-track i,.coverage-track i{transition:none}}

/* Comuna ERP 2.0.11 — arrecadação por célula/supervisão e contraste Material no tema escuro */
.fundraising-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:18px}.fundraising-summary>span{position:relative;display:grid;grid-template-columns:10px 1fr;gap:1px 9px;align-items:center;padding:12px 13px;background:var(--surface2);border:1px solid var(--border);border-radius:12px}.fundraising-summary i{grid-row:1/3;width:10px;height:10px;border-radius:3px}.fundraising-summary i.raised{background:var(--ok)}.fundraising-summary i.pending{background:var(--warn)}.fundraising-summary i.target{background:#64748b}.fundraising-summary small{color:var(--muted);font-size:.69rem;text-transform:uppercase;font-weight:900}.fundraising-summary strong{font-size:.9rem}.fundraising-chart{display:grid;gap:15px;max-height:620px;overflow:auto;padding-right:4px}.fundraising-row{display:grid;gap:7px;padding-bottom:13px;border-bottom:1px solid var(--border)}.fundraising-row:last-child{border-bottom:0;padding-bottom:0}.fundraising-row-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;min-width:0}.fundraising-row-head>div:first-child{min-width:0}.fundraising-row-head>div:first-child strong,.fundraising-row-head>div:first-child small{display:block}.fundraising-row-head>div:first-child strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fundraising-row-head>div:first-child small{color:var(--muted);font-size:.7rem;margin-top:2px}.fundraising-values{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap}.fundraising-values span{font-size:.69rem;color:var(--muted);white-space:nowrap}.fundraising-values strong{color:var(--text);margin-left:3px}.fundraising-track{height:16px;display:flex;align-items:stretch;background:var(--surface2);border:1px solid var(--border);border-radius:999px;overflow:hidden}.fundraising-track i{display:block;width:var(--segment-width);min-width:0;transition:width .45s ease}.fundraising-track i.raised{background:linear-gradient(90deg,var(--ok),#34d399)}.fundraising-track i.pending{background:linear-gradient(90deg,var(--warn),#fbbf24)}
html[data-theme=dark] .eyebrow,html[data-theme=dark] .login-card h1 span,html[data-theme=dark] .catalog-icon,html[data-theme=dark] .report-view-button.active,html[data-theme=dark] .scanner-error strong,html[data-theme=dark] .movement-value.negative{color:#fff}html[data-theme=dark] .btn.danger,html[data-theme=dark] .status.pending,html[data-theme=dark] .scan-alert.error,html[data-theme=dark] .movement-badge.negative{color:#fff;background:rgba(220,38,38,.22);border-color:rgba(248,113,113,.42)}html[data-theme=dark] .legacy-note{color:#fff;background:rgba(217,119,6,.16);border-color:rgba(251,191,36,.35)}html[data-theme=dark] .history-untracked{background:rgba(217,119,6,.1)}
@media(max-width:760px){.fundraising-summary{grid-template-columns:1fr}.fundraising-row-head{align-items:flex-start;flex-direction:column}.fundraising-values{width:100%;justify-content:flex-start;gap:7px 12px}.fundraising-chart{max-height:none}.fundraising-row-head>div:first-child strong{white-space:normal}}
@media(prefers-reduced-motion:reduce){.fundraising-track i{transition:none}}

/* Comuna ERP 2.0.13 — gerenciador local do Firebase Authentication */
.auth-automation-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;margin-bottom:14px;border-left:4px solid var(--ok)}.auth-automation-banner strong,.auth-automation-banner span{display:block}.auth-automation-banner>div>span{color:var(--muted);font-size:.8rem;margin-top:3px}.auth-info-card{display:grid;gap:3px;padding:14px 15px;margin-bottom:10px;background:color-mix(in srgb,var(--ok) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--ok) 30%,var(--border));border-radius:12px}.auth-info-card span,.form-note{color:var(--muted);font-size:.78rem}.check-field{display:flex;align-items:center;gap:9px;align-self:end;min-height:46px}.check-field input{width:auto;margin:0}.password-tools{display:flex;gap:8px;margin:0 0 3px}.password-tools .btn.ghost{width:auto;margin:0}.user-table td{vertical-align:middle}.user-table td:first-child small{display:block;color:var(--muted);font-size:.69rem;margin-top:2px}.user-actions{display:flex;gap:6px;align-items:center}.user-actions .btn.ghost{width:auto;margin:0}.role-badge,.auth-badge{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:.69rem;font-weight:900;border:1px solid var(--border);background:var(--surface2)}.auth-badge.automatic{color:#047857;background:#dcfce7;border-color:#bbf7d0}.auth-badge.legacy{color:#475569}.credentials-box{display:grid;gap:12px}.credentials-box>div{display:grid;gap:3px;padding:12px 14px;border:1px solid var(--border);background:var(--surface2);border-radius:11px}.credentials-box small{color:var(--muted);font-weight:800}.credentials-box code{font-size:.95rem;word-break:break-all;color:var(--text)}html[data-theme=dark] .auth-badge.automatic{color:#fff;background:rgba(5,150,105,.2);border-color:rgba(52,211,153,.35)}html[data-theme=dark] .auth-badge.legacy{color:#fff}
@media(max-width:760px){.auth-automation-banner{align-items:flex-start;flex-direction:column}.password-tools{display:grid}.password-tools .btn.ghost{width:100%}.user-actions{min-width:290px}}

/* Comuna ERP 2.0.13 — integração com o Gerenciador Local de Usuários */
.local-manager-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.auth-automation-banner>div{min-width:0}
@media(max-width:680px){.local-manager-actions .btn{flex:1;min-width:140px}}
