/* Docil Law Connect - estilos base (layout minimo, adaptado del patron de Docil). */
* { box-sizing: border-box; }
body { margin: 0; font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif; color: #1a2233; background: #f4f6fb; }
.auth-card { max-width: 360px; margin: 8vh auto; background: #fff; padding: 2rem; border-radius: 12px; box-shadow: 0 8px 30px rgba(20,40,80,.08); }
.auth-card h1 { font-size: 1.4rem; margin: 0 0 .25rem; }
.auth-card .sub { color: #667; margin: 0 0 1.5rem; }
.auth-card label { display: block; margin-bottom: 1rem; font-size: .85rem; color: #445; }
.auth-card input { display: block; width: 100%; padding: .6rem; margin-top: .25rem; border: 1px solid #cdd5e5; border-radius: 8px; }
button { background: #2b4bce; color: #fff; border: 0; padding: .6rem 1rem; border-radius: 8px; cursor: pointer; }
button:hover { background: #223ba8; }
.msg { min-height: 1.2rem; color: #b02a37; font-size: .85rem; }
.topbar { display: flex; align-items: center; gap: 1rem; padding: .75rem 1.25rem; background: #fff; border-bottom: 1px solid #e3e8f2; }
.topbar .brand { font-weight: 700; }
.topbar .who { margin-left: auto; color: #667; font-size: .9rem; }
.layout { display: grid; grid-template-columns: 300px 1fr; height: calc(100vh - 53px); }
.sidebar { border-right: 1px solid #e3e8f2; padding: 1rem; overflow-y: auto; background: #fbfcfe; }
.sidebar h2 { font-size: 1rem; }
#doc-list { list-style: none; padding: 0; font-size: .85rem; }
#doc-list li { padding: .4rem 0; border-bottom: 1px solid #eef1f7; }
.chat { display: flex; flex-direction: column; }
#messages { flex: 1; overflow-y: auto; padding: 1rem; }
#messages .m { margin-bottom: .75rem; }
#messages .m.user { text-align: right; }
#messages .m .bubble { display: inline-block; padding: .5rem .75rem; border-radius: 10px; background: #eef1fb; }
#messages .m.user .bubble { background: #2b4bce; color: #fff; }
#chat-form { display: flex; gap: .5rem; padding: 1rem; border-top: 1px solid #e3e8f2; }
#chat-input { flex: 1; padding: .6rem; border: 1px solid #cdd5e5; border-radius: 8px; }
/* --- Chat: citas, limitaciones y aviso IA (fase de conexion de tools) --- */
.m.bot .cites { margin-top: 8px; border-top: 1px solid #e2e2e2; padding-top: 6px; }
.cites-title { font-size: 12px; font-weight: 600; color: #555; margin-bottom: 4px; }
.cite { margin: 6px 0; padding: 6px 8px; background: #f6f7f9; border-radius: 6px; }
.cite-meta { font-size: 12px; color: #444; font-weight: 600; }
.cite-quote { margin: 4px 0; font-style: italic; color: #333; white-space: pre-wrap; }
.cite-open { font-size: 12px; padding: 2px 8px; cursor: pointer; }
.limitations { font-size: 12px; color: #7a5b00; margin: 6px 0 0 16px; }
.disclaimer { margin-top: 8px; font-size: 11px; color: #666; border-top: 1px dashed #ccc; padding-top: 4px; }
.ai-notice { font-size: 11px; color: #555; background: #fff8e1; border: 1px solid #ffe0a3; border-radius: 6px; padding: 6px 8px; margin: 0 0 8px 0; }
/* --- Propuestas guardables (revision humana) --- */
.proposals { margin-top: 8px; border-top: 1px solid #ddd; padding-top: 6px; }
.proposals-title { font-size: 12px; color: #555; font-weight: bold; margin-bottom: 4px; }
.proposal { border: 1px solid #d7d7e0; border-radius: 6px; padding: 8px; margin: 6px 0; background: #fafaff; }
.proposal.saved { opacity: 0.7; background: #eef7ee; }
.proposal-type { display: inline-block; font-size: 11px; font-weight: bold; text-transform: uppercase; color: #43438a; }
.proposal-summary { margin: 4px 0; font-size: 13px; }
.proposal-ctrl { display: flex; gap: 6px; align-items: center; margin-top: 6px; }
.severity-select { padding: 2px 4px; }
.severity-note { font-size: 11px; color: #a15; margin-top: 4px; }
.proposal-status { font-size: 12px; color: #333; margin-top: 4px; }
/* --- Vista de hallazgos --- */
.findings-note { font-size: 11px; color: #666; margin: 2px 0 6px; }
.finding-item { border: 1px solid #e0e0e0; border-radius: 6px; padding: 6px; margin: 6px 0; list-style: none; }
.finding-type { font-weight: bold; font-size: 12px; display: block; }
.finding-badge { display: inline-block; font-size: 10px; color: #7a5; margin: 2px 0; }
.findings-empty { font-size: 12px; color: #888; list-style: none; }

/* Fase 4D: panel de expediente (cobertura, jobs, busqueda) */
.matter-panel { padding: 12px; border-right: 1px solid #e2e2e2; overflow-y: auto; }
.matter-panel h2, .matter-panel h3 { margin: 8px 0 4px; }
.matter-panel select, .matter-panel input[type="text"] { width: 100%; box-sizing: border-box; margin: 4px 0; padding: 6px; }
.matter-hint { color: #666; font-style: italic; }
.coverage-status { font-weight: bold; }
.coverage-progress-wrap { margin: 6px 0; }
.coverage-progress-wrap progress { width: 100%; height: 14px; }
.coverage-metrics, .jobs-summary { list-style: none; padding: 0; margin: 4px 0; font-size: 0.9em; }
.coverage-metrics li, .jobs-summary li { padding: 1px 0; }
.coverage-warning { color: #8a5a00; background: #fff6e0; padding: 6px; border-radius: 4px; }
.search-block { margin-top: 12px; border-top: 1px solid #e2e2e2; padding-top: 8px; }
#matter-search-form { display: flex; gap: 6px; flex-wrap: wrap; }
#matter-search-form select { width: auto; }
#matter-search-form input[type="text"] { flex: 1; }
.search-note { color: #555; font-size: 0.9em; }
.search-results { list-style: none; padding: 0; margin: 6px 0; }
.search-result { border: 1px solid #e2e2e2; border-radius: 4px; padding: 6px; margin: 6px 0; }
.result-meta { font-size: 0.85em; color: #333; font-weight: bold; }
.result-quote { margin: 4px 0 0; padding-left: 8px; border-left: 3px solid #cfcfcf; color: #444; }
