* { box-sizing: border-box; }
html, body, #root { width: 100%; min-width: 0; min-height: 100%; margin: 0; }
body { min-height: 100vh; overflow: hidden; color: var(--text); background: var(--bg); font: var(--fw-regular) var(--type-body-size)/1.5 var(--font-ui); }
button, input, select, textarea { color: inherit; font: inherit; }
button, select { cursor: pointer; }
button:disabled, select:disabled { cursor: not-allowed; opacity: .42; }
h1, h2, h3, h4, p { margin-top: 0; }
h1 { font-size: var(--type-h1-size); font-weight: var(--fw-semibold); line-height: 1.1; letter-spacing: -.04em; }
h2 { font-size: var(--type-h2-size); font-weight: var(--fw-semibold); line-height: 1.15; letter-spacing: -.03em; }
h3 { font-size: var(--type-h3-size); font-weight: var(--fw-semibold); line-height: 1.25; letter-spacing: 0; }
h4 { font-size: var(--type-h4-size); font-weight: var(--fw-semibold); line-height: 1.3; letter-spacing: 0; }
svg { display: block; width: 17px; height: 17px; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 9px 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; overflow-wrap: anywhere; }
td { font-size: var(--type-table-body-size); font-weight: var(--fw-regular); }
th { position: sticky; top: 0; z-index: 1; color: var(--muted); background: var(--panel-soft); font-size: var(--type-table-head-size); font-weight: var(--fw-semibold); letter-spacing: var(--ls-caps); text-transform: uppercase; }
tbody tr:hover td { background: var(--panel-hover); }
pre { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
mark { padding: 1px 2px; color: var(--state-active-text); background: var(--state-active); }
.hidden-input { display: none; }
/* Unified Ableton-style Button System */
button, .btn, .icon-btn, .tab-btn, .bookmark-btn, .results-btn {
border-radius: var(--btn-radius);
border: 1px solid var(--button-border);
color: var(--button-text);
background: var(--button-bg);
font-size: var(--type-button-size);
font-weight: var(--fw-semibold);
line-height: 1.15;
}
.select, .input {
min-height: var(--control-height); border: var(--border-hair) solid var(--line); border-radius: var(--radius-sm);
color: var(--text); background-color: var(--panel-raised); font-size: var(--type-button-size); font-weight: var(--fw-regular);
}
/* Verbindliche Buttonform: eine Hoehe, ein Radius, ein waagerechtes Polster.
Senkrecht traegt der Knopf kein eigenes Polster - die Hoehe kommt aus
--btn-h, damit ueberall gleich wenig Luft ueber und unter der Schrift steht. */
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: var(--btn-h); padding: 0 var(--btn-pad-x); }
.select, .input { padding: var(--legacy-space-1) var(--legacy-space-3); border-radius: var(--radius-sm); }
.icon-btn, .bookmark-btn, .results-btn { display: inline-grid; place-items: center; min-width: var(--btn-h); min-height: var(--btn-h); padding: 0 6px; }
.btn:hover, .icon-btn:hover, .tab-btn:hover, .bookmark-btn:hover, .results-btn:hover { border-color: var(--button-border); background: var(--button-bg-hover); color: var(--button-text); }
.select:hover, .input:hover { border-color: var(--line-strong); background-color: var(--panel-hover); }
.input { background: var(--surface-inset); }
/* Marked / Active button state (Ableton Warp style: bright gold fill, dark text, exact same 1px neutral border) */
.btn.primary, .btn--primary, .btn.active, .tab-btn.active, .bookmark-btn[aria-pressed="true"], .icon-btn[aria-pressed="true"], .results-btn.is-open {
border: 1px solid var(--button-border);
color: var(--button-marked-text);
background: var(--button-marked-bg);
font-weight: var(--fw-semibold);
}
.btn.primary:hover, .btn--primary:hover, .btn.active:hover, .tab-btn.active:hover, .bookmark-btn[aria-pressed="true"]:hover, .icon-btn[aria-pressed="true"]:hover, .results-btn.is-open:hover {
border-color: var(--button-border);
background: var(--button-marked-bg-hover);
color: var(--button-marked-text);
}
:focus-visible { outline: 1px solid var(--focus-ring); outline-offset: 1px; }