:root{
  --bg:#f5f8fc;
  --card:#ffffff;
  --text:#071b45;
  --muted:#52627d;
  --line:#dce5f1;
  --primary:#005095;
  --primary-2:#0064ad;
  --blue:#004fc4;
  --green:#009b43;
  --orange:#e84a0a;
  --yellow:#ffcc00;
  --shadow:0 10px 28px rgba(7,27,69,.08);
  --sidebar-width:306px;
}
*{box-sizing:border-box}
body{margin:0;font-family:'Poppins',Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text);font-size:15px}
button,input,label{font:inherit}
button{appearance:none}
.app{display:block;min-height:100vh}

.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);background:linear-gradient(180deg,#005095 0%,#005095 62%,#004986 100%);color:#fff;z-index:40;padding:26px 22px 28px;display:flex;flex-direction:column;box-shadow:14px 0 35px rgba(4,33,72,.20)}
.brand{display:block;margin:18px 0 28px 16px}
.brand-logo{display:block;width:258px;max-width:calc(100% - 2px);height:auto;margin:0 0 18px 0;object-fit:contain}
.brand strong{display:block;font-size:19px;line-height:1.1;color:#fff;font-weight:900;letter-spacing:-.3px}
.brand span{display:block;margin-top:5px;font-size:14px;line-height:1.22;color:#f2f8ff;font-weight:500}
.side-nav{display:flex;flex-direction:column;gap:11px;margin-top:0}
.side-nav .nav{width:100%;border:0;border-radius:10px;background:transparent;color:#fff;text-align:left;padding:14px 16px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:20px;line-height:1.08}
.side-nav .nav.active{background:linear-gradient(90deg,#3b91e7 0%,#2b77d7 100%);box-shadow:0 8px 20px rgba(0,0,0,.08)}
.side-nav .nav:hover{background:rgba(255,255,255,.12)}

.nav-ico{width:26px;height:26px;position:relative;display:inline-block;flex:0 0 26px}
.nav-svg{width:26px;height:26px;flex:0 0 26px;color:currentColor;display:inline-block}
.bars:before{content:"";position:absolute;left:4px;bottom:3px;width:3px;height:11px;border:3px solid currentColor;border-top:0}
.bars:after{content:"";position:absolute;left:13px;bottom:3px;width:3px;height:18px;border:3px solid currentColor;border-top:0;box-shadow:9px 0 0 -3px currentColor,9px 0 0 0 transparent}
.target{border:3px solid currentColor;border-radius:50%}
.target:before{content:"";position:absolute;inset:6px;border:3px solid currentColor;border-radius:50%}
.target:after{content:"";position:absolute;right:-4px;top:-3px;width:10px;height:10px;border-top:3px solid currentColor;border-right:3px solid currentColor;transform:rotate(-15deg)}
.calendar{border:3px solid currentColor;border-radius:2px}
.calendar:before{content:"";position:absolute;left:0;right:0;top:6px;border-top:3px solid currentColor}
.calendar:after{content:"";position:absolute;left:5px;right:5px;top:-6px;height:6px;border-left:3px solid currentColor;border-right:3px solid currentColor}

.save-box{margin-top:auto;border:1px solid rgba(255,255,255,.38);background:rgba(255,255,255,.09);border-radius:14px;padding:19px 17px;display:flex;align-items:flex-start;gap:12px}
.save-box strong{display:block;color:#fff;font-size:16px;font-weight:900}
.save-box div>span{display:block;color:#fff;font-size:16px;line-height:1.35;margin-top:11px}
.cloud-ico{width:28px;height:20px;display:inline-block;position:relative;margin-top:3px}
.cloud-ico:before{content:"☁";font-size:28px;color:#fff;position:absolute;left:0;top:-9px}

main{margin-left:var(--sidebar-width);padding:40px 44px 34px 42px;min-height:100vh;overflow:auto}
.topbar{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:35px}
.topbar h2{margin:0;font-size:37px;line-height:1;color:#005095;font-weight:900;letter-spacing:-1.1px}
.topbar p{margin:13px 0 0;color:var(--muted);font-size:18px}
.screen{display:none}
.screen.active{display:block}

.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(210px,1fr));gap:15px;margin-bottom:28px}
.kpi,.panel{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
.kpi{min-height:118px;padding:25px 22px;display:flex;align-items:center;justify-content:space-between}
.kpi span,.mini-item span{display:block;color:var(--muted);font-size:16px;margin-bottom:11px}
.kpi strong{font-size:26px;color:var(--blue);font-weight:900;letter-spacing:-.5px}
.circle{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;flex:0 0 58px;font-style:normal}
.circle.blue{background:#edf3fc;color:#004fc4}.circle.green{background:#e6f7ef;color:#0a9f45}
.circle span{font-size:28px;margin:0;color:inherit}
.target-mini:before{content:"◎"}
.money-mini:before{content:"$";font-weight:900;border:3px solid currentColor;border-radius:50%;padding:0 5px;font-size:20px}
.cart-mini:before{content:"🛒"}
.trend-mini:before{content:"↗";font-weight:900;font-size:34px}
.calendar-mini:before{content:"▦";font-weight:900}
.user-mini:before{content:"♙";font-size:31px}
.trophy-mini:before{content:"♜";font-size:30px}

.progress-panel{padding:34px 26px 38px;margin-bottom:28px}
.panel-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:21px}
.panel h3{margin:0;font-size:24px;color:#005095;font-weight:900;letter-spacing:-.3px}
.progress-head strong{font-size:25px;color:var(--blue);font-weight:900}
.hidden-tag{display:none}
.warning{color:#e30613;font-weight:700;font-size:13px}
.progress{height:17px;background:#d5e3f2;border-radius:99px;overflow:hidden;margin:0 0 39px}
.progress div{height:100%;width:0;background:#0058d2;border-radius:99px;transition:.2s}
.mini-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;align-items:center}
.mini-item{display:grid;grid-template-columns:58px 1fr;column-gap:20px;align-items:center;padding:0 28px;border-right:1px solid var(--line)}
.mini-item:first-child{padding-left:5px}
.mini-item:last-child{border-right:0}
.mini-item em{grid-row:1/3}
.mini-item span{margin:0 0 7px;font-size:16px}
.mini-item strong{font-size:23px;color:var(--blue);font-weight:900;letter-spacing:-.4px}

.progress-panel .mini-grid{grid-template-columns:repeat(3,minmax(260px,320px));justify-content:center}
.progress-panel .mini-item:first-child{padding-left:28px}
.progress-panel .mini-item:last-child{padding-right:28px}

.ranking-panel{padding:28px 26px 14px}
.ranking-wrap{border:1px solid var(--line);border-radius:13px;overflow:hidden}
.table-wrap{width:100%;overflow-x:auto}
table{width:100%;border-collapse:collapse;background:#fff}
th{background:#f5f7fa;color:#35425a;text-align:left;font-size:15px;font-weight:800}
th,td{border-bottom:1px solid var(--line);padding:18px 18px;white-space:nowrap}
.ranking-table td{font-size:18px;color:#061b3d;height:68px}
.ranking-table tbody tr:last-child td{border-bottom:0}
.rank-badge{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-weight:900;color:#0a1b3f;background:#edf1f7}
.rank-badge.r1{background:#ffcc00}.rank-badge.r2{background:#cbd4e0;color:#fff}.rank-badge.r3{background:#df6c29;color:#fff}
.val-blue{color:#004fc4!important;font-weight:900}.val-green{color:#008e3d!important;font-weight:900}.val-orange{color:#e5430d!important;font-weight:900}.negative{color:#008e3d!important;font-weight:900}.positive{color:#e5430d!important;font-weight:900}

.form-panel,.panel:not(.progress-panel):not(.ranking-panel){padding:24px;margin-bottom:22px}
.form-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:14px}
.form-grid label{font-weight:800;color:var(--text);font-size:13px}
.form-grid input{display:block;width:100%;margin-top:8px;border:1px solid var(--line);border-radius:10px;padding:12px}
td input{width:100%;min-width:95px;border:1px solid var(--line);border-radius:8px;padding:9px;background:#fff}
.primary,.secondary,.danger,.remove{border:0;border-radius:8px;padding:11px 14px;cursor:pointer;font-weight:700}
.primary{background:var(--green);color:#fff}
.secondary{background:#fff;border:1px solid var(--line);color:var(--primary)}
.remove{background:#fff1f1;color:#e30613}
.hint{color:var(--muted);margin-top:-4px}

.daily-wrap{max-height:none!important;overflow-x:auto!important;overflow-y:visible!important;display:block;border-radius:0;margin-top:15px}
.daily-wrap table{width:100%;min-width:1180px;table-layout:fixed;border-collapse:collapse}
.daily-wrap th,.daily-wrap td{height:62px;padding:13px 18px;vertical-align:middle;white-space:nowrap}
.daily-wrap th:first-child,.daily-wrap td:first-child{position:static!important;left:auto!important;z-index:auto!important;width:92px;min-width:92px;max-width:92px;text-align:left;background:#fff}
.daily-wrap th:first-child{background:#f5f7fa}
.daily-wrap td input{display:block;width:100%;min-width:0!important;height:38px;margin:0}
#dailyTable tbody tr:last-child td{border-bottom:0}

.mobile-nav{display:none}

@media(max-width:1200px){
  .kpi-grid{grid-template-columns:repeat(2,1fr)}
  .mini-grid{grid-template-columns:repeat(2,1fr);gap:18px}
  .mini-item{border-right:0}
  .topbar{display:block}
}

@media(max-width:980px){
  .sidebar{display:none}

  /* Espaço no topo para o menu fixo mobile */
  main{
    margin-left:0;
    padding:96px 16px 24px;
  }

  .topbar{margin-bottom:24px}
  .topbar h2{font-size:32px}
  .topbar p{font-size:16px;margin-top:10px}

  .kpi-grid,.mini-grid,.form-grid{grid-template-columns:1fr}
  .mini-item{padding:0;border-right:0}
  .progress-panel{padding:26px 18px 26px}
  .ranking-panel,.form-panel,.panel:not(.progress-panel):not(.ranking-panel){padding:18px}
  th,td{padding:14px 12px}

  /* Menu mobile fixo no topo */
  .mobile-nav{
    position:fixed;
    left:0;
    right:0;
    top:0;
    bottom:auto;
    z-index:80;
    display:flex;
    align-items:center;
    gap:8px;
    min-height:72px;
    background:linear-gradient(180deg,#005095 0%,#004986 100%);
    padding:10px 12px;
    box-shadow:0 10px 28px rgba(4,33,72,.18);
  }

  .mobile-brand{
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:64px;
    max-width:64px;
    padding-right:8px;
    border-right:1px solid rgba(255,255,255,.24);
    flex:0 0 64px;
  }

  .mobile-brand img{
    width:48px;
    height:48px;
    object-fit:contain;
    flex:0 0 48px;
  }


  .mobile-nav .nav{
    flex:1;
    min-width:0;
    border:0;
    background:transparent;
    color:#fff;
    border-radius:10px;
    padding:13px 6px;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
  }

  .mobile-nav .nav.active{
    background:rgba(255,255,255,.15);
  }

  /* No mobile, as seções ficam somente com texto */
  .mobile-nav .nav-ico,
  .mobile-nav .nav-svg{
    display:none!important;
  }

  .mobile-nav .nav small{
    display:block;
    font-size:12px;
    line-height:1.1;
    font-weight:900;
    color:#fff;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    max-width:100%;
  }
}

.rank-empty{display:grid;place-items:center;width:38px;height:38px;color:#9aa8bd;font-weight:900;font-size:20px}


/* CTAs de impressão */
.topbar-actions{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:12px;
  min-width:260px;
}
.print-cta{
  min-width:210px;
  height:46px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#ffffff;
  color:#005095;
  font-weight:900;
  cursor:pointer;
  padding:0 18px;
  box-shadow:0 8px 18px rgba(7,27,69,.05);
  transition:transform .12s ease, box-shadow .12s ease, background .12s ease;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
}
.print-cta:hover{
  background:#f8fbff;
  box-shadow:0 10px 22px rgba(7,27,69,.08);
}
.print-cta:active{transform:scale(.98)}
.hidden-print-cta{display:none!important}

@media(max-width:980px){
  .topbar{
    display:flex;
    flex-direction:column;
    gap:20px;
  }
  .topbar-actions{
    width:100%;
    min-width:0;
    justify-content:flex-start;
  }
  .print-cta{
    width:100%;
    min-width:0;
  }
}

/* Impressão em PDF pelo navegador */
@page{
  size:A4 landscape;
  margin:8mm;
}

@media print{
  html,body{
    background:#fff!important;
    color:#000!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }

  .sidebar,
  .mobile-nav,
  .topbar-actions,
  .save-box,
  .secondary,
  .primary,
  .remove{
    display:none!important;
  }

  main{
    margin-left:0!important;
    padding:0!important;
    overflow:visible!important;
  }

  .topbar{
    display:block!important;
    margin-bottom:18px!important;
  }

  .topbar h2{
    font-size:28px!important;
    margin:0 0 6px!important;
  }

  .topbar p{
    font-size:14px!important;
    margin:0!important;
  }

  .screen:not(.active){
    display:none!important;
  }

  .kpi-grid{
    grid-template-columns:repeat(4,1fr)!important;
    gap:10px!important;
    margin-bottom:14px!important;
  }

  .kpi{
    min-height:82px!important;
    padding:14px!important;
    box-shadow:none!important;
  }

  .kpi strong{
    font-size:18px!important;
  }

  .kpi span,
  .mini-item span{
    font-size:12px!important;
    margin-bottom:5px!important;
  }

  .circle{
    width:40px!important;
    height:40px!important;
    flex-basis:40px!important;
  }

  .panel{
    box-shadow:none!important;
    break-inside:avoid;
  }

  .progress-panel{
    padding:18px!important;
    margin-bottom:14px!important;
  }

  .ranking-panel,
  .form-panel,
  .panel:not(.progress-panel):not(.ranking-panel){
    padding:18px!important;
    margin-bottom:14px!important;
  }

  .panel h3{
    font-size:18px!important;
  }

  .progress{
    height:10px!important;
    margin-bottom:18px!important;
  }

  .mini-grid{
    grid-template-columns:repeat(4,1fr)!important;
  }

  .mini-item{
    grid-template-columns:40px 1fr!important;
    column-gap:10px!important;
    padding:0 10px!important;
    border-right:1px solid var(--line)!important;
  }

  .mini-item:last-child{border-right:0!important}
  .mini-item strong{font-size:15px!important}

  .table-wrap,
  .daily-wrap{
    overflow:visible!important;
    max-height:none!important;
  }

  table,
  .daily-wrap table{
    width:100%!important;
    min-width:0!important;
    table-layout:fixed!important;
  }

  th,td{
    padding:8px!important;
    font-size:10px!important;
    white-space:normal!important;
  }

  .ranking-table td{
    height:auto!important;
    font-size:11px!important;
  }

  .rank-badge,
  .rank-empty{
    width:24px!important;
    height:24px!important;
    font-size:11px!important;
  }

  td input{
    border:0!important;
    padding:0!important;
    height:auto!important;
    min-width:0!important;
    font-size:10px!important;
    color:#000!important;
    background:transparent!important;
  }

  .daily-wrap th:first-child,
  .daily-wrap td:first-child{
    width:48px!important;
    min-width:48px!important;
    max-width:48px!important;
  }
}

.print-cta .btn-icon{width:16px;height:16px;flex:0 0 16px;display:inline-block;color:currentColor}
.print-cta span{display:inline-block;line-height:1}

/* Salvamento automático removido da barra lateral */
.sidebar .save-box{display:none!important}


/* Ajuste de cor dos títulos solicitados */
.topbar h2,
.panel h3,
.print-cta,
.print-cta .btn-icon,
#printCurrentBtn {
  color:#005095;
}






/* Tela de login */
body.auth-locked{
  overflow:hidden;
}

body.auth-locked .sidebar,
body.auth-locked .app,
body.auth-locked .mobile-nav{
  display:none!important;
}

.auth-screen{
  position:fixed;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:40px 46px;
  background:
    radial-gradient(circle at 18% 18%, rgba(209,227,249,.80) 0 15%, transparent 15.2%),
    radial-gradient(circle at 100% 10%, rgba(222,235,251,.78) 0 9%, transparent 9.2%),
    radial-gradient(circle at 6% 92%, rgba(220,233,250,.72) 0 5.4%, transparent 5.6%),
    linear-gradient(180deg,#f8fbff 0%, #f4f8fd 100%);
  overflow:hidden;
}
.auth-screen::before,
.auth-screen::after{
  content:"";
  position:absolute;
  pointer-events:none;
}
.auth-screen::before{
  width:520px;
  height:220px;
  left:-170px;
  top:-8px;
  border:2px solid rgba(116,172,255,.70);
  border-radius:50%;
  opacity:.78;
}
.auth-screen::after{
  width:840px;
  height:260px;
  right:-240px;
  bottom:-115px;
  border-radius:50%;
  background:rgba(221,233,249,.58);
  transform:rotate(-12deg);
}
.auth-bg-pattern{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
}
.auth-pattern-icon,
.auth-pattern-dots{
  position:absolute;
  color:#bad0f1;
  opacity:.82;
}
.auth-pattern-icon svg{display:block;width:100%;height:100%;}
.auth-pattern-dots{
  font-size:32px;
  line-height:1;
  letter-spacing:10px;
  font-weight:700;
  color:#bfd3f2;
}
.pattern-pill{width:42px;height:42px;}
.pattern-blister{width:44px;height:44px;}
.pattern-bottle{width:42px;height:42px;}
.pattern-heart{width:52px;height:52px;}
.pattern-plus{width:46px;height:46px;}
.pattern-pill-a{left:44px;top:54px;transform:rotate(-6deg);}
.pattern-blister-a{left:298px;top:32px;}
.pattern-bottle-a{left:565px;top:26px;}
.pattern-dots-a{left:182px;top:32px;}
.pattern-dots-b{left:861px;top:42px;}
.pattern-heart-a{left:1060px;top:28px;}
.pattern-dots-c{left:1260px;top:34px;}
.pattern-plus-a{right:48px;top:22px;}
.pattern-bottle-b{left:18px;top:342px;}
.pattern-blister-b{right:24px;top:258px;transform:rotate(12deg);}
.pattern-plus-b{left:34px;bottom:210px;}
.pattern-pill-b{left:22px;bottom:16px;transform:rotate(12deg);}
.pattern-dots-d{left:610px;bottom:48px;}
.pattern-heart-b{right:54px;bottom:108px;opacity:.30;transform:scale(1.75);}
.auth-shell{
  position:relative;
  z-index:1;
  width:min(1460px, calc(100vw - 90px));
  max-width:1460px;
  height:min(740px, calc(100dvh - 80px));
  min-height:650px;
  display:grid;
  grid-template-columns:39.5% 60.5%;
  background:#fff;
  border:1px solid rgba(220,232,246,.92);
  border-radius:30px;
  overflow:hidden;
  box-shadow:0 22px 62px rgba(54,91,143,.14);
}
.auth-left{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:56px 70px 56px 74px;
  background:
    radial-gradient(circle at -4% 104%, rgba(219,232,250,.88) 0 18%, transparent 18.2%),
    radial-gradient(circle at 10% 112%, rgba(231,239,251,.95) 0 28%, transparent 28.2%),
    linear-gradient(180deg,#ffffff 0%,#ffffff 100%);
}
.auth-left::before,
.auth-left::after{
  content:"";
  position:absolute;
  pointer-events:none;
  border-radius:50%;
}
.auth-left::before{
  left:-92px;
  bottom:-114px;
  width:390px;
  height:286px;
  border:2px solid rgba(207,223,245,.72);
}
.auth-left::after{
  left:14px;
  bottom:-138px;
  width:354px;
  height:248px;
  border:2px solid rgba(218,231,248,.92);
}
.auth-left-inner{
  position:relative;
  z-index:1;
  width:100%;
  max-width:470px;
}
.auth-form{display:none;}
.auth-form.active{display:block;}
.auth-top-accent{
  display:block;
  width:68px;
  height:12px;
  margin:0 0 30px;
  border-radius:999px;
  background:linear-gradient(90deg,#68b5ff 0%, #90d1ff 100%);
}
.auth-form h1{
  margin:0 0 18px;
  color:#0f2c7d;
  font-size:66px;
  line-height:.98;
  font-weight:900;
  letter-spacing:-.055em;
}
.auth-form h1 span{color:#1e62ff;}
.auth-form p{
  margin:0 0 60px;
  color:#334d88;
  font-size:20px;
  line-height:1.35;
  font-weight:500;
}
.auth-field{display:block;margin:0 0 28px;}
.auth-label{
  display:block;
  margin:0 0 12px;
  color:#0f2c7d;
  font-size:18px;
  line-height:1.2;
  font-weight:800;
}
.auth-input-shell{
  display:flex;
  align-items:center;
  gap:16px;
  width:100%;
  height:70px;
  padding:0 24px;
  border:1.5px solid #d8e3f4;
  border-radius:17px;
  background:linear-gradient(180deg,#f4f8fd 0%,#eef4fc 100%);
  transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.auth-input-shell:focus-within{
  border-color:#82b6ff;
  box-shadow:0 0 0 4px rgba(37,101,255,.09);
  background:#f8fbff;
}
.auth-input-icon{
  width:34px;
  height:34px;
  flex:0 0 34px;
  display:grid;
  place-items:center;
  color:#1c5cf3;
}
.auth-input-icon svg{width:28px;height:28px;}
.auth-form input{
  min-width:0;
  flex:1 1 auto;
  height:100%;
  margin:0;
  padding:0 0 0 14px;
  border:0;
  outline:0;
  border-radius:0;
  background:transparent;
  color:#111827;
  font:600 18px/1.2 'Poppins',Arial,sans-serif;
  box-shadow:none!important;
}
.auth-form input::placeholder{color:#9aa9c0;font-weight:500;}
.password-wrap{position:relative;}
.password-toggle{
  width:40px;
  height:40px;
  flex:0 0 40px;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  background:transparent;
  color:#1d5df4;
  cursor:pointer;
  margin-left:8px;
}

.password-toggle svg{width:28px;height:28px;}
.auth-submit{
  width:100%;
  height:72px;
  margin-top:10px;
  border:0;
  border-radius:18px;
  background:linear-gradient(90deg,#1035a6 0%,#0453d3 100%);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  font-size:22px;
  font-weight:800;
  box-shadow:0 16px 30px rgba(16,53,166,.18);
}
.auth-submit:hover{
  background:linear-gradient(90deg,#0e2f97 0%,#024ac2 100%);
  box-shadow:0 18px 34px rgba(16,53,166,.22);
}
.auth-submit-arrow{width:28px;height:28px;}
.auth-message{min-height:20px;margin-top:10px;}
.auth-link{margin-top:8px;}
.auth-visual{
  position:relative;
  min-width:0;
  min-height:0;
  padding:0;
  background:#063995;
  overflow:hidden;
}
.auth-art-picture,
.auth-art-image{
  display:block;
  width:100%;
  height:100%;
}
.auth-art-image{
  object-fit:cover;
  object-position:center center;
}

.auth-register-form p{margin-bottom:28px;}
.auth-register-form .auth-field{margin-bottom:16px;}
.auth-register-form .auth-input-shell{height:58px;}

@media(min-width:981px){
  .auth-visual{border-radius:0 30px 30px 0;}
}

@media(max-width:980px){
  .auth-screen{
    padding:0;
    align-items:stretch;
    justify-content:stretch;
    overflow-y:auto;
    background:#eef5fc;
  }
  .auth-screen::before,
  .auth-screen::after,
  .auth-bg-pattern{display:none;}
  .auth-shell{
    width:100%;
    max-width:none;
    min-height:100dvh;
    height:auto;
    display:flex;
    flex-direction:column;
    border:0;
    border-radius:0;
    box-shadow:none;
    overflow:visible;
    background:#fff;
  }
  .auth-visual{
    order:1;
    width:100%;
    height:45dvh;
    min-height:320px;
    max-height:560px;
    border-radius:0;
    overflow:hidden;
  }
  .auth-art-image{
    object-fit:cover;
    object-position:center 46%;
  }
  .auth-left{
    order:2;
    width:100%;
    margin-top:-30px;
    padding:40px 30px 46px;
    border-radius:30px 30px 0 0!important;
    background:
      radial-gradient(circle at 100% 110%, rgba(225,236,250,.78) 0 18%, transparent 18.2%),
      radial-gradient(circle at -10% 110%, rgba(220,233,249,.68) 0 18%, transparent 18.2%),
      #fff;
    box-shadow:0 -14px 32px rgba(25,70,130,.10);
  }
  .auth-left::before,
  .auth-left::after{display:none;}
  .auth-left-inner{max-width:620px;}
  .auth-form h1{text-align:left;font-size:46px;}
  .auth-form p{text-align:left;font-size:16px;margin-bottom:30px;}
  .auth-top-accent{margin-bottom:20px;}
}

@media(max-width:640px){
  .auth-screen{
    padding:0;
  }

  .auth-shell{
    width:100%;
    min-height:100vh;
    border-radius:0;
  }

  .auth-visual{
    min-height:170px;
    padding:18px;
  }

  .auth-visual-banner{
    width:230px;
  }

  .auth-left{
    padding:24px 18px 32px;
  }

  .auth-form h1{
    font-size:30px;
  }
}

@media print{
  .auth-screen,
  .logout-btn{
    display:none!important;
  }
}

@media(max-width:640px){
  .auth-shell,.auth-left,.auth-visual,.auth-visual-banner{border-radius:0 !important;}
}


/* Correção mobile: deixar "Criar login" sempre visível */
@media(max-width:640px){
  body.auth-locked{
    overflow:hidden;
  }

  .auth-screen{
    overflow-y:auto!important;
    align-items:flex-start!important;
    min-height:100dvh;
    height:100dvh;
  }

  .auth-shell{
    min-height:auto!important;
  }

  .auth-visual{
    min-height:145px!important;
  }

  .auth-left{
    padding:20px 22px 24px!important;
  }

  .auth-form h1{
    font-size:32px!important;
    margin-bottom:8px!important;
  }

  .auth-form p{
    margin-bottom:18px!important;
    font-size:15px!important;
  }

  .auth-form label{
    margin-bottom:12px!important;
  }

  .auth-form input{
    height:52px!important;
  }

  .auth-submit{
    height:54px!important;
    margin-top:4px!important;
  }

  .auth-link{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    margin-top:14px!important;
    padding:10px 0 16px!important;
    position:relative!important;
    z-index:5!important;
    color:#005095!important;
    font-weight:900!important;
  }
}

/* Menu lateral sem negrito */
.side-nav .nav{
  font-weight:600!important;
}
.side-nav .nav span:last-child{
  font-weight:600!important;
}

/* Campos calculados automaticamente */
.auto-field{
  background:#f3f7fb!important;
  color:#005095!important;
  font-weight:700!important;
  cursor:not-allowed!important;
}

/* Dropdown de folga nos lançamentos */
.day-cell{
  overflow:visible!important;
}
.day-cell-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-width:76px;
}
.day-menu{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.day-menu-btn{
  width:26px;
  height:26px;
  border:1px solid #dce5f1;
  border-radius:7px;
  background:#ffffff;
  color:#005095;
  font-size:15px;
  font-weight:900;
  line-height:1;
  cursor:pointer;
  display:grid;
  place-items:center;
}
.day-menu-btn:hover{
  background:#f3f7fb;
}
.day-menu-list{
  position:absolute;
  top:32px;
  left:50%;
  transform:translateX(-50%);
  display:none;
  min-width:128px;
  padding:6px;
  background:#fff;
  border:1px solid #dce5f1;
  border-radius:10px;
  box-shadow:0 14px 28px rgba(7,27,69,.16);
  z-index:30;
}
.day-menu.open .day-menu-list{
  display:block;
}
.day-menu-option{
  width:100%;
  border:0;
  background:#fff;
  color:#005095;
  font-weight:800;
  text-align:left;
  padding:9px 10px;
  border-radius:8px;
  cursor:pointer;
}
.day-menu-option:hover{
  background:#eef5ff;
}
.day-off-row td{
  background:#f8fbff;
}
.day-off-input{
  background:#eef3f8!important;
  color:#005095!important;
  font-weight:800!important;
  text-transform:lowercase;
  cursor:not-allowed!important;
  text-align:center;
}
.daily-wrap,
.daily-wrap table,
.daily-wrap tbody,
.daily-wrap tr{
  overflow:visible!important;
}


/* Menu suspenso por campo de lançamento */
.input-with-menu{position:relative;display:flex;align-items:center;gap:8px}
.input-with-menu input{padding-right:12px}
.cell-menu{position:relative;flex:0 0 auto}
.cell-menu-btn{width:28px;height:28px;border:1px solid #dce5f1;border-radius:7px;background:#ffffff;color:#005095;font-size:15px;font-weight:900;line-height:1;cursor:pointer;display:grid;place-items:center}
.cell-menu-btn:hover{background:#f3f7fb}
.cell-menu-list{position:absolute;top:34px;right:0;display:none;min-width:140px;padding:6px;background:#fff;border:1px solid #dce5f1;border-radius:10px;box-shadow:0 14px 28px rgba(7,27,69,.16);z-index:35}
.cell-menu.open .cell-menu-list{display:block}
.cell-menu-option{width:100%;border:0;background:#fff;color:#005095;font-weight:700;text-align:left;padding:9px 10px;border-radius:8px;cursor:pointer}
.cell-menu-option:hover{background:#eef5ff}
.cell-menu-option.clear{color:#d23a3a}
.status-input{font-weight:800!important;text-align:center;cursor:not-allowed!important;text-transform:capitalize}
.status-folga{background:#fff6bf!important;border-color:#f0d463!important;color:#8a6d00!important}
.status-falta{background:#ffe0e0!important;border-color:#f1aaaa!important;color:#b42318!important}
.status-atestado{background:#f0e3ff!important;border-color:#ccb1ef!important;color:#6f42c1!important}
.status-ferias{background:#dcfce7!important;border-color:#86d69e!important;color:#166534!important;font-weight:800!important}
.status-feriado{background:#dbeafe!important;border-color:#7fb1f0!important;color:#0754a6!important;font-weight:800!important}
.status-desligado{background:#fff0e8!important;border-color:#e84a0a!important;color:#b83700!important;font-weight:800!important}
.status-option-feriado{color:#005095!important;background:#fff!important}
.status-option-feriado:hover{color:#003a6e!important;background:#eef5ff!important}
.status-option-ferias{color:#005095!important;background:#fff!important}
.status-option-ferias:hover{color:#003a6e!important;background:#eef5ff!important}
.status-option-desligado{color:#005095!important;background:#fff!important}
.status-option-desligado:hover{color:#003a6e!important;background:#eef5ff!important}
.day-off-row .status-folga{background:#fff2a6!important}

/* ajustes dropdown por campo */

.day-cell-inner{justify-content:flex-start!important;min-width:auto!important}
.input-with-menu{position:relative;display:flex;align-items:center;gap:8px}
.input-with-menu input{flex:1 1 auto;padding-right:12px}
.cell-menu{position:relative;flex:0 0 auto}
.cell-menu-btn{transition:background .18s ease, border-color .18s ease, transform .18s ease}
.cell-menu-btn:hover{background:#eef5ff;border-color:#bcd0ea;transform:translateY(-1px)}
.cell-menu-list{position:absolute;top:34px;right:0;display:none;flex-direction:column;gap:4px;min-width:148px;padding:8px;background:#fff;border:1px solid #dce5f1;border-radius:10px;box-shadow:0 14px 28px rgba(7,27,69,.16);z-index:35}
.cell-menu.open .cell-menu-list{display:flex}
.cell-menu-option{display:block;width:100%;border:0;background:#fff;color:#005095;font-weight:700;text-align:left;padding:10px 12px;border-radius:8px;cursor:pointer;transition:background .18s ease,color .18s ease, transform .18s ease}
.cell-menu-option:hover{background:#eef5ff;color:#003a6e;transform:translateX(2px)}
.cell-menu-option.clear:hover{background:#fff1f1;color:#b42318}

.day-menu{display:none!important}

/* CTA de comprovantes */
#printVouchersBtn{
  min-width:230px;
}
@media(max-width:980px){
  #printVouchersBtn{
    width:100%;
  }
}
@media print{
  #printVouchersBtn{
    display:none!important;
  }
}

/* Olhinho senha */
.password-wrap{
  position:relative;
  width:100%;
  margin-top:8px;
}

.password-wrap input{
  margin-top:0!important;
  padding-right:54px!important;
}

.password-toggle{
  position:absolute;
  top:50%;
  right:14px;
  transform:translateY(-50%);
  width:34px;
  height:34px;
  border:0;
  border-radius:999px;
  background:transparent;
  color:#005095;
  display:grid;
  place-items:center;
  cursor:pointer;
  padding:0;
  transition:background .15s ease, color .15s ease;
}

.password-toggle:hover{
  background:#eef5ff;
  color:#003f77;
}

.password-toggle svg{
  width:20px;
  height:20px;
  pointer-events:none;
}

.password-toggle .eye-closed{
  display:none;
}

.password-toggle.is-visible .eye-open{
  display:none;
}

.password-toggle.is-visible .eye-closed{
  display:block;
}

/* Botão atualizar nuvem */
#refreshCloudBtn{
  min-width:170px;
}
#refreshCloudBtn:disabled{
  opacity:.65;
  cursor:wait;
}
@media(max-width:980px){
  #refreshCloudBtn{
    width:100%;
  }
}
@media print{
  #refreshCloudBtn{
    display:none!important;
  }
}

/* ===== Tooltip de projeção ===== */
.mini-label-wrap{
  position:relative;
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.mini-label-wrap > span{
  margin:0;
}
.tooltip-toggle{
  width:24px;
  height:24px;
  border:0;
  border-radius:50%;
  background:linear-gradient(135deg,#005095 0%,#2f7fe0 100%);
  color:#ffffff;
  font-size:12px;
  font-weight:800;
  line-height:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  padding:0;
  flex:0 0 24px;
  box-shadow:0 8px 18px rgba(0,80,149,.18);
  transition:transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.tooltip-toggle:hover,
.tooltip-toggle:focus-visible{
  transform:translateY(-1px) scale(1.03);
  box-shadow:0 10px 22px rgba(0,80,149,.24);
  filter:brightness(1.05);
  outline:none;
}
.tooltip-bubble{
  display:none;
  position:absolute;
  left:0;
  top:calc(100% + 10px);
  width:min(320px, 82vw);
  padding:12px 14px;
  border-radius:12px;
  background:#0f4f93;
  color:#ffffff;
  font-size:13px;
  line-height:1.45;
  box-shadow:0 16px 34px rgba(7,27,69,.22);
  z-index:25;
}
.tooltip-bubble::before{
  content:"";
  position:absolute;
  left:14px;
  top:-7px;
  width:14px;
  height:14px;
  background:#0f4f93;
  transform:rotate(45deg);
}
.tooltip-item.is-open .tooltip-bubble{
  display:block;
}

@media (hover:hover){
  .tooltip-toggle:hover + .tooltip-bubble,
  .tooltip-toggle:focus-visible + .tooltip-bubble{
    display:block;
  }
}

/* ===== Robustez geral de layout ===== */
html,body{
  max-width:100%;
  overflow-x:hidden;
}
body{
  overflow-x:hidden;
}
main,
.screen,
.panel,
.kpi,
.table-wrap,
.daily-wrap,
.ranking-wrap,
.form-grid,
.topbar,
.topbar-actions,
.panel-head{
  max-width:100%;
}
.panel,
.kpi,
.form-grid > *,
.topbar > *,
.panel-head > *,
.mini-item,
.auth-left,
.auth-left-inner{
  min-width:0;
}
input,
button,
select,
textarea{
  max-width:100%;
}
.form-grid label,
.form-grid input,
.table-wrap,
.daily-wrap,
.ranking-wrap{
  min-width:0;
}
.table-wrap,
.daily-wrap{
  -webkit-overflow-scrolling:touch;
}

/* ===== Responsividade principal ===== */
@media(max-width:980px){
  :root{
    --mobile-nav-height:92px;
  }

  main{
    width:100%;
    max-width:100vw;
    margin-left:0;
    padding:calc(var(--mobile-nav-height) + env(safe-area-inset-top) + 18px) 12px 24px;
    overflow-x:hidden;
  }

  .mobile-nav{
    top:0;
    padding:calc(env(safe-area-inset-top) + 8px) 10px 10px;
    min-height:var(--mobile-nav-height);
    gap:6px;
  }

  .mobile-brand{
    min-width:56px;
    max-width:56px;
    flex:0 0 56px;
    padding-right:6px;
  }

  .mobile-brand img{
    width:42px;
    height:42px;
    object-fit:contain;
  }

  .mobile-nav .nav{
    min-width:0;
    padding:12px 4px;
    border-radius:12px;
  }

  .mobile-nav .nav small{
    font-size:11px;
    line-height:1.15;
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
    text-align:center;
    word-break:break-word;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
  }

  .topbar{
    display:flex;
    flex-direction:column;
    gap:20px;
    margin-bottom:18px;
  }

  .topbar h2{
    font-size:28px;
    line-height:1.05;
    word-break:break-word;
  }

  .topbar p{
    margin-top:8px;
    font-size:15px;
    line-height:1.45;
  }

  .topbar-actions{
    width:100%;
    min-width:0;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
  }

  .logout-btn,
  .print-cta,
  #refreshCloudBtn{
    width:100%;
  }

  .kpi-grid,
  .form-grid,
  .mini-grid{
    grid-template-columns:1fr;
  }

  .kpi{
    min-height:auto;
    padding:18px 16px;
    gap:12px;
  }

  .kpi strong{
    font-size:22px;
  }

  .progress-panel{
    padding:20px 16px 22px;
  }

  .progress{
    margin-bottom:24px;
  }

  .panel,
  .ranking-panel,
  .form-panel,
  .panel:not(.progress-panel):not(.ranking-panel){
    padding:16px;
    border-radius:16px;
  }

  .panel-head{
    flex-direction:column;
    align-items:stretch;
    gap:12px;
    margin-bottom:16px;
  }

  .panel h3{
    font-size:18px;
    line-height:1.2;
  }

  .panel-head .primary,
  .panel-head .secondary,
  .panel-head .remove{
    width:100%;
  }

  .mini-item{
    grid-template-columns:48px 1fr;
    column-gap:20px;
    padding:0!important;
    border-right:0;
  }

  .mini-item em{
    width:48px;
    height:48px;
    flex-basis:48px;
  }

  .mini-item strong{
    font-size:20px;
    line-height:1.2;
    word-break:break-word;
  }

  .mini-item span{
    font-size:15px;
    line-height:1.35;
  }

  .table-wrap,
  .daily-wrap,
  .ranking-wrap{
    width:100%;
    max-width:100%;
    overflow-x:auto!important;
    overflow-y:visible!important;
  }

  table{
    min-width:100%;
  }

  .ranking-table{
    min-width:860px;
  }

  .daily-wrap table{
    min-width:860px;
  }

  .daily-wrap th,
  .daily-wrap td{
    padding:10px 8px;
  }

  .daily-wrap th:first-child,
  .daily-wrap td:first-child{
    width:72px;
    min-width:72px;
    max-width:72px;
    padding-left:10px;
  }

  .daily-wrap td input{
    height:36px;
  }

  .input-with-menu{
    gap:6px;
  }

  .cell-menu-btn{
    width:30px;
    height:30px;
  }

  .cell-menu-list{
    right:auto;
    left:0;
  }

  .tooltip-bubble{
    width:min(290px, 78vw);
  }
}

@media(max-width:640px){
  :root{
    --mobile-nav-height:88px;
  }

  main{
    padding:calc(var(--mobile-nav-height) + env(safe-area-inset-top) + 16px) 10px 20px;
  }

  .mobile-nav{
    padding:calc(env(safe-area-inset-top) + 6px) 8px 8px;
    gap:4px;
  }

  .mobile-brand{
    min-width:50px;
    max-width:50px;
    flex-basis:50px;
  }

  .mobile-brand img{
    width:38px;
    height:38px;
  }

  .mobile-nav .nav{
    padding:10px 4px;
  }

  .mobile-nav .nav small{
    font-size:10px;
  }

  .topbar h2{
    font-size:24px;
  }

  .topbar p{
    font-size:14px;
  }

  .kpi-grid{
    gap:10px;
  }

  .kpi strong{
    font-size:20px;
  }

  .form-grid input,
  td input{
    font-size:16px;
  }

  th,td{
    padding:12px 10px;
  }

  .ranking-table td{
    font-size:16px;
    height:auto;
  }

  .daily-wrap table{
    min-width:780px;
  }

  .daily-wrap th,
  .daily-wrap td{
    padding:9px 6px;
  }

  .tooltip-bubble{
    left:auto;
    right:0;
    width:min(270px, 84vw);
    font-size:12px;
  }

  .tooltip-bubble::before{
    left:auto;
    right:16px;
  }
}

/* Aba vendas extras */
.extra:before{
  content:"";
  position:absolute;
  left:3px;
  top:4px;
  width:20px;
  height:20px;
  border:3px solid currentColor;
  border-radius:6px;
}
.extra:after{
  content:"+";
  position:absolute;
  left:8px;
  top:0;
  font-size:21px;
  font-weight:900;
  line-height:1;
}
.extra-wrap{
  width:100%;
  overflow-x:auto!important;
  -webkit-overflow-scrolling:touch;
}
.extra-wrap table{
  width:100%;
  min-width:1180px;
  table-layout:fixed;
  border-collapse:collapse;
}
.extra-wrap th,
.extra-wrap td{
  height:58px;
  padding:12px 14px;
  vertical-align:middle;
}
.extra-wrap th:first-child,
.extra-wrap td:first-child{
  width:82px;
  min-width:82px;
  max-width:82px;
}
.extra-wrap th:nth-child(2),
.extra-wrap td:nth-child(2){
  width:180px;
  min-width:180px;
}
.extra-wrap td input{
  width:100%;
  min-width:0!important;
  height:38px;
}
.employee-name-cell{
  font-weight:700;
  color:#071b45;
}
@media(max-width:980px){
  .extra-wrap table{
    min-width:980px;
  }
  .extra-wrap th,
  .extra-wrap td{
    padding:10px 8px;
  }
  .extra-wrap th:first-child,
  .extra-wrap td:first-child{
    width:72px;
    min-width:72px;
    max-width:72px;
  }
  .extra-wrap th:nth-child(2),
  .extra-wrap td:nth-child(2){
    width:150px;
    min-width:150px;
  }
}
@media(max-width:640px){
  .extra-wrap table{
    min-width:900px;
  }
}
@media print{
  body.print-extras .screen:not(#extras){
    display:none!important;
  }
  body.print-extras #extras{
    display:block!important;
  }
  .extra-wrap{
    overflow:visible!important;
  }
  .extra-wrap table{
    width:100%!important;
    min-width:0!important;
    table-layout:fixed!important;
  }
  .extra-wrap th,
  .extra-wrap td{
    padding:5px!important;
    font-size:8px!important;
    white-space:normal!important;
    height:auto!important;
  }
  .extra-wrap td input{
    border:0!important;
    padding:0!important;
    height:auto!important;
    background:transparent!important;
    font-size:8px!important;
  }
}

/* Ajuste vendas extras total mensal */
.extra-wrap table{
  min-width:980px!important;
}
.extra-wrap th:first-child,
.extra-wrap td:first-child{
  width:190px!important;
  min-width:190px!important;
  max-width:190px!important;
}
.extra-wrap th:nth-child(2),
.extra-wrap td:nth-child(2){
  width:auto!important;
  min-width:0!important;
}
@media(max-width:980px){
  .extra-wrap table{
    min-width:860px!important;
  }
  .extra-wrap th:first-child,
  .extra-wrap td:first-child{
    width:150px!important;
    min-width:150px!important;
    max-width:150px!important;
  }
}
@media(max-width:640px){
  .extra-wrap table{
    min-width:820px!important;
  }
}

/* Unificação Genérico/Similar */
.extra-wrap table{
  min-width:880px!important;
}
.extra-wrap th:first-child,
.extra-wrap td:first-child{
  width:190px!important;
  min-width:190px!important;
  max-width:190px!important;
}
@media(max-width:980px){
  .extra-wrap table{
    min-width:820px!important;
  }
  .extra-wrap th:first-child,
  .extra-wrap td:first-child{
    width:145px!important;
    min-width:145px!important;
    max-width:145px!important;
  }
}
@media(max-width:640px){
  .extra-wrap table{
    min-width:760px!important;
  }
}

/* Ajuste visual menu lateral - textos menores */
.sidebar .brand-title{
  font-size:20px!important;
  line-height:1.15!important;
  opacity:.92;
}

.sidebar .brand-subtitle{
  font-size:14px!important;
  line-height:1.25!important;
  opacity:.82;
}

.sidebar .nav{
  font-size:15px!important;
  font-weight:500!important;
  opacity:.78;
  filter:none!important;
  text-shadow:none!important;
}

.sidebar .nav span:not(.nav-ico){
  font-size:15px!important;
  font-weight:500!important;
  letter-spacing:-.1px;
}

.sidebar .nav.active{
  opacity:.92;
  background:rgba(66,145,232,.78)!important;
  box-shadow:none!important;
}

.sidebar .nav:hover{
  opacity:.95;
  background:rgba(66,145,232,.55);
  box-shadow:none!important;
}

.sidebar .nav-ico,
.sidebar .nav-svg{
  opacity:.82;
  transform:scale(.9);
}

.sidebar .nav.active .nav-ico,
.sidebar .nav.active .nav-svg{
  opacity:.92;
}

@media(max-width:980px){
  .mobile-nav .nav small{
    font-size:10px!important;
    font-weight:500!important;
    opacity:.82;
  }

  .mobile-nav .nav.active{
    background:rgba(66,145,232,.75)!important;
    box-shadow:none!important;
  }
}

/* Evita pulo de aba no carregamento */
body.app-booting:not(.auth-locked) .sidebar,
body.app-booting:not(.auth-locked) .mobile-nav,
body.app-booting:not(.auth-locked) main{
  visibility:hidden!important;
  opacity:0!important;
}

body.app-booting:not(.auth-locked){
  background:#f3f7fc;
}

button[hidden]{display:none!important;}


/* Alerta de inatividade */
.inactivity-warning{
  position:fixed;
  inset:0;
  z-index:9999;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(3,18,40,.42);
  backdrop-filter:blur(3px);
}

.inactivity-warning[hidden]{
  display:none!important;
}

.inactivity-card{
  width:min(420px,100%);
  background:#fff;
  border-radius:22px;
  padding:26px 24px;
  box-shadow:0 24px 70px rgba(0,0,0,.25);
  text-align:center;
  border:1px solid rgba(0,80,149,.16);
}

.inactivity-card strong{
  display:block;
  color:#005095;
  font-size:22px;
  font-weight:900;
  margin-bottom:10px;
}

.inactivity-card p{
  margin:0 0 20px;
  color:#35425a;
  line-height:1.45;
  font-size:15px;
}

#inactivityCountdown{
  color:#e30613;
  font-weight:900;
}

#keepSessionBtn{
  width:100%;
  border:0;
  border-radius:12px;
  padding:13px 16px;
  background:#005095;
  color:#fff;
  font-weight:800;
  cursor:pointer;
}

#keepSessionBtn:hover{
  background:#0067bd;
}

/* Total automático das vendas extras */
.extra-total-input{background:#eefbf2!important;border-color:#9bd6aa!important;color:#146c35!important;font-weight:800!important;cursor:not-allowed}
.extra-wrap table{min-width:1020px!important}


/* domingos bloqueados: linha inteira opaca */
.sunday-disabled-row td{
  background:#f1f4f7 !important;
}
.sunday-disabled-row td:first-child{
  background:#e9eef5 !important;
  color:#5d6b7d;
  font-weight:700;
}
.sunday-disabled-row .input-with-menu{
  display:block;
}
.sunday-disabled-row .input-with-menu input{
  background:transparent !important;
  border-color:transparent !important;
  box-shadow:none !important;
  color:transparent !important;
  pointer-events:none !important;
  cursor:not-allowed !important;
}
.sunday-disabled-row .input-with-menu input::placeholder{
  color:transparent !important;
}


/* Seção expansível: Lançamento de horas */
.nav-group{
  width:100%;
}
.nav-group-toggle{
  width:100%;
  border:0;
  border-radius:10px;
  background:transparent;
  color:#fff;
  text-align:left;
  padding:14px 16px;
  font-size:15px;
  font-weight:500;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:16px;
  line-height:1.08;
  opacity:.78;
}
.nav-group-toggle:hover,
.nav-group.open .nav-group-toggle,
.nav-group.active .nav-group-toggle{
  opacity:.95;
  background:rgba(66,145,232,.55);
}
.nav-group.active .nav-group-toggle{
  background:rgba(66,145,232,.78);
}
.nav-group-label{
  flex:1;
  min-width:0;
}
.nav-chevron{
  margin-left:auto;
  font-size:25px;
  line-height:1;
  transition:transform .18s ease;
}
.nav-group.open .nav-chevron{
  transform:rotate(90deg);
}
.nav-submenu{
  display:flex;
  flex-direction:column;
  gap:5px;
  margin:6px 0 0 42px;
  padding:3px 0 3px 13px;
  border-left:1px solid rgba(255,255,255,.30);
}
.nav-submenu[hidden]{
  display:none!important;
}
.side-nav .nav-subitem{
  min-height:38px;
  padding:10px 12px;
  border-radius:8px;
  font-size:14px!important;
  gap:0;
}
.side-nav .nav-subitem span{
  font-size:14px!important;
}
.clock:before{
  content:"";
  position:absolute;
  inset:2px;
  border:3px solid currentColor;
  border-radius:50%;
}
.clock:after{
  content:"";
  position:absolute;
  left:12px;
  top:7px;
  width:6px;
  height:8px;
  border-left:3px solid currentColor;
  border-bottom:3px solid currentColor;
}

/* Abas iniciais de Folha de ponto e VT/VR */
.module-start-panel{
  min-height:360px;
}
.module-start-head{
  align-items:flex-start;
  gap:18px;
}
.module-start-description{
  margin:7px 0 0;
  color:var(--muted);
  font-size:15px;
}
.module-start-badge{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:6px 11px;
  border-radius:999px;
  background:#eaf3ff;
  color:#005095;
  font-size:12px;
  font-weight:700;
  white-space:nowrap;
}
.module-start-content{
  min-height:245px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:28px 20px;
  border:1px dashed #cbd9ea;
  border-radius:12px;
  background:#f8fbff;
}
.module-start-content strong{
  margin-top:16px;
  color:#005095;
  font-size:22px;
}
.module-start-content p{
  max-width:560px;
  margin:8px 0 0;
  color:var(--muted);
}
.module-start-icon{
  width:58px;
  height:58px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#e7f1ff;
  color:#005095;
  font-weight:800;
  font-style:normal;
}
.clock-large{
  position:relative;
}
.clock-large:before{
  content:"";
  position:absolute;
  inset:13px;
  border:3px solid currentColor;
  border-radius:50%;
}
.clock-large:after{
  content:"";
  position:absolute;
  left:28px;
  top:20px;
  width:7px;
  height:10px;
  border-left:3px solid currentColor;
  border-bottom:3px solid currentColor;
}
.benefit-large{
  font-size:17px;
}

@media(max-width:980px){
  .mobile-nav{
    overflow-x:auto;
    justify-content:flex-start;
  }
  .mobile-nav .nav{
    flex:0 0 72px;
  }
  .module-start-head{
    flex-direction:column;
  }
}


/* Folha de ponto mensal */
.timesheet-control-panel{
  overflow:visible;
}
.timesheet-control-head{
  align-items:flex-start;
  gap:18px;
}
.timesheet-description{
  margin:6px 0 0;
  color:var(--muted);
  font-size:14px;
}
.timesheet-print-all:disabled{
  opacity:.5;
  cursor:not-allowed;
}
.timesheet-toolbar{
  display:grid;
  grid-template-columns:minmax(220px, 320px) minmax(0, 1fr);
  gap:18px;
  align-items:end;
  margin-top:20px;
}

.daily-month-toolbar{
  grid-template-columns:minmax(300px, 380px) minmax(560px, 1fr);
  column-gap:32px;
  row-gap:18px;
  align-items:end;
  justify-content:stretch;
  margin-top:20px;
}
.daily-month-toolbar .timesheet-month-field{
  width:100%;
  min-width:0;
  max-width:380px;
  padding-right:0;
  justify-self:start;
}
.daily-month-toolbar .timesheet-month-field .timesheet-month-input-wrap{
  max-width:380px;
}
.daily-pdf-import-field{
  width:100%;
  min-width:0;
  max-width:none;
  justify-self:stretch;
  position:relative;
  padding-left:32px;
  border-left:1px solid #dbe4ef;
}
.daily-pdf-import-label{
  display:block;
  margin-bottom:8px;
  color:var(--primary);
  font-weight:700;
  line-height:1.2;
}
.daily-pdf-dropzone{
  min-height:76px;
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:flex-start;
  gap:20px;
  padding:10px 16px;
  border:1px dashed #9db6d7;
  border-radius:10px;
  background:#f8fbff;
  cursor:pointer;
  text-align:left;
  transition:border-color .18s ease, background-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.daily-pdf-dropzone:hover,
.daily-pdf-dropzone.is-dragover{
  border-color:#005095;
  background:#f2f8ff;
  box-shadow:0 8px 20px rgba(0,80,149,.10);
  transform:translateY(-1px);
}
.daily-pdf-dropzone.is-processing{
  cursor:progress;
  opacity:.72;
}
.daily-pdf-icon{
  flex:0 0 42px;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:1px solid #d6e4f3;
  background:#fff;
  color:#4291e8;
}
.daily-pdf-icon svg{
  width:20px;
  height:20px;
  display:block;
  fill:currentColor;
}
.daily-pdf-copy{
  min-width:145px;
  display:flex;
  flex:1 1 auto;
  flex-direction:column;
  align-items:flex-start;
  gap:2px;
}
.daily-pdf-copy strong{
  color:var(--primary);
  font-size:14px;
  font-weight:800;
  line-height:1.25;
  white-space:nowrap;
}
.daily-pdf-copy small{
  color:var(--muted);
  font-size:12px;
  line-height:1.3;
  white-space:nowrap;
}
.daily-pdf-action-row{
  flex:0 0 auto;
  display:flex;
  justify-content:center;
  margin:0 10px 0 2px;
}
.daily-pdf-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:9px 16px;
  border:1px solid #cddbed;
  border-radius:8px;
  background:#fff;
  color:#005095;
  font-size:13px;
  font-weight:800;
  white-space:nowrap;
  box-shadow:0 1px 2px rgba(0,80,149,.04);
}
.daily-pdf-meta{
  flex:0 0 auto;
  min-width:128px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:3px;
  margin:0;
  color:#71819a;
  font-size:11px;
  line-height:1.25;
  white-space:nowrap;
}
.daily-pdf-status{
  min-height:0;
  margin-top:6px;
  color:var(--muted);
  font-size:12px;
  line-height:1.35;
}
.daily-pdf-status:empty{display:none}
.daily-pdf-status.is-success{color:#087a36;font-weight:700}
.daily-pdf-status.is-error{color:#b42318;font-weight:700}
.daily-pdf-status.is-processing{color:#005095;font-weight:700}
@media (max-width: 1180px){
  .daily-month-toolbar{
    grid-template-columns:minmax(280px, 340px) minmax(460px, 1fr);
    column-gap:24px;
  }
  .daily-pdf-import-field{padding-left:24px}
  .daily-pdf-action-row{margin-right:4px}
  .daily-pdf-meta{min-width:112px;font-size:10px}
}
@media (max-width: 980px){
  .daily-month-toolbar{
    grid-template-columns:1fr;
    align-items:start;
  }
  .daily-pdf-import-field{
    max-width:100%;
    justify-self:stretch;
    padding-left:0;
    border-left:0;
  }
}
@media (max-width: 650px){
  .daily-pdf-dropzone{
    flex-wrap:wrap;
    align-items:center;
  }
  .daily-pdf-copy{flex:1 1 calc(100% - 60px)}
  .daily-pdf-action-row{order:3;width:100%;margin:4px 0 0}
  .daily-pdf-meta{order:4;width:100%;min-width:0;flex-direction:row;justify-content:space-between}
}

.timesheet-month-field{
  display:block;
  color:var(--primary);
  font-weight:700;
}
.timesheet-month-input-wrap{
  display:flex;
  width:100%;
  min-width:0;
  margin-top:7px;
  padding:9px 12px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
}
.timesheet-month-input-wrap input{
  display:block;
  width:100%;
  min-width:0;
  padding:0;
  border:0;
  outline:0;
  background:transparent;
  color:var(--primary);
  font:inherit;
}
.timesheet-rule-note{
  min-height:64px;
  padding:12px 14px;
  border:1px solid #dce5f1;
  border-radius:10px;
  background:#f7f9fc;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:3px;
}
.timesheet-rule-note strong{
  color:var(--primary);
  font-size:14px;
}
.timesheet-rule-note span{
  color:var(--muted);
  font-size:13px;
  line-height:1.45;
}
.timesheet-list-panel{
  margin-top:18px;
}
.timesheet-count{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:5px 10px;
  border-radius:999px;
  background:#eef5ff;
  color:var(--primary);
  font-size:12px;
  font-weight:800;
}
.timesheet-employee-table th:last-child,
.timesheet-employee-table td:last-child{
  width:190px;
  text-align:center;
}
.timesheet-employee-table td{
  vertical-align:middle;
}
.timesheet-employee-table td strong{
  color:var(--primary);
}
.timesheet-row-print{
  white-space:nowrap;
}
.timesheet-empty-state{
  min-height:190px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:7px;
  text-align:center;
  color:var(--muted);
}
.timesheet-empty-state[hidden]{
  display:none!important;
}
.timesheet-empty-state strong{
  color:var(--primary);
  font-size:17px;
}
.timesheet-empty-state span{
  max-width:520px;
  font-size:14px;
}

@media(max-width:1180px){
  .daily-month-toolbar{
    grid-template-columns:minmax(300px, 390px) minmax(430px, 1fr);
    column-gap:32px;
  }
}
@media(max-width:920px){
}
@media(max-width:760px){
  .timesheet-control-head{
    flex-direction:column;
    align-items:stretch;
  }
  .timesheet-print-all{
    width:100%;
  }
  .timesheet-toolbar{
    grid-template-columns:1fr;
  }
  .timesheet-employee-table th:last-child,
  .timesheet-employee-table td:last-child{
    width:auto;
  }
}


/* VT/VR mensal */
.benefit-control-panel{overflow:visible}
.benefit-control-head{align-items:flex-start;gap:18px}
.benefit-description{margin:6px 0 0;color:var(--muted);font-size:14px}
.benefit-print-all:disabled{opacity:.5;cursor:not-allowed}
.benefit-toolbar{display:grid;grid-template-columns:minmax(220px,320px) minmax(0,1fr);gap:18px;align-items:end;margin-top:20px}
.benefit-month-field{display:block;color:var(--primary);font-weight:700}
.benefit-month-input-wrap{display:flex;width:100%;min-width:0;margin-top:7px;padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:#fff}
.benefit-month-input-wrap input{display:block;width:100%;min-width:0;padding:0;border:0;outline:0;background:transparent;color:var(--primary);font:inherit}
.benefit-rule-note{min-height:64px;padding:12px 14px;border:1px solid #dce5f1;border-radius:10px;background:#f7f9fc;display:flex;flex-direction:column;justify-content:center;gap:3px}
.benefit-rule-note strong{color:var(--primary);font-size:14px}
.benefit-rule-note span{color:var(--muted);font-size:13px;line-height:1.45}
.benefit-list-panel{margin-top:18px}
.benefit-list-description{margin:6px 0 0;color:var(--muted);font-size:13px}
.benefit-count{display:inline-flex;align-items:center;min-height:30px;padding:5px 10px;border-radius:999px;background:#eef5ff;color:var(--primary);font-size:12px;font-weight:800;white-space:nowrap}
.benefit-table-wrap{overflow-x:auto}
.benefit-employee-table{min-width:1080px}
.benefit-employee-table th,.benefit-employee-table td{vertical-align:middle}
.benefit-employee-table th:nth-child(5),
.benefit-employee-table th:nth-child(6),
.benefit-employee-table th:nth-child(7),
.benefit-employee-table th:nth-child(8),
.benefit-employee-table td:nth-child(5),
.benefit-employee-table td:nth-child(6),
.benefit-employee-table td:nth-child(7),
.benefit-employee-table td:nth-child(8){text-align:center}
.benefit-employee-name{border:0;background:transparent;color:var(--primary);font:inherit;font-weight:800;cursor:pointer;padding:0;text-align:left}
.benefit-employee-name:hover{text-decoration:underline}
.benefit-value-muted{color:var(--muted)}
.benefit-day-split{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;white-space:nowrap}
.benefit-day-split strong{color:var(--primary);font-size:13px}
.benefit-day-split span{color:var(--muted);font-size:12px;font-weight:800}
.benefit-adjustment-badges{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.benefit-discount-badge{display:inline-flex;align-items:center;justify-content:center;min-height:27px;padding:4px 8px;border-radius:999px;background:#fff1f1;color:#b42318;font-size:12px;font-weight:800;white-space:nowrap}
.benefit-credit-badge{display:inline-flex;align-items:center;justify-content:center;min-height:27px;padding:4px 8px;border-radius:999px;background:#eaf8ef;color:#087a36;font-size:12px;font-weight:800;white-space:nowrap}
.benefit-no-discount{color:var(--muted);font-size:13px}
.benefit-total-value{color:#087a36;font-weight:900;white-space:nowrap}
.benefit-actions{display:flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap}
.benefit-actions button{padding:9px 11px}
.benefit-receipt-btn:disabled{opacity:.45;cursor:not-allowed}
.benefit-empty-state{min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center;color:var(--muted)}
.benefit-empty-state[hidden]{display:none!important}
.benefit-empty-state strong{color:var(--primary);font-size:17px}
.benefit-empty-state span{max-width:520px;font-size:14px}

/* Modal de configuração de VT/VR */
.benefit-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px}
.benefit-modal[hidden]{display:none!important}
.benefit-modal-backdrop{position:absolute;inset:0;background:rgba(13,31,54,.55)}
.benefit-modal-card{position:relative;width:min(520px,100%);max-height:calc(100vh - 40px);overflow:auto;border-radius:15px;background:#fff;box-shadow:0 24px 60px rgba(8,28,56,.28);padding:22px}
.benefit-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.benefit-modal-eyebrow{display:block;color:#087a36;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.3px}
.benefit-modal-head h3{margin:4px 0 0;color:var(--primary);font-size:23px}
.benefit-modal-head p{margin:5px 0 0;color:var(--muted);font-size:13px}
.benefit-modal-close{width:34px;height:34px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--primary);font-size:24px;line-height:1;cursor:pointer;display:grid;place-items:center}
.benefit-config-form{display:grid;gap:16px;padding-top:18px}
.benefit-config-form>label{display:grid;gap:7px;color:var(--primary);font-weight:700}
.benefit-money-field{display:flex;align-items:center;border:1px solid var(--line);border-radius:9px;background:#fff;overflow:hidden}
.benefit-money-field>span{padding:10px 11px;background:#f4f7fb;color:var(--primary);font-weight:800;border-right:1px solid var(--line)}
.benefit-money-field input{width:100%;min-width:0;border:0!important;border-radius:0!important;padding:10px 12px!important;outline:0;background:#fff}
.benefit-money-field:focus-within{border-color:#7fb3e8;box-shadow:0 0 0 3px rgba(0,80,149,.10)}
.benefit-modal-help{margin:0;padding:11px 12px;border-radius:9px;background:#f7f9fc;color:var(--muted);font-size:12px;line-height:1.45}
.benefit-modal-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:2px}
body.benefit-modal-open{overflow:hidden}

@media(max-width:760px){
  .benefit-control-head{flex-direction:column;align-items:stretch}
  .benefit-print-all{width:100%}
  .benefit-toolbar{grid-template-columns:1fr}
  .benefit-modal{padding:12px}
  .benefit-modal-card{padding:18px}
  .benefit-modal-actions{flex-direction:column-reverse}
  .benefit-modal-actions button{width:100%}
}


/* VT/VR: apagar configuração e confirmação de feriado */
.benefit-modal-actions-spread{justify-content:space-between;align-items:center}
.benefit-modal-actions-right{display:flex;gap:9px;margin-left:auto}
.benefit-delete-btn{border:1px solid #f0b8b8;border-radius:8px;padding:10px 13px;background:#fff5f5;color:#c62828;font-weight:800;cursor:pointer}
.benefit-delete-btn:hover{background:#ffeaea}
.benefit-delete-btn[hidden]{display:none!important}
.benefit-holiday-card{width:min(560px,100%)}
.benefit-holiday-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}
@media(max-width:640px){
  .benefit-modal-actions-spread{align-items:stretch}
  .benefit-modal-actions-right{display:flex;flex-direction:column-reverse;width:100%;margin-left:0}
  .benefit-delete-btn{width:100%}
  .benefit-holiday-actions{flex-direction:column-reverse}
  .benefit-holiday-actions button{width:100%}
}


/* Escala mensal manual dos sábados - VT/VR */
.benefit-saturday-panel{margin-top:18px}
.benefit-saturday-planner-wrap{overflow-x:auto}
.benefit-saturday-table{width:100%;border-collapse:collapse;min-width:760px}
.benefit-saturday-table th,.benefit-saturday-table td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle;text-align:center}
.benefit-saturday-table th:first-child,.benefit-saturday-table td:first-child{text-align:left;min-width:190px}
.benefit-saturday-table td:first-child strong{display:block;color:var(--text)}
.benefit-saturday-table td:first-child small{display:block;color:var(--muted);margin-top:2px}
.benefit-saturday-select{width:112px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--primary);font-weight:700;padding:8px 10px}
.benefit-saturday-select.is-work{background:#eaf8ef;border-color:#9fd5ae;color:#166534}
.benefit-saturday-select.is-off{background:#f1f3f6;border-color:#cfd6df;color:#5d6673}
.benefit-schedule-pending{display:inline-flex;padding:5px 8px;border-radius:999px;background:#fff4dd;color:#996100;font-size:12px;font-weight:800;white-space:nowrap}
.benefit-schedule-ok{display:inline-flex;padding:5px 8px;border-radius:999px;background:#eaf8ef;color:#166534;font-size:12px;font-weight:800;white-space:nowrap}


/* Escala de sábados em sessão própria */
.saturday-scale-control-panel{overflow:visible}
.saturday-scale-description{margin:6px 0 0;color:var(--muted);font-size:14px}
.saturday-scale-toolbar{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:18px;align-items:end;margin-top:18px}
.saturday-scale-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}
.saturday-scale-card{margin:0;padding:0;overflow:hidden}
.saturday-scale-card-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:18px;border-bottom:1px solid var(--line);background:#fafbfd}
.saturday-scale-card-head strong{display:block;color:var(--text);font-size:15px}
.saturday-scale-card-head span:not(.saturday-scale-count){display:block;color:var(--muted);font-size:13px;margin-top:3px}
.saturday-scale-count{display:inline-flex;align-items:center;white-space:nowrap;padding:5px 9px;border-radius:999px;background:#edf4ff;color:var(--primary);font-size:12px;font-weight:800}
.saturday-scale-employees{display:grid;grid-template-columns:1fr;gap:0;padding:4px 16px 10px}
.saturday-scale-person{display:flex;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid #edf0f4;cursor:pointer}
.saturday-scale-person:last-child{border-bottom:0}
.saturday-scale-person input{width:18px;height:18px;accent-color:var(--primary);cursor:pointer;flex:0 0 auto}
.saturday-scale-person span{display:flex;flex-direction:column;min-width:0}
.saturday-scale-person strong{font-size:14px;color:var(--text)}
.saturday-scale-person small{font-size:12px;color:var(--muted);margin-top:2px}
.saturday-scale-person.is-checked strong{color:var(--primary)}
@media(max-width:900px){
  .saturday-scale-grid{grid-template-columns:1fr}
  .saturday-scale-toolbar{grid-template-columns:1fr}
}
@media(max-width:640px){
  .saturday-scale-control-panel .panel-head{flex-direction:column;align-items:stretch}
  #saveSaturdayScale{width:100%}
  .saturday-scale-card-head{flex-direction:column}
}


/* Nome global do funcionário */
.employee-name-readonly{
  background:#f8fafc !important;
  color:#1f2937 !important;
  cursor:default !important;
}
.employee-row-actions{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  white-space:nowrap;
}
.employee-row-actions .employee-edit-name,
.employee-row-actions .remove{
  min-width:76px;
}
.employee-name-modal-card{
  max-width:520px;
}
.employee-name-modal-input{
  width:100%;
  border:1px solid var(--line);
  border-radius:8px;
  padding:11px 12px;
  font:inherit;
  color:inherit;
  background:#fff;
}
.employee-name-modal-input:focus{
  outline:2px solid rgba(0,80,149,.16);
  border-color:#005095;
}
body.employee-name-modal-open{
  overflow:hidden;
}


/* Lançamentos diários: célula de dia mais compacta e elegante */
.day-cell{width:96px;min-width:96px}
.day-cell-inner{display:flex;align-items:center;justify-content:flex-start!important;gap:6px;min-width:auto!important;white-space:nowrap}
.day-date{font-size:12px;font-weight:700;color:#4b5d73;letter-spacing:-0.01em}
.day-weekday{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:22px;padding:0 8px;border-radius:999px;background:#eef4fb;border:1px solid #d7e3f2;color:#005095;font-size:11px;font-weight:800;line-height:1;text-transform:capitalize}
.sunday-disabled-row td:first-child .day-date{color:#7b8794}
.sunday-disabled-row td:first-child .day-weekday{background:#e6ecf3;border-color:#d3dbe6;color:#6a7786}
@media (max-width: 768px){
  .day-cell{width:84px;min-width:84px}
  .day-date{font-size:11px}
  .day-weekday{min-width:30px;height:20px;padding:0 7px;font-size:10px}
}

/* ===== Ajuste impressão dos lançamentos diários =====
   Evita sobreposição do dia/semana sobre o valor do 1º funcionário no PDF. */
@media print{
  body.print-lancamentos .screen:not(#lancamentos){
    display:none!important;
  }

  body.print-lancamentos #lancamentos{
    display:block!important;
  }

  body.print-lancamentos .daily-wrap,
  body.print-lancamentos .daily-wrap table{
    overflow:visible!important;
  }

  body.print-lancamentos .daily-wrap table{
    width:100%!important;
    min-width:0!important;
    table-layout:fixed!important;
  }

  body.print-lancamentos .daily-wrap th,
  body.print-lancamentos .daily-wrap td{
    padding:6px 5px!important;
    font-size:8.6px!important;
    line-height:1.2!important;
    vertical-align:middle!important;
    white-space:normal!important;
    text-align:center!important;
  }

  body.print-lancamentos .daily-wrap td:not(:first-child),
  body.print-lancamentos .daily-wrap th:not(:first-child){
    text-align:center!important;
  }

  body.print-lancamentos .daily-wrap th:first-child,
  body.print-lancamentos .daily-wrap td:first-child,
  body.print-lancamentos .day-cell{
    width:80px!important;
    min-width:80px!important;
    max-width:80px!important;
  }

  body.print-lancamentos .day-cell-inner{
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:center!important;
    gap:4px!important;
    min-width:0!important;
    white-space:normal!important;
  }

  body.print-lancamentos .day-date{
    font-size:10px!important;
    line-height:1!important;
  }

  body.print-lancamentos .day-weekday{
    min-width:auto!important;
    height:auto!important;
    padding:2px 6px!important;
    font-size:9px!important;
    line-height:1.1!important;
  }

  body.print-lancamentos .input-with-menu{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    min-width:0!important;
    gap:0!important;
  }

  body.print-lancamentos .cell-menu,
  body.print-lancamentos .cell-menu-btn,
  body.print-lancamentos .cell-menu-list{
    display:none!important;
  }

  body.print-lancamentos .input-with-menu input{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    border:0!important;
    outline:0!important;
    padding:0!important;
    margin:0 auto!important;
    background:transparent!important;
    box-shadow:none!important;
    -webkit-appearance:none!important;
    appearance:none!important;
    font-size:8.6px!important;
    line-height:1.2!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    text-align:center!important;
  }

  body.print-lancamentos .status-input{
    text-align:center!important;
    padding:3px 6px!important;
    border-radius:999px!important;
    margin:0 auto!important;
  }

  body.print-lancamentos .daily-wrap tr{
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }

  body.print-lancamentos .daily-wrap thead{
    display:table-header-group!important;
  }
}

/* ===== Padrão oficial de interação dos CTAs ===== */
.logout-btn{
  background:#e84a0a!important;
  border-color:#e84a0a!important;
  color:#fff!important;
  box-shadow:0 8px 18px rgba(232,74,10,.22)!important;
}

.logout-btn:hover{
  background:#e84a0a!important;
  border-color:#e84a0a!important;
  color:#fff!important;
  box-shadow:0 12px 24px rgba(232,74,10,.34)!important;
}

button:not(:disabled):not(.nav):not(.nav-group-toggle):not(.nav-subitem):not(.cell-menu-btn):not(.cell-menu-option):not(.password-toggle):not(.benefit-modal-close):not(.auth-link){
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease, background-color .18s ease, border-color .18s ease!important;
  will-change:transform;
}

button:not(:disabled):not(.nav):not(.nav-group-toggle):not(.nav-subitem):not(.cell-menu-btn):not(.cell-menu-option):not(.password-toggle):not(.benefit-modal-close):not(.auth-link):hover{
  transform:translateY(-3px)!important;
  filter:brightness(1.025);
  box-shadow:0 12px 24px rgba(7,27,69,.16)!important;
}

.logout-btn:not(:disabled):hover{
  box-shadow:0 12px 24px rgba(232,74,10,.34)!important;
}

button:not(:disabled):not(.nav):not(.nav-group-toggle):not(.nav-subitem):not(.cell-menu-btn):not(.cell-menu-option):not(.password-toggle):not(.benefit-modal-close):not(.auth-link):active{
  transform:translateY(1px)!important;
  transition-duration:.08s!important;
}

@media (prefers-reduced-motion: reduce){
  button{
    transition:none!important;
  }
  button:hover,
  button:active{
    transform:none!important;
  }
}

/* ===== Modal padrão de retorno das ações ===== */
.action-feedback-modal{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;padding:20px}
.action-feedback-modal[hidden]{display:none!important}
.action-feedback-backdrop{position:absolute;inset:0;background:rgba(7,27,69,.56);backdrop-filter:blur(2px)}
.action-feedback-card{position:relative;width:min(430px,100%);padding:28px 26px 24px;border:1px solid rgba(7,27,69,.08);border-radius:18px;background:#fff;box-shadow:0 28px 70px rgba(7,27,69,.28);text-align:center;animation:actionModalIn .2s ease-out}
.action-feedback-icon{width:58px;height:58px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;font-size:29px;font-weight:900}
.action-feedback-icon.is-success{background:#e9f8ef;color:#087a36}
.action-feedback-icon.is-cancelled{background:#fff0e9;color:#e84a0a}
.action-feedback-icon.is-error{background:#fff0f0;color:#c62828}
.action-feedback-icon.is-confirm{background:#eaf3fb;color:#005095}
.action-feedback-eyebrow{display:block;margin-bottom:5px;color:#6b7280;font-size:11px;font-weight:900;letter-spacing:.55px;text-transform:uppercase}
.action-feedback-card h3{margin:0;color:var(--primary);font-size:23px;line-height:1.2}
.action-feedback-card p{margin:10px auto 0;max-width:350px;color:var(--muted);font-size:14px;line-height:1.5}
.action-feedback-actions{display:flex;justify-content:center;gap:10px;margin-top:22px}
.action-feedback-actions button{min-width:116px}
#actionFeedbackConfirm.is-danger{
  background:#e84a0a!important;
  border-color:#e84a0a!important;
  color:#fff!important;
  box-shadow:0 8px 18px rgba(232,74,10,.24)!important;
}
#actionFeedbackConfirm.is-danger:hover{
  background:#e84a0a!important;
  border-color:#e84a0a!important;
  color:#fff!important;
  box-shadow:0 12px 24px rgba(232,74,10,.36)!important;
}
body.action-feedback-open{overflow:hidden}
@keyframes actionModalIn{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:520px){.action-feedback-modal{padding:14px}.action-feedback-card{padding:24px 18px 20px}.action-feedback-actions{flex-direction:column-reverse}.action-feedback-actions button{width:100%}}
@media(prefers-reduced-motion:reduce){.action-feedback-card{animation:none}}

/* ===== Alerta superior direito: login concluído sem modal ===== */
.top-right-toast{
  position:fixed;
  top:18px;
  right:18px;
  z-index:5000;
  max-width:min(360px, calc(100vw - 36px));
  padding:13px 17px;
  border:1px solid rgba(7,27,69,.10);
  border-radius:12px;
  background:#fff;
  color:#202631;
  box-shadow:0 12px 32px rgba(7,27,69,.18);
  font-size:14px;
  font-weight:800;
  line-height:1.3;
  opacity:0;
  visibility:hidden;
  transform:translateY(-12px);
  pointer-events:none;
  transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
}
.top-right-toast.is-success{border-left:4px solid #168a4a}
.top-right-toast.is-error{border-left:4px solid #e84a0a}
.top-right-toast.show{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
@media(max-width:520px){
  .top-right-toast{top:12px;right:12px;max-width:calc(100vw - 24px)}
}
@media(prefers-reduced-motion:reduce){
  .top-right-toast{transition:none}
}


/* V26.32 - prévia segura da importação PDF */
.daily-pdf-preview-modal{position:fixed;inset:0;z-index:3100;display:grid;place-items:center;padding:20px}
.daily-pdf-preview-modal[hidden]{display:none!important}
.daily-pdf-preview-backdrop{position:absolute;inset:0;background:rgba(7,27,69,.58);backdrop-filter:blur(2px)}
.daily-pdf-preview-card{position:relative;width:min(880px,100%);max-height:min(760px,92vh);display:flex;flex-direction:column;padding:24px;border:1px solid rgba(7,27,69,.08);border-radius:18px;background:#fff;box-shadow:0 28px 70px rgba(7,27,69,.3)}
.daily-pdf-preview-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.daily-pdf-preview-eyebrow{display:block;margin-bottom:4px;color:#6b7280;font-size:11px;font-weight:900;letter-spacing:.5px;text-transform:uppercase}
.daily-pdf-preview-head h3{margin:0;color:var(--primary);font-size:23px;line-height:1.2}
.daily-pdf-preview-head p{margin:7px 0 0;color:var(--muted);font-size:13px;line-height:1.45}
.daily-pdf-preview-close{width:36px;height:36px;flex:0 0 36px;border:0;border-radius:10px;background:#eef4fb;color:#005095;font-size:23px;font-weight:800;cursor:pointer}
.daily-pdf-preview-table-wrap{margin-top:18px;overflow:auto;border:1px solid var(--line);border-radius:12px}
.daily-pdf-preview-table{width:100%;min-width:700px;border-collapse:collapse}
.daily-pdf-preview-table th,.daily-pdf-preview-table td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;font-size:12px;vertical-align:middle}
.daily-pdf-preview-table th{position:sticky;top:0;background:#f4f7fb;color:#183252;font-weight:800;z-index:1}
.daily-pdf-preview-table tbody tr:last-child td{border-bottom:0}
.daily-pdf-preview-pill{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}
.daily-pdf-preview-pill.is-new{background:#e8f7ee;color:#087a36}
.daily-pdf-preview-pill.is-same{background:#edf4fb;color:#005095}
.daily-pdf-preview-pill.is-conflict{background:#fff3e8;color:#b94a00}
.daily-pdf-preview-pill.is-blocked{background:#fff0f0;color:#b42318}
.daily-pdf-preview-warning{margin-top:14px;padding:11px 13px;border:1px solid #f3cfaa;border-radius:10px;background:#fff8ef;color:#8a4a00;font-size:12px;line-height:1.45}
.daily-pdf-overwrite-option{display:flex;align-items:flex-start;gap:9px;margin-top:14px;padding:11px 13px;border:1px solid #d8e3f0;border-radius:10px;background:#f8fbff;color:#183252;font-size:12px;font-weight:700;cursor:pointer}
.daily-pdf-overwrite-option input{margin-top:2px}
.daily-pdf-preview-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
body.daily-pdf-preview-open{overflow:hidden}
@media(max-width:720px){.daily-pdf-preview-modal{padding:10px}.daily-pdf-preview-card{padding:18px}.daily-pdf-preview-actions{flex-direction:column-reverse}.daily-pdf-preview-actions button{width:100%}}

/* =========================================================
   V26.38 — Menu lateral conforme referência visual
   Alteração exclusivamente de interface; sem mudanças de dados/lógica.
   ========================================================= */
@media (min-width:981px){
  :root{--sidebar-width:278px}

  .sidebar{
    top:10px;
    bottom:10px;
    left:4px;
    height:auto;
    width:274px;
    padding:0;
    overflow:hidden;
    border-radius:9px;
    background:
      radial-gradient(115% 58% at 0% 79%, rgba(0,111,214,.48) 0 48%, transparent 49%),
      radial-gradient(125% 70% at 12% 102%, rgba(0,96,189,.40) 0 43%, transparent 44%),
      linear-gradient(180deg,#0059a9 0%,#004f98 24%,#004786 58%,#003d79 100%);
    box-shadow:10px 0 26px rgba(7,37,76,.17);
    isolation:isolate;
  }

  .sidebar-inner{
    position:relative;
    z-index:3;
    height:100%;
    padding:27px 16px 24px;
    display:flex;
    flex-direction:column;
  }

  .sidebar .brand{
    margin:0 0 22px 17px;
  }

  .sidebar .brand-logo{
    width:190px;
    max-width:calc(100% - 8px);
    margin:0 0 14px;
  }

  .sidebar .brand strong{
    display:block;
    margin:0;
    color:#fff;
    font-size:18px;
    line-height:1.12;
    font-weight:800;
    letter-spacing:-.35px;
  }

  .sidebar .brand span{
    margin-top:4px;
    color:rgba(255,255,255,.88);
    font-size:12px;
    line-height:1.28;
    font-weight:500;
  }

  .side-nav{
    position:relative;
    z-index:4;
    gap:4px;
    margin:0;
  }

  .side-nav > .nav,
  .nav-group-toggle{
    min-height:45px;
    padding:10px 13px;
    border-radius:9px;
    gap:13px;
    color:rgba(255,255,255,.78);
    background:transparent;
    opacity:1!important;
    font-size:12px!important;
    font-weight:500!important;
    line-height:1.15;
    box-shadow:none!important;
    transition:background .16s ease,color .16s ease,transform .16s ease;
  }

  .side-nav > .nav span:not(.nav-ico),
  .nav-group-toggle .nav-group-label{
    font-size:12px!important;
    font-weight:500!important;
    letter-spacing:-.08px;
  }

  .side-nav .nav-svg{
    width:22px;
    height:22px;
    flex:0 0 22px;
    color:#9bcdf0;
    opacity:1!important;
    transform:none!important;
  }

  .side-nav > .nav.active{
    color:#fff;
    background:linear-gradient(90deg,rgba(49,143,242,.98) 0%,rgba(38,120,221,.98) 100%)!important;
    box-shadow:0 6px 16px rgba(0,37,95,.16)!important;
  }

  .side-nav > .nav.active .nav-svg{
    color:#fff;
  }

  .side-nav > .nav.active::after{
    content:'›';
    margin-left:auto;
    color:#fff;
    font-size:21px;
    font-weight:300;
    line-height:1;
  }

  .side-nav > .nav:hover,
  .nav-group-toggle:hover{
    color:#fff;
    background:rgba(255,255,255,.075)!important;
    transform:translateX(1px);
  }

  .side-nav > .nav.active:hover{
    background:linear-gradient(90deg,rgba(49,143,242,.98) 0%,rgba(38,120,221,.98) 100%)!important;
  }

  .nav-group-toggle{
    width:100%;
  }

  .nav-group-toggle .nav-svg{
    color:#9bcdf0;
  }

  .nav-group.open .nav-group-toggle,
  .nav-group.active .nav-group-toggle{
    color:#fff;
    background:rgba(255,255,255,.08)!important;
  }

  .nav-group.open .nav-group-toggle .nav-svg,
  .nav-group.active .nav-group-toggle .nav-svg{
    color:#fff;
  }

  .nav-chevron{
    margin-left:auto;
    color:rgba(255,255,255,.92);
    font-size:21px;
    font-weight:300;
  }

  .nav-submenu{
    gap:3px;
    margin:4px 0 2px 35px;
    padding:2px 0 2px 12px;
    border-left:1px solid rgba(173,217,245,.30);
  }

  .side-nav .nav-subitem{
    min-height:33px;
    padding:8px 10px;
    border-radius:7px;
    color:rgba(255,255,255,.72);
    font-size:11px!important;
  }

  .side-nav .nav-subitem span{
    font-size:11px!important;
  }

  .side-nav .nav-subitem.active{
    color:#fff;
    background:rgba(45,136,232,.54)!important;
  }

  .sidebar-decor{
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    overflow:hidden;
  }

  .sidebar-wave{
    position:absolute;
    left:-115px;
    width:420px;
    height:245px;
    border-radius:50%;
    transform:rotate(-19deg);
  }

  .sidebar-wave-one{
    bottom:86px;
    background:rgba(0,105,207,.24);
  }

  .sidebar-wave-two{
    left:-170px;
    bottom:-56px;
    width:475px;
    height:260px;
    background:rgba(0,91,179,.22);
  }

  .sidebar-cross{
    position:absolute;
    left:50%;
    bottom:39px;
    width:51px;
    height:110px;
    transform:translateX(-50%);
    border-radius:7px;
    background:rgba(0,116,213,.16);
  }

  .sidebar-cross::before{
    content:'';
    position:absolute;
    left:50%;
    top:31px;
    width:108px;
    height:48px;
    transform:translateX(-50%);
    border-radius:7px;
    background:inherit;
  }

  main{
    margin-left:var(--sidebar-width);
  }
}

.logout-btn{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  gap:8px;
}
.logout-icon{width:17px;height:17px;flex:0 0 17px}

/* =========================================================
   V26.39 — Sidebar 100% da altura da viewport
   Somente layout. Não altera dados, APIs ou regras de negócio.
   ========================================================= */
@media (min-width:981px){
  html,
  body,
  .app{
    min-height:100vh;
    min-height:100dvh;
  }

  .sidebar{
    top:0;
    bottom:0;
    left:0;
    height:100vh;
    height:100dvh;
    min-height:100vh;
    min-height:100dvh;
    max-height:none;
    border-radius:0 9px 9px 0;
  }

  .sidebar-inner{
    height:100%;
    min-height:0;
    padding-top:clamp(20px,2.8vh,27px);
    padding-bottom:clamp(18px,2.5vh,24px);
    overflow-y:auto;
    overflow-x:hidden;
    scrollbar-width:none;
  }

  .sidebar-inner::-webkit-scrollbar{
    width:0;
    height:0;
  }

  main{
    min-height:100vh;
    min-height:100dvh;
  }
}


/* V26.40 — ícones da tela de Resultados (somente front-end) */
#resultados .result-kpi-icon{
  width:28px;
  height:28px;
  display:block;
  color:currentColor;
}
#resultados .result-section-icon{
  width:21px;
  height:21px;
  flex:0 0 21px;
  display:block;
  color:currentColor;
}
#resultados .result-title-with-icon{
  display:inline-flex;
  align-items:center;
  gap:10px;
}
#resultados .result-field-label{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:inherit;
}
#resultados .result-field-label .result-section-icon{
  width:18px;
  height:18px;
  flex-basis:18px;
  color:#005095;
}
#resultados .circle > svg{
  margin:0;
}
@media(max-width:520px){
  #resultados .result-kpi-icon{width:24px;height:24px}
  #resultados .result-section-icon{width:19px;height:19px;flex-basis:19px}
}

/* V26.41 — Resultados mais vivos + ícones dos KPIs à esquerda (somente front-end) */
#resultados .kpi-grid{
  gap:16px;
  margin-bottom:22px;
}

#resultados .kpi{
  position:relative;
  min-height:104px;
  padding:18px 20px;
  justify-content:flex-start;
  gap:16px;
  border:1px solid #e7eef7;
  border-radius:16px;
  background:linear-gradient(145deg,#ffffff 0%,#fbfdff 100%);
  box-shadow:0 10px 26px rgba(27,75,125,.12);
  overflow:hidden;
}

#resultados .kpi::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(115deg,rgba(255,255,255,.54),transparent 46%);
  opacity:.58;
}

#resultados .kpi > *{
  position:relative;
  z-index:1;
}

#resultados .kpi > div{
  min-width:0;
}

#resultados .kpi span{
  margin-bottom:5px;
  color:#617391;
  font-size:13px;
  line-height:1.2;
  font-weight:500;
}

#resultados .kpi strong{
  display:block;
  color:#075ed5;
  font-size:23px;
  line-height:1.08;
  font-weight:900;
  letter-spacing:-.45px;
  white-space:nowrap;
}

#resultados .kpi .circle{
  width:52px;
  height:52px;
  flex:0 0 52px;
  border:1px solid rgba(255,255,255,.82);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72),0 5px 14px rgba(15,68,120,.08);
}

#resultados .kpi-meta .circle.blue{
  color:#0a67e8;
  background:linear-gradient(145deg,#eaf4ff,#dcecff);
}

#resultados .kpi-total .circle.green,
#resultados .kpi-atingimento .circle.green{
  color:#079b50;
  background:linear-gradient(145deg,#e7faef,#d9f5e6);
}

#resultados .kpi-falta .circle.orange{
  color:#ff6819;
  background:linear-gradient(145deg,#fff4e7,#ffe8ce);
}

#resultados .kpi-falta strong{
  color:#f04d0d;
}

#resultados .kpi .target-mini:before{
  font-size:30px;
  font-weight:700;
}

#resultados .kpi .cart-mini{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
}

#resultados .kpi .cart-mini:before{
  margin:0;
  font-size:25px;
  line-height:1;
}

#resultados .progress-panel,
#resultados .ranking-panel,
#resultados .result-month-panel{
  border-color:#e7eef7;
  background:linear-gradient(145deg,#ffffff 0%,#fcfeff 100%);
  box-shadow:0 11px 28px rgba(27,75,125,.11);
}

#resultados .progress-panel{
  border-radius:16px;
  padding:25px 26px 28px;
  margin-bottom:22px;
}

#resultados .progress-head{
  margin-bottom:17px;
}

#resultados .progress-head strong{
  color:#0864df;
  font-size:24px;
  text-shadow:0 1px 0 rgba(255,255,255,.75);
}

#resultados .progress{
  height:13px;
  margin-bottom:27px;
  background:#dbe9f7;
  border:1px solid #d3e2f2;
  box-shadow:inset 0 1px 3px rgba(17,72,126,.08);
}

#resultados .progress div{
  background:linear-gradient(90deg,#0063e8 0%,#0877f4 100%);
  box-shadow:0 2px 8px rgba(0,99,232,.28);
}

#resultados .panel h3{
  color:#064f98;
}

#resultados .progress-panel .result-section-icon{
  color:#0869e8;
}

#resultados .ranking-panel .result-section-icon{
  color:#f7b500;
}

#resultados .mini-item .circle.blue{
  color:#0a67e8;
  background:linear-gradient(145deg,#eaf4ff,#dcecff);
}

#resultados .mini-item .circle.green{
  color:#079b50;
  background:linear-gradient(145deg,#e7faef,#d9f5e6);
}

#resultados .mini-item strong{
  color:#075ed5;
}

#resultados .mini-item{
  border-right-color:#dbe6f2;
}

#resultados .ranking-panel{
  border-radius:16px;
}

#resultados .ranking-wrap{
  border-color:#dfe8f2;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72);
}

@media(max-width:1200px){
  #resultados .kpi{
    min-height:100px;
  }
}

@media(max-width:980px){
  #resultados .kpi-grid{
    gap:12px;
  }

  #resultados .kpi{
    min-height:92px;
    padding:16px;
    gap:20px;
  }

  #resultados .kpi .circle{
    width:48px;
    height:48px;
    flex-basis:48px;
  }

  #resultados .kpi strong{
    font-size:21px;
  }
}

@media(max-width:520px){
  #resultados .kpi{
    min-height:86px;
    padding:14px;
    border-radius:14px;
  }

  #resultados .kpi .circle{
    width:44px;
    height:44px;
    flex-basis:44px;
  }

  #resultados .kpi span{
    font-size:12px;
  }

  #resultados .kpi strong{
    font-size:19px;
  }

  #resultados .progress-panel{
    padding:18px 16px 20px;
  }
}

/* =========================================================
   V26.42 — Resultados alinhado à referência visual
   Somente interface. Nenhuma regra de negócio/API foi alterada.
   ========================================================= */
#resultados .result-month-panel{
  padding:14px 18px;
  border-radius:15px;
  margin-bottom:20px;
}
#resultados .result-month-toolbar{
  grid-template-columns:minmax(280px,310px) minmax(0,1fr);
  gap:22px;
  margin-top:0;
  align-items:stretch;
}
#resultados .result-month-field{
  align-self:center;
}
#resultados .result-month-field .result-field-label{
  margin-bottom:7px;
  color:#074e9a;
  font-size:13px;
  font-weight:800;
}
#resultados .result-month-field .timesheet-month-input-wrap{
  margin-top:0;
  min-height:42px;
  border-color:#d9e4f1;
  box-shadow:0 2px 8px rgba(16,70,124,.04);
}
#resultados .result-month-field input{
  color:#063f86;
  font-size:14px;
  font-weight:700;
}
#resultados .result-ranking-note{
  min-height:82px;
  display:grid;
  grid-template-columns:54px minmax(0,1fr) 38px;
  align-items:center;
  gap:15px;
  padding:11px 15px;
  border:0;
  border-radius:12px;
  background:linear-gradient(90deg,#edf5ff 0%,#f5f9ff 100%);
}
#resultados .result-note-icon,
#resultados .result-note-info{
  margin:0;
  display:grid;
  place-items:center;
  border-radius:50%;
  font-style:normal;
}
#resultados .result-note-icon{
  width:54px;
  height:54px;
  color:#0b68df;
  background:#deecff;
}
#resultados .result-note-icon svg{
  width:25px;
  height:25px;
}
#resultados .result-note-info{
  width:38px;
  height:38px;
  color:#0b68df;
  background:#deecff;
}
#resultados .result-note-info svg{
  width:20px;
  height:20px;
}
#resultados .result-note-copy{
  min-width:0;
  display:block;
}
#resultados .result-note-copy strong{
  display:block;
  margin:0 0 4px;
  color:#074e9a;
  font-size:16px;
  font-weight:900;
}
#resultados .result-note-copy > span{
  display:block;
  color:#657493;
  font-size:13px;
  line-height:1.35;
}

#resultados .kpi-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
  margin-bottom:20px;
}
#resultados .kpi{
  min-height:112px;
  padding:18px 16px;
  gap:20px;
  border-radius:15px;
}
#resultados .kpi .circle{
  width:58px;
  height:58px;
  flex:0 0 58px;
}
#resultados .kpi span{
  margin-bottom:5px;
  font-size:14px;
}
#resultados .kpi strong{
  font-size:24px;
  letter-spacing:-.6px;
}
#resultados .kpi-meta .circle.blue{
  background:#e6f0ff;
}
#resultados .kpi-total .circle.green,
#resultados .kpi-atingimento .circle.green{
  background:#e2f7eb;
}
#resultados .kpi-falta .circle.orange{
  background:#fff0dd;
}

#resultados .progress-panel{
  padding:22px 25px 26px;
  margin-bottom:20px;
  border-radius:15px;
}
#resultados .progress-head{
  margin-bottom:14px;
}
#resultados .panel h3{
  font-size:22px;
}
#resultados .progress-head strong{
  font-size:25px;
}
#resultados .progress{
  height:12px;
  margin-bottom:30px;
  border:0;
  background:#dce9f6;
}
#resultados .mini-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  max-width:900px;
  margin:0 auto;
}
#resultados .mini-item{
  grid-template-columns:58px minmax(0,1fr);
  column-gap:18px;
  padding:0 34px;
}
#resultados .mini-item:first-child{padding-left:0}
#resultados .mini-item:last-child{padding-right:0}
#resultados .mini-item .circle{
  width:58px;
  height:58px;
  flex-basis:58px;
}
#resultados .mini-item .result-kpi-icon{
  width:26px;
  height:26px;
}
#resultados .mini-item span{
  margin:0 0 5px;
  font-size:14px;
}
#resultados .mini-item strong{
  font-size:22px;
}

#resultados .ranking-panel{
  padding:22px 24px 20px;
  border-radius:15px;
}
#resultados .ranking-panel .panel-head{
  margin-bottom:14px;
}
#resultados .ranking-wrap{
  border-radius:12px;
  overflow:hidden;
}
#resultados .ranking-table th{
  background:#f0f5fa;
  color:#15325d;
  font-size:13px;
  padding:13px 18px;
}
#resultados .ranking-table td{
  height:52px;
  padding:10px 18px;
  font-size:14px;
}
#resultados .rank-badge{
  width:38px;
  height:38px;
}

@media(min-width:981px){
  main{
    padding-top:31px;
  }
  .topbar{
    align-items:flex-start;
    margin-bottom:24px;
  }
  .topbar h2{
    font-size:44px;
    line-height:1.02;
    letter-spacing:-1.4px;
  }
  .topbar p{
    margin-top:7px;
    font-size:16px;
  }
  .topbar-actions{
    padding-top:3px;
  }
  .logout-btn,
  .print-cta{
    height:45px;
    border-radius:8px;
  }
  .logout-btn{
    min-width:96px;
  }
  .print-cta{
    min-width:176px;
    padding:0 14px;
    font-size:13px;
  }
}

@media(max-width:1180px) and (min-width:981px){
  #resultados .kpi-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  #resultados .result-month-toolbar{
    grid-template-columns:minmax(260px,310px) minmax(0,1fr);
  }
}

@media(max-width:980px){
  #resultados .result-month-toolbar{
    grid-template-columns:1fr;
    gap:12px;
  }
  #resultados .result-ranking-note{
    grid-template-columns:46px minmax(0,1fr) 34px;
    gap:11px;
    min-height:72px;
  }
  #resultados .result-note-icon{
    width:46px;
    height:46px;
  }
  #resultados .result-note-info{
    width:34px;
    height:34px;
  }
  #resultados .kpi-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  #resultados .mini-grid{
    grid-template-columns:1fr;
    max-width:none;
    gap:18px;
  }
  #resultados .mini-item,
  #resultados .mini-item:first-child,
  #resultados .mini-item:last-child{
    padding:0;
    border-right:0;
  }
}

@media(max-width:560px){
  #resultados .kpi-grid{
    grid-template-columns:1fr;
  }
  #resultados .kpi{
    min-height:90px;
  }
  #resultados .result-ranking-note{
    grid-template-columns:42px minmax(0,1fr);
  }
  #resultados .result-note-info{
    display:none;
  }
  #resultados .result-note-icon{
    width:42px;
    height:42px;
  }
}

/* =========================================================
   V26.43 — Tela de Resultados fiel à referência visual
   Ajustes EXCLUSIVAMENTE de interface (cores, tipografia,
   opacidade, espaçamento, sombras e responsividade).
   Nenhuma API, regra de negócio ou persistência alterada.
   ========================================================= */

/* Aplica o acabamento abaixo somente quando Resultados estiver ativo. */
body:has(#resultados.active){
  background:#f4fafe;
}

body:has(#resultados.active) main{
  background:
    radial-gradient(circle at 72% 0%, rgba(218,235,251,.44), transparent 31%),
    linear-gradient(180deg,#f6fbff 0%,#f1f8fe 100%);
}

body:has(#resultados.active) .topbar h2{
  color:#081b91;
  font-weight:800;
  letter-spacing:-1.35px;
  text-shadow:0 1px 0 rgba(255,255,255,.72);
}

body:has(#resultados.active) .topbar p{
  color:#5f65a7;
  font-weight:400;
}

body:has(#resultados.active) .topbar-actions{
  gap:12px;
}

body:has(#resultados.active) .logout-btn{
  background:linear-gradient(135deg,#ff6b31 0%,#ff481d 100%)!important;
  border-color:#ff5a29!important;
  color:#fff!important;
  box-shadow:0 9px 22px rgba(255,78,28,.25)!important;
  font-weight:700;
}

body:has(#resultados.active) .print-cta{
  background:rgba(255,255,255,.92);
  border-color:#dce7f6;
  color:#003cf2;
  box-shadow:0 8px 22px rgba(31,77,125,.09);
  font-weight:700;
}

body:has(#resultados.active) .print-cta .btn-icon{
  color:#003cf2;
}

/* Cards e painéis: branco levemente translúcido, como a referência. */
#resultados .panel,
#resultados .kpi{
  border-color:rgba(219,231,244,.9);
  background:rgba(255,255,255,.94);
  box-shadow:0 10px 24px rgba(44,91,139,.105);
  backdrop-filter:saturate(112%) blur(1.5px);
  -webkit-backdrop-filter:saturate(112%) blur(1.5px);
}

#resultados .result-month-panel{
  padding:14px 18px;
  border-radius:14px;
  margin-bottom:18px;
}

#resultados .result-month-toolbar{
  grid-template-columns:minmax(330px,420px) minmax(0,1fr);
  gap:20px;
}

#resultados .result-month-field .result-field-label{
  color:#071c8f;
  font-size:14px;
  font-weight:800;
  letter-spacing:-.1px;
}

#resultados .result-field-label .result-section-icon{
  color:#003cff;
}

#resultados .result-month-field .timesheet-month-input-wrap{
  min-height:44px;
  padding:9px 14px;
  border:1px solid #d4e1f0;
  border-radius:8px;
  background:rgba(255,255,255,.96);
  box-shadow:0 2px 8px rgba(38,83,129,.045);
}

#resultados .result-month-field input{
  color:#08238f;
  font-size:15px;
  font-weight:700;
}

#resultados .result-ranking-note{
  min-height:82px;
  grid-template-columns:58px minmax(0,1fr) 42px;
  gap:15px;
  padding:12px 16px;
  border-radius:12px;
  background:linear-gradient(90deg,rgba(231,241,255,.92) 0%,rgba(244,248,255,.84) 100%);
}

#resultados .result-note-icon{
  width:58px;
  height:58px;
  color:#003df5;
  background:rgba(49,110,255,.105);
}

#resultados .result-note-icon svg{
  width:28px;
  height:28px;
}

#resultados .result-note-copy strong{
  color:#071b8d;
  font-size:17px;
  font-weight:800;
}

#resultados .result-note-copy > span{
  color:#6870a6;
  font-size:13px;
  font-weight:400;
  line-height:1.4;
}

#resultados .result-note-info{
  width:42px;
  height:42px;
  color:#003df5;
  background:rgba(49,110,255,.105);
}

/* Quatro indicadores principais */
#resultados .kpi-grid{
  gap:20px;
  margin-bottom:18px;
}

#resultados .kpi{
  min-height:103px;
  padding:16px 16px;
  gap:20px;
  border-radius:13px;
}

#resultados .kpi::after{
  opacity:.22;
}

#resultados .kpi .circle{
  width:58px;
  height:58px;
  flex:0 0 58px;
  border:0;
  box-shadow:none;
}

#resultados .kpi-meta .circle.blue{
  color:#003df8;
  background:rgba(52,112,255,.105);
}

#resultados .kpi-total .circle.green,
#resultados .kpi-atingimento .circle.green{
  color:#009845;
  background:rgba(42,190,112,.115);
}

#resultados .kpi-falta .circle.orange{
  color:#ff4b18;
  background:rgba(255,151,60,.13);
}

#resultados .kpi span{
  margin-bottom:4px;
  color:#5f68a4;
  font-size:14px;
  font-weight:400;
}

#resultados .kpi strong{
  color:#003cf5;
  font-size:24px;
  line-height:1.05;
  font-weight:800;
  letter-spacing:-.65px;
}

#resultados .kpi-falta strong{
  color:#ff320b;
}

#resultados .result-kpi-icon{
  width:27px;
  height:27px;
}

/* Progresso */
#resultados .progress-panel{
  padding:21px 24px 25px;
  margin-bottom:18px;
  border-radius:14px;
}

#resultados .progress-head{
  margin-bottom:13px;
}

#resultados .panel h3{
  color:#071d8c;
  font-size:23px;
  font-weight:800;
  letter-spacing:-.45px;
}

#resultados .progress-panel .result-section-icon{
  color:#003dff;
}

#resultados .progress-head strong{
  color:#003cf7;
  font-size:25px;
  font-weight:800;
  letter-spacing:-.55px;
}

#resultados .progress{
  height:11px;
  margin-bottom:27px;
  border:0;
  background:#dce8f4;
  box-shadow:none;
}

#resultados .progress div{
  background:linear-gradient(90deg,#003dff 0%,#0a4df4 100%);
  box-shadow:none;
}

#resultados .mini-grid{
  max-width:none;
  width:100%;
}

#resultados .mini-item{
  grid-template-columns:58px minmax(0,1fr);
  column-gap:18px;
  padding:0 34px;
  border-right:1px solid rgba(202,218,235,.88);
}

#resultados .mini-item .circle{
  width:58px;
  height:58px;
  flex-basis:58px;
  border:0;
  box-shadow:none;
}

#resultados .mini-item .circle.blue{
  color:#003df8;
  background:rgba(52,112,255,.105);
}

#resultados .mini-item .circle.green{
  color:#009845;
  background:rgba(42,190,112,.115);
}

#resultados .mini-item span{
  color:#5f68a4;
  font-size:14px;
  font-weight:400;
}

#resultados .mini-item strong{
  color:#003cf5;
  font-size:22px;
  font-weight:800;
  letter-spacing:-.45px;
}

/* Ranking */
#resultados .ranking-panel{
  padding:19px 20px 20px;
  border-radius:14px;
}

#resultados .ranking-panel .panel-head{
  margin-bottom:12px;
}

#resultados .ranking-panel .result-section-icon{
  width:24px;
  height:24px;
  flex-basis:24px;
  color:#ffc21c;
}

#resultados .ranking-wrap{
  border:1px solid #dbe6f2;
  border-radius:10px;
  background:#fff;
  box-shadow:none;
}

#resultados .ranking-table th{
  padding:11px 18px;
  background:#eef4f9;
  color:#132b70;
  font-size:13px;
  font-weight:700;
  border-bottom-color:#dce7f2;
}

#resultados .ranking-table td{
  height:44px;
  padding:7px 18px;
  color:#152d7e;
  font-size:13px;
  font-weight:500;
  border-bottom-color:#dfe9f3;
}

#resultados .ranking-table tbody tr:nth-child(even) td{
  background:rgba(242,247,252,.72);
}

#resultados .ranking-table .val-blue{
  color:#003cf5!important;
  font-weight:800;
}

#resultados .ranking-table .positive,
#resultados .ranking-table .val-orange{
  color:#ff300b!important;
  font-weight:800;
}

#resultados .ranking-table .negative,
#resultados .ranking-table .val-green{
  color:#078b36!important;
  font-weight:800;
}

#resultados .rank-badge{
  width:38px;
  height:38px;
  font-size:14px;
  color:#09245f;
  background:#e8eef6;
}

#resultados .rank-badge.r1{
  color:#715400;
  background:#ffc533;
}

#resultados .rank-badge.r2{
  color:#0a3d84;
  background:#dbe8f6;
}

#resultados .rank-badge.r3{
  color:#fff;
  background:#e95b20;
}

@media(min-width:981px){
  body:has(#resultados.active) main{
    padding-top:33px;
  }

  body:has(#resultados.active) .topbar{
    margin-bottom:19px;
  }

  body:has(#resultados.active) .topbar h2{
    font-size:45px;
    line-height:1;
  }

  body:has(#resultados.active) .topbar p{
    margin-top:7px;
    font-size:17px;
  }

  body:has(#resultados.active) .logout-btn,
  body:has(#resultados.active) .print-cta{
    height:46px;
    border-radius:8px;
  }

  body:has(#resultados.active) .logout-btn{
    min-width:108px;
    padding:0 18px;
  }

  body:has(#resultados.active) .print-cta{
    min-width:205px;
    padding:0 16px;
    font-size:13px;
  }
}

@media(max-width:1180px) and (min-width:981px){
  #resultados .result-month-toolbar{
    grid-template-columns:minmax(300px,360px) minmax(0,1fr);
  }
  #resultados .kpi strong{
    font-size:22px;
  }
}

@media(max-width:980px){
  body:has(#resultados.active) main{
    background:linear-gradient(180deg,#f6fbff 0%,#f1f8fe 100%);
  }

  #resultados .result-month-toolbar{
    grid-template-columns:1fr;
  }

  #resultados .kpi-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  #resultados .mini-item,
  #resultados .mini-item:first-child,
  #resultados .mini-item:last-child{
    border-right:0;
    padding:0;
  }
}

@media(max-width:560px){
  #resultados .kpi-grid{
    grid-template-columns:1fr;
  }
  #resultados .kpi{
    min-height:88px;
  }
  #resultados .ranking-panel{
    padding:16px 14px;
  }
}


/* =========================================================
   V26.44 — ajustes solicitados na tela Resultados
   Somente frontend. Nenhuma regra de negócio/API alterada.
   ========================================================= */

/* Meta do mês / Ranking por mês: ícones explicitamente azuis. */
#resultados .kpi-meta .circle.blue,
#resultados .kpi-meta .target-mini,
#resultados .kpi-meta .target-mini::before,
#resultados .result-ranking-note .result-note-icon,
#resultados .result-ranking-note .result-note-icon svg{
  color:#0047ff !important;
}

#resultados .kpi-meta .circle.blue{
  background:rgba(50,112,255,.12) !important;
}

#resultados .result-ranking-note .result-note-icon{
  background:rgba(50,112,255,.11) !important;
}

/* Todo o campo visual do mês funciona como área de clique. */
#resultados .result-month-field .timesheet-month-input-wrap,
#resultados .result-month-field .timesheet-month-input-wrap input{
  cursor:pointer;
}

#resultados .result-month-field .timesheet-month-input-wrap{
  position:relative;
}

/* =========================================================
   V26.46 — Funcionários e metas conforme referência
   Somente frontend: HTML/CSS visual. Backend e regras intactos.
   ========================================================= */
body:has(#metas.active){
  background:#f4fafe;
}
body:has(#metas.active) main{
  padding:72px 42px 42px 44px;
  background:
    radial-gradient(circle at 76% 0%,rgba(215,235,252,.42),transparent 31%),
    linear-gradient(180deg,#f7fbff 0%,#f2f9fe 100%);
}
body:has(#metas.active) .topbar{
  margin-bottom:24px;
  align-items:center;
}
body:has(#metas.active) .topbar h2{
  color:#0a1d90;
  font-size:44px;
  line-height:1;
  font-weight:800;
  letter-spacing:-1.3px;
}
body:has(#metas.active) .topbar p{
  margin-top:8px;
  color:#5d65a6;
  font-size:17px;
  line-height:1.35;
  font-weight:400;
}
body:has(#metas.active) .topbar-actions{
  align-self:flex-start;
  padding-top:0;
}
body:has(#metas.active) .logout-btn{
  min-width:108px;
  height:48px;
  padding:0 20px;
  border:1px solid #ff5b28!important;
  border-radius:9px;
  background:linear-gradient(135deg,#ff6c32 0%,#ff481d 100%)!important;
  color:#fff!important;
  box-shadow:0 9px 22px rgba(255,78,28,.25)!important;
  font-size:14px;
  font-weight:700;
}

#metas{
  color:#0e236f;
}
#metas .panel{
  border:1px solid rgba(219,231,244,.92);
  border-radius:16px;
  background:rgba(255,255,255,.96);
  box-shadow:0 10px 28px rgba(44,91,139,.105);
  backdrop-filter:saturate(110%) blur(1.2px);
  -webkit-backdrop-filter:saturate(110%) blur(1.2px);
}
#metas .metas-config-panel{
  padding:14px 22px 22px;
  margin-bottom:26px;
}
#metas .metas-section-heading{
  display:flex;
  align-items:center;
  gap:20px;
  min-width:0;
}
#metas .metas-heading-icon{
  width:52px;
  height:52px;
  flex:0 0 52px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(48,111,255,.10);
  color:#0045ff;
}
#metas .metas-heading-icon svg{
  width:25px;
  height:25px;
  display:block;
}
/* V26.47: ajuste fino — ícone de Configuração do mês menor e alinhado ao título */
#metas .metas-config-panel .metas-heading-icon{
  width:44px;
  height:44px;
  flex:0 0 44px;
}
#metas .metas-config-panel .metas-heading-icon svg{
  width:21px;
  height:21px;
}
#metas .metas-section-heading h3{
  margin:0;
  color:#0a1d90;
  font-size:26px;
  line-height:1.1;
  font-weight:800;
  letter-spacing:-.5px;
}
#metas .metas-form-grid{
  display:grid;
  grid-template-columns:1.18fr 1fr 1fr 1fr;
  gap:0;
  margin-top:4px;
}
#metas .metas-form-field{
  min-width:0;
  padding:0 16px;
  color:#1e2d89;
  font-size:14px;
  font-weight:500;
  border-left:1px solid #d9e5f1;
}
#metas .metas-form-field:first-child{
  padding-left:0;
  border-left:0;
}
#metas .metas-form-field:last-child{
  padding-right:0;
}
#metas .metas-field-label{
  display:flex;
  align-items:center;
  gap:11px;
  min-height:39px;
  margin-bottom:4px;
  color:#24328b;
  font-size:14px;
  font-weight:500;
}
#metas .metas-field-icon{
  width:38px;
  height:38px;
  flex:0 0 38px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#0049ff;
  background:rgba(49,111,255,.09);
}
#metas .metas-field-icon svg{
  width:20px;
  height:20px;
  display:block;
}
#metas .metas-input-shell{
  display:block;
  width:100%;
}
#metas .metas-form-grid input{
  display:block;
  width:100%;
  height:54px;
  margin:0;
  padding:0 16px;
  border:1px solid #d1deed;
  border-radius:9px;
  outline:0;
  background:#fff;
  color:#071b8c;
  font-size:16px;
  font-weight:700;
  box-shadow:0 2px 8px rgba(38,83,129,.025);
  transition:border-color .15s ease,box-shadow .15s ease;
}
#metas .metas-form-grid input:focus{
  border-color:#8eb7ff;
  box-shadow:0 0 0 3px rgba(0,73,255,.08);
}
#metas #mesReferencia{
  cursor:pointer;
  color:#071b8c;
}

#metas .metas-employees-panel{
  padding:14px 20px 18px;
  margin-bottom:0;
}
#metas .metas-employees-head{
  margin:0 0 10px;
  align-items:center;
}
#metas .metas-add-employee{
  min-width:210px;
  height:44px;
  padding:0 18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  border:1px solid rgba(0,145,72,.18);
  border-radius:8px;
  background:linear-gradient(180deg,#24ad64 0%,#159653 100%);
  color:#fff;
  box-shadow:0 3px 8px rgba(0,128,64,.10);
  font-size:13px;
  font-weight:600;
}
#metas .metas-add-employee:hover{
  background:linear-gradient(180deg,#1fa65e 0%,#118b4c 100%);
  box-shadow:0 4px 10px rgba(0,128,64,.12);
}
#metas .metas-add-employee svg{
  width:18px;
  height:18px;
  flex:0 0 18px;
}
#metas .metas-table-wrap{
  overflow-x:auto;
  border:1px solid #dbe6f2;
  border-radius:10px;
  background:#fff;
}
#metas .metas-employee-table{
  width:100%;
  min-width:980px;
  table-layout:fixed;
}
#metas .metas-employee-table th{
  height:48px;
  padding:10px 16px;
  background:#edf4f9;
  color:#0e2478;
  border-bottom:1px solid #dce7f2;
  font-size:13px;
  font-weight:700;
}
#metas .metas-employee-table th:nth-child(1){width:20%}
#metas .metas-employee-table th:nth-child(2){width:17%}
#metas .metas-employee-table th:nth-child(3){width:13%}
#metas .metas-employee-table th:nth-child(4){width:15%}
#metas .metas-employee-table th:nth-child(5){width:15%}
#metas .metas-employee-table th:nth-child(6){width:20%}
#metas .metas-employee-table td{
  height:64px;
  padding:9px 10px;
  border-bottom:1px solid #dfe8f2;
  background:#fff;
}
#metas .metas-employee-table tbody tr:last-child td{
  border-bottom:0;
}
#metas .metas-employee-table input{
  height:42px;
  min-width:0;
  padding:0 13px;
  border:1px solid #d4e1ef;
  border-radius:8px;
  background:#fff;
  color:#20243d;
  font-size:13px;
  font-weight:500;
  box-shadow:inset 0 1px 2px rgba(36,76,117,.02);
}
#metas .metas-employee-table input.auto-field{
  background:linear-gradient(180deg,#f2f8ff 0%,#edf6ff 100%);
  color:#0042f3;
  font-weight:800;
}
#metas .employee-name-readonly{
  color:#262b45!important;
  background:#fff!important;
}
#metas .employee-row-actions{
  display:flex;
  align-items:center;
  gap:10px;
}
#metas .employee-row-actions button{
  height:42px;
  min-width:96px;
  padding:0 13px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border-radius:8px;
  font-size:13px;
  font-weight:700;
}
#metas .employee-row-actions .secondary{
  border:1px solid #90b7ff;
  background:#fff;
  color:#0047ff;
}
#metas .employee-row-actions .remove{
  border:1px solid transparent;
  background:#fff0f1;
  color:#ff1d25;
}
#metas .employee-row-actions .secondary::before,
#metas .employee-row-actions .remove::before{
  content:'';
  width:16px;
  height:16px;
  flex:0 0 16px;
  display:block;
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
}
#metas .employee-row-actions .secondary::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='%230047ff'%3E%3Cpath d='M12.146.146a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1 0 .708l-10 10a.5.5 0 0 1-.168.11l-5 2a.5.5 0 0 1-.65-.65l2-5a.5.5 0 0 1 .11-.168zM11.207 2.5 13.5 4.793 14.793 3.5 12.5 1.207zm1.586 3L10.5 3.207 4 9.707V10h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.293zm-9.761 5.175-.106.106-1.528 3.821 3.821-1.528.106-.106A.5.5 0 0 1 5 12.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.468-.325'/%3E%3C/svg%3E");
}
#metas .employee-row-actions .remove::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='%23ff1d25'%3E%3Cpath d='M5.5 5.5A.5.5 0 0 1 6 6v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5m2.5 0a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5m3 .5a.5.5 0 0 0-1 0v6a.5.5 0 0 0 1 0z'/%3E%3Cpath d='M14.5 3a1 1 0 0 1-1 1H13v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4h-.5a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1H6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1h3.5a1 1 0 0 1 1 1zM4.118 4 4 4.059V13a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4.059L11.882 4zM2.5 3h11V2h-11z'/%3E%3C/svg%3E");
}

@media(max-width:1240px) and (min-width:981px){
  body:has(#metas.active) main{padding-left:30px;padding-right:30px}
  #metas .metas-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  #metas .metas-form-field{padding:0;border-left:0}
  #metas .metas-form-field:nth-child(even){padding-left:16px;border-left:1px solid #d9e5f1}
}
@media(max-width:980px){
  body:has(#metas.active) main{
    padding:96px 16px 24px;
    background:linear-gradient(180deg,#f7fbff 0%,#f2f9fe 100%);
  }
  body:has(#metas.active) .topbar{align-items:flex-start}
  body:has(#metas.active) .topbar h2{font-size:32px}
  body:has(#metas.active) .topbar p{font-size:15px}
  #metas .metas-config-panel,
  #metas .metas-employees-panel{padding:16px}
  #metas .metas-section-heading h3{font-size:21px}
  #metas .metas-heading-icon{width:44px;height:44px;flex-basis:44px}
  #metas .metas-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  #metas .metas-form-field,
  #metas .metas-form-field:first-child,
  #metas .metas-form-field:last-child{padding:0;border-left:0}
  #metas .metas-employees-head{align-items:flex-start}
  #metas .metas-add-employee{min-width:190px}
}
@media(max-width:650px){
  #metas .metas-form-grid{grid-template-columns:1fr}
  #metas .metas-employees-head{flex-direction:column;align-items:stretch;gap:14px}
  #metas .metas-add-employee{width:100%;min-width:0}
  #metas .metas-section-heading{gap:10px}
  #metas .metas-section-heading h3{font-size:19px}
}

/* =========================================================
   V26.49 — Folha de ponto conforme referência visual
   Somente frontend: HTML/CSS. Backend, APIs e regras intactos.
   ========================================================= */
body:has(#folha-ponto.active){
  background:#f4fafe;
}
body:has(#folha-ponto.active) main{
  padding:64px 38px 40px 48px;
  background:
    radial-gradient(circle at 78% 0%,rgba(218,236,252,.46),transparent 32%),
    linear-gradient(180deg,#f7fbff 0%,#f2f9fe 100%);
}
body:has(#folha-ponto.active) .topbar{
  margin-bottom:28px;
  align-items:flex-start;
}
body:has(#folha-ponto.active) .topbar h2{
  color:#103f86;
  font-size:44px;
  line-height:1;
  font-weight:800;
  letter-spacing:-1.25px;
}
body:has(#folha-ponto.active) .topbar p{
  margin-top:9px;
  color:#52699f;
  font-size:17px;
  line-height:1.35;
  font-weight:400;
}
body:has(#folha-ponto.active) .topbar-actions{
  align-self:flex-start;
}
body:has(#folha-ponto.active) .print-cta{
  display:none!important;
}
body:has(#folha-ponto.active) .logout-btn{
  min-width:112px;
  height:52px;
  padding:0 22px;
  border:1px solid #ff5b28!important;
  border-radius:9px;
  background:linear-gradient(135deg,#ff6b2f 0%,#ff4319 100%)!important;
  color:#fff!important;
  box-shadow:0 10px 24px rgba(255,75,26,.25)!important;
  font-size:16px;
  font-weight:700;
}
body:has(#folha-ponto.active) .logout-btn .logout-icon{
  width:19px;
  height:19px;
}

#folha-ponto{
  color:#0e2d70;
}
#folha-ponto .panel{
  border:1px solid rgba(217,230,244,.95);
  border-radius:16px;
  background:rgba(255,255,255,.96);
  box-shadow:0 10px 28px rgba(44,91,139,.09);
  backdrop-filter:saturate(110%) blur(1px);
  -webkit-backdrop-filter:saturate(110%) blur(1px);
}
#folha-ponto .timesheet-control-panel{
  padding:24px 24px 16px;
  margin-bottom:24px;
}
#folha-ponto .timesheet-control-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  margin:0 0 20px;
}
#folha-ponto .timesheet-section-heading{
  display:flex;
  align-items:center;
  gap:20px;
  min-width:0;
}
#folha-ponto .timesheet-heading-icon{
  width:58px;
  height:58px;
  flex:0 0 58px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(43,114,255,.10);
  color:#0d66f3;
}
#folha-ponto .timesheet-heading-icon svg{
  width:27px;
  height:27px;
  display:block;
}
#folha-ponto .timesheet-section-heading h3{
  margin:0;
  color:#103f86;
  font-size:27px;
  line-height:1.08;
  font-weight:800;
  letter-spacing:-.55px;
}
#folha-ponto .timesheet-description{
  margin:6px 0 0;
  color:#50699f;
  font-size:15px;
  line-height:1.35;
  font-weight:400;
}
#folha-ponto .timesheet-print-all{
  flex:0 0 auto;
  min-width:252px;
  height:58px;
  padding:0 22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  border:1px solid rgba(0,132,57,.16);
  border-radius:9px;
  background:linear-gradient(180deg,#0bad55 0%,#008c42 100%);
  color:#fff;
  box-shadow:0 7px 18px rgba(0,142,67,.17);
  font-size:15px;
  font-weight:700;
}
#folha-ponto .timesheet-print-all:hover{
  background:linear-gradient(180deg,#0aa750 0%,#00843d 100%);
}
#folha-ponto .timesheet-print-all svg{
  width:22px;
  height:22px;
  flex:0 0 22px;
}
#folha-ponto .timesheet-print-all:disabled{
  opacity:.5;
}
#folha-ponto .timesheet-toolbar{
  display:grid;
  grid-template-columns:minmax(330px,390px) minmax(0,1fr);
  gap:26px;
  align-items:end;
  margin:0;
}
#folha-ponto .timesheet-month-field{
  display:block;
  min-width:0;
  color:#0e2c70;
  font-weight:700;
}
#folha-ponto .timesheet-field-label{
  display:block;
  margin-bottom:8px;
  color:#123777;
  font-size:14px;
  font-weight:700;
}
#folha-ponto .timesheet-month-input-wrap{
  width:100%;
  height:54px;
  margin:0;
  padding:0 16px;
  display:flex;
  align-items:center;
  gap:13px;
  border:1px solid #cdddef;
  border-radius:9px;
  background:#fff;
  box-shadow:0 1px 3px rgba(38,83,129,.025);
}
#folha-ponto .timesheet-input-icon{
  width:22px;
  height:22px;
  flex:0 0 22px;
  color:#0862e6;
}
#folha-ponto .timesheet-month-input-wrap input{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  height:100%;
  margin:0;
  padding:0;
  border:0;
  outline:0;
  background:transparent;
  color:#103f86;
  font-size:16px;
  font-weight:700;
  cursor:pointer;
}
#folha-ponto .timesheet-rule-note{
  min-height:102px;
  padding:18px 24px;
  display:grid;
  grid-template-columns:30px minmax(0,1fr);
  align-items:start;
  gap:17px;
  border:0;
  border-radius:11px;
  background:linear-gradient(180deg,#eef7ff 0%,#e8f3ff 100%);
}
#folha-ponto .timesheet-note-icon{
  width:27px;
  height:27px;
  display:grid;
  place-items:center;
  color:#0b65ef;
  margin-top:1px;
}
#folha-ponto .timesheet-note-icon svg{
  width:25px;
  height:25px;
  display:block;
}
#folha-ponto .timesheet-note-copy{
  display:block;
  min-width:0;
}
#folha-ponto .timesheet-rule-note strong{
  display:block;
  margin:0 0 5px;
  color:#103f86;
  font-size:15px;
  line-height:1.25;
  font-weight:800;
}
#folha-ponto .timesheet-rule-note .timesheet-note-copy>span{
  display:block;
  color:#496598;
  font-size:13.5px;
  line-height:1.45;
  font-weight:400;
}

#folha-ponto .timesheet-list-panel{
  margin-top:0;
  padding:18px 24px 20px;
}
#folha-ponto .timesheet-list-head{
  margin:0 0 14px;
  align-items:center;
}
#folha-ponto .timesheet-list-panel .timesheet-heading-icon{
  width:58px;
  height:58px;
  flex-basis:58px;
}
#folha-ponto .timesheet-count{
  display:block;
  min-height:0;
  margin-top:5px;
  padding:0;
  border-radius:0;
  background:transparent;
  color:#50699f;
  font-size:14px;
  line-height:1.25;
  font-weight:400;
}
#folha-ponto .timesheet-count::after{
  content:' cadastrados';
}
#folha-ponto .timesheet-table-wrap{
  overflow-x:auto;
  border:1px solid #d7e4f1;
  border-radius:10px;
  background:#fff;
}
#folha-ponto .timesheet-employee-table{
  width:100%;
  min-width:780px;
  table-layout:fixed;
  border-collapse:collapse;
}
#folha-ponto .timesheet-employee-table thead th{
  height:52px;
  padding:12px 22px;
  background:#edf4f9;
  color:#103f86;
  border-bottom:1px solid #d8e5f0;
  font-size:13px;
  line-height:1.2;
  font-weight:700;
}
#folha-ponto .timesheet-employee-table th:nth-child(1){width:34%}
#folha-ponto .timesheet-employee-table th:nth-child(2){width:44%}
#folha-ponto .timesheet-employee-table th:nth-child(3),
#folha-ponto .timesheet-employee-table td:nth-child(3){display:none}
#folha-ponto .timesheet-employee-table th:nth-child(4){width:22%;text-align:right}
#folha-ponto .timesheet-employee-table td{
  height:61px;
  padding:9px 22px;
  border-bottom:1px solid #dce7f1;
  background:#fff;
  color:#3e5e94;
  font-size:14px;
  vertical-align:middle;
}
#folha-ponto .timesheet-employee-table tbody tr:last-child td{
  border-bottom:0;
}
#folha-ponto .timesheet-employee-table td:first-child strong{
  color:#103f86;
  font-size:14px;
  font-weight:700;
}
#folha-ponto .timesheet-employee-table td:nth-child(4){
  text-align:right;
}
#folha-ponto .timesheet-row-print{
  min-width:132px;
  height:42px;
  padding:0 14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  border:1px solid #aac8f3;
  border-radius:8px;
  background:#fff;
  color:#075bea;
  box-shadow:0 1px 3px rgba(43,96,154,.03);
  font-size:0;
  font-weight:700;
  white-space:nowrap;
}
#folha-ponto .timesheet-row-print::before{
  content:'';
  width:18px;
  height:18px;
  flex:0 0 18px;
  display:block;
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 16 16'%3E%3Cpath d='M4 1.5h5l3 3V14a.5.5 0 0 1-.5.5h-7A.5.5 0 0 1 4 14z' stroke='%23075bea' stroke-width='1.3'/%3E%3Cpath d='M9 1.5v3h3M6 7h4M6 9.5h4M6 12h3' stroke='%23075bea' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E");
}
#folha-ponto .timesheet-row-print::after{
  content:'Gerar PDF';
  font-size:13px;
  line-height:1;
  font-weight:700;
}
#folha-ponto .timesheet-row-print:hover{
  border-color:#78aaf0;
  background:#f8fbff;
}

@media(max-width:1200px) and (min-width:981px){
  body:has(#folha-ponto.active) main{padding-left:30px;padding-right:30px}
  #folha-ponto .timesheet-toolbar{grid-template-columns:minmax(300px,350px) minmax(0,1fr);gap:18px}
  #folha-ponto .timesheet-print-all{min-width:218px}
}
@media(max-width:980px){
  body:has(#folha-ponto.active) main{
    padding:96px 16px 24px;
    background:linear-gradient(180deg,#f7fbff 0%,#f2f9fe 100%);
  }
  body:has(#folha-ponto.active) .topbar h2{font-size:32px}
  body:has(#folha-ponto.active) .topbar p{font-size:15px}
  #folha-ponto .timesheet-control-panel,
  #folha-ponto .timesheet-list-panel{padding:16px}
  #folha-ponto .timesheet-control-head{align-items:stretch}
  #folha-ponto .timesheet-print-all{min-width:190px}
  #folha-ponto .timesheet-toolbar{grid-template-columns:1fr;gap:14px}
  #folha-ponto .timesheet-rule-note{min-height:88px}
}
@media(max-width:680px){
  #folha-ponto .timesheet-control-head{flex-direction:column}
  #folha-ponto .timesheet-print-all{width:100%}
  #folha-ponto .timesheet-section-heading{gap:12px;align-items:flex-start}
  #folha-ponto .timesheet-heading-icon,
  #folha-ponto .timesheet-list-panel .timesheet-heading-icon{width:46px;height:46px;flex-basis:46px}
  #folha-ponto .timesheet-heading-icon svg{width:22px;height:22px}
  #folha-ponto .timesheet-section-heading h3{font-size:21px}
  #folha-ponto .timesheet-description{font-size:13px}
  #folha-ponto .timesheet-rule-note{grid-template-columns:26px 1fr;padding:15px;gap:12px}
  #folha-ponto .timesheet-employee-table{min-width:660px}
}


/* =========================================================
   V26.50 — Design system tipográfico e HTML semântico
   Padronização visual de TODAS as abas. Somente frontend.
   ========================================================= */
:root{
  --ui-title-blue:#0a1d90;
  --ui-text-blue:#243b73;
  --ui-muted-blue:#566b9b;
  --ui-page-title-size:40px;
  --ui-page-subtitle-size:17px;
  --ui-section-title-size:24px;
  --ui-body-size:14px;
  --ui-label-size:14px;
  --ui-heading-icon-box:44px;
  --ui-heading-icon-size:20px;
  --ui-inline-title-icon-size:22px;
}

/* Utilitário acessível para legendas estruturais de tabelas. */
.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}

/* Título principal e subtítulo: um padrão para qualquer aba ativa. */
.topbar h1#screenTitle{
  margin:0;
  color:var(--ui-title-blue)!important;
  font-size:var(--ui-page-title-size)!important;
  line-height:1.06!important;
  font-weight:800!important;
  letter-spacing:-1px!important;
}
.topbar #screenSubtitle{
  margin:9px 0 0!important;
  color:var(--ui-muted-blue)!important;
  font-size:var(--ui-page-subtitle-size)!important;
  line-height:1.4!important;
  font-weight:400!important;
}

/* Títulos internos de seção: mesma família, peso, cor e escala em todas as telas. */
.screen .ui-section-title{
  margin:0!important;
  color:var(--ui-title-blue)!important;
  font-size:var(--ui-section-title-size)!important;
  line-height:1.15!important;
  font-weight:800!important;
  letter-spacing:-.45px!important;
}

/* Texto descritivo padronizado sem alterar valores, tabelas ou lógica. */
.screen .hint,
.screen .timesheet-description,
.screen .saturday-scale-description,
.screen .benefit-description,
.screen .benefit-list-description,
.screen .result-note-copy>span,
.screen .timesheet-note-copy>span,
.screen .benefit-rule-note>span{
  color:var(--ui-muted-blue)!important;
  font-size:var(--ui-body-size)!important;
  line-height:1.45!important;
  font-weight:400!important;
}

/* Labels de campos com escala comum. */
.screen label,
.screen .result-field-label,
.screen .metas-field-label,
.screen .timesheet-field-label,
.screen .daily-pdf-import-label,
.screen .benefit-month-field{
  font-size:var(--ui-label-size)!important;
}

/* Ícones associados a títulos de seção. */
.screen .ui-heading-icon{
  width:var(--ui-heading-icon-box)!important;
  height:var(--ui-heading-icon-box)!important;
  flex:0 0 var(--ui-heading-icon-box)!important;
  display:grid!important;
  place-items:center!important;
  border-radius:50%!important;
  background:rgba(43,114,255,.09)!important;
  color:#075bea!important;
}
.screen .ui-heading-icon svg{
  width:var(--ui-heading-icon-size)!important;
  height:var(--ui-heading-icon-size)!important;
  display:block!important;
}
.screen .ui-title-icon{
  width:var(--ui-inline-title-icon-size)!important;
  height:var(--ui-inline-title-icon-size)!important;
  flex:0 0 var(--ui-inline-title-icon-size)!important;
  color:#075bea!important;
}

/* Mantém a organização dos títulos com ícone após a padronização. */
#resultados .result-title-with-icon,
#metas .metas-section-heading,
#folha-ponto .timesheet-section-heading{
  align-items:center;
}

/* Azul de título unificado em blocos de apoio que funcionam como subtítulo. */
.screen .result-note-copy>strong,
.screen .timesheet-rule-note strong,
.screen .benefit-rule-note strong,
.screen .saturday-scale-card-head strong{
  color:var(--ui-title-blue)!important;
}

@media(max-width:980px){
  :root{
    --ui-page-title-size:32px;
    --ui-page-subtitle-size:15px;
    --ui-section-title-size:21px;
    --ui-heading-icon-box:42px;
    --ui-heading-icon-size:19px;
    --ui-inline-title-icon-size:20px;
  }
}
@media(max-width:650px){
  :root{
    --ui-page-title-size:26px;
    --ui-page-subtitle-size:14px;
    --ui-section-title-size:19px;
    --ui-body-size:13px;
    --ui-label-size:13px;
    --ui-heading-icon-box:40px;
    --ui-heading-icon-size:18px;
    --ui-inline-title-icon-size:19px;
  }
}

@media print{
  .topbar h1#screenTitle{
    font-size:28px!important;
    margin:0 0 6px!important;
    color:var(--ui-title-blue)!important;
  }
}


/* V26.52 - Vendas extras conforme referência */
.extras-panel{padding:28px 26px 22px;}
.extras-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:18px;}
.extras-title-wrap{display:flex;align-items:flex-start;gap:18px;flex:1 1 auto;}
.extras-accent{width:8px;min-width:8px;height:48px;border-radius:999px;background:linear-gradient(180deg,#1973ff 0%,#0f56ea 100%);box-shadow:0 6px 18px rgba(25,115,255,.18);margin-top:1px;}
.extras-panel-title{margin:0 0 10px;font-size:31px;line-height:1.08;letter-spacing:-.03em;}
.extras-description{margin:0;font-size:16px;line-height:1.55;color:#596da0;}
.extras-clear-btn{min-height:54px;padding:0 22px;border:1.5px solid #9ec8ff;color:#1460ef;background:#fbfdff;box-shadow:none;border-radius:14px;font-weight:700;font-size:15px;display:inline-flex;align-items:center;gap:10px;white-space:nowrap;}
.extras-clear-btn:hover{background:#f5f9ff;border-color:#82b7ff;}
.extra-wrap{border-radius:18px;overflow:auto!important;}
.extra-wrap table{min-width:1220px!important;border-collapse:separate;border-spacing:0;background:#fff;}
.extra-wrap thead th{background:#edf3fa;color:#142c86;font-size:14px;font-weight:800;height:62px;padding:18px 18px;border-bottom:1px solid #e3eaf5;}
.extra-wrap thead th:first-child{border-top-left-radius:14px;}
.extra-wrap thead th:last-child{border-top-right-radius:14px;}
.extra-wrap tbody td{height:66px;padding:10px 18px;border-bottom:1px solid #e7edf7;background:#fff;}
.extra-wrap tbody tr:last-child td:first-child{border-bottom-left-radius:14px;}
.extra-wrap tbody tr:last-child td:last-child{border-bottom-right-radius:14px;}
.extra-wrap th:first-child,.extra-wrap td:first-child{width:220px!important;min-width:220px!important;max-width:220px!important;}
.extra-wrap td input{width:100%;height:42px;border:1.5px solid #d2dbeb;border-radius:12px;padding:0 14px;font-size:15px;color:#5e6780;background:#fff;box-shadow:none;}
.extra-wrap td input:focus{outline:none;border-color:#7eadff;box-shadow:0 0 0 3px rgba(25,115,255,.10);}
.employee-name-cell{font-size:16px;font-weight:800;color:#102977;}
.extra-total-input{background:#e2f6e8!important;border-color:#98dea8!important;color:#0b8f2b!important;font-weight:800!important;font-size:18px!important;text-align:left;cursor:not-allowed;}
@media (max-width: 1180px){.extras-panel-head{flex-direction:column;align-items:stretch;}.extras-clear-btn{align-self:flex-end;}}
@media (max-width: 720px){.extras-panel{padding:22px 16px 16px;}.extras-title-wrap{gap:20px;}.extras-accent{width:6px;min-width:6px;height:40px;}.extras-panel-title{font-size:24px;}.extras-description{font-size:14px;}.extras-clear-btn{width:100%;justify-content:center;}.extra-wrap table{min-width:980px!important;}}


/* V26.53 - Barrinha lateral nas abas */
.title-accent-wrap{
  display:flex;
  align-items:flex-start;
  gap:18px;
}
.section-accent{
  width:8px;
  min-width:8px;
  height:64px;
  border-radius:999px;
  background:linear-gradient(180deg,#1b73ff 0%,#0e56ea 100%);
  box-shadow:0 6px 18px rgba(25,115,255,.16);
  margin-top:1px;
}
.daily-panel-head,
.saturday-scale-head,
.benefit-control-head{
  align-items:flex-start;
}
.daily-panel-head{
  margin-bottom:12px;
}
.saturday-scale-head .title-accent-wrap,
.benefit-control-head .title-accent-wrap{
  flex:1 1 auto;
}
.saturday-scale-head .ui-section-title,
.benefit-control-head .ui-section-title,
.daily-panel-head .ui-section-title{
  margin-top:0;
}
.extras-accent{
  height:64px;
}
.extras-clear-btn svg{
  width:18px;
  height:18px;
  flex:0 0 18px;
}
@media (max-width: 720px){
  .title-accent-wrap{gap:20px;}
  .section-accent,
  .extras-accent{width:6px;min-width:6px;height:46px;}
}


/* V26.54 - Centralização da barrinha, novo ícone e azul unificado */
:root{
  --ui-title-blue:#0a1f96;
  --ui-text-blue:#0a1f96;
  --ui-muted-blue:#5b6fa6;
}
.title-accent-wrap,
.extras-title-wrap{
  align-items:center;
}
.section-accent,
.extras-accent{
  margin-top:0;
  align-self:center;
}
#resultados .ranking-panel .result-section-icon{
  color:#f7b500!important;
}
.topbar h1#screenTitle,
.screen .ui-section-title,
.screen .timesheet-rule-note strong,
.screen .benefit-rule-note strong,
.screen .saturday-scale-card-head strong,
.screen .metas-field-label,
.screen .timesheet-field-label,
.screen .daily-pdf-import-label,
.screen .benefit-month-field,
.screen .result-note-copy>strong,
.table-wrap thead th,
#resultados .progress-head strong,
#resultados .kpi strong,
#resultados .mini-item strong,
#resultados .ranking-table td:nth-child(2),
#resultados .ranking-table td:nth-child(4),
#metas .metas-table-wrap td,
#lancamentos .daily-wrap thead th,
#extras .employee-name-cell,
#folha-ponto .timesheet-count,
#vt-vr .benefit-count,
#vt-vr .benefit-day-line strong,
#escala-sabados .saturday-scale-card-title,
#escala-sabados .saturday-scale-card-head,
#escala-sabados .saturday-scale-toolbar strong{
  color:var(--ui-title-blue)!important;
}


/* V26.55 - Ícone Font Awesome no CTA Limpar vendas extras */
.extras-clear-btn .fa-broom{
  font-size:18px;
  line-height:1;
  flex:0 0 auto;
}

/* V26.56 — ícones de ação e verde mais discreto (somente frontend) */
:root{
  --green:#168a56;
}

/* CTA Editar: ícone de lápis */
#metas .employee-edit-name{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}
#metas .employee-edit-name::before{
  content:"";
  width:15px;
  height:15px;
  flex:0 0 15px;
  display:block;
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23075bea' viewBox='0 0 16 16'%3E%3Cpath d='M12.146.146a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1 0 .708l-10 10a.5.5 0 0 1-.168.11l-5 2a.5.5 0 0 1-.65-.65l2-5a.5.5 0 0 1 .11-.168zM11.207 2.5 13.5 4.793 14.793 3.5 12.5 1.207zm1.586 3L10.5 3.207 4 9.707V10h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.293zm-9.761 5.175-.106.106-1.528 3.821 3.821-1.528.106-.106A.5.5 0 0 1 5 12.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.468-.325'/%3E%3C/svg%3E");
}

/* CTA Gerar PDF: ícone PDF */
#folha-ponto .timesheet-row-print::before{
  width:18px;
  height:18px;
  flex:0 0 18px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23075bea' viewBox='0 0 16 16'%3E%3Cpath d='M14 4.5V14a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2h5.5L14 4.5ZM9.5 1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V5h-2a1.5 1.5 0 0 1-1.5-1.5V1Z'/%3E%3Cpath d='M4.5 11.5v-4h1.35c.95 0 1.55.52 1.55 1.35 0 .84-.6 1.36-1.55 1.36H5.3v1.29h-.8Zm.8-2h.47c.54 0 .8-.2.8-.65 0-.43-.26-.63-.8-.63H5.3V9.5Zm2.55 2v-4h1.3c1.28 0 2.05.73 2.05 1.99 0 1.27-.77 2.01-2.05 2.01h-1.3Zm.8-.7h.44c.83 0 1.28-.44 1.28-1.31 0-.85-.45-1.29-1.28-1.29h-.44v2.6Zm3.05.7v-4h2.55v.72H12.5v.98h1.55v.7H12.5v1.6h-.8Z'/%3E%3C/svg%3E");
}

/* Verde mais sóbrio nos CTAs principais */
.primary{
  background:#168a56;
}
.primary:hover{
  background:#137b4d;
}
#metas .metas-add-employee{
  border-color:rgba(22,138,86,.18);
  background:linear-gradient(180deg,#2b9b67 0%,#21885b 100%);
  box-shadow:0 3px 8px rgba(22,138,86,.08);
}
#metas .metas-add-employee:hover{
  background:linear-gradient(180deg,#268f60 0%,#1d7c53 100%);
  box-shadow:0 4px 9px rgba(22,138,86,.10);
}
#folha-ponto .timesheet-print-all{
  border-color:rgba(22,138,86,.15);
  background:linear-gradient(180deg,#2b9b67 0%,#21885b 100%);
  box-shadow:0 5px 14px rgba(22,138,86,.12);
}
#folha-ponto .timesheet-print-all:hover{
  background:linear-gradient(180deg,#268f60 0%,#1d7c53 100%);
}


/* V26.57 - Ícones nos CTAs de Editar e Gerar recibo em VT/VR */
#vt-vr .benefit-edit-btn,
#vt-vr .benefit-receipt-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}
#vt-vr .benefit-edit-btn::before,
#vt-vr .benefit-receipt-btn::before{
  content:"";
  display:block;
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
}
#vt-vr .benefit-edit-btn::before{
  width:15px;
  height:15px;
  flex:0 0 15px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23075bea' viewBox='0 0 16 16'%3E%3Cpath d='M12.146.146a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1 0 .708l-10 10a.5.5 0 0 1-.168.11l-5 2a.5.5 0 0 1-.65-.65l2-5a.5.5 0 0 1 .11-.168zM11.207 2.5 13.5 4.793 14.793 3.5 12.5 1.207zm1.586 3L10.5 3.207 4 9.707V10h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.293zm-9.761 5.175-.106.106-1.528 3.821 3.821-1.528.106-.106A.5.5 0 0 1 5 12.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.468-.325'/%3E%3C/svg%3E");
}
#vt-vr .benefit-receipt-btn::before{
  width:18px;
  height:18px;
  flex:0 0 18px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23ffffff' viewBox='0 0 16 16'%3E%3Cpath d='M14 4.5V14a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2h5.5L14 4.5ZM9.5 1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V5h-2a1.5 1.5 0 0 1-1.5-1.5V1Z'/%3E%3Cpath d='M4.5 11.5v-4h1.35c.95 0 1.55.52 1.55 1.35 0 .84-.6 1.36-1.55 1.36H5.3v1.29h-.8Zm.8-2h.47c.54 0 .8-.2.8-.65 0-.43-.26-.63-.8-.63H5.3V9.5Zm2.55 2v-4h1.3c1.28 0 2.05.73 2.05 1.99 0 1.27-.77 2.01-2.05 2.01h-1.3Zm.8-.7h.44c.83 0 1.28-.44 1.28-1.31 0-.85-.45-1.29-1.28-1.29h-.44v2.6Zm3.05.7v-4h2.55v.72H12.5v.98h1.55v.7H12.5v1.6h-.8Z'/%3E%3C/svg%3E");
}


/* V26.58 - desenho do menu mais visível */
.sidebar-wave{
  filter:saturate(1.08);
}
.sidebar-wave-one{
  background:rgba(22,125,255,.34)!important;
}
.sidebar-wave-two{
  background:rgba(9,102,224,.30)!important;
}
.sidebar-cross{
  background:rgba(36,146,255,.24)!important;
  box-shadow:0 0 0 1px rgba(77,176,255,.05);
}
.sidebar-cross::before{
  background:rgba(36,146,255,.24)!important;
}


/* V26.59 - Tela de login oficial */
body.auth-locked{
  overflow:hidden;
  background:#eef4fb;
}
.auth-screen{
  min-height:100dvh;
  padding:32px;
  background:#f4f8fd;
}
.auth-screen::before,
.auth-screen::after{
  content:"";
  position:absolute;
  border-radius:999px;
  pointer-events:none;
  z-index:0;
}
.auth-screen::before{
  width:1100px;
  height:1100px;
  left:-520px;
  top:-240px;
  background:radial-gradient(circle at center, rgba(41,121,255,.12) 0%, rgba(41,121,255,.06) 42%, rgba(41,121,255,0) 72%);
}
.auth-screen::after{
  width:920px;
  height:920px;
  right:-360px;
  bottom:-240px;
  background:radial-gradient(circle at center, rgba(41,121,255,.10) 0%, rgba(41,121,255,.05) 40%, rgba(41,121,255,0) 72%);
}
.auth-shell{
  position:relative;
  z-index:1;
  width:min(1268px, 100%);
  min-height:736px;
  grid-template-columns:minmax(460px, 1fr) minmax(520px, 1.15fr);
  background:rgba(255,255,255,.95);
  border:1px solid #e1ebf5;
  border-radius:28px;
  box-shadow:0 24px 60px rgba(21,60,124,.12);
}
.auth-left{
  background:linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(252,253,255,.95) 100%);
  padding:64px 72px 56px;
  align-items:center;
  justify-content:center;
}
.auth-left-inner{
  max-width:452px;
}
.auth-form h1{
  margin:0 0 18px;
  color:#0a218f;
  font-size:62px;
  line-height:.96;
  font-weight:900;
  letter-spacing:-.055em;
}
.auth-form h1 span{
  color:#2a78ff;
}
.auth-top-accent{
  display:block;
  width:58px;
  height:10px;
  border-radius:999px;
  background:#9ecbff;
  margin:0 0 28px;
}
.auth-form p{
  margin:0 0 38px;
  color:#4c5f8d;
  font-size:18px;
  line-height:1.4;
  max-width:370px;
}
.auth-field{
  display:block;
  margin-bottom:22px;
}
.auth-label{
  display:block;
  color:#0f2f7c;
  font-size:19px;
  font-weight:800;
  margin-bottom:12px;
}
.auth-input-shell{
  display:flex;
  align-items:center;
  gap:20px;
  width:100%;
  height:68px;
  border:1.5px solid #d8e4f5;
  border-radius:18px;
  background:#f5f9ff;
  padding:0 18px;
  transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.auth-input-shell:focus-within{
  border-color:#81b8ff;
  background:#fbfdff;
  box-shadow:0 0 0 5px rgba(42,120,255,.10);
}
.auth-input-icon{
  width:36px;
  height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#215ff0;
  flex:0 0 36px;
}
.auth-input-icon svg{
  width:26px;
  height:26px;
}
.auth-form input{
  height:100%;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:#111827;
  font-size:18px;
  font-weight:600;
  box-shadow:none!important;
}
.auth-form input::placeholder{
  color:#9da9bf;
  font-weight:500;
}
.password-wrap{
  position:relative;
}
.password-wrap input{
  padding-right:8px;
}
.password-toggle{
  border:0;
  background:transparent;
  color:#215ff0;
  width:34px;
  height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  flex:0 0 34px;
}
.password-toggle:hover{opacity:.85;}
.auth-submit{
  width:100%;
  height:70px;
  margin-top:8px;
  border-radius:18px;
  background:linear-gradient(90deg, #0c2eaa 0%, #0147d0 100%);
  box-shadow:0 18px 36px rgba(12,46,170,.20);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  font-size:21px;
  font-weight:800;
}
.auth-submit:hover{
  background:linear-gradient(90deg, #0a2899 0%, #003fc0 100%);
  box-shadow:0 18px 36px rgba(12,46,170,.24);
}
.auth-submit-arrow{
  width:26px;
  height:26px;
}
.auth-message{
  min-height:24px;
  margin-top:14px;
  font-size:14px;
}
.auth-link{
  color:#0f2f7c;
}
.auth-visual{
  position:relative;
  min-height:100%;
  padding:0;
  background:
    linear-gradient(0deg, rgba(2,57,187,.78), rgba(2,57,187,.78)),
    radial-gradient(circle at 70% 18%, rgba(44,119,255,.44), rgba(44,119,255,0) 28%),
    radial-gradient(circle at 22% 90%, rgba(44,119,255,.50), rgba(44,119,255,0) 34%),
    linear-gradient(135deg, #0636b4 0%, #0731a0 100%);
  overflow:hidden;
}
.auth-visual-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(5,31,102,.18), rgba(5,31,102,.18)),
    url('banner-farmais-login.png') center/cover no-repeat;
  opacity:.24;
  filter:blur(1px);
}
.auth-visual-orb{
  position:absolute;
  border-radius:50%;
  background:rgba(34,120,255,.36);
}
.auth-visual-orb-top{
  width:390px;
  height:390px;
  top:-84px;
  right:-42px;
}
.auth-visual-orb-bottom{
  width:470px;
  height:470px;
  left:-110px;
  bottom:-150px;
}
.auth-visual-plus,
.auth-visual-plus::before{
  position:absolute;
  content:"";
  display:block;
  border-radius:26px;
  background:rgba(49,123,255,.34);
}
.auth-visual-plus{
  width:86px;
  height:214px;
  top:38px;
  right:58px;
}
.auth-visual-plus::before{
  width:214px;
  height:86px;
  left:-64px;
  top:64px;
}
.auth-brand-showcase{
  position:relative;
  z-index:2;
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:48px 54px;
}
.auth-visual-logo{
  width:min(460px, 88%);
  max-width:100%;
  margin-bottom:32px;
  filter:drop-shadow(0 12px 20px rgba(0,20,79,.12));
}
.auth-visual-tagline{
  margin:0;
  color:rgba(255,255,255,.95);
  font-size:14px;
  font-weight:500;
  letter-spacing:.42em;
  text-transform:uppercase;
  padding-left:.42em;
}
.auth-visual-tagline-line{
  width:84px;
  height:3px;
  border-radius:999px;
  background:rgba(255,255,255,.82);
  margin-top:22px;
}
.auth-register-form p{max-width:420px;}
@media(max-width:1180px){
  .auth-shell{grid-template-columns:minmax(420px, .95fr) minmax(440px, 1fr); min-height:680px;}
  .auth-left{padding:52px 48px;}
  .auth-form h1{font-size:54px;}
}
@media(max-width:980px){
  .auth-screen{padding:18px;}
  .auth-shell{grid-template-columns:1fr; min-height:auto;}
  .auth-left{order:2; padding:36px 28px 38px;}
  .auth-left-inner{max-width:100%;}
  .auth-visual{order:1; min-height:320px;}
  .auth-form h1{font-size:48px; text-align:left;}
  .auth-form p{text-align:left; font-size:17px;}
}
@media(max-width:640px){
  .auth-screen{padding:0; background:#f4f8fd;}
  .auth-shell{width:100%; min-height:100dvh; border-radius:0; border:0;}
  .auth-left{padding:30px 20px 34px!important;}
  .auth-form h1{font-size:42px!important;}
  .auth-form p{font-size:16px!important; margin-bottom:28px!important;}
  .auth-top-accent{width:48px; height:8px; margin-bottom:22px;}
  .auth-label{font-size:17px; margin-bottom:10px;}
  .auth-input-shell{height:60px; border-radius:16px; padding:0 16px;}
  .auth-input-icon{width:30px; height:30px; flex-basis:30px;}
  .auth-input-icon svg{width:22px; height:22px;}
  .auth-form input{font-size:16px!important;}
  .auth-submit{height:62px!important; border-radius:16px; font-size:19px;}
  .auth-visual{min-height:270px!important;}
  .auth-brand-showcase{padding:36px 26px;}
  .auth-visual-logo{width:min(330px, 92%); margin-bottom:22px;}
  .auth-visual-tagline{font-size:11px; letter-spacing:.34em;}
  .auth-visual-plus{width:64px; height:160px; top:30px; right:26px;}
  .auth-visual-plus::before{width:160px; height:64px; left:-48px; top:48px;}
  .auth-visual-orb-top{width:250px; height:250px; top:-30px; right:-40px;}
  .auth-visual-orb-bottom{width:320px; height:320px; left:-90px; bottom:-100px;}
}


/* =========================================================
   V26.61 — Login exatamente como a referência aprovada
   Somente frontend. Artes oficiais fornecidas pelo usuário.
   ========================================================= */
body.auth-locked{
  overflow:hidden;
  background:#f6f9fd;
}
.auth-screen{
  position:fixed;
  inset:0;
  min-height:100dvh;
  display:none;
  align-items:center;
  justify-content:center;
  padding:clamp(22px,3.3vw,52px);
  background:
    radial-gradient(circle at 90% 5%, rgba(159,202,255,.24) 0 88px, transparent 89px),
    radial-gradient(circle at 4% 88%, rgba(159,202,255,.20) 0 50px, transparent 51px),
    linear-gradient(147deg, rgba(222,239,255,.68) 0 13%, transparent 13.1% 100%),
    linear-gradient(329deg, rgba(222,239,255,.56) 0 11%, transparent 11.1% 100%),
    #f9fbfe;
  overflow:hidden;
}
body.auth-locked .auth-screen{display:flex;}
.auth-screen::before{
  content:"";
  position:absolute;
  width:1050px;
  height:1050px;
  left:-530px;
  top:-615px;
  border:2px solid rgba(76,148,255,.46);
  border-radius:50%;
  pointer-events:none;
}
.auth-screen::after{
  content:"";
  position:absolute;
  width:900px;
  height:360px;
  left:-250px;
  bottom:-250px;
  border-radius:50%;
  background:rgba(205,227,255,.26);
  transform:rotate(17deg);
  pointer-events:none;
}
.auth-shell{
  position:relative;
  z-index:1;
  width:min(1230px, 86vw);
  height:min(700px, calc(100dvh - 86px));
  min-height:580px;
  display:grid;
  grid-template-columns:45% 55%;
  background:#fff;
  border:1px solid rgba(218,230,244,.88);
  border-radius:24px;
  overflow:hidden;
  box-shadow:0 24px 65px rgba(45,85,137,.12);
}
.auth-left{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:54px 64px;
  background:
    radial-gradient(ellipse at -6% 105%, rgba(203,226,255,.55) 0 16%, transparent 16.2%),
    radial-gradient(ellipse at 8% 108%, rgba(222,237,255,.72) 0 23%, transparent 23.2%),
    #fff;
}
.auth-left::after{
  content:"";
  position:absolute;
  left:-65px;
  bottom:-135px;
  width:320px;
  height:260px;
  border:2px solid rgba(105,167,255,.14);
  border-radius:50%;
  transform:rotate(25deg);
  pointer-events:none;
}
.auth-left-inner{
  position:relative;
  z-index:1;
  width:100%;
  max-width:430px;
}
.auth-form{display:none;}
.auth-form.active{display:block;}
.auth-top-accent{
  display:block;
  width:62px;
  height:8px;
  margin:0 0 28px;
  border-radius:999px;
  background:linear-gradient(90deg,#61aff8,#a9d7ff);
}
.auth-form h1{
  margin:0 0 10px;
  color:#122d82;
  font-size:48px;
  line-height:1.02;
  font-weight:900;
  letter-spacing:-.045em;
}
.auth-form h1 span{
  color:#1e62ff;
}
.auth-form p{
  margin:0 0 50px;
  color:#566894;
  font-size:18px;
  line-height:1.45;
  font-weight:500;
}
.auth-field{
  display:block;
  margin:0 0 24px;
}
.auth-label{
  display:block;
  margin:0 0 10px;
  color:#102c77;
  font-size:17px;
  line-height:1.2;
  font-weight:800;
}
.auth-input-shell{
  display:flex;
  align-items:center;
  gap:20px;
  width:100%;
  height:64px;
  padding:0 20px;
  border:1px solid #d5e2f3;
  border-radius:15px;
  background:linear-gradient(180deg,#f4f8fd 0%,#edf5fd 100%);
  transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.auth-input-shell:focus-within{
  border-color:#82b6ff;
  box-shadow:0 0 0 4px rgba(37,101,255,.09);
  background:#f8fbff;
}
.auth-input-icon{
  width:33px;
  height:33px;
  flex:0 0 33px;
  display:grid;
  place-items:center;
  color:#1c5cf3;
}
.auth-input-icon svg{
  width:25px;
  height:25px;
}
.auth-form input{
  min-width:0;
  flex:1 1 auto;
  height:100%;
  margin:0;
  padding:0 0 0 14px;
  border:0;
  outline:0;
  border-radius:0;
  background:transparent;
  color:#0f172a;
  font:600 17px/1.2 'Poppins',Arial,sans-serif;
  box-shadow:none!important;
}
.auth-form input::placeholder{
  color:#9aa9c0;
  font-weight:500;
}
.password-wrap{position:relative;}
.password-toggle{
  width:38px;
  height:38px;
  flex:0 0 38px;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  background:transparent;
  color:#1d5df4;
  cursor:pointer;
  margin-left:10px;
}
.password-toggle svg{width:25px;height:25px;}
.auth-submit{
  width:100%;
  height:64px;
  margin-top:0;
  border:0;
  border-radius:15px;
  background:linear-gradient(90deg,#10329f 0%,#044cc8 100%);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  font-size:20px;
  font-weight:800;
  box-shadow:0 14px 28px rgba(16,50,159,.18);
}
.auth-submit:hover{
  background:linear-gradient(90deg,#0e2e94 0%,#0345b9 100%);
  box-shadow:0 16px 30px rgba(16,50,159,.22);
}
.auth-submit-arrow{width:25px;height:25px;}
.auth-message{min-height:20px;margin-top:10px;}
.auth-link{margin-top:8px;}
.auth-visual{
  position:relative;
  min-width:0;
  min-height:0;
  padding:0;
  background:#063995;
  overflow:hidden;
}
.auth-art-picture,
.auth-art-image{
  display:block;
  width:100%;
  height:100%;
}
.auth-art-image{
  object-fit:cover;
  object-position:60% center;
}
.auth-register-form p{margin-bottom:28px;}
.auth-register-form .auth-field{margin-bottom:16px;}
.auth-register-form .auth-input-shell{height:58px;}

/* desktop largo: card principal como no mockup */
@media(min-width:981px){
  .auth-shell{
    width:min(1230px,calc(100vw - 150px));
    max-width:1230px;
  }
  .auth-visual{border-radius:0 24px 24px 0; display:grid; place-items:stretch;}
}

/* Tablet/mobile: arte no topo e formulário branco sobreposto */
@media(max-width:980px){
  .auth-screen{
    padding:0;
    align-items:stretch;
    justify-content:stretch;
    overflow-y:auto;
    background:#eef5fc;
  }
  .auth-screen::before,
  .auth-screen::after{display:none;}
  .auth-shell{
    width:100%;
    min-height:100dvh;
    height:auto;
    display:flex;
    flex-direction:column;
    border:0;
    border-radius:0;
    box-shadow:none;
    overflow:visible;
    background:#fff;
  }
  .auth-visual{
    order:1;
    width:100%;
    height:44dvh;
    min-height:310px;
    max-height:520px;
    border-radius:0;
    overflow:hidden;
  }
  .auth-art-image{
    object-fit:cover;
    object-position:center 43%;
  }
  .auth-left{
    order:2;
    width:100%;
    margin-top:-30px;
    padding:38px 30px 44px;
    border-radius:30px 30px 0 0!important;
    background:
      radial-gradient(ellipse at 100% 110%, rgba(215,233,255,.58) 0 21%, transparent 21.2%),
      #fff;
    box-shadow:0 -14px 32px rgba(25,70,130,.10);
  }
  .auth-left-inner{max-width:620px;}
  .auth-form h1{text-align:left;font-size:42px;}
  .auth-form p{text-align:left;font-size:16px;margin-bottom:30px;}
  .auth-top-accent{margin-bottom:20px;}
}

@media(max-width:640px){
  body.auth-locked{overflow:auto;}
  .auth-screen{height:auto;min-height:100dvh;}
  .auth-shell{min-height:100dvh;}
  .auth-visual{
    min-height:300px!important;
    height:41dvh!important;
    max-height:390px;
  }
  .auth-left{
    padding:34px 24px 36px!important;
    margin-top:-28px;
    border-radius:28px 28px 0 0!important;
  }
  .auth-form h1{font-size:38px!important;}
  .auth-form p{font-size:15px!important;margin-bottom:28px!important;}
  .auth-top-accent{width:56px;height:8px;margin-bottom:18px;}
  .auth-label{font-size:16px;}
  .auth-input-shell{height:56px;border-radius:13px;padding:0 14px;}
  .auth-form input{font-size:15px!important;}
  .auth-input-icon{width:29px;height:29px;flex-basis:29px;}
  .auth-input-icon svg{width:22px;height:22px;}
  .password-toggle{width:32px;height:32px;flex-basis:32px;}
  .password-toggle svg{width:22px;height:22px;}
  .auth-submit{height:60px!important;border-radius:15px;font-size:19px;}
}
