/* med27 Tailwind — padrão visual do sistema
   Utilitários: class="tw:flex tw:gap-3 tw:bg-primary"
   Rebuild: npm run build:css  |  fallback: node tools/gerar_tailwind_css.js */

@layer utilities{.tw\:block{display:block}.tw\:inline{display:inline}.tw\:inline-block{display:inline-block}.tw\:flex{display:flex}.tw\:inline-flex{display:inline-flex}.tw\:grid{display:grid}.tw\:hidden{display:none}.tw\:contents{display:contents}.tw\:flex-row{flex-direction:row}.tw\:flex-col{flex-direction:column}.tw\:flex-wrap{flex-wrap:wrap}.tw\:items-start{align-items:flex-start}.tw\:items-center{align-items:center}.tw\:items-end{align-items:flex-end}.tw\:items-stretch{align-items:stretch}.tw\:justify-start{justify-content:flex-start}.tw\:justify-center{justify-content:center}.tw\:justify-between{justify-content:space-between}.tw\:justify-end{justify-content:flex-end}.tw\:grow{flex-grow:1}.tw\:shrink-0{flex-shrink:0}.tw\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.tw\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.tw\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.tw\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.tw\:relative{position:relative}.tw\:absolute{position:absolute}.tw\:fixed{position:fixed}.tw\:sticky{position:sticky}.tw\:inset-0{inset:0}.tw\:w-full{width:100%}.tw\:w-auto{width:auto}.tw\:h-full{height:100%}.tw\:min-h-11{min-height:2.75rem}.tw\:min-h-screen{min-height:100vh}.tw\:max-w-md{max-width:28rem}.tw\:max-w-lg{max-width:32rem}.tw\:max-w-xl{max-width:36rem}.tw\:max-w-2xl{max-width:42rem}.tw\:max-w-5xl{max-width:64rem}.tw\:mx-auto{margin-left:auto;margin-right:auto}.tw\:overflow-hidden{overflow:hidden}.tw\:overflow-auto{overflow:auto}.tw\:truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tw\:text-left{text-align:left}.tw\:text-center{text-align:center}.tw\:text-right{text-align:right}.tw\:text-xs{font-size:0.75rem;line-height:1rem}.tw\:text-sm{font-size:0.875rem;line-height:1.25rem}.tw\:text-base{font-size:1rem;line-height:1.5rem}.tw\:text-lg{font-size:1.125rem;line-height:1.75rem}.tw\:text-xl{font-size:1.25rem;line-height:1.75rem}.tw\:text-2xl{font-size:1.5rem;line-height:2rem}.tw\:font-normal{font-weight:400}.tw\:font-medium{font-weight:500}.tw\:font-semibold{font-weight:600}.tw\:font-bold{font-weight:700}.tw\:uppercase{text-transform:uppercase}.tw\:tracking-wide{letter-spacing:0.04em}.tw\:leading-tight{line-height:1.3}.tw\:leading-snug{line-height:1.4}.tw\:rounded-sm{border-radius:var(--med27-radius-sm,8px)}.tw\:rounded-md{border-radius:var(--med27-radius,12px)}.tw\:rounded-lg{border-radius:var(--med27-radius-lg,16px)}.tw\:rounded-full{border-radius:9999px}.tw\:shadow-card{box-shadow:var(--med27-shadow)}.tw\:border{border-width:1px;border-style:solid;border-color:var(--med27-gray-200,#e1e8e6)}.tw\:border-0{border-width:0}.tw\:p-0{padding:0}.tw\:p-1{padding:0.25rem}.tw\:p-2{padding:0.5rem}.tw\:p-3{padding:0.75rem}.tw\:p-4{padding:1rem}.tw\:p-5{padding:1.25rem}.tw\:p-6{padding:1.5rem}.tw\:p-8{padding:2rem}.tw\:p-10{padding:2.5rem}.tw\:p-12{padding:3rem}.tw\:p-16{padding:4rem}.tw\:p-0\.5{padding:0.125rem}.tw\:p-1\.5{padding:0.375rem}.tw\:p-2\.5{padding:0.625rem}.tw\:px-0{padding-left:0;padding-right:0}.tw\:px-1{padding-left:0.25rem;padding-right:0.25rem}.tw\:px-2{padding-left:0.5rem;padding-right:0.5rem}.tw\:px-3{padding-left:0.75rem;padding-right:0.75rem}.tw\:px-4{padding-left:1rem;padding-right:1rem}.tw\:px-5{padding-left:1.25rem;padding-right:1.25rem}.tw\:px-6{padding-left:1.5rem;padding-right:1.5rem}.tw\:px-8{padding-left:2rem;padding-right:2rem}.tw\:px-10{padding-left:2.5rem;padding-right:2.5rem}.tw\:px-12{padding-left:3rem;padding-right:3rem}.tw\:px-16{padding-left:4rem;padding-right:4rem}.tw\:px-0\.5{padding-left:0.125rem;padding-right:0.125rem}.tw\:px-1\.5{padding-left:0.375rem;padding-right:0.375rem}.tw\:px-2\.5{padding-left:0.625rem;padding-right:0.625rem}.tw\:py-0{padding-top:0;padding-bottom:0}.tw\:py-1{padding-top:0.25rem;padding-bottom:0.25rem}.tw\:py-2{padding-top:0.5rem;padding-bottom:0.5rem}.tw\:py-3{padding-top:0.75rem;padding-bottom:0.75rem}.tw\:py-4{padding-top:1rem;padding-bottom:1rem}.tw\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.tw\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.tw\:py-8{padding-top:2rem;padding-bottom:2rem}.tw\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.tw\:py-12{padding-top:3rem;padding-bottom:3rem}.tw\:py-16{padding-top:4rem;padding-bottom:4rem}.tw\:py-0\.5{padding-top:0.125rem;padding-bottom:0.125rem}.tw\:py-1\.5{padding-top:0.375rem;padding-bottom:0.375rem}.tw\:py-2\.5{padding-top:0.625rem;padding-bottom:0.625rem}.tw\:pt-0{padding-top:0}.tw\:pt-1{padding-top:0.25rem}.tw\:pt-2{padding-top:0.5rem}.tw\:pt-3{padding-top:0.75rem}.tw\:pt-4{padding-top:1rem}.tw\:pt-5{padding-top:1.25rem}.tw\:pt-6{padding-top:1.5rem}.tw\:pt-8{padding-top:2rem}.tw\:pt-10{padding-top:2.5rem}.tw\:pt-12{padding-top:3rem}.tw\:pt-16{padding-top:4rem}.tw\:pt-0\.5{padding-top:0.125rem}.tw\:pt-1\.5{padding-top:0.375rem}.tw\:pt-2\.5{padding-top:0.625rem}.tw\:pr-0{padding-right:0}.tw\:pr-1{padding-right:0.25rem}.tw\:pr-2{padding-right:0.5rem}.tw\:pr-3{padding-right:0.75rem}.tw\:pr-4{padding-right:1rem}.tw\:pr-5{padding-right:1.25rem}.tw\:pr-6{padding-right:1.5rem}.tw\:pr-8{padding-right:2rem}.tw\:pr-10{padding-right:2.5rem}.tw\:pr-12{padding-right:3rem}.tw\:pr-16{padding-right:4rem}.tw\:pr-0\.5{padding-right:0.125rem}.tw\:pr-1\.5{padding-right:0.375rem}.tw\:pr-2\.5{padding-right:0.625rem}.tw\:pb-0{padding-bottom:0}.tw\:pb-1{padding-bottom:0.25rem}.tw\:pb-2{padding-bottom:0.5rem}.tw\:pb-3{padding-bottom:0.75rem}.tw\:pb-4{padding-bottom:1rem}.tw\:pb-5{padding-bottom:1.25rem}.tw\:pb-6{padding-bottom:1.5rem}.tw\:pb-8{padding-bottom:2rem}.tw\:pb-10{padding-bottom:2.5rem}.tw\:pb-12{padding-bottom:3rem}.tw\:pb-16{padding-bottom:4rem}.tw\:pb-0\.5{padding-bottom:0.125rem}.tw\:pb-1\.5{padding-bottom:0.375rem}.tw\:pb-2\.5{padding-bottom:0.625rem}.tw\:pl-0{padding-left:0}.tw\:pl-1{padding-left:0.25rem}.tw\:pl-2{padding-left:0.5rem}.tw\:pl-3{padding-left:0.75rem}.tw\:pl-4{padding-left:1rem}.tw\:pl-5{padding-left:1.25rem}.tw\:pl-6{padding-left:1.5rem}.tw\:pl-8{padding-left:2rem}.tw\:pl-10{padding-left:2.5rem}.tw\:pl-12{padding-left:3rem}.tw\:pl-16{padding-left:4rem}.tw\:pl-0\.5{padding-left:0.125rem}.tw\:pl-1\.5{padding-left:0.375rem}.tw\:pl-2\.5{padding-left:0.625rem}.tw\:m-0{margin:0}.tw\:m-1{margin:0.25rem}.tw\:m-2{margin:0.5rem}.tw\:m-3{margin:0.75rem}.tw\:m-4{margin:1rem}.tw\:m-5{margin:1.25rem}.tw\:m-6{margin:1.5rem}.tw\:m-8{margin:2rem}.tw\:m-10{margin:2.5rem}.tw\:m-12{margin:3rem}.tw\:m-16{margin:4rem}.tw\:m-0\.5{margin:0.125rem}.tw\:m-1\.5{margin:0.375rem}.tw\:m-2\.5{margin:0.625rem}.tw\:mx-0{margin-left:0;margin-right:0}.tw\:mx-1{margin-left:0.25rem;margin-right:0.25rem}.tw\:mx-2{margin-left:0.5rem;margin-right:0.5rem}.tw\:mx-3{margin-left:0.75rem;margin-right:0.75rem}.tw\:mx-4{margin-left:1rem;margin-right:1rem}.tw\:mx-5{margin-left:1.25rem;margin-right:1.25rem}.tw\:mx-6{margin-left:1.5rem;margin-right:1.5rem}.tw\:mx-8{margin-left:2rem;margin-right:2rem}.tw\:mx-10{margin-left:2.5rem;margin-right:2.5rem}.tw\:mx-12{margin-left:3rem;margin-right:3rem}.tw\:mx-16{margin-left:4rem;margin-right:4rem}.tw\:mx-0\.5{margin-left:0.125rem;margin-right:0.125rem}.tw\:mx-1\.5{margin-left:0.375rem;margin-right:0.375rem}.tw\:mx-2\.5{margin-left:0.625rem;margin-right:0.625rem}.tw\:my-0{margin-top:0;margin-bottom:0}.tw\:my-1{margin-top:0.25rem;margin-bottom:0.25rem}.tw\:my-2{margin-top:0.5rem;margin-bottom:0.5rem}.tw\:my-3{margin-top:0.75rem;margin-bottom:0.75rem}.tw\:my-4{margin-top:1rem;margin-bottom:1rem}.tw\:my-5{margin-top:1.25rem;margin-bottom:1.25rem}.tw\:my-6{margin-top:1.5rem;margin-bottom:1.5rem}.tw\:my-8{margin-top:2rem;margin-bottom:2rem}.tw\:my-10{margin-top:2.5rem;margin-bottom:2.5rem}.tw\:my-12{margin-top:3rem;margin-bottom:3rem}.tw\:my-16{margin-top:4rem;margin-bottom:4rem}.tw\:my-0\.5{margin-top:0.125rem;margin-bottom:0.125rem}.tw\:my-1\.5{margin-top:0.375rem;margin-bottom:0.375rem}.tw\:my-2\.5{margin-top:0.625rem;margin-bottom:0.625rem}.tw\:mt-0{margin-top:0}.tw\:mt-1{margin-top:0.25rem}.tw\:mt-2{margin-top:0.5rem}.tw\:mt-3{margin-top:0.75rem}.tw\:mt-4{margin-top:1rem}.tw\:mt-5{margin-top:1.25rem}.tw\:mt-6{margin-top:1.5rem}.tw\:mt-8{margin-top:2rem}.tw\:mt-10{margin-top:2.5rem}.tw\:mt-12{margin-top:3rem}.tw\:mt-16{margin-top:4rem}.tw\:mt-0\.5{margin-top:0.125rem}.tw\:mt-1\.5{margin-top:0.375rem}.tw\:mt-2\.5{margin-top:0.625rem}.tw\:mr-0{margin-right:0}.tw\:mr-1{margin-right:0.25rem}.tw\:mr-2{margin-right:0.5rem}.tw\:mr-3{margin-right:0.75rem}.tw\:mr-4{margin-right:1rem}.tw\:mr-5{margin-right:1.25rem}.tw\:mr-6{margin-right:1.5rem}.tw\:mr-8{margin-right:2rem}.tw\:mr-10{margin-right:2.5rem}.tw\:mr-12{margin-right:3rem}.tw\:mr-16{margin-right:4rem}.tw\:mr-0\.5{margin-right:0.125rem}.tw\:mr-1\.5{margin-right:0.375rem}.tw\:mr-2\.5{margin-right:0.625rem}.tw\:mb-0{margin-bottom:0}.tw\:mb-1{margin-bottom:0.25rem}.tw\:mb-2{margin-bottom:0.5rem}.tw\:mb-3{margin-bottom:0.75rem}.tw\:mb-4{margin-bottom:1rem}.tw\:mb-5{margin-bottom:1.25rem}.tw\:mb-6{margin-bottom:1.5rem}.tw\:mb-8{margin-bottom:2rem}.tw\:mb-10{margin-bottom:2.5rem}.tw\:mb-12{margin-bottom:3rem}.tw\:mb-16{margin-bottom:4rem}.tw\:mb-0\.5{margin-bottom:0.125rem}.tw\:mb-1\.5{margin-bottom:0.375rem}.tw\:mb-2\.5{margin-bottom:0.625rem}.tw\:ml-0{margin-left:0}.tw\:ml-1{margin-left:0.25rem}.tw\:ml-2{margin-left:0.5rem}.tw\:ml-3{margin-left:0.75rem}.tw\:ml-4{margin-left:1rem}.tw\:ml-5{margin-left:1.25rem}.tw\:ml-6{margin-left:1.5rem}.tw\:ml-8{margin-left:2rem}.tw\:ml-10{margin-left:2.5rem}.tw\:ml-12{margin-left:3rem}.tw\:ml-16{margin-left:4rem}.tw\:ml-0\.5{margin-left:0.125rem}.tw\:ml-1\.5{margin-left:0.375rem}.tw\:ml-2\.5{margin-left:0.625rem}.tw\:gap-0{gap:0}.tw\:gap-1{gap:0.25rem}.tw\:gap-2{gap:0.5rem}.tw\:gap-3{gap:0.75rem}.tw\:gap-4{gap:1rem}.tw\:gap-5{gap:1.25rem}.tw\:gap-6{gap:1.5rem}.tw\:gap-8{gap:2rem}.tw\:gap-10{gap:2.5rem}.tw\:gap-12{gap:3rem}.tw\:gap-16{gap:4rem}.tw\:gap-0\.5{gap:0.125rem}.tw\:gap-1\.5{gap:0.375rem}.tw\:gap-2\.5{gap:0.625rem}.tw\:bg-primary{background-color:var(--med27-primary, #043c39)}.tw\:text-primary{color:var(--med27-primary, #043c39)}.tw\:border-primary{border-color:var(--med27-primary, #043c39)}.tw\:bg-primary-800{background-color:var(--med27-primary-800, #07514c)}.tw\:text-primary-800{color:var(--med27-primary-800, #07514c)}.tw\:border-primary-800{border-color:var(--med27-primary-800, #07514c)}.tw\:bg-primary-500{background-color:var(--med27-primary-500, #169486)}.tw\:text-primary-500{color:var(--med27-primary-500, #169486)}.tw\:border-primary-500{border-color:var(--med27-primary-500, #169486)}.tw\:bg-accent{background-color:var(--med27-accent, #55c5ae)}.tw\:text-accent{color:var(--med27-accent, #55c5ae)}.tw\:border-accent{border-color:var(--med27-accent, #55c5ae)}.tw\:bg-accent-100{background-color:var(--med27-accent-100, #e8f7f3)}.tw\:text-accent-100{color:var(--med27-accent-100, #e8f7f3)}.tw\:border-accent-100{border-color:var(--med27-accent-100, #e8f7f3)}.tw\:bg-accent-50{background-color:var(--med27-accent-50, #f3fbf9)}.tw\:text-accent-50{color:var(--med27-accent-50, #f3fbf9)}.tw\:border-accent-50{border-color:var(--med27-accent-50, #f3fbf9)}.tw\:bg-background{background-color:var(--med27-background, #f8faf9)}.tw\:text-background{color:var(--med27-background, #f8faf9)}.tw\:border-background{border-color:var(--med27-background, #f8faf9)}.tw\:bg-surface{background-color:var(--med27-surface, #ffffff)}.tw\:text-surface{color:var(--med27-surface, #ffffff)}.tw\:border-surface{border-color:var(--med27-surface, #ffffff)}.tw\:bg-surface-soft{background-color:var(--med27-surface-soft, #f2f6f5)}.tw\:text-surface-soft{color:var(--med27-surface-soft, #f2f6f5)}.tw\:border-surface-soft{border-color:var(--med27-surface-soft, #f2f6f5)}.tw\:bg-ink{background-color:var(--med27-text-primary, #122521)}.tw\:text-ink{color:var(--med27-text-primary, #122521)}.tw\:border-ink{border-color:var(--med27-text-primary, #122521)}.tw\:bg-ink-secondary{background-color:var(--med27-text-secondary, #4c605c)}.tw\:text-ink-secondary{color:var(--med27-text-secondary, #4c605c)}.tw\:border-ink-secondary{border-color:var(--med27-text-secondary, #4c605c)}.tw\:bg-ink-muted{background-color:var(--med27-text-muted, #7c908b)}.tw\:text-ink-muted{color:var(--med27-text-muted, #7c908b)}.tw\:border-ink-muted{border-color:var(--med27-text-muted, #7c908b)}.tw\:bg-on-primary{background-color:var(--med27-text-on-primary, #ffffff)}.tw\:text-on-primary{color:var(--med27-text-on-primary, #ffffff)}.tw\:border-on-primary{border-color:var(--med27-text-on-primary, #ffffff)}.tw\:bg-gray-200{background-color:var(--med27-gray-200, #e1e8e6)}.tw\:text-gray-200{color:var(--med27-gray-200, #e1e8e6)}.tw\:border-gray-200{border-color:var(--med27-gray-200, #e1e8e6)}.tw\:bg-gray-300{background-color:var(--med27-gray-300, #cad5d2)}.tw\:text-gray-300{color:var(--med27-gray-300, #cad5d2)}.tw\:border-gray-300{border-color:var(--med27-gray-300, #cad5d2)}.tw\:bg-white{background-color:#ffffff}.tw\:text-white{color:#ffffff}.tw\:border-white{border-color:#ffffff}.tw\:bg-success{background-color:var(--med27-success, #16805d)}.tw\:text-success{color:var(--med27-success, #16805d)}.tw\:border-success{border-color:var(--med27-success, #16805d)}.tw\:bg-warning{background-color:var(--med27-warning, #d99a32)}.tw\:text-warning{color:var(--med27-warning, #d99a32)}.tw\:border-warning{border-color:var(--med27-warning, #d99a32)}.tw\:bg-danger{background-color:var(--med27-danger, #c94b4b)}.tw\:text-danger{color:var(--med27-danger, #c94b4b)}.tw\:border-danger{border-color:var(--med27-danger, #c94b4b)}.tw\:bg-info{background-color:var(--med27-info, #397d9f)}.tw\:text-info{color:var(--med27-info, #397d9f)}.tw\:border-info{border-color:var(--med27-info, #397d9f)}.tw\:sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.tw\:pointer-events-none{pointer-events:none}.tw\:cursor-pointer{cursor:pointer}@media (min-width:640px){.tw\:sm\:flex{display:flex}.tw\:sm\:hidden{display:none}.tw\:sm\:block{display:block}.tw\:sm\:grid{display:grid}.tw\:sm\:flex-col{flex-direction:column}.tw\:sm\:flex-row{flex-direction:row}.tw\:sm\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.tw\:sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.tw\:sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.tw\:sm\:w-full{width:100%}.tw\:sm\:items-center{align-items:center}.tw\:sm\:justify-between{justify-content:space-between}.tw\:sm\:text-left{text-align:left}.tw\:sm\:text-center{text-align:center}}@media (min-width:768px){.tw\:md\:flex{display:flex}.tw\:md\:hidden{display:none}.tw\:md\:block{display:block}.tw\:md\:grid{display:grid}.tw\:md\:flex-col{flex-direction:column}.tw\:md\:flex-row{flex-direction:row}.tw\:md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.tw\:md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.tw\:md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.tw\:md\:w-full{width:100%}.tw\:md\:items-center{align-items:center}.tw\:md\:justify-between{justify-content:space-between}.tw\:md\:text-left{text-align:left}.tw\:md\:text-center{text-align:center}}@media (min-width:1024px){.tw\:lg\:flex{display:flex}.tw\:lg\:hidden{display:none}.tw\:lg\:block{display:block}.tw\:lg\:grid{display:grid}.tw\:lg\:flex-col{flex-direction:column}.tw\:lg\:flex-row{flex-direction:row}.tw\:lg\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.tw\:lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.tw\:lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.tw\:lg\:w-full{width:100%}.tw\:lg\:items-center{align-items:center}.tw\:lg\:justify-between{justify-content:space-between}.tw\:lg\:text-left{text-align:left}.tw\:lg\:text-center{text-align:center}}@media (min-width:1280px){.tw\:xl\:flex{display:flex}.tw\:xl\:hidden{display:none}.tw\:xl\:block{display:block}.tw\:xl\:grid{display:grid}.tw\:xl\:flex-col{flex-direction:column}.tw\:xl\:flex-row{flex-direction:row}.tw\:xl\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.tw\:xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.tw\:xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.tw\:xl\:w-full{width:100%}.tw\:xl\:items-center{align-items:center}.tw\:xl\:justify-between{justify-content:space-between}.tw\:xl\:text-left{text-align:left}.tw\:xl\:text-center{text-align:center}}}
@layer components{.ui-page {
    background-color: var(--med27-background, #f8faf9);
    color: var(--med27-text-primary, #122521);
    font-family: var(--med27-font, Inter, ui-sans-serif, system-ui, sans-serif);
  }

  .ui-card {
    background-color: var(--med27-surface, #fff);
    border: 1px solid var(--med27-gray-200, #e1e8e6);
    border-radius: var(--med27-radius, 12px);
    box-shadow: var(--med27-shadow);
  }

  .ui-card-header {
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--med27-gray-200, #e1e8e6);
    background: var(--med27-surface-soft, #f2f6f5);
    border-radius: var(--med27-radius, 12px) var(--med27-radius, 12px) 0 0;
  }

  .ui-card-body {
    padding: 1.25rem;
  }

  .ui-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 44px;
    padding: 0.5rem 1rem;
    border-radius: var(--med27-radius-sm, 8px);
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.25;
    border: 1px solid transparent;
    cursor: pointer;
    text-decoration: none;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
  }

  .ui-btn:focus-visible {
    outline: 2px solid var(--med27-primary-500, #169486);
    outline-offset: 2px;
  }

  .ui-btn-primary {
    background: var(--med27-primary, #043c39);
    border-color: var(--med27-primary, #043c39);
    color: var(--med27-text-on-primary, #fff);
  }

  .ui-btn-primary:hover {
    background: var(--med27-primary-800, #07514c);
    border-color: var(--med27-primary-800, #07514c);
    color: var(--med27-text-on-primary, #fff);
  }

  .ui-btn-accent {
    background: var(--med27-accent, #55c5ae);
    border-color: var(--med27-accent, #55c5ae);
    color: var(--med27-primary-950, #022f2d);
  }

  .ui-btn-ghost {
    background: transparent;
    border-color: var(--med27-gray-300, #cad5d2);
    color: var(--med27-gray-700, #344743);
  }

  .ui-btn-ghost:hover {
    background: var(--med27-gray-50, #f8faf9);
    border-color: var(--med27-gray-400, #98aaa6);
  }

  .ui-input,
  .ui-select,
  .ui-textarea {
    width: 100%;
    min-height: 44px;
    padding: 0.625rem 0.875rem;
    border: 1px solid var(--med27-gray-300, #cad5d2);
    border-radius: var(--med27-radius-sm, 8px);
    background: var(--med27-white, #fff);
    color: var(--med27-text-primary, #122521);
    font-size: 0.875rem;
  }

  .ui-input:focus,
  .ui-select:focus,
  .ui-textarea:focus {
    outline: none;
    border-color: var(--med27-primary-500, #169486);
    box-shadow: var(--med27-focus-ring, 0 0 0 3px rgba(22, 148, 134, 0.1));
  }

  .ui-label {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--med27-text-secondary, #4c605c);
  }

  .ui-muted {
    color: var(--med27-text-muted, #7c908b);
  }

  .ui-kicker {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--med27-primary-500, #169486);
  }}
/**
 * med27 — linguagem visual padrão (Tailwind layer).
 * Restiliza Bootstrap no app autenticado: mais ar, menos ruído, paleta teal/mint.
 * Carregar por último (antes do tema dark). Não altera regras de negócio.
 */

body.med27-tw {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ——— Botões ——— */
body.med27-tw .btn {
  font-family: var(--med27-font, Inter, ui-sans-serif, system-ui, sans-serif) !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em;
  line-height: 1.25 !important;
  border-radius: 8px !important;
  padding: 0.5rem 1rem !important;
  min-height: 40px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 0.45rem !important;
  box-shadow: none !important;
  transition:
    background-color 0.15s ease,
    border-color 0.15s ease,
    color 0.15s ease,
    box-shadow 0.15s ease;
}

body.med27-tw .btn-sm {
  min-height: 34px;
  padding: 0.35rem 0.7rem !important;
  font-size: 0.8125rem !important;
}

body.med27-tw .btn-lg {
  min-height: 46px;
  padding: 0.7rem 1.2rem !important;
}

body.med27-tw .btn-primary,
body.med27-tw .btn.btn-primary {
  background: var(--med27-primary, #043c39) !important;
  border: 1px solid var(--med27-primary, #043c39) !important;
  color: #fff !important;
}

body.med27-tw .btn-primary:hover,
body.med27-tw .btn-primary:focus {
  background: var(--med27-primary-800, #07514c) !important;
  border-color: var(--med27-primary-800, #07514c) !important;
  color: #fff !important;
}

body.med27-tw .btn-secondary,
body.med27-tw .btn.btn-secondary {
  background: var(--med27-accent-100, #e8f7f3) !important;
  border: 1px solid var(--med27-accent-200, #c9eee6) !important;
  color: var(--med27-primary-800, #07514c) !important;
}

body.med27-tw .btn-secondary:hover {
  background: var(--med27-accent-200, #c9eee6) !important;
  border-color: var(--med27-accent-300, #a1e1d3) !important;
  color: var(--med27-primary-800, #07514c) !important;
}

body.med27-tw .btn-outline-primary,
body.med27-tw .btn-outline-secondary,
body.med27-tw .btn-outline-dark {
  background: #fff !important;
  border: 1px solid var(--med27-gray-300, #cad5d2) !important;
  color: var(--med27-gray-700, #344743) !important;
}

body.med27-tw .btn-outline-primary:hover,
body.med27-tw .btn-outline-secondary:hover,
body.med27-tw .btn-outline-dark:hover {
  background: var(--med27-gray-50, #f8faf9) !important;
  border-color: var(--med27-gray-400, #98aaa6) !important;
  color: var(--med27-gray-800, #20332f) !important;
}

body.med27-tw .btn-success {
  background: var(--med27-success, #16805d) !important;
  border-color: var(--med27-success, #16805d) !important;
  color: #fff !important;
}

body.med27-tw .btn-danger {
  background: var(--med27-danger, #c94b4b) !important;
  border-color: var(--med27-danger, #c94b4b) !important;
  color: #fff !important;
}

body.med27-tw .btn-warning {
  background: var(--med27-warning, #d99a32) !important;
  border-color: var(--med27-warning, #d99a32) !important;
  color: #122521 !important;
}

body.med27-tw .btn-info {
  background: var(--med27-info, #397d9f) !important;
  border-color: var(--med27-info, #397d9f) !important;
  color: #fff !important;
}

body.med27-tw .btn-light,
body.med27-tw .btn-outline-light {
  background: var(--med27-surface-soft, #f2f6f5) !important;
  border: 1px solid var(--med27-gray-200, #e1e8e6) !important;
  color: var(--med27-gray-700, #344743) !important;
}

/* ——— Cards ——— */
body.med27-tw .card {
  background: var(--med27-surface, #fff) !important;
  border: 1px solid var(--med27-gray-200, #e1e8e6) !important;
  border-radius: 14px !important;
  box-shadow:
    0 1px 2px rgba(18, 37, 33, 0.03),
    0 10px 28px -18px rgba(4, 60, 57, 0.16) !important;
}

body.med27-tw .card-header {
  background: #fff !important;
  border-bottom: 1px solid var(--med27-gray-100, #f0f4f3) !important;
  color: var(--med27-text-primary, #122521) !important;
  font-weight: 600 !important;
  padding: 1rem 1.25rem !important;
}

body.med27-tw .card-body {
  padding: 1.15rem 1.25rem !important;
}

body.med27-tw .card-footer {
  background: var(--med27-surface-soft, #f2f6f5) !important;
  border-top: 1px solid var(--med27-gray-100, #f0f4f3) !important;
}

/* ——— Formulários ——— */
body.med27-tw .form-label {
  font-size: 0.8125rem !important;
  font-weight: 500 !important;
  color: var(--med27-text-secondary, #4c605c) !important;
  margin-bottom: 0.4rem !important;
}

body.med27-tw .form-control,
body.med27-tw .form-select,
body.med27-tw textarea.form-control {
  min-height: 42px !important;
  border: 1px solid var(--med27-gray-200, #e1e8e6) !important;
  border-radius: 10px !important;
  background: #fff !important;
  color: var(--med27-text-primary, #122521) !important;
  font-size: 0.875rem !important;
  box-shadow: none !important;
}

body.med27-tw .form-control:focus,
body.med27-tw .form-select:focus {
  border-color: var(--med27-primary-500, #169486) !important;
  box-shadow: 0 0 0 3px rgba(22, 148, 134, 0.12) !important;
}

body.med27-tw .form-control::placeholder {
  color: var(--med27-text-muted, #7c908b) !important;
}

body.med27-tw .input-group-text {
  background: var(--med27-surface-soft, #f2f6f5) !important;
  border: 1px solid var(--med27-gray-200, #e1e8e6) !important;
  color: var(--med27-text-muted, #7c908b) !important;
}

/* ——— Tabelas ——— */
body.med27-tw .table {
  --bs-table-bg: transparent;
  font-size: 0.875rem !important;
}

body.med27-tw .table thead th {
  background: var(--med27-surface-soft, #f2f6f5) !important;
  color: var(--med27-gray-600, #4c605c) !important;
  font-size: 0.6875rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  border-bottom: 1px solid var(--med27-gray-200, #e1e8e6) !important;
  padding: 0.7rem 1rem !important;
}

body.med27-tw .table tbody td,
body.med27-tw .table tbody th {
  border-color: var(--med27-gray-100, #f0f4f3) !important;
  padding: 0.8rem 1rem !important;
  color: var(--med27-text-primary, #122521);
  vertical-align: middle;
}

body.med27-tw .table-hover tbody tr:hover,
body.med27-tw .table tbody tr:hover {
  background: var(--med27-accent-50, #f3fbf9) !important;
}

/* ——— Badges, alerts, nav ——— */
body.med27-tw .badge {
  font-weight: 600;
  letter-spacing: 0.02em;
  border-radius: 999px !important;
  padding: 0.28em 0.7em;
}

body.med27-tw .alert {
  border-radius: 12px !important;
  border: 1px solid transparent !important;
  box-shadow: none !important;
}

body.med27-tw .breadcrumb {
  font-size: 0.75rem;
  background: transparent;
  padding: 0;
}

body.med27-tw .nav-tabs {
  border-bottom: 1px solid var(--med27-gray-200, #e1e8e6) !important;
}

body.med27-tw .nav-tabs .nav-link {
  border: 0 !important;
  color: var(--med27-text-muted, #7c908b);
  font-weight: 600;
  font-size: 0.875rem;
  padding: 0.7rem 1rem;
  border-radius: 0 !important;
}

body.med27-tw .nav-tabs .nav-link.active {
  color: var(--med27-primary, #043c39) !important;
  background: transparent !important;
  box-shadow: inset 0 -2px 0 var(--med27-accent, #55c5ae);
}

body.med27-tw .nav-pills .nav-link {
  border-radius: 8px !important;
  font-weight: 600;
  color: var(--med27-text-secondary, #4c605c);
}

body.med27-tw .nav-pills .nav-link.active {
  background: var(--med27-primary, #043c39) !important;
  color: #fff !important;
}

/* ——— Modal, dropdown, pagination ——— */
body.med27-tw .modal-content {
  border-radius: 16px !important;
  border: 1px solid var(--med27-gray-200, #e1e8e6) !important;
  box-shadow: 0 24px 48px -20px rgba(4, 60, 57, 0.28) !important;
}

body.med27-tw .modal-header {
  border-bottom: 1px solid var(--med27-gray-100, #f0f4f3) !important;
  padding: 1rem 1.25rem !important;
}

body.med27-tw .modal-footer {
  border-top: 1px solid var(--med27-gray-100, #f0f4f3) !important;
  background: var(--med27-surface-soft, #f2f6f5);
}

body.med27-tw .dropdown-menu {
  border-radius: 12px !important;
  border: 1px solid var(--med27-gray-200, #e1e8e6) !important;
  box-shadow: 0 16px 36px -16px rgba(18, 37, 33, 0.22) !important;
  padding: 0.4rem !important;
}

body.med27-tw .dropdown-item {
  border-radius: 8px;
  font-size: 0.875rem;
  padding: 0.45rem 0.7rem;
}

body.med27-tw .dropdown-item:hover,
body.med27-tw .dropdown-item:focus {
  background: var(--med27-accent-50, #f3fbf9) !important;
  color: var(--med27-primary, #043c39) !important;
}

body.med27-tw .pagination .page-link {
  border-radius: 8px !important;
  border: 1px solid var(--med27-gray-200, #e1e8e6) !important;
  color: var(--med27-primary, #043c39);
  margin: 0 0.15rem;
}

body.med27-tw .pagination .page-item.active .page-link {
  background: var(--med27-primary, #043c39) !important;
  border-color: var(--med27-primary, #043c39) !important;
}

/* ——— Títulos de página ——— */
body.med27-tw .page-title,
body.med27-tw .content h1,
body.med27-tw .content-body h1 {
  letter-spacing: -0.03em;
  color: var(--med27-text-primary, #122521) !important;
}

body.med27-tw .page-kicker-sigla {
  color: var(--med27-primary-500, #169486) !important;
}

/* ——— Menu lateral ——— */
body.med27-tw .sidebar {
  background: var(--med27-sidebar-bg, #16615a) !important;
  border-right: 0 !important;
  box-shadow: 6px 0 28px -20px rgba(18, 37, 33, 0.22) !important;
}

body.med27-tw .sidebar-nav {
  flex: 1 1 auto;
  overflow-y: auto;
  min-height: 0;
  padding: 0.15rem 0 0.75rem;
}

body.med27-tw .sidebar .brand {
  background: #fff !important;
  border: 1px solid rgba(255, 255, 255, 0.22) !important;
  border-radius: 14px !important;
  margin: 0.75rem 0.7rem 0.85rem !important;
  padding: 0.5rem 0.6rem !important;
  gap: 0.5rem !important;
  box-shadow: 0 1px 2px rgba(2, 47, 45, 0.06), 0 10px 22px -16px rgba(2, 47, 45, 0.35) !important;
  align-items: center !important;
  overflow: visible !important;
}

body.med27-tw .sidebar .brand .logo-ring {
  min-width: 0 !important;
  width: auto !important;
  height: auto !important;
  padding: 0.1rem 0.15rem 0.1rem 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  overflow: visible !important;
}

body.med27-tw .sidebar .brand .logo-ring img.sidebar-brand-logo,
body.med27-tw .sidebar .brand .logo-ring img,
body.med27-tw .sidebar .brand .logo-ring svg.sidebar-brand-logo {
  height: 28px !important;
  width: auto !important;
  max-width: 96px !important;
  display: block !important;
  object-fit: contain !important;
  image-rendering: auto !important;
  color: var(--med27-primary, #043c39);
}

body.med27-tw .sidebar .brand .logo-ring svg.sidebar-brand-logo {
  max-width: 112px !important;
  overflow: visible !important;
}

body.med27-tw .sidebar .brand .brand-text {
  container-type: inline-size;
  min-width: 0;
  flex: 1 1 0 !important;
}

body.med27-tw .sidebar .brand::before {
  height: 2px !important;
  left: 0.85rem !important;
  right: 0.85rem !important;
  background: var(--med27-accent, #55c5ae) !important;
  opacity: 1 !important;
}

body.med27-tw .sidebar .brand .brand-name,
body.med27-tw .sidebar .brand .brand-text .brand-name {
  color: var(--med27-primary, #043c39) !important;
  font-size: clamp(0.7rem, 13cqi, 0.84rem) !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: unset !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
  text-wrap: balance;
  line-height: 1.2 !important;
}

body.med27-tw .sidebar .brand .brand-subtitle {
  color: var(--med27-text-muted, #7c908b) !important;
  font-size: clamp(0.58rem, 9cqi, 0.68rem) !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: unset !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
}

body.med27-tw .sidebar .section-title,
body.med27-tw .sidebar .sidebar-section-label,
body.med27-tw .sidebar .nav-heading {
  color: rgba(255, 255, 255, 0.42) !important;
  font-size: 0.6875rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  padding: 0.95rem 1.05rem 0.35rem !important;
}

body.med27-tw .sidebar .section-title i {
  color: rgba(161, 225, 211, 0.7) !important;
  opacity: 1 !important;
}

body.med27-tw .sidebar .nav-link {
  color: rgba(255, 255, 255, 0.82) !important;
  font-weight: 500 !important;
  border-radius: 10px !important;
  margin: 0.08rem 0.55rem !important;
  padding: 0.48rem 0.7rem !important;
  background: transparent !important;
}

body.med27-tw .sidebar button.sidebar-collapse-toggle.nav-link {
  background: transparent !important;
}

body.med27-tw .sidebar .nav-link i,
body.med27-tw .sidebar .nav-link i[class^="bi-"],
body.med27-tw .sidebar .nav-link i[class*=" bi-"] {
  color: rgba(255, 255, 255, 0.68) !important;
  font-size: 1.05rem !important;
  width: 1.15rem !important;
  transform: none !important;
}

body.med27-tw .sidebar .nav-link:hover {
  background: var(--med27-sidebar-hover, rgba(161, 225, 211, 0.14)) !important;
  color: #fff !important;
}

body.med27-tw .sidebar .nav-link:hover i,
body.med27-tw .sidebar .nav-link:hover i[class^="bi-"],
body.med27-tw .sidebar .nav-link:hover i[class*=" bi-"] {
  color: var(--med27-accent-300, #a1e1d3) !important;
}

body.med27-tw .sidebar .nav-link.active {
  background: var(--med27-sidebar-active, rgba(85, 197, 174, 0.2)) !important;
  color: #fff !important;
  font-weight: 600 !important;
}

body.med27-tw .sidebar .nav-link.active::before {
  width: 3px !important;
  height: 58% !important;
  background: var(--med27-accent, #55c5ae) !important;
  border-radius: 0 3px 3px 0 !important;
  opacity: 1 !important;
}

body.med27-tw .sidebar .nav-link.active i,
body.med27-tw .sidebar .nav-link.active i[class^="bi-"],
body.med27-tw .sidebar .nav-link.active i[class*=" bi-"] {
  color: var(--med27-accent, #55c5ae) !important;
}

body.med27-tw .sidebar .nav-link i.bi-caret-down {
  color: rgba(255, 255, 255, 0.38) !important;
  font-size: 0.7rem !important;
}

body.med27-tw .sidebar .submenu {
  margin-left: 0 !important;
  padding-left: 0 !important;
  border-left: 0 !important;
}

body.med27-tw .sidebar .submenu .nav-link {
  color: rgba(255, 255, 255, 0.72) !important;
  font-size: 0.8125rem !important;
}

body.med27-tw .sidebar .nav-link.text-danger {
  color: rgba(255, 255, 255, 0.62) !important;
  margin-top: 0.35rem !important;
}

body.med27-tw .sidebar .nav-link.text-danger:hover {
  background: rgba(201, 75, 75, 0.18) !important;
  color: #f3c1c1 !important;
}

body.med27-tw .sidebar .nav-link.text-danger:hover i {
  color: #f3c1c1 !important;
}

body.med27-tw .sidebar-info {
  margin: 0.5rem 0.7rem 0.35rem;
  padding: 0.75rem 0.35rem 0.15rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

body.med27-tw .sidebar-info-version,
body.med27-tw .sidebar-info-version small,
body.med27-tw .sidebar-info-text,
body.med27-tw .sidebar-info-text small {
  color: rgba(255, 255, 255, 0.42) !important;
  font-size: 0.6875rem !important;
  line-height: 1.45 !important;
  display: block;
  text-align: center;
}

body.med27-tw .sidebar-info-version strong {
  color: rgba(255, 255, 255, 0.58);
  font-weight: 600;
}

body.med27-tw .sidebar-info-version a.sidebar-footer-brand {
  color: inherit;
  text-decoration: none;
}

body.med27-tw .sidebar-info-version a.sidebar-footer-brand:hover,
body.med27-tw .sidebar-info-version a.sidebar-footer-brand:hover strong {
  color: #55c5ae;
}

body.med27-tw .sidebar-wrapper::-webkit-scrollbar,
body.med27-tw .sidebar-nav::-webkit-scrollbar {
  width: 6px;
}

body.med27-tw .sidebar-wrapper::-webkit-scrollbar-thumb,
body.med27-tw .sidebar-nav::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.16);
  border-radius: 99px;
}

body.med27-tw.sidebar-collapsed .sidebar .brand .logo-ring {
  min-width: 0 !important;
  width: 100% !important;
  height: 100% !important;
  padding: 0 !important;
}

body.med27-tw .sidebar .logo-ring .sidebar-brand-logo--mark {
  display: none;
}

body.med27-tw.sidebar-collapsed .sidebar .brand {
  width: 44px !important;
  height: 44px !important;
  margin: 0.65rem auto 0.75rem !important;
  padding: 0 !important;
  gap: 0 !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

body.med27-tw.sidebar-collapsed .sidebar .brand .sidebar-brand-logo--full,
body.med27-tw.sidebar-collapsed .sidebar .brand .logo-ring svg.sidebar-brand-logo--full {
  display: none !important;
}

body.med27-tw.sidebar-collapsed .sidebar .brand .sidebar-brand-logo--mark {
  display: block !important;
  height: 28px !important;
  max-width: 36px !important;
  margin: 0 auto;
}

body.med27-tw.sidebar-collapsed .sidebar .brand .logo-ring img.sidebar-brand-logo {
  height: 28px !important;
  max-width: 32px !important;
}

body.med27-tw.sidebar-collapsed .sidebar .nav-link {
  justify-content: center !important;
  margin: 0.12rem 0.4rem !important;
  padding: 0.55rem 0 !important;
}

body.med27-tw.sidebar-collapsed .sidebar .nav-link.active::before,
body.med27-tw.sidebar-collapsed .sidebar .nav-link.active::after {
  display: none !important;
}

body.med27-tw.sidebar-collapsed .sidebar-info,
body.med27-tw.sidebar-collapsed .sidebar-info-version,
body.med27-tw.sidebar-collapsed .sidebar-info-version small,
body.med27-tw.sidebar-collapsed .sidebar-info-text,
body.med27-tw.sidebar-collapsed .sidebar-info-text small {
  display: none !important;
}

body.med27-tw.sidebar-collapsed .sidebar .submenu {
  display: none !important;
  margin-left: 0 !important;
  padding-left: 0 !important;
  border-left: 0 !important;
}

html[data-theme="dark"] body.med27-tw .sidebar .brand {
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: rgba(255, 255, 255, 0.14) !important;
}

html[data-theme="dark"] body.med27-tw .sidebar .brand .logo-ring svg.sidebar-brand-logo {
  color: #fff;
}

html[data-theme="dark"] body.med27-tw .sidebar .brand .brand-name,
html[data-theme="dark"] body.med27-tw .sidebar .brand .brand-text .brand-name {
  color: #fff !important;
}

