@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:500 700;font-display:swap;src:url('./fonts/PlusJakartaSans-latin.woff2') format('woff2')}
/* Identidad oficial Johnny Bar: solo negro, rojo, blanco y grises.
   Los tonos derivados también se definen aquí; evita colores literales en componentes. */
:root{
  --black:#080808;
  --red:#B91C1C;
  --white:#FFFFFF;
  --gray:#777777;
  --graphite:#303030;
  --gray-16:#101010;
  --gray-24:#181818;
  --gray-32:#202020;
  --gray-40:#282828;
  --gray-64:#404040;
  --gray-80:#505050;
  --gray-96:#606060;
  --gray-144:#909090;
  --gray-168:#A8A8A8;
  --gray-192:#C0C0C0;
  --gray-216:#D8D8D8;
  --gray-232:#E8E8E8;
  --red-hover:#9F1818;
  --red-dark:#4A0B0B;
  --red-border:#871515;
  --red-soft:#EAA6A6;
  --identity-notice-text:#FF6B6B;
  --red-glow:#B91C1C66;
  --red-faint:#B91C1C1A;
  --shadow-subtle:#08080833;
  --shadow-soft:#08080855;
  --shadow-strong:#08080888;
  --backdrop:#080808BA;
  --bg:var(--black);
  --surface:var(--gray-24);
  --surface2:var(--graphite);
  --border:var(--gray-64);
  --text:var(--white);
  --muted:var(--gray-192);
  --serif:'Playfair Display',Georgia,serif;
  --sans:'DM Sans',system-ui,sans-serif;
  --heading:'Plus Jakarta Sans',var(--sans);
}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px;line-height:1.6}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}a{color:inherit;text-decoration:none}svg{width:21px;height:21px;flex-shrink:0;vertical-align:middle}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--white);outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2{line-height:1.13}h2{font-weight:500}h3{font-size:16px;font-weight:550}em{font-family:var(--serif);font-weight:400}small{font-size:12px}.demo-banner{padding:7px 20px;background:var(--gray-40);color:var(--gray-192);text-align:center;font-size:10px;letter-spacing:.035em;line-height:1.6}.demo-dot,.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--red);margin-right:7px}.demo-dot{background:var(--gray-168)}.header{border-bottom:1px solid var(--border)}.header-inner{max-width:1320px;margin:auto;height:100px;display:flex;align-items:center;justify-content:space-between;padding:0 52px;gap:24px}.brand{display:inline-flex;align-items:center;gap:12px;font-size:17px;line-height:1.25;font-weight:650;letter-spacing:.1em;white-space:nowrap}.brand small{display:block;color:var(--muted);font-size:var(--font-compact);letter-spacing:.36em;font-weight:400;margin-top:7px}.brand-mark{display:flex;align-items:center;justify-content:center;width:41px;height:44px;border:1px solid var(--red);border-radius:3px;font-family:Georgia,serif;font-size:35px;font-weight:400;color:var(--red);position:relative;letter-spacing:0}.brand-mark span{font-family:var(--sans);font-size:17px;position:absolute;right:6px;bottom:3px}.header nav{display:flex;align-items:center;gap:30px;height:100%}.header nav a{height:100%;display:flex;align-items:center;font-size:12px;color:var(--muted);position:relative}.header nav a.active{color:var(--text)}.login-link{font-size:12px;display:flex;gap:15px;align-items:center}.account{display:flex;align-items:center;gap:9px}.avatar{display:inline-flex;width:36px;height:36px;align-items:center;justify-content:center;border-radius:50%;background:var(--graphite);color:var(--gray-216);font-family:var(--serif);font-size:17px;flex-shrink:0}.account-name{background:none;border:0;text-align:left;font-size:12px}.account-name span{display:block;font-size:10px;color:var(--muted)}.eyebrow{font-size:9px;letter-spacing:.18em;font-weight:550;color:var(--gray-192);display:flex;align-items:center;gap:10px}.eyebrow>span:not(.live-dot){width:19px;height:1px;background:var(--red)}.hero{max-width:1320px;margin:auto;padding:64px 52px 62px;display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center}.hero h1{font-size:clamp(52px,5.5vw,78px);font-family:var(--heading);font-weight:700;letter-spacing:-.055em;margin:24px 0}.hero h1 em{color:var(--gray-192)}.hero-copy>p{font-size:14px;line-height:1.9;color:var(--muted)}.hero-actions{display:flex;gap:25px;align-items:center;margin-top:31px}.btn{border:1px solid transparent;display:inline-flex;justify-content:center;align-items:center;gap:20px;border-radius:4px;min-height:49px;padding:12px 22px;font-size:12px;font-weight:550;line-height:1.5;transition:background .15s}.btn.primary{background:var(--red);color:var(--white)}.btn.primary:hover{background:var(--red-hover)}.btn.secondary{border-color:var(--gray-64);background:transparent;color:var(--text)}.btn.secondary:hover{background:var(--gray-40)}.btn.danger{background:var(--red-dark);color:var(--red-soft);border-color:var(--red-border)}.btn.full{width:100%}.btn.small{min-height:34px;padding:6px 13px;font-size:11px;gap:8px}.text-link{display:inline-flex;align-items:center;gap:8px;font-size:12px}.text-link svg{width:14px}.hero-meta{display:flex;align-items:center;gap:18px;color:var(--gray-168);font-size:10px;margin-top:42px}.hero-meta span{display:flex;gap:7px;align-items:center}.hero-meta svg{width:15px;height:15px}.hero-meta i{height:13px;width:1px;background:var(--border)}.hero-art{height:457px;position:relative;background:radial-gradient(ellipse at 50% 30%,var(--graphite) 0%,var(--gray-40) 45%,var(--gray-32) 100%);border:1px solid var(--gray-64);border-radius:95px 95px 5px 5px;overflow:visible;box-shadow:inset 0 0 60px var(--shadow-soft)}.art-top{position:absolute;left:30px;right:30px;top:25px;display:flex;justify-content:space-between;align-items:center}.art-top .eyebrow{font-size:var(--font-smallest);letter-spacing:.2em}.small-cross{font-size:22px;color:var(--gray-168)}.neon-logo{position:absolute;top:62px;left:0;right:0;text-align:center;font-family:var(--serif);font-style:italic;font-size:68px;letter-spacing:-.08em;color:var(--red-soft);line-height:1;transform:rotate(-6deg);text-shadow:0 0 2px var(--red-soft),0 0 23px var(--red-glow)}.neon-logo span{display:block;font-family:var(--sans);font-style:normal;letter-spacing:.35em;font-size:var(--font-compact);color:var(--gray-192);margin-top:14px}.art-floor{position:absolute;left:45px;right:45px;top:180px;bottom:53px;border:1px solid var(--gray);border-top:0;transform:perspective(600px) rotateX(18deg)}.art-bar{height:25px;border:1px solid var(--gray);position:absolute;top:-7px;left:20px;right:20px;text-align:center;font-size:var(--font-smallest);color:var(--gray-192);line-height:25px;background:var(--graphite)}.art-table{width:49px;height:49px;border:1px solid var(--gray-144);background:var(--gray-80);position:absolute;display:grid;place-items:center;border-radius:50%;box-shadow:0 7px 15px var(--shadow-subtle);color:var(--gray-192);font-size:var(--font-compact)}.art-table:before,.art-table:after,.art-table i{position:absolute;content:'';width:21px;height:9px;border:1px solid var(--gray-144);border-radius:3px;background:var(--gray-64)}.art-table:before{top:-13px}.art-table:after{bottom:-13px}.art-table i:first-child{left:-17px;transform:rotate(90deg)}.art-table i:last-child{right:-17px;transform:rotate(90deg)}.art-table-1{top:46px;left:35px}.art-table-2{top:46px;right:35px}.art-table-3{top:116px;left:35px}.art-table-4{top:116px;right:35px}.art-table-5{width:43px;height:43px;top:88px;left:calc(50% - 21px);background:var(--red);color:var(--gray-232);border-color:var(--red-soft)}.art-table-5:before,.art-table-5:after,.art-table-5 i{border-color:var(--red-soft);background:var(--red-dark)}.art-entry{position:absolute;bottom:-2px;left:calc(50% - 47px);font-size:6px;letter-spacing:.25em;background:var(--gray-40);padding:2px 13px;color:var(--gray-168)}.art-bottom{position:absolute;bottom:20px;left:26px;right:26px;display:flex;justify-content:space-between;font-size:6px;letter-spacing:.1em;color:var(--gray-168)}.art-bottom .live-dot{width:4px;height:4px;background:var(--gray-168)}.art-sticker{position:absolute;right:-20px;top:194px;transform:rotate(8deg);background:var(--gray-216);color:var(--graphite);padding:17px 21px;line-height:1.25;text-align:center;font-size:10px;box-shadow:2px 5px 18px var(--shadow-subtle)}.art-sticker em{font-size:23px;white-space:nowrap}.intro-strip{max-width:1216px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:35px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:32px 0 34px}.strip-title .eyebrow{font-size:var(--font-compact)}.strip-title h2{font-family:var(--heading);font-size:25px;line-height:1.3;margin-top:13px;letter-spacing:-.03em;font-weight:700}.mini-step>span{font-family:var(--heading);color:var(--red);font-size:20px;font-weight:700}.mini-step h3{font-size:12px;margin:10px 0 7px}.mini-step p{font-size:11px;color:var(--muted);max-width:195px}.home-note{max-width:1216px;margin:27px auto 40px;display:flex;align-items:center;gap:13px;color:var(--muted);font-size:10px}.home-note>svg{width:17px}.home-note>a{margin-left:auto;display:flex;align-items:center;gap:10px;color:var(--gray-216)}.home-note>a svg{width:16px}footer{border-top:1px solid var(--border);max-width:1320px;margin:auto;padding:31px 52px;display:flex;justify-content:space-between;gap:20px;align-items:center}footer .brand{font-size:11px;gap:9px}footer .brand-mark{width:27px;height:31px;font-size:24px}footer .brand-mark span{font-size:11px;bottom:1px;right:3px}footer .brand small{font-size:6px;margin-top:4px}footer p{font-size:10px;color:var(--muted);margin-top:10px}.footer-links{display:flex;gap:25px;align-items:center;color:var(--gray-144);font-size:9px}.footer-links button{font-size:9px;padding:0;background:none;border:0;color:inherit}.footer-links svg{width:13px}.page{max-width:1216px;margin:auto;padding:43px 0 64px;min-height:60vh}.page-heading{margin-bottom:29px}.page-heading h1{font-family:var(--heading);font-size:46px;font-weight:700;letter-spacing:-.04em;margin:13px 0}.page-heading p{color:var(--muted);font-size:13px}.stepper{display:flex;padding:0;margin:30px 0;list-style:none;border-bottom:1px solid var(--border)}.stepper li{padding:0 35px 20px 0;display:flex;align-items:center;gap:10px;font-size:11px;color:var(--gray-144);position:relative}.stepper li.current{color:var(--text)}.stepper li.current:after{content:'';height:2px;background:var(--red);position:absolute;bottom:-1px;left:0;right:25px}.stepper li>span{border:1px solid var(--gray-80);width:24px;height:24px;display:grid;place-items:center;border-radius:50%;font-size:10px}.stepper li.current>span{background:var(--red);border-color:var(--red)}.stepper .done{color:var(--gray-192)}.stepper svg{width:14px}.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:33px;align-items:start}.booking-main{min-width:0}.date-field{display:flex;align-items:center;gap:15px;border:1px solid var(--border);background:var(--surface);padding:15px 20px;border-radius:5px;margin-bottom:25px;max-width:100%;width:100%}.date-field>svg{color:var(--gray-192)}.date-field>span{font-size:10px;color:var(--muted)}.date-field>span:first-of-type{flex:1}.date-field input{padding:3px 0 0;background:none;border:0;color:var(--text);font-size:15px;display:block;width:100%;color-scheme:dark;min-height:30px}.date-limit{border:1px solid var(--border);padding:3px 9px;border-radius:3px;white-space:nowrap}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:22px}.section-heading h2{font-size:23px;font-family:var(--heading);font-weight:700}.section-heading p{font-size:11px;color:var(--muted);margin-top:7px}.chip{display:inline-block;border:1px solid var(--gray-80);color:var(--gray-192);font-size:10px;padding:5px 10px;border-radius:3px;white-space:nowrap}.floor-tabs{display:flex;padding:5px;background:var(--gray-32);border:1px solid var(--border);border-radius:5px;margin-bottom:20px;gap:4px}.floor-tabs button{flex:1;background:none;border:0;border-radius:3px;padding:11px 16px;text-align:left;font-size:12px;color:var(--muted)}.floor-tabs button small{font-size:9px;display:block;margin-top:3px;opacity:.75}.floor-tabs button.selected{background:var(--gray-64);color:var(--gray-232);box-shadow:0 1px 5px var(--shadow-subtle)}.floor-plan{padding:23px 30px 17px;background:radial-gradient(ellipse at 50% 0%,var(--gray-40),var(--gray-32));border:1px solid var(--gray-80);border-radius:6px;min-height:420px;position:relative}.plan-wall{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--gray-80);background:var(--graphite);color:var(--gray-168);padding:9px 18px;font-size:var(--font-compact);letter-spacing:.28em;margin:0 20px 25px}.plan-wall svg{width:17px;height:17px}.table-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:25px 16px;padding:16px 0 25px}.table{width:88px;height:88px;justify-self:center;background:none;border:0;position:relative;padding:13px;color:var(--gray-216)}.table:disabled{opacity:1;cursor:not-allowed}.table-top{display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;z-index:1;border:1px solid var(--gray);background:var(--gray-64);width:100%;height:100%;border-radius:50%;transition:background .15s}.table-top b{font-size:11px;font-weight:500;line-height:1.5}.table-top small{font-size:var(--font-compact);opacity:.8}.chair{display:block;position:absolute;width:25px;height:9px;border:1px solid var(--gray);background:var(--graphite);border-radius:3px}.c1{top:0;left:calc(50% - 12px)}.c2{bottom:0;left:calc(50% - 12px)}.c3{left:-8px;top:calc(50% - 4px);transform:rotate(90deg)}.c4{right:-8px;top:calc(50% - 4px);transform:rotate(90deg)}.table.libre:hover .table-top{background:var(--gray-96)}.table.ocupada{color:var(--gray)}.table.ocupada .table-top{background:var(--gray-40);border-color:var(--gray-80);background-image:repeating-linear-gradient(135deg,transparent,transparent 5px,var(--shadow-subtle) 5px,var(--shadow-subtle) 6px)}.table.ocupada .chair{border-color:var(--gray-64);background:var(--gray-40)}.table.bloqueada .table-top{background:var(--gray-40);border-color:var(--red-border);color:var(--gray-144)}.table.bloqueada .chair{border-color:var(--red-border);background:var(--gray-40)}.table.chosen .table-top{background:var(--red);border-color:var(--red-soft);color:var(--white);box-shadow:0 0 0 4px var(--red-faint)}.table.chosen .chair{border-color:var(--red-border);background:var(--red-dark)}.table-check{position:absolute;right:-4px;top:-4px;background:var(--gray-232);color:var(--red-dark);border-radius:50%;display:grid;place-items:center;width:17px;height:17px}.table-check svg{width:12px}.table-grid:not(.rectangular) .table:last-child{grid-column:4}.rectangular .table-top{border-radius:5px}.rectangular{gap:22px 13px}.rectangular .table{width:83px;height:76px}.upper{min-height:440px}.plan-entry{border-top:1px solid var(--gray-64);padding-top:16px;display:flex;justify-content:space-between;font-size:var(--font-smallest);letter-spacing:.15em;color:var(--gray-144)}.legend{display:flex;gap:21px;flex-wrap:wrap;font-size:9px;color:var(--muted);padding:18px 0 8px}.legend span{display:flex;align-items:center;gap:6px}.legend i{width:8px;height:8px;border-radius:2px;background:var(--gray)}.legend .selected{background:var(--red)}.legend .occupied{background:var(--gray-64);border:1px solid var(--gray-96)}.legend .blocked{background:var(--red-dark)}.plan-caption{font-size:9px;color:var(--gray-144);margin-top:8px}.booking-summary{padding:28px 25px;background:var(--gray-32);border:1px solid var(--gray-64);border-radius:5px;position:sticky;top:22px}.booking-summary .eyebrow{font-size:var(--font-compact)}.booking-summary h2{font-size:27px;font-family:var(--heading);letter-spacing:-.03em;line-height:1.3;margin:16px 0 25px;font-weight:700}.summary-date,.summary-table{display:flex;gap:13px;margin:19px 0}.summary-date svg,.summary-table svg{width:18px;color:var(--gray-168);margin-top:3px}.summary-date small,.summary-table small{display:block;font-size:10px;color:var(--muted);margin-bottom:3px}.summary-date strong,.summary-table strong{display:block;font-size:12px;font-weight:500}.summary-table div>span{display:block;color:var(--gray-168);font-size:10px;margin-top:5px}.summary-rule{border-bottom:1px dashed var(--gray-80);margin:25px 0 20px}.fine-print{display:flex;align-items:flex-start;gap:10px;color:var(--gray-168);font-size:10px;line-height:1.8;margin:13px 0}.fine-print svg{width:16px;height:16px;margin-top:2px}.booking-summary .btn{margin-top:20px}.summary-bottom{font-size:9px;color:var(--gray-144);display:block;text-align:center;margin-top:12px}.summary-row{display:flex;justify-content:space-between;font-size:11px}.narrow{max-width:680px;min-height:65vh}.notice{padding:14px 16px;background:var(--gray-40);border:1px solid var(--gray-64);border-radius:4px;color:var(--gray-192);font-size:11px;line-height:1.8;display:flex;align-items:flex-start;gap:10px;margin:20px 0}.notice svg{width:16px;height:16px;margin-top:3px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}label{display:block;font-size:11px;color:var(--gray-192)}input,select{display:block;width:100%;border:1px solid var(--gray-64);border-radius:4px;background:var(--gray-24);color:var(--text);padding:11px 12px;margin-top:6px;min-height:44px;font-size:13px;color-scheme:dark}input::placeholder{color:var(--gray-144);font-size:11px}input[readonly]{color:var(--gray-168);background:var(--gray-40)}input[type=checkbox]{accent-color:var(--red);display:inline-block;width:16px;min-width:16px;height:16px;min-height:16px;margin:2px 0 0}.checkbox{display:flex;align-items:flex-start;gap:10px;font-size:11px;line-height:1.7;margin:18px 0 5px}.count-field{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:25px 0}.count-field select{width:170px;margin:0}.holder-card{display:flex;align-items:center;padding:17px;border:1px solid var(--border);gap:12px;border-radius:4px}.holder-card div{flex:1}.holder-card b{font-size:12px}.holder-card small{display:block;color:var(--muted);font-size:10px}.saved-guests{margin:25px 0}.saved-guests h3{font-size:12px}.saved-guests p{font-size:10px;color:var(--muted);margin:5px 0 12px}.saved-chip{background:var(--graphite);color:var(--gray-216);border:1px solid var(--gray-80);padding:8px 12px;border-radius:24px;font-size:10px;margin-right:8px;margin-bottom:8px}.guest-card{border:1px solid var(--border);border-radius:5px;padding:18px;margin:20px 0}.guest-card legend{color:var(--gray-192);font-size:11px;padding:0 8px}.form-actions{border-top:1px solid var(--border);padding-top:24px;display:flex;justify-content:space-between;gap:15px;margin-top:25px}.inline-link{border:0;background:none;color:var(--gray-216);font-size:10px;text-decoration:underline;padding:3px 0;display:block}.review-details{display:grid;grid-template-columns:1fr 1fr;gap:20px;border-block:1px solid var(--border);padding:22px 0;margin-bottom:25px}.review-details small{display:block;color:var(--muted);font-size:9px;margin-bottom:8px;letter-spacing:.12em}.review-details b{font-size:12px;font-weight:500}.people-list{margin:15px 0}.people-list>div{padding:13px 0;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:13px}.people-list b{font-size:12px;font-weight:500}.people-list small{display:block;font-size:10px;color:var(--muted)}.people-list>div>svg{margin-left:auto;color:var(--gray-192);width:16px}.success{text-align:center;padding-top:60px}.success .eyebrow{justify-content:center}.success h1{font-family:var(--heading);font-size:59px;letter-spacing:-.04em;font-weight:700;margin:20px 0}.success h1 em{color:var(--gray-192)}.success>p{color:var(--muted);font-size:13px}.success-icon{display:grid;place-items:center;border:1px solid var(--gray-144);width:64px;height:64px;border-radius:50%;margin:0 auto 24px;background:var(--graphite);color:var(--gray-216)}.success-icon svg{width:29px;height:29px}.ticket{max-width:470px;margin:30px auto;background:var(--surface);padding:27px;border:1px dashed var(--gray-96);border-radius:5px}.ticket h2{font-family:var(--heading);margin:15px 0;font-size:29px;font-weight:700}.ticket p{font-size:12px}.ticket>small{display:block;margin-top:15px;color:var(--muted);font-size:10px}.badge{display:inline-block;font-size:9px;line-height:1.7;padding:3px 8px;border-radius:3px;background:var(--graphite);color:var(--gray-192);white-space:nowrap}.badge.pendiente,.badge.cancelacion{color:var(--gray-192);background:var(--graphite)}.badge.confirmada,.badge.activa{color:var(--gray-192);background:var(--gray-64)}.badge.cancelada,.badge.suspendida{color:var(--gray-192);background:var(--graphite)}.badge.baneada{color:var(--red-soft);background:var(--red-dark)}.auth-layout{display:grid;grid-template-columns:1fr 450px;gap:80px;padding-top:55px;align-items:start}.auth-intro h1{font-size:55px;font-family:var(--heading);font-weight:700;letter-spacing:-.04em;margin:20px 0;line-height:1.18}.auth-intro h1 em{color:var(--gray-192)}.auth-intro>p{color:var(--muted);max-width:330px;font-size:13px}.auth-art{padding:50px 0 0;display:flex;gap:25px;color:var(--gray-168);align-items:center}.auth-art svg{width:95px;height:95px;stroke-width:.6}.auth-art span{font-size:14px;letter-spacing:.18em;line-height:1.9}.auth-card{padding:30px;background:var(--surface);border:1px solid var(--border);border-radius:5px}.auth-card h2{font-family:var(--heading);font-size:30px;font-weight:700}.auth-card>p{font-size:11px;color:var(--muted);margin-top:9px}.auth-card form>label{margin-top:17px}.auth-card form>.btn{margin-top:22px;font-size:11px;gap:10px}.auth-card .notice{margin-block:18px}.auth-switch{text-align:center;padding-top:17px;border-top:1px solid var(--border);margin-top:25px!important}.auth-switch a{color:var(--gray-232);text-decoration:underline}.field-note{display:block;font-size:9px;color:var(--muted);margin-top:4px}.reservation-list{max-width:800px}.reservation-card{padding:27px;background:var(--surface);border:1px solid var(--border);border-radius:5px;margin:20px 0}.reservation-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.reservation-card h2{font-family:var(--heading);margin:25px 0 10px;font-size:29px;font-weight:700}.reservation-card>p{color:var(--muted);font-size:12px}.reservation-card .people-list small{margin-left:auto}.reservation-card .btn{margin-top:12px}.empty{padding:50px 25px;text-align:center;border:1px dashed var(--border);border-radius:5px}.empty>svg{width:36px;height:36px;color:var(--gray-168);margin-bottom:22px}.empty h2{font-family:var(--heading);font-size:30px;font-weight:700}.empty p{color:var(--muted);margin:15px 0 25px;font-size:12px}.admin-tabs{display:flex;gap:20px;border-bottom:1px solid var(--border);margin-bottom:25px;overflow:auto}.admin-tabs button{padding:12px 0 17px;background:none;border:0;border-bottom:2px solid transparent;font-size:12px;color:var(--muted);white-space:nowrap}.admin-tabs button.selected{border-bottom-color:var(--red);color:var(--text)}.admin-tabs span{background:var(--graphite);padding:2px 5px;margin-left:4px;border-radius:3px;font-size:9px}.admin-page>.date-field{max-width:420px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:30px}.stats>div{padding:20px;background:var(--surface);border:1px solid var(--border);border-radius:4px}.stats small{color:var(--muted);font-size:10px}.stats b{display:block;font-family:var(--heading);font-size:36px;font-weight:700;margin:8px 0}.stats span{font-size:9px;color:var(--gray-168)}.admin-layout{display:grid;grid-template-columns:1.35fr 1fr;align-items:start;gap:23px}.panel{padding:25px;background:var(--surface);border:1px solid var(--border);border-radius:5px}.panel>h2{font-family:var(--heading);font-size:25px;margin-bottom:10px;font-weight:700}.muted{color:var(--muted);font-size:11px}.admin-layout .table{width:78px;height:78px}.admin-layout .rectangular .table{width:72px;height:69px}.admin-layout .floor-plan{padding-inline:20px}.request{border-top:1px solid var(--border);padding:20px 0}.request:first-of-type{margin-top:20px}.request>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:10px}.request b{font-size:12px;font-weight:500}.request>small{display:block;font-size:9px;color:var(--muted);margin-top:8px}.request-actions{display:flex;gap:8px;margin-top:15px}.user-list article{display:flex;align-items:center;gap:15px;padding:22px 0;border-bottom:1px solid var(--border)}.user-list article>div:first-of-type{flex:1}.user-list b{font-size:13px}.user-list small{display:block;color:var(--muted);font-size:10px}.user-actions{display:flex;gap:10px;margin-left:15px}.incident-form{display:flex;align-items:end;gap:15px;margin:25px 0}.incident-form label{flex:1}.incident-list article{display:flex;gap:15px;padding:20px 0;border-top:1px solid var(--border)}.incident-list .live-dot{margin-top:7px;flex-shrink:0}.incident-list b{font-size:12px;font-weight:500}.incident-list small{display:block;color:var(--muted);margin-top:5px;font-size:10px}.rules-panel{max-width:820px}.rules-panel>h2{margin-top:20px;margin-bottom:30px}.rule{display:flex;gap:20px;border-top:1px solid var(--border);padding:20px 0}.rule>span{color:var(--red-soft);font-family:var(--heading);font-size:24px;font-weight:700}.rule h3{font-size:13px}.rule p{font-size:11px;color:var(--muted);margin-top:7px}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,25px);padding:15px 24px;background:var(--gray-232);color:var(--gray-40);border:1px solid var(--gray-192);box-shadow:0 8px 35px var(--shadow-strong);border-radius:5px;font-size:12px;max-width:calc(100% - 30px);width:max-content;z-index:50;opacity:0;pointer-events:none;transition:.15s}#toast.show{opacity:1;transform:translate(-50%,0)}dialog{color:var(--text);background:var(--gray-32);border:1px solid var(--gray-96);border-radius:7px;padding:35px;max-width:530px;width:calc(100% - 32px)}dialog::backdrop{background:var(--backdrop);backdrop-filter:blur(4px)}dialog h2{font-family:var(--heading);font-size:31px;margin:17px 0 20px;font-weight:700}dialog p{color:var(--gray-192);font-size:12px;margin:13px 0;line-height:1.9}dialog .btn{margin-top:12px}.dialog-close{border:0;background:none;position:absolute;right:15px;top:14px;color:var(--muted);padding:5px}.dialog-close svg{width:18px}.dialog-body{margin-bottom:20px}#main:focus{outline:none}
@media(min-width:1450px){.hero{padding-top:85px;padding-bottom:85px}.hero-art{height:485px}.art-floor{top:193px}.hero h1{font-size:82px}}
@media(max-width:1280px){.page{margin-inline:45px}.intro-strip,.home-note{margin-inline:52px}.hero{gap:35px}.hero-art{height:425px}.art-floor{left:30px;right:30px;top:160px}.neon-logo{top:60px;font-size:60px}.art-sticker{right:-10px;top:180px}.table-grid{gap:25px 10px}.booking-layout{grid-template-columns:minmax(0,1fr) 290px;gap:25px}.admin-layout{grid-template-columns:1.25fr 1fr}.admin-layout .table{width:64px;height:70px}.admin-layout .rectangular .table{width:60px;height:65px}.admin-layout .table-top b{font-size:9px}.admin-layout .table-top small{font-size:var(--font-smallest)}.admin-layout .chair{width:20px}.admin-layout .c1,.admin-layout .c2{left:calc(50% - 10px)}.auth-layout{gap:45px;grid-template-columns:1fr 430px}}
@media(max-width:1000px){.header-inner{padding-inline:30px}.header nav{gap:20px}.hero{padding:48px 32px;gap:30px}.hero h1{font-size:61px}.hero-art{height:405px;border-radius:70px 70px 5px 5px}.art-sticker{padding:15px 12px;right:-8px}.art-sticker em{font-size:19px}.art-floor{left:25px;right:25px}.art-table-1,.art-table-3{left:21px}.art-table-2,.art-table-4{right:21px}.art-table-5{display:none}.intro-strip,.home-note{margin-inline:32px}.intro-strip{gap:20px}.hero-actions{gap:18px;flex-wrap:wrap}.hero-meta{gap:11px}.page{margin-inline:30px}.booking-layout{grid-template-columns:minmax(0,1fr) 260px;gap:20px}.booking-summary{padding:22px 18px}.booking-summary h2{font-size:24px}.table{width:70px;height:76px}.table-top b{font-size:9px}.chair{width:20px}.c1,.c2{left:calc(50% - 10px)}.floor-plan{padding-inline:20px}.rectangular .table{width:67px;height:69px}.table-grid{grid-template-columns:repeat(3,1fr);gap:28px 17px}.table-grid:not(.rectangular) .table:last-child{grid-column:2}.admin-layout{grid-template-columns:1fr}.admin-layout .table{width:88px;height:88px}.admin-layout .rectangular .table{width:83px;height:76px}.admin-layout .table-top b{font-size:11px}.admin-layout .table-top small{font-size:var(--font-compact)}.admin-layout .table-grid{grid-template-columns:repeat(4,1fr)}.admin-layout .table-grid:not(.rectangular) .table:last-child{grid-column:4}.auth-layout{grid-template-columns:1fr 380px;gap:30px}.auth-intro h1{font-size:44px}.auth-card{padding:24px}.stats{gap:10px}.stats>div{padding:16px}footer{padding-inline:30px}.footer-links{gap:16px}}
@media(max-width:740px){.demo-banner{font-size:var(--font-compact);padding:6px 16px}.header-inner{height:auto;min-height:100px;display:grid;grid-template-columns:1fr auto;gap:0;padding:16px 22px 0}.brand{font-size:14px;gap:9px}.brand-mark{width:33px;height:37px;font-size:30px}.brand small{font-size:6px}.brand-mark span{right:4px;font-size:14px}.header nav{grid-column:1 / -1;grid-row:2;gap:25px;height:45px;margin-top:10px}.header nav a{font-size:11px}.login-link{font-size:10px;gap:7px}.login-link svg{width:16px}.hero{grid-template-columns:1fr;padding:39px 23px 36px;gap:35px}.hero h1{font-size:64px;margin:20px 0;line-height:1.08}.hero-copy>p{font-size:12px}.hero .eyebrow{font-size:var(--font-compact)}.hero-actions{gap:20px;margin-top:25px}.hero-actions .btn{font-size:11px;padding-inline:18px}.text-link{font-size:11px}.hero-meta{margin-top:25px;font-size:9px}.hero-art{height:385px;max-width:470px;width:100%;margin:auto;border-radius:70px 70px 4px 4px}.art-floor{left:40px;right:40px;top:155px;bottom:50px}.art-table-1,.art-table-3{left:32px}.art-table-2,.art-table-4{right:32px}.art-sticker{right:0;top:155px}.neon-logo{top:52px;font-size:63px}.art-top{top:20px}.art-top .eyebrow{font-size:6px}.art-bottom{font-size:6px}.art-table-3,.art-table-4{top:110px}.intro-strip{margin-inline:23px;grid-template-columns:1fr 1fr;gap:25px;padding:27px 0}.strip-title h2{font-size:24px}.mini-step p{font-size:10px}.mini-step h3{margin-top:5px}.mini-step>span{font-size:20px}.strip-title .eyebrow{font-size:var(--font-smallest)}.home-note{margin:20px 23px 28px;align-items:start;gap:10px;flex-wrap:wrap;font-size:9px}.home-note p{flex:1}.home-note>a{margin:5px 0 0 27px}.home-note>svg{width:16px}footer{padding:25px 23px;align-items:flex-start;flex-direction:column;gap:24px}footer .brand{font-size:11px}.footer-links{flex-wrap:wrap;gap:16px;font-size:9px}.page{padding-top:30px;padding-bottom:40px;margin-inline:22px}.page-heading h1{font-size:37px;margin-top:11px}.page-heading p{font-size:11px;max-width:340px}.eyebrow{font-size:var(--font-compact)}.stepper{margin:25px 0}.stepper li{padding-right:17px;gap:6px;font-size:9px;padding-bottom:16px;flex:1;line-height:1.5}.stepper li>span{width:20px;height:20px;font-size:9px;flex-shrink:0}.stepper li.current:after{right:14px}.booking-layout{grid-template-columns:1fr;gap:25px}.booking-summary{position:static;padding:23px}.booking-summary h2{font-size:27px}.booking-summary h2 br{display:none}.booking-summary .summary-date,.booking-summary .summary-table{margin:14px 0}.summary-rule{margin:17px 0}.section-heading h2{font-size:23px}.section-heading p{font-size:10px}.section-heading{margin-bottom:20px}.floor-tabs button{padding:9px 12px;font-size:11px}.floor-tabs button small{font-size:var(--font-compact)}.floor-plan{padding:19px 20px 15px;min-height:390px}.plan-wall{margin-inline:7px;margin-bottom:23px;font-size:var(--font-smallest);padding:8px 12px}.table-grid{grid-template-columns:repeat(3,1fr);gap:25px 10px;padding-block:13px 23px}.table{width:74px;height:74px}.table-top b{font-size:10px}.table-grid:not(.rectangular) .table:last-child{grid-column:2}.rectangular .table{width:72px;height:68px}.upper{min-height:480px}.legend{gap:15px;font-size:var(--font-compact)}.date-field{padding:12px 14px}.date-field input{font-size:13px}.date-limit{font-size:var(--font-compact)!important;padding:4px 6px}.plan-caption{font-size:var(--font-compact)}.form-grid{gap:12px}.guest-card{padding:13px}.guest-card input{font-size:11px;padding:10px 8px}.guest-card label{font-size:9px}.form-actions .btn{font-size:10px;padding-inline:14px;gap:8px}.count-field{font-size:11px;gap:10px}.count-field select{width:150px;font-size:12px}.saved-chip{font-size:9px}.review-details{gap:14px}.review-details b{font-size:11px}.review-details small{font-size:var(--font-compact)}.auth-layout{grid-template-columns:1fr;gap:28px;padding-top:30px}.auth-intro h1{font-size:40px;margin:16px 0}.auth-intro>p{font-size:11px}.auth-art{display:none}.auth-card{padding:23px}.auth-card .form-grid label{font-size:10px}.success h1{font-size:50px}.success>p{font-size:11px}.ticket h2{font-size:27px}.reservation-card{padding:20px}.reservation-card h2{font-size:25px}.reservation-card .eyebrow{font-size:var(--font-smallest)}.badge{font-size:var(--font-compact)}.reservation-card .people-list b{font-size:10px}.reservation-card .people-list small{font-size:9px}.stats{grid-template-columns:1fr 1fr;gap:12px}.stats>div{padding:15px}.stats b{font-size:34px}.stats small{font-size:9px}.stats span{font-size:var(--font-compact)}.admin-tabs{gap:20px}.admin-tabs button{font-size:10px}.panel{padding:18px}.admin-layout .floor-plan{padding-inline:12px}.admin-layout .table-grid{grid-template-columns:repeat(3,1fr)}.admin-layout .table{width:66px;height:72px}.admin-layout .rectangular .table{width:65px;height:65px}.admin-layout .table-top b{font-size:9px}.admin-layout .table-top small{font-size:var(--font-smallest)}.admin-layout .table-grid:not(.rectangular) .table:last-child{grid-column:2}.admin-layout .section-heading p{font-size:10px}.request b{font-size:11px}.user-list article{flex-wrap:wrap;gap:10px}.user-list article>div:first-of-type{min-width:130px}.user-actions{width:100%;margin-left:46px}.incident-form{flex-direction:column;align-items:stretch;gap:13px}.incident-form .btn{align-self:flex-start}.incident-form label{width:100%}.incident-list b{font-size:11px}dialog{padding:29px 23px}dialog h2{font-size:28px}.narrow{padding-block:40px}.review-details b{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
input,select,.form-grid>label{min-width:0}
@media(max-width:380px){.table{width:66px;height:70px}.rectangular .table{width:65px;height:66px}.table-grid{column-gap:8px}.admin-layout .table{width:58px;height:66px}.admin-layout .rectangular .table{width:57px;height:63px}.admin-layout .table-grid{column-gap:6px}.hero h1{font-size:55px}.hero-actions{gap:15px}.hero-actions .btn{padding-inline:15px}.hero-art .art-floor{left:25px;right:25px}.art-table-1,.art-table-3{left:20px}.art-table-2,.art-table-4{right:20px}.art-sticker{top:165px;padding:12px 10px}.count-field select{width:140px}.footer-links{gap:13px}.request>div:first-child{flex-wrap:wrap}.date-limit{display:none}.auth-card{padding:18px}.form-actions .btn{padding-inline:11px;gap:5px;font-size:9px}.stepper li{padding-right:9px;font-size:var(--font-compact);gap:5px}.stepper li.current:after{right:8px}}

/* Plano de planta baja compartido con administración: dos filas, desde la derecha. */
.customer-ground .table-grid{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:18px}
.customer-ground .table-grid .table{width:min(88px,100%);height:auto;aspect-ratio:1}
.customer-ground .table-grid .table[data-value="PB-1"]{grid-area:1 / 4}
.customer-ground .table-grid .table[data-value="PB-2"]{grid-area:1 / 3}
.customer-ground .table-grid .table[data-value="PB-3"]{grid-area:1 / 2}
.customer-ground .table-grid .table[data-value="PB-4"]{grid-area:1 / 1}
.customer-ground .table-grid .table[data-value="PB-5"]{grid-area:2 / 4}
.customer-ground .table-grid .table[data-value="PB-6"]{grid-area:2 / 3}
.customer-ground .table-grid .table[data-value="PB-7"]{grid-area:2 / 2}
.customer-ground .plan-entry{flex-direction:row-reverse}
@media(max-width:1000px){.customer-ground .table-grid .table{max-width:70px}}
@media(max-width:740px){.customer-ground .table-grid .table{max-width:74px;padding:9px}.customer-ground .table-top b{font-size:9px}}
@media(max-width:380px){.customer-ground{padding-inline:12px}.customer-ground .table-grid .table{padding:7px}.customer-ground .table-top b{font-size:var(--font-compact)}.customer-ground .table-top small{font-size:var(--font-smallest)}.customer-ground .chair{width:16px}.customer-ground .c1,.customer-ground .c2{left:calc(50% - 8px)}}

/* Planta alta compartida con administración: posiciones relativas fijas.
   En móvil el lienzo se desplaza, conservando espacios y orientaciones. */
.upper-plan-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;border-radius:6px}
.customer-upper{min-width:600px;padding:24px 30px;min-height:0}
.upper-plan-label{display:flex;justify-content:space-between;gap:20px;color:var(--gray-168);font-size:var(--font-compact);letter-spacing:.18em;border-bottom:1px solid var(--gray-64);padding-bottom:17px}
.customer-upper .table-grid{display:block;position:relative;height:410px;margin-top:12px;padding:0}
.customer-upper .table-grid .table{position:absolute;left:var(--table-x);top:var(--table-y);transform:translate(-50%,-50%);width:70px;height:104px;padding:13px;grid-area:auto}
.customer-upper .table-grid .table-top{border-radius:5px}
.customer-upper .table-top b{font-size:10px}
.customer-upper .table-top small{font-size:var(--font-compact)}
.customer-upper .chair{width:22px}
.customer-upper .c1,.customer-upper .c2{left:calc(50% - 11px)}
.customer-upper .table[data-value="PA-1"]{--table-x:8%;--table-y:18%}
.customer-upper .table[data-value="PA-2"]{--table-x:26%;--table-y:18%}
.customer-upper .table[data-value="PA-3"]{--table-x:74%;--table-y:18%}
.customer-upper .table[data-value="PA-4"]{--table-x:92%;--table-y:18%}
.customer-upper .table[data-value="PA-5"]{--table-x:32%;--table-y:50%}
.customer-upper .table[data-value="PA-6"]{--table-x:68%;--table-y:50%}
.customer-upper .table[data-value="PA-7"]{--table-x:8%;--table-y:82%}
.customer-upper .table[data-value="PA-8"]{--table-x:29%;--table-y:82%}
.customer-upper .table[data-value="PA-9"]{--table-x:50%;--table-y:82%}
.customer-upper .table[data-value="PA-10"]{--table-x:71%;--table-y:82%}
.customer-upper .table[data-value="PA-11"]{--table-x:92%;--table-y:82%}
.customer-upper .table-grid .table:nth-child(n+8){width:96px;height:70px}
.upper-scroll-hint{display:none;font-size:10px;color:var(--muted);margin-top:10px}
@media(max-width:1000px){.upper-scroll-hint{display:block}}

/* Estados semánticos: contraste y texto, sin depender solo del color. */
.table.libre{color:var(--white)}
.table.libre .table-top{background:var(--gray-80);border-color:var(--gray)}
.table.libre .chair{background:var(--graphite);border-color:var(--gray)}
.table.libre:hover .table-top{background:var(--gray-96)}
.table.ocupada{color:var(--gray-168)}
.table.ocupada .table-top{background:var(--gray-24);border-color:var(--gray-64);background-image:repeating-linear-gradient(135deg,transparent,transparent 5px,var(--graphite) 5px,var(--graphite) 6px)}
.table.ocupada .chair{background:var(--gray-16);border-color:var(--gray-64)}
.table.bloqueada .table-top{background:var(--red-dark);border-color:var(--red-border);color:var(--white)}
.table.bloqueada .chair{background:var(--red-dark);border-color:var(--red-border)}
.table.chosen .table-top,.table.chosen:hover .table-top{background:var(--red);border-color:var(--red-soft);color:var(--white)}
.table.chosen .chair{background:var(--red-dark);border-color:var(--red)}
.table-state{position:absolute;top:calc(100% + 4px);left:50%;transform:translateX(-50%);font-size:var(--font-compact);line-height:1.2;white-space:nowrap;color:var(--gray-192);font-weight:500;pointer-events:none}
.table.chosen .table-state,.table.bloqueada .table-state{color:var(--white)}
.legend .free{background:var(--gray-80);border:1px solid var(--gray)}
.legend .occupied{background:repeating-linear-gradient(135deg,var(--gray-24),var(--gray-24) 2px,var(--gray-64) 2px,var(--gray-64) 3px);border-color:var(--gray-64)}
.legend .blocked{background:var(--red-dark);border:1px solid var(--red)}
.neon-logo{color:var(--white);text-shadow:0 0 2px var(--red-soft),0 0 23px var(--red-glow)}
.hero-art{background:radial-gradient(ellipse at 50% 30%,var(--red-dark) 0%,var(--gray-24) 45%,var(--black) 100%)}
.success-icon,.badge.confirmada,.badge.activa{color:var(--white);background:var(--graphite);border-color:var(--gray)}
.badge.pendiente,.badge.cancelacion{color:var(--white);background:var(--graphite);border:1px solid var(--gray-80)}

/* Tu compañía: conserva la paleta, las tarjetas y los controles del sistema. */
.party-counter{padding:17px 0;border-bottom:1px solid var(--border);margin-bottom:23px}
.party-counter strong{display:block;font-size:14px;font-weight:550}
.party-counter>span{display:block;margin-top:5px;font-size:10px;color:var(--muted)}
.frequent-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.frequent-card{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:15px;background:var(--surface);border:1px solid var(--border);border-radius:4px}
.frequent-card.is-selected{border-color:var(--red);background:var(--red-faint)}
.frequent-person{flex:1;min-width:0}.frequent-person b{display:block;font-size:12px;font-weight:500;overflow-wrap:anywhere}.frequent-person small{display:block;font-size:10px;color:var(--muted)}
.frequent-indicator{text-align:center;font-size:18px;color:var(--white);flex-shrink:0}.frequent-indicator small{display:block;font-size:var(--font-compact)}.frequent-indicator svg{width:19px}
.selected-new-guests{margin:22px 0}.selected-new-guests h3{font-size:12px;margin-bottom:12px}.selected-new-guests .holder-card{margin-top:10px}
@media(max-width:1000px){.frequent-list{grid-template-columns:1fr}}

/* Gestión de agenda separada de la selección para la reserva. */
.frequent-entry{border:1px solid var(--border);border-radius:4px;overflow:hidden;min-width:0}
.frequent-entry .frequent-card{border:0;border-radius:0;min-height:84px}
.frequent-entry .frequent-card.is-selected{box-shadow:inset 3px 0 var(--red)}
.frequent-agenda-action{border-top:1px solid var(--border);padding:10px 15px;background:var(--gray-32)}
.frequent-agenda-action .inline-link{color:var(--red-soft);text-align:left;min-height:30px}

/* R15 · Calendario de apertura, con la paleta oficial existente. */
.opening-calendar{border:1px solid var(--border);border-radius:5px;background:var(--surface);padding:20px;margin-bottom:25px}
.calendar-heading{display:flex;align-items:center;gap:12px;margin-bottom:12px}.calendar-heading>div{flex:1}.calendar-heading h3{font-size:13px}.calendar-heading p{font-size:11px;color:var(--muted);margin-top:3px}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin:17px 0 12px}
.calendar-weekday{text-align:center;font-size:10px;color:var(--muted);padding:4px 0}
.calendar-day{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:58px;padding:6px 2px;border:1px solid var(--gray-64);border-radius:4px;background:var(--gray-32);color:var(--white)}
.calendar-day>span{font-size:17px}.calendar-day>small{font-size:9px;color:var(--muted)}.calendar-day>i{position:absolute;right:5px;top:0;color:var(--red-soft);font-style:normal}
.calendar-day:disabled{opacity:.3;background:var(--bg)}.calendar-day:not(:disabled):hover{border-color:var(--gray-168)}
.calendar-day.is-selected{background:var(--red);border-color:var(--red)}.calendar-day.is-selected small{color:var(--white)}
.calendar-day.is-closed:not(:disabled){border-style:dashed;color:var(--gray-168)}
.opening-settings{max-width:850px}.opening-settings>.opening-calendar{margin-top:22px}.opening-actions{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0}.calendar-conflicts{border-color:var(--red-border)}.calendar-conflicts p{margin-top:8px}.calendar-conflicts .btn{margin-top:12px}
.admin-page>.opening-calendar{max-width:650px}
@media(max-width:740px){.opening-calendar{padding:14px}.calendar-grid{gap:4px}.calendar-day{min-height:54px}.calendar-day>small{font-size:var(--font-compact)}.calendar-heading{gap:8px;flex-wrap:wrap}.calendar-heading p{font-size:10px}.calendar-heading .date-limit{margin-left:auto}.opening-actions .btn{flex:1 1 180px}}

/* Escala compartida de legibilidad; los dos mínimos efectivos convergen en 9px. */
:root{
  --font-smallest:9px; /* Antes 7px: +2px exactos. */
  --font-compact:9px; /* Antes 8px: +1px exacto. */
  --font-navigation:15px;
  --font-description:16px;
  --font-eyebrow:12px;
  --font-note:13px;
  --font-button:14px;
}
body{line-height:1.7}
.header nav a,.login-link{font-size:var(--font-navigation)}
.account-name{font-size:var(--font-button)}
.account-name span{font-size:var(--font-note)}
.eyebrow,.reservation-card .eyebrow{font-size:var(--font-eyebrow);line-height:1.7}
.demo-banner{font-size:12px;line-height:1.7}
.page-heading p,.auth-intro>p{font-size:var(--font-description);line-height:1.8}
.section-heading p{font-size:var(--font-note);line-height:1.8}
.btn,.hero-actions .btn,.form-actions .btn{font-size:var(--font-button);line-height:1.55}
.btn.small{font-size:var(--font-note)}
.text-link{font-size:var(--font-button)}
.field-note,.fine-print,.summary-bottom,.inline-link{font-size:var(--font-note);line-height:1.8}
footer p,.footer-links,.footer-links button{font-size:var(--font-note);line-height:1.8}

/* Private TOTP enrollment: keep QR contrast and quiet zone on every screen. */
.totp-enrollment{overflow-wrap:anywhere}.totp-enrollment .totp-qr{display:block;width:min(280px,100%);height:auto;margin:20px auto;background:#fff}.totp-enrollment details{margin:18px 0}.totp-enrollment summary{cursor:pointer;font-size:14px;line-height:1.6}.totp-enrollment input[readonly]{font-family:monospace;font-size:13px}.totp-enrollment .field-note{font-size:13px;line-height:1.65}.totp-enrollment .totp-backup{font-family:monospace;line-height:1.8}

/* Identidad: solo texto, sin fondo, icono, recuadro ni borde. */
.identity-reminder{margin:20px 0;color:var(--identity-notice-text);font-size:16px;font-weight:700;line-height:1.6;letter-spacing:.035em;text-align:left}
.identity-reminder strong{font:inherit;overflow-wrap:break-word}

/* Estados de reservas: color, nombre e icono; sin afectar estados de cuentas. */
.badge.reservation-status{display:inline-flex;align-items:center;gap:7px;max-width:100%;padding:5px 9px;border:1px solid #4D4D4D;border-radius:4px;background:#262626;color:#CACACA;font-size:12px;font-weight:700;line-height:1.5;letter-spacing:.025em;white-space:normal;text-align:left}
.reservation-status svg{width:17px;height:17px;flex:none}
.badge.reservation-status-confirmada{color:#75D5A0;background:#12251B;border-color:#28533B}
.badge.reservation-status-pendiente,.badge.reservation-status-cancelacion{color:#F3C675;background:#2A2113;border-color:#6B4F25}
.badge.reservation-status-cancelacion{border-style:dashed}
.badge.reservation-status-rechazada{color:#FF8585;background:#30191C;border-color:#6F3037}
.badge.reservation-status-cancelada{color:#CACACA;background:#262626;border-color:#4D4D4D}
.reservation-card-top,.request>div:first-child{flex-wrap:wrap}

/* Administrative day lists: isolated document styles, letter landscape. */
.day-list-filters{display:flex;gap:18px;align-items:end;flex-wrap:wrap;margin:24px 0}
.day-list-filters>label{min-width:230px;flex:1}
.day-list-filters fieldset{border:1px solid #444;border-radius:8px;padding:12px;display:flex;gap:12px;flex-wrap:wrap;flex:2}
.day-list-filters legend{font-size:13px;color:#ccc;padding:0 6px}
.day-list-filters fieldset label{display:flex;align-items:center;gap:6px;font-size:13px;margin:0}
.day-list-filters input[type=checkbox]{width:17px;height:17px;accent-color:#bd1e2d}
.day-list-actions{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 14px}
.day-list-preview{overflow:auto;background:#292929;padding:20px;border:1px solid #444;border-radius:8px;max-height:75vh}
.day-list-paper{background:white;color:#202020;padding:30px;width:1056px;min-width:1056px;box-sizing:border-box;font:12px/1.5 'Johnny List',Arial,sans-serif}
.day-list-paper header{position:static;background:white;color:#202020;margin-bottom:18px}
.day-list-wordmark{color:#b41624;font-size:24px;font-weight:700;letter-spacing:2px}
.day-list-wordmark span{font-size:14px;letter-spacing:1px}
.day-list-paper h3{font:700 17px/1.4 'Johnny List',Arial,sans-serif;color:#202020;margin:12px 0}
.day-list-paper p{color:#444;font-size:11px;margin:6px 0}
.day-list-paper .day-list-totals{font-weight:700;color:#202020;font-size:13px}
.day-list-table{width:100%;border-collapse:collapse;table-layout:fixed;color:#202020}
.day-list-table col:nth-child(1),.day-list-table col:nth-child(2),.day-list-table col:nth-child(5),.day-list-table col:nth-child(6){width:15%}
.day-list-table col:nth-child(3){width:12%}.day-list-table col:nth-child(4){width:28%}
.day-list-table th,.day-list-table td{padding:8px;border:1px solid #ddd;text-align:left;vertical-align:top;overflow-wrap:anywhere;white-space:normal;font-size:11px}
.day-list-table th{background:#222;color:white;font-weight:700}
.day-list-table .day-list-holder td{font-weight:700;border-top:2px solid #aaa;background:#f5f5f5}
.day-list-confidential{margin-top:18px!important;font-size:10px!important}
#day-list-print-copy{display:none}
@font-face{font-family:'Johnny List';src:url('./fonts/DejaVuSans.ttf') format('truetype');font-display:swap;font-weight:400}
@font-face{font-family:'Johnny List';src:url('./fonts/DejaVuSans-Bold.ttf') format('truetype');font-display:swap;font-weight:700}
@media(max-width:600px){.day-list-panel{padding:16px}.day-list-filters{display:block}.day-list-filters>*{margin-bottom:14px}.day-list-filters fieldset{display:grid;grid-template-columns:1fr}.day-list-actions .btn{flex:1;min-width:130px}.day-list-preview{padding:8px}}
@media print{
 @page day-list{size:letter landscape;margin:0.4in}
 body.printing-day-list{background:white!important;color:black!important}
 body.printing-day-list>*:not(#day-list-print-copy){display:none!important}
 body.printing-day-list #day-list-print-copy{page:day-list;display:block!important;width:100%;min-width:0;padding:0;font-size:9pt;box-shadow:none}
 .day-list-paper thead{display:table-header-group}.day-list-paper tr{break-inside:avoid}.day-list-table th,.day-list-table td{font-size:8.5pt;padding:6pt;print-color-adjust:exact;-webkit-print-color-adjust:exact}
}

/* Keep the approved map positions inside the administrative columns as well. */
.admin-layout>section{min-width:0}
.admin-layout .customer-ground .table-grid .table[data-value="PB-7"]{grid-column:2}
/* R18 uses independent attendance labels; reservation status badges stay unchanged. */
.attendance-panel form{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:24px}
.attendance-scroll{max-width:100%;overflow:auto}.attendance-scroll table{width:100%;min-width:980px;border-collapse:collapse}
.attendance-scroll th,.attendance-scroll td{padding:12px;text-align:left;border-bottom:1px solid #444;font-size:13px;vertical-align:top}
.attendance-scroll th{color:#ddd}.attendance-negative{background:#40171d}.attendance-negative strong{display:block;color:#ff9292;margin-top:6px}
.attendance-client{margin:20px 0;padding:18px;border:1px solid #555;border-radius:8px}.attendance-response{display:grid;gap:20px}
@media(max-width:600px){.attendance-client .btn{width:100%;margin-top:8px}.attendance-panel .stats{grid-template-columns:repeat(2,1fr)}}

/* One contextual audit reason form, shared by every administrative operation. */
.admin-operation-dialog{max-height:calc(100dvh - 32px);overflow:auto}
.admin-operation-dialog textarea{display:block;width:100%;resize:vertical;min-height:90px;max-height:35dvh;padding:12px;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:3px}
.admin-operation-dialog textarea:focus-visible{outline:2px solid var(--white);outline-offset:3px}
.admin-operation-dialog [role="alert"]{color:var(--red)}
.admin-operation-dialog .form-actions{flex-wrap:wrap;justify-content:flex-end}
.demo-admin-scenarios{margin-bottom:20px}
.demo-admin-scenarios summary{cursor:pointer;margin-bottom:12px}

.admin-page>.page-heading{margin-bottom:16px}
.admin-session-identity{display:block;margin-top:12px;font-size:11px;line-height:1.5;color:var(--muted);overflow-wrap:anywhere}

/* Private holder photographs: registration, personal view and tablet identification. */
.photo-picker{border:1px solid #444;border-radius:12px;margin:20px 0;padding:18px;min-width:0}.photo-picker legend{font-weight:700;color:#fff}.photo-buttons{display:flex;flex-wrap:wrap;gap:10px}.photo-file-label{position:relative;overflow:hidden;text-align:center;cursor:pointer}.photo-file{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.photo-preview{margin:18px 0}.photo-preview img,.holder-photo{object-fit:contain;background:#171717;border:1px solid #555;border-radius:10px;max-width:100%;height:auto;max-height:320px}.photo-preview img{width:200px}.photo-preview figcaption{font-size:.85rem;margin:8px 0}.photo-camera video{display:block;width:100%;max-height:360px;object-fit:contain;margin:12px 0}.photo-camera[hidden],.photo-preview[hidden]{display:none}.holder-identification{display:grid;grid-template-columns:minmax(140px,240px) minmax(0,1fr);gap:22px;align-items:start}.holder-identification p{overflow-wrap:anywhere}.own-photo{max-width:900px;margin:24px auto}.photo-message{min-height:2.5em}.photo-file-label:focus-within{outline:2px solid #fff;outline-offset:3px}@media(max-width:600px){.photo-picker{padding:12px}.photo-buttons>*{width:100%}.holder-identification{grid-template-columns:1fr}.holder-identification .holder-photo{width:200px}.photo-buttons .btn{white-space:normal}}

/* Civil birth dates share the same editor across registration, profile and guests. */
.birth-date-field{min-width:0;margin-bottom:18px}
.birth-date-field label{margin-bottom:0}
.birth-date-field>small{display:block;margin-top:5px}
.birth-calendar-trigger{min-height:44px;text-align:left}
.birth-calendar{width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow-y:auto;padding:24px}
.birth-calendar h2{font-size:1.5rem;margin:0 0 10px}
.birth-calendar-selectors{display:grid;grid-template-columns:1.25fr 1fr;gap:16px}
.birth-calendar-selectors label{min-width:0}
.birth-calendar-selectors input,.birth-calendar-selectors select{width:100%;min-width:0;font-size:16px}
.birth-calendar-navigation{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:4px 0 12px}
.birth-calendar-navigation button{min-width:44px;min-height:44px}
.birth-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;margin-bottom:18px;text-align:center}
.birth-calendar-grid>span{font-size:.8rem;color:#aaa;padding:6px 0}
.birth-calendar-grid button{min-height:40px;padding:3px;border:1px solid #555;border-radius:5px;background:#222;color:#fff;font:inherit;cursor:pointer}
.birth-calendar-grid button:hover,.birth-calendar-grid button:focus-visible{background:#9e1820;outline:2px solid #fff;outline-offset:1px}
.birth-calendar-grid button[aria-pressed="true"]{background:#b91c26;border-color:#fff}
.birth-calendar-grid button:disabled{opacity:.28;cursor:default}
@media(max-width:380px){.birth-calendar{padding:16px}.birth-calendar-grid{gap:2px}.birth-calendar-grid button{min-height:38px}}

/* Native selfie picker is an internal mechanism, never a third visible choice. */
.photo-picker input[data-photo-source="capture"][hidden]{display:none}
.photo-message:empty{min-height:0}

/* Account data and the existing private photo share one profile page. */
.holder-profile-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,360px);gap:24px;align-items:start}
.holder-profile-layout .own-photo{margin:0;max-width:none}
.profile-details{margin:24px 0 0;display:grid;gap:20px}
.profile-details dt{color:var(--muted);font-size:12px}
.profile-details dd{margin:4px 0 0;font-size:16px;overflow-wrap:anywhere}
.account-name{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-logout{min-height:44px}
@media(max-width:740px){.holder-profile-layout{grid-template-columns:minmax(0,1fr)}.account-name{max-width:120px}.profile-details dd{font-size:15px}}

/* Private messaging: text-only, bounded layout on tablets and phones. */
.messaging-layout{display:grid;grid-template-columns:minmax(240px,1fr) minmax(0,2fr);gap:20px;align-items:start}.page.narrow .messaging-layout{display:block}.message-thread-list{display:grid;gap:8px}.message-thread{display:grid;gap:5px;text-align:left;padding:14px;border:1px solid var(--line,#ddd);background:transparent;color:inherit;border-radius:10px;overflow-wrap:anywhere}.message-thread.selected{border-color:#c92331;background:rgba(201,35,49,.08)}.message-history{list-style:none;margin:20px 0;padding:0;display:grid;gap:12px;max-height:60vh;overflow:auto}.message-bubble{padding:14px;border:1px solid var(--line,#ddd);border-radius:12px;max-width:96%;overflow-wrap:anywhere}.message-bubble.admin{background:rgba(201,35,49,.07)}.message-bubble p{white-space:pre-wrap;margin:8px 0}.message-bubble time,.message-bubble small{font-size:.75rem;color:var(--muted,#777)}.message-conversation textarea{width:100%;resize:vertical;min-height:110px;padding:12px;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:4px}.message-conversation textarea:focus-visible{outline:2px solid var(--white);outline-offset:3px}.message-conversation form{display:grid;gap:12px;margin:16px 0}.message-conversation,.message-inbox{min-width:0}.message-conversation .section-heading{flex-wrap:wrap}.header nav{flex-wrap:nowrap;min-width:0;overflow-x:auto}.header nav a{flex-shrink:0}
@media(max-width:760px){.messaging-layout{grid-template-columns:minmax(0,1fr)}.message-thread-list{max-height:35vh;overflow:auto}.message-bubble{max-width:100%}.message-conversation{padding:16px}.message-history{max-height:50vh}}

/* Encaje de los mínimos ampliados en pantallas estrechas, sin reducir texto.
   El desplazamiento queda dentro del calendario/plano, nunca en la página. */
@media screen and (max-width:380px){
  .calendar-grid{grid-template-columns:repeat(7,minmax(38px,1fr));overflow-x:auto;padding-bottom:4px}
}
@media screen and (max-width:360px){
  .customer-ground{overflow-x:auto}
  .customer-ground .table-grid{min-width:260px}
}
@media screen{
  .floor-tabs{flex-wrap:wrap}
  .floor-tabs button{min-width:max-content}
  .floor-tabs button small,.table-top b,.table-top small{white-space:nowrap}
}
@media screen and (max-width:740px){
  .admin-page .user-list article>div:first-child{flex-basis:100%}
}

/* Legal documents only: reuse the DM Sans family already loaded by this site. */
:is(.legal-document,.legal-reading,.legal-acceptance,.legal-account){
 font-family:var(--sans);font-size:16px;font-weight:400;line-height:1.6;color:var(--white);
}
:is(.legal-document,.legal-reading,.legal-acceptance,.legal-account) :is(h1,h2,h3,p,li,a,label,summary,button,strong,span){font-family:var(--sans);}
.legal-document h1,.legal-account>.legal-title{font-size:32px;font-weight:700;line-height:1.2;letter-spacing:normal;overflow-wrap:anywhere;}
:is(.legal-document,.legal-reading) h2{font-size:16px;font-weight:600;line-height:1.6;letter-spacing:normal;overflow-wrap:anywhere;margin:1.5em 0 .75em;padding-top:1em;border-top:1px solid var(--border);}
.legal-section-heading{display:flex;align-items:baseline;gap:.75em;}
.legal-section-heading>span:last-child{min-width:0;}
:is(.legal-document,.legal-reading,.legal-account) p,.legal-acceptance .checkbox{font-size:16px;font-weight:400;line-height:1.6;color:var(--white);}
:is(.legal-document,.legal-reading,.legal-account) p+p{margin-top:1em;}
.legal-list{list-style:none;padding:0;margin:1em 0;display:grid;gap:.75em;}
.legal-list li{display:flex;align-items:baseline;gap:.75em;font-size:16px;line-height:1.6;}
:is(.legal-document,.legal-reading) .legal-number{font-size:14px;font-weight:500;flex-shrink:0;}
:is(.legal-document,.legal-reading,.legal-account) :is(.field-note,.notice),.legal-secondary{font-family:var(--sans);font-size:13px;font-weight:400;line-height:1.6;color:var(--white);}
.legal-acceptance{margin-block:1em;}
.legal-acceptance>p,.legal-account>a{font-size:13px;line-height:1.6;}
.legal-acceptance .checkbox{display:flex;align-items:flex-start;gap:12px;margin-block:1em;}
.legal-acceptance input[type="checkbox"]{flex-shrink:0;margin-top:.3em;}
.legal-reading>summary{font-size:16px;font-weight:600;line-height:1.6;}
@media(max-width:700px){
 .legal-document h1,.legal-account>.legal-title{font-size:26px;}
 :is(.legal-document,.legal-reading) h2{font-size:15px;}
}

/* Secondary display phrases inherit the chosen heading family without italics. */
:is(h1,h2,h3) em{font-family:inherit;font-style:normal;font-weight:500;}

/* E-004/E-006/E-007 candidate. Approval required before incorporation. */
.message-history{display:flex;flex-direction:column;gap:16px;padding:4px;align-items:flex-start}
.message-bubble{font-size:16px;line-height:1.6;max-width:88%;min-width:0;flex-shrink:0}
.message-bubble.admin{align-self:flex-end;background:var(--red);border-color:var(--red);color:var(--white)}
.message-bubble.client{align-self:flex-start;background:var(--gray-40);border-color:var(--gray-64)}
.message-bubble>div{display:flex;flex-wrap:wrap;column-gap:12px;row-gap:4px;align-items:baseline}
.message-bubble.admin time,.message-bubble.admin small{color:var(--white)}
.message-conversation textarea{font-size:16px;line-height:1.6;min-height:144px;max-width:100%;box-sizing:border-box}
.message-thread{font:inherit;min-width:0}.message-thread b,.message-thread span{white-space:normal}
.message-conversation h2,.message-inbox h2{overflow-wrap:anywhere}
.notification-bell{position:relative;background:transparent;border:1px solid var(--border);border-radius:50%;width:44px;height:44px;display:inline-grid;place-items:center;flex-shrink:0}
.notification-count{position:absolute;top:-7px;right:-7px;background:var(--red);color:var(--white);border-radius:16px;min-width:22px;padding:0 5px;font-size:12px;line-height:22px}
.notification-inbox{display:grid;gap:16px;min-width:0}.notification-item{display:grid;gap:7px;text-align:left;padding:16px;border:1px solid var(--border);border-radius:8px;background:var(--gray-40);font:inherit;overflow-wrap:anywhere}
.user-information{display:grid;grid-template-columns:160px minmax(0,1fr);gap:24px}.user-information dl{margin:0;min-width:0}.user-information dl>div{padding:8px 0;border-bottom:1px solid var(--border)}.user-information dt{color:var(--muted);font-size:12px}.user-information dd{margin:0;overflow-wrap:anywhere}.user-information dd button{margin:6px 0}.user-reservation-history{display:grid;gap:12px;margin:16px 0}.user-reservation-history article{border-bottom:1px solid var(--border);padding-bottom:12px}
.next-visit-dates,.historical-dates{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:16px 0}.historical-dates{display:block}.historical-dates button{margin:6px}.day-list-filters{align-items:start}.day-list-filters label{min-width:0}.day-list-filters fieldset{min-width:0}
.admin-page .user-list article>*{min-width:0}.admin-page .user-list article b,.admin-page .user-list article small{overflow-wrap:anywhere;white-space:normal}.admin-page .user-actions{flex-wrap:wrap}.calendar-heading{flex-wrap:wrap}.calendar-heading>div{min-width:0}.section-heading>div{min-width:0}
@media(max-width:600px){.user-information{grid-template-columns:minmax(0,1fr)}.user-information .holder-photo{max-width:160px}.message-bubble{max-width:94%}.message-conversation .section-heading h2{font-size:24px}.account{gap:8px}.header-inner{column-gap:12px}.notification-bell{width:40px;height:40px}.notification-inbox{font-size:16px}}

/* Legibilidad del plano; conserva posiciones y capacidades. */
.legend{font-size:14px;flex-wrap:wrap;row-gap:12px}.legend i{width:14px;height:14px;flex-shrink:0}.plan-wall,.customer-ground .plan-wall{font-size:12px}.companions-screen .holder-card>div{min-width:0;overflow-wrap:anywhere}

/* R20/R22: compact client cards; administrative cards retain their layout. */
.compact-reservation{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:16px;min-height:132px;align-items:center;overflow:visible}
/* Glass creates one stacking context per card: elevate the open card, not just its menu. */
.compact-reservation:has(.reservation-menu[open]){z-index:1}
.compact-reservation-main{min-width:0;display:grid;gap:6px}
.compact-reservation-main h2{font-size:18px;line-height:1.25;margin:0;overflow-wrap:anywhere}
.compact-reservation-main p{margin:0;font-size:14px;line-height:1.4}
.compact-reservation .reservation-code{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.compact-reservation .reservation-status{font-size:10px;width:fit-content;max-width:100%}
.compact-reservation-controls{display:flex;align-items:center;gap:8px}
.compact-info,.reservation-menu summary{min-width:44px;min-height:44px}
.reservation-menu{position:relative}
.reservation-menu summary{display:grid;place-items:center;cursor:pointer;list-style:none;border:1px solid #555;border-radius:6px;font-size:24px;color:#fff;background:#191919}
.reservation-menu summary::-webkit-details-marker{display:none}
.reservation-menu-content{position:absolute;z-index:8;right:0;top:calc(100% + 6px);width:220px;padding:10px;background:#191919;border:1px solid #666;border-radius:8px;box-shadow:0 8px 24px #0009}
.reservation-menu-content button{width:100%;min-height:44px;background:none;border:0;color:#fff;text-align:left;cursor:pointer;padding:8px}
.reservation-menu-content p{font-size:13px;margin:4px}
.reservation-detail .people-list{max-height:35vh;overflow:auto}
.contact-screen .panel{overflow-wrap:anywhere}
.contact-screen input,.contact-screen select,.contact-screen textarea{width:100%;min-width:0}
.contact-screen form{display:grid;gap:16px}
.contact-trap{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
@media(max-width:480px){.compact-reservation{padding:14px;gap:8px;min-height:144px}.compact-reservation-controls{flex-direction:column;gap:6px}.compact-reservation-main h2{font-size:17px}}
.contact-screen textarea{background:#171717;color:#fff;border:1px solid #555;border-radius:4px;padding:12px;font:inherit;resize:vertical;min-height:120px}
.selected-new-guests [data-action="remove-guest"]{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}

/* On-demand tutorial only: same palette, native top layer and touch-sized close. */
.tutorial-dialog{--glass-background:#101010;box-sizing:border-box;width:min(960px,calc(100% - 24px));max-width:960px;padding:28px;max-height:calc(100dvh - 24px);overflow:auto;background:#101010;color:#fff;border:1px solid #777}
.tutorial-dialog h2{padding-right:32px;font-size:clamp(20px,3vw,30px);line-height:1.2}
.tutorial-dialog .eyebrow{color:#ed1c24;padding-right:38px}
.tutorial-player{width:100%;height:clamp(200px,50vw,506px);aspect-ratio:16/9;min-height:200px;max-height:55dvh;background:#000;border:1px solid #555}
.tutorial-player iframe{display:block;width:100%;height:100%;min-height:200px;border:0}
.tutorial-dialog .tutorial-close{display:grid;place-items:center;min-width:44px;min-height:44px;font-size:30px;line-height:1;color:#fff;right:8px;top:8px}
.tutorial-dialog :focus-visible{outline:2px solid #ed1c24;outline-offset:3px}
.tutorial-dialog .tutorial-youtube{min-height:44px;white-space:normal}
.tutorial-access a{display:inline-block;min-height:44px;padding-block:8px}
@media(max-width:480px){.tutorial-dialog{padding:20px 12px}.tutorial-dialog h2{margin-top:18px}}
