
/* HARD FIX v20260701 - layout admin/client */
html,body{margin:0!important;padding:0!important;width:100%!important;min-height:100%!important;}
body{font-family:Arial,Helvetica,sans-serif!important;}
img{max-width:100%!important;height:auto!important;}
.sidebar img,.brand-mini img{width:58px!important;height:58px!important;object-fit:contain!important;}
.app-shell{box-sizing:border-box!important;}
@media(max-width:768px){.app-shell{display:block!important;width:100%!important;padding:8px!important}.sidebar.card{position:relative!important;width:100%!important;height:auto!important}.side-nav{display:grid!important;grid-template-columns:1fr 1fr!important}.main-content{width:100%!important}}

:root{
  --bg:#070707;
  --bg2:#06121f;
  --card:#151515;
  --card2:#1c1c1c;
  --line:#303030;
  --txt:#f7f7f7;
  --mut:#b9b9b9;
  --orange:#e65100;
  --orange2:#b64200;
  --blue:#008cff;
  --blue2:#005fcc;
  --ok:#20b15a;
  --bad:#d44b4b;
  --warn:#f59e0b;
  --radius:18px;
  --shadow:0 12px 38px rgba(0,0,0,.45);
}
*{box-sizing:border-box}
html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  overflow-x:hidden;
  font-family:Arial,Helvetica,sans-serif;
  color:var(--txt);
  background:
    radial-gradient(circle at top left,rgba(0,140,255,.16),transparent 32%),
    radial-gradient(circle at top right,rgba(230,81,0,.18),transparent 36%),
    linear-gradient(135deg,var(--bg),var(--bg2));
}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:none;filter:brightness(1.1)}
img{max-width:100%;height:auto;display:block}
h1,h2,h3{margin:0 0 12px;line-height:1.18}
p{line-height:1.5;margin:8px 0 12px}.mut,.small{color:var(--mut)}.small{font-size:13px}.ok{color:#72e09d}.bad{color:#ff8888}.info{color:#93c5fd}
.wrap{width:min(1120px,100%);margin:0 auto;padding:18px}
.card{background:rgba(21,21,21,.96);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);margin:14px 0;max-width:100%;overflow:hidden}
.brand{display:flex;justify-content:space-between;gap:14px;align-items:center}.brand .actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.brand-left{display:flex;align-items:center;gap:14px;min-width:0}.brand-agendamento{overflow:hidden}.brand-img{width:76px!important;height:76px!important;max-width:76px!important;max-height:76px!important;object-fit:contain!important;border-radius:16px;background:#0b0b0b;border:1px solid #333;padding:6px;box-shadow:0 8px 22px rgba(0,0,0,.35);flex:0 0 auto}.logo{font-size:clamp(22px,4vw,30px);font-weight:900;color:var(--blue);letter-spacing:.2px}.tag{color:var(--mut);line-height:1.4}.pill{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;background:#242424;color:#ddd;font-size:.92rem;white-space:nowrap}
label{display:block;margin:13px 0 6px;color:#ddd;font-weight:700}.checkline{display:flex;align-items:center;gap:8px;margin:8px 0;font-weight:400}.checkline input{width:auto;min-height:auto}
input,select,textarea{width:100%;padding:14px;border-radius:13px;border:1px solid #373737;background:#0d0d0d;color:#fff;font-size:16px;outline:none;min-height:48px}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,140,255,.18)}textarea{min-height:110px;resize:vertical}.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:13px;padding:13px 18px;font-weight:800;cursor:pointer;text-decoration:none;background:linear-gradient(135deg,var(--orange),var(--blue));color:#fff;min-height:46px;text-align:center}.btn:hover{text-decoration:none;filter:brightness(1.07)}.btn2{background:#171717;color:#fff;border:1px solid #444}.btnOk{background:var(--ok);color:#fff}.btnBad{background:var(--bad);color:#fff}.btnFull{width:100%}.actions-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:14px}.sticky-actions{position:sticky;bottom:0;background:linear-gradient(180deg,rgba(21,21,21,.2),rgba(21,21,21,.98) 25%);padding:12px 0 0;margin-top:10px;z-index:5}
.notice{border-left:4px solid var(--blue);background:rgba(0,140,255,.08);padding:12px 14px;border-radius:12px;color:#eee}.bad.notice{border-color:rgba(239,68,68,.5);background:rgba(239,68,68,.08)}.urgent-box{border:1px solid rgba(239,68,68,.45);background:rgba(239,68,68,.08);padding:12px;border-radius:14px;margin:10px 0;font-weight:700}.urgent-disabled{opacity:.55;filter:grayscale(.3);cursor:not-allowed}.urgent-disabled input{cursor:not-allowed}.status-urgente{background:#ef4444!important;color:#fff!important;margin-left:6px}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}.slot{padding:14px 12px;border:1px solid #555;border-radius:13px;background:#111;color:#fff;cursor:pointer;font-weight:800;text-align:center;min-height:48px}.slot.sel{background:var(--blue);color:#fff;border-color:var(--blue)}
.table-wrap{width:100%;overflow-x:auto;border-radius:14px;border:1px solid #252525}table{width:100%;border-collapse:collapse;min-width:720px;background:#111}td,th{padding:12px;border-bottom:1px solid #2a2a2a;text-align:left;vertical-align:top}th{color:var(--blue);font-size:.92rem}tr:last-child td{border-bottom:0}.status{display:inline-flex;padding:6px 9px;border-radius:999px;background:#262626;color:#eee;font-size:13px}.status-Agendado{background:#24304a;color:#bcd4ff}.status-Confirmado{background:#123d27;color:#a7f3c2}.status-Cancelado,.status-Cancelado-pelo-cliente{background:#4a1f1f;color:#ffc3c3}.status-Concluído{background:#2c3d22;color:#d9ffc2}.status-Em{background:#443713;color:#ffe8a3}.status-Reagendado,.status-Reagendado-pelo-cliente{background:#342b54;color:#ddd0ff}
.topnav{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.summary{background:#111;border:1px solid #292929;border-radius:15px;padding:14px}.summary b{font-size:26px;color:var(--blue);display:block}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.detail{background:#111;border:1px solid #2b2b2b;border-radius:14px;padding:14px;overflow-wrap:anywhere}.detail strong{display:block;color:var(--blue);margin-bottom:5px}.login-box{max-width:430px;margin:8vh auto}.hide-desktop{display:none}
/* Catálogo e produtos */
.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:14px;margin:14px 0}.product-card{display:flex;flex-direction:column;gap:8px;margin:0;padding:16px}.product-card h2{margin:4px 0;font-size:20px}.product-img{width:100%!important;height:230px!important;max-height:230px!important;object-fit:contain!important;border-radius:15px;background:#0b0b0b!important;border:1px solid #303030;padding:10px!important}.product-detail{display:grid;grid-template-columns:minmax(280px,430px) 1fr;gap:22px;align-items:start}.product-main-img{width:100%!important;max-height:520px!important;object-fit:contain!important;border-radius:18px;background:#0b0b0b;border:1px solid #333;padding:10px}.prod-thumb{width:70px!important;height:70px!important;object-fit:contain!important;border-radius:12px;border:1px solid #333;background:#0c0c0c}.product-preview img{max-width:220px!important;max-height:180px!important;object-fit:contain!important;background:#0b0b0b;border:1px solid #333;border-radius:14px;padding:8px;margin:6px 0 10px}.price{font-size:20px;color:var(--blue);display:block}.price.big{font-size:30px;margin:12px 0;color:var(--blue);font-weight:900}.thumb-row{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.thumb-row img{width:82px;height:82px;object-fit:cover;border-radius:12px;border:1px solid #333;background:#080808;padding:4px}.thumb-check{display:flex;flex-direction:column;gap:5px;background:#151515;border:1px solid #2d2d2d;border-radius:14px;padding:8px;max-width:110px;font-size:12px;color:#ddd}.thumb-check img{width:88px;height:70px;object-fit:cover;border-radius:10px;padding:3px}.product-selected{border:1px solid rgba(0,140,255,.45);background:rgba(0,140,255,.08)}
.confirm-box{margin-top:18px;border-left-color:var(--blue);background:rgba(0,140,255,.08)}.resumo-agendamento{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.resumo-agendamento div{background:#101010;border:1px solid #292929;border-radius:12px;padding:10px;overflow-wrap:anywhere}.resumo-agendamento b{color:var(--blue)}
/* Admin */
.app-shell{width:min(1280px,100%);margin:0 auto;padding:14px;display:grid;grid-template-columns:260px minmax(0,1fr);gap:14px}.sidebar.card{position:sticky;top:14px;height:calc(100vh - 28px);margin:0;align-self:start;padding:16px;overflow:auto}.brand-mini{display:flex;gap:12px;align-items:center;margin-bottom:18px;min-width:0}.brand-mini img{width:58px!important;height:58px!important;min-width:58px!important;max-width:58px!important;max-height:58px!important;object-fit:contain!important;border-radius:12px;background:#0b0b0b;border:1px solid #333;padding:4px;flex:0 0 auto}.brand-mini div{min-width:0}.brand-mini b{display:block;font-size:20px;color:var(--blue);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-mini span{display:block;color:var(--mut);font-size:13px}.side-nav{display:grid;gap:8px}.side-nav a{display:flex;align-items:center;justify-content:flex-start;padding:12px 13px;min-height:46px;border:1px solid #2b2b2b;border-radius:13px;background:#101010;color:#f2f2f2;text-decoration:none;font-weight:700}.side-nav a:hover,.side-nav a.active{border-color:var(--blue);background:linear-gradient(135deg,rgba(0,140,255,.18),rgba(230,81,0,.12));color:#fff}.main-content{min-width:0;width:100%}.dashboard-head{margin-top:0;display:flex;align-items:center;justify-content:space-between;gap:12px}.dashboard-head .actions{display:flex;gap:8px;flex-wrap:wrap}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:12px 0}.metric-grid .metric{position:relative;overflow:hidden;min-height:82px;display:flex;flex-direction:column;justify-content:center}.metric-grid .metric:after{content:"";position:absolute;right:-28px;top:-28px;width:92px;height:92px;border-radius:50%;background:rgba(0,140,255,.12)}.metric-grid .metric b{color:var(--blue);font-size:28px;line-height:1}.quick-card h2,.filter-card h2{margin-bottom:12px}.next-list{display:grid;gap:10px}.next-item{display:grid;grid-template-columns:80px minmax(0,1fr) auto;gap:12px;align-items:center;background:#101010;border:1px solid #2a2a2a;border-radius:15px;padding:12px;text-decoration:none;color:#fff}.next-item:hover{border-color:var(--blue);text-decoration:none}.next-item *{min-width:0}.datebox{background:linear-gradient(135deg,var(--orange),var(--blue));border-radius:14px;padding:10px;text-align:center;color:#fff}.datebox b,.datebox span{display:block;color:#fff}.next-info strong,.next-info span{display:block;overflow-wrap:anywhere}.next-info span{color:var(--mut);margin-top:3px}.filter-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr auto;gap:12px;align-items:end}.filter-actions{display:flex;gap:8px}.section-head{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.notification-item{align-items:flex-start}.notification-item .actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.notification-item .next-info span{white-space:normal}
@media(max-width:980px){
  .app-shell{grid-template-columns:1fr;padding:10px}.sidebar.card{position:relative;height:auto;top:0}.side-nav{grid-template-columns:repeat(2,1fr)}.filter-grid{grid-template-columns:1fr 1fr}.filter-actions{grid-column:1/-1}.summary-grid,.metric-grid{grid-template-columns:repeat(2,1fr)}.next-item{grid-template-columns:70px 1fr}.product-detail{grid-template-columns:1fr}
}
@media(max-width:820px){
  .wrap{padding:12px}.card{padding:17px;border-radius:16px;margin:10px 0}.brand{display:block}.brand .actions{width:100%;justify-content:stretch;margin-top:12px}.brand .actions .btn{flex:1}.grid,.grid3,.detail-grid{grid-template-columns:1fr}.topnav{display:grid;grid-template-columns:1fr 1fr;gap:8px}.topnav .btn{width:100%}.hide-mobile{display:none}.hide-desktop{display:block}.table-wrap{border:0;overflow:visible}table.responsive{min-width:0;background:transparent}table.responsive thead{display:none}table.responsive,table.responsive tbody,table.responsive tr,table.responsive td{display:block;width:100%}table.responsive tr{background:#111;border:1px solid #2a2a2a;border-radius:15px;margin:10px 0;padding:10px;box-shadow:0 8px 20px rgba(0,0,0,.25)}table.responsive td{border:0;padding:8px 6px;display:flex;gap:10px;justify-content:space-between;align-items:flex-start;text-align:right}table.responsive td::before{content:attr(data-label);font-weight:800;color:var(--blue);text-align:left;min-width:95px}table.responsive td.full{display:block;text-align:left}table.responsive td.full::before{display:block;margin-bottom:5px}.catalog-grid{grid-template-columns:1fr 1fr}.product-img{height:210px!important}.slots{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:620px){
  body{background:#090909}.app-shell{padding:8px;gap:8px}.sidebar.card,.card{padding:14px;border-radius:16px}.brand-mini img{width:54px!important;height:54px!important;min-width:54px!important;max-width:54px!important;max-height:54px!important}.brand-mini b{font-size:17px}.side-nav{grid-template-columns:1fr 1fr;gap:8px}.side-nav a{font-size:14px;min-height:44px;padding:10px;justify-content:center;text-align:center}.dashboard-head{display:block}.dashboard-head .actions{display:grid;grid-template-columns:1fr;width:100%;margin-top:10px}.metric-grid,.summary-grid{grid-template-columns:1fr 1fr;gap:8px}.summary,.metric{padding:12px;min-height:70px}.summary b,.metric b{font-size:24px}.next-item{grid-template-columns:1fr;gap:8px}.datebox{text-align:left}.datebox b,.datebox span{display:inline-block;margin-right:8px}.filter-grid{grid-template-columns:1fr}.filter-actions{display:grid;grid-template-columns:1fr 1fr}.section-head{display:block}.notification-item{display:block}.notification-item .actions{justify-content:flex-start;margin-top:12px}.resumo-agendamento{grid-template-columns:1fr}
}
@media(max-width:520px){
  .wrap{padding:8px}.logo{font-size:22px}.brand-left{gap:10px}.brand-img{width:58px!important;height:58px!important;max-width:58px!important;max-height:58px!important;border-radius:13px;padding:5px}.pill{margin-top:10px}.btn{width:100%;padding:13px 14px}.actions-row{display:grid;grid-template-columns:1fr;gap:8px}.topnav{grid-template-columns:1fr}.sticky-actions .btn{width:100%}table.responsive td{display:block;text-align:left}table.responsive td::before{display:block;margin-bottom:3px}.login-box{margin:3vh auto}.catalog-grid{grid-template-columns:1fr}.product-img{height:230px!important}.product-main-img{max-height:360px!important}.prod-thumb{width:58px!important;height:58px!important}.product-preview img{max-width:170px!important;max-height:140px!important}.thumb-row img{width:64px;height:64px}.thumb-check{max-width:90px}.thumb-check img{width:70px;height:58px}.filter-actions{grid-template-columns:1fr}.datebox{padding:9px}
}
@media print{body{background:#fff;color:#000}.card{box-shadow:none;border:1px solid #ccc;background:#fff}.topnav,.btn,.actions-row,.sidebar{display:none!important}.app-shell{display:block}.main-content{width:100%}a{color:#000}}




/* ==========================================================
   DESKTOP - MAPA DO DIA (NÃO AFETA O MOBILE)
   ========================================================== */
@media (min-width:992px){

  .mapa-dia-layout,
  .map-layout,
  .dashboard-map-layout{
      display:grid!important;
      grid-template-columns:62% 38%!important;
      gap:18px!important;
      align-items:stretch!important;
      height:calc(100vh - 150px)!important;
      min-height:650px!important;
  }

  #map,
  #mapa,
  .mapa-principal,
  .map-container{
      height:100%!important;
      min-height:650px!important;
      border-radius:18px!important;
      overflow:hidden!important;
  }

  .cards-agendamentos,
  .lista-agendamentos,
  .mapa-cards,
  .day-cards{
      height:100%!important;
      overflow-y:auto!important;
      overflow-x:hidden!important;
      padding-right:10px!important;
      display:flex!important;
      flex-direction:column!important;
      gap:16px!important;
  }

  .cards-agendamentos::-webkit-scrollbar,
  .lista-agendamentos::-webkit-scrollbar,
  .mapa-cards::-webkit-scrollbar,
  .day-cards::-webkit-scrollbar{
      width:8px;
  }

  .cards-agendamentos::-webkit-scrollbar-thumb,
  .lista-agendamentos::-webkit-scrollbar-thumb,
  .mapa-cards::-webkit-scrollbar-thumb,
  .day-cards::-webkit-scrollbar-thumb{
      background:#008cff;
      border-radius:20px;
  }

  .card-agendamento,
  .appointment-card,
  .agendamento-card,
  .map-card{
      display:grid!important;
      grid-template-columns:minmax(0,1fr) 170px!important;
      gap:14px!important;
      align-items:start!important;

      height:auto!important;
      min-height:unset!important;
      max-height:none!important;

      padding:16px!important;
      border-radius:18px!important;
      margin-bottom:16px!important;
      overflow:visible!important;
  }

  .card-info,
  .appointment-info,
  .agendamento-info{
      display:flex!important;
      flex-direction:column!important;
      gap:6px!important;
      min-width:0!important;
  }

  .mini-mapa,
  .mini-map,
  .card-mini-map,
  .mapa-mini{
      width:170px!important;
      height:120px!important;
      border-radius:12px!important;
      overflow:hidden!important;
      align-self:start!important;
  }

  .mini-mapa iframe,
  .mini-map iframe,
  .card-mini-map iframe,
  .mapa-mini iframe{
      width:100%!important;
      height:100%!important;
      border:0!important;
  }

  .card-actions,
  .appointment-actions,
  .agendamento-actions,
  .acoes-card{
      grid-column:1/-1!important;
      display:flex!important;
      flex-wrap:wrap!important;
      gap:8px!important;
      margin-top:10px!important;
  }

  .card-actions .btn,
  .appointment-actions .btn,
  .agendamento-actions .btn,
  .acoes-card .btn{
      flex:1 1 110px!important;
  }

}




/* ==========================================================
   FIX - BOTÕES DO CARD SOBREPOSTOS NO HOVER
   Colar no final do CSS. Corrige botões aparecendo por cima
   do card abaixo no desktop.
   ========================================================== */
@media (min-width:992px){

  .card-agendamento,
  .appointment-card,
  .agendamento-card,
  .map-card{
      position:relative!important;
      overflow:visible!important;
      z-index:1!important;
      padding-bottom:18px!important;
  }

  .card-agendamento:hover,
  .appointment-card:hover,
  .agendamento-card:hover,
  .map-card:hover{
      z-index:5!important;
  }

  .card-actions,
  .appointment-actions,
  .agendamento-actions,
  .acoes-card{
      position:static!important;
      inset:auto!important;
      transform:none!important;
      opacity:1!important;
      visibility:visible!important;

      grid-column:1 / -1!important;
      display:flex!important;
      flex-wrap:wrap!important;
      gap:8px!important;
      margin-top:12px!important;
      padding-top:10px!important;
      border-top:1px solid rgba(255,255,255,.08)!important;
      background:transparent!important;
  }

  .card-actions a,
  .card-actions button,
  .appointment-actions a,
  .appointment-actions button,
  .agendamento-actions a,
  .agendamento-actions button,
  .acoes-card a,
  .acoes-card button{
      position:static!important;
      transform:none!important;
      opacity:1!important;
      visibility:visible!important;
      z-index:auto!important;
      min-width:105px!important;
      flex:1 1 105px!important;
  }

  .mini-mapa,
  .mini-map,
  .card-mini-map,
  .mapa-mini{
      position:relative!important;
      z-index:1!important;
      pointer-events:auto!important;
  }

  .cards-agendamentos,
  .lista-agendamentos,
  .mapa-cards,
  .day-cards{
      overflow-y:auto!important;
      overflow-x:hidden!important;
      padding-bottom:20px!important;
  }
}
/* Reagendamento: identificação clara dos tipos de horário */
.slot.normal{border-color:#278a4c;background:rgba(32,177,90,.10)}
.slot.estendido{border-color:#e38b18;background:rgba(245,158,11,.10)}
.slot.especial{border-color:#d44b4b;background:rgba(212,75,75,.12)}
.slot small{display:block;margin-top:3px;font-size:11px;font-weight:700;opacity:.85}
.slot.sel{background:#377df5!important;border-color:#6da0ff!important;color:#fff!important}

.status-Em-deslocamento{background:#7c3aed!important;color:#fff!important}.status-Em-atendimento,.status-Em-andamento{background:#0ea5e9!important;color:#fff!important}.status-Aguardando-pagamento{background:#ca8a04!important;color:#111!important}


/* Slider title uppercase */
#hero-title,.hero h1{text-transform:uppercase;letter-spacing:.04em;}
