:root{
  --charcoal:#071B2E;
  --charcoal2:#04121F;
  --charcoal3:#0D2A42;
  --orange:#F15B2A;
  --orange2:#FF7547;
  --bg:#F3F6F8;
  --panel:#FFFFFF;
  --ink:#071B2E;
  --muted:#6E7E8E;
  --line:#DCE4EA;
  --green:#16885F;
  --amber:#F39A19;
  --red:#E7463F;
  --shadow:0 14px 36px rgba(7,27,46,.11)
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--bg)}
button,select,input{font:inherit}.hidden{display:none!important}
.login-screen{min-height:100vh;display:grid;grid-template-columns:1.35fr .65fr;background:var(--charcoal2)}
.login-hero{position:relative;overflow:hidden;min-height:100vh}.login-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.login-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,14,26,.92) 0%,rgba(2,14,26,.62) 55%,rgba(2,14,26,.22) 100%)}
.login-copy{position:relative;z-index:1;color:#fff;max-width:720px;padding:9vh 7vw}.login-logo{width:min(460px,70%);filter:drop-shadow(0 10px 30px rgba(0,0,0,.18));margin-bottom:36px}.strap{letter-spacing:5px;font-size:14px}.strap span{color:var(--orange);margin:0 10px}.login-copy h1{font-size:54px;line-height:1.02;margin:38px 0 18px;max-width:700px}.login-copy>p:not(.strap){font-size:18px;line-height:1.6;max-width:640px;color:#d9e3ec}.login-tags{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}.login-tags span{padding:8px 12px;border:1px solid rgba(255,255,255,.25);border-radius:999px;font-size:12px;background:rgba(255,255,255,.06)}
.login-panel{display:flex;flex-direction:column;justify-content:center;align-items:center;background:linear-gradient(180deg,#fff,#f7f8fa);padding:40px}.login-card{width:min(390px,100%);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:22px;padding:34px}.geo-mini,.brand-row{display:flex;align-items:center;gap:12px}.geo-mini{margin-bottom:32px}.geo-mini b,.brand-row b{font-size:25px}.geo-mini small,.brand-row small{display:block;color:var(--muted);font-size:10px}.hex{width:46px;height:46px;display:grid;place-items:center;color:#fff;font-weight:900;border-radius:13px;background:linear-gradient(145deg,var(--orange),#ff9b37);box-shadow:inset 0 0 0 4px rgba(255,255,255,.14),0 8px 20px rgba(244,122,11,.24)}
.login-card h2{font-size:30px;margin:5px 0 10px}.muted{color:var(--muted);font-size:13px;line-height:1.6}.login-card label,.modal label{display:block;font-size:11px;font-weight:700;color:#657184;margin:16px 0}.login-card input,.modal input,.modal select{width:100%;margin-top:7px;padding:12px;border:1px solid var(--line);border-radius:10px;outline:none}.login-card input:focus{border-color:var(--orange)}.demo-note{display:block;text-align:center;color:#9098a5;margin-top:14px}.login-panel footer{margin-top:24px;color:#8d97a3;font-size:10px}
.btn{border:0;padding:11px 15px;border-radius:10px;font-weight:800;font-size:12px;cursor:pointer}.primary{background:linear-gradient(135deg,var(--orange),var(--orange2));color:#fff;box-shadow:0 8px 18px rgba(244,122,11,.22)}.ghost{background:#f3f6f9;color:var(--charcoal);margin-top:9px}.full{width:100%}
.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:linear-gradient(180deg,var(--charcoal),var(--charcoal2));color:#fff;padding:24px 18px;display:flex;flex-direction:column;z-index:10}.brand-row{padding:0 6px 22px;border-bottom:1px solid rgba(255,255,255,.09)}.brand-row small{color:#9fb0c0}.sidebar nav{padding-top:20px;display:flex;flex-direction:column;gap:5px}.nav{border:0;background:transparent;color:#b8c4d2;padding:12px 13px;border-radius:10px;text-align:left;display:flex;gap:12px;cursor:pointer;font-size:13px}.nav:hover,.nav.active{background:linear-gradient(90deg,rgba(244,122,11,.18),rgba(244,122,11,.04));color:#fff}.nav.active{box-shadow:inset 3px 0 0 var(--orange)}.side-bottom{margin-top:auto;padding:18px 7px 2px;border-top:1px solid rgba(255,255,255,.09)}.method-tag{font-size:9px;letter-spacing:1.5px;color:var(--orange);font-weight:900}.side-bottom p{font-size:11px;line-height:1.5;color:#93a3b2}.logout{width:100%;margin-top:12px}
main{margin-left:248px;min-height:100vh}.topbar{height:86px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:16px 30px;position:sticky;top:0;z-index:5}.eyebrow{margin:0 0 4px;color:#7c8797;font-size:9px;font-weight:900;letter-spacing:1.4px}.orange{color:var(--orange)}.topbar h1{font-size:19px;margin:0}.top-actions{display:flex;gap:10px;align-items:center}.top-actions select{border:1px solid var(--line);border-radius:10px;padding:9px 11px;background:#fff}.icon-btn{width:36px;height:36px;border:1px solid var(--line);background:#fff;border-radius:10px}.avatar{width:38px;height:38px;border-radius:11px;background:var(--charcoal);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:900}
.view{display:none;padding:27px 30px 50px}.view.active{display:block}.hero-band{background:linear-gradient(105deg,var(--charcoal),var(--charcoal3));color:#fff;border-radius:18px;padding:24px 26px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow);position:relative;overflow:hidden}.hero-band:after{content:"";position:absolute;right:-50px;top:-70px;width:260px;height:260px;border:1px solid rgba(255,255,255,.06);border-radius:44%}.hero-band h2{margin:0 0 5px;font-size:26px}.hero-band p:last-child{margin:0;color:#aebdca;font-size:12px}.status-box{display:flex;gap:10px;align-items:center;padding:12px 16px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);border-radius:12px;min-width:150px}.status-light{width:12px;height:12px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 5px rgba(225,163,46,.15)}.status-box small,.status-box b{display:block}.status-box small{font-size:9px;color:#b7c4d1}.status-box b{font-size:12px;margin-top:2px}
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:16px}.kpi-grid.three{grid-template-columns:repeat(3,1fr)}.kpi{background:#fff;border:1px solid var(--line);border-radius:15px;padding:17px;box-shadow:0 8px 24px rgba(8,31,53,.04)}.kpi-head{display:flex;justify-content:space-between;align-items:center}.kpi-title{font-size:10px;color:var(--muted);font-weight:800}.kpi-value{font-size:24px;font-weight:900;margin:15px 0 4px}.kpi-sub{font-size:10px;color:var(--muted)}.pill{font-size:9px;font-weight:900;padding:5px 8px;border-radius:99px}.green{background:#e4f6ef;color:#197d55}.amber{background:#fff1d2;color:#95660f}.red{background:#fde6e6;color:#a83838}
.grid-two{display:grid;grid-template-columns:1.2fr 1fr;gap:16px;margin-top:16px}.lower{grid-template-columns:1.15fr 1fr}.card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:19px;box-shadow:0 8px 24px rgba(8,31,53,.04)}.card header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.card h3{font-size:15px;margin:0}.card-tag{font-size:9px;padding:5px 8px;background:#eef3f7;color:#607083;border-radius:7px;font-weight:800}.svg-chart{height:245px}.svg-chart svg{width:100%;height:100%}.bar-chart{display:flex;align-items:flex-end;gap:24px;height:245px;padding:20px 18px 0}.bar-group{flex:1;text-align:center}.bar{width:72%;margin:auto;border-radius:8px 8px 2px 2px;background:var(--charcoal3);min-height:4px}.bar.real{background:#6c7c91}.bar.proj{background:linear-gradient(180deg,var(--orange2),var(--orange))}.bar-label{font-size:9px;color:var(--muted);margin-top:8px}.bar-value{font-size:11px;font-weight:900;margin-top:4px}.alert{border:1px solid var(--line);border-left:4px solid var(--amber);border-radius:10px;padding:12px;margin-bottom:9px}.alert.red{border-left-color:var(--red)}.alert.green{border-left-color:var(--green)}.alert strong{display:block;font-size:11px;margin-bottom:5px}.alert p{font-size:10px;line-height:1.5;color:var(--muted);margin:0}.action-row{padding:11px 1px;border-bottom:1px solid var(--line)}.action-row:last-child{border:0}.action-row b{font-size:11px}.action-meta{display:flex;justify-content:space-between;margin-top:7px;color:var(--muted);font-size:9px}.text-btn{border:0;background:none;color:var(--orange);font-size:10px;font-weight:800;cursor:pointer}.pulse-dot{width:9px;height:9px;border-radius:50%;background:var(--red);box-shadow:0 0 0 6px #fdeaea}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.section-title h2{margin:0;font-size:24px}.summary-chip{padding:8px 11px;border-radius:9px;background:#fff;border:1px solid var(--line);font-size:10px;color:var(--muted)}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.project-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:18px;cursor:pointer;transition:.2s;box-shadow:0 8px 24px rgba(8,31,53,.04)}.project-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.project-card h3{margin:15px 0 3px}.project-card p{margin:0;color:var(--muted);font-size:10px}.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:15px}.mini{background:#f5f7f9;border-radius:9px;padding:9px}.mini span{display:block;font-size:8px;color:var(--muted)}.mini b{font-size:12px}
.table-card{padding:0;overflow:hidden}table{width:100%;border-collapse:collapse}th,td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:left;font-size:11px}th{background:#f7f9fb;font-size:9px;color:var(--muted);letter-spacing:.5px;text-transform:uppercase}.num{text-align:right;font-variant-numeric:tabular-nums}.upload-card{text-align:center;padding:42px 28px}.upload-symbol{width:58px;height:58px;margin:0 auto 14px;background:#fff2e5;border-radius:16px;display:grid;place-items:center;color:var(--orange);font-size:28px;font-weight:900}.upload-card p{font-size:11px;color:var(--muted);line-height:1.6}.upload-card input{display:none}.import-result{margin-top:14px;color:var(--muted);font-size:10px}.checklist{list-style:none;padding:0;margin:14px 0}.checklist li{padding:10px 0;border-bottom:1px solid var(--line);font-size:11px}.note{font-size:10px;color:var(--muted);line-height:1.6;background:#f7f9fb;padding:12px;border-radius:10px}.gap-box{display:flex;gap:40px;align-items:center}.gap-number{font-size:38px;font-weight:900;color:var(--orange)}.gap-copy h3{margin-bottom:7px}.gap-copy p{font-size:11px;color:var(--muted);line-height:1.6}
.modal{display:none;position:fixed;inset:0;background:rgba(3,16,28,.58);z-index:20;place-items:center}.modal.show{display:grid}.modal-box{width:420px;background:#fff;border-radius:18px;padding:20px;box-shadow:0 25px 80px rgba(0,0,0,.22)}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal-head button{border:0;background:none;font-size:24px}.modal select{width:100%}
@media(max-width:1100px){.login-screen{grid-template-columns:1fr}.login-panel{min-height:620px}.sidebar{width:205px}main{margin-left:205px}.kpi-grid{grid-template-columns:repeat(2,1fr)}.grid-two{grid-template-columns:1fr}.project-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.login-copy{padding:50px 28px}.login-copy h1{font-size:38px}.login-logo{width:80%}.sidebar{width:74px;padding:18px 10px}.brand-row>div:last-child,.nav span,.side-bottom p,.method-tag{display:none}.brand-row{justify-content:center}.nav{justify-content:center;font-size:18px}.side-bottom{padding:12px 0}main{margin-left:74px}.topbar{padding:13px 16px}.topbar h1{font-size:14px}.top-actions select{max-width:130px}.view{padding:18px 14px 35px}.kpi-grid,.kpi-grid.three,.project-grid{grid-template-columns:1fr}.hero-band{align-items:flex-start;gap:20px;flex-direction:column}.gap-box{align-items:flex-start;flex-direction:column;gap:12px}.login-panel{padding:28px 18px}}

/* GEO official visual identity */
.official-logo{object-fit:contain;object-position:left center}
.brand-symbol{width:46px;height:46px;object-fit:contain;flex:0 0 auto}
.sidebar-symbol{filter:drop-shadow(0 4px 10px rgba(0,0,0,.12))}
.login-logo{width:min(500px,76%);height:auto}
.login-panel{border-left:4px solid var(--orange)}
.sidebar{background:linear-gradient(180deg,var(--charcoal),var(--charcoal2))}
.hero-band{background:linear-gradient(110deg,var(--charcoal),var(--charcoal3))}
.avatar{background:var(--charcoal)}
.primary{background:linear-gradient(135deg,var(--orange),var(--orange2))}
.nav.active{background:linear-gradient(90deg,rgba(241,91,42,.20),rgba(241,91,42,.04))}
.kpi-value,.section-title h2,.topbar h1{color:var(--charcoal)}
.card,.kpi,.project-card{border-color:var(--line)}


/* ===== GEO WEB 1.2 — identidade revisada ===== */
body{background:#f6f7f8}
.login-screen{background:var(--charcoal2)}
.login-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 65%,rgba(36,32,33,.4));pointer-events:none}
.login-brand-stack{position:relative;z-index:2;display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.caetano-login{width:220px;max-height:80px;object-fit:contain;filter:brightness(0) invert(1)}
.brand-divider{width:1px;height:56px;background:rgba(255,255,255,.28)}
.login-logo{margin:0;width:min(390px,54%)}
.login-copy h1{max-width:780px}
.login-panel{background:linear-gradient(180deg,#fff,#f7f3f1)}

.brand-combo{display:block!important;padding-bottom:20px}
.caetano-side{display:block;width:155px;max-height:46px;object-fit:contain;filter:brightness(0) invert(1);margin:0 auto 12px}
.side-divider{height:1px;background:rgba(255,255,255,.12);margin:0 6px 12px}
.geo-side-lockup{display:flex;align-items:center;gap:10px}
.geo-side-lockup .brand-symbol{width:40px;height:40px}
.geo-side-lockup b{font-size:22px}
.geo-side-lockup small{display:block;color:#aaa2a4;font-size:9px}

.topbar{background:#fff;box-shadow:0 1px 0 var(--line)}
.topbar:before{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:linear-gradient(90deg,var(--orange),transparent 32%)}
.hero-visual{
  min-height:230px;
  background:
    linear-gradient(90deg,rgba(36,32,33,.94) 0%,rgba(36,32,33,.82) 42%,rgba(36,32,33,.38) 100%),
    url('assets/dashboard_concept_2.png') center 32%/cover no-repeat;
  border:1px solid rgba(255,255,255,.06);
}
.hero-visual:after{display:none}
.hero-copy{max-width:650px;position:relative;z-index:1}
.hero-logo{width:230px;max-height:88px;object-fit:contain;object-position:left center;margin-bottom:8px}
.hero-copy h2{font-size:28px;margin-bottom:8px}
.hero-copy p:last-child{font-size:13px;line-height:1.6;max-width:620px;color:#e6dfdc}

.kpi{border-top:3px solid transparent;transition:.18s ease}
.kpi:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-top-color:var(--orange)}
.kpi-title{letter-spacing:.4px}
.card{border-radius:14px}
.chart-card,.table-card{box-shadow:0 10px 28px rgba(36,32,33,.055)}
.card header{border-bottom:1px solid #f0ecea;padding-bottom:12px}
.pulse-dot{background:var(--orange);box-shadow:0 0 0 6px rgba(241,91,42,.12)}
.card-tag{background:#f6efec;color:#70473b}
.text-btn{color:var(--orange)}
.project-card:hover{border-color:rgba(241,91,42,.35)}

.app-footer{
  margin:18px 30px 26px;
  background:var(--charcoal);
  color:white;
  border-radius:14px;
  padding:16px 20px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:18px;
  box-shadow:var(--shadow)
}
.footer-brand{display:flex;align-items:center;gap:12px}
.footer-brand img:first-child{width:130px;filter:brightness(0) invert(1)}
.footer-brand img:last-child{width:92px;filter:brightness(0) invert(1)}
.footer-brand span{width:1px;height:28px;background:rgba(255,255,255,.25)}
.footer-copy{font-size:10px;color:#d7d0ce;text-align:center}
.footer-tagline{text-align:right;color:#c8c0be;font-size:10px}
.sidebar{box-shadow:10px 0 30px rgba(36,32,33,.08)}

@media(max-width:1100px){
  .app-footer{grid-template-columns:1fr; text-align:center}
  .footer-brand{justify-content:center}.footer-tagline{text-align:center}
}
@media(max-width:720px){
  .caetano-side,.side-divider,.geo-side-lockup>div{display:none}
  .geo-side-lockup{justify-content:center}
  .login-brand-stack{gap:14px}
  .caetano-login{width:150px}
  .brand-divider{height:38px}
  .login-logo{width:220px}
  .hero-logo{width:180px}
}


/* ===== GEO WEB 1.3 — níveis de acesso + alimentação direta ===== */
.section-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.role-selector{border:1px solid var(--line);border-radius:10px;padding:9px 11px;background:#fff;color:var(--charcoal);font-weight:800}
.access-card{margin-top:12px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.04);border-radius:10px;padding:10px 11px}
.access-card small,.access-card strong{display:block}.access-card small{font-size:8px;color:#a59c9e;letter-spacing:.8px;text-transform:uppercase}.access-card strong{margin-top:4px;color:var(--orange);font-size:11px}
.footer-copy strong{color:white}
.footer-copy{line-height:1.45}
.permission-hidden{display:none!important}
.view.permission-hidden{display:none!important}
.readonly-hint{font-size:10px;color:var(--muted);padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:#fff}
.tier-badge{font-size:9px;font-weight:900;padding:5px 8px;border-radius:999px;background:#f7eee9;color:var(--orange)}
.modal-box{max-height:90vh;overflow:auto}
.modal-close{cursor:pointer}
@media(max-width:720px){.role-selector{max-width:112px;padding:8px 7px}.section-actions{justify-content:flex-end}}


/* ===== GEO WEB 1.4 — administrador controla acessos ===== */
.current-role-badge{
  padding:9px 11px;border-radius:10px;background:#f7eee9;color:var(--orange);
  border:1px solid #f0d6ca;font-size:9px;font-weight:900;letter-spacing:.7px
}
.hero-actions{display:flex;align-items:center;gap:10px;position:relative;z-index:2}
.hero-edit{background:rgba(255,255,255,.10);color:#fff;border:1px solid rgba(255,255,255,.20);box-shadow:none}
.hero-edit:hover{background:rgba(255,255,255,.16)}
.access-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px}
.access-level-card h3{margin:12px 0 6px}.access-level-card p{font-size:11px;color:var(--muted);line-height:1.55;margin:0}
.admin-only.permission-hidden,.admin-tatico.permission-hidden{display:none!important}
.user-action-btn{border:0;background:none;color:var(--orange);font-size:10px;font-weight:800;cursor:pointer;margin-right:8px}
.user-action-btn.danger{color:var(--red)}
#users-table td{vertical-align:middle}
@media(max-width:900px){.access-grid{grid-template-columns:1fr}}


/* ===== GEO WEB 1.5 — foco executivo e marca limpa ===== */
.executive-first{
  min-height:180px;
  background:linear-gradient(110deg,#242021,#342f30);
  border:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  padding:34px 38px;
}
.executive-first h2{font-size:30px;margin:7px 0 8px;color:#fff}
.executive-first p:last-child{color:#ded8d6;font-size:13px}
.executive-first .hero-actions{margin-left:auto}
.executive-first .status-box{min-width:205px}
.login-logo{width:min(440px,72%);margin-bottom:18px}
.brand-row{display:flex!important;align-items:center;gap:10px}
.brand-row .brand-symbol{width:44px;height:44px}
.brand-row b{font-size:23px}.brand-row small{display:block;color:#aaa2a4;font-size:9px}
.app-footer{grid-template-columns:1fr 1fr}
.footer-copy{text-align:left}
.footer-tagline{text-align:right}
@media(max-width:720px){
  .executive-first{padding:26px 22px;align-items:flex-start;flex-direction:column}
  .executive-first .hero-actions{margin-left:0;width:100%;justify-content:space-between}
  .app-footer{grid-template-columns:1fr}
  .footer-copy,.footer-tagline{text-align:center}
}


/* ===== GEO WEB 1.6 — menu Minha Conta ===== */
.account-menu-wrap{position:relative}
.account-trigger{
  display:flex;align-items:center;gap:9px;border:0;background:transparent;
  padding:4px 7px;border-radius:11px;cursor:pointer;color:var(--charcoal)
}
.account-trigger:hover{background:#f6f2f0}
.account-meta{text-align:left;line-height:1.15}
.account-meta strong{display:block;font-size:11px}
.account-meta small{display:block;font-size:8px;color:var(--muted);margin-top:2px}
.chevron{font-size:15px;color:#8b8385;margin-left:2px}
.account-dropdown{
  display:none;position:absolute;right:0;top:52px;width:205px;background:#fff;
  border:1px solid var(--line);border-radius:13px;padding:7px;box-shadow:0 18px 45px rgba(36,32,33,.16);z-index:30
}
.account-dropdown.show{display:block}
.account-dropdown button,.account-dropdown a{
  width:100%;display:block;border:0;background:transparent;text-decoration:none;color:var(--charcoal);
  text-align:left;padding:10px 11px;border-radius:8px;font-size:11px;cursor:pointer
}
.account-dropdown button:hover,.account-dropdown a:hover{background:#f7f3f1;color:var(--orange)}
.dropdown-separator{height:1px;background:var(--line);margin:5px 3px}
.account-dropdown .danger-action{color:var(--red)}
.help-list details{border-bottom:1px solid var(--line);padding:11px 0}
.help-list summary{cursor:pointer;font-size:12px;font-weight:800;color:var(--charcoal)}
.help-list p{font-size:11px;line-height:1.55;color:var(--muted);margin:8px 0 2px}
.help-contact{display:block;text-align:center;text-decoration:none;margin-top:16px}
@media(max-width:720px){
  .account-meta{display:none}
  .account-trigger{padding:3px}
  .account-dropdown{right:-2px}
}

/* ===== GEO WEB 1.7 — detalhamento operacional ===== */
.kanban-board{display:grid;grid-template-columns:repeat(5,minmax(220px,1fr));gap:14px;overflow-x:auto;padding-bottom:8px}
.kanban-col{background:#f0eeed;border:1px solid var(--line);border-radius:14px;padding:10px;min-height:360px}
.kanban-head{display:flex;justify-content:space-between;align-items:center;padding:5px 4px 12px;font-weight:900;font-size:11px;text-transform:uppercase;letter-spacing:.5px}
.kanban-count{background:#fff;border:1px solid var(--line);border-radius:999px;padding:3px 7px;color:var(--muted)}
.kanban-card{background:#fff;border:1px solid var(--line);border-radius:11px;padding:13px;margin-bottom:9px;cursor:pointer;box-shadow:0 5px 14px rgba(36,32,33,.04)}
.kanban-card:hover{border-color:rgba(241,91,42,.45);transform:translateY(-1px)}
.kanban-card h3{margin:6px 0 3px;font-size:13px}.kanban-card p{margin:0 0 10px;color:var(--muted);font-size:10px}.kanban-metrics{display:grid;grid-template-columns:1fr 1fr;gap:6px;font-size:9px}.kanban-metrics b{display:block;font-size:11px;margin-top:2px}
.schedule-scroll{overflow-x:auto}.schedule-scroll table{min-width:1180px}.schedule-scroll th:first-child,.schedule-scroll td:first-child{min-width:220px;text-align:left}.schedule-scroll td{white-space:nowrap}
.measurement-detail{margin-top:16px;overflow-x:auto}.measurement-detail table{min-width:780px}
.download-template{display:inline-block;text-decoration:none;margin:8px 0 16px}
.form-grid,.ai-review-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ai-upload-zone{text-align:center;border:1px dashed #d8ceca;border-radius:12px;padding:18px;margin-bottom:14px;background:#faf8f7}.ai-review-grid{margin-top:14px}
.ai-suggestion{background:#fff8f4;border-left:3px solid var(--orange);padding:10px 12px;border-radius:8px;margin-bottom:8px;font-size:10px}
@media print{.sidebar,.topbar,.hero-actions,.app-footer,.nav,.btn{display:none!important}.app-shell,.main{display:block!important;margin:0!important}.view{display:none!important}#dashboard{display:block!important}.content{padding:0!important}.hero-band{break-inside:avoid}.card,.kpi{box-shadow:none!important;break-inside:avoid}body{background:#fff}}
@media(max-width:720px){.form-grid,.ai-review-grid{grid-template-columns:1fr}.kanban-board{grid-template-columns:repeat(5,240px)}}

/* ===== GEO WEB 1.8 — medições por BM e acumulado por etapa ===== */
.measurement-detail{padding:0!important;overflow:hidden!important}
.measurement-header{
  padding:22px 24px 18px!important;display:flex;align-items:flex-end;justify-content:space-between;
  gap:18px;background:linear-gradient(180deg,#fff,#fcfbfa);border-bottom:1px solid var(--line)!important
}
.measurement-header h3{font-size:19px;margin:3px 0 5px}
.measurement-subtitle{font-size:10px;color:var(--muted);margin:0;line-height:1.45}
.measurement-legend{display:flex;gap:14px;white-space:nowrap;font-size:9px;color:var(--muted)}
.measurement-legend span{display:flex;align-items:center;gap:5px}
.measurement-legend .dot{width:7px;height:7px;border-radius:50%;display:inline-block}
.measurement-legend .dot.bm{background:#b7afb0}
.measurement-legend .dot.total{background:var(--orange)}
.measurement-table-wrap{overflow-x:auto;padding:10px 0 2px}
.measurement-table{min-width:1120px!important;border-collapse:separate;border-spacing:0;width:100%}
.measurement-table thead th{
  background:#f6f7f8;color:#746d6f;font-size:9px;text-transform:uppercase;letter-spacing:.45px;
  padding:13px 14px;border-bottom:1px solid #ddd7d5;white-space:nowrap
}
.measurement-table tbody td{padding:13px 14px;border-bottom:1px solid #eee9e7;font-size:11px;vertical-align:middle}
.measurement-table tbody tr.bm-row:hover td{background:#fffaf7}
.measurement-table tbody tr.stage-total td{
  background:#f8f4f2;font-weight:800;border-bottom:2px solid #e5d9d4
}
.measurement-table tbody tr.stage-total td:first-child{border-left:3px solid var(--orange)}
.measurement-table .bm-code{
  display:inline-flex;align-items:center;padding:5px 8px;border-radius:7px;background:#f1efef;
  color:var(--charcoal);font-size:9px;font-weight:900;white-space:nowrap
}
.measurement-table .stage-name{font-weight:750;min-width:210px}
.measurement-table .supplier-cell{min-width:155px}
.measurement-table .num{white-space:nowrap;text-align:right}
.measurement-table .accumulated{color:var(--orange);font-weight:900}
.measurement-progress{display:flex;align-items:center;gap:8px;min-width:110px}
.measurement-progress .mini-track{width:58px;height:5px;border-radius:999px;background:#e7e3e2;overflow:hidden}
.measurement-progress .mini-fill{height:100%;background:var(--orange);border-radius:999px}
.measurement-progress b{font-size:10px;white-space:nowrap}
@media(max-width:900px){
  .measurement-header{align-items:flex-start;flex-direction:column}
  .measurement-legend{white-space:normal}
}

/* ===== GEO WEB 1.9 — edição/exclusão + auditoria ===== */
.row-actions{display:flex;gap:6px;align-items:center;white-space:nowrap}
.row-action{
  border:1px solid var(--line);background:#fff;color:var(--charcoal);padding:5px 8px;border-radius:7px;
  font-size:9px;font-weight:800;cursor:pointer
}
.row-action:hover{border-color:#d8b8aa;color:var(--orange);background:#fff8f5}
.row-action.delete{color:var(--red)}
.row-action.delete:hover{border-color:#e6b9b5;background:#fff5f4}

.finance-detail{margin-top:16px;padding:0!important;overflow:hidden!important}
.finance-header{padding:20px 24px 15px!important;background:linear-gradient(180deg,#fff,#fcfbfa);border-bottom:1px solid var(--line)!important}
.finance-header h3{font-size:18px;margin:3px 0 4px}
.finance-subtitle,.audit-subtitle{font-size:10px;color:var(--muted);line-height:1.45;margin:0}
.finance-table-wrap,.audit-table-wrap{overflow-x:auto}
.finance-table{min-width:1050px!important}
.finance-table th,.audit-table th{white-space:nowrap}
.finance-table td{vertical-align:middle}
.finance-doc{display:inline-flex;padding:4px 7px;border-radius:6px;background:#f2efee;font-size:9px;font-weight:800}
.finance-origin{font-size:9px;color:var(--muted)}
.audit-title{margin-top:28px}
.audit-card{padding:0!important;overflow:hidden!important}
.audit-table{min-width:1200px!important}
.audit-table td{font-size:10px;vertical-align:top}
.audit-action{font-weight:800;color:var(--charcoal)}
.audit-detail{color:var(--muted);max-width:360px;line-height:1.4}
.audit-time{white-space:nowrap;font-variant-numeric:tabular-nums}
.audit-module{display:inline-block;padding:4px 7px;border-radius:6px;background:#f6f2f0;font-size:9px;font-weight:800}
.audit-user{font-weight:800}
.audit-profile{font-size:9px;color:var(--muted)}
.measurement-table{min-width:1240px!important}

/* ===== GEO WEB 2.0 — cronograma, plano de ação e diário fotográfico ===== */
.schedule-scroll table{min-width:1500px}
.schedule-scroll th:last-child,.schedule-scroll td:last-child{min-width:135px}

.cost-summary-table th:not(:first-child),.cost-summary-table td:not(:first-child){text-align:center!important}
.cost-summary-table td.num{text-align:center!important}
.cost-summary-table .cost-over{color:var(--red);font-weight:900}
.cost-summary-table .cost-under{color:var(--green);font-weight:800}

.diary-intro{font-size:11px;color:var(--muted);line-height:1.5;margin:6px 0 0;max-width:700px}
.diary-toolbar{display:grid;grid-template-columns:220px 220px 1fr;gap:14px;align-items:end;margin-bottom:16px;padding:14px 18px}
.diary-toolbar label{font-size:9px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
.diary-toolbar select{display:block;width:100%;margin-top:5px;padding:9px;border:1px solid var(--line);border-radius:8px;background:#fff}
.diary-summary{text-align:right;color:var(--muted);font-size:10px;font-weight:800;padding-bottom:8px}

.photo-groups{display:flex;flex-direction:column;gap:20px}
.photo-group{background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden;box-shadow:0 8px 24px rgba(36,32,33,.04)}
.photo-group-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line);background:#fcfbfa}
.photo-group-head h3{font-size:16px;margin:0}.photo-group-head span{font-size:9px;color:var(--muted)}
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:16px}
.photo-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;transition:.18s}
.photo-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.photo-image{width:100%;height:210px;object-fit:cover;background:#eee}
.photo-card-body{padding:12px}
.photo-card-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.photo-date{font-size:10px;font-weight:900;color:var(--charcoal)}
.photo-caption{font-size:11px;line-height:1.45;color:var(--ink);margin:9px 0 7px}
.photo-meta{font-size:9px;color:var(--muted)}
.photo-card-actions{display:flex;gap:6px;margin-top:10px;border-top:1px solid #f0ecea;padding-top:10px}
.photo-empty{padding:42px;text-align:center;color:var(--muted);background:#fff;border:1px dashed #d8d0cd;border-radius:14px}
.photo-modal-box textarea,#modal-edit-photo textarea{width:100%;margin-top:7px;padding:10px;border:1px solid var(--line);border-radius:9px;font-family:inherit;resize:vertical}
.photo-status{font-size:8px;font-weight:900;padding:5px 7px;border-radius:999px;white-space:nowrap}
.photo-status.aprovado,.photo-status.concluido{background:#e4f6ef;color:#197d55}
.photo-status.em-analise,.photo-status.aguardando{background:#fff1d2;color:#95660f}
.photo-status.ocorrencia{background:#fde6e6;color:#a83838}
.photo-report-header{display:none}

@media(max-width:1100px){.photo-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){
  .diary-toolbar{grid-template-columns:1fr}.diary-summary{text-align:left}
  .photo-grid{grid-template-columns:1fr}
  .photo-image{height:240px}
}

@media print{
  body.photo-report-mode .sidebar,body.photo-report-mode .topbar,body.photo-report-mode .app-footer,
  body.photo-report-mode .view:not(#diary),body.photo-report-mode #diary .section-title,
  body.photo-report-mode #diary .diary-toolbar,body.photo-report-mode .photo-card-actions{display:none!important}
  body.photo-report-mode main{margin:0!important}
  body.photo-report-mode #diary{display:block!important;padding:12mm!important}
  body.photo-report-mode .photo-report-header{display:block!important;margin-bottom:10mm;border-bottom:2px solid #242021;padding-bottom:6mm}
  body.photo-report-mode .photo-group{box-shadow:none;border:0;margin-bottom:8mm;break-inside:avoid}
  body.photo-report-mode .photo-group-head{padding:0 0 4mm;background:#fff;border-bottom:1px solid #777}
  body.photo-report-mode .photo-grid{grid-template-columns:1fr 1fr;gap:5mm;padding:5mm 0}
  body.photo-report-mode .photo-card{box-shadow:none;border:1px solid #555;break-inside:avoid}
  body.photo-report-mode .photo-image{height:85mm;object-fit:contain;background:#fff}
  body.photo-report-mode .photo-card-body{padding:3mm}
}


/* ===== GEO WEB 2.1 — LOGIN PREMIUM ===== */
.login-v21{
  min-height:100vh;
  display:grid;
  grid-template-columns:minmax(0,1.62fr) minmax(390px,.68fr);
  background:#f7f5f4;
}
.login-v21 .login-hero{
  min-height:100vh;
  position:relative;
  overflow:hidden;
  background:#101213;
}
.login-v21 .login-bg{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;
  filter:saturate(.9) contrast(1.02);
}
.login-v21 .login-overlay{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(7,18,29,.94) 0%,rgba(7,18,29,.83) 41%,rgba(7,18,29,.48) 70%,rgba(7,18,29,.22) 100%),
    linear-gradient(0deg,rgba(5,14,22,.52),transparent 48%);
}
.login-topbar{
  position:absolute;z-index:3;left:clamp(34px,5vw,76px);top:34px;
  display:flex;align-items:center;gap:17px
}
.login-top-logo{width:105px;height:54px;object-fit:contain;object-position:left center}
.login-top-label{color:rgba(255,255,255,.7);font-size:10px;letter-spacing:1px;text-transform:uppercase;
  border-left:1px solid rgba(255,255,255,.26);padding-left:17px}
.login-copy-v21{
  position:relative;z-index:2;
  max-width:760px;
  padding:clamp(150px,21vh,220px) clamp(34px,6vw,90px) 110px;
  color:#fff
}
.method-pill{
  display:inline-flex;padding:7px 10px;border-radius:999px;
  border:1px solid rgba(241,91,42,.52);background:rgba(241,91,42,.10);
  color:#ff8a5f;font-size:9px;font-weight:900;letter-spacing:1.5px
}
.login-copy-v21 .strap{margin:25px 0 0;font-size:11px;letter-spacing:4.5px;color:#e8ecef}
.login-copy-v21 .strap span{color:#f15b2a;margin:0 9px}
.login-copy-v21 h1{
  font-size:clamp(43px,4vw,69px);line-height:.99;letter-spacing:-2.4px;
  margin:28px 0 22px;max-width:750px;font-weight:830
}
.login-lead{
  max-width:650px;color:#d4dde4!important;font-size:15px!important;line-height:1.65!important;margin:0!important
}
.login-proof{
  margin-top:38px;display:grid;grid-template-columns:repeat(4,1fr);max-width:740px;
  border-top:1px solid rgba(255,255,255,.17);border-bottom:1px solid rgba(255,255,255,.17)
}
.login-proof>div{padding:15px 16px 16px;border-right:1px solid rgba(255,255,255,.13)}
.login-proof>div:first-child{padding-left:0}.login-proof>div:last-child{border-right:0}
.login-proof strong{display:block;color:#fff;font-size:11px}.login-proof span{display:block;color:#8fa1af;font-size:9px;margin-top:4px}
.login-signature{
  position:absolute;z-index:3;bottom:30px;left:clamp(34px,6vw,90px);
  display:flex;align-items:center;gap:12px;color:#a8b4bd
}
.login-signature span{font-weight:900;color:#fff;font-size:12px}
.login-signature small{font-size:8px;border-left:1px solid rgba(255,255,255,.2);padding-left:12px}

.login-panel-v21{
  min-height:100vh;background:linear-gradient(145deg,#fbfaf9,#f3efed);
  border-left:3px solid #f15b2a;padding:34px;display:flex;align-items:center;justify-content:center
}
.login-panel-inner{width:min(440px,100%)}
.login-card-v21{
  width:100%;padding:36px 36px 31px;border-radius:22px;background:rgba(255,255,255,.96);
  border:1px solid #e3ddda;box-shadow:0 24px 65px rgba(36,32,33,.13)
}
.login-card-brand{display:flex;align-items:center;gap:11px;margin-bottom:36px}
.login-card-brand .brand-symbol{width:44px;height:44px}
.login-card-brand b{display:block;font-size:24px;line-height:1}.login-card-brand small{color:#8d8586;font-size:9px}
.login-welcome{margin-bottom:24px}
.login-welcome h2{font-size:32px;letter-spacing:-1px;margin:7px 0 7px;color:#242021}
.login-welcome .muted{margin:0;font-size:12px;max-width:340px}
.login-card-v21>label{font-size:10px;letter-spacing:.15px;color:#655e60;margin:15px 0;font-weight:800}
.login-card-v21 input[type="email"],.login-card-v21 input[type="password"]{
  height:48px;border-radius:10px;background:#fff;border:1px solid #ddd6d3;
  padding:0 13px;font-size:12px;color:#242021;transition:.15s
}
.login-card-v21 input[type="email"]:focus,.login-card-v21 input[type="password"]:focus{
  border-color:#f15b2a;box-shadow:0 0 0 3px rgba(241,91,42,.10)
}
.login-options{display:flex;align-items:center;justify-content:space-between;margin:5px 0 20px}
.remember-line{display:flex!important;align-items:center;gap:6px!important;margin:0!important;font-size:9px!important;color:#837b7d!important;font-weight:600!important}
.remember-line input{width:auto;margin:0;accent-color:#f15b2a}
.forgot-link{border:0;background:none;color:#f15b2a;font-size:9px;font-weight:800;cursor:pointer;padding:0}
.login-main-btn{
  height:48px;display:flex;align-items:center;justify-content:center;gap:10px;
  border-radius:10px;background:#f15b2a;box-shadow:0 10px 20px rgba(241,91,42,.20)
}
.login-main-btn:hover{background:#dd4e21}.login-main-btn span{font-size:15px}
.login-demo-btn{height:43px;margin-top:9px;border:1px solid #e6e0de;background:#f7f6f5}
.login-security{margin-top:19px;display:flex;align-items:center;justify-content:center;gap:7px;color:#92898b;font-size:8px}
.security-dot{width:6px;height:6px;border-radius:50%;background:#2e9d6b;box-shadow:0 0 0 3px rgba(46,157,107,.10)}
.login-help{text-align:center;margin-top:18px;color:#92898b;font-size:9px}
.login-help a{color:#f15b2a;text-decoration:none;font-weight:800;margin-left:5px}
.login-help a:hover{text-decoration:underline}

@media(max-width:1080px){
  .login-v21{grid-template-columns:1.15fr .85fr}
  .login-proof{grid-template-columns:1fr 1fr}
  .login-proof>div:nth-child(2){border-right:0}
}
@media(max-width:800px){
  .login-v21{display:block;background:#f5f1ef}
  .login-v21 .login-hero{min-height:550px}
  .login-copy-v21{padding:125px 28px 90px}
  .login-copy-v21 h1{font-size:48px}
  .login-proof{display:none}
  .login-topbar{left:28px;top:26px}
  .login-signature{left:28px;bottom:20px}
  .login-panel-v21{min-height:auto;border-left:0;border-top:3px solid #f15b2a;padding:34px 18px 46px}
  .login-card-v21{max-width:460px;margin:auto}
}
@media(max-width:520px){
  .login-v21 .login-hero{min-height:500px}
  .login-copy-v21 h1{font-size:39px;letter-spacing:-1.3px}
  .login-copy-v21 .strap{letter-spacing:3px;font-size:9px}
  .login-lead{font-size:13px!important}
  .login-signature small{display:none}
  .login-top-label{display:none}
  .login-card-v21{padding:28px 22px}
}


/* =========================================================
   GEO WEB 2.2 — PALETA FINAL
   Azul escuro + Branco + Laranja
   Mantém toda a estrutura e funcionalidades aprovadas.
   ========================================================= */
html,body{background:#F3F6F8;color:#071B2E}

/* Navegação e barras */
.sidebar{
  background:linear-gradient(180deg,#061827 0%,#04121F 100%)!important;
  box-shadow:10px 0 32px rgba(3,15,27,.16)!important
}
.brand-row{border-color:rgba(255,255,255,.10)!important}
.brand-row small,.side-bottom p{color:#9FB0BE!important}
.nav{color:#C5D0D9!important}
.nav:hover,.nav.active{
  background:linear-gradient(90deg,rgba(241,91,42,.28),rgba(241,91,42,.045))!important;
  color:#fff!important
}
.nav.active{box-shadow:inset 3px 0 0 #F15B2A!important}
.method-tag,.access-card strong{color:#FF7547!important}
.access-card{border-color:rgba(255,255,255,.12)!important;background:rgba(255,255,255,.035)!important}

.topbar{
  background:#FFFFFF!important;
  border-bottom:1px solid #DCE4EA!important;
  box-shadow:0 4px 22px rgba(7,27,46,.045)!important
}
.topbar:before{background:linear-gradient(90deg,#F15B2A,transparent 36%)!important}
.topbar h1,.section-title h2,.kpi-value{color:#071B2E!important}
.top-actions select,.icon-btn{background:#fff!important;border-color:#DCE4EA!important;color:#071B2E!important}
.avatar{background:#071B2E!important;color:#fff!important}
.current-role-badge{
  background:#FFF1EA!important;color:#E64C20!important;border-color:#FFD1BE!important
}

/* Executive dashboard */
.executive-first,.hero-band{
  background:linear-gradient(105deg,#071B2E 0%,#0B2439 58%,#10324D 100%)!important;
  box-shadow:0 16px 34px rgba(7,27,46,.17)!important
}
.executive-first h2,.hero-band h2{color:#fff!important}
.executive-first p:last-child,.hero-band p:last-child{color:#C9D6DF!important}
.hero-edit{background:rgba(255,255,255,.08)!important;border-color:rgba(255,255,255,.20)!important;color:#fff!important}
.hero-edit:hover{background:rgba(241,91,42,.18)!important;border-color:rgba(241,91,42,.45)!important}
.status-box{background:rgba(1,12,22,.42)!important;border-color:rgba(255,255,255,.16)!important}
.status-box small{color:#B9C8D4!important}

/* Panels / cards */
.card,.kpi,.project-card,.upload-card,.modal-box{
  background:#fff!important;
  border-color:#DCE4EA!important;
  box-shadow:0 9px 26px rgba(7,27,46,.055)!important
}
.card header{border-bottom-color:#E7EDF1!important}
.kpi{border-top:3px solid transparent!important}
.kpi:hover{border-top-color:#F15B2A!important;box-shadow:0 14px 30px rgba(7,27,46,.10)!important}
.eyebrow{color:#728394!important}
.eyebrow.orange,.orange{color:#F15B2A!important}
.card-tag,.tier-badge{
  background:#EDF3F7!important;
  color:#496174!important
}
.summary-chip,.readonly-hint{background:#fff!important;border-color:#DCE4EA!important;color:#6E7E8E!important}

/* Buttons */
.primary{
  background:linear-gradient(135deg,#F15B2A,#FF7547)!important;
  color:#fff!important;
  box-shadow:0 8px 18px rgba(241,91,42,.23)!important
}
.primary:hover{filter:brightness(.96)}
.ghost{
  background:#EFF4F7!important;
  color:#071B2E!important;
  border:1px solid #DCE4EA!important
}
.text-btn,.user-action-btn,.forgot-link,.login-help a{color:#F15B2A!important}

/* Tables */
th{
  background:#EDF3F7!important;
  color:#607487!important;
  border-bottom-color:#D9E3E9!important
}
td{border-bottom-color:#E5EBEF!important;color:#132B3E}
.table-card{border-color:#DCE4EA!important}
.cost-summary-table .cost-over{color:#E7463F!important}
.cost-summary-table .cost-under{color:#16885F!important}

/* Charts */
.bar{background:#20384C!important}
.bar.real{background:#71879C!important}
.bar.proj{background:linear-gradient(180deg,#FF7547,#F15B2A)!important}
.pulse-dot{background:#F15B2A!important;box-shadow:0 0 0 6px rgba(241,91,42,.13)!important}

/* Account dropdown */
.account-trigger{color:#071B2E!important}
.account-trigger:hover{background:#EEF4F7!important}
.account-dropdown{background:#fff!important;border-color:#DCE4EA!important;box-shadow:0 18px 45px rgba(7,27,46,.16)!important}
.account-dropdown button,.account-dropdown a{color:#071B2E!important}
.account-dropdown button:hover,.account-dropdown a:hover{background:#EEF4F7!important;color:#F15B2A!important}

/* Footer */
.app-footer{
  background:linear-gradient(90deg,#061827,#0A2337)!important;
  color:#fff!important;
  box-shadow:0 12px 28px rgba(7,27,46,.17)!important
}
.footer-copy{color:#CFDAE2!important}
.footer-tagline{color:#fff!important}

/* Kanban / operational areas */
.kanban-column{background:#EAF0F4!important;border-color:#D9E3E9!important}
.kanban-column-head{color:#071B2E!important}
.kanban-card{background:#fff!important;border-color:#DCE4EA!important}
.kanban-card:hover{border-color:rgba(241,91,42,.45)!important}
.finance-header,.measurement-header{background:linear-gradient(180deg,#fff,#F7FAFB)!important}
.finance-doc,.bm-code,.audit-module{background:#EDF3F7!important;color:#173249!important}
.measurement-table tbody tr.stage-total td{background:#F2F6F8!important;border-bottom-color:#D5E0E7!important}
.measurement-table tbody tr.stage-total td:first-child{border-left-color:#F15B2A!important}
.measurement-progress .mini-track{background:#DDE6EB!important}
.measurement-progress .mini-fill{background:#F15B2A!important}
.measurement-table .accumulated{color:#E95124!important}

/* Diário de obra */
.photo-group{border-color:#DCE4EA!important}
.photo-group-head{background:#F6F9FA!important;border-bottom-color:#DCE4EA!important}
.photo-card{border-color:#DCE4EA!important}
.photo-card:hover{box-shadow:0 13px 30px rgba(7,27,46,.11)!important}

/* Modals */
.modal{background:rgba(3,15,27,.66)!important}
.modal-box label{color:#5F7181!important}
.modal input,.modal select,.modal textarea{
  border-color:#D8E2E8!important;
  color:#071B2E!important;
  background:#fff!important
}
.modal input:focus,.modal select:focus,.modal textarea:focus{
  border-color:#F15B2A!important;outline:none!important;box-shadow:0 0 0 3px rgba(241,91,42,.10)!important
}

/* -------- Login final 2.2 -------- */
.login-v21{background:#04121F!important;grid-template-columns:minmax(0,1.58fr) minmax(410px,.72fr)!important}
.login-v21 .login-hero{background:#04121F!important}
.login-v21 .login-bg{
  object-fit:cover!important;
  object-position:center center!important;
  filter:none!important
}
.login-v21 .login-overlay{
  background:linear-gradient(90deg,rgba(4,18,31,.16) 0%,rgba(4,18,31,.06) 65%,rgba(4,18,31,.02) 100%)!important
}
.login-topbar{display:none!important}
.login-copy-v21{
  padding:clamp(410px,56vh,620px) clamp(38px,5.5vw,88px) 90px!important;
  max-width:720px!important
}
.login-copy-v21 .method-pill{display:none!important}
.login-copy-v21 .strap{display:none!important}
.login-copy-v21 h1{
  display:none!important
}
.login-lead{display:none!important}
.login-proof{display:none!important}
.login-signature{
  left:clamp(40px,5.5vw,88px)!important;
  bottom:25px!important;
  color:#A9BAC6!important
}
.login-signature span{color:#fff!important}
.login-signature small{color:#A9BAC6!important}

.login-panel-v21{
  background:
    radial-gradient(circle at 85% 90%,rgba(18,57,84,.30),transparent 34%),
    linear-gradient(155deg,#061827 0%,#04121F 100%)!important;
  border-left:3px solid #F15B2A!important;
  padding:38px!important
}
.login-panel-inner{position:relative}
.login-version{
  color:#8FA3B1!important;
  font-size:9px!important;
  letter-spacing:1px!important;
  text-align:right!important;
  margin:0 4px 27px!important
}
.login-card-v21{
  background:rgba(7,27,46,.78)!important;
  border:1px solid rgba(174,199,215,.28)!important;
  box-shadow:0 24px 70px rgba(0,0,0,.24)!important;
  backdrop-filter:blur(8px)!important;
  color:#fff!important
}
.login-card-brand b{color:#fff!important}
.login-card-brand small{color:#B4C3CE!important}
.login-welcome h2{color:#fff!important}
.login-welcome .muted{color:#C5D2DA!important}
.login-card-v21>label{color:#E6EDF1!important}
.login-card-v21 input[type="email"],.login-card-v21 input[type="password"]{
  background:rgba(3,16,28,.45)!important;
  color:#fff!important;
  border-color:#5D7486!important
}
.login-card-v21 input::placeholder{color:#8FA3B1!important}
.login-card-v21 input:focus{border-color:#F15B2A!important;box-shadow:0 0 0 3px rgba(241,91,42,.14)!important}
.remember-line{color:#C1CFD8!important}
.forgot-link{color:#fff!important}
.login-demo-btn{
  background:transparent!important;color:#fff!important;border:1px solid #8CA0AF!important
}
.login-demo-btn:hover{border-color:#F15B2A!important;color:#F15B2A!important}
.login-security{color:#AFC0CB!important}
.login-help{color:#8EA1AE!important}
.login-help a{color:#F15B2A!important}
.login-main-btn{background:linear-gradient(90deg,#F15B2A,#FF6A31)!important}
.login-accent{color:#F15B2A!important}
.security-dot{background:#20A36C!important}

/* Status colors remain operationally distinct */
.green{background:#E3F5EE!important;color:#167D56!important}
.amber{background:#FFF0D8!important;color:#A46300!important}
.red{background:#FCE5E4!important;color:#BA3731!important}
.status-light{box-shadow:0 0 0 5px rgba(243,154,25,.15)!important}

/* Version final responsive */
@media(max-width:800px){
  .login-v21 .login-hero{min-height:520px!important}
  .login-copy-v21{display:none!important}
  .login-panel-v21{border-left:0!important;border-top:3px solid #F15B2A!important}
  .login-signature{bottom:18px!important}
}


/* GEO 2.2.1 — ações por projeto no Kanban */
.kanban-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:30px}
.project-card-actions{display:flex;align-items:center;gap:6px;margin-left:auto}
.project-icon-btn{width:29px;height:29px;border:1px solid #DCE4EA;border-radius:8px;background:#EEF4F7;color:#173249;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:13px;line-height:1;transition:.15s}
.project-icon-btn:hover{border-color:#F15B2A;color:#F15B2A;background:#FFF4EF;transform:translateY(-1px)}
.project-icon-btn.danger{background:#FFF0EE;border-color:#FFD8D2;color:#D83E35}
.project-icon-btn.danger:hover{background:#FFE4E0;border-color:#E7463F;color:#B92E28}
.kanban-card .cost-over{color:#E7463F!important}

/* GEO 2.2.2 — ações na tabela de custos */
.cost-summary-table th:last-child,
.cost-summary-table td:last-child{width:150px;text-align:center}
.cost-summary-table .row-actions{justify-content:center}
.cost-summary-table .cost-over{color:#E7463F!important;font-weight:800}

/* ===== GEO WEB 2.2.3 — ajustes finais ===== */
.brand-row-final{
  min-height:118px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  padding:12px 8px 18px;
  border-bottom:1px solid rgba(255,255,255,.12);
  margin-bottom:18px;
}
.sidebar-geo-logo{
  display:block;
  width:138px;
  height:auto;
  max-height:108px;
  object-fit:contain;
  object-position:left center;
}
#kpi-grid{
  grid-template-columns:repeat(5,minmax(0,1fr));
}
#kpi-grid .kpi{min-width:0}
#kpi-grid .kpi-value{font-size:clamp(20px,1.8vw,31px)}
.pill.green{background:#e0f5eb;color:#087a50}
@media(max-width:1200px){
  #kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:820px){
  #kpi-grid{grid-template-columns:1fr 1fr}
  .sidebar-geo-logo{width:118px}
}

/* ===== GEO 2.2 FINAL — refinamentos de identidade e relatório ===== */
.brand-row-final{
  min-height:92px!important;
  padding:8px 4px 18px!important;
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
}
.sidebar-brand-lockup{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
}
.sidebar-brand-symbol{
  width:54px;
  height:54px;
  object-fit:contain;
  flex:0 0 54px;
}
.sidebar-brand-copy{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  line-height:1;
}
.sidebar-brand-copy strong{
  color:#fff;
  font-size:27px;
  font-weight:900;
  letter-spacing:.2px;
}
.sidebar-brand-copy span{
  color:#b9c5cf;
  font-size:8.5px;
  margin-top:6px;
  white-space:nowrap;
}
.executive-print-header{display:none}

@media(max-width:720px){
  .sidebar-brand-copy{display:none}
  .sidebar-brand-symbol{width:48px;height:48px;flex-basis:48px}
}

/* PDF da Visão Executiva */
@media print{
  .executive-print-header{
    display:flex!important;
    align-items:center;
    gap:8mm;
    padding:0 0 6mm;
    margin:0 0 7mm;
    border-bottom:1.5px solid #d9dde2;
  }
  .executive-print-header img{
    width:34mm;
    height:auto;
    object-fit:contain;
  }
  .executive-print-header div{
    display:flex;
    flex-direction:column;
    gap:2mm;
  }
  .executive-print-header strong{
    color:#071B2E;
    font-size:15pt;
    letter-spacing:.8px;
  }
  .executive-print-header span{
    color:#5f6f7e;
    font-size:10pt;
  }
}

/* ===== GEO 2.3 — Receita, Despesa e Resultado ===== */
.finance-type{display:inline-flex;padding:5px 10px;border-radius:999px;font-size:11px;font-weight:800}
.finance-type.revenue{background:#e2f5ec;color:#087a50}
.finance-type.expense{background:#fde7e5;color:#c33e38}
.finance-positive{color:#087a50!important;font-weight:800}
.finance-flow-summary{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:14px;margin:0 0 18px;padding:16px 20px;background:#fff;border:1px solid var(--line);border-radius:18px}
.finance-flow-summary div:not(.flow-op){display:flex;flex-direction:column;gap:5px}
.finance-flow-summary span{font-size:10px;font-weight:900;letter-spacing:.8px;color:#68798a}
.finance-flow-summary strong{font-size:22px;color:var(--navy)}
.finance-flow-summary .flow-op{font-size:24px;color:#94a2af}
.finance-flow-summary .profit-positive strong{color:#087a50}
.finance-flow-summary .profit-negative strong{color:#c33e38}
@media(max-width:760px){.finance-flow-summary{grid-template-columns:1fr}.finance-flow-summary .flow-op{display:none}}

/* ===== GEO 2.3.1 — Fluxo de Caixa ===== */
.cashflow-section{margin-top:18px}
.cashflow-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:14px}
.cashflow-heading h3{font-size:20px;margin:2px 0 4px;color:var(--navy)}
.cashflow-heading p:not(.eyebrow){margin:0;color:var(--muted);font-size:11px}
.cashflow-heading select{min-width:170px;border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 12px;color:var(--navy);font-weight:700}
.cashflow-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px}
.cashflow-kpis>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px 18px;box-shadow:0 8px 24px rgba(8,31,53,.04)}
.cashflow-kpis span{display:block;color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.8px;margin-bottom:6px}
.cashflow-kpis strong{font-size:22px;color:var(--navy)}
.cashflow-kpis .cash-good strong{color:#16885F}.cashflow-kpis .cash-bad strong{color:#E7463F}
.cashflow-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cash-chart-card{padding:16px!important;min-width:0}
.cash-chart-card header{margin-bottom:4px!important}
.cash-chart{height:285px;min-width:0}
.cash-chart svg{width:100%;height:240px;overflow:visible}
.cash-gridline{stroke:#e8edf1;stroke-width:1}.cash-zero{stroke:#a9b4bd;stroke-width:1.3}
.cash-axis,.cash-xlabel{fill:#6f7d89;font-size:10px;font-family:Arial,sans-serif}
.cash-budget{fill:#26394b}.cash-expense{fill:#f15b2a}.cash-revenue{fill:#506d88}
.cash-balance-line{fill:none;stroke:#d59032;stroke-width:3}.cash-balance-dot{fill:#fff;stroke:#d59032;stroke-width:3}
.cash-legend{display:flex;justify-content:center;gap:18px;font-size:10px;color:#5f6f7e;margin-top:-3px}
.cash-legend span{display:flex;align-items:center;gap:6px}.cash-legend i{width:14px;height:8px;border-radius:2px;display:inline-block}
.cash-legend i.cash-budget{background:#26394b}.cash-legend i.cash-expense{background:#f15b2a}.cash-legend i.cash-revenue{background:#506d88}
.cash-legend i.cash-balance-key{height:3px;background:#d59032}
.cash-empty{height:240px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:11px;border:1px dashed var(--line);border-radius:10px}
@media(max-width:980px){.cashflow-grid{grid-template-columns:1fr}.cashflow-kpis{grid-template-columns:1fr}.cashflow-heading{align-items:flex-start;flex-direction:column}}
@media print{.cashflow-section{break-before:page}.cashflow-grid{grid-template-columns:1fr 1fr}.cash-chart{height:230px}.cash-chart svg{height:190px}}

/* ===== GEO WEB 2.4 — Gantt na aba Prazo ===== */
.gantt-card{margin-top:18px;padding:20px!important;overflow:hidden}
.gantt-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:16px}.gantt-head h3{margin:2px 0 5px;font-size:18px}.gantt-head p{margin:0;color:var(--muted);font-size:10px}.gantt-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:9px;color:var(--muted)}.gantt-legend span{display:flex;align-items:center;gap:5px}.gdot{width:9px;height:9px;border-radius:50%;display:inline-block}.gdot.green{background:#27b486}.gdot.amber{background:#f5a623}.gdot.red{background:#e7463f}.gdot.gray{background:#91a3b2}
.gantt-scroll{overflow-x:auto;border:1px solid #dce4ea;border-radius:12px}.gantt-grid{min-width:1120px}.gantt-months,.gantt-row{display:grid;grid-template-columns:280px repeat(12,1fr);position:relative}.gantt-months{background:#f2f6f8;border-bottom:1px solid #dce4ea;font-size:9px;font-weight:900;color:#60758a;text-transform:uppercase}.gantt-months>div{padding:10px 5px;text-align:center;border-left:1px solid #e3e9ee}.gantt-months>div:first-child{text-align:left;border-left:0;padding-left:14px}.gantt-row{min-height:48px;border-bottom:1px solid #e7edf1;align-items:center}.gantt-row:last-child{border-bottom:0}.gantt-label{padding:9px 14px;font-size:10px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-track{grid-column:2/14;height:100%;position:relative;background:repeating-linear-gradient(to right,transparent 0,transparent calc(8.333% - 1px),#e7edf1 calc(8.333% - 1px),#e7edf1 8.333%)}.gantt-bar{position:absolute;top:14px;height:20px;border-radius:5px;min-width:5px}.gantt-bar.green{background:#27b486}.gantt-bar.amber{background:#f5a623}.gantt-bar.red{background:#e7463f}.gantt-bar.gray{background:#91a3b2}.gantt-bar span{position:absolute;left:calc(100% + 6px);top:2px;font-size:9px;font-weight:900;color:#26394b;white-space:nowrap}
@media(max-width:720px){.gantt-head{align-items:flex-start;flex-direction:column}}
.project-access-list{display:grid;gap:8px;margin:10px 0 16px;padding:12px;border:1px solid #dbe3ea;border-radius:10px;max-height:180px;overflow:auto}.project-access-item{display:flex;gap:8px;align-items:flex-start;font-size:13px}.project-access-item input{margin-top:3px}.finance-permission{display:flex!important;gap:8px;align-items:flex-start;padding:12px;border:1px solid #f0d6c9;border-radius:10px;background:#fff8f4}.user-action-btn.edit{color:#0b5f86}.financial-hidden{display:none!important}

/* GEO 2.5.1 — campo de senha com visualização */
.password-field{position:relative;display:block}
.password-field #login-pass{width:100%;padding-right:48px}
.password-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:0;background:transparent;color:#6f7f91;display:grid;place-items:center;cursor:pointer;border-radius:8px;padding:6px}
.password-toggle:hover,.password-toggle:focus-visible{background:rgba(244,122,11,.10);color:#f47a0b;outline:none}
.password-toggle svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.password-toggle .eye-closed{display:none}
.password-toggle.showing .eye-open{display:none}
.password-toggle.showing .eye-closed{display:block}

/* =========================================================
   GEO 2.6 — MOBILE & RESPONSIVA
   Mantém a experiência desktop e cria navegação própria
   para tablets/celulares sem alterar regras de negócio/D1.
   ========================================================= */
@media (max-width: 760px){
  html,body{width:100%;max-width:100%;overflow-x:hidden}
  body{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
  main{margin-left:0!important;width:100%;min-width:0}

  /* Navegação mobile: barra inferior, sem consumir largura útil */
  .sidebar{
    position:fixed!important;left:0!important;right:0!important;top:auto!important;bottom:0!important;
    width:100%!important;height:calc(66px + env(safe-area-inset-bottom))!important;
    padding:7px 8px env(safe-area-inset-bottom)!important;
    display:block!important;overflow:hidden!important;z-index:100!important;
    box-shadow:0 -10px 30px rgba(7,27,46,.18)!important;
  }
  .sidebar .brand-row,.sidebar .side-bottom{display:none!important}
  .sidebar nav{padding:0!important;display:flex!important;gap:4px!important;overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:none;align-items:stretch}
  .sidebar nav::-webkit-scrollbar{display:none}
  .sidebar .nav{
    flex:0 0 62px!important;min-width:62px!important;height:52px!important;padding:6px 4px!important;margin:0!important;
    border-radius:12px!important;display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;
    gap:3px!important;font-size:18px!important;text-align:center!important;white-space:nowrap
  }
  .sidebar .nav span{display:block!important;font-size:7px!important;line-height:1.05!important;max-width:58px;overflow:hidden;text-overflow:ellipsis;color:inherit}
  .sidebar .nav.active{box-shadow:inset 0 -3px 0 var(--orange)!important}

  /* Cabeçalho mobile */
  .topbar{
    height:auto!important;min-height:104px!important;padding:10px 12px!important;position:sticky!important;top:0!important;
    display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:8px 10px!important;align-items:center!important
  }
  .topbar>div:first-child{min-width:0;grid-column:1/-1}
  .topbar .eyebrow{font-size:8px;margin-bottom:2px}
  .topbar h1{font-size:15px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .top-actions{grid-column:1/-1;width:100%;display:grid!important;grid-template-columns:minmax(0,1fr) auto auto!important;gap:7px!important;align-items:center}
  .top-actions select{width:100%!important;max-width:none!important;min-width:0;padding:9px 8px!important;font-size:11px}
  .current-role-badge{display:none!important}
  .top-actions>.icon-btn{width:38px;height:38px}
  .account-trigger{height:38px;padding:0!important}
  .account-trigger .avatar{width:38px;height:38px;border-radius:10px}
  .account-trigger .chevron{display:none}
  .account-dropdown{position:fixed!important;right:12px!important;top:94px!important;width:min(260px,calc(100vw - 24px))!important}

  /* Conteúdo */
  .view{padding:14px 12px 28px!important;max-width:100%;overflow:hidden}
  .executive-first,.hero-band{min-height:0!important;padding:22px 18px!important;border-radius:16px!important;gap:18px!important}
  .executive-first h2,.hero-band h2{font-size:25px!important;line-height:1.08}
  .executive-first p:last-child,.hero-band p:last-child{font-size:11px!important;line-height:1.5}
  .executive-first .hero-actions,.hero-actions{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%!important;gap:8px!important}
  .hero-actions .btn{min-height:44px;padding:10px 8px!important;font-size:10px!important}
  .hero-actions .status-box{grid-column:1/-1!important;min-width:0!important;width:100%!important;padding:10px 12px!important}

  /* KPIs: duas colunas em celular normal, uma em telas muito estreitas */
  #kpi-grid,.kpi-grid,.kpi-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important;margin-top:10px!important}
  .kpi{padding:13px 12px!important;border-radius:13px!important;min-width:0}
  #kpi-grid .kpi-value,.kpi-value{font-size:clamp(18px,6vw,24px)!important;line-height:1.05;overflow-wrap:anywhere}
  .kpi-head{align-items:flex-start;gap:5px}.kpi-title{font-size:8px}.pill{font-size:7px;padding:4px 6px;white-space:nowrap}.kpi-sub{font-size:8px;line-height:1.35}

  .finance-flow-summary{padding:13px 14px!important;margin:9px 0 0!important;gap:8px!important}
  .finance-flow-summary strong{font-size:18px!important}
  .grid-two,.lower,.cashflow-grid,.cashflow-kpis,.project-grid,.access-grid{grid-template-columns:1fr!important;gap:10px!important}
  .card{padding:14px!important;border-radius:13px!important}.card h3{font-size:14px}
  .svg-chart,.bar-chart{height:220px!important}.bar-chart{gap:10px!important;padding-left:5px!important;padding-right:5px!important}

  /* Projetos: fluxo vertical no lugar do kanban horizontal */
  .section-title{align-items:flex-start!important;gap:10px!important;flex-direction:column!important;margin-bottom:12px!important}
  .section-title h2{font-size:22px!important;line-height:1.1}
  .section-actions{width:100%!important;justify-content:space-between!important}
  .kanban-board{display:flex!important;flex-direction:column!important;overflow:visible!important;gap:10px!important;padding:0!important}
  .kanban-col{width:100%!important;min-height:0!important;padding:10px!important}
  .kanban-col:has(.kanban-count:first-child){}
  .kanban-card{padding:14px!important}

  /* Tabelas e Gantt continuam completos, mas com rolagem controlada */
  .table-card,.schedule-scroll,.measurement-detail,.gantt-scroll{overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;max-width:100%!important}
  .schedule-scroll table{min-width:980px!important}.measurement-detail table{min-width:720px!important}
  .gantt-card{padding:14px!important}.gantt-grid{min-width:980px!important}.gantt-months,.gantt-row{grid-template-columns:220px repeat(12,1fr)!important}
  .gantt-head{gap:10px!important}.gantt-legend{gap:7px!important}

  .cashflow-heading{gap:8px!important}.cashflow-heading select{width:100%!important;min-width:0!important}
  .cash-chart{height:235px!important}.cash-chart svg{height:210px!important}
  .upload-card{padding:28px 16px!important}
  .modal{padding:10px!important}.modal-box{width:100%!important;max-width:100%!important;max-height:88vh!important;border-radius:16px!important}
  .app-footer{margin-bottom:0!important;padding:18px 12px!important}
}

@media (max-width: 390px){
  #kpi-grid,.kpi-grid,.kpi-grid.three{grid-template-columns:1fr!important}
  .executive-first .hero-actions,.hero-actions{grid-template-columns:1fr!important}
  .hero-actions .status-box{grid-column:auto!important}
}


/* =========================================================
   GEO 2.6.2 — MOBILE OPERACIONAL CONSOLIDADA
   Isolado do desktop. A sidebar original fica intacta acima de 760px.
   ========================================================= */
.geo-mobile-dock,.geo-mobile-sheet,.geo-mobile-sheet-backdrop{display:none}
@media (max-width:760px){
  /* A 2.6 já tornou a sidebar em barra inferior. Na consolidada ela é ocultada
     apenas no mobile e substituída pelo dock operacional abaixo. */
  .sidebar{display:none!important}
  body{padding-bottom:calc(76px + env(safe-area-inset-bottom))!important}
  .geo-mobile-dock{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));height:62px;background:#071f31;border:1px solid rgba(255,255,255,.12);border-radius:17px;z-index:220;box-shadow:0 12px 32px rgba(4,24,39,.28);overflow:hidden}
  .geo-mobile-dock button{border:0;background:transparent;color:#cbd6df;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font:inherit;min-width:0;padding:5px 2px}
  .geo-mobile-dock button b{font-size:15px;line-height:1}.geo-mobile-dock button span{font-size:8px;font-weight:800;line-height:1}
  .geo-mobile-dock button.active{color:#fff;background:rgba(241,91,42,.14);box-shadow:inset 0 3px 0 #f15b2a}
  .geo-mobile-sheet-backdrop{position:fixed;inset:0;background:rgba(3,17,28,.48);z-index:230;backdrop-filter:blur(2px)}
  .geo-mobile-sheet-backdrop.open{display:block}
  .geo-mobile-sheet{display:block;position:fixed;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));z-index:240;background:#fff;border-radius:20px;padding:16px;box-shadow:0 20px 60px rgba(3,17,28,.35);transform:translateY(calc(100% + 30px));opacity:0;pointer-events:none;transition:transform .2s ease,opacity .2s ease;max-height:min(74vh,620px);overflow:auto}
  .geo-mobile-sheet.open{transform:translateY(0);opacity:1;pointer-events:auto}
  .geo-mobile-sheet-head{display:flex;justify-content:space-between;align-items:center;padding:2px 2px 14px;border-bottom:1px solid #e2e9ee;margin-bottom:12px}.geo-mobile-sheet-head div{display:flex;flex-direction:column;gap:2px}.geo-mobile-sheet-head small{font-size:8px;font-weight:900;letter-spacing:.14em;color:#f15b2a}.geo-mobile-sheet-head strong{font-size:17px;color:#09243a}.geo-mobile-sheet-head button{width:36px;height:36px;border:0;border-radius:10px;background:#eef3f6;color:#17344a;font-size:23px}
  .geo-mobile-sheet-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.geo-mobile-sheet-grid button{min-height:58px;border:1px solid #dce5eb;background:#f8fafb;border-radius:12px;padding:10px;color:#17344a;font:inherit;font-size:16px;display:flex;align-items:center;gap:9px;text-align:left}.geo-mobile-sheet-grid button span{font-size:10px;font-weight:800}.geo-mobile-sheet-grid button:active{background:#fff2ec;border-color:#f5b298}
}


/* =========================================================
   GEO 2.7.1 — AJUSTES DE HOMOLOGAÇÃO MOBILE
   Corrige ergonomia do Diário sem alterar desktop, D1 ou regras.
   ========================================================= */
@media (max-width:760px){
  /* O modal deve ficar acima do dock operacional para o botão Salvar nunca
     ficar bloqueado pela navegação inferior. */
  #modal-photo{z-index:320!important;padding:8px!important;align-items:flex-start!important;overflow:hidden!important}
  #modal-photo .photo-modal-box{
    width:100%!important;max-width:100%!important;
    max-height:calc(100dvh - 16px)!important;
    margin:0!important;padding:16px!important;border-radius:18px!important;
    overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain;
  }
  #modal-photo .modal-head{margin-bottom:8px!important}
  #modal-photo .modal-head h3{font-size:20px!important;line-height:1.15!important;margin:0!important}
  #modal-photo label{font-size:11px!important;margin-top:8px!important}
  #modal-photo .form-grid{gap:8px!important;margin-top:2px!important}
  #modal-photo input,#modal-photo select,#modal-photo textarea{padding:9px 10px!important;min-height:40px!important}
  #modal-photo #photo-files{padding:7px!important;min-height:42px!important;font-size:11px!important}
  #modal-photo #photo-caption{min-height:66px!important;max-height:86px!important;resize:none!important}
  #modal-photo .note{font-size:9px!important;line-height:1.35!important;margin:8px 0!important}
  #modal-photo #save-photo{min-height:44px!important;margin-top:6px!important;margin-bottom:4px!important}
}
