*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Arial,sans-serif;background:#f3f6fa;color:#1d2b3a}a{color:#1266a3;text-decoration:none}h1{font-size:1.55rem;margin:0 0 20px}h2{font-size:1.1rem;margin:0 0 16px}.top{background:#14344f;color:#fff;display:flex;align-items:center;gap:15px;padding:13px max(16px,calc((100vw - 1100px)/2));}.brand{color:#fff;font-weight:800;margin-right:auto}.top span{font-size:.85rem}.nav{background:white;display:flex;gap:4px;overflow-x:auto;padding:8px max(12px,calc((100vw - 1100px)/2));box-shadow:0 1px 4px #ddd}.nav a{white-space:nowrap;padding:9px 12px;border-radius:7px;color:#234}.nav a:hover{background:#edf3f8}.container{max-width:1100px;margin:24px auto;padding:0 14px}.panel{background:white;padding:20px;border-radius:12px;box-shadow:0 2px 12px #1a3b5310;margin-bottom:18px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.stats strong{display:block;font-size:2rem;color:#15639c}.stats span{font-size:.9rem;color:#526475}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.form-grid .wide{grid-column:1/-1}label{display:flex;flex-direction:column;gap:6px;font-size:.9rem;font-weight:600}input,select,textarea{font:inherit;padding:11px;border:1px solid #cbd5df;border-radius:8px;width:100%;background:white;min-width:0}button{border:0;border-radius:8px;background:#146ca8;color:#fff;padding:11px 16px;font:inherit;font-weight:700;cursor:pointer}button.secondary{background:#e5edf4;color:#164b72;padding:8px 12px}button.linkbtn{background:transparent;color:#fff;padding:4px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{padding:12px 10px;text-align:left;border-bottom:1px solid #e5eaf0;white-space:nowrap}th{background:#f8fafc}.success{padding:12px;background:#e8f7ef;color:#17653c;border-radius:8px}.error{color:#b42318}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:16px}.login{width:min(100%,390px);display:grid;gap:16px}.login h1{margin:0}.login p{margin:0}canvas{border:1px solid #b7c8d5;border-radius:8px;background:#fff;width:100%;max-width:700px;touch-action:none;display:block}.hint{font-size:.8rem;color:#607184}@media(max-width:650px){.top span{display:none}.container{margin:18px auto}.stats{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.panel{padding:16px}.form-grid .wide{grid-column:auto}button{min-height:42px}}
.items-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.movement-item{display:grid;grid-template-columns:minmax(0,2fr) minmax(100px,1fr) auto;gap:10px;align-items:end;padding:12px 0;border-bottom:1px solid #e5eaf0}.movement-item button{margin-bottom:1px}@media(max-width:650px){.movement-item{grid-template-columns:minmax(0,1fr) 100px}.movement-item button{grid-column:1/-1}.items-title{align-items:flex-start;flex-wrap:wrap}}

.logo-preview{margin-top:12px;padding:12px;border:1px solid #dce4ed;border-radius:10px;display:inline-block;max-width:100%}.logo-preview img{display:block;max-width:220px;max-height:120px;object-fit:contain}

/* Busca de empregados */
.employee-search{margin:14px 0 10px}.employee-search>label{display:block;font-weight:600;margin-bottom:7px}.employee-search-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.employee-search-row input{flex:1;min-width:180px;max-width:520px}.employee-search-row button{width:auto}.search-clear{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border:1px solid #cbd5e1;border-radius:8px;text-decoration:none}.search-result-count{font-size:.9rem;color:#64748b;margin:8px 0 14px}@media(max-width:520px){.employee-search-row input{flex-basis:100%;max-width:none}.employee-search-row button,.search-clear{flex:1}}

.validity-badge{display:inline-block;padding:4px 9px;border-radius:999px;font-size:.8rem;font-weight:700;white-space:nowrap}.validity-ok{background:#dcfce7;color:#166534}.validity-expired{background:#fee2e2;color:#991b1b}.validity-unknown{background:#e2e8f0;color:#475569}

/* Painel: indicadores de CA vencido */
.stats{grid-template-columns:repeat(4,minmax(0,1fr))}.expired-stat strong{color:#b42318}.items-title h2{margin:0}@media(max-width:850px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.stats{grid-template-columns:1fr}}

/* Destaque do painel de CAs vencidos */
.expired-stat{border:1px solid #fecaca;background:#fff7f7}.expired-stat strong{color:#b42318}.expired-section{border-top:4px solid #b42318}.expired-section .items-title h2{color:#912018}.expired-empty{padding:14px;border-radius:8px;background:#edf8f0;color:#17653c}.expired-section .hint{margin:12px 0 18px}

/* Landing page de acesso: estilos isolados para preservar as telas internas */
.landing-body{background:#fff;color:#172b3c;font-family:system-ui,-apple-system,Arial,sans-serif;line-height:1.55}
.landing-body a{text-decoration:none}.landing-shell{width:min(1160px,calc(100% - 40px));margin-inline:auto}.landing-header{background:#fff;border-bottom:1px solid #e8edf2;position:relative;z-index:2}.landing-header-inner{min-height:78px;display:flex;align-items:center;gap:30px}.landing-brand{font-size:1.28rem;font-weight:850;letter-spacing:-.8px;color:#132c43;display:inline-flex;align-items:center;gap:10px;white-space:nowrap}.landing-brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:#0f766e;color:#fff;font-size:1.4rem}.landing-brand-accent{color:#0d8c80}.landing-nav{display:flex;gap:27px;margin-left:auto}.landing-nav a{color:#526375;font-size:.9rem;font-weight:600}.landing-nav a:hover{color:#0f766e}.landing-header-cta{background:#0d756e;color:#fff;border-radius:9px;padding:11px 18px;font-size:.9rem;font-weight:750;white-space:nowrap}.landing-header-cta:hover{background:#085d57}.landing-hero{background:linear-gradient(115deg,#eef9f7 0%,#f7fbfc 55%,#eaf5f6 100%);padding:84px 0 95px;overflow:hidden}.landing-hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);align-items:center;gap:70px}.landing-eyebrow{display:inline-flex;align-items:center;gap:9px;background:#d9f1eb;border:1px solid #bce6dd;color:#096b62;border-radius:100px;padding:7px 13px;font-size:.77rem;font-weight:750;letter-spacing:.01em}.landing-pulse{height:8px;width:8px;border-radius:50%;background:#12a68e}.landing-hero h1{font-size:clamp(2.5rem,4.5vw,4.3rem);line-height:1.1;letter-spacing:-2.3px;margin:23px 0 21px;max-width:680px;font-weight:850}.landing-hero h1 span{color:#0c887c}.landing-hero-description{color:#52677a;font-size:1.08rem;line-height:1.8;max-width:570px;margin:0}.landing-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:29px}.landing-button{display:inline-flex;align-items:center;justify-content:center;gap:16px;padding:14px 21px;border-radius:9px;font-weight:750;font-size:.94rem;transition:background .2s}.landing-button-primary{background:#0d756e;color:#fff}.landing-button-primary:hover{background:#095c56}.landing-button-outline{border:1px solid #b7d6d3;color:#155e59;background:#fff}.landing-button-outline:hover{background:#e8f5f2}.landing-hero-points{display:flex;flex-wrap:wrap;gap:10px 19px;margin-top:28px;color:#467268;font-size:.82rem;font-weight:650}.landing-login-card{background:#fff;padding:35px;border-radius:18px;box-shadow:0 22px 65px #123e4b19;border:1px solid #e4efed;scroll-margin-top:24px}.landing-login-icon{height:45px;width:45px;border-radius:13px;background:#e2f4ef;color:#087c6e;display:grid;place-items:center;font-size:1.4rem;font-weight:800;margin-bottom:21px}.landing-card-eyebrow{color:#0d8275;font-size:.7rem;font-weight:850;letter-spacing:1.6px}.landing-login-card h2{font-size:1.7rem;letter-spacing:-.7px;margin:8px 0 7px}.landing-login-subtitle{color:#647588;font-size:.92rem;margin:0 0 24px}.landing-login-form{display:grid;gap:10px}.landing-login-form label{font-size:.84rem;font-weight:700;color:#31485b;margin-top:4px}.landing-login-form input{height:47px;border:1px solid #d4dfe7;background:#fbfdfe;border-radius:9px;padding:10px 13px;font-size:.93rem}.landing-login-form input:focus{outline:2px solid #4db8a6;outline-offset:1px}.landing-login-submit{display:flex;align-items:center;justify-content:center;gap:12px;background:#0c766d;width:100%;padding:14px;margin-top:12px;border-radius:9px}.landing-login-submit:hover{background:#095d56}.landing-login-footnote{font-size:.76rem;color:#82919d;text-align:center;margin:18px 0 0}.landing-login-error{padding:10px;background:#fef0ef;border-radius:8px;color:#b42318;font-size:.88rem;margin:0}.landing-section{padding:88px 0}.landing-problems{background:#fff}.landing-features{background:#f6f9fb}.landing-section-intro{text-align:center;max-width:690px;margin:0 auto 42px}.landing-kicker{font-size:.75rem;font-weight:850;letter-spacing:1.7px;color:#0a887b}.landing-section-intro h2{font-size:clamp(1.9rem,3vw,2.6rem);letter-spacing:-1.1px;line-height:1.2;margin:12px 0 15px}.landing-section-intro p{color:#647589;margin:0;font-size:1rem}.landing-cards{display:grid;gap:19px}.landing-cards-three{grid-template-columns:repeat(3,minmax(0,1fr))}.landing-info-card,.landing-feature{background:#fff;border:1px solid #e5ecf0;border-radius:14px;padding:27px;min-width:0}.landing-info-card{box-shadow:0 8px 22px #1d42570a}.landing-card-icon{display:grid;place-items:center;height:46px;width:46px;border-radius:12px;background:#e4f5f0;color:#087b6f;font-size:1.4rem;font-weight:850}.landing-info-card h3,.landing-feature h3,.landing-step h3{font-size:1.08rem;margin:19px 0 9px;letter-spacing:-.3px}.landing-info-card p,.landing-feature p,.landing-step p{color:#617588;font-size:.9rem;line-height:1.75;margin:0}.landing-feature-icon{display:grid;place-items:center;height:42px;width:42px;border-radius:10px;background:#e2f4ef;color:#087b6f;font-size:.86rem;font-weight:850}.landing-steps{background:#fff}.landing-step-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.landing-step{text-align:center;padding:12px 18px}.landing-step>span{display:grid;place-items:center;margin:0 auto;width:55px;height:55px;background:#0c776e;color:#fff;font-size:1.25rem;font-weight:800;border-radius:16px}.landing-final-cta{background:#103e49;color:#fff;padding:62px 0}.landing-final-inner{display:flex;align-items:center;justify-content:space-between;gap:30px}.landing-final-inner .landing-kicker{color:#7fe2d1}.landing-final-inner h2{font-size:2rem;letter-spacing:-.7px;margin:9px 0}.landing-final-inner p{margin:0;color:#c1d7d9}.landing-button-light{background:#fff;color:#0b665f;white-space:nowrap}.landing-button-light:hover{background:#e4f7f3}.landing-footer{padding:26px 0;background:#0b2d36;color:#c4d5d8;font-size:.79rem}.landing-footer-inner{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.landing-footer strong{color:#fff}
@media(max-width:950px){.landing-hero-grid{gap:35px;grid-template-columns:minmax(0,1fr) minmax(300px,.9fr)}.landing-hero h1{font-size:2.7rem;letter-spacing:-1.4px}.landing-nav{gap:13px}.landing-header-inner{gap:15px}.landing-info-card,.landing-feature{padding:21px}}
@media(max-width:720px){.landing-shell{width:min(100% - 30px,540px)}.landing-header-inner{min-height:68px}.landing-nav{display:none}.landing-header-cta{margin-left:auto;padding:10px 13px;font-size:.81rem}.landing-hero{padding:48px 0 62px}.landing-hero-grid{grid-template-columns:1fr;gap:36px}.landing-hero h1{font-size:clamp(2.25rem,8vw,3.1rem)}.landing-login-card{padding:26px}.landing-section{padding:63px 0}.landing-cards-three,.landing-step-grid{grid-template-columns:1fr}.landing-section-intro{margin-bottom:30px}.landing-final-inner{align-items:flex-start;flex-direction:column}.landing-final-cta{padding:48px 0}.landing-hero-actions .landing-button{flex:1}.landing-hero-points{font-size:.78rem}}
@media(max-width:390px){.landing-header-cta{font-size:.74rem}.landing-brand{font-size:1.1rem}.landing-hero-actions{flex-direction:column}.landing-hero h1{font-size:2.1rem}.landing-login-card{padding:20px}}


/* Tema verde do aplicativo — alinhado à landing page, sem afetá-la */
.app-body{--app-primary:#0d756e;--app-primary-dark:#095d56;--app-ink:#172b3c;--app-muted:#607589;--app-border:#deebe8;--app-bg:#f3f9f8;--app-soft:#e4f5f0;background:var(--app-bg);color:var(--app-ink);min-height:100vh}
.app-body a{color:var(--app-primary)}
.app-body a:hover{color:var(--app-primary-dark)}
.app-body .top{background:#103e49;border-bottom:3px solid #0d8c80;box-shadow:0 4px 16px #0b393c18}
.app-body .top .brand{color:#fff;font-size:1.08rem;letter-spacing:-.3px}
.app-body .top span{color:#d0e9e6}
.app-body .top .linkbtn{background:transparent;color:#fff;border:1px solid #5c8588;padding:8px 14px;border-radius:9px}
.app-body .top .linkbtn:hover{background:#20545a;border-color:#a1cfca}
.app-body .nav{background:#fff;border-bottom:1px solid var(--app-border);box-shadow:0 2px 12px #17483b0a;gap:6px}
.app-body .nav a{color:#365c5a;font-weight:650;border-radius:9px;transition:background .15s,color .15s}
.app-body .nav a:hover,.app-body .nav a:focus-visible{background:var(--app-soft);color:var(--app-primary-dark)}
.app-body .container{margin-top:28px;margin-bottom:36px}
.app-body h1{color:#133d3c;font-size:clamp(1.45rem,3vw,1.9rem);letter-spacing:-.6px}
.app-body h2{color:#174843}
.app-body .panel{border:1px solid #e0ece9;border-radius:15px;box-shadow:0 7px 24px #16483e0a}
.app-body .stats .panel{border-top:3px solid #0e897c}
.app-body .stats strong{color:#0d756e}
.app-body .stats span{color:#5e7474}
.app-body label{color:#294e4b}
.app-body input,.app-body select,.app-body textarea{border-color:#cbded9;background:#fff;color:#183b38;transition:border-color .15s,box-shadow .15s}
.app-body input:focus,.app-body select:focus,.app-body textarea:focus{outline:none;border-color:#0d8c80;box-shadow:0 0 0 3px #0d8c8028}
.app-body input[type=checkbox],.app-body input[type=radio]{accent-color:#0d756e;width:auto}
.app-body button{background:var(--app-primary);color:#fff;transition:background .15s,transform .15s}
.app-body button:hover{background:var(--app-primary-dark)}
.app-body button:focus-visible,.app-body a:focus-visible{outline:3px solid #46b9a9;outline-offset:2px}
.app-body button.secondary{background:#e2f2ed;color:#155f57}
.app-body button.secondary:hover{background:#cde9e0}
.app-body button.linkbtn{background:transparent}
.app-body button.linkbtn:hover{background:#20545a}
.app-body .search-clear{border-color:#bcded6;color:#0c756d;background:#f8fcfb}
.app-body .search-clear:hover{background:#e2f4ef}
.app-body th{background:#eaf6f2;color:#245c55;font-weight:750}
.app-body td,.app-body th{border-bottom-color:#e4efeb}
.app-body tbody tr:hover{background:#f7fcfa}
.app-body .success{background:#e2f5e9;color:#16663f;border:1px solid #bfe7d0}
.app-body .error{color:#b42318}
.app-body .hint,.app-body .search-result-count{color:#607b77}
.app-body canvas{border-color:#b8d8d0}
.app-body .logo-preview{border-color:#cce4dd;background:#f8fcfb}
.app-body .movement-item{border-bottom-color:#dcece7}
.app-body .validity-ok{background:#dcfce7;color:#166534}
.app-body .validity-expired{background:#fee2e2;color:#991b1b}
.app-body .validity-unknown{background:#e2e8f0;color:#475569}
/* Avisos de CA vencido permanecem vermelhos por significado de risco */
.app-body .stats .expired-stat{border:1px solid #fecaca;border-top:3px solid #b42318;background:#fff7f7}
.app-body .stats .expired-stat strong{color:#b42318}
.app-body .expired-section{border-top:4px solid #b42318}
.app-body .expired-section .items-title h2{color:#912018}
.app-body .expired-empty{background:#e6f6ee;color:#17653c}
@media(max-width:650px){.app-body .container{margin-top:18px}.app-body .top{padding-block:11px}.app-body .nav{scrollbar-width:thin}.app-body .panel{border-radius:12px}}

/* Identidade visual: capacete no cabeçalho */
.app-body .top .brand-with-logo{display:inline-flex;align-items:center;gap:10px;min-width:0;text-decoration:none;flex-shrink:1}
.app-body .top .brand-with-logo img{display:block;width:52px;height:40px;object-fit:contain;border-radius:0;background:transparent;flex-shrink:0}
.app-body .top .brand-with-logo .brand-name{display:inline;color:#fff;font-size:1.05rem;font-weight:800;white-space:nowrap}
@media(max-width:440px){.app-body .top{gap:8px}.app-body .top .brand-with-logo{gap:7px}.app-body .top .brand-with-logo img{width:43px;height:36px}.app-body .top .brand-with-logo .brand-name{font-size:.92rem}.app-body .top .linkbtn{padding:7px 9px}}

/* Ícone amarelo no cabeçalho da landing page */
.landing-brand-logo{display:block;width:44px;height:44px;object-fit:contain;flex-shrink:0}
@media(max-width:600px){.landing-brand-logo{width:38px;height:38px}}

/* Cadastro multiempresa e painel da plataforma */
.registration-shell{max-width:780px;margin:48px auto;padding:0 20px 60px}.registration-card{background:#fff;color:#24362f;border:1px solid #dce7de;border-radius:22px;padding:clamp(24px,5vw,48px);box-shadow:0 16px 45px #173f2620}.registration-card h1{font-size:clamp(26px,4vw,40px);margin:12px 0}.registration-card h2{font-size:19px;margin:24px 0 12px}.registration-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.registration-form h2,.registration-form button{grid-column:1/-1}.registration-form label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14px}.registration-form input{width:100%;border:1px solid #c8d6cb;border-radius:9px;padding:12px;font:inherit}.platform-actions{display:flex;gap:8px;flex-wrap:wrap}.platform-actions button{padding:8px 12px;border-radius:8px;cursor:pointer}@media(max-width:650px){.registration-form{grid-template-columns:1fr}}

/* Lista de EPIs: filtros compatíveis com CSP estrita */
.epi-search-controls{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin:16px 0}
.epi-search-input{flex:1;min-width:220px}
.epi-search-field{width:100%}
.epi-search-count{margin:0 0 10px}
.epi-quantity-field{width:100px}
.epi-list-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:16px}
.epi-list-item[hidden],#epi-list-no-results[hidden]{display:none!important}

/* Sidebar permanente: desktop, tablet e celular */
.app-body{--app-sidebar-width:76px}
.app-body .top{margin-left:var(--app-sidebar-width);padding:12px 24px;min-height:68px}
.app-body .container{margin:24px auto 32px var(--app-sidebar-width);width:calc(100% - var(--app-sidebar-width));max-width:none;padding:0 clamp(14px,3vw,36px)}
.app-body .container>.panel,.app-body .container>.stats,.app-body .container>h1{max-width:1250px}
.app-body .nav{position:fixed;z-index:90;top:0;bottom:0;left:0;width:var(--app-sidebar-width);padding:12px 0;background:#20363c;border:0;box-shadow:4px 0 16px #0c30352b;overflow:visible;display:block}
.app-body .nav .nav-inner{display:flex;flex-direction:column;gap:5px;align-items:stretch;width:100%;max-width:none;margin:0;padding:0 6px}
.app-body .nav a{display:flex;align-items:center;justify-content:center;position:relative;min-height:54px;padding:12px 4px;border-radius:10px;color:#e1f2ee;white-space:normal}
.app-body .nav .nav-icon{display:block;width:24px;height:24px;flex-shrink:0}
.app-body .nav .nav-label{position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);padding:9px 12px;background:#20363c;color:white;border-radius:7px;font-size:13px;white-space:nowrap;box-shadow:0 5px 16px #0003;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s}
.app-body .nav a:hover .nav-label,.app-body .nav a:focus-visible .nav-label{opacity:1;visibility:visible}
.app-body .nav a:hover,.app-body .nav a:focus-visible{background:#31555b;color:#fff}
.app-body .nav a[aria-current="page"]{background:#0d756e;color:#fff}
.app-body .nav a[aria-current="page"]:before{content:"";position:absolute;left:-6px;top:11px;bottom:11px;width:3px;background:#f4ca43;border-radius:3px}
@media(max-width:700px){
  .app-body{--app-sidebar-width:70px}
  .app-body .top{padding:9px 12px;gap:8px;min-height:62px}
  .app-body .top .brand-with-logo img{width:37px;height:35px}
  .app-body .top .brand-with-logo .brand-name{font-size:.85rem}
  .app-body .top .linkbtn{padding:7px 8px;font-size:.8rem}
  .app-body .container{margin:18px 0 30px var(--app-sidebar-width);padding:0 12px}
}
@media(max-width:390px){.app-body .top .brand-with-logo .brand-name{font-size:.76rem}.app-body .top .brand-with-logo{gap:4px}.app-body .container{padding:0 9px}}
@media(hover:none){.app-body .nav a:focus-visible .nav-label{visibility:visible;opacity:1}}
