:root{--bg:#f7f0e4;--surface:#fffaf2;--surface-strong:#fff;--ink:#16263a;--muted:#66768a;--line:rgba(22,38,58,0.12);--accent:#de6b48;--accent-strong:#bf4f2d;--warning:#fff0cc;--tag:#d8ebff;--shadow:0 20px 40px rgba(22,38,58,0.08);--radius-lg:28px;--radius-md:20px;--radius-sm:14px;--max-width:480px;--font-body:"Avenir Next","Segoe UI",sans-serif}*{box-sizing:border-box}html{background:linear-gradient(180deg,#fef6ea,#f4e7d7)}body{margin:0;color:var(--ink);font-family:var(--font-body)}button,input,textarea{font:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.page-shell{min-height:100vh;padding:24px 16px 170px}.page-shell.has-split-sheet{padding-bottom:248px}.page-stack{display:grid;grid-gap:16px;gap:16px;max-width:var(--max-width);margin:0 auto}.panel{background:color-mix(in srgb,var(--surface) 92%,white 8%);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:20px}.upload-panel{display:grid;grid-gap:20px;gap:20px}.loading-panel{display:grid;justify-items:center;grid-gap:16px;gap:16px;text-align:center}.loading-spinner{width:44px;height:44px;border:4px solid rgba(22,38,58,.12);border-top:4px solid var(--accent);border-radius:50%;animation:spin .9s linear infinite}.panel-copy h2{margin:4px 0 8px;font-size:1.6rem}.panel-heading-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-heading-row h2{margin-bottom:0}.panel-heading-row .add-item-button{margin-top:-30px}.panel-copy p{margin:0;color:var(--muted);line-height:1.4}.results-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.eyebrow{color:var(--accent);font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.upload-dropzone{display:grid;grid-gap:10px;gap:10px;padding:28px 18px;border:2px dashed rgba(222,107,72,.35);border-radius:var(--radius-md);background:linear-gradient(180deg,rgba(222,107,72,.08),rgba(255,255,255,.9));text-align:center}.upload-dropzone-has-preview{gap:8px;padding:16px 16px 14px}.upload-preview{width:min(100%,220px);height:164px;margin:0 auto 8px;object-fit:cover;border-radius:20px;border:1px solid var(--line);box-shadow:0 16px 28px rgba(22,38,58,.1)}.upload-dropzone-has-preview .upload-preview{width:min(100%,270px);height:196px;margin-bottom:4px}.preview-trigger{padding:0;border:0;background:transparent}.upload-title{font-size:.94rem;font-weight:700}.upload-subtitle{color:var(--muted);font-size:.92rem}.upload-dropzone-has-preview .upload-title{font-size:.82rem}.upload-dropzone-has-preview .upload-subtitle{font-size:.78rem}.upload-change-copy{color:var(--accent);font-size:.88rem;font-weight:700}.upload-dropzone-has-preview .upload-change-copy{font-size:.8rem}.warning-banner{margin-top:16px;padding:12px 14px;border-radius:var(--radius-sm);background:var(--warning);color:#664a08}.stack{display:grid;grid-gap:8px;gap:8px;margin-top:16px}.item-card,.total-card{background:var(--surface-strong);border:1px solid var(--line);border-radius:var(--radius-md);padding:12px 14px}.swipe-row{position:relative;overflow:hidden;border-radius:var(--radius-md)}.swipe-delete-button{position:absolute;top:0;right:0;bottom:0;z-index:0;width:68px;display:inline-flex;align-items:center;justify-content:center;border:0;background:#d84d4d;color:white;font-size:1.5rem;font-weight:700}.item-card-slim{position:relative;z-index:1;padding:10px 10px 8px;transition:transform .14s ease;will-change:transform}.compact-row{display:flex;align-items:center;gap:8px}.total-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.field-stack{display:grid;grid-gap:6px;gap:6px}.composer,.text-input{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:white;color:var(--ink)}.compact-name-input{flex:1 1;min-width:0}.compact-qty-input{width:56px;flex:0 0 56px}.compact-amount-input{width:100%;flex:1 1;border:0;padding:0;background:transparent;min-width:0}.text-input-small{text-align:center}.amount-input{text-align:right}.currency-input-wrap{position:relative;display:flex;align-items:center;width:82px;flex:0 0 82px;padding:9px 10px 9px 26px;border:1px solid var(--line);border-radius:var(--radius-sm);background:white}.currency-prefix{position:absolute;left:10px;color:var(--muted);font-weight:700}.tag-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.compact-tag-row{margin-top:8px}.service-charge-card{padding-bottom:10px;background:rgba(230,239,244,.78);border-color:rgba(102,118,138,.18)}.service-charge-row{gap:12px}.service-charge-label{flex:1 1;min-width:0;color:#4f6276;display:flex;align-items:center;background:rgba(255,250,242,.9)}.service-charge-row .currency-input-wrap{width:112px;flex:0 0 112px;background:rgba(255,250,242,.9);border-color:rgba(102,118,138,.18)}.person-tag{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:999px;background:var(--tag);color:#19446b;font-size:.74rem;font-weight:600}.ghost-button,.primary-button,.secondary-button,.toggle{min-height:48px;border:0;border-radius:999px;cursor:pointer}.primary-button{background:var(--accent);color:white;font-weight:700}@keyframes spin{to{transform:rotate(1turn)}}.secondary-button{background:white;color:var(--ink);border:1px solid var(--line)}.action-row{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:16px}.action-button{padding:0 22px}.add-item-button{width:42px;min-width:42px;height:42px;min-height:42px;padding:0;font-size:1rem}.share-button{min-height:48px;min-width:50px;padding:0 8px;font-weight:700;border-radius:14px;display:inline-flex;align-items:center;justify-content:center}.share-icon{width:26px;height:26px;display:block}.split-panel{position:fixed;left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom, 0px) + 12px);z-index:24;width:auto;max-width:var(--max-width);margin:0 auto;display:grid;grid-gap:8px;gap:8px;padding-top:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom, 0px));box-shadow:0 24px 48px rgba(22,38,58,.16)}.preview-modal{position:fixed;inset:0;z-index:40;display:grid;align-content:center;justify-items:center;padding:24px 16px;background:rgba(22,38,58,.84)}.preview-modal-frame{position:relative;width:min(100%,560px)}.preview-close-chip{position:absolute;top:10px;right:10px;z-index:1;width:36px;height:36px;border:0;border-radius:999px;background:rgba(22,38,58,.72);color:white;font-size:1.35rem;line-height:1}.preview-modal-image{width:100%;max-height:calc(100vh - 120px);object-fit:contain;border-radius:20px;background:white;box-shadow:0 20px 48px rgba(0,0,0,.28)}.share-preview-modal{align-content:start;padding:52px 8px 0;overflow-y:auto}.share-preview-frame{width:min(100%,560px);margin-bottom:24px}.share-preview-image{max-height:none}.share-preview-corner-button{position:absolute;top:10px;right:10px;z-index:1}.preview-modal-close{position:fixed;top:10px;right:10px;z-index:41;width:40px;height:40px;border:0;border-radius:999px;background:rgba(22,38,58,.72);color:white;font-size:1.45rem;line-height:1}.sheet-hint{margin:0 0 10px;color:var(--muted);font-size:.92rem}.composer{min-height:84px;resize:vertical;margin-bottom:0}.split-panel-actions{display:flex;justify-content:flex-end}.split-submit-button{min-height:40px;padding:0 16px;font-size:.95rem}.results-controls{display:grid;grid-gap:14px;gap:14px;margin-top:16px}.toggle-row{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:10px;gap:10px}.toggle{background:white;color:var(--ink);border:1px solid var(--line)}.toggle.is-active{background:#ffe1d7;color:var(--accent-strong);border-color:rgba(222,107,72,.35)}.total-card-header h3,.total-card-header p{margin:0}.total-card-header h3{font-weight:600}.total-card-header p{font-weight:600;text-align:right}.service-charge-note{margin:14px 0 0;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:.95rem}.service-charge-note span{color:var(--ink);font-weight:600;text-align:right}.total-breakdown{margin:14px 0 0;display:grid;grid-gap:10px;gap:10px}.total-breakdown div{display:flex;justify-content:space-between;gap:12px}.total-breakdown dd,.total-breakdown dt{margin:0}@media (min-width:720px){.page-shell{padding-top:40px}.page-stack{max-width:720px}}