.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1rem}.login-form{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2.5rem;width:100%;max-width:400px;display:flex;flex-direction:column;gap:1.25rem}.login-header{text-align:center;margin-bottom:.5rem}.login-header h1{color:var(--text-heading);font-size:1.5rem;font-weight:700}.login-header p{color:var(--text-muted);font-size:.875rem;margin-top:.25rem}.login-error{background:var(--danger-bg);color:var(--danger);border:1px solid rgba(239,68,68,.2);border-radius:var(--radius);padding:.75rem 1rem;font-size:.875rem}.field{display:flex;flex-direction:column;gap:.375rem}.field span{font-size:.8125rem;font-weight:500;color:var(--text-muted)}.field input{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);padding:.625rem .75rem;color:var(--text);outline:none;transition:border-color .2s}.field input:focus{border-color:var(--border-focus)}.field input::placeholder{color:var(--text-muted);opacity:.5}.btn-primary{display:flex;align-items:center;justify-content:center;gap:.5rem;background:var(--accent);color:#fff;border-radius:var(--radius);padding:.625rem 1.25rem;font-weight:600;font-size:.875rem;transition:background .2s;margin-top:.5rem}.select-page{max-width:800px;margin:0 auto;padding:2rem 1.5rem}.select-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:2rem}.select-header h1{color:var(--text-heading);font-size:1.5rem;font-weight:700}.select-header p{color:var(--text-muted);font-size:.875rem;margin-top:.25rem}.btn-ghost{display:flex;align-items:center;gap:.375rem;background:transparent;color:var(--text-muted);font-size:.8125rem;font-weight:500;padding:.5rem .75rem;border-radius:var(--radius);transition:color .2s,background .2s}.btn-ghost:hover{color:var(--text);background:var(--bg-card)}.select-grid{display:flex;flex-direction:column;gap:.75rem}.wedding-card{position:relative;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;text-align:left;transition:border-color .2s,background .2s;width:100%}.wedding-card:hover{border-color:var(--accent);background:var(--bg-card-hover)}.wedding-card-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.wedding-card-header h2{color:var(--text-heading);font-size:1.125rem;font-weight:600}.status-badge{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.2rem .5rem;border-radius:999px}.status-live{background:var(--success-bg);color:var(--success)}.status-draft{background:var(--warning-bg);color:var(--warning)}.status-archived{background:var(--info-bg);color:var(--info)}.wedding-card-meta{display:flex;gap:1.5rem;color:var(--text-muted);font-size:.8125rem}.wedding-card-meta span{display:flex;align-items:center;gap:.375rem}.wedding-card-arrow{position:absolute;right:1.25rem;top:50%;transform:translateY(-50%);color:var(--text-muted);opacity:0;transition:opacity .2s}.wedding-card:hover .wedding-card-arrow{opacity:1}.empty-state{text-align:center;color:var(--text-muted);padding:3rem}.section-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.75rem}.users-section{margin-top:2.5rem}.users-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.btn-sm{padding:.375rem .625rem;font-size:.75rem}.btn-primary{background:var(--accent);color:#fff;border-radius:var(--radius);font-weight:600;transition:background .2s}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.add-user-form{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem;padding:1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg)}.form-input-sm{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .625rem;color:var(--text);font-size:.8125rem;outline:none;min-width:0;flex:1}.form-input-sm:focus{border-color:var(--border-focus)}.form-input-sm::placeholder{color:var(--text-muted);opacity:.5}select.form-input-sm{flex:1.5}.add-error{color:var(--danger);font-size:.75rem;width:100%}.users-list{display:flex;flex-direction:column;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.user-row{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border)}.user-row:last-child{border-bottom:none}.user-info{display:flex;align-items:center;gap:.625rem;font-size:.8125rem;flex-wrap:wrap}.icon-accent{color:var(--accent)}.icon-muted{color:var(--text-muted)}.user-email{color:var(--text-heading);font-weight:500}.user-role{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:var(--bg-input);padding:.125rem .375rem;border-radius:999px}.user-wedding{color:var(--text-muted);font-size:.75rem}.btn-delete-sm{display:flex;align-items:center;justify-content:center;background:transparent;color:var(--text-muted);padding:.375rem;border-radius:var(--radius);transition:color .15s,background .15s}.btn-delete-sm:hover{color:var(--danger);background:var(--danger-bg)}.dashboard{max-width:1200px;margin:0 auto;padding:1.5rem}.dash-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}.dash-header-left{display:flex;align-items:flex-start;gap:.75rem}.dash-header h1{color:var(--text-heading);font-size:1.375rem;font-weight:700}.dash-header p{color:var(--text-muted);font-size:.8125rem;margin-top:.125rem}.dash-header-actions{display:flex;align-items:center;gap:.5rem}.btn-outline{display:flex;align-items:center;gap:.375rem;background:transparent;color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .875rem;font-size:.8125rem;font-weight:500;transition:border-color .2s,background .2s}.btn-outline:hover{border-color:var(--accent);background:#6366f10d}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1.5rem}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;display:flex;align-items:center;gap:1rem}.stat-icon{width:44px;height:44px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-icon-info{background:var(--info-bg);color:var(--info)}.stat-icon-success{background:var(--success-bg);color:var(--success)}.stat-icon-danger{background:var(--danger-bg);color:var(--danger)}.stat-icon-accent{background:#6366f11a;color:var(--accent)}.stat-body{display:flex;flex-direction:column}.stat-value{font-size:1.5rem;font-weight:700;color:var(--text-heading);line-height:1}.stat-label{font-size:.75rem;color:var(--text-muted);margin-top:.25rem}.detail-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:.75rem;margin-bottom:1.5rem}.detail-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem}.detail-card h3{font-size:.875rem;font-weight:600;color:var(--text-heading);margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem}.detail-list{list-style:none;display:flex;flex-direction:column;gap:.5rem;max-height:200px;overflow-y:auto}.detail-list li{display:flex;justify-content:space-between;align-items:center;font-size:.8125rem;padding:.375rem 0;border-bottom:1px solid var(--border)}.detail-list li:last-child{border-bottom:none}.detail-text{color:var(--text)}.detail-count{color:var(--text-muted);font-weight:500;font-variant-numeric:tabular-nums}.detail-muted{color:var(--text-muted);font-size:.75rem;flex-shrink:0}.filter-bar{display:flex;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.search-box{display:flex;align-items:center;gap:.5rem;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .75rem;flex:1;min-width:200px;color:var(--text-muted)}.search-box input{background:transparent;border:none;color:var(--text);outline:none;width:100%;font-size:.875rem}.search-box input::placeholder{color:var(--text-muted);opacity:.5}.filter-select{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .75rem;color:var(--text);font-size:.875rem;outline:none}.filter-select:focus{border-color:var(--border-focus)}.table-wrap{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow-x:auto}.rsvp-table{width:100%;border-collapse:collapse;font-size:.8125rem}.rsvp-table th{text-align:left;padding:.75rem 1rem;font-weight:600;color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.rsvp-table th:hover{color:var(--text)}.rsvp-table th svg{vertical-align:-2px;margin-left:2px}.rsvp-table td{padding:.625rem 1rem;border-bottom:1px solid var(--border);vertical-align:middle}.rsvp-table tbody tr:last-child td{border-bottom:none}.rsvp-table tbody tr:hover{background:var(--bg-card-hover)}.cell-name{font-weight:500;color:var(--text-heading)}.cell-muted{color:var(--text-muted)}.cell-center{text-align:center;font-variant-numeric:tabular-nums}.cell-nowrap{white-space:nowrap}.table-empty{text-align:center;color:var(--text-muted);padding:3rem 1rem!important}.badge{display:inline-block;font-size:.6875rem;font-weight:600;padding:.2rem .5rem;border-radius:999px;white-space:nowrap}.badge-success{background:var(--success-bg);color:var(--success)}.badge-danger{background:var(--danger-bg);color:var(--danger)}.btn-delete{display:flex;align-items:center;justify-content:center;background:transparent;color:var(--text-muted);padding:.375rem;border-radius:var(--radius);opacity:0;transition:opacity .15s,color .15s,background .15s}.rsvp-table tbody tr:hover .btn-delete{opacity:1}.btn-delete:hover{color:var(--danger);background:var(--danger-bg)}.table-footer{text-align:center;color:var(--text-muted);font-size:.75rem;padding:.75rem}@media(max-width:768px){.stats-row{grid-template-columns:repeat(2,1fr)}.dash-header{flex-direction:column}.dash-header-actions{width:100%;justify-content:flex-end}}@media(max-width:480px){.stats-row{grid-template-columns:1fr}}.loading-screen{display:flex;align-items:center;justify-content:center;min-height:100vh}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}:root{--bg: #0f1117;--bg-card: #1a1d27;--bg-card-hover: #22252f;--bg-input: #13151d;--border: #2a2d3a;--border-focus: #6366f1;--text: #e4e4e7;--text-muted: #71717a;--text-heading: #fafafa;--accent: #6366f1;--accent-hover: #818cf8;--success: #22c55e;--success-bg: rgba(34, 197, 94, .1);--danger: #ef4444;--danger-bg: rgba(239, 68, 68, .1);--warning: #f59e0b;--warning-bg: rgba(245, 158, 11, .1);--info: #3b82f6;--info-bg: rgba(59, 130, 246, .1);--radius: 8px;--radius-lg: 12px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}button{cursor:pointer;border:none;font-family:inherit;font-size:inherit}input,select{font-family:inherit;font-size:inherit}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}
