:root {
    --color-inverse-surface: #283044;
    --color-on-secondary-fixed: #0d1c2e;
    --color-on-error: #ffffff;
    --color-tertiary: #562c00;
    --color-secondary: #515f74;
    --color-surface-tint: #226293;
    --color-surface-variant: #dae2fd;
    --color-surface-dim: #d2d9f4;
    --color-primary-fixed: #cee5ff;
    --color-secondary-fixed: #d5e3fc;
    --color-tertiary-fixed-dim: #ffb77c;
    --color-surface-container-low: #f2f3ff;
    --color-on-tertiary-fixed-variant: #6d3900;
    --color-on-tertiary-fixed: #2e1500;
    --color-surface-container-highest: #dae2fd;
    --color-on-secondary-fixed-variant: #3a485b;
    --color-on-primary-fixed-variant: #004a77;
    --color-surface-container-high: #e2e7ff;
    --color-on-primary: #ffffff;
    --color-on-tertiary-container: #fdad69;
    --color-on-surface-variant: #41474f;
    --color-primary-container: #005181;
    --color-surface-bright: #faf8ff;
    --color-surface-container: #eaedff;
    --color-background: #faf8ff;
    --color-secondary-fixed-dim: #b9c7df;
    --color-surface: #faf8ff;
    --color-surface-container-lowest: #ffffff;
    --color-on-background: #131b2e;
    --color-tertiary-fixed: #ffdcc2;
    --color-primary: #00395d;
    --color-error: #ba1a1a;
    --color-secondary-container: #d5e3fc;
    --color-on-primary-container: #8cc4fa;
    --color-tertiary-container: #773f00;
    --color-inverse-primary: #97cbff;
    --color-on-secondary-container: #57657a;
    --color-on-surface: #131b2e;
    --color-outline: #717880;
    --color-inverse-on-surface: #eef0ff;
    --color-error-container: #ffdad6;
    --color-on-error-container: #93000a;
    --color-on-secondary: #ffffff;
    --color-primary-fixed-dim: #97cbff;
    --color-on-primary-fixed: #001d33;
    --color-outline-variant: #c1c7d0;
    --color-on-tertiary: #ffffff;

    --font-family-base: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --spacing-xs: 4px;
    --spacing-sm: 8px;
    --spacing-md: 12px;
    --spacing-lg: 16px;
    --spacing-xl: 24px;
    --spacing-gutter: 12px;
    --spacing-container-padding: 16px;
}

body {
    background: var(--color-surface);
    color: var(--color-on-surface);
    font-family: var(--font-family-base);
    font-size: 13px;
    line-height: 18px;
}

.material-symbols-outlined {
    font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
}

.font-display {
    font-family: var(--font-family-base);
    font-size: 24px;
    line-height: 32px;
    letter-spacing: -0.02em;
    font-weight: 600;
}

.font-headline {
    font-family: var(--font-family-base) !important;
    font-size: 18px;
    line-height: 24px;
    letter-spacing: -0.01em;
    font-weight: 600 !important;
}

.font-body-sm {
    font-family: var(--font-family-base);
    font-size: 13px;
    line-height: 18px;
}

.font-body-xs {
    font-family: var(--font-family-base);
    font-size: 12px;
    line-height: 16px;
}

.font-tabular-nums {
    font-family: var(--font-family-base);
    font-variant-numeric: tabular-nums;
}

.font-label-caps {
    font-family: var(--font-family-base);
    font-size: 11px;
    line-height: 16px;
    letter-spacing: 0.05em;
    font-weight: 700;
    text-transform: uppercase;
}

.text-display {
    font-size: 24px;
    line-height: 32px;
    letter-spacing: -0.02em;
    font-weight: 600;
}

.text-headline {
    font-size: 18px !important;
    line-height: 24px !important;
    letter-spacing: -0.01em !important;
    font-weight: 600 !important;
}

.text-body-sm {
    font-size: 13px;
    line-height: 18px;
}

.text-body-xs {
    font-size: 12px;
    line-height: 16px;
}

.text-label-caps {
    font-size: 11px;
    line-height: 16px;
    letter-spacing: 0.05em;
    font-weight: 700;
    text-transform: uppercase;
}

.text-tabular-nums {
    font-size: 13px;
    line-height: 18px;
    font-variant-numeric: tabular-nums;
}

.bg-surface {
    background: var(--color-surface);
}

.bg-surface-container-lowest {
    background: var(--color-surface-container-lowest);
}

.bg-surface-container-low {
    background: var(--color-surface-container-low);
}

.bg-surface-container-high {
    background: var(--color-surface-container-high);
}

.bg-primary {
    background: var(--color-primary);
}

.bg-primary-container {
    background: var(--color-primary-container);
}

.bg-primary-fixed {
    background: var(--color-primary-fixed) !important;
}

.bg-green-100 {
    background: #dcfce7 !important;
}

.bg-error-container {
    background: var(--color-error-container) !important;
}

.bg-tertiary-fixed {
    background: var(--color-tertiary-fixed) !important;
}

.bg-tertiary-fixed\/25 {
    background: rgba(255, 220, 194, 0.25);
}

.bg-outline {
    background: var(--color-outline);
}

.bg-outline-variant {
    background: var(--color-outline-variant);
}

.text-on-surface {
    color: var(--color-on-surface);
}

.text-on-surface-variant {
    color: var(--color-on-surface-variant);
}

.text-on-primary {
    color: var(--color-on-primary) !important;
}

.text-on-primary-container {
    color: var(--color-on-primary-container);
}

.text-primary {
    color: var(--color-primary);
}

.text-primary-container {
    color: var(--color-primary-container);
}

.text-on-primary-fixed {
    color: var(--color-on-primary-fixed) !important;
}

.text-green-700 {
    color: #15803d;
}

.text-green-800 {
    color: #166534 !important;
}

.text-tertiary {
    color: var(--color-tertiary);
}

.text-tertiary-container {
    color: var(--color-tertiary-container);
}

.text-error {
    color: var(--color-error);
}

.text-on-error-container {
    color: var(--color-on-error-container) !important;
}

.text-on-tertiary-fixed {
    color: var(--color-on-tertiary-fixed) !important;
}

.border-outline-variant {
    border-color: var(--color-outline-variant);
}

.border-primary-fixed-dim {
    border-color: var(--color-primary-fixed-dim) !important;
}

.border-primary-container {
    border-color: var(--color-primary-container) !important;
}

.border-green-200 {
    border-color: #bbf7d0 !important;
}

.border-tertiary-fixed-dim {
    border-color: var(--color-tertiary-fixed-dim);
}

.border-error {
    border-color: var(--color-error) !important;
}

.placeholder\:text-on-surface-variant::placeholder {
    color: var(--color-on-surface-variant);
}

.p-container-padding {
    padding: var(--spacing-container-padding) !important;
}

.px-xs {
    padding-left: var(--spacing-xs);
    padding-right: var(--spacing-xs);
}

.py-xs {
    padding-top: var(--spacing-xs);
    padding-bottom: var(--spacing-xs);
}

.px-sm {
    padding-left: var(--spacing-sm);
    padding-right: var(--spacing-sm);
}

.py-sm {
    padding-top: var(--spacing-sm);
    padding-bottom: var(--spacing-sm);
}

.p-sm {
    padding: var(--spacing-sm);
}

.p-lg {
    padding: var(--spacing-lg) !important;
}

.px-md {
    padding-left: var(--spacing-md) !important;
    padding-right: var(--spacing-md) !important;
}

.py-md {
    padding-top: var(--spacing-md) !important;
    padding-bottom: var(--spacing-md) !important;
}

.px-3 {
    padding-left: 0.75rem !important;
    padding-right: 0.75rem !important;
}

.pt-12 {
    padding-top: 3rem !important;
}

.px-lg {
    padding-left: var(--spacing-lg) !important;
    padding-right: var(--spacing-lg) !important;
}

.py-lg {
    padding-top: var(--spacing-lg) !important;
    padding-bottom: var(--spacing-lg) !important;
}

.px-xl {
    padding-left: var(--spacing-xl) !important;
    padding-right: var(--spacing-xl) !important;
}

.pb-xs {
    padding-bottom: var(--spacing-xs);
}

.pb-lg {
    padding-bottom: var(--spacing-lg);
}

.mt-xs {
    margin-top: var(--spacing-xs);
}

.mt-sm {
    margin-top: var(--spacing-sm);
}

.mt-md {
    margin-top: var(--spacing-md);
}

.mt-lg {
    margin-top: var(--spacing-lg);
}

.mt-xl {
    margin-top: var(--spacing-xl);
}

.mb-md {
    margin-bottom: var(--spacing-md);
}

.mb-lg {
    margin-bottom: var(--spacing-lg);
}

.flex {
    display: flex;
}

.inline-flex {
    display: inline-flex !important;
}

.grid {
    display: grid;
}

.items-center {
    align-items: center !important;
}

.items-start {
    align-items: flex-start;
}

.justify-between {
    justify-content: space-between;
}

.justify-center {
    justify-content: center;
}

.justify-end {
    justify-content: flex-end;
}

.flex-col {
    flex-direction: column;
}

.flex-wrap {
    flex-wrap: wrap;
}

.flex-1 {
    flex: 1 1 0%;
}

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

.min-w-0 {
    min-width: 0;
}

.w-px {
    width: 1px;
}

.w-8 {
    width: 2rem;
}

.h-4 {
    height: 1rem;
}

.h-6 {
    height: 1.5rem !important;
}

.h-8 {
    height: 2rem;
}

.h-10 {
    height: 2.5rem;
}

.h-12 {
    height: 3rem;
}

.min-h-8 {
    min-height: 2rem;
}

.min-h-\[240px\] {
    min-height: 240px;
}

.min-h-\[160px\] {
    min-height: 160px;
}

.rounded {
    border-radius: 0.125rem;
}

.rounded-full {
    border-radius: 9999px !important;
}

.border {
    border-width: 1px;
    border-style: solid;
}

.border-b {
    border-bottom-width: 1px;
    border-bottom-style: solid;
}

.border-r {
    border-right-width: 1px;
    border-right-style: solid;
}

.border-b-2 {
    border-bottom-width: 2px;
    border-bottom-style: solid;
}

.border-transparent {
    border-color: transparent;
}

.font-semibold {
    font-weight: 600 !important;
}

.font-bold {
    font-weight: 700;
}

.text-\[11px\] {
    font-size: 11px !important;
}

.text-\[14px\] {
    font-size: 14px !important;
}

.text-\[16px\] {
    font-size: 16px;
}

.text-\[18px\] {
    font-size: 18px;
}

.leading-none {
    line-height: 1;
}

.leading-\[20px\] {
    line-height: 20px !important;
}

.gap-xs {
    gap: var(--spacing-xs);
}

.gap-sm {
    gap: var(--spacing-sm);
}

.gap-md {
    gap: var(--spacing-md);
}

.gap-lg {
    gap: var(--spacing-lg) !important;
}

.gap-xl {
    gap: var(--spacing-xl) !important;
}

.gap-gutter {
    gap: var(--spacing-gutter) !important;
}

.thin-scrollbar {
    scrollbar-width: thin;
    scrollbar-color: var(--color-outline-variant) transparent;
}

.thin-scrollbar::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

.thin-scrollbar::-webkit-scrollbar-thumb {
    background: var(--color-outline-variant);
    border-radius: 4px;
}

.thin-scrollbar::-webkit-scrollbar-track {
    background: transparent;
}

.progress-track {
    height: 8px;
    border-radius: 2px;
    background: var(--color-surface-variant);
    overflow: hidden;
}

.progress-bar {
    height: 100%;
    border-radius: 2px;
}

.gantt-bg {
    background-image: linear-gradient(to right, rgba(193, 199, 208, 0.65) 1px, transparent 1px);
    background-size: 25% 100%;
}

.fortglass-mark {
    position: relative;
    width: 32px;
    height: 32px;
    flex: 0 0 auto;
    overflow: hidden;
    border-radius: 2px;
    background: var(--color-surface-container-low);
    border: 1px solid var(--color-outline-variant);
}

.fortglass-mark span {
    position: absolute;
    display: block;
    width: 15px;
    height: 10px;
    border-radius: 1px;
    transform: skewY(-24deg);
}

.fortglass-mark .p1 {
    left: 4px;
    top: 5px;
    background: var(--color-on-primary-container);
}

.fortglass-mark .p2 {
    left: 14px;
    top: 10px;
    background: var(--color-surface-tint);
}

.fortglass-mark .p3 {
    left: 4px;
    top: 17px;
    background: var(--color-secondary);
}

.fortglass-mark .p4 {
    left: 14px;
    top: 22px;
    background: var(--color-inverse-primary);
}

.side-nav {
    background: var(--color-surface-container-lowest);
}

.side-nav-scroll {
    scrollbar-width: thin;
    scrollbar-color: var(--color-outline-variant) transparent;
}

.side-nav-scroll::-webkit-scrollbar {
    width: 6px;
}

.side-nav-scroll::-webkit-scrollbar-thumb {
    background: var(--color-outline-variant);
    border-radius: 4px;
}

.nav-section-label {
    font-size: 11px;
    line-height: 16px;
    letter-spacing: 0.05em;
    font-weight: 700;
    color: var(--color-on-surface-variant);
    text-transform: uppercase;
    margin: 0 0 6px;
    padding: 0 18px;
}

.nav-menu {
    display: flex;
    flex-direction: column;
    gap: 0;
    list-style: none;
    margin: 0;
    padding: 0;
}

.nav-section-block {
    display: block;
    margin: 16px 0 0;
    padding: 0;
    list-style: none;
}

.nav-section-items {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.nav-row {
    display: block;
    margin: 0;
    padding: 0;
}

.nav-item {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    box-sizing: border-box;
    width: calc(100% - 16px);
    min-height: 32px;
    margin: 0 8px;
    padding: 0 10px;
    border: 1px solid transparent;
    border-radius: 2px;
    color: var(--color-on-surface-variant);
    font-family: var(--font-family-base);
    font-size: 13px;
    font-weight: 500;
    line-height: 16px;
    text-decoration: none;
    transition: background-color 120ms ease, color 120ms ease, border-color 120ms ease;
}

.nav-item-nested {
    gap: 8px;
    padding: 0 8px;
}

.nav-item:hover {
    color: var(--color-on-surface);
    background: color-mix(in srgb, var(--color-surface-container-low) 62%, transparent);
    border-color: transparent;
}

.nav-item:focus {
    outline: none;
}

.nav-item:focus-visible {
    border-color: var(--color-primary-container);
    box-shadow: inset 2px 0 0 var(--color-primary-container);
}

.nav-item-active {
    color: var(--color-primary);
    background: color-mix(in srgb, var(--color-primary-fixed) 36%, transparent);
    border-color: transparent;
    box-shadow: inset 2px 0 0 var(--color-primary-container);
    font-weight: 600;
}

.nav-item-disabled {
    cursor: not-allowed;
    color: color-mix(in srgb, var(--color-on-surface-variant) 62%, transparent);
}

.nav-item-disabled:hover {
    background: transparent;
    border-color: transparent;
    color: color-mix(in srgb, var(--color-on-surface-variant) 62%, transparent);
}

.nav-item-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nav-item-badge {
    margin-left: 2px;
    min-height: 0;
    align-items: center;
    border: 0;
    background: transparent;
    color: var(--color-on-surface-variant);
    padding: 0;
    font-size: 12px;
    line-height: 16px;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}

.nav-icon-box {
    width: 20px;
    height: 20px;
    border-radius: 2px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

.nav-icon-box .material-symbols-outlined,
.nav-item > .material-symbols-outlined {
    font-size: 18px;
    line-height: 18px;
}

.nav-item-active .nav-icon-box {
    color: var(--color-primary);
}

.nav-tree {
    margin-left: 24px;
    padding-left: 10px;
    border-left: 1px solid var(--color-surface-dim);
}

.nav-footer-card {
    border: 1px solid var(--color-outline-variant);
    background: var(--color-surface-container-lowest);
    border-radius: 2px;
}

.nav-group summary {
    list-style: none;
    cursor: pointer;
}

.nav-group summary::-webkit-details-marker {
    display: none;
}

.nav-collapse-icon {
    transition: transform 120ms ease;
}

.nav-group:not([open]) .nav-collapse-icon {
    transform: rotate(-90deg);
}

/* Base de Dados Markdown */
.base-db-markdown,
.base-db-markdown *,
.base-db-markdown p,
.base-db-markdown li,
.base-db-markdown strong,
.base-db-markdown td,
.base-db-markdown th {
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    font-size: 13px !important;
    line-height: 18px !important;
    color: var(--color-on-surface) !important;
}

.base-db-markdown {
    max-width: 100%;
    overflow-x: auto !important;
}

.base-db-markdown h1 {
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    font-size: 13px !important;
    line-height: 18px !important;
    margin: 0 0 8px !important;
}

.base-db-markdown h2,
.base-db-markdown h3 {
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    font-size: 13px !important;
    line-height: 18px !important;
    margin: 8px 0 4px !important;
}

.base-db-markdown h4,
.base-db-markdown h5,
.base-db-markdown h6 {
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    font-size: 13px !important;
    line-height: 18px !important;
    margin: 8px 0 4px !important;
}

.base-db-markdown p,
.base-db-markdown ul,
.base-db-markdown ol {
    margin-top: 0 !important;
    margin-bottom: 8px !important;
}

.base-db-markdown li {
    margin-top: 2px !important;
    margin-bottom: 2px !important;
}

.base-db-markdown code {
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    font-size: 13px !important;
    line-height: 18px !important;
    background: var(--color-surface-container-low) !important;
    border: 1px solid var(--color-outline-variant) !important;
    border-radius: 2px !important;
    padding: 0 3px !important;
}

.base-db-markdown table {
    width: 100% !important;
    max-width: 100% !important;
    border-collapse: collapse !important;
    font-size: 13px !important;
    line-height: 18px !important;
}

.base-db-markdown-table-wrap {
    width: 100%;
    overflow-x: auto;
    margin: 8px 0;
}

.base-db-markdown th,
.base-db-markdown td {
    border: 1px solid var(--color-outline-variant) !important;
    padding: 6px 8px !important;
    text-align: left !important;
    vertical-align: top !important;
    overflow-wrap: anywhere !important;
}

.base-db-markdown th {
    background: var(--color-surface-container-high) !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.base-db-config-table th {
    height: 32px;
    padding: 6px 10px;
    background: var(--color-surface-container-high);
    border-bottom: 1px solid var(--color-outline-variant);
    color: var(--color-on-surface);
    font-family: var(--font-family-base);
    font-size: 11px;
    line-height: 16px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    text-align: left;
    white-space: nowrap;
}

.base-db-config-table td {
    min-height: 36px;
    padding: 8px 10px;
    color: var(--color-on-surface);
    font-family: var(--font-family-base);
    font-size: 13px;
    line-height: 18px;
    vertical-align: top;
}

.base-db-config-table tr:hover td {
    background: color-mix(in srgb, var(--color-surface-container-low) 65%, transparent);
}
