*{

margin:0;

padding:0;

box-sizing:border-box;

font-family:Arial, sans-serif;

}



body{

background:#f4f7fb;

min-height:100vh;

display:flex;

flex-direction:column;

}



/* MENU LATERAL */

.sidebar{

position:fixed;

left:0;

top:0;

width:250px;

height:100vh;

background:#0066cc;

padding:25px;

z-index:10;

}



.logo{

display:flex;

align-items:center;

gap:10px;

margin-bottom:30px;

white-space:nowrap;

}



.logo img{

width:55px;

height:55px;

object-fit:contain;

}



.logo h2{

color:white;

font-size:18px;

margin:0;

}





.sidebar a{

display:block;

color:white;

text-decoration:none;

padding:15px;

border-radius:10px;

}



.sidebar a:hover{

background:#004999;

}






/* CONTEÚDO */

.content{

margin-left:250px;

padding:40px;

flex:1;

min-height:calc(100vh - 80px);

position:relative;

overflow:hidden;

}




/* LOGO DE FUNDO */

.content::before{

content:"";

position:absolute;

top:50%;

left:50%;

transform:translate(-50%,-50%);


width:800px;

height:800px;


background-image:url("../imagens/logo.png");


background-repeat:no-repeat;

background-position:center;

background-size:contain;


opacity:0.07;


pointer-events:none;

z-index:0;

}




.content > *{

position:relative;

z-index:1;

}







/* CARDS */

.cards{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(200px,1fr));

gap:20px;

margin-top:30px;

}




.card{

background:white;

padding:30px;

border-radius:15px;

box-shadow:0 5px 15px #ddd;

}




.card h2{

font-size:40px;

color:#0066cc;

}







/* RODAPÉ */

.rodape{

margin-left:250px;

width:calc(100% - 250px);

text-align:center;

padding:20px;

margin-top:auto;

font-size:12px;

color:#777;

background:white;

border-top:1px solid #ddd;

}



.rodape strong{

color:#111;

font-size:13px;

}








/* LOGIN */

.login-background{

min-height:100vh;

display:flex;

align-items:center;

justify-content:center;


background:

linear-gradient(

rgba(0,0,0,0.55),

rgba(0,0,0,0.55)

),

url("../imagens/logo.png");


background-size:cover;

background-position:center;

}




.login-card{

background:white;

width:420px;

padding:40px;

border-radius:20px;

text-align:center;

box-shadow:0 10px 35px rgba(0,0,0,0.35);

}



.login-logo{

width:130px;

margin-bottom:15px;

}




.login-card h1{

color:#1f4e79;

}




.login-card input,

.login-card select{

width:100%;

padding:12px;

margin-top:5px;

border-radius:8px;

border:1px solid #ccc;

}



.login-card button{

width:100%;

padding:14px;

margin-top:20px;

border:none;

border-radius:10px;

background:#1f6feb;

color:white;

font-size:16px;

cursor:pointer;

}





.login-card button:hover{

background:#1555b0;

}










/* CELULAR */

@media(max-width:768px){



.sidebar{

position:relative;

width:100%;

height:auto;

}



.logo{

justify-content:center;

}



.sidebar a{

text-align:center;

}



.content{

margin-left:0;

padding:20px;

}



.rodape{

margin-left:0;

width:100%;

}



.cards{

grid-template-columns:1fr;

}



}








/* TABLET */

@media(min-width:769px) and (max-width:1100px){



.sidebar{

width:230px;

}



.content{

margin-left:230px;

}



.rodape{

margin-left:230px;

width:calc(100% - 230px);

}



}


/* DASHBOARD 1.1 */
.page-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  margin-bottom:8px;
}

.page-header h1{margin:0;color:#102a43;font-size:clamp(28px,4vw,40px)}
.eyebrow{margin:0 0 8px;color:#6b7c93;font-size:11px;font-weight:700;letter-spacing:.12em}
.subtitle{margin:8px 0 0;color:#627d98}
.status-pill{display:inline-flex;align-items:center;gap:7px;padding:9px 13px;border-radius:999px;background:#e7eef7;color:#486581;font-size:12px;font-weight:700;white-space:nowrap}
.status-pill::before{content:"";width:7px;height:7px;border-radius:50%;background:#829ab1}
.status-pill.success{background:#e7f8ef;color:#147d4b}.status-pill.success::before{background:#22c55e}
.status-pill.warning{background:#fff4db;color:#a15c00}.status-pill.warning::before{background:#f59e0b}
.status-pill.danger{background:#feeceb;color:#b42318}.status-pill.danger::before{background:#ef4444}
.dashboard-cards{margin-top:26px}
.metric-card{padding:22px 24px;min-height:145px;display:flex;flex-direction:column;gap:6px;border-top:4px solid #0066cc}
.metric-card strong{font-size:36px;line-height:1.1;color:#102a43}
.metric-card small{color:#829ab1;font-size:12px}.metric-label{font-size:13px;font-weight:700;color:#486581}
.metric-green{border-top-color:#22c55e}.metric-orange{border-top-color:#f59e0b}.metric-purple{border-top-color:#7c3aed}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,1fr);gap:20px;margin-top:20px}
.dashboard-panel{min-height:250px;padding:24px}
.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:22px}
.panel-heading h2{margin:0;color:#102a43;font-size:20px}.panel-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#e7f0fa;color:#0066cc;font-weight:700}.panel-link{color:#0066cc;font-size:12px;font-weight:700;text-decoration:none}.panel-link:hover{text-decoration:underline}
.activity-list,.request-list{display:grid;gap:12px}.activity-item{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid #edf2f7;color:#486581;font-size:14px}.activity-item:last-child{border-bottom:0}.activity-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#eef5fc}.activity-icon.green{background:#eaf9f0}.activity-icon.orange{background:#fff6e3}.loading-row,.empty-state{padding:18px 0;color:#829ab1;font-size:13px}.loading-dot{display:inline-block;width:9px;height:9px;margin-right:8px;border-radius:50%;background:#0066cc;animation:pulse 1s infinite alternate}.dashboard-message{min-height:20px;margin:16px 0 0;color:#a15c00;font-size:13px}
@keyframes pulse{from{opacity:.35;transform:scale(.85)}to{opacity:1;transform:scale(1)}}
@media(max-width:900px){.dashboard-grid{grid-template-columns:1fr}.page-header{flex-direction:column;gap:12px}}
@media(prefers-reduced-motion:reduce){.loading-dot{animation:none}}


/* NOVA INSPEÇÃO E CÂMERA */
.back-link{color:#0066cc;text-decoration:none;font-size:13px;font-weight:700;padding-top:10px}.back-link:hover{text-decoration:underline}
.inspection-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:20px;margin-top:24px}.form-panel,.photo-panel{padding:26px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-grid label{display:flex;flex-direction:column;gap:8px;color:#486581;font-size:13px;font-weight:700}.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid #d9e2ec;border-radius:10px;background:#fbfdff;color:#102a43;padding:12px 13px;font:inherit;font-weight:400;outline:none;transition:border-color .18s,box-shadow .18s}.form-grid textarea{resize:vertical;min-height:118px}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:#0066cc;box-shadow:0 0 0 3px rgba(0,102,204,.12)}.full-field{grid-column:1/-1}.photo-help{color:#627d98;font-size:13px;line-height:1.55;margin:-8px 0 20px}.photo-counter{padding:7px 10px;border-radius:999px;background:#e7f0fa;color:#0066cc;font-size:12px;font-weight:700}.photo-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.camera-button,.upload-button,.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:0;border-radius:10px;padding:0 16px;font:inherit;font-size:13px;font-weight:700;text-decoration:none;cursor:pointer;transition:transform .16s ease-out,background .16s ease-out,box-shadow .16s ease-out}.camera-button,.primary-button{background:#0066cc;color:#fff}.camera-button:hover,.primary-button:hover{background:#0057ad;box-shadow:0 5px 14px rgba(0,102,204,.2)}.upload-button{background:#e7f0fa;color:#0066cc}.upload-button:hover{background:#d7e8f8}.camera-button:active,.upload-button:active,.primary-button:active,.secondary-button:active{transform:scale(.97)}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;min-height:145px}.photo-empty{grid-column:1/-1;display:grid;place-items:center;text-align:center;border:1px dashed #bcccdc;border-radius:12px;padding:25px;color:#829ab1;font-size:12px;line-height:1.5}.photo-item{position:relative;margin:0;overflow:hidden;border-radius:12px;background:#d9e2ec;aspect-ratio:1}.photo-item img{width:100%;height:100%;display:block;object-fit:cover}.photo-item figcaption{position:absolute;left:0;right:0;bottom:0;padding:6px 8px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.7));font-size:11px}.remove-photo,.icon-button{display:grid;place-items:center;border:0;cursor:pointer}.remove-photo{position:absolute;right:6px;top:6px;width:26px;height:26px;border-radius:50%;background:rgba(16,42,67,.82);color:#fff;font-size:18px;line-height:1}.photo-note{margin:18px 0 0;color:#829ab1;font-size:11px;line-height:1.5}.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px}.secondary-button{background:#eef2f6;color:#486581}.secondary-button:hover{background:#e1e9f0}.primary-button:disabled{opacity:.6;cursor:wait}.camera-modal{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:18px;background:rgba(16,42,67,.72)}.camera-modal[hidden]{display:none}.camera-dialog{width:min(100%,560px);padding:20px;border-radius:18px;background:#fff;box-shadow:0 20px 50px rgba(0,0,0,.25)}.camera-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px}.camera-dialog-header h2{margin:0;color:#102a43;font-size:20px}.icon-button{width:34px;height:34px;border-radius:10px;background:#eef2f6;color:#486581;font-size:24px}.camera-dialog video{display:block;width:100%;max-height:65vh;aspect-ratio:4/3;object-fit:cover;border-radius:12px;background:#102a43}.camera-message{min-height:20px;margin:12px 0;color:#627d98;font-size:12px}.capture-button{width:100%;min-height:48px;border:0;border-radius:10px;background:#22c55e;color:#fff;font:inherit;font-weight:700;cursor:pointer}.capture-button:hover{background:#16a34a}
@media(max-width:900px){.inspection-layout{grid-template-columns:1fr}.form-actions{justify-content:stretch}.form-actions>*{flex:1}.inspection-page{padding-bottom:30px}}
@media(max-width:540px){.form-grid{grid-template-columns:1fr}.full-field{grid-column:auto}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-header{align-items:stretch}.back-link{padding-top:0}.photo-actions>*{flex:1}.camera-button,.upload-button{min-width:0;padding:0 10px}.form-panel,.photo-panel{padding:20px}}


/* RELATÓRIOS E EQUIPE */
.report-toolbar{display:flex;align-items:flex-end;gap:18px;margin-top:24px;padding:20px}.report-toolbar label{display:flex;flex:1;flex-direction:column;gap:8px;color:#486581;font-size:13px;font-weight:700}.report-toolbar input{max-width:520px;border:1px solid #d9e2ec;border-radius:10px;padding:12px 13px;background:#fbfdff;color:#102a43;font:inherit;font-weight:400}.report-toolbar input:focus{outline:0;border-color:#0066cc;box-shadow:0 0 0 3px rgba(0,102,204,.12)}.report-list{display:grid;gap:14px;margin-top:18px}.report-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 24px}.report-row h2{margin:0;color:#102a43;font-size:17px}.report-meta{margin:8px 0 0;color:#627d98;font-size:12px}.team-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px}.team-stat{display:flex;flex-direction:column;gap:8px;padding:20px 22px}.team-stat strong{color:#0066cc;font-size:30px}.team-stat span{color:#627d98;font-size:12px;font-weight:700}.team-panel{margin-top:18px;padding:24px}.permission-note{color:#627d98;font-size:11px;font-weight:700}.team-list{display:grid;gap:2px}.team-row{display:grid;grid-template-columns:42px minmax(140px,1fr) 90px 100px 145px;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid #edf2f7}.team-row:last-child{border-bottom:0}.avatar-circle{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#e7f0fa;color:#0066cc;font-weight:700}.team-identity{display:flex;flex-direction:column;gap:3px;min-width:0}.team-identity strong{overflow:hidden;color:#102a43;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.team-identity span{overflow:hidden;color:#829ab1;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.presence{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700}.presence i{width:8px;height:8px;border-radius:50%;background:#bcccdc}.presence.online{color:#147d4b}.presence.online i{background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.13)}.presence.offline{color:#829ab1}.user-status{font-size:11px;font-weight:700;text-transform:capitalize}.user-status.pendente{color:#a15c00}.user-status.ativo{color:#147d4b}.user-status.bloqueado{color:#b42318}.access-select{width:100%;border:1px solid #d9e2ec;border-radius:8px;padding:8px;background:#fbfdff;color:#486581;font:inherit;font-size:11px;text-transform:capitalize}.access-select:disabled{cursor:not-allowed;opacity:.7}.access-select:focus{outline:0;border-color:#0066cc}
@media(max-width:800px){.report-toolbar{align-items:stretch;flex-direction:column}.report-toolbar input{max-width:none}.report-row{align-items:stretch;flex-direction:column}.team-summary{grid-template-columns:1fr}.team-row{grid-template-columns:42px minmax(0,1fr) 80px;gap:10px}.team-row .user-status,.team-row .access-select{grid-column:2/-1}.team-row .access-select{width:100%}}


/* PRESENÇA E FILTROS DA EQUIPE */
.team-tools{display:flex;align-items:center;gap:14px;margin:22px 0 12px}.team-tools input{flex:1;min-width:180px;border:1px solid #d9e2ec;border-radius:10px;padding:11px 13px;background:#fbfdff;color:#102a43;font:inherit;font-size:13px}.team-tools input:focus{outline:0;border-color:#0066cc;box-shadow:0 0 0 3px rgba(0,102,204,.12)}.presence-filters{display:flex;gap:6px;padding:4px;border-radius:10px;background:#f0f4f8}.filter-button{border:0;border-radius:7px;padding:8px 12px;background:transparent;color:#627d98;font:inherit;font-size:12px;font-weight:700;cursor:pointer}.filter-button:hover{color:#0066cc}.filter-button.active{background:#fff;color:#0066cc;box-shadow:0 2px 7px rgba(16,42,67,.1)}.presence-legend{display:flex;flex-wrap:wrap;gap:16px;margin:0 0 12px;color:#829ab1;font-size:11px}.presence-legend span{display:inline-flex;align-items:center;gap:6px}.presence-dot{display:inline-block;width:8px;height:8px;border-radius:50%}.online-dot{background:#22c55e}.away-dot{background:#f59e0b}.offline-dot{background:#bcccdc}.presence.ausente{color:#a15c00}.presence.ausente i{background:#f59e0b}.status-pill.warning{background:#fff4d6;color:#a15c00}
@media(max-width:650px){.team-tools{align-items:stretch;flex-direction:column}.presence-filters{justify-content:space-between}.filter-button{flex:1}.presence-legend{gap:9px}.presence-legend span{font-size:10px}}
.sidebar{

width:250px;
height:100vh;

position:fixed;

left:0;
top:0;

background:#0066cc;

padding:20px;

color:white;

overflow-y:auto;

}



.logo-area{

text-align:center;

margin-bottom:25px;

}



.logo{

width:90px;

height:90px;

object-fit:contain;

}



.logo-area h2{

font-size:20px;

margin-top:10px;

}



.sidebar a{

display:block;

padding:12px;

margin:5px 0;

border-radius:10px;

color:white;

text-decoration:none;

font-size:15px;

transition:0.3s;

}



.sidebar a:hover{

background:#0052a3;

}



.sidebar hr{

border:none;

border-top:1px solid rgba(255,255,255,.3);

margin:15px 0;

}



.content{

margin-left:270px;

padding:20px;

}
.back-button{

background:#0066cc;

color:white;

border:none;

padding:10px 18px;

border-radius:10px;

cursor:pointer;

font-size:15px;

margin-bottom:20px;

}


.back-button:hover{

background:#0052a3;

}
/* ==========================================
   BADGES DA SIDEBAR
========================================== */

.menu-badge {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    min-width: 20px;

    height: 20px;

    padding: 0 6px;

    margin-left: 8px;

    border-radius: 999px;

    background: #dc2626;

    color: #ffffff;

    font-size: 11px;

    font-weight: 700;

    line-height: 1;

    vertical-align: middle;

    box-shadow:
        0 1px 3px rgba(0,0,0,.25);

}



/* PREFERENCIAS GLOBAIS DO USUARIO */
body.modo-escuro {
  background: #121212 !important;
  color: #eeeeee !important;
}

body.modo-escuro .card,
body.modo-escuro .panel,
body.modo-escuro .dashboard-panel,
body.modo-escuro .metric-card,
body.modo-escuro .config-card,
body.modo-escuro .form-panel,
body.modo-escuro .photo-panel,
body.modo-escuro .report-toolbar,
body.modo-escuro .report-row {
  background: #1e1e1e !important;
  color: #eeeeee !important;
  border-color: #444444 !important;
}

body.modo-escuro h1,
body.modo-escuro h2,
body.modo-escuro h3,
body.modo-escuro p,
body.modo-escuro label,
body.modo-escuro span,
body.modo-escuro strong,
body.modo-escuro small,
body.modo-escuro .subtitle,
body.modo-escuro .metric-label {
  color: #eeeeee !important;
}

body.modo-escuro input,
body.modo-escuro select,
body.modo-escuro textarea,
body.modo-escuro button {
  background: #292929;
  color: #ffffff;
  border-color: #555555;
}

body.modo-escuro .sidebar {
  background: #080808;
}

body.modo-escuro a {
  color: #8ab4f8;
}

body.alto-contraste {
  background: #000000 !important;
  color: #ffffff !important;
}

body.alto-contraste .card,
body.alto-contraste .panel,
body.alto-contraste .dashboard-panel,
body.alto-contraste .metric-card,
body.alto-contraste .config-card {
  background: #000000 !important;
  color: #ffffff !important;
  border: 2px solid #ffffff !important;
}

body.alto-contraste h1,
body.alto-contraste h2,
body.alto-contraste h3,
body.alto-contraste p,
body.alto-contraste span,
body.alto-contraste label,
body.alto-contraste strong {
  color: #ffffff !important;
}

body.sublinhar-links a {
  text-decoration: underline !important;
}

body.fonte-pequena { font-size: 90%; }
body.fonte-media { font-size: 100%; }
body.fonte-grande { font-size: 115%; }
body.fonte-muito-grande { font-size: 130%; }

html[data-idioma="en"] .idioma-pt,
html[data-idioma="es"] .idioma-pt {
  display: none;
}
