:root{
  --black:#050505;--panel:#0d0d0d;--panel2:#151515;--gold:#c8ab78;--gold-light:#e8d295;
  --muted:#96918a;--white:#f7f4ee;--line:#292722;--danger:#d85f5f;--ok:#7cad86;
  --sidebar:248px
}
*{box-sizing:border-box}
html{background:var(--black)}
body{margin:0;background:radial-gradient(circle at 75% 0,#15130f 0,#080808 28%,#050505 62%);color:var(--white);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;min-height:100vh}
a{color:var(--gold-light);text-decoration:none}
.app-shell{min-height:100vh}
.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar);z-index:50;background:#050505;border-right:1px solid #1e1d1a;padding:22px 16px;display:flex;flex-direction:column;overflow:auto}
.sidebar-brand{display:block;padding:0 12px 26px;text-align:center;border-bottom:1px solid #211f1b}
.sidebar-brand img{display:block;width:100%;max-width:178px;height:auto;margin:auto;object-fit:contain}
.side-nav{display:flex;flex-direction:column;gap:6px;padding-top:20px;min-height:calc(100vh - 190px)}
.nav-caption{font-size:10px;letter-spacing:.18em;color:#6e6962;padding:4px 12px 8px;font-weight:800}
.side-nav a{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:9px;color:#d8d4cd;font-size:14px;border:1px solid transparent;transition:.18s ease}
.side-nav a span{width:21px;text-align:center;color:#bcb6ad;font-size:17px}
.side-nav a:hover{background:#111;color:white}
.side-nav a.active{background:linear-gradient(90deg,#4b3b1d,#1d1810);border-color:#745d2d;color:#f5e0ae;box-shadow:inset 3px 0 0 var(--gold)}
.side-nav a.active span{color:#f0cd7a}
.side-nav .logout-link{color:#e26464;margin-top:auto}
.nav-spacer{flex:1;min-height:24px}
.content-shell{margin-left:var(--sidebar);min-height:100vh}
.desktop-topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;border-bottom:1px solid #22211e;background:rgba(7,7,7,.88);backdrop-filter:blur(14px);position:sticky;top:0;z-index:20}
.desktop-topbar>div:first-child{display:flex;flex-direction:column;gap:3px}
.desktop-topbar strong{font-size:17px}
.eyebrow{font-size:10px;color:#77716a;letter-spacing:.15em;font-weight:800}
.user-pill{display:flex;align-items:center;gap:10px}
.user-pill .avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:linear-gradient(145deg,#d8bb80,#6d5732);color:#090806;font-weight:900}
.user-pill div{display:flex;flex-direction:column}
.user-pill small{font-size:11px;color:#8d8880;margin-top:2px}
.mobile-topbar{display:none}
.sidebar-overlay{display:none}
.main-content{max-width:1440px;margin:0 auto;padding:30px}
.hero{padding:46px 0 28px}
.hero h1{font:700 clamp(32px,5.5vw,68px)/1 Georgia,serif;margin:0;color:var(--gold-light);max-width:900px}
.hero p{color:#bdb8b0;max-width:760px;font-size:17px;line-height:1.7}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:16px}
.card{background:linear-gradient(145deg,#141414,#0b0b0b);border:1px solid #2b2925;border-radius:12px;padding:21px;box-shadow:0 18px 55px rgba(0,0,0,.18)}
.card:hover{border-color:#39342b}
h1,h2,h3{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
h2{font-size:25px;margin-top:0;color:#fff}
h3{color:var(--gold-light);font-size:17px;margin-top:8px}
label{display:block;margin:12px 0 7px;color:#cfcac2;font-size:13px;font-weight:600}
input,select,textarea{width:100%;background:#0a0a0a;color:#fff;border:1px solid #393630;border-radius:8px;padding:12px 13px;font:inherit;outline:none}
input:focus,select:focus,textarea:focus{border-color:#9e814d;box-shadow:0 0 0 3px rgba(200,171,120,.09)}
textarea{min-height:108px}
.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid #b79450;border-radius:8px;padding:11px 17px;background:linear-gradient(135deg,#d6b76d,#9c772f);color:#0e0b07;font-weight:800;cursor:pointer;box-shadow:0 8px 20px rgba(183,143,62,.12)}
.btn:hover{filter:brightness(1.08)}
.btn.secondary{background:#111;color:var(--gold-light);border-color:#51452f}
.btn.danger{background:#7a2929;color:#fff;border-color:#a94747}
.actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}
.badge{display:inline-flex;padding:6px 10px;border-radius:999px;background:#292318;color:var(--gold-light);font-size:12px}
.muted{color:var(--muted)}
.flash{padding:13px 15px;border-radius:9px;margin:0 0 18px;background:#172017;border:1px solid #405844}
.flash.error{background:#261616;border-color:#693333}
.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:12px 8px;border-bottom:1px solid #26241f;vertical-align:top}.table th{font-size:12px;color:#9c958b;letter-spacing:.03em}
.slot{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid #28241f}
.chat{height:420px;overflow:auto;background:#070707;border:1px solid #2d2822;border-radius:10px;padding:14px}
.bubble{max-width:78%;padding:10px 12px;border-radius:12px;margin:8px 0;background:#28231b}
.bubble.me{margin-left:auto;background:#58472d}
.signature{background:white;border:1px solid #d9d9d9;border-radius:9px;width:100%;height:260px;touch-action:none;box-shadow:inset 0 0 0 1px #fff}
.footer{padding:40px 0 10px;color:#706a62;font-size:12px}
.checks{display:grid;gap:10px;margin-top:16px}.checks label{margin:0;display:flex;gap:10px;align-items:flex-start;line-height:1.45}.checks input{width:auto;margin-top:4px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.inline{display:flex;gap:8px;align-items:center}.inline select{min-width:120px}
.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.table-scroll{overflow:auto}
.admin-split{display:grid;grid-template-columns:minmax(240px,330px) 1fr;gap:18px}
.client-list{padding:10px}.client-row{display:block;padding:14px;border-radius:9px;color:var(--white)}.client-row small{display:block;color:var(--muted);margin-top:3px}.client-row.active,.client-row:hover{background:#28231b}
.grid.compact{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-top:18px}
.visit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:18px}
.notice{padding:14px 0;border-bottom:1px solid #28241f}.notice:last-child{border-bottom:0}
.legal{max-width:900px;margin:20px auto}.legal h3{border-bottom:1px solid #302a21;padding-bottom:8px;margin-top:26px}.legal p,.legal li{line-height:1.65;color:#d1ccc4}
.btn:disabled{opacity:.45;cursor:not-allowed}

@media(max-width:900px){
  .desktop-topbar{display:none}
  .content-shell{margin-left:0;padding-top:66px}
  .mobile-topbar{display:flex;position:fixed;left:0;right:0;top:0;height:66px;z-index:60;align-items:center;gap:12px;padding:8px 14px;background:rgba(5,5,5,.96);border-bottom:1px solid #25231f;backdrop-filter:blur(12px)}
  .mobile-topbar img{height:48px;width:94px;object-fit:contain}
  .mobile-topbar>span{font-size:12px;color:#a79f95;margin-left:auto}
  .menu-toggle{width:42px;height:42px;border:1px solid #3b352c;border-radius:9px;background:#0d0d0d;padding:10px;display:flex;flex-direction:column;justify-content:center;gap:5px;cursor:pointer}
  .menu-toggle span{display:block;height:2px;width:100%;background:#e6cf9e;border-radius:4px;transition:.2s}
  .sidebar{transform:translateX(-105%);transition:transform .24s ease;width:min(84vw,300px);box-shadow:18px 0 60px rgba(0,0,0,.6);z-index:70}
  .sidebar-overlay{display:block;position:fixed;inset:0;background:rgba(0,0,0,.66);z-index:65;opacity:0;visibility:hidden;transition:.2s}
  body.menu-open{overflow:hidden}
  body.menu-open .sidebar{transform:translateX(0)}
  body.menu-open .sidebar-overlay{opacity:1;visibility:visible}
  body.menu-open .menu-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  body.menu-open .menu-toggle span:nth-child(2){opacity:0}
  body.menu-open .menu-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .main-content{padding:20px 15px}
  .admin-split,.two,.visit-grid{grid-template-columns:1fr}
  .inline{align-items:stretch;flex-direction:column}
}
@media(max-width:620px){
  .grid{grid-template-columns:1fr}
  .card{padding:17px;border-radius:11px}
  .table{font-size:12px}
  .signature{height:230px}
  .hero{padding-top:25px}
  .actions .btn{width:100%}
}


/* Pantallas públicas: sin menú lateral. */
.public-page{min-height:100vh;background:radial-gradient(circle at 50% 0,#17130d 0,#080808 38%,#050505 75%)}
.public-shell{min-height:100vh;display:grid;place-items:center;padding:28px 18px}
.public-main{width:100%;max-width:470px;margin:auto}
.public-logo{display:block;width:min(240px,68vw);height:auto;object-fit:contain;margin:0 auto 24px}
.public-main>.card{background:linear-gradient(145deg,#151515,#090909);border:1px solid #302b23;box-shadow:0 30px 80px rgba(0,0,0,.45)}
.public-main h2{text-align:center;margin-bottom:22px}
.public-main .btn{width:100%;margin-top:8px}
.public-main .actions{justify-content:center}
.public-footer{text-align:center;color:#6f6960;font-size:11px;margin-top:24px}


/* v3.4 · Página pública con menú superior; área privada con menú lateral */
.public-page{padding-top:76px}
.public-topbar{
  position:fixed;top:0;left:0;right:0;z-index:80;height:76px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:8px 28px;background:rgba(5,5,5,.96);
  border-bottom:1px solid #29251f;backdrop-filter:blur(14px)
}
.public-brand{display:flex;align-items:center;height:100%}
.public-brand img{height:60px;width:150px;object-fit:contain;display:block}
.public-nav{display:flex;align-items:center;gap:8px}
.public-nav a{
  color:#d6d0c7;padding:10px 14px;border-radius:8px;
  font-size:14px;font-weight:650;border:1px solid transparent
}
.public-nav a:hover{color:#fff;background:#111}
.public-nav a.active{
  color:var(--gold-light);background:#211a10;border-color:#5c4827
}
.public-shell{min-height:calc(100vh - 76px);padding:34px 18px}
.public-main{max-width:520px}
.public-home{text-align:center}
.home-logo{display:block;width:min(330px,78vw);height:auto;margin:0 auto 26px}
.public-home h1{
  margin:0 auto 14px;max-width:760px;color:var(--gold-light);
  font:700 clamp(30px,5vw,56px)/1.08 Georgia,serif
}
.public-home p{color:#aaa39a;font-size:15px;line-height:1.6;margin:0 auto 24px}
.public-home-actions{justify-content:center}
.public-home-actions .btn{width:auto;min-width:150px}
.forgot-link{display:inline-block;margin-top:18px;color:#aaa39a;font-size:13px}
.forgot-link:hover{color:var(--gold-light)}

@media(max-width:700px){
  .public-page{padding-top:66px}
  .public-topbar{height:66px;padding:7px 12px;gap:10px}
  .public-brand img{height:50px;width:105px}
  .public-nav{gap:2px}
  .public-nav a{padding:8px 8px;font-size:12px}
  .public-shell{min-height:calc(100vh - 66px);padding:24px 14px}
  .public-home-actions{flex-direction:column}
  .public-home-actions .btn{width:100%}
}
