/* Gastos — Odoo Mis gastos / form */
.exp-odo { display:flex; flex-direction:column; gap:14px; min-height:40vh; position:relative; }
.exp-odo-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:10px 14px; padding-bottom:6px; }
.exp-odo-cargar, .exp-odo .btn-primary, .exp-odo-form .btn-primary, .exp-odo-empty .btn-primary {
  background: var(--o-brand, #714B67) !important;
  border-color: var(--o-brand, #714B67) !important;
  color:#fff !important;
}
.exp-odo-nuevo { background:#212529 !important; border-color:#212529 !important; color:#fff !important; }
.exp-odo-title { margin:0; font-size:1.1rem; font-weight:650; color:var(--sfe-navy,#1e2b3c); }
.exp-odo-search { flex:1 1 260px; max-width:520px; margin:0 auto; }
.exp-odo-search__inner {
  display:flex; align-items:center; gap:8px; min-height:34px; flex-wrap:wrap;
  border:1px solid #ced4da; border-radius:4px; padding:2px 8px; background:#fff;
}
.exp-odo-search input[type="search"] {
  flex:1 1 120px; border:0; outline:none; min-height:28px; font-size:.875rem; background:transparent;
}
.exp-odo-chip {
  display:inline-flex; align-items:center; gap:6px; background:#e7f1ff; color:#0d6efd;
  border-radius:12px; padding:2px 8px; font-size:.75rem; font-weight:600;
}
.exp-odo-chip a { color:inherit; text-decoration:none; font-weight:700; }
.exp-odo-meta { display:flex; align-items:center; gap:10px; margin-left:auto; color:#6c757d; font-size:.8125rem; }
.exp-odo-views { display:inline-flex; border:1px solid #ced4da; border-radius:4px; overflow:hidden; }
.exp-odo-view-btn {
  display:inline-flex; align-items:center; justify-content:center; width:32px; height:30px;
  text-decoration:none; color:#495057; background:#fff; border-right:1px solid #ced4da; font-size:.85rem;
}
.exp-odo-view-btn:last-child { border-right:0; }
.exp-odo-view-btn.is-active { background:#e7f1ff; color:#0d6efd; }
.exp-odo-kpi {
  display:flex; align-items:center; flex-wrap:wrap; gap:8px 4px;
  background:#fff; border:1px solid #e9ecef; border-radius:4px; padding:10px 14px;
}
.exp-odo-kpi__item { display:flex; align-items:baseline; gap:8px; font-size:.875rem; color:#495057; }
.exp-odo-kpi__item strong { font-size:1rem; color:#1e2b3c; font-variant-numeric:tabular-nums; }
.exp-odo-kpi__sep { color:#adb5bd; font-size:1.1rem; margin:0 6px; }
.exp-odo-table-wrap { position:relative; overflow:auto; border:1px solid #e9ecef; border-radius:4px; background:#fff; min-height:280px; }
.exp-odo-table th { white-space:nowrap; font-size:.75rem; color:#6c757d; }
.exp-odo-table.is-empty, .exp-odo-table-wrap.is-empty .exp-odo-table { opacity:.35; }
.exp-odo-ghost td { color:#dee2e6; }
.exp-odo-check { width:36px; }
.exp-odo-muted { color:#adb5bd; }
.exp-odo-empty {
  position:absolute; inset:24px 8% auto; z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:12px;
}
.exp-odo-empty__card {
  background:rgba(255,255,255,.97); border:2px dashed #ced4da; border-radius:10px;
  padding:28px 32px; text-align:center; max-width:420px; width:100%;
  box-shadow:0 8px 28px rgba(30,43,60,.08);
}
.exp-odo-empty.is-drag .exp-odo-empty__card { border-color:var(--o-brand,#714B67); background:#f8f1f6; }
.exp-odo-empty__art {
  position:relative; height:110px; margin:0 auto 12px; width:160px;
}
.exp-odo-phone {
  position:absolute; left:18px; top:8px; width:54px; height:96px; border-radius:8px;
  background:linear-gradient(160deg,#3a3a3a,#1a1a1a); box-shadow:0 4px 12px rgba(0,0,0,.2);
}
.exp-odo-phone::after {
  content:""; position:absolute; left:6px; right:6px; top:14px; height:2px; background:#4dabf7;
  box-shadow:0 18px 0 #4dabf7, 0 36px 0 #4dabf7;
}
.exp-odo-receipt {
  position:absolute; right:8px; top:18px; width:88px; height:78px; background:#fff;
  border:1px solid #dee2e6; border-radius:4px; padding:8px; display:flex; flex-direction:column; gap:6px;
  font-size:.65rem; color:#495057; box-shadow:0 4px 10px rgba(0,0,0,.08);
}
.exp-odo-receipt span { display:block; height:4px; background:#e9ecef; border-radius:2px; }
.exp-odo-empty__title { margin:0 0 8px; font-size:1rem; font-weight:600; color:#1e2b3c; }
.exp-odo-sample-link {
  background:none; border:0; color:#0d6efd; cursor:pointer; font-size:.875rem; text-decoration:underline; padding:0;
}
.exp-odo-tip { margin:0; font-size:.8rem; color:#6c757d; text-align:center; }
.exp-odo-tip code { font-size:.8rem; color:#495057; }
.exp-odo-stub { padding:24px; background:#fff; border:1px solid #e9ecef; border-radius:6px; }
.exp-odo-form__toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-bottom:10px; }
.exp-odo-form__crumbs { display:flex; gap:8px; align-items:center; font-size:.9rem; }
.exp-odo-form__crumbs a { color:var(--o-brand,#714B67); text-decoration:none; }
.exp-odo-statusbar { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-bottom:14px; }
.exp-odo-statusbar__actions { display:flex; gap:8px; flex-wrap:wrap; }
.exp-odo-stages {
  display:flex; list-style:none; margin:0 0 0 auto; padding:0; gap:0; flex-wrap:wrap;
}
.exp-odo-stage {
  position:relative; padding:8px 18px 8px 28px; background:#f1f3f5; color:#6c757d;
  font-size:.8rem; font-weight:600; clip-path:polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%, 12px 50%);
}
.exp-odo-stage:first-child { padding-left:16px; clip-path:polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%); border-radius:4px 0 0 4px; }
.exp-odo-stage.is-active { background:#cfe2ff; color:#084298; }
.exp-odo-stage.is-done { background:#e9ecef; color:#495057; }
.exp-odo-form__layout { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:16px; align-items:start; }
@media (max-width:960px){ .exp-odo-form__layout { grid-template-columns:1fr; } }
.exp-odo-form__sheet {
  background:#fff; border:1px solid #e9ecef; border-radius:6px; padding:18px 20px;
}
.exp-odo-field { display:flex; flex-direction:column; gap:4px; font-size:.8rem; color:#6c757d; margin-bottom:12px; }
.exp-odo-field input, .exp-odo-field select, .exp-odo-field textarea {
  border:1px solid #ced4da; border-radius:4px; padding:6px 8px; font-size:.875rem; color:#1e2b3c; background:#fff;
}
.exp-odo-field--title input {
  font-size:1.35rem; font-weight:500; border:0; border-bottom:1px solid #ced4da; border-radius:0;
  padding:8px 0; width:100%; outline:none;
}
.exp-odo-form__grid {
  display:grid; grid-template-columns:1fr 1fr; gap:8px 20px;
}
@media (max-width:720px){ .exp-odo-form__grid { grid-template-columns:1fr; } }
.exp-odo-tax-row { display:flex; align-items:center; gap:8px; }
.exp-odo-tax-row input[type=number] { flex:1; }
.exp-odo-reimburse {
  border:0; margin:0; padding:0; grid-column:1 / -1;
}
.exp-odo-reimburse legend { font-size:.8rem; color:#6c757d; margin-bottom:6px; }
.exp-odo-radio { display:inline-flex; align-items:center; gap:6px; margin-right:14px; color:#1e2b3c; font-size:.875rem; }
.exp-odo-form__footer { display:flex; gap:8px; margin-top:8px; }
.exp-odo-chatter {
  background:#fff; border:1px solid #e9ecef; border-radius:6px; padding:14px; min-height:200px;
}
.exp-odo-chatter__actions { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px; }
.exp-odo-chatter__log { font-size:.8125rem; color:#6c757d; }
.sr-only {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.exp-odo-upload-form { display:inline; margin:0; }
