:root{--navy:#083f68;--blue:#0a659a;--blue-2:#0872b7;--bg:#eef3f7;--line:#c9d5df;--text:#203040;--muted:#637384;--white:#fff;--focus:#fff9d9;--danger:#bd2d2d;--shadow:0 12px 35px rgba(16,39,58,.26);font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--text);font-size:14px}
*{box-sizing:border-box}html,body{height:100%;margin:0}button,input,select{font:inherit;color:inherit}button{cursor:pointer}kbd{font:11px Consolas,monospace;border:1px solid #c8d2dc;border-bottom-width:2px;border-radius:4px;padding:2px 5px;background:#f6f8fa;color:#5d6b78}
.icon-rail{position:fixed;inset:0 auto 0 0;width:52px;background:var(--navy);display:flex;align-items:center;flex-direction:column;padding:7px 4px;z-index:60}.brand-mark,.rail-button,.user-avatar{width:42px;height:42px;border:0;border-radius:7px;display:grid;place-items:center;text-decoration:none}.brand-mark{background:#fff;color:var(--navy);font-weight:800;font-size:17px;margin-bottom:7px}.rail-button{color:#fff;background:transparent;font-size:22px;margin-bottom:5px}.rail-button:hover,.rail-button.is-strong{background:#fff;color:var(--navy)}.rail-spacer{flex:1}.user-avatar,.top-avatar{border:0;border-radius:50%;background:#fff;color:var(--navy);font-weight:700}.user-avatar{width:36px;height:36px}
.menu-backdrop{position:fixed;inset:0 0 0 52px;background:rgba(26,43,55,.38);z-index:40;opacity:0;visibility:hidden;transition:.18s}.menu-panel{position:fixed;top:0;bottom:0;left:52px;width:min(440px,calc(100vw - 52px));display:grid;grid-template-columns:142px 1fr;z-index:50;transform:translateX(-102%);transition:transform .18s ease;background:#fff;box-shadow:var(--shadow)}body.menu-open .menu-panel{transform:translateX(0)}body.menu-open .menu-backdrop{opacity:1;visibility:visible}
.module-column{background:var(--blue);color:#fff;padding:13px 6px}.menu-column-title{font-size:13px;margin:4px 7px 14px}.module-option{width:100%;border:0;background:transparent;color:#fff;text-align:left;border-radius:5px;padding:10px 8px;display:flex;align-items:center;gap:8px;margin:2px 0}.module-option:hover,.module-option.is-active{background:#fff;color:var(--navy)}.module-icon{width:22px;text-align:center;font-size:11px;font-weight:700}
.option-column{min-width:0;background:#fff;display:flex;flex-direction:column}.option-header{height:52px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 11px;font-size:16px}.close-button,.command-box header button,.maintenance-dialog header button{border:1px solid var(--line);background:#fff;border-radius:4px;width:32px;height:32px;font-size:22px}.menu-search-wrap{display:grid;grid-template-columns:24px 1fr auto;align-items:center;margin:9px;border:1px solid var(--line);border-radius:4px;padding:0 8px}.menu-search-wrap:focus-within{border-color:var(--blue-2);box-shadow:0 0 0 2px rgba(8,114,183,.12)}.menu-search-wrap input{height:36px;border:0;outline:0;min-width:0}
.favorite-area{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px}.section-label{text-transform:uppercase;font-size:11px;color:#0872b7;font-weight:700;margin:4px 0 9px}.favorite-chips{display:flex;flex-wrap:wrap;gap:6px}.favorite-chip{border:1px solid var(--line);background:#fff;border-radius:15px;padding:5px 9px}.empty-hint{color:#8a98a5;font-size:12px}.option-list{overflow:auto;padding:5px 10px 18px}.option-section{margin-top:12px}.menu-option-row{display:grid;grid-template-columns:1fr 30px;align-items:center;border-radius:4px}.menu-option-row:hover{background:#f0f6fa}.menu-option-link{min-height:32px;border:0;background:transparent;text-decoration:none;display:flex;align-items:center;gap:8px;color:var(--text);text-align:left;padding:5px}.menu-option-link.is-pending{width:100%;opacity:.82}.option-icon{width:19px;text-align:center}.favorite-toggle{border:0;background:transparent;font-size:20px;color:#a77300}.favorite-toggle.is-favorite{color:#c47f00}.no-results{color:var(--muted);padding:14px}
.workspace{min-height:100%;margin-left:52px;background:var(--bg)}.workspace-tabs{height:46px;background:var(--navy);display:flex;align-items:stretch;color:#fff;position:sticky;top:0;z-index:20}.app-title{font-weight:800;padding:14px 13px;color:#fff;text-decoration:none;border-right:1px solid rgba(255,255,255,.18)}.open-tabs{display:flex;min-width:0;overflow:auto}.workspace-tab{display:flex;align-items:center;gap:8px;padding:0 13px;color:#dcebf5;border-right:1px solid rgba(255,255,255,.15);white-space:nowrap}.workspace-tab.is-active{background:#fff;color:var(--navy)}.workspace-tab.is-dirty:after{content:"●";color:#d69400}.workspace-tab button{border:0;background:transparent;color:inherit;padding:2px}.top-search{margin:5px 8px 5px auto;width:260px;border:0;background:#fff;color:#7b8995;text-align:left;padding:0 12px;border-radius:3px}.top-search kbd{float:right}.top-avatar{width:34px;height:34px;margin:6px 9px 6px 0}
.record-page{min-height:calc(100vh - 46px)}.record-header{position:sticky;top:46px;background:var(--bg);z-index:15;border-bottom:1px solid var(--line)}.record-title-line{min-height:84px;background:#fff;padding:8px 10px;display:flex;align-items:center;justify-content:space-between;gap:10px}.record-title-line>div:first-child{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.record-title-line span{color:var(--muted)}.status-badge,.code-badge{background:#dff2ff!important;color:#0471ad!important;border-radius:15px;padding:6px 8px;font-size:12px}.record-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.primary-button,.secondary-button{border-radius:4px;padding:8px 12px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.primary-button{border:1px solid var(--blue-2);background:var(--blue-2);color:#fff}.secondary-button{border:1px solid var(--line);background:#fff;color:var(--text)}.secondary-button.small{padding:5px 9px}.action-menu{position:relative}.action-menu summary{list-style:none;border:1px solid var(--line);background:#fff;padding:8px 10px;border-radius:4px;cursor:pointer}.action-menu>div{position:absolute;right:0;top:40px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);width:170px;padding:5px;z-index:30}.action-menu>div button{display:block;width:100%;border:0;background:#fff;text-align:left;padding:8px}.danger-text{color:var(--danger)!important}
.record-tabs{height:37px;background:#f8fafb;display:flex;align-items:stretch;gap:2px;padding:0 10px;overflow:auto}.record-tabs button,.record-tabs a{border:0;border-bottom:2px solid transparent;background:transparent;padding:0 12px;color:var(--muted);white-space:nowrap;text-decoration:none;display:flex;align-items:center}.record-tabs button.is-active,.record-tabs a.is-active{color:var(--blue-2);border-color:var(--blue-2);font-weight:700}.record-content{padding:9px;max-width:1400px}.form-section{border:1px solid var(--line);background:#fff;margin-bottom:9px;scroll-margin-top:132px}.form-section>header{height:42px;background:#f0f4f7;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 9px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px}.form-grid label,.dialog-content label,.login-card label{font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:4px}.form-grid input,.form-grid select,.dialog-content input,.login-card input{height:27.9px;border:1px solid var(--line);border-radius:2px;background:#fff;padding:2.45px 7px;font-size:14px;color:var(--text)}.form-grid input:focus,.form-grid select:focus{outline:2px solid rgba(8,114,183,.18);border-color:var(--blue-2)}.form-grid .required-field input{background:var(--focus)}.span-2{grid-column:span 2}.context-field{display:grid;grid-template-columns:1fr 32px 32px;gap:4px}.context-field select{width:100%}.context-field button{border:1px solid var(--line);background:#fff;border-radius:3px}
.command-dialog,.maintenance-dialog{border:0;border-radius:7px;padding:0;box-shadow:var(--shadow);width:min(620px,calc(100vw - 28px))}.command-dialog::backdrop,.maintenance-dialog::backdrop{background:rgba(9,30,45,.48)}.command-box header,.maintenance-dialog header{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-bottom:1px solid var(--line)}.command-box>input{width:calc(100% - 24px);height:42px;margin:12px;border:1px solid var(--blue-2);border-radius:4px;padding:0 11px}.command-results{max-height:340px;overflow:auto;padding:0 12px 12px}.command-result{display:flex;justify-content:space-between;padding:10px;border-radius:4px;text-decoration:none;color:var(--text);border:0;background:#fff;width:100%;text-align:left}.command-result:hover{background:#eef6fb}.dialog-content{padding:15px}.dialog-content label{margin-bottom:12px}.maintenance-dialog footer{display:flex;justify-content:flex-end;gap:7px;padding:10px 15px;border-top:1px solid var(--line)}
.toast{position:fixed;right:18px;bottom:18px;background:#173d2c;color:#fff;padding:10px 15px;border-radius:5px;box-shadow:var(--shadow);opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none;z-index:100}.toast.is-visible{opacity:1;transform:none}.home-page{min-height:calc(100vh - 46px);display:grid;place-items:center;padding:30px}.welcome-card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:42px;max-width:620px;text-align:center;box-shadow:0 8px 25px rgba(18,55,80,.08)}.welcome-card h1{font-size:38px;color:var(--navy);margin:7px}.welcome-card p{color:var(--muted);margin-bottom:25px}.eyebrow{color:var(--blue-2);font-weight:800;font-size:12px;letter-spacing:.12em}
.readonly-badge{background:#fff0c8!important;color:#795600!important;border:1px solid #e6ca7b;border-radius:15px;padding:5px 9px;font-size:11px;font-weight:800}.readonly-note{margin:0 0 9px;background:#fff8df;border:1px solid #ead493;padding:9px 11px;border-radius:4px;color:#684e09}.form-grid input[readonly]{background:#f7f9fb;color:#304252}.split-panels{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px}.split-panels>div{border:1px solid var(--line);padding:10px}.split-panels h3{margin:0 0 8px;font-size:14px}.split-panels p{margin:5px 0;color:var(--muted)}.readonly-text{padding:13px;min-height:56px;white-space:pre-wrap}
.record-panel[hidden]{display:none}.maintenance-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px}.maintenance-field>span{display:flex;gap:4px}.maintenance-field a{width:31px;height:27.9px;border:1px solid var(--line);background:#fff;border-radius:3px;color:var(--blue-2);text-decoration:none;display:grid;place-items:center;font-size:17px}.maintenance-field a:hover{border-color:var(--blue-2);background:#eef7fc}.maintenance-hint{color:var(--muted);font-size:12px}.empty-state{padding:20px;text-align:center;color:var(--muted)}.observations-table .wrap-cell{white-space:normal;min-width:380px;line-height:1.4}
.list-page{padding:18px;max-width:1500px}.list-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:14px}.list-header h1{margin:4px 0;font-size:28px;color:var(--navy)}.list-header p{margin:0;color:var(--muted)}.list-toolbar{background:#fff;border:1px solid var(--line);padding:12px;margin-bottom:10px}.list-toolbar>label{display:block;font-size:12px;color:var(--muted);margin-bottom:5px}.list-search{display:flex;gap:6px}.list-search input{min-width:0;flex:1;height:32.4px;border:1px solid var(--line);border-radius:3px;padding:0 10px}.list-search input:focus{outline:2px solid rgba(8,114,183,.18);border-color:var(--blue-2)}.table-card{background:#fff;border:1px solid var(--line)}.table-summary{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;background:#f0f4f7;border-bottom:1px solid var(--line);color:var(--muted)}.table-scroll{overflow:auto}.compact-table{border-collapse:collapse;width:100%;min-width:900px}.compact-table th,.compact-table td{text-align:left;padding:8px 10px;border-bottom:1px solid #dce4ea;white-space:nowrap}.compact-table th{background:#f8fafb;color:#526476;font-size:12px;position:sticky;top:0}.compact-table tbody tr:hover{background:#eef7fc}.compact-table a{color:#086da8}.record-link{color:var(--text)!important;text-decoration:none}.empty-table{text-align:center!important;color:var(--muted);padding:28px!important}.pagination{display:flex;align-items:center;justify-content:center;gap:12px;padding:10px}.workspace-tab{text-decoration:none}.pagination span{color:var(--muted)}
.clientes-table tbody tr:nth-child(odd){background:rgb(255,255,200)}.clientes-table tbody tr:nth-child(even){background:rgb(200,255,255)}.clientes-table tbody tr:hover{background:#d7ebff}
.login-body{background:var(--bg);display:grid;place-items:center}.login-card{width:min(380px,calc(100vw - 28px));background:#fff;border:1px solid var(--line);padding:30px;border-radius:8px;box-shadow:var(--shadow)}.login-card h1{text-align:center;color:var(--navy)}.login-logo{margin:auto;width:52px;height:52px;border-radius:8px;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:22px;font-weight:800}.login-card label{margin:12px 0}.login-card .primary-button{width:100%}.form-error{color:var(--danger)}
@media(max-width:850px){.menu-panel{grid-template-columns:124px 1fr}.top-search{width:150px}.record-title-line{align-items:flex-start;flex-direction:column}.record-actions{justify-content:flex-start}.form-grid,.split-panels{grid-template-columns:1fr}.span-2{grid-column:span 1}.record-header{position:static}.top-search kbd{display:none}.list-page{padding:10px}.list-header{align-items:flex-start}.form-section{scroll-margin-top:10px}}
@media(max-width:560px){.module-column{display:none}.menu-panel{grid-template-columns:1fr}.top-search{display:none}.app-title{font-size:0}.app-title:after{content:"G";font-size:16px}.record-actions .secondary-button:nth-of-type(2){display:none}}

.record-page input,.record-page select,.record-page textarea,.record-page .form-grid .required-field input,.record-page .form-grid input[readonly],.dialog-content input,.dialog-content select,.dialog-content textarea{background:rgb(255,255,242)}
.email-field{display:flex;flex-direction:column;gap:4px}.email-field-control{display:flex;align-items:stretch;gap:0;min-width:0}.email-field-control input{flex:1;min-width:0;width:100%}.email-field-control:has(.email-button) input{border-top-right-radius:0;border-bottom-right-radius:0}.email-field-control .email-button{flex:0 0 32px;padding:0;border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;color:var(--blue-2)}.email-button:hover{background:#eef7fc}

.cliente-title-line{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:0 18px;background:#fff}.cliente-title-line .primary-button{grid-column:2;justify-self:end}

.cliente-title-line h1{grid-column:1;margin:0;padding:14px 0;font-size:1rem;font-weight:800;color:var(--navy);background:#fff;text-align:left}

@media(max-width:560px){.cliente-title-line{grid-template-columns:minmax(0,1fr);gap:0;padding:0 10px 8px}.cliente-title-line h1,.cliente-title-line .primary-button{grid-column:1}}

.clientes-table tbody td:not(.empty-table){padding-top:1px;padding-bottom:1px;line-height:18px}

.list-header h1.eyebrow,.cliente-title-line h1.eyebrow{font-size:12px;color:var(--blue-2)}

@media(max-width:850px){.cliente-title-line{padding-left:10px;padding-right:10px}}

.clientes-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin-left:auto}

.clientes-list-page{width:100%;max-width:none}

.document-field{display:flex;flex-direction:column;gap:4px}.document-field-control{display:flex;min-width:0}.document-field-control input{flex:1;min-width:0;width:100%;border-top-right-radius:0;border-bottom-right-radius:0}.document-field-control button{flex:0 0 32px;padding:0;border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;color:var(--blue-2)}.document-field-control button:disabled{opacity:.6;cursor:wait}.document-result{margin:0;font-size:12px}.document-result:empty{display:none}

.related-control select{min-width:0;width:100%}.related-control a[aria-disabled="true"]{opacity:.4;cursor:default;pointer-events:none}

/* Shared appearance for action buttons, including field controls. */
.primary-button,.secondary-button,.maintenance-field a,.context-field button,.email-field-control .email-button,.document-field-control button{border-color:var(--blue-2);background:var(--blue-2);color:#fff;border-radius:4px;font-family:inherit;font-weight:400}
.maintenance-field a:hover,.email-field-control .email-button:hover,.document-field-control button:hover,.context-field button:hover,.secondary-button:hover,.primary-button:hover{background:var(--blue-2);border-color:var(--blue-2);color:#fff;filter:brightness(.92)}
.primary-button:focus-visible,.secondary-button:focus-visible,.maintenance-field a:focus-visible,.context-field button:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.email-field-control .email-button,.document-field-control button{border-top-left-radius:0;border-bottom-left-radius:0}

.auxiliary-page .form-grid textarea{width:100%;min-height:140px;border:1px solid var(--line);border-radius:2px;padding:7px;font:inherit;color:var(--text);resize:vertical}.auxiliary-page .form-grid textarea:focus{outline:2px solid rgba(8,114,183,.18);border-color:var(--blue-2)}.auxiliary-page .form-grid input,.auxiliary-page .form-grid select{min-width:0;width:100%}

.relation-section>header{height:auto;min-height:48px;gap:12px;padding:8px 10px;flex-wrap:wrap}.relation-section h2{margin:0;color:var(--blue-2);font-size:12px;font-weight:800;letter-spacing:.12em}.relation-section>header .primary-button{margin-left:auto}.relation-table{min-width:600px;width:100%}.relation-table tbody td:not(.empty-table){padding-top:1px;padding-bottom:1px;line-height:18px}.relation-table tbody tr:nth-child(odd){background:rgb(255,255,200)}.relation-table tbody tr:nth-child(even){background:rgb(200,255,255)}.relation-table tbody tr:hover{background:#d7ebff}.relation-table .relation-note{white-space:pre-wrap;min-width:260px;overflow-wrap:anywhere}

.context-field button,.email-field-control .email-button,.document-field-control button{height:27.9px}

.address-field{display:flex;flex-direction:column;gap:4px}.address-field-control{display:flex;min-width:0}.address-field-control input{flex:1;min-width:0;width:100%;border-top-right-radius:0;border-bottom-right-radius:0}.address-field-control button{flex:0 0 32px;height:27.9px;padding:0;border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}

.clientes-table th .sort-link{display:block;color:inherit;text-decoration:none}.clientes-table th .sort-link:hover{color:var(--blue-2)}.clientes-table th .sort-link:focus-visible{outline:2px solid var(--blue-2);outline-offset:2px}

.clientes-list-page .table-summary{align-items:center;gap:12px;flex-wrap:wrap}

.clientes-table-footer{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;padding:10px}.clientes-table-footer .pagination{grid-column:2;grid-row:1;padding:0}.clientes-table-footer .clientes-export{grid-column:3;grid-row:1;justify-self:end;white-space:nowrap}@media(max-width:700px){.clientes-table-footer{grid-template-columns:minmax(0,1fr)}.clientes-table-footer .pagination{grid-column:1;flex-wrap:wrap}.clientes-table-footer .clientes-export{grid-column:1;grid-row:2}}

.cliente-status-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;min-width:0}.cliente-status-fields label,.cliente-status-fields select,.cliente-status-fields input{min-width:0;width:100%}

.cliente-email-web-row{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.cliente-email-web-row>label,.cliente-email-web-row input{min-width:0;width:100%}@media(max-width:560px){.cliente-email-web-row{grid-template-columns:minmax(0,1fr)}}

.cliente-economic-row{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.cliente-economic-row label,.cliente-economic-row input{min-width:0;width:100%}@media(max-width:560px){.cliente-economic-row{grid-template-columns:minmax(0,1fr)}}

.specificity-options{display:flex;flex-direction:column}.specificity-options label{display:flex;align-items:center;gap:8px;padding:4px 10px;font-size:12px;cursor:pointer}.specificity-options label:nth-child(odd){background:rgb(200,255,255)}.specificity-options label:nth-child(even){background:rgb(255,255,200)}.specificity-options input[type="checkbox"]{width:16px;height:16px;margin:0;flex-shrink:0;accent-color:var(--blue-2)}

.record-actions[hidden]{display:none}

.relation-table .accounting-edit-button{height:18px;padding:0 5px;gap:4px;font-size:12px;line-height:16px;vertical-align:top;white-space:nowrap}

.gesfit-confirm-actions{gap:10px}.swal2-popup{font-family:inherit}.swal2-container{z-index:2000}
.factura-banco-dialog .swal2-radio{flex-direction:column;align-items:stretch;gap:10px;max-height:50vh;overflow-y:auto;margin:1em 2em}
.factura-banco-dialog .swal2-radio label{display:flex;align-items:center;gap:10px;margin:0;text-align:left;white-space:normal;overflow-wrap:anywhere}
.factura-banco-dialog .swal2-radio input[type=radio]{flex:0 0 auto;width:auto;margin:0}

/* Buscador tabular de cuentas contables. */
.cuenta-selector { position: relative; min-width: 0; }
.cuenta-selector > input { width: 100%; box-sizing: border-box; }
.cuenta-resultados { position: absolute; top: 100%; left: 0; z-index: 50; width: max(100%, 420px); max-width: calc(100vw - 60px); max-height: 300px; overflow: auto; background: white; border: 1px solid #9ab1cb; box-shadow: 0 4px 12px #0002; }
.cuenta-resultados[hidden] { display: none; }
.cuenta-resultados table { width: 100%; border-collapse: collapse; font-size: 12px; text-align: left; }
.cuenta-resultados th { position: sticky; top: 0; background: #07518a; color: white; }
.cuenta-resultados th, .cuenta-resultados td { padding: 5px 8px; border-bottom: 1px solid #dce4ec; }
.cuenta-resultados td:first-child { white-space: nowrap; }
.cuenta-resultados tbody tr { cursor: pointer; background: #fffff2; }
.cuenta-resultados tbody tr:nth-child(even) { background: #edf6fc; }
.cuenta-resultados tbody tr:hover, .cuenta-resultados tr[aria-selected="true"] { background: #c6e5fa; }

.relation-controls { display:flex; gap:4px; min-width:0; }
.relation-controls > input { flex:1; width:0; min-width:0; }
.relation-controls > button { flex:none; padding:0 8px; }
.relation-native { position:absolute !important; width:1px !important; height:1px !important; opacity:0; pointer-events:none; }
.relation-selector { width:100%; }

.articulo-imagen { margin:20px auto; text-align:center; }
.articulo-imagen > img { display:block; max-width:100%; max-height:400px; object-fit:contain; margin:0 auto 12px; }
.articulo-imagen > img[hidden] { display:none; }
.articulo-imagen-controles { display:flex; justify-content:center; align-items:center; gap:10px; flex-wrap:wrap; margin-top:12px; }

.compact-table .record-clickable-row { cursor:pointer; }
.compact-table .record-clickable-row:hover > td,
.compact-table .record-clickable-row:focus-visible > td { background:#e0f0fb; }
.compact-table .record-clickable-row:focus-visible { outline:2px solid #0872b7; outline-offset:-2px; }

/* Shared listing colours, matching related-value search tables. */
.compact-table thead th { background:#07518a; color:#fff; }
.compact-table thead th a,
.compact-table thead th .sort-link:hover { color:#fff; }
.compact-table thead th .sort-link:focus-visible { outline-color:#fff; }
.compact-table tbody tr:nth-child(odd) > td { background:#fffff2; }
.compact-table tbody tr:nth-child(even) > td { background:#edf6fc; }
.compact-table tbody tr:hover > td,
.compact-table tbody tr:focus-within > td,
.compact-table tbody tr[aria-selected="true"] > td { background:#c6e5fa; }

.albaran-totales { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:20px; padding:16px; background:#edf6fc; border-top:1px solid #cbd9e5; color:#07518a; }
.albaran-totales span { display:flex; flex-direction:column; gap:4px; min-width:110px; text-align:right; }
.albaran-totales strong { font-size:18px; }
.albaran-totales-venta > span { text-align:center; }

/* Delivery-note header and lines share one compact screen. */
.albaran-page .record-content { max-width:none; }
.albaran-header-fields .form-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px 12px; }
.albaran-header-field { display:grid; grid-template-columns:118px minmax(0,1fr); align-items:center; gap:6px; min-width:0; }
.albaran-header-field > label { margin:0; color:var(--blue-2); }
.albaran-field-value { min-width:0; }
.albaran-field-value > input,
.albaran-field-value > select,
.albaran-field-value > textarea { width:100%; min-width:0; box-sizing:border-box; }
.albaran-header-fields input,
.albaran-header-fields select { font-size:12px; height:22.599px; }
.albaran-header-fields textarea { font-size:12px; }
.albaran-header-fields .relation-controls > button { height:22.599px; font-size:12px; }
.albaran-field-wide { grid-column:span 2; }
.albaran-page #lineas { scroll-margin-top:110px; }
.albaran-page #lineas .albaran-porcentaje { text-align:center; }
@media (min-width:1400px) {
    .albaran-header-fields .form-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media (max-width:1050px) {
    .albaran-header-fields .form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:650px) {
    .albaran-header-fields .form-grid { grid-template-columns:minmax(0,1fr); }
    .albaran-field-wide { grid-column:auto; }
    .albaran-header-field { grid-template-columns:108px minmax(0,1fr); }
}

.albaranes-list-toolbar .list-search { flex-wrap:wrap; align-items:center; }
.albaranes-list-toolbar input[type="search"] { flex:1 1 280px; }
.albaranes-list-toolbar .albaranes-date-filter { display:flex; align-items:center; gap:6px; white-space:nowrap; font-size:12px; }
.albaranes-list-toolbar input[type="date"] { flex:none; width:145px; }
.albaranes-table th,
.albaranes-table td { text-align:center; }
.albaranes-table th:nth-child(5),
.albaranes-table td:nth-child(5) { text-align:left; }
.albaranes-table th:nth-child(7),
.albaranes-table td:nth-child(7),
.albaranes-table th:nth-child(8),
.albaranes-table td:nth-child(8),
.albaranes-table th:nth-child(9),
.albaranes-table td:nth-child(9),
.albaranes-table th:nth-child(10),
.albaranes-table td:nth-child(10) { text-align:right; }
.albaranes-table tfoot th,
.albaranes-table tfoot td { background:#edf6fc; color:#07518a; border-top:2px solid #9ab1cb; font-weight:700; }
.albaranes-table tfoot th { position:static; text-align:left; }
.albaranes-table tfoot td.saldo-importe { text-align:right; }

.albaran-draft-dialog { width:min(1000px,95vw); max-height:90vh; overflow:auto; padding:14px; border:1px solid var(--line); border-radius:4px; }
.albaran-draft-dialog::backdrop { background:rgba(0,0,0,.35); }
.albaran-draft-dialog h2 { color:var(--blue-2); font-size:16px; margin:0 0 10px; }
#draft-lines tr[data-index] { cursor:pointer; }

.albaran-line-field-full { grid-column:1 / -1; }
.albaran-line-fields textarea { font-family:inherit; font-size:12px; background:rgb(255,255,242); color:var(--text); border:1px solid var(--line); border-radius:2px; padding:3px 7px; resize:vertical; }
.albaran-draft-dialog .albaran-line-fields .form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media (max-width:650px) {
    .albaran-draft-dialog .albaran-line-fields .form-grid { grid-template-columns:minmax(0,1fr); }
}

/* Compact form layout shared by all maintenance screens. */
.record-page .record-content { max-width:none; }
.record-page .form-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px 12px; }
.record-page .form-grid label:has(input,select,textarea),
.dialog-content label:has(input,select,textarea),
.record-page .form-grid .address-field,
.record-page .form-grid .document-field,
.record-page .form-grid .email-field {
    display:grid; grid-template-columns:118px minmax(0,1fr); align-items:center; gap:4px 6px;
    min-width:0; margin:0; color:var(--blue-2); font-size:12px;
}
.record-page .form-grid label:has(input,select,textarea) > *,
.dialog-content label:has(input,select,textarea) > *,
.record-page .form-grid .address-field > :not(label),
.record-page .form-grid .document-field > :not(label),
.record-page .form-grid .email-field > :not(label) { grid-column:2; min-width:0; }
.record-page .form-grid .address-field > label,
.record-page .form-grid .document-field > label,
.record-page .form-grid .email-field > label { grid-column:1; grid-row:1; color:var(--blue-2); }
.record-page .form-grid input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.record-page .form-grid select,
.dialog-content input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.dialog-content select { height:22.599px; font-size:12px; min-width:0; width:100%; }
.record-page .form-grid textarea,
.dialog-content textarea { font-family:inherit; font-size:12px; width:100%; min-width:0; background:rgb(255,255,242); }
.record-page .form-grid .relation-controls > input,
.dialog-content .relation-controls > input { width:0; }
.record-page .form-grid .relation-controls > button,
.record-page .form-grid .maintenance-field a,
.record-page .form-grid .context-field button,
.record-page .form-grid .address-field-control button,
.record-page .form-grid .document-field-control button,
.record-page .form-grid .email-field-control .email-button,
.dialog-content .relation-controls > button { height:22.599px; font-size:12px; }
.record-page .form-grid .errorlist { margin:0; }
.record-page .form-grid .cliente-status-fields { grid-column:span 2; gap:4px 12px; }
.record-page .form-grid .cliente-economic-row,
.record-page .form-grid .cliente-email-web-row { gap:4px 12px; }
@media (min-width:1400px) {
    .record-page .form-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media (max-width:1050px) {
    .record-page .form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:650px) {
    .record-page .form-grid { grid-template-columns:minmax(0,1fr); }
    .record-page .form-grid .span-2,
    .record-page .form-grid .cliente-status-fields { grid-column:auto; }
    .record-page .form-grid .cliente-status-fields,
    .record-page .form-grid .cliente-economic-row,
    .record-page .form-grid .cliente-email-web-row { grid-template-columns:minmax(0,1fr); }
    .record-page .form-grid label:has(input,select,textarea),
    .dialog-content label:has(input,select,textarea),
    .record-page .form-grid .address-field,
    .record-page .form-grid .document-field,
    .record-page .form-grid .email-field { grid-template-columns:108px minmax(0,1fr); }
}

/* Listing and related-record typography matches delivery-note fields. */
.compact-table,
.cuenta-resultados table { font-family:inherit; font-size:12px; }
.compact-table th,
.compact-table td,
.cuenta-resultados th,
.cuenta-resultados td { font-size:12px; }
.compact-table input,
.compact-table select,
.compact-table textarea,
.compact-table button { font-family:inherit; font-size:12px; }

/* Emision de factura junto a los importes del albaran. */
.albaran-totales { align-items:center; }
.albaran-totales .albaran-emitir-factura { margin-right:auto; display:inline-flex; align-items:center; gap:6px; }
.albaran-page .albaran-facturado-status { background:#07518a; color:#fff; padding:6px 10px; margin:0 0 12px; }

/* Filtros de cartera del cliente en una sola linea. */
.saldos-filtros { display:flex; flex-wrap:nowrap; align-items:center; gap:14px; padding:10px; overflow-x:auto; }
.saldos-filtros .saldos-rango { display:flex; flex:none; align-items:center; gap:6px; white-space:nowrap; font-size:12px; color:var(--blue-2); }
.saldos-filtros input[type="date"] { width:125px; min-width:125px; height:22.6px; box-sizing:border-box; padding:2px 5px; border:1px solid var(--line); border-radius:2px; background:rgb(255,255,242); color:var(--text); font:inherit; }
.saldos-filtros input[type="checkbox"] { flex:none; width:16px; height:16px; margin:0; accent-color:var(--blue-2); }
.saldos-filtros button { flex:none; }

.record-actions.saldos-paginacion { display:flex; justify-content:center; align-items:center; width:100%; box-sizing:border-box; }

/* Misma altura de fila en saldos y movimientos que en la relacion de clientes. */
#cliente-saldos .compact-table tbody td:not(.empty-table) { padding-top:1px; padding-bottom:1px; line-height:18px; }
.saldos-facturas tbody .primary-button { height:18px; min-height:0; padding:0 5px; line-height:16px; vertical-align:top; }

.compact-table th.saldo-importe, .compact-table td.saldo-importe { text-align:right; font-variant-numeric:tabular-nums; }

.factura-proveedor-vencimientos th.saldo-importe,
.factura-proveedor-vencimientos td.saldo-importe { text-align:center; }
.factura-proveedor-vencimientos td a.primary-button { color:#fff; }

.saldos-filtros .saldos-check { display:flex; flex:none; align-items:center; gap:6px; white-space:nowrap; font-size:12px; color:var(--blue-2); }

.relation-list-footer { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:10px; align-items:center; padding:10px; }
.relation-list-footer .pagination { grid-column:2; padding:0; flex-wrap:wrap; }
.relation-list-footer .relation-list-export { grid-column:3; justify-self:end; display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.relation-list-footer .form-error { grid-column:1/-1; margin:0; }
@media(max-width:900px){.relation-list-footer{grid-template-columns:1fr}.relation-list-footer .pagination,.relation-list-footer .relation-list-export{grid-column:1;justify-self:center}}

/* Ventana de cobro sobre la relacion de saldos. */
.cobro-overlay { position:fixed; inset:0; z-index:1000; background:rgba(12,38,60,.48); display:flex; align-items:center; justify-content:center; padding:20px; }
.cobro-modal { width:680px; max-width:100%; max-height:90vh; overflow:auto; background:#e1effc; border:1px solid #6598bd; border-radius:8px; box-shadow:0 18px 60px #1238; color:#104d7b; }
.cobro-modal>header { display:flex; align-items:center; justify-content:space-between; padding:10px 18px; background:#0c4f80; color:white; }
.cobro-modal h2 { margin:0; font-size:17px; }
.cobro-contenido { padding:0 22px 22px; }
.cobro-estado { margin:8px 22px; }
.cobro-identidad { display:flex; gap:12px; align-items:center; justify-content:center; padding:12px 0; flex-wrap:wrap; }
.cobro-resumen-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; line-height:1.9; }
.cobro-resumen dl { display:grid; grid-template-columns:1fr 120px; margin:0 0 18px; }
.cobro-resumen dd { margin:0; text-align:right; padding:0 10px; background:white; }
.cobro-resumen .cobro-saldo { background:#0c4f80; color:white; font-weight:bold; }
.cobro-form { border-top:4px solid #0c4f80; padding-top:20px; }
.cobro-campo { display:grid; grid-template-columns:140px minmax(0,1fr); gap:12px; align-items:center; margin:8px 0; }
.cobro-campo>label { text-align:right; }
.cobro-campo input,.cobro-campo select { box-sizing:border-box; width:100%; background:#fffff2; }
.cobro-importe input { font-size:23px; font-weight:bold; text-align:right; height:40px; }
.cobro-modal .record-actions { justify-content:center; margin-top:20px; flex-wrap:wrap; }
@media(max-width:540px) { .cobro-overlay {padding:8px;} .cobro-contenido {padding:0 12px 12px;} .cobro-campo {grid-template-columns:100px minmax(0,1fr);} .cobro-resumen-grid {grid-template-columns:1fr;} }

/* Los enlaces de cobro conservan el contraste del boton primario. */
#saldos-filas a.primary-button { color:#fff; }

.remesa-actions,.remesa-contabilizar { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.remesa-contabilizar { margin:0; }
.remesa-contabilizar .remesa-diario { display:flex; align-items:center; gap:8px; margin:0; }
.remesa-diario .cuenta-selector { width:240px; }
.remesa-diario .maintenance-hint { display:none; }

.record-actions.remesa-actions { justify-content:center; margin-bottom:12px; }
.remesa-actions .remesa-contabilizar { flex-basis:100%; justify-content:center; }

.asiento-consulta-table { width:100%; border-collapse:collapse; font-size:13px; text-align:left; }
.asiento-consulta-table th,.asiento-consulta-table td { padding:2px 8px; line-height:18px; }
.asiento-consulta-table tbody td { border-bottom:1px solid #dce4ea; }
.asiento-consulta-table tbody tr:nth-child(odd)>td { background:#fffff2; }
.asiento-consulta-table tbody tr:nth-child(even)>td { background:#edf6fc; }

.remesa-selection-footer #remesa-generar-acciones { grid-column:1; grid-row:1; justify-self:start; justify-content:flex-start; }
@media(min-width:901px) {
 .remesa-selection-footer .pagination,.remesa-selection-footer .relation-list-export { grid-row:1; }
}

/* Nombre de base centrado en el espacio entre las pestanas y la busqueda. */
.workspace-base-name{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;padding:0 16px;font-weight:700;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.workspace-base-name + .top-search{margin-left:8px;flex-shrink:0}
@media(max-width:900px){.workspace-base-name + .top-search{width:180px}.workspace-base-name{padding:0 8px}}
@media(max-width:600px){.workspace-base-name + .top-search{width:42px;overflow:hidden;white-space:nowrap}.workspace-base-name + .top-search kbd{display:none}.workspace-base-name{font-size:12px}.workspace-tabs .app-title{padding-left:8px;padding-right:8px}}

/* Logo con margen propio y sin deformacion en la barra lateral. */
.brand-mark{padding:4px;flex-shrink:0;overflow:hidden}
.brand-mark .brand-logo{display:block;width:34px;height:34px;object-fit:contain;border-radius:50%}

/* Relaciones contables: tabla desplazable y controles comunes al pie. */
.contabilidad-relacion{display:flex;flex-direction:column;min-height:calc(100vh - 125px);min-height:calc(100dvh - 125px)}
.contabilidad-relacion>.table-card{display:flex;flex-direction:column;flex:1;min-height:0}
.contabilidad-relacion>.table-card>.table-scroll{flex:1;min-height:0;max-height:calc(100vh - 340px)}
.contabilidad-relacion .relation-list-footer{margin-top:auto;background:var(--bg,#edf4f8);position:sticky;bottom:0;z-index:2}
.contabilidad-relacion .list-search{flex-wrap:wrap;align-items:center}
