:root{--bg:#f4f7fb;--card:#fff;--ink:#18212f;--muted:#6b7280;--line:#e5e7eb;--navy:#17365d;--navy2:#234f84;--accent:#0ea5e9;--sidebar:#17365d;--green:#15803d;--red:#b91c1c;--amber:#b45309;--shadow:0 8px 24px rgba(17,24,39,.06)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{background:var(--sidebar);color:white;padding:20px 16px;display:flex;flex-direction:column;gap:22px;position:sticky;top:0;min-height:100vh;height:max-content}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:42px;height:42px;border-radius:12px;background:white;color:var(--navy);display:grid;place-items:center;font-weight:800}.brand span{display:block;font-size:12px;opacity:.7;margin-top:3px}nav{display:grid;gap:6px}.nav-btn{border:0;background:transparent;color:#dce7f6;padding:11px 12px;border-radius:10px;text-align:left;cursor:pointer}.nav-btn:hover,.nav-btn.active{background:rgba(255,255,255,.12);color:white}.sidebar-foot{margin-top:auto;display:grid;gap:8px}.content{padding:28px}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:24px}.topbar h1{margin:0 0 6px;font-size:28px}.topbar p{margin:0;color:var(--muted)}.topbar-actions{display:flex;gap:10px;align-items:center}.badge{display:inline-flex;padding:7px 10px;border-radius:999px;background:#e8eef7;color:var(--navy);font-size:12px;font-weight:700}.btn{border:1px solid var(--line);background:white;padding:9px 13px;border-radius:9px;cursor:pointer}.btn.primary{background:var(--navy);color:white;border-color:var(--navy)}.btn.ghost{background:transparent;color:inherit}.sidebar .btn.ghost{border-color:rgba(255,255,255,.25);color:white}.sidebar .btn.danger{color:#ffd7d7}.file-label{text-align:center;cursor:pointer}.grid{display:grid;gap:16px}.kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:18px}.kpi-label{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700}.kpi-value{font-size:25px;font-weight:800;margin-top:8px}.kpi-foot{font-size:12px;color:var(--muted);margin-top:6px}.two-col{grid-template-columns:1.25fr .75fr;margin-top:16px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.section-title h3{margin:0;font-size:17px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{padding:11px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.table th{font-size:11px;color:var(--muted);text-transform:uppercase}.status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:700;background:#eef2f7}.status.ok{background:#dcfce7;color:#166534}.status.warn{background:#fef3c7;color:#92400e}.status.bad{background:#fee2e2;color:#991b1b}.metric-list{display:grid;gap:12px}.metric-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.metric-row:last-child{border:0}.toolbar{display:flex;justify-content:space-between;gap:10px;margin-bottom:14px}.toolbar input{max-width:320px}.input,select,textarea{width:100%;border:1px solid #cfd7e3;border-radius:8px;padding:9px 10px;background:white}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.form-grid .full{grid-column:1/-1}label{display:grid;gap:6px;font-size:12px;font-weight:700;color:#374151}dialog{border:0;border-radius:16px;box-shadow:0 30px 70px rgba(0,0,0,.25);padding:0;width:min(760px,94vw)}dialog::backdrop{background:rgba(15,23,42,.5)}.modal-head,.modal-actions{padding:16px 18px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.modal-actions{border-bottom:0;border-top:1px solid var(--line);justify-content:flex-end}.modal-head h2{margin:0}.modal-body{padding:18px;max-height:65vh;overflow:auto}.icon-btn{border:0;background:none;font-size:28px;cursor:pointer}.empty{padding:28px;text-align:center;color:var(--muted)}.progress{height:8px;background:#edf1f6;border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--navy2)}.danger-text{color:var(--red)}.ok-text{color:var(--green)}.muted{color:var(--muted)}
@media(max-width:1000px){.app-shell{grid-template-columns:84px 1fr}.brand div:last-child,.nav-label,.sidebar-foot{display:none}.brand{justify-content:center}.nav-btn{text-align:center}.kpis{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}}@media(max-width:700px){.content{padding:16px}.topbar{flex-direction:column}.kpis{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.sidebar nav{display:flex;overflow:auto}.brand,.sidebar-foot{display:none}}

.edit-btn{padding:6px 10px;font-size:12px;border-color:#b8c6d8;color:var(--navy);font-weight:700}.edit-btn:hover{background:#eef4fb}
.sidebar-footer{margin-top:auto}.data-center-btn{width:100%;display:flex;align-items:center;gap:10px;text-align:left;padding:11px;border-radius:10px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);color:#fff;cursor:pointer}.data-center-btn:hover{background:rgba(255,255,255,.14)}.data-center-btn span{font-size:20px}.data-center-btn div{display:grid}.data-center-btn small{opacity:.72;margin-top:2px}.row-actions{display:flex;gap:6px}.delete-btn{padding:6px 10px;font-size:12px;border-color:#fecaca;color:#b91c1c;font-weight:700}.delete-btn:hover{background:#fef2f2}.info-banner{margin-bottom:16px;padding:12px 14px;border-radius:10px;background:#eaf2fb;border:1px solid #c9dcf1;color:#17365d;font-size:13px}.origin{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:800;text-transform:uppercase}.origin.auto{background:#e0f2fe;color:#075985}.origin.manual{background:#f3f4f6;color:#4b5563}.small-modal{width:min(560px,94vw)}.modal-header p{margin:4px 0 0;color:var(--muted);font-size:13px}.data-actions{padding:18px;display:grid;gap:12px}.data-action{display:flex;align-items:center;gap:14px;width:100%;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff;text-align:left;cursor:pointer;color:var(--ink)}.data-action:hover{border-color:#b8c6d8;background:#f8fbff}.data-action div{display:grid;gap:3px}.data-action small{color:var(--muted)}.data-icon{width:38px;height:38px;border-radius:10px;background:#e8eef7;color:var(--navy);display:grid;place-items:center;font-size:22px;font-weight:800}.danger-zone{margin-top:8px;padding:14px;border:1px solid #fecaca;border-radius:12px;background:#fff7f7;display:flex;justify-content:space-between;gap:15px;align-items:center}.danger-zone div{display:grid;gap:4px}.danger-zone small{color:#7f1d1d}.danger-solid{background:#b91c1c!important;color:#fff!important;border-color:#b91c1c!important}
.hidden{display:none!important}.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#eef3f9,#f8fafc)}.login-card{width:min(420px,94vw);background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 70px rgba(23,54,93,.15);padding:28px;display:grid;gap:16px}.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:8px}.login-brand h1{margin:0;font-size:24px}.login-brand p{margin:4px 0 0;color:var(--muted)}.login-btn{width:100%;padding:11px}.login-error{min-height:18px;color:var(--red);font-size:13px}.login-hint{margin:0;color:var(--muted);font-size:12px;text-align:center}.audit-meta{font-size:11px;color:var(--muted);line-height:1.45}.audit-pill{display:inline-flex;padding:4px 7px;border-radius:999px;background:#eef2f7;font-size:10px;font-weight:800}.user-actions{display:flex;gap:6px;flex-wrap:wrap}.btn.warn-btn{color:#92400e;border-color:#fde68a}.btn.warn-btn:hover{background:#fffbeb}.btn.success-btn{color:#166534;border-color:#bbf7d0}.btn.success-btn:hover{background:#f0fdf4}.btn:disabled{opacity:.45;cursor:not-allowed}.modal-header{padding:16px 18px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}
.module-toolbar{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-bottom:14px;flex-wrap:wrap}
.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.detail-card{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:14px}.detail-card b{display:block;font-size:18px;margin-top:5px}.inline-actions{display:flex;gap:8px;flex-wrap:wrap}.subtle{font-size:12px;color:var(--muted)}.clickable{cursor:pointer}.link-btn{border:0;background:none;color:var(--navy);font-weight:700;cursor:pointer;padding:0}.calc-box{padding:12px;border-radius:10px;background:#eef6ff;border:1px solid #cfe1f5;margin-top:12px}.section-gap{margin-top:18px}@media(max-width:900px){.detail-grid{grid-template-columns:1fr}}

.brand-logo{width:42px;height:42px;object-fit:contain;border-radius:10px;background:#fff}.login-logo{max-width:72px;max-height:72px;object-fit:contain}.color-input{height:42px;padding:3px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.settings-preview{padding:16px;border-radius:12px;border:1px solid var(--line);margin-top:14px}.tracking-list{display:grid;gap:8px}.tracking-chip{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:9px}.margin-good{color:var(--green);font-weight:800}.margin-bad{color:var(--red);font-weight:800}@media(max-width:700px){.settings-grid{grid-template-columns:1fr}}

.sale-item-row{display:grid;grid-template-columns:minmax(220px,2fr) 110px 150px minmax(180px,1fr) auto;gap:10px;align-items:end;padding:12px 0;border-bottom:1px solid var(--line)}.sale-item-info{display:grid;gap:3px;padding-bottom:5px}.sale-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.sale-summary-grid span{display:grid;gap:3px;color:var(--muted);font-size:12px}.sale-summary-grid strong{font-size:16px;color:var(--ink)}@media(max-width:900px){.sale-item-row{grid-template-columns:1fr 1fr}.sale-item-info{grid-column:1/-1}.sale-summary-grid{grid-template-columns:1fr 1fr}}

.input.compact{max-width:280px;min-width:180px}

/* V2.5 — responsividade e imagens de produtos */
html,body{max-width:100%;overflow-x:hidden}.app-shell{width:100%;min-height:100dvh}.content{min-width:0;width:100%;max-width:100vw}.table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table{min-width:max-content}.modal-body{max-width:100%;overflow-x:hidden}dialog{max-height:94dvh}.product-thumb{width:54px;height:54px;border-radius:9px;object-fit:cover;border:1px solid var(--line);background:#fff}.product-thumb.placeholder{display:grid;place-items:center;font-size:9px;color:var(--muted);text-align:center}.image-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.image-card{border:1px solid var(--line);border-radius:12px;padding:10px;display:grid;gap:8px}.image-card img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:9px}.sale-discount{font-weight:700}
@media(max-width:1200px){.app-shell{grid-template-columns:220px minmax(0,1fr)}.content{padding:20px}.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.app-shell{grid-template-columns:74px minmax(0,1fr)}.sidebar{padding:16px 10px}.brand div:last-child,.nav-label,.sidebar-footer .data-center-btn div{display:none}.brand{justify-content:center}.nav-btn{text-align:center;padding:10px 6px}.content{padding:16px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{flex-wrap:wrap}.sale-item-row{grid-template-columns:1fr 1fr}.sale-item-info{grid-column:1/-1}}
@media(max-width:640px){.app-shell{display:block}.sidebar{position:sticky;top:0;z-index:20;min-height:auto;height:auto;padding:8px 10px}.sidebar .brand{display:none}.sidebar nav{display:flex;overflow-x:auto;gap:4px}.nav-btn{flex:0 0 auto;min-width:46px}.sidebar-footer{display:none}.content{padding:12px}.topbar{margin-bottom:14px}.topbar h1{font-size:22px}.kpis{grid-template-columns:1fr}.form-grid,.settings-grid,.sale-summary-grid,.sale-item-row{grid-template-columns:1fr}.sale-item-info{grid-column:auto}.toolbar,.module-toolbar{align-items:stretch}.module-toolbar .btn,.toolbar .btn{flex:1}.table th,.table td{padding:9px 8px}dialog{width:96vw;max-width:96vw}.modal-body{max-height:70dvh;padding:14px}}


/* V2.6.1 — refinamento visual, cores HEX/RGB e feedback operacional */
:root{--surface:#ffffff;--surface-soft:#f8fafc;--shadow:0 14px 38px rgba(15,23,42,.08);--shadow-hover:0 18px 48px rgba(15,23,42,.12);--radius-lg:18px}
body{background:linear-gradient(180deg,#f7f9fc 0,#f3f6fa 100%)}
.content{padding:28px clamp(18px,2.4vw,36px)}
.topbar{padding:4px 0 18px;border-bottom:1px solid rgba(148,163,184,.18);margin-bottom:22px}
.topbar h1{letter-spacing:-.035em}.topbar-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.card{border:1px solid rgba(148,163,184,.22);border-radius:var(--radius-lg);box-shadow:var(--shadow);background:rgba(255,255,255,.96)}
.card:hover{box-shadow:var(--shadow-hover)}
.kpi{border-radius:16px;border:1px solid rgba(148,163,184,.18);box-shadow:0 10px 28px rgba(15,23,42,.06)}
.btn{border-radius:11px;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn.primary{box-shadow:0 8px 18px color-mix(in srgb,var(--navy) 22%,transparent)}
.input,select,textarea{border-radius:11px;min-height:42px;transition:border-color .15s,box-shadow .15s}.input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}
.table-wrap{border-radius:14px;border:1px solid rgba(148,163,184,.18)}.table{background:#fff}.table tbody tr{transition:background .15s ease}.table tbody tr:hover{background:#f8fbff}
.status{border:1px solid rgba(148,163,184,.14)}
.received-row{background:#f0fdf4!important}.received-row td{border-bottom-color:#bbf7d0}.received-row:hover{background:#e8faef!important}.partial-row{background:#fffbeb!important}
.color-control{border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--surface-soft)}.color-main{display:grid;grid-template-columns:48px 1fr;gap:8px}.color-swatch{width:48px;height:42px;border:0;padding:0;background:none}.color-hex{text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.rgb-row{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:8px}.rgb-row label{font-size:10px}.brand-settings-preview{--preview-primary:#17365D;--preview-secondary:#234F84;--preview-accent:#0EA5E9;--preview-sidebar:#17365D;display:grid;grid-template-columns:105px 1fr;min-height:130px;border:1px solid var(--line);border-radius:15px;overflow:hidden;margin-top:15px;background:#fff}.preview-sidebar{background:linear-gradient(180deg,var(--preview-sidebar),var(--preview-secondary));color:#fff;display:grid;place-items:center;font-weight:900;font-size:20px}.preview-content{padding:18px;display:grid;align-content:center;justify-items:start;gap:5px}.preview-content strong{color:var(--preview-primary);font-size:18px}.preview-content small{color:var(--muted)}.preview-button{margin-top:8px;border:0;border-radius:9px;background:var(--preview-primary);color:#fff;padding:8px 12px;font-weight:700}.preview-button::after{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--preview-accent);margin-left:8px}
.checkbox-card{display:flex!important;align-items:flex-start;gap:11px;padding:13px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}.checkbox-card input{width:18px;height:18px;margin-top:2px}.checkbox-card span{display:grid;gap:3px}.checkbox-card small{font-weight:400;color:var(--muted)}
.password-dialog{width:min(560px,94vw)}.password-dialog::backdrop{background:rgba(15,23,42,.72);backdrop-filter:blur(4px)}
@media(max-width:760px){.content{padding:14px}.topbar-actions{width:100%}.topbar-actions .badge{flex:1}.brand-settings-preview{grid-template-columns:72px 1fr}.rgb-row{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* V2.6.2 — estoque consolidado */
.stock-in{color:#15803d}.stock-out{color:#b91c1c}.stock-low td{background:rgba(245,158,11,.06)}.stock-zero td{background:rgba(220,38,38,.05)}.stock-kpis{margin-bottom:18px}
/* V2.7.0 — Resultado econômico e distribuição aos sócios */
.result-operation{padding:20px}.result-po{margin-top:18px;padding-top:16px;border-top:1px solid var(--border,#e5e7eb)}.result-po-head{display:grid;grid-template-columns:minmax(160px,.7fr) minmax(260px,1.7fr) minmax(160px,.7fr);gap:18px;align-items:start;margin-bottom:12px}.result-po-head>span{color:var(--muted,#6b7280);line-height:1.5}.warning-box{padding:12px 14px;border-radius:12px;background:#fff7ed;color:#9a3412;border:1px solid #fed7aa;margin:10px 0 14px}.ok-text{color:#15803d}.result-operation .table-wrap{box-shadow:none;border:1px solid var(--border,#e5e7eb)}
@media(max-width:900px){.result-po-head{grid-template-columns:1fr}.result-operation{padding:14px}}


/* V2.10 - tabelas longas mantêm cabeçalhos visíveis durante a rolagem. */
.table-wrap{overflow:auto;max-height:72vh;position:relative}
.table thead th{position:sticky;top:0;z-index:5;background:var(--card);box-shadow:0 1px 0 var(--line)}
.table thead th:first-child{z-index:6}


/* V2.11 — usabilidade para alto volume */
.list-search{justify-content:flex-start;position:sticky;top:0;z-index:8;background:linear-gradient(180deg,#f7f9fc 75%,transparent);padding-bottom:8px}.list-search .input{width:min(460px,100%)}
.po-groups,.allocation-groups{display:grid;gap:12px}.po-group,.allocation-group{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 8px 24px rgba(15,23,42,.05)}.po-group>summary,.allocation-group>summary{list-style:none;cursor:pointer;padding:14px 16px;display:flex;justify-content:space-between;align-items:center;gap:16px;background:#fbfcfe}.po-group>summary::-webkit-details-marker,.allocation-group>summary::-webkit-details-marker{display:none}.po-group>summary>div:first-child,.allocation-group>summary>div:first-child{display:grid;gap:3px}.po-group>summary span,.allocation-group>summary span{font-size:12px;color:var(--muted)}.po-group[open]>summary,.allocation-group[open]>summary{border-bottom:1px solid var(--line)}.po-group-body,.allocation-group-body{padding:12px}.po-group-body .table-wrap,.allocation-group-body .table-wrap{max-height:44vh;box-shadow:none}.po-summary-metrics,.allocation-balance{display:flex!important;gap:10px!important;align-items:center;flex-wrap:wrap;justify-content:flex-end}.po-summary-metrics>span,.allocation-balance>span,.allocation-balance>strong{padding:5px 8px;border-radius:999px;background:#f1f5f9;font-size:11px!important}.capital-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:10px 0 14px}.capital-card{border:1px solid var(--line);background:#fff;border-radius:13px;padding:12px;text-align:left;display:grid;gap:3px;cursor:pointer}.capital-card:hover,.capital-card.active{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}.capital-card span{font-weight:700}.capital-card strong{font-size:18px}.capital-card small{color:var(--muted)}
@media(max-width:760px){.po-group>summary,.allocation-group>summary{align-items:flex-start;flex-direction:column}.po-summary-metrics,.allocation-balance{justify-content:flex-start}.capital-cards{grid-template-columns:1fr 1fr}}

/* V2.12 - grupos financeiros e rateio de aportes */
.finance-groups{display:grid;gap:16px}
.finance-group{border:1px solid var(--border,#dbe3ee);border-radius:16px;background:#fff;overflow:hidden}
.finance-group>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;cursor:pointer;list-style:none;background:#f8fafc}
.finance-group>summary::-webkit-details-marker{display:none}
.finance-group>summary>div:first-child{display:grid;gap:3px}
.finance-group>summary>div:first-child span{font-size:.86rem;color:#667085}
.finance-summary{display:flex;align-items:center;gap:14px}
.finance-summary strong{min-width:32px;text-align:center;font-size:1.15rem}
.finance-summary span{font-weight:700}
.finance-group.atrasadas>summary{background:#fff5f5}
.finance-group.proximas>summary{background:#fffbeb}
.finance-group.quitadas>summary{background:#f0fdf4}
.finance-group-body>.card{border:0;border-radius:0;box-shadow:none}
.allocation-divider{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-top:12px}
.allocation-divider label{min-width:150px}
#allocationShare{font-weight:700;padding:10px 0}
@media(max-width:800px){.finance-group>summary{align-items:flex-start;flex-direction:column}.finance-summary{width:100%;justify-content:space-between}}

/* V2.14.2 - restore controlado */
.restore-panel{margin-top:18px;padding:16px;border:1px solid #fecaca;border-radius:12px;background:#fffafa}.restore-panel h4{margin:0}.btn.danger{border-color:#b91c1c;color:#b91c1c;font-weight:700}.btn.danger:hover{background:#fef2f2}


/* V2.15.0 — responsividade de tabelas e relatórios */
.wrap-text{white-space:normal!important;overflow-wrap:anywhere;line-height:1.35}
@media(min-width:1100px){
  .table{min-width:0!important;width:100%;table-layout:auto}
  .table th,.table td{white-space:normal;overflow-wrap:anywhere;vertical-align:top}
  .table th{line-height:1.25}
  .row-actions{display:flex;flex-wrap:wrap;gap:6px;min-width:150px}
  .table-wrap{overflow-x:hidden}
}
@media(max-width:1099px){
  .table{min-width:max-content}
  .table th,.table td{white-space:nowrap}
  .table .wrap-text{white-space:normal}
}
.report-toolbar{display:grid;grid-template-columns:minmax(230px,1.4fr) minmax(150px,.65fr) minmax(150px,.65fr) repeat(4,auto);gap:10px;align-items:end;margin-bottom:18px;position:sticky;top:0;z-index:9}
.report-sheet{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:var(--shadow)}
.report-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:16px}
.report-head h2{margin:4px 0;font-size:22px}.report-head span,.report-head small{color:var(--muted)}
.report-sheet .table-wrap{max-height:none}
@media(max-width:1100px){.report-toolbar{grid-template-columns:1fr 1fr 1fr}.report-toolbar .btn{width:100%}}
@media(max-width:700px){.report-toolbar{grid-template-columns:1fr}.report-head{flex-direction:column}}
@media print{
  body{background:#fff!important}
  .sidebar,.topbar,.report-toolbar,.list-search{display:none!important}
  .app-shell{display:block!important}.content{padding:0!important}
  #view>*:not(#reportPrintArea){display:none!important}
  #reportPrintArea{display:block!important;border:0!important;box-shadow:none!important;padding:0!important}
  .table-wrap{overflow:visible!important;max-height:none!important;border:0!important}
  .table{min-width:0!important;font-size:10pt!important}
  .table th,.table td{white-space:normal!important;padding:6px!important}
  @page{size:landscape;margin:10mm}
}


/* V2.15.1 — relatórios e controles societários */
.report-company{font-size:13px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.report-meta{display:grid;gap:5px;margin-top:8px;font-size:13px;color:var(--muted);max-width:900px}
.report-meta span{display:block}
.report-generated{text-align:right;min-width:210px;color:var(--muted)}
.check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;margin-top:8px}
.capital-card.static{cursor:default;text-align:left}
.settlement-mini{display:block;margin-top:6px;line-height:1.3}
.bad-text{color:#b42318;font-weight:700}
@media(max-width:700px){.report-generated{text-align:left;min-width:0}}


/* ============================================================
   V2.16.0 — Login white-label e Dashboard analítico
   ============================================================ */
.login-screen{
  --login-text:#fff;--login-panel:#0b1f3a;--login-panel-opacity:.90;
  --login-button:#17365d;--login-overlay:.18;
  min-height:100vh;position:relative;display:grid;align-items:center;
  grid-template-columns:minmax(0,1fr) minmax(360px,520px);gap:48px;
  padding:clamp(28px,5vw,76px);background-size:cover;background-position:center;
  background-color:#0f2442;overflow:hidden;
}
.login-screen::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,rgba(3,15,35,.32),rgba(3,15,35,.08));z-index:0}
.login-screen>*{position:relative;z-index:1}
.login-screen[data-position="esquerda"]{grid-template-columns:minmax(360px,520px) minmax(0,1fr)}
.login-screen[data-position="esquerda"] .login-card{grid-column:1}.login-screen[data-position="esquerda"] .login-visual-brand{grid-column:2;grid-row:1}
.login-screen[data-position="centro"]{grid-template-columns:1fr;justify-items:center}.login-screen[data-position="centro"] .login-visual-brand{display:none}
.login-card{
  width:min(500px,94vw);justify-self:end;color:var(--login-text);
  background:color-mix(in srgb,var(--login-panel) calc(var(--login-panel-opacity)*100%),transparent);
  border:1px solid color-mix(in srgb,var(--login-text) 20%,transparent);
  border-radius:24px;box-shadow:0 30px 80px rgba(0,0,0,.34);padding:clamp(26px,3vw,38px);
  backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);
}
.login-screen[data-position="esquerda"] .login-card{justify-self:start}.login-screen[data-position="centro"] .login-card{justify-self:center}
.login-card label{color:var(--login-text)}.login-card .input{background:rgba(255,255,255,.08);border-color:color-mix(in srgb,var(--login-text) 35%,transparent);color:var(--login-text);padding:12px 13px}
.login-card .input::placeholder{color:color-mix(in srgb,var(--login-text) 58%,transparent)}
.login-brand h1{font-size:clamp(25px,3vw,34px);color:var(--login-text)}.login-subtitle{color:color-mix(in srgb,var(--login-text) 70%,transparent)!important}
.login-system-tag{display:inline-flex;padding:6px 12px;border-radius:999px;background:color-mix(in srgb,var(--login-button) 72%,transparent);font-weight:800;letter-spacing:.06em;margin-bottom:8px}
.login-btn{background:var(--login-button)!important;border-color:transparent!important;color:#fff!important;font-size:16px;font-weight:800;min-height:48px}
.login-hint{color:color-mix(in srgb,var(--login-text) 70%,transparent)}
.login-visual-brand{align-self:center;justify-self:center;display:grid;justify-items:center;text-align:center;color:var(--login-text);text-shadow:0 4px 24px rgba(0,0,0,.25)}
.login-hero-logo{width:min(440px,42vw);height:min(440px,42vw);object-fit:contain;filter:drop-shadow(0 20px 35px rgba(0,0,0,.3))}
.login-hero-text{margin-top:14px;font-weight:800;font-size:clamp(22px,3vw,38px);letter-spacing:.04em}
.login-status{position:absolute!important;left:28px;bottom:24px;display:flex;gap:8px;align-items:center;padding:8px 13px;border-radius:999px;background:rgba(5,15,30,.55);color:#fff;font-size:12px;backdrop-filter:blur(9px)}
.login-status span{width:10px;height:10px;border-radius:50%;background:#22c55e;box-shadow:0 0 12px #22c55e}
.login-footer{position:absolute!important;right:28px;bottom:26px;color:rgba(255,255,255,.62);font-size:12px;text-align:right}
.login-settings-preview{min-height:330px;border:1px solid var(--line);border-radius:16px;margin-top:16px;padding:20px;display:grid;grid-template-columns:1fr 290px;gap:20px;align-items:center;background:linear-gradient(135deg,#18355a,#496b91);background-size:cover;background-position:center;overflow:hidden}
.login-settings-preview[data-position="esquerda"]{grid-template-columns:290px 1fr}.login-settings-preview[data-position="esquerda"] .preview-login-panel{grid-column:1;grid-row:1}.login-settings-preview[data-position="esquerda"] .preview-hero{grid-column:2}
.login-settings-preview[data-position="centro"]{grid-template-columns:1fr;justify-items:center}.login-settings-preview[data-position="centro"] .preview-hero{display:none}
.preview-hero{display:grid;justify-items:center;color:#fff;gap:8px}.preview-hero img{max-width:180px;max-height:180px;object-fit:contain}.preview-hero strong{font-size:22px}
.preview-login-panel{color:var(--preview-login-text,#fff);background:color-mix(in srgb,var(--preview-login-panel,#0b1f3a) calc(var(--preview-login-opacity,.9)*100%),transparent);border:1px solid rgba(255,255,255,.18);padding:18px;border-radius:16px;display:grid;gap:10px;box-shadow:0 16px 35px rgba(0,0,0,.2)}
.preview-login-panel h4{margin:0;font-size:20px}.preview-login-panel>span{font-size:10px;font-weight:800;letter-spacing:.08em}.fake-input{border:1px solid rgba(255,255,255,.25);border-radius:8px;padding:9px;font-size:11px}.preview-login-button{background:var(--preview-login-button,#17365d);border-radius:8px;padding:10px;text-align:center;font-weight:800;color:#fff}

.kpi-card{appearance:none;text-align:left;font:inherit;color:inherit;width:100%;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.kpi-card:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(23,54,93,.13);border-color:#b9c9dc}.kpi-card:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 35%,transparent);outline-offset:2px}
.kpi-label{display:flex;align-items:center;justify-content:space-between;gap:8px}.drill-icon{font-size:14px;opacity:.55}.kpi-card:hover .drill-icon{opacity:1}
.indicator-explain{display:flex;justify-content:space-between;align-items:flex-start;gap:22px;padding:16px;border-radius:12px;background:#f4f8fd;border:1px solid #dce8f5}.indicator-explain>div{display:grid;gap:4px;min-width:180px}.indicator-explain>div strong{font-size:28px}.indicator-explain p{margin:0;max-width:520px;color:var(--muted);line-height:1.55}
.detail-composition{display:grid;gap:0;margin-top:14px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.detail-composition-row{display:flex;justify-content:space-between;gap:15px;padding:10px 13px;background:#fff;border-bottom:1px solid var(--line)}.detail-composition-row:last-child{border-bottom:0}
@media(max-width:900px){.login-screen{grid-template-columns:1fr;justify-items:center;padding:24px}.login-visual-brand{display:none}.login-card{justify-self:center}.login-footer{left:24px;right:24px;text-align:center}.login-status{left:24px}.login-settings-preview{grid-template-columns:1fr}.preview-hero{display:none}.indicator-explain{flex-direction:column}}


/* V2.16.1 — locais de estoque e rastreabilidade */
.location-badges{display:flex;flex-wrap:wrap;gap:6px;min-width:220px}
.location-badges span{display:inline-flex;gap:5px;align-items:center;padding:5px 8px;border-radius:999px;background:#eef4fb;border:1px solid #d8e4f0;font-size:11px;white-space:nowrap}
.stock-kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.sale-item-row{grid-template-columns:minmax(210px,1.7fr) minmax(160px,1fr) 105px 145px minmax(170px,1fr) auto}
@media(max-width:1150px){.sale-item-row{grid-template-columns:1fr 1fr}.sale-item-row .sale-item-info{grid-column:1/-1}}

/* V2.16.1 — acabamento visual do logotipo no login */
.login-hero-logo,.login-logo{border-radius:22px}

/* V2.16.1 correção — arte de fundo não recebe logo/marca sobrepostos */
.login-settings-preview.has-custom-background .preview-hero{display:none!important}
.login-settings-preview.has-custom-background{grid-template-columns:1fr 290px}
.login-settings-preview.has-custom-background[data-position="esquerda"]{grid-template-columns:290px 1fr}
.login-settings-preview.has-custom-background[data-position="centro"]{grid-template-columns:1fr}


/* V2.16.1 — painel de autenticação à direita com arte personalizada */
@media (min-width:821px){
  .login-settings-preview.has-custom-background,
  .login-settings-preview.has-custom-background[data-position="esquerda"],
  .login-settings-preview.has-custom-background[data-position="centro"],
  .login-settings-preview.has-custom-background[data-position="direita"]{
    grid-template-columns:minmax(0,1fr) 290px !important;
  }
  .login-settings-preview.has-custom-background .preview-card{
    grid-column:2 !important;
    justify-self:end !important;
  }
}


/* V2.16.1 hotfix — painel à direita com background personalizado */
@media (min-width:821px){
  #loginScreen[data-position="direita"] .login-layout{
    grid-template-columns:minmax(0,1fr) minmax(340px,430px) !important;
  }
  #loginScreen[data-position="direita"] .login-panel{
    grid-column:2 !important;
    justify-self:end !important;
  }

  #loginSettingsPreview.has-custom-background{
    grid-template-columns:minmax(0,1fr) 290px !important;
  }
  #loginSettingsPreview.has-custom-background .preview-card{
    grid-column:2 !important;
    justify-self:end !important;
  }
  #loginSettingsPreview.has-custom-background .preview-hero{
    display:none !important;
  }
}


/* ============================================================
   V2.16.1 — posicionamento definitivo do painel de login
   login_posicao é a fonte de verdade: esquerda / centro / direita.
   ============================================================ */
@media (min-width:821px){

  /* TELA REAL */
  #loginScreen[data-position="direita"]{
    grid-template-columns:minmax(0,1fr) minmax(360px,520px) !important;
    justify-items:stretch !important;
  }
  #loginScreen[data-position="direita"] .login-card{
    grid-column:2 !important;
    grid-row:1 !important;
    justify-self:end !important;
  }

  #loginScreen[data-position="esquerda"]{
    grid-template-columns:minmax(360px,520px) minmax(0,1fr) !important;
    justify-items:stretch !important;
  }
  #loginScreen[data-position="esquerda"] .login-card{
    grid-column:1 !important;
    grid-row:1 !important;
    justify-self:start !important;
  }

  #loginScreen[data-position="centro"]{
    grid-template-columns:1fr !important;
    justify-items:center !important;
  }
  #loginScreen[data-position="centro"] .login-card{
    grid-column:1 !important;
    grid-row:1 !important;
    justify-self:center !important;
  }

  /* PRÉ-VISUALIZAÇÃO — com ou sem imagem personalizada */
  #loginSettingsPreview[data-position="direita"],
  #loginSettingsPreview.has-custom-background[data-position="direita"]{
    grid-template-columns:minmax(0,1fr) 290px !important;
    justify-items:stretch !important;
  }
  #loginSettingsPreview[data-position="direita"] .preview-login-panel,
  #loginSettingsPreview.has-custom-background[data-position="direita"] .preview-login-panel{
    grid-column:2 !important;
    grid-row:1 !important;
    justify-self:end !important;
  }

  #loginSettingsPreview[data-position="esquerda"],
  #loginSettingsPreview.has-custom-background[data-position="esquerda"]{
    grid-template-columns:290px minmax(0,1fr) !important;
    justify-items:stretch !important;
  }
  #loginSettingsPreview[data-position="esquerda"] .preview-login-panel,
  #loginSettingsPreview.has-custom-background[data-position="esquerda"] .preview-login-panel{
    grid-column:1 !important;
    grid-row:1 !important;
    justify-self:start !important;
  }

  #loginSettingsPreview[data-position="centro"],
  #loginSettingsPreview.has-custom-background[data-position="centro"]{
    grid-template-columns:1fr !important;
    justify-items:center !important;
  }
  #loginSettingsPreview[data-position="centro"] .preview-login-panel,
  #loginSettingsPreview.has-custom-background[data-position="centro"] .preview-login-panel{
    grid-column:1 !important;
    grid-row:1 !important;
    justify-self:center !important;
  }

  /* A arte de fundo personalizada continua sem logo auxiliar do ERP. */
  #loginSettingsPreview.has-custom-background .preview-hero{
    display:none !important;
  }
}


/* V2.16.1 — seletor visual de posição do painel de login */
.login-position-config{display:grid;gap:10px}
.settings-label{font-weight:800;color:var(--text)}
.login-position-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.login-position-option{display:flex!important;align-items:flex-start;gap:10px;padding:13px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.login-position-option:hover{border-color:#aebfd3;transform:translateY(-1px)}
.login-position-option input{margin-top:3px;accent-color:var(--primary)}
.login-position-option span{display:grid;gap:3px}
.login-position-option strong{font-size:13px}
.login-position-option small{font-size:11px;color:var(--muted);line-height:1.3}
.login-position-option:has(input:checked){border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 12%,transparent);background:color-mix(in srgb,var(--primary) 5%,#fff)}
@media(max-width:760px){.login-position-options{grid-template-columns:1fr}}
