@import"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300..700;1,9..40,300..700&display=swap";.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1rem}.login-form{position:relative;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:2.5rem;width:100%;max-width:400px;display:flex;flex-direction:column;gap:1.25rem;box-shadow:var(--shadow-elevated);overflow:hidden}.login-form:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.03) 0%,transparent 50%);pointer-events:none}.login-header{text-align:center;margin-bottom:.75rem}.login-header h1{color:var(--text-heading);font-size:1.5rem;font-weight:700;letter-spacing:-.03em}.login-header p{color:var(--text-muted);font-size:.8125rem;margin-top:.375rem}.login-error{background:var(--danger-bg);color:var(--danger);border:1px solid rgba(239,68,68,.15);border-radius:var(--radius);padding:.75rem 1rem;font-size:.8125rem;line-height:1.4}.field{display:flex;flex-direction:column;gap:.375rem}.field span{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.field input{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);padding:.625rem .875rem;color:var(--text);outline:none;transition:all var(--transition-fast);font-size:.875rem}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}.field input::placeholder{color:var(--text-muted);opacity:.4}.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:all var(--transition-fast);margin-top:.5rem;box-shadow:0 1px 2px #0003,inset 0 1px #ffffff1a}.toast-container{position:fixed;top:1rem;right:1rem;display:flex;flex-direction:column;gap:.5rem;z-index:100;pointer-events:none}.toast{display:flex;align-items:center;gap:.625rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:.75rem 1rem;min-width:280px;max-width:420px;box-shadow:var(--shadow-elevated);pointer-events:auto;animation:toast-slide-in .35s var(--ease-out);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}@keyframes toast-slide-in{0%{transform:translate(calc(100% + 1rem));opacity:0}to{transform:translate(0);opacity:1}}.toast-success{border-left:3px solid var(--success)}.toast-error{border-left:3px solid var(--danger)}.toast-info{border-left:3px solid var(--info)}.toast-success .toast-icon{color:var(--success)}.toast-error .toast-icon{color:var(--danger)}.toast-info .toast-icon{color:var(--info)}.toast-icon{display:flex;flex-shrink:0}.toast-message{flex:1;font-size:.8125rem;color:var(--text);line-height:1.4;font-weight:500}.toast-dismiss{display:flex;align-items:center;justify-content:center;background:transparent;color:var(--text-muted);padding:.25rem;border-radius:6px;flex-shrink:0;transition:all var(--transition-fast)}.toast-dismiss:hover{color:var(--text);background:#ffffff0d}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:confirm-fade-in .15s ease-out}@keyframes confirm-fade-in{0%{opacity:0}to{opacity:1}}.confirm-dialog{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:1.75rem;max-width:420px;width:100%;box-shadow:var(--shadow-elevated);animation:confirm-scale-in .2s var(--ease-out)}@keyframes confirm-scale-in{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.confirm-title{font-size:1rem;font-weight:700;color:var(--text-heading);margin-bottom:.5rem;letter-spacing:-.01em}.confirm-message{font-size:.8125rem;color:var(--text-muted);line-height:1.5;margin-bottom:1.5rem}.confirm-actions{display:flex;justify-content:flex-end;gap:.5rem}.btn-danger{display:flex;align-items:center;gap:.375rem;background:var(--danger);color:#fff;border:none;border-radius:var(--radius);padding:.5rem .875rem;font-size:.8125rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);box-shadow:0 1px 2px #0003}.btn-danger:hover{background:#ef4444;box-shadow:0 2px 8px #f871714d;transform:translateY(-1px)}.btn-danger:active{transform:translateY(0)}.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;letter-spacing:-.025em}.select-header p{color:var(--text-muted);font-size:.8125rem;margin-top:.375rem}.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:all var(--transition-fast)}.btn-ghost:hover{color:var(--text);background:#ffffff0a}.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:all var(--transition-fast);width:100%;overflow:hidden}.wedding-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.02) 0%,transparent 60%);pointer-events:none}.wedding-card:hover{border-color:var(--accent);background:var(--bg-card-hover);transform:translateY(-1px);box-shadow:0 4px 16px #00000026,0 0 0 1px #a78bfa1a}.wedding-card-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.wedding-card-header h2{color:var(--text-heading);font-size:1.0625rem;font-weight:600;letter-spacing:-.01em}.status-badge{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;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:all var(--transition-fast)}.wedding-card:hover .wedding-card-arrow{opacity:1;transform:translateY(-50%) translate(2px);color:var(--accent)}.empty-state{text-align:center;color:var(--text-muted);padding:3rem}.section-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;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-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:all var(--transition-fast)}.btn-outline:hover{border-color:var(--accent);background:var(--accent-subtle);color:var(--accent)}.btn-sm{padding:.375rem .625rem;font-size:.75rem}.btn-primary{background:var(--accent);color:#fff;border-radius:var(--radius);font-weight:600;transition:all var(--transition-fast);box-shadow:0 1px 2px #0003,inset 0 1px #ffffff1a}.btn-primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 2px 8px var(--accent-glow);transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.5;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;transition:border-color var(--transition-fast)}.form-input-sm:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-subtle)}.form-input-sm::placeholder{color:var(--text-muted);opacity:.4}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-subtle);transition:background var(--transition-fast)}.user-row:last-child{border-bottom:none}.user-row:hover{background:#ffffff04}.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);opacity:.5}.user-email{color:var(--text-heading);font-weight:500}.user-role{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);background:var(--bg-input);padding:.125rem .5rem;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:all var(--transition-fast);opacity:.5}.btn-delete-sm:hover{color:var(--danger);background:var(--danger-bg);opacity:1}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:2rem;gap:1rem;flex-wrap:wrap}.page-header-text{flex:1;min-width:0}.page-header-title{font-size:1.5rem;font-weight:700;color:var(--text-heading);line-height:1.2;letter-spacing:-.025em}.page-header-desc{font-size:.8125rem;color:var(--text-muted);margin-top:.375rem;line-height:1.5}.page-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}@media(max-width:768px){.page-header{flex-direction:column}.page-header-actions{width:100%;justify-content:flex-end}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton-line{height:14px;border-radius:6px;background:linear-gradient(90deg,var(--bg-card) 25%,rgba(255,255,255,.04) 50%,var(--bg-card) 75%);background-size:800px 14px;animation:shimmer 1.8s ease-in-out infinite}.skeleton-card{border-radius:var(--radius-lg);background:linear-gradient(90deg,var(--bg-card) 25%,rgba(255,255,255,.03) 50%,var(--bg-card) 75%);background-size:800px 100%;animation:shimmer 1.8s ease-in-out infinite;border:1px solid var(--border)}.skeleton-row{display:flex;align-items:center;gap:1rem;padding:1rem;border-bottom:1px solid var(--border-subtle)}.empty-state-block{display:flex;flex-direction:column;align-items:center;text-align:center;padding:3.5rem 2rem;max-width:400px;margin:0 auto}.empty-state-icon{color:var(--text-muted);opacity:.3;margin-bottom:1.25rem}.empty-state-title{font-size:1rem;font-weight:700;color:var(--text-heading);margin-bottom:.5rem;letter-spacing:-.01em}.empty-state-desc{font-size:.8125rem;color:var(--text-muted);line-height:1.6}.empty-state-action{margin-top:1.25rem}.dashboard{max-width:1200px;margin:0 auto;padding:2rem 1.75rem}.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:all var(--transition-fast);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.btn-outline:hover{border-color:#a78bfa4d;background:var(--accent-subtle);color:var(--accent-hover)}.stats-row{display:grid;grid-template-columns:repeat(5,1fr);gap:.875rem;margin-bottom:1.75rem}.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;box-shadow:var(--shadow-card);transition:all var(--transition-med) var(--ease-out);position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.02) 0%,transparent 60%);pointer-events:none}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover);border-color:#ffffff14}.stat-icon{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative}.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:var(--accent-subtle);color:var(--accent)}.stat-body{display:flex;flex-direction:column}.stat-value{font-size:1.625rem;font-weight:700;color:var(--text-heading);line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat-label{font-size:.6875rem;color:var(--text-muted);margin-top:.25rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em}.detail-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:.875rem;margin-bottom:1.75rem}.detail-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow-card);position:relative;overflow:hidden}.detail-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.015) 0%,transparent 50%);pointer-events:none}.detail-card h3{font-size:.8125rem;font-weight:600;color:var(--text-heading);margin-bottom:.875rem;display:flex;align-items:center;gap:.5rem;letter-spacing:-.01em}.detail-card h3 svg{color:var(--text-muted)}.detail-list{list-style:none;display:flex;flex-direction:column;gap:0;max-height:200px;overflow-y:auto}.detail-list li{display:flex;justify-content:space-between;align-items:center;font-size:.8125rem;padding:.5rem 0;border-bottom:1px solid var(--border-subtle);transition:background var(--transition-fast)}.detail-list li:last-child{border-bottom:none}.detail-list li:hover{background:#ffffff04}.detail-text{color:var(--text)}.detail-count{color:var(--text-muted);font-weight:600;font-variant-numeric:tabular-nums;font-size:.75rem}.detail-muted{color:var(--text-muted);font-size:.75rem;flex-shrink:0}.loading-screen{display:flex;justify-content:center;padding:4rem}@media(max-width:1024px){.stats-row{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.stats-row{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.stats-row{grid-template-columns:1fr}}.help-tooltip-wrapper{position:relative;display:inline-flex;align-items:center}.help-tooltip-trigger{display:inline-flex;align-items:center;justify-content:center;background:transparent;color:var(--text-muted);padding:3px;border-radius:50%;transition:all var(--transition-fast);opacity:.5}.help-tooltip-trigger:hover{color:var(--accent);opacity:1;background:var(--accent-subtle)}.help-tooltip{position:absolute;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:.625rem .875rem;font-size:.75rem;color:var(--text);line-height:1.6;max-width:280px;width:max-content;box-shadow:var(--shadow-elevated);z-index:30;pointer-events:none;animation:help-tooltip-fade-in .2s var(--ease-out);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);letter-spacing:.01em}@keyframes help-tooltip-fade-in{0%{opacity:0;transform:translateY(4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.help-tooltip-top{bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.help-tooltip-bottom{top:calc(100% + 8px);left:50%;transform:translate(-50%)}.help-tooltip-left{right:calc(100% + 8px);top:50%;transform:translateY(-50%)}.help-tooltip-right{left:calc(100% + 8px);top:50%;transform:translateY(-50%)}.guest-list-page{max-width:1200px;margin:0 auto;padding:2rem 1.75rem}.gl-actions{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;flex-wrap:wrap;gap:.75rem}.gl-actions h2{font-size:.9375rem;font-weight:600;color:var(--text-heading);letter-spacing:-.01em}.gl-actions-right{display:flex;align-items:center;gap:.5rem}.group-list{display:flex;flex-direction:column;gap:.625rem}.group-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card);transition:all var(--transition-med) var(--ease-out)}.group-card:hover{border-color:#ffffff14}.group-header{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1.125rem;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast)}.group-header:hover{background:#ffffff05}.group-header-left{display:flex;align-items:center;gap:.5rem;color:var(--text-muted)}.group-name{font-weight:600;color:var(--text-heading);letter-spacing:-.01em}.group-count{font-size:.75rem;color:var(--text-muted)}.group-plus-ones{font-size:.6875rem;color:var(--accent);background:var(--accent-subtle);padding:.125rem .5rem;border-radius:999px;font-weight:600}.group-header-right{display:flex;align-items:center;gap:.5rem}.group-status-pills{display:flex;gap:3px}.status-dot{width:8px;height:8px;border-radius:50%;transition:transform var(--transition-fast)}.status-dot:hover{transform:scale(1.4)}.status-pending{background:var(--text-muted)}.status-attending{background:var(--success);box-shadow:0 0 6px #34d39966}.status-declined{background:var(--danger)}.group-body{border-top:1px solid var(--border);padding:.875rem 1.125rem;background:#0000001a}.event-assignment{display:flex;align-items:center;gap:.5rem;margin-bottom:.875rem;flex-wrap:wrap}.event-label{font-size:.6875rem;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em}.event-chip{display:flex;align-items:center;gap:.375rem;font-size:.75rem;padding:.25rem .625rem;border:1px solid var(--border);border-radius:999px;cursor:pointer;color:var(--text-muted);transition:all var(--transition-fast)}.event-chip input{display:none}.event-chip:hover{border-color:#a78bfa4d}.event-chip-active{background:var(--accent-subtle);border-color:#a78bfa4d;color:var(--accent)}.guest-table{width:100%;border-collapse:collapse;font-size:.8125rem}.guest-table th{text-align:left;padding:.5rem .75rem;font-weight:600;color:var(--text-muted);font-size:.6875rem;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border)}.guest-table td{padding:.5rem .75rem;border-bottom:1px solid var(--border-subtle);vertical-align:middle}.guest-table tbody tr:last-child td{border-bottom:none}.guest-table tbody tr{transition:background var(--transition-fast)}.guest-table tbody tr:hover{background:#ffffff05}.guest-table tbody tr:hover .btn-delete{opacity:1}.plus-one-tag{font-size:.5625rem;background:var(--accent-subtle);color:var(--accent);padding:.0625rem .375rem;border-radius:999px;margin-left:.375rem;font-weight:700;letter-spacing:.02em}.guest-row-actions{display:flex;align-items:center;gap:.25rem}.btn-edit{display:flex;align-items:center;justify-content:center;background:transparent;color:var(--text-muted);padding:.375rem;border-radius:var(--radius);opacity:0;transition:all var(--transition-fast)}.guest-table tbody tr:hover .btn-edit{opacity:1}.btn-edit:hover{color:var(--accent);background:var(--accent-subtle)}.editing-row{background:#a78bfa08}.edit-name-cell{display:flex;gap:.375rem}.edit-name-cell .form-input-sm{width:50%;min-width:60px}.editing-row .form-input-sm{width:100%}.edit-actions{display:flex;align-items:center;gap:.25rem}.add-guest-btn{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--text-muted);padding:.5rem 0;transition:color var(--transition-fast)}.add-guest-btn:hover{color:var(--accent)}.add-guest-form{padding-top:.5rem}.inline-form{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;flex-wrap:wrap}.form-input-sm{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);padding:.4375rem .625rem;color:var(--text);font-size:.8125rem;outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-input-sm:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #a78bfa1a}.num-input{width:60px}.plus-one-label{display:flex;align-items:center;gap:.375rem;font-size:.75rem;color:var(--text-muted)}.edit-group-inline{display:flex;align-items:center;gap:.375rem}.btn-primary{display:flex;align-items:center;gap:.375rem;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);padding:.5rem .875rem;font-size:.8125rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);box-shadow:0 1px 2px #0003,inset 0 1px #ffffff1a}.btn-primary:hover{background:var(--accent-hover);box-shadow:0 2px 8px #a78bfa4d,inset 0 1px #ffffff1a;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-sm{padding:.375rem .625rem}.btn-danger-hover:hover{color:var(--danger)!important;background:var(--danger-bg)}.badge{font-size:.6875rem;font-weight:600;padding:.125rem .5rem;border-radius:999px;letter-spacing:.02em}.badge-success{background:var(--success-bg);color:var(--success)}.badge-danger{background:var(--danger-bg);color:var(--danger)}.badge-pending{background:#ffffff0d;color:var(--text-muted)}.empty-state{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:4rem 2rem;color:var(--text-muted);text-align:center}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:modal-fade .15s ease-out}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:1.75rem;max-width:600px;width:100%;max-height:80vh;overflow-y:auto;box-shadow:var(--shadow-elevated);animation:modal-scale .2s var(--ease-out)}@keyframes modal-scale{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}.modal h3{font-size:1.125rem;font-weight:700;color:var(--text-heading);margin-bottom:.5rem;letter-spacing:-.02em}.modal-hint{font-size:.8125rem;color:var(--text-muted);margin-bottom:1rem}.modal .form-input{width:100%;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .75rem;color:var(--text);font-size:.8125rem;font-family:DM Sans,monospace;resize:vertical}.import-preview{margin-top:.75rem;padding:.875rem;background:var(--bg);border-radius:var(--radius);font-size:.8125rem;max-height:200px;overflow-y:auto;border:1px solid var(--border-subtle)}.import-preview p{font-weight:600;color:var(--accent);margin-bottom:.5rem}.import-preview ul{list-style:none;display:flex;flex-direction:column;gap:.25rem}.import-preview li{color:var(--text-muted)}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.25rem}@media(max-width:768px){.gl-actions{flex-direction:column;align-items:flex-start}.gl-actions-right{width:100%;justify-content:flex-end;flex-wrap:wrap}.guest-table{font-size:.75rem}}.settings-page{max-width:800px;margin:0 auto;padding:2rem 1.75rem;display:flex;flex-direction:column;gap:2rem}.settings-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-card);position:relative;overflow:hidden}.settings-section:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.015) 0%,transparent 50%);pointer-events:none}.settings-section-header{display:flex;align-items:center;gap:.5rem;color:var(--text-heading);margin-bottom:.25rem;position:relative}.settings-section-header h3{font-size:1rem;font-weight:700;flex:1;letter-spacing:-.01em}.settings-hint{font-size:.8125rem;color:var(--text-muted);margin-bottom:1rem;line-height:1.5}.rsvp-mode-options{display:flex;flex-direction:column;gap:.5rem}.mode-card{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all var(--transition-fast);position:relative}.mode-card:hover{border-color:#a78bfa4d;background:#a78bfa08}.mode-card-active{border-color:#a78bfa66;background:var(--accent-subtle);box-shadow:0 0 0 1px #a78bfa26}.mode-card input[type=radio]{margin-top:.125rem;accent-color:var(--accent)}.mode-label{display:block;font-weight:600;color:var(--text-heading);font-size:.875rem;letter-spacing:-.01em}.mode-desc{display:block;font-size:.75rem;color:var(--text-muted);margin-top:.25rem;line-height:1.4}.section-order-list{display:flex;flex-direction:column;gap:0;border-radius:var(--radius);overflow:hidden}.section-order-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--border-subtle)}.section-order-item:first-child{border-top:1px solid var(--border-subtle)}.section-locked{opacity:.5}.section-order-handle-placeholder{color:var(--text-muted);opacity:.4;display:flex;align-items:center}.section-order-content{display:flex;align-items:center;flex:1;gap:.75rem}.section-order-label{font-weight:600;font-size:.875rem;color:var(--text-heading);flex:1;letter-spacing:-.01em}.section-hidden .section-order-label{color:var(--text-muted);text-decoration:line-through}.section-order-badge{font-size:.6875rem;color:var(--text-muted);font-style:italic}.section-visibility-btn{background:none;border:1px solid var(--border);border-radius:var(--radius);padding:.375rem;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;transition:all var(--transition-fast)}.section-visibility-btn:hover{border-color:#a78bfa4d;color:var(--accent)}.section-visibility-btn.section-visible{color:var(--accent);border-color:#a78bfa4d;background:var(--accent-subtle)}.item-list{display:flex;flex-direction:column;gap:0}.item-row{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid var(--border-subtle);transition:background var(--transition-fast)}.item-row:last-child{border-bottom:none}.item-row:hover{background:#ffffff03}.item-info{display:flex;align-items:flex-start;gap:.5rem}.drag-handle{color:var(--text-muted);opacity:.4;margin-top:.125rem;flex-shrink:0}.item-name{display:block;font-weight:600;color:var(--text-heading);font-size:.875rem;letter-spacing:-.01em}.item-desc{display:block;font-size:.75rem;color:var(--text-muted);margin-top:.125rem;line-height:1.4}.item-time{display:block;font-size:.6875rem;color:var(--accent);margin-top:.25rem;font-weight:500}.item-edit{display:flex;flex-direction:column;gap:.5rem;flex:1}.item-actions{display:flex;gap:.25rem;flex-shrink:0}.no-items{color:var(--text-muted);font-size:.8125rem;padding:1.5rem 0;text-align:center}.settings-form{margin-bottom:1rem;display:flex;flex-direction:column;gap:.5rem}.form-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.form-row .form-input-sm{flex:1;min-width:120px}.rte-wrapper{width:100%;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-input);overflow:hidden}.rte-toolbar{display:flex;align-items:center;gap:2px;padding:4px;border-bottom:1px solid var(--border);background:#00000005}.rte-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius);background:transparent;color:var(--text-body);cursor:pointer}.rte-btn:hover:not(:disabled){background:#6366f114}.rte-btn:disabled{opacity:.3;cursor:default}.rte-btn-active{background:#6366f11f;color:var(--accent)}.rte-separator{width:1px;height:18px;background:var(--border);margin:0 4px}.rte-content .tiptap{padding:.375rem .5rem;font-size:.8125rem;font-family:inherit;color:var(--text-body);line-height:1.5;min-height:60px;outline:none}.rte-content .tiptap p{margin:0}.rte-content .tiptap a{color:var(--accent);text-decoration:underline}.rte-wrapper:focus-within{border-color:var(--accent)}.icon-picker{position:relative;min-width:120px}.icon-picker-trigger{display:flex;align-items:center;gap:6px;cursor:pointer;background:var(--bg-secondary, #1a1a2e);border:1px solid var(--border-color, #333);border-radius:6px;color:inherit;width:100%;text-align:left}.icon-picker-placeholder{opacity:.5}.icon-picker-dropdown{position:absolute;top:calc(100% + 4px);left:0;z-index:100;background:var(--bg-secondary, #1a1a2e);border:1px solid var(--border-color, #333);border-radius:8px;padding:8px;box-shadow:0 8px 24px #0006;min-width:280px}.icon-picker-clear{width:100%;padding:6px 8px;margin-bottom:6px;background:none;border:1px solid var(--border-color, #333);border-radius:4px;color:var(--text-secondary, #999);cursor:pointer;font-size:.8rem}.icon-picker-clear:hover{background:var(--bg-hover, #252540);color:var(--text-primary, #fff)}.icon-picker-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}.icon-picker-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;background:none;border:1px solid transparent;border-radius:6px;color:var(--text-secondary, #999);cursor:pointer;font-size:.65rem}.icon-picker-item:hover{background:var(--bg-hover, #252540);color:var(--text-primary, #fff)}.icon-picker-item.selected{border-color:var(--accent-color, #6c63ff);color:var(--accent-color, #6c63ff);background:#6c63ff1a}.sortable-item{display:flex;align-items:center;gap:0}.drag-handle-btn{display:flex;align-items:center;justify-content:center;padding:.25rem;border:none;background:none;cursor:grab;color:var(--text-muted);opacity:.4;flex-shrink:0;touch-action:none;transition:opacity .15s}.drag-handle-btn:hover{opacity:1}.drag-handle-btn:active{cursor:grabbing}.sortable-item-content{flex:1;min-width:0}.site-content-page{max-width:800px;margin:0 auto;padding:2rem 1.75rem;display:flex;flex-direction:column;gap:.875rem}.sc-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card);transition:border-color var(--transition-fast)}.sc-section:hover{border-color:#ffffff14}.sc-section-header{display:flex;align-items:center;gap:.5rem;padding:1rem 1.25rem;cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text-heading);transition:background var(--transition-fast)}.sc-section-header:hover{background:#ffffff05}.sc-section-header h3{font-size:.9375rem;font-weight:700;flex:1;letter-spacing:-.01em}.sc-chevron{transition:transform var(--transition-med) var(--ease-out);color:var(--text-muted)}.sc-chevron-open{transform:rotate(180deg)}.sc-section-body{padding:0 1.25rem 1.25rem}.sc-badge{font-size:.625rem;background:var(--accent);color:#fff;padding:.125rem .5rem;border-radius:999px;font-weight:700;min-width:20px;text-align:center}.sc-group{margin-bottom:1.25rem}.sc-group:last-child{margin-bottom:0}.sc-group-title{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:.5rem;padding-bottom:.25rem;border-bottom:1px solid var(--border-subtle)}.sc-kv-row{display:flex;align-items:flex-start;gap:.75rem;padding:.625rem 0;border-bottom:1px solid var(--border-subtle);transition:background var(--transition-fast)}.sc-kv-row:hover{background:#ffffff03}.sc-kv-row:last-child{border-bottom:none}.sc-kv-label{font-size:.8125rem;font-weight:600;color:var(--text-heading);min-width:140px;flex-shrink:0;padding-top:.25rem;letter-spacing:-.01em}.sc-kv-value{flex:1;font-size:.8125rem;color:var(--text);line-height:1.5;word-break:break-word}.sc-kv-actions{display:flex;gap:.25rem;flex-shrink:0}.sc-kv-input{width:100%;padding:.375rem .5rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.8125rem;font-family:inherit;background:var(--bg-input);color:var(--text);resize:vertical;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.sc-kv-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #a78bfa1a}.sc-add-form{display:flex;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-subtle);flex-wrap:wrap}.sc-add-form .form-input-sm{flex:1;min-width:100px}.sc-textarea{min-height:60px}.section-kvs{margin-bottom:.5rem}.section-divider{border-top:1px solid var(--border-subtle);margin:1rem 0}.sc-add-kv-link{display:inline-flex;align-items:center;gap:.25rem;background:none;border:none;color:var(--accent);font-size:.75rem;cursor:pointer;padding:.25rem 0;margin-top:.5rem;font-weight:500;transition:color var(--transition-fast)}.sc-add-kv-link:hover{color:var(--accent-hover)}.gallery-upload-area{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.gallery-file-input{display:none}.gallery-hint{font-size:.75rem;color:var(--text-muted)}.gallery-thumb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem}.gallery-thumb{position:relative;aspect-ratio:1;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);transition:all var(--transition-fast)}.gallery-thumb:hover{border-color:#ffffff1a;box-shadow:0 4px 12px #0000004d}.gallery-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.gallery-thumb:hover img{transform:scale(1.05)}.gallery-thumb-delete{position:absolute;top:.375rem;right:.375rem;background:#000000bf;border:none;color:var(--danger);border-radius:6px;padding:.3rem;cursor:pointer;opacity:0;transition:opacity var(--transition-fast),transform var(--transition-fast);transform:scale(.9);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.gallery-thumb:hover .gallery-thumb-delete{opacity:1;transform:scale(1)}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.wedding-setup-page{max-width:800px;margin:0 auto;padding:1.5rem;display:flex;flex-direction:column;gap:2rem}.wedding-setup-page .card{position:relative;overflow:hidden}.wedding-setup-page .card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.02) 0%,transparent 60%);pointer-events:none;z-index:0}.preview-page{display:flex;flex-direction:column;height:100vh;overflow:hidden}.preview-toolbar{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background:var(--bg-card);border-bottom:1px solid var(--border);flex-shrink:0}.preview-toolbar-left,.preview-toolbar-right{display:flex;align-items:center;gap:.25rem}.preview-mode-btn{display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border:1px solid var(--border);border-radius:var(--radius);background:transparent;color:var(--text-muted);font-size:.8125rem;cursor:pointer;transition:all var(--transition-fast)}.preview-mode-btn:hover{border-color:var(--accent);color:var(--text)}.preview-mode-active{background:var(--accent-subtle);border-color:var(--accent);color:var(--accent)}.preview-action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--border);border-radius:var(--radius);background:transparent;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);text-decoration:none}.preview-action-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-subtle)}.preview-container{flex:1;display:flex;justify-content:center;align-items:flex-start;padding:1.5rem;background:var(--bg);overflow:auto}.preview-frame{background:#000;border-radius:12px;box-shadow:0 8px 40px #0006,0 0 0 1px #ffffff0d;overflow:hidden}.preview-mobile .preview-frame{width:390px;height:844px;border-radius:40px;padding:12px}.preview-mobile .preview-iframe{border-radius:28px}.preview-desktop .preview-frame{width:100%;max-width:1280px;height:calc(100vh - 160px);border-radius:8px;padding:0}.preview-iframe{width:100%;height:100%;border:none;background:#000}.sidebar{position:fixed;top:0;left:0;height:100vh;width:var(--sidebar-width);background:var(--bg-subtle);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:20;transition:width var(--transition-med) var(--ease-out);overflow:hidden}.sidebar-collapsed{width:var(--sidebar-collapsed-width)}.sidebar-hover-expanded{width:var(--sidebar-width);box-shadow:8px 0 40px #0006}.sidebar-top{display:flex;align-items:center;justify-content:space-between;padding:1.125rem 1rem;border-bottom:1px solid var(--border);min-height:56px;gap:.5rem}.sidebar-couple{font-size:.8125rem;font-weight:600;color:var(--text-heading);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;letter-spacing:-.01em}.sidebar-toggle{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;background:transparent;color:var(--text-muted);flex-shrink:0;transition:all var(--transition-fast)}.sidebar-toggle:hover{background:#ffffff0f;color:var(--text)}.sidebar-nav{flex:1;padding:.5rem;display:flex;flex-direction:column;gap:1px;overflow-y:auto}.sidebar-nav-item{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;border-radius:var(--radius);background:transparent;color:var(--text-muted);font-size:.8125rem;font-weight:500;white-space:nowrap;transition:all var(--transition-fast);width:100%;text-align:left;position:relative}.sidebar-nav-item:hover{background:#ffffff0a;color:var(--text)}.sidebar-nav-active{background:var(--accent-subtle);color:var(--accent)}.sidebar-nav-active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:16px;background:var(--accent);border-radius:0 2px 2px 0}.sidebar-nav-active:hover{background:#a78bfa1f;color:var(--accent)}.sidebar-bottom{padding:.5rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:1px}.sidebar-logout:hover{color:var(--danger);background:var(--danger-bg)}.sidebar-back:hover{color:var(--accent)}.mobile-topbar{display:none;position:sticky;top:0;z-index:15;background:var(--bg-subtle);border-bottom:1px solid var(--border);padding:.625rem 1rem;align-items:center;gap:.75rem;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.mobile-hamburger{display:flex;align-items:center;justify-content:center;background:transparent;color:var(--text);padding:.25rem}.mobile-title{font-size:.8125rem;font-weight:600;color:var(--text-heading)}.mobile-close{display:none;position:absolute;top:1rem;right:1rem;background:transparent;color:var(--text-muted);padding:.25rem;border-radius:var(--radius)}.mobile-close:hover{color:var(--text)}.sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:19;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}@media(max-width:768px){.sidebar{transform:translate(-100%);width:var(--sidebar-width);z-index:25;transition:transform var(--transition-med) var(--ease-out)}.sidebar-collapsed{width:var(--sidebar-width)}.sidebar-mobile-open{transform:translate(0)}.sidebar-toggle{display:none}.mobile-topbar,.mobile-close{display:flex}.sidebar-backdrop,.sidebar-couple{display:block}}.tour-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;pointer-events:none}.tour-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000a6;pointer-events:auto;transition:clip-path .4s var(--ease-out)}.tour-tooltip{position:absolute;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:1.5rem;width:300px;box-shadow:var(--shadow-elevated);pointer-events:auto;animation:tour-tooltip-in .3s var(--ease-out);z-index:51}@keyframes tour-tooltip-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.tour-tooltip-title{font-size:.9375rem;font-weight:700;color:var(--text-heading);margin-bottom:.375rem;letter-spacing:-.01em}.tour-tooltip-desc{font-size:.8125rem;color:var(--text-muted);line-height:1.5;margin-bottom:1.25rem}.tour-tooltip-footer{display:flex;align-items:center;justify-content:space-between}.tour-dots{display:flex;gap:5px}.tour-dot{width:6px;height:6px;border-radius:50%;background:#ffffff1a;transition:all var(--transition-fast)}.tour-dot-active{background:var(--accent);box-shadow:0 0 6px #a78bfa66}.tour-tooltip-actions{display:flex;gap:.5rem}.tour-skip{background:transparent;color:var(--text-muted);font-size:.8125rem;padding:.375rem .625rem;border-radius:var(--radius);transition:color var(--transition-fast);font-weight:500}.tour-skip:hover{color:var(--text)}.tour-next{background:var(--accent);color:#fff;font-size:.8125rem;font-weight:600;padding:.375rem 1rem;border-radius:var(--radius);transition:all var(--transition-fast);box-shadow:0 1px 2px #0003,inset 0 1px #ffffff1a}.tour-next:hover{background:var(--accent-hover);box-shadow:0 2px 8px #a78bfa4d}.loading-screen{display:flex;align-items:center;justify-content:center;min-height:100vh}.spinner{width:32px;height:32px;border:2.5px solid rgba(167,139,250,.15);border-top-color:var(--accent);border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.app-layout{display:flex;min-height:100vh}.main-content{flex:1;margin-left:var(--sidebar-width);min-height:100vh;transition:margin-left var(--transition-med) var(--ease-out)}.main-content-collapsed{margin-left:var(--sidebar-collapsed-width)}@media(max-width:768px){.main-content,.main-content-collapsed{margin-left:0}}:root{--bg: #0c0d12;--bg-subtle: #10111a;--bg-card: #15171f;--bg-card-hover: #1c1e29;--bg-input: #111318;--border: rgba(255, 255, 255, .06);--border-subtle: rgba(255, 255, 255, .04);--border-focus: #a78bfa;--text: #d4d4d8;--text-muted: #6b6b76;--text-heading: #f4f4f5;--accent: #a78bfa;--accent-hover: #c4b5fd;--accent-glow: rgba(167, 139, 250, .15);--accent-subtle: rgba(167, 139, 250, .08);--success: #34d399;--success-bg: rgba(52, 211, 153, .08);--danger: #f87171;--danger-bg: rgba(248, 113, 113, .08);--warning: #fbbf24;--warning-bg: rgba(251, 191, 36, .08);--info: #60a5fa;--info-bg: rgba(96, 165, 250, .08);--radius: 8px;--radius-lg: 12px;--radius-xl: 16px;--sidebar-width: 240px;--sidebar-collapsed-width: 64px;--shadow-card: 0 1px 2px rgba(0, 0, 0, .3), 0 0 0 1px rgba(255, 255, 255, .03);--shadow-card-hover: 0 8px 24px rgba(0, 0, 0, .4), 0 0 0 1px rgba(167, 139, 250, .1);--shadow-elevated: 0 16px 48px rgba(0, 0, 0, .5), 0 0 0 1px rgba(255, 255, 255, .05);--transition-fast: .15s;--transition-med: .25s;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.01em}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;opacity:.015;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");pointer-events:none;z-index:0}#root{position:relative;z-index:1}button{cursor:pointer;border:none;font-family:inherit;font-size:inherit}input,select,textarea{font-family:inherit;font-size:inherit}a{color:var(--accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-hover)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#ffffff24}::selection{background:var(--accent-glow);color:var(--text-heading)}
