/* =====================================================================
   g-panel.css
   Polish compartilhado para todas as páginas g*.php (dashboards de setor).
   Aplica o padrão visual do gcm.php sobre a estrutura HTML existente.
   100% local — nada de fontes ou CDNs externos.
   ===================================================================== */

/* ------ Tipografia local consistente ------ */
html body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:#1f2937}

/* ------ Conteúdo principal (compacto, sem faixa branca) ------ */
html body .main-panel > .content-wrapper{padding-top:.6rem !important;padding-left:1rem !important;padding-right:1rem !important;padding-bottom:1.4rem !important}

/* ------ Cabeçalho de página (gradiente azul, igual gcm.php) ------ */
.main-panel .row.page-title-header{margin:0 0 1rem !important}
.main-panel .row.page-title-header .col-12,
.main-panel .row.page-title-header .col-md-12{padding:0 !important}
.main-panel .row.page-title-header .page-header{
    background:linear-gradient(135deg,#3182ce 0%,#2b6cb0 100%) !important;
    border-radius:14px !important;
    padding:14px 22px !important;
    margin:0 !important;
    color:#fff !important;
    box-shadow:0 4px 12px rgba(49,130,206,.18);
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    flex-wrap:wrap;
    gap:12px;
    border:0 !important;
    min-height:auto !important;
}
.main-panel .row.page-title-header .page-title{
    color:#fff !important;
    font-weight:700 !important;
    font-size:1.05rem !important;
    margin:0 !important;
    text-transform:none !important;
}
.main-panel .row.page-title-header .quick-link-wrapper{margin:0 !important;width:auto !important}
.main-panel .row.page-title-header .quick-links{
    display:flex !important;
    gap:14px !important;
    list-style:none !important;
    padding:0 !important;
    margin:0 !important;
    align-items:center;
}
.main-panel .row.page-title-header .quick-links li{font-size:.85rem;color:rgba(255,255,255,.95) !important}
.main-panel .row.page-title-header .page-header-toolbar{display:none !important}

/* ------ Cards de seção (Internamento/PS/Ambulatório/etc.) ------ */
.main-panel .card{
    border:0 !important;
    border-radius:14px !important;
    box-shadow:0 4px 18px rgba(0,0,0,.06) !important;
    overflow:hidden;
    background:#fff !important;
    margin-bottom:.9rem !important;
}
.main-panel .card .card-body{padding:1.1rem 1.4rem 1.3rem !important}

/* Título da seção com barra colorida ao lado */
.main-panel .card .card-title{
    display:flex !important;
    align-items:center !important;
    gap:.6rem !important;
    font-weight:700 !important;
    font-size:1.05rem !important;
    color:#1f2937 !important;
    margin:0 0 1rem !important;
    padding-bottom:.6rem !important;
    border-bottom:2px solid #f1f5f9 !important;
    text-transform:uppercase !important;
    letter-spacing:.4px;
}
.main-panel .card .card-title::before{
    content:"";
    display:inline-block;
    width:6px;
    height:22px;
    border-radius:3px;
    background:linear-gradient(180deg,#3182ce,#2b6cb0);
    flex-shrink:0;
}

/* ------ Tiles (cartões clicáveis) ------ */
/* Container externo (col-lg-3 etc.) que envolvia <a><img> */
.main-panel .card .card-body .col-lg-3,
.main-panel .card .card-body .col-lg-2,
.main-panel .card .card-body .col-md-4,
.main-panel .card .card-body .col-sm{padding:6px !important}

/* Converte qualquer .d-flex contendo .wrapper em GRID uniforme — todos os botões do mesmo tamanho */
.main-panel .card .card-body .d-flex:has(> .wrapper),
.main-panel .card .card-body .row > .col-lg-3 > .d-flex,
.main-panel .card .card-body .row > .col-lg-2 > .d-flex,
.main-panel .card .card-body .row > .col-md-4 > .d-flex,
.main-panel .card .card-body .row > .col-md-6 > .d-flex,
.main-panel .card .card-body .row > [class*="col-"] > .d-flex{
    display:grid !important;
    grid-template-columns:repeat(auto-fill, minmax(140px, 1fr)) !important;
    gap:10px !important;
    align-items:stretch !important;
}
/* Quando o pai já é Bootstrap row, expande os filhos do .d-flex para ocupar largura total */
.main-panel .card .card-body .d-flex > .wrapper{width:100% !important}

/* Card-body principal vira grid se contiver col-lg-3/col-md-6 com wrappers */
.main-panel .card .card-body > .row > [class*="col-lg-"],
.main-panel .card .card-body > .row > [class*="col-md-"]{
    flex:0 0 auto !important;
    width:auto !important;
    max-width:none !important;
}
.main-panel .card .card-body > .row{
    display:grid !important;
    grid-template-columns:repeat(auto-fill, minmax(140px, 1fr)) !important;
    gap:10px !important;
    margin:0 !important;
}

/* === Wrappers SPACER (vazios / só com classes de margin/auto) — escondidos === */
/* Padrão antigo: <div class="wrapper my-auto ml-auto ml-lg-4"></div> servia só como espaçador.
   Não deve aparecer como cartão. */
.main-panel .card .card-body .wrapper.my-auto,
.main-panel .card .card-body .wrapper.ml-auto,
.main-panel .card .card-body .wrapper.mr-auto{
    display:none !important;
}
/* Wrappers vazios (sem nada) ou só com whitespace — escondidos */
.main-panel .card .card-body .wrapper:empty{display:none !important}
/* Wrappers que NÃO contêm <a>/<img>/<p>/<button>/<form>/<input>/<table>/<h*> — escondidos
   (usa :has() — suportado em todos os browsers modernos; cai elegantemente em browsers antigos) */
.main-panel .card .card-body .wrapper:not(:has(a, img, p, button, h1, h2, h3, h4, h5, h6, form, input, table)){
    display:none !important;
}

/* === Wrappers REAIS com conteúdo: estilo de cartão clicável (TODOS DO MESMO TAMANHO) === */
.main-panel .card .card-body .wrapper:has(> a, > img, > p, > h1, > h2, > h3, > h4, > h5, > h6){
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;       /* centraliza verticalmente */
    text-align:center !important;
    border:1px solid #e2e8f0 !important;
    border-radius:12px !important;
    background:#fff !important;
    padding:14px 8px 12px !important;
    margin:0 !important;
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
    height:150px !important;                  /* altura FIXA — todos do mesmo tamanho */
    min-height:150px !important;
    width:100% !important;
    box-sizing:border-box !important;
    cursor:pointer;
    position:relative;
    overflow:hidden;
}
.main-panel .card .card-body .wrapper:has(> a, > img, > p):hover{
    transform:translateY(-3px);
    box-shadow:0 10px 24px rgba(49,130,206,.18);
    border-color:#bee3f8;
    background:#f7fbff;
}
.main-panel .card .card-body .wrapper a{display:block;line-height:0;text-decoration:none}
.main-panel .card .card-body .wrapper a img{
    width:auto !important;
    max-width:60px !important;
    height:60px !important;
    object-fit:contain !important;
    margin:6px auto 8px !important;
    padding:0 !important;
}
.main-panel .card .card-body .wrapper p{
    font-size:.78rem !important;
    font-weight:600 !important;
    color:#2d3748 !important;
    margin:0 !important;
    line-height:1.25;
    text-align:center;
}
/* Wrappers aninhados — sem fundo nem borda, apenas containers */
.main-panel .card .card-body .wrapper .wrapper{padding:0 !important;border:0 !important;background:transparent !important;min-height:0 !important;flex:0;box-shadow:none !important}
/* Fallback — se :has() não for suportado, ao menos escondemos os wrappers que claramente são spacers */
@supports not selector(:has(a)){
    /* Em navegadores sem :has, usamos heurística: o spacer sempre tem classes my-auto/ml-auto.
       Já bloqueado acima, então nada extra aqui. */
}

/* === Padrão col-sm (guti.php / gutimovel.php / glaboratorio.php antigos) ===
   <div class="col-sm"><p><label><a><img></a></label></p>...</div>
   Cada <p> vira um cartão uniforme. */
.col-sm{
    display:grid !important;
    grid-template-columns:repeat(auto-fill, minmax(140px, 1fr)) !important;
    gap:10px !important;
    padding:6px !important;
}
.col-sm > p{
    margin:0 !important;
    padding:0 !important;
    height:150px !important;
    border:1px solid #e2e8f0 !important;
    border-radius:12px !important;
    background:#fff !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
    cursor:pointer;
    overflow:hidden;
}
.col-sm > p:hover{
    transform:translateY(-3px);
    box-shadow:0 10px 24px rgba(49,130,206,.18);
    border-color:#bee3f8;
    background:#f7fbff;
}
.col-sm > p > label,
.col-sm > p label{margin:0 !important;display:block;line-height:0}
.col-sm a{display:block;line-height:0;text-decoration:none}
.col-sm a img{
    max-width:80px !important;
    max-height:80px !important;
    width:auto !important;
    height:auto !important;
    object-fit:contain !important;
    transition:transform .15s ease;
}
.col-sm > p:hover a img{transform:scale(1.06)}

/* Quando os <p> têm vários <a><img> juntos, divide em vários cartões implicitamente */
.col-sm > p > label + label,
.col-sm > p label br + label{display:block}

/* ------ Esconde fontes/CDNs externas (já que removemos os links) ------ */
/* (sem regras necessárias — apenas reforça que tudo é local) */

/* ------ Mobile ------ */
@media (max-width: 575px){
    .main-panel > .content-wrapper{padding-left:.5rem !important;padding-right:.5rem !important}
    .main-panel .card .card-body .wrapper{min-height:120px;padding:10px 6px 8px !important}
    .main-panel .card .card-body .wrapper a img{max-width:50px !important;height:50px !important}
    .main-panel .card .card-body .wrapper p{font-size:.72rem !important}
}

/* =====================================================================
   FIX último quadro (Requições / Serviços) — desalinhamento.
   Wrappers que servem só como CONTAINER (têm <div class="col-*"> dentro)
   não devem ser estilizados como card. Apenas os wrappers folha (com
   <a>/<img>/<p>) viram cards clicáveis.
   ===================================================================== */
.main-panel .card .card-body .wrapper:has(> [class*="col-"]) {
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    height: auto !important;
    min-height: 0 !important;
    box-shadow: none !important;
    display: block !important;
    overflow: visible !important;
    cursor: default !important;
}
.main-panel .card .card-body .wrapper:has(> [class*="col-"]):hover {
    transform: none !important;
    box-shadow: none !important;
    background: transparent !important;
    border-color: transparent !important;
}
/* O h4 dentro desse wrapper recebe o tratamento de title (com a barrinha lateral) */
.main-panel .card .card-body .wrapper:has(> [class*="col-"]) > h4 {
    display:flex !important;
    align-items:center !important;
    gap:.6rem !important;
    font-weight:700 !important;
    font-size:1.05rem !important;
    color:#1f2937 !important;
    margin:0 0 1rem !important;
    padding-bottom:.6rem !important;
    border-bottom:2px solid #f1f5f9 !important;
    text-transform:uppercase !important;
    letter-spacing:.4px;
}
.main-panel .card .card-body .wrapper:has(> [class*="col-"]) > h4::before {
    content:"";
    display:inline-block;
    width:6px;
    height:22px;
    border-radius:3px;
    background:linear-gradient(180deg,#3182ce,#2b6cb0);
    flex-shrink:0;
}

/* Quando o card-body é d-flex flex-column (típico do quadro col-md-4 da direita),
   garantimos que os items internos formem um grid auto-fill — alinhados como nos
   cards maiores. */
.main-panel .card .card-body.d-flex.flex-column > .wrapper:has(> [class*="col-"]) {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 !important;
}
.main-panel .card .card-body.d-flex.flex-column > .wrapper:has(> [class*="col-"]) > [class*="col-"] {
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 6px 0 !important;
}
/* E os items (col-lg-3 etc) dentro desse container ficam em grid auto-fill,
   permitindo que tenham largura uniforme apesar do parent estreito (col-md-4). */
.main-panel .card .card-body.d-flex.flex-column > .wrapper:has(> [class*="col-"] > .d-flex > .wrapper) {
    display: grid !important;
    grid-template-columns: 1fr !important;  /* 1 coluna pq o parent já é estreito (col-md-4) */
    gap: 10px;
}
.main-panel .card .card-body.d-flex.flex-column > .wrapper:has(> [class*="col-"]) > h4 {
    grid-column: 1 / -1 !important;          /* título ocupa toda a largura */
}
.main-panel .card .card-body.d-flex.flex-column > .wrapper:has(> [class*="col-"]) > [class*="col-"] {
    margin: 0 !important;
}

/* CARDs folhas DENTRO de container-wrappers — devolve o estilo de cartão.
   Sem isso, a regra `.wrapper .wrapper { border:0; background:transparent; ... }`
   (linha ~184 deste arquivo) "zera" a aparência dos botões internos. */
.main-panel .card .card-body .wrapper:has(> [class*="col-"]) .wrapper:has(> a, > img, > p, > h1, > h2, > h3, > h4, > h5, > h6) {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 12px !important;
    background: #fff !important;
    padding: 14px 8px 12px !important;
    margin: 0 !important;
    height: 150px !important;
    min-height: 150px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    cursor: pointer !important;
    position: relative !important;
    overflow: hidden !important;
    box-shadow: 0 1px 3px rgba(0,0,0,.05) !important;
    flex: 0 0 auto !important;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease !important;
}
.main-panel .card .card-body .wrapper:has(> [class*="col-"]) .wrapper:has(> a, > img, > p, > h1, > h2, > h3, > h4, > h5, > h6):hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 10px 24px rgba(49,130,206,.18) !important;
    border-color: #bee3f8 !important;
    background: #f7fbff !important;
}
/* E os spacers vazios (.wrapper.my-auto/.ml-auto) seguem ocultos mesmo dentro do container */
.main-panel .card .card-body .wrapper:has(> [class*="col-"]) .wrapper.my-auto,
.main-panel .card .card-body .wrapper:has(> [class*="col-"]) .wrapper.ml-auto,
.main-panel .card .card-body .wrapper:has(> [class*="col-"]) .wrapper.mr-auto,
.main-panel .card .card-body .wrapper:has(> [class*="col-"]) .wrapper:empty {
    display: none !important;
}
