.composer-status{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#a9c5e4;font-size:12px}.composer-status strong{color:#d8f1ff}.queue-status{color:#7edbff}.composer-drop-active{outline:3px dashed #18d9ff;outline-offset:-7px;background:#0c315b!important}.processing-summary{margin:4px 0 10px;padding:7px 10px;border-left:3px solid #6285a9;background:#ffffff09;color:#9db4d4;font-size:12px}.processing-summary summary{cursor:pointer}.quick-profile{position:absolute;right:116px;bottom:10px;z-index:30;width:min(300px,calc(100vw - 30px));padding:10px;border:1px solid #2b6b9f;border-radius:14px;background:#0b2549;box-shadow:0 18px 38px #000b}.quick-profile[hidden]{display:none}.quick-profile button{display:flex;width:100%;justify-content:space-between;gap:8px;margin:4px 0;text-align:left}.quick-profile button.active{border-color:#18d9ff;background:#10416d}.quick-profile small{color:#9db4d4}.tool-friendly-label{display:flex;align-items:center;gap:7px}.tool-friendly-label input{width:auto}.developer-details{margin-top:10px}.developer-details summary{font-size:13px;color:#a9c5e4}.developer-details p,.developer-status{padding:0 10px;color:#9db4d4;font-size:12px}.message-queue-item{opacity:.72}.message-queue-item p{font-style:italic}.assistant .message-actions{position:absolute;left:50px;bottom:-39px;z-index:5;display:flex;align-items:center;gap:3px;height:34px;padding:3px 5px;margin:0;border:1px solid #2b5e8c;border-radius:12px;background:#0b2144;box-shadow:0 8px 20px #0008}.assistant .message-actions button{width:28px;min-width:28px;height:28px;padding:0;border:0;border-radius:8px;background:transparent;font-size:14px;line-height:1}.assistant .message-actions button:hover{background:#1c5c94}.assistant:has(.message-actions){margin-bottom:34px}#prompt{resize:vertical;max-height:48vh;min-height:48px}@media(max-width:700px){.quick-profile{right:64px;bottom:64px}.composer-status{font-size:11px}.assistant .message-actions{left:12px}}
.image-artifact{display:block;max-width:min(440px,calc(100% - 66px));margin:14px 0 4px 50px;border:1px solid #2b8dcc;border-radius:14px;overflow:hidden;background:#071c3e}.image-artifact img{display:block;width:100%;height:auto;max-height:520px;object-fit:contain;background:#071c3e}

/* Personalizable y accesible: los colores del área de trabajo y de los botones
   se aplican solo a SHANTIX; iconos, contenido y la plantilla móvil se conservan. */
:root{--shantix-workspaceStart:#102a52;--shantix-workspaceEnd:#061329;--shantix-buttonStart:#1677ff;--shantix-buttonEnd:#00bfe9}
.chat{background:linear-gradient(145deg,var(--shantix-workspaceStart),var(--shantix-workspaceEnd) 72%)}
.messages{background:radial-gradient(ellipse at 50% 0,#ffffff08,transparent 48%)}
button:not(.ghost):not(.message-control):not(.text-button):not(.panel-close){background:linear-gradient(135deg,var(--shantix-buttonStart),var(--shantix-buttonEnd))}
.send-button{background:linear-gradient(135deg,var(--shantix-buttonStart),var(--shantix-buttonEnd))!important}
.user{background:color-mix(in srgb,var(--shantix-buttonStart) 72%,#07152f)}
.panel-close{display:grid!important;place-items:center!important;padding:0!important;line-height:1!important;font-family:Arial,sans-serif!important;transform:none!important}
.tools-panel .theme-customizer{padding:11px 12px}.theme-customizer p{margin:2px 0 10px;color:#a9c5e4;font-size:12px;line-height:1.35}.theme-customizer label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0;color:#d5e5f8;font-size:13px}.theme-customizer input[type="color"]{width:48px;height:32px;padding:2px;border-radius:8px;cursor:pointer}.theme-customizer button{margin-top:8px;padding:8px 11px;font-size:12px}
/* El menú de creación anterior queda reservado para módulos futuros. */
#attachMenu details:nth-of-type(2){display:none}
@media(min-width:1100px){.shell{width:min(1320px,100%);padding-left:28px;padding-right:28px}.chat{height:calc(100dvh - 120px)}.messages{padding:30px 42px;gap:20px}article{max-width:min(76%,880px)}.assistant.image-result{width:min(76%,760px)}.tools-panel{right:22px;bottom:106px}.attach-menu{left:22px}.chat:has(.messages){box-shadow:0 24px 80px #0009}}
/* Acceso único: todos autentican con sus credenciales y el rol se resuelve en el servidor. */
#login.login{position:relative;max-width:520px;margin:clamp(30px,7vh,86px) auto 0;padding:clamp(28px,4vw,38px)}
/* Acciones de cada respuesta: una fila compacta, sin barras nativas ni flechas
   de desplazamiento. Cinco acciones caben incluso en los teléfonos pequeños. */
.assistant .message-actions{box-sizing:border-box;display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;width:max-content!important;min-width:0!important;max-width:none!important;white-space:nowrap!important;overflow:visible!important;scrollbar-width:none!important;-ms-overflow-style:none!important}
.assistant .message-actions::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
.assistant .message-actions button{flex:0 0 28px!important;overflow:hidden}

/* El área de escritura sigue creciendo automáticamente, pero no expone el
   redimensionador ni las barras del navegador. Si alcanza el límite, se puede
   desplazar con rueda o dedo sin alterar el diseño. */
#prompt{resize:none!important;overflow-y:auto!important;scrollbar-width:none!important;-ms-overflow-style:none!important}
#prompt::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
#prompt::-webkit-resizer{display:none!important}
.workspace-project-list{display:grid;gap:0}.workspace-project-list-title{display:block;padding:9px 10px;color:#b9dff5;font-size:13px}.workspace-project-list button{min-height:38px}.workspace-project-list button.is-active{background:#10416d;border-left:3px solid #18d9ff;color:#fff}
@media(max-width:700px){.assistant .message-actions{left:12px!important;bottom:-43px!important;gap:4px!important;height:38px!important;padding:4px 6px!important;border-radius:14px!important}.assistant .message-actions button{flex-basis:30px!important;width:30px!important;min-width:30px!important;height:30px!important}.assistant:has(.message-actions){margin-bottom:43px!important}}
.login-brand{position:absolute;top:18px;right:20px;display:flex;align-items:center;gap:7px;color:#dcecff;font-size:12px;font-weight:800;letter-spacing:.1em}.login-brand img{width:28px;height:28px;border-radius:50%;border:1px solid #20d7ff}.login h2{text-align:center;padding-right:102px;margin:3px 0 26px}.login .auth-panel>p{text-align:center}.auth-secondary-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.auth-secondary-actions .auth-secondary-button{display:grid;place-items:center;min-height:48px;margin:0;border:1px solid #365779;border-radius:14px;background:#1a3153;color:#eff8ff;font:inherit;font-weight:750;cursor:pointer;box-shadow:inset 0 1px #ffffff18}.auth-secondary-actions .auth-secondary-button:hover{border-color:#15ccef;background:#20466d}.auth-secondary-actions .auth-secondary-button:focus-visible{outline:3px solid #18d7f7;outline-offset:2px}@media(max-width:700px){#login.login{margin:32px 14px 0;padding:28px 22px}.login-brand{top:15px;right:18px}.login h2{padding-right:90px;font-size:clamp(30px,8vw,42px);margin-top:6px}.auth-secondary-actions{gap:10px}.auth-secondary-actions .auth-secondary-button{min-height:50px;font-size:15px}}

/* Fail closed: no application surface is rendered until Firebase identity and
   the server-side account are both verified. The login is its own viewport. */
[hidden]{display:none!important}
body.auth-locked{overflow:hidden}
body.auth-locked .shell{width:100%;max-width:none;padding:0}
body.auth-locked #appHeader,body.auth-locked #chat{display:none!important}
#login.login{position:fixed;inset:0;z-index:10000;max-width:none!important;margin:0!important;padding:20px!important;display:grid;place-items:center;border:0;border-radius:0;background:radial-gradient(circle at 50% 0,#12366a 0,#07152f 46%,#030914 100%);box-shadow:none;overflow:auto}
#login .login-dialog{position:relative;width:min(480px,100%);padding:clamp(28px,5vw,40px);border:1px solid #27659a;border-radius:22px;background:#091a37;box-shadow:0 22px 70px #000b}
body.authenticated #login{display:none!important}
@media(max-width:700px){#login.login{padding:14px!important}#login .login-dialog{padding:28px 22px}}
