:root { --font: sans-serif; --size: 16px; --foreground: #222; --background: #fff; --border: #ddd; --surface: #fafafa; --border-radius: 8px; }
body { font-family: var(--font); font-size: var(--size); line-height: 1.33; margin: 0; color: var(--foreground); background: var(--background); }
* { box-sizing: border-box; }
a, a:visited { color: var(--primary); }
.input { padding: 10px 12px; border: 1px solid var(--border); min-width: 200px; background: transparent; color: var(--foreground); line-height: 1.333; font-size: var(--size); font-family: var(--font); outline: 0; border-radius: var(--border-radius); }
.button { padding: 12px; border: 0; background: var(--foreground); color: var(--background); font-family: var(--font); border-radius: var(--border-radius); font-size: var(--size); cursor: pointer; text-align: left; }
.label { font-size: 14px; margin-bottom: 4px; display: block; }
.alert { background: var(--surface); border-radius: var(--border-radius); padding: 16px; }
.card { border: 1px solid var(--border); border-radius: var(--border-radius); padding: 16px; }
.title { font-size: 32px; font-weight: bold; margin: 0 0 16px; }
.subtitle { font-size: 24px; font-weight: bold; margin: 0 0 16px; }
.container { max-width: 1024px; margin: 0 auto; }
.icon { width: 20px; height: 20px; vertical-align:middle; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.block { display: block; }
.flex { display: flex; }
.flex-1 { flex: 1; }
.p-2 { padding: 8px; }
.p-4 { padding: 16px; }
.py-20 { padding-top: 80px; padding-bottom: 80px; }
.mb-4 { margin-bottom: 16px; }
.mb-8 { margin-bottom: 32px; }
.w-full { width: 100%; }
.error { color: red; }
.faded { opacity: 0.6; }
.text-center { text-align: center; }
.font-bold { font-weight: bold; }
.hidden { display: none; }
.rounded { border-radius: var(--border-radius); }
.border-r, .border-t, .border-b { border: 0 solid var(--border); }
.border-t { border-top-width: 1px; }
.border-b { border-bottom-width: 1px; }
