@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap");:root{--color-primary:#2f3747;--color-primary-soft:#3d475c;--color-secondary:#f05f40;--color-bg:#f3f4f7;--color-surface:#fff;--color-border:#e0e2e8;--color-border-soft:#d3d7e0;--color-text:#111827;--color-muted:#6b7280;--color-success:#16a34a;--color-danger:#dc2626;--bp-desktop:1024px;--bp-tablet:768px;--sidebar-w:clamp(15rem,88vw,18rem);--sidebar-w-expanded:clamp(15.5rem,22vw,17.5rem);--sidebar-w-collapsed:clamp(4rem,12vw,4.75rem);--space-content:clamp(0.75rem,3vw,1.5rem);--topbar-pad-x:clamp(0.5rem,2.5vw,1.5rem);--touch-target:2.75rem;--space-stack-sm:0.75rem;--space-stack-md:1rem}*,:after,:before{box-sizing:border-box}body,html{overflow-x:clip}body,html{padding:0;margin:0;font-family:Montserrat,Helvetica,Arial,sans-serif;background:var(--color-bg);color:var(--color-text);max-width:100vw}h1,h2,h3{line-height:1.25}.card>h2:first-child{font-size:clamp(1.05rem,2.5vw,1.35rem)}.card>h3{font-size:clamp(.95rem,2vw,1.05rem)}a{color:inherit;text-decoration:none}button{font-family:inherit}canvas,img,svg,video{max-width:100%;height:auto}.app-shell{display:flex;flex-direction:row;min-height:100vh;min-height:100dvh;position:relative;width:100%;max-width:100vw}.sidebar-backdrop{display:block;position:fixed;inset:0;z-index:199;border:none;padding:0;margin:0;cursor:pointer;background:rgba(15,23,42,.5);opacity:0;pointer-events:none;transition:opacity .2s ease}.app-shell--drawer-open .sidebar-backdrop{opacity:1;pointer-events:auto}.sidebar-logo-brand{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.sidebar-logo-brand img{max-width:min(8.75rem,50vw);width:auto;height:auto}.sidebar-logo-tag{font-size:11px;opacity:.85}.sidebar-close-mobile{display:inline-flex;padding:.375rem;min-width:var(--touch-target);min-height:var(--touch-target);align-items:center;justify-content:center}.sidebar-perfil{margin-bottom:4px}.sidebar-logout{width:100%;justify-content:center;padding:10px 8px;min-height:var(--touch-target)}.sidebar{position:fixed;z-index:200;left:0;top:0;height:100vh;height:100dvh;width:var(--sidebar-w);max-width:100%;flex-shrink:0;background:linear-gradient(180deg,#222a4a,#1b2340);color:#fff;display:flex;flex-direction:column;padding:clamp(1rem,3vw,1.5rem) clamp(.75rem,2.5vw,1rem);transform:translateX(-100%);transition:transform .26s ease;box-shadow:6px 0 32px rgba(0,0,0,.2);overflow-y:auto}.app-shell--drawer-open .sidebar{transform:translateX(0)}.sidebar.collapsed{width:var(--sidebar-w);padding:clamp(1rem,3vw,1.25rem) clamp(.75rem,2vw,1rem)}.sidebar.collapsed .sidebar-link span.label{display:inline}.sidebar.collapsed .sidebar-logo-brand img{display:block}.sidebar.collapsed .sidebar-logo-tag{display:inline}.sidebar-logo{font-weight:700;font-size:1.1rem;margin-bottom:32px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.sidebar-collapse-btn{display:none;padding:.5rem;min-width:var(--touch-target);min-height:var(--touch-target);color:#fff;border-radius:9999px;border:1px solid hsla(0,0%,100%,.35);background:rgba(15,23,42,.35)}.sidebar-collapse-btn:hover{background:rgba(248,250,252,.12)}.sidebar-nav{display:flex;flex-direction:column;gap:8px;flex:1 1}.sidebar-link{padding:10px 12px;border-radius:6px;font-size:.9rem;display:flex;align-items:center;justify-content:flex-start;gap:10px;cursor:pointer;border:1px solid transparent;color:#e5e7eb;text-align:left}.sidebar-link-icon{font-size:1rem;width:20px;display:inline-flex;align-items:center;justify-content:center}.sidebar-link span{opacity:.9}.sidebar-link.active{background:#3b4273;border-color:transparent}.sidebar-link.active .label{font-weight:600}.sidebar-link:hover{background:rgba(248,250,252,.1);border-color:transparent}.sidebar-footer{font-size:.75rem;opacity:.7;margin-top:24px}.main{flex:1 1;display:flex;flex-direction:column;min-width:0;max-width:100%;overflow-x:clip}.topbar{background:#fff;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;padding:.5rem var(--topbar-pad-x);gap:.5rem}.topbar,.topbar-menu-btn{min-height:var(--touch-target);align-items:center;flex-shrink:0}.topbar-menu-btn{display:inline-flex;padding:.625rem;min-width:var(--touch-target);justify-content:center;color:var(--color-primary)}.topbar-inner{flex:1 1;min-width:0}.topbar-logout-desktop{padding:.625rem;min-width:var(--touch-target);min-height:var(--touch-target);flex-shrink:0}.topbar-title{font-size:1.05rem;font-weight:600}.topbar-user{font-size:clamp(.78rem,2vw,.85rem);opacity:.9;word-break:break-word}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:9999px;font-size:.7rem;font-weight:500}.badge-success{background:#dcfce7;color:var(--color-success)}.badge-muted{background:#e5e7eb;color:#4b5563}.content{padding:var(--space-content);flex:1 1;min-width:0;width:100%}.card{background:var(--color-surface);border-radius:10px;border:1px solid var(--color-border);padding:clamp(14px,3vw,20px);box-shadow:0 10px 30px rgba(15,23,42,.06);max-width:100%;min-width:0;overflow-x:clip}.table-responsive{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:4px}.table-responsive .grid-table{min-width:min(100%,clamp(18rem,92vw,32rem))}.table-responsive--compact .grid-table{min-width:min(100%,clamp(16rem,88vw,22rem))}.grid-table{width:100%;border-collapse:collapse;font-size:.78rem}.grid-table thead th{text-align:left;padding:8px 6px;border-bottom:1px solid var(--color-border);cursor:pointer;white-space:nowrap;font-size:.72rem;font-weight:600;color:var(--color-muted)}.grid-table tbody tr:nth-child(odd){background:#f9f9ff}.grid-table tbody tr:nth-child(2n){background:#fff}.grid-table tbody td{padding:8px 6px;border-bottom:1px solid #f0f0f5;font-size:.76rem;overflow-wrap:anywhere;word-break:break-word;vertical-align:top}.grid-table td .badge{white-space:normal;text-align:left;line-height:1.3;max-width:100%}.grid-table th.col-id{width:clamp(3rem,12vw,5rem)}.grid-table th.col-numeric{width:clamp(4rem,18vw,6rem)}.grid-table th.col-date{width:clamp(6rem,22vw,9rem)}.grid-table th.col-actions{width:clamp(5rem,20vw,7rem)}@media (min-width:768px){.grid-table{font-size:.86rem}.grid-table thead th{padding:10px 8px;font-size:.8rem}.grid-table tbody td{font-size:.82rem;padding:8px}}.grid-toolbar{display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;margin-bottom:8px;gap:12px;flex-wrap:wrap}@media (min-width:768px){.grid-toolbar{flex-direction:row;align-items:center}}.grid-search{display:flex;gap:8px;min-width:0;flex:1 1;align-items:stretch;flex-wrap:wrap}.grid-search .input{min-width:0;flex:1 1 min(100%,12.5rem)}.page-header-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-stack-md);margin-bottom:var(--space-stack-md);min-width:0}.page-header-row h2,.page-header-row h3{min-width:0;overflow-wrap:anywhere}.grid-pagination{display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;margin-top:8px;font-size:.8rem;flex-wrap:wrap;gap:8px}@media (min-width:768px){.grid-pagination{flex-direction:row;align-items:center}}@media (min-width:1024px){.grid-search{flex-wrap:nowrap}}.btn{border-radius:6px;border:none;padding:10px 14px;font-size:clamp(.82rem,2vw,.86rem);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--touch-target);touch-action:manipulation}@media (min-width:769px){.btn{min-height:0;padding:8px 12px}}.btn-primary{background:var(--color-primary);color:#fff}.btn-secondary{background:var(--color-secondary);color:#fff}.btn-ghost{background:transparent}.btn-ghost,.btn-outline{color:var(--color-primary)}.btn-outline{background:#fff;border:1px solid var(--color-border-soft)}.btn-outline:hover{background:#edf2ff}.btn-danger{background:#fee2e2;color:var(--color-danger)}.btn-danger:hover{background:#fecaca}.input,.select,.textarea{border-radius:6px;border:1px solid var(--color-border);padding:8px 10px;font-size:.86rem;font-family:inherit;width:100%;max-width:100%}.select--page-size{width:auto;min-width:4.5rem;max-width:100%;flex:0 0 auto}.input--filter-date,.select--filter{flex:1 1 min(100%,10rem);min-width:0;max-width:100%}.form-grid{display:grid;grid-template-columns:1fr;grid-gap:12px 16px;gap:12px 16px}@media (min-width:480px){.form-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}@media (min-width:768px){.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}}.form-field{display:flex;flex-direction:column;gap:6px;font-size:.8rem}@media (min-width:769px){.form-field{gap:4px}}.relatorio-filtros-grid{display:grid;grid-template-columns:1fr;grid-gap:10px;gap:10px;flex:1 1;min-width:0;width:100%}@media (min-width:640px){.relatorio-filtros-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.relatorio-filtros-grid{grid-template-columns:2fr 2fr 1.2fr 1.2fr}}.relatorio-chart-wrap{width:100%;min-height:clamp(14rem,40vh,20rem);height:min(20rem,65vh)}.grafico-filtros-grid{display:grid;grid-template-columns:1fr;grid-gap:.625rem .75rem;gap:.625rem .75rem;align-items:end;width:100%;margin-bottom:1.25rem}.grafico-filtros-grid .form-field{min-width:0}.grafico-filtros-grid .form-field--grafico-btn{grid-column:1/-1}@media (min-width:640px){.grafico-filtros-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grafico-filtros-grid .form-field--grafico-btn{grid-column:1/-1}}@media (min-width:900px){.grafico-filtros-grid{grid-template-columns:repeat(4,minmax(0,1fr)) minmax(0,auto);gap:.625rem .75rem}.grafico-filtros-grid .form-field--grafico-btn{grid-column:auto}}@media (min-width:1024px){.grafico-filtros-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,1.35fr) minmax(0,.75fr) minmax(0,.75fr) minmax(min(100%,9rem),auto)}}.grafico-chart-wrap{width:100%;min-height:clamp(14rem,42vh,22rem);height:min(24rem,62vh)}.form-label{font-weight:500;color:var(--color-muted);font-size:.78rem}.switch{position:relative;display:inline-block;width:40px;height:20px}.switch input{opacity:0;width:0;height:0}.slider{cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;border-radius:20px}.slider,.slider:before{position:absolute;transition:.2s}.slider:before{content:"";height:16px;width:16px;left:2px;bottom:2px;background-color:#fff;border-radius:50%}input:checked+.slider{background-color:var(--color-secondary)}input:checked+.slider:before{transform:translateX(20px)}.login-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--space-stack-md);box-sizing:border-box;background:linear-gradient(135deg,#313366,#1a1b3a 40%,#f05f40)}.login-card{width:100%;max-width:min(420px,100%);margin-inline:auto;background:#132047;border-radius:18px;padding:clamp(1.125rem,4vw,1.625rem) clamp(1rem,4vw,1.625rem) clamp(1rem,3vw,1.375rem);box-shadow:0 16px 40px rgba(0,0,0,.5);color:#fff;box-sizing:border-box}.login-logo{display:flex;justify-content:center;margin-bottom:18px}.login-logo img{max-width:220px;height:auto}.login-title{font-size:.95rem;font-weight:500;margin-bottom:4px}.login-subtitle{font-size:.8rem;opacity:.8;margin-bottom:18px}.login-input-wrapper{position:relative}.login-input-icon{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:28px;height:22px;border-radius:4px;background:#dde0f0;display:flex;align-items:center;justify-content:center;font-size:11px;color:#555}.login-input{background:#fff;border-radius:6px}.login-footer{margin-top:12px;font-size:.72rem;text-align:center;opacity:.7;color:#fff}@supports (padding:max(0px)){.content{padding-left:max(var(--space-content),env(safe-area-inset-left,0px));padding-right:max(var(--space-content),env(safe-area-inset-right,0px));padding-bottom:max(var(--space-content),env(safe-area-inset-bottom,0px))}.topbar{padding-left:max(var(--topbar-pad-x),env(safe-area-inset-left,0px));padding-right:max(var(--topbar-pad-x),env(safe-area-inset-right,0px));padding-top:max(.35rem,env(safe-area-inset-top,0px))}.login-page{padding-left:max(var(--space-stack-md),env(safe-area-inset-left,0px));padding-right:max(var(--space-stack-md),env(safe-area-inset-right,0px));padding-bottom:max(var(--space-stack-md),env(safe-area-inset-bottom,0px))}}@media (max-width:767px){.grid-table thead th{white-space:normal;line-height:1.25;vertical-align:bottom;-webkit-hyphens:auto;hyphens:auto}.grid-pagination{gap:var(--space-stack-md);row-gap:.875rem}.grid-toolbar{gap:.875rem;margin-bottom:var(--space-stack-md)}.input,.select,.textarea{font-size:1rem;min-height:var(--touch-target);line-height:1.35}.grid-table .btn,.grid-table .btn-ghost{min-width:var(--touch-target);min-height:var(--touch-target);padding-inline:.625rem;box-sizing:border-box}.table-responsive{overscroll-behavior-x:contain;scrollbar-width:thin}label.switch{display:inline-flex;align-items:center;min-height:var(--touch-target);padding-block:4px}}@media (max-width:1023px){.sidebar-link{min-height:var(--touch-target);padding:.75rem .875rem;align-items:center}.sidebar-link .label{flex:1 1;min-width:0;overflow-wrap:anywhere}}.dashboard-metrics-grid,.dashboard-two-col{display:grid;grid-template-columns:1fr;grid-gap:16px;gap:16px}.dashboard-two-col{margin-top:24px;align-items:stretch}.dashboard-chart-box{width:100%;min-width:0;min-height:clamp(12rem,42vw,14rem);aspect-ratio:16/11;max-height:min(24rem,72vw)}@media (min-width:768px){.dashboard-metrics-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}}@media (min-width:900px){.dashboard-two-col{grid-template-columns:1.1fr 1.4fr}.dashboard-two-col.dashboard-two-col--flip-md{grid-template-columns:1.4fr 1.2fr}.dashboard-chart-box{aspect-ratio:16/10;max-height:min(18rem,55vh)}}@media (min-width:1024px){.sidebar-backdrop{display:none!important}.sidebar{position:relative;inset:auto;left:auto;top:auto;height:auto;min-height:100vh;transform:none;transition:width .2s ease,padding .2s ease;box-shadow:none;overflow-y:auto;width:var(--sidebar-w-expanded);padding:clamp(1rem,2vw,1.5rem) 1rem}.sidebar.collapsed{width:var(--sidebar-w-collapsed);padding:1rem .5rem}.sidebar.collapsed .sidebar-link span.label,.sidebar.collapsed .sidebar-logo img,.sidebar.collapsed .sidebar-logo span.text{display:none}.sidebar-collapse-btn{display:inline-flex}.sidebar-close-mobile{display:none!important}.topbar-menu-btn{display:none}.topbar{padding-inline:clamp(1rem,2.5vw,1.5rem);min-height:clamp(3.5rem,5vw,4rem)}}@media print{body{background:#fff!important}.app-shell .topbar,.app-shell>.sidebar,.no-print,.sidebar-backdrop,.sidebar-close-mobile,.topbar-menu-btn{display:none!important}.app-shell .main{margin:0!important;padding:0!important;width:100%!important}.app-shell .content{padding:12px!important;max-width:100%!important}.checklist-pdf-card{box-shadow:none!important;border:none!important;padding:0!important}.checklist-pdf-cover-wrap{break-inside:avoid;page-break-inside:avoid}}