:root{--ink: #161412;--muted: #6f675f;--line: #e6dfd6;--paper: #fbf8f4;--panel: #ffffff;--accent: #7a4a36;--sans: "Avenir Next", "Segoe UI", sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:var(--sans);background:var(--paper);color:var(--ink);line-height:1.45}a{color:var(--accent)}.shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{padding:1.75rem 1.25rem;border-right:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column;min-height:100vh}.brand{letter-spacing:.22em;text-transform:uppercase;font-size:.68rem;margin:0 0 2rem}nav{display:flex;flex-direction:column;gap:.25rem}.sidebar-foot{margin-top:auto;padding-top:1.5rem;border-top:1px solid var(--line)}.user-label{margin:0 0 .35rem;font-size:.85rem;color:var(--muted)}.text-button{border:0;background:transparent;padding:0;color:var(--accent);font:inherit;cursor:pointer}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.auth-card{width:min(100%,24rem);background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:2rem 1.75rem}.auth-card h1{margin-bottom:.35rem}.field{display:flex;flex-direction:column;gap:.35rem;margin-top:1rem;font-size:.85rem}.field input{border:1px solid var(--line);border-radius:6px;padding:.55rem .65rem;font:inherit}.auth-card button[type=submit]{margin-top:1.25rem;width:100%;cursor:pointer}.form-error{margin:.75rem 0 0;color:#9a3b2e;font-size:.9rem}.button-link{display:inline-block;text-decoration:none;border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:.5rem .85rem;border-radius:6px}.wedding-list{list-style:none;margin:2rem 0 0;padding:0;display:flex;flex-direction:column;gap:1rem}.wedding-card{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:1.25rem 1.35rem}.wedding-card h2{margin:0 0 .25rem;font-size:1.15rem}.meta-line{margin:.5rem 0 0;font-size:.85rem;color:var(--muted)}.card-actions{display:flex;gap:.75rem;font-size:.9rem}.wedding-form{margin-top:1.5rem;max-width:40rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.span-2{grid-column:span 2}.field textarea{border:1px solid var(--line);border-radius:6px;padding:.55rem .65rem;font:inherit;resize:vertical}.settings-fieldset{margin:1.5rem 0 0;border:1px solid var(--line);border-radius:10px;padding:1rem 1.1rem}.settings-fieldset legend{padding:0 .35rem;color:var(--muted);font-size:.85rem}.branding-fieldset{margin-top:1.5rem;border:1px solid var(--line);border-radius:10px;padding:1rem 1.1rem 1.25rem}.branding-fieldset legend{padding:0 .35rem;color:var(--muted);font-size:.85rem}.branding-lede,.branding-note{margin:0 0 1rem;font-size:.88rem;color:var(--muted);line-height:1.45}.branding-note{margin-bottom:0;margin-top:.75rem}.branding-grid{display:grid;grid-template-columns:1fr;gap:1rem}@media(min-width:720px){.branding-grid{grid-template-columns:1.4fr 1fr}}.branding-card{display:flex;flex-direction:column;gap:.65rem}.branding-label{margin:0;font-size:.82rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.branding-preview{overflow:hidden;border-radius:10px;border:1px solid var(--line);background:#ece5dc;display:grid;place-items:center}.branding-preview img{display:block;width:100%;height:100%;object-fit:cover}.branding-preview--hero{aspect-ratio:16 / 9;min-height:9rem}.branding-preview--portrait{width:min(100%,9rem);aspect-ratio:1;border-radius:50%;margin:0 auto}.branding-preview--portrait img{border-radius:50%}.branding-placeholder{font-size:.82rem;color:var(--muted);padding:1rem;text-align:center}.branding-actions{margin-top:0;flex-wrap:wrap}.file-button{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:.45rem .95rem;font-size:.88rem;cursor:pointer;background:#fff}.file-button:hover{border-color:#c9bfb3}.toggle{display:flex;align-items:center;gap:.55rem;margin-top:.55rem;font-size:.92rem}.qr-panel{margin-top:1.25rem;padding:1rem 1.1rem;background:var(--panel);border:1px solid var(--line);border-radius:10px}.qr-preview{display:block;width:min(100%,220px);height:auto;margin-top:.75rem;border:1px solid var(--line);border-radius:8px;background:#fff}.url-panel{margin-top:1.25rem;padding:1rem 1.1rem;background:var(--panel);border:1px solid var(--line);border-radius:10px}.url-panel code{display:block;margin-top:.35rem;word-break:break-all}.inline-actions{display:flex;gap:.75rem;align-items:center;margin-top:.75rem}.danger-zone{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--line)}.danger-button{border-color:#d8b4ae;color:#9a3b2e;cursor:pointer}@media(max-width:800px){.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.wedding-card{flex-direction:column}}.nav-link{text-decoration:none;color:var(--muted);padding:.45rem .55rem;border-radius:6px}.nav-link.active{color:var(--ink);background:var(--paper)}.content{padding:2.5rem 2.75rem}h1{font-size:1.7rem;font-weight:560;margin:0 0 .5rem}.lede,.eyebrow{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;margin:0 0 .4rem}.page-head{display:flex;justify-content:space-between;align-items:center;gap:1rem}button{border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:.5rem .85rem;border-radius:6px}button:disabled{opacity:.55}.stats,.meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-top:2rem}.stats div,.meta div{background:var(--panel);border:1px solid var(--line);padding:1rem 1.1rem;border-radius:10px}dt{color:var(--muted);font-size:.8rem}dd{margin:.35rem 0 0;font-size:1.25rem}.meta dd{font-size:.95rem}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-top:1.5rem}.photo-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}.photo-thumb,.photo-placeholder{display:block;width:100%;aspect-ratio:1;object-fit:cover;background:#ece5dc}.photo-meta{padding:.75rem;font-size:.85rem}.photo-status{margin:0 0 .35rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.68rem}.photo-actions{flex-wrap:wrap}.photo-muted{color:var(--muted);font-size:.82rem}.load-more-button{margin-top:1.5rem}@media(max-width:800px){.shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line)}nav{flex-direction:row;flex-wrap:wrap}.content{padding:1.5rem}}
