:root{
  --mp-blue:#1f67d2;   /* Moloni-like */
  --mp-green:#17a34a;  /* Polegada-like */
  --mp-ink:#0f172a;
  --mp-bg:#f5f7fb;
}

html,body{height:100%;}
body{
  min-height:100vh;
  display:flex;
  flex-direction:column;
  color:var(--mp-ink);
  padding-bottom:96px; /* mantém o rodapé sempre visível (inclui barra do Windows) */
  background:
    radial-gradient(1200px 600px at 15% 15%, rgba(31,103,210,.18), transparent 60%),
    radial-gradient(900px 500px at 85% 20%, rgba(23,163,74,.14), transparent 55%),
    linear-gradient(180deg, #f7f9fd 0%, #f3f6fb 40%, #f5f7fb 100%);
}

/* ------------------------------
   Navbar dropdowns (submenus)
   ------------------------------ */
.navbar .dropdown-menu{
  z-index:2001;
  background:#0f223a !important;
  border:1px solid rgba(255,255,255,.10) !important;
}
.navbar .dropdown-menu .dropdown-item{
  color:#fff !important;
}
.navbar .dropdown-menu .dropdown-item:hover,
.navbar .dropdown-menu .dropdown-item:focus{
  background:#16375f !important;
  color:#fff !important;
}


.app-navbar{
  position:sticky; top:0; z-index:5000;
  background: linear-gradient(90deg, #0b1220 0%, #0f1b33 45%, #0b1220 100%);
  border-bottom: 0;
}
.app-navbar .navbar-brand{color:#fff; font-weight:700; letter-spacing:.2px;}
.app-navbar .navbar-brand:hover{color:#fff; opacity:.95;}
.app-navbar .nav-link{color:rgba(255,255,255,.78); font-weight:600;}
.app-navbar .nav-link:hover{color:#fff;}
.app-navbar .nav-link.active{color:#fff;}

/* Top tabs uniformes (pills) */
.app-navbar .top-tabs .nav-link{
  border-radius:999px;
  padding:.55rem .9rem;
  margin-right:.25rem;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.92);
  transition:all .15s ease;
}
.app-navbar .top-tabs .nav-link:hover{background:rgba(255,255,255,.10); color:#fff;}
.app-navbar .top-tabs .nav-link.active{
  border-color:rgba(255,255,255,.28);
  background:rgba(255,255,255,.14);
  color:#fff;
  box-shadow:0 8px 18px rgba(0,0,0,.18);
}

.app-navbar .navbar-toggler{border:1px solid rgba(255,255,255,.25);}
.app-navbar .navbar-toggler-icon{filter:invert(1);}

.app-accent{
  height:4px;
  background: linear-gradient(90deg, var(--mp-blue) 0%, var(--mp-blue) 55%, var(--mp-green) 100%);
}

.app-logo-wrap{
  width:34px; height:34px;
  border-radius:10px;
  background:#fff;
  overflow:hidden;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 6px 18px rgba(15,23,42,.12);
}
.app-logo{height:26px; width:auto; display:block;}
.app-brand-text{font-size:1.05rem;}

.moloni-logo-nav{height:22px;width:auto;display:block;filter:drop-shadow(0 6px 18px rgba(0,0,0,.25));}

.card{border:0; border-radius:18px; box-shadow:0 12px 30px rgba(15,23,42,.08);}
.shadow-soft{box-shadow:0 12px 40px rgba(15,23,42,.10) !important;}

/* Reserva (vista) - toque premium */
.mp-reserva-card{border-radius:22px; box-shadow:0 14px 44px rgba(15,23,42,.10);}
.mp-actions-card{border-radius:22px; box-shadow:0 14px 44px rgba(15,23,42,.10);}

.mp-reserva-card .table,
.mp-reserva-card .table-sm{border-collapse:separate; border-spacing:0;}
.mp-reserva-card .table thead th{background:rgba(15,23,42,.04); border-bottom:1px solid rgba(15,23,42,.08);}
.mp-reserva-card .table thead th:first-child{border-top-left-radius:14px;}
.mp-reserva-card .table thead th:last-child{border-top-right-radius:14px;}
.mp-reserva-card .table tbody tr:last-child td:first-child{border-bottom-left-radius:14px;}
.mp-reserva-card .table tbody tr:last-child td:last-child{border-bottom-right-radius:14px;}

.mp-actions-card .btn{font-weight:700;}

/* Indicador de stock de fornecedor (Advance) */
.supplier-dot{display:inline-block; width:10px; height:10px; border-radius:50%; margin-left:6px; vertical-align:middle; background:rgba(148,163,184,.9); box-shadow:0 0 0 2px rgba(255,255,255,.9);} /* cinzento */
.supplier-dot[data-state="loading"]{background:rgba(148,163,184,.5);}
.supplier-dot[data-state="ok"]{background:rgba(34,197,94,.95);} /* verde */
.supplier-dot[data-state="no"]{background:rgba(239,68,68,.95);} /* vermelho */
.supplier-dot[data-state="err"]{background:rgba(245,158,11,.95);} /* amarelo */

/* Indicador no campo de pesquisa (Reservas/Encomendas) */
.supplier-dot-search{position:absolute; right:14px; top:50%; transform:translateY(-50%); margin-left:0;}
.mp-actions-card .btn-lg{padding:.75rem 1rem;}

@media (min-width: 992px){
  /* dar mais ar à descrição e compactar colunas numéricas */
  .reserva-lines-table th:nth-child(1), .reserva-lines-table td:nth-child(1){width:80px;}
  .reserva-lines-table th:nth-child(3), .reserva-lines-table td:nth-child(3){width:70px;}
  .reserva-lines-table th:nth-child(4), .reserva-lines-table td:nth-child(4){width:110px;}
  .reserva-lines-table th:nth-child(5), .reserva-lines-table td:nth-child(5){width:90px;}
}

.btn-primary{
  --bs-btn-bg: var(--mp-blue);
  --bs-btn-border-color: var(--mp-blue);
  --bs-btn-hover-bg: #1758b6;
  --bs-btn-hover-border-color: #1758b6;
}
.btn-success{
  --bs-btn-bg: var(--mp-green);
  --bs-btn-border-color: var(--mp-green);
  --bs-btn-hover-bg: #12863d;
  --bs-btn-hover-border-color: #12863d;
}

.form-control:focus{border-color:rgba(31,103,210,.45); box-shadow:0 0 0 .25rem rgba(31,103,210,.15);}

.page-wrap{max-width: 1600px; width: 96vw;}

/* Reserva: dar mais espaço à descrição e manter colunas compactas */
.reserva-lines-table{table-layout:auto;width:100%;}
.reserva-lines-table th, .reserva-lines-table td{vertical-align:top;}
.reserva-lines-table th:nth-child(1), .reserva-lines-table td:nth-child(1){width:90px;}
.reserva-lines-table th:nth-child(3), .reserva-lines-table td:nth-child(3){width:70px;}
.reserva-lines-table th:nth-child(4), .reserva-lines-table td:nth-child(4){width:110px;}
.reserva-lines-table th:nth-child(5), .reserva-lines-table td:nth-child(5){width:80px;}
.reserva-lines-table th:nth-child(6), .reserva-lines-table td:nth-child(6){width:100px;}
.reserva-lines-table th:nth-child(7), .reserva-lines-table td:nth-child(7){width:100px;}
.reserva-lines-table th:nth-child(8), .reserva-lines-table td:nth-child(8){width:120px; text-align:right;}
.reserva-lines-table th:nth-child(2), .reserva-lines-table td:nth-child(2){width:auto;}
.reserva-lines-table td:nth-child(2){white-space:normal;word-break:break-word;}
.reserva-lines-table td:nth-child(8) .badge{float:right;}

/* Login */
.login-shell{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:36px 16px;
  position:relative;
  overflow:hidden;
  background: var(--mp-bg);
}
.login-shell::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:url("img/login-bg.jpg");
  background-size:cover;
  background-position:center;
  opacity:.22;
  filter: blur(3px) saturate(.9) brightness(1.05);
  transform: scale(1.06);
  z-index:0;
}
.login-shell::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(1200px 600px at 20% 10%, rgba(31,103,210,.22), transparent 55%),
    radial-gradient(900px 500px at 85% 20%, rgba(23,163,74,.18), transparent 55%),
    linear-gradient(180deg, rgba(255,255,255,.65), rgba(255,255,255,.25));
  z-index:1;
  pointer-events:none;
}
.login-shell > *{position:relative; z-index:2;}
.login-card{max-width: 460px; width:100%;}
.login-title{font-weight:800; letter-spacing:.2px;}

/* Login MOTD (frase aleatória, fora do cartão) */
.login-motd{
  position:absolute;
  top:10px;
  left:50%;
  transform:translateX(-50%);
  width:min(820px, calc(100% - 28px));
  z-index:3;
}
.login-motd-box{
  display:flex;
  align-items:center;
  gap:14px;
  padding:14px 16px;
  border-radius:18px;
  background:rgba(255,255,255,.78);
  backdrop-filter: blur(10px);
  border:1px solid rgba(15,23,42,.10);
  box-shadow:0 12px 34px rgba(15,23,42,.12);
}
.login-motd-emoji{
  width:54px;height:54px;
  display:grid;place-items:center;
  border-radius:14px;
  font-size:1.75rem;
  box-shadow:0 10px 26px rgba(15,23,42,.10);
}
.login-motd-kind{font-weight:800; font-size:.95rem; letter-spacing:.2px;}
.login-motd-text{font-weight:700; font-size:1.18rem; line-height:1.25;}

/* Tonalidades */
.login-motd-box.tone-blue .login-motd-emoji{background:rgba(59,130,246,.18); border:1px solid rgba(59,130,246,.28);} 
.login-motd-box.tone-green .login-motd-emoji{background:rgba(34,197,94,.16); border:1px solid rgba(34,197,94,.26);} 
.login-motd-box.tone-purple .login-motd-emoji{background:rgba(168,85,247,.14); border:1px solid rgba(168,85,247,.24);} 
.login-motd-box.tone-amber .login-motd-emoji{background:rgba(245,158,11,.16); border:1px solid rgba(245,158,11,.26);} 
.login-motd-box.tone-teal .login-motd-emoji{background:rgba(20,184,166,.14); border:1px solid rgba(20,184,166,.24);} 
.login-motd-box.tone-sky .login-motd-emoji{background:rgba(56,189,248,.14); border:1px solid rgba(56,189,248,.24);} 

/* Animação discreta do emoji */
@keyframes mp-motd-bounce{
  0%,100%{transform:translateY(0) rotate(0deg);}
  30%{transform:translateY(-3px) rotate(-2deg);}
  60%{transform:translateY(1px) rotate(2deg);}
}
.login-motd-emoji{
  animation: mp-motd-bounce 2.6s ease-in-out infinite;
}

@media (max-width:520px){
  .login-motd{top:64px;}
  .login-motd-box{padding:12px 12px; border-radius:16px;}
  .login-motd-text{font-size:1.0rem;}
}

.login-cobrand{
  position:fixed;
  top:18px;
  right:18px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.80);
  backdrop-filter: blur(10px);
  box-shadow:0 10px 30px rgba(15,23,42,.10);
  border:1px solid rgba(15,23,42,.08);
}
.login-cobrand-moloni{height:26px;width:auto;display:block;}
.login-cobrand-polegada{
  height:34px;width:auto;display:block;
  border-radius:12px;
  background:rgba(23,163,74,.12);
  border:1px solid rgba(23,163,74,.25);
  padding:6px;
  box-shadow:0 6px 18px rgba(15,23,42,.10);
}
@media (max-width:520px){
  .login-cobrand{top:12px;right:12px;padding:8px 10px;}
  .login-cobrand-moloni{height:24px;}
  .login-cobrand-polegada{height:32px;padding:6px;}
}

/* Big scan input */
.scan-input{height:60px; font-size:1.2rem; border-radius:14px;}
.btn-big{height:60px; font-weight:800; text-transform:uppercase; letter-spacing:.3px; border-radius:14px;}

/* Tables */
td,th{vertical-align:middle;}

.qty-input{max-width: 78px; min-width: 78px; padding-right: 22px; height: 36px; text-align:center;}

@media (max-width: 576px){
  .qty-input{min-width: 78px; max-width: 78px; font-size: 15px;}
  .table-responsive{overflow-x:auto;}
}

.mono{font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;}

/* Autocomplete (Pesquisa simples) — manter dentro do campo no mobile */
#product_sugestoes{max-height:60vh; overflow:auto;}
.mp-sug-item .mp-sug-row{display:flex; align-items:center; gap:12px;}
.mp-sug-item .mp-sug-main{flex:1 1 auto; min-width:0;}
.mp-sug-item .mp-sug-meta{flex:0 0 auto; text-align:end;}
.mp-sug-item .mp-sug-meta{min-width:120px;}

@media (max-width: 576px){
  .mp-sug-item .mp-sug-row{flex-wrap:wrap;}
  .mp-sug-item .mp-sug-meta{min-width:95px;}
  .mp-sug-item .mp-sug-meta .text-muted{font-size:.75rem;}
}

/* Brand (login) */
.brand-block{display:block;}
.brand-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.moloni-logo-h{height:44px;width:auto;max-width:240px;display:block;}
.brand-sep{width:1px;height:34px;background:rgba(15,23,42,.12);display:inline-block;}
.polegada-logo{
  height:44px;width:auto;display:block;
  border-radius:14px;
  box-shadow:0 6px 18px rgba(15,23,42,.10);
  background:rgba(23,163,74,.12);
  border:1px solid rgba(23,163,74,.25);
  padding:8px;
}
@media (max-width:420px){
  .moloni-logo-h{height:40px;max-width:210px;}
  .polegada-logo{height:40px;padding:8px;}
}

/* Footer */
.app-footer{
  padding:12px 0;
  margin-top:auto;
  color:rgba(15,23,42,.60);
  position:static;
  z-index:1040;
  background:rgba(255,255,255,.95);
  backdrop-filter: blur(6px);
  border-top:1px solid rgba(15,23,42,.08);
}

/* Layout base: footer no fundo sem sobrepor conteúdo */
html, body { height: 100%; }
body { min-height: 100vh; display: flex; flex-direction: column; }
.page-wrap { flex: 1 0 auto; padding-bottom: 96px; }
@media (max-width: 576px){ .page-wrap{ padding-bottom: 128px; } }
.app-footer{ margin-top: auto; }

.app-footer-name{font-weight:700;}
.app-footer-right .badge{font-weight:700; letter-spacing:.2px;}

.form-control, .form-select{border-radius:14px; padding:.75rem .9rem;}
.btn{border-radius:14px; padding:.7rem 1rem; font-weight:600;}
.btn-primary{background:var(--mp-blue); border-color:var(--mp-blue);} 
.btn-success{background:var(--mp-green); border-color:var(--mp-green);} 
.page-wrap{flex:1 0 auto; min-height:0;}

.app-footer{flex-shrink:0;}

.app-navbar .nav-link{
  color: rgba(255,255,255,.82);
  border-radius: 999px;
  padding: .45rem .85rem;
  margin-right:.25rem;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.app-navbar .nav-link:hover{color:#fff; background:rgba(255,255,255,.08);}
.app-navbar .nav-link.active{color:#fff; background:rgba(255,255,255,.14); box-shadow: inset 0 0 0 1px rgba(255,255,255,.14);}

/* Sublinhado centrado no item ativo (evita ficar "desalinhado" quando há dropdowns) */
.app-navbar .nav-link.active::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:6px;
  width:22px;
  height:2px;
  transform:translateX(-50%);
  border-radius:2px;
  background:rgba(255,255,255,.92);
}

/* Sublinhado centrado para o item ativo (evita desalinhamento visual no menu) */
.app-navbar .nav-link.active::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:6px;
  width:22px;
  height:2px;
  transform: translateX(-50%);
  background: rgba(255,255,255,.92);
  border-radius: 2px;
  opacity:.9;
}

/* Autocomplete artigos (Moloni-style) */
.mp-sug-item{ padding: .65rem .75rem; }
.mp-sug-item:hover{ cursor:pointer; }
.mp-sug-item .text-truncate{ max-width: 520px; }
@media (max-width: 992px){ .mp-sug-item .text-truncate{ max-width: 260px; } }

/* Operator mini-cards */
.op-picker{margin-top:.25rem}
.op-picker-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.5rem}
.op-card{display:block;border:1px solid rgba(0,0,0,.12);border-radius:14px;padding:.35rem;background:#fff;cursor:pointer;transition:transform .08s ease, box-shadow .15s ease, border-color .15s ease}
.op-card input{position:absolute;opacity:0;pointer-events:none}
.op-card-body{display:flex;align-items:center;gap:.5rem;padding:.4rem .45rem}
.op-avatar{width:54px;height:54px;border-radius:999px;object-fit:cover;border:2px solid rgba(255,255,255,.9);box-shadow:0 4px 12px rgba(0,0,0,.12)}
.op-name{font-weight:700;font-size:.95rem;color:#1f2937}
.op-card:hover{box-shadow:0 10px 26px rgba(0,0,0,.10);transform:translateY(-1px)}
.op-card:has(input:checked){border-color:rgba(22,163,74,.65);box-shadow:0 14px 34px rgba(22,163,74,.18)}
.op-card:has(input:checked) .op-name{color:#166534}



.op-card .op-avatar{filter:grayscale(100%);opacity:.72}
.op-card:has(input:checked) .op-avatar{filter:none;opacity:1}



/* Operator avatar subtle pop */
@keyframes mpAvatarPop {0%{transform:scale(1);}40%{transform:scale(1.07);}100%{transform:scale(1);}}
.mp-avatar-pop{animation:mpAvatarPop .35s ease-out;}


/* Avatar preview em selects (ex: Agenda) */
.mp-select-avatar{width:34px;height:34px;border-radius:10px;object-fit:cover;border:1px solid rgba(0,0,0,.12);background:#fff;}

/* Weather icon container */
.mp-wx-icon{display:flex;align-items:center;justify-content:center;}

/* Dashboard: evitar scroll na página e usar scroll interno nos cartões */
.dashboard-body{ overflow-y:auto; overflow-x:hidden; }
.dashboard-body .page-wrap.dashboard-fit{
  /* Layout fluido: permite scroll normal da página e evita "cortes" no final. */
  display:flex;
  flex-direction:column;
  height:auto;
  overflow:visible;
  padding-top:16px !important;
  padding-bottom:12px !important;
}
.dashboard-body .page-wrap.dashboard-fit > .row,
.dashboard-body .page-wrap.dashboard-fit > .d-flex{
  flex:0 0 auto;
}
.dashboard-body .dash-list{
  max-height:160px;
  overflow:auto;
}
@media (max-height: 860px){
  .dashboard-body .dash-list{ max-height:120px; }
  /* Sem alturas fixas: permitir scroll natural da página */
}


/* Sticky footer layout (dashboard) */
body.dashboard-body{min-height:100vh;display:flex;flex-direction:column;}
body.dashboard-body .mp-main{flex:1 0 auto;}


.dash-agenda-item{transition:transform .12s ease, box-shadow .12s ease;}
.dash-agenda-item:hover{transform:translateY(-1px); box-shadow:0 8px 22px rgba(15,23,42,.08);}
.wa-conv-list{max-height:calc(72vh - 130px); overflow:auto;}
.wa-chat-bg{background:#efeae2; background-image:radial-gradient(rgba(0,0,0,.035) 1px, transparent 1px); background-size:18px 18px;}
.wa-chat-panel{min-height:72vh;}

.app-navbar .dropdown-menu{z-index:5001;}
.wa-chat-panel, .wa-conv-list{position:relative; z-index:1;}

.dash-agenda-item{padding:.7rem .8rem !important;}
.dash-agenda-item .badge{font-size:.7rem;}
.dash-agenda-item .small{font-size:.82rem;}
.dash-wa-mini .btn{line-height:1; min-width:40px;}


.mp-card-memorandos-active{background:#fff3cd;}
.mp-memo-title{white-space:normal;word-break:break-word;line-height:1.2;}
.min-w-0{min-width:0;}


/* Email modal safe offset under sticky navbar */
.modal-backdrop{z-index:6500 !important;}
.modal{z-index:6510 !important;}
.modal.show{display:block;}
.modal-dialog.mp-modal-top-safe {
  margin-top: 86px !important;
  margin-bottom: 1rem !important;
}
.mp-modal-top-safe .modal-content{
  max-height: calc(100vh - 108px);
}
@media (max-width: 991.98px) {
  .modal-dialog.mp-modal-top-safe {
    margin-top: 74px !important;
  }
  .mp-modal-top-safe .modal-content{
    max-height: calc(100vh - 92px);
  }
}

