:root{
  --cream:#f6efd2;
  --cream-2:#efe5bb;
  --cream-3:#fff8df;
  --pink:#f28f94;
  --pink-soft:#f7b8b6;
  --orange:#e58a4a;
  --mint:#9fcbb5;
  --ink:#6d5c56;
  --muted:#9c8e84;
  --line:#e2d29d;
  --white:#fffaf0;
  --shadow:0 10px 28px rgba(119,92,66,.10);
}
*{box-sizing:border-box}
html{background:var(--cream)}
body{margin:0;background:var(--cream);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh}
button,input,select{font:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
.page-shell{width:min(1180px,100%);margin:0 auto;padding:28px 24px 96px}.page-shell.narrow{width:min(980px,100%)}
.brand-header{text-align:center;padding:28px 0 18px}.brand-header.compact{padding-top:14px}.brand-mark{font-size:38px;line-height:1;color:var(--pink);font-weight:800}.brand-header h1,.event-header h1{margin:4px 0;color:var(--pink);font-size:clamp(30px,5vw,48px);letter-spacing:-1.5px}.brand-header p{margin:4px 0;color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:12px;font-weight:800;color:var(--pink);margin:0}.muted{color:var(--muted)!important}.error-text{color:#b94747;margin:8px 0}.error-banner{background:#fff1ee;border:1px solid #efaaa7;color:#9e4e4e;padding:14px 16px;border-radius:16px;margin:16px 0}
.step-nav{display:grid;grid-template-columns:repeat(3,1fr);align-items:start;margin:8px 0 28px}.step-wrap{position:relative;display:flex;justify-content:center}.step-line{position:absolute;height:9px;background:var(--line);top:21px;right:50%;width:100%;z-index:0}.step{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:8px;min-width:110px}.step-dot{width:48px;height:48px;border-radius:50%;background:var(--line);display:grid;place-items:center;font-weight:800;font-size:19px}.step-label{color:#eeb6af;font-weight:700}.step.active .step-dot{background:var(--pink);color:#3d3030}.step.active .step-label{color:var(--pink);font-weight:900}
.panel,.summary-frame{background:rgba(255,250,230,.38);border:1.5px solid rgba(182,157,115,.5);border-radius:22px;padding:24px;box-shadow:var(--shadow)}.create-panel h2{color:var(--pink);text-align:center;font-size:28px;margin:0 0 22px}.field{display:flex;flex-direction:column;gap:7px;margin:13px 0}.field>span{font-weight:800;color:var(--pink);font-size:14px}.field small{color:var(--muted)}input,select{width:100%;background:rgba(255,250,236,.72);border:1.5px solid #cfc3a4;border-radius:14px;padding:13px 14px;color:var(--ink);outline:none}input:focus,select:focus{border-color:var(--pink);box-shadow:0 0 0 3px rgba(242,143,148,.15)}
.btn{border:0;border-radius:14px;padding:12px 18px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:.15s;box-shadow:none}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn.primary{background:var(--pink);color:var(--white)}.btn.soft{background:rgba(255,250,235,.75);color:var(--pink);border:1.5px solid var(--pink)}.btn.wide{width:min(360px,100%);margin:20px auto 0;display:flex}.btn.small{padding:9px 13px}.text-btn{border:0;background:transparent;color:var(--pink);font-weight:850}.icon-btn{width:36px;height:36px;border:0;border-radius:10px;background:transparent;color:var(--orange);font-size:21px}.icon-btn.danger{color:#bd7762}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:26px 0 14px}.section-heading h2,.section-heading h3{margin:0;color:var(--pink)}.section-heading p{margin:4px 0 0;color:var(--muted);font-size:14px}
.group-builder{display:flex;flex-direction:column;gap:10px}.group-builder-row{display:grid;grid-template-columns:1.4fr 165px 1fr 42px;gap:10px;align-items:center}.people-stepper{display:grid;grid-template-columns:42px 1fr 42px;gap:6px}.people-stepper button{border:0;border-radius:12px;background:var(--mint);color:var(--white);font-size:19px;font-weight:900}.people-stepper button:first-child{background:var(--orange)}.people-stepper input{text-align:center;padding-inline:4px}.people-stepper.large{max-width:220px}.pin-box{margin-top:22px;padding:16px;background:rgba(239,229,187,.7);border-radius:18px;display:grid;grid-template-columns:1fr auto;gap:10px 18px;align-items:center}.pin-box p{margin:3px 0;color:var(--muted);font-size:13px}.switch-line{display:flex;gap:8px;align-items:center;font-weight:800;color:var(--pink)}.switch-line input{width:auto}.pin-input{grid-column:1/-1;max-width:230px}
.event-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:18px 4px}.event-header h1{font-size:38px}.event-header .muted{margin:6px 0}.header-actions,.share-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0}.stat{text-align:center;color:var(--pink);padding:12px}.stat span{display:block;font-weight:750}.stat strong{display:inline-block;font-size:28px;margin-top:3px}.stat small{font-weight:700;margin-left:3px}.selective-note{text-align:center;color:var(--muted);font-size:13px;margin-top:-14px}.workspace-section{margin-top:28px;border-top:2px solid rgba(242,143,148,.35);padding-top:4px}.group-chip-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.group-chip-card{background:var(--cream-2);border-radius:18px;padding:16px;overflow:hidden}.group-card-top{display:flex;justify-content:space-between;gap:12px}.group-card-top h3{margin:0;color:var(--pink);font-size:19px}.group-card-top p{margin:3px 0 0;color:#b1877f;font-size:13px}.card-actions{display:flex;gap:5px}.card-actions button{border:0;background:rgba(255,250,235,.6);border-radius:9px;color:var(--orange);width:34px;height:34px;font-size:16px}.mini-stats{display:flex;gap:18px;margin:16px 0 10px;font-size:13px}.mini-stats span{display:flex;gap:5px}.balance-strip{margin:0 -16px -16px;padding:10px 16px;font-size:14px}.balance-strip.receive{background:rgba(159,203,181,.56);color:#568672}.balance-strip.pay{background:rgba(229,138,74,.18);color:#b86632}
.expense-list{display:flex;flex-direction:column;gap:10px}.expense-row{display:grid;grid-template-columns:1fr auto auto;gap:16px;align-items:center;background:rgba(255,250,235,.66);border:1px solid rgba(206,192,159,.65);border-radius:16px;padding:15px 16px}.expense-main h3{margin:0;color:var(--pink);font-size:17px}.expense-main p{margin:4px 0 0;color:var(--muted);font-size:13px}.expense-amount{font-size:20px;color:var(--pink)}.sticky-settle{display:flex;justify-content:center;margin-top:34px}
.modal-backdrop{position:fixed;inset:0;background:rgba(76,61,51,.28);backdrop-filter:blur(4px);display:grid;place-items:center;padding:20px;z-index:50}.modal-card{width:min(540px,100%);max-height:88vh;overflow:auto;background:var(--cream);border:2px solid var(--pink);border-radius:24px;padding:22px;box-shadow:0 30px 80px rgba(70,50,40,.25)}.modal-card.small{width:min(430px,100%);text-align:center}.modal-card h2{color:var(--pink);margin:0 0 6px}.modal-card p{color:var(--muted)}.modal-title{display:flex;align-items:center;justify-content:space-between}.modal-title button,.close-mini{border:0;background:transparent;color:var(--orange);font-size:28px}.segmented{display:grid;grid-template-columns:1fr 1fr;background:var(--cream-2);padding:5px;border-radius:14px}.segmented button{border:0;background:transparent;padding:10px;border-radius:10px;color:var(--muted);font-weight:800}.segmented button.active{background:var(--pink);color:var(--white)}.split-picker{display:flex;flex-direction:column;gap:8px;margin:12px 0}.split-picker label{display:flex;align-items:center;gap:10px;background:rgba(255,250,235,.6);padding:10px;border-radius:12px}.split-picker input{width:auto}.split-picker span{display:flex;justify-content:space-between;width:100%;align-items:center}.split-picker small{color:var(--muted)}
.summary-frame{border:3px double var(--pink);margin-top:18px}.heart-title{text-align:center;color:var(--pink);font-size:clamp(25px,4vw,38px);font-weight:900;margin:8px 0 20px}.heart-title span{margin:0 16px}.name-badges{display:flex;justify-content:center;gap:9px 12px;flex-wrap:wrap;margin-bottom:8px}.name-badge{border:0;border-radius:10px;padding:7px 13px;color:var(--white);font-size:15px}.tone-0{background:var(--pink)}.tone-1{background:var(--mint)}.tone-2{background:var(--orange)}.payments-title{text-align:center;color:var(--pink);font-size:17px;margin:28px 0 14px}.settlement-list{display:flex;flex-direction:column;gap:10px}.settlement-row{display:grid;grid-template-columns:minmax(120px,1fr) auto minmax(120px,1fr) auto;gap:10px;align-items:center}.party-pill{padding:12px 14px;border-radius:14px;color:var(--white);font-weight:850;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.party-pill.pay{background:var(--orange)}.party-pill.receive{background:var(--mint)}.pays-word{color:var(--pink);font-size:18px}.amount-pill{color:var(--pink);border:2px solid var(--pink);border-radius:14px;padding:9px 10px;white-space:nowrap}.share-actions{justify-content:center;margin-top:20px}.your-group{position:relative;margin:28px auto 0;max-width:620px;background:var(--cream-2);padding:18px;border-radius:18px}.your-group h3{margin:0;color:var(--pink)}.your-group p{color:var(--muted)}.your-group>div{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.your-group span{display:flex;flex-direction:column}.green-text{color:#568672}.orange-text{color:#b86632}.close-mini{position:absolute;right:12px;top:8px}
.activity-list{margin-top:24px;display:flex;flex-direction:column}.activity-item{display:grid;grid-template-columns:30px 1fr;gap:10px;padding:14px 0;border-bottom:1px solid rgba(184,158,112,.35)}.activity-dot{width:12px;height:12px;border-radius:50%;background:var(--pink);margin-top:7px}.activity-item h3{margin:0;font-size:15px;color:var(--ink);font-weight:500}.activity-item p{margin:4px 0;color:var(--pink)}.activity-item small{color:var(--muted)}.empty-card{padding:24px;text-align:center;background:rgba(255,250,235,.65);border-radius:18px;color:var(--muted);margin:18px 0}
@media(max-width:760px){.page-shell{padding:18px 14px 80px}.step-label{font-size:12px}.step-dot{width:40px;height:40px}.step-line{top:17px;height:7px}.event-header{align-items:flex-start;flex-direction:column}.header-actions{justify-content:flex-start}.group-builder-row{grid-template-columns:1fr 145px 42px}.group-builder-row>input:nth-of-type(2){grid-column:1/3}.group-chip-grid{grid-template-columns:1fr}.stats-grid{gap:2px}.stat strong{font-size:22px}.expense-row{grid-template-columns:1fr auto}.expense-row .card-actions{grid-column:1/-1;justify-content:flex-end}.settlement-row{grid-template-columns:1fr auto 1fr}.amount-pill{grid-column:1/-1;justify-self:center}.heart-title span{margin:0 7px}.your-group>div{grid-template-columns:1fr}.group-builder-row .icon-btn{grid-column:3;grid-row:1}.share-actions .btn{width:100%}}
@media(max-width:480px){.step{min-width:0}.step-label{font-size:11px}.group-builder-row{grid-template-columns:1fr 125px 36px}.settlement-row{grid-template-columns:1fr}.pays-word{text-align:center}.amount-pill{grid-column:auto}.stats-grid{grid-template-columns:repeat(3,1fr)}.stat{padding:8px 2px}.stat span{font-size:12px}.stat strong{font-size:19px}.party-pill{white-space:normal}.summary-frame{padding:16px 10px}}

/* Placeholder text is illustrative, not prefilled user input. */
input::placeholder{color:#a8a4a0;font-style:italic;opacity:1}
input:focus::placeholder{opacity:.65}
#nameGateForm{display:flex;flex-direction:column;gap:14px}
#nameGateForm input{display:block;position:relative;z-index:1;pointer-events:auto;user-select:text;-webkit-user-select:text}
.switch-line{cursor:pointer}
.switch-line input{accent-color:var(--pink);cursor:pointer}

.lang-toggle{position:relative;z-index:2;border:1px solid #e9b6ae;background:#fff9e7;color:#ad6470;border-radius:24px;padding:10px 16px;box-shadow:0 3px 12px #0002;font:600 14px system-ui;cursor:pointer}

/* Language selector lives in the page header, never at the bottom of the viewport. */
.page-shell>.language-bar{display:flex;justify-content:flex-end;align-items:center;min-height:42px;margin:0 0 8px}
.page-shell>.language-bar .lang-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 14px;white-space:nowrap}
@media(max-width:760px){.page-shell>.language-bar{margin:0 0 6px;min-height:40px}.page-shell>.language-bar .lang-toggle{min-height:36px;padding:7px 12px}}

/* v2.1: keep each transfer on one horizontal row on narrow screens. */
.settlement-page .settlement-row{display:grid;grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr) max-content;gap:5px;align-items:stretch;min-width:0}
.settlement-page .party-pill{min-width:0;white-space:normal;overflow-wrap:anywhere;text-overflow:clip;display:flex;align-items:center;justify-content:center;padding:9px 5px;font-size:clamp(11px,2.8vw,16px);line-height:1.25}
.settlement-page .pays-word{display:flex;align-items:center;justify-content:center;font-size:0;min-width:0}
.settlement-page .pays-word::after{content:'→';font-size:17px}
.settlement-page .amount-pill{grid-column:auto;justify-self:stretch;align-self:center;text-align:center;white-space:nowrap;padding:8px 5px;font-size:clamp(11px,2.8vw,16px)}
@media(max-width:480px){.settlement-page .settlement-row{grid-template-columns:minmax(0,1fr) 16px minmax(0,1fr) max-content;gap:4px}.settlement-page .summary-frame{padding:12px 6px}}
/* Hidden attribute must win over the split picker display declaration. */
.split-picker[hidden]{display:none!important}

/* Event name and celebration icon in settlement and shared results. */
.summary-event-name{display:flex;flex-direction:column;align-items:center;gap:5px;margin:-4px auto 18px;padding:10px 14px;max-width:min(100%,580px);border-radius:14px;background:rgba(229,138,74,.09);text-align:center;color:var(--pink)}
.summary-event-label{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.summary-event-name strong{font-size:clamp(18px,3.5vw,25px);line-height:1.35;overflow-wrap:anywhere;max-width:100%}
.heart-title{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap}
.heart-title span{margin:0}
@media(max-width:480px){.heart-title{gap:5px;font-size:clamp(20px,5.6vw,28px)}.summary-event-name{margin-bottom:16px}}
