@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&family=DM+Sans:wght@300;400;500&display=swap";:root{--cream:#faf8f4;--warm-white:#fffef9;--gold:#c9a84c;--gold-light:#e8d5a0;--gold-pale:#f5edd6;--ink:#1a1612;--ink-mid:#3d3630;--ink-soft:#7a6f65;--border:#e8e0d4;--border-active:#c9a84c;--card-bg:#fff;--shadow:0 2px 20px #1a16120f;--shadow-hover:0 8px 40px #1a16121f;--radius:16px;--transition:.35s cubic-bezier(.4, 0, .2, 1);color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased;font-family:DM Sans,sans-serif;font-size:16px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--cream);min-height:100vh}#root{flex-direction:column;min-height:100vh;display:flex}.app-shell{min-height:100vh;display:flex}.app-main{flex-direction:column;flex:1;min-width:0;display:flex}.app-content{flex:1;overflow-y:auto}.sidebar{background:var(--ink);border-right:1px solid #c9a84c26;flex-direction:column;flex-shrink:0;width:220px;padding:0;display:flex}.sidebar-brand{border-bottom:1px solid #ffffff0f;align-items:center;gap:10px;padding:28px 24px 20px;display:flex}.sidebar-brand-mark{color:var(--gold);font-size:1.1rem}.sidebar-brand-name{color:var(--gold-light);letter-spacing:.06em;font-family:Cormorant Garamond,serif;font-size:1.15rem;font-weight:400}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:16px 0;display:flex}.sidebar-link{color:#ffffff8c;letter-spacing:.02em;border-radius:0;align-items:center;gap:10px;padding:10px 24px;font-size:.875rem;font-weight:400;text-decoration:none;transition:background .2s,color .2s;display:flex}.sidebar-link:hover{color:#ffffffd9;background:#ffffff0a}.sidebar-link.active{color:var(--gold-light);border-right:2px solid var(--gold);background:#c9a84c1a}.sidebar-link-icon{opacity:.8;font-size:.9rem}.sidebar-footer{border-top:1px solid #ffffff0f;padding:16px 24px}.sidebar-footer-text{color:#ffffff40;letter-spacing:.06em;font-size:.7rem}.app-header{background:var(--warm-white);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;height:56px;padding:0 32px;display:flex}.app-header-right{align-items:center;gap:16px;display:flex}.app-header-email{color:var(--ink-soft);font-size:.8rem}.btn-signout{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:100px;padding:5px 14px;font-family:DM Sans,sans-serif;font-size:.78rem;font-weight:500;transition:color .2s,border-color .2s}.btn-signout:hover{color:var(--ink);border-color:var(--ink-soft)}.login-page{background:var(--cream);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:400px;box-shadow:var(--shadow);padding:48px 40px}.login-brand{text-align:center;margin-bottom:36px}.login-brand-mark{color:var(--gold);margin-bottom:10px;font-size:1.8rem;display:block}.login-title{color:var(--ink);letter-spacing:.04em;font-family:Cormorant Garamond,serif;font-size:1.8rem;font-weight:400}.login-subtitle{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-top:4px;font-size:.75rem;font-weight:500}.login-form{flex-direction:column;gap:16px;display:flex}.login-error{color:#c05050;background:#fdf0f0;border:1px solid #e0c0c0;border-radius:8px;padding:10px 14px;font-size:.82rem}.btn-login{background:var(--ink);width:100%;color:var(--gold-light);letter-spacing:.1em;cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;margin-top:8px;padding:14px;font-family:Cormorant Garamond,serif;font-size:1.1rem;font-weight:400;transition:background .2s;display:flex}.btn-login:hover:not(:disabled){background:#2a2420}.btn-login:disabled{opacity:.6;cursor:not-allowed}.btn-spinner{border:2px solid #ffffff4d;border-top-color:var(--gold-light);border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.login-footer-note{text-align:center;color:var(--ink-soft);margin-top:24px;font-size:.72rem}.auth-loading{background:var(--cream);justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-loading-spinner{border:2px solid var(--border);border-top-color:var(--gold);border-radius:50%;width:32px;height:32px;animation:.7s linear infinite spin}.page{max-width:1100px;margin:0 auto;padding:32px 40px 80px}.page-header-row{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:32px;display:flex}.page-title{color:var(--ink);letter-spacing:.02em;font-family:Cormorant Garamond,serif;font-size:1.8rem;font-weight:400}.page-subtitle{color:var(--ink-soft);margin-top:4px;font-size:.82rem}.btn-primary{background:var(--ink);color:var(--gold-light);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;white-space:nowrap;border:none;border-radius:100px;align-items:center;gap:6px;padding:10px 20px;font-family:DM Sans,sans-serif;font-size:.82rem;font-weight:500;text-decoration:none;transition:background .2s;display:inline-flex}.btn-primary:hover{background:#2a2420}.btn-secondary{background:var(--warm-white);color:var(--ink-mid);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--border);cursor:pointer;white-space:nowrap;border-radius:100px;align-items:center;gap:6px;padding:10px 20px;font-family:DM Sans,sans-serif;font-size:.82rem;font-weight:500;transition:border-color .2s,background .2s;display:inline-flex}.btn-secondary:hover{border-color:var(--gold);background:var(--gold-pale)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-publish{background:var(--gold);color:var(--ink);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;white-space:nowrap;border:none;border-radius:100px;align-items:center;gap:8px;padding:10px 22px;font-family:DM Sans,sans-serif;font-size:.82rem;font-weight:500;transition:background .2s,transform .15s;display:inline-flex}.btn-publish:hover:not(:disabled){background:#b8953e;transform:translateY(-1px)}.btn-publish:disabled{opacity:.5;cursor:not-allowed}.btn-large{border-radius:var(--radius);padding:14px 28px;font-size:.9rem}.table-wrap{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.data-table{border-collapse:collapse;width:100%}.data-table th{background:var(--cream);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);text-align:left;border-bottom:1px solid var(--border);padding:12px 20px;font-size:.7rem;font-weight:600}.data-table td{color:var(--ink-mid);border-bottom:1px solid var(--border);vertical-align:middle;padding:14px 20px;font-size:.875rem}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:#c9a84c08}.data-table code{background:var(--cream);color:var(--ink-mid);border-radius:4px;padding:2px 6px;font-size:.8rem}.muted{color:var(--ink-soft)}.table-action{letter-spacing:.06em;text-transform:uppercase;color:var(--gold);font-size:.78rem;font-weight:500;text-decoration:none;transition:color .2s}.table-action:hover{color:#b8953e}.status-badge{letter-spacing:.1em;text-transform:uppercase;border-radius:100px;padding:3px 10px;font-size:.7rem;font-weight:500}.status-1{background:var(--cream);color:var(--ink-soft);border:1px solid var(--border)}.status-2{color:#2d7a2d;background:#edfaed;border:1px solid #b0ddb0}.status-3{color:#c05050;background:#fdf0f0;border:1px solid #e0c0c0}.loading-row,.empty-state{text-align:center;color:var(--ink-soft);padding:60px 24px;font-size:.9rem}.empty-state{flex-direction:column;align-items:center;display:flex}.invitation-form-page{max-width:100%;padding:0 0 80px}.form-sticky-header{z-index:50;background:var(--ink);border-bottom:1px solid #c9a84c33;justify-content:space-between;align-items:center;gap:16px;padding:18px 40px;display:flex;position:sticky;top:0}.form-sticky-header .page-title{color:var(--gold-light);font-size:1.3rem}.form-sticky-header .page-subtitle{color:#fff6;font-size:.75rem}.form-header-actions{flex-shrink:0;align-items:center;gap:12px;display:flex}.form-error{color:#f87171;max-width:300px;font-size:.8rem}.builder-wrap{max-width:820px;margin:0 auto;padding:40px 24px 0}.section-group-label{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);align-items:center;gap:12px;margin:40px 0 16px;font-family:Cormorant Garamond,serif;font-size:.75rem;font-weight:600;display:flex}.section-group-label:after{content:"";background:var(--border);flex:1;height:1px}.form-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);transition:border-color var(--transition), box-shadow var(--transition);margin-bottom:16px;overflow:hidden}.form-card.active{border-color:var(--border-active);box-shadow:var(--shadow-hover), 0 0 0 1px #c9a84c26}.card-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition);align-items:center;gap:16px;padding:20px 24px;display:flex}.card-header:hover{background:#c9a84c08}.section-icon{background:var(--gold-pale);width:36px;height:36px;transition:background var(--transition);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;display:flex}.section-icon.active,.form-card.active .section-icon{background:var(--gold)}.card-title-group{flex:1;min-width:0}.card-title{color:var(--ink);letter-spacing:.01em;font-family:Cormorant Garamond,serif;font-size:1.15rem;font-weight:600}.card-subtitle{color:var(--ink-soft);margin-top:2px;font-size:.75rem;font-weight:300}.card-actions{flex-shrink:0;align-items:center;gap:12px;display:flex}.required-badge{letter-spacing:.1em;text-transform:uppercase;color:var(--gold);background:var(--gold-pale);border:1px solid var(--gold-light);border-radius:100px;padding:3px 10px;font-size:.65rem;font-weight:500}.toggle-wrap{flex-shrink:0;position:relative}.toggle-wrap input[type=checkbox]{opacity:0;width:0;height:0;position:absolute}.toggle-track{background:var(--border);cursor:pointer;width:44px;height:24px;transition:background var(--transition);border-radius:100px;display:block;position:relative}.toggle-track:after{content:"";width:18px;height:18px;transition:transform var(--transition);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #0000002e}.toggle-wrap input:checked+.toggle-track{background:var(--gold)}.toggle-wrap input:checked+.toggle-track:after{transform:translate(20px)}.card-body{grid-template-rows:0fr;transition:grid-template-rows .4s cubic-bezier(.4,0,.2,1);display:grid}.card-body.open{grid-template-rows:1fr}.card-body-inner{overflow:hidden}.card-body-content{border-top:1px solid var(--border);opacity:0;padding:20px 24px 24px;transition:opacity .3s 50ms,transform .3s 50ms;transform:translateY(-6px)}.card-body.open .card-body-content{opacity:1;transform:translateY(0)}.field-group{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;display:grid}.field-group.single{grid-template-columns:1fr}@media (width<=600px){.field-group{grid-template-columns:1fr}}.field{flex-direction:column;gap:6px;display:flex}label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-size:.72rem;font-weight:500}label .req{color:var(--gold);margin-left:2px}.req{color:var(--gold)}input[type=text],input[type=email],input[type=password],input[type=date],input[type=time],input[type=number],input[type=url],select,textarea{color:var(--ink);background:var(--warm-white);border:1px solid var(--border);resize:vertical;border-radius:10px;outline:none;width:100%;padding:10px 14px;font-family:DM Sans,sans-serif;font-size:.88rem;transition:border-color .2s,box-shadow .2s}input:focus,textarea:focus,select:focus{border-color:var(--gold);box-shadow:0 0 0 3px #c9a84c1f}textarea{min-height:90px}.file-upload-wrap{position:relative}.file-upload-label{background:var(--warm-white);border:1px dashed var(--border);cursor:pointer;color:var(--ink-soft);border-radius:10px;align-items:center;gap:10px;padding:10px 14px;font-family:DM Sans,sans-serif;font-size:.83rem;transition:border-color .2s,background .2s;display:flex}.file-upload-label:hover{border-color:var(--gold);background:var(--gold-pale);color:var(--ink)}.file-upload-label .icon{font-size:1rem}.file-uploaded{color:#2d7a2d;background:#edfaed;border:1px solid #b0ddb0;border-radius:10px;align-items:center;gap:10px;padding:10px 14px;font-size:.83rem;display:flex}.file-uploaded-icon{font-size:1rem}.file-uploaded-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.file-uploaded-replace{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:100px;flex-shrink:0;padding:3px 10px;font-family:DM Sans,sans-serif;font-size:.7rem;font-weight:500;transition:color .2s,border-color .2s}.file-uploaded-replace:hover{color:var(--ink);border-color:var(--ink-soft)}.file-error{color:#c05050;margin-top:4px;font-size:.75rem}.file-upload-hint{color:var(--ink-muted);margin:0;font-size:.75rem}.i18n-field-wrap{flex-direction:column;gap:8px;display:flex}.i18n-row{align-items:center;gap:10px;display:flex}.i18n-flag{flex-shrink:0;font-size:1.15rem;line-height:1}.i18n-row input[type=text],.i18n-row textarea{flex:1}.lang-selector{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:6px;display:grid}.lang-option{position:relative}.lang-option input[type=checkbox]{opacity:0;width:0;height:0;position:absolute}.lang-option label{background:var(--warm-white);border:1px solid var(--border);cursor:pointer;text-align:center;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);border-radius:10px;flex-direction:column;align-items:center;gap:5px;padding:14px 10px;font-size:.72rem;font-weight:500;transition:border-color .2s,background .2s,color .2s;display:flex}.lang-option label .lang-flag{font-size:1.5rem}.lang-option input:checked+label{border-color:var(--gold);background:var(--gold-pale);color:var(--ink-mid);box-shadow:0 0 0 2px #c9a84c2e}.lang-option input:disabled+label{opacity:.45;cursor:not-allowed}.lang-limit-hint{color:var(--ink-soft);margin-top:8px;font-size:.72rem}.section-meta-fields{margin-bottom:4px}.section-meta-divider{background:var(--border);opacity:.7;height:1px;margin:16px 0 18px}.calligraphy-fields{background:var(--cream);border:1px solid var(--gold-pale);border-radius:10px;margin-top:14px;padding:16px}.calligraphy-note{color:var(--ink-soft);margin-bottom:12px;font-size:.75rem;line-height:1.5}.baby-mode-selector{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;display:grid}.baby-mode-option{position:relative}.baby-mode-option input[type=radio]{opacity:0;width:0;height:0;position:absolute}.baby-mode-option label{background:var(--warm-white);border:1px solid var(--border);cursor:pointer;text-align:center;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:14px 10px;font-size:.72rem;font-weight:500;transition:border-color .2s,background .2s,color .2s;display:flex}.baby-mode-option label .mode-icon{font-size:1.4rem}.baby-mode-option input:checked+label{border-color:var(--gold);background:var(--gold-pale);color:var(--ink-mid);box-shadow:0 0 0 2px #c9a84c2e}.sub-section-label{letter-spacing:.14em;text-transform:uppercase;color:var(--gold);border-bottom:1px solid var(--gold-pale);margin:18px 0 10px;padding-bottom:6px;font-size:.68rem;font-weight:600}.inline-toggle{background:var(--cream);border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;margin-bottom:14px;padding:12px 16px;display:flex}.inline-toggle-label{color:var(--ink-mid);font-size:.85rem}.phrase-row{background:var(--warm-white);border:1px solid var(--border);border-radius:10px;align-items:center;gap:14px;margin-bottom:10px;padding:10px 14px;transition:border-color .2s,background .2s;display:flex}.phrase-toggle{width:16px;height:16px;accent-color:var(--gold);cursor:pointer;flex-shrink:0}.phrase-text-input{color:var(--ink);width:auto;min-height:unset;resize:none;outline:none;flex:1;font-family:DM Sans,sans-serif;font-size:.85rem;box-shadow:none!important;background:0 0!important;border:none!important;padding:0!important}.phrase-text-input:disabled{color:var(--ink-soft);cursor:default}.repeater-list{flex-direction:column;gap:14px;display:flex}.repeater-item{border:1px solid var(--border);background:var(--cream);border-radius:12px;padding:18px;animation:.3s itemIn;position:relative}@keyframes itemIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.repeater-item-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.repeater-item-num{letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-family:Cormorant Garamond,serif;font-size:.8rem;font-weight:600}.btn-remove{color:#b08080;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #e0d4d4;border-radius:100px;padding:5px 12px;font-family:DM Sans,sans-serif;font-size:.72rem;font-weight:500;transition:background .2s,color .2s,border-color .2s}.btn-remove:hover{color:#c05050;background:#fdf0f0;border-color:#c05050}.btn-add{background:var(--gold-pale);border:1px solid var(--gold-light);color:var(--ink-mid);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border-radius:100px;align-items:center;gap:8px;margin-top:14px;padding:9px 18px;font-family:DM Sans,sans-serif;font-size:.78rem;font-weight:500;transition:background .2s,border-color .2s;display:inline-flex}.btn-add:hover{background:var(--gold-light);border-color:var(--gold)}.btn-add .plus{font-size:1rem;font-weight:300}.wedding-day-label{cursor:pointer;align-items:center;gap:6px;margin-left:auto;display:flex}.wedding-day-radio{opacity:0;width:0;height:0;position:absolute}.wedding-day-badge{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);background:var(--warm-white);border:1px solid var(--border);white-space:nowrap;border-radius:100px;padding:4px 12px;font-size:.7rem;font-weight:500;transition:background .2s,color .2s,border-color .2s}.wedding-day-label:has(.wedding-day-radio:checked) .wedding-day-badge{background:var(--gold-pale);border-color:var(--gold);color:var(--ink-mid);box-shadow:0 0 0 2px #c9a84c2e}.slug-row{gap:8px;display:flex}.slug-row input{flex:1}.btn-generate-slug{letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--border);background:var(--warm-white);color:var(--ink-soft);cursor:pointer;white-space:nowrap;border-radius:10px;padding:0 14px;font-family:DM Sans,sans-serif;font-size:.72rem;font-weight:500;transition:border-color .2s,color .2s}.btn-generate-slug:hover{border-color:var(--gold);color:var(--ink)}.bottom-section{max-width:820px;margin:48px auto 0;padding:0 24px}.bottom-actions{gap:14px;display:flex}.btn-create{background:var(--ink);color:var(--gold-light);letter-spacing:.12em;border-radius:var(--radius);cursor:pointer;border:none;flex:1;justify-content:center;align-items:center;gap:12px;padding:18px;font-family:Cormorant Garamond,serif;font-size:1.2rem;font-weight:400;transition:background .25s,transform .15s;display:flex}.btn-create:hover:not(:disabled){background:#2a2420;transform:translateY(-1px)}.btn-create:disabled{opacity:.5;cursor:not-allowed}.sparkle{font-size:1rem}.toast{background:var(--ink);color:var(--gold-light);z-index:9999;pointer-events:none;border:1px solid #c9a84c4d;border-radius:100px;padding:14px 28px;font-family:DM Sans,sans-serif;font-size:.85rem;animation:.3s toastIn,.3s 2.7s forwards toastOut;position:fixed;bottom:32px;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #00000040}@keyframes toastIn{0%{opacity:0;transform:translate(-50%)translateY(16px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes toastOut{0%{opacity:1}to{opacity:0;transform:translate(-50%)translateY(10px)}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}@media (width<=768px){.sidebar{display:none}.page{padding:24px 20px 60px}.form-sticky-header{padding:14px 20px}.builder-wrap{padding:24px 16px 0}.bottom-section{padding:0 16px}.card-header{padding:16px 18px}.card-body-content{padding:16px 18px 18px}.bottom-actions{flex-direction:column}}
