:root{--ps-color-surface: #ffffff;--ps-color-surface-muted: #f8fafc;--ps-color-border: #e2e8f0;--ps-color-ink-muted: #64748b;--ps-color-ink: #0f172a;--ps-color-primary: #2563eb;--ps-color-on-primary: #ffffff;--ps-font-body: Inter, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--ps-font-heading: Inter, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--ps-size-body: 16px;--ps-size-heading: 28px;--ps-weight-regular: 400;--ps-weight-bold: 700;--ps-space-sm: 8px;--ps-space-md: 16px;--ps-space-lg: 32px}*{box-sizing:border-box}body{margin:0;font-family:var(--ps-font-body);font-size:var(--ps-size-body);font-weight:var(--ps-weight-regular);color:var(--ps-color-ink);background:var(--ps-color-surface);line-height:1.5}h1,h2,h3{font-family:var(--ps-font-heading);font-weight:var(--ps-weight-bold);color:var(--ps-color-ink)}.ps-app{max-width:720px;margin:0 auto;padding:var(--ps-space-lg) var(--ps-space-md)}.ps-app h1{font-size:var(--ps-size-heading);margin:0 0 var(--ps-space-lg)}.ps-auth,.ps-entities{background:var(--ps-color-surface-muted);border:1px solid var(--ps-color-border);border-radius:8px;padding:var(--ps-space-md);margin-bottom:var(--ps-space-lg)}.ps-auth label,.ps-entities label{display:flex;flex-direction:column;gap:4px;margin-bottom:var(--ps-space-md);font-weight:var(--ps-weight-bold)}.ps-auth input,.ps-entities input{font:inherit;padding:var(--ps-space-sm);border:1px solid var(--ps-color-border);border-radius:6px;background:var(--ps-color-surface);color:var(--ps-color-ink)}.ps-btn{font:inherit;font-weight:var(--ps-weight-bold);padding:var(--ps-space-sm) var(--ps-space-md);border-radius:6px;border:1px solid var(--ps-color-primary);background:var(--ps-color-primary);color:var(--ps-color-on-primary);cursor:pointer}.ps-btn-link{background:transparent;color:var(--ps-color-primary);border:none;padding:var(--ps-space-sm) 0;cursor:pointer;font:inherit}.ps-list{list-style:none;margin:var(--ps-space-md) 0 0;padding:0}.ps-list li{padding:var(--ps-space-sm) 0;border-top:1px solid var(--ps-color-border)}.ps-list li small{color:var(--ps-color-ink-muted)}[role=alert]{color:var(--ps-color-primary)}
