*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: system-ui, -apple-system, sans-serif; background: #f5f5f5; color: #1a1a1a; }
.container { max-width: 960px; margin: 0 auto; padding: 0 1.5rem; }
nav { background: #1a1a2e; color: #fff; padding: 0.75rem 0; }
nav .inner { display: flex; align-items: center; justify-content: space-between; }
nav a { color: #fff; text-decoration: none; font-size: 0.9rem; margin-left: 1.25rem; }
nav a:hover { text-decoration: underline; }
nav .brand { font-weight: 700; font-size: 1.1rem; letter-spacing: 0.05em; margin-left: 0; }
nav .nav-left { display: flex; align-items: center; gap: 0; }
nav .nav-right { display: flex; align-items: center; }
nav .divider { color: #444; margin: 0 0.5rem; font-size: 0.85rem; }
main { padding: 2rem 0; }
.card { background: #fff; border-radius: 8px; padding: 2rem; box-shadow: 0 1px 4px rgba(0,0,0,.08); margin-bottom: 1.5rem; }
h1 { font-size: 1.5rem; margin-bottom: 1.25rem; }
h2 { font-size: 1.2rem; margin-bottom: 1rem; }
label { display: block; font-size: 0.85rem; font-weight: 600; margin-bottom: 0.3rem; margin-top: 0.9rem; }
input[type=text], input[type=email], input[type=password], select {
    width: 100%; padding: 0.5rem 0.75rem; border: 1px solid #ccc; border-radius: 5px; font-size: 0.95rem;
}
input:focus, select:focus { outline: 2px solid #4a6cf7; border-color: transparent; }
.btn { display: inline-block; padding: 0.5rem 1.25rem; border-radius: 5px; border: none; cursor: pointer; font-size: 0.95rem; font-weight: 600; text-decoration: none; }
.btn-primary { background: #4a6cf7; color: #fff; }
.btn-primary:hover { background: #3a5ce5; }
.btn-danger { background: #e53e3e; color: #fff; }
.btn-danger:hover { background: #c53030; }
.btn-sm { padding: 0.3rem 0.75rem; font-size: 0.82rem; }
.messages { list-style: none; margin-bottom: 1rem; }
.messages li { padding: 0.65rem 1rem; border-radius: 5px; margin-bottom: 0.4rem; font-size: 0.9rem; }
.messages .success { background: #e6ffed; color: #276749; border: 1px solid #9ae6b4; }
.messages .error { background: #fff5f5; color: #9b2c2c; border: 1px solid #feb2b2; }
.messages .warning { background: #fffbeb; color: #7b5a0e; border: 1px solid #fcd34d; }
table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
th { text-align: left; padding: 0.6rem 0.75rem; background: #f0f0f0; font-weight: 600; }
td { padding: 0.6rem 0.75rem; border-bottom: 1px solid #eee; }
.badge { display: inline-block; padding: 0.2rem 0.6rem; border-radius: 99px; font-size: 0.75rem; font-weight: 600; }
.badge-owner { background: #ebf4ff; color: #2b6cb0; }
.badge-admin { background: #f0fff4; color: #276749; }
.badge-member { background: #f7fafc; color: #4a5568; }
.badge-pending { background: #fffbeb; color: #7b5a0e; }
.form-row { margin-top: 1.25rem; }
.help-text { font-size: 0.8rem; color: #666; margin-top: 0.2rem; }
.errorlist { color: #e53e3e; font-size: 0.82rem; list-style: none; margin-top: 0.2rem; }
.seat-bar { background: #eee; border-radius: 99px; height: 8px; margin: 0.5rem 0; }
.seat-bar-fill { background: #4a6cf7; border-radius: 99px; height: 8px; }

/* Extracted from inline style attributes for CSP compliance (no unsafe-inline) */
.csp-c713cb5f { margin-bottom:2rem; }
.csp-76760a1e { display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem; }
.csp-46dcee64 { margin:0; }
.csp-4252b606 { font-size:0.85rem;padding:0.3rem 0.9rem; }
.csp-5b7a337c { font-weight:600;margin:0 0 0.5rem; }
.csp-49a3b5c2 { background:#e8e8e8;border-radius:6px;height:10px;width:100%;max-width:360px; }
.csp-0abdf8b5 { background:#2D1B6B;border-radius:6px;height:10px;transition:width 0.3s;max-width:100%; }
.csp-a966d4dc { margin:0.4rem 0 1.5rem;font-size:0.875rem;color:#555; }
.csp-c9e0d99e { margin-bottom:1.5rem;max-width:480px; }
.csp-242f66ed { color:#276749;font-weight:600; }
.csp-48d21665 { color:#999; }
.csp-12ced58f { display:flex;flex-wrap:wrap;gap:0.75rem;margin-bottom:1rem; }
.csp-2da5d661 { margin-bottom:1.5rem; }
.csp-620a4453 { display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;margin-bottom:1rem; }
.csp-5b4761d7 { border:1px solid #e0e0e0;border-radius:8px;padding:1.5rem; }
.csp-96df6d95 { font-weight:700;font-size:1.1rem;margin-bottom:0.25rem; }
.csp-2b816c1e { font-size:1.75rem;font-weight:800;margin-bottom:0.25rem; }
.csp-7c8628b3 { font-size:0.8rem;color:#777;margin-bottom:1rem; }
.csp-39449126 { list-style:none;font-size:0.875rem;line-height:1.9; }
.csp-009b7f0b { border:2px solid #C4B5F4;border-radius:8px;padding:1.5rem;background:#faf8ff; }
.csp-8160cdee { font-size:1rem;font-weight:400;color:#666; }
.csp-3446f714 { font-size:0.72rem;color:#8a7fb8;margin-top:0.75rem;border-top:1px solid #e5deff;padding-top:0.6rem; }
.csp-a7206db9 { color:#8a7fb8; }
.csp-36d08220 { border:2px solid #2D1B6B;border-radius:8px;padding:1.5rem;background:#f5f0ff; }
.csp-0afdedbd { display:flex;align-items:center;gap:0.5rem;margin-bottom:0.25rem; }
.csp-253fbfe9 { font-weight:700;font-size:1.1rem;margin:0; }
.csp-e96fab3e { background:#2D1B6B;color:#fff;font-size:0.7rem;font-weight:700;padding:0.1rem 0.5rem;border-radius:99px; }
.csp-09cbfd89 { margin-bottom:1rem; }
.csp-d39d7059 { font-size:0.925rem;line-height:1.7;color:#333;margin-bottom:1rem; }
.csp-c8f30ee8 { background:#f7f7f7;border-radius:8px;padding:1.25rem;margin-bottom:1.25rem;font-size:0.875rem;line-height:1.8; }
.csp-d0ce0783 { font-weight:600;margin-bottom:0.5rem; }
.csp-5e0bc5da { list-style:none;padding-left:0.5rem; }
.csp-65f7ad47 { border-top:1px solid #e0e0e0;margin-top:0.5rem;padding-top:0.5rem;font-weight:600; }
.csp-b382a064 { font-size:0.925rem;line-height:1.7;color:#333;margin-bottom:0.75rem; }
.csp-c68712f9 { font-size:0.875rem;color:#666; }
.csp-51eba1ef { display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem; }
.csp-b6e1d58f { background:#f0f0f0;color:#333; }
.csp-6a209bb7 { margin-bottom:1.25rem; }
.csp-983474a4 { display:flex;gap:2.5rem;flex-wrap:wrap;margin-bottom:1.5rem; }
.csp-b0421930 { font-size:1.9rem;font-weight:700;color:#276749; }
.csp-b5cdc31a { font-size:0.85rem;color:#666; }
.csp-a0815a6b { font-size:1.9rem;font-weight:700;color:#4a6cf7; }
.csp-45ee2aab { font-size:1.9rem;font-weight:700;color:#666; }
.csp-4a21288c { font-size:1.9rem;font-weight:700;color:#333; }
.csp-40b89493 { max-width:420px; }
.csp-a474afff { margin-top:0.6rem;font-size:0.78rem;color:#aaa; }
.csp-c227057b { display:flex;gap:2.5rem;flex-wrap:wrap; }
.csp-3b4cea20 { white-space:nowrap;font-size:0.85rem;color:#666; }
.csp-0cf0f58e { background:#fff5f5;color:#9b2c2c; }
.csp-f73184c6 { background:#fffbeb;color:#7b5a0e; }
.csp-171a35c8 { background:#e6ffed;color:#276749; }
.csp-dfb23348 { background:#f7fafc;color:#4a5568; }
.csp-749cff35 { color:#888; }
.csp-9243b54d { font-size:0.9rem;margin-bottom:0.5rem; }
.csp-6c08de30 { background:#2D1B6B; }
.csp-6713212b { font-size:0.82rem;color:#666;margin-top:0.4rem; }
.csp-aece72bc { font-size:0.85rem;color:#c05621;margin-top:0.5rem;font-weight:600; }
.csp-a5d2baa1 { font-weight:600; }
.csp-a3c6040d { color:#555;font-size:0.875rem; }
.csp-8ee9742b { display:inline-flex;align-items:center;gap:0.4rem;margin:0; }
.csp-93b8ea5b { display:none; }
.csp-6e1efa02 { display:inline;margin-left:0.4rem; }
.csp-9ac43812 { font-size:0.72rem;padding:0.2rem 0.5rem; }
.csp-0369a5e4 { display:flex;flex-wrap:wrap;gap:0.5rem;align-items:center; }
.csp-2fc536b5 { display:flex;align-items:center;gap:0.3rem;font-size:0.82rem;font-weight:500;color:#276749;white-space:nowrap; }
.csp-1f3501d8 { accent-color:#276749; }
.csp-ffed6281 { font-size:0.75rem;color:#999;margin:0.25rem 0 0; }
.csp-f46608be { display:flex;align-items:center;gap:0.3rem;font-size:0.82rem;font-weight:500;cursor:pointer;white-space:nowrap; }
.csp-f1a6d811 { font-size:0.82rem;color:#555; }
.csp-5f8f4af2 { display:inline; }
.csp-f67d9998 { font-size:0.82rem;color:#666;margin-top:0.75rem; }
.csp-153b6ebc { background:#fff5f5;border:1px solid #feb2b2;border-radius:6px;padding:0.85rem 1rem;margin-bottom:1.25rem; }
.csp-e2aeaa5e { color:#9b2c2c;font-size:0.9rem; }
.csp-258e6792 { margin:0.4rem 0 0 1.1rem;padding:0;color:#9b2c2c;font-size:0.87rem; }
.csp-225aa188 { font-size:0.82rem;color:#666;margin-top:0.5rem; }
.csp-12e3c804 { margin-top:1rem;display:flex;align-items:center;gap:1rem; }
.csp-d4296554 { color:#c05621; }
.csp-6770f752 { display:flex;gap:0.75rem;align-items:center; }
.csp-da4ef98c { display:flex;align-items:center;justify-content:space-between; }
.csp-58fdc5e1 { margin-bottom:0.75rem; }
.csp-279f6af7 { display:flex;gap:2rem; }
.csp-a511ae2b { font-size:1.75rem;font-weight:700;color:#4a6cf7; }
.csp-c441f63f { display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem; }
.csp-2bbfd95c { display:flex;gap:0.5rem;align-items:center; }
.csp-023e1987 { background:#fee2e2;color:#991b1b;border:1px solid #fca5a5; }
.csp-5e3f2a43 { display:flex;gap:2rem;margin-bottom:1rem;font-size:0.88rem;color:#555; }
.csp-430b27e5 { color:#276749; }
.csp-911150c5 { font-size:0.88rem;cursor:pointer;color:#4a6cf7; }
.csp-3db59610 { margin-top:0.5rem; }
.csp-14505d60 { background:none;border:none;color:#991b1b;cursor:pointer;font-size:0.8rem;padding:0.1rem 0.4rem; }
.csp-c295b279 { max-width:400px;margin:2rem auto; }
.csp-539b047e { text-align:center; }
.csp-5b245293 { font-size:2rem;margin-bottom:0.75rem; }
.csp-63addab6 { margin-bottom:0.5rem; }
.csp-b6bbbb6f { color:#555;margin-bottom:1.5rem; }
.csp-ba75eaa1 { width:100%;display:block;text-align:center;margin-bottom:0.75rem; }
.csp-1ece8c11 { width:100%;display:block;text-align:center;margin-bottom:0.75rem;background:#2d3748; }
.csp-b5a59804 { width:100%;background:#eee;color:#333; }
.csp-c13d091e { width:100%;margin-top:0.5rem; }
.csp-d616b600 { margin-top:1rem;font-size:0.88rem;text-align:center; }
.csp-1f5d438d { max-width:420px;margin:2rem auto; }
.csp-6f24844d { color:#555;margin-bottom:1.25rem;font-size:0.92rem; }
.csp-78427c4e { margin-top:1rem; }
.csp-8588e44d { width:100%; }
.csp-68b5e4ff { color:#555;font-size:0.92rem;margin-bottom:1.5rem; }
.csp-b3bf76c2 { font-size:2.5rem;margin-bottom:0.75rem; }
.csp-e456d8e8 { color:#555;font-size:0.92rem;line-height:1.6;margin-bottom:1.5rem; }
.csp-a136dacf { color:#888;font-size:0.82rem; }
.csp-4fbd8673 { font-size:3rem;margin-bottom:1rem; }
.csp-f3bff226 { color:#555;line-height:1.6;margin-bottom:1.5rem; }
.csp-5f90ebbb { color:#888;font-size:0.88rem; }
.csp-248cc901 { max-width:480px;margin:2rem auto; }
.csp-ea349ae2 { margin-top:1.25rem; }
.csp-f2962f11 { font-size:0.85rem;color:#666;margin-left:0.5rem; }
.csp-e7fa4c34 { max-width:560px; }
.csp-768d29a8 { background:#f5f5f5;color:#888; }
.csp-a8fea8d1 { margin-bottom:1.25rem;color:#555; }
