:root{--gh-bg: #102d24;--gh-panel: #fffaf1;--gh-text: #241510;--gh-muted: #776861;--gh-accent: #7a2131;--gh-accent-dark: #5b1724;--gh-surface: #ffffff;--gh-surface-muted: #f7f4ee;--gh-border: #e7e1d6;--gh-success: #1f7a4d;--gh-warning: #a86a12;--gh-danger: #b3261e;--gh-radius-sm: 6px;--gh-radius-md: 10px;--gh-radius-lg: 16px;--gh-space-1: 4px;--gh-space-2: 8px;--gh-space-3: 12px;--gh-space-4: 16px;--gh-space-5: 24px;--gh-space-6: 32px;--gh-space-7: 48px;--gh-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, Helvetica, Arial, sans-serif;--gh-font-serif: Georgia, "Times New Roman", serif;--gh-shadow-sm: 0 1px 2px rgba(16, 45, 36, .06);--gh-shadow-md: 0 2px 8px rgba(16, 45, 36, .08);color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--gh-font-sans);background:var(--gh-surface-muted);color:var(--gh-text);-webkit-font-smoothing:antialiased}button,input,select,textarea{font-family:inherit}a{color:inherit}::selection{background:var(--gh-accent);color:var(--gh-panel)}.gh-app-header{background:var(--gh-bg);color:var(--gh-panel);padding:var(--gh-space-4) var(--gh-space-5);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20}.gh-app-header .gh-brand{font-family:var(--gh-font-serif);font-size:20px;font-weight:700;letter-spacing:.02em}.gh-container{max-width:960px;margin:0 auto;padding:var(--gh-space-5)}.gh-page-title{font-family:var(--gh-font-serif);font-size:28px;margin:0 0 var(--gh-space-4);color:var(--gh-text)}.gh-card{background:var(--gh-surface);border:1px solid var(--gh-border);border-radius:var(--gh-radius-lg);padding:var(--gh-space-4)}.gh-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--gh-space-2);border-radius:var(--gh-radius-md);border:1px solid transparent;padding:10px 18px;font-size:14px;font-weight:600;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,opacity .12s ease}.gh-btn:disabled{opacity:.5;cursor:not-allowed}.gh-btn-primary{background:var(--gh-accent);color:var(--gh-panel)}.gh-btn-primary:hover:not(:disabled){background:var(--gh-accent-dark)}.gh-btn-secondary{background:var(--gh-surface);color:var(--gh-text);border-color:var(--gh-border)}.gh-btn-secondary:hover:not(:disabled){border-color:var(--gh-accent)}.gh-btn-ghost{background:transparent;color:var(--gh-muted)}.gh-btn-ghost:hover:not(:disabled){color:var(--gh-text)}.gh-btn-block{width:100%}.gh-input,.gh-select,.gh-textarea{width:100%;border:1px solid var(--gh-border);border-radius:var(--gh-radius-md);padding:10px 12px;font-size:14px;color:var(--gh-text);background:var(--gh-surface)}.gh-input:focus,.gh-select:focus,.gh-textarea:focus{outline:none;border-color:var(--gh-accent)}.gh-field{display:flex;flex-direction:column;gap:var(--gh-space-1);margin-bottom:var(--gh-space-4)}.gh-field label{font-size:13px;font-weight:600;color:var(--gh-muted)}.gh-badge{display:inline-flex;align-items:center;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600}.gh-badge-neutral{background:var(--gh-surface-muted);color:var(--gh-muted)}.gh-badge-success{background:#1f7a4d1f;color:var(--gh-success)}.gh-badge-warning{background:#a86a121f;color:var(--gh-warning)}.gh-badge-danger{background:#b3261e1f;color:var(--gh-danger)}.gh-empty-state{text-align:center;padding:var(--gh-space-7) var(--gh-space-4);color:var(--gh-muted)}.gh-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#102d2473;display:flex;align-items:flex-end;justify-content:center;z-index:50}.gh-modal{background:var(--gh-surface);border-radius:var(--gh-radius-lg) var(--gh-radius-lg) 0 0;padding:var(--gh-space-5);width:100%;max-width:520px;max-height:88vh;overflow-y:auto}@media (min-width: 640px){.gh-modal-backdrop{align-items:center}.gh-modal{border-radius:var(--gh-radius-lg)}}.gh-toast{position:fixed;bottom:var(--gh-space-5);left:50%;transform:translate(-50%);background:var(--gh-text);color:var(--gh-panel);padding:10px 18px;border-radius:var(--gh-radius-md);font-size:14px;z-index:60;box-shadow:var(--gh-shadow-md)}.gh-offline-banner{background:var(--gh-warning);color:#fff;text-align:center;padding:6px;font-size:13px;font-weight:600}
