:root{--tinta:#10111e;--oro:#c9a84c;--papel:#f7f5ef;--gris:#676760;--borde:#e6e1d5;font-family:system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--tinta);background:var(--papel);line-height:1.5}*{box-sizing:border-box}body{margin:0}header{background:var(--tinta);color:#fff;padding:20px max(20px,calc((100% - 1080px)/2));display:flex;align-items:center;justify-content:space-between;gap:16px}.marca{color:var(--oro);display:flex;gap:14px;align-items:center;text-decoration:none;font:24px Georgia,serif}.marca small{display:block;font:9px system-ui;letter-spacing:3px;margin-top:3px}.monograma{font:52px Georgia,serif;line-height:1}.volver{color:#e8e3d7;font-size:13px}main{max-width:1080px;margin:0 auto;padding:44px 24px 64px}.eyebrow{font-size:10px;letter-spacing:2.4px;color:#80662a;font-weight:700}h1{font:clamp(30px,6vw,46px) Georgia,serif;margin:10px 0}h2{font:25px Georgia,serif;margin:0 0 18px}h3{margin-top:0}.muted{color:var(--gris)}.layout{display:grid;grid-template-columns:1.15fr 1fr;gap:24px;margin-top:28px}.panel{background:#fff;border:1px solid var(--borde);border-radius:16px;padding:26px;margin-bottom:20px}.concierto{background:var(--tinta);color:#fff}.concierto .muted{color:#bcbcbf}.concierto .precio{font:38px Georgia,serif;color:var(--oro);margin:26px 0 0}.datos{display:flex;gap:20px;flex-wrap:wrap}.tag{display:inline-block;padding:4px 10px;border-radius:20px;background:#eee9db;font-size:12px;font-weight:650}.concierto .tag{background:#343227;color:#edcf7f}.pasos{font-size:14px;padding-left:20px}.pasos li{padding:5px 0}label{display:block;font-size:13px;font-weight:650;margin:14px 0 5px}input,select,textarea{font:inherit;width:100%;padding:11px 12px;border:1px solid #c8c5bc;border-radius:8px;background:#fff;color:var(--tinta)}textarea{min-height:85px}input[type=checkbox]{width:auto;min-width:18px;min-height:18px;margin-right:8px}button,.boton{display:inline-block;font:650 14px system-ui;padding:12px 18px;border:1px solid transparent;border-radius:8px;color:var(--tinta);background:var(--oro);cursor:pointer;text-decoration:none;text-align:center;min-height:44px}button:hover,.boton:hover{filter:brightness(.96)}button:disabled{opacity:.6;cursor:wait}.secundario{background:#fff;border-color:#d4cfc1}.peligro{background:#a82525;color:#fff}.acciones{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.mensaje{padding:14px 18px;border-radius:10px;margin:18px 0;background:#f7e8cf}.error{background:#fce5e5;color:#8b1e1e}.ok{background:#e5f1e6;color:#215f2a}.grande{font-size:22px;font-weight:700}.codigo{font:15px monospace;overflow-wrap:anywhere}.cuenta{background:var(--papel);padding:16px;border-radius:10px;margin:18px 0;overflow-wrap:anywhere}.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:22px}.kpi{background:#fff;border:1px solid var(--borde);padding:16px;border-radius:12px}.kpi strong{display:block;font:26px Georgia,serif}.kpi span{font-size:12px;color:var(--gris)}.tabla-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;border-bottom:1px solid var(--borde);padding:12px 8px;vertical-align:top}th{font-size:11px;color:var(--gris);text-transform:uppercase;letter-spacing:.6px}td button{padding:6px 10px;margin:4px 4px 0 0;font-size:12px}small{font-size:12px}.entradas{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-top:24px}.entrada{text-align:center;background:#fff;border:1px dashed #b9aa84;border-top:5px solid var(--oro);padding:22px;border-radius:14px;break-inside:avoid}.entrada svg{width:100%;max-width:240px;height:auto}.entrada .codigo{font-size:10px}.enlace{display:flex;gap:8px;align-items:center}.enlace input{min-width:0}dialog{border:1px solid var(--borde);border-radius:14px;max-width:520px;width:calc(100% - 32px);padding:26px}dialog::backdrop{background:#10111e99}#accion-error{color:#a82525}footer{text-align:center;color:var(--gris);font-size:12px;padding:24px;border-top:1px solid var(--borde)}#lector{max-width:420px;margin:auto}details summary{cursor:pointer;font-weight:650;padding:12px 0}a{color:#68501d}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #8569c6;outline-offset:3px}@media(max-width:700px){main{padding:28px 16px}.layout{grid-template-columns:1fr;gap:0}.panel{padding:20px}.kpis{gap:6px}.kpi{padding:12px 8px}.kpi strong{font-size:21px}header{padding:16px}.marca{font-size:20px}.volver{font-size:12px}.enlace{flex-wrap:wrap}}@media print{header,.eyebrow,footer,.no-imprimir,#mensaje,#bajada,dialog{display:none!important}main{padding:0}body{background:#fff}.entradas{display:block}.entrada{max-width:400px;margin:16px auto;page-break-inside:avoid}.entrada svg{width:220px}h1{font-size:24px}.panel{border:0;padding:0}}
dialog:not([open]){display:none}dialog[open]{display:block;position:fixed;left:50%;top:12vh;margin:0;transform:translateX(-50%);max-height:76vh;overflow:auto;z-index:1000}

/* Portada pública: lista de conciertos con venta abierta */
.concierto-opcion{display:flex;flex-direction:column;gap:2px;padding:14px 16px;margin-top:10px;border:1px solid #e5e1d8;border-radius:10px;text-decoration:none;color:inherit;transition:border-color .15s,background .15s}
.concierto-opcion:hover{border-color:#b8860b;background:#fbf8f1}
.concierto-opcion span{color:#6b7280;font-size:14px}
.concierto-opcion .precio-chico{color:#b8860b;font-weight:700}

/* Venta en puerta */
.venta-puerta{background:var(--papel);border:1px solid var(--borde);border-radius:12px;padding:4px 16px 16px;margin:6px 0 4px}
.venta-puerta summary{font-size:15px}
.venta-puerta form{display:grid;gap:2px}
.venta-puerta button{margin-top:10px}
