:root{--sgf-maroon:#7b1c2e;--sgf-maroon-mid:#9b2d42;--sgf-maroon-dark:#5a1220;--sgf-maroon-light:#f9edef;--sgf-gold:#c8930a;--sgf-gold-light:#fdf3dc;--sgf-red:#c0392b;--sgf-red-light:#fdf0ee;--bg:#faf8f5;--bg-card:#fff;--bg-subtle:#f4f0eb;--bg-input:#fff;--border:#e0d8d0;--border-focus:var(--sgf-maroon);--text-primary:#1e1014;--text-secondary:#5a3a42;--text-muted:#9a828a;--text-on-primary:#fff;--btn-primary-bg:var(--sgf-maroon);--btn-primary-text:#fff;--btn-primary-hover:var(--sgf-maroon-mid);--nav-bg:var(--sgf-maroon);--nav-text:#ffffffe0;--nav-active:#fff;--nav-border:#ffffff24;--link-color:var(--sgf-maroon);--badge-paid-bg:#eaf5ee;--badge-paid-text:#1a6635;--badge-unpaid-bg:#fdf3dc;--badge-unpaid-text:#7a5500;--badge-overdue-bg:#fdf0ee;--badge-overdue-text:#c0392b;--badge-partial-bg:#eaf0fd;--badge-partial-text:#1a4a8a;--badge-sent-bg:#eaf5ee;--badge-sent-text:#1a6635;--shadow-sm:0 1px 3px #7b1c2e0f;--shadow-md:0 2px 8px #7b1c2e14, 0 4px 16px #7b1c2e0d;--shadow-btn:0 2px 6px #7b1c2e47}[data-theme=dark]{--bg:#180c10;--bg-card:#24121a;--bg-subtle:#2e1820;--bg-input:#2e1820;--border:#3e2430;--border-focus:#c4607a;--text-primary:#f5eaed;--text-secondary:#c4a0a8;--text-muted:#8a6070;--btn-primary-bg:#9b2d42;--btn-primary-hover:#7b1c2e;--nav-bg:#110810;--nav-text:#ffffffd1;--nav-active:#fff;--nav-border:#ffffff1a;--link-color:#e08090;--badge-paid-bg:#0f2e18;--badge-paid-text:#5dba7a;--badge-unpaid-bg:#2e1e00;--badge-unpaid-text:#d4a030;--badge-overdue-bg:#2e0e0e;--badge-overdue-text:#e06060;--badge-partial-bg:#0a1830;--badge-partial-text:#5080d0;--badge-sent-bg:#0f2e18;--badge-sent-text:#5dba7a;--shadow-sm:0 1px 3px #00000040;--shadow-md:0 2px 8px #00000059, 0 4px 16px #0003;--shadow-btn:0 2px 8px #0006}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}.theme-toggle{border:1.5px solid var(--nav-border);width:34px;height:34px;color:var(--nav-active);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:.95rem;transition:background .15s;display:flex}.theme-toggle:hover{background:#ffffff1f}.sgf-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);margin-bottom:5px;font-size:.7rem;font-weight:700;display:block}.sgf-input{border:1.5px solid var(--border);background:var(--bg-input);width:100%;color:var(--text-primary);border-radius:10px;outline:none;padding:12px 14px;font-family:inherit;font-size:.95rem;transition:border-color .15s,box-shadow .15s}.sgf-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #7b1c2e1a}[data-theme=dark] .sgf-input:focus{box-shadow:0 0 0 3px #c4607a26}.sgf-btn{background:var(--btn-primary-bg);width:100%;color:var(--btn-primary-text);cursor:pointer;box-shadow:var(--shadow-btn);border:none;border-radius:10px;padding:13px;font-family:inherit;font-size:.95rem;font-weight:700;transition:background .15s,transform .1s,box-shadow .15s}.sgf-btn:hover:not(:disabled){background:var(--btn-primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px #7b1c2e52}.sgf-btn:active:not(:disabled){transform:translateY(0)}.sgf-btn:disabled{opacity:.5;cursor:default;box-shadow:none;transform:none}.sgf-btn-ghost{border:1.5px solid var(--border);width:100%;color:var(--link-color);cursor:pointer;background:0 0;border-radius:10px;padding:11px;font-family:inherit;font-size:.88rem;font-weight:600;transition:background .15s,border-color .15s}.sgf-btn-ghost:hover:not(:disabled){background:var(--sgf-maroon-light);border-color:var(--sgf-maroon)}[data-theme=dark] .sgf-btn-ghost:hover:not(:disabled){background:#c4607a14;border-color:#c4607a}.sgf-btn-ghost:disabled{opacity:.5;cursor:default}.sgf-error{color:var(--sgf-red);text-align:center;margin:8px 0;font-size:.82rem}.sgf-success{color:#1a6635;text-align:center;margin:8px 0;font-size:.82rem}[data-theme=dark] .sgf-success{color:#5dba7a}.sgf-card{background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow-md);border-radius:16px;padding:28px 24px}.badge{text-transform:uppercase;letter-spacing:.04em;border-radius:6px;padding:3px 8px;font-size:.67rem;font-weight:700;display:inline-block}.badge-paid{background:var(--badge-paid-bg);color:var(--badge-paid-text)}.badge-unpaid{background:var(--badge-unpaid-bg);color:var(--badge-unpaid-text)}.badge-overdue{background:var(--badge-overdue-bg);color:var(--badge-overdue-text)}.badge-partial{background:var(--badge-partial-bg);color:var(--badge-partial-text)}.badge-sent{background:var(--badge-sent-bg);color:var(--badge-sent-text)}.sgf-topbar{z-index:100;background:var(--nav-bg);align-items:center;gap:10px;height:52px;padding:0 16px;display:flex;position:sticky;top:0;box-shadow:0 1px 4px #00000026}.sgf-topbar-brand{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.sgf-topbar-logo{flex-shrink:0;font-size:1.1rem}.sgf-topbar-name{color:var(--nav-active);letter-spacing:.01em;white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;font-weight:700;overflow:hidden}.sgf-topbar-badge{text-transform:uppercase;letter-spacing:.06em;color:#ffffffe6;background:#ffffff2e;border-radius:5px;flex-shrink:0;padding:2px 7px;font-size:.6rem;font-weight:700}.sgf-topbar-link{color:var(--nav-text);border:1px solid var(--nav-border);border-radius:7px;flex-shrink:0;padding:6px 10px;font-size:.8rem;text-decoration:none;transition:background .15s}.sgf-topbar-link:hover{background:#ffffff1a}
