:root{font-family:Inter,Segoe UI,system-ui,sans-serif;color:#18342f;background:#f5f6f1;font-synthesis:none;--green:#175e4e;--line:#dbe2d9;--muted:#617269}
*{box-sizing:border-box}body{margin:0}a{color:var(--green)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer;border:1px solid var(--line);background:white;color:#244b3e;border-radius:8px;padding:11px 17px;font-weight:600}button:hover{border-color:var(--green);background:#edf3ed}button.primary{background:var(--green);color:white;border-color:var(--green)}button.primary:hover{background:#104838}button:disabled{opacity:.55;cursor:wait}.danger{color:#a23732}.site-header{min-height:86px;background:#102f28;color:white;padding:19px 5vw;display:flex;align-items:center;gap:26px}.brand{text-decoration:none;color:white;font-size:25px;font-weight:700;display:flex;align-items:center}.brand>span:last-child{font-weight:400;color:#b5cfbc}.brand-icon{background:#c0d8a5;color:#183c2d;border-radius:8px;padding:4px 11px;margin-right:11px;font-size:22px}.header-caption{font-size:10px;letter-spacing:2px;color:#a7beb0;border-left:1px solid #3a5147;padding-left:26px}#account{margin-left:auto;display:flex;align-items:center;gap:15px;font-size:13px}#account button{background:transparent;color:#fff;border-color:#6a8175;padding:8px 11px}main{max-width:1120px;margin:0 auto;padding:55px 26px 90px;min-height:calc(100vh - 155px)}footer{border-top:1px solid var(--line);max-width:1120px;margin:auto;padding:22px 26px;display:flex;justify-content:space-between;color:var(--muted);font-size:12px}h1{font-size:clamp(29px,4vw,40px);font-weight:650;letter-spacing:-1.3px;line-height:1.18;margin:13px 0 16px}h2{font-size:22px;font-weight:650;letter-spacing:-.5px}h3{font-size:16px}p{line-height:1.65}.eyebrow{color:var(--green);font-size:11px;font-weight:700;letter-spacing:2px}.muted{color:var(--muted)}.login-layout{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center;margin:40px 0}.intro{max-width:440px}.intro h1{font-size:clamp(36px,5vw,52px);letter-spacing:-2px}.intro p{font-size:16px;color:var(--muted);max-width:350px}.intro-mark{display:flex;align-items:center;gap:10px;margin-top:42px;color:var(--green);font-size:12px}.intro-mark:before{content:'✓';border:1px solid #bbccba;border-radius:50%;padding:4px 8px}.card{background:white;border:1px solid var(--line);border-radius:15px;padding:30px;box-shadow:0 8px 30px #153e2905}.login-card{max-width:440px;width:100%}.login-card h2{margin-top:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:grid;gap:7px;font-size:13px;font-weight:600;margin:0 0 19px}.field input,.field select,.field textarea{width:100%;background:#fafbf8;border:1px solid #cdd7ca;border-radius:7px;padding:12px;color:#203c30;font-weight:400;min-width:0}.field input:focus,.field textarea:focus{border-color:var(--green)}textarea{resize:vertical;min-height:90px}.field.wide{grid-column:1/-1}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.login-card .primary{width:100%;margin-top:3px}.fine{font-size:12px;line-height:1.6;color:var(--muted);border-top:1px solid var(--line);padding-top:20px;margin-top:24px}.error{color:#9f302d;background:#fff0ed;border:1px solid #f0cbc4;border-radius:7px;padding:11px;font-size:13px}.notice{background:#eaf3e5;color:#285033;padding:12px;border-radius:7px;font-size:13px}.error:empty,.notice:empty{display:none}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.page-heading h1{margin-bottom:8px}.search-box{margin-top:25px;display:grid;grid-template-columns:1fr 190px;gap:12px;padding:16px}.search-box input{font-size:17px}.search-box .field{margin:0}.result-summary{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;margin:24px 0 13px}.result{width:100%;text-align:left;display:flex;align-items:center;justify-content:space-between;border-radius:9px;margin:9px 0;padding:20px;font-weight:400;gap:15px}.result strong{display:block;font-size:15px;margin:4px 0}.result .tag{font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted)}.result small{color:var(--muted)}.result-arrow{color:var(--green);font-size:22px}.empty{text-align:center;border:1px dashed #cbd5c8;border-radius:12px;padding:50px 24px;color:var(--muted);margin-top:25px}.empty strong{display:block;color:#35543e;margin-bottom:6px}.back{background:transparent;border:0;padding-left:0;font-size:13px;margin-bottom:15px}.badge{background:#e6efdf;color:#3e632c;border-radius:20px;padding:5px 11px;font-size:11px}.badge.inactive{background:#f3e8dd;color:#865833}.details{display:grid;grid-template-columns:1fr 1fr;gap:22px 35px;margin:25px 0 0}.details dt{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-bottom:7px}.details dd{margin:0;font-size:15px;white-space:pre-wrap;overflow-wrap:anywhere}.details .wide{grid-column:1/-1}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:30px}.user-row{padding:17px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;align-items:center}.user-row small{display:block;color:var(--muted);margin-top:4px}.user-row .actions button{font-size:11px;padding:8px 10px}dialog{border:1px solid var(--line);border-radius:14px;padding:30px;max-width:620px;width:calc(100% - 32px);max-height:90vh;color:#18342f}dialog::backdrop{background:#102f2880}dialog h2{margin-top:0}.link-box{overflow-wrap:anywhere;display:block;padding:15px;background:#f2f6ed;border:1px solid var(--line);border-radius:8px;margin:18px 0}.loading{color:var(--muted)}.search-extra{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--muted);margin-top:14px}.search-extra input{accent-color:var(--green)}.pagination{margin-top:20px;display:flex;justify-content:space-between;align-items:center}.sr-only{position:absolute;width:1px;height:1px;clip:rect(0,0,0,0);overflow:hidden}.reveal{animation:reveal .25s ease-out}@keyframes reveal{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:760px){.site-header{padding:17px 22px;gap:8px;min-height:76px}.header-caption{display:none}#account>span{max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}main{padding:33px 20px 65px}.login-layout{grid-template-columns:1fr;gap:25px;margin:10px 0}.intro h1{font-size:36px}.intro p{font-size:14px;max-width:none}.intro-mark{display:none}.login-card{max-width:none}.card{padding:23px}.page-heading{align-items:flex-start}.page-heading h1{font-size:30px}.search-box{grid-template-columns:1fr;padding:15px}.details,.form-grid{grid-template-columns:1fr}.user-row{align-items:flex-start;flex-direction:column}.details .wide,.field.wide{grid-column:auto}footer span{display:none}footer{padding:20px}.brand{font-size:22px}.page-heading>.primary{font-size:12px;padding:10px}.actions{gap:8px}}
@media(prefers-reduced-motion:reduce){.reveal{animation:none}}
.records-host{display:grid;gap:22px;margin-top:26px}.record-section .section-heading{margin-top:0;margin-bottom:18px}.record-section h2{display:flex;align-items:center;gap:12px}.record-count{font-size:12px;background:#edf2e6;padding:4px 8px;border-radius:20px;min-width:26px;text-align:center;letter-spacing:0}.record-tools{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.record-tools button{font-size:12px;padding:8px 11px}.record-tools .search-extra{margin:0 0 0 auto}.record{border:1px solid var(--line);border-radius:9px;margin:10px 0;overflow:hidden;background:#fff}.record summary{display:flex;align-items:center;gap:12px;padding:16px;cursor:pointer;list-style:none;background:#fafcf8}.record summary::-webkit-details-marker{display:none}.record summary:before{content:'›';font-size:24px;line-height:1;color:var(--green);width:15px;flex-shrink:0}.record[open] summary:before{transform:rotate(90deg)}.record summary>.badge{margin-left:auto}.record-label{display:grid;gap:5px;overflow-wrap:anywhere;min-width:0}.record-label strong{font-size:14px}.record-label small{font-size:12px}.record-content{padding:0 20px 20px;border-top:1px solid var(--line)}.record-content .details{margin-top:20px}.record-actions{margin-top:23px}.record-actions button{font-size:12px}.record-empty{font-size:13px;padding:17px;background:#f5f7f1;border-radius:8px;color:var(--muted)}.record-highlight{border-color:var(--green);box-shadow:0 0 0 2px #175e4e22}.record-section .pagination{gap:10px;font-size:12px}.record-section .pagination button{font-size:12px;padding:8px 10px}.record-section [hidden]{display:none!important}
@media(max-width:760px){.record-section .section-heading{align-items:flex-start;flex-wrap:wrap}.record-section h2{font-size:21px;margin:0}.record-section .section-heading>button{font-size:12px;padding:8px 10px}.record-tools .search-extra{margin:5px 0 0;width:100%}.record summary{padding:13px;gap:8px}.record-content{padding:0 14px 17px}.record-section .pagination{flex-wrap:wrap}.record-section .pagination span{order:3;width:100%;text-align:center}}

/* Densidad de trabajo: menos espacio vertical y controles legibles. */
[hidden] { display: none !important; }
.site-header { min-height: 60px; padding: 11px 28px; gap: 20px; }
.brand { font-size: 22px; }
.brand-icon { font-size: 19px; padding: 3px 9px; }
main { max-width: 1280px; padding: 22px 22px 36px; min-height: calc(100vh - 107px); }
footer { max-width: 1280px; padding: 14px 22px; }
h1 { font-size: clamp(25px, 3vw, 31px); margin: 6px 0 8px; letter-spacing: -.9px; }
h2 { font-size: 19px; margin: 0 0 12px; }
button { padding: 7px 12px; min-height: 34px; font-size: 13px; }
.card { padding: 16px 18px; border-radius: 10px; }
.page-heading { gap: 16px; margin-bottom: 14px; }
.page-heading > div:first-child { min-width: 0; }
.page-heading h1 { margin-bottom: 6px; overflow-wrap: anywhere; }
.page-heading p { margin: 5px 0 0; font-size: 13px; }
.company-actions { justify-content: flex-end; flex-shrink: 0; }
.company-actions button { font-size: 12px; }
.back { margin-bottom: 6px; padding-top: 4px; padding-bottom: 4px; }
.field { gap: 4px; margin-bottom: 12px; font-size: 12px; }
.field input, .field select, .field textarea { padding: 8px 10px; font-size: 13px; }
.form-grid { gap: 10px 16px; }
textarea { min-height: 74px; }
.search-box { margin-top: 14px; padding: 12px 14px; }
.search-box input { font-size: 14px; }
.search-extra { margin-top: 9px; }
.result-summary { margin: 14px 0 7px; }
.result { min-height: 44px; padding: 9px 12px; margin: 5px 0; border-radius: 7px; }
.result > span:first-child { display: grid; grid-template-columns: 78px minmax(0, 1fr); column-gap: 10px; flex: 1; min-width: 0; }
.result .tag { grid-row: 1 / span 2; align-self: center; }
.result strong { font-size: 14px; margin: 0; overflow-wrap: anywhere; }
.result small { grid-column: 2; font-size: 11px; }
.result small:empty { display: none; }
.result-arrow { font-size: 19px; }
.empty { padding: 28px 18px; margin-top: 14px; font-size: 13px; }
.details { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 20px; margin-top: 12px; }
.details dt { margin-bottom: 3px; font-size: 10px; letter-spacing: .6px; }
.details dd { font-size: 13px; line-height: 1.4; }
.card > h2 { margin-bottom: 8px; }
.card > .details { margin-top: 0; }
.section-heading { margin-top: 16px; gap: 12px; }
.section-heading h2 { margin: 0; }
.user-row { padding: 10px 0; gap: 12px; font-size: 13px; }
.user-row small { margin-top: 2px; font-size: 11px; }
.user-row .actions button { padding: 5px 9px; min-height: 30px; }
.staff-permission { display: flex; align-items: end; flex-wrap: wrap; gap: 6px; }
.staff-permission .field { margin: 0; }
.staff-permission .error { flex-basis: 100%; }
.staff-assignment { border-top: 1px solid var(--line); padding-top: 10px; margin-top: 10px; }
.staff-list { margin-top: 10px; }
.notice, .error { padding: 8px 10px; margin: 8px 0; }
.pagination { margin-top: 10px; }
dialog { padding: 22px; }

.records-host { gap: 12px; margin-top: 14px; }
.record-section { display: block; padding: 10px 14px; }
.record-section-content { display: grid; grid-template-columns: minmax(180px, 1fr) auto; column-gap: 12px; row-gap: 8px; margin-top: 8px; }
.record-section > summary { list-style: none; cursor: pointer; min-height: 34px; }
.record-section > summary::-webkit-details-marker { display: none; }
.record-section > summary::before { content: '›'; color: var(--green); font-size: 22px; line-height: 1; }
.record-section[open] > summary::before { transform: rotate(90deg); }
.record-section > summary h2 { flex: 1; min-width: 0; }
.record-section .section-heading { grid-column: 1 / -1; margin: 0; }
.record-section .section-actions { flex-wrap: wrap; gap: 6px; }
.record-section .section-actions button { font-size: 12px; }
.record-section h2 { font-size: 18px; margin: 0; gap: 8px; }
.record-count { font-size: 11px; padding: 2px 7px; }
.record-section-content > .record-search { margin: 0; }
.record-search input { min-height: 34px; padding: 7px 9px; font-size: 12px; }
.record-tools { margin: 0; gap: 6px; align-self: end; }
.record-tools button { padding: 5px 9px; min-height: 32px; font-size: 11px; }
.record-tools .search-extra { margin: 0 0 0 5px; width: auto; font-size: 11px; min-height: 32px; }
.record-section-content > .notice, .record-list, .record-section-content > .pagination { grid-column: 1 / -1; }
.record-section-content > .notice { margin: 0; }
.record { margin: 4px 0; border-radius: 7px; }
.record summary { min-height: 42px; padding: 7px 10px; gap: 9px; }
.record-label { display: flex; align-items: baseline; flex-wrap: wrap; gap: 3px 12px; }
.record-label strong { font-size: 13px; }
.record-label small { font-size: 11px; }
.record-label { flex: 1 1 240px; min-width: 0; }
.record-metadata { display: flex; flex-wrap: wrap; gap: 3px 14px; }
.record > summary { flex-wrap: wrap; }
.record > summary > .record-actions { margin: 0; flex-wrap: wrap; }
.record > summary > .record-upload { flex: 0 0 auto; margin: 0; }
.record-upload button { min-height: 30px; padding: 5px 9px; font-size: 11px; white-space: nowrap; }
.record summary > .badge { padding: 3px 7px; font-size: 10px; }
.record-content { padding: 0 12px 12px; }
.record-actions { margin-top: 12px; gap: 8px; }
.record-actions button { min-height: 30px; padding: 5px 9px; }
.record-empty { padding: 10px 12px; margin: 2px 0; }
.company-documents { margin-top: 12px; }
.company-data.card { display: grid; grid-template-columns: 145px minmax(540px, 1fr); align-items: center; gap: 12px; padding: 10px 14px; overflow-x: auto; }
.company-data.card > h2 { margin: 0; }
.company-data .company-data-title { padding: 0; min-height: 24px; border: 0; background: transparent; font-size: 14px; white-space: nowrap; }
.company-data .company-data-title:hover { text-decoration: underline; }
.company-data .company-details { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px 14px; margin: 0; }
.company-data .company-details > div { display: flex; align-items: baseline; gap: 5px; min-width: 0; }
.company-data .company-details dt { flex: 0 0 auto; margin: 0; font-size: 11px; line-height: 20px; text-transform: none; letter-spacing: 0; }
.company-data .company-details dd { min-width: 0; margin: 0; font-size: 12px; line-height: 20px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.company-documents.card { padding: 10px 14px; }
.company-documents > summary { list-style: none; cursor: pointer; min-height: 34px; }
.company-documents > summary::-webkit-details-marker { display: none; }
.company-documents > summary::before { content: '›'; color: var(--green); font-size: 22px; line-height: 1; }
.company-documents[open] > summary::before { transform: rotate(90deg); }
.company-documents > summary h2 { flex: 1; min-width: 0; margin: 0; font-size: 17px; }
.company-documents > summary h2 { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; }
.company-document-counts { display: inline-flex; flex-wrap: wrap; gap: 5px; }
.document-count { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; border: 1px solid var(--line); border-radius: 20px; padding: 3px 8px; font-size: 11px; font-weight: 400; line-height: 1.4; }
.document-count-expired { color: #922929; background: #fde0e0; border-color: #e4aaaa; }
.document-count-expiring { color: #685000; background: #fff3bf; border-color: #ddc564; }
.document-count-current { color: #29473b; background: #fff; }
.company-documents[open] > summary { margin-bottom: 6px; }
.company-documents .section-heading, .record-documents .section-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin: 0; }
.record-documents { padding-top: 10px; }
.record-documents h3 { font-size: 15px; margin: 0; }
.company-documents .fine, .record-documents .fine { margin: 5px 0; }
.document-list { min-width: 0; }
.document-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 14px; padding: 9px 0; border-bottom: 1px solid var(--line, #dce4e0); overflow-wrap: anywhere; }
.document-row > div:first-child { flex: 1 1 240px; min-width: 0; }
.document-row strong, .document-row small { display: block; }
.document-row small { color: var(--muted, #53665c); font-size: 11px; margin-top: 4px; }
.document-type { display: inline-block; font-size: 11px; margin-top: 3px; }
.document-links { flex-wrap: wrap; gap: 6px; }
.document-links a { padding: 6px; font-size: 12px; }
.document-links button, .record-documents .section-heading button { padding: 5px 8px; min-height: 32px; font-size: 11px; }
.document-empty { font-size: 12px; color: var(--muted, #53665c); margin: 8px 0; }
progress { width: 100%; height: 16px; }
.record-section .pagination { margin: 0; gap: 8px; }
.record-section .pagination button { padding: 5px 9px; min-height: 30px; }

@media (max-width: 900px) {
  .details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .company-actions { flex-wrap: wrap; max-width: 175px; }
}

/* Una línea por archivo; los detalles se consultan en el historial. */
.document-list > .document-row { flex-wrap: nowrap; min-height: 40px; padding: 4px 0; gap: 8px; border-bottom: 0; }
.document-list > .document-row ~ .document-row { border-top: 1px solid var(--line); }
.document-list > .document-row.document-expiring { background: #fff3bf; box-shadow: inset 3px 0 #b58a00; border-radius: 4px; padding-left: 8px; padding-right: 8px; }
.document-list > .document-row.document-expired { background: #fde0e0; box-shadow: inset 3px 0 #bc3535; border-radius: 4px; padding-left: 8px; padding-right: 8px; }
.document-list > .document-row > .document-info { display: flex; align-items: center; gap: 8px; flex: 1 1 auto; min-width: 0; }
.document-list .document-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.document-list .document-version { margin: 0; flex: 0 0 auto; font-size: 10px; }
.document-list .document-expiry { margin: 0 0 0 auto; flex: 0 0 auto; white-space: nowrap; font-size: 11px; }
.document-selector { display: flex; align-items: center; flex: 0 0 auto; padding: 4px; cursor: pointer; }
.document-select { width: 16px; height: 16px; margin: 0; accent-color: var(--green); cursor: pointer; }
.document-selection-bar { position: fixed; z-index: 20; bottom: 12px; left: 50%; transform: translateX(-50%); width: max-content; max-width: calc(100% - 24px); display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 10px; background: white; box-shadow: 0 4px 20px #18342f33; font-size: 12px; }
.document-selection-bar .error:empty { display: none; }
.document-selection-bar .error { flex-basis: 100%; margin: 0; }
main.has-document-selection { padding-bottom: 110px; }
.document-list .document-links { flex: 0 0 auto; flex-wrap: nowrap; gap: 4px; }
.document-list .document-links a { padding: 5px; white-space: nowrap; }
.document-list .document-links button, .document-options { padding: 3px 8px; min-width: 30px; min-height: 30px; }
.record-content { padding: 0 10px; }
.record-documents { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; column-gap: 8px; padding-top: 0; }
.record-documents > .section-heading { grid-column: 2; grid-row: 1; padding: 5px 0; }
.record-documents > .document-list { grid-column: 1; grid-row: 1; }
.record-documents .section-heading > .actions { flex-wrap: nowrap; gap: 4px; }
.record-documents .section-heading button { min-height: 30px; white-space: nowrap; }
.record-documents .document-empty { min-height: 40px; margin: 0; display: flex; align-items: center; }
.document-menu { position: relative; flex: 0 0 auto; }
.document-action-menu { position: absolute; z-index: 30; right: 0; top: calc(100% + 4px); display: grid; gap: 3px; width: max-content; min-width: 170px; max-width: calc(100vw - 28px); padding: 5px; border: 1px solid var(--line); border-radius: 8px; background: white; box-shadow: 0 5px 18px #18342f29; }
.document-action-menu.document-menu-above { top: auto; bottom: calc(100% + 4px); }
.document-list .document-action-menu button { text-align: left; width: 100%; border-color: transparent; white-space: nowrap; min-height: 34px; padding: 7px 10px; }
.document-more[aria-expanded=true] { background: #edf3ed; border-color: var(--green); }
.document-list .document-new-version { white-space: nowrap; }
.document-row.document-menu-open { position: relative; z-index: 10; }
.record.document-menu-open { position: relative; z-index: 10; overflow: visible; }
.document-history { margin: 2px 0 8px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 6px; background: #f6f8f3; min-width: 0; }
.document-history-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 4px; }
.document-history-heading h4 { font-size: 12px; margin: 0; overflow-wrap: anywhere; }
.document-history-heading button { font-size: 11px; padding: 4px 8px; flex: 0 0 auto; }
.document-history-version { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 5px 12px; border-top: 1px solid var(--line); padding: 7px 0; }
.document-history-version > div:first-child { flex: 1 1 240px; min-width: 0; }
.document-history-version strong { font-size: 11px; }
.document-history-version small { display: block; font-size: 10px; line-height: 1.6; color: var(--muted); overflow-wrap: anywhere; margin-top: 3px; }
@media (max-width: 600px) {
  .record-documents { column-gap: 4px; }
  .record-documents .section-heading .document-upload { font-size: 0; min-width: 30px; }
  .record-documents .document-upload::after { content: '+'; font-size: 16px; }
  .record-documents .document-links a[href$='/download'] { font-size: 0; }
  .record-documents .document-links a[href$='/download']::after { content: '↓'; font-size: 16px; }
}
@media (max-width: 700px) {
  .site-header { min-height: 58px; padding: 10px 16px; }
  main { padding: 16px 14px 28px; }
  .card { padding: 13px 14px; }
  .page-heading { flex-wrap: wrap; gap: 10px; }
  .page-heading h1 { font-size: 26px; }
  .company-actions { justify-content: flex-start; max-width: none; }
  button { min-height: 40px; }
  .field input, .field select { min-height: 40px; }
  .details { gap: 10px 12px; }
  .user-row { gap: 8px; }
  .record-section { padding: 10px 12px; }
  .record-section-content { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .record-section .section-heading { align-items: center; gap: 8px; }
  .record-section h2 { font-size: 17px; }
  .record-search, .record-tools { grid-column: 1 / -1; }
  .record-tools { gap: 5px; }
  .record-tools button { min-height: 36px; padding: 6px 9px; }
  .record-tools .search-extra { margin-left: auto; }
  .record summary { min-height: 44px; }
  .record-label { gap: 2px 8px; }
  .record-content { padding: 0 10px; }
  .record-actions button, .user-row .actions button { min-height: 38px; }
  .record-section .pagination span { order: 0; width: auto; font-size: 11px; }
}
.contact-requests { display: grid; gap: 12px; }
.lead-summary { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin: 12px 0; }
.commercial-notification { display: inline-flex; align-items: center; gap: 12px; }
.commercial-bell { position: relative; display: inline-flex; padding: 2px 4px; }
.commercial-notification-count { position: absolute; right: -6px; top: -8px; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 12px; background: #b83030; color: #fff; font-size: 10px; font-weight: 700; line-height: 17px; text-align: center; }
.commercial-has-news .commercial-bell svg { color: #a92a2a; }
.commercial-news-unavailable .commercial-notification-count { background: #806000; }
.lead-title { display: flex; align-items: center; gap: 12px; }
.lead-title .commercial-notification { min-height: 34px; padding: 6px 9px; }
.lead-table .lead-unread-tag { color: #a12828; font-weight: 600; }
.lead-summary button { padding: 8px 12px; font-size: 12px; }
.lead-summary .lead-overdue { color: #922929; background: #fde0e0; border-color: #e4aaaa; }
.lead-summary > span { margin-left: auto; font-size: 12px; }
.lead-filters { display: grid; grid-template-columns: minmax(220px,2fr) repeat(5,minmax(125px,1fr)); gap: 8px; align-items: end; }
.lead-filters .field { margin: 0; font-size: 11px; }
.lead-filters input, .lead-filters select { padding: 9px; }
.lead-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
.lead-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.lead-table th { background: #f5f8f2; text-align: left; font-size: 11px; color: var(--muted); }
.lead-table th, .lead-table td { padding: 10px 12px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.lead-table tr:last-child td { border-bottom: 0; }
.lead-table td:first-child { min-width: 210px; overflow-wrap: anywhere; }
.lead-table small { display: block; margin-top: 4px; }
.lead-table button { padding: 6px 9px; font-size: 11px; white-space: nowrap; }
.lead-table .lead-quick-select { width: 100%; min-width: 125px; max-width: 190px; padding: 6px 7px; border: 1px solid var(--line); border-radius: 6px; background: #fff; color: inherit; font: inherit; }
.lead-table [aria-busy=true] .lead-quick-select { opacity: .65; }
.lead-quick-status:empty { display: none; }
.lead-quick-status { margin-top: 5px; max-width: 210px; }
.lead-price-cell { white-space: nowrap; }
.lead-pricing { margin: 14px 0; padding: 14px; border: 1px solid var(--line); border-radius: 9px; background: #f7faf4; }
.lead-form > .lead-pricing { margin-top: 0; }
.lead-price-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.lead-price-heading h3 { margin: 0; font-size: 17px; }
.lead-price-target { font-size: clamp(24px,4vw,32px); color: var(--green); white-space: nowrap; }
.lead-price-inputs { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.lead-price-inputs .field { margin-bottom: 8px; }
.lead-price-source { font-size: 10px; font-weight: 400; color: var(--muted); }
.lead-price-source:empty { display: none; }
.lead-price-offer { display: grid; grid-template-columns: 1fr auto; gap: 16px; align-items: center; margin-top: 8px; }
.lead-price-offer label { font-size: 12px; }
.lead-price-selected { font-size: 23px; font-weight: 700; white-space: nowrap; }
.lead-price-slider { display: block; width: 100%; accent-color: var(--green); margin: 10px 0 5px; }
.lead-price-limits { display: flex; justify-content: space-between; gap: 10px; color: var(--muted); font-size: 11px; }
.lead-price-total { font-size: 13px; font-weight: 600; margin: 12px 0 8px; }
.lead-price-breakdown { font-size: 13px; margin: 10px 0; }
.billing-filters,.billing-worker-filters { display:flex; flex-wrap:wrap; gap:12px; align-items:end; }
.billing-filters label,.billing-worker-filters label { flex:1; min-width:180px; }
.billing-layout { display:grid; grid-template-columns:minmax(220px,280px) minmax(0,1fr); gap:16px; align-items:start; margin-top:16px; }
.billing-company { display:flex; flex-direction:column; align-items:start; width:100%; text-align:left; margin-bottom:6px; }
.billing-company[aria-pressed=true] { background:#eef4eb; border-color:#175e4e; }
.billing-pending { color:#815500; font-weight:600; }
.company-contact-row { display:flex; gap:12px; justify-content:space-between; align-items:center; padding:12px 0; border-bottom:1px solid #dce4da; }
.company-contact-row small { display:block; overflow-wrap:anywhere; }.company-contact-row .badge { margin-top:4px; }
.communication-filters { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin:12px 0; }.communication-filters .field { flex:1; }
.mail-recipient-picker { border:1px solid #dce4da; border-radius:8px; margin:10px 0; padding:10px; min-width:0; }
.mail-recipient-chips { display:flex; flex-wrap:wrap; gap:6px; }.mail-recipient-chip { font-size:12px; padding:5px 8px; overflow-wrap:anywhere; text-align:left; }
.mail-recipient-options { margin-top:8px; }.mail-recipient-panel { border-top:1px solid #dce4da; padding-top:8px; }.mail-recipient-panel input[type=search] { width:100%; }
.mail-recipient-results { max-height:210px; overflow:auto; margin-top:6px; }.mail-recipient-option { display:flex; gap:10px; align-items:center; padding:7px 3px; overflow-wrap:anywhere; }.mail-recipient-option input { flex:none; }
.document-email-form textarea { min-height:260px; }.mail-selected-documents { margin:12px 0; }.document-email-history-row { padding:12px 0; border-bottom:1px solid #dce4da; }
.document-email-body { white-space:pre-wrap; overflow-wrap:anywhere; font:inherit; background:#f6f8f4; padding:14px; border-radius:8px; }
.billing-summary { background:#eef4eb; padding:14px; border-radius:10px; margin:14px 0; }
.billing-summary strong,.billing-review-total { display:block; font-size:19px; color:#175e4e; }
.billing-summary small { display:block; margin:6px 0; }
.billing-unit { display:flex; align-items:center; gap:12px; border-bottom:1px solid #dce4da; padding:12px 6px; cursor:pointer; }
.billing-unit input[type=checkbox] { flex:none; width:20px; height:20px; }
.billing-unit span,.billing-unit small { display:block; }
.billing-invoice-row { border-bottom:1px solid #dce4da; padding:14px 0; }
.billing-profile-form details { margin:12px 0; }
@media(max-width:900px) { .billing-layout { grid-template-columns:1fr; } .billing-companies { max-height:300px; overflow:auto; } }
.lead-price-notice { font-size: 12px; color: #924326; margin: 8px 0; }
.lead-price-notice:empty { display: none; }
.lead-pricing button { font-size: 11px; padding: 5px 9px; }
.lead-quotes { margin: 16px 0; border: 1px solid var(--line); border-radius: 9px; padding: 12px; }
.lead-quotes > summary { font-weight: 700; cursor: pointer; }
.lead-quotes-body { margin-top: 12px; }
.lead-quote-row { padding: 12px 0; border-top: 1px solid var(--line); margin-top: 12px; }
.lead-quote-row > small { display: block; margin: 4px 0 9px; }
.lead-quote-trace { margin-top: 9px; font-size: 11px; overflow-wrap: anywhere; }
.lead-quote-accepted { color: var(--green); font-weight: 600; }
.quote-issue-form, .quote-accept-form { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--line); }
.commercial-dossier { margin: 12px 0; }
.dossier-folder { overflow-wrap: anywhere; font-size: 12px; }
.lead-company-form > .field, .lead-company-form > .form-grid { margin-bottom: 12px; }
.lead-company-progress { color: var(--green); }
.cae-clients > summary, .cae-client-summary { display: flex; align-items: center; gap: 12px; cursor: pointer; list-style: none; }
.cae-clients > summary::-webkit-details-marker, .cae-client-summary::-webkit-details-marker { display: none; }
.cae-clients > summary::before, .cae-client-summary::before { content: '›'; color: var(--green); }
.cae-clients[open] > summary::before, .cae-client[open] > summary::before { content: '⌄'; }
.cae-clients > summary h2 { display: flex; align-items: center; gap: 9px; margin: 0; }
.cae-clients > summary .actions, .cae-client-summary .actions { margin-left: auto; }
.cae-client-summary .icon-button { display: inline-flex; justify-content: center; width: 34px; height: 34px; padding: 7px; }
.cae-client-summary .icon-button.danger { color: #b83232; }
.cae-clients > .cae-client-filters, .cae-clients > .cae-clients-body { display: none; }
.cae-clients[open] > .cae-client-filters { display: flex; }
.cae-clients[open] > .cae-clients-body { display: block; }
.cae-client-filters { gap: 14px; align-items: center; margin-top: 12px; }
.cae-client-filters .field { flex: 1; margin-bottom: 0; }
.cae-client { border: 1px solid var(--line); border-radius: 8px; margin-top: 6px; }
.cae-client-summary { padding: 8px 12px; background: #f8faf6; }
.cae-client-content { padding: 12px; }
.cae-notes { width: 100%; white-space: pre-wrap; overflow-wrap: anywhere; resize: vertical; }
.cae-client-form > .field { margin-bottom: 12px; }
@media(max-width:650px) { .cae-clients > summary, .cae-client-summary { flex-wrap: wrap; } .cae-client-filters { flex-wrap: wrap; } }
@media(max-width:500px) { .lead-price-heading { flex-wrap: wrap; } .lead-price-inputs { grid-template-columns: 1fr; gap: 4px; } .lead-price-offer { gap: 8px; } .lead-price-selected { font-size: 20px; } }
.lead-row-overdue { background: #fff8e8; }
.lead-stage-lost { color: #922929; background: #fde0e0; }
.lead-stage-proposal { color: #685000; background: #fff3bf; }
.lead-stage-new { color: #235982; background: #e3eff9; }
.lead-contact-actions { margin-bottom: 14px; }
.lead-contact-actions a { border: 1px solid var(--line); border-radius: 7px; padding: 7px 12px; font-size: 12px; }
dialog.lead-dialog { max-width: 900px; }
.lead-form .field { margin-bottom: 10px; }
.lead-field-help, .lead-loss { grid-column: 1/-1; }
.lead-field-help { font-size: 12px; margin: 0 0 8px; }
.lead-worker-status { background: #f2f6ed; padding: 10px 12px; border-radius: 7px; font-size: 13px; }
.lead-fields, .lead-history { border-top: 1px solid var(--line); margin: 12px 0; padding-top: 12px; }
.lead-fields > summary, .lead-history > summary { cursor: pointer; font-weight: 600; margin-bottom: 12px; }
.lead-event { border-bottom: 1px solid var(--line); padding: 10px 0; }
.lead-event p { margin: 5px 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.lead-activity { margin-top: 16px; }
.lead-duplicates { margin: 12px 0; }
.lead-duplicates p { margin: 5px 0; font-size: 12px; }
@media(max-width:1100px) { .lead-filters { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media(max-width:600px) { .lead-filters { grid-template-columns: repeat(2,minmax(0,1fr)); } .lead-filters > :first-child { grid-column: 1/-1; } .lead-summary > span { margin-left: 0; width: 100%; } .lead-dialog .form-grid { grid-template-columns: 1fr; } }
.company-access-dialog > .actions { margin-bottom: 15px; flex-wrap: wrap; }
.company-access-dialog .user-row { overflow-wrap: anywhere; }
.field input[readonly] { background: #f0f3ed; color: var(--muted); cursor: default; }
.record-actions .record-icon-button { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; padding: 6px; flex: 0 0 auto; }
.record-icon-button svg { display: block; width: 18px; height: 18px; pointer-events: none; }
.record-icon-button.danger { color: #b83232; }
.record-icon-button.danger:hover { background: #fff0ee; border-color: #c34b42; }
.worker-ficha-identity { margin-top: 18px; padding-top: 12px; border-top: 1px solid var(--line); }
.worker-ficha-identity > summary { font-size: 13px; font-weight: 650; cursor: pointer; }
.worker-ficha-identity > div { padding-top: 12px; }
@media(max-width:700px) { .record-actions .record-icon-button { width: 40px; height: 40px; } }
.identity-current { font-weight: 650; }
.identity-change-form { margin: 12px 0 20px; padding: 12px; border: 1px solid var(--line); border-radius: 8px; }
.identity-change-form .search-extra { align-items: start; line-height: 1.7; }
.identity-change-form .actions { margin-top: 15px; }
.identity-history-row { padding: 12px 0; border-top: 1px solid var(--line); overflow-wrap: anywhere; }
.identity-history-row strong { font-size: 13px; }
.identity-history-row p { margin: 5px 0; font-size: 12px; }
.record-import-dialog { width: min(1100px, calc(100% - 32px)); max-width: 1100px; }
.import-templates { margin-bottom: 15px; font-size: 12px; }
.import-date-help { font-size: 12px; line-height: 1.7; padding: 10px 12px; border-left: 3px solid var(--green); background: #f1f6e9; border-radius: 4px; }
.import-date-field-help { font-size: 11px; line-height: 1.6; color: var(--muted); font-weight: 400; }
.import-settings > .field { max-width: 400px; }
.import-mapping { margin: 15px 0; padding: 10px; background: #f4f7ef; border: 1px solid var(--line); border-radius: 6px; }
.import-mapping > summary { cursor: pointer; font-size: 13px; font-weight: 600; }
.import-mapping .form-grid { margin-top: 14px; }
.import-table-wrap { max-height: 42vh; overflow: auto; margin: 15px 0; border: 1px solid var(--line); }
.import-table-wrap table { border-collapse: collapse; font-size: 12px; width: 100%; }
.import-table-wrap caption { text-align: left; padding: 10px; color: var(--muted); }
.import-table-wrap th, .import-table-wrap td { padding: 7px 10px; text-align: left; border-bottom: 1px solid var(--line); min-width: 100px; max-width: 280px; overflow-wrap: anywhere; }
.import-table-wrap th { background: #edf2e5; position: sticky; top: 0; }
.import-row-error { background: #fff0eb; }
.import-row-duplicate { background: #f6f5e8; }
.record-import .notice:empty, .record-import .error:empty { display: none; }
.contact-request { display: flex; justify-content: space-between; align-items: start; gap: 20px; margin: 0; }
.contact-request h2 { font-size: 17px; margin: 0 0 8px; }
.contact-request p { margin: 6px 0; }
.contact-request-message { white-space: pre-wrap; overflow-wrap: anywhere; }
.contact-request .actions { flex-shrink: 0; }
.contact-request > div:first-child { min-width: 0; overflow-wrap: anywhere; }
.contact-request .actions a { display: inline-flex; align-items: center; min-height: 34px; border: 1px solid var(--line); border-radius: 8px; padding: 7px 12px; font-size: 13px; font-weight: 600; text-decoration: none; }
.contact-request .actions a:hover { background: #edf3ed; border-color: var(--green); }
@media(max-width:760px) { .contact-request { flex-direction: column; gap: 12px; } }

/* Versi?n del logotipo preparada por el dise?ador para la cabecera oscura. */
.brand { flex-shrink:0; }
.brand-logo { display:block; width:176px; height:auto; }
@media(max-width:760px) {
  .site-header { flex-wrap:wrap; gap:8px 14px; }
  .brand-logo { width:152px; }
  #account { min-width:0; gap:8px; }
  #account>span { max-width:110px; }
}
@media(max-width:420px) {
  .brand-logo { width:132px; }
  #account>span { max-width:70px; }
  #account button { padding:7px 8px; }
}

.lead-consent-proof{margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:8px;font-size:12px;overflow-wrap:anywhere}.lead-consent-proof summary{cursor:pointer;font-weight:600}.lead-consent-text{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;max-height:300px;overflow:auto;padding:10px;background:#f5f7f1}

