.desk { padding-block: 40px 64px; }
.desk-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 24px; margin-bottom: 20px; }
.desk-head h1 { margin: 0; font-size: 32px; font-weight: 700; color: var(--maroon); text-transform: uppercase; letter-spacing: 0.02em; }
.desk-updated { margin: 0; color: var(--muted); font-family: 'IBM Plex Mono', monospace; font-size: 12px; }

.desk-controls { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.desk-tabs { display: flex; gap: 6px; flex-wrap: wrap; }
.desk-tab { font: 600 14px 'Oswald', sans-serif; letter-spacing: 0.02em; padding: 9px 16px; border: 2px solid var(--maroon); background: #fff; color: var(--maroon); border-radius: 4px; cursor: pointer; }
.desk-tab[aria-pressed="true"] { background: var(--maroon); color: var(--gold); }
.desk-tab em { font-style: normal; font-family: 'IBM Plex Mono', monospace; font-weight: 400; margin-left: 8px; opacity: 0.8; }
.desk-controls input { font: 14px 'IBM Plex Sans', sans-serif; padding: 9px 12px; border: 1px solid #d8ccb5; border-radius: 4px; width: 260px; max-width: 100%; background: #fff; color: var(--ink); }
.desk-tab:focus-visible, .desk-controls input:focus-visible, .desk-table th button:focus-visible, .desk-table tr.r:focus-visible { outline: 3px solid var(--gold-dark); outline-offset: 2px; }

.desk-tablewrap { overflow-x: auto; border: 1px solid #e8ddc9; border-radius: 6px; background: #fff; }
.desk-table { border-collapse: collapse; width: 100%; min-width: 880px; font: 14px/1.45 'IBM Plex Sans', sans-serif; }
.desk-table th { background: var(--maroon); color: var(--cream); text-align: left; padding: 10px 12px; font: 500 12px 'Oswald', sans-serif; text-transform: uppercase; letter-spacing: 0.07em; white-space: nowrap; }
.desk-table th button { all: unset; cursor: pointer; }
.desk-table th button[data-on]::after { content: attr(data-on); margin-left: 5px; color: var(--gold); }
.desk-table td { padding: 10px 12px; border-bottom: 1px solid #e8ddc9; vertical-align: top; }
.desk-table .n { font-family: 'IBM Plex Mono', monospace; font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.desk-table td.t { font-family: 'IBM Plex Mono', monospace; font-weight: 500; color: var(--maroon); }
.desk-table tr.r { cursor: pointer; }
.desk-table tr.r:hover td { background: #fbf6e4; }
.desk-table tr.r td:first-child::before { content: "▸"; display: inline-block; margin-right: 6px; color: var(--muted); font-size: 11px; transition: transform .15s; }
.desk-table tr.r.open td:first-child::before { transform: rotate(90deg); }
.desk-table tr.d td { background: var(--cream); padding: 16px 18px; }

.desk-detail { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px 32px; }
.desk-detail dt { font: 500 11px 'Oswald', sans-serif; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); }
.desk-detail dd { margin: 0 0 10px; overflow-wrap: anywhere; }
.desk-detail a { color: var(--maroon); font-weight: 500; }

.pill { display: inline-block; font: 600 11px 'IBM Plex Sans', sans-serif; padding: 1px 9px; border-radius: 10px; border: 1px solid currentColor; white-space: nowrap; }
.pill.v { color: #1f7a4d; }
.pill.r { color: #a86500; }

.desk-empty { padding: 36px 20px; text-align: center; color: var(--muted); }
.desk-note { font-size: 12px; color: var(--muted); max-width: 760px; margin-top: 14px; }

.gate { max-width: 520px; margin: 32px auto; text-align: center; background: #fff; border: 2px solid var(--gold); border-radius: 8px; padding: 36px 28px; }
.gate h2 { margin: 0 0 8px; color: var(--maroon); }
.gate p { margin: 0 0 20px; color: var(--muted); }

.risk-banner { border: 2px solid var(--maroon); background: #fff; border-left-width: 8px; border-radius: 4px; padding: 14px 18px; margin-bottom: 20px; font: 14px/1.55 'IBM Plex Sans', sans-serif; }
.risk-banner strong { display: block; color: var(--maroon); font: 700 16px 'Oswald', sans-serif; letter-spacing: 0.04em; text-transform: uppercase; margin-bottom: 4px; }
.risk-banner a { color: var(--maroon); font-weight: 600; }
.tab-notice { margin: 0 0 10px; padding: 10px 14px; background: #fbf6e4; border-left: 4px solid var(--gold-dark); font: 13px/1.5 'IBM Plex Sans', sans-serif; }
