/* Escala de lectura compartida; no altera anchos ni puntos de ruptura. */
:root{
    --ia-text-scale:1;
    --ia-font-small:calc(13px * var(--ia-text-scale));
    --ia-font-body:calc(15px * var(--ia-text-scale));
}
@media(max-width:760px){
    :root{
        --ia-font-small:calc(15px * var(--ia-text-scale));
        --ia-font-body:calc(16px * var(--ia-text-scale));
    }
}

@font-face{
    font-family:'Ubuntu IA';
    src:url('/modules/chat/fonts/Ubuntu-Light.ttf') format('truetype');
    font-style:normal;
    font-weight:300;
    font-display:swap;
}
@font-face{
    font-family:'Ubuntu IA';
    src:url('/modules/chat/fonts/Ubuntu-Regular.ttf') format('truetype');
    font-style:normal;
    font-weight:400;
    font-display:swap;
}
@font-face{
    font-family:'Ubuntu IA';
    src:url('/modules/chat/fonts/Ubuntu-Medium.ttf') format('truetype');
    font-style:normal;
    font-weight:500;
    font-display:swap;
}
@font-face{
    font-family:'Ubuntu Mono IA';
    src:url('/modules/chat/fonts/UbuntuMono.ttf') format('truetype');
    font-style:normal;
    font-weight:400;
    font-display:swap;
}

:root,
[data-theme="light"]{
    --ui-primary:#2563eb;
    --bg-primary:#f7f7f8;
    --bg-secondary:#ffffff;
    --bg-card:#ffffff;
    --bg-hover:#f1f2f4;
    --text-primary:#202123;
    --text-secondary:#5f6368;
    --text-muted:#6b7280;
    --border:#dedfe3;
    --border-light:#e5e7eb;
}
[data-theme="dark"]{
    --ui-primary:#60a5fa;
    --bg-primary:#212121;
    --bg-secondary:#282828;
    --bg-card:#2f2f2f;
    --bg-hover:#383838;
    --text-primary:#f5f5f5;
    --text-secondary:#c2c2c2;
    --text-muted:#a3a3a3;
    --border:#444444;
    --border-light:#3f3f46;
}

/* Temas (Configuración → Apariencia): cada paleta define todo el programa, ventanas incluidas.
   data-theme (light/dark) sigue mandando en los estilos; data-palette solo cambia los colores. */
:root[data-palette="light"]{
    --ui-primary:#2563eb;--bg-primary:#f7f7f8;--bg-secondary:#ffffff;--bg-card:#ffffff;--bg-hover:#f1f2f4;
    --text-primary:#202123;--text-secondary:#5f6368;--text-muted:#6b7280;--border:#dedfe3;--border-light:#e5e7eb;
    --bg-modal:#ffffff;--bg-modal-header:rgba(15,23,42,.05);--bg-modal-footer:rgba(15,23,42,.03);--border-modal:#e2e8f0;
    --text-modal-header:#0f172a;--text-modal-close:#64748b;--scrollbar-thumb:rgba(100,116,139,.45);
    --cfg-surface:#f7f7f8;--cfg-card:#ffffff;--cfg-border:#dedfe3;
}
:root[data-palette="light-paper"]{
    --ui-primary:#2f6fd6;--bg-primary:#f4efe4;--bg-secondary:#faf6ee;--bg-card:#fffcf5;--bg-hover:#ece4d4;
    --text-primary:#2b2620;--text-secondary:#5e564a;--text-muted:#7a7062;--border:#ddd2bd;--border-light:#e7dfcf;
    --bg-modal:#fffcf5;--bg-modal-header:rgba(15,23,42,.05);--bg-modal-footer:rgba(15,23,42,.03);--border-modal:#ddd2bd;
    --text-modal-header:#2b2620;--text-modal-close:#7a7062;--scrollbar-thumb:rgba(100,116,139,.45);
    --cfg-surface:#f4efe4;--cfg-card:#fffcf5;--cfg-border:#ddd2bd;
}
:root[data-palette="light-mist"]{
    --ui-primary:#2563eb;--bg-primary:#eef2f6;--bg-secondary:#f8fafc;--bg-card:#ffffff;--bg-hover:#e3e9f0;
    --text-primary:#1e293b;--text-secondary:#475569;--text-muted:#64748b;--border:#d3dbe5;--border-light:#e2e8f0;
    --bg-modal:#ffffff;--bg-modal-header:rgba(15,23,42,.05);--bg-modal-footer:rgba(15,23,42,.03);--border-modal:#d3dbe5;
    --text-modal-header:#0f172a;--text-modal-close:#64748b;--scrollbar-thumb:rgba(100,116,139,.45);
    --cfg-surface:#eef2f6;--cfg-card:#ffffff;--cfg-border:#d3dbe5;
}
:root[data-palette="light-solarized"]{
    --ui-primary:#268bd2;--bg-primary:#fdf6e3;--bg-secondary:#f5efdc;--bg-card:#fffbef;--bg-hover:#eee8d5;
    --text-primary:#073642;--text-secondary:#586e75;--text-muted:#7b8b8f;--border:#ddd6c1;--border-light:#e8e1cc;
    --bg-modal:#fffbef;--bg-modal-header:rgba(15,23,42,.05);--bg-modal-footer:rgba(15,23,42,.03);--border-modal:#ddd6c1;
    --text-modal-header:#073642;--text-modal-close:#7b8b8f;--scrollbar-thumb:rgba(100,116,139,.45);
    --cfg-surface:#fdf6e3;--cfg-card:#fffbef;--cfg-border:#ddd6c1;
}
:root[data-palette="dark"]{
    --ui-primary:#4daafc;--bg-primary:#1f1f1f;--bg-secondary:#181818;--bg-card:#252526;--bg-hover:#2d2d30;
    --text-primary:#e6e6e6;--text-secondary:#bdbdbd;--text-muted:#8f8f8f;--border:#3c3c3c;--border-light:#313131;
    --bg-modal:#1f1f1f;--bg-modal-header:rgba(255,255,255,.05);--bg-modal-footer:rgba(255,255,255,.03);--border-modal:#3c3c3c;
    --text-modal-header:#e6e6e6;--text-modal-close:#9d9d9d;--scrollbar-thumb:rgba(255,255,255,.18);
    --cfg-surface:#1b1b1b;--cfg-card:#252526;--cfg-border:#3c3c3c;
}
:root[data-palette="dark-monokai"]{
    --ui-primary:#66d9ef;--bg-primary:#272822;--bg-secondary:#1e1f1c;--bg-card:#2d2e27;--bg-hover:#3e3d32;
    --text-primary:#f8f8f2;--text-secondary:#cfcfc2;--text-muted:#a59f85;--border:#49483e;--border-light:#3e3d32;
    --bg-modal:#272822;--bg-modal-header:rgba(255,255,255,.05);--bg-modal-footer:rgba(255,255,255,.03);--border-modal:#3e3d32;
    --text-modal-header:#f8f8f2;--text-modal-close:#a59f85;--scrollbar-thumb:rgba(255,255,255,.18);
    --cfg-surface:#1e1f1c;--cfg-card:#272822;--cfg-border:#49483e;
}
:root[data-palette="dark-midnight"]{
    --ui-primary:#4493f8;--bg-primary:#0d1117;--bg-secondary:#010409;--bg-card:#161b22;--bg-hover:#21262d;
    --text-primary:#e6edf3;--text-secondary:#b1bac4;--text-muted:#7d8590;--border:#30363d;--border-light:#21262d;
    --bg-modal:#161b22;--bg-modal-header:rgba(255,255,255,.05);--bg-modal-footer:rgba(255,255,255,.03);--border-modal:#30363d;
    --text-modal-header:#e6edf3;--text-modal-close:#7d8590;--scrollbar-thumb:rgba(255,255,255,.18);
    --cfg-surface:#0d1117;--cfg-card:#161b22;--cfg-border:#30363d;
}
:root[data-palette="dark-black"]{
    --ui-primary:#60a5fa;--bg-primary:#000000;--bg-secondary:#0a0a0a;--bg-card:#121212;--bg-hover:#1c1c1c;
    --text-primary:#ededed;--text-secondary:#b3b3b3;--text-muted:#8a8a8a;--border:#2a2a2a;--border-light:#1f1f1f;
    --bg-modal:#0f0f0f;--bg-modal-header:rgba(255,255,255,.05);--bg-modal-footer:rgba(255,255,255,.03);--border-modal:#2a2a2a;
    --text-modal-header:#ededed;--text-modal-close:#8a8a8a;--scrollbar-thumb:rgba(255,255,255,.18);
    --cfg-surface:#000000;--cfg-card:#121212;--cfg-border:#2a2a2a;
}

html,
body{
    width:100%;
    height:100%;
    margin:0;
    background:var(--bg-primary);
    color:var(--text-primary);
    font-family:'Ubuntu IA',Ubuntu,'Segoe UI',Arial,sans-serif;
    font-size:var(--ia-font-body);
    font-weight:400;
}
body.ia-standalone{
    min-height:100dvh;
    overflow:hidden;
}
button,
input,
select,
textarea{
    font-family:inherit;
}

#iaApp{
    position:fixed;
    inset:0;
    display:flex;
    min-width:0;
    min-height:0;
    background:var(--bg-primary);
}
#iaApp>.chat-module{
    flex:1 1 auto;
    min-width:0;
    min-height:0;
}

.ia-account-menu{
    position:fixed;
    left:8px;
    bottom:64px;
    z-index:80;
    width:250px;
    padding:7px;
    border:1px solid var(--border-light,var(--border));
    border-radius:13px;
    background:var(--bg-card);
    box-shadow:0 14px 38px rgba(0,0,0,.22);
}
.ia-account-menu[hidden]{display:none!important}
.ia-account-menu a,
.ia-account-menu button{
    width:100%;
    min-height:42px;
    display:flex;
    align-items:center;
    gap:10px;
    padding:9px 10px;
    border:0;
    border-radius:9px;
    background:transparent;
    color:var(--text-primary);
    text-decoration:none;
    text-align:left;
    font:400 max(calc(13.5px * var(--ia-text-scale,1)),var(--ia-font-body,15px))/1.25 'Ubuntu IA',Ubuntu,sans-serif;
    cursor:pointer;
}
.ia-account-menu a:hover,
.ia-account-menu button:hover{background:var(--bg-hover)}
.ia-account-menu .icon{
    width:18px;
    height:18px;
    color:var(--text-muted);
}
.ia-account-menu-separator{
    height:1px;
    margin:5px 4px;
    background:var(--border-light,var(--border));
}
.ia-account-menu-danger:hover{color:#dc2626!important}

/* Configuración general de IA */
.ia-settings-body{
    display:grid;
    gap:24px;
    padding:4px 2px 8px;
}
.ia-settings-section{
    display:grid;
    gap:8px;
}
.ia-settings-section>strong{
    font:500 max(calc(14px * var(--ia-text-scale,1)),var(--ia-font-body,15px))/1.25 'Ubuntu IA',Ubuntu,sans-serif;
    color:var(--text-primary);
}
.ia-settings-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:22px;
    min-height:54px;
    padding:12px 0;
    border-bottom:1px solid var(--border-light,var(--border));
}
.ia-settings-row:last-child{border-bottom:0}
.ia-settings-copy{
    min-width:0;
    flex:1 1 auto;
}
.ia-settings-copy strong{
    display:block;
    font:500 max(calc(13.5px * var(--ia-text-scale,1)),var(--ia-font-body,15px))/1.3 'Ubuntu IA',Ubuntu,sans-serif;
    color:var(--text-primary);
}
.ia-settings-copy span{
    display:block;
    margin-top:4px;
    font:300 max(calc(12.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px))/1.45 'Ubuntu IA',Ubuntu,sans-serif;
    color:var(--text-muted);
}
.ia-settings-select{
    min-width:150px;
    height:38px;
    padding:0 34px 0 11px;
    border:1px solid var(--border);
    border-radius:9px;
    background:var(--bg-card);
    color:var(--text-primary);
    font:400 max(calc(13px * var(--ia-text-scale,1)),var(--ia-font-body,15px))/1 'Ubuntu IA',Ubuntu,sans-serif;
    outline:none;
}
.ia-settings-button{
    min-height:38px;
    padding:7px 12px;
    border:1px solid var(--border);
    border-radius:9px;
    background:var(--bg-card);
    color:var(--text-primary);
    font:400 max(calc(13px * var(--ia-text-scale,1)),var(--ia-font-body,15px))/1.2 'Ubuntu IA',Ubuntu,sans-serif;
    cursor:pointer;
}
.ia-settings-button:hover{background:var(--bg-hover)}
.ia-settings-button:disabled{
    opacity:.55;
    cursor:default;
}
.ia-settings-permission{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}
.ia-settings-state{
    font:400 max(calc(12px * var(--ia-text-scale,1)),var(--ia-font-small,13px))/1.2 'Ubuntu IA',Ubuntu,sans-serif;
    color:var(--text-muted);
}
.ia-settings-state.is-ok{color:#15803d}
.ia-settings-state.is-error{color:#dc2626}

.ia-switch{
    position:relative;
    flex:0 0 auto;
    width:42px;
    height:24px;
    cursor:pointer;
}
.ia-switch input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}
.ia-switch span{
    position:absolute;
    inset:0;
    border-radius:20px;
    background:var(--border);
    transition:background .15s ease;
}
.ia-switch span::after{
    content:'';
    position:absolute;
    top:3px;
    left:3px;
    width:18px;
    height:18px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 1px 3px rgba(0,0,0,.22);
    transition:transform .15s ease;
}
.ia-switch input:checked+span{background:var(--ui-primary)}
.ia-switch input:checked+span::after{transform:translateX(18px)}

/* En IA, las fichas winx usan una escala cómoda y coherente. */
body.ia-standalone .winx,
body.ia-standalone .winx button,
body.ia-standalone .winx input,
body.ia-standalone .winx select,
body.ia-standalone .winx textarea{
    font-family:'Ubuntu IA',Ubuntu,'Segoe UI',sans-serif;
}
body.ia-standalone .winx-header h3{
    font-size:calc(13px * var(--ia-text-scale,1));
    font-weight:500;
}
body.ia-standalone .winx-body{
    font-size:max(calc(14px * var(--ia-text-scale,1)),var(--ia-font-body,15px));
    line-height:1.5;
}

/* Configuración de Venus: pantalla completa, pero con márgenes y lectura cómoda. */
body.ia-standalone .chat-profile-settings-overlay{
    inset:0!important;
}
body.ia-standalone #chat-profile-settings-dialog{
    height:100dvh!important;
    min-height:100dvh!important;
    max-height:100dvh!important;
}
body.ia-standalone #chat-profile-settings-dialog .winx-header{
    min-height:60px;
    flex-basis:60px;
    padding:0 22px;
}
body.ia-standalone #chat-profile-settings-dialog .winx-header h3{
    font-size:calc(17px * var(--ia-text-scale,1));
    font-weight:500;
}
body.ia-standalone .chat-profile-header-actions .btn{
    min-height:36px;
    padding:7px 11px;
    font-size:max(calc(13.5px * var(--ia-text-scale,1)),var(--ia-font-body,15px));
}
body.ia-standalone .chat-profile-dialog-subtitle{
    width:min(calc(100% - 72px),1280px);
    padding:22px 0 10px;
    font-size:max(calc(12.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px));
}
body.ia-standalone .chat-profile-dialog-content{
    width:min(calc(100% - 72px),1280px);
    gap:20px 28px;
    padding:10px 0 42px;
}
body.ia-standalone .chat-profile-dialog-content .chat-profile-field>span{
    font-size:max(calc(14px * var(--ia-text-scale,1)),var(--ia-font-body,15px));
    font-weight:500;
}
body.ia-standalone .chat-profile-dialog-content .chat-profile-field>span small{
    font-size:max(calc(11px * var(--ia-text-scale,1)),var(--ia-font-small,13px));
}
body.ia-standalone .chat-profile-dialog-content .chat-profile-field input,
body.ia-standalone .chat-profile-dialog-content .chat-profile-field textarea{
    font:300 max(calc(15.5px * var(--ia-text-scale,1)),var(--ia-font-body,15px))/1.6 'Ubuntu IA',Ubuntu,sans-serif!important;
}
body.ia-standalone .chat-profile-dialog-content .chat-profile-field input{
    height:42px;
    padding:9px 11px!important;
}
body.ia-standalone .chat-profile-dialog-content .chat-profile-field textarea{
    padding:11px 12px!important;
}
body.ia-standalone .chat-profile-dialog-content .chat-profile-field em{
    font-size:max(calc(12.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px));
}
body.ia-standalone .chat-profile-dialog-content .chat-memory-setting{
    padding:14px 0;
}
body.ia-standalone .chat-profile-dialog-content .chat-memory-setting-copy strong{
    font-size:max(calc(15px * var(--ia-text-scale,1)),var(--ia-font-body,15px));
}
body.ia-standalone .chat-profile-dialog-content .chat-memory-setting-copy span{
    font-size:max(calc(13.5px * var(--ia-text-scale,1)),var(--ia-font-body,15px));
    line-height:1.5;
}
body.ia-standalone .chat-profile-dialog-content .chat-memory-privacy{
    padding:12px 13px;
}
body.ia-standalone .chat-profile-dialog-content .chat-memory-privacy p{
    font-size:max(calc(13px * var(--ia-text-scale,1)),var(--ia-font-body,15px));
    line-height:1.6;
}
body.ia-standalone #chat-profile-settings-dialog .chat-memory-editor-field textarea{
    font-family:'Ubuntu Mono IA','Ubuntu Mono',monospace!important;
    font-size:max(calc(14px * var(--ia-text-scale,1)),var(--ia-font-body,15px))!important;
}

/* Acción de recarga: solo existe visualmente dentro del menú móvil. */
[data-ia-refresh-app]{
    border-top:1px solid var(--border-light,var(--border))!important;
    margin-top:2px!important;
}

@media(max-width:900px){
    body.ia-standalone .chat-profile-dialog-content{
        width:min(calc(100% - 34px),760px);
        gap:16px;
    }
    body.ia-standalone .chat-profile-dialog-subtitle{
        width:min(calc(100% - 34px),760px);
    }
}

@media(max-width:760px){
    .ia-account-menu{
        left:8px;
        bottom:66px;
        width:min(280px,calc(100vw - 16px));
    }
    .ia-settings-row{
        align-items:flex-start;
        flex-direction:column;
        gap:10px;
    }
    .ia-settings-select{width:100%}
    .ia-settings-permission{width:100%}

    body.ia-standalone #chat-profile-settings-dialog .winx-header{
        min-height:56px;
        flex-basis:56px;
        padding:0 10px 0 14px;
    }
    body.ia-standalone #chat-profile-settings-dialog .winx-header h3{
        font-size:max(calc(15.5px * var(--ia-text-scale,1)),var(--ia-font-body,15px));
    }
    body.ia-standalone .chat-profile-dialog-subtitle{
        width:100%;
        padding:14px 16px 7px;
        font-size:max(calc(12px * var(--ia-text-scale,1)),var(--ia-font-small,13px));
    }
    body.ia-standalone .chat-profile-dialog-content{
        width:100%;
        padding:8px 16px calc(30px + env(safe-area-inset-bottom));
        gap:15px;
    }
    body.ia-standalone .chat-profile-dialog-content .chat-profile-field>span{
        font-size:max(calc(13.5px * var(--ia-text-scale,1)),var(--ia-font-body,15px));
    }
    body.ia-standalone .chat-profile-dialog-content .chat-profile-field input,
    body.ia-standalone .chat-profile-dialog-content .chat-profile-field textarea{
        font-size:calc(16px * var(--ia-text-scale,1))!important;
    }
    body.ia-standalone .chat-profile-dialog-content .chat-memory-setting-copy strong{
        font-size:max(calc(14px * var(--ia-text-scale,1)),var(--ia-font-body,15px));
    }
    body.ia-standalone .chat-profile-dialog-content .chat-memory-setting-copy span,
    body.ia-standalone .chat-profile-dialog-content .chat-memory-privacy p{
        font-size:max(calc(12.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px));
    }
}

/* =========================================================
   Tecko IA · móvil canónico
   Este bloque se carga DESPUÉS de modulo.css y manda sobre
   cualquier regla histórica del módulo compartido.
   ========================================================= */
@media(max-width:760px){
    body.ia-standalone #iaApp .chat-history{
        width:min(72vw,264px)!important;
        max-width:264px!important;
    }

    body.ia-standalone #iaApp .chat-history-backdrop{
        display:block;
        background:rgba(0,0,0,.50)!important;
        backdrop-filter:blur(1px);
    }
    body.ia-standalone #iaApp .chat-history-backdrop[hidden]{
        display:none!important;
    }

    body.ia-standalone #iaApp .chat-new-button{
        min-height:44px!important;
        font-size:max(calc(15.5px * var(--ia-text-scale,1)),var(--ia-font-body,15px))!important;
    }
    body.ia-standalone #iaApp .chat-history-head:not(.chat-library-entry){
        flex-basis:38px!important;
        font-size:max(calc(12px * var(--ia-text-scale,1)),var(--ia-font-small,13px))!important;
    }
    body.ia-standalone #iaApp .chat-history-item{
        min-height:44px!important;
        padding:6px 5px 6px 10px!important;
    }
    body.ia-standalone #iaApp .chat-history-title{
        font-size:max(calc(15.5px * var(--ia-text-scale,1)),var(--ia-font-body,15px))!important;
        line-height:1.28!important;
    }
    body.ia-standalone #iaApp .chat-history-engine{
        font-size:max(calc(9px * var(--ia-text-scale,1)),var(--ia-font-small,13px))!important;
    }
    body.ia-standalone #iaApp .chat-user-copy strong{
        font-size:max(calc(15px * var(--ia-text-scale,1)),var(--ia-font-body,15px))!important;
    }
    body.ia-standalone #iaApp .chat-user-copy small{
        font-size:max(calc(12.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px))!important;
    }

    body.ia-standalone #iaApp .chat-messages{
        padding-bottom:70px!important;
    }
    body.ia-standalone #iaApp .chat-composer-zone{
        width:100%!important;
        box-sizing:border-box!important;
        padding:5px 0 calc(5px + env(safe-area-inset-bottom))!important;
    }

    body.ia-standalone #iaApp .chat-composer,
    body.ia-standalone #iaApp .chat-module.engine-tecko .chat-composer{
        box-sizing:border-box!important;
        display:grid!important;
        width:calc(100% - 20px)!important;
        max-width:calc(100% - 20px)!important;
        min-height:52px!important;
        margin:0 10px!important;
        padding:5px 7px!important;
        grid-template-columns:36px 36px 36px minmax(0,1fr) 40px!important;
        grid-template-rows:minmax(40px,auto)!important;
        grid-template-areas:"attach engine web input send"!important;
        align-items:center!important;
        column-gap:1px!important;
        row-gap:0!important;
        border-radius:26px!important;
    }

    body.ia-standalone #iaApp #btnChatAttach{
        grid-area:attach!important;
        display:grid!important;
        visibility:visible!important;
        opacity:1!important;
        width:36px!important;
        height:36px!important;
    }
    body.ia-standalone #iaApp .chat-engine-compact{
        grid-area:engine!important;
        display:flex!important;
        visibility:visible!important;
        opacity:1!important;
        width:36px!important;
        height:36px!important;
        align-items:center!important;
        justify-content:center!important;
    }
    body.ia-standalone #iaApp #btnChatWeb{
        grid-area:web!important;
        display:grid!important;
        visibility:visible!important;
        opacity:1!important;
        width:36px!important;
        height:36px!important;
    }

    body.ia-standalone #iaApp #btnChatAttach .icon,
    body.ia-standalone #iaApp #btnChatWeb .icon,
    body.ia-standalone #iaApp .chat-engine-compact .icon{
        display:block!important;
        visibility:visible!important;
        opacity:1!important;
        width:19px!important;
        height:19px!important;
    }

    body.ia-standalone #iaApp #chatInput{
        grid-area:input!important;
        width:100%!important;
        min-width:0!important;
        min-height:40px!important;
        max-height:116px!important;
        margin:0!important;
        padding:7px 5px!important;
        align-self:center!important;
        font-size:calc(16px * var(--ia-text-scale,1))!important;
        line-height:1.42!important;
    }

    body.ia-standalone #iaApp #btnChatSend{
        grid-area:send!important;
        display:grid!important;
        width:40px!important;
        height:40px!important;
    }

    /* Las imágenes adjuntas no alteran filas, áreas ni altura del compositor. */
}

/* =========================================================
   Tecko IA móvil · compositor estilo ChatGPT
   Texto arriba, controles abajo, expansión y aside afinado.
   ========================================================= */
@media(max-width:760px){
    body.ia-standalone #iaApp .chat-history{
        width:min(80vw,286px)!important;
        max-width:286px!important;
    }

    body.ia-standalone #iaApp .chat-history-swipe-edge{
        position:absolute;
        left:0;
        top:58px;
        bottom:0;
        width:20px;
        z-index:18;
        display:block;
        touch-action:pan-y;
        background:transparent;
    }
    body.ia-standalone #iaApp .chat-module.history-open .chat-history-swipe-edge{
        pointer-events:none;
    }

    body.ia-standalone #iaApp .chat-composer,
    body.ia-standalone #iaApp .chat-module.engine-tecko .chat-composer{
        box-sizing:border-box!important;
        display:grid!important;
        width:calc(100% - 20px)!important;
        max-width:calc(100% - 20px)!important;
        min-height:90px!important;
        margin:0 10px!important;
        padding:8px 10px!important;
        grid-template-columns:40px 40px 40px 40px minmax(0,1fr) 44px!important;
        grid-template-rows:minmax(30px,auto) 40px!important;
        grid-template-areas:
            "input input input input input input"
            "attach engine web expand . send"!important;
        align-items:center!important;
        column-gap:8px!important;
        row-gap:6px!important;
        border-radius:27px!important;
    }

    body.ia-standalone #iaApp #chatInput{
        grid-area:input!important;
        width:100%!important;
        min-width:0!important;
        min-height:30px!important;
        max-height:126px!important;
        margin:0!important;
        padding:3px 4px 1px!important;
        align-self:stretch!important;
        font-size:calc(17px * var(--ia-text-scale,1))!important;
        line-height:1.38!important;
        overflow-y:hidden;
        resize:none!important;
    }

    body.ia-standalone #iaApp #btnChatAttach{
        grid-area:attach!important;
    }
    body.ia-standalone #iaApp .chat-engine-compact{
        grid-area:engine!important;
    }
    body.ia-standalone #iaApp #btnChatWeb{
        grid-area:web!important;
    }
    body.ia-standalone #iaApp #btnChatExpand{
        grid-area:expand!important;
        display:grid!important;
        visibility:visible!important;
        opacity:1!important;
    }
    body.ia-standalone #iaApp #btnChatSend{
        grid-area:send!important;
    }

    body.ia-standalone #iaApp #btnChatAttach,
    body.ia-standalone #iaApp .chat-engine-compact,
    body.ia-standalone #iaApp #btnChatWeb,
    body.ia-standalone #iaApp #btnChatExpand{
        width:40px!important;
        height:40px!important;
        min-width:40px!important;
        min-height:40px!important;
    }

    body.ia-standalone #iaApp #btnChatAttach .icon,
    body.ia-standalone #iaApp .chat-engine-compact .icon,
    body.ia-standalone #iaApp #btnChatWeb .icon,
    body.ia-standalone #iaApp #btnChatExpand .icon{
        width:20px!important;
        height:20px!important;
    }

    body.ia-standalone #iaApp #btnChatSend{
        width:44px!important;
        height:44px!important;
        min-width:44px!important;
        min-height:44px!important;
    }

    body.ia-standalone #iaApp .chat-composer.is-expanded,
    body.ia-standalone #iaApp .chat-module.engine-tecko .chat-composer.is-expanded{
        height:min(44dvh,340px)!important;
        max-height:min(44dvh,340px)!important;
        grid-template-rows:minmax(0,1fr) 40px!important;
    }
    body.ia-standalone #iaApp .chat-composer.is-expanded #chatInput{
        height:100%!important;
        max-height:none!important;
        overflow-y:auto!important;
    }

    /* Adjuntar imágenes conserva exactamente el grid normal y el grid expandido. */
}


/* Tecko IA móvil · aside con arrastre directo y contexto compacto. */
@media(max-width:760px){
    body.ia-standalone #iaApp .chat-history{
        will-change:transform;
        transition:transform .20s cubic-bezier(.2,.72,.2,1)!important;
    }
    body.ia-standalone #iaApp .chat-history-backdrop{
        opacity:1;
        transition:opacity .20s ease!important;
    }
    body.ia-standalone #iaApp .chat-history-swipe-edge{
        top:52px!important;
        bottom:0!important;
        width:18px!important;
        z-index:24!important;
        touch-action:pan-y!important;
    }

    /* La lista plegada conserva display:none; no forzar su apertura en móvil. */
    body.ia-standalone #iaApp .chat-history:not(.recents-collapsed) .chat-history-list{
        display:block!important;
        padding:2px 8px 6px!important;
    }
    body.ia-standalone #iaApp .chat-history-item{
        min-height:39px!important;
        margin:0!important;
        padding:4px 5px 4px 10px!important;
        border-radius:9px!important;
    }
    body.ia-standalone #iaApp .chat-history-title{
        font-size:max(calc(15px * var(--ia-text-scale,1)),var(--ia-font-body,15px))!important;
        line-height:1.2!important;
    }
    body.ia-standalone #iaApp .chat-history-copy{
        gap:7px!important;
    }
    body.ia-standalone #iaApp .chat-history-head:not(.chat-library-entry){
        flex-basis:34px!important;
        padding:0 12px!important;
    }

    /* Barras de lectura, escritura y contexto: estilo en modulo.css (.chat-meter). */
    body.ia-standalone #iaApp .chat-sidebar-context{
        padding:7px 10px!important;
        border-top:1px solid var(--border-light,var(--border))!important;
    }
}


/* Tecko IA: respuestas sin avatar y código a ancho útil completo. */
body.ia-standalone #iaApp .chat-message.is-assistant{
    gap:0!important;
}
body.ia-standalone #iaApp .chat-message.is-assistant>.chat-assistant-avatar{
    display:none!important;
}
body.ia-standalone #iaApp .chat-message.is-assistant .chat-message-body{
    width:100%!important;
    max-width:100%!important;
    flex:1 1 100%!important;
}
body.ia-standalone #iaApp .chat-message.is-assistant .chat-message-content,
body.ia-standalone #iaApp .chat-message.is-assistant .chat-code-block,
body.ia-standalone #iaApp .chat-message.is-assistant pre{
    width:100%!important;
    max-width:100%!important;
    box-sizing:border-box!important;
}

@media(max-width:760px){
    /* Solo el hilo del chat gana un poco de aire lateral; compositor y controles no se mueven. */
    body.ia-standalone #iaApp .chat-messages{
        padding-left:10px!important;
        padding-right:10px!important;
        /* Arriba flotan el menú (8–48 px) y, debajo a la derecha, el botón de la biblioteca (58–92 px): el primer
           mensaje empieza por debajo de ambos para que no lo tapen. Al subir con el scroll ya da igual. */
        padding-top:104px!important;
    }
    body.ia-standalone #iaApp .chat-thread-inner{
        width:100%!important;
        max-width:none!important;
    }
    body.ia-standalone #iaApp .chat-message.is-assistant{
        width:100%!important;
        margin-left:0!important;
        margin-right:0!important;
    }
    body.ia-standalone #iaApp .chat-message.is-assistant .chat-message-body{
        min-width:0!important;
        width:100%!important;
        max-width:none!important;
    }
    body.ia-standalone #iaApp .chat-code-block{
        margin-left:0!important;
        margin-right:0!important;
        border-radius:12px!important;
    }
}


/* Marca de agua del modelo: decorativa, no consume ancho de conversación. */
body.ia-standalone #iaApp .chat-main{
    position:relative;
}
body.ia-standalone #iaApp .chat-main::before{
    content:'';
    position:absolute;
    left:50%;
    top:48%;
    width:min(34vw,210px);
    aspect-ratio:1;
    transform:translate(-50%,-50%);
    background-position:center;
    background-repeat:no-repeat;
    background-size:contain;
    opacity:.022;
    filter:blur(1.2px);
    pointer-events:none;
    z-index:0;
}
body.ia-standalone #iaApp .chat-module.engine-tecko .chat-main::before{
    background-image:url('/assets/pwa/tecko-512.png');
}
body.ia-standalone #iaApp .chat-module:not(.engine-tecko) .chat-main::before{
    background-image:url('/lucide-static/icons/globe.svg');
}
body.ia-standalone #iaApp .chat-main>*{
    position:relative;
    z-index:1;
}
[data-theme='dark'] body.ia-standalone #iaApp .chat-main::before{
    filter:invert(1) blur(1.2px);
    opacity:.018;
}
@media(max-width:760px){
    body.ia-standalone #iaApp .chat-main::before{
        width:180px;
        top:46%;
        opacity:.018;
    }
}


/* Tecko IA móvil · historial compacto real y gesto global. */
@media(max-width:760px){
    body.ia-standalone #iaApp .chat-history-item{
        box-sizing:border-box!important;
        height:38px!important;
        min-height:38px!important;
        max-height:38px!important;
        margin:0!important;
        padding:0 5px 0 10px!important;
        align-items:center!important;
    }
    body.ia-standalone #iaApp .chat-history-list{
        padding-top:1px!important;
        padding-bottom:4px!important;
    }
    body.ia-standalone #iaApp .chat-history-title{
        line-height:1.08!important;
    }
    body.ia-standalone #iaApp .chat-history-swipe-edge{
        display:none!important;
    }
}


/* Tecko IA móvil · acciones del historial solo en menú superior. */
@media(max-width:760px){
    body.ia-standalone #iaApp .chat-history-actions{
        display:none!important;
    }
    body.ia-standalone #iaApp .chat-history-item{
        grid-template-columns:minmax(0,1fr)!important;
    }

    body.ia-standalone #iaApp .chat-mobile-more-menu{
        /* Anclado a la cabecera; nunca ocupa una fila del chat. */
        top:56px;
        right:10px;
        width:min(calc(280px * var(--ia-text-scale)),calc(100vw - 24px));
        min-width:0!important;
        max-height:calc(100dvh - 68px - env(safe-area-inset-bottom));
        padding:4px!important;
        overflow-y:auto;
        overscroll-behavior:contain;
        border-radius:14px!important;
    }
    body.ia-standalone #iaApp .chat-mobile-more-menu button,
    body.ia-standalone #iaApp .chat-mobile-more-menu a{
        box-sizing:border-box!important;
        min-height:42px!important;
        gap:9px!important;
        padding:8px 10px!important;
        border-radius:9px!important;
        font-size:max(calc(15.5px * var(--ia-text-scale,1)),var(--ia-font-body,15px))!important;
        line-height:1.2!important;
        font-weight:400!important;
    }
    body.ia-standalone #iaApp .chat-mobile-more-menu button .icon,
    body.ia-standalone #iaApp .chat-mobile-more-menu a .icon{
        width:19px!important;
        height:19px!important;
        flex-basis:19px!important;
    }

    body.ia-standalone #iaApp .chat-main::before{
        width:260px!important;
        top:45%!important;
        opacity:.028!important;
        filter:grayscale(1) blur(1.6px)!important;
    }
}

.chat-rename-dialog-body{
    display:grid;
    gap:8px;
}
.chat-rename-dialog-body label{
    display:grid;
    gap:7px;
}
.chat-rename-dialog-body label>span{
    font-size:max(calc(13px * var(--ia-text-scale,1)),var(--ia-font-body,15px));
    color:var(--text-secondary);
}
.chat-rename-dialog-body input{
    width:100%;
    min-height:42px;
    box-sizing:border-box;
    padding:9px 11px;
    border:1px solid var(--border);
    border-radius:9px;
    outline:none;
    background:var(--bg-primary);
    color:var(--text-primary);
    font-size:max(calc(15px * var(--ia-text-scale,1)),var(--ia-font-body,15px));
}
.chat-rename-dialog-actions{
    display:flex;
    justify-content:flex-end;
    gap:8px;
}


/* =========================================================
   Tecko IA · sistema de diálogos móvil
   En IA los winx son ventanas con margen; no pantallas completas.
   ========================================================= */
@media(max-width:768px){
    body.ia-standalone .winx-overlay,
    body.ia-admin-page .winx-overlay{
        inset:0!important;
        display:flex!important;
        align-items:center!important;
        justify-content:center!important;
        padding:14px!important;
        box-sizing:border-box!important;
        overflow:hidden!important;
    }

    body.ia-standalone .winx.winx-dialog,
    body.ia-admin-page .winx.winx-dialog,
    body.ia-standalone .winx.winx-dialog.winx-app-form,
    body.ia-admin-page .winx.winx-dialog.winx-app-form{
        position:relative!important;
        inset:auto!important;
        width:min(100%,560px)!important;
        min-width:0!important;
        max-width:560px!important;
        height:auto!important;
        min-height:0!important;
        max-height:calc(100dvh - 28px)!important;
        margin:0!important;
        transform:none!important;
        border:1px solid var(--border-modal)!important;
        border-radius:16px!important;
        box-shadow:0 18px 50px rgba(0,0,0,.24)!important;
        overflow:hidden!important;
    }

    body.ia-standalone .winx.winx-sm,
    body.ia-admin-page .winx.winx-sm{
        width:min(100%,430px)!important;
        max-width:430px!important;
    }
    body.ia-standalone .winx.winx-md,
    body.ia-admin-page .winx.winx-md{
        width:min(100%,560px)!important;
        max-width:560px!important;
    }
    body.ia-standalone .winx.winx-lg,
    body.ia-admin-page .winx.winx-lg,
    body.ia-standalone .winx.winx-xl,
    body.ia-admin-page .winx.winx-xl{
        width:min(100%,680px)!important;
        max-width:680px!important;
    }

    body.ia-standalone .winx.winx-dialog .winx-header,
    body.ia-admin-page .winx.winx-dialog .winx-header{
        min-height:0!important;
        flex:0 0 auto!important;
        padding:6px 8px 6px 12px!important;
        border-bottom:1px solid var(--border-modal)!important;
        border-radius:0!important;
    }
    body.ia-standalone .winx.winx-dialog .winx-header h3,
    body.ia-admin-page .winx.winx-dialog .winx-header h3{
        font-size:calc(13px * var(--ia-text-scale,1))!important;
        line-height:1.25!important;
        font-weight:500!important;
    }

    body.ia-standalone .winx.winx-dialog .winx-body,
    body.ia-admin-page .winx.winx-dialog .winx-body{
        flex:0 1 auto!important;
        min-height:0!important;
        overflow-y:auto!important;
        overflow-x:hidden!important;
        padding:18px!important;
    }

    body.ia-standalone .winx.winx-dialog .winx-footer,
    body.ia-admin-page .winx.winx-dialog .winx-footer{
        flex:0 0 auto!important;
        min-height:0!important;
        padding:12px 16px!important;
        border-top:1px solid var(--border-modal)!important;
        border-radius:0!important;
        background:var(--bg-modal-footer)!important;
    }

    body.ia-standalone .winx.winx-dialog .winx-close,
    body.ia-admin-page .winx.winx-dialog .winx-close{
        width:30px!important;
        height:30px!important;
    }

    /* Pantallas de configuración: pantalla completa, contenido con márgenes reales. */
    body.ia-standalone #ia-settings-dialog,
    body.ia-standalone #chat-profile-settings-dialog{
        position:fixed!important;
        inset:0!important;
        width:100vw!important;
        min-width:100vw!important;
        max-width:none!important;
        height:100dvh!important;
        min-height:100dvh!important;
        max-height:100dvh!important;
        margin:0!important;
        border:0!important;
        border-radius:0!important;
        box-shadow:none!important;
        transform:none!important;
    }

    body.ia-standalone #ia-settings-dialog .winx-header,
    body.ia-standalone #chat-profile-settings-dialog .winx-header{
        min-height:58px!important;
        flex:0 0 auto!important;
        padding:0 16px!important;
        border-bottom:1px solid var(--border-modal)!important;
    }

    body.ia-standalone #ia-settings-dialog .winx-body,
    body.ia-standalone #chat-profile-settings-dialog .winx-body{
        flex:1 1 auto!important;
        min-height:0!important;
        overflow-y:auto!important;
        overflow-x:hidden!important;
    }

    body.ia-standalone #ia-settings-dialog .winx-body{
        padding:20px 18px calc(28px + env(safe-area-inset-bottom))!important;
    }
    body.ia-standalone #ia-settings-dialog .ia-settings-body{
        width:100%!important;
        max-width:none!important;
        box-sizing:border-box!important;
        gap:22px!important;
        padding:0!important;
    }
    body.ia-standalone #ia-settings-dialog .ia-settings-section{
        gap:7px!important;
    }
    body.ia-standalone #ia-settings-dialog .ia-settings-row{
        padding:13px 0!important;
    }

    body.ia-standalone .chat-profile-settings-overlay{
        inset:0!important;
        padding:0!important;
        align-items:stretch!important;
        justify-content:stretch!important;
    }
    body.ia-standalone #chat-profile-settings-dialog .winx-body{
        padding:0!important;
    }
    body.ia-standalone .chat-profile-dialog-subtitle{
        width:100%!important;
        box-sizing:border-box!important;
        padding:18px 18px 8px!important;
    }
    body.ia-standalone .chat-profile-dialog-content{
        width:100%!important;
        box-sizing:border-box!important;
        padding:8px 18px calc(28px + env(safe-area-inset-bottom))!important;
    }

    /* Renombrar: ventana compacta, no ocupa altura sobrante. */
    body.ia-standalone #chat-rename-dialog{
        width:min(100%,430px)!important;
        max-width:430px!important;
    }
    body.ia-standalone #chat-rename-dialog .winx-body{
        padding:18px!important;
    }
}

/* Menús desplegables de IA: mismos márgenes y escala visual. */
@media(max-width:760px){
    body.ia-standalone .ia-account-menu,
    body.ia-standalone #iaApp .chat-mobile-more-menu,
    body.ia-admin-page .ia-admin-mobile-menu{
        box-sizing:border-box!important;
        max-width:calc(100vw - 24px)!important;
        border-radius:14px!important;
        box-shadow:0 14px 38px rgba(0,0,0,.20)!important;
    }
    body.ia-standalone .ia-account-menu a,
    body.ia-standalone .ia-account-menu button,
    body.ia-admin-page .ia-admin-mobile-menu a,
    body.ia-admin-page .ia-admin-mobile-menu button{
        min-height:44px!important;
        font-size:max(calc(15px * var(--ia-text-scale,1)),var(--ia-font-body,15px))!important;
        padding:10px 12px!important;
    }
}


@media(max-width:768px){
    body.ia-standalone .winx-overlay:has(#ia-settings-dialog),
    body.ia-standalone .winx-overlay:has(#chat-profile-settings-dialog){
        inset:0!important;
        padding:0!important;
        align-items:stretch!important;
        justify-content:stretch!important;
    }
}


/* Tecko IA móvil · scroll de conversación prioritario sobre gestos laterales. */
@media(max-width:760px){
    body.ia-standalone #iaApp #chatMessages{
        overflow-y:scroll!important;
        overflow-x:hidden!important;
        -webkit-overflow-scrolling:touch;
        touch-action:pan-y pinch-zoom!important;
        overscroll-behavior-y:contain!important;
        overscroll-behavior-x:none!important;
    }
    body.ia-standalone #iaApp #chatMessages .chat-thread-inner{
        touch-action:pan-y pinch-zoom!important;
    }
}


/* Tecko IA móvil · navegación táctil nativa.
   El scroll vertical lo gestiona el navegador; el aside usa Pointer Events. */
@media(max-width:760px){
    body.ia-standalone #iaApp .chat-module,
    body.ia-standalone #iaApp .chat-shell,
    body.ia-standalone #iaApp .chat-conversation,
    body.ia-standalone #iaApp #chatMessages,
    body.ia-standalone #iaApp #chatMessages .chat-thread-inner{
        touch-action:pan-y!important;
    }
    body.ia-standalone #iaApp #chatMessages{
        position:relative!important;
        min-height:0!important;
        overflow-y:auto!important;
        overflow-x:hidden!important;
        -webkit-overflow-scrolling:touch!important;
        overscroll-behavior-y:auto!important;
        pointer-events:auto!important;
    }
}

/* PC_PATCH_MARK */
.chat-sidebar-top-row{display:flex;align-items:center;gap:4px}
.chat-sidebar-top-actions{display:none;align-items:center;gap:2px;flex:0 0 auto}
.chat-sidebar-icon-button,.chat-sidebar-open-button{width:34px;height:34px;padding:0;border:0;border-radius:9px;display:grid;place-items:center;background:transparent;color:var(--text-secondary);cursor:pointer}
.chat-sidebar-icon-button:hover,.chat-sidebar-open-button:hover{background:var(--bg-hover);color:var(--text-primary)}
.chat-sidebar-icon-button .icon,.chat-sidebar-open-button .icon{width:18px;height:18px}
.chat-sidebar-search{margin:5px 1px 1px;min-height:36px;display:flex;align-items:center;gap:7px;padding:0 8px;border:1px solid var(--border-light,var(--border));border-radius:9px;background:var(--bg-card)}
.chat-sidebar-search[hidden]{display:none!important}
.chat-sidebar-search>.icon{width:16px;height:16px;flex:0 0 16px;color:var(--text-muted)}
.chat-sidebar-search input{min-width:0;flex:1 1 auto;height:34px;padding:0;border:0;outline:0;background:transparent;color:var(--text-primary);font-size:max(calc(13px * var(--ia-text-scale,1)),var(--ia-font-body,15px))}
.chat-sidebar-search button{width:26px;height:26px;padding:0;border:0;border-radius:7px;display:grid;place-items:center;background:transparent;color:var(--text-muted);cursor:pointer}
.chat-sidebar-search button:hover{background:var(--bg-hover);color:var(--text-primary)}
.chat-sidebar-search button .icon{width:15px;height:15px}
.chat-sidebar-open-button{display:none;position:absolute;top:12px;left:12px;z-index:30;background:var(--bg-card);box-shadow:0 1px 5px rgba(0,0,0,.08)}
.chat-history-engine.is-tecko{background:transparent;color:#2563eb}
.chat-history-engine.is-venus{background:transparent;color:#15803d}
[data-theme='dark'] .chat-history-engine.is-tecko{color:#93c5fd;background:transparent}
[data-theme='dark'] .chat-history-engine.is-venus{color:#86efac;background:transparent}
@media(min-width:761px){
body.ia-standalone #iaApp .chat-shell{height:100dvh!important;min-height:100dvh!important;grid-template-columns:var(--chat-sidebar-width,258px) minmax(0,1fr)!important;transition:grid-template-columns .18s ease}
body.ia-standalone #iaApp .chat-history{height:100dvh!important;min-height:100dvh!important;max-height:100dvh!important;transition:opacity .14s ease,border-color .14s ease}
body.ia-standalone #iaApp .chat-module.sidebar-collapsed .chat-shell{grid-template-columns:0 minmax(0,1fr)!important}
body.ia-standalone #iaApp .chat-module.sidebar-collapsed .chat-history{opacity:0;pointer-events:none;border-right-color:transparent!important}
body.ia-standalone #iaApp .chat-module.sidebar-collapsed .chat-sidebar-open-button{display:grid}
body.ia-standalone #iaApp .chat-sidebar-top{padding:8px 7px 5px!important}
body.ia-standalone #iaApp .chat-sidebar-top-row{min-height:38px}
body.ia-standalone #iaApp .chat-sidebar-top-actions{display:flex}
body.ia-standalone #iaApp .chat-new-button{width:auto!important;min-width:0;flex:1 1 auto;min-height:36px!important;padding:6px 7px!important;gap:8px!important}
body.ia-standalone #iaApp .chat-history-head:not(.chat-library-entry){height:28px!important;min-height:28px!important;flex-basis:28px!important;padding:0 10px!important}
body.ia-standalone #iaApp .chat-history-list{padding:1px 7px 4px!important}
body.ia-standalone #iaApp .chat-history-item{box-sizing:border-box!important;height:36px!important;min-height:36px!important;max-height:36px!important;margin:0!important;padding:0 5px 0 9px!important;gap:3px!important}
body.ia-standalone #iaApp .chat-history-title{font-size:max(calc(12.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px))!important;line-height:1.1!important}
body.ia-standalone #iaApp .chat-history-copy{gap:5px!important}
body.ia-standalone #iaApp .chat-history-engine{width:14px!important;height:14px!important;flex-basis:14px!important;padding:0!important;font-size:0!important}
body.ia-standalone #iaApp .chat-sidebar-context{position:relative!important;flex:0 0 auto!important;padding:8px 10px!important;border-top:1px solid var(--border-light,var(--border))!important}
body.ia-standalone #iaApp .chat-composer{width:min(100%,860px)!important;display:grid!important;grid-template-columns:36px 36px 36px 36px minmax(0,1fr) 38px!important;align-items:end!important;column-gap:3px!important;row-gap:5px!important;padding:8px 9px!important}
body.ia-standalone #iaApp .chat-pending-images{grid-column:1/-1!important}
body.ia-standalone #iaApp .chat-attach{grid-column:1!important}
body.ia-standalone #iaApp .chat-engine-compact{grid-column:2!important}
body.ia-standalone #iaApp .chat-web-toggle{grid-column:3!important}
body.ia-standalone #iaApp .chat-expand-toggle{grid-column:4!important}
body.ia-standalone #iaApp .chat-composer textarea{grid-column:5!important;min-width:0!important;width:100%!important;min-height:34px!important;max-height:150px!important;padding:7px 6px!important;line-height:1.42!important}
body.ia-standalone #iaApp .chat-send{grid-column:6!important}
/* En escritorio las imágenes tampoco cambian la geometría del compositor. */
body.ia-standalone #iaApp .chat-composer-hint{width:min(100%,860px)!important}
}
@media(max-width:760px){
body.ia-standalone #iaApp .chat-sidebar-top-actions,
body.ia-standalone #iaApp .chat-sidebar-search,
body.ia-standalone #iaApp .chat-sidebar-open-button{display:none!important}
}

.ia-sensitive-dialog{display:grid;gap:14px}
.ia-sensitive-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}

/* =========================================================
   Tecko IA · fullscreen de configuración y ergonomía PC
   ========================================================= */
body.ia-standalone .winx-overlay:has(#ia-settings-dialog),
body.ia-standalone .winx-overlay:has(#chat-profile-settings-dialog){
    inset:0!important;
    padding:0!important;
    align-items:stretch!important;
    justify-content:stretch!important;
}
body.ia-standalone #ia-settings-dialog,
body.ia-standalone #chat-profile-settings-dialog{
    position:fixed!important;
    inset:0!important;
    width:100vw!important;
    min-width:100vw!important;
    max-width:none!important;
    height:100dvh!important;
    min-height:100dvh!important;
    max-height:100dvh!important;
    margin:0!important;
    transform:none!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
}
body.ia-standalone #ia-settings-dialog .winx-header,
body.ia-standalone #chat-profile-settings-dialog .winx-header{
    min-height:58px!important;
    flex:0 0 auto!important;
    padding:0 24px!important;
}
body.ia-standalone #ia-settings-dialog .ia-settings-body{
    width:100%!important;
    max-width:none!important;
    box-sizing:border-box!important;
}
body.ia-standalone #ia-settings-dialog .winx-body,
body.ia-standalone #chat-profile-settings-dialog .winx-body{
    display:flex!important;
    flex-direction:column!important;
    flex:1 1 auto!important;
    min-height:0!important;
    overflow:hidden!important;
    padding:0!important;
}
body.ia-standalone #chat-profile-settings-dialog .chat-profile-dialog-subtitle{
    width:100%!important;
    max-width:none!important;
    flex:0 0 auto!important;
    box-sizing:border-box!important;
    padding:14px 24px 8px!important;
}
body.ia-standalone #chat-profile-settings-dialog .chat-profile-dialog-content{
    width:100%!important;
    max-width:none!important;
    flex:1 1 auto!important;
    min-height:0!important;
    box-sizing:border-box!important;
    margin:0!important;
    padding:8px 24px 24px!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    grid-template-rows:auto auto minmax(0,1fr)!important;
    gap:16px 24px!important;
    align-items:stretch!important;
}
body.ia-standalone #chat-profile-settings-dialog .chat-profile-context-field,
body.ia-standalone #chat-profile-settings-dialog .chat-memory-editor-field{
    min-height:0!important;
    display:grid!important;
    grid-template-rows:auto minmax(0,1fr) auto!important;
}
body.ia-standalone #chat-profile-settings-dialog .chat-profile-context-field textarea,
body.ia-standalone #chat-profile-settings-dialog .chat-memory-editor-field textarea{
    width:100%!important;
    height:100%!important;
    min-height:240px!important;
    max-height:none!important;
    resize:none!important;
}
body.ia-standalone #chat-profile-settings-dialog .chat-profile-header-actions{
    flex-wrap:wrap!important;
    justify-content:flex-end!important;
    gap:6px!important;
}
@media(min-width:761px){
    body.ia-standalone #iaApp .chat-composer{
        align-items:center!important;
    }
    body.ia-standalone #iaApp .chat-composer textarea{
        align-self:center!important;
        padding:6px 6px!important;
        line-height:22px!important;
    }
}
@media(max-width:760px){
    body.ia-standalone #iaApp .chat-sidebar-top-actions{
        display:flex!important;
    }
    body.ia-standalone #iaApp .chat-sidebar-search:not([hidden]){
        display:flex!important;
    }
    body.ia-standalone #iaApp .chat-sidebar-open-button{
        display:none!important;
    }
    body.ia-standalone #iaApp .chat-new-button{
        width:auto!important;
        min-width:0!important;
        flex:1 1 auto!important;
    }
    body.ia-standalone #iaApp .chat-sidebar-icon-button{
        width:36px!important;
        height:36px!important;
        flex:0 0 36px!important;
    }
}

/* Tecko IA · alineación precisa del compositor y controles del aside */
.chat-sidebar-top-actions{display:flex!important}
.chat-sidebar-icon-button{
    color:var(--text-primary)!important;
    background:color-mix(in srgb,var(--text-primary) 4%,transparent)!important;
    border:1px solid transparent!important;
}
.chat-sidebar-icon-button:hover{
    background:color-mix(in srgb,var(--text-primary) 8%,transparent)!important;
    border-color:color-mix(in srgb,var(--text-primary) 8%,transparent)!important;
}
.chat-sidebar-icon-button .icon{width:19px!important;height:19px!important}

@media(min-width:761px){
    body.ia-standalone #iaApp .chat-sidebar-top-row{
        display:grid!important;
        grid-template-columns:minmax(0,1fr) auto!important;
        align-items:center!important;
        gap:4px!important;
    }
    body.ia-standalone #iaApp .chat-sidebar-top-actions{
        display:flex!important;
        align-items:center!important;
        gap:2px!important;
    }
    body.ia-standalone #iaApp .chat-composer{
        min-height:54px!important;
        box-sizing:border-box!important;
        align-items:center!important;
        padding:8px 9px!important;
    }
    body.ia-standalone #iaApp .chat-composer-tool,
    body.ia-standalone #iaApp .chat-engine-compact,
    body.ia-standalone #iaApp .chat-send{
        box-sizing:border-box!important;
        width:36px!important;
        height:36px!important;
        min-width:36px!important;
        min-height:36px!important;
        align-self:center!important;
        margin:0!important;
    }
    body.ia-standalone #iaApp .chat-composer textarea{
        box-sizing:border-box!important;
        min-height:36px!important;
        max-height:150px!important;
        margin:0!important;
        padding:7px 8px!important;
        line-height:22px!important;
        align-self:center!important;
        overflow-y:hidden;
    }
    body.ia-standalone #iaApp .chat-composer.is-multiline{
        align-items:end!important;
    }
    body.ia-standalone #iaApp .chat-composer.is-multiline .chat-composer-tool,
    body.ia-standalone #iaApp .chat-composer.is-multiline .chat-engine-compact,
    body.ia-standalone #iaApp .chat-composer.is-multiline .chat-send{
        align-self:end!important;
    }
    body.ia-standalone #iaApp .chat-composer.is-multiline textarea{
        align-self:end!important;
    }
}

/* =========================================================
   Tecko IA · lenguaje visual MyTecko 27
   ========================================================= */
body.ia-standalone .module-tabs,
body.ia-admin-page .module-tabs{
    display:flex;
    align-items:center;
    gap:0;
    flex:0 0 auto;
    overflow-x:auto;
    scrollbar-width:none;
    border-bottom:1px solid var(--border);
    background:transparent;
    padding:0 12px;
    scroll-padding-inline:12px;
}
body.ia-standalone .module-tabs::-webkit-scrollbar,
body.ia-admin-page .module-tabs::-webkit-scrollbar{display:none}
body.ia-standalone .module-tab,
body.ia-admin-page .module-tab{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-height:42px;
    padding:0 14px;
    border:0;
    border-bottom:2px solid transparent;
    border-radius:0;
    background:transparent;
    color:var(--text-secondary);
    font:400 max(calc(13px * var(--ia-text-scale,1)),var(--ia-font-body,15px))/1.2 'Ubuntu IA',Ubuntu,sans-serif;
    cursor:pointer;
    white-space:nowrap;
}
body.ia-standalone .module-tab:hover,
body.ia-admin-page .module-tab:hover{color:var(--text-primary);background:transparent}
body.ia-standalone .module-tab.active,
body.ia-admin-page .module-tab.active{color:var(--text-primary);background:transparent;border-bottom-color:var(--ui-primary);font-size:max(calc(13px * var(--ia-text-scale,1)),var(--ia-font-body,15px));font-weight:400}
body.ia-standalone .module-tab .icon,
body.ia-admin-page .module-tab .icon{width:15px;height:15px}

/* Configuración se ve igual que Configuración de IA: fondo de página, cabecera y título con icono. */
body.ia-standalone #ia-settings-dialog,
body.ia-standalone #ia-settings-dialog .winx-body,
body.ia-standalone #ia-settings-dialog .ia-general-config,
body.ia-standalone #ia-settings-dialog .ia-config-hero,
body.ia-standalone #ia-settings-dialog .ia-config-scroll{background:var(--bg-primary)!important}
body.ia-standalone #ia-settings-dialog .winx-header{background:var(--bg-primary)!important;border-bottom:1px solid var(--border)!important;cursor:default}
body.ia-standalone #ia-settings-dialog .winx-header h3,
body.ia-standalone #chat-profile-settings-dialog .winx-header h3{display:flex;align-items:center;gap:8px;margin:0;font-size:calc(17px * var(--ia-text-scale,1))!important;font-weight:500!important}
body.ia-standalone #ia-settings-dialog .winx-header h3 .icon{width:18px;height:18px}

/* Configuración y Configuración de IA en oscuro: los colores del tema elegido (Apariencia), los
   mismos en las dos ventanas y en el resto del programa. */
[data-theme='dark'] body.ia-standalone #ia-settings-dialog,
[data-theme='dark'] body.ia-standalone #ia-settings-dialog .winx-header,
[data-theme='dark'] body.ia-standalone #ia-settings-dialog .winx-body,
[data-theme='dark'] body.ia-standalone #ia-settings-dialog .ia-general-config,
[data-theme='dark'] body.ia-standalone #ia-settings-dialog .ia-config-hero,
[data-theme='dark'] body.ia-standalone #ia-settings-dialog .ia-config-scroll,
[data-theme='dark'] body.ia-standalone #chat-profile-settings-dialog,
[data-theme='dark'] body.ia-standalone #chat-profile-settings-dialog .winx-header,
[data-theme='dark'] body.ia-standalone #chat-profile-settings-dialog .winx-body,
[data-theme='dark'] body.ia-standalone #chat-profile-settings-dialog .ia-ai-config,
[data-theme='dark'] body.ia-standalone #chat-profile-settings-dialog .ia-config-hero,
[data-theme='dark'] body.ia-standalone #chat-profile-settings-dialog .ia-config-scroll{
    background:var(--cfg-surface,#1b1b1b)!important;
}
[data-theme='dark'] body.ia-standalone #ia-settings-dialog .module-tabs,
[data-theme='dark'] body.ia-standalone #chat-profile-settings-dialog .module-tabs{
    background:transparent!important;
    border-bottom-color:var(--cfg-border,#3c3c3c)!important;
}
[data-theme='dark'] body.ia-standalone #ia-settings-dialog .ia-config-card,
[data-theme='dark'] body.ia-standalone #chat-profile-settings-dialog .ia-config-card{
    background:var(--cfg-card,#252526)!important;
    border-color:var(--cfg-border,#3c3c3c)!important;
}

.ia-ai-config,
.ia-general-config{
    width:100%;
    flex:1 1 auto;
    min-height:0;
    display:flex;
    flex-direction:column;
}
.ia-config-hero{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:18px 24px 14px;
}
.ia-config-title-block{
    min-width:0;
    display:flex;
    align-items:center;
    gap:12px;
}
.ia-config-icon{
    width:38px;
    height:38px;
    flex:0 0 38px;
    display:grid;
    place-items:center;
    border-radius:9px;
    color:var(--text-primary);
    background:var(--bg-hover);
}
.ia-config-icon .icon{width:20px;height:20px}
.ia-config-title-block h2{
    margin:0;
    font-size:calc(21px * var(--ia-text-scale,1));
    line-height:1.15;
    font-weight:500;
}
.ia-config-title-block p{
    margin:4px 0 0;
    color:var(--text-muted);
    font-size:max(calc(12.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px));
    line-height:1.4;
}
.ia-config-model-picker{
    display:flex;
    align-items:center;
    gap:9px;
    flex:0 0 auto;
}
.ia-config-model-picker>span{
    color:var(--text-secondary);
    font-size:max(calc(12px * var(--ia-text-scale,1)),var(--ia-font-small,13px));
    font-weight:400;
}
.ia-config-model-picker select,
.ia-config-field input,
.ia-config-field select{
    min-height:36px;
    box-sizing:border-box;
    border:1px solid var(--border);
    border-radius:5px;
    background:var(--bg-secondary);
    color:var(--text-primary);
    outline:none;
    padding:7px 9px;
    font:300 max(calc(13px * var(--ia-text-scale,1)),var(--ia-font-body,15px))/1.25 'Ubuntu IA',Ubuntu,sans-serif;
}
.ia-config-model-picker select{min-width:150px}
.ia-config-model-picker select:focus,
.ia-config-field input:focus,
.ia-config-field select:focus{
    border-color:var(--ui-primary);
    box-shadow:0 0 0 2px color-mix(in srgb,var(--ui-primary) 12%,transparent);
}
.ia-config-scroll{
    flex:1 1 auto;
    min-height:0;
    overflow:auto;
    padding:18px 24px 34px;
}
.ia-ai-tab-panel,
.ia-general-panel{
    width:100%;
    max-width:1180px;
    margin:0 auto;
    display:grid;
    gap:14px;
}
.ia-ai-tab-panel[hidden],
.ia-general-panel[hidden]{display:none!important}
/* Las pestañas que pintan sus tarjetas dentro de un contenedor (Modelo, Proyectos, GPU) llevan
   la misma separación entre tarjetas que el resto. */
.ia-ai-tab-panel>div{display:grid;gap:14px;min-width:0}
.ia-config-card{
    box-sizing:border-box;
    width:100%;
    padding:16px;
    border:1px solid var(--border-light,var(--border));
    border-radius:12px;
    background:var(--bg-card);
}
.ia-config-card-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:14px;
}
.ia-config-card-head h3{
    margin:0;
    display:flex;
    align-items:center;
    gap:8px;
    color:var(--text-primary);
    font-size:max(calc(15px * var(--ia-text-scale,1)),var(--ia-font-body,15px));
    line-height:1.2;
    font-weight:500;
}
.ia-config-card-head h3 .icon{width:16px;height:16px}
.ia-config-card-head p{
    margin:5px 0 0;
    color:var(--text-muted);
    font-size:max(calc(11.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px));
    line-height:1.45;
}
.ia-config-card-head>small{
    color:var(--text-muted);
    font-size:max(calc(10px * var(--ia-text-scale,1)),var(--ia-font-small,13px));
    white-space:nowrap;
}
.ia-config-form-grid{
    display:grid;
    gap:12px;
}
.ia-config-form-grid.is-two{grid-template-columns:repeat(2,minmax(0,1fr))}
.ia-config-form-grid.is-four{grid-template-columns:repeat(4,minmax(0,1fr))}
.ia-config-field{
    min-width:0;
    display:grid;
    gap:6px;
}
.ia-config-field>span{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    color:var(--text-secondary);
    font-size:max(calc(11px * var(--ia-text-scale,1)),var(--ia-font-small,13px));
    font-weight:400;
}
.ia-config-field>span small{color:var(--text-muted);font-size:max(calc(9.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px));font-weight:300}
.ia-config-field>.ia-config-range{color:var(--text-muted);font-size:max(calc(9.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px));font-weight:300}
.ia-config-field[hidden]{display:none!important}
.ia-config-toggle-row{
    min-height:56px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:11px 0;
    border-top:1px solid var(--border-light,var(--border));
}
.ia-config-form-grid+.ia-config-toggle-row{margin-top:13px}
.ia-config-toggle-row>div{min-width:0;display:grid;gap:4px}
.ia-config-toggle-row strong{font-size:max(calc(12px * var(--ia-text-scale,1)),var(--ia-font-small,13px));font-weight:500}
.ia-config-toggle-row div>span{color:var(--text-muted);font-size:max(calc(10.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px));line-height:1.4}
.ia-memory-editor,
.ia-context-editor{
    width:100%;
    box-sizing:border-box;
    resize:vertical;
    border:1px solid var(--border);
    border-radius:5px;
    background:var(--bg-secondary);
    color:var(--text-primary);
    outline:none;
    padding:10px 11px;
    font:300 max(calc(12.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px))/1.5 'Ubuntu Mono IA','Ubuntu Mono',monospace;
}
.ia-memory-editor{min-height:230px}
.ia-context-editor{min-height:260px}
.ia-memory-editor:focus,
.ia-context-editor:focus{border-color:var(--ui-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--ui-primary) 12%,transparent)}
.ia-md-dropzone{
    margin-top:12px;
    min-height:70px;
    box-sizing:border-box;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    padding:12px 18px;
    border:1px dashed color-mix(in srgb,var(--text-muted) 55%,var(--border));
    background:color-mix(in srgb,var(--bg-hover) 55%,transparent);
    color:var(--text-secondary);
    cursor:pointer;
    transition:.15s ease;
}
.ia-md-dropzone:hover,
.ia-md-dropzone.is-dragover{
    border-color:var(--ui-primary);
    background:color-mix(in srgb,var(--ui-primary) 6%,var(--bg-card));
}
.ia-md-dropzone>.icon{width:24px;height:24px;color:var(--ui-primary)}
.ia-md-dropzone>div{display:grid;gap:3px}
.ia-md-dropzone strong{font-size:max(calc(12px * var(--ia-text-scale,1)),var(--ia-font-small,13px));font-weight:500}
.ia-md-dropzone span{font-size:max(calc(10.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px));color:var(--text-muted)}
.ia-config-card-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:7px;
    flex-wrap:wrap;
    margin-top:12px;
}
.ia-config-card-actions .btn,
.chat-profile-header-actions .btn{
    min-height:32px;
    padding:5px 10px;
    border-radius:4px;
    font-size:max(calc(11px * var(--ia-text-scale,1)),var(--ia-font-small,13px));
}
.ia-config-card-actions .icon,
.chat-profile-header-actions .icon{width:14px;height:14px}
.ia-config-inline-note{
    display:flex;
    align-items:flex-start;
    gap:8px;
    margin-top:12px;
    padding:10px 11px;
    background:var(--bg-hover);
    color:var(--text-muted);
    font-size:max(calc(10.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px));
    line-height:1.45;
}
.ia-config-inline-note .icon{width:14px;height:14px;flex:0 0 14px;margin-top:1px}
.ia-model-state,
.ia-model-pending{
    display:inline-flex;
    align-items:center;
    min-height:22px;
    padding:2px 7px;
    border-radius:999px;
    font-size:max(calc(9.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px));
    font-weight:500;
    white-space:nowrap;
}
.ia-model-state.is-online{color:#15803d;background:rgba(22,163,74,.10)}
.ia-model-state.is-offline{color:#b91c1c;background:rgba(220,38,38,.10)}
.ia-model-pending{color:#a16207;background:rgba(234,179,8,.12)}
.ia-about-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    border-top:1px solid var(--border-light,var(--border));
}
.ia-about-row{
    min-width:0;
    display:grid;
    grid-template-columns:150px minmax(0,1fr);
    gap:10px;
    padding:10px 8px;
    border-bottom:1px solid var(--border-light,var(--border));
}
.ia-about-row:nth-child(odd){border-right:1px solid var(--border-light,var(--border))}
.ia-about-row>span{color:var(--text-muted);font-size:max(calc(10.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px))}
.ia-about-row>strong{min-width:0;overflow-wrap:anywhere;font-size:max(calc(10.8px * var(--ia-text-scale,1)),var(--ia-font-small,13px));font-weight:400}
.ia-config-loading,.ia-config-error{padding:28px;color:var(--text-muted);font-size:max(calc(12px * var(--ia-text-scale,1)),var(--ia-font-small,13px))}
.ia-config-error{color:#b91c1c}
.chat-module.hide-model-activity .chat-thinking,
.chat-module.hide-model-activity .chat-message:not(.is-image-task) .chat-thought-status{display:none!important}

@media(max-width:760px){
    .ia-config-hero{padding:13px 14px 10px;align-items:flex-start;flex-direction:column}
    .ia-config-title-block h2{font-size:calc(18px * var(--ia-text-scale,1))}
    .ia-config-model-picker{width:100%;justify-content:space-between}
    .ia-config-model-picker select{min-width:0;width:160px}
    body.ia-standalone .module-tabs,body.ia-admin-page .module-tabs{padding:0 8px}
    body.ia-standalone .module-tab,body.ia-admin-page .module-tab{min-height:44px;padding:0 12px}
    .ia-config-scroll{padding:12px 12px calc(24px + env(safe-area-inset-bottom))}
    .ia-config-form-grid.is-two,
    .ia-config-form-grid.is-four{grid-template-columns:minmax(0,1fr)}
    .ia-config-card{padding:13px}
    .ia-config-toggle-row{gap:12px}
    .ia-memory-editor{min-height:210px}
    .ia-context-editor{min-height:230px}
    .ia-about-grid{grid-template-columns:1fr}
    .ia-about-row:nth-child(odd){border-right:0}
    .ia-about-row{grid-template-columns:125px minmax(0,1fr)}
}

/* =========================================================
   Tecko IA · aside persistente y menú de usuario integrado
   ========================================================= */
html[data-ia-ui-ready="0"] body.ia-standalone #iaApp .chat-shell,
html[data-ia-ui-ready="0"] body.ia-standalone #iaApp .chat-history,
html[data-ia-ui-ready="0"] body.ia-standalone #iaApp .ia-account-menu,
html[data-ia-ui-ready="0"] body.ia-standalone #iaApp .chat-user-settings-icon{transition:none!important}

body.ia-standalone #iaApp .chat-sidebar-user{overflow:hidden;padding:5px 7px 8px!important}
body.ia-standalone #iaApp .ia-account-menu{
    position:relative!important;
    inset:auto!important;
    z-index:auto!important;
    width:100%!important;
    max-width:none!important;
    max-height:0;
    margin:0!important;
    padding:0 2px!important;
    overflow:hidden;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    opacity:0;
    transform:translateY(10px);
    pointer-events:none;
    transition:max-height .26s cubic-bezier(.2,.72,.2,1),opacity .16s ease,transform .26s cubic-bezier(.2,.72,.2,1),padding .26s ease;
}
html[data-ia-account-open="1"] body.ia-standalone #iaApp .ia-account-menu{
    max-height:min(320px,calc(100dvh - 170px));
    padding:2px 2px 7px!important;
    overflow-y:auto;
    overscroll-behavior:contain;
    opacity:1;
    transform:translateY(0);
    pointer-events:auto;
}
body.ia-standalone #iaApp .ia-account-menu a,
body.ia-standalone #iaApp .ia-account-menu button{
    box-sizing:border-box!important;
    min-height:36px!important;
    height:36px!important;
    margin:0!important;
    padding:5px 9px!important;
    border-radius:7px!important;
    font-size:max(calc(12.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px))!important;
    line-height:1.15!important;
}
body.ia-standalone #iaApp .ia-account-menu .icon{width:16px!important;height:16px!important}
body.ia-standalone #iaApp .ia-account-menu-separator{margin:5px 6px!important}
body.ia-standalone #iaApp .chat-user-settings-icon{transition:transform .22s ease}
html[data-ia-account-open="1"] body.ia-standalone #iaApp .chat-user-settings-icon{transform:rotate(90deg)}

@media(min-width:761px){
    html[data-ia-sidebar-collapsed="1"] body.ia-standalone #iaApp .chat-shell{grid-template-columns:0 minmax(0,1fr)!important}
    html[data-ia-sidebar-collapsed="1"] body.ia-standalone #iaApp .chat-history{opacity:0;pointer-events:none;border-right-color:transparent!important}
    html[data-ia-sidebar-collapsed="1"] body.ia-standalone #iaApp .chat-sidebar-open-button{display:grid!important}
}

html[data-ia-search-open="1"] body.ia-standalone #iaApp #chatSidebarSearch[hidden]{display:flex!important}

body.ia-standalone #iaApp .chat-sidebar-top-actions{display:flex!important}
body.ia-standalone #iaApp #btnChatSearch .icon,
body.ia-standalone #iaApp #btnChatSidebarCollapse .icon,
body.ia-standalone #iaApp #btnChatSidebarOpen .icon{
    display:inline-block!important;
    visibility:visible!important;
    opacity:1!important;
    background-color:currentColor!important;
}

@media(max-width:760px){
    html[data-ia-mobile-history-open="1"] body.ia-standalone #iaApp .chat-history:not([data-history-dragging]){transform:translateX(0)!important}
    html[data-ia-mobile-history-open="1"] body.ia-standalone #iaApp .chat-history-backdrop[hidden]{display:block!important}
    body.ia-standalone #iaApp .ia-account-menu a,
    body.ia-standalone #iaApp .ia-account-menu button{min-height:40px!important;height:40px!important;font-size:max(calc(14px * var(--ia-text-scale,1)),var(--ia-font-body,15px))!important;padding:6px 10px!important}
}

/* =========================================================
   Tecko IA · marca de agua real del modelo activo
   ========================================================= */
body.ia-standalone #iaApp .chat-conversation{position:relative;isolation:isolate}
body.ia-standalone #iaApp .chat-conversation::before{
    content:'';
    position:absolute;
    left:50%;
    top:46%;
    width:min(820px,calc(100% - 48px));
    height:auto;
    aspect-ratio:1;
    transform:translate(-50%,-50%);
    background-position:center;
    background-repeat:no-repeat;
    background-size:contain;
    opacity:.022;
    pointer-events:none;
    z-index:0;
}
body.ia-standalone #iaApp .chat-module.engine-tecko .chat-conversation::before{background-image:url('/lucide-static/icons/bot.svg')}
body.ia-standalone #iaApp .chat-module:not(.engine-tecko) .chat-conversation::before{background-image:url('/lucide-static/icons/earth.svg')}
/* Cada modelo con su icono, el mismo del selector: Venus (tierra), Mercurio (paleta), Saturno (código). */
body.ia-standalone #iaApp .chat-module.engine-mercurio .chat-conversation::before{background-image:url('/lucide-static/icons/palette.svg')}
body.ia-standalone #iaApp .chat-module.engine-marte .chat-conversation::before{background-image:url('/lucide-static/icons/orbit.svg')}
body.ia-standalone #iaApp .chat-module.engine-neptuno .chat-conversation::before{background-image:url('/lucide-static/icons/aperture.svg')}
body.ia-standalone #iaApp .chat-module.engine-saturno .chat-conversation::before{background-image:url('/lucide-static/icons/code-xml.svg')}
/* La marca de agua solo eleva el contenido; conserva las capas de los menús. */
body.ia-standalone #iaApp .chat-conversation>.chat-messages,
body.ia-standalone #iaApp .chat-conversation>.chat-composer-zone,
body.ia-standalone #iaApp .chat-conversation>.chat-limit-banner{position:relative;z-index:1}
@media(min-width:761px){
    body.ia-standalone #iaApp .chat-mobile-more-menu{display:none!important}
}
[data-theme='dark'] body.ia-standalone #iaApp .chat-conversation::before{filter:invert(1);opacity:.018}
body.ia-standalone #iaApp .chat-main::before{display:none!important}

/* Acciones IA: negro/blanco y Lucide. */
body.ia-standalone .ia-tecko-actions .btn,
body.ia-standalone .ia-tecko-add-root .btn,
body.ia-standalone .ia-dbb-actions .btn,
body.ia-standalone .ia-config-card-actions .btn,
body.ia-standalone .chat-profile-header-actions .btn,
body.ia-standalone .ia-settings-button,
body.ia-admin-page .ia-user-dialog-actions .btn{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    min-height:36px;
    padding:7px 11px!important;
    border:1px solid #111!important;
    border-radius:9px!important;
    background:#111!important;
    color:#fff!important;
    box-shadow:none!important;
    font-weight:400!important;
    white-space:nowrap;
}
body.ia-standalone .ia-tecko-actions .btn:hover,
body.ia-standalone .ia-tecko-add-root .btn:hover,
body.ia-standalone .ia-dbb-actions .btn:hover,
body.ia-standalone .ia-config-card-actions .btn:hover,
body.ia-standalone .chat-profile-header-actions .btn:hover,
body.ia-standalone .ia-settings-button:hover,
body.ia-admin-page .ia-user-dialog-actions .btn:hover{background:#252525!important;border-color:#252525!important}
body.ia-standalone .ia-tecko-actions .btn:disabled,
body.ia-standalone .ia-tecko-add-root .btn:disabled,
body.ia-standalone .ia-dbb-actions .btn:disabled,
body.ia-standalone .ia-config-card-actions .btn:disabled,
body.ia-standalone .chat-profile-header-actions .btn:disabled,
body.ia-standalone .ia-settings-button:disabled,
body.ia-admin-page .ia-user-dialog-actions .btn:disabled{opacity:.38!important;cursor:default!important}
body.ia-standalone .ia-tecko-actions .btn .icon,
body.ia-standalone .ia-tecko-add-root .btn .icon,
body.ia-standalone .ia-dbb-actions .btn .icon,
body.ia-standalone .ia-config-card-actions .btn .icon,
body.ia-standalone .chat-profile-header-actions .btn .icon,
body.ia-standalone .ia-settings-button .icon,
body.ia-admin-page .ia-user-dialog-actions .btn .icon{width:16px!important;height:16px!important;color:#fff!important}
body.ia-standalone .ia-tecko-actions .is-danger,
body.ia-standalone .ia-dbb-actions .is-danger,
body.ia-standalone .ia-config-card-actions .is-danger,
body.ia-standalone .ia-settings-button.is-danger{background:#b91c1c!important;border-color:#b91c1c!important}
body.ia-standalone .ia-tecko-actions .is-danger:hover,
body.ia-standalone .ia-dbb-actions .is-danger:hover,
body.ia-standalone .ia-config-card-actions .is-danger:hover,
body.ia-standalone .ia-settings-button.is-danger:hover{background:#991b1b!important;border-color:#991b1b!important}

@media(max-width:560px){
    body.ia-standalone .ia-config-card-actions{gap:6px!important}
    body.ia-standalone .ia-config-card-actions .btn,
    body.ia-standalone .chat-profile-header-actions .btn{width:38px!important;min-width:38px!important;height:38px!important;padding:0!important}
    body.ia-standalone .ia-config-card-actions .btn .ia-button-label,
    body.ia-standalone .chat-profile-header-actions .btn .ia-button-label{display:none!important}
    body.ia-standalone #iaApp .chat-conversation::before{top:45%;opacity:.018}
}

/* Conectores */
.ia-connector-status{
    display:inline-flex;
    align-items:center;
    min-height:23px;
    padding:3px 8px;
    border-radius:999px;
    background:var(--bg-hover);
    color:var(--text-muted);
    font-size:max(calc(10px * var(--ia-text-scale,1)),var(--ia-font-small,13px));
    white-space:nowrap;
}
.ia-connector-status.is-ok{color:#15803d;background:rgba(22,163,74,.10)}
.ia-connector-status.is-error{color:#b91c1c;background:rgba(220,38,38,.10)}
.ia-connector-status.is-working{color:#a16207;background:rgba(234,179,8,.12)}
body.ia-standalone .ia-settings-button{text-decoration:none;cursor:pointer}
/* Un <a> no es border-box como <button>: sin esto el relleno se suma a la altura mínima. */
body.ia-standalone a.ia-settings-button,
body.ia-standalone a.btn{box-sizing:border-box;line-height:1.2}
@media(max-width:560px){
    body.ia-standalone [data-general-panel="connections"] .ia-config-card-actions .ia-settings-button{width:38px!important;min-width:38px!important;height:38px!important;padding:0!important}
    body.ia-standalone [data-general-panel="connections"] .ia-config-card-actions .ia-button-label{display:none!important}
}

.ia-infra-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:4px 0 10px}
.ia-infra-item{display:flex;align-items:center;gap:9px;min-width:0;padding:10px;border:1px solid var(--border-light,var(--border));border-radius:10px;background:var(--bg-secondary)}
.ia-infra-item>.icon{width:17px;height:17px;flex:0 0 17px;color:var(--text-muted)}
.ia-infra-item>div{min-width:0;display:grid;gap:2px}
.ia-infra-item strong{font-size:max(calc(11.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px));font-weight:500;color:var(--text-primary)}
.ia-infra-item span:not(.icon){overflow:hidden;text-overflow:ellipsis;font-size:max(calc(10.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px));color:var(--text-muted)}
@media(max-width:760px){.ia-infra-grid{grid-template-columns:1fr}}

/* Controles y diálogos comparten dimensiones de lectura. */
body.ia-standalone .winx,
body.ia-admin-page .winx{font-size:var(--ia-font-body)}
body.ia-standalone .winx input,
body.ia-admin-page .winx input,
body.ia-standalone .winx select,
body.ia-admin-page .winx select{box-sizing:border-box;min-width:0;max-width:100%}
body.ia-standalone .winx-warn,
body.ia-admin-page .winx-warn{box-sizing:border-box;min-width:0;width:min(440px,calc(100vw - 28px));max-height:calc(100dvh - 28px);overflow:hidden}
body.ia-standalone .winx-warn .winx-body,
body.ia-admin-page .winx-warn .winx-body{min-height:0;overflow:auto;font-size:var(--ia-font-body)}
body.ia-standalone .winx-footer .btn,
body.ia-admin-page .winx-footer .btn,
body.ia-standalone .ia-sensitive-actions .btn{font-size:var(--ia-font-body);min-height:40px;white-space:nowrap}
body.ia-standalone .winx-header h3,
body.ia-admin-page .winx-header h3{min-width:0;line-height:1.3;overflow-wrap:anywhere}
body.ia-standalone .winx-close,
body.ia-admin-page .winx-close{flex-shrink:0}
.ia-config-card-head{flex-wrap:wrap;gap:10px}
.ia-config-card-head>div{min-width:0;flex:1 1 220px}
.ia-config-card-head h3{line-height:1.35}
.ia-config-card-head h3 .icon{flex-shrink:0}
.ia-config-card-head p{line-height:1.5}
.ia-config-field>span{flex-wrap:wrap;row-gap:4px}
.ia-config-field input,.ia-config-field select,.ia-settings-select{min-height:42px;height:auto;font-weight:400}
.ia-settings-select{max-width:100%;min-width:0}
.ia-settings-row{box-sizing:border-box}
.ia-settings-permission{min-width:0;max-width:100%}
.ia-settings-button{max-width:100%;white-space:nowrap!important;text-align:center}
.ia-config-title-block p{margin:0;line-height:1.5}
.ia-config-icon{width:32px;height:32px;flex-basis:32px}
.ia-config-toggle-row{align-items:flex-start}
.ia-config-toggle-row .chat-switch{margin-top:2px;flex-shrink:0}
.ia-model-state,.ia-model-pending,.ia-connector-status{white-space:normal;max-width:100%;box-sizing:border-box}
.ia-md-dropzone{border-radius:10px}
.ia-config-inline-note{border-radius:9px}
.ia-infra-item span:not(.icon){white-space:normal;overflow-wrap:anywhere}
body.ia-standalone .chat-profile-header-actions{flex-shrink:0}
body.ia-standalone #chatMessages .chat-thought-status{line-height:1.4}
body.ia-standalone .winx-toast-msg,body.ia-admin-page .winx-toast-msg{font-size:var(--ia-font-body)}
.ia-sensitive-dialog label{display:grid;gap:8px;min-width:0}
.ia-sensitive-dialog input{width:100%;min-height:42px;padding:9px 11px;border:1px solid var(--border);border-radius:9px;background:var(--bg-card);color:var(--text-primary);font-size:var(--ia-font-body)}
.ia-sensitive-actions,.chat-rename-dialog-actions{flex-wrap:wrap}
@media(max-width:760px){
    /* En móvil se conserva el selector de modelo, pero se elimina la entradilla para ganar altura útil. */
    body.ia-standalone #chat-profile-settings-dialog .ia-config-title-block{display:none!important}
    body.ia-standalone #chat-profile-settings-dialog .ia-config-hero{padding:8px 14px!important}
    body.ia-standalone #ia-settings-dialog .winx-header,
    body.ia-standalone #chat-profile-settings-dialog .winx-header{padding:8px 14px!important;min-height:56px!important}
    body.ia-standalone #iaApp .chat-conversation::before{width:calc(100% - 40px)}
    .ia-settings-row{gap:12px}
    .ia-config-hero{padding:12px 14px}
    .ia-config-scroll{padding:12px 12px calc(20px + env(safe-area-inset-bottom))}
    .ia-config-model-picker select{max-width:65%}
    .ia-config-card-actions{row-gap:8px}
    .ia-about-row{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}
}
/* ---------- Configuración · Tecko (proyectos y carpetas) */
.ia-tecko-list{display:grid;gap:8px}
.ia-tecko-row{
    display:grid;
    grid-template-columns:minmax(120px,1.1fr) minmax(140px,1.4fr) minmax(120px,1.2fr) auto auto;
    align-items:center;
    gap:12px;
    padding:10px 12px;
    border:1px solid var(--border-light,var(--border));
    border-radius:8px;
    background:var(--bg-secondary);
}
.ia-tecko-main{display:grid;gap:2px;min-width:0}
.ia-tecko-main strong{font-weight:500;font-size:max(calc(12.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px))}
.ia-tecko-main small,.ia-tecko-muted,.ia-tecko-root small{color:var(--text-muted);font-size:max(calc(10.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px))}
.ia-tecko-path,.ia-tecko-root code{
    min-width:0;
    overflow-wrap:anywhere;
    font:300 max(calc(11.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px))/1.35 'Ubuntu Mono IA','Ubuntu Mono',monospace;
}
.ia-tecko-chips{display:flex;flex-wrap:wrap;align-items:center;gap:5px;min-width:0}
.ia-tecko-chips>.icon{width:14px;height:14px;color:var(--text-muted)}
.ia-tecko-chip{
    padding:2px 7px;
    border-radius:999px;
    background:var(--bg-hover);
    font:300 max(calc(11px * var(--ia-text-scale,1)),var(--ia-font-small,13px))/1.3 'Ubuntu Mono IA','Ubuntu Mono',monospace;
}
.ia-tecko-badges{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.ia-tecko-badge{
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:3px 8px;
    border-radius:999px;
    background:color-mix(in srgb,var(--ui-primary) 10%,transparent);
    color:var(--text-primary);
    font-size:max(calc(10.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px));
    white-space:nowrap;
}
.ia-tecko-badge.is-readonly{background:var(--bg-hover);color:var(--text-muted)}
.ia-tecko-badge .icon{width:12px;height:12px}
.ia-tecko-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.ia-tecko-actions .icon{width:14px;height:14px}
.ia-tecko-form{margin-top:14px;padding-top:14px;border-top:1px solid var(--border-light,var(--border))}
.ia-tecko-roots{display:grid;gap:6px}
.ia-tecko-root{
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:10px;
    padding:8px 10px;
    border-radius:6px;
    cursor:pointer;
}
.ia-tecko-root:hover{background:var(--bg-hover)}
.ia-tecko-root.is-locked{cursor:default;opacity:.8}
.ia-tecko-root.is-locked:hover{background:transparent}
.ia-tecko-add-root{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:end;
    gap:10px;
    margin-top:12px;
}
@media (max-width:760px){
    .ia-tecko-row{grid-template-columns:minmax(0,1fr) auto;gap:8px}
    .ia-tecko-path,.ia-tecko-chips{grid-column:1 / -1}
    .ia-tecko-badges{justify-content:flex-start}
    .ia-tecko-root small{grid-column:2 / -1}
}
/* Ventana de autorización (contraseña del sistema) */
.ia-auth-detail{
    margin-top:12px;
    padding:10px 12px;
    border:1px solid var(--winx-border,var(--border));
    border-radius:8px;
    overflow-wrap:anywhere;
    font-family:'Ubuntu Mono IA','Ubuntu Mono',monospace;
}
.ia-auth-label{display:grid;gap:7px;margin-top:16px;font-weight:600}
.ia-auth-input{width:100%;box-sizing:border-box;padding:10px 12px;font-size:16px}
.ia-auth-help{margin-top:8px;font-size:.9rem;opacity:.72}
.ia-auth-status{margin-top:10px;min-height:1.2em;font-size:.9rem}
/* ---------- Configuración · copias de la base de datos del conector */
.ia-dbb-list{display:grid;gap:6px;margin-top:12px}
.ia-dbb-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto auto auto auto;
    align-items:center;
    gap:12px;
    padding:9px 12px;
    border:1px solid var(--border-light,var(--border));
    border-radius:8px;
    background:var(--bg-secondary);
}
.ia-dbb-row.is-active{border-color:color-mix(in srgb,var(--ui-primary) 45%,var(--border))}
.ia-dbb-main{display:grid;gap:2px;min-width:0}
.ia-dbb-main strong{font-weight:500;font-size:max(calc(12.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px))}
.ia-dbb-main small{color:var(--text-muted);overflow-wrap:anywhere;font-size:max(calc(10.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px))}
.ia-dbb-origin{padding:2px 8px;border-radius:999px;background:var(--bg-hover);font-size:max(calc(10.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px));white-space:nowrap}
.ia-dbb-size{color:var(--text-muted);font-size:max(calc(11px * var(--ia-text-scale,1)),var(--ia-font-small,13px));white-space:nowrap}
.ia-dbb-row .ia-model-state{display:inline-flex;align-items:center;gap:4px}
.ia-dbb-row .ia-model-state .icon{width:12px;height:12px}
.ia-dbb-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.ia-dbb-actions .icon{width:14px;height:14px}
.ia-dbb-empty{display:flex;align-items:center;gap:8px;padding:12px;color:var(--text-muted);font-size:max(calc(11.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px))}
.ia-dbb-empty .icon{width:16px;height:16px}
.ia-dbb-progress{display:grid;gap:6px;margin-top:12px}
.ia-dbb-progress>div{display:flex;justify-content:space-between;gap:10px;color:var(--text-secondary);font-size:max(calc(11px * var(--ia-text-scale,1)),var(--ia-font-small,13px))}
.ia-dbb-progress progress{width:100%;height:6px;accent-color:var(--ui-primary)}
/* display:grid/flex anula [hidden]: la barra y la nota solo se ven mientras hay una operación. */
.ia-dbb-progress[hidden],
.ia-config-inline-note[hidden]{display:none!important}
.ia-md-dropzone.is-disabled{opacity:.5;pointer-events:none}
.ia-sensitive-dialog select{width:100%;min-height:42px;padding:9px 11px;border:1px solid var(--border);border-radius:9px;background:var(--bg-card);color:var(--text-primary)}
.ia-sensitive-dialog ul{margin:0;padding-left:18px;display:grid;gap:6px}
@media (max-width:760px){
    .ia-dbb-row{grid-template-columns:minmax(0,1fr) auto;gap:8px}
    .ia-dbb-actions{grid-column:1 / -1}
}
/* Prefijos de base de datos de Tecko */
.ia-tecko-prefix{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:6px 10px;border-radius:6px}
.ia-tecko-prefix:hover{background:var(--bg-hover)}
.ia-tecko-prefix code{font:400 max(calc(12px * var(--ia-text-scale,1)),var(--ia-font-small,13px))/1.3 'Ubuntu Mono IA','Ubuntu Mono',monospace}
.ia-tecko-prefix small{color:var(--text-muted);font-size:max(calc(10.5px * var(--ia-text-scale,1)),var(--ia-font-small,13px))}
.ia-tecko-prefix-input{grid-column:1 / 3;min-height:32px;box-sizing:border-box;border:1px solid var(--ui-primary);border-radius:5px;background:var(--bg-secondary);color:var(--text-primary);padding:5px 8px;font:300 max(calc(12px * var(--ia-text-scale,1)),var(--ia-font-small,13px))/1.3 'Ubuntu Mono IA','Ubuntu Mono',monospace;outline:none}

/* Botones de fila solo con icono: cuadrados, mismo negro/blanco del proyecto. */
body.ia-standalone .ia-tecko-actions .btn,
body.ia-standalone .ia-dbb-actions .btn{width:36px;min-width:36px;padding:0!important}
body.ia-standalone .ia-tecko-actions .btn-primary{background:#111!important}
/* Una pestaña con [hidden] debe ocultarse aunque .module-tab fuerce display:inline-flex. */
.module-tab[hidden]{display:none!important}
/* Proyectos de Tecko: carpetas y etiquetas editables dentro del formulario. */
.ia-tecko-paths{display:grid;gap:3px;min-width:0}
.ia-tecko-web{display:inline-flex;align-items:center;gap:5px;width:max-content;max-width:100%;color:var(--ui-primary,#2563eb);font-size:12.5px;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ia-tecko-web:hover{text-decoration:underline}
.ia-tecko-web .icon{width:13px;height:13px;flex:0 0 13px}
.ia-tecko-web-hint{display:block;margin-top:4px;color:var(--text-muted);font-size:12px;overflow-wrap:anywhere}
.ia-tecko-web-hint:empty{display:none}
.ia-tecko-path.is-extra{color:var(--text-muted)}
.ia-tecko-db-field{margin-top:14px}
.ia-tecko-prefix-editor{display:flex;flex-wrap:wrap;gap:6px;min-height:30px;align-items:center}
.ia-tecko-chip.is-editable{display:inline-flex;align-items:center;gap:4px;padding:3px 4px 3px 9px}
.ia-tecko-chip.is-editable button{
    width:20px;height:20px;display:grid;place-items:center;padding:0;
    border:0;border-radius:50%;background:transparent;color:var(--text-muted);cursor:pointer;
}
.ia-tecko-chip.is-editable button:hover{background:color-mix(in srgb,#b91c1c 14%,transparent);color:#b91c1c}
.ia-tecko-chip.is-editable button .icon{width:12px;height:12px}
.ia-tecko-chip.is-path{overflow-wrap:anywhere}

/* Un icono con el atributo hidden debe ocultarse aunque .icon fuerce display:inline-block. */
.icon[hidden]{display:none!important}
.ia-tecko-web-hint.is-error{color:#b91c1c}

/* =========================================================
   Conexiones → Permisos (Tecko y cuenta MySQL de la IA)
   ========================================================= */
.ia-perm-card [data-perm-body]{display:grid;gap:14px}
.ia-perm-loading{color:var(--text-muted);font-size:13px}
.ia-perm-gateway{
    display:flex;align-items:center;gap:12px;flex-wrap:wrap;
    padding:12px 14px;border:1px dashed var(--border);border-radius:12px;
    background:color-mix(in srgb,var(--bg-secondary) 60%,transparent);
}
.ia-perm-gateway.is-ready{border-style:solid;border-color:color-mix(in srgb,#16a34a 35%,var(--border))}
.ia-perm-gateway>.icon{width:20px;height:20px;flex:0 0 20px;color:var(--text-secondary)}
.ia-perm-gateway.is-ready>.icon{color:#16a34a}
.ia-perm-gateway>div{flex:1 1 220px;min-width:0;display:grid;gap:2px}
.ia-perm-gateway strong{font-weight:500}
.ia-perm-gateway span:not(.icon){color:var(--text-muted);font-size:13px;line-height:1.45}
body.ia-standalone .ia-settings-button.is-quiet{background:transparent!important;color:var(--text-primary)!important;border-color:var(--border)!important}
body.ia-standalone .ia-settings-button.is-quiet .icon{color:var(--text-secondary)!important}
.ia-perm-root-banner{
    display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:12px;
    background:color-mix(in srgb,#dc2626 12%,transparent);color:#b91c1c;font-size:13.5px;
}
[data-theme='dark'] .ia-perm-root-banner{color:#fca5a5}
.ia-perm-root-banner .icon{width:18px;height:18px;flex:0 0 18px}
.ia-perm-title{display:flex;align-items:center;gap:8px;margin:6px 0 0;font-size:14px;font-weight:600}
.ia-perm-title .icon{width:16px;height:16px}
.ia-perm-list{display:grid;border:1px solid var(--border-light,var(--border));border-radius:12px;overflow:hidden}
.ia-perm-row{
    display:grid;grid-template-columns:20px minmax(0,1fr) auto auto;align-items:center;gap:12px;
    padding:12px 14px;cursor:pointer;
}
.ia-perm-row+.ia-perm-row{border-top:1px solid var(--border-light,var(--border))}
.ia-perm-row>.icon{width:18px;height:18px;color:var(--text-secondary)}
.ia-perm-copy{display:grid;gap:2px;min-width:0}
.ia-perm-copy strong{font-weight:500}
.ia-perm-copy small{color:var(--text-muted);font-size:12.5px;line-height:1.4}
.ia-perm-state{font-size:12px;padding:3px 8px;border-radius:999px;white-space:nowrap;background:var(--bg-hover);color:var(--text-muted)}
.ia-perm-row.is-on .ia-perm-state{background:color-mix(in srgb,#16a34a 14%,transparent);color:#15803d}
.ia-perm-row.is-danger>.icon{color:#dc2626}
.ia-perm-row.is-danger.is-on{background:color-mix(in srgb,#dc2626 7%,transparent)}
.ia-perm-row.is-danger.is-on .ia-perm-state{background:color-mix(in srgb,#dc2626 16%,transparent);color:#b91c1c}
.ia-perm-fixed-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.ia-perm-fixed-grid h5{margin:0 0 6px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}
.ia-perm-fixed{list-style:none;margin:0;padding:0;display:grid;gap:5px;font-size:13px}
.ia-perm-fixed li{display:flex;align-items:flex-start;gap:7px;line-height:1.4}
.ia-perm-fixed .icon{width:14px;height:14px;flex:0 0 14px;margin-top:2px}
.ia-perm-fixed.is-yes .icon{color:#16a34a}
.ia-perm-fixed.is-no .icon{color:#dc2626}
.ia-perm-account{margin:0;color:var(--text-muted);font-size:13px}
.ia-perm-account code{font-size:12.5px}
.ia-perm-link{padding:0;border:0;background:transparent;color:var(--ui-primary,#2563eb);font:inherit;text-decoration:underline;cursor:pointer}
.ia-perm-db-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.ia-perm-db{
    display:flex;align-items:center;gap:9px;padding:8px 10px;border:1px solid var(--border-light,var(--border));
    border-radius:10px;cursor:pointer;min-width:0;
}
.ia-perm-db.is-on{border-color:color-mix(in srgb,#16a34a 35%,var(--border))}
.ia-perm-db.is-locked{cursor:default;opacity:.8}
.ia-perm-db input{flex:0 0 auto;width:16px;height:16px;accent-color:#16a34a}
.ia-perm-db span{display:grid;min-width:0}
.ia-perm-db strong{font-weight:500;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ia-perm-db small{color:var(--text-muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ia-config-inline-note.is-error{color:#b91c1c}
@media(max-width:640px){
    .ia-perm-row{grid-template-columns:20px minmax(0,1fr) auto;row-gap:6px}
    .ia-perm-state{grid-column:2;justify-self:start}
    .ia-perm-row .chat-switch{grid-row:1;grid-column:3}
    .ia-perm-fixed-grid{grid-template-columns:1fr}
}
.ia-tecko-db-auto{padding:9px 12px;border-radius:9px;background:var(--bg-secondary);color:var(--text-secondary);font-size:13px;line-height:1.45}
/* Carpeta que ya existe (proyecto copiado de fuera) y carpetas de run sin proyecto. */
.ia-tecko-import,.ia-tecko-free{display:grid;gap:6px;margin:4px 0 12px;padding:10px 12px;border-radius:9px;background:var(--bg-secondary);color:var(--text-secondary);font-size:13px;line-height:1.5}
.ia-tecko-import[hidden],.ia-tecko-free[hidden]{display:none}
.ia-tecko-import p,.ia-tecko-free p{margin:0}
.ia-tecko-import .icon,.ia-tecko-free p .icon{width:15px;height:15px;margin-right:6px;vertical-align:-3px}
.ia-tecko-import code{padding:0 4px;border-radius:4px;background:var(--bg-card);font-size:12px;overflow-wrap:anywhere}
.ia-tecko-import code.is-blocked{text-decoration:line-through;color:#b91c1c}
.ia-tecko-import .is-warning{color:var(--warning,#b45309)}
.ia-tecko-import .is-error{color:#b91c1c}
.ia-tecko-free-list{display:flex;flex-wrap:wrap;gap:8px}
/* Configuración de IA → Tecko: estado real del aislamiento de cada proyecto. */
.ia-tecko-isolation{
    grid-column:1 / -1;
    display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;
    padding-top:8px;border-top:1px dashed var(--border-light,var(--border));min-width:0;
}
.ia-tecko-isolation small{color:var(--text-muted);font-size:max(calc(11px * var(--ia-text-scale,1)),var(--ia-font-small,13px));overflow-wrap:anywhere;line-height:1.45}
.ia-tecko-isolation code{font-size:.95em}
.ia-tecko-badges.is-left{justify-content:flex-start}
.ia-tecko-badge.is-ok{background:color-mix(in srgb,#16a34a 14%,transparent);color:#15803d}
.ia-tecko-badge.is-warn{background:color-mix(in srgb,#d97706 16%,transparent);color:#b45309}
[data-theme='dark'] .ia-tecko-badge.is-ok{color:#86efac}
[data-theme='dark'] .ia-tecko-badge.is-warn{color:#fcd34d}
[data-tecko-caps] .ia-perm-fixed-grid{padding:2px 0}
@media (max-width:760px){
    .ia-tecko-paths{grid-column:1 / -1}
    .ia-tecko-isolation{gap:6px}
}
/* Configuración → Desarrollo: registro de cambios por fechas. */
.ia-devlog-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}
.ia-devlog-search{flex:1 1 220px;display:flex;align-items:center;gap:8px;min-width:0;padding:0 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg-primary,transparent)}
.ia-devlog-search .icon{width:15px;height:15px;color:var(--text-muted);flex:0 0 15px}
.ia-devlog-search input{flex:1;min-width:0;min-height:34px;border:0;background:transparent;color:var(--text-primary);font:inherit;outline:none}
.ia-devlog-toolbar .ia-settings-select{flex:0 1 190px;min-width:0}
.ia-devlog-toolbar [data-devlog-new][aria-expanded="true"]{background:var(--bg-secondary)}
.ia-devlog-form[hidden]{display:none}
.ia-devlog-form{display:grid;gap:10px;margin-bottom:14px;padding:12px;border:1px solid var(--border-light,var(--border));border-radius:10px;background:var(--bg-secondary)}
.ia-devlog-form textarea{width:100%;box-sizing:border-box;resize:vertical;font:inherit}
.ia-devlog-list{display:grid;gap:16px}
.ia-devlog-empty{color:var(--text-muted);font-size:13px;padding:8px 0}
.ia-devlog-day h4{display:flex;align-items:center;gap:7px;margin:0 0 8px;font-size:13px;font-weight:600;color:var(--text-secondary)}
.ia-devlog-day h4 .icon{width:15px;height:15px}
.ia-devlog-day ol{list-style:none;margin:0;padding:0 0 0 14px;border-left:2px solid var(--border-light,var(--border));display:grid;gap:10px}
.ia-devlog-entry{position:relative;display:grid;gap:4px;padding:9px 12px;border:1px solid var(--border-light,var(--border));border-radius:10px;background:var(--bg-secondary);min-width:0}
.ia-devlog-entry::before{content:'';position:absolute;left:-21px;top:14px;width:10px;height:10px;border-radius:50%;background:var(--text-primary,#111);box-shadow:0 0 0 3px var(--bg-primary,#fff)}
.ia-devlog-entry strong{font-weight:500;overflow-wrap:anywhere}
.ia-devlog-entry p{margin:0;color:var(--text-secondary);font-size:13px;line-height:1.45;overflow-wrap:anywhere}
.ia-devlog-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:12px;color:var(--text-muted)}
.ia-devlog-meta time{font-variant-numeric:tabular-nums}
.ia-devlog-area{padding:1px 8px;border-radius:999px;background:var(--bg-hover);color:var(--text-secondary)}
.ia-devlog-entry details{font-size:13px}
.ia-devlog-entry summary{cursor:pointer;color:var(--text-muted);width:max-content}
.ia-devlog-entry ul{margin:6px 0 0;padding-left:18px;display:grid;gap:3px;color:var(--text-secondary);overflow-wrap:anywhere}
@media (max-width:640px){
    .ia-devlog-toolbar .ia-settings-select{flex:1 1 auto}
    .ia-devlog-day ol{padding-left:10px}
    .ia-devlog-entry::before{left:-17px}
}
/* Configuración de IA → GPU. */
.ia-gpu-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px 16px;margin:0}
.ia-gpu-facts>div{min-width:0}
.ia-gpu-facts>div.is-wide{grid-column:1 / -1}
.ia-gpu-facts dt{color:var(--text-muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.03em}
.ia-gpu-facts dd{margin:2px 0 0;font-size:13px;overflow-wrap:anywhere}
.ia-gpu-table-wrap{margin-top:12px;overflow-x:auto;border:1px solid var(--border-light,var(--border));border-radius:8px}
.ia-gpu-table{width:100%;border-collapse:collapse;font-size:12.5px;font-variant-numeric:tabular-nums}
.ia-gpu-table th{padding:6px 10px;background:var(--bg-secondary);color:var(--text-muted);font-weight:500;text-align:left;white-space:nowrap}
.ia-gpu-table td{padding:5px 10px;border-top:1px solid var(--border-light,var(--border));white-space:nowrap}

/* Verificación en dos pasos (Configuración → Seguridad). */
.ia-settings-state.is-warning{color:#b45309}
.ia-2fa-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.ia-2fa-dialog{display:grid;gap:12px;color:var(--text-primary);font-size:var(--ia-font-body,15px);line-height:1.45}
.ia-2fa-dialog p{margin:0}
.ia-2fa-steps{margin:0;padding-left:20px;display:grid;gap:4px}
.ia-2fa-qr{justify-self:center;width:min(220px,70vw);padding:8px;background:#fff;border:1px solid var(--border);border-radius:12px}
.ia-2fa-qr svg{display:block;width:100%;height:auto}
.ia-2fa-manual summary{cursor:pointer;color:var(--text-secondary)}
.ia-2fa-manual p{margin-top:6px;word-break:break-word}
.ia-2fa-manual code,.ia-2fa-codes code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em}
.ia-2fa-code input{width:100%;min-height:48px;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:var(--bg-card);color:var(--text-primary);font-size:24px;letter-spacing:.3em;text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.ia-2fa-error{min-height:1.2em;color:#dc2626;font-size:var(--ia-font-small,13px)}
.ia-2fa-error:empty{display:none}
.ia-2fa-codes{margin:0;padding:12px 12px 12px 34px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px;border:1px solid var(--border);border-radius:10px;background:var(--bg-secondary)}
@media (max-width:420px){.ia-2fa-codes{grid-template-columns:1fr}}

/* Barras de desplazamiento: 6 px en toda la IA.
   Chrome ignora ::-webkit-scrollbar en cuanto un elemento declara scrollbar-width o
   scrollbar-color (y `thin` mide unos 9 px), así que el tamaño se fija solo aquí con los
   pseudo-elementos. Firefox no admite un ancho en píxeles: allí se queda en `thin`.
   Las barras ocultas (`scrollbar-width:none` / `display:none`) siguen ocultas: sus reglas
   son más específicas que `*`. */
@supports selector(::-webkit-scrollbar){
    *::-webkit-scrollbar{width:6px;height:6px}
    *::-webkit-scrollbar-track,*::-webkit-scrollbar-corner{background:transparent}
    *::-webkit-scrollbar-thumb{background:var(--border);border-radius:6px}
    *::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}
}
@supports not selector(::-webkit-scrollbar){
    *{scrollbar-width:thin;scrollbar-color:var(--border) transparent}
}

/* Nivel de pensamiento y micrófono, pegados a Enviar: el grupo ocupa la casilla de Enviar y
   esa columna mide lo que necesiten los botones visibles. */
/* Altavoz y micrófono con aire entre ellos, y Enviar algo más separado: son acciones distintas. */
body.ia-standalone #iaApp .chat-send-group{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:0}
body.ia-standalone #iaApp .chat-send-group>#btnChatSend{margin-left:6px}
body.ia-standalone #iaApp .chat-send-group>[hidden]{display:none!important}
@media(min-width:761px){
    body.ia-standalone #iaApp .chat-module #chatComposer.chat-composer{grid-template-columns:36px 36px 36px 36px minmax(0,1fr) auto!important}
    body.ia-standalone #iaApp .chat-send-group{grid-column:6!important;align-self:center}
    body.ia-standalone #iaApp .chat-composer.is-multiline .chat-send-group{align-self:end}
}
@media(max-width:760px){
    body.ia-standalone #iaApp .chat-module #chatComposer.chat-composer{grid-template-columns:40px 40px 40px 40px minmax(0,1fr) auto!important}
    body.ia-standalone #iaApp .chat-send-group{grid-area:send!important}
    body.ia-standalone #iaApp .chat-send-group .chat-composer-tool{width:40px!important;height:40px!important;min-width:40px!important}
    body.ia-standalone #iaApp .chat-send-group{gap:4px}
    body.ia-standalone #iaApp .chat-send-group>#btnChatSend{margin-left:4px}
}
/* Micrófono activo: el mismo celeste que Internet activado. Mientras detecta voz late un anillo;
   mientras escribe lo dicho, el icono se atenúa a ratos. */
body.ia-standalone #iaApp .chat-mic[aria-pressed="true"],
body.ia-standalone #iaApp .chat-speak-toggle[aria-pressed="true"]{
    background:color-mix(in srgb,var(--ui-primary,#2563eb) 12%,var(--bg-card))!important;
    color:var(--ui-primary,#2563eb)!important;
    box-shadow:0 0 0 1px color-mix(in srgb,var(--ui-primary,#2563eb) 38%,transparent) inset!important;
}
body.ia-standalone #iaApp .chat-mic.is-speaking,
body.ia-standalone #iaApp .chat-speak-toggle.is-reading{animation:chatMicRing 1.2s ease-out infinite}
body.ia-standalone #iaApp .chat-mic.is-busy .icon{animation:chatMicPulse .9s ease-in-out infinite}
@keyframes chatMicRing{
    0%{box-shadow:0 0 0 1px color-mix(in srgb,var(--ui-primary,#2563eb) 38%,transparent) inset,0 0 0 0 color-mix(in srgb,var(--ui-primary,#2563eb) 35%,transparent)}
    100%{box-shadow:0 0 0 1px color-mix(in srgb,var(--ui-primary,#2563eb) 38%,transparent) inset,0 0 0 7px transparent}
}
@keyframes chatMicPulse{50%{opacity:.4}}
@media(prefers-reduced-motion:reduce){body.ia-standalone #iaApp .chat-mic.is-speaking,body.ia-standalone #iaApp .chat-mic.is-busy .icon{animation:none}}
/* Configuración de IA → Perfil → Dictado por voz: los dos ajustes en una fila. */
.chat-voice-settings{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.chat-voice-settings label{display:grid;gap:3px}
.chat-voice-settings label>span{font-size:var(--ia-font-small,12px);color:var(--text-muted)}
body.ia-standalone #iaApp .chat-thinking-toggle[aria-expanded="true"]{background:var(--bg-hover)}

/* Barra suspendida del nivel de pensamiento (sale del botón del cerebro). */
.chat-thinking-pop{
    position:fixed;z-index:4000;width:min(300px,calc(100vw - 16px));box-sizing:border-box;padding:12px 14px 10px;
    border:1px solid var(--border-light,var(--border));border-radius:16px;background:var(--bg-card);color:var(--text-primary);
    box-shadow:0 14px 38px rgba(0,0,0,.16),0 2px 8px rgba(0,0,0,.06);animation:chatEngineMenuIn .12s ease-out;
}
.chat-thinking-pop-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px;
    font-size:max(calc(10.5px * var(--ia-text-scale,1)),var(--ia-font-small,12px));font-weight:500;letter-spacing:.03em;text-transform:uppercase;color:var(--text-muted)}
.chat-thinking-pop-meta{display:inline-flex;align-items:center;gap:5px}
.chat-thinking-pop-head strong{text-transform:none;letter-spacing:0;color:var(--text-primary);font-weight:600}
.chat-thinking-help-button{width:26px;height:26px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:transparent;color:var(--text-muted);cursor:pointer}
.chat-thinking-help-button:hover,.chat-thinking-help-button:focus-visible{background:var(--bg-hover);color:var(--text-primary);outline:none}
.chat-thinking-help-button .icon{width:16px;height:16px}
.chat-thinking-pop .chat-thinking{padding:0}

/* Configuración → Conexiones → Infraestructura (estado real, solo lectura). */
.ia-infra-title{margin:14px 0 8px;font-size:max(calc(11px * var(--ia-text-scale,1)),var(--ia-font-small,12px));font-weight:500;letter-spacing:.03em;text-transform:uppercase;color:var(--text-muted)}
.ia-infra-item.is-model{align-items:flex-start}
.ia-infra-item.is-model>.icon{margin-top:2px}
.ia-infra-item.is-model strong{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ia-infra-file{font-family:var(--font-mono,'Ubuntu Mono',monospace)}
.ia-infra-bad{color:var(--danger,#dc2626)!important}
.ia-infra-list{display:grid;gap:0;border:1px solid var(--border-light,var(--border));border-radius:10px;overflow:hidden}
.ia-infra-row{display:grid;grid-template-columns:18px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:8px 12px;border-top:1px solid var(--border-light,var(--border));background:var(--bg-secondary)}
.ia-infra-row:first-child{border-top:0}
.ia-infra-row>.icon{width:16px;height:16px;color:var(--success,#16a34a)}
.ia-infra-row>.icon.is-bad{color:var(--danger,#dc2626)}
.ia-infra-row>span:not(.icon):not(.ia-infra-chip){display:grid;gap:1px;min-width:0;font-size:max(calc(12px * var(--ia-text-scale,1)),var(--ia-font-small,13px))}
.ia-infra-row small{color:var(--text-muted);font-size:max(calc(10.5px * var(--ia-text-scale,1)),var(--ia-font-small,12px));overflow-wrap:anywhere}
.ia-infra-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:max(calc(10.5px * var(--ia-text-scale,1)),var(--ia-font-small,12px));font-weight:500;white-space:nowrap;border:1px solid var(--border-light,var(--border));color:var(--text-secondary);background:var(--bg-card)}
.ia-infra-chip.is-ok{color:#15803d;border-color:color-mix(in srgb,#16a34a 35%,transparent);background:color-mix(in srgb,#16a34a 10%,var(--bg-card))}
.ia-infra-chip.is-error{color:#b91c1c;border-color:color-mix(in srgb,#dc2626 35%,transparent);background:color-mix(in srgb,#dc2626 10%,var(--bg-card))}
[data-theme='dark'] .ia-infra-chip.is-ok{color:#86efac}
[data-theme='dark'] .ia-infra-chip.is-error{color:#fca5a5}
.ia-infra-info{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--text-muted);cursor:pointer;-webkit-tap-highlight-color:transparent}
.ia-infra-info:hover,.ia-infra-info:focus-visible{background:var(--bg-hover);color:var(--text-primary);outline:none}
.ia-infra-info .icon{width:16px;height:16px}
.ia-infra-info-body{display:grid;gap:10px;padding:2px 0}
.ia-infra-info-what{margin:0;line-height:1.5;color:var(--text-primary)}
.ia-infra-info-list{display:grid;border:1px solid var(--border-light,var(--border));border-radius:10px;overflow:hidden}
.ia-infra-info-row{display:grid;grid-template-columns:140px minmax(0,1fr);gap:10px;padding:8px 12px;border-top:1px solid var(--border-light,var(--border));font-size:max(calc(12px * var(--ia-text-scale,1)),var(--ia-font-small,13px))}
.ia-infra-info-row:first-child{border-top:0}
.ia-infra-info-row>span:first-child{color:var(--text-muted)}
.ia-infra-info-row>span:last-child{overflow-wrap:anywhere}
.ia-infra-info-row code{font-family:var(--font-mono,'Ubuntu Mono',monospace);font-size:.95em}
.ia-infra-info-body .ia-infra-title{margin:4px 0 0}
@media (max-width:768px){.ia-infra-info-row{grid-template-columns:1fr;gap:2px}}

/* Nivel del micrófono (dictado activo): onda de barras a la derecha de la línea de aviso, con los dB. */
/* Con el micrófono activo (o su aviso), la línea «… puede cometer errores» se sustituye por el
   medidor o por el aviso, en el mismo sitio; al soltarlo vuelve el texto. */
body.ia-standalone #iaApp .chat-composer-hint.has-voice .chat-composer-hint-text,
body.ia-standalone #iaApp .chat-composer-hint.has-notice .chat-composer-hint-text,
body.ia-standalone #iaApp .chat-composer-hint.has-notice .chat-voice-meter{display:none!important}
.chat-voice-meter{display:inline-flex;align-items:center;gap:7px;vertical-align:middle;
    color:var(--text-muted);font-variant-numeric:tabular-nums}
.chat-voice-notice{display:inline-flex;align-items:center;gap:6px;color:var(--warning,#b45309);font-weight:500}
.chat-voice-notice[hidden]{display:none!important}
.chat-voice-meter[hidden]{display:none!important}
.chat-voice-meter b{min-width:44px;text-align:right;font-weight:500;font-size:max(calc(10px * var(--ia-text-scale,1)),11px)}
.chat-voice-bars{display:inline-flex;align-items:center;gap:2px;height:16px}
.chat-voice-bars i{display:block;width:3px;height:2px;border-radius:2px;background:var(--text-muted);opacity:.55;transition:height .08s linear}
.chat-voice-bars i.is-voice{background:var(--ui-primary,#2563eb);opacity:1}
.chat-voice-bars i.is-click{background:#f59e0b;opacity:1}
/* Prueba del micrófono. */
.chat-mic-test{display:grid;gap:12px;padding:4px 2px}
.chat-mic-test-help{margin:0;color:var(--text-secondary);font-size:var(--ia-font-small,13px);line-height:1.5}
.chat-mic-test-canvas{width:100%;height:220px;border-radius:10px;border:1px solid var(--border-light,var(--border));display:block}
.chat-mic-test-legend,.chat-mic-test-stats{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--text-muted);font-size:var(--ia-font-small,13px)}
.chat-mic-test-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-2px}
.chat-mic-test-legend i.is-raw{background:rgba(150,150,150,.6)}
.chat-mic-test-legend i.is-filtered{background:var(--ui-primary,#2563eb)}
.chat-mic-test-legend i.is-threshold{height:0;border-top:2px dashed #ef4444;border-radius:0;vertical-align:3px}
.chat-mic-test-legend i.is-click{background:#f59e0b}
.chat-mic-test-stats b{color:var(--text-primary);font-weight:500;font-variant-numeric:tabular-nums}
.chat-mic-test-settings{justify-content:flex-start;align-items:end}
.chat-mic-test-result{padding:10px 12px;border-radius:9px;background:var(--bg-secondary);color:var(--text-primary);line-height:1.5}
.chat-mic-test-result[hidden]{display:none}
.chat-voice-settings .chat-mic-test-button{align-self:end}
/* La línea bajo el cuadro mide lo mismo con el texto, con el medidor o con el aviso: al encender
   o apagar el micrófono el cuadro de escribir no se mueve. */
body.ia-standalone #iaApp .chat-composer-hint{height:20px;display:flex;align-items:center;justify-content:center;line-height:20px;overflow:hidden}
@media(max-width:760px){
    /* En móvil el medidor/aviso flota sobre el cuadro. Los avisos pueden ocupar dos líneas sin salirse. */
    body.ia-standalone #iaApp .chat-composer-zone{position:relative}
    body.ia-standalone #iaApp .chat-composer-hint{display:none}
    body.ia-standalone #iaApp .chat-composer-hint.has-voice,
    body.ia-standalone #iaApp .chat-composer-hint.has-notice{
        display:flex!important;
        position:absolute;
        left:50%;
        top:0;
        transform:translate(-50%,calc(-100% - 4px));
        margin:0;
        background:var(--bg-card);
        box-shadow:0 1px 4px rgba(0,0,0,.12);
        z-index:5;
    }
    body.ia-standalone #iaApp .chat-composer-hint.has-voice:not(.has-notice){
        width:auto!important;
        height:24px;
        padding:0 10px;
        border-radius:999px;
        white-space:nowrap;
    }
    body.ia-standalone #iaApp .chat-composer-hint.has-notice{
        width:max-content!important;
        max-width:calc(100vw - 24px);
        height:auto;
        min-height:24px;
        padding:5px 9px;
        border-radius:12px;
        white-space:normal;
        line-height:1.2;
        box-sizing:border-box;
    }
    body.ia-standalone #iaApp .chat-composer-hint.has-notice .chat-voice-notice{
        min-width:0;
        max-width:100%;
        white-space:normal;
        line-height:1.2;
        text-align:center;
        overflow-wrap:anywhere;
    }
}
.chat-voice-settings .chat-voice-autosend{align-content:start}
.chat-voice-settings .chat-voice-autosend .chat-switch{margin-top:6px}


body.ia-standalone #iaApp .chat-mic.is-unavailable{opacity:.4}

.chat-tts-settings{align-items:end}
.chat-tts-settings .chat-tts-voice select{max-width:260px}
body.ia-standalone .chat-tts-settings #btnChatTtsTest{min-height:42px}
.chat-tts-settings #btnChatTtsTest .icon{width:16px;height:16px}
@media (max-width:640px){.chat-tts-settings .chat-tts-voice select{max-width:100%}}
/* Dictado y voz tienen varios controles: van debajo del texto, en una línea que se reparte. */
.ia-config-toggle-row:has(>.chat-voice-settings){flex-wrap:wrap}
.ia-config-toggle-row>.chat-voice-settings{display:flex;flex:1 1 100%;justify-content:flex-start;align-items:end;gap:10px 14px}


/* El modelo pidió «foto» (⟪web: foto⟫): el botón + late unos segundos para que el usuario lo pulse. */
body.ia-standalone #iaApp #btnChatAttach.is-attention{animation:chatMicRing 1.2s ease-out infinite;color:var(--ui-primary,#2563eb)!important}


/* IA canonical tabs: same text metrics in every menu. */
body.ia-standalone .module-tabs .module-tab,
body.ia-admin-page .module-tabs .module-tab{
    font-family:'Ubuntu IA',Ubuntu,sans-serif;
    font-size:max(calc(13px * var(--ia-text-scale,1)),var(--ia-font-body,15px));
    font-style:normal;
    font-weight:400;
    line-height:1.2;
    letter-spacing:normal;
}
body.ia-standalone .module-tabs .module-tab.active,
body.ia-admin-page .module-tabs .module-tab.active{
    font-size:max(calc(13px * var(--ia-text-scale,1)),var(--ia-font-body,15px));
    font-weight:400;
}
@media(max-width:760px){
    body.ia-standalone .module-tabs,
    body.ia-admin-page .module-tabs{
        display:flex;
        flex-wrap:nowrap;
        align-items:center;
        overflow-x:auto;
        overflow-y:hidden;
        scrollbar-width:none;
        -webkit-overflow-scrolling:touch;
    }
    body.ia-standalone .module-tabs::-webkit-scrollbar,
    body.ia-admin-page .module-tabs::-webkit-scrollbar{display:none}
    body.ia-standalone .module-tabs .module-tab,
    body.ia-admin-page .module-tabs .module-tab{
        flex:0 0 auto;
        min-width:max-content;
        white-space:nowrap;
    }
}

/* =========================================================
   Ajustes: texto flexible a la izquierda y control alineado
   con la primera fila a la derecha. Los formularios de edición
   completos conservan su maquetación propia.
   ========================================================= */
.ia-settings-row,
.ia-config-toggle-row{
    align-items:flex-start;
}
.ia-settings-row>.ia-settings-copy,
.ia-config-toggle-row>div{
    flex:1 1 0;
    min-width:0;
}
.ia-settings-row>.ia-settings-select,
.ia-settings-row>.ia-settings-permission,
.ia-settings-row>.ia-settings-button,
.ia-settings-row>.ia-settings-state,
.ia-settings-row>.ia-2fa-actions,
.ia-settings-row>.ia-switch,
.ia-config-toggle-row>.ia-settings-select,
.ia-config-toggle-row>.chat-switch{
    flex:0 0 auto;
    align-self:flex-start;
}

/* Dictado, TTS y prueba de micrófono: cada ajuste ocupa una fila;
   la frase puede partirse y el control permanece arriba a la derecha. */
.ia-config-toggle-row:has(>.chat-voice-settings){
    flex-wrap:wrap;
}
.ia-config-toggle-row>.chat-voice-settings,
.chat-mic-test-settings{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    flex:1 1 100%;
    width:100%;
    align-items:stretch;
    gap:0;
}
.chat-voice-settings>label{
    width:100%;
    min-width:0;
    min-height:48px;
    box-sizing:border-box;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(150px,42%);
    align-items:start;
    column-gap:16px;
    padding:7px 0;
}
.chat-voice-settings>label>span:first-child{
    min-width:0;
    margin:0;
    padding-top:10px;
    line-height:1.35;
    white-space:normal;
    overflow-wrap:anywhere;
}
.chat-voice-settings>label>.ia-settings-select{
    justify-self:end;
    align-self:start;
    width:100%;
    max-width:260px;
    min-width:0;
}
.chat-voice-settings>label>.chat-switch{
    justify-self:end;
    align-self:start;
    margin-top:6px;
}
.chat-voice-settings>.chat-mic-test-button,
.chat-tts-settings>#btnChatTtsTest{
    justify-self:end;
    align-self:start;
    margin:7px 0;
}

@media(max-width:760px){
    /* Nunca apilar un ajuste simple: el texto gana las líneas necesarias
       y el control queda a la derecha, alineado con la primera línea. */
    .ia-settings-row{
        flex-direction:row;
        align-items:flex-start;
        gap:12px;
    }
    .ia-settings-row>.ia-settings-copy{
        flex:1 1 0;
        min-width:0;
    }
    .ia-settings-row>.ia-settings-select,
    .ia-config-toggle-row>.ia-settings-select{
        width:min(46%,220px);
        max-width:min(46%,220px);
        flex:0 0 min(46%,220px);
    }
    .ia-settings-row>.ia-settings-permission,
    .ia-settings-row>.ia-2fa-actions{
        width:min(48%,230px);
        max-width:min(48%,230px);
        justify-content:flex-end;
        flex-wrap:wrap;
    }
    .ia-settings-row>.ia-settings-button,
    .ia-settings-row>.ia-settings-state,
    .ia-settings-row>.ia-switch{
        flex:0 0 auto;
        max-width:48%;
    }
    .ia-config-toggle-row{
        align-items:flex-start;
        gap:12px;
    }
    .ia-config-toggle-row>div{
        flex:1 1 0;
        min-width:0;
    }

    .chat-voice-settings>label{
        grid-template-columns:minmax(0,1fr) minmax(128px,46%);
        column-gap:12px;
        min-height:50px;
        padding:6px 0;
    }
    .chat-voice-settings>label>span:first-child{
        padding-top:10px;
    }
    .chat-voice-settings>label>.ia-settings-select{
        width:100%;
        max-width:none;
    }
    .chat-voice-settings>.chat-mic-test-button,
    .chat-tts-settings>#btnChatTtsTest{
        max-width:46%;
        justify-self:end;
    }
}

@media(max-width:760px){
    /* Selectores que viven dentro de un campo: misma norma de ajuste,
       frase a la izquierda y selector arriba a la derecha. */
    .ia-config-field:has(>select){
        grid-template-columns:minmax(0,1fr) minmax(128px,46%);
        align-items:start;
        column-gap:12px;
        row-gap:5px;
    }
    .ia-config-field:has(>select)>span{
        grid-column:1;
        grid-row:1;
        min-width:0;
        padding-top:10px;
        line-height:1.35;
        white-space:normal;
        overflow-wrap:anywhere;
    }
    .ia-config-field:has(>select)>select{
        grid-column:2;
        grid-row:1;
        width:100%;
        min-width:0;
        align-self:start;
    }
    .ia-config-field:has(>select)>.ia-config-range,
    .ia-config-field:has(>select)>small{
        grid-column:1 / -1;
    }
    .ia-sensitive-dialog label:has(>select){
        display:grid;
        grid-template-columns:minmax(0,1fr) minmax(128px,46%);
        align-items:start;
        gap:12px;
    }
    .ia-sensitive-dialog label:has(>select)>span{
        min-width:0;
        padding-top:10px;
        line-height:1.35;
        overflow-wrap:anywhere;
    }
    .ia-sensitive-dialog label:has(>select)>select{
        width:100%;
        min-width:0;
        align-self:start;
    }
}

/* =========================================================
   Móvil · acciones de ajustes
   Selectores/switches permanecen a la derecha. Los botones son
   acciones: van debajo del texto, alineados a la izquierda y
   nunca pueden desbordar el contenedor.
   ========================================================= */
@media(max-width:760px){
    .ia-settings-row:has(>.ia-settings-button),
    .ia-settings-row:has(>.ia-settings-permission),
    .ia-settings-row:has(>.ia-2fa-actions){
        flex-direction:column;
        align-items:stretch;
        gap:10px;
    }
    .ia-settings-row:has(>.ia-settings-button)>.ia-settings-copy,
    .ia-settings-row:has(>.ia-settings-permission)>.ia-settings-copy,
    .ia-settings-row:has(>.ia-2fa-actions)>.ia-settings-copy{
        width:100%;
        flex:0 1 auto;
    }
    .ia-settings-row>.ia-settings-button{
        align-self:flex-start;
        width:auto;
        max-width:100%;
    }
    .ia-settings-row>.ia-settings-permission,
    .ia-settings-row>.ia-2fa-actions{
        width:100%;
        max-width:100%;
        justify-content:flex-start;
        align-items:center;
    }
    .ia-settings-permission>.ia-settings-button,
    .ia-2fa-actions>.ia-settings-button{
        max-width:100%;
    }

    .ia-config-card-actions{
        justify-content:flex-start;
    }
    .ia-config-card-actions>.btn,
    .ia-config-card-actions>.ia-settings-button,
    .ia-config-card-actions>a{
        max-width:100%;
    }

    .chat-voice-settings>.chat-mic-test-button,
    .chat-tts-settings>#btnChatTtsTest,
    .chat-mic-test-settings>.ia-settings-button{
        justify-self:start;
        align-self:start;
        width:auto;
        max-width:100%;
        margin:7px 0;
    }

    .ia-settings-button,
    .ia-config-card-actions .btn,
    .ia-config-card-actions a{
        box-sizing:border-box;
        min-width:0;
        max-width:100%;
    }
}

/* Ningún botón de ajustes puede desbordar en móvil. */
@media(max-width:760px){
    .ia-settings-button,
    .ia-config-card-actions .btn,
    .ia-config-card-actions a,
    .ia-2fa-actions .ia-settings-button,
    .ia-settings-permission .ia-settings-button{
        overflow:hidden;
        text-overflow:ellipsis;
    }
    .ia-settings-button .ia-button-label,
    .ia-config-card-actions .ia-button-label{
        min-width:0;
        max-width:100%;
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
    }
}

/* Móvil: los selectores de ajustes van debajo del texto y alineados a la derecha.
   Los interruptores compactos pueden seguir a la derecha de la frase. */
@media(max-width:760px){
    .ia-settings-row:has(>.ia-settings-select){
        flex-wrap:wrap;
    }
    .ia-settings-row:has(>.ia-settings-select)>.ia-settings-copy{
        width:100%;
        flex:1 1 100%;
    }
    .ia-settings-row>.ia-settings-select{
        width:min(100%,280px)!important;
        max-width:min(100%,280px)!important;
        flex:0 1 280px!important;
        margin-left:auto;
        align-self:flex-start;
    }

    .ia-config-field:has(>select){
        display:grid;
        grid-template-columns:minmax(0,1fr)!important;
        row-gap:7px;
    }
    .ia-config-field:has(>select)>span,
    .ia-config-field:has(>select)>small{
        grid-column:1!important;
        width:100%;
    }
    .ia-config-field:has(>select)>select{
        grid-column:1!important;
        grid-row:auto!important;
        width:min(100%,280px)!important;
        max-width:min(100%,280px)!important;
        justify-self:end;
    }

    .chat-voice-settings>label:has(>.ia-settings-select){
        display:grid;
        grid-template-columns:minmax(0,1fr)!important;
        row-gap:7px;
        column-gap:0;
    }
    .chat-voice-settings>label:has(>.ia-settings-select)>span:first-child{
        grid-column:1;
        padding-top:0;
        width:100%;
    }
    .chat-voice-settings>label:has(>.ia-settings-select)>.ia-settings-select{
        grid-column:1;
        width:min(100%,280px)!important;
        max-width:min(100%,280px)!important;
        justify-self:end;
    }

    .ia-user-field:has(>select){
        display:grid;
        grid-template-columns:minmax(0,1fr)!important;
        row-gap:7px;
    }
    .ia-user-field:has(>select)>label,
    .ia-user-field:has(>select)>small{
        grid-column:1!important;
        width:100%;
    }
    .ia-user-field:has(>select)>select{
        grid-column:1!important;
        grid-row:auto!important;
        width:min(100%,280px)!important;
        max-width:min(100%,280px)!important;
        justify-self:end;
    }
}

/* Configuración → Empresa */
.ia-company-grid{margin-bottom:12px}
.ia-company-logo{display:grid;grid-template-columns:220px minmax(0,1fr);gap:14px;align-items:stretch}
.ia-company-logo-preview{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:120px;padding:12px;border:1px solid var(--border);border-radius:12px;background:#fff;color:#9ca3af;font-size:13px}
.ia-company-logo-preview img{max-width:100%;max-height:110px;object-fit:contain}
.ia-company-logo-preview .icon{width:26px;height:26px}
.ia-company-accent{display:flex;align-items:center;gap:8px}
.ia-company-accent input[type="color"]{width:44px;height:34px;padding:2px;border:1px solid var(--border);border-radius:8px;background:transparent;cursor:pointer}
@media(max-width:760px){.ia-company-logo{grid-template-columns:minmax(0,1fr)}}

/* Configuración → Empresa (15-10): tarjetas de empresas como la biblioteca general; una sola activa (verde).
   Pulsar la tarjeta la elige para los informes; lápiz y papelera arriba a la derecha; la última es «Nueva empresa». */
.ia-co-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px;margin-top:4px}
.ia-co-card{position:relative;display:flex;flex-direction:column;min-width:0;border:2px solid var(--border);border-radius:12px;background:var(--bg-card,var(--bg-primary));cursor:pointer;overflow:hidden;
    font:inherit;color:inherit;text-align:left;padding:0;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.ia-co-card:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.12)}
.ia-co-card:focus-visible{outline:2px solid var(--text-muted);outline-offset:2px}
.ia-co-card.is-on{border-color:#16a34a;box-shadow:0 0 0 1px #16a34a;background:color-mix(in srgb,#16a34a 9%,var(--bg-card,var(--bg-primary)))}
.ia-co-card.is-on .ia-co-info strong{color:#15803d}
.ia-co-cover{position:relative;height:96px;display:flex;align-items:center;justify-content:center;padding:12px;background:#fff;border-bottom:3px solid var(--co-accent,#1f2937)}
.ia-co-cover img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.ia-co-cover>.icon{width:30px;height:30px;color:#9ca3af}
.ia-co-check{position:absolute;right:8px;bottom:8px;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#16a34a;color:#fff;box-shadow:0 2px 6px rgba(0,0,0,.25)}
.ia-co-check .icon{width:15px;height:15px}
.ia-co-info{display:flex;flex-direction:column;gap:3px;padding:9px 10px 11px;min-width:0}
.ia-co-info strong{font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ia-co-info span{color:var(--text-muted);font-size:12px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ia-co-actions{position:absolute;right:6px;top:6px;display:flex;gap:4px;opacity:0;transition:opacity .15s ease}
.ia-co-card:hover .ia-co-actions,.ia-co-card:focus-within .ia-co-actions{opacity:1}
@media(hover:none){.ia-co-actions{opacity:1}}
.ia-co-actions button{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:0;border-radius:8px;background:rgba(255,255,255,.92);color:#111827;box-shadow:0 1px 4px rgba(0,0,0,.2);cursor:pointer}
.ia-co-actions .icon{width:15px;height:15px}
@media(hover:hover){
    .ia-co-actions button{transition:background .12s ease,color .12s ease,transform .12s ease,box-shadow .12s ease}
    .ia-co-actions button:hover{background:#111827;color:#fff;transform:scale(1.12);box-shadow:0 3px 10px rgba(0,0,0,.3)}
    .ia-co-actions button[data-co-delete]:hover{background:#dc2626;color:#fff}
}
.ia-co-card.is-add{align-items:center;justify-content:center;gap:8px;min-height:150px;border-style:dashed;color:var(--text-muted);background:transparent}
.ia-co-card.is-add .icon{width:24px;height:24px}
.ia-co-card.is-add:hover{color:var(--text-primary);border-color:var(--text-muted)}
.ia-co-editor-status{display:flex;justify-content:flex-end;margin-bottom:8px}
@media(max-width:760px){.ia-co-cards{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}}

/* Sin el rectángulo de toque del navegador en toda la aplicación (15-10): cada botón ya tiene su propio efecto. */
html,body,body *{-webkit-tap-highlight-color:transparent}

/* Configuración → Montaje: combinaciones de modelos y ocupación de las dos B70. */
.ia-mount-legend{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:2px 0 14px}
.ia-mount-legend-rel{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;border:1px solid var(--border);background:var(--bg-primary);font-size:11px;color:var(--text-secondary)}
.ia-mount-chip{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:600;line-height:1.2;border:1px solid transparent}
.ia-mount-chip.is-gpu0{color:#1d4ed8;background:color-mix(in srgb,#3b82f6 13%,var(--bg-card));border-color:color-mix(in srgb,#3b82f6 34%,var(--border))}
.ia-mount-chip.is-gpu1{color:#15803d;background:color-mix(in srgb,#22c55e 12%,var(--bg-card));border-color:color-mix(in srgb,#22c55e 32%,var(--border))}
.ia-mount-chip.is-dual{color:#7e22ce;background:color-mix(in srgb,#a855f7 12%,var(--bg-card));border-color:color-mix(in srgb,#a855f7 32%,var(--border))}
.ia-mount-chip.is-demand{color:#c2410c;background:color-mix(in srgb,#f97316 12%,var(--bg-card));border-color:color-mix(in srgb,#f97316 34%,var(--border))}
.ia-mount-combos{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}
.ia-mount-combo{position:relative;min-width:0;padding:12px;border:1px solid var(--border);border-radius:13px;background:var(--bg-card);transition:border-color .15s ease,box-shadow .15s ease}
.ia-mount-combo.is-active{border-color:#16a34a;box-shadow:0 0 0 1px color-mix(in srgb,#16a34a 70%,transparent),0 8px 22px rgba(0,0,0,.06)}
.ia-mount-combo-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:9px}
.ia-mount-combo-head>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.ia-mount-combo-head strong{font-size:14px;font-weight:600}
.ia-mount-combo-head span:not(.ia-mount-now){font-size:12px;color:var(--text-muted);line-height:1.35}
.ia-mount-now{flex:0 0 auto;padding:3px 8px;border-radius:999px;background:#16a34a;color:#fff;font-size:11px;font-weight:600}
.ia-mount-relation{display:flex;align-items:center;gap:8px;margin:0 0 8px;padding:6px 8px;border:1px solid var(--border-light,var(--border));border-radius:9px;background:var(--bg-primary)}
.ia-mount-relation>b{width:22px;text-align:center;font-size:18px;line-height:1;color:var(--text-secondary)}
.ia-mount-relation>span{display:flex;flex-direction:column;min-width:0;gap:1px}
.ia-mount-relation strong{font-size:11.5px;font-weight:650}
.ia-mount-relation small{font-size:10.8px;color:var(--text-muted);line-height:1.25}
.ia-mount-relation.is-collab{border-color:color-mix(in srgb,#0ea5e9 28%,var(--border));background:color-mix(in srgb,#0ea5e9 6%,var(--bg-primary))}
.ia-mount-relation.is-collab>b{color:#0284c7}
.ia-mount-relation.is-split{border-color:color-mix(in srgb,#a855f7 28%,var(--border));background:color-mix(in srgb,#a855f7 6%,var(--bg-primary))}
.ia-mount-relation.is-split>b{color:#7e22ce}
.ia-mount-lanes{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ia-mount-lane{min-width:0;min-height:78px;padding:9px 10px;border-radius:10px;border:1px solid var(--border);display:flex;flex-direction:column;gap:2px}
.ia-mount-lane.is-gpu0{background:color-mix(in srgb,#3b82f6 9%,var(--bg-primary));border-color:color-mix(in srgb,#3b82f6 25%,var(--border))}
.ia-mount-lane.is-gpu1{background:color-mix(in srgb,#22c55e 9%,var(--bg-primary));border-color:color-mix(in srgb,#22c55e 25%,var(--border))}
.ia-mount-lane.is-dual{background:color-mix(in srgb,#a855f7 9%,var(--bg-primary));border-color:color-mix(in srgb,#a855f7 25%,var(--border))}
.ia-mount-lane.is-demand{background:color-mix(in srgb,#f97316 9%,var(--bg-primary));border-color:color-mix(in srgb,#f97316 25%,var(--border))}
.ia-mount-lane-label{font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}
.ia-mount-lane strong{font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ia-mount-lane small{font-size:11.5px;color:var(--text-muted);line-height:1.3}
.ia-mount-models{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.ia-mount-model{min-width:0;padding:11px 12px;border:1px solid var(--border);border-radius:11px;background:var(--bg-primary);display:flex;flex-direction:column;gap:5px}
.ia-mount-model-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ia-mount-model-head strong{font-size:14px;font-weight:600}
.ia-mount-model-name{font-size:12.5px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ia-mount-model-gpu{font-size:11.5px;color:var(--text-muted);line-height:1.35}
.ia-mount-use-label{margin-top:3px;font-size:10.5px;font-weight:650;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}
.ia-mount-uses{display:flex;flex-wrap:wrap;gap:5px}
.ia-mount-uses span{padding:3px 7px;border-radius:7px;background:color-mix(in srgb,var(--ui-primary,#2563eb) 7%,var(--bg-card));border:1px solid color-mix(in srgb,var(--ui-primary,#2563eb) 20%,var(--border));font-size:10.5px;color:var(--text-secondary)}
.ia-mount-groups{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px}
.ia-mount-groups span{padding:2px 7px;border-radius:999px;background:var(--bg-secondary);border:1px solid var(--border-light,var(--border));font-size:10.5px;color:var(--text-secondary)}
.ia-mount-model>small{margin-top:auto;color:var(--text-muted);font-size:11px}
@media(max-width:760px){
    .ia-mount-combos,.ia-mount-models{grid-template-columns:minmax(0,1fr)}
    .ia-mount-lanes{grid-template-columns:minmax(0,1fr)}
}

/* Configuración → Acerca de… (15-10). */
.ia-about-hero{display:flex;align-items:center;gap:16px;padding:18px 20px;margin-bottom:14px;border:1px solid var(--border-light,var(--border));border-radius:14px;background:var(--bg-soft-gradient,var(--bg-card))}
.ia-about-logo{width:64px;height:64px;border-radius:16px;flex:0 0 auto}
.ia-about-title{flex:1 1 auto;min-width:0}
.ia-about-title h2{margin:0 0 4px;font-size:22px;font-weight:600}
.ia-about-title p{margin:0;color:var(--text-secondary);font-size:13.5px;line-height:1.45}
.ia-about-version{flex:0 0 auto;padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--ui-primary,#2563eb) 12%,var(--bg-card));color:var(--ui-primary,#2563eb);font-weight:600;font-size:13px}
[data-about-body] .ia-about-row{display:grid;grid-template-columns:20px minmax(120px,190px) minmax(0,1fr);align-items:center;gap:10px;padding:8px 2px;margin:0!important;border:0!important;border-top:1px solid var(--border-light,var(--border))!important;border-radius:0!important;background:none!important;box-shadow:none!important;font-size:13.5px}
[data-about-body] .ia-config-card-head+.ia-about-row{border-top:0!important}
[data-about-body] .ia-about-row .icon{width:16px;height:16px;color:var(--text-muted)}
[data-about-body] .ia-about-row>span:nth-child(2){color:var(--text-secondary)}
[data-about-body] .ia-about-row strong{font-weight:500;overflow-wrap:anywhere}
.ia-about-credits{text-align:center}
.ia-about-credits p{margin:4px 0;display:flex;align-items:center;justify-content:center;gap:6px}
.ia-about-credits .icon{width:15px;height:15px}
.ia-about-credits a{color:inherit}
.ia-about-rights{color:var(--text-muted);font-size:12.5px}
@media(max-width:760px){
    .ia-about-hero{flex-wrap:wrap;padding:14px}
    [data-about-body] .ia-about-row{grid-template-columns:20px minmax(0,1fr);row-gap:2px}
    [data-about-body] .ia-about-row strong{grid-column:2}
}

/* Botones del cuadro de escribir (15-10): la misma separación entre todos y el mismo tamaño en cada grupo.
   En el móvil caben los ocho sin pisarse: 36 px con 6 px de aire y, en pantallas muy estrechas, 33 px con 4 px. */
body.ia-standalone #iaApp{--cbtn:36px;--cgap:6px}
@media(min-width:761px){
    body.ia-standalone #iaApp .chat-module #chatComposer.chat-composer{
        grid-template-columns:var(--cbtn) var(--cbtn) var(--cbtn) var(--cbtn) minmax(0,1fr) auto!important;
        column-gap:var(--cgap)!important;
    }
}
@media(max-width:760px){
    body.ia-standalone #iaApp .chat-module #chatComposer.chat-composer,
    body.ia-standalone #iaApp .chat-module.engine-tecko #chatComposer.chat-composer{
        grid-template-columns:var(--cbtn) var(--cbtn) var(--cbtn) auto minmax(0,1fr) auto!important;
        column-gap:var(--cgap)!important;
    }
    body.ia-standalone #iaApp #btnChatAttach,
    body.ia-standalone #iaApp .chat-engine-compact,
    body.ia-standalone #iaApp #btnChatWeb,
    body.ia-standalone #iaApp #btnChatExpand,
    body.ia-standalone #iaApp .chat-send-group .chat-composer-tool{
        width:var(--cbtn)!important;height:var(--cbtn)!important;min-width:var(--cbtn)!important;min-height:var(--cbtn)!important;
    }
    body.ia-standalone #iaApp #btnChatSend{width:calc(var(--cbtn) + 4px)!important;height:calc(var(--cbtn) + 4px)!important;min-width:calc(var(--cbtn) + 4px)!important;min-height:calc(var(--cbtn) + 4px)!important}
}
@media(max-width:379px){body.ia-standalone #iaApp{--cbtn:33px;--cgap:4px}}
body.ia-standalone #iaApp .chat-send-group{gap:var(--cgap)!important}
body.ia-standalone #iaApp .chat-send-group>#btnChatSend{margin-left:0!important}

/* Cada modelo con su color en «Recientes» (15-10): Venus verde, Mercurio violeta, Neptuno azul, Saturno rojo. */
.chat-history-engine.is-neptuno{background:transparent;color:#0284c7}
[data-theme='dark'] .chat-history-engine.is-neptuno{color:#7dd3fc;background:transparent}
.chat-history-engine.is-saturno{background:transparent;color:#dc2626}
.chat-history-engine.is-mercurio{background:transparent;color:#7c3aed}
[data-theme='dark'] .chat-history-engine.is-saturno{color:#f87171;background:transparent}
[data-theme='dark'] .chat-history-engine.is-mercurio{color:#c4b5fd;background:transparent}


/* Tecko IA · ajustes de jerarquía visual del aside izquierdo (20-10-2026). */
body.ia-standalone #iaApp .chat-history-list{
    background:color-mix(in srgb,var(--text-primary) 3.5%,var(--bg-secondary));
    border-radius:8px;
}
/* El usuario queda arriba del menú: al abrir, el bloque completo crece hacia arriba y las opciones aparecen debajo. */
body.ia-standalone #iaApp .chat-sidebar-user{display:flex;flex-direction:column}
body.ia-standalone #iaApp #btnIaAccountMenu{order:1;flex:0 0 auto}
body.ia-standalone #iaApp .ia-account-menu{order:2}
html[data-ia-account-open="1"] body.ia-standalone #iaApp .ia-account-menu{transform:translateY(0)}
