:root{--ink:#291521;--wine:#54273d;--gold:#bb9459;--cream:#49365a;--line:#e3ded5;--muted:#665b68;--green:#45715f}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:14px}button,input,select{font:inherit}button,a,select{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #b9965e;outline-offset:3px}.demo{background:var(--ink);color:#e7c991;padding:10px 4%;font-size:10px;letter-spacing:1.6px;display:flex;gap:20px}.demo span{color:#ded4da;letter-spacing:.3px}header{padding:24px 4%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;gap:15px;align-items:center;color:inherit;text-decoration:none;font-size:10px;letter-spacing:1.6px}.brand small{display:block;color:var(--muted);font-size:9px;margin-top:7px;letter-spacing:2px}.monogram{border:1px solid var(--gold);font-family:Georgia,serif;font-size:22px;padding:12px 7px;letter-spacing:-1px}nav{display:flex;gap:6px}nav button{background:none;border:0;padding:12px 16px;color:var(--muted);border-radius:4px}nav button.active{background:#eae4df;color:var(--wine)}main{max-width:1450px;margin:auto;padding:0 4%}.intro{display:flex;justify-content:space-between;align-items:center;padding:44px 0 30px}.eyebrow{color:#94713d;font-size:10px;letter-spacing:2px;font-weight:bold;margin:0 0 14px}h1{font-family:Georgia,'Times New Roman',serif;font-weight:normal;font-size:44px;line-height:1.13;margin:0 0 17px;letter-spacing:-1.2px}h1 em{font-weight:normal;color:var(--wine)}h2{font-family:Georgia,serif;font-size:25px;font-weight:normal;margin:0}.lead{color:var(--muted);font-size:14px;line-height:1.6;margin:0}.price{text-align:right;border-right:2px solid var(--gold);padding-right:20px}.price>span{font-size:10px;letter-spacing:2px;color:var(--muted)}.price strong{display:block;font-family:Georgia,serif;font-weight:normal;font-size:37px;margin:8px 0}.price small{font-family:Arial;font-size:11px}.price p{font-size:12px;color:var(--muted)}.steps{display:flex;gap:42px;padding:17px 0 25px;font-size:12px;color:#938990}.steps b{color:#ad9b84;font-weight:normal;margin-right:9px}.steps .current{color:var(--wine)}.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:22px;align-items:start}.map-panel,.selection-panel{background:#fff;border:1px solid var(--line);border-radius:10px;padding:25px}.section-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.section-top .eyebrow{margin-bottom:8px}.table-jump{font-size:11px;color:var(--muted)}select{border:1px solid var(--line);background:#fff;padding:9px;border-radius:5px;color:var(--ink)}.legend{display:flex;gap:17px;margin:21px 0;font-size:10px;color:var(--muted)}.legend span{display:flex;align-items:center;gap:6px}.legend i{display:inline-block;width:8px;height:8px;border-radius:50%}.available{background:#729582}.partial{background:#bd965b}.full{background:#a69aa2}.chosen{background:var(--wine)}.map-scroll{overflow:auto;background:#faf9f5;border:1px solid #eee9e0;border-radius:7px}#floor{position:relative;width:100%;aspect-ratio:4/3;min-width:550px}.map-table{position:absolute;border:1px solid #9ab7a8;border-radius:50%;background:#f0f5ef;color:#416451;width:5.25%;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:11px;padding:0;transition:background .15s,transform .15s}.map-table small{font-size:7px;color:inherit;margin-top:2px}.map-table:hover{transform:scale(1.1)}.map-table.partial{background:#fbf0db;color:#866630;border-color:#cfb47e}.map-table.full{background:#eae5e8;border-color:#c8bfc5;color:#82747e}.map-table.selected{background:var(--wine);color:white;border-color:var(--wine);box-shadow:0 0 0 3px #e6d8df}.landmark{position:absolute;text-align:center;color:#a59a87;font-size:9px;letter-spacing:1px;display:flex;align-items:center;justify-content:center;pointer-events:none}.landmark.dance{border:1px dashed #d8cbb7;background:#f2eee5;font-family:Georgia;font-size:18px;letter-spacing:3px;color:#a18b68}.map-note{font-size:10px;color:#8c8287;line-height:1.6;margin:17px 0 0}.count{font-size:10px;background:#edf3ef;color:var(--green);padding:8px;border-radius:20px}.muted{color:var(--muted);font-size:12px;line-height:1.6}.selection-panel{position:sticky;top:16px}#seat-ring{height:247px;position:relative;width:270px;margin:0 auto}.table-center{position:absolute;left:85px;top:73px;width:100px;height:100px;border-radius:50%;background:#f4f0e8;border:1px solid #dbcaaf;display:flex;flex-direction:column;align-items:center;justify-content:center}.table-center span{font-size:9px;letter-spacing:2px;color:#968368}.table-center strong{font-family:Georgia;font-weight:normal;font-size:34px;margin-top:4px}.seat{position:absolute;width:34px;height:34px;border:1px solid #a7bcaf;color:#40654f;background:#f3f7f3;border-radius:10px;font-size:12px}.seat.picked{background:var(--wine);color:#fff;border-color:var(--wine)}.seat.occupied{background:#e9e5e7;border-color:#d9d2d6;color:#958892;opacity:1}.seat-legend{display:flex;justify-content:center;gap:16px;font-size:10px;color:var(--muted)}.text-btn{background:none;border:0;color:var(--wine);font-size:11px;padding:18px 0;text-decoration:underline;text-underline-offset:4px}.cart-row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-top:1px solid var(--line);font-size:11px;line-height:1.6}.cart-row button{border:0;background:none;font-size:18px;color:var(--muted)}.empty-cart{font-size:11px;color:var(--muted);padding:8px 0 18px}.totals{border-top:1px solid var(--line);padding:16px 0}.totals div{display:flex;justify-content:space-between;padding:5px 0;font-size:11px}.totals strong{font-size:19px;font-family:Georgia}.totals b{font-weight:normal}.primary{border:0;background:var(--wine);color:white;border-radius:5px;padding:15px 20px;font-size:12px}.primary:hover{background:#703951}.selection-panel>.primary{width:100%;display:flex;justify-content:space-between}.fine{font-size:10px;line-height:1.7;color:var(--muted)}.bottom-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;padding:35px 0}.bottom-notes b{font-family:Georgia;font-size:17px;font-weight:normal}.bottom-notes p{color:var(--muted);font-size:12px;line-height:1.7}footer{padding:24px 4%;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:9px;color:var(--muted);letter-spacing:.7px}.admin-head{display:flex;justify-content:space-between;align-items:center;padding:40px 0 25px}.admin-head h1{font-size:38px}.simulation{display:flex;flex-wrap:wrap;align-items:center;gap:18px;background:#eee8dd;padding:15px;border-radius:7px;font-size:11px}.simulation label{display:flex;align-items:center;gap:8px}.simulation span{color:var(--muted);font-size:10px}.secondary{border:1px solid #d4c9bf;background:white;padding:10px 13px;border-radius:5px;color:var(--wine);font-size:11px}input{border:1px solid var(--line);border-radius:5px;padding:11px;background:white;color:var(--ink);min-width:0}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:25px 0}.stat{padding:20px;background:white;border:1px solid var(--line);border-radius:8px}.stat span{display:block;color:var(--muted);font-size:11px}.stat strong{display:block;font-family:Georgia;font-size:28px;font-weight:normal;margin:12px 0 0}.admin-toolbar{display:flex;gap:12px;margin-bottom:15px}.admin-toolbar input{flex:1}.table-scroll{overflow:auto;background:white;border:1px solid var(--line);border-radius:7px}table{width:100%;border-collapse:collapse;font-size:12px;min-width:800px}th{text-align:left;background:#f0ece5;color:var(--muted);font-size:10px;font-weight:normal;letter-spacing:.5px}td,th{padding:15px;border-bottom:1px solid var(--line)}td small{display:block;color:var(--muted);margin-top:5px;line-height:1.5}.badge{display:inline-block;padding:6px 9px;border-radius:20px;background:#f6ecd9;color:#907039;font-size:10px;white-space:nowrap}.badge.Liquidado{background:#e6f1eb;color:var(--green)}.badge.Cancelado{background:#eee8ea;color:#927b86}.activity-title{margin-top:30px}#activity{padding:15px 0 35px;font-size:11px;color:var(--muted)}#activity p{padding:9px 0;border-bottom:1px solid var(--line)}dialog{border:1px solid var(--line);border-radius:12px;padding:32px;width:570px;max-width:calc(100vw - 24px);max-height:90vh;box-shadow:0 20px 100px #21111b40;color:var(--ink)}dialog::backdrop{background:#24142099;backdrop-filter:blur(3px)}dialog h2{font-size:30px;margin-bottom:14px}.close{position:absolute;right:12px;top:9px;border:0;background:none;font-size:25px;color:var(--muted)}dialog label{display:flex;flex-direction:column;gap:7px;font-size:11px;margin:15px 0}.form-columns{display:grid;grid-template-columns:1fr 1fr;gap:15px}.checkbox{flex-direction:row!important;align-items:center;line-height:1.6}.summary{background:#f3efe7;padding:15px;border-radius:6px;font-size:12px;line-height:1.8}.summary strong{display:block}.success{color:var(--green)}.detail-pay{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.detail-pay label{flex:1;min-width:150px}.detail-pay button{margin-bottom:15px}.ticket-list{max-height:220px;overflow:auto;border-top:1px solid var(--line);padding-top:12px}.ticket{padding:10px 0;font-size:11px;border-bottom:1px solid var(--line)}.ticket code{display:block;color:var(--muted);font-size:9px;overflow-wrap:anywhere;margin-top:5px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;border-radius:8px;padding:14px 22px;box-shadow:0 10px 30px #0003;max-width:90vw;z-index:9;display:none}.empty-results{text-align:center;padding:35px;color:var(--muted)}[hidden]{display:none!important}@media(min-width:1400px){#floor{min-width:650px}}@media(max-width:950px){.booking-layout{grid-template-columns:minmax(0,1fr) 310px}.selection-panel,.map-panel{padding:18px}.legend{gap:10px}.intro h1{font-size:37px}.price strong{font-size:30px}}@media(max-width:760px){header{padding:18px 5%;align-items:start;gap:12px;flex-direction:column}nav{width:100%}nav button{flex:1;padding:10px;font-size:11px}.demo{flex-direction:column;gap:5px;font-size:9px}.intro{padding:28px 0;display:block}.intro h1{font-size:36px}.price{text-align:left;border:0;margin-top:24px;padding:0}.price strong{font-size:28px;display:inline-block;margin:5px 10px}.price p{display:inline;font-size:11px}.steps{gap:14px;font-size:9px}.booking-layout{display:flex;flex-direction:column}.map-panel,.selection-panel{width:100%;position:static}.map-panel{padding:17px}#floor{min-width:560px}.map-scroll{max-height:430px}.bottom-notes{grid-template-columns:1fr;gap:10px}footer{gap:15px;flex-direction:column}.admin-head{display:block}.admin-head .primary{margin-top:18px}.stats{grid-template-columns:1fr 1fr;gap:10px}.stat{padding:15px}.stat strong{font-size:22px}.admin-toolbar{flex-wrap:wrap}.admin-toolbar input{width:100%;flex-basis:100%}.form-columns{grid-template-columns:1fr;gap:0}dialog{padding:25px 20px}.legend{flex-wrap:wrap}main{padding:0 4%}}

.brand-logo{display:block;width:112px;height:85px;object-fit:contain;flex-shrink:0}nav button.active{background:#e0d5e9}header{border-bottom-color:#d9cde2}footer{border-top-color:#d9cde2}@media(max-width:760px){.brand-logo{width:90px;height:69px}.brand{gap:12px;font-size:9px}.brand small{font-size:8px}}

/* SCM: morado profundo, lavanda Carrd y oro del escudo. */
:root{--on-purple:#fffaf2;--on-purple-soft:#eee5f7;--lavender:#c4a2fc}
header{border-bottom-color:#735d85}.brand{color:var(--on-purple)}.brand small{color:var(--on-purple-soft);font-size:10px;letter-spacing:1.6px}.brand-logo{background:#fffaf5;border:1px solid #dcc8a4;border-radius:8px;padding:6px}
nav button{color:var(--on-purple-soft);border:1px solid #a78dbd}nav button:hover{background:#5b426f;color:#fff}nav button.active{background:#e5d6f7;border-color:#e5d6f7;color:#392345}
.intro h1,.admin-head h1{color:var(--on-purple)}.intro h1 em{color:#ddc8fb}.intro .lead,.admin-head .lead{color:var(--on-purple-soft)}.intro .eyebrow,.admin-head .eyebrow{color:#f1d7a6;font-size:11px}.price{color:var(--on-purple);border-right-color:#d8b97f}.price>span,.price p{color:var(--on-purple-soft)}.price strong,.price small{color:var(--on-purple)}
.steps{color:#e7dbf1}.steps b{color:#e6ca96}.steps .current{color:#fffaf2;font-weight:bold}
.bottom-notes{color:var(--on-purple)}.bottom-notes p{color:var(--on-purple-soft)}footer{color:#e7dbf1;border-top-color:#735d85}.activity-title{color:var(--on-purple)}#activity{color:var(--on-purple-soft)}#activity p{border-bottom-color:#735d85}
.eyebrow{color:#785727}.fine,.map-note,.table-jump,.legend,.seat-legend,.empty-cart{color:#665b68}.map-note{font-size:11px}.landmark{color:#756750}.landmark.dance{color:#756044}.table-center span{color:#756044}.table-center strong{color:#49365a}
@media(max-width:760px){.brand small{font-size:9px}.intro .eyebrow{font-size:10px;letter-spacing:1.5px}.steps{line-height:1.6}}

#continue{background:#5b3e75;color:#ffffff}#continue:disabled{background:#5b3e75;color:#ffffff;opacity:1;cursor:not-allowed}#continue:not(:disabled):hover{background:#49315f}
[hidden]{display:none!important}#login-error{color:#a22040}.contact-link{display:block;margin:20px 0;color:#5b3e75;text-decoration:underline}#connection{line-height:1.5}#camera{max-width:360px;margin:20px auto}.ticket{display:flex;flex-direction:column;gap:8px}.ticket-qr{width:180px;max-width:100%;background:white;padding:6px}.ticket-qr svg{display:block;width:100%;height:auto}#scan-result{padding:18px;border-radius:12px;background:#f4edf8;color:#492f60;font-weight:bold}#scan-result[data-status=admitted]{background:#dcefe6;color:#14513d}#scan-result[data-status=invalid],#scan-result[data-status=already_used]{background:#ffe3e3;color:#8d1631}#payment-form{margin:20px 0;padding:18px;border:1px solid #ddd;border-radius:14px}button:focus-visible,a:focus-visible{outline:3px solid #b98cec;outline-offset:3px}.simulation{flex-wrap:wrap}#login{max-width:460px}#reader{max-width:520px}
@media print{body>*{display:none!important}body>#detail{display:block!important;position:static;max-width:none;width:100%;max-height:none;border:0;overflow:visible;background:white;color:black}#detail::backdrop{display:none}#detail button,#detail a,#payment-form{display:none!important}.ticket{break-inside:avoid;border:1px solid #333}.ticket-qr{width:180px}body{background:white}#detail-content{color:black}}
