
        * { margin: 0; padding: 0; box-sizing: border-box; }
        body { font-family: Georgia, serif; background: #faf8f4; color: #413a33; min-height: 100vh; }
        header { background: #ffffff; border-bottom: 1px solid #e9e2d8; padding: 23px 35px; }
        .barra { max-width: 1250px; margin: auto; display: flex; justify-content: space-between; align-items: center; gap: 20px; }
        .logo { font-size: 24px; color: #a88a65; cursor: pointer; white-space: nowrap; }
        nav { display: flex; gap: 25px; flex-wrap: wrap; }
        nav button { background: none; border: none; font-size: 14px; color: #655c51; cursor: pointer; transition: color .2s; }
        nav button:hover { color: #b4936c; }
        main { min-height: calc(100vh - 100px); display: flex; align-items: center; justify-content: center; padding: 45px 20px; }
        .contenido { text-align: center; width: 100%; }
        .corazon { font-size: 34px; color: #bd9d79; margin-bottom: 27px; }
        .subtitulo { color: #a88a65; letter-spacing: 5px; text-transform: uppercase; font-size: 12px; margin-bottom: 30px; }
        .contador { font-size: clamp(95px, 19vw, 190px); font-weight: normal; line-height: 1; color: #53493e; }
        .dias { margin-top: 15px; font-size: 19px; color: #a88a65; letter-spacing: 3px; }
        .separador { width: 75px; height: 1px; background: #c6ac88; margin: 45px auto; }
        .fecha { font-size: 27px; letter-spacing: 2px; }
        .mensaje { margin-top: 20px; color: #a49a8b; font-size: 15px; font-style: italic; }
        .seccion { display: none; }
        .seccion.activa { display: block; }
        .titulo-seccion { font-size: 38px; font-weight: normal; margin-bottom: 20px; }
        .proximamente { color: #a88a65; font-size: 17px; }
        @media (max-width: 900px) {
            .barra { flex-direction: column; }
            nav { justify-content: center; gap: 14px; }
            header { padding: 18px; }
            .fecha { font-size: 22px; }
        }

        /* NUEVA ZONA DE CHECKLIST Y CALENDARIO. No modifica la portada. */
        main.modo-gestion { display: block; min-height: calc(100vh - 90px); padding: 32px 20px 65px; }
        .gestion { max-width: 1100px; margin: 0 auto; }
        .cabecera-gestion { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 20px; flex-wrap: wrap; }
        .cabecera-gestion h1 { font-size: 34px; font-weight: normal; color: #51463c; }
        .cabecera-gestion p { color: #9a856d; font-size: 14px; margin-top: 6px; }
        .opciones { display: flex; gap: 8px; }
        .btn, .opciones button { border: 1px solid #d9c8b3; border-radius: 9px; background: white; color: #655442; cursor: pointer; font: inherit; padding: 10px 15px; font-size: 14px; }
        .btn:hover, .opciones button:hover { background: #f4ede4; }
        .opciones button.seleccionado { background: #947858; color: white; border-color: #947858; }
        .panel { background: #fff; border: 1px solid #ede5db; border-radius: 15px; padding: 24px; box-shadow: 0 8px 30px rgba(65,58,51,.035); }
        .panel-login { max-width: 500px; margin: 45px auto; text-align: center; }
        .panel-login h2 { font-size: 24px; font-weight: normal; margin-bottom: 13px; }
        .panel-login p { font-size: 14px; color: #807368; margin-bottom: 18px; line-height: 1.5; }
        .form-login { display: flex; gap: 10px; }
        input[type="password"], input[type="search"] { font: inherit; border: 1px solid #d9c8b3; background: white; border-radius: 8px; padding: 12px; color: #413a33; min-width: 0; }
        .form-login input { flex: 1; }
        .btn-primario { background: #947858; color: #fff; border-color: #947858; }
        .btn-primario:hover { background: #806649; }
        .aviso { color: #a34242; font-size: 14px; margin-top: 13px; min-height: 20px; }
        .resumen { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 20px 0; }
        .dato { padding: 19px; border: 1px solid #ede5db; border-radius: 12px; background: #fff; }
        .dato strong { font-size: 30px; font-weight: normal; display: block; }
        .dato span { color: #94816e; font-size: 13px; }
        .herramientas { display: flex; gap: 12px; justify-content: space-between; align-items: center; margin-bottom: 13px; flex-wrap: wrap; }
        .herramientas input { width: min(420px, 100%); }
        .nota { color: #86796e; font-size: 13px; }
        .tarea-fila { display: flex; align-items: center; gap: 12px; padding: 16px 4px; border-bottom: 1px solid #f0ebe5; }
        .tarea-fila:last-child { border-bottom: none; }
        /* Circulito clicable para completar sin abrir la tarea */
        .circulo-tarea { flex-shrink: 0; display: grid; place-items: center; width: 26px; height: 26px;
            border: 2px solid #b8a187; background: #fff; border-radius: 50%; cursor: pointer;
            font-size: 15px; font-weight: bold; color: #fff; transition: background .15s, transform .15s; }
        .circulo-tarea:hover:not(:disabled) { transform: scale(1.08); border-color: #8e7050; }
        .circulo-tarea:focus-visible { outline: 3px solid #b18d62; outline-offset: 3px; }
        .circulo-tarea.completada { background: #53916b; border-color: #53916b; }
        .circulo-tarea:disabled { opacity: .45; cursor: wait; }
        .tarea-fila.completada { background: #f6fbf7; border-radius: 8px; }
        .punto { flex-shrink: 0; width: 11px; height: 11px; border-radius: 50%; background: #aaa; }
        .punto.vencida { background: #c15050; }
        .punto.proxima { background: #d4932d; }
        .punto.pendiente { background: #a9a098; }
        .punto.completada { background: #53916b; }
        .tarea-cuerpo { flex: 1; min-width: 0; }
        .tarea-cuerpo h3 { font-size: 16px; font-weight: normal; line-height: 1.35; }
        .tarea-cuerpo h3.hecha { text-decoration: line-through; color: #5b8b6b; }
        .tarea-cuerpo p { color: #897e73; margin-top: 5px; font-size: 13px; line-height: 1.4; }
        .estado { font-size: 12px; border-radius: 16px; padding: 6px 10px; white-space: nowrap; background: #f2eee8; color: #777; }
        .estado.vencida { background: #f9e5e5; color: #9f3333; }
        .estado.proxima { background: #fff0d8; color: #985e10; }
        .estado.completada { background: #e6f2e9; color: #357047; }
        .estado.pendiente { background: #f0eee9; color: #777068; }
        .vacio { text-align: center; padding: 45px 15px; color: #86796e; }
        .cal-nav { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
        .cal-nav h2 { font-size: 24px; font-weight: normal; text-transform: capitalize; }
        .cal-cuadricula { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
        .cal-dia-nombre { color: #9b8b78; text-align: center; padding: 7px 0; font-size: 12px; }
        .cal-celda { border: 1px solid #eee8e0; min-height: 70px; padding: 8px; border-radius: 6px; font-size: 13px; }
        .cal-celda.hoy { border-color: #ae8762; background: #faf4ed; }
        .cal-celda.fuera { border-color: transparent; background: transparent; }
        .cal-evento { margin-top: 5px; color: #72563e; background: #f4ebe0; border-radius: 4px; padding: 4px; font-size: 11px; overflow-wrap: anywhere; }
        .listado-eventos { margin-top: 25px; }
        .listado-eventos h3 { font-weight: normal; margin-bottom: 8px; font-size: 20px; }
        .evento-fila { padding: 12px 0; border-bottom: 1px solid #f0ebe5; }
        .evento-fila strong { display: block; font-weight: normal; }
        .evento-fila small { display: block; color: #897d71; margin-top: 4px; }
        [hidden] { display: none !important; }
        @media (max-width: 650px) {
            .cabecera-gestion h1 { font-size: 27px; }
            .panel { padding: 16px; }
            .resumen { gap: 6px; }
            .dato { padding: 12px; }
            .dato strong { font-size: 23px; }
            .form-login { flex-direction: column; }
            .tarea-fila { align-items: flex-start; }
            .estado { font-size: 11px; }
            .cal-celda { min-height: 50px; padding: 4px; }
            .cal-evento { font-size: 10px; }
        }

        /* Botón + y ventana de creación/edición de tareas */
        .herramientas-derecha { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
        .btn-anadir { font-size:14px; white-space:nowrap; }
        .tarea-abrir { flex:1; min-width:0; display:block; background:transparent; border:0;
            text-align:left; font:inherit; color:inherit; cursor:pointer; padding:3px 0; }
        .tarea-abrir:hover h3 { text-decoration:underline; text-decoration-color:#b49a76; }
        .tarea-abrir:focus-visible, .btn:focus-visible { outline:2px solid #a88a65; outline-offset:3px; border-radius:5px; }
        .tarea-abrir h3 { font-size:16px; font-weight:normal; line-height:1.35; }
        .tarea-abrir h3.hecha { text-decoration:line-through; color:#5b8b6b; }
        .tarea-abrir p { color:#897e73; margin-top:5px; font-size:13px; line-height:1.4; }
        .modal-fondo { position:fixed; z-index:100; inset:0; background:rgba(45,38,32,.5);
            display:flex; align-items:center; justify-content:center; padding:18px; }
        .modal-tarjeta { background:#fffdfb; border-radius:14px; width:min(590px,100%);
            max-height:calc(100vh - 36px); overflow-y:auto; padding:26px; box-shadow:0 15px 60px rgba(24,20,15,.25); }
        .modal-cabecera { display:flex; justify-content:space-between; align-items:flex-start; gap:15px; margin-bottom:18px; }
        .modal-cabecera h2 { font-size:27px; font-weight:normal; }
        .modal-cabecera p { color:#907c66; font-size:13px; margin-top:4px; }
        .modal-cerrar { border:0; background:none; font-size:26px; color:#786856; cursor:pointer; }
        .form-tarea { display:grid; gap:15px; }
        .campo-form { display:grid; gap:6px; }
        .campo-form label { font-size:14px; color:#655442; }
        .campo-form input, .campo-form textarea, .campo-form select { width:100%; padding:11px 12px;
            border-radius:8px; border:1px solid #d9c8b3; background:#fff; color:#413a33;
            font:inherit; font-size:15px; }
        .campo-form textarea { resize:vertical; min-height:86px; }
        .modal-ayuda { color:#86796e; font-size:12px; line-height:1.45; }
        .modal-botones { display:flex; flex-wrap:wrap; gap:9px; justify-content:flex-end; align-items:center; margin-top:6px; }
        .modal-botones .btn-borrar { margin-right:auto; color:#a34242; border-color:#e6c9c9; }
        .modal-botones .btn-borrar:hover { background:#fdf0f0; }
        body.modal-abierto { overflow:hidden; }
        @media (max-width: 650px) { .modal-tarjeta { padding:18px; }
            .herramientas-derecha { width:100%; justify-content:flex-end; }
            .modal-botones .btn-borrar { width:100%; } }

        /* Edición de citas: mismo diseño suave que las tareas */
        .cal-celda .cal-dia-boton { border:0; background:transparent; color:#5c4a3b;
            cursor:pointer; font:inherit; padding:2px 5px; border-radius:5px; }
        .cal-dia-boton:hover { background:#f0e6da; }
        .cal-evento-boton { display:block; width:100%; text-align:left; border:0; cursor:pointer;
            font:inherit; font-size:11px; margin-top:5px; padding:5px; border-radius:5px;
            background:#f4ebe0; color:#72563e; overflow-wrap:anywhere; }
        .cal-evento-boton:hover { background:#eadbc7; }
        .evento-abrir { display:block; text-align:left; width:100%; border:0;
            background:transparent; padding:11px 2px; font:inherit; color:#413a33;
            border-bottom:1px solid #f0ebe5; cursor:pointer; }
        .evento-abrir:hover strong { text-decoration:underline; text-decoration-color:#b49a76; }
        .evento-abrir strong { display:block; font-weight:normal; }
        .evento-abrir small { display:block; color:#897d71; margin-top:4px; }
        .cal-dia-boton:focus-visible, .cal-evento-boton:focus-visible,
        .evento-abrir:focus-visible { outline:2px solid #a88a65; outline-offset:2px; }
        @media (max-width:650px) { .cal-evento-boton { padding:3px; font-size:10px; } }

        /* INVITADOS: dos vistas, tabla con todas las columnas y tarjetas */
        .inv-resumen { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:19px 0; }
        .inv-herramientas { display:flex; gap:10px; justify-content:space-between; flex-wrap:wrap; align-items:center; margin-bottom:15px; }
        .inv-herramientas-izq, .inv-herramientas-der { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
        .inv-herramientas input, .inv-herramientas select { font:inherit; border:1px solid #d9c8b3; border-radius:8px; padding:11px 12px; background:#fff; color:#413a33; }
        .inv-herramientas input { width:min(310px,100%); }

        /* INVITADOS: filtros, ordenacion y aviso de altas realizadas desde Sheets. */
        .inv-ordenar {display:flex;gap:7px;align-items:center;flex-wrap:wrap;font-size:13px;color:#715b44}
        .inv-ordenar select,.inv-busqueda {font:inherit;font-size:13px;border:1px solid #dacbb9;
            border-radius:8px;background:#fff;color:#514336;padding:10px 11px}
        .inv-busqueda {width:min(240px,100%)}
        .inv-excel-avisos {margin-bottom:14px;padding:13px 15px;border-radius:10px;
            border:1px solid #e6d7c2;background:#fbf6ed;color:#71563b;font-size:13px;line-height:1.55}
        .inv-excel-avisos strong {display:block;font-weight:normal;font-size:14px;margin-bottom:5px}
        .inv-excel-avisos ul {margin:6px 0 0;padding-left:20px}
        .inv-excel-avisos li {margin:2px 0}
        .inv-id-visible {display:block;color:#97816d;font-size:11px;margin-top:4px}
        @media(max-width:650px){.inv-ordenar{width:100%}.inv-busqueda{flex:1;min-width:155px}}

        /* INVITADOS: filtros combinables por propiedades, estilo Notion */
        .inv-filtros { display:flex; flex-direction:column; align-items:flex-start; gap:10px; width:100%; }
        .inv-filtros-barra { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
        .inv-filtro-menu-contenedor { position:relative; }
        .inv-filtro-anadir { display:inline-flex; align-items:center; gap:7px; font:inherit; font-size:13px;
            background:#fff; color:#715b44; border:1px solid #dacbb9; border-radius:8px; padding:10px 13px; cursor:pointer; }
        .inv-filtro-anadir:hover, .inv-filtro-anadir[aria-expanded="true"] { background:#f5eee5; border-color:#bda482; }
        .inv-filtro-menu { position:absolute; top:calc(100% + 6px); left:0; width:min(255px, calc(100vw - 45px));
            padding:7px; border:1px solid #e0d2c1; background:#fff; box-shadow:0 12px 30px rgba(63,48,30,.13);
            border-radius:10px; z-index:30; max-height:300px; overflow:auto; }
        .inv-filtro-menu[hidden] { display:none; }
        .inv-filtro-menu-titulo { font-size:12px; padding:7px 9px 9px; color:#96816d; }
        .inv-filtro-menu button { display:block; width:100%; font:inherit; font-size:13px; border:0; background:none;
            color:#514336; padding:10px; border-radius:7px; text-align:left; cursor:pointer; }
        .inv-filtro-menu button:hover, .inv-filtro-menu button:focus-visible { background:#f5eee5; }
        .inv-filtros-conjunto { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
        .inv-filtro-fila { display:inline-flex; flex-wrap:wrap; gap:4px; align-items:center; min-width:0;
            padding:5px; border:1px solid #dfd0bf; background:#f9f6f1; border-radius:10px; }
        .inv-filtro-fila select, .inv-filtro-fila input { width:auto; max-width:200px; min-width:0; padding:7px 9px;
            border:1px solid #e1d6ca; border-radius:7px; background:#fff; font:inherit; font-size:13px; color:#514336; }
        .inv-filtro-fila .inv-filtro-campo { max-width:175px; background:#f1e9de; border-color:transparent; }
        .inv-filtro-fila .inv-filtro-valor { width:145px; }
        .inv-filtro-quitar { border:0; background:none; color:#947c65; font-size:18px; line-height:1;
            cursor:pointer; padding:5px 8px; border-radius:6px; }
        .inv-filtro-quitar:hover { color:#963f3f; background:#f7eaea; }
        .inv-filtro-borrar { font:inherit; font-size:12px; border:0; background:transparent;
            color:#947858; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
        .inv-filtros-recuento { color:#907e6d; font-size:12px; }
        .inv-filtro-anadir:focus-visible, .inv-filtro-quitar:focus-visible, .inv-filtro-borrar:focus-visible,
        .inv-filtro-fila select:focus-visible, .inv-filtro-fila input:focus-visible { outline:2px solid #947858; outline-offset:2px; }
        @media(max-width:700px) { .inv-filtros-conjunto { width:100%; } .inv-filtro-fila { width:100%; }
            .inv-filtro-fila select { flex:1; min-width:80px; } .inv-filtro-fila .inv-filtro-valor { flex:1; width:110px; }
        }

        .inv-vistas { display:inline-flex; border:1px solid #decdb8; border-radius:9px; overflow:hidden; }
        .inv-vistas button { font:inherit; font-size:13px; background:white; color:#655442; padding:9px 13px; border:0; cursor:pointer; }
        .inv-vistas button.activo { background:#947858; color:#fff; }
        .inv-tabla-scroll { width:100%; overflow-x:auto; }
        .inv-tabla { width:100%; border-collapse:collapse; min-width:980px; font-size:13px; }
        .inv-tabla th { text-align:left; background:#f6f0e8; color:#665441; font-weight:normal; padding:12px 10px; border-bottom:1px solid #e5d8c8; }
        .inv-tabla td { padding:14px 10px; border-bottom:1px solid #f0e9e1; vertical-align:middle; max-width:210px; overflow-wrap:anywhere; }
        .inv-tabla tr:last-child td { border-bottom:0; }
        .inv-tabla .inv-nombre-boton { text-align:left; border:0; background:none; font:inherit; color:#514437; cursor:pointer; }
        .inv-tabla .inv-nombre-boton:hover { text-decoration:underline; }
        .inv-estado { display:inline-block; padding:5px 9px; border-radius:22px; font-size:12px; white-space:nowrap; }
        .inv-estado.confirmado { background:#e6f3e9; color:#376c47; }
        .inv-estado.ausente { background:#fae7e4; color:#9a4141; }
        .inv-estado.pendiente { background:#f5ebd8; color:#926c32; }
        .inv-tarjetas { display:grid; grid-template-columns:repeat(auto-fill,minmax(255px,1fr)); gap:14px; }
        .inv-tarjeta { text-align:left; border:1px solid #e7ddcf; border-radius:13px; background:#fff; padding:18px; display:grid; gap:13px; cursor:pointer; color:inherit; font:inherit; transition:border-color .2s,transform .2s; }
        .inv-tarjeta:hover { border-color:#ae9271; transform:translateY(-2px); }
        .inv-tarjeta-top { display:flex; align-items:center; gap:11px; }
        .inv-avatar { flex-shrink:0; width:43px; height:43px; display:grid; place-items:center; border-radius:50%; background:#ede5da; color:#785d3e; font-size:15px; }
        .inv-tarjeta-nombre { flex:1; min-width:0; font-size:17px; overflow-wrap:anywhere; }
        .inv-tarjeta small { color:#867667; font-size:12px; line-height:1.5; overflow-wrap:anywhere; }
        .inv-tarjeta-detalles { display:grid; gap:5px; }
        .inv-mensaje { font-style:italic; color:#8b7867; }
        .inv-tabla button:focus-visible, .inv-tarjeta:focus-visible, .inv-vistas button:focus-visible { outline:2px solid #947858; outline-offset:2px; }
        @media (max-width:750px) { .inv-resumen { grid-template-columns:repeat(2,minmax(0,1fr)); } .inv-herramientas-izq { width:100%; } .inv-herramientas input { flex:1; } }

        .menu-previa h2 { color:#665441; font-size:23px; font-weight:normal; margin-bottom:12px; }
        .menu-previa p { color:#907c66; font-size:14px; line-height:1.5; }
        /* INVITACIONES: vista privada y previsualización sin envío hasta conectar 02_Invitaciones. */
        .ita-pestanas { display:flex; flex-wrap:wrap; gap:7px; margin:14px 0 20px; }
        .ita-pestanas button { border:1px solid #dbcab6; border-radius:9px; padding:10px 16px; background:white; color:#67523f; font:inherit; cursor:pointer; }
        .ita-pestanas button.activo { background:#947858; color:white; border-color:#947858; }
        .ita-intro { margin:4px 0 19px; color:#907c66; font-size:14px; line-height:1.6; }
        .ita-acciones { display:flex; gap:9px; flex-wrap:wrap; justify-content:flex-end; }
        .ita-panel-cabecera { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; flex-wrap:wrap; margin-bottom:18px; }
        .ita-panel-cabecera h2 { font-weight:normal; font-size:23px; }
        .ita-panel-cabecera p { margin-top:5px; color:#8d7c6b; font-size:13px; line-height:1.5; }
        .ita-etiqueta { display:inline-block; background:#f4eadb; color:#816447; font-size:12px; padding:6px 10px; border-radius:20px; }
        .ita-formulario { max-width:660px; margin:10px auto; padding:30px; border:1px solid #e5d7c5; background:#fffdfb; border-radius:15px; }
        .ita-formulario .ita-corazon { color:#b59770; font-size:29px; text-align:center; margin-bottom:8px; }
        .ita-formulario h3 { font-size:29px; font-weight:normal; text-align:center; margin-bottom:6px; }
        .ita-formulario .ita-bienvenida { text-align:center; color:#927d66; margin:8px 0 23px; font-style:italic; font-size:14px; line-height:1.5; }
        .ita-formulario .campo-form { margin:0 0 18px; }
        .ita-formulario input[disabled], .ita-formulario select[disabled], .ita-formulario textarea[disabled] { background:#faf7f2; color:#61564b; opacity:1; }
        .ita-aviso { border:1px solid #e6d7c2; border-radius:10px; padding:13px 15px; color:#79654e; background:#fbf6ed; font-size:13px; line-height:1.55; margin-bottom:18px; }
        .ita-respuestas { width:100%; min-width:940px; border-collapse:collapse; font-size:13px; }
        .ita-respuestas th { padding:13px 10px; background:#f6f0e8; color:#665441; text-align:left; font-weight:normal; border-bottom:1px solid #e5d8c8; }
        .ita-respuestas td { padding:16px 10px; border-bottom:1px solid #f0e9e1; }
        .ita-respuestas th.ita-extra-col { min-width:190px; }
        .ita-respuestas td.ita-extra-col { min-width:190px; white-space:pre-line; overflow-wrap:anywhere; }
        .ita-grafica-tarjeta { display:flex; gap:35px; align-items:center; flex-wrap:wrap; }
        .ita-grafico { width:172px; height:172px; flex:0 0 172px; border-radius:50%; position:relative; background:#ede7df; }
        .ita-grafico::before { content:''; position:absolute; inset:32px; background:white; border-radius:50%; }
        .ita-grafico-centro { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; align-items:center; line-height:1.25; }
        .ita-grafico-centro strong { font-size:33px; font-weight:normal; }
        .ita-grafico-centro small { font-size:12px; color:#93816f; }
        .ita-leyenda { flex:1; min-width:205px; display:grid; gap:13px; }
        .ita-leyenda-linea { display:flex; justify-content:space-between; gap:20px; align-items:center; font-size:14px; }
        .ita-leyenda-linea > span:first-child { display:flex; align-items:center; gap:10px; }
        .ita-leyenda-marca { width:11px; height:11px; border-radius:50%; display:inline-block; flex-shrink:0; }
        .ita-grafica-nota { margin-top:15px; color:#8b7a67; font-size:12px; line-height:1.5; }

        /* Invitaciones: resumen con gráfica accesible y listas en modal. */
        .ita-resumen-grafico { padding:0!important; overflow:hidden; }
        .ita-abrir-estadisticas { display:flex; align-items:center; width:100%; height:100%; padding:14px 12px; gap:11px;
            text-align:left; border:0; background:transparent; color:inherit; font:inherit; cursor:pointer; border-radius:12px; }
        .ita-abrir-estadisticas:hover,.ita-abrir-estadisticas:focus-visible { background:#fbf5ec; outline:2px solid #947858; outline-offset:-2px; }
        .ita-rosquilla-pequena { --color-completo:#6f9b7c; --color-pendiente:#c6a36c; width:72px;height:72px; flex:0 0 72px;
            border-radius:50%;position:relative;background:conic-gradient(var(--color-completo) 0 0%,var(--color-pendiente) 0 100%); }
        .ita-rosquilla-pequena::after { content:'';position:absolute;inset:14px;background:#fffdfb;border-radius:50%; }
        .ita-resumen-grafico-texto { min-width:0; display:flex; flex-direction:column; align-items:flex-start; gap:4px; }
        .ita-resumen-grafico-texto strong { font-size:25px;line-height:1.05; }
        .ita-resumen-linea { display:inline-flex;align-items:center;gap:5px;font-size:11px;white-space:nowrap;width:max-content;max-width:100%; }
        .ita-resumen-linea b { font-size:12px; margin-left:2px; }
        .ita-punto { display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0; }
        .ita-resumen-linea .ita-etiqueta-linea { min-width:0; }
        .ita-grafico-modal { display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:25px; margin:12px 0 16px; }
        .ita-grafico-grande { width:206px;height:206px;flex:0 0 206px;position:relative; }
        .ita-grafico-grande svg { display:block;width:100%;height:100%; }
        .ita-grafico-grande circle.ita-tramo { cursor:pointer; transition:stroke-width .2s ease; outline:none; }
        .ita-grafico-grande circle.ita-tramo:hover,.ita-grafico-grande circle.ita-tramo:focus { stroke-width:25px; }
        .ita-grafico-modal-centro { position:absolute;inset:0;display:grid;place-content:center;text-align:center;pointer-events:none; }
        .ita-grafico-modal-centro strong { font-size:30px;line-height:1; }
        .ita-grafico-modal-centro small { font-size:12px;color:#806b54;margin-top:5px; }
        .ita-grafico-modal-leyenda { display:grid;gap:9px;min-width:235px;flex:1; }
        .ita-grafico-modal-leyenda button { display:flex;align-items:center;gap:9px;width:100%; padding:11px 12px; border:1px solid #eadccc;
            border-radius:9px; background:#fff; color:#594936; font:inherit; cursor:pointer; text-align:left;font-size:13px; }
        .ita-grafico-modal-leyenda button strong { margin-left:8px; font-size:17px; font-variant-numeric:tabular-nums; }
        .ita-grafico-modal-leyenda button:hover,.ita-grafico-modal-leyenda button[aria-pressed="true"] { background:#f7efe4;border-color:#ad9370; }
        .ita-grafico-lista {border-top:1px solid #eaddce;padding-top:14px;max-height:290px;overflow:auto;}
        .ita-grafico-lista-titulo {font-size:17px;margin-bottom:10px;}
        .ita-grafico-lista ul {list-style:none;padding:0;margin:0;display:grid;gap:5px;}
        .ita-grafico-lista li {padding:9px 10px;background:#f9f6f1;border-radius:7px;font-size:14px;overflow-wrap:anywhere;}
        @media(max-width:950px){.ita-abrir-estadisticas{gap:7px;padding:9px}.ita-rosquilla-pequena{width:56px;height:56px;flex-basis:56px}.ita-rosquilla-pequena::after{inset:11px}.ita-resumen-linea{font-size:10px}.ita-resumen-grafico-texto strong{font-size:20px}}
        @media(max-width:540px){.ita-resumen-grafico{grid-column:span 2}.ita-abrir-estadisticas{justify-content:center}.ita-grafico-modal{gap:12px}.ita-grafico-modal-leyenda{min-width:0}}

        .ita-select-invitado { width:100%; max-width:355px; padding:10px; border:1px solid #d9c8b3; background:white; border-radius:8px; color:#413a33; font:inherit; }
        @media (max-width:650px) { .ita-formulario { padding:18px; } .ita-grafica-tarjeta { justify-content:center; gap:20px; } .ita-pestanas button { flex:1; } }

        /* MENÚS: tarjetas dinámicas, acciones en las esquinas superiores */
        .menus-cabecera { align-items:center; }
        .menus-acciones { display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
        .menus-cuadricula { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; align-items:stretch; }
        .menu-tarjeta { display:flex; flex-direction:column; min-height:225px; text-align:left; gap:18px; }
        .menu-tarjeta-cabecera { display:flex; align-items:center; justify-content:space-between; gap:10px; }
        .menu-tarjeta-cabecera h2 { margin:0; font-size:24px; font-weight:normal; color:#594b3c; overflow-wrap:anywhere; min-width:0; }
        .menu-boton-plus { display:grid; place-items:center; width:37px; height:37px; flex:0 0 37px; padding:0; border:1px solid #d8c5ac; border-radius:9px; background:#f9f5ee; color:#8e7050; font:normal 24px Georgia,serif; cursor:pointer; }
        .menu-tarjeta-botones { display:flex; gap:7px; align-items:center; flex-shrink:0; }
        .menu-boton-editar { display:grid; place-items:center; width:35px; height:35px; padding:0;
            border:1px solid #decfbc; border-radius:9px; background:#f9f5ee; color:#82664a;
            font:normal 18px Georgia,serif; cursor:pointer; }
        .menu-boton-editar:hover { background:#efe4d5; }
        .menu-boton-editar:focus-visible { outline:2px solid #947858; outline-offset:2px; }
        .menu-boton-plus:hover { background:#f0e3d3; }
        .menu-boton-plus:focus-visible { outline:2px solid #947858; outline-offset:2px; }
        .menu-conceptos { display:grid; gap:0; align-content:start; flex:1; }
        .menu-concepto { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:11px 0; border-bottom:1px solid #f1ebe4; }
        .menu-concepto:last-child { border-bottom:0; }
        .menu-concepto-nombre { font-size:14px; line-height:1.4; overflow-wrap:anywhere; min-width:0; }
        .menu-concepto-detalles { display:flex; gap:9px; align-items:center; flex-shrink:0; }
        .menu-concepto-precio { white-space:nowrap; font-size:14px; color:#695540; }
        .menu-concepto-precio.sin-precio { color:#9b8570; font-style:italic; font-size:12px; }
        .menu-concepto-acciones { display:flex; align-items:center; gap:2px; }
        .menu-concepto-acciones button { border:0; border-radius:6px; background:transparent; color:#8e7153; cursor:pointer; padding:6px; font:inherit; font-size:13px; }
        .menu-concepto-acciones button:hover { background:#f5ede3; }
        .menu-concepto-acciones button.eliminar { color:#a34242; }
        .menu-total { display:flex; justify-content:space-between; align-items:baseline; gap:10px; border-top:1px solid #e8d9c8; padding-top:15px; margin-top:auto; }
        .menu-total-label { font-size:15px; color:#75614c; }
        .menu-total-precio { font-size:23px; color:#534535; }
        .menu-total-nota { font-size:12px; color:#a07f58; line-height:1.4; margin-top:-10px; }
        .menus-ayuda { margin:14px 0 0; line-height:1.5; }
        @media(max-width:900px) { .menus-cuadricula { grid-template-columns:repeat(2,minmax(0,1fr)); } }
        @media(max-width:620px) { .menus-cuadricula { grid-template-columns:1fr; } .menu-concepto { align-items:flex-start; } }


        /* EDITOR DE PREGUNTAS: guardado privado en Sheets; el formulario público sigue independiente. */
        .ita-editor-barra { display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:17px; }
        .ita-editor-lista { display:grid;gap:10px;margin-bottom:24px; }
        .ita-editor-pregunta { border:1px solid #e9dfd3;border-radius:11px;background:#fffdfb;padding:15px 16px; }
        .ita-editor-pregunta-top { display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap; }
        .ita-editor-numero { color:#a88a65;font-size:13px;min-width:23px;padding-top:3px; }
        .ita-editor-contenido { min-width:180px;flex:1;display:grid;gap:6px; }
        .ita-editor-contenido strong { font-weight:normal;font-size:16px;line-height:1.45;overflow-wrap:anywhere; }
        .ita-editor-contenido small { color:#8a7864;line-height:1.5;overflow-wrap:anywhere; }
        .ita-editor-botones { display:flex;align-items:center;gap:5px;flex-wrap:wrap; }
        .ita-editor-botones button { background:#fff;border:1px solid #e4d8c9;border-radius:7px;color:#765f48;cursor:pointer;padding:7px 10px;font:inherit;font-size:13px; }
        .ita-editor-botones button:hover:not(:disabled) { background:#f7f0e8; }
        .ita-editor-botones button:disabled { opacity:.38;cursor:not-allowed; }
        .ita-editor-botones .ita-editor-peligro { color:#a34242;border-color:#e9cece; }
        .ita-editor-ejemplo { background:#fcfaf7;border:1px solid #e7d9c8;border-radius:12px;padding:19px;margin-top:15px; }
        .ita-editor-ejemplo-campos { display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:14px;max-width:650px;margin:15px 0; }
        .ita-editor-ejemplo-campos select { font:inherit;border:1px solid #d9c8b3;background:#fff;border-radius:8px;color:#594636;padding:10px;width:100%; }
        .ita-editor-previa { display:grid;gap:13px;max-width:650px; }
        .ita-editor-previa-item { padding:13px;border:1px solid #eadfd2;border-radius:9px;background:white;display:grid;gap:7px; }
        .ita-editor-previa-item strong { font-size:15px;font-weight:normal; }
        .ita-editor-previa-item small { font-size:12px;color:#8b7867; }
        .ita-editor-respuesta-ejemplo { border:1px solid #e4d9ca;background:#faf8f4;color:#978a7b;border-radius:7px;padding:10px;font-size:13px; }
        .ita-editor-pill { font-size:11px;color:#80684d;background:#f3e9dc;border-radius:16px;padding:5px 8px;display:inline-block; }
        @media(max-width:650px){.ita-editor-ejemplo-campos{grid-template-columns:1fr}.ita-editor-pregunta-top{flex-direction:column}.ita-editor-botones{padding-left:25px}}

        /* ORGANIZACIÓN DE MESAS — primera etapa visual, sin escrituras en Sheets */
        .mesas-barra {display:flex;gap:9px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-bottom:15px}
        .mesas-barra-botones {display:flex;gap:8px;flex-wrap:wrap;align-items:center}
        .mesas-aviso {margin-bottom:15px}
        .mesas-estadisticas {display:flex;gap:12px;flex-wrap:wrap;color:#765f48;font-size:14px}
        .mesas-estadisticas strong {color:#46382a}
        .mesas-area {display:grid;grid-template-columns:minmax(0,1fr) 305px;gap:15px;align-items:start}
        .mesas-tablero {background:#fff;border:1px solid #e7dacb;border-radius:15px;min-width:0;overflow:hidden}
        .mesas-tablero-cabecera {padding:13px 17px;background:#fcf9f4;border-bottom:1px solid #e9dfd1;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center}
        .mesas-tablero-cabecera p {font-size:13px;color:#806b54}
        .mesas-vista-scroll {overflow:auto;height:min(670px,75vh);min-height:390px;position:relative;background-color:#f7f3ed;background-image:linear-gradient(#e8dfd333 1px,transparent 1px),linear-gradient(90deg,#e8dfd333 1px,transparent 1px);background-size:30px 30px;touch-action:pan-x pan-y}
        .mesas-lienzo {width:1840px;height:2040px;position:relative}
        .mesas-figura {position:absolute;width:310px;height:300px;user-select:none}
        .mesas-centro {position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:2px solid #b8a183;background:#ede2d3;color:#57432d;font:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;text-align:center;cursor:grab;touch-action:none;box-shadow:0 6px 16px #bca68c40;z-index:2;padding:10px}
        .mesas-centro:active {cursor:grabbing}
        .mesas-centro.redonda {width:132px;height:132px;border-radius:50%}
        .mesas-centro.cuadrada {width:138px;height:138px;border-radius:15px}
        .mesas-centro.rectangular {width:169px;height:110px;border-radius:16px}
        .mesas-centro.indefinida {width:130px;height:118px;border-radius:22px;border-style:dashed;background:#fcfaf5}
        .mesas-centro.seleccionada {border-color:#866341;background:#e2ccac;box-shadow:0 0 0 5px #b9986a45,0 7px 15px #9e866a40}
        .mesas-centro strong {font-size:15px;font-weight:normal;line-height:1.2;max-width:100%;overflow-wrap:anywhere}
        .mesas-centro small {font-size:11px;color:#806b50}
        .mesas-asiento {position:absolute;display:grid;place-items:center;border:1px solid #c8b8a1;border-radius:9px;background:#fff;color:#715e48;cursor:pointer;text-align:center;padding:2px;font:inherit;font-size:10px;line-height:1.15;overflow:hidden;z-index:3;box-shadow:0 2px 7px #725f4520}
        .mesas-asiento:disabled {opacity:.55;cursor:default}
        .mesas-asiento.ocupado {background:#dce8da;color:#345941;border-color:#91b59b}
        .mesas-asiento.activo {outline:3px solid #b08c62;outline-offset:2px}
        .mesas-asiento:hover {border-color:#866443}
        .mesas-editor {padding:18px;display:grid;gap:13px;position:sticky;top:12px}
        .mesas-editor h2 {font-weight:normal;font-size:23px}
        .mesas-editor .campo-form {gap:5px}
        .mesas-editor .campo-form input,.mesas-editor .campo-form select {font-size:14px;padding:9px 10px}
        .mesas-editor-dato {display:flex;justify-content:space-between;gap:10px;color:#715d49;font-size:13px}
        .mesas-editor-dato strong {font-weight:normal;color:#46392e}
        .mesas-editor-sep {border:0;border-top:1px solid #eee5da}
        .mesas-editor-nota {font-size:12px;color:#847363;line-height:1.45}
        .mesas-pdf-menu {position:fixed;right:26px;bottom:22px;z-index:25}
        .mesas-pdf-opciones {position:absolute;right:0;bottom:calc(100% + 7px);min-width:235px;padding:8px;border:1px solid #dfd1bf;background:#fff;box-shadow:0 9px 28px #51463825;border-radius:11px;z-index:10;display:grid;gap:4px}
        .mesas-pdf-opciones button {border:0;padding:11px;text-align:left;border-radius:7px;background:white;color:#5b4937;cursor:pointer;font:inherit;font-size:13px}
        .mesas-pdf-opciones button:hover {background:#f6eee5}
        .mesas-pdf-instruccion {color:#8b7760;font-size:12px}
        @media(max-width:950px){.mesas-area{grid-template-columns:1fr}.mesas-editor{position:static}.mesas-vista-scroll{height:540px}}
        @media(max-width:650px){.mesas-vista-scroll{height:470px}.mesas-barra-botones{width:100%}.mesas-barra-botones .btn{flex:1}}

        /* MESAS FASE 2: el salón ocupa toda la pantalla bajo la navegación. */
        body.mesas-pantalla-activa {height:100dvh;display:flex;flex-direction:column;overflow:hidden}
        body.mesas-pantalla-activa > header {flex:0 0 auto;position:relative;z-index:2}
        body.mesas-pantalla-activa #principal {flex:1;min-height:0!important;height:auto!important;display:block;padding:0!important;overflow:hidden}
        body.mesas-pantalla-activa #mesas {max-width:none;width:100%;height:100%;margin:0;position:relative;overflow:hidden}
        body.mesas-pantalla-activa #mesas > .cabecera-gestion {display:none}
        #mesas-gestion.mesas-gestion-vista {position:relative}
        body.mesas-pantalla-activa #mesas-gestion {height:100%;width:100%}
        body.mesas-pantalla-activa .mesas-area {display:block;position:absolute;inset:0}
        body.mesas-pantalla-activa .mesas-tablero {width:100%;height:100%;border:0;border-radius:0;box-shadow:none}
        body.mesas-pantalla-activa .mesas-tablero-cabecera {display:none}
        body.mesas-pantalla-activa .mesas-vista-scroll {width:100%;height:100%;min-height:0;overflow:auto;border:0;cursor:grab;overscroll-behavior:contain;scrollbar-width:none;-ms-overflow-style:none}
        body.mesas-pantalla-activa .mesas-vista-scroll::-webkit-scrollbar {display:none}
        .mesas-escala-espacio {position:relative;margin:0 auto;flex-shrink:0}
        .mesas-escala-espacio .mesas-lienzo {transform-origin:0 0;will-change:transform}
        body.mesas-pantalla-activa .mesas-zoom {position:absolute;bottom:18px;left:50%;transform:translateX(-50%);z-index:16;display:flex;align-items:center;gap:6px;background:#fffdfbf5;border:1px solid #decfbc;border-radius:13px;padding:7px 9px;box-shadow:0 6px 24px #54463329;white-space:nowrap;pointer-events:auto}
        .mesas-zoom button {border:1px solid #dccbb6;background:#fffdfb;color:#675037;border-radius:8px;padding:8px 10px;min-height:35px;cursor:pointer;font:inherit;font-size:13px}
        .mesas-zoom button:hover:not(:disabled) {background:#f3e8d8}
        .mesas-zoom button:disabled {opacity:.35;cursor:default}
        .mesas-zoom button:focus-visible,.mesas-zoom input:focus-visible {outline:2px solid #947858;outline-offset:2px}
        .mesas-zoom .mesas-zoom-cantidad {font-size:12px;color:#6f5943;min-width:39px;text-align:center;font-variant-numeric:tabular-nums}
        .mesas-zoom input[type=range] {width:95px;accent-color:#947858;cursor:pointer}
        .mesas-zoom .mesas-zoom-ajustar {background:#f5eee4}
        .mesas-editor-cabecera {position:sticky;top:-19px;background:#fffdfbf7;z-index:2;padding:0 0 10px}
        .mesas-asiento .mesas-asiento-texto {display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;overflow-wrap:anywhere;max-width:100%;max-height:100%;line-height:1.17}
        .mesas-asiento.ocupado {font-size:11px}
        body.mesas-pantalla-activa .mesas-vista-scroll.mesas-desplazando {cursor:grabbing;user-select:none}
        body.mesas-pantalla-activa .mesas-barra {position:absolute;z-index:7;inset:16px 18px auto;display:contents;margin:0;pointer-events:none}
        body.mesas-pantalla-activa .mesas-estadisticas {position:absolute;top:16px;left:18px;z-index:7;display:flex;gap:0;flex-wrap:wrap;background:#fffdfbee;border:1px solid #e8dbca;border-radius:13px;box-shadow:0 6px 20px #67564119;overflow:hidden;pointer-events:auto;max-width:calc(100% - 36px)}
        body.mesas-pantalla-activa .mesas-estadisticas > span {padding:11px 14px;white-space:nowrap;border-right:1px solid #e8dfd3;font-size:13px}
        body.mesas-pantalla-activa .mesas-estadisticas > span:last-child {border-right:0}
        body.mesas-pantalla-activa .mesas-estadisticas strong {font-size:17px}
        body.mesas-pantalla-activa .mesas-barra-botones {position:absolute;top:76px;right:18px;z-index:7;display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end;pointer-events:auto}
        body.mesas-pantalla-activa .mesas-barra-botones > .btn {background:#fffdfbf5;box-shadow:0 4px 18px #67564114}
        body.mesas-pantalla-activa .mesas-barra-botones > .btn-primario {background:#947858;color:white}
        body.mesas-pantalla-activa .mesas-editor {position:absolute;z-index:8;right:18px;top:124px;bottom:75px;width:min(340px,calc(100vw - 36px));height:auto;max-height:none;overflow-y:auto;overscroll-behavior:contain;display:block;padding:19px 19px 22px;background:#fffdfbf7;box-shadow:0 12px 46px #4d40302d;border-color:#dfd0bd;backdrop-filter:blur(8px)}
        body.mesas-pantalla-activa .mesas-editor[hidden] {display:none!important}
        .mesas-editor-cabecera {display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
        .mesas-editor-cerrar {border:1px solid #ddccba;background:#fffaf3;border-radius:8px;color:#73583b;width:30px;height:30px;flex-shrink:0;cursor:pointer;font-size:23px;line-height:1}
        .mesas-editor-cerrar:hover {background:#f0e6d9}
        .mesas-editor .mesas-editor-subtitulo {margin:9px 0 12px}
        .mesas-editor .mesas-editor-ocupantes {display:grid;gap:5px;margin-top:9px}
        .mesas-editor .mesas-editor-ocupante {display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid #f1e9de;padding:5px 0;font-size:12px}
        .mesas-editor .mesas-editor-ocupante button {padding:4px 6px;border:1px solid #e3d6c8;background:white;color:#765e45;border-radius:5px;cursor:pointer;font:inherit;font-size:11px}
        .mesas-editor .mesas-editor-ocupante button:hover {background:#f7efe5}
        .mesas-editor .mesas-editor-sentar {display:grid;gap:8px;padding-top:11px}
        .mesas-editor .mesas-editor-sentar select {width:100%;font:inherit;font-size:13px;border:1px solid #d9c8b3;border-radius:8px;padding:9px;background:white;color:#413a33}
        .mesas-editor .mesas-editor-sentar .btn {width:100%}
        body.mesas-pantalla-activa .mesas-aviso {position:absolute;left:18px;bottom:14px;z-index:5;width:min(550px,calc(100% - 36px));padding:9px 12px;margin:0;background:#fffdfbed;box-shadow:0 4px 18px #7a6a531b;border-radius:9px;font-size:11px;line-height:1.3;pointer-events:none}
        body.mesas-pantalla-activa .mesas-aviso strong {font-weight:normal}
        body.mesas-pantalla-activa .mesas-aviso-suelo {display:none}
        body.mesas-pantalla-activa #mesas-error {position:absolute;left:18px;bottom:72px;z-index:9;max-width:min(550px,calc(100% - 36px));margin:0;padding:10px 13px;background:#fffdfbf5;border-radius:9px;box-shadow:0 3px 16px #55463218}
        body.mesas-pantalla-activa #mesas-error:empty {display:none}
        body.mesas-pantalla-activa .mesas-pdf-menu {position:fixed;right:18px;bottom:18px;z-index:30;pointer-events:auto}
        @media (max-width:940px) {
            body.mesas-pantalla-activa .mesas-barra-botones {top:93px;left:15px;right:15px;justify-content:flex-start}
            body.mesas-pantalla-activa .mesas-editor {top:151px;bottom:80px;max-height:none;right:14px}
            body.mesas-pantalla-activa .mesas-estadisticas {top:12px;left:14px;right:14px}
            body.mesas-pantalla-activa .mesas-estadisticas > span {flex:1;min-width:130px;padding:8px 11px}
        }
        @media (max-width:650px) {
            body.mesas-pantalla-activa .mesas-estadisticas {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
            body.mesas-pantalla-activa .mesas-estadisticas > span {border-bottom:1px solid #e8dfd3;min-width:0;white-space:normal}
            body.mesas-pantalla-activa .mesas-estadisticas > span:nth-last-child(-n+2) {border-bottom:0}
            body.mesas-pantalla-activa .mesas-barra-botones {top:119px;gap:5px}
            body.mesas-pantalla-activa .mesas-barra-botones > .btn {flex:0 1 auto;font-size:11px;padding:9px}
            body.mesas-pantalla-activa .mesas-estadisticas > span {font-size:11px;min-width:105px;padding:6px 9px}
            body.mesas-pantalla-activa .mesas-estadisticas strong {font-size:15px}
            body.mesas-pantalla-activa .mesas-editor {top:172px;bottom:126px;max-height:none}
            body.mesas-pantalla-activa .mesas-aviso {display:none}
            body.mesas-pantalla-activa .mesas-zoom {bottom:72px;max-width:calc(100% - 18px);gap:3px;padding:5px}
            body.mesas-pantalla-activa .mesas-zoom input[type=range] {width:64px}
            body.mesas-pantalla-activa .mesas-zoom button {padding:7px;font-size:11px;min-height:33px}
        }

        /* Invitados sin mesa: contador clicable y asignación horizontal por persona. */
        .mesas-estadisticas .mesas-sin-mesa-boton {display:inline-flex;align-items:center;gap:5px;padding:11px 14px;border:0;background:#fffdfb;color:#765f48;cursor:pointer;font:inherit;font-size:13px;white-space:nowrap}
        .mesas-estadisticas .mesas-sin-mesa-boton:hover,.mesas-estadisticas .mesas-sin-mesa-boton:focus-visible {background:#f2e7d8;outline-offset:-2px}
        .mesas-estadisticas .mesas-sin-mesa-boton:focus-visible {outline:2px solid #947858}
        .mesas-estadisticas .mesas-sin-mesa-boton strong {font-size:17px;color:#46382a}
        .mesas-sin-mesa-fondo {position:fixed;inset:0;z-index:110;display:flex;justify-content:center;align-items:center;padding:18px;background:#30282099}
        .mesas-sin-mesa-dialogo {width:min(850px,100%);max-height:min(680px,calc(100dvh - 36px));display:flex;flex-direction:column;overflow:hidden;padding:23px;background:#fffdfb;border:1px solid #dfcfbb;border-radius:16px;box-shadow:0 24px 70px #3028204d}
        .mesas-sin-mesa-cabecera {display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:13px;border-bottom:1px solid #eee4d7}
        .mesas-sin-mesa-cabecera h2 {font-weight:normal;font-size:25px;color:#514234}
        .mesas-sin-mesa-cabecera p {font-size:12px;color:#8c7862;margin-top:5px}
        .mesas-sin-mesa-lista {overflow:auto;min-height:0}
        .mesas-sin-mesa-fila {display:grid;grid-template-columns:minmax(200px,1fr) minmax(175px,220px) auto;align-items:center;gap:12px;padding:13px 3px;border-bottom:1px solid #f0e8de;min-width:540px}
        .mesas-sin-mesa-fila:last-child {border-bottom:0}
        .mesas-sin-mesa-nombre {font-size:14px;overflow-wrap:anywhere;min-width:0}
        .mesas-sin-mesa-fila select {width:100%;min-width:0;font:inherit;font-size:13px;border:1px solid #d9c8b3;border-radius:8px;padding:10px;background:white;color:#413a33}
        .mesas-sin-mesa-fila .btn {white-space:nowrap;padding:10px 13px}
        .mesas-sin-mesa-fila .btn:disabled {opacity:.5;cursor:not-allowed}
        .mesas-sin-mesa-vacia {padding:29px 8px;text-align:center;color:#85705b;font-size:14px}
        .mesas-sin-mesa-dialogo .aviso {margin:7px 0 0}
        @media(max-width:650px){.mesas-estadisticas .mesas-sin-mesa-boton {font-size:11px;padding:8px 9px;white-space:normal}.mesas-estadisticas .mesas-sin-mesa-boton strong {font-size:15px}.mesas-sin-mesa-dialogo {padding:16px}.mesas-sin-mesa-fila {gap:9px}}

        /* MESAS FASE 7 · Editor visual tipo diagrama, navegación libre */
        body.mesas-pantalla-activa .mesas-vista-scroll {overflow:hidden!important;cursor:default;touch-action:none}
        body.mesas-pantalla-activa .mesas-vista-scroll.mesas-desplazando {cursor:grabbing}
        .mesas-escala-espacio {position:absolute!important;inset:0;width:100%!important;height:100%!important;margin:0!important;pointer-events:none}
        .mesas-escala-espacio .mesas-lienzo {position:absolute;left:0;top:0;width:0!important;height:0!important;pointer-events:none;transform-origin:0 0}
        .mesas-figura {pointer-events:none}
        .mesas-centro,.mesas-asiento {pointer-events:auto}
        .mesas-centro.ovalada {border-radius:50%}
        .mesas-herramientas {position:absolute;z-index:12;top:155px;left:16px;display:grid;gap:7px;width:115px;max-height:calc(100% - 240px);overflow:auto;background:#fffdfbef;border:1px solid #dfd1bf;border-radius:14px;padding:11px;box-shadow:0 8px 25px #54463324}
        .mesas-herramientas h3 {font-weight:normal;font-size:12px;color:#7f694f;line-height:1.3;text-align:center}
        .mesas-herramientas button {border:1px solid #eadfce;border-radius:9px;background:white;color:#6e533a;min-height:63px;display:grid;gap:5px;place-items:center;cursor:grab;font:inherit;font-size:11px;padding:7px}
        .mesas-herramientas button:hover {border-color:#b49a76;background:#fbf6ef}
        .mesas-herramientas button:active {cursor:grabbing}
        .mesas-herramientas button svg {width:53px;height:30px;fill:#eee1d0;stroke:#a18462;stroke-width:2}
        .mesas-herramientas small {font:inherit;color:#968068;font-size:10px;text-align:center}
        .mesas-editor .mesas-medida-fila {display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}
        .mesas-editor .mesas-giro-fila {display:grid;grid-template-columns:1fr auto;align-items:center;gap:9px;margin-top:10px}
        .mesas-editor #mesas-rotacion {width:100%;accent-color:#947858}
        .mesas-resize-handle {position:absolute;right:-9px;bottom:-9px;z-index:4;width:22px;height:22px;border:2px solid #947858;border-radius:7px;background:#fffdfb;cursor:nwse-resize;box-shadow:0 2px 7px #56432935;touch-action:none;transform:rotate(var(--contragiro,0deg))}
        .mesas-resize-handle::after {content:'⤡';font-size:14px;color:#765b3c;display:block;line-height:16px}
        .mesas-centro .mesas-titulo-interior {transform:rotate(var(--contragiro,0deg));display:grid;gap:4px;place-items:center;max-width:100%;pointer-events:none}
        body.mesas-pantalla-activa .mesas-barra-botones {right:18px;top:70px}
        body.mesas-pantalla-activa .mesas-aviso {font-size:12px}
        @media(max-width:700px){.mesas-herramientas{top:205px;width:83px;left:8px;padding:5px}.mesas-herramientas button{min-height:52px}.mesas-herramientas button svg{width:43px}.mesas-herramientas small{display:none}}

        /* PRESUPUESTOS Y PAGOS — fase de lectura de 04_Presupuestos_Pagos. */
        .pre-cabecera {display:flex;align-items:flex-start;justify-content:space-between;gap:15px;flex-wrap:wrap;margin-bottom:14px}
        .pre-cabecera h1 {font-size:34px;font-weight:normal;color:#51463c}
        .pre-cabecera p {margin-top:7px;color:#94806c;font-size:14px;line-height:1.55}
        .pre-resumen {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}
        .pre-dato {background:#fff;border:1px solid #ede4d8;border-radius:13px;padding:19px;min-width:0}
        .pre-dato span {display:block;color:#95826e;font-size:12px;margin-bottom:10px}
        .pre-dato strong {display:block;font-size:clamp(18px,2vw,28px);font-weight:normal;color:#514234;overflow-wrap:anywhere}
        .pre-dato small {display:block;margin-top:9px;color:#94816b;font-size:12px}
        .pre-dato.aviso-exceso {border-color:#ecc5c0;background:#fff9f8}
        .pre-dato.aviso-exceso strong {color:#a54640}
        .pre-cuerpo {display:grid;grid-template-columns:minmax(0,1fr);gap:17px}
        .pre-panel {background:#fff;border:1px solid #e9ded1;border-radius:15px;padding:23px;min-width:0;box-shadow:0 8px 25px #3d342909}
        .pre-panel h2 {font-size:23px;font-weight:normal;color:#514334;margin-bottom:6px}
        .pre-panel-sub {color:#93806e;font-size:13px;line-height:1.55;margin-bottom:18px}
        .pre-menus-grupo {display:grid;grid-template-columns:minmax(0,1fr) 19px minmax(115px,150px);align-items:stretch;gap:10px;background:#fdfbf8;border:1px solid #efe6dc;border-radius:12px;padding:15px 12px 15px 9px;margin-bottom:18px}
        .pre-menus-filas {display:grid;gap:1px;min-width:0}
        .pre-menu-fila,.pre-concepto-linea {display:flex;align-items:center;gap:10px;border-bottom:1px solid #f0ebe4;padding:11px 5px;min-width:0}
        .pre-menus-filas .pre-menu-fila:last-child,.pre-conceptos-filas .pre-concepto-linea:last-child {border-bottom:0}
        .pre-icono {font-size:19px;color:#bd9f78;flex:0 0 20px;text-align:center}
        .pre-texto {min-width:0;flex:1}
        .pre-texto strong {display:block;font-weight:normal;font-size:15px;color:#524334;line-height:1.3;overflow-wrap:anywhere}
        .pre-texto small {display:block;font-size:12px;color:#988570;margin-top:3px;line-height:1.3}
        .pre-precio {font-size:15px;white-space:nowrap;color:#554533;text-align:right}
        .pre-llave {align-self:stretch;width:19px;min-height:120px}
        .pre-total-lado {align-self:center;display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center}
        .pre-total-lado button {background:#f3ece3;border:1px solid #dfcebb;color:#735739;border-radius:8px;padding:10px 8px;cursor:pointer;font:inherit;font-size:12px;width:100%}
        .pre-total-lado button:hover {background:#e9ddcf}
        .pre-total-lado strong {font-weight:normal;font-size:19px;color:#64492e;overflow-wrap:anywhere}
        .pre-conceptos-filas {display:grid;gap:1px}
        .pre-reordenar {display:inline-flex;align-items:center;gap:3px;flex:0 0 auto;margin-right:4px}
        .pre-reordenar button {border:1px solid #e4d4bf;background:#fff;border-radius:6px;cursor:pointer;color:#886b4a;font-size:12px;padding:5px 7px;line-height:1.15}
        .pre-reordenar button:disabled {opacity:.35;cursor:default}
        .pre-reordenar .pre-arrastre {cursor:grab;touch-action:none;font-weight:bold}
        .pre-menu-fila[draggable=true],.pre-concepto-tarjeta[draggable=true] {cursor:grab}
        .pre-orden-sobre {outline:2px dashed #947858;outline-offset:-3px;background:#f5ecdf!important}
        .pre-menu-bloque {margin-bottom:10px}
        .pre-aviso-orden {color:#93806e;font-size:12px;margin:0 0 10px}
        .pre-menu-desunido {font-size:11px;color:#967c65;line-height:1.2}

        .pre-concepto-tarjeta {border-bottom:1px solid #f0eae1}
        .pre-concepto-tarjeta:last-child {border-bottom:0}
        .pre-concepto-linea {border-bottom:0}
        .pre-concepto-linea button {border:1px solid #dfd2c1;border-radius:7px;padding:7px 10px;background:#fff;color:#7a6147;cursor:pointer;font:inherit;font-size:12px;white-space:nowrap}
        .pre-concepto-linea button:hover {background:#f9f3ed}
        .pre-concepto-detalle {padding:8px 10px 17px 31px;border-top:1px solid #f3eee9}
        .pre-pagos-tabla {width:100%;border-collapse:collapse;font-size:13px}
        .pre-pagos-tabla th,.pre-pagos-tabla td {text-align:left;padding:9px 6px;vertical-align:top;border-bottom:1px solid #f1ebe4}
        .pre-pagos-tabla th {font-weight:normal;color:#937e68;background:#fcfaf7}
        .pre-pagos-tabla th:nth-child(2),.pre-pagos-tabla td:nth-child(2) {text-align:right}
        .pre-pago-ok {color:#3f8054}.pre-pago-no {color:#996d37}
        .pre-margen {margin-top:15px;padding:14px 16px;background:#fcf7f1;border:1px solid #e8d9c5;border-radius:10px;color:#826c54;font-size:13px;line-height:1.55}
        .pre-vacio {padding:25px 5px;color:#95826d;text-align:center;font-size:14px}
        .pre-botones {display:flex;gap:8px;flex-wrap:wrap}
        .pre-panel-titulo {display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:6px}
        .pre-panel-titulo h2 {margin-bottom:0}
        .pre-accion-card {margin-top:13px;border:1px solid #dfcebb;background:#fcf7ef;border-radius:7px;color:#806142;padding:8px 10px;font:inherit;font-size:12px;cursor:pointer}
        .pre-accion-card:hover {background:#f4e9dc}
        .pre-boton-edit {background:#fff;border:1px solid #dfd2c1;border-radius:7px;padding:7px 10px;cursor:pointer;color:#765b40;font:inherit;font-size:12px}
        .pre-boton-edit:hover {background:#f9f2e9}
        .pre-boton-edit.pre-peligro {color:#a34242;border-color:#ead0cc}
        .pre-fila-acciones {display:flex;gap:5px;align-items:center;flex-wrap:wrap}
        .pre-modal-campo-doble {display:grid;grid-template-columns:1fr 1fr;gap:12px}
        @media(max-width:620px){.pre-modal-campo-doble{grid-template-columns:1fr}.pre-panel-titulo button{width:100%}}
        @media(max-width:950px){.pre-resumen{grid-template-columns:repeat(2,minmax(0,1fr))}}
        @media(max-width:620px){.pre-panel{padding:14px}.pre-menus-grupo{grid-template-columns:minmax(0,1fr) 13px minmax(90px,105px);gap:4px;padding:9px 6px}.pre-llave{width:13px}.pre-menu-fila{gap:4px}.pre-texto strong{font-size:12px}.pre-texto small{font-size:11px}.pre-precio{font-size:12px}.pre-icono{display:none}.pre-total-lado strong{font-size:15px}.pre-concepto-linea{flex-wrap:wrap}.pre-cabecera h1{font-size:27px}.pre-resumen{gap:7px}.pre-dato{padding:12px}}
        /* Inicio privado y acceso directo a invitados pendientes. */
        #inicio-acceso {margin:0 auto;width:min(510px,100%)}
        .inv-dato-pendientes {padding:0;overflow:hidden}
        .inv-pendientes-boton {display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;width:100%;height:100%;min-height:92px;padding:19px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer;font:inherit}
        .inv-pendientes-boton strong {font-size:30px;font-weight:normal;display:block}
        .inv-pendientes-boton span {font-size:13px;color:#947858}
        .inv-pendientes-boton:hover {background:#faf2e8}
        .inv-pendientes-boton:focus-visible {outline:3px solid #947858;outline-offset:-4px}
        .inv-pendientes-dialogo {width:min(650px,100%)}
        .inv-pendientes-lista {display:grid;gap:0;max-height:min(58vh,450px);overflow-y:auto;margin:13px 0 18px}
        .inv-pendiente-fila {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:13px 5px;border-bottom:1px solid #f0e9e1}
        .inv-pendiente-fila strong {font-size:15px;font-weight:normal;overflow-wrap:anywhere}
        .inv-pendiente-fila a {font-size:13px;color:#85674a;white-space:nowrap;text-decoration:underline;text-underline-offset:2px}
        .inv-pendiente-fila a:focus-visible {outline:2px solid #947858}
        @media(max-width:650px){.inv-pendientes-boton {min-height:75px;padding:12px}.inv-pendientes-boton strong {font-size:23px}}
    
        /* Mantenemos los mensajes de las secciones para sus scripts y lectores
           de pantalla, pero se muestran visualmente en el indicador superior. */
        #error-gestion, #inv-error, #ita-error {
            position:absolute !important; width:1px !important; height:1px !important;
            padding:0 !important; margin:0 !important; overflow:hidden !important;
            clip-path:inset(50%) !important; white-space:nowrap !important;
        }
        .mesas-aviso { position:absolute !important; width:1px !important; height:1px !important;
            overflow:hidden !important; clip-path:inset(50%) !important; }
        /* CHECKLIST: meses estrechos en vertical, con corchete lateral */
        .check-grupo { display:flex; align-items:stretch; border-bottom:1px solid #f0ebe5; gap:12px; }
        .check-grupo:last-child { border-bottom:0; }
        .check-grupo-etiqueta { flex:0 0 14%; max-width:15%; display:flex; justify-content:center; align-items:center;
            border-right:2px solid #c4a682; border-radius:0 13px 13px 0; min-height:74px; padding:8px 5px; color:#967858;
            background:#fbf7f1; }
        .check-grupo-etiqueta span { writing-mode:vertical-rl; transform:rotate(180deg); letter-spacing:1px;
            font-size:clamp(10px,1.1vw,13px); text-align:center; font-weight:normal; }
        .check-grupo-contenido { flex:1; min-width:0; }
        .check-grupo .tarea-fila:last-child { border-bottom:none; }
        .check-clase { display:inline-block; font:normal 11px Georgia,serif; color:#92714e;
            background:#f5eee5; border-radius:6px; padding:3px 7px; margin-right:7px; }
        .check-grupo .tarea-abrir p { overflow-wrap:anywhere; }
        .cal-evento-boton.completado, .evento-abrir.completado { background:#e7f4e9; color:#33744b; }
        .cal-evento-boton.completado { text-decoration:line-through; }
        .cal-item { display:flex; align-items:start; gap:4px; margin-top:4px; }
        .cal-item .cal-evento-boton { flex:1; min-width:0; margin-top:0; }
        .cal-completar { border:1px solid #bfae98; background:#fff; color:#755b40; border-radius:5px;
            width:23px; height:24px; cursor:pointer; flex-shrink:0; font-size:12px; }
        .cal-completar[aria-pressed="true"] { background:#50916c; border-color:#50916c; color:white; }
        .cal-lista-item { display:flex; align-items:center; gap:10px; border-bottom:1px solid #f0ebe5; }
        .cal-lista-item .evento-abrir { flex:1; min-width:0; border-bottom:0; }
        .cal-lista-item.completada { background:#f3faf4; border-radius:8px; }
        /* Avisos discretos en la portada de la cuenta atrás */
        .inicio-avisos { width:min(580px,100%); margin:32px auto 0; text-align:left;
            background:#fffdfb; border:1px solid #e5d9cb; border-radius:13px; padding:14px 18px;
            box-shadow:0 5px 25px rgba(70,56,42,.04); }
        .inicio-avisos h3 { font-size:16px; font-weight:normal; color:#765d42; margin-bottom:9px; }
        .inicio-avisos-lista { display:grid; gap:7px; }
        .inicio-aviso-item { width:100%; background:transparent; font:inherit; border:0; border-radius:7px;
            padding:8px 10px; display:flex; gap:8px; align-items:center; text-align:left; cursor:pointer; }
        .inicio-aviso-item.vencida { color:#a43636; background:#fff2f0; }
        .inicio-aviso-item.proxima { color:#986516; background:#fff7e9; }
        .inicio-aviso-item span { flex:1; min-width:0; font-size:13px; overflow-wrap:anywhere; }
        .inicio-aviso-item small { font-size:11px; white-space:nowrap; }
        .inicio-avisos-nota {font-size:12px;color:#8d7f70;}
        /* Un solo punto visible de estado, arriba a la derecha en cualquier sección */
        .estado-global { position:fixed; top:83px; right:19px; z-index:87; width:max-content;
            max-width:min(360px,calc(100vw - 34px)); border-radius:10px; border:1px solid #ded2c3;
            background:rgba(255,253,249,.98); padding:10px 13px; box-shadow:0 7px 25px #3d30251e;
            color:#705940; font-size:12px; line-height:1.45; display:flex; gap:9px; align-items:flex-start; }
        .estado-global.ok { border-color:#c7ddc9; color:#316946; }
        .estado-global.error { border-color:#e4b7b7; color:#a73f3f; }
        .estado-global .estado-global-cerrar { margin-left:auto; background:none; border:0; color:inherit;cursor:pointer;font-size:16px; }
        .estado-global-mensaje {overflow-wrap:anywhere;max-height:95px;overflow-y:auto;}
        @media(max-width:650px) {
            .check-grupo { gap:7px; }
            .check-grupo-etiqueta {flex-basis:14%;padding:6px 2px;}
            .check-grupo-etiqueta span {font-size:10px;letter-spacing:0;}
            .estado-global {top:85px;right:9px;max-width:calc(100vw - 18px);}
            .cal-item {gap:2px;}
            .cal-completar {width:19px;height:23px;}
            .inicio-aviso-item {flex-wrap:wrap;}
        }

        /* Portada: la cuenta atrás está centrada respecto a TODA la ventana.
           Los avisos flotan a la derecha y nunca desplazan el contador. */
        body:not(.mesas-pantalla-activa) #principal:not(.modo-gestion) {
            padding:18px 22px; min-height:calc(100svh - 78px);
        }
        #inicio { width:100%; }
        #inicio-contenido.inicio-distribucion {
            width:100%; max-width:none; margin:0 auto;
            position:relative; display:flex; justify-content:center; align-items:center;
            min-height:calc(100svh - 114px);
        }
        #inicio-contenido .inicio-cuenta {
            min-width:0; width:max-content; max-width:100%; text-align:center;
            margin:0 auto; flex-shrink:0;
        }
        #inicio-contenido .corazon { font-size:30px; margin-bottom:17px; }
        #inicio-contenido .subtitulo { font-size:12px; margin-bottom:22px; letter-spacing:4px; }
        #inicio-contenido .contador { font-size:clamp(95px,min(19vw,23svh),190px); }
        #inicio-contenido .dias { font-size:17px; margin-top:10px; letter-spacing:2.5px; }
        #inicio-contenido .separador { margin:30px auto; }
        #inicio-contenido .fecha { font-size:clamp(20px,2vw,27px); }
        #inicio-contenido .mensaje { margin-top:16px; }
        #inicio-contenido .inicio-salir { margin-top:20px; }
        #inicio-contenido .inicio-avisos {
            position:absolute; right:clamp(0px,1.5vw,24px); top:50%; transform:translateY(-50%);
            width:clamp(218px,22vw,292px); max-width:none; margin:0;
            padding:16px 15px; text-align:left; max-height:min(360px,63svh);
            overflow-y:auto; z-index:1;
            background:rgba(255,253,249,.95);
            box-shadow:0 9px 28px rgba(70,56,42,.055);
        }
        #inicio-contenido .inicio-avisos h3 { font-size:16px; margin-bottom:11px; }
        #inicio-contenido .inicio-avisos-lista { gap:6px; }
        /* El aviso de mes orientativo se lee en dos líneas dentro de la tarjeta. */
        #inicio-contenido .inicio-aviso-item.orientativo { flex-wrap:wrap; }
        #inicio-contenido .inicio-aviso-item.orientativo small {
            display:block; width:100%; white-space:normal; line-height:1.3;
        }
        #inicio-contenido .inicio-aviso-item { padding:8px 9px; }
        /* Checklist: corchetes estrechos, algo más separados y meses legibles. */
        /* Aire entre las instrucciones y el primer corchete (octubre). */
        #lista-tareas { padding-top:15px; }
        .check-grupo { gap:9px; border-bottom:0; margin-bottom:16px; }
        .check-grupo:last-child { margin-bottom:0; }
        .check-grupo-etiqueta {
            flex:0 0 9%; max-width:12%; min-width:66px;
            border-right-width:2px; border-radius:0 11px 11px 0;
            padding:10px 3px; min-height:70px;
        }
        .check-grupo-etiqueta span {
            font-size:clamp(14px,1.1vw,16px); letter-spacing:.45px;
            line-height:1.15; font-weight:normal;
        }
        .check-grupo-contenido { border-bottom:1px solid #f0ebe5; }
        @media (max-width:1100px) and (min-width:761px) {
            #inicio-contenido .inicio-avisos {
                width:clamp(205px,23vw,235px); right:0; padding:13px 12px;
                max-height:min(265px,48svh);
            }
            #inicio-contenido .inicio-avisos h3 {font-size:14px;}
            #inicio-contenido .inicio-aviso-item { padding:7px 7px; }
            #inicio-contenido .inicio-aviso-item span {font-size:12px;}
            #inicio-contenido .corazon { margin-bottom:11px; font-size:27px; }
            #inicio-contenido .subtitulo { margin-bottom:13px; }
            #inicio-contenido .contador { font-size:clamp(90px,17vw,145px); }
            #inicio-contenido .separador { margin:23px auto; }
        }
        @media (max-width:760px) {
            body:not(.mesas-pantalla-activa) #principal:not(.modo-gestion) {
                padding:12px 14px; min-height:calc(100svh - 130px);
            }
            #inicio-contenido.inicio-distribucion {
                min-height:0; display:flex; flex-direction:column;
                justify-content:center; gap:17px; width:100%;
            }
            #inicio-contenido .inicio-cuenta {flex-shrink:1;}
            #inicio-contenido .corazon {font-size:24px; margin-bottom:7px;}
            #inicio-contenido .subtitulo {font-size:10px; letter-spacing:2px; margin-bottom:12px;}
            #inicio-contenido .contador {font-size:clamp(76px,18vw,116px);}
            #inicio-contenido .dias {font-size:12px; margin-top:4px;}
            #inicio-contenido .separador {margin:15px auto;}
            #inicio-contenido .fecha {font-size:20px;}
            #inicio-contenido .mensaje {margin-top:9px; font-size:13px;}
            #inicio-contenido .inicio-salir {margin-top:11px;}
            #inicio-contenido .inicio-avisos {
                position:static; transform:none; right:auto; top:auto;
                width:min(450px,100%); max-height:min(165px,22svh);
                padding:12px 14px; flex-shrink:1;
            }
            .check-grupo { gap:7px; margin-bottom:13px; }
            .check-grupo-etiqueta { flex-basis:11%; min-width:44px; max-width:13%; padding:8px 1px; }
            .check-grupo-etiqueta span { font-size:13px; letter-spacing:0; }
        }

        /* Recuperación: no ocultar avisos cuando falla la carga de Sheets. */
        #menus-error:not(:empty), #pre-error:not(:empty) {
            position:relative; width:auto; height:auto; overflow:visible; clip-path:none;
            white-space:normal; margin:12px 0; padding:11px 13px;
            background:#fff5ef; border:1px solid #e9cfb9; border-radius:8px;
            color:#8c4c37; line-height:1.45;
        }
        body.mesas-pantalla-activa #mesas-error:not(:empty) {
            position:absolute!important; left:18px; bottom:72px; z-index:20;
            width:min(550px,calc(100% - 36px)); height:auto; padding:10px 13px;
            background:#fff8f2; color:#895339; clip-path:none!important;
            white-space:normal!important; overflow:visible!important;
        }
        .mesas-resize-handle {width:29px; height:29px; right:-14px; bottom:-14px;
            border-radius:9px; display:grid; place-items:center; border-width:2px;
            box-shadow:0 3px 12px #56432950; }
        .mesas-resize-handle {z-index:15; pointer-events:auto; transform:none!important; background:#fff; color:#674b31; box-shadow:0 4px 15px #56432955;}
        .mesas-resize-handle::after {content:'⤡'; font-size:19px; line-height:1;}
        .mesas-centro.redonda {border-radius:50%;}
        .mesas-centro.cuadrada {border-radius:12px;}
    /* Segunda iteración visual. Fuente de verdad: versión modularizada 1.
   El tema Beige original no se sobrescribe: TODAS las reglas de diseño
   alternativo se limitan a html[data-tema="azul"]. */
#estado-global { display:none !important; } /* aviso antiguo invisible, conserva sus observadores */

/* Controles de utilidades: iconos SVG de línea, SIN emojis ni botones grandes. */
.interfaz-flotante {position:fixed;bottom:max(17px,env(safe-area-inset-bottom));left:max(19px,env(safe-area-inset-left));z-index:95;display:flex;flex-direction:column;align-items:center;gap:9px;font-family:Arial,sans-serif}
.interfaz-flotante > div {position:relative}
.interfaz-control {display:grid;place-items:center;width:32px;height:32px;padding:4px;cursor:pointer;border:1px solid transparent;border-radius:10px;background:transparent;color:#94795b;transition:background .2s,border-color .2s,transform .2s}
.interfaz-control:hover,.interfaz-control[aria-expanded="true"] {background:#ffffffc9;border-color:#d8c8b7;transform:translateY(-1px)}
.interfaz-control:focus-visible,.tema-opcion:focus-visible {outline:2px solid #4b91b7;outline-offset:3px}
.estado-svg,.paleta-svg {display:block;width:23px;height:23px;overflow:visible;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;fill:none}
.paleta-svg circle {fill:currentColor;stroke:none}
.estado-svg .estado-espera {stroke:#a3a59c;stroke-width:1.6}
.estado-svg .estado-rueda-pista,.estado-svg .estado-rueda-trazo,.estado-svg .estado-icono-fondo,.estado-svg .estado-tick,.estado-svg .estado-cruz {display:none}
.conexion-indicador[data-estado="cargando"] .estado-espera,.conexion-indicador[data-estado="ok"] .estado-espera,.conexion-indicador[data-estado="error"] .estado-espera {display:none}
.conexion-indicador[data-estado="cargando"] .estado-rueda-pista {display:block;stroke:#a7b9c9;stroke-width:2;opacity:.55}
.conexion-indicador[data-estado="cargando"] .estado-rueda-trazo {display:block;stroke:#397eaa;stroke-width:2.4;transform-origin:12px 12px;animation:boda-rueda .85s linear infinite}
.conexion-indicador[data-estado="ok"] .estado-icono-fondo {display:block;fill:#278661;stroke:none;animation:boda-pulso .32s ease-out both}
.conexion-indicador[data-estado="ok"] .estado-tick {display:block;stroke:white;stroke-width:2.6;stroke-dasharray:20;stroke-dashoffset:20;animation:boda-trazo .45s .12s ease-out forwards}
.conexion-indicador[data-estado="error"] .estado-icono-fondo {display:block;fill:#c84f58;stroke:none;animation:boda-sacudida .4s ease both}
.conexion-indicador[data-estado="error"] .estado-cruz {display:block;stroke:white;stroke-width:2.3;stroke-dasharray:22;stroke-dashoffset:22;animation:boda-trazo .4s .1s ease-out forwards}
@keyframes boda-rueda {to {transform:rotate(360deg)}}
@keyframes boda-trazo {to {stroke-dashoffset:0}}
@keyframes boda-pulso {from {transform:scale(.68);transform-origin:center;opacity:.4} to {transform:scale(1);transform-origin:center;opacity:1}}
@keyframes boda-sacudida {0%,100%{transform:translateX(0)}33%{transform:translateX(-2px)}66%{transform:translateX(2px)}}
.interfaz-popover {position:absolute;bottom:-4px;left:calc(100% + 13px);width:max-content;max-width:min(315px,calc(100vw - 88px));background:rgba(255,254,252,.97);border:1px solid #d8c6b5;border-radius:11px;box-shadow:0 10px 32px #163c5d1c;padding:12px 14px;color:#564b40;font:13px/1.45 Arial,sans-serif;text-align:left;overflow-wrap:anywhere}
.interfaz-popover-titulo {display:block;font-weight:700;font-size:12px;color:#665341;margin-bottom:5px}
.conexion-detalle {min-width:205px;opacity:0;visibility:hidden;transform:translateX(-5px);pointer-events:none;transition:opacity .18s,visibility .18s,transform .18s}
.conexion-indicador:hover .conexion-detalle,.conexion-indicador:focus-within .conexion-detalle,.conexion-indicador[data-abierto="true"] .conexion-detalle {opacity:1;visibility:visible;transform:translateX(0);pointer-events:auto}
.conexion-indicador[data-estado="error"] .conexion-detalle {border-color:#ecc1c1}
.tema-panel {min-width:170px;animation:boda-pop .21s cubic-bezier(.2,.8,.2,1) both}
@keyframes boda-pop {from {opacity:0;transform:translateX(-6px) scale(.98)}to{opacity:1;transform:translateX(0) scale(1)}}
.tema-panel [role="radiogroup"] {display:grid;gap:3px}
.tema-opcion {display:flex;align-items:center;gap:10px;width:100%;padding:9px 8px;border-radius:8px;border:1px solid transparent;background:transparent;color:inherit;cursor:pointer;text-align:left;font:13px Arial,sans-serif;transition:background .16s,border-color .16s}
.tema-opcion:hover,.tema-opcion[aria-checked="true"] {background:#f0f1ef;border-color:#e1e5e8}
.tema-opcion[aria-checked="true"]:after {content:'✓';font-weight:700;color:#297b65;margin-left:auto}
.tema-muestra {width:17px;height:17px;border-radius:50%;border:1px solid #ffffff;box-shadow:0 0 0 1px #bfc0bd;flex:0 0 17px}
.muestra-beige {background:linear-gradient(135deg,#f8f4ed 48%,#a88a65 50%)}
.muestra-azul {background:linear-gradient(135deg,#dceefb 48%,#3c82b0 50%)}

/* La carga global es EXPLÍCITA y nunca la produce una consulta fetch. */
.pantalla-carga {position:fixed;inset:0;z-index:2000;display:grid;place-items:center;background:rgba(238,245,251,.67);backdrop-filter:blur(10px);animation:boda-fundido .48s ease-out both;transition:opacity .42s,backdrop-filter .42s}
.pantalla-carga.saliendo {opacity:0;backdrop-filter:blur(0);pointer-events:none}
@keyframes boda-fundido {from {opacity:0;backdrop-filter:blur(0)}to{opacity:1;backdrop-filter:blur(10px)}}
.pantalla-carga-centro {display:grid;justify-items:center;gap:10px;transform:translateY(-8px)}
.pantalla-carga-texto {color:#235477;font:italic 16px Georgia,serif;letter-spacing:.025em}
.pantalla-carga-anillos {position:relative;width:154px;height:106px;filter:drop-shadow(0 6px 8px #ad7d3e26)}
.pantalla-carga-anillo {position:absolute;top:22px;width:70px;height:70px;border:6px solid #cda35c;border-radius:50%;box-shadow:inset 0 0 0 2px #f4dd9e,0 1px 0 1px #9472384d}
.anillo-uno {left:11px;animation:boda-anillo-izq 2.2s ease-in-out infinite}
.anillo-dos {right:11px;animation:boda-anillo-der 2.2s ease-in-out infinite}
.pantalla-carga-destello {position:absolute;width:21px;height:21px;left:67px;top:7px;fill:#e0ad58;animation:boda-brillo 2.2s ease-in-out infinite}
@keyframes boda-anillo-izq {0%,100%{transform:translateX(-5px) rotate(-18deg)}50%{transform:translateX(6px) rotate(0)}}
@keyframes boda-anillo-der {0%,100%{transform:translateX(5px) rotate(18deg)}50%{transform:translateX(-6px) rotate(0)}}
@keyframes boda-brillo {0%,100%{opacity:.2;transform:scale(.6)}55%{opacity:1;transform:scale(1.16)}}

/*
 * AZUL BODA — SOLO COLORES (v4)
 * La geometría, los tamaños, el espaciado y la tipografía son los mismos que en Beige.
 * Todas las declaraciones de esta sección deben afectar EXCLUSIVAMENTE a color,
 * background/background-color, border-color, outline-color, box-shadow,
 * fill/stroke, text-decoration-color o accent-color.
 * El tema Beige se obtiene dejando de aplicar html[data-tema="azul"].
 */
html[data-tema="azul"] {
  --boda-bg: #EDF4FB;
  --boda-header: #DDEBF8;
  --boda-surface: #FFFCFB;
  --boda-white: #FFFFFF;
  --boda-border: #B9CEE2;
  --boda-divider: #D8E4EE;
  --boda-hover-bg: #F0F6FC;
  --boda-text: #153F5C;
  --boda-text-secondary: #405F77;
  --boda-text-muted: #5A6F81;
  --boda-primary: #477493;
  --boda-primary-hover: #365E7B;
  --boda-primary-pressed: #2D516C;
  --boda-nav-active: #B6D1E8;
  --boda-nav-active-border: #97B9D4;
  --boda-nav-underline: #547F9F;
  --boda-focus: #376F9A;
  --boda-peach: #FBECE5;
  --boda-peach-strong: #F4DDCF;
  --boda-heart: #ED6F94;
  --boda-leaf: #86A5B8;
  --boda-stem: #66889E;
  --boda-ochre: #865313;
  --boda-success: #2F7D61;
  --boda-success-text: #245C49;
  --boda-success-bg: #EBF4F0;
  --boda-success-badge: #D2E8DE;
  --boda-success-border: #A6CDBA;
  --boda-pending-bg: #FCEBD3;
  --boda-pending-border: #EBCB96;
  --boda-pending-text: #865313;
  --boda-info-bg: #E6EFF8;
  --boda-info-border: #B9CEE2;
  --boda-info-text: #405F77;
  --boda-error: #9B3F55;
  --boda-error-bg: #FFF0F3;
  --boda-error-border: #E6B7C1;
  --boda-disabled-bg: #E5EDF3;
  --boda-disabled-text: #5E7180;
  --boda-disabled-border: #CAD8E4;
  --boda-chart-confirmed: #2D969D;
  --boda-chart-pending: #E5B35D;
  --boda-chart-absent: #C7798B;
  --boda-chart-empty: #E1E9F0;
  /* Tres superficies cálidas derivadas del mismo sistema del prompt. */
  --boda-button-warm: #FFF6EB;
  --boda-table-head: #DDEBF6;
  --boda-notice-bg: #FFF2DE;
}
/* Base: ninguna declaración de tipografía, dimensiones, margen ni padding. */
html[data-tema="azul"] body {background-color:var(--boda-bg);color:var(--boda-text)}
html[data-tema="azul"] header {background-color:var(--boda-header);border-bottom-color:var(--boda-border)}
html[data-tema="azul"] .logo {color:var(--boda-text)}
html[data-tema="azul"] .logo-corazon,
html[data-tema="azul"] .corazon,
html[data-tema="azul"] .ita-formulario .ita-corazon {color:var(--boda-heart)}
html[data-tema="azul"] header nav button {color:var(--boda-text)}
html[data-tema="azul"] header nav button:hover {color:var(--boda-primary-hover);background-color:var(--boda-hover-bg)}
html[data-tema="azul"] header nav button.nav-activo {color:var(--boda-text);background-color:var(--boda-nav-active)}
html[data-tema="azul"] :is(.titulo-seccion,.cabecera-gestion h1,.pre-cabecera h1,
 .panel h2,.pre-panel h2,.ita-panel-cabecera h2,.ita-formulario h3,
 .menu-tarjeta-cabecera h2,.mesas-editor h2,.mesas-centro strong,
 .mesas-sin-mesa-cabecera h2,.cal-nav h2,.listado-eventos h3,
 .dato strong,.pre-dato strong,.menu-total-precio,.menu-total-label,
 .ita-grafico-centro strong,.ita-resumen-grafico-texto strong,
 .ita-grafico-modal-centro strong,.inv-pendiente-fila strong) {color:var(--boda-text)}
html[data-tema="azul"] :is(.cabecera-gestion p,.pre-cabecera p,.nota,.panel-login p,
 .menu-previa p,.ita-intro,.ita-panel-cabecera p,.ita-grafica-nota,
 .ita-formulario .ita-bienvenida,.ita-grafico-modal-centro small,
 .mesas-editor-subtitulo,.menus-ayuda,.pre-dato small,.pre-panel-sub,
 .pre-texto small,.inv-tarjeta small,.inv-ordenar,.inv-filtros-recuento,
 .inv-id-visible,.inv-filtro-menu-titulo,.mesas-tablero-cabecera p,
 .mesas-herramientas small,.mesas-sin-mesa-cabecera p,.inicio-avisos-nota) {color:var(--boda-text-secondary)}
html[data-tema="azul"] :is(.subtitulo,.dias,.mensaje,.proximamente,.fecha,.cal-dia-nombre,
 .cal-celda,.tarea-cuerpo p,.tarea-abrir p,.evento-fila small,.vacio,
 .inv-mensaje,.ita-grafico-centro small,.pre-aviso-orden,.pre-menu-desunido,
 .pre-vacio,.ita-editor-contenido small,.ita-editor-previa-item small) {color:var(--boda-text-muted)}
html[data-tema="azul"] .contador {color:var(--boda-text)}
html[data-tema="azul"] .separador {background-color:var(--boda-divider)}

/* Superficies y paneles: mismas cajas y radios que Beige. */
html[data-tema="azul"] :is(.panel,.dato,.pre-panel,.pre-dato,.menu-tarjeta,.inv-tarjeta,
 .modal-tarjeta,.ita-formulario,.ita-editor-pregunta,.ita-editor-ejemplo,.ita-editor-previa-item,
 .inv-filtro-menu,.inv-filtro-fila,.mesas-tablero,.mesas-editor,.mesas-herramientas,
 .mesas-estadisticas,.mesas-zoom,.mesas-sin-mesa-dialogo,.inicio-avisos,
 .inv-excel-avisos,.ita-grafico-modal-leyenda button) {
 background-color:var(--boda-surface);border-color:var(--boda-border);
}
html[data-tema="azul"] .panel {box-shadow:0 8px 30px rgba(35,69,99,.035)}
html[data-tema="azul"] :is(.ita-editor-numero,.ita-editor-pill) {color:var(--boda-nav-underline)}
html[data-tema="azul"] .ita-editor-pill {background-color:var(--boda-info-bg)}
html[data-tema="azul"] :is(.inv-avatar,.inv-filtro-fila .inv-filtro-campo) {background-color:var(--boda-info-bg);color:var(--boda-text)}
html[data-tema="azul"] :is(.inv-tarjeta:hover,.inv-filtro-anadir:hover) {border-color:var(--boda-nav-active-border)}
html[data-tema="azul"] :is(.inv-tarjeta:hover,.inv-pendientes-boton:hover) {background-color:var(--boda-hover-bg)}

/* Botones y controles; respetamos los tipos y tamaños originales. */
html[data-tema="azul"] :is(.btn,.opciones button,.ita-pestanas button,.inv-vistas button,
 .inv-filtro-anadir,.menu-boton-plus,.menu-boton-editar,.ita-editor-botones button,
 .pre-boton-edit,.pre-concepto-linea button,.pre-reordenar button,
 .pre-total-lado button,.mesas-herramientas button,.mesas-editor-cerrar,
 .mesas-editor-ocupante button,.mesas-zoom button,.mesas-estadisticas .mesas-sin-mesa-boton,
 .inv-filtro-menu button,.pre-accion-card) {
 background-color:var(--boda-white);color:var(--boda-text);border-color:var(--boda-border);
}
html[data-tema="azul"] :is(.btn:hover,.opciones button:hover,.ita-pestanas button:hover,
 .inv-vistas button:hover,.inv-filtro-anadir:hover,.inv-filtro-menu button:hover,
 .menu-boton-plus:hover,.menu-boton-editar:hover,.ita-editor-botones button:hover:not(:disabled),
 .pre-boton-edit:hover,.pre-concepto-linea button:hover,.pre-reordenar button:hover,
 .mesas-herramientas button:hover,.mesas-zoom button:hover,.mesas-editor-cerrar:hover,
 .mesas-editor-ocupante button:hover,.pre-total-lado button:hover) {
 background-color:var(--boda-hover-bg);color:var(--boda-text);border-color:var(--boda-nav-active-border);
}
html[data-tema="azul"] :is(.btn-primario,.opciones button.seleccionado,
 .ita-pestanas button.activo,.inv-vistas button.activo,
 body.mesas-pantalla-activa .mesas-barra-botones > .btn-primario) {
 background-color:var(--boda-primary);border-color:var(--boda-primary);color:var(--boda-white);
}
html[data-tema="azul"] :is(.btn-primario:hover,.opciones button.seleccionado:hover,
 .ita-pestanas button.activo:hover,.inv-vistas button.activo:hover,
 body.mesas-pantalla-activa .mesas-barra-botones > .btn-primario:hover) {
 background-color:var(--boda-primary-hover);border-color:var(--boda-primary-hover);color:var(--boda-white);
}
html[data-tema="azul"] :is(.btn-primario:active,.opciones button.seleccionado:active,
 .ita-pestanas button.activo:active,.inv-vistas button.activo:active) {
 background-color:var(--boda-primary-pressed);border-color:var(--boda-primary-pressed);
}
html[data-tema="azul"] :is(.menu-boton-plus,.menu-boton-editar,.pre-accion-card) {
 background-color:var(--boda-button-warm);border-color:var(--boda-pending-border);color:var(--boda-primary-hover);
}
html[data-tema="azul"] :is(.menu-boton-plus:hover,.menu-boton-editar:hover,.pre-accion-card:hover) {
 background-color:var(--boda-peach);
}
html[data-tema="azul"] :is(.pre-accion-card,.pre-accion-card:hover) {color:var(--boda-ochre)}
html[data-tema="azul"] :is(.ita-editor-peligro,.pre-boton-edit.pre-peligro,
 .inv-filtro-quitar:hover,.menu-concepto-acciones button.eliminar) {color:var(--boda-error);border-color:var(--boda-error-border)}
html[data-tema="azul"] :is(.btn:disabled,.opciones button:disabled,
 .ita-editor-botones button:disabled) {background-color:var(--boda-disabled-bg);color:var(--boda-disabled-text);border-color:var(--boda-disabled-border)}

/* Formularios, desplegables, filtros y focos. */
html[data-tema="azul"] :is(input[type="password"],input[type="search"],input[type="text"],
 input[type="number"],input[type="date"],input[type="time"],input[type="email"],textarea,select,
 .inv-herramientas input,.inv-herramientas select,.inv-ordenar select,.inv-busqueda,
 .inv-filtro-fila select,.inv-filtro-fila input,.ita-select-invitado,.ita-editor-ejemplo-campos select,
 .mesas-editor .mesas-editor-sentar select,.mesas-sin-mesa-fila select) {
 background-color:var(--boda-white);color:var(--boda-text);border-color:var(--boda-border);
}
html[data-tema="azul"] :is(input,textarea,select)::placeholder {color:var(--boda-text-muted)}
html[data-tema="azul"] :is(input,textarea,select):hover {border-color:var(--boda-nav-active-border)}
html[data-tema="azul"] :is(input,textarea,select):focus-visible {
 border-color:var(--boda-focus);outline-color:var(--boda-focus);
 box-shadow:0 0 0 3px rgba(55,111,154,.15);
}
html[data-tema="azul"] :is(.btn,.opciones button,.circulo-tarea,.tarea-abrir,
 .inv-tarjeta,.inv-tabla button,.ita-pestanas button,.inv-vistas button,
 .menu-boton-plus,.menu-boton-editar,.ita-editor-botones button,
 .mesas-asiento,.mesas-centro,.tema-opcion):focus-visible {outline-color:var(--boda-focus)}
html[data-tema="azul"] :is(.mesas-editor input[type="range"],.mesas-zoom input[type="range"]) {accent-color:var(--boda-primary)}

/* Checklist + calendario. La franja vertical usa EXACTAMENTE --boda-header. */
html[data-tema="azul"] .check-grupo-etiqueta {background-color:var(--boda-header);border-color:var(--boda-border);color:var(--boda-text)}
html[data-tema="azul"] .check-grupo-etiqueta span {color:var(--boda-text)}
html[data-tema="azul"] :is(.check-grupo-contenido,.tarea-fila,.cal-lista-item,.evento-fila) {border-bottom-color:var(--boda-divider)}
html[data-tema="azul"] :is(.tarea-cuerpo h3,.tarea-abrir h3,.cal-nav h2,.evento-fila strong) {color:var(--boda-text)}
html[data-tema="azul"] .circulo-tarea {background-color:var(--boda-white);border-color:var(--boda-ochre)}
html[data-tema="azul"] .circulo-tarea:hover:not(:disabled) {border-color:var(--boda-primary-hover)}
html[data-tema="azul"] :is(.circulo-tarea.completada,.cal-completar[aria-pressed="true"]) {
 background-color:var(--boda-success);border-color:var(--boda-success);color:var(--boda-white);
}
html[data-tema="azul"] :is(.tarea-fila.completada,.cal-lista-item.completada) {background-color:var(--boda-success-bg)}
html[data-tema="azul"] :is(.tarea-cuerpo h3.hecha,.tarea-abrir h3.hecha) {color:var(--boda-success-text)}
html[data-tema="azul"] :is(.estado.completada,.cal-evento-boton.completado,.punto.completada) {
 background-color:var(--boda-success-badge);color:var(--boda-success-text);
}
html[data-tema="azul"] :is(.estado.proxima,.estado.pendiente,.check-clase,.punto.proxima) {
 background-color:var(--boda-pending-bg);color:var(--boda-pending-text);
}
html[data-tema="azul"] :is(.estado.vencida,.punto.vencida,.inicio-aviso-item.vencida) {
 background-color:var(--boda-error-bg);color:var(--boda-error);
}
html[data-tema="azul"] .cal-celda {background-color:var(--boda-surface);border-color:var(--boda-divider);color:var(--boda-text)}
html[data-tema="azul"] .cal-celda.hoy {background-color:var(--boda-header);border-color:var(--boda-nav-underline)}
html[data-tema="azul"] .cal-celda.fuera {background-color:transparent;border-color:transparent;color:var(--boda-text-muted)}
html[data-tema="azul"] :is(.cal-evento,.cal-evento-boton,.inicio-aviso-item.proxima) {background-color:var(--boda-info-bg);color:var(--boda-info-text)}
html[data-tema="azul"] .inicio-avisos {background-color:var(--boda-surface);border-color:var(--boda-border)}
html[data-tema="azul"] .inicio-avisos h3 {color:var(--boda-text)}
html[data-tema="azul"] .cal-completar {background-color:var(--boda-white);color:var(--boda-text);border-color:var(--boda-border)}

/* Invitados y gráficos: mismas cifras, la misma geometría. */
html[data-tema="azul"] :is(.dato span,.inv-pendientes-boton span,.menu-concepto-precio,
 .menu-total-nota,.pre-pago-no) {color:var(--boda-ochre)}
html[data-tema="azul"] :is(.ita-grafico,.ita-rosquilla-pequena) {background-color:var(--boda-chart-empty)}
html[data-tema="azul"] :is(.ita-grafico::before,.ita-rosquilla-pequena::after) {background-color:var(--boda-surface)}
html[data-tema="azul"] .ita-rosquilla-pequena {
 --color-completo:var(--boda-chart-confirmed);--color-pendiente:var(--boda-chart-pending);
}
html[data-tema="azul"] :is(.ita-leyenda-linea,.ita-grafica-nota,.inv-tabla .inv-nombre-boton,
 .ita-resumen-grafico-texto,.ita-grafico-modal-leyenda button) {color:var(--boda-text)}
html[data-tema="azul"] :is(.inv-estado.confirmado,.ita-estadistica-completado) {background-color:var(--boda-success-badge);color:var(--boda-success-text)}
html[data-tema="azul"] .inv-estado.pendiente {background-color:var(--boda-pending-bg);color:var(--boda-pending-text)}
html[data-tema="azul"] .inv-estado.ausente {background-color:var(--boda-error-bg);color:var(--boda-error)}
html[data-tema="azul"] :is(.inv-tabla th,.ita-respuestas th,.pre-pagos-tabla th) {
 background-color:var(--boda-table-head);color:var(--boda-text);border-bottom-color:var(--boda-border);
}
html[data-tema="azul"] :is(.inv-tabla td,.ita-respuestas td,.pre-pagos-tabla td,
 .inv-pendiente-fila,.pre-concepto-tarjeta,.pre-menu-fila,.pre-concepto-linea) {
 background-color:var(--boda-surface);border-bottom-color:var(--boda-divider);
}
html[data-tema="azul"] :is(.inv-tabla tbody tr:hover td,.ita-respuestas tbody tr:hover td,
 .pre-concepto-linea:hover) {background-color:var(--boda-hover-bg)}
html[data-tema="azul"] :is(.inv-filtro-menu,.inv-filtro-fila,.inv-filtro-fila select,.inv-filtro-fila input) {border-color:var(--boda-border)}
html[data-tema="azul"] :is(.inv-filtro-menu button:hover,.inv-filtro-menu button:focus-visible) {background-color:var(--boda-hover-bg)}
html[data-tema="azul"] :is(.inv-filtro-quitar,.inv-filtro-borrar,.inv-pendiente-fila a) {color:var(--boda-primary-hover)}
html[data-tema="azul"] .inv-filtro-quitar:hover {background-color:var(--boda-error-bg);color:var(--boda-error)}

/* Invitaciones, vista previa y editor de preguntas. */
html[data-tema="azul"] :is(.ita-etiqueta,.ita-editor-pill) {background-color:var(--boda-pending-bg);color:var(--boda-pending-text)}
html[data-tema="azul"] :is(.ita-aviso,.inv-excel-avisos,.pre-margen) {
 background-color:var(--boda-notice-bg);border-color:var(--boda-pending-border);color:var(--boda-pending-text);
}
html[data-tema="azul"] .ita-formulario {background-color:var(--boda-white);border-color:var(--boda-divider)}
html[data-tema="azul"] :is(.ita-formulario input:disabled,.ita-formulario select:disabled,
 .ita-formulario textarea:disabled) {background-color:var(--boda-disabled-bg);color:var(--boda-disabled-text)}
html[data-tema="azul"] :is(.ita-editor-previa-item,.ita-editor-ejemplo) {background-color:var(--boda-surface);border-color:var(--boda-border)}
html[data-tema="azul"] :is(.ita-editor-respuesta-ejemplo,.ita-grafico-lista li) {
 background-color:var(--boda-info-bg);color:var(--boda-text-secondary);border-color:var(--boda-border);
}
html[data-tema="azul"] :is(.ita-grafico-modal-leyenda button:hover,.ita-grafico-modal-leyenda button[aria-pressed="true"]) {
 background-color:var(--boda-hover-bg);border-color:var(--boda-nav-active-border);
}
html[data-tema="azul"] :is(.ita-grafico-lista,.ita-grafico-modal-leyenda button) {border-color:var(--boda-divider)}

/* Organización de mesas, solo colores (NO cambiar geometría/capas/eventos). */
html[data-tema="azul"] body.mesas-pantalla-activa {background-color:var(--boda-bg)}
html[data-tema="azul"] .mesas-vista-scroll {
 background-color:var(--boda-bg);
 background-image:linear-gradient(rgba(212,225,236,.35) 1px,transparent 1px),linear-gradient(90deg,rgba(212,225,236,.35) 1px,transparent 1px);
 border-color:var(--boda-border);
}
html[data-tema="azul"] :is(.mesas-tablero,.mesas-tablero-cabecera,.mesas-paleta,
 .mesas-editor,.mesas-herramientas,.mesas-zoom,.mesas-estadisticas,
 .mesas-sin-mesa-dialogo,.mesas-pdf-opciones) {
 background-color:var(--boda-surface);border-color:var(--boda-border);
}
html[data-tema="azul"] :is(.mesas-estadisticas,.mesas-estadisticas strong,.mesas-editor,
 .mesas-editor-dato,.mesas-editor-dato strong,.mesas-editor-ocupante,
 .mesas-herramientas h3,.mesas-herramientas small,.mesas-zoom-cantidad,
 .mesas-sin-mesa-nombre) {color:var(--boda-text)}
html[data-tema="azul"] .mesas-centro {background-color:var(--boda-peach);border-color:var(--boda-primary-hover);color:var(--boda-text)}
html[data-tema="azul"] .mesas-centro.indefinida {background-color:var(--boda-surface)}
html[data-tema="azul"] .mesas-centro.seleccionada {
 background-color:var(--boda-peach);border-color:var(--boda-focus);
 box-shadow:0 0 0 5px rgba(55,111,154,.18),0 7px 15px rgba(35,69,99,.12);
}
html[data-tema="azul"] :is(.mesas-centro small,.mesas-editor .mesas-editor-subtitulo) {color:var(--boda-text-secondary)}
html[data-tema="azul"] .mesas-asiento {background-color:var(--boda-white);border-color:var(--boda-border);color:var(--boda-text)}
html[data-tema="azul"] .mesas-asiento.ocupado {background-color:var(--boda-success-badge);border-color:var(--boda-success-border);color:var(--boda-success-text)}
html[data-tema="azul"] .mesas-asiento.seleccionado {outline-color:var(--boda-focus)}
html[data-tema="azul"] :is(.mesas-resize-handle,.mesas-editor-cerrar,.mesas-editor-ocupante button) {
 background-color:var(--boda-white);border-color:var(--boda-focus);color:var(--boda-focus);
}
html[data-tema="azul"] .mesas-resize-handle::after {color:var(--boda-focus)}
html[data-tema="azul"] :is(.mesas-herramientas button svg) {fill:var(--boda-peach);stroke:var(--boda-primary-hover)}
html[data-tema="azul"] :is(.mesas-estadisticas .mesas-sin-mesa-boton,
 body.mesas-pantalla-activa .mesas-barra-botones > .btn) {
 background-color:var(--boda-white);border-color:var(--boda-border);color:var(--boda-text);
}
html[data-tema="azul"] :is(.mesas-editor-ocupante,.mesas-sin-mesa-fila,
 .mesas-estadisticas > span,.mesas-sin-mesa-cabecera) {border-color:var(--boda-divider)}
html[data-tema="azul"] :is(.mesas-sin-mesa-fondo,.modal-fondo) {background-color:rgba(21,63,92,.26)}
html[data-tema="azul"] .mesas-error {background-color:var(--boda-error-bg);color:var(--boda-error)}

/* Presupuestos, importes y pagos. */
html[data-tema="azul"] :is(.pre-dato span,.pre-texto strong,.pre-precio,.pre-total-lado strong,
 .pre-menus-grupo,.pre-concepto-linea,.pre-pagos-tabla) {color:var(--boda-text)}
html[data-tema="azul"] .pre-menus-grupo {background-color:var(--boda-surface);border-color:var(--boda-border)}
html[data-tema="azul"] .pre-pago-ok {color:var(--boda-success-text)}
html[data-tema="azul"] .pre-pago-no {color:var(--boda-pending-text)}
html[data-tema="azul"] :is(.pre-concepto-detalle,.pre-panel-titulo,.pre-total-lado) {border-color:var(--boda-divider)}
html[data-tema="azul"] .pre-orden-sobre {background-color:var(--boda-hover-bg);outline-color:var(--boda-focus)}
html[data-tema="azul"] :is(.pre-dato.aviso-exceso,.aviso:not(:empty)) {
 background-color:var(--boda-error-bg);border-color:var(--boda-error-border);color:var(--boda-error);
}
html[data-tema="azul"] #pre-error:not(:empty) {
 background-color:var(--boda-error-bg);border-color:var(--boda-error-border);color:var(--boda-error);
}
html[data-tema="azul"] :is(.pre-vacio,.pre-menu-desunido) {color:var(--boda-text-muted)}

/* Menús: mismas columnas, altura, iconos, tipografía y separación que Beige. */
html[data-tema="azul"] .menu-tarjeta-cabecera h2 {color:var(--boda-text)}
html[data-tema="azul"] .menu-concepto {border-bottom-color:var(--boda-divider)}
html[data-tema="azul"] .menu-concepto-nombre {color:var(--boda-text)}
html[data-tema="azul"] .menu-concepto-precio {color:var(--boda-ochre)}
html[data-tema="azul"] .menu-concepto-precio.sin-precio {color:var(--boda-pending-text)}
html[data-tema="azul"] .menu-concepto-acciones button {color:var(--boda-primary-hover)}
html[data-tema="azul"] .menu-concepto-acciones button:hover {background-color:var(--boda-hover-bg)}
html[data-tema="azul"] .menu-concepto-acciones button.eliminar {color:var(--boda-error)}
html[data-tema="azul"] .menu-total {border-top-color:var(--boda-divider)}
html[data-tema="azul"] .menu-total-nota {color:var(--boda-pending-text)}

/* Acabado cromático de la referencia: superficies existentes, sin adornos
   nuevos ni cambios de tamaño, tipografía o interacción. */
html[data-tema="azul"] .menu-tarjeta-cabecera {background-color:var(--boda-peach)}
html[data-tema="azul"] .menu-concepto {background-color:var(--boda-success-bg)}
html[data-tema="azul"] :is(.campo-form label,.modal-cabecera h2,
 .ita-editor-contenido strong,.ita-editor-previa-item label,.inv-tarjeta h3,
 .inv-tarjeta-nombre,.inv-tabla,.ita-respuestas,.cal-dia-boton,
 .evento-abrir,.pre-icono) {color:var(--boda-text)}
html[data-tema="azul"] :is(.modal-cabecera p,.modal-ayuda,
 .mesas-editor-nota,.mesas-pdf-instruccion,.inv-tarjeta-dato,
 .ita-resumen-linea) {color:var(--boda-text-secondary)}
html[data-tema="azul"] :is(.modal-cerrar,.modal-cerrar:hover) {color:var(--boda-primary-hover)}
html[data-tema="azul"] .modal-botones .btn-borrar {
 color:var(--boda-error);border-color:var(--boda-error-border);
}
html[data-tema="azul"] .modal-botones .btn-borrar:hover {background-color:var(--boda-error-bg)}
html[data-tema="azul"] .tarea-abrir:hover h3 {text-decoration-color:var(--boda-nav-underline)}
html[data-tema="azul"] .estado:not(.completada):not(.proxima):not(.vencida):not(.pendiente) {
 background-color:var(--boda-pending-bg);color:var(--boda-pending-text);
}
html[data-tema="azul"] :is(.cal-dia-boton:hover,.cal-evento-boton:hover,
 .inv-filtro-anadir[aria-expanded="true"],.ita-abrir-estadisticas:hover,
 .ita-abrir-estadisticas:focus-visible) {
 background-color:var(--boda-hover-bg);outline-color:var(--boda-focus);
}
html[data-tema="azul"] .evento-abrir.completado {
 background-color:var(--boda-success-bg);color:var(--boda-success-text);
}
html[data-tema="azul"] .punto.pendiente {background-color:var(--boda-text-muted)}
html[data-tema="azul"] .punto.proxima {background-color:var(--boda-chart-pending)}
html[data-tema="azul"] .punto.completada {background-color:var(--boda-success)}
html[data-tema="azul"] .punto.vencida {background-color:var(--boda-error)}
html[data-tema="azul"] :is(.inv-vistas,.inv-excel-avisos,
 .mesas-editor-sep,.mesas-editor .mesas-editor-sentar) {border-color:var(--boda-divider)}
html[data-tema="azul"] .mesas-asiento.activo {outline-color:var(--boda-focus)}
html[data-tema="azul"] .mesas-asiento:hover {border-color:var(--boda-primary-hover)}
html[data-tema="azul"] .mesas-pdf-opciones button {
 background-color:var(--boda-surface);color:var(--boda-text);
}
html[data-tema="azul"] .mesas-pdf-opciones button:hover {background-color:var(--boda-hover-bg)}
html[data-tema="azul"] :is(.mesas-zoom button:focus-visible,
 .mesas-zoom input:focus-visible,.inv-pendientes-boton:focus-visible,
 .inv-pendiente-fila a:focus-visible) {outline-color:var(--boda-focus)}
html[data-tema="azul"] .pre-orden-sobre {background-color:var(--boda-hover-bg) !important}
html[data-tema="azul"] .pre-dato.aviso-exceso strong {color:var(--boda-error)}
html[data-tema="azul"] .pre-llave path {stroke:var(--boda-border)}

/* Interfaz flotante existente: únicamente sustituir su gama Beige. */
html[data-tema="azul"] .interfaz-control {color:var(--boda-primary)}
html[data-tema="azul"] .interfaz-control:hover {background-color:var(--boda-hover-bg);border-color:var(--boda-border)}
html[data-tema="azul"] .interfaz-popover {background-color:var(--boda-surface);border-color:var(--boda-border);color:var(--boda-text);box-shadow:0 10px 32px rgba(35,69,99,.10)}
html[data-tema="azul"] .interfaz-popover-titulo {color:var(--boda-text)}
html[data-tema="azul"] .tema-opcion:hover,html[data-tema="azul"] .tema-opcion[aria-checked="true"] {
 background-color:var(--boda-hover-bg);border-color:var(--boda-border);
}

/* Gráficos/leyendas generados con estilos inline: solo el color, no su valor. */
html[data-tema="azul"] .ita-punto[style*="#6f9b7c"],
html[data-tema="azul"] .ita-leyenda-marca[style*="111, 155, 124"] {background-color:var(--boda-chart-confirmed) !important}
html[data-tema="azul"] .ita-punto[style*="#c6a36c"],
html[data-tema="azul"] .ita-leyenda-marca[style*="198, 163, 108"] {background-color:var(--boda-chart-pending) !important}
html[data-tema="azul"] .ita-punto[style*="#c9817b"],
html[data-tema="azul"] .ita-leyenda-marca[style*="201, 129, 123"] {background-color:var(--boda-chart-absent) !important}

@media (prefers-reduced-motion: reduce) {
 .conexion-indicador .estado-svg *, .pantalla-carga-anillo, .pantalla-carga-destello,
 .pantalla-carga, .interfaz-popover {animation:none !important;transition:none !important}
}
