:root{--dr-bg:var(--paper);--dr-soft:var(--cream);--dr-text:var(--ink);--dr-muted:var(--muted);--dr-line:var(--line);--dr-accent:var(--clay);--dr-radius:12px}
/* Scoped presentation UI; it follows this demo's palette. */
.demo-role-bar,.demo-role-dialog{box-sizing:border-box;font-family:inherit;color:var(--dr-text);font-size:14px}
.demo-role-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;padding:10px 16px;margin-block-end:16px;background:var(--dr-soft);border:1px solid var(--dr-line);border-radius:var(--dr-radius)}
.demo-role-note{font-size:12px;color:var(--dr-muted)}
.demo-role-trigger{font:inherit;font-weight:600;cursor:pointer;min-height:38px;max-width:100%;white-space:normal;padding:8px 13px;border:1px solid var(--dr-line);border-radius:var(--dr-radius);background:var(--dr-bg);color:var(--dr-text)}
.demo-role-dialog{padding:28px;width:min(680px,calc(100% - 24px));max-width:calc(100% - 24px);max-height:calc(100dvh - 32px);margin:auto;overflow:auto;overscroll-behavior:contain;border:1px solid var(--dr-line);border-radius:calc(var(--dr-radius) + 8px);background:var(--dr-bg);box-shadow:0 20px 70px #0006}
.demo-role-dialog::backdrop{background:#080e1c99;backdrop-filter:blur(5px)}
.demo-role-heading{display:flex;align-items:start;justify-content:space-between;gap:12px}
.demo-role-heading h2{color:var(--dr-text);font:inherit;font-size:26px;font-weight:650;line-height:1.2;margin:0}
.demo-role-close{flex:none;width:36px;height:36px;border:1px solid var(--dr-line);border-radius:50%;background:var(--dr-soft);color:var(--dr-text);font:inherit;font-size:24px;line-height:1;cursor:pointer}
.demo-role-intro{margin:10px 0 22px;line-height:1.6;color:var(--dr-muted)}
.demo-role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.demo-role-card{display:flex;align-items:start;gap:14px;text-align:start;min-width:0;padding:20px 16px;border:1px solid var(--dr-line);border-radius:var(--dr-radius);background:var(--dr-soft);color:var(--dr-text);font:inherit;cursor:pointer}
.demo-role-card:hover,.demo-role-card[aria-current]{border-color:var(--dr-accent);box-shadow:inset 0 0 0 1px var(--dr-accent)}
.demo-role-icon{width:38px;height:38px;display:grid;place-items:center;flex:none;background:var(--dr-bg);border-radius:var(--dr-radius);color:var(--dr-accent)}
.demo-role-icon svg{width:24px;height:24px}
.demo-role-card-copy{display:flex;flex-direction:column;gap:10px;min-width:0}
.demo-role-card strong{font-size:18px;line-height:1.3}
.demo-role-description{font-size:13px;line-height:1.6;color:var(--dr-muted)}
.demo-role-enter{font-size:12px;color:var(--dr-accent);font-weight:650;margin-top:3px}
.demo-role-error{margin:12px 0 0;color:var(--dr-accent);line-height:1.5}
.demo-role-dialog button:focus-visible,.demo-role-trigger:focus-visible{outline:3px solid var(--dr-accent);outline-offset:3px}
.demo-role-dialog button:disabled{opacity:.65;cursor:wait}
@media(max-width:540px){.demo-role-dialog{padding:20px 16px}.demo-role-heading h2{font-size:22px}.demo-role-grid{grid-template-columns:1fr}.demo-role-card{padding:16px}.demo-role-bar{padding:8px 10px;gap:6px}.demo-role-trigger{font-size:13px}}

