/* La Familia — Portal de Socios. Warm-premium, self-contained (CSP: no external assets). */
:root{
  --paper:#f4ede1; --surface:#fffdf8; --surface-2:#f3ebdd;
  --ink:#2d1d12; --ink-soft:#6b6157; --accent:#b5512f; --accent-d:#8f3d21;
  --line:rgba(45,29,18,.12); --line-strong:rgba(45,29,18,.2);
  --ok:#3f7d4e; --warn:#b5842f; --bad:#b5442f;
  --radius:14px; --radius-sm:10px;
  --shadow:0 1px 2px rgba(45,29,18,.05), 0 18px 40px -28px rgba(45,29,18,.5);
  --font:"Onest",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--font);background:var(--paper);color:var(--ink);-webkit-text-size-adjust:100%;line-height:1.5}
.boot{padding:60px;text-align:center;color:var(--ink-soft)}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{margin:0 0 .4em;font-weight:700;letter-spacing:-.01em}
p{margin:0 0 .8em}

/* ---- top bar ---- */
.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:14px;padding:12px 20px;background:rgba(255,253,248,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.brand{font-weight:800;letter-spacing:.02em;color:var(--accent);font-size:1.05rem}
.brand small{display:block;font-size:.62rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}
.topbar .grow{flex:1}
.lang{display:inline-flex;border:1px solid var(--line-strong);border-radius:999px;overflow:hidden}
.lang button{background:transparent;border:0;padding:5px 12px;font:inherit;font-size:.75rem;font-weight:700;color:var(--ink-soft);cursor:pointer}
.lang button.on{background:var(--accent);color:#fff}

/* ---- layout ---- */
.wrap{max-width:920px;margin:0 auto;padding:26px 20px 80px}
.center{max-width:440px;margin:0 auto;padding:44px 20px 80px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}
.card+.card{margin-top:16px}
.muted{color:var(--ink-soft)}
.sub{color:var(--ink-soft);font-size:.9rem}
.row{display:flex;gap:14px;flex-wrap:wrap}
.row>*{flex:1 1 200px;min-width:0}
.right{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.spread{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.spread .grow{flex:1}

/* ---- forms ---- */
label{display:block;font-size:.78rem;font-weight:600;letter-spacing:.02em;color:var(--ink-soft);margin:0 0 5px}
label .req{color:var(--accent)}
input,select,textarea{width:100%;font:inherit;font-size:16px;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:11px 13px;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(181,81,47,.14)}
textarea{min-height:96px;resize:vertical}
.field{margin-bottom:15px}
.hint{font-size:.76rem;color:var(--ink-soft);margin-top:5px}

/* ---- buttons ---- */
button{font:inherit;cursor:pointer}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:var(--radius-sm);padding:11px 18px;font-weight:600;font-size:.92rem;background:var(--surface-2);color:var(--ink);transition:filter .15s,background .15s}
.btn:hover{filter:brightness(.97)}
.btn.primary{background:var(--accent);color:#fff}
.btn.primary:hover{background:var(--accent-d)}
.btn.ghost{background:transparent;border-color:var(--line-strong);color:var(--ink)}
.btn.danger{background:transparent;border-color:var(--bad);color:var(--bad)}
.btn.sm{padding:7px 12px;font-size:.82rem}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn.block{width:100%}

/* ---- badges / status ---- */
.badge{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:700;letter-spacing:.02em;padding:3px 10px;border-radius:999px;border:1px solid var(--line-strong);color:var(--ink-soft);background:var(--surface-2)}
.badge.draft{color:var(--ink-soft)}
.badge.submitted{color:#2f5db5;border-color:#2f5db5;background:#eaf0fb}
.badge.needs_changes{color:var(--warn);border-color:var(--warn);background:#f9f1e0}
.badge.approved{color:var(--ok);border-color:var(--ok);background:#e9f4ec}
.badge.published{color:#fff;border-color:var(--ok);background:var(--ok)}
.badge.rejected{color:var(--bad);border-color:var(--bad);background:#f9e9e6}

/* ---- lot list ---- */
.lot{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;transition:border-color .15s,box-shadow .15s}
.lot:hover{border-color:var(--accent);box-shadow:0 6px 20px -14px rgba(45,29,18,.5)}
.lot+.lot{margin-top:10px}
.lot-name{font-weight:700}
.lot-meta{font-size:.8rem;color:var(--ink-soft)}
.empty{padding:34px;text-align:center;color:var(--ink-soft);border:1px dashed var(--line-strong);border-radius:var(--radius-sm)}

/* ---- notes / alerts ---- */
.alert{border-radius:var(--radius-sm);padding:12px 14px;font-size:.88rem;margin-bottom:14px;border:1px solid}
.alert.err{color:var(--bad);border-color:var(--bad);background:#f9e9e6}
.alert.ok{color:var(--ok);border-color:var(--ok);background:#e9f4ec}
.alert.info{color:var(--ink-soft);border-color:var(--line-strong);background:var(--surface-2)}
.note{border-left:3px solid var(--accent);background:var(--surface-2);padding:10px 14px;border-radius:0 8px 8px 0;margin-bottom:10px}
.note .who{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--accent)}
.filechip{display:inline-flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:6px 8px 6px 13px;font-size:.82rem;margin:4px 6px 0 0}
.filechip button{border:0;background:rgba(45,29,18,.08);width:20px;height:20px;border-radius:50%;color:var(--ink-soft);cursor:pointer}

/* descriptor picker (tap-to-select chips, grouped) */
.desc-groups{display:flex;flex-direction:column;gap:13px;margin-top:4px}
.desc-gl{font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:6px}
.desc-chips{display:flex;flex-wrap:wrap;gap:7px}
.desc-chip{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 13px;font:inherit;font-size:.85rem;cursor:pointer;transition:background .12s,border-color .12s,color .12s}
.desc-chip:hover{border-color:var(--accent)}
.desc-chip.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
.desc-chip:disabled{opacity:.55;cursor:default}
.desc-chip:disabled:hover{border-color:var(--line-strong)}

.sec-title{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin:22px 0 10px}
hr{border:0;border-top:1px solid var(--line);margin:20px 0}

@media(max-width:560px){
  .wrap{padding:18px 14px 70px}
  .card{padding:18px}
  .topbar{padding:11px 14px}
  .btn.block-sm{width:100%}
}
