.workspace { display: grid; grid-template-columns: 16rem 1fr; min-height: 100vh; }
.workspace-rail { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; gap: 2rem; padding: 1.75rem 1.25rem; background: var(--vs-ink) url("../images/rosette.svg") -8rem 110% / 26rem no-repeat; color: var(--vs-sage); }
.workspace-rail .brand-mark { color: var(--vs-card); }
.workspace-rail nav { display: grid; gap: .25rem; }
.workspace-rail nav a { display: flex; align-items: center; gap: .7rem; padding: .7rem .85rem; border-radius: 10px; color: var(--vs-sage); font-weight: 600; text-decoration: none; transition: background var(--vs-quick) var(--vs-ease); }
.workspace-rail nav a:hover { background: rgb(220 230 226 / .12); color: var(--vs-card); }
.workspace-credit { margin-top: auto; font-size: .8rem; }
.workspace-main { display: grid; gap: 1.75rem; align-content: start; max-width: 70rem; padding: clamp(1.5rem, 4vw, 3rem) var(--vs-gutter) 4rem; }
.workspace-head h1 { font-size: clamp(2.2rem, 4vw, 3.4rem); }
.workspace-head p:last-child { max-width: 44rem; color: var(--vs-ink-soft); }
.workspace-alert { display: flex; align-items: center; gap: .6rem; padding: .9rem 1.1rem; border: 1.5px solid var(--vs-seal); border-radius: 10px; background: #f8e3dc; color: #8c2a17; font-weight: 600; }
.panel { padding: clamp(1.25rem, 3vw, 2rem); background: var(--vs-card); border: 1px solid var(--vs-rule); border-radius: var(--vs-radius); scroll-margin-top: 1.5rem; }
.panel-head { display: flex; align-items: center; gap: .75rem; margin-bottom: 1.25rem; }
.panel-head h2 { margin: 0; font-size: 1.8rem; }
.panel-head .vs-icon { width: 1.75rem; height: 1.75rem; color: var(--vs-seal); }
.panel-form { display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: 1rem 1.25rem; align-items: end; padding: 1.25rem; background: var(--vs-paper); border-radius: 10px; }
.panel-form h3 { grid-column: 1 / -1; margin: 0; }
.field { display: grid; gap: .35rem; font-size: .9rem; font-weight: 600; }
.field-wide { grid-column: 1 / -1; }
.checks { display: flex; flex-wrap: wrap; gap: .6rem 1.5rem; margin: 0; padding: .9rem 1rem; border: 1px dashed var(--vs-rule); border-radius: 10px; }
.checks legend { padding: 0 .4rem; font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.checks label { display: inline-flex; align-items: center; gap: .45rem; font-size: .95rem; }
.panel-form > .action { justify-self: start; }
.panel-edit { margin-top: 1.25rem; border: 1.5px solid var(--vs-brass); }
.panel-note { margin: 1.25rem 0 .5rem; color: var(--vs-ink-soft); font-size: .9rem; }
.ledger, .vendor-list, .file-list { margin: 1.25rem 0; padding: 0; list-style: none; }
.ledger li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .25rem 1rem; padding: .85rem 0; border-bottom: 1px dashed var(--vs-rule); }
.ledger-name { font-weight: 700; }
.ledger-meta { color: var(--vs-ink-soft); font-variant-numeric: tabular-nums; }
.vendor-row { display: grid; grid-template-columns: minmax(10rem, 1fr) auto auto; align-items: center; gap: .75rem 1.25rem; padding: 1rem 0; border-bottom: 1px dashed var(--vs-rule); }
.vendor-name { display: flex; align-items: center; gap: .6rem; }
.vendor-name .vs-icon { color: var(--vs-ink-soft); }
.vendor-actions { display: flex; flex-wrap: wrap; gap: .4rem; }
.gap-list { grid-column: 1 / -1; display: grid; gap: .35rem; margin: 0; padding: .75rem 1rem; list-style: none; background: #f8e3dc; border-radius: 10px; color: #8c2a17; font-size: .9rem; }
.gap-list li { display: flex; gap: .5rem; }
.pager { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; font-size: .95rem; font-variant-numeric: tabular-nums; }
.review-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 1rem; }
.upload-url { display: flex; flex-wrap: wrap; gap: .5rem; padding: .9rem 1rem; background: var(--vs-sage); border-radius: 10px; word-break: break-all; }
.file-list li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; padding: .8rem 0; border-bottom: 1px dashed var(--vs-rule); font-variant-numeric: tabular-nums; }
.review-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); gap: 1.5rem; margin-top: 1.5rem; }
.review-grid iframe { width: 100%; min-height: 48rem; border: 1px solid var(--vs-rule); border-radius: 10px; background: var(--vs-paper); }
.review-grid form, .review-grid fieldset { display: grid; gap: .6rem; }
.review-grid fieldset { padding: 1rem; border: 1px dashed var(--vs-rule); border-radius: 10px; }
.review-grid legend { font-weight: 700; }
.review-grid label { display: grid; gap: .3rem; font-size: .9rem; font-weight: 600; }
@media (max-width: 56rem) {
    .workspace { grid-template-columns: 1fr; }
    .workspace-rail { position: static; height: auto; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 1rem; }
    .workspace-rail nav { display: flex; flex-wrap: wrap; }
    .workspace-credit { margin: 0 0 0 auto; }
    .vendor-row { grid-template-columns: 1fr; }
}
