:root{--gh-color-bg:#f7f7f8;--gh-color-surface:#fff;--gh-color-border:#e4e4e7;--gh-color-text:#18181b;--gh-color-text-muted:#71717a;--gh-color-primary:#2563eb;--gh-color-primary-hover:#1d4ed8;--gh-color-primary-text:#fff;--gh-color-danger:#dc2626;--gh-color-danger-bg:#fef2f2;--gh-color-info:#1d4ed8;--gh-color-info-bg:#eff6ff;--gh-space-1:4px;--gh-space-2:8px;--gh-space-3:12px;--gh-space-4:16px;--gh-space-6:24px;--gh-space-8:32px;--gh-radius-sm:4px;--gh-radius-md:8px;--gh-radius-lg:12px;--gh-font-sans:system-ui, -apple-system, "Segoe UI", "Hiragino Sans", "Noto Sans JP", sans-serif;--gh-font-size-sm:14px;--gh-font-size-md:16px;--gh-font-size-lg:20px;--gh-font-size-xl:28px}
.gh-button{justify-content:center;align-items:center;gap:var(--gh-space-2);padding:var(--gh-space-2) var(--gh-space-4);border-radius:var(--gh-radius-md);font:inherit;font-size:var(--gh-font-size-sm);cursor:pointer;border:1px solid #0000;font-weight:600;display:inline-flex}.gh-button:disabled{opacity:.5;cursor:not-allowed}.gh-button--primary{background:var(--gh-color-primary);color:var(--gh-color-primary-text)}.gh-button--primary:hover:not(:disabled){background:var(--gh-color-primary-hover)}.gh-button--ghost{color:var(--gh-color-text-muted);background:0 0}.gh-button--ghost:hover:not(:disabled){color:var(--gh-color-danger)}.gh-card{background:var(--gh-color-surface);border:1px solid var(--gh-color-border);border-radius:var(--gh-radius-lg);padding:var(--gh-space-6)}.gh-text-input{min-width:0;padding:var(--gh-space-2) var(--gh-space-3);border:1px solid var(--gh-color-border);border-radius:var(--gh-radius-md);font:inherit;font-size:var(--gh-font-size-md);color:var(--gh-color-text);background:var(--gh-color-surface);flex:1}.gh-text-input:focus{outline:2px solid var(--gh-color-primary);outline-offset:-1px}.gh-button--secondary{background:var(--gh-color-surface);border-color:var(--gh-color-border);color:var(--gh-color-text)}.gh-button--secondary:hover:not(:disabled){border-color:var(--gh-color-text-muted)}.gh-alert{padding:var(--gh-space-3) var(--gh-space-4);border-radius:var(--gh-radius-md);font-size:var(--gh-font-size-sm);margin:0}.gh-alert--error{background:var(--gh-color-danger-bg);color:var(--gh-color-danger)}.gh-alert--info{background:var(--gh-color-info-bg);color:var(--gh-color-info)}
*,:before,:after{box-sizing:border-box}body{background:var(--gh-color-bg);min-height:100vh;color:var(--gh-color-text);font-family:var(--gh-font-sans);-webkit-font-smoothing:antialiased;margin:0}
