
  :root{
    --paper: #FAF6EE;
    --paper-warm: #F1E7D2;
    --ink: #1B3A4B;
    --ink-soft: #52707F;
    --brass: #B8862B;
    --red: #C1443C;
    --blue: #3D5A80;
    --line: #DCCFB4;
    --success: #4C7A5E;
    --shadow: rgba(27,58,75,0.14);
    --white: #FFFDF8;
  }
  *{box-sizing:border-box;}
  body{
    margin:0;
    background:
      radial-gradient(circle at 100% 0%, rgba(184,134,43,0.08), transparent 45%),
      var(--paper);
    color:var(--ink);
    font-family:'Inter', sans-serif;
    -webkit-font-smoothing:antialiased;
    padding-bottom:60px;
  }
  ::selection{background:var(--brass); color:var(--white);}

  /* ---------- Header ---------- */
  header{
    padding:38px 24px 26px;
    max-width:1080px;
    margin:0 auto;
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    flex-wrap:wrap;
    gap:16px;
    border-bottom:1px solid var(--line);
  }
  .eyebrow{
    font-family:'Space Grotesk', monospace;
    font-size:11px;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--brass);
    margin:0 0 6px;
    font-weight:600;
  }
  h1{
    font-family:'Fraunces', serif;
    font-weight:600;
    font-size:clamp(28px, 4vw, 40px);
    margin:0;
    line-height:1.05;
  }
  h1 input{
    font-family:inherit;
    font-size:inherit;
    font-weight:inherit;
    color:inherit;
    border:none;
    background:transparent;
    border-bottom:2px dashed transparent;
    padding:0;
    width:min(520px, 60vw);
  }
  h1 input:hover, h1 input:focus{border-bottom-color:var(--line); outline:none;}
  .partners-line{
    font-family:'Space Grotesk', monospace;
    font-size:14px;
    color:var(--ink-soft);
    margin-top:8px;
    display:flex;
    gap:8px;
    align-items:center;
    flex-wrap:wrap;
  }
  .partners-line input{
    font-family:inherit;
    font-size:inherit;
    color:var(--ink);
    background:var(--white);
    border:1px solid var(--line);
    border-radius:6px;
    padding:4px 8px;
    width:110px;
  }
  .settings-toggle{
    font-family:'Space Grotesk', monospace;
    font-size:12px;
    letter-spacing:.05em;
    background:none;
    border:1px solid var(--line);
    color:var(--ink-soft);
    padding:8px 14px;
    border-radius:20px;
    cursor:pointer;
    transition:.15s;
  }
  .settings-toggle:hover{border-color:var(--brass); color:var(--brass);}

  /* ---------- Settings panel ---------- */
  #settingsPanel{
    max-width:1080px;
    margin:0 auto;
    padding:0 24px;
    overflow:hidden;
    max-height:0;
    transition:max-height .25s ease;
  }
  #settingsPanel.open{max-height:400px;}
  .settings-inner{
    background:var(--white);
    border:1px solid var(--line);
    border-radius:12px;
    padding:20px 24px;
    margin:18px 0;
    display:flex;
    gap:28px;
    flex-wrap:wrap;
  }
  .settings-block h4{
    margin:0 0 10px;
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:var(--ink-soft);
    font-weight:600;
  }
  .rate-row{
    display:flex;
    align-items:center;
    gap:8px;
    font-family:'Space Grotesk', monospace;
    font-size:13px;
    margin-bottom:6px;
  }
  .rate-row input{
    width:70px;
    padding:4px 6px;
    border:1px solid var(--line);
    border-radius:5px;
    font-family:inherit;
  }
  select{
    font-family:'Space Grotesk', monospace;
    padding:5px 8px;
    border-radius:6px;
    border:1px solid var(--line);
    background:var(--white);
    color:var(--ink);
  }

  main{max-width:1080px; margin:0 auto; padding:0 24px;}

  /* ---------- Ticket (signature element) ---------- */
  .ticket-wrap{margin:34px 0; position:relative;}
  .ticket{
    background:var(--ink);
    color:var(--paper);
    border-radius:14px;
    display:flex;
    box-shadow:0 14px 32px var(--shadow);
    position:relative;
    overflow:hidden;
    min-height:150px;
  }
  .ticket::before{
    content:"";
    position:absolute;
    inset:0;
    background-image:
      repeating-linear-gradient(115deg, rgba(255,255,255,0.035) 0 2px, transparent 2px 26px);
    pointer-events:none;
  }
  .ticket-main{
    flex:1;
    padding:26px 28px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
  }
  .ticket-route{
    display:flex;
    align-items:center;
    gap:14px;
    font-family:'Fraunces', serif;
    font-size:clamp(20px,3vw,28px);
    font-weight:600;
  }
  .ticket-route .plane{color:var(--brass); font-size:20px;}
  .ticket-sub{
    font-family:'Space Grotesk', monospace;
    font-size:12px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:#9FB4BE;
    margin-top:6px;
  }
  .ticket-amount{
    font-family:'Space Grotesk', monospace;
    font-size:clamp(30px,5vw,44px);
    font-weight:700;
    margin-top:14px;
    color:var(--white);
  }
  .ticket-amount span{font-size:16px; color:#9FB4BE; margin-left:6px; font-weight:500;}
  .ticket-stub{
    width:190px;
    border-left:2px dashed rgba(255,255,255,0.28);
    padding:26px 20px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:10px;
    position:relative;
  }
  .ticket-stub::before,.ticket-stub::after{
    content:"";
    position:absolute;
    width:22px;height:22px;
    background:var(--paper);
    border-radius:50%;
    left:-12px;
  }
  .ticket-stub::before{top:-11px;}
  .ticket-stub::after{bottom:-11px;}
  .ticket-stub .lbl{font-family:'Space Grotesk',monospace; font-size:10px; letter-spacing:.1em; color:#9FB4BE; text-transform:uppercase;}
  .ticket-stub .val{font-family:'Space Grotesk',monospace; font-size:15px; font-weight:600;}
  .ticket-empty{padding:30px; font-family:'Space Grotesk',monospace; font-size:15px; color:#c9d6db;}

  /* ---------- Grid cards ---------- */
  .grid2{display:grid; grid-template-columns: 1.1fr 0.9fr; gap:22px; margin:8px 0 30px;}
  @media(max-width:820px){.grid2{grid-template-columns:1fr;}}

  .card{
    background:var(--white);
    border:1px solid var(--line);
    border-radius:14px;
    padding:22px 24px;
  }
  .card h3{
    font-family:'Fraunces', serif;
    font-size:18px;
    font-weight:600;
    margin:0 0 16px;
    display:flex;
    align-items:center;
    gap:8px;
  }

  /* add expense form */
  .form-row{display:flex; gap:10px; margin-bottom:10px; flex-wrap:wrap;}
  .form-row > div{flex:1; min-width:120px;}
  label{
    display:block;
    font-family:'Space Grotesk',monospace;
    font-size:10.5px;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--ink-soft);
    margin-bottom:4px;
  }
  input[type=text], input[type=number], input[type=date]{
    width:100%;
    padding:9px 10px;
    border:1px solid var(--line);
    border-radius:7px;
    font-family:'Inter',sans-serif;
    font-size:14px;
    background:var(--paper);
    color:var(--ink);
  }
  input:focus, select:focus{outline:2px solid var(--brass); outline-offset:1px;}
  .split-options{display:flex; gap:6px; flex-wrap:wrap; margin-top:4px;}
  .split-btn{
    font-family:'Space Grotesk',monospace;
    font-size:12px;
    padding:6px 10px;
    border-radius:16px;
    border:1px solid var(--line);
    background:var(--paper);
    cursor:pointer;
    color:var(--ink-soft);
  }
  .split-btn.active{background:var(--ink); color:var(--paper); border-color:var(--ink);}
  .custom-split-row{display:none; gap:10px; margin-top:8px;}
  .custom-split-row.show{display:flex;}

  .btn-primary{
    font-family:'Space Grotesk',monospace;
    font-size:13px;
    font-weight:600;
    letter-spacing:.03em;
    background:var(--ink);
    color:var(--paper);
    border:none;
    padding:11px 18px;
    border-radius:8px;
    cursor:pointer;
    transition:.15s;
  }
  .btn-primary:hover{background:var(--blue);}
  .btn-photo{
    font-family:'Space Grotesk',monospace;
    font-size:13px;
    background:var(--paper-warm);
    border:1px dashed var(--brass);
    color:var(--brass);
    padding:10px 16px;
    border-radius:8px;
    cursor:pointer;
    width:100%;
    margin-bottom:14px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
  }
  .btn-photo:hover{background:#ecdcb8;}
  .scan-status{font-family:'Space Grotesk',monospace; font-size:12px; color:var(--ink-soft); margin:-6px 0 12px; min-height:16px; line-height:1.6;}
  .retry-btn{
    font-family:'Space Grotesk',monospace; font-size:11.5px; font-weight:600;
    background:var(--ink); color:var(--paper); border:none; border-radius:14px;
    padding:4px 12px; cursor:pointer; margin-left:4px;
  }
  .retry-btn:hover{background:var(--blue);}

  /* itemized receipt panel */
  .items-panel{
    border:1px solid var(--line); border-radius:10px; background:var(--paper);
    padding:14px 14px 6px; margin:-4px 0 16px;
  }
  .items-panel-head{
    font-family:'Fraunces',serif; font-size:14.5px; font-weight:600; color:var(--ink);
    margin-bottom:10px;
  }
  .item-block{
    border:1px solid var(--line); border-radius:8px; background:var(--white);
    padding:10px 10px 8px; margin-bottom:10px;
  }
  .item-top{display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-bottom:8px;}
  .item-top .item-name{
    flex:1; min-width:110px; padding:6px 8px; border:1px solid var(--line); border-radius:6px;
    font-family:'Inter',sans-serif; font-size:13px; background:var(--paper);
  }
  .item-qty{
    width:46px; padding:6px 4px; border:1px solid var(--line); border-radius:6px;
    font-family:'Space Grotesk',monospace; font-size:13px; background:var(--paper); text-align:center;
  }
  .item-x{font-family:'Space Grotesk',monospace; font-size:12px; color:var(--ink-soft);}
  .item-unitprice{
    width:66px; padding:6px 6px; border:1px solid var(--line); border-radius:6px;
    font-family:'Space Grotesk',monospace; font-size:13px; background:var(--paper);
  }
  .item-quick{display:flex; gap:4px; flex-wrap:wrap; margin-bottom:8px;}
  .item-quick button{
    font-family:'Space Grotesk',monospace; font-size:10.5px;
    padding:4px 9px; border-radius:11px; border:1px solid var(--line);
    background:var(--paper); cursor:pointer; color:var(--ink-soft);
  }
  .item-quick button:hover{border-color:var(--blue); color:var(--blue);}
  .item-split{display:flex; align-items:center; gap:12px; flex-wrap:wrap;}
  .item-split label{
    display:flex; align-items:center; gap:5px;
    font-family:'Space Grotesk',monospace; font-size:11.5px; color:var(--ink-soft);
  }
  .item-split input{
    width:44px; padding:4px; border:1px solid var(--line); border-radius:6px;
    font-family:'Space Grotesk',monospace; font-size:12.5px; text-align:center; background:var(--paper);
  }
  .qty-check{font-family:'Space Grotesk',monospace; font-size:11px; margin-left:auto;}
  .qty-check.ok{color:var(--success);}
  .qty-check.warn{color:var(--red);}
  .items-summary{
    font-family:'Space Grotesk',monospace; font-size:12px; color:var(--ink-soft);
    border-top:1px dashed var(--line); padding:10px 0; margin-top:4px; line-height:1.8;
  }
  .items-summary b{color:var(--ink);}
  .items-summary .warn{color:var(--red);}
  .items-summary .ok{color:var(--success);}
  .items-panel-actions{display:flex; justify-content:flex-end; margin-bottom:10px;}
  .form-actions{display:flex; justify-content:flex-end; margin-top:6px;}

  /* mode toggle: Ausgabe vs. Ausgleichszahlung */
  .mode-tabs{display:flex; gap:6px; margin-bottom:16px;}
  .mode-tab{
    flex:1;
    font-family:'Space Grotesk',monospace; font-size:12.5px; font-weight:600;
    padding:9px 10px; border-radius:8px; border:1px solid var(--line);
    background:var(--paper); cursor:pointer; color:var(--ink-soft);
    text-align:center;
  }
  .mode-tab.active{background:var(--ink); border-color:var(--ink); color:var(--paper);}
  .settlement-note{
    font-family:'Space Grotesk',monospace; font-size:12.5px; color:var(--ink);
    background:var(--paper-warm); border:1px dashed var(--brass);
    border-radius:8px; padding:10px 12px; margin:2px 0 12px;
    display:none;
  }
  .settlement-note.show{display:block;}
  tr.settlement-row{background:#F4EEE0;}
  tr.settlement-row:hover{background:#EFE4CC;}
  .tag.settlement{background:#EAD9AE; color:var(--ink);}

  /* charts card */
  .chart-tabs{display:flex; gap:6px; margin-bottom:12px;}
  .chart-tab{
    font-family:'Space Grotesk',monospace; font-size:11.5px;
    padding:5px 12px; border-radius:14px; border:1px solid var(--line);
    background:var(--paper); cursor:pointer; color:var(--ink-soft);
  }
  .chart-tab.active{background:var(--brass); border-color:var(--brass); color:var(--white);}
  .chart-box{position:relative; height:230px;}

  /* balance detail */
  .balance-rows{margin-top:14px; display:flex; flex-direction:column; gap:8px;}
  .balance-row{
    display:flex; justify-content:space-between; align-items:center;
    font-family:'Space Grotesk',monospace; font-size:13px;
    padding:8px 10px; background:var(--paper); border-radius:8px;
  }
  .balance-row b{color:var(--ink);}

  /* ---------- Table ---------- */
  .table-card{margin-bottom:40px;}
  .table-filters{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:14px;}
  table{width:100%; border-collapse:collapse; font-size:13.5px;}
  thead th{
    text-align:left;
    font-family:'Space Grotesk',monospace;
    font-size:10.5px;
    text-transform:uppercase;
    letter-spacing:.06em;
    color:var(--ink-soft);
    padding:8px 10px;
    border-bottom:1px solid var(--line);
  }
  tbody td{
    padding:10px;
    border-bottom:1px solid #EFE7D6;
    vertical-align:middle;
  }
  tbody tr:hover{background:var(--paper-warm);}
  .tag{
    font-family:'Space Grotesk',monospace;
    font-size:11px;
    padding:3px 9px;
    border-radius:12px;
    background:var(--paper-warm);
    color:var(--ink-soft);
    white-space:nowrap;
  }
  .who{font-weight:600;}
  .who.A{color:var(--blue);}
  .who.B{color:var(--red);}
  .del-btn{
    background:none; border:none; cursor:pointer; color:var(--ink-soft);
    font-size:15px; opacity:.5;
  }
  .del-btn:hover{opacity:1; color:var(--red);}
  .edit-btn{
    background:none; border:none; cursor:pointer; color:var(--ink-soft);
    font-size:14px; opacity:.5; margin-right:4px;
  }
  .edit-btn:hover{opacity:1; color:var(--blue);}
  .row-actions{white-space:nowrap;}

  /* category management */
  .cat-chip{
    display:inline-flex; align-items:center; gap:6px;
    font-family:'Space Grotesk',monospace; font-size:12px;
    padding:5px 6px 5px 12px; border-radius:16px;
    background:var(--paper); border:1px solid var(--line);
    color:var(--ink-soft); margin:0 6px 6px 0;
  }
  .cat-chip button{
    background:none; border:none; cursor:pointer; color:var(--ink-soft);
    opacity:.5; font-size:12px; padding:2px 4px;
  }
  .cat-chip button:hover{opacity:1; color:var(--red);}
  .cat-add-row{display:flex; gap:6px; margin-top:8px;}
  .cat-add-row input{
    padding:6px 8px; border:1px solid var(--line); border-radius:6px;
    font-family:'Space Grotesk',monospace; font-size:12px; width:130px;
  }
  .cat-add-row button{
    font-family:'Space Grotesk',monospace; font-size:12px;
    background:var(--ink); color:var(--paper); border:none;
    border-radius:6px; padding:6px 12px; cursor:pointer;
  }
  .btn-secondary{
    font-family:'Space Grotesk',monospace; font-size:13px;
    background:none; color:var(--ink-soft); border:1px solid var(--line);
    padding:10px 16px; border-radius:8px; cursor:pointer; margin-right:8px;
  }
  .btn-secondary:hover{border-color:var(--red); color:var(--red);}
  .empty-state{
    text-align:center; padding:50px 20px; color:var(--ink-soft);
    font-family:'Space Grotesk',monospace; font-size:13px;
  }
  .note{
    font-family:'Space Grotesk',monospace; font-size:11.5px; color:var(--ink-soft);
    text-align:center; margin-top:30px; line-height:1.6;
  }
  #camInput{display:none;}
  #galleryInput{display:none;}
  .gallery-link{
    display:block; text-align:center; font-family:'Space Grotesk',monospace;
    font-size:11.5px; color:var(--ink-soft); text-decoration:underline;
    background:none; border:none; cursor:pointer; margin:-8px 0 14px; width:100%;
  }
  .gallery-link:hover{color:var(--brass);}

  /* ---------- Live camera modal ---------- */
  .camera-modal{
    display:none; position:fixed; inset:0; background:rgba(15,26,32,0.92);
    z-index:1000; align-items:center; justify-content:center; padding:20px;
  }
  .camera-modal.open{display:flex;}
  .camera-modal-inner{
    width:100%; max-width:480px; display:flex; flex-direction:column; gap:16px; align-items:center;
  }
  #cameraVideo{
    width:100%; max-height:65vh; border-radius:14px; background:#000;
    object-fit:cover; border:2px solid rgba(255,255,255,0.15);
  }
  .camera-controls{display:flex; align-items:center; justify-content:center; gap:28px; width:100%;}
  .camera-cancel{
    font-family:'Space Grotesk',monospace; font-size:13px; color:#E8E1D0;
    background:none; border:1px solid rgba(255,255,255,0.3); border-radius:20px;
    padding:9px 18px; cursor:pointer;
  }
  .camera-cancel:hover{border-color:var(--red); color:var(--red);}
  .camera-shutter{
    width:64px; height:64px; border-radius:50%; background:var(--paper);
    border:4px solid var(--brass); cursor:pointer; flex-shrink:0;
  }
  .camera-shutter:hover{background:var(--brass);}
  .camera-hint{font-family:'Space Grotesk',monospace; font-size:11px; color:#B9C4C9; text-align:center;}

/* ---------- Login / Setup ---------- */
.auth-shell{
  min-height:100vh; display:flex; align-items:center; justify-content:center; padding:20px;
}
.auth-card{
  width:100%; max-width:380px; background:var(--white); border:1px solid var(--line);
  border-radius:16px; padding:36px 32px; box-shadow:0 14px 32px var(--shadow);
}
.auth-card h1{
  font-family:'Fraunces',serif; font-size:26px; font-weight:600; margin:0 0 4px; color:var(--ink);
}
.auth-card .sub{
  font-family:'Space Grotesk',monospace; font-size:12.5px; color:var(--ink-soft); margin:0 0 22px;
}
.auth-card input{
  width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:8px;
  font-family:'Inter',sans-serif; font-size:14px; background:var(--paper); margin-bottom:10px;
}
.auth-card input:focus{outline:2px solid var(--brass); outline-offset:1px;}
.auth-card button[type="submit"]{
  width:100%; font-family:'Space Grotesk',monospace; font-size:13.5px; font-weight:600;
  background:var(--ink); color:var(--paper); border:none; padding:12px; border-radius:8px;
  cursor:pointer; margin-top:6px;
}
.auth-card button[type="submit"]:hover{background:var(--blue);}
.auth-error{
  font-family:'Space Grotesk',monospace; font-size:12.5px; color:var(--red);
  min-height:18px; margin-bottom:4px;
}
.auth-card .field-label{
  font-family:'Space Grotesk',monospace; font-size:10.5px; text-transform:uppercase;
  letter-spacing:.06em; color:var(--ink-soft); margin:14px 0 4px; display:block;
}
.auth-card .field-row{display:flex; gap:8px;}
.auth-card .field-row input{flex:1;}

/* ---------- Header: Nutzer/Logout ---------- */
.user-bar{
  display:flex; align-items:center; gap:12px; font-family:'Space Grotesk',monospace; font-size:12.5px;
  color:var(--ink-soft); margin-top:6px;
}
.logout-link{
  background:none; border:none; color:var(--ink-soft); text-decoration:underline;
  cursor:pointer; font-family:inherit; font-size:inherit; padding:0;
}
.logout-link:hover{color:var(--red);}

/* ---------- Belegfoto-Link in der Tabelle ---------- */
.receipt-link{
  font-family:'Space Grotesk',monospace; font-size:15px; text-decoration:none;
  margin-left:4px; opacity:.7;
}
.receipt-link:hover{opacity:1;}

/* ---------- allgemeiner Lade-/Fehlpunkt ---------- */
.page-loading{
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  font-family:'Space Grotesk',monospace; color:var(--ink-soft); font-size:14px;
}

/* ---------- Mehrkonten-Login ---------- */
.auth-divider{
  display:flex; align-items:center; gap:12px; margin:20px 0 14px;
  color:var(--ink-soft); font-family:'Space Grotesk',monospace; font-size:11px;
  text-transform:uppercase; letter-spacing:.08em;
}
.auth-divider::before,.auth-divider::after{content:""; height:1px; background:var(--line); flex:1;}
.auth-secondary{
  display:block; width:100%; text-align:center; text-decoration:none;
  font-family:'Space Grotesk',monospace; font-size:13.5px; font-weight:600;
  background:transparent; color:var(--ink); border:1px solid var(--ink);
  padding:11px 12px; border-radius:8px; transition:.15s;
}
.auth-secondary:hover{background:var(--paper-warm); border-color:var(--brass); color:var(--brass);}
.auth-hint{
  margin:10px 0 0; text-align:center; font-family:'Space Grotesk',monospace;
  font-size:10.5px; line-height:1.45; color:var(--ink-soft);
}
.auth-back{
  display:block; margin-top:18px; text-align:center; color:var(--ink-soft);
  font-family:'Space Grotesk',monospace; font-size:12px; text-decoration:none;
}
.auth-back:hover{color:var(--brass);}

/* ---------- Version 2.1: robuste Darstellung und Einstellungen ---------- */
#tripNameDisplay{
  max-width:min(620px, 72vw);
  overflow-wrap:anywhere;
  word-break:normal;
}
.partners-line span{
  overflow-wrap:anywhere;
}

/* Reise- und Personendaten sind nur im Einstellungsbereich editierbar. */
#settingsPanel.open{max-height:1000px;}
.settings-people{
  min-width:min(100%, 250px);
  flex:1 1 270px;
}
.settings-people label{
  margin-top:9px;
}
.settings-people input{
  display:block;
  width:100%;
  min-width:0;
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:7px;
  font-family:'Inter',sans-serif;
  font-size:13px;
  background:var(--paper);
  color:var(--ink);
}
.settings-save{
  margin-top:12px;
  padding:8px 12px;
  border:0;
  border-radius:7px;
  background:var(--ink);
  color:var(--paper);
  font-family:'Space Grotesk',monospace;
  font-size:12px;
  font-weight:600;
  cursor:pointer;
}
.settings-save:hover{background:var(--blue);}
.settings-feedback{
  min-height:16px;
  margin:7px 0 0;
  color:var(--success);
  font-family:'Space Grotesk',monospace;
  font-size:11px;
}

/* Safari-sicher: Felder dürfen ihre Spalten nicht verbreitern. */
.form-row{
  display:grid;
  gap:10px;
  margin-bottom:10px;
}
.form-row-1{grid-template-columns:minmax(0, 1fr);}
.form-row-2{grid-template-columns:repeat(2, minmax(0, 1fr));}
.form-row-3{grid-template-columns:repeat(3, minmax(0, 1fr));}
.form-row > div{
  min-width:0;
  width:100%;
}
.form-row input,
.form-row select{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
}
.form-row select{
  height:37px;
  text-overflow:ellipsis;
}
@supports (-webkit-touch-callout:none){
  .form-row input[type="date"]{
    min-height:37px;
    -webkit-appearance:none;
    appearance:none;
  }
}

/* Lange Ausgaben bleiben innerhalb der Tabelle und brechen sauber um. */
#tableWrap{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
#tableWrap table{
  table-layout:fixed;
  min-width:900px;
}
#tableWrap th,
#tableWrap td{
  min-width:0;
  overflow-wrap:anywhere;
  word-break:normal;
}
#tableWrap th:nth-child(1), #tableWrap td:nth-child(1){width:11%;}
#tableWrap th:nth-child(2), #tableWrap td:nth-child(2){width:24%;}
#tableWrap th:nth-child(3), #tableWrap td:nth-child(3){width:14%;}
#tableWrap th:nth-child(4), #tableWrap td:nth-child(4){width:11%;}
#tableWrap th:nth-child(5), #tableWrap td:nth-child(5){width:13%;}
#tableWrap th:nth-child(6), #tableWrap td:nth-child(6){width:11%;}
#tableWrap th:nth-child(7), #tableWrap td:nth-child(7){width:11%;}
#tableWrap th:nth-child(8), #tableWrap td:nth-child(8){width:5%;}
#tableWrap td:nth-child(1),
#tableWrap td:nth-child(4),
#tableWrap td:nth-child(7),
#tableWrap .row-actions{
  white-space:nowrap;
}
#tableWrap .tag{
  display:inline-block;
  max-width:100%;
  white-space:normal;
  overflow-wrap:anywhere;
  line-height:1.25;
}
#tableWrap .who{
  overflow-wrap:anywhere;
}

@media(max-width:620px){
  #tripNameDisplay{max-width:100%;}
  .form-row-2,
  .form-row-3{grid-template-columns:1fr;}
  .settings-inner{padding:18px; gap:20px;}
}

/* ---------- Version 2.2: beliebig viele Teilnehmende ---------- */
#settingsPanel.open{max-height:2400px;}
.participant-display{
  display:inline-flex;
  align-items:center;
  gap:4px;
  max-width:230px;
  overflow-wrap:anywhere;
}
.participant-separator{color:var(--line);}

.settings-participants-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin-top:12px;
}
.settings-participants-head label{margin:0;}
.settings-participants-head span{
  font-family:'Space Grotesk',monospace;
  font-size:10px;
  color:var(--ink-soft);
}
.settings-participants-list,
.setup-participants{
  display:flex;
  flex-direction:column;
  gap:7px;
  margin-top:6px;
}
.settings-person-row,
.setup-person-row{
  display:grid;
  grid-template-columns:28px minmax(0,1fr) 34px;
  gap:7px;
  align-items:center;
}
.settings-person-number,
.setup-person-number{
  width:26px;
  height:26px;
  border-radius:50%;
  background:var(--paper-warm);
  color:var(--brass);
  display:grid;
  place-items:center;
  font-family:'Space Grotesk',monospace;
  font-size:11px;
  font-weight:700;
}
.settings-person-row input,
.setup-person-row input{margin:0;}
.participant-remove{
  width:32px;
  height:32px;
  border:1px solid var(--line);
  border-radius:7px;
  background:var(--white);
  color:var(--red);
  cursor:pointer;
  font-family:'Space Grotesk',monospace;
}
.participant-remove:hover:not(:disabled){border-color:var(--red);background:#F8E8E5;}
.participant-remove:disabled{opacity:.3;cursor:not-allowed;}
.participant-add{
  width:100%;
  margin-top:8px;
  padding:8px 10px;
  border:1px dashed var(--brass);
  border-radius:7px;
  background:var(--paper-warm);
  color:var(--brass);
  font-family:'Space Grotesk',monospace;
  font-size:11.5px;
  font-weight:600;
  cursor:pointer;
}
.participant-add:hover{background:#ECDCB8;}

.settlement-receiver-field{display:none;}
.settlement-receiver-field.show{display:grid;}
.one-person-row{
  display:none;
  margin-top:9px;
  max-width:320px;
}
.one-person-row.show{display:block;}
.one-person-row select{width:100%;min-height:37px;}
.custom-split-row.multi{
  display:none;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-top:10px;
}
.custom-split-row.multi.show{display:grid;}
.custom-person-share{min-width:0;}
.custom-person-share input{width:100%;}
.split-total{
  display:none;
  margin:7px 0 0;
  font-family:'Space Grotesk',monospace;
  font-size:11px;
  color:var(--success);
}
.split-total.invalid{color:var(--red);font-weight:700;}

.settlement-suggestions{
  display:flex;
  flex-direction:column;
  gap:3px;
  text-transform:none;
  letter-spacing:0;
  line-height:1.35;
  max-width:620px;
}
.settlement-suggestions b{color:var(--white);}
.balance-person-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  border-bottom:1px solid var(--line);
  padding:7px 0;
  font-family:'Space Grotesk',monospace;
}
.balance-person-row > div{min-width:0;}
.balance-person-row strong{
  display:block;
  font-size:13px;
  overflow-wrap:anywhere;
}
.balance-person-row span{
  display:block;
  margin-top:2px;
  font-size:10.5px;
  color:var(--ink-soft);
  line-height:1.35;
}
.balance-person-row > b{font-size:12px;white-space:nowrap;}
.balance-person-row .positive{color:var(--success);}
.balance-person-row .negative{color:var(--red);}
.balance-person-row .neutral{color:var(--ink-soft);}

.setup-participants-title{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:12px;
  margin-top:10px;
}
.setup-participants-title .field-label{margin-bottom:4px;}
.setup-participants-title small{
  font-family:'Space Grotesk',monospace;
  color:var(--ink-soft);
  font-size:10px;
  margin-bottom:4px;
}
.participant-add-auth{
  margin-top:9px;
  padding:8px 10px;
  font-size:11.5px;
}

@media(max-width:620px){
  .custom-split-row.multi{grid-template-columns:1fr;}
  .participant-display{max-width:100%;}
  .ticket-route{overflow-wrap:anywhere;}
  .balance-person-row{align-items:flex-start;}
}

/* v2.3: PDF-/Prodega-Belegleser */
.document-summary{margin:12px 0;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:#f6f1e5;font-family:'Space Grotesk',sans-serif;font-size:12px;line-height:1.6}
.document-summary strong{color:var(--ink)}
.document-summary .doc-badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#173f53;color:white;font-weight:700;margin-right:6px}
.document-summary .confidence{font-weight:700;color:#1f6b49}
.item-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px;font-size:10px;color:var(--ink-soft)}
.item-meta span{padding:3px 7px;border-radius:999px;background:#f4efe2;border:1px solid var(--line)}
.item-meta .deposit{background:#e6f2ea;color:#1d6647}


/* v2.4: Aufteilung auf frei ausgewählte Personen */
.selected-person-row{
  display:none;
  margin-top:10px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:9px;
  background:var(--paper-warm);
}
.selected-person-row.show{display:block;}
.selected-person-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
  font-family:'Space Grotesk',monospace;
  font-size:11.5px;
  color:var(--ink-soft);
}
.selected-person-head button{
  flex:0 0 auto;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--paper);
  color:var(--ink-soft);
  padding:4px 9px;
  font-family:'Space Grotesk',monospace;
  font-size:10.5px;
  cursor:pointer;
}
.selected-person-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
}
.selected-person-option{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0;
  padding:8px 9px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--paper);
  color:var(--ink);
  font-size:12px;
  text-transform:none;
  letter-spacing:0;
  cursor:pointer;
}
.selected-person-option:has(input:checked){
  border-color:var(--blue);
  background:#eaf0f2;
  font-weight:700;
}
.selected-person-option input{width:auto;margin:0;accent-color:var(--blue);}
.selected-person-hint{
  margin:8px 0 0;
  font-family:'Space Grotesk',monospace;
  font-size:11px;
  color:var(--success);
}
.selected-person-hint.invalid{color:var(--red);font-weight:700;}
.item-shared-people{
  margin:8px 0 9px;
  padding:8px 9px;
  border:1px dashed var(--line);
  border-radius:8px;
  background:var(--paper-warm);
}
.item-shared-people-title{
  display:block;
  margin-bottom:6px;
  font-family:'Space Grotesk',monospace;
  font-size:10.5px;
  color:var(--ink-soft);
}
.item-shared-people-grid{display:flex;flex-wrap:wrap;gap:5px;}
.item-shared-person{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin:0;
  padding:5px 8px;
  border:1px solid var(--line);
  border-radius:13px;
  background:var(--paper);
  color:var(--ink);
  font-family:'Space Grotesk',monospace;
  font-size:10.5px;
  text-transform:none;
  letter-spacing:0;
  cursor:pointer;
}
.item-shared-person:has(input:checked){border-color:var(--blue);background:#eaf0f2;font-weight:700;}
.item-shared-person input{width:auto;margin:0;accent-color:var(--blue);}
.item-shared-warning{display:block;margin-top:6px;font-family:'Space Grotesk',monospace;font-size:10.5px;color:var(--red);font-weight:700;}
@media(max-width:620px){
  .selected-person-grid{grid-template-columns:1fr;}
  .selected-person-head{align-items:flex-start;}
}
