/* Layout only. Color, type and elevation come from Design System tokens. */

html,
body.mesa {
    height: 100%;
}

body.mesa {
    margin: 0;
    display: flex;
    flex-direction: column;
    height: 100vh;
    overflow: hidden;
    background: var(--cloud);
    color: var(--text-primary);
    font-family: var(--font-sans);
}

.drop::before {
    content: none;
}

.mesa-band {
    display: flex;
    flex-shrink: 0;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--space-4);
    padding: var(--space-4) var(--space-6);
    border-bottom: 1px solid var(--border-default);
    background: var(--surface-base);
}

.mesa-band__name {
    display: inline-block;
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: var(--weight-semibold);
    color: var(--text-primary);
    text-decoration: none;
    line-height: var(--leading-tight);
}

.mesa-band__meta,
.mesa-band__depth {
    margin: var(--space-1) 0 0;
    color: var(--text-secondary);
    font-size: var(--text-sm);
}

.mesa-band__depth a {
    color: inherit;
}

.mesa-band__actions,
.mesa-ref-links {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.mesa-warning {
    padding: var(--space-3) var(--space-6);
    border-bottom: 1px solid var(--border-default);
    background: var(--signal-subtle);
    font-size: var(--text-sm);
}

.mesa-section-menu {
    flex-shrink: 0;
    flex-wrap: nowrap;
    overflow-x: auto;
    padding: 0 var(--space-6);
    background: var(--surface-base);
}

.mesa-columns {
    --mesa-left: 16rem;
    --mesa-right: 22rem;
    flex: 1 1 auto;
    min-height: 0;
    display: grid;
    grid-template-columns: var(--mesa-left) var(--space-2) minmax(0, 1fr) var(--space-2) var(--mesa-right);
    grid-template-areas: "rail split-left work split-right state";
}

.mesa-rail { grid-area: rail; }
.mesa-work { grid-area: work; }
.mesa-state { grid-area: state; }
.mesa-split[data-split="left"] { grid-area: split-left; }
.mesa-split[data-split="right"] { grid-area: split-right; }

@media (max-width: 768px) {
    .mesa-columns {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "work"
            "rail"
            "state";
        overflow: auto;
    }

    .mesa-split {
        display: none;
    }

    .mesa-rail,
    .mesa-state {
        max-height: 40vh;
    }
}

.mesa-split {
    cursor: col-resize;
    background: var(--border-default);
    align-self: stretch;
}

.mesa-split:hover,
.mesa-split:focus,
.mesa-split.is-dragging {
    background: var(--signal-primary);
    outline: none;
}

.mesa-rail,
.mesa-work,
.mesa-state {
    min-width: 0;
    min-height: 0;
    overflow-y: auto;
    overflow-wrap: break-word;
}

.mesa-rail,
.mesa-state {
    background: var(--surface-base);
    padding: var(--space-4);
}

.mesa-rail {
    border-right: 1px solid var(--border-default);
}

.mesa-state {
    border-left: 1px solid var(--border-default);
}

.mesa-work {
    padding: var(--space-6);
    background: var(--cloud);
}

.mesa-rail__title {
    margin: 0 0 var(--space-3);
    font-size: var(--text-xs);
    font-weight: var(--weight-semibold);
    letter-spacing: var(--tracking-wide, 0.04em);
    color: var(--text-secondary);
}

.mesa-rail .miller-item {
    text-decoration: none;
    color: inherit;
    justify-content: flex-start;
}

.mesa-analyses {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    align-items: stretch;
}

.mesa-analyses .btn {
    justify-content: flex-start;
}

.mesa-analyses .btn.is-current {
    background: var(--signal-subtle);
    box-shadow: inset 0 0 0 var(--space-px) var(--signal-primary);
}

.mesa-field__text {
    display: flex;
    gap: var(--space-2);
    align-items: flex-start;
    color: inherit;
    text-decoration: none;
}

.lec-document ul:has(> li.mesa-field) {
    list-style: none;
    padding-left: 0;
}

.lec-document li.mesa-field {
    list-style: none;
}

.mesa-field.is-selected,
.lec-document .mesa-field.is-selected {
    background: var(--signal-subtle);
    box-shadow: inset var(--space-1) 0 0 0 var(--signal-primary);
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-md);
}

.mesa-notes {
    padding-left: var(--space-5);
    margin: 0 0 var(--space-4);
}

.mesa-notes li {
    margin: 0 0 var(--space-3);
}

.mesa-analysis-list {
    padding-left: var(--space-5);
    margin: 0;
}

.mesa-analysis-list a {
    color: inherit;
}

.mesa-dot {
    display: inline-block;
    width: var(--space-2);
    height: var(--space-2);
    flex-shrink: 0;
    border-radius: var(--radius-full);
    border: var(--space-px) solid var(--border-default);
    background: transparent;
}

.mesa-dot.is-anchored {
    background: var(--text-primary);
    border-color: var(--text-primary);
}

.mesa-title {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: var(--weight-semibold);
    line-height: var(--leading-tight);
    color: var(--text-primary);
    margin: 0 0 var(--space-4);
}

.mesa-quote {
    margin: 0 0 var(--space-4);
    padding: var(--space-4);
    background: var(--surface-raised);
    border-radius: var(--radius-lg);
}

.mesa-verdict {
    margin: 0 0 var(--space-3);
}

.mesa-overlay {
    margin-top: var(--space-5);
}

.mesa-trace {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: var(--space-1) var(--space-3);
    font-size: var(--text-sm);
}

.mesa-trace dt { font-weight: var(--weight-semibold); }
.mesa-trace dd { margin: 0; }

.mesa-notes span,
.mesa-notes small {
    display: block;
    margin-top: var(--space-1);
}

.mesa-assessment,
.mesa-history li {
    padding: var(--space-3);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    background: var(--surface-raised);
}

.mesa-warning-inline,
.mesa-empty {
    color: var(--text-secondary);
    font-size: var(--text-sm);
}

.mesa-scope-note,
.mesa-document-state {
    display: block;
    margin: var(--space-2) 0;
    padding: var(--space-2) var(--space-3);
    border-left: var(--space-1) solid var(--border-default);
    background: var(--surface-raised);
    font-size: var(--text-sm);
}

.mesa-overlay > summary,
.mesa-action > summary,
.mesa-provenance > summary,
.mesa-study-provenance > summary {
    cursor: pointer;
}

.mesa-action,
.mesa-provenance,
.mesa-study-provenance {
    margin-top: var(--space-3);
}

.mesa-study-trigger {
    display: inline-flex;
    align-items: flex-start;
    gap: var(--space-2);
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: var(--weight-semibold);
    text-align: start;
    cursor: pointer;
}

.mesa-study-trigger:hover > span {
    text-decoration: underline;
    text-underline-offset: var(--space-1);
}

.mesa-study-trigger:focus-visible {
    outline: var(--focus-ring-width) solid var(--focus-ring-color);
    outline-offset: var(--focus-ring-offset);
}

.mesa-study-available {
    flex: 0 0 auto;
    width: var(--icon-sm);
    height: var(--icon-sm);
    margin-top: var(--space-1);
    color: var(--text-secondary);
    fill: none;
}

.mesa-study-citation,
.mesa-study-mode {
    color: var(--text-secondary);
    font-size: var(--text-sm);
}

.mesa-study-modal {
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    margin: 0;
    border: 0;
    max-width: none;
    max-height: none;
    background: transparent;
}

.mesa-study-modal .modal-header {
    background: var(--modal-bg);
}

.mesa-study-modal::backdrop {
    background: var(--modal-overlay-bg);
    backdrop-filter: blur(var(--modal-overlay-blur));
    -webkit-backdrop-filter: blur(var(--modal-overlay-blur));
}

.mesa-facts > div {
    padding: var(--space-3) 0;
    border-top: 1px solid var(--border-default);
}

.mesa-facts dt { font-weight: var(--weight-semibold); }
.mesa-facts dd { margin: var(--space-1) 0 0; }
.mesa-fact-heading {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin-top: 0;
}

.mesa-fact-heading > span {
    display: inline;
    margin-top: 0;
}

.mesa-fact-kind {
    display: inline-block;
    width: var(--icon-sm);
    height: var(--icon-sm);
    vertical-align: text-bottom;
    color: var(--text-secondary);
    fill: none;
}

.mesa-study-basis,
.mesa-fact-source {
    color: var(--text-secondary);
    font-size: var(--text-sm);
}

.mesa-fact-source {
    display: block;
    margin-top: var(--space-1);
}

.mesa-provenance-map > div {
    padding: var(--space-3) 0;
    border-top: 1px solid var(--border-default);
}

.mesa-provenance-map dt { font-weight: var(--weight-semibold); }
.mesa-provenance-map dd { margin: var(--space-1) 0 0; }

.mesa-history {
    display: grid;
    gap: var(--space-2);
    padding: 0;
    list-style: none;
}

.mesa-form {
    display: grid;
    gap: var(--space-3);
    margin-top: var(--space-4);
}

.mesa-form label {
    display: grid;
    gap: var(--space-1);
    font-size: var(--text-sm);
    font-weight: var(--weight-medium);
}

.mesa-form input,
.mesa-form select,
.mesa-form textarea {
    width: 100%;
    box-sizing: border-box;
    padding: var(--space-2);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    background: var(--surface-base);
    color: var(--text-primary);
    font: inherit;
}

.mesa-form textarea { min-height: calc(var(--space-8) * 2); resize: vertical; }

body.catalog {
    margin: 0;
    min-height: 100vh;
    background: var(--cloud);
    color: var(--text-primary);
    font-family: var(--font-sans);
}

.catalog-main {
    max-width: 72rem;
    margin: 0 auto;
    padding: var(--space-8) var(--space-6);
}

.catalog-kicker {
    margin: 0;
    color: var(--text-secondary);
    font-size: var(--text-sm);
    font-weight: var(--weight-semibold);
}

.catalog-title {
    margin: var(--space-2) 0;
    font-family: var(--font-display);
    font-size: var(--text-3xl);
}

.catalog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: var(--space-4);
    margin-top: var(--space-6);
}

.catalog-card {
    display: grid;
    gap: var(--space-2);
    padding: var(--space-5);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-lg);
    background: var(--surface-base);
    color: inherit;
    text-decoration: none;
}

.catalog-card strong {
    font-family: var(--font-display);
    font-size: var(--text-xl);
}

.catalog-card span,
.catalog-card small { color: var(--text-secondary); }

.cell-code {
    font-family: var(--font-mono);
    font-size: var(--text-sm);
}

.lec-document {
    font-family: var(--font-sans);
    font-size: var(--text-base);
    line-height: var(--leading-relaxed, 1.6);
    color: var(--text-primary);
    max-width: 68ch;
}

.lec-document p,
.lec-document li {
    margin: 0 0 var(--space-3);
}

.lec-document ul,
.lec-document ol {
    padding-left: var(--space-5);
}

.lec-document .is-selected {
    background: var(--signal-subtle);
    box-shadow: inset var(--space-1) 0 0 0 var(--signal-primary);
    padding: var(--space-2) var(--space-3);
    margin-left: calc(-1 * var(--space-3));
    border-radius: var(--radius-md);
}

.mesa-rpda {
    flex-shrink: 0;
    margin: 0;
    padding: var(--space-3) var(--space-6) var(--space-5);
    border-top: 1px solid var(--border-default);
    background: var(--cloud);
    color: var(--text-secondary);
}

.mesa-rpda summary {
    cursor: pointer;
    font-family: var(--font-sans);
    font-size: var(--text-sm);
    color: var(--text-secondary);
}

.mesa-rpda__list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-4);
    margin: var(--space-3) 0 0;
}

.mesa-rpda__axis dt {
    font-family: var(--font-sans);
    font-size: var(--text-xs);
    font-weight: var(--weight-semibold);
    margin-bottom: var(--space-1);
}

.mesa-rpda__axis dd {
    margin: 0;
    font-size: var(--text-sm);
}

.mesa-rpda__axis[data-eixo="R"] dt { color: var(--eixo-r); }
.mesa-rpda__axis[data-eixo="P"] dt { color: var(--eixo-p); }
.mesa-rpda__axis[data-eixo="D"] dt { color: var(--eixo-d); }
.mesa-rpda__axis[data-eixo="A"] dt { color: var(--eixo-a); }
.mesa-reference-icon {
    width: var(--icon-sm);
    height: var(--icon-sm);
    fill: none;
}

.safety-card {
    display: grid;
    gap: var(--space-4);
}

.safety-card__header {
    padding-left: var(--space-4);
    border-left: var(--space-1) solid var(--signal-primary);
}

.safety-card__id,
.safety-card__state,
.safety-card__stat,
.safety-path small,
.safety-sources small {
    color: var(--text-secondary);
    font-size: var(--text-sm);
}

.safety-card__id,
.safety-card__header h2,
.safety-card__header p,
.safety-path p,
.safety-sources p {
    margin-top: 0;
}

.safety-card__count {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: var(--weight-semibold);
}

.safety-path {
    display: grid;
    gap: var(--space-3);
    padding-left: var(--space-6);
}

.safety-path li,
.safety-sources li {
    padding-bottom: var(--space-3);
    border-bottom: 1px solid var(--border-default);
}

.safety-card__stat {
    padding: var(--space-3);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    background: var(--surface-raised);
}

.safety-facts > div,
.safety-provenance > div {
    padding: var(--space-3) 0;
    border-top: 1px solid var(--border-default);
}

.safety-facts dt,
.safety-provenance dt {
    font-weight: var(--weight-semibold);
}

.safety-facts dd,
.safety-provenance dd {
    margin: var(--space-1) 0 0;
}

.safety-sources {
    display: grid;
    gap: var(--space-4);
    padding-left: var(--space-5);
}

.safety-sources a {
    display: inline-block;
    margin-top: var(--space-2);
}

.safety-workflow {
    padding-top: var(--space-4);
    border-top: 1px solid var(--border-default);
}
