:root{--bg:#fafafa;--fg:#1b254f;--accent:#ba9d30;--muted:#6b7280;--surface:#fff;--border:#e5e7eb;--ok:#16a34a;--bad:#dc2626;--warn:#d97706}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--fg);font-family:-apple-system,BlinkMacSystemFont,SF Arabic,Segoe UI,Helvetica Neue,Arial,sans-serif;min-height:100vh;line-height:1.5}.page{max-width:720px;margin:0 auto;padding:4rem 1.5rem}h1{font-size:2.25rem;margin:0 0 1rem;letter-spacing:-.02em}p{font-size:1.125rem;margin:0 0 .75rem}.muted{color:var(--muted)}.error,.muted{font-size:.95rem}.error{color:var(--bad);margin:.5rem 0}[dir=rtl] .page{text-align:right}[dir=ltr] .page{text-align:left}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1rem}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:2rem;max-width:420px;width:100%;box-shadow:0 4px 16px rgba(27,37,79,.05)}.auth-card h1{font-size:1.75rem}.auth-form{gap:1rem;margin-top:1.5rem}.auth-form,.field{display:flex;flex-direction:column}.field{gap:.4rem}.field>span{font-size:.9rem;font-weight:600}.field>input{padding:.7rem .9rem;border:1px solid var(--border);border-radius:10px;font-size:1rem;font-family:inherit;background:var(--surface);color:var(--fg)}.field>input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(186,157,48,.2)}button.primary{background:var(--accent);color:var(--fg);border:none;padding:.8rem 1.2rem;border-radius:10px;font-size:1rem;font-weight:700;cursor:pointer;font-family:inherit}button.primary:hover:not(:disabled){filter:brightness(.95)}button.primary:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:transparent;color:var(--fg);border:1px solid var(--border);padding:.8rem 1.2rem;border-radius:10px;font-size:1rem;cursor:pointer;font-family:inherit}button.secondary:hover:not(:disabled){background:var(--bg)}button.secondary:disabled{opacity:.5;cursor:not-allowed}.auth-buttons{display:flex;gap:.75rem}.auth-buttons>button{flex:1 1}.dashboard-page{max-width:1100px;margin:0 auto;padding:2rem 1.5rem 4rem}.dashboard-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.dashboard-header h1{margin:0}.event-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:1rem;gap:1rem}.event-card{display:block;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.25rem;color:var(--fg);text-decoration:none;transition:border-color .15s,box-shadow .15s}.event-card:hover{border-color:var(--accent);box-shadow:0 4px 14px rgba(186,157,48,.15)}.event-title{font-weight:700;font-size:1.15rem;margin-bottom:.5rem}.event-meta{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem}.event-date{font-size:.9rem;color:var(--muted)}.status-badge,.tier-badge{display:inline-block;padding:.15rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600}.tier-basic{background:#eef2ff;color:var(--fg)}.tier-premium{background:var(--accent);color:var(--fg)}.status-draft{background:#f3f4f6;color:var(--muted)}.status-active{background:#d1fae5;color:#065f46}.status-closed{background:#fee2e2;color:#991b1b}.status-archived{background:#f3f4f6;color:var(--muted)}.back-link{display:inline-block;color:var(--fg);text-decoration:none;font-size:.95rem;margin-bottom:1rem}.back-link:hover{text-decoration:underline}.event-header{margin-bottom:1.5rem}.event-header h1{margin-bottom:.5rem;font-size:1.75rem}.counters{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));grid-gap:.75rem;gap:.75rem;margin:1.5rem 0}.counter{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1rem;text-align:center}.counter.ok{border-color:var(--ok)}.counter.bad{border-color:var(--bad)}.counter-value{font-size:1.75rem;font-weight:700;line-height:1;margin-bottom:.25rem}.counter-label{font-size:.8rem;color:var(--muted)}.table-controls{margin:1rem 0}.search-input{width:100%;max-width:360px;padding:.6rem .9rem;border:1px solid var(--border);border-radius:10px;font-size:.95rem;font-family:inherit;background:var(--surface);color:var(--fg)}.table-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:12px}.guest-table{width:100%;border-collapse:collapse;font-size:.95rem}.guest-table td,.guest-table th{padding:.7rem .9rem;border-bottom:1px solid var(--border);text-align:start}.guest-table th{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--bg)}.guest-table tr:last-child td{border-bottom:none}.phone-cell{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.9rem}.pill{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600;white-space:nowrap}.pill-attending{background:#d1fae5;color:#065f46}.pill-declined{background:#fee2e2;color:#991b1b}.pill-maybe{background:#fef3c7;color:#92400e}.pill-no_response,.pill-pending{background:#f3f4f6;color:var(--muted)}.pill-wa-sent{background:#dbeafe;color:#1e40af}.pill-wa-delivered{background:#d1fae5;color:#065f46}.pill-wa-read{background:#c7d2fe;color:#312e81}.pill-wa-failed{background:#fee2e2;color:#991b1b}.pill-wa-queued{background:#fef3c7;color:#92400e}.pill-att-not_arrived,.pill-wa-none{background:#f3f4f6;color:var(--muted)}.pill-att-checked_in{background:#d1fae5;color:#065f46}.pill-att-rejected{background:#fee2e2;color:#991b1b}.link-button{background:none;border:none;padding:0;color:var(--accent);font:inherit;cursor:pointer;text-decoration:underline}.modal-backdrop{position:fixed;inset:0;background:rgba(27,37,79,.4);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000}.modal{background:var(--surface);border-radius:16px;padding:2rem;max-width:420px;width:100%;box-shadow:0 10px 40px rgba(0,0,0,.15)}.modal h2{margin-top:0;font-size:1.25rem}.toast{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%);background:var(--fg);color:var(--surface);padding:.75rem 1.25rem;border-radius:999px;font-size:.95rem;z-index:999;box-shadow:0 4px 16px rgba(0,0,0,.2)}.toast-err{background:var(--bad)}