/* Shared density: readable text, 44px controls, less space between tasks. */
:root { --radius:12px; }
.native-ui .top-bar { padding:12px 24px; border-bottom:1px solid var(--line); }
.native-ui .top-bar h1 { font-size:24px; letter-spacing:-.6px; }
#main { max-width:1600px; padding-top:20px; }
.native-ui .btn { border-radius:8px; }
.btn { padding:9px 12px; }
.btn:hover { transform:none; }
.form-group { margin-bottom:12px; }
.form-label { margin-bottom:4px; line-height:1.4; }
.form-input { min-height:44px; padding:8px 10px; border-radius:8px; }
.form-grid { gap:0 12px; }
.section-heading { margin-bottom:12px; }
.native-ui .library-switch { margin-bottom:12px; padding:3px; }
.native-ui .assignment-banner { padding:12px 16px; margin-bottom:14px; border-radius:12px; }
.native-ui .trips-list,.invoice-list { gap:8px; margin-bottom:16px; }
.native-ui .trip-card { padding:12px 16px; border:1px solid var(--line); border-radius:12px; gap:3px; }
.native-ui .trip-card h3 { font-size:16px; margin:2px 0 6px; }
.native-ui .invoice-row { padding:12px 16px; border:1px solid var(--line); border-radius:12px; }
.native-ui .receipt-row { padding:12px 14px; }
.native-ui #receipt-context-dates { margin-bottom:10px; }
.receipt-tools { margin-bottom:10px; }
.receipt-bulk-toolbar { padding:10px; gap:8px; }
.trip-ledger-tabs { gap:6px; margin:10px 0; }
.trip-ledger-tabs button { min-height:44px; padding:8px; border-radius:8px; }
.trip-ledger-row { padding:12px 14px; margin:8px 0; border-radius:10px; }
.trip-ledger-row p { margin:5px 0; }
.bank-heading { margin:8px 0 12px; }
.bank-counts { gap:8px; margin:12px 0; }
.bank-counts button { padding:12px; border-radius:10px; }
.dup-pair,.dup-receipt { padding:12px; }
.sheet { padding:16px; border-radius:16px; }
.sheet-header { align-items:center; margin-bottom:10px; gap:12px; }
.sheet-header h2 { font-size:1.2rem; }
.sheet-close { width:44px; height:44px; border-radius:8px; }
.workflow-sheet > .sheet-body { padding:4px 2px 12px; scrollbar-gutter:stable; }
.workflow-sheet > .mobile-sheet-footer { border-top:1px solid var(--line); padding:10px 0 0; }
.workflow-sheet .mobile-sheet-footer .btn { width:auto; }
.mobile-sheet-footer > .btn:only-child { width:100%; }
.sheet-actions { gap:8px; }
.receipt-review-sheet { padding:16px; }
.receipt-review-layout { gap:18px; }
.receipt-review-footer { padding-top:10px; }
:is(button,a,input,select,textarea,summary):focus-visible { outline:3px solid #34785b; outline-offset:2px; }

/* Claim editor: one scrolling body and a compact, always available action bar. */
#trip-claim-review .workflow-sheet { width:min(1040px,100%); height:calc(100dvh - 48px); max-height:calc(100dvh - 48px); }
#claim-review-content { font-size:14px; line-height:1.5; }
#claim-review-content p { margin-bottom:8px; }
.claim-overview { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:16px; padding:4px 0 10px; }
.claim-overview h3 { font-size:16px; margin:0; }
.claim-overview p:first-of-type { grid-column:1; color:var(--muted); font-size:13px; margin:2px 0 0; }
.claim-overview p:last-child { grid-column:2; grid-row:1 / 3; align-self:center; margin:0; text-align:right; }
.claim-overview strong { display:block; font-size:20px; font-variant-numeric:tabular-nums; }
.claim-section { border-top:1px solid var(--line); }
#claim-review-content .claim-section > summary { padding:10px 0; min-height:44px; font-weight:700; }
#claim-review-content .form-group { margin-bottom:10px; }
#claim-review-content textarea { min-height:68px; }
#claim-review-content .check-row { padding:4px 0; min-height:44px; font-size:14px; }
#claim-review-content .check-row input { flex:0 0 20px; width:20px; height:20px; margin:2px 0; accent-color:var(--primary); }
#claim-expenses { border:1px solid var(--line); border-radius:10px; overflow:hidden; margin:8px 0 12px; }
.claim-expense { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:12px; padding:10px 12px; margin:0; border:0; border-bottom:1px solid var(--line); border-radius:0; }
.claim-expense:last-child { border-bottom:0; }
.claim-expense:has([data-claim-include]:checked) { background:#f7faf7; }
.claim-expense-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; min-width:0; }
.claim-expense-heading .check-row { align-items:center!important; min-width:0; }
.claim-expense-heading strong { line-height:1.4; }
.claim-expense-heading small { font-size:12px; color:var(--muted); font-weight:400; white-space:nowrap; }
.claim-expense-heading .btn { font-size:13px; flex-shrink:0; padding:8px; }
#claim-review-content .claim-row-amount { align-self:center; margin:0; font-size:13px; font-weight:700; font-variant-numeric:tabular-nums; }
#claim-review-content .claim-expense-meta { grid-column:1/-1; color:var(--muted); font-size:13px; margin:0 0 6px 30px; }
.claim-expense > .check-row { grid-column:1/-1; }
#claim-review-content .claim-adjustments { grid-column:1/-1; grid-template-columns:minmax(100px,160px) minmax(0,1fr); gap:12px; }
#claim-review-content .claim-adjustments .form-group { margin:0; }
.claim-actions { display:flex; width:100%; justify-content:flex-end; gap:8px; }
.claim-actions .btn { min-height:44px; font-size:14px; }
#claim-save { margin-right:auto; }
#claim-message:empty,#claim-error:empty { display:none; }

@media(min-width:761px) {
  .claim-expense { grid-template-columns:minmax(120px,1fr) minmax(150px,1.4fr) auto auto; align-items:center; }
  .claim-expense-heading { display:contents; }
  .claim-expense-heading .check-row { grid-column:1; grid-row:1; }
  .claim-expense-heading .btn { grid-column:3; grid-row:1; }
  #claim-review-content .claim-expense-meta { grid-column:2; grid-row:1; margin:0; }
  #claim-review-content .claim-row-amount { grid-column:4; grid-row:1; }
}

@media(min-width:1100px) {
  .native-ui .top-bar { padding:12px 24px; }
  #main { padding:20px 24px 40px; }
  .sidebar-brand { padding-top:22px; }
  .tab-bar { padding-top:96px; gap:4px; }
  .tab { padding:10px 16px; }
  .native-ui .assignment-banner { grid-template-columns:minmax(0,1fr) auto auto; align-items:center; }
  .native-ui #recommend-trips { grid-column:3; grid-row:1; }
  .native-ui #unassigned-open { grid-column:2; }
}
@media(max-width:760px) {
  .native-ui .top-bar { padding:calc(8px + env(safe-area-inset-top,0px)) 14px 8px; }
  .native-ui .top-bar h1 { font-size:22px; }
  .native-ui #main { padding:12px 12px calc(90px + env(safe-area-inset-bottom,0px)); }
  .btn,.btn-sm,.form-input { min-height:44px; }
  .form-input { font-size:16px; }
  .native-ui .trip-card,.native-ui .invoice-row { padding:12px; }
  .native-ui .selectable-receipt .receipt-row { padding:12px; }
  .native-ui .workflow-sheet { padding:12px 12px 0; border-radius:14px 14px 0 0; }
  .workflow-sheet > .mobile-sheet-footer { padding:8px 0 calc(8px + env(safe-area-inset-bottom,0px)); }
  #trip-claim-review .workflow-sheet { height:100%; max-height:100%; border-radius:0; }
  .claim-overview { gap:4px 10px; }
  .claim-overview p:last-child { font-size:12px; }
  .claim-overview strong { font-size:18px; }
  .claim-expense { grid-template-columns:minmax(0,1fr); padding:8px 10px 12px; }
  .claim-expense-heading { grid-column:1; }
  #claim-review-content .claim-row-amount { grid-row:3; margin:0 0 6px 30px; }
  #claim-review-content .claim-expense-meta { grid-row:2; margin-bottom:2px; }
  #claim-review-content .claim-adjustments { grid-template-columns:minmax(80px,.6fr) minmax(0,1.4fr); gap:8px; align-items:end; }
  .claim-adjustments .form-label { font-size:12px; }
  .claim-actions { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
  #claim-save { margin:0; }
  #claim-lock { grid-column:auto; }
  .claim-actions .btn { padding:8px; font-size:13px; white-space:normal; }
}
@media(max-width:360px) {
  .claim-overview { grid-template-columns:1fr; }
  .claim-overview p:last-child { grid-column:1; grid-row:auto; text-align:left; }
  .claim-overview strong { display:inline; }
}
