:root{
  --bg:#f5f6f8;--panel:#fff;--text:#202124;--muted:#6f7580;--line:#e5e7eb;--brand:#8f1010;--brand2:#b11d1d;
  --success:#17824b;--warn:#b7791f;--danger:#b42318;--info:#2457c5;--shadow:0 10px 30px rgba(0,0,0,.08);--radius:16px
}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit}.hidden{display:none!important}.muted{color:var(--muted)}
.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top right,#f5d7d7,transparent 35%),linear-gradient(145deg,#f7f7f8,#eee)}
.login-card{width:min(420px,100%);background:#fff;border-radius:24px;box-shadow:var(--shadow);padding:34px}.login-card h1{margin:14px 0 6px}.login-card p{margin:0 0 24px;color:var(--muted)}.login-tagline{margin:0 0 24px;color:var(--muted);text-align:left}
.brand-mark{width:54px;height:54px;border-radius:16px;background:linear-gradient(135deg,var(--brand),var(--brand2));display:grid;place-items:center;color:#fff;font-weight:800}.brand-mark.small{width:36px;height:36px;border-radius:10px;font-size:13px}.brand-logo{display:block;max-width:100%}.brand-logo.login{width:min(330px,100%);margin:0 auto 8px}.brand-logo.side{width:44px;height:44px;object-fit:contain;border-radius:12px;background:#fff;padding:3px}
.form-stack{display:grid;gap:14px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid .span-2{grid-column:1/-1}
label{display:grid;gap:7px;font-size:13px;font-weight:650;color:#454a53}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #d9dde4;border-radius:10px;background:#fff;outline:none}input:focus,select:focus,textarea:focus{border-color:#a86565;box-shadow:0 0 0 3px rgba(143,16,16,.08)}textarea{min-height:88px;resize:vertical}
.btn{border:0;border-radius:10px;padding:10px 14px;cursor:pointer;font-weight:700}.btn.primary{background:var(--brand);color:#fff}.btn.primary:hover{background:#761010}.btn.ghost{background:#f0f1f3;color:#32363d}.btn.danger{background:#fff0ef;color:var(--danger)}.btn.success{background:#eaf8f0;color:var(--success)}.btn.full{width:100%}.btn.sm{padding:7px 10px;font-size:12px}.btn:disabled{opacity:.45;cursor:not-allowed}
.app{min-height:100vh}.sidebar{position:fixed;left:0;top:0;bottom:0;width:260px;background:#17191d;color:#fff;padding:18px 14px;display:flex;flex-direction:column;z-index:30;transition:.25s}.brand{display:flex;align-items:center;gap:11px;padding:2px 7px 20px}.brand div{display:grid}.brand small{color:#9ba0a9}
nav{display:grid;gap:4px;overflow:auto}.nav-item{border:0;background:transparent;color:#c7cad0;text-align:left;padding:11px 12px;border-radius:10px;cursor:pointer;display:flex;gap:10px;align-items:center}.nav-item.active,.nav-item:hover{background:#282b31;color:#fff}.nav-icon{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;line-height:1;flex:0 0 22px}.nav-icon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.sidebar-footer{margin-top:auto;padding-top:14px}.user-card{padding:10px;background:#22252a;border-radius:10px;margin-bottom:10px}.user-card small{color:#aeb3ba;display:block;margin-top:2px}
.main-shell{margin-left:260px;min-height:100vh}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:0 24px;position:sticky;top:0;z-index:15}.topbar h2{font-size:20px;margin:0}.topbar small{color:var(--muted)}.top-actions{margin-left:auto}.icon-btn{display:none;border:0;background:#f0f1f3;border-radius:10px;width:40px;height:40px;cursor:pointer}.content{padding:24px;max-width:1600px;margin:auto}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:0 2px 10px rgba(0,0,0,.03)}.metric{background:var(--brand);border-color:var(--brand);color:#fff}.metric .value{font-size:30px;font-weight:800;margin-top:8px;color:#fff}.metric small{color:rgba(255,255,255,.88)}.metric .hint{margin-top:8px;font-size:12px;color:#fff}.section-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:16px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px}.section-title h3{margin:0;font-size:16px}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}.table{width:100%;border-collapse:collapse;min-width:720px;background:#fff}.table th,.table td{padding:12px 13px;border-bottom:1px solid var(--line);font-size:13px;text-align:left;vertical-align:middle}.table th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#717782;background:#fafafa}.table tr:last-child td{border-bottom:0}.table tr:hover td{background:#fcfcfd}
.badge{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800}.badge.success{background:#e8f7ef;color:var(--success)}.badge.warn{background:#fff6dd;color:#996510}.badge.danger{background:#ffefed;color:var(--danger)}.badge.info{background:#edf3ff;color:var(--info)}.badge.neutral{background:#eef0f3;color:#626975}
.toolbar{display:flex;gap:10px;justify-content:space-between;align-items:center;margin-bottom:14px;flex-wrap:wrap}.toolbar .search{min-width:260px;max-width:420px}.actions{display:flex;gap:6px;flex-wrap:wrap}.empty{padding:34px;text-align:center;color:var(--muted)}
.alert-card{border-left:4px solid var(--warn);padding:14px 16px;background:#fff;border-radius:12px;border-top:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:10px}.alert-card.danger{border-left-color:var(--danger)}.alert-card .alert-head{display:flex;justify-content:space-between;gap:10px}.alert-card p{margin:7px 0 0;color:#5f6570;font-size:13px}
.client-stock{display:grid;gap:8px}.stock-row{display:grid;grid-template-columns:1.6fr .8fr .7fr .9fr;gap:10px;padding:11px;background:#fafafa;border:1px solid var(--line);border-radius:10px;font-size:13px}
.timeline{border-left:2px solid #e4e6ea;margin-left:8px;padding-left:18px}.timeline-item{position:relative;padding:0 0 17px}.timeline-item:before{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:var(--brand);left:-24px;top:4px}.timeline-item small{color:var(--muted)}
.error-text{color:var(--danger);font-size:12px;min-height:16px}.toast{position:fixed;right:18px;bottom:18px;background:#17191d;color:#fff;padding:12px 16px;border-radius:11px;box-shadow:var(--shadow);transform:translateY(30px);opacity:0;pointer-events:none;transition:.25s;z-index:100}.toast.show{transform:translateY(0);opacity:1}
.modal{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:18px}.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.5)}.modal-card{position:relative;background:#fff;border-radius:18px;width:min(720px,100%);max-height:90vh;overflow:auto;padding:24px;box-shadow:var(--shadow)}.modal-close{position:absolute;right:12px;top:12px;width:34px;height:34px;border:0;border-radius:9px;background:#f0f1f3;cursor:pointer;font-size:22px}.modal-card h3{margin-top:0}.notice{padding:12px 14px;background:#fff8e8;border:1px solid #f1dfb2;border-radius:10px;font-size:13px;color:#705621}.kpi-inline{display:flex;gap:8px;flex-wrap:wrap}.divider{height:1px;background:var(--line);margin:18px 0}.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f2f3f5;padding:2px 6px;border-radius:6px}
@media(max-width:1100px){.cards{grid-template-columns:repeat(2,1fr)}.section-grid{grid-template-columns:1fr}}
@media(max-width:820px){.sidebar{transform:translateX(-100%);width:272px}.sidebar.open{transform:translateX(0)}.main-shell{margin-left:0}.icon-btn{display:block}.content{padding:16px}.topbar{padding:0 14px}.top-actions{display:none}.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}.stock-row{grid-template-columns:1fr 1fr}.cards{gap:10px}.card{padding:15px}}
@media(max-width:520px){.cards{grid-template-columns:1fr 1fr}.metric .value{font-size:24px}.login-card{padding:25px 20px}.table{min-width:620px}.toolbar .search{min-width:100%;width:100%}.stock-row{grid-template-columns:1fr}}

.icon-wa{padding:6px 9px;display:inline-flex;align-items:center;justify-content:center}.wa-icon{display:inline-flex;width:18px;height:18px}.wa-icon svg{width:18px;height:18px;display:block}.replacement-group.is-disabled{opacity:.5}.service-row input:disabled,.service-row select:disabled{background:#f5f6f8}
.top-actions{display:flex;gap:8px;align-items:center}
@media(max-width:820px){.top-actions{display:flex;margin-left:auto}.top-actions #seedBtn{display:none!important}.top-actions #installBtn{padding:8px 10px;font-size:12px;white-space:nowrap}}

.delivery-items{display:grid;gap:12px}.delivery-item-row{display:grid;grid-template-columns:1.6fr .7fr auto;gap:10px;align-items:end;padding:12px;border:1px dashed var(--line);border-radius:14px;background:#fafafa}.reports-grid,.guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.guide-list{display:grid;gap:12px}.guide-list > div{padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}
.report-intro{margin-bottom:16px}.report-intro h3{margin:0 0 8px}.report-intro p{margin:0;color:var(--muted);line-height:1.55}
.report-download-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.report-download-card{display:flex;gap:16px;align-items:flex-start}.report-file-icon{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;background:#e8f4ec;color:#1b6f3a;font-size:23px;font-weight:900;flex:0 0 50px}.report-download-content h3{margin:2px 0 6px;font-size:16px}.report-download-content p{margin:0 0 14px;color:var(--muted);font-size:13px;line-height:1.5}
.manual-hero{background:linear-gradient(135deg,#fff,#f9f0f0);border:1px solid var(--line);border-radius:20px;padding:22px;margin-bottom:18px;display:grid;grid-template-columns:1.25fr 1fr;gap:18px;align-items:center}.manual-hero h2{margin:8px 0 8px;font-size:24px}.manual-hero p{margin:0;color:var(--muted);line-height:1.55}.manual-role{display:inline-flex;padding:5px 9px;border-radius:999px;background:#f9e9e9;color:var(--brand);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.manual-flow{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;display:grid;gap:5px}.manual-flow span{font-size:13px;color:var(--muted);line-height:1.5}.manual-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.manual-card{padding:20px}.manual-card-head{display:flex;gap:12px;align-items:flex-start;padding-bottom:14px;border-bottom:1px solid var(--line)}.manual-card-head h3{margin:0 0 5px;font-size:17px}.manual-card-head p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.manual-number{width:34px;height:34px;border-radius:10px;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:800;flex:0 0 34px}.manual-steps{padding-top:14px}.manual-steps>b{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#616772}.manual-steps ol{margin:10px 0 0;padding-left:21px}.manual-steps li{margin-bottom:8px;font-size:13px;line-height:1.5;color:#3f444c}.manual-tip{margin-top:14px;padding:11px 12px;border-radius:10px;background:#fff8e8;border:1px solid #f1dfb2;color:#705621;font-size:12px;line-height:1.5}
@media(max-width:900px){.report-download-grid,.manual-grid,.manual-hero{grid-template-columns:1fr}.report-download-card{align-items:flex-start}}
.product-cell{display:flex;align-items:center;gap:10px}.product-cell.small .product-photo{width:36px;height:36px}.product-photo{width:48px;height:48px;border-radius:10px;object-fit:cover;border:1px solid var(--line);background:#fff;display:grid;place-items:center;flex:0 0 auto}.product-photo.placeholder{background:#f2f3f5;color:var(--brand);font-weight:900;font-size:18px}.product-photo-preview{min-height:90px;border:1px dashed var(--line);border-radius:12px;background:#fafafa;display:flex;align-items:center;justify-content:center;padding:12px}.product-photo-preview img{max-width:120px;max-height:120px;border-radius:12px;object-fit:cover}.checkbox-line{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:8px}.checkbox-line input{width:auto}.client-filters{justify-content:flex-start}.client-filters #municipalityFilter{min-width:220px;max-width:320px}.client-filters .btn{margin-left:auto}.sale-items{display:grid;gap:12px}.sale-item-row{display:grid;grid-template-columns:minmax(220px,1.7fr) .55fr .65fr .65fr auto;gap:10px;align-items:end;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fafafa}.sale-price{display:grid;gap:6px;padding-bottom:7px}.sale-price small{color:var(--muted);font-size:11px}.sale-price b{font-size:13px}.sale-total-box{display:flex;justify-content:space-between;align-items:center;background:#fff3f3;border:1px solid #ecd2d2;border-radius:14px;padding:15px 16px}.sale-total-box span{font-weight:700}.sale-total-box strong{font-size:22px;color:var(--brand)}.sale-list{display:grid;gap:10px}.sale-row{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:12px}.sale-row>div{display:grid;gap:4px}.sale-row small{color:var(--muted)}.sale-row>div:nth-child(2){text-align:right}.sale-row>div:nth-child(2) span{font-size:12px;color:var(--muted)}
@media(max-width:1000px){.sale-item-row{grid-template-columns:1fr 1fr}.sale-item-row>label:first-child{grid-column:1/-1}.sale-item-row .btn{grid-column:1/-1}.client-filters #municipalityFilter{min-width:180px}}
@media(max-width:620px){.sale-item-row{grid-template-columns:1fr}.sale-item-row>label:first-child,.sale-item-row .btn{grid-column:auto}.sale-row{grid-template-columns:1fr auto}.sale-row>div:nth-child(2){text-align:left}.sale-row .btn{grid-column:2;grid-row:1/3}.client-filters>*{width:100%!important;max-width:none!important}.client-filters .btn{margin-left:0}.product-photo{width:42px;height:42px}}

.sale-actions{display:flex!important;grid-template-columns:none!important;gap:7px!important;align-items:center;flex-wrap:wrap;justify-content:flex-end}.client-sale-history{max-height:360px;overflow:auto;padding-right:4px}.client-sale-history .sale-row{grid-template-columns:1fr auto auto}.modal-card:has(.client-sale-history){width:min(880px,100%)}
@media(max-width:620px){.sale-actions{grid-column:2;grid-row:1/3;align-self:center}.client-sale-history .sale-row{grid-template-columns:1fr auto}.client-sale-history .sale-actions{grid-column:2;grid-row:1/3}}

.sale-actions .btn.danger{background:#fff0ef;color:var(--danger)}

.alert-focus{outline:3px solid rgba(143,16,16,.28);box-shadow:0 0 0 6px rgba(143,16,16,.08);transition:.25s}

.sale-product-meta{display:block;font-size:11px;line-height:1.3;margin-top:2px}

/* v17: mantém as linhas das tabelas contínuas mesmo nas células de ações */
.table td.actions{display:table-cell;white-space:nowrap;min-width:190px}
.table td.actions .btn{display:inline-flex;margin:2px 4px 2px 0;vertical-align:middle}
.wide-table{min-width:1500px}
.alert-card .alert-head>b{line-height:1.35}

.alert-card .alert-head>b{min-width:0;flex:1}.alert-card .alert-head>div{flex-shrink:0}

/* v18: destaque dos cabeçalhos e módulo de auditoria */
.table th{font-weight:800}
.audit-filters{justify-content:flex-start}.audit-filters .search{min-width:280px}.audit-filters select{width:auto;min-width:180px}.audit-table{min-width:1450px}.audit-table .audit-reference{min-width:300px;white-space:normal;line-height:1.45}.audit-table .audit-details{min-width:420px;white-space:normal;line-height:1.45}.audit-notice{margin-bottom:0}
@media(max-width:700px){.audit-filters>*{width:100%!important;max-width:none!important}.audit-filters select{min-width:0}}

.audit-date-label{display:flex!important;grid-template-columns:auto 145px!important;align-items:center;gap:7px!important;font-size:12px}.audit-date-label input{padding:9px 10px}


/* v20: nova ambientação da tela de login */
body{background:#f3f4f6}
.login-screen{position:relative;overflow:hidden;min-height:100vh;display:grid;place-items:center;padding:32px 20px;background:radial-gradient(55% 28% at 0% 0%,rgba(176,13,13,.34) 0%,rgba(176,13,13,.16) 28%,rgba(255,255,255,0) 60%),radial-gradient(55% 28% at 100% 100%,rgba(176,13,13,.32) 0%,rgba(176,13,13,.14) 26%,rgba(255,255,255,0) 60%),url("assets/login-background.png") center center/cover no-repeat,linear-gradient(180deg,#f6f6f7,#efeff1)}
.login-screen::before,.login-screen::after{display:none}
.login-bg-wave,.login-bg-dots{display:none}
.login-card{position:relative;z-index:1;width:min(480px,100%);max-width:480px;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.82);border-radius:26px;box-shadow:0 22px 56px rgba(0,0,0,.10);padding:34px 36px 30px}
.brand-logo.login{width:min(380px,100%);margin:0 auto 12px}
.login-tagline{margin:0 0 22px;color:#6b7280;text-align:center;font-size:18px;line-height:1.42}
.login-form-enhanced{gap:16px}
.login-form-enhanced label{font-size:18px;font-weight:800;color:#2b3038;gap:10px}
.login-form-enhanced .input-shell{display:flex;align-items:center;gap:0;border:1px solid #d2d8df;border-radius:16px;background:#fff;overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}
.login-form-enhanced .input-shell:focus-within{border-color:#cf9f9f;box-shadow:0 0 0 4px rgba(143,16,16,.08)}
.login-form-enhanced .input-shell-icon{width:52px;height:54px;display:grid;place-items:center;color:#7c828b;flex:0 0 52px}
.login-form-enhanced .input-shell-icon svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.login-form-enhanced .input-shell input{border:0!important;box-shadow:none!important;padding:14px 14px 14px 0;font-size:16px;background:transparent}
.password-shell input{padding-right:8px!important}
.password-toggle{width:50px;height:54px;border:0;background:transparent;display:grid;place-items:center;color:#7c828b;cursor:pointer;flex:0 0 50px}
.password-toggle:hover{color:#8f1010}
.password-toggle:focus-visible{outline:2px solid rgba(143,16,16,.25);outline-offset:-2px}
.password-toggle svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.password-toggle .eye-closed{display:none}
.password-toggle.is-visible .eye-open{display:none}
.password-toggle.is-visible .eye-closed{display:block}
.login-submit{margin-top:4px;min-height:56px;border-radius:16px;font-size:18px;font-weight:800;background:linear-gradient(180deg,#b40d0d,#980d0d)!important;box-shadow:0 12px 24px rgba(143,16,16,.20)}
.login-submit:hover{filter:brightness(.97)}
#loginError{margin-top:2px;text-align:center;font-size:13px}
@media(max-width:900px){.login-card{width:min(470px,100%)}.login-tagline{font-size:17px}}
@media(max-width:640px){.login-screen{padding:20px 16px;background:radial-gradient(78% 32% at -6% 2%,rgba(176,13,13,.44) 0%,rgba(176,13,13,.22) 28%,rgba(255,255,255,0) 63%),radial-gradient(78% 34% at 106% 100%,rgba(176,13,13,.42) 0%,rgba(176,13,13,.20) 27%,rgba(255,255,255,0) 63%),url("assets/login-background.png") center center/cover no-repeat,linear-gradient(180deg,#f6f6f7,#efeff1)}.login-card{padding:24px 18px 20px;border-radius:24px}.brand-logo.login{width:min(288px,100%);margin-bottom:10px}.login-tagline{font-size:16px;margin-bottom:18px}.login-form-enhanced label{font-size:16px}.login-form-enhanced .input-shell{border-radius:14px}.login-form-enhanced .input-shell-icon{width:46px;height:50px;flex-basis:46px}.login-form-enhanced .input-shell input{padding:12px 12px 12px 0;font-size:15px}.password-toggle{width:46px;height:50px;flex-basis:46px}.login-submit{min-height:52px;font-size:17px}}
