:root{--ink:#193b40;--muted:#667b7b;--teal:#176b65;--teal-dark:#114c48;--paper:#f3f5f1;--line:#dce5df;--white:#fff;--warn:#fff1d8;--red:#9f352d;--shadow:0 8px 25px rgba(19,54,48,.035);font-family:Segoe UI,system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--paper);font-size:15px}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}button{border:1px solid #c8d8d1;background:#fff;padding:10px 16px;border-radius:8px;color:var(--ink);cursor:pointer;font-weight:600;line-height:1.35}button:hover{border-color:var(--teal);background:#eef5f1}button:disabled{opacity:.48;cursor:not-allowed}.primary{background:var(--teal);color:white;border-color:var(--teal)}.primary:hover{background:var(--teal-dark);color:white}a{color:var(--teal);text-underline-offset:3px}input,textarea,select{width:100%;border:1px solid #cbdad4;background:#fff;color:var(--ink);border-radius:7px;padding:10px 11px;margin-top:6px;outline:none;min-width:0}input:focus,textarea:focus,select:focus{border-color:var(--teal);box-shadow:0 0 0 3px #176b6518}textarea{resize:vertical}label{display:block;font-size:.86rem;font-weight:600;line-height:1.5}input[type=checkbox]{width:18px;height:18px;flex-shrink:0;accent-color:var(--teal);margin:0}.check{display:flex;gap:10px;align-items:center;line-height:1.5;font-weight:400}.check input{flex-shrink:0}input[type=file]{font-size:13px;padding:8px}p{line-height:1.65}h1,h2,h3{line-height:1.2;letter-spacing:-.035em}h1{font-size:2rem;margin:7px 0 0}h2{font-size:1.3rem;margin:0 0 18px}h3{font-size:1.05rem;margin:0 0 15px}.muted{font-size:.85rem;color:var(--muted);line-height:1.6}.eyebrow{font-size:.68rem;letter-spacing:.17em;font-weight:800;color:var(--teal)}[hidden]{display:none!important}.shell{display:grid;grid-template-columns:226px 1fr;min-height:100vh}.sidebar{background:#173f40;color:#fff;display:flex;flex-direction:column;padding:34px 20px;position:sticky;top:0;height:100vh}.brand{color:white;display:flex;align-items:center;gap:12px;text-decoration:none;font-size:1.15rem}.brand b{display:block;font-weight:350;font-size:1rem;letter-spacing:.1em}.brand-mark{background:#a7d5bd;color:#173f40;font-weight:700;font-size:1.8rem;width:46px;height:46px;display:grid;place-items:center;border-radius:12px}.sidebar-caption{font-size:.62rem;letter-spacing:.16em;color:#99b7b4;margin:44px 10px 15px}nav{display:grid;gap:8px}nav button{background:transparent;border-color:transparent;color:#b7d0cc;text-align:left;display:flex;justify-content:space-between;padding:14px 12px}nav button span{font-size:.7rem;opacity:.6}nav button:hover,nav button.nav-active{background:#2d5351;color:white;border-color:transparent}.sidebar-foot{margin-top:auto;font-size:.75rem;color:#aec8c1;padding:35px 10px 0}.server-indicator{color:#d4e9dc}.server-indicator:before{content:'●';color:#9fd2b0;margin-right:8px}.text-button{background:transparent;color:#cee0d8;border:0;font-size:.75rem;padding:8px 0;display:block;font-weight:400}.text-button:hover{background:none;color:#fff}main{min-width:0;padding:30px 42px 70px;max-width:1700px;width:100%;margin:0 auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:32px}.identity{text-align:right;font-size:.85rem}.identity span{display:block;font-size:.73rem;margin-top:5px;color:var(--muted)}.hero-panel{background:#e1ece3;display:flex;justify-content:space-between;align-items:center;gap:30px;padding:30px 35px;border-radius:14px;margin-bottom:26px}.hero-panel h2{font-size:1.9rem;font-weight:600;margin:12px 0}.hero-panel p{max-width:650px;margin-bottom:0;font-size:.91rem;color:#4e6d62}.hero-panel button{white-space:nowrap;flex-shrink:0}.toolbar{display:flex;gap:14px;align-items:end;margin-bottom:20px}.toolbar .search{max-width:520px;flex:1}.card,.table-card{background:white;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.card{padding:25px;margin-bottom:20px}.table-card{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.86rem;min-width:620px}th{background:#f9fbf8;font-size:.66rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);text-align:left;padding:17px 20px;white-space:nowrap}td{padding:18px 20px;border-top:1px solid #edf1ed;line-height:1.5}td small{display:block;color:var(--muted);max-width:300px;overflow-wrap:anywhere}td button{padding:7px 13px;font-size:.78rem}.badge{display:inline-block;border-radius:20px;padding:5px 10px;background:#edf2ed;font-size:.72rem;font-weight:700;white-space:nowrap}.badge.disponible{background:#def0df;color:#285936}.badge.error,.badge.pendiente_confirmacion{background:#ffead8;color:#8a461e}.badge.desactualizado{background:#fff2ce;color:#78621b}.empty{padding:65px 25px;text-align:center;color:var(--muted)}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:16px;font-size:.82rem;color:var(--muted)}.pagination button{font-size:.8rem}.editor-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:20px}.editor-bar .primary{margin-left:auto}.editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 295px;gap:24px}.form-column{min-width:0}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 20px}.wide{grid-column:1/-1}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.section-heading h2{margin:0}.section-heading button{font-size:.8rem;padding:7px 10px}.action-column .card{padding:22px}.action-column .card p{font-size:.83rem}.action-card .eyebrow{display:block;margin-bottom:15px}.action-card label{margin:18px 0}.full{display:block;width:100%;margin-top:12px;font-size:.86rem}.receipt{margin-top:20px;font-size:.8rem;line-height:1.8}.receipt strong{display:block;word-break:break-word}.info,.warning{padding:15px 19px;margin-bottom:20px;border-radius:9px;font-size:.88rem;line-height:1.6;overflow-wrap:anywhere}.info{background:#e6f0ef;color:#2b5b59}.warning{background:var(--warn);color:#775020;border:1px solid #f3dbab}.goods-line{background:#f6f8f5;border:1px solid var(--line);border-radius:9px;padding:18px;margin-top:18px}.goods-line .section-heading{margin-bottom:15px}.goods-line .section-heading strong{font-size:.82rem}.danger-button{color:var(--red);font-size:.75rem}details{margin-top:23px;border-top:1px solid var(--line);padding-top:17px}summary{font-size:.85rem;color:var(--teal);font-weight:600;cursor:pointer}pre,code,#advanced-json,.code-input{font-family:Consolas,ui-monospace,monospace;font-size:.79rem;line-height:1.65}pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:450px;overflow:auto;background:#f1f5f2;padding:15px;border-radius:8px}#advanced-json{margin:12px 0}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.admin-grid .card{margin-bottom:0}.admin-grid .card>p{font-size:.88rem}.admin-grid .card>button{margin:6px 0 8px;font-size:.85rem}#notice{position:fixed;right:30px;top:20px;z-index:200;background:#214e47;color:white;box-shadow:0 10px 35px #0002;border-radius:10px;padding:16px 23px;max-width:min(660px,90vw);font-size:.9rem;white-space:pre-line;line-height:1.5}#notice.error{background:#854236}dialog{border:1px solid var(--line);border-radius:14px;padding:26px;width:min(850px,94vw);max-height:88vh;box-shadow:0 35px 100px #0003;color:var(--ink)}dialog::backdrop{background:#10382b66;backdrop-filter:blur(3px)}.modal-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:22px}.modal-heading h2{margin:0}.modal-heading button{padding:2px 10px;font-size:1.5rem;border:0}#modal-body .fields{margin-bottom:20px}#modal-body form>label{margin-bottom:16px}.modal-row{border-top:1px solid var(--line);padding:15px 0;display:flex;gap:15px;align-items:center;justify-content:space-between}.modal-row small{display:block;font-size:.75rem;color:var(--muted);margin-top:4px}.modal-row button{font-size:.75rem}.history-entry{border-top:1px solid var(--line);padding:18px 0}.history-entry p{font-size:.85rem;margin:6px 0}.access{display:grid;grid-template-columns:1.05fr 1fr;min-height:100vh}.access-intro{background:#193f40;color:#ecf4eb;padding:13vh 8vw;display:flex;flex-direction:column}.access-intro .eyebrow{color:#a5cfb6}.access-intro h1{font-size:clamp(2.5rem,4.4vw,4.5rem);letter-spacing:-.055em;line-height:1.13;margin:60px 0 25px;font-weight:450}.access-intro p{font-size:1.03rem;color:#b8cfc3}.version-label{font-size:.65rem;letter-spacing:.2em;margin-top:auto;padding-top:60px;color:#9bbcb1}.access-box{width:min(450px,85%);align-self:center;justify-self:center;padding:50px 0}.access-box .brand-mark{margin-bottom:28px}.access-box h2{font-size:1.9rem;letter-spacing:-.04em}.access-box>p{font-size:.9rem;color:var(--muted)}.access-box form label{margin:21px 0}.access-box form button{width:100%;margin-top:5px}.access-note{font-size:.76rem!important;border-top:1px solid var(--line);padding-top:22px;margin-top:30px}.user-row{border-top:1px solid var(--line);padding:14px 0;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.87rem}.user-row small{display:block;color:var(--muted);font-size:.72rem}.user-row button{font-size:.75rem}.diagnostic-row{display:flex;gap:12px;justify-content:space-between;font-size:.84rem;padding:9px 0;border-bottom:1px solid var(--line)}.diagnostic-row .good{color:#267540}.diagnostic-row .bad{color:#a35a18}#attachment-list a{display:block;font-size:.82rem;word-break:break-word;margin-top:12px}@media(min-width:1600px){.editor-layout{grid-template-columns:minmax(0,1fr) 330px}}@media(max-width:1120px){.shell{grid-template-columns:190px 1fr}.sidebar{padding:25px 12px}main{padding:25px}.editor-layout{grid-template-columns:1fr}.action-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.action-column .card{margin:0}.hero-panel{padding:25px;align-items:start;flex-direction:column}}@media(max-width:740px){.shell{display:block}.sidebar{position:static;height:auto;padding:16px 18px}.brand{font-size:1rem}.brand b{display:inline;font-size:1rem;letter-spacing:0}.brand-mark{width:34px;height:34px;font-size:1.3rem}.sidebar-caption,.sidebar-foot{display:none}nav{display:flex;gap:5px;margin-top:15px;overflow:auto}nav button{font-size:.75rem;padding:9px 10px;white-space:nowrap}nav button span{display:none}main{padding:22px 15px}.topbar{margin-bottom:22px}h1{font-size:1.7rem}.identity{font-size:.72rem}.hero-panel h2{font-size:1.55rem}.card{padding:21px 18px}.fields{gap:16px;grid-template-columns:1fr}.wide{grid-column:auto}.admin-grid,.action-column{grid-template-columns:1fr}.editor-bar .primary{margin-left:0}.access{display:block}.access-intro{padding:32px}.access-intro h1{font-size:2.2rem;margin:25px 0}.access-intro h1 br:nth-of-type(2){display:none}.access-intro p,.version-label{display:none}.access-box{margin:auto;padding:38px 0}.access-box h2{font-size:1.6rem}.toolbar{flex-wrap:wrap}.toolbar .search{min-width:100%}.pagination{justify-content:space-between}.section-heading{align-items:start}.editor-bar button{font-size:.8rem;padding:8px 11px}#notice{right:15px;top:15px}}

@media(max-width:740px){.sidebar-foot{display:flex;margin-top:6px;padding:0;gap:18px}.sidebar-foot p,.sidebar-foot .server-indicator{display:none}.sidebar-foot .text-button{padding:5px 0;margin:0}}
/* Oficina 12.1: documents, billing and guided entry */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
:focus-visible{outline:3px solid #62ab95;outline-offset:3px}button:focus-visible,a:focus-visible{outline-color:#3b8c75}
.filter-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:23px 25px;margin-bottom:20px;box-shadow:var(--shadow)}
.filter-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.filter-heading h2{font-size:1.05rem;margin:0}.filter-heading p{margin:6px 0 0}.quiet{border-color:transparent;background:transparent;color:var(--teal);font-size:.8rem;white-space:nowrap}
.filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:17px}.filter-grid>button{min-height:43px}.filter-grid label{font-size:.77rem}.filter-grid input,.filter-grid select{font-size:.85rem}
.export-card{padding:24px 27px;border:1px solid #b8d4c5;border-radius:12px;display:flex;justify-content:space-between;gap:22px;align-items:center;background:#eaf3ed;margin-bottom:20px}.export-card h2{font-size:1.1rem;margin:0 0 8px}.export-card p{margin:0}.export-card button{flex-shrink:0}
.billing-hero{background:#e5eced}.hero-symbol{font-size:4.2rem;line-height:1;font-weight:300;color:#8eb1aa;padding:0 25px}.selection-note{background:#e6f0ef;border-left:3px solid var(--teal);padding:13px 15px;border-radius:3px;font-size:.83rem;line-height:1.6;margin-bottom:20px}
.row-actions{min-width:210px;max-width:280px}.row-actions button{margin:3px 5px 3px 0;padding:6px 10px;font-size:.73rem}.row-actions .danger-button{border-color:transparent;background:transparent}.badge.deleted{background:#f0e8e6;color:#855045}.deleted-row{background:#fdfbfa}.deleted-row td:first-child{border-left:3px solid #c6a497}
.empty-mark{display:inline-grid;place-items:center;background:#e8efe7;color:#8ba796;border-radius:14px;font-size:1.8rem;font-weight:600;width:56px;height:56px;margin-bottom:20px}.empty h3{color:var(--ink)}.empty p{font-size:.88rem;margin-bottom:0}
.connection-pending:before{color:#e6b971}.machine-label{font-size:.83rem;font-weight:600;margin:18px 0 12px;word-break:break-word}#diagnostics-result .warning p,#diagnostics-result .info p{margin-bottom:0;font-size:.83rem}#diagnostics-result details{margin:12px 0 22px}
#document-form [data-master-kind]{background-image:linear-gradient(45deg,transparent 50%,#829d92 50%),linear-gradient(135deg,#829d92 50%,transparent 50%);background-position:calc(100% - 15px) center,calc(100% - 11px) center;background-size:4px 4px;background-repeat:no-repeat;padding-right:28px}
#modal-body form>details{margin-bottom:23px}#modal-body label textarea{margin-bottom:12px}#masters-body td:last-child{width:100px}
@media(min-width:1500px){.filter-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.hero-panel{min-height:185px}.hero-panel h2{font-size:2.15rem}}
@media(max-width:1120px){.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.billing-hero .hero-symbol{display:none}.export-card{align-items:flex-start;flex-direction:column}.export-card button{width:100%}}
@media(max-width:740px){.filter-card{padding:20px 17px}.filter-heading{align-items:flex-start}.filter-heading p{max-width:210px}.filter-grid{gap:15px 12px}.filter-grid label{font-size:.74rem}.filter-grid input,.filter-grid select{padding:9px 8px;font-size:.78rem}.filter-search{grid-column:1/-1}.filter-grid>label:first-child{grid-column:1/-1}.export-card{padding:22px 18px}.hero-panel{gap:20px}.hero-panel button{width:100%}.sidebar .brand{width:max-content}.row-actions{min-width:195px}.filter-heading .quiet{padding:4px 0;font-size:.73rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media print{.sidebar,.topbar,.editor-bar,.action-column,.hero-panel,.filter-card,.pagination,#notice{display:none!important}.shell{display:block}main{padding:0;max-width:none}.card,.table-card{box-shadow:none}.editor-layout{display:block}.fields{grid-template-columns:repeat(2,minmax(0,1fr))}body{background:white}.card{break-inside:avoid}.editor-layout::before{content:'Borrador de trabajo — utilice «Abrir PDF» para imprimir el DeCA publicado.';display:block;padding:18px;border:1px solid #555;margin-bottom:20px}}

.spaced-label{margin-top:17px}

/* Formulario guiado: requisitos de publicación y selección explícita de fichas. */
.required-mark{color:#a2372c;font-weight:800;white-space:nowrap}.required-legend{font-size:.85rem;line-height:1.6;margin:0 0 20px;color:var(--muted)}
.publication-check{background:#eef5f1;border-radius:7px;padding:11px 12px;font-size:.8rem!important;line-height:1.55!important}.publication-issues{margin:10px 0 0;padding-left:18px}.publication-issues li{margin-bottom:8px}.issue-link{background:transparent;border:0;border-radius:3px;text-align:left;font-size:.77rem;font-weight:500;padding:2px;color:var(--teal)}.published-actions{border-top:1px solid var(--line);padding-top:20px;margin-top:22px}.published-actions h3{margin-bottom:10px}
.fields>label{position:relative}.master-suggestions{position:absolute;top:100%;left:0;right:0;z-index:25;min-width:260px;max-height:320px;overflow:auto;background:#fff;border:1px solid #95b6a9;border-radius:8px;box-shadow:0 14px 30px #173f4025;margin-top:3px;padding:5px}.master-suggestions .master-choice{display:block;width:100%;border:0;border-radius:4px;text-align:left;padding:11px 9px;font-weight:400;background:white}.master-suggestions .master-choice:hover,.master-suggestions .master-choice:focus{background:#e9f3ed}.master-choice strong{display:block;font-size:.84rem}.master-choice small{display:block;margin-top:5px;font-size:.72rem;color:var(--muted);font-weight:400;line-height:1.5;overflow-wrap:anywhere}.master-suggestions p{padding:6px 9px;margin:0;font-weight:400}.modal-row>div{min-width:0}.modal-row small{overflow-wrap:anywhere}
.master-import-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 22px;padding:20px;background:#eaf1ed;border-radius:10px}.master-import-toolbar>p{flex-basis:100%;margin:0}.master-import-toolbar input{max-width:300px;background:#fff}.master-import-toolbar button{font-size:.8rem}.import-preview{max-height:370px;overflow:auto;margin-bottom:20px}.import-preview table{font-size:.78rem}.button-link{display:inline-block;text-decoration:none;padding:11px 16px;border-radius:8px;font-weight:600}.button-link.primary{color:white}.button-link:hover{background:var(--teal-dark)}#email-compose{margin-top:15px}
@media(max-width:740px){.master-suggestions{min-width:0}.master-import-toolbar{display:block}.master-import-toolbar button{width:100%;margin-bottom:10px}.master-import-toolbar label{margin:5px 0 12px}}
