@font-face{font-family:Esphimere;src:url('/fonts/Esphimere.otf') format('opentype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Esphimere;src:url('/fonts/EsphimereSemiBold.otf') format('opentype');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:Esphimere;src:url('/fonts/EsphimereBold.otf') format('opentype');font-style:normal;font-weight:700;font-display:swap}
:root{--ink:#101e44;--muted:#596177;--line:#cfd2d9;--wash:#ededed;--accent:#101e44;--accent2:#f6edcf;--gold:#e2b63b;--success:#176b4a;--success2:#e4f2eb;--amber:#9a6200}
body{font-family:Esphimere,system-ui,-apple-system,"Segoe UI",sans-serif}
body.receipt-open{padding-bottom:calc(5.2rem + env(safe-area-inset-bottom))}
.topbar{background:var(--accent);color:#fff;border-color:#28385f}.topbar .quiet{color:#fff;border-color:#ffffff66}.topbar .primary{color:var(--accent);background:var(--gold);border-color:var(--gold)}.topbar button:not(.primary):not(.quiet){color:var(--accent);background:#fff;border-color:#fff}
.app-brand,.login-brand{display:flex;align-items:center;gap:.7rem}.app-brand img{width:42px;height:42px;object-fit:contain}.app-brand strong{display:block;font-size:1.35rem;line-height:1}.app-brand span{display:block;margin-top:.2rem;color:#ffffffc7;font-size:.86rem}.login-brand{margin-bottom:1.2rem;font-size:1.35rem}.login-brand img{width:38px;height:38px;object-fit:contain}
.primary{background:var(--accent);border-color:var(--accent)}button:focus-visible,input:focus-visible,a:focus-visible{outline-color:var(--gold)}
.item.status-assigned{background:#f3faf6;box-shadow:inset 4px 0 var(--success)}.status-assigned .unit-status{color:var(--success);background:var(--success2)}.status-text.success{color:var(--success)}
.person-suggestions{display:flex;flex-wrap:wrap;gap:.4rem;margin:.55rem 0}.person-suggestions:empty{display:none}.suggestion-chip{min-height:44px;padding:.35rem .75rem;border-color:#b6a260;background:#fffaf0}
.photo-source-actions{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin:.85rem 0}.photo-source-actions button{min-height:48px}.photo-file-meta{min-height:1.4em;margin:.35rem 0}.photo-progress{display:block;width:100%;height:.65rem;margin:.7rem 0;accent-color:var(--gold)}.photo-progress-meta{min-height:1.3em;margin:.15rem 0 .5rem;font-variant-numeric:tabular-nums}
.update-banner{position:fixed;z-index:80;top:max(.5rem,env(safe-area-inset-top));left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:min(560px,calc(100% - 1rem));padding:.65rem .75rem;border:1px solid #9bc8b3;border-radius:.75rem;background:#fff;box-shadow:0 12px 36px #18221c35}
.update-banner span{font-weight:650}.update-banner .small{flex:0 0 auto;min-height:44px}
body.receipt-open .topbar,body.receipt-open .sidebar,body.receipt-open #empty-view,body.receipt-open #app-status{display:none!important}
body.receipt-open .app-layout{display:block;width:min(860px,calc(100% - 1rem));margin:.5rem auto 2rem}
.receipt-title{padding:.7rem .25rem;margin-bottom:.65rem}
.receipt-title h2{font-size:1.25rem}
.receipt-save-state{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;min-height:1.8rem;margin:-.55rem .25rem .4rem}.receipt-save-state .status-text{margin:0;font-size:.8rem}.receipt-save-state .status-text.success{opacity:.72}
.receipt-panel{margin-bottom:1rem}
.receipt-nav{position:fixed;z-index:30;left:50%;bottom:0;transform:translateX(-50%);display:grid;grid-template-columns:repeat(4,1fr);width:min(860px,100%);padding:.35rem .4rem calc(.35rem + env(safe-area-inset-bottom));border:1px solid var(--line);border-bottom:0;border-radius:.9rem .9rem 0 0;background:#fffffff2;box-shadow:0 -8px 28px #18221c22;backdrop-filter:blur(12px)}
.receipt-nav button{display:grid;place-items:center;gap:.1rem;min-height:48px;padding:.25rem;border:0;background:transparent;color:var(--muted);font-size:.76rem}
.receipt-nav button span[aria-hidden]{font-size:1.25rem;line-height:1}
.receipt-nav button[aria-current="page"]{color:var(--accent);background:var(--accent2)}
.item{padding:.65rem .75rem}
.item-main{grid-template-columns:minmax(0,1fr) auto;gap:.2rem .7rem}
.item-name{gap:.45rem}.row-no{width:1.55rem;height:1.55rem;flex-basis:1.55rem}
.line-price{grid-column:2;grid-row:1}
.row-assignment{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:.3rem 0 0 2rem;min-height:44px}
.assignment-summary{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem .45rem;min-width:0}.qty-brief{color:var(--muted);font-size:.82rem}
.assigned-names{min-width:0;color:var(--muted);font-size:.86rem;overflow-wrap:anywhere}
.choose-button{min-width:4.8rem;min-height:44px;padding:.35rem .65rem}
.assignment-dialog{width:min(470px,calc(100% - 1rem));padding:1rem}
.assignment-controls{display:grid;gap:.75rem}.assignment-controls .person-buttons{gap:.5rem}
.assignment-controls .person-button,.assignment-controls .split-button{min-height:44px}
.assignment-note{margin:0;color:var(--muted)}
.person-list{display:grid;gap:.5rem}.person-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.45rem;padding:.55rem .65rem;border:1px solid var(--line);border-radius:.6rem;background:var(--wash)}
.person-row button{min-height:44px}.person-row .person-name{font-weight:700;overflow-wrap:anywhere}.person-row .person-remove{width:44px;height:44px;padding:0;font-size:1.25rem;line-height:1;justify-self:end}
.review-people{margin:.8rem 0 1rem;padding:.8rem;border:1px solid var(--line);border-radius:.65rem;background:var(--wash)}
.review-people h3{margin:0;font-size:1rem}.review-person-list{display:grid;gap:.4rem;margin-top:.65rem}.review-person-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem}.review-person-row input{margin:0}.review-person-row button{min-height:44px}
.app-status{width:min(1380px,calc(100% - 2rem));margin:.35rem auto}
@media(max-width:700px){
  .receipt-title{align-items:flex-start;flex-direction:row}.receipt-total-wrap{text-align:right}.receipt-total{font-size:1.25rem}
  .receipt-title .small{display:none}.receipt-head{padding:.75rem}.receipt-head .muted{display:none}
  .progress{font-size:.8rem}.summary{position:static}
  .assignment-dialog{inset:auto .5rem calc(4.7rem + env(safe-area-inset-bottom));margin:0 auto;max-height:65vh;border-radius:1rem;box-shadow:0 -18px 60px #18221c55}
  .wide-modal{width:calc(100% - .5rem);padding:.8rem}
  .review-fields{grid-template-columns:1fr 1fr}.table-scroll{overflow:visible}
  .review-table,.review-table tbody{display:block}.review-table thead{display:none}.review-table tr{display:grid;gap:.45rem;margin:.75rem 0;padding:.7rem;border:1px solid var(--line);border-radius:.65rem;background:var(--wash)}
  .review-table td{display:grid;grid-template-columns:6rem minmax(0,1fr);align-items:center;gap:.4rem;padding:0;border:0}.review-table td::before{content:attr(data-label);color:var(--muted);font-size:.8rem;font-weight:700}.review-table input,.review-table .narrow{width:100%;min-width:0;margin:0}.review-table td:last-child{display:flex;justify-content:flex-end}.review-table td:last-child::before{content:none}
}
@media(max-width:430px){.review-fields{grid-template-columns:1fr}.row-assignment{margin-left:0}.receipt-nav button{font-size:.7rem}.photo-source-actions{grid-template-columns:1fr}.app-brand img{width:36px;height:36px}.app-brand strong{font-size:1.2rem}}
