.cidb-expenses, .cidb-expenses * { box-sizing: border-box; }
.cidb-expenses { --cidb-navy:#173448; --cidb-ink:#23384a; --cidb-teal:#007e83; --cidb-border:#dce4eb; --cidb-soft:#f6f9fb; max-width:960px; margin:26px auto; color:var(--cidb-ink); font:inherit; background:#fff; border:1px solid #e2e9ef; border-radius:18px; box-shadow:0 18px 45px rgba(17,42,60,.055); overflow:hidden; }
.cidb-expenses__top { background:linear-gradient(122deg,#173448,#27556c); color:white; padding:32px 36px; }
.cidb-expenses__eyebrow { color:#bde7e6; font-size:12px; font-weight:750; letter-spacing:2px; margin:0 0 9px; }
.cidb-expenses__top h2 { color:#fff; font-size:clamp(23px,3vw,31px); line-height:1.2; margin:0 0 13px; font-weight:750; }
.cidb-expenses__top p:last-child { margin:0; color:#e8f1f4; font-size:15px; line-height:1.7; }
.cidb-expenses__notice { margin:24px 32px 0; padding:15px 18px; border-radius:10px; font-size:14px; line-height:1.6; }
.cidb-expenses__notice--warning { background:#fff8ea; border:1px solid #f6e3ae; color:#5b4722; }
.cidb-expenses__notice--success { background:#effaf5; border:1px solid #bee9d2; color:#176243; }
.cidb-expenses__notice--error { background:#fff1f0; border:1px solid #f4c5c0; color:#8c302e; }
.cidb-expenses__response { margin:24px 32px 0; padding:16px 18px; border-radius:10px; line-height:1.6; font-size:14px; }
.cidb-expenses__response[hidden] { display:none; }
.cidb-expenses__response.is-success { background:#effaf5; border:1px solid #bee9d2; color:#176243; }
.cidb-expenses__response.is-error { background:#fff1f0; border:1px solid #f4c5c0; color:#8c302e; }
.cidb-expenses__section { padding:30px 32px; border-bottom:1px solid #eaf0f4; }
.cidb-expenses__section h3 { color:var(--cidb-navy); font-size:19px; font-weight:750; margin:0 0 22px; }
.cidb-expenses__fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.cidb-expenses__field label { display:block; font-weight:650; margin:0 0 8px; font-size:14px; }
.cidb-expenses__optional { font-weight:400; color:#71808f; }
.cidb-expenses__field input { display:block; background:#fff; width:100%; height:47px; border:1px solid #cdd9e1; color:var(--cidb-ink); padding:10px 13px; border-radius:8px; font:inherit; font-size:15px; box-shadow:none; outline:none; }
.cidb-expenses input:focus { border-color:var(--cidb-teal); outline:3px solid rgba(0,126,131,.13); }
.cidb-expenses__hint { font-size:14px; color:#586b7b; margin:-7px 0 20px; line-height:1.7; }
.cidb-expenses__table { overflow:hidden; border:1px solid var(--cidb-border); border-radius:12px; }
.cidb-expenses__tablehead, .cidb-expenses__tablerow, .cidb-expenses__total { display:grid; grid-template-columns:minmax(0,1fr) 195px; align-items:center; gap:16px; padding:12px 18px; }
.cidb-expenses__tablehead { background:var(--cidb-navy); color:white; font-size:13px; font-weight:750; }
.cidb-expenses__tablerow { min-height:66px; border-bottom:1px solid #e7edf1; }
.cidb-expenses__tablerow:nth-child(odd) { background:#fafcfd; }
.cidb-expenses__tablerow label { font-size:14px; line-height:1.45; cursor:pointer; }
.cidb-expenses__money { display:flex; align-items:center; border:1px solid #cbd8e1; border-radius:8px; background:white; overflow:hidden; height:42px; }
.cidb-expenses__money:focus-within { border-color:var(--cidb-teal); outline:3px solid rgba(0,126,131,.13); }
.cidb-expenses__money span { background:#f0f5f7; padding:10px 12px; height:100%; border-right:1px solid #e2e9ee; color:#506778; font-weight:600; }
.cidb-expenses__money input { min-width:0; width:100%; padding:8px 12px; border:0 !important; border-radius:0 !important; outline:none !important; box-shadow:none !important; height:100%; font:inherit; font-size:15px; color:#1b3d50; text-align:right; background:transparent; }
.cidb-expenses__money input::placeholder { color:#9aa7b1; opacity:1; }
.cidb-expenses__total { background:#e4f3f2; min-height:66px; color:#183d47; font-size:16px; }
.cidb-expenses__total output { font-weight:800; font-size:21px; text-align:right; }
.cidb-expenses__footnote { font-size:13px; color:#647587; line-height:1.6; margin:13px 0 0; }
.cidb-expenses__check { display:flex; align-items:flex-start; gap:13px; margin:0 0 16px; background:var(--cidb-soft); border:1px solid #e5ebf0; padding:17px; border-radius:10px; cursor:pointer; line-height:1.65; font-size:14px; }
.cidb-expenses__check input { flex:none; width:19px; height:19px; min-width:19px; margin:3px 0 0; accent-color:var(--cidb-teal); }
.cidb-expenses__check em { font-style:normal; font-weight:700; color:#9d4e30; }
.cidb-expenses__privacy { font-size:12px; line-height:1.7; color:#657587; margin:18px 0 0; }
.cidb-expenses__privacy a { color:#006c7d; text-decoration:underline; }
.cidb-expenses__actions { display:flex; align-items:center; gap:18px; padding:25px 32px 32px; flex-wrap:wrap; }
.cidb-expenses__submit { appearance:none; border:0; padding:15px 23px; color:white; background:#007e83; font:inherit; font-size:15px; font-weight:750; cursor:pointer; border-radius:9px; transition:background .15s ease, transform .15s ease; }
.cidb-expenses__submit:hover { background:#006a71; transform:translateY(-1px); }
.cidb-expenses__submit:disabled { opacity:.55; cursor:wait; transform:none; }
.cidb-expenses__actions p { color:#647587; font-size:13px; margin:0; }
.cidb-expenses__honeypot { position:absolute !important; left:-9999px !important; top:auto !important; height:1px !important; width:1px !important; overflow:hidden !important; }
@media (max-width:650px) {
 .cidb-expenses { margin:14px auto; border-radius:12px; }
 .cidb-expenses__top { padding:24px 20px; }
 .cidb-expenses__notice,.cidb-expenses__response { margin:16px 18px 0; }
 .cidb-expenses__section { padding:24px 18px; }
 .cidb-expenses__fields { grid-template-columns:1fr; gap:17px; }
 .cidb-expenses__tablehead { display:none; }
 .cidb-expenses__tablerow { grid-template-columns:1fr; gap:9px; padding:13px 14px; }
 .cidb-expenses__money { max-width:none; }
 .cidb-expenses__total { grid-template-columns:1fr auto; padding:14px; gap:8px; font-size:14px; }
 .cidb-expenses__total output { font-size:19px; }
 .cidb-expenses__actions { padding:23px 18px; }
 .cidb-expenses__submit { width:100%; }
}
/* v2 editable client fields: selects, textareas and optional checkboxes */
.cidb-expenses__field--full { grid-column:1 / -1; }
.cidb-expenses__field select,.cidb-expenses__field textarea { display:block; width:100%; border:1px solid #cdd9e1; border-radius:8px; padding:11px 13px; background:#fff; color:var(--cidb-ink); font:inherit; font-size:15px; }
.cidb-expenses__field select { height:47px; }
.cidb-expenses__field textarea { resize:vertical; min-height:92px; }
.cidb-expenses__field select:focus,.cidb-expenses__field textarea:focus { border-color:var(--cidb-teal); outline:3px solid rgba(0,126,131,.13); }
.cidb-expenses__field .cidb-expenses__fieldcheck { display:flex; align-items:flex-start; gap:10px; cursor:pointer; padding-top:14px; }
.cidb-expenses__field .cidb-expenses__fieldcheck input[type=checkbox] { width:19px; height:19px; flex:none; accent-color:var(--cidb-teal); padding:0; margin:1px 0 0; }
@media (max-width:650px){ .cidb-expenses__field--full { grid-column:auto; } }
