/* Shared screen finish. Laboratory palette and print layouts remain authoritative. */
@media screen {
  :root {
    --ui-border: #dce5ed;
    --ui-radius: 16px;
    --ui-shadow: 0 2px 3px rgba(18, 42, 62, .06), 0 8px 18px rgba(18, 42, 62, .07), 0 22px 44px -20px rgba(18, 42, 62, .27), inset 0 1px 0 rgba(255, 255, 255, .85);
    --ui-shadow-hover: 0 4px 6px rgba(18, 42, 62, .06), 0 16px 32px -8px rgba(18, 42, 62, .20), inset 0 1px 0 rgba(255, 255, 255, .9);
    --app-radius: 10px;
    --app-radius-lg: var(--ui-radius);
    --app-shadow-sm: var(--ui-shadow);
    --app-shadow: var(--ui-shadow-hover);
  }

  body {
    font-family: "Segoe UI", Roboto, Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    background-color: var(--cor-fundo, #f3f6fa);
    background-image: radial-gradient(ellipse at 0 0, rgba(15, 118, 110, .055), transparent 55%), linear-gradient(180deg, rgba(255,255,255,.4), transparent 340px);
    color: var(--cor-texto, #243448);
    line-height: 1.5;
  }

  /* Explicit component names avoid styling headers, icons and card bodies as cards. */
  body :is(.card, .card-custom, .card-aplus, .card-3d, .card-soft,
    .card-padrao, .card-apluslac, .card-tema, .card-apl, .card-caixa,
    .card-envio, .card-exame, .card-erro, .card-acesso, .card-lab,
    .card-recuperacao, .card-troca, .topo-card, .patient-card, .panel-card,
    .preview-card, .req-panel, .aplus-panel, .table-panel, .resumo-box,
    .toolbar-box, .filtros-box, .box-troca, .box-recuperacao,
    .login-shell, .tab-pane-card, .contact-box, .form-card, .hero-box, .btn-menu) {
    border-radius: var(--ui-radius) !important;
    border: 1px solid var(--ui-border);
    border-bottom-color: #c6d3df;
    box-shadow: var(--ui-shadow) !important;
    transition: box-shadow .18s ease, border-color .18s ease;
  }

  body :is(.card, .card-custom, .card-aplus, .card-3d, .card-soft, .aplus-panel, .req-panel) {
    background-color: var(--cor-card, #fff);
  }

  .card > .card-header:first-child {
    border-radius: 15px 15px 0 0;
  }

  .card-header, .card-header-custom, .card-header-aplus, .card-head-aplus {
    padding: 1rem 1.25rem;
    font-weight: 650;
    border-bottom: 1px solid rgba(100, 116, 139, .16);
  }

  .card-body { padding: 1.25rem; }
  .card-footer { border-top-color: var(--ui-border); }
  .page-title, .titulo-pagina, .section-title { letter-spacing: -.025em; line-height: 1.2; }
  .page-subtitle, .section-subtitle { line-height: 1.65; }
  .workspace { padding-top: 32px; padding-bottom: 48px; }
  .quick-grid { gap: 20px; }
  body .btn-menu { padding: 1.5rem; text-decoration: none; }
  .btn-menu i { border-radius: 14px; }

  .form-control, .form-select, .input-group-text {
    border-color: #cbd7e2;
    border-radius: 10px;
    min-height: 42px;
  }
  .form-control, .form-select {
    transition: border-color .15s ease, box-shadow .15s ease;
  }
  .form-control:focus, .form-select:focus {
    border-color: var(--cor-secundaria, #0f766e);
    box-shadow: 0 0 0 3px rgba(15, 118, 110, .16);
  }
  .form-label { font-size: .875rem; font-weight: 600; margin-bottom: .4rem; }
  .btn { border-radius: 10px; font-weight: 600; }
  .btn:not(.btn-sm):not(.btn-link) { min-height: 40px; }
  .btn-primary, .btn-success, .btn-lab {
    box-shadow: 0 2px 3px rgba(15, 42, 62, .12), inset 0 1px 0 rgba(255,255,255,.16);
  }
  :is(a, button, input, select, textarea):focus-visible {
    outline: 3px solid var(--cor-secundaria, #0f766e);
    outline-offset: 3px;
  }

  .table-responsive { border-radius: 12px; border-color: var(--ui-border); }
  .table { vertical-align: middle; border-color: #e4eaf0; }
  .table thead th { font-size: .78rem; font-weight: 700; padding-block: .9rem; }
  .table tbody td { padding-block: .8rem; }
  .table-hover { --bs-table-hover-bg: rgba(15, 118, 110, .045); }
  .card .table-responsive { box-shadow: none; }
  .dropdown-menu { border: 1px solid var(--ui-border); border-radius: 12px; box-shadow: var(--ui-shadow-hover); padding: .5rem; }
  .dropdown-item { border-radius: 7px; padding-block: .5rem; }
  .modal-content { border: 1px solid var(--ui-border); border-radius: 18px; box-shadow: 0 24px 70px rgba(15, 23, 42, .25); }
  .nav-tabs { gap: .25rem; border-bottom-color: var(--ui-border); }
  .nav-tabs .nav-link { border-radius: 10px 10px 0 0; font-weight: 600; }
  .alert { border-radius: 12px; }

  @media (hover: hover) and (prefers-reduced-motion: no-preference) {
    body :is(a.btn-menu, a.card, a.card-acesso, a.card-lab):hover {
      transform: translateY(-3px);
      box-shadow: var(--ui-shadow-hover) !important;
      border-color: var(--cor-secundaria, #0f766e);
    }
    body :is(a.btn-menu, a.card, a.card-acesso, a.card-lab) {
      transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
    }
  }
  @media (max-width: 575.98px) {
    :root { --ui-radius: 12px; }
    .card-body { padding: 1rem; }
    .card-header { padding: .9rem 1rem; }
    .workspace { padding-top: 20px; }
    .quick-grid { gap: 12px; }
    body .btn-menu { padding: 1.1rem; }
    .modal-dialog { margin: .75rem; }
  }
  @media (prefers-reduced-motion: reduce) {
    body :is(.card, .card-custom, .card-3d, .btn-menu, .card-acesso, .card-lab, .form-control, .form-select) {
      transition: none !important;
      transform: none !important;
    }
  }
}
