@font-face{font-family:Cormorant;src:url('./fonts/cormorant.woff2') format('woff2');font-display:swap}@font-face{font-family:Noto;src:url('./fonts/devanagari.woff2') format('woff2');font-display:swap}
:root{--forest:#173e36;--ink:#182d28;--ivory:#f7f3e9;--muted:#51655e;--line:#d1d9d1;--gold:#805c2a;--error:#923247;font-family:Noto,Georgia,serif;color:var(--ink);background:var(--ivory);font-size:14px;line-height:1.7}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:var(--forest);text-underline-offset:4px}button,input,select,textarea{min-height:46px;border:1px solid #94a79d;border-radius:3px;padding:10px 14px;background:white;color:var(--ink)}button{font-size:14px}button:disabled{opacity:.65;cursor:wait}.primary{background:var(--forest);border-color:var(--forest);color:white}.quiet{background:transparent;border-color:var(--line)}button:hover:not(:disabled){border-color:var(--forest)}button.primary:hover:not(:disabled){background:#245348}button:active:not(:disabled){transform:translateY(1px)}:focus-visible{outline:3px solid #94733d;outline-offset:3px}[hidden]{display:none!important}input,textarea{width:100%;font-size:16px}textarea{resize:vertical;min-height:100px}select{max-width:100%;font-size:16px}label{display:block;margin:15px 0 6px}h1,h2,h3{font-family:Cormorant,Georgia,serif;font-weight:500;line-height:1.1;text-wrap:balance;margin:0}h1{font-size:48px}h2{font-size:38px}h3{font-size:28px}p{max-width:72ch}button,a{touch-action:manipulation}.skip{position:absolute;top:-100px;left:10px;padding:12px;background:white;z-index:20}.skip:focus{top:10px}
.studio-header{padding:15px max(24px,5vw);display:flex;align-items:center;gap:22px;border-bottom:1px solid var(--line);min-height:85px}.studio-header>a{font:500 29px/1.2 Cormorant,Georgia,serif;text-decoration:none;min-height:44px;display:flex;align-items:center;gap:7px}.studio-header>a i{font-size:22px;color:var(--gold)}.studio-header>span{color:var(--muted);font-size:12px;margin-left:auto}.studio-header #logout{margin-left:auto}.studio-note{font-size:12px;color:var(--gold);margin:0 0 14px}.login-page{display:grid;grid-template-columns:1.1fr 1fr;max-width:1200px;min-height:calc(100svh - 170px);margin:auto;padding:65px 45px;gap:90px;align-items:center}.login-welcome h1{font-size:clamp(46px,5vw,68px)}.login-welcome>p:not(.studio-note){color:var(--muted);margin-top:25px}.welcome-mark{display:block;font:72px/1 Cormorant,serif;color:var(--gold);margin-top:40px}.login-form{padding:35px;background:#fffdf8;border:1px solid var(--line);border-top:3px solid var(--forest)}.login-form h2{font-size:34px}.login-form>p{font-size:13px;color:var(--muted)}.login-form .primary{width:100%;margin-top:25px}.small{font-size:12px;color:var(--muted);line-height:1.7}#login-status,.field-error{color:var(--error)!important}#login-status:empty{display:none}.wedding-bar{padding:34px 5vw;display:flex;align-items:center;justify-content:space-between;gap:30px;border-bottom:1px solid var(--line)}.wedding-bar .studio-note{margin-bottom:8px}.wedding-picker{display:grid;grid-template-columns:auto;max-width:320px;gap:7px}.wedding-picker label{font-size:12px;margin:0}.wedding-picker a{font-size:12px;min-height:44px;display:flex;align-items:center}.dashboard-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:45px;padding:32px 5vw 65px;max-width:1500px;margin:auto}.workspace-nav{display:flex;flex-direction:column;gap:5px;align-self:start}.workspace-nav button{text-align:left;border-color:transparent;background:transparent;min-height:48px;padding:12px}.workspace-nav button[aria-current=page]{color:var(--forest);background:#e6ece5;border-left:3px solid var(--forest);font-weight:bold}.workspace-content{min-width:0}.section-description{color:var(--muted);font-size:13px;margin:15px 0 25px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:30px 0}.metric{border-top:1px solid #aabcae;padding:20px 0}.metric strong{display:block;font:500 55px/1 Cormorant,Georgia,serif;font-variant-numeric:tabular-nums}.metric span{display:block;font-size:12px;color:var(--muted);margin-top:12px}.paper-form{background:#fffdf8;border:1px solid var(--line);padding:23px;margin:25px 0}.paper-form>label:first-child{margin-top:0}.paper-form>button{margin-top:10px}.paper-form h3{margin-bottom:15px}.paper-form [role=status]:empty{display:none}.filter-form{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:22px 0}.filter-form>input,.filter-form>div{flex:1;min-width:150px}.filter-form>label{flex-basis:100%;margin-bottom:-7px}.filter-form label{font-size:12px}.record{border-top:1px solid var(--line);padding:22px 0;overflow-wrap:anywhere}.record h3{font-size:29px;line-height:1.2}.record p{font-size:13px;margin:9px 0}.record .recipient-url{display:block;font-size:11px;color:var(--muted);margin-top:9px;line-height:1.7;max-width:75ch}.record-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:13px}.record-actions button,.record-actions a{font-size:12px;min-height:44px;padding:10px 12px}.record-actions a{display:inline-flex;align-items:center}.response-status{color:var(--muted);font-size:12px}.badge{display:inline-block;padding:2px 9px;background:#e5ece2;border:1px solid #b9c8b6;font-size:11px;margin:10px 0}.badge.revoked{background:#f2e8e2;border-color:#cfbcb4}.empty-state,.load-state{padding:32px 0;color:var(--muted);border-top:1px solid var(--line)}.empty-state h3{color:var(--ink);font-size:28px}.empty-state p{font-size:13px}.load-more{margin-top:20px}.blessing-text{font-size:16px!important;white-space:pre-wrap}.notice{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:30;max-width:min(90vw,650px);padding:14px 22px;color:white;background:var(--forest);box-shadow:0 5px 30px #183d3526;font-size:13px}.notice.error{background:var(--error)}dialog{width:min(92vw,500px);max-height:88svh;overflow:auto;padding:32px 26px;background:var(--ivory);color:var(--ink);border:1px solid var(--line);border-radius:4px}dialog::backdrop{background:#18362e99}dialog h2{font-size:34px;padding-right:25px;margin:5px 0 20px}.dialog-close{position:absolute;right:8px;top:7px;width:44px;height:44px;padding:5px;border:0;background:transparent;font-size:26px}.share-options{display:grid;gap:10px;margin-top:20px}.share-options a{min-height:48px;padding:12px;border:1px solid var(--line);text-align:center}.credential{padding:15px;background:white;overflow-wrap:anywhere;white-space:pre-wrap;font-size:14px;border:1px solid var(--line)}.studio-footer{text-align:center;padding:25px;font-size:11px;color:var(--muted);border-top:1px solid var(--line)}.no-js{padding:25px}#wedding-title:focus{outline:none}#wedding-title:focus-visible{outline:3px solid #94733d}
@media(max-width:900px){.login-page{gap:35px;padding:45px 25px}.dashboard-layout{grid-template-columns:170px minmax(0,1fr);gap:25px}.metrics{grid-template-columns:repeat(2,1fr)}.wedding-bar h1{font-size:40px}}
@media(max-width:650px){.studio-header{padding:12px 18px;min-height:72px;gap:12px}.studio-header>a{font-size:25px}.studio-header>span{display:none}.login-page{display:flex;flex-direction:column;align-items:stretch;gap:25px;padding:35px 20px}.login-welcome h1{font-size:43px}.login-welcome>p:not(.studio-note){font-size:12px;margin:18px 0 0}.welcome-mark{display:none}.login-form{padding:24px 20px}.login-form h2{font-size:31px}.wedding-bar{padding:25px 20px;flex-direction:column;align-items:stretch;gap:22px}.wedding-bar h1{font-size:40px}.wedding-picker{max-width:none}.wedding-picker a{min-height:44px}.dashboard-layout{display:flex;flex-direction:column;gap:25px;padding:0 20px 40px}.workspace-nav{display:flex;flex-direction:row;flex-wrap:wrap;border-bottom:1px solid var(--line);width:100%;padding:12px 0}.workspace-nav button{font-size:12px;padding:10px;min-height:44px}.workspace-nav button[aria-current=page]{border-left:0;border-bottom:2px solid var(--forest)}h2{font-size:33px}.section-description{font-size:12px}.metrics{gap:18px}.metric strong{font-size:46px}.paper-form{padding:20px 16px}.filter-form{gap:10px}.filter-form>input{flex-basis:100%}.record h3{font-size:27px}.record-actions{gap:7px}.record-actions button{font-size:12px}.studio-footer{font-size:10px}dialog{padding:27px 21px}.notice{bottom:12px;padding:12px 16px}.record .recipient-url{font-size:11px}}
@media(prefers-reduced-motion:reduce){button:active:not(:disabled){transform:none}}
.wedding-bar>div,.wedding-picker{min-width:0}.wedding-picker{width:100%;grid-template-columns:minmax(0,1fr)}.wedding-picker select{width:100%;min-width:0}.workspace-content input,.workspace-content select{max-width:100%}
.music-preference label{display:flex;align-items:center;gap:14px;min-height:48px;cursor:pointer}.music-preference input{width:24px;min-width:24px;height:24px;min-height:24px;accent-color:var(--forest)}.record{content-visibility:auto;contain-intrinsic-size:auto 240px}

/* Guest preparation and manual sending workspace. */
.workspace-toolbar,.record-actions,.queue-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.workspace-toolbar{margin:22px 0}.workspace-filters{display:grid;grid-template-columns:minmax(140px,1.6fr) repeat(3,minmax(120px,1fr)) auto;gap:12px;align-items:end;margin:25px 0}.workspace-filters label{font-size:12px}.workspace-filters input,.workspace-filters select{min-height:46px}.workspace-filters button{min-height:46px}.queue-card{padding:28px;background:#fffdf8;border:1px solid var(--line);border-top:3px solid var(--forest);margin-top:20px}.queue-card h3{font-size:37px}.guest-contact{overflow-wrap:anywhere;color:var(--muted);font-size:13px;margin:10px 0}.message-preview{white-space:pre-wrap;overflow-wrap:anywhere;font:15px/1.8 Noto,Georgia,serif;padding:22px;background:#f0eee4;border:1px solid #d8d8c9;margin:18px 0;max-width:100%;max-height:none}.queue-progress{font-size:13px;margin:25px 0 10px;color:var(--forest)}.queue-controls{align-items:end;margin-top:24px;border-top:1px solid var(--line);padding-top:15px}.queue-controls>div{min-width:150px}.queue-controls label{font-size:12px}.record-actions a{border:1px solid var(--line);text-decoration:none;color:var(--forest);background:#fffdf8;padding:11px 15px}.workspace-toolbar button{font-size:13px}.column-mapping{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.column-mapping select{width:100%;text-overflow:ellipsis}.checkbox-row{display:flex;gap:12px;align-items:center;margin:18px 0}.checkbox-row input{width:22px;height:22px;min-height:22px;flex-shrink:0}.checkbox-row label{margin:0;min-height:44px;display:flex;align-items:center}.import-review{max-height:45svh;overflow:auto;margin:20px 0;border:1px solid var(--line)}.import-review table{border-collapse:collapse;width:100%;font-size:12px;min-width:540px}.import-review th,.import-review td{border-bottom:1px solid var(--line);padding:12px;text-align:left;vertical-align:top}.import-review th{position:sticky;top:0;background:#e8eddf;color:var(--forest);z-index:1}.import-review td select{min-width:135px;font-size:12px}.import-review strong{font-size:13px;overflow-wrap:anywhere}.import-review .small{margin-top:6px}.import-review tr{content-visibility:auto;contain-intrinsic-size:auto 90px}#action-dialog:has(.column-mapping),#action-dialog:has(.import-review){width:min(94vw,980px)}#action-body>button{margin:8px 8px 8px 0}#action-body>textarea{min-height:130px}#action-body progress{width:100%;height:15px;margin:18px 0}#action-body input[type=file]{padding:12px}#message-workspace>h3{font-size:27px;margin-top:25px}#message-workspace>div{max-width:480px}.credential{user-select:text}#account-list .record p{overflow-wrap:anywhere}
@media(max-width:1100px){.workspace-filters{grid-template-columns:1fr 1fr}.workspace-filters>div:first-child{grid-column:1/-1}.workspace-filters>button{align-self:end}}
@media(max-width:650px){.workspace-toolbar{gap:8px}.workspace-toolbar button{flex:1 1 42%;font-size:12px;padding:10px}.workspace-filters{gap:8px}.workspace-filters label{font-size:11px}.queue-card{padding:22px 16px}.queue-card h3{font-size:31px}.message-preview{font-size:13px;padding:16px}.queue-controls{gap:9px}.queue-controls>button{flex:1 1 40%;font-size:12px}.queue-controls>div{flex:1 1 100%}.column-mapping{grid-template-columns:minmax(0,1fr)}.import-review{max-height:40svh}#action-dialog:has(.column-mapping),#action-dialog:has(.import-review){padding:24px 16px}.workspace-nav button{flex:0 0 auto}.record .guest-contact{font-size:12px}}


.queue-filters{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:18px 0}.queue-filters summary{min-height:48px;padding:12px 4px;cursor:pointer;font-size:13px}.queue-filters>button{margin:0 0 18px}.queue-filters .workspace-filters{margin-top:0}
@media(max-width:650px){.is-sending .wedding-bar{padding:17px 20px;gap:0}.is-sending .wedding-bar h1{font-size:30px}.is-sending .wedding-bar .studio-note{display:none}.is-sending .wedding-picker{display:none}.is-sending .workspace-nav{flex-wrap:nowrap;overflow-x:auto;gap:2px;padding:6px 0}.is-sending .dashboard-layout{gap:18px}.is-sending .workspace-nav button{padding:9px}.is-sending .section-description{margin:12px 0 18px}.is-sending .queue-card{margin-top:15px}.is-sending #send-title{font-size:31px}}

.password-choice{margin:20px 0}.password-choice .record-actions{margin-top:10px}.password-choice .record-actions button{font-size:12px}.password-choice input{width:100%}#action-body form>.primary{margin-top:20px}

.blessings-scroll{max-height:70svh;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;overflow-anchor:none}.blessings-scroll::-webkit-scrollbar{display:none}.blessings-scroll:focus-visible{outline:3px solid var(--gold);outline-offset:5px}.blessings-scroll .record{content-visibility:auto;contain-intrinsic-size:auto 230px}.blessing-preference label{display:flex;align-items:center;gap:12px;min-height:44px}.blessing-preference input{width:22px;height:22px;min-height:22px;margin:0}.blessing-preference p{line-height:1.8}#blessing-updates{font-size:13px;line-height:1.8;margin:16px 0}#blessing-updates:empty{display:none}.studio-report h4{font-size:20px}
/* Guest photo switches: a normal-sized tick box beside its label, like the music and blessing switches. */
.photo-switch{display:flex;align-items:center;gap:12px;min-height:44px;margin:6px 0;cursor:pointer}.photo-switch input{width:22px;min-width:22px;height:22px;min-height:22px;margin:0;padding:0;accent-color:var(--forest)}
.dashboard-photo-preview{display:block;max-width:100%;max-height:240px;object-fit:contain}
/* Gifts tab */
.gift-admin label{display:block;font-size:12px;color:var(--muted);margin:14px 0 6px}
.gift-admin label input{display:block;margin-top:6px;color:var(--ink)}
.gift-admin-list{list-style:none;margin:16px 0 0;padding:0;border-top:1px solid var(--line)}
.gift-admin-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 18px;padding:14px 0;border-bottom:1px solid var(--line)}
.gift-admin-main{min-width:0;flex:1 1 260px}
.gift-admin-main h4{margin:0;font-size:16px;line-height:1.35;overflow-wrap:anywhere}
.gift-admin-main p{margin:2px 0 0;overflow-wrap:anywhere}
.gift-admin-variant{color:var(--muted)}
.gift-admin-giver{font-weight:600}
.gift-admin-meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--muted)}
.gift-admin-status{font-weight:600;color:var(--forest)}
.gift-admin-status[data-status=withdrawn]{color:var(--muted);font-weight:400;font-style:italic}
.gift-admin-row:has([data-status=withdrawn]) .gift-admin-main>:not(.gift-admin-meta){color:var(--muted)}
.gift-admin-actions{display:flex;gap:8px}
.gift-admin-actions button{min-height:44px;padding:8px 14px}
.gift-admin-editor{flex-basis:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0 14px;align-items:end;padding:6px 0 4px}
.gift-admin-editor .primary,.gift-admin-add .primary{width:auto;margin-top:14px}
.gift-admin-editor button{margin-top:14px}
.gift-admin-add{display:grid;grid-template-columns:1fr 1fr auto auto;gap:0 12px;align-items:end;margin-bottom:14px}
.gift-admin-add button{min-height:48px;margin-top:0}
.gift-admin-add label,.gift-admin-editor label{margin-bottom:0}
.gift-admin-add .primary,.gift-admin-editor .primary,.gift-admin-editor button{margin-top:0}
.gift-admin-empty{padding:18px 0;color:var(--muted)}
.gift-admin [role=status]:empty{display:none}
.gift-admin [role=status]{margin:12px 0 0;color:var(--forest)}
.gift-admin .load-more{margin-top:14px}
@media(max-width:700px){.gift-admin-add{grid-template-columns:1fr}.gift-admin-add .primary,.gift-admin-add button{width:100%;margin-top:14px}.gift-admin-editor button{margin-top:14px}.gift-admin-actions{width:100%}.gift-admin-actions button{flex:1}}
