:root{
  --lino:#EBEFE3; --papel:#F7F4EA; --salvia:#B2BDA0;
  --oliva:#526534; --bosque:#2F3B1C; --oro:#A8843C; --oro-claro:#C9A961;
  --linea:rgba(168,132,60,.35);
  --sombra:0 14px 40px -20px rgba(47,59,28,.35);
}
*{ margin:0; padding:0; box-sizing:border-box; }
body{
  background:var(--lino); color:var(--bosque);
  font-family:"Cormorant Garamond", Georgia, serif;
  font-size:18px; line-height:1.5;
}
/* escala mayor en desktop: se veía pequeño en pantallas grandes */
@media (min-width:1200px){
  body{ font-size:20px; }
  .wrap{ max-width:1280px; }
}
@media (min-width:1700px){
  body{ font-size:21px; }
  .wrap{ max-width:1440px; }
}
a{ color:var(--oliva); }

/* ---------- tipografía ---------- */
.display{ font-weight:600; line-height:1.1; letter-spacing:.01em; font-size:clamp(24px,4vw,32px); }
.script{ font-family:"Pinyon Script", cursive; color:var(--bosque); line-height:1.05; }
.eyebrow{
  font-family:"IBM Plex Mono", monospace; font-size:11px; letter-spacing:.3em;
  text-transform:uppercase; color:var(--oliva); margin-bottom:12px;
}
.muted{ color:var(--oliva); opacity:.8; }
.r{ text-align:right; }

/* ---------- topbar del panel ---------- */
.topbar{
  display:flex; align-items:center; gap:20px;
  padding:12px clamp(16px,4vw,32px);
  background:var(--papel); border-bottom:1px solid var(--linea);
  position:sticky; top:0; z-index:10;
}
.brand-mini{ font-family:"IBM Plex Mono", monospace; font-size:14px; letter-spacing:.12em; color:var(--bosque); }
.mainnav{ display:flex; gap:6px; margin-left:8px; }
.mainnav a{
  text-decoration:none; color:var(--oliva); padding:7px 16px; border-radius:999px;
  font-size:16px; letter-spacing:.02em;
}
.mainnav a.on{ background:var(--oro); color:#fff; }
.userbox{ margin-left:auto; display:flex; align-items:center; gap:10px; font-size:14px; }
.uname{ color:var(--bosque); }
.role{ font-family:"IBM Plex Mono",monospace; font-size:10px; text-transform:uppercase; letter-spacing:.14em;
  padding:2px 8px; border:1px solid var(--linea); border-radius:999px; color:var(--oliva); }

/* ---------- contenedores ---------- */
.wrap{ max-width:1040px; margin:0 auto; padding:clamp(18px,4vw,34px); }
.page-title{ font-weight:600; font-size:26px; margin-bottom:20px; display:flex; align-items:center; gap:12px; }
.count-pill,.mini-tag,.tag{ font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.06em; }
.count-pill{ background:var(--salvia); color:var(--bosque); padding:3px 10px; border-radius:999px; }
.paper{
  background:var(--papel); border:1px solid var(--linea);
  border-radius:12px; box-shadow:var(--sombra); padding:clamp(18px,3vw,26px);
}

/* ---------- botones y formularios ---------- */
.cta{
  display:inline-block; border:0; cursor:pointer;
  background:linear-gradient(180deg,var(--oro-claro),var(--oro));
  color:#fff; font-family:"IBM Plex Mono",monospace; font-size:13px; letter-spacing:.18em;
  text-transform:uppercase; padding:14px 22px; border-radius:8px; text-decoration:none;
}
.cta.wide{ width:100%; text-align:center; }
.btn{ cursor:pointer; border:1px solid var(--oro); background:transparent; color:var(--oliva);
  padding:8px 16px; border-radius:8px; font-size:14px; text-decoration:none; }
.btn.ghost{ border-color:var(--linea); }
.linkbtn{ background:none; border:0; cursor:pointer; color:var(--oliva); text-decoration:underline; font-size:14px; }
.maps{ color:var(--oro); text-decoration:none; border-bottom:1px solid var(--linea); }

.form{ display:flex; flex-direction:column; gap:14px; margin-top:16px; }
label{ display:block; font-size:14px; color:var(--oliva); }
input,select,textarea{
  width:100%; margin-top:5px; padding:10px 12px; font-size:16px; font-family:inherit;
  background:#fff; border:1px solid var(--linea); border-radius:8px; color:var(--bosque);
}
input:focus,select,textarea:focus{ outline:none; border-color:var(--oro); }
.err{ background:#f7e7df; color:#9a5a3c; padding:10px 14px; border-radius:8px; font-size:14px; }
.hint{ font-size:13px; color:var(--oliva); opacity:.85; margin-top:6px; }

/* ---------- login / error ---------- */
.authwrap{ min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px; }
.authcard{ width:min(92vw,380px); text-align:center; }
.authcard .form{ text-align:left; }

/* ---------- dashboard tiles ---------- */
.tiles{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:14px; margin-bottom:24px; }
.tile{ background:var(--papel); border:1px solid var(--linea); border-radius:12px; padding:18px; box-shadow:var(--sombra); }
.tile-num{ font-size:38px; font-weight:600; line-height:1; color:var(--bosque); }
.tile-lbl{ font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--oliva); margin-top:6px; }
.tile-sub{ font-size:13px; color:var(--oliva); margin-top:4px; }
.tile.ok .tile-num{ color:#3f7d3f; } .tile.warn .tile-num{ color:var(--oro); }
.tile.no .tile-num{ color:#9a5a3c; } .tile.gold{ background:linear-gradient(180deg,#fff,#f3ead2); }

.cols{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; }
.block-title{ font-size:16px; font-weight:600; margin-bottom:10px; }
table.mini{ width:100%; border-collapse:collapse; }
table.mini td{ padding:5px 0; border-bottom:1px dashed var(--linea); font-size:15px; }

/* ---------- badges de estado ---------- */
.badge{ font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.1em; text-transform:uppercase;
  padding:3px 9px; border-radius:999px; white-space:nowrap; }
.b-pendiente{ background:#efe7cf; color:#7a5c1e; }
.b-confirmado{ background:#dff0dd; color:#2f6b2f; }
.b-parcial{ background:#e7eef7; color:#3a5a86; }
.b-no_asiste{ background:#f4e2da; color:#9a5a3c; }
.b-tentativo{ background:#eee; color:#666; }

/* ---------- filtros + lista de invitados ---------- */
.filters{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:20px; align-items:center; }
.filters input,.filters select{ width:auto; margin-top:0; }
.filters input[type=search]{ min-width:220px; flex:1; }
.empty{ color:var(--oliva); }

.glist{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:16px; }
.gcard{ padding:16px 18px; }
.gcard-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:10px; margin-bottom:10px; }
.gname{ font-size:18px; font-weight:600; }
.gmeta{ display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin-top:4px; }
.tag{ background:var(--lino); color:var(--oliva); padding:2px 8px; border-radius:999px; }
.mini-tag{ background:var(--lino); color:var(--oliva); padding:1px 7px; border-radius:999px; margin-left:6px; }
.mini-tag.gold{ background:#f3ead2; color:#7a5c1e; }
table.people{ width:100%; border-collapse:collapse; margin:6px 0; }
table.people td{ padding:6px 0; border-bottom:1px dashed var(--linea); vertical-align:middle; }
.pn{ font-size:15px; } .pa{ text-align:right; width:120px; }
.inline{ display:inline; } .inline select{ width:auto; margin:0; padding:5px 8px; font-size:13px; }
.asel.a-si{ border-color:#3f7d3f; } .asel.a-no{ border-color:#9a5a3c; }
.gcard-foot{ display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:8px; }
.rsvp-link{ font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--oro); text-decoration:none; }

/* ---------- RSVP público ---------- */
.rsvpwrap{ min-height:100vh; display:flex; align-items:flex-start; justify-content:center; padding:24px 16px; }
.rsvpcard{ width:min(94vw,560px); }
.rsvpcard.center{ text-align:center; }
.rsvp-hello{ font-size:clamp(30px,7vw,42px); margin:2px 0 6px; }
.rsvp-intro{ color:var(--oliva); margin-bottom:18px; }
.rsvpform{ display:flex; flex-direction:column; gap:16px; }
.person{ border:1px solid var(--linea); border-radius:10px; padding:12px 14px; background:#fff; }
.pcheck{ display:flex; align-items:center; gap:10px; font-size:17px; color:var(--bosque); cursor:pointer; }
.pcheck input{ width:20px; height:20px; margin:0; accent-color:var(--oro); }
.pname{ font-weight:600; flex:1; }
.comes{ font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--oliva); }
.pfields{ display:flex; gap:10px; margin-top:10px; flex-wrap:wrap; }
.fld{ display:flex; flex-direction:column; font-size:13px; color:var(--oliva); }
.fld.grow{ flex:1; min-width:160px; } .fld input,.fld select,.fld textarea{ margin-top:4px; }
.contact{ border:1px solid var(--linea); border-radius:10px; padding:12px 14px; }
.contact legend{ padding:0 8px; font-size:14px; color:var(--oliva); }
.two{ display:flex; gap:12px; flex-wrap:wrap; } .two .fld{ flex:1; min-width:150px; }
.stamp-ok{ display:inline-block; font-family:"IBM Plex Mono",monospace; letter-spacing:.14em; text-transform:uppercase;
  font-size:12px; color:#2f6b2f; border:1.5px solid #2f6b2f; border-radius:8px; padding:8px 16px; transform:rotate(-4deg); margin-bottom:10px; }

/* ---------- módulos: presupuesto / proveedores / calendario / usuarios ---------- */
.adder{ margin-bottom:20px; }
.adder summary{ cursor:pointer; font-family:"IBM Plex Mono",monospace; font-size:12px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--oliva); margin-bottom:10px; }
.rowform{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.rowform input,.rowform select{ width:auto; margin-top:0; flex:1; min-width:120px; }
.rowform .num{ max-width:110px; flex:0 0 auto; } .rowform .sm{ max-width:150px; flex:0 0 auto; }

.rowhead{ display:flex; gap:8px; padding:0 4px 8px; font-family:"IBM Plex Mono",monospace;
  font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--oliva); }
.erow{ display:flex; gap:8px; align-items:center; padding:5px 4px; border-bottom:1px dashed var(--linea); }
.rowedit{ display:flex; gap:8px; align-items:center; flex:1; }
.erow input,.erow select{ margin-top:0; padding:7px 9px; font-size:14px; }
.c-concepto{ flex:2; min-width:140px; } .c-num{ flex:1; max-width:100px; text-align:right; }
.c-num.num{ text-align:right; } .c-sm{ flex:1; min-width:90px; max-width:150px; }
.c-save{ flex:0 0 auto; } .c-acts{ flex:0 0 auto; min-width:60px; text-align:right; }
.c-del{ flex:0 0 auto; }
.danger{ color:#9a5a3c; } .linkbtn.danger{ text-decoration:none; }
.vmeta{ display:flex; gap:16px; font-size:14px; color:var(--oliva); margin:6px 0; flex-wrap:wrap; }
.urow span{ display:flex; align-items:center; }

.cols2{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:16px; }
.cevent{ display:flex; align-items:center; gap:10px; padding:9px 2px; border-bottom:1px dashed var(--linea); }
.cevent.done .ctitle{ text-decoration:line-through; color:var(--oliva); opacity:.7; }
.check{ background:none; border:1.4px solid var(--oro); color:var(--oro); cursor:pointer;
  width:26px; height:26px; border-radius:50%; flex:0 0 auto; font-size:14px; }
.cevent.done .check{ background:var(--oro); color:#fff; }
.cbody{ flex:1; } .ctitle{ font-size:16px; } .cmeta{ font-size:13px; color:var(--oliva); }
.ctime{ font-family:"IBM Plex Mono",monospace; font-size:13px; color:var(--oro); min-width:56px; flex:0 0 auto; }
.role-owner{ border-color:#3f7d3f; color:#3f7d3f; } .role-planner{ border-color:var(--oro); color:var(--oro); }
.role-admin{ border-color:var(--bosque); color:var(--bosque); }

/* ---------- gestión de invitados: toggle, lista, familia ---------- */
.page-head{ display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:16px; }
.page-head .page-title{ margin-bottom:0; }
.head-actions{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.viewtoggle{ display:flex; border:1px solid var(--linea); border-radius:8px; overflow:hidden; }
.viewtoggle a{ padding:7px 14px; text-decoration:none; color:var(--oliva); font-size:15px; }
.viewtoggle a.on{ background:var(--oro); color:#fff; }
.crumb{ margin-bottom:8px; } .crumb a{ text-decoration:none; }
.sm-btn{ padding:6px 12px; font-size:14px; }

.bulkbar{ display:flex; align-items:center; gap:10px; margin-bottom:12px; font-size:15px; color:var(--oliva); flex-wrap:wrap; }
.bulkbar select{ width:auto; margin:0; }
.tablewrap{ padding:10px 14px; }
.lrow{ display:flex; gap:10px; align-items:center; }
.lrow.erow{ cursor:pointer; } .lrow.erow:hover{ background:rgba(178,189,160,.14); }
.c-chk{ flex:0 0 24px; } .c-chk input{ width:18px; height:18px; margin:0; accent-color:var(--oro); }
.c-nom{ flex:2; min-width:150px; font-weight:600; }
.c-fam{ flex:2; min-width:150px; display:flex; align-items:center; gap:6px; }
.c-fam a{ text-decoration:none; }
.a-si{ color:#3f7d3f; } .a-no{ color:#9a5a3c; }

.grid2{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; margin-bottom:12px; }
.gedit .chk{ display:flex; align-items:center; gap:8px; } .gedit .chk input{ width:auto; }
.gedit-foot{ margin-top:10px; }

.member{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 10px; padding:10px 4px; border-bottom:1px dashed var(--linea); }
.member-edit{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; flex:1; }
.member-edit input,.member-edit select{ margin-top:0; padding:7px 9px; font-size:15px; }
.m-nom{ flex:2; min-width:150px; } .m-sm{ flex:1; min-width:90px; max-width:130px; } .m-xs{ flex:0 0 70px; }
.member-acts{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.member-acts .mover select{ width:auto; margin:0; padding:5px 8px; font-size:13px; }
.delegate{ font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.08em; color:var(--oro); }
.star{ color:var(--oro); }
.addmember{ margin-top:14px; }
.danger-zone{ margin-top:22px; text-align:right; }
.suglist{ list-style:none; margin:8px 0; } .suglist li{ padding:4px 0; border-bottom:1px dashed var(--linea); }
/* vista lista: contenedor más ancho en desktop */
.wrap.wide{ max-width:1440px; }
@media (min-width:1500px){ .wrap.wide{ max-width:1680px; } }
@media (min-width:1800px){ .wrap.wide{ max-width:1840px; } }
.lrow .c-nom{ flex:2; min-width:150px; } .lrow .c-fam{ flex:2; min-width:130px; }
.lrow .c-nom a{ text-decoration:none; color:var(--bosque); }
.sidebyside{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
@media (max-width:700px){ .sidebyside{ grid-template-columns:1fr; } }
/* confirmaciones entrantes */
.navbadge{ background:var(--oro); color:#fff; border-radius:999px; padding:0 7px; font-size:12px; font-family:"IBM Plex Mono",monospace; }
.entrada{ margin-bottom:12px; } .entrada.done{ opacity:.6; }
.entrada-head{ display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:8px; }
.ename{ margin:0 6px; } .erow2{ font-size:15px; padding:2px 0; } .erow2 .k{ color:var(--oliva); font-size:13px; }
.entrada-foot{ display:flex; gap:14px; align-items:center; margin-top:10px; }
/* flujo /asistir (identificación por nombre) */
.cand-wrap{ margin-top:20px; border-top:1px solid var(--linea); padding-top:16px; }
.cand-title{ font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--oliva); margin-bottom:10px; }
.cand{ display:flex; align-items:center; gap:12px; padding:12px 14px; border:1px solid var(--linea); border-radius:10px; margin-bottom:8px; text-decoration:none; color:var(--bosque); background:#fff; }
.cand:hover{ border-color:var(--oro); background:#fffdf7; }
.cand-name{ font-weight:600; font-size:17px; }
.cand-meta{ display:flex; gap:6px; align-items:center; flex-wrap:wrap; flex:1; }
.cand-go{ color:var(--oro); font-size:20px; }
.reabierto{ background:#dff0dd; color:#2f6b2f; padding:9px 13px; border-radius:8px; font-size:14px; margin-bottom:12px; }
/* configuración + mesas */
.conftabs{ display:flex; gap:6px; border-bottom:1px solid var(--linea); margin-bottom:22px; }
.conftabs a{ padding:10px 18px; text-decoration:none; color:var(--oliva); border-bottom:2px solid transparent; font-size:16px; }
.conftabs a.on{ color:var(--bosque); border-bottom-color:var(--oro); font-weight:600; }
.mesas-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:16px; }
.mesa{ padding:16px 18px; } .mesa.principal{ box-shadow:0 0 0 1.5px var(--oro) inset, var(--sombra); }
.mesa-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; gap:8px; }
.mesa-nom{ font-size:18px; font-weight:600; }
.occ{ font-family:"IBM Plex Mono",monospace; font-size:14px; color:var(--oliva); background:var(--lino); padding:2px 10px; border-radius:999px; }
.occ.over{ background:#f4e2da; color:#9a5a3c; }
.warnline{ color:#9a5a3c; font-size:13px; margin-bottom:6px; }
.seated{ list-style:none; margin:4px 0; }
.seated li{ display:flex; justify-content:space-between; align-items:center; gap:8px; padding:5px 0; border-bottom:1px dashed var(--linea); font-size:15px; }
.seated li.declina{ opacity:.55; }
.seated li form.inline select{ width:auto; margin:0; padding:4px 8px; font-size:13px; }
.mesa-edit{ margin-top:8px; } .mesa-edit summary{ cursor:pointer; font-size:13px; color:var(--oliva); }
.mesa-edit .rowform{ margin-top:8px; }
/* fotos / apariencia */
.avatar-xs{ width:26px; height:26px; border-radius:50%; object-fit:cover; vertical-align:middle; margin-right:7px; border:1px solid var(--linea); }
.foto-block{ display:flex; gap:18px; align-items:center; margin-bottom:16px; }
.avatar-lg{ width:96px; height:96px; border-radius:50%; overflow:hidden; flex:0 0 auto; background:var(--lino); display:flex; align-items:center; justify-content:center; border:1px solid var(--linea); }
.avatar-lg img{ width:100%; height:100%; object-fit:cover; }
.avatar-ph{ font-size:44px; opacity:.45; }
.foto-form{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin:6px 0; }
.foto-form input[type=file]{ width:auto; margin:0; font-size:14px; }
.hero-preview img{ width:100%; max-height:280px; object-fit:cover; border-radius:10px; }
.hero-banner{ position:relative; border-radius:12px; overflow:hidden; margin-bottom:22px; box-shadow:var(--sombra); }
.hero-banner img{ width:100%; height:clamp(160px,28vw,300px); object-fit:cover; display:block; }
.hero-cap{ position:absolute; left:0; right:0; bottom:0; padding:26px 20px 14px; color:#fff; font-family:"Pinyon Script",cursive; font-size:clamp(28px,5vw,42px); background:linear-gradient(transparent, rgba(47,59,28,.62)); }
.sep-dot{ color:var(--oro); }
/* truncado de nombres largos */
.trunc{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.c-nom{ min-width:0; } .c-nom .trunc{ display:inline-block; max-width:calc(100% - 36px); vertical-align:middle; }
.mesa-headL{ display:flex; align-items:center; gap:8px; min-width:0; flex:1; }
.mesa-nom.trunc{ min-width:0; }
.pname-wrap{ flex:1; min-width:0; display:flex; align-items:center; gap:6px; }
.pname-wrap .trunc{ min-width:0; }
/* botones de reordenar ▲▼ */
.ord{ display:inline-flex; flex-direction:column; gap:1px; flex:0 0 auto; }
.ord form{ display:block; line-height:0; }
.ordbtn{ background:none; border:1px solid var(--linea); color:var(--oliva); cursor:pointer; width:22px; height:15px; line-height:1; font-size:8px; border-radius:4px; padding:0; }
.ordbtn:hover{ border-color:var(--oro); color:var(--oro); }
/* gestión de familia sin selector */
.fam-crear{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-bottom:6px; }
.fam-crear input{ flex:1; min-width:200px; margin:0; }
.fam-sub{ margin:16px 0 8px; }
.fam-list{ display:flex; flex-wrap:wrap; gap:8px; }
.fam-chip{ background:var(--lino); border:1px solid var(--linea); color:var(--bosque); cursor:pointer;
  padding:9px 15px; border-radius:999px; font-size:15px; font-family:inherit; display:inline-flex; align-items:center; }
.fam-chip:hover{ border-color:var(--oro); background:#fffdf7; }
.fam-n{ background:var(--oro); color:#fff; border-radius:999px; padding:0 7px; font-size:12px; font-family:"IBM Plex Mono",monospace; margin-left:6px; }
/* modales <dialog> (editar proveedor, detalle de partida) */
.modal-dlg{ width:min(94vw,580px); max-height:90vh; overflow:auto; border:1px solid var(--linea); border-radius:12px; padding:0; background:var(--papel); color:var(--bosque); box-shadow:0 24px 70px -20px rgba(47,59,28,.5); }
.modal-dlg::backdrop{ background:rgba(47,59,28,.42); backdrop-filter:blur(3px); }
.dlg-title{ font-size:20px; font-weight:600; padding:16px 20px; border-bottom:1px solid var(--linea); margin:0; position:sticky; top:0; background:var(--papel); }
.dlg-form{ padding:16px 20px; display:flex; flex-direction:column; gap:12px; }
.dlg-form .two{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.dlg-form .three{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px; }
.dlg-form label{ display:block; }
.dlg-actions{ display:flex; justify-content:flex-end; gap:10px; margin:6px 0 0; padding:0; }
.dlg-files{ padding:6px 20px 14px; border-top:1px solid var(--linea); }
.dlg-files h4{ font-size:15px; margin:12px 0 8px; }
.filelist{ list-style:none; margin:0 0 10px; }
.filelist li{ display:flex; align-items:center; gap:10px; padding:6px 0; border-bottom:1px dashed var(--linea); }
.fitem{ flex:1; min-width:0; display:flex; align-items:center; gap:6px; text-decoration:none; color:var(--bosque); }
.fsize{ font-size:12px; color:var(--oliva); font-family:"IBM Plex Mono",monospace; white-space:nowrap; }
.modal-dlg .danger-zone{ padding:0 20px 16px; margin:0; text-align:right; }
/* filas de presupuesto clicables */
.brow{ display:flex; gap:10px; align-items:center; padding:9px 6px; border-bottom:1px dashed var(--linea); cursor:pointer; }
.brow.rowhead{ cursor:default; font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--oliva); }
.brow.rowhead .b-conc{ font-weight:400; }
.brow:not(.rowhead):hover{ background:rgba(178,189,160,.14); }
.b-conc{ flex:2; min-width:120px; font-weight:600; }
.b-num{ flex:1; text-align:right; min-width:80px; font-family:"IBM Plex Mono",monospace; font-size:14px; }
.b-meta{ flex:2; min-width:120px; display:flex; gap:6px; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
.clip{ font-size:13px; color:var(--oro); }
@media (max-width:640px){ .dlg-form .two,.dlg-form .three{ grid-template-columns:1fr; } .b-meta{ display:none; } }

@media (max-width:640px){
  .topbar{ flex-wrap:wrap; gap:10px; } .userbox{ width:100%; margin-left:0; }
  .mainnav{ flex-wrap:wrap; } .pa{ width:96px; }
  .rowhead{ display:none; } .erow,.rowedit{ flex-wrap:wrap; }
  .lrow .c-fam,.lrow .c-sm{ font-size:14px; }
}
