@import url('https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=Playfair+Display:wght@500;600;700;800&display=swap');

/* DivaRent — mismo aspecto que salon-eventos (Renta Mobiliario Pro):
   menú lateral oscuro, DM Sans + Playfair Display, tarjetas redondeadas, login oscuro con círculos.
   Solo cambia la paleta: vino profundo, rosa antiguo y dorado.
   Se conservan los nombres de clases y variables: no hay que tocar la lógica de la app. */
:root{
  --ink:#2D1220;        /* vino oscuro: menú lateral, botones (equivale al café #2b2118) */
  --ink2:#431B31;       /* hover del menú y botones (equivale a #3d2f22) */
  --accent:#D98BA3;     /* rosa antiguo: opción activa del menú (equivale al bronce #c17f3f) */
  --accent-dk:#B8607F;
  --soft:#F8E6EC;       /* rosa pálido: fondos suaves (equivale a #f5ead9) */
  --gold:#D4A853;       /* dorado: detalles, foco y barra de desplazamiento */
  --paper:#FBF6F7;      /* fondo general (equivale a #f7f4ef) */
  --p:#9B3A5E;          /* texto de acento: precios, títulos de acento (equivale a #8a5a2b) */
  --p2:#7C2D4B;
  --bg:#FBF6F7;
  --tx:#2D1220;
  --mu:#7C6A73;
  --br:#EADDE2;
  --ok:#3F7D53;
  --er:#C0394B;
  --radius:15px;
  --shadow:0 1px 2px rgba(45,18,32,.06),0 10px 28px -10px rgba(45,18,32,.22);
  --shadow-gold:0 1px 2px rgba(45,18,32,.1),0 24px 46px -14px rgba(212,168,83,.35);
}

*{box-sizing:border-box}
html{font-family:'DM Sans',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--paper);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
body{
  margin:0;min-width:320px;padding-left:268px;
  background:
    radial-gradient(1100px 480px at 100% -6%,rgba(212,168,83,.09),transparent 60%),
    radial-gradient(900px 420px at -8% 0%,rgba(120,40,80,.07),transparent 55%),
    var(--paper);
  background-attachment:fixed;
  color:var(--tx);
}
body:has(.login){padding-left:0}
::selection{background:#d4a85340}
main,table{font-variant-numeric:tabular-nums}
h1,h2,h3,h4{font-family:'Playfair Display',Georgia,serif;color:var(--ink);letter-spacing:-.01em;font-weight:600}
h2{margin:0 0 14px;font-size:26px}
h3{margin:0 0 12px;font-size:19px}

/* Barra de desplazamiento y foco, igual que salon-eventos */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(212,168,83,.25);border-radius:999px;border:2px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:rgba(212,168,83,.5);background-clip:padding-box}
*{scrollbar-width:thin;scrollbar-color:rgba(212,168,83,.3) transparent}
:focus-visible{outline:2px solid rgba(212,168,83,.6);outline-offset:2px}

/* ---------- Botones ---------- */
button{font-family:inherit;font-size:14px;font-weight:600;background:var(--ink);color:#fff;border:0;border-radius:12px;padding:11px 18px;cursor:pointer;transition:transform .16s cubic-bezier(.23,1,.32,1),background .16s ease,border-color .16s ease,box-shadow .16s ease}
button:hover{background:var(--ink2)}
button:active{transform:scale(.97)}
button.sec{background:#fff;color:var(--ink);border:1px solid var(--br)}
button.sec:hover{background:var(--soft);border-color:var(--accent)}
button.danger{background:#FBE9EC;color:var(--er)}
button.danger:hover{background:#F6D3D9}
button:disabled{background:#EADDE2;color:#A895A0;cursor:not-allowed;transform:none}

/* ---------- Formularios ---------- */
input,select,textarea{width:100%;height:44px;padding:0 14px;border:1px solid var(--br);border-radius:10px;font-family:inherit;font-size:14.5px;background:#fff;color:var(--tx);transition:border-color .15s,box-shadow .15s}
textarea{height:auto;min-height:84px;padding:12px 14px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(217,139,163,.22)}
label{display:block;font-size:13.5px;font-weight:600;color:var(--ink);margin-bottom:14px}
label input,label select,label textarea{margin-top:7px;font-weight:400}
input[type=checkbox],input[type=radio]{width:auto;height:auto}

/* ---------- Tarjetas ---------- */
.card{background:#fff;border:0;border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}

/* ---------- Acceso (fondo oscuro con círculos, como salon-eventos) ---------- */
.login{position:relative;overflow:hidden;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--ink)}
.login::before,.login::after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.login::before{right:-160px;top:-160px;width:520px;height:520px;border:1px solid rgba(217,139,163,.22)}
.login::after{left:-224px;bottom:-224px;width:620px;height:620px;border:1px solid rgba(217,139,163,.12)}
.login-card{position:relative;width:100%;max-width:440px;padding:44px 40px 36px;border-radius:20px;box-shadow:0 30px 70px -20px rgba(0,0,0,.6)}
.login-card h1{margin:0 0 22px;font-size:30px;text-align:center;color:var(--ink)}
.tabs{display:flex;gap:6px;margin-bottom:20px;padding:4px;background:var(--paper);border-radius:14px}
.tabs button{flex:1;background:transparent;color:var(--mu);border:0;padding:10px 12px;font-weight:500}
.tabs button:hover{background:#fff;color:var(--ink)}
.tabs button.on{background:var(--ink);color:#fff;font-weight:600}

/* ---------- Menú lateral izquierdo ---------- */
header.top{position:fixed;top:0;left:0;bottom:0;width:268px;display:flex;flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:0;padding:0 16px 16px;background:var(--ink);color:#fff;overflow-y:auto;z-index:40}
header.top .brand{display:flex;flex-direction:column;justify-content:center;min-height:80px;margin:0 -16px 24px;padding:0 24px;border-bottom:1px solid rgba(255,255,255,.1);font-family:'Playfair Display',Georgia,serif;font-weight:600;font-size:19px;line-height:1.1;color:#fff}
header.top .brand small{display:block;margin-top:6px;font-family:'DM Sans',sans-serif;font-weight:400;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.45)}
nav{display:flex;flex-direction:column;flex-wrap:nowrap;gap:4px;flex:1 1 auto;min-height:0}
nav button{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 14px;border-radius:12px;background:transparent;color:rgba(255,255,255,.65);font-size:14px;font-weight:500}
nav button:hover{background:rgba(255,255,255,.06);color:#fff}
nav button.on{background:var(--accent);color:var(--ink);font-weight:600}
nav button svg,nav button .ic{width:18px;height:18px;flex-shrink:0;text-align:center}
header.top>button{width:100%;margin-top:8px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.8);border:0;font-weight:500}
header.top>button:hover{background:rgba(255,255,255,.14);color:#fff}
header.top>*:not(.brand):not(nav):not(button){margin-top:12px;padding-top:14px;border-top:1px solid rgba(255,255,255,.1);font-size:12.5px;color:rgba(255,255,255,.55)}

main{max-width:1500px;margin:0 auto;padding:36px}
.bar{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-bottom:22px}
.bar>*{flex:0 1 auto}
.bar input,.bar select{width:auto;min-width:180px}
.bar label{margin:0}

/* ---------- Catálogo de vestidos ---------- */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px}
.vcard{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;transition:transform .22s cubic-bezier(.23,1,.32,1),box-shadow .22s cubic-bezier(.23,1,.32,1)}
.vcard:hover{transform:translateY(-3px);box-shadow:var(--shadow-gold)}
.vcard.off{opacity:.55}
.foto{position:relative;aspect-ratio:3/4;background:linear-gradient(135deg,#2D1220 0%,#6B2A4A 55%,#D98BA3 100%) center/cover no-repeat;display:flex;align-items:center;justify-content:center;font-size:48px;color:rgba(255,255,255,.8)}
.badge{position:absolute;top:12px;left:12px;font-size:11px;font-weight:600;padding:4px 11px;border-radius:999px;color:#fff;background:var(--ok)}
.badge.no{background:var(--er)}
.badge.in{background:rgba(45,18,32,.75)}
.info{padding:16px;display:flex;flex-direction:column;gap:3px;flex:1}
.info b{color:var(--ink)}
.info small{color:var(--mu)}
.precio{font-family:'Playfair Display',Georgia,serif;font-weight:600;font-size:21px;color:var(--p);margin:6px 0}
.acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:10px}
.acts button{padding:8px 12px;font-size:13px;border-radius:10px}

/* ---------- Resumen ---------- */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:22px}
.stat{padding:22px}
.stat b{display:block;font-family:'Playfair Display',Georgia,serif;font-weight:600;font-size:32px;color:var(--ink);margin-top:2px}
.stat span{color:var(--mu);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.stat:first-child{background:var(--ink)}
.stat:first-child b{color:#fff}
.stat:first-child span{color:rgba(255,255,255,.6)}

/* ---------- Tablas ---------- */
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:16px 22px;border-bottom:1px solid #F1E7EA;vertical-align:middle}
th{background:#FAF3F5;color:var(--mu);font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}
tbody tr:hover{background:#FDF8F9}
.tw{overflow-x:auto}
.sec-b{margin-bottom:18px}
.card:has(>.tw),.card:has(>table){padding:0;overflow:hidden}

/* ---------- Estados ---------- */
.tag{display:inline-block;font-size:11px;font-weight:600;padding:4px 11px;border-radius:999px;background:var(--soft);color:var(--p)}
.tag.reservada{background:#E9E5F7;color:#4B3F8E}
.tag.entregada{background:#FCEFD9;color:#8A5A12}
.tag.devuelta{background:#E3F1E8;color:#2F6A43}
.tag.cancelada{background:#FBE4E8;color:#A12B3D}

/* ---------- Ventanas, avisos y mensajes ---------- */
.ov{position:fixed;inset:0;background:rgba(45,18,32,.55);backdrop-filter:blur(2px);display:flex;align-items:flex-start;justify-content:center;padding:24px;overflow:auto;z-index:60}
.md{background:#fff;border-radius:20px;padding:26px;width:100%;max-width:540px;margin:auto;box-shadow:0 30px 70px -20px rgba(0,0,0,.5)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.aviso{padding:12px 14px;border-radius:12px;font-size:13.5px;margin-bottom:14px;background:#FBE4E8;color:#A12B3D}
.aviso.ok{background:#E3F1E8;color:#2F6A43}
.prev{max-width:100%;max-height:200px;border-radius:10px;display:block;margin:6px 0}
#toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:13px 22px;border-radius:12px;font-size:13.5px;box-shadow:0 20px 40px -12px rgba(0,0,0,.5);display:none;z-index:80;max-width:90%}
#toast.er{background:var(--er)}

/* ---------- Suscripción y planes ---------- */
.subbar{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:12px 36px;font-size:14px;background:#E3F1E8;color:#2F6A43}
.subbar.warn{background:#FCEFD9;color:#8A5A12}
.subbar.er{background:#FBE4E8;color:#A12B3D}
.subbar:empty{display:none}
.subbar button{padding:7px 14px;font-size:13px}
.plans{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0}
.plan{position:relative;border:2px solid var(--br);border-radius:16px;padding:16px;cursor:pointer;background:#fff;transition:border-color .15s,background .15s}
.plan:hover{border-color:var(--accent)}
.plan.sel{border-color:var(--accent);background:var(--soft)}
.plan b{display:block;font-family:'Playfair Display',Georgia,serif;color:var(--ink);font-size:17px}
.plan small{color:var(--mu)}
.plan .pop{position:absolute;top:-10px;right:12px;background:var(--gold);color:var(--ink);font-size:11px;font-weight:700;padding:3px 11px;border-radius:999px}
.bank{background:var(--paper);border:1px solid var(--br);border-radius:14px;padding:16px;font-size:14px;margin-top:12px;line-height:1.7}

/* ---------- Tablet y móvil: el menú vuelve arriba ---------- */
@media(max-width:1024px){
  body{padding-left:0}
  header.top{position:sticky;top:0;bottom:auto;width:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;overflow:visible}
  header.top .brand{min-height:0;margin:0 auto 0 0;padding:0;border:0}
  nav{flex-direction:row;flex-wrap:wrap;flex:0 1 auto}
  nav button{width:auto;padding:9px 12px}
  header.top>button{width:auto;margin-top:0}
  header.top>*:not(.brand):not(nav):not(button){margin-top:0;padding-top:0;border:0}
  main{padding:22px 16px}
  .subbar{padding:12px 16px}
}
@media(max-width:560px){
  .row,.plans{grid-template-columns:1fr}
  .grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .login-card{padding:32px 24px 26px}
  th,td{padding:12px 14px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
