/* JurisChileIA v27 — workspace jurídico moderno y rápido */
:root{
  --j27-bg:#f8f8f6;
  --j27-panel:#ffffff;
  --j27-side:#f1f2ef;
  --j27-ink:#242624;
  --j27-muted:#717671;
  --j27-line:#e0e2de;
  --j27-line2:#cfd3ce;
  --j27-brand:#26372d;
  --j27-brand2:#3f5648;
  --j27-soft:#edf1ee;
  --j27-green:#3b6a4d;
  --j27-danger:#b42318;
}
body.j27-ai-screen{overflow:hidden;background:var(--j27-bg)!important}
body.j27-ai-screen .topbar,
body.j27-ai-screen .footer{display:none!important}
body.j27-ai-screen main{min-height:0!important}

.j27-page{
  min-height:100dvh;
  background:var(--j27-bg);
  color:var(--j27-ink);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
}
.j27-shell{
  height:100dvh;
  display:grid;
  grid-template-columns:272px minmax(0,1fr);
  overflow:hidden;
}
.j27-sidebar{
  min-width:0;
  background:var(--j27-side);
  border-right:1px solid var(--j27-line);
  padding:16px 12px;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.j27-sidebar-top{display:flex;align-items:center;justify-content:space-between;padding:2px 4px 16px}
.j27-logo{display:inline-flex;align-items:center;gap:9px;text-decoration:none;color:var(--j27-ink)}
.j27-logo>span{
  width:34px;height:34px;border-radius:10px;background:var(--j27-brand);
  color:#fff;display:grid;place-items:center;font-size:1.25rem;font-weight:900
}
.j27-logo strong{font-size:1.05rem;letter-spacing:-.02em}
.j27-icon-btn{border:0;background:transparent;color:#555b56;cursor:pointer;width:36px;height:36px;border-radius:9px;font-size:1.15rem}
.j27-icon-btn:hover{background:#e5e8e4}
.j27-mobile-close,.j27-mobile-menu{display:none}
.j27-new-chat{
  display:flex;align-items:center;justify-content:center;gap:7px;
  min-height:42px;border-radius:10px;background:var(--j27-brand);color:#fff;
  text-decoration:none;font-size:.9rem;font-weight:800;margin:0 2px 18px
}
.j27-side-section{min-height:0;display:flex;flex-direction:column;flex:1}
.j27-side-label{
  padding:0 8px 7px;font-size:.7rem;font-weight:850;letter-spacing:.08em;
  color:#858a85;text-transform:uppercase
}
.j27-conversations{display:grid;gap:3px;overflow-y:auto;overscroll-behavior:contain;padding:0 2px 12px}
.j27-conversations>a{
  display:grid;gap:2px;padding:9px 9px;border-radius:9px;text-decoration:none;color:#464b47
}
.j27-conversations>a:hover,.j27-conversations>a.active{background:#fff;color:#242824}
.j27-conversations>a span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.85rem;font-weight:690}
.j27-conversations>a small{font-size:.69rem;color:#8a8f8a}
.j27-empty-side{font-size:.8rem;color:#858a85;padding:8px}
.j27-sidebar-status{border-top:1px solid #daddd8;padding:13px 7px 2px}
.j27-sidebar-status>div{display:flex;align-items:center;gap:7px;font-size:.8rem}
.j27-sidebar-status small{display:block;color:#858a85;margin:4px 0 0 15px;font-size:.69rem}
.j27-status-dot{width:8px;height:8px;border-radius:50%;background:#4a8a61;box-shadow:0 0 0 3px rgba(74,138,97,.12)}

.j27-main{min-width:0;height:100dvh;display:grid;grid-template-rows:58px minmax(0,1fr) auto;background:#fff}
.j27-topbar{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:0 24px;border-bottom:1px solid #eceeeb;background:rgba(255,255,255,.96);
  backdrop-filter:blur(12px);z-index:10
}
.j27-top-title{display:flex;align-items:baseline;gap:9px;min-width:0}
.j27-top-title strong{font-size:.95rem;white-space:nowrap}
.j27-top-title span{font-size:.76rem;color:#8a8e8a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.j27-top-actions{display:flex;align-items:center;gap:9px}
.j27-engine-chip{
  display:inline-flex;align-items:center;gap:6px;background:#f2f5f2;border:1px solid #e1e6e2;
  color:#506056;padding:6px 9px;border-radius:999px;font-size:.72rem;font-weight:750;white-space:nowrap
}
.j27-engine-chip i{width:6px;height:6px;border-radius:50%;background:#4d8d62}
.j27-top-link{font-size:.8rem;font-weight:750;text-decoration:none;color:#505650}
.j27-top-link:hover{text-decoration:underline}

.j27-chat-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;background:#fff}
.j27-chat-inner{width:min(860px,calc(100% - 32px));margin:0 auto;padding:34px 0 28px}
.j27-welcome{min-height:calc(100dvh - 230px);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:24px 0 60px}
.j27-ai-mark{
  width:52px;height:52px;border-radius:15px;background:var(--j27-brand);color:#fff;
  display:grid;place-items:center;font-weight:900;box-shadow:0 8px 20px rgba(38,55,45,.12)
}
.j27-welcome h1{font-size:clamp(2rem,5vw,3.15rem);letter-spacing:-.045em;margin:18px 0 10px;color:#252825}
.j27-welcome>p{max-width:650px;margin:0;color:#727772;line-height:1.65;font-size:.98rem}
.j27-starters{width:min(720px,100%);display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:26px}
.j27-starters button{
  min-height:82px;border:1px solid var(--j27-line);background:#fff;border-radius:13px;padding:14px;
  display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;text-align:left;cursor:pointer;color:#333733
}
.j27-starters button:hover{background:#fafbf9;border-color:#bcc4bd;transform:translateY(-1px)}
.j27-starters button>span{width:32px;height:32px;border-radius:9px;background:#f0f3f0;display:grid;place-items:center;color:#526158;font-weight:900}
.j27-starters button div{display:grid;gap:3px}.j27-starters strong{font-size:.88rem}.j27-starters small{color:#7f847f;font-size:.75rem;line-height:1.35}
.j27-data-note{display:flex;align-items:center;gap:9px;margin-top:20px;color:#667067}
.j27-data-note>span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#edf5ef;color:#37734d;font-size:.75rem;font-weight:900}
.j27-data-note div{display:flex;gap:5px;align-items:baseline}.j27-data-note strong{font-size:.8rem}.j27-data-note small{font-size:.72rem;color:#8a8f8a}

.j27-message{display:grid;grid-template-columns:36px minmax(0,1fr);gap:11px;margin:0 0 28px}
.j27-message-avatar{
  width:36px;height:36px;border-radius:10px;background:#eef0ed;color:#4c544e;
  display:grid;place-items:center;font-size:.7rem;font-weight:900
}
.j27-message.assistant .j27-message-avatar{background:var(--j27-brand);color:#fff}
.j27-message.user{width:min(760px,92%);margin-left:auto}
.j27-message.user .j27-message-avatar{order:2}
.j27-message.user .j27-message-body{background:#f1f3f0;border-radius:16px;padding:13px 15px}
.j27-message-body{min-width:0}
.j27-message-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.j27-message-head strong{font-size:.8rem}.j27-message-head span{font-size:.68rem;color:#8a8f8a}
.j27-message-text{font-size:.96rem;line-height:1.72;color:#303430;overflow-wrap:anywhere}
.j27-message-files{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.j27-message-files span{display:inline-flex;padding:6px 8px;border:1px solid #dfe2de;background:#fff;border-radius:8px;color:#606660;font-size:.72rem}
.j27-sources{margin-top:17px;border:1px solid #e1e4df;border-radius:12px;background:#fbfcfa;overflow:hidden}
.j27-sources summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:10px;padding:11px 13px;font-size:.78rem}
.j27-sources summary::-webkit-details-marker{display:none}.j27-sources summary span{font-weight:800}.j27-sources summary b{font-weight:700;color:#7d827d}
.j27-source-grid{display:grid;gap:7px;padding:0 9px 9px}
.j27-source-card{display:grid;gap:4px;padding:11px;border:1px solid #e1e4df;border-radius:9px;background:#fff;text-decoration:none;color:#303430}
.j27-source-card:hover{border-color:#aeb8b0;background:#fdfefd}
.j27-source-head{display:flex;justify-content:space-between;gap:8px}.j27-source-head strong{font-size:.85rem;line-height:1.35}.j27-source-head span{flex:0 0 auto;height:max-content;padding:3px 6px;border-radius:999px;background:#edf7ef;color:#36734d;font-size:.63rem;font-weight:850}
.j27-source-card>small{color:#747a75;font-size:.72rem}.j27-source-card>em{color:#637067;font-size:.7rem;font-style:normal;font-weight:750}
.j27-source-card>p{margin:4px 0 2px;font-size:.76rem;line-height:1.48;color:#5d625e;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.j27-source-card>b{font-size:.71rem;color:#4b6555}

.j27-thinking-row{display:flex;align-items:center;gap:5px;color:#687068;font-size:.82rem;padding:7px 0}
.j27-thinking-row i{width:7px;height:7px;border-radius:50%;background:#98a198;animation:j27pulse 1.1s infinite ease-in-out}
.j27-thinking-row i:nth-child(2){animation-delay:.13s}.j27-thinking-row i:nth-child(3){animation-delay:.26s}
@keyframes j27pulse{0%,60%,100%{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.j27-thinking-text{margin-left:4px}
.j27-thinking-steps{display:flex;gap:5px;margin-top:5px}.j27-thinking-steps span{font-size:.66rem;padding:4px 6px;border-radius:999px;background:#f0f1ef;color:#969b96}.j27-thinking-steps span.active{background:#edf3ee;color:#497057}
.j27-error-message .j27-message-body{border:1px solid #f1c6c1;background:#fff6f5;border-radius:12px;padding:12px}.j27-error-message .j27-message-text{color:#9f2d23}

.j27-composer-wrap{background:linear-gradient(180deg,rgba(255,255,255,0),#fff 18%);padding:10px 20px 13px}
.j27-composer{
  width:min(860px,100%);margin:0 auto;border:1px solid #cfd3ce;border-radius:18px;
  background:#fff;padding:10px 11px 9px;box-shadow:0 8px 28px rgba(38,55,45,.08)
}
.j27-composer:focus-within{border-color:#89968d;box-shadow:0 8px 30px rgba(38,55,45,.11)}
.j27-composer textarea{
  width:100%;min-height:42px;max-height:180px;resize:none;border:0!important;outline:0!important;
  box-shadow:none!important;background:transparent!important;padding:8px 7px!important;font-size:16px;line-height:1.5;color:#2a2e2a
}
.j27-composer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 3px 0}
.j27-toolbar-left,.j27-toolbar-right{display:flex;align-items:center;gap:8px}
.j27-attach{display:flex;align-items:center;gap:5px;padding:6px 8px;border-radius:8px;cursor:pointer;color:#59615a;font-size:.76rem}
.j27-attach:hover{background:#f3f4f2}.j27-attach input{position:absolute;opacity:0;pointer-events:none}.j27-attach span{font-size:.9rem}.j27-attach b{font-weight:750}
.j27-file-limit,.j27-private{font-size:.68rem;color:#929792}.j27-private{padding-right:3px}
.j27-send{
  width:34px;height:34px;border:0;border-radius:10px;background:var(--j27-brand);color:#fff;
  font-size:1.15rem;font-weight:900;display:grid;place-items:center;cursor:pointer
}
.j27-send:hover{background:#1f2f26}.j27-send:disabled{opacity:.5;cursor:wait}
.j27-file-preview{display:flex;gap:7px;overflow-x:auto;padding:2px 3px 8px}
.j27-file-preview[hidden]{display:none}
.j27-file-pill{
  flex:0 0 auto;max-width:260px;display:grid;grid-template-columns:31px minmax(0,1fr) 24px;gap:7px;
  align-items:center;padding:7px;border:1px solid #e0e3df;background:#f8f9f7;border-radius:10px
}
.j27-file-pill>span{width:31px;height:31px;border-radius:7px;background:#e7ede8;color:#4b6655;display:grid;place-items:center;font-size:.61rem;font-weight:900}
.j27-file-pill>div{min-width:0;display:grid}.j27-file-pill strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.72rem}.j27-file-pill small{font-size:.65rem;color:#8a8f8a}
.j27-file-pill button{border:0;background:transparent;color:#8a8f8a;font-size:1rem;cursor:pointer}
.j27-disclaimer{text-align:center;margin:7px auto 0;color:#9a9e9a;font-size:.65rem}
.j27-live-message{animation:j27fade .18s ease-out}@keyframes j27fade{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}

.j27-public{min-height:100dvh;background:#f7f8f6;display:grid;place-items:center;padding:36px}
.j27-public-inner{width:min(1040px,100%)}.j27-public-copy{max-width:760px;margin:80px auto 50px;text-align:center}.j27-kicker{font-size:.75rem;font-weight:900;letter-spacing:.12em;color:#5e6e63;text-transform:uppercase}
.j27-public h1{font-size:clamp(2.8rem,7vw,5.5rem);line-height:.95;letter-spacing:-.055em;margin:16px 0 20px}.j27-public p{max-width:700px;margin:auto;color:#6e736e;font-size:1.08rem;line-height:1.7}
.j27-public-actions{display:flex;gap:9px;justify-content:center;margin-top:24px}.j27-primary,.j27-secondary{padding:11px 17px;border-radius:10px;text-decoration:none;font-weight:800}.j27-primary{background:var(--j27-brand);color:#fff}.j27-secondary{background:#fff;color:var(--j27-brand);border:1px solid #ccd1cc}
.j27-public-proof{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.j27-public-proof>div{background:#fff;border:1px solid #e0e2de;border-radius:14px;padding:18px;display:grid;gap:3px}.j27-public-proof strong{font-size:1.7rem}.j27-public-proof span{font-size:.78rem;color:#777c77}

@media(max-width:900px){
  .j27-shell{grid-template-columns:1fr}
  .j27-sidebar{
    position:fixed;inset:0 auto 0 0;width:min(310px,88vw);z-index:100;
    transform:translateX(-102%);transition:transform .18s ease;box-shadow:18px 0 40px rgba(0,0,0,.12)
  }
  .j27-sidebar.open{transform:translateX(0)}
  .j27-mobile-close,.j27-mobile-menu{display:grid;place-items:center}
  .j27-main{height:100dvh}
  .j27-topbar{padding:0 14px}
  .j27-top-title span{display:none}
  .j27-top-actions .j27-top-link{display:none}
  .j27-chat-inner{width:min(100% - 22px,860px);padding-top:24px}
  .j27-composer-wrap{padding:8px 10px 10px}
}
@media(max-width:600px){
  .j27-main{grid-template-rows:52px minmax(0,1fr) auto}
  .j27-topbar{padding:0 10px;gap:8px}.j27-top-title strong{font-size:.9rem}.j27-engine-chip{font-size:.65rem;padding:5px 7px}
  .j27-welcome{min-height:calc(100dvh - 205px);padding:22px 0 35px}.j27-welcome h1{font-size:2.1rem}.j27-welcome>p{font-size:.9rem}
  .j27-starters{grid-template-columns:1fr;gap:7px;margin-top:18px}.j27-starters button{min-height:68px;padding:11px}
  .j27-data-note div{display:grid;text-align:left}
  .j27-message{grid-template-columns:30px minmax(0,1fr);gap:8px;margin-bottom:22px}.j27-message-avatar{width:30px;height:30px;border-radius:9px}
  .j27-message.user{width:94%}.j27-message.user .j27-message-body{padding:11px 12px}.j27-message-text{font-size:.91rem;line-height:1.65}
  .j27-source-grid{grid-template-columns:1fr}.j27-source-card>p{-webkit-line-clamp:2}
  .j27-composer{border-radius:15px;padding:8px}.j27-composer textarea{min-height:38px;padding:7px 5px!important}
  .j27-attach b,.j27-file-limit,.j27-private{display:none}.j27-attach{padding:6px}
  .j27-disclaimer{font-size:.6rem}
  .j27-file-pill{max-width:220px}
  .j27-public{padding:22px}.j27-public-copy{margin:55px auto 35px}.j27-public-proof{grid-template-columns:1fr}
}


/* =========================================================
   JURISCHILE IA v27.1
   Hotfix móvil + archivos
   ========================================================= */

/* La grilla del usuario debe tener texto primero y avatar después. */
.j27-message.user{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 36px !important;
    width:min(760px,92%) !important;
    max-width:100% !important;
    margin-left:auto !important;
}

.j27-message.user .j27-message-body{
    grid-column:1 !important;
    grid-row:1 !important;
    min-width:0 !important;
    width:100% !important;
    max-width:100% !important;
    overflow:hidden !important;
}

.j27-message.user .j27-message-avatar{
    grid-column:2 !important;
    grid-row:1 !important;
    order:initial !important;
}

/* Nunca permitir una palabra por línea. */
.j27-message-text{
    word-break:normal !important;
    overflow-wrap:anywhere !important;
    white-space:normal !important;
    min-width:0 !important;
}

/* Archivos dentro del mensaje. */
.j27-message-files{
    min-width:0 !important;
    max-width:100% !important;
}

.j27-message-files span{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
}

/* Archivos elegidos en el compositor. */
.j27-file-preview{
    width:100% !important;
    max-width:100% !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
}

.j27-file-pill{
    min-width:190px !important;
    max-width:245px !important;
}

.j27-file-pill strong{
    display:block !important;
    min-width:0 !important;
    max-width:100% !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
}

/* El compositor no puede sobresalir del viewport. */
.j27-composer-wrap,
.j27-composer,
.j27-composer textarea{
    box-sizing:border-box !important;
    max-width:100% !important;
}

.j27-composer textarea{
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif !important;
}

/* Mejor lectura de errores. */
.j27-error-message .j27-message-body{
    min-width:0 !important;
    max-width:100% !important;
}

.j27-error-message .j27-message-text{
    word-break:break-word !important;
}

/* Fuentes */
.j27-source-card{
    min-width:0 !important;
    overflow:hidden !important;
}

.j27-source-head strong,
.j27-source-card small,
.j27-source-card em,
.j27-source-card p{
    overflow-wrap:anywhere !important;
}

/* Mobile */
@media(max-width:600px){
    .j27-chat-inner{
        width:calc(100% - 18px) !important;
    }

    .j27-message{
        grid-template-columns:30px minmax(0,1fr) !important;
        gap:8px !important;
        max-width:100% !important;
    }

    .j27-message.user{
        grid-template-columns:minmax(0,1fr) 30px !important;
        width:96% !important;
        gap:8px !important;
    }

    .j27-message.user .j27-message-body{
        grid-column:1 !important;
        width:100% !important;
        padding:11px 12px !important;
    }

    .j27-message.user .j27-message-avatar{
        grid-column:2 !important;
        width:30px !important;
        height:30px !important;
    }

    .j27-message-text{
        font-size:.94rem !important;
        line-height:1.58 !important;
    }

    .j27-composer-wrap{
        padding:7px 8px 8px !important;
    }

    .j27-composer{
        width:100% !important;
        border-radius:15px !important;
    }

    .j27-file-preview{
        gap:5px !important;
    }

    .j27-file-pill{
        min-width:170px !important;
        max-width:220px !important;
    }
}

/* Pantallas muy angostas */
@media(max-width:380px){
    .j27-message.user{
        width:98% !important;
    }

    .j27-file-pill{
        min-width:155px !important;
        max-width:195px !important;
    }
}

/* JurisChileIA v28 — investigación multifuente */
.j28-web-sources{
  border-color:#dbe5df!important;
  background:#fbfdfb!important;
}
.j28-web-card{
  border-left:3px solid #567563!important;
}
.j28-web-card .j27-source-head span{
  background:#edf4ef!important;
  color:#3f6a50!important;
}
.j28-source-kinds{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin-top:7px;
}
.j28-source-kinds span{
  font-size:.65rem;
  border:1px solid #dfe4df;
  background:#f7f9f7;
  color:#647067;
  padding:4px 6px;
  border-radius:999px;
}
