:root{--ink:#172b4a;--muted:#63758f;--teal:#183d72;--teal-dark:#10264d;--line:#dfe5ef;--bg:#f4f6fa;--soft:#edf2fa;--white:#fff;--amber:#966210;--red:#b73b3b;--radius:14px;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-size:15px;line-height:1.5}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,textarea,select{outline-offset:4px}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button,a{touch-action:manipulation}button{border:0}a{color:var(--teal)}h1,h2,h3,p{margin-top:0}h1{font-size:30px;line-height:1.2;letter-spacing:-1px;font-weight:650}h2{font-size:22px;letter-spacing:-.6px;font-weight:650}h3{font-size:16px;font-weight:650}p{color:var(--muted)}.boot{padding:80px;text-align:center}.brand{display:flex;align-items:center;gap:11px;font-weight:750;font-size:24px;letter-spacing:2px;color:var(--ink)}.brand-mark{display:grid;place-items:center;width:38px;height:41px;border-radius:14px 14px 18px 18px;background:var(--teal);color:#fff;font-size:24px;letter-spacing:0}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:11px;font-weight:700;color:var(--teal);margin-bottom:14px}.muted,.hint{color:var(--muted)}.hint{font-size:12px;line-height:1.6;margin-top:7px}.btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:43px;padding:10px 19px;border-radius:8px;background:var(--teal);color:#fff;text-decoration:none;font-weight:600;font-size:14px;white-space:nowrap}.btn:hover{background:var(--teal-dark)}.btn.secondary{background:#fff;color:var(--ink);border:1px solid #d7e0e1}.btn.secondary:hover{background:#f1f5f4}.btn.ghost{background:transparent;color:var(--muted);border:1px solid transparent}.btn.ghost:hover{background:var(--bg)}.btn.small{min-height:33px;padding:6px 11px;font-size:12px}.btn.danger{color:var(--red);background:#fff4f3}.text-btn{background:none;padding:0;color:var(--teal);text-align:left;font-weight:600}.icon-btn{width:34px;height:34px;border-radius:8px;background:var(--bg);font-size:22px;color:var(--muted)}.row{display:flex;align-items:center;gap:12px}.spread{justify-content:space-between}.wrap{flex-wrap:wrap}.tag{display:inline-flex;align-items:center;gap:5px;border-radius:6px;background:#eef1f5;color:#5b647a;font-size:11px;font-weight:650;padding:4px 9px;white-space:nowrap}.tag.green{background:var(--soft);color:#2f568e}.tag.amber{background:#fff3dc;color:var(--amber)}.tag.gray{background:#edf0f1;color:#68767d}.pill{border-radius:30px;background:var(--soft);color:var(--teal);padding:5px 10px;font-size:11px;font-weight:650}.topbar{height:84px;background:var(--white);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 44px;position:sticky;top:0;z-index:4}.brand-sub{font-size:10px;letter-spacing:1.8px;font-weight:600;color:var(--muted);margin-top:0}.avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#eaf0f8;color:#3a5683;font-weight:650;font-size:12px}.top-label{font-size:12px;color:var(--muted)}.app-shell{max-width:1460px;margin:auto;padding:42px 48px 72px}.page-intro{margin-bottom:32px}.page-intro h1{margin-bottom:9px}.page-intro p{font-size:14px;margin-bottom:0}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:30px}.stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px}.stat span{display:block;font-size:12px;color:var(--muted)}.stat strong{font-size:29px;display:block;font-weight:650;margin:4px 0}.stat small{font-size:11px;color:var(--muted)}.panel{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.panel-head{padding:23px 26px;border-bottom:1px solid var(--line)}.panel-head h2{font-size:17px;margin:0}.toolbar{padding:20px 26px;display:flex;align-items:center;gap:12px}.search{width:330px;max-width:100%;position:relative}.search input{padding-left:36px}.search:before{content:'⌕';position:absolute;left:12px;top:7px;font-size:22px;color:#809095}.toolbar select{width:180px}table{border-collapse:collapse;width:100%;text-align:left;font-size:13px}th{background:#f8faf9;color:#7a888e;text-transform:uppercase;font-size:10px;letter-spacing:.9px;font-weight:650;padding:14px 22px;border-bottom:1px solid var(--line)}td{padding:21px 22px;border-bottom:1px solid #edf0f0;vertical-align:middle}tr:last-child td{border-bottom:0}td .title{font-weight:600;display:block;color:var(--ink);margin-top:5px;max-width:410px}td .sub{font-size:11px;color:var(--muted);margin-top:4px}.table-scroll{overflow:auto}.empty{padding:58px 24px;text-align:center}.empty .empty-symbol{font-size:32px;color:#7aa59e;display:block;margin-bottom:14px}.empty h3{font-size:18px;margin-bottom:8px}.empty p{font-size:13px;max-width:430px;margin:0 auto 22px}.footline{font-size:11px;color:var(--muted);padding:17px 26px;border-top:1px solid var(--line)}.note{padding:17px 20px;border-radius:10px;background:var(--soft);color:#3b577e;font-size:13px;line-height:1.7}.note p{margin:0;color:inherit}.note.amber{background:#fff6e7;color:#866221}.note.error{background:#fff0ef;color:#a13838}.note a{color:inherit}.local-note{margin-top:24px;font-size:12px;display:flex;gap:9px;align-items:flex-start;color:var(--muted)}
.auth-shell{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:#fff}.auth-story{background:#e9eff8;padding:54px 64px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.auth-story:after{content:'';position:absolute;width:440px;height:440px;border:1px solid #c7d5ea;border-radius:50%;right:-140px;bottom:-230px;box-shadow:0 0 0 70px #dae5f533,0 0 0 140px #dae5f533;pointer-events:none}.auth-story h1{font-size:48px;max-width:440px;line-height:1.13;margin:70px 0 20px;letter-spacing:-2px}.auth-story p{max-width:380px;color:#526887;font-size:16px;line-height:1.8}.auth-points{margin-top:35px;display:grid;gap:18px;font-size:13px;color:#3c5882}.auth-points span{display:flex;gap:12px;align-items:center}.auth-foot{font-size:11px;color:#687c98;margin-top:65px}.auth-content{display:flex;align-items:center;justify-content:center;padding:48px}.auth-box{width:370px;max-width:100%}.auth-box h2{font-size:26px;margin-bottom:8px}.auth-box p{font-size:13px;margin-bottom:28px}.auth-tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:28px}.auth-tabs button{padding:12px 0;margin-right:28px;background:none;color:var(--muted);border-bottom:2px solid transparent;font-size:13px}.auth-tabs button.active{border-color:var(--teal);color:var(--teal);font-weight:650}.auth-box .btn{width:100%;margin-top:8px}.auth-box label{margin-bottom:17px}.error-text{color:var(--red);font-size:13px;white-space:pre-wrap}
label{display:block;color:#40545e;font-size:12px;font-weight:600}input,select,textarea{display:block;width:100%;border:1px solid #dbe3e4;background:white;color:var(--ink);border-radius:7px;padding:10px 12px;min-height:42px;font-size:14px;margin-top:7px;transition:border .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:#668bbb;box-shadow:0 0 0 3px #224c8512}textarea{resize:vertical;min-height:100px;line-height:1.6}.required{color:var(--teal);margin-left:3px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:21px}.wide{grid-column:1/-1}.form-grid.three{grid-template-columns:repeat(3,1fr)}.field-section{margin-bottom:30px}.field-section>h3{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:20px}.editor-layout{display:grid;grid-template-columns:235px minmax(0,1fr);gap:34px;max-width:1250px;margin:30px auto;padding:0 35px 70px;align-items:start}.editor-side{position:sticky;top:106px}.back-link{font-size:12px;display:flex;gap:8px;align-items:center;background:none;color:var(--muted);padding:0;margin-bottom:25px}.side-label{font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:#839197;margin-bottom:13px}.steps{display:grid;gap:4px}.step{display:flex;gap:11px;align-items:center;text-align:left;padding:11px 12px;border-radius:8px;background:none;color:#72818a;font-size:12px;font-weight:500}.step.active{background:#e6edf8;color:var(--teal);font-weight:650}.step-dot{width:23px;height:23px;border:1px solid #dce3e3;border-radius:50%;display:grid;place-items:center;font-size:10px;flex-shrink:0;color:#7c8b90}.step.done .step-dot{background:#dfe8f6;border-color:#dfe8f6;color:#365e94}.step.active .step-dot{border-color:#7c99c4}.step.invalid .step-dot{border-color:#db9e92;color:#b73b3b}.side-help{font-size:11px;color:var(--muted);border-top:1px solid var(--line);margin-top:20px;padding:18px 12px}.progress-track{height:5px;background:#e5ece9;border-radius:4px;overflow:hidden;margin-top:11px}.progress-fill{background:var(--teal);height:100%;transition:width .2s}.editor-main{min-width:0}.protocol-header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 22px}.protocol-header h1{font-size:23px;letter-spacing:-.4px;margin-bottom:5px}.save-status{font-size:11px;color:#71817f;display:flex;gap:5px;align-items:center}.save-status.good{color:#2d548a}.save-status.error{color:var(--red)}.editor-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.editor-card-header{padding:30px 33px 23px;border-bottom:1px solid var(--line)}.step-kicker{color:#7a8b90;font-size:10px;text-transform:uppercase;letter-spacing:1.4px;margin-bottom:8px}.editor-card-header h2{margin-bottom:9px}.editor-card-header p{font-size:13px;line-height:1.7;margin-bottom:0;max-width:640px}.editor-content{padding:29px 33px}.editor-footer{border-top:1px solid var(--line);padding:19px 33px;display:flex;justify-content:space-between;gap:15px}.below-card{font-size:11px;text-align:center;color:#8a979b;margin:18px 0}.record{padding:22px;border:1px solid var(--line);border-radius:10px;margin-bottom:17px}.record-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px}.record-head h3{margin-bottom:4px}.record-head p{font-size:11px;margin:0}.record-index{font-size:10px;font-weight:650;letter-spacing:1px;color:var(--teal);margin-bottom:5px}.record .form-grid{gap:15px}.record label{font-size:11px}.record input,.record select{font-size:13px}.add-row{border:1px dashed #b7c7df;background:#f8fbfa;color:var(--teal);width:100%;padding:14px;border-radius:9px;font-size:13px;font-weight:600}.add-row:hover{background:var(--soft)}.section-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:23px}.checkline{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:500;color:var(--muted)}.checkline input{width:16px;min-height:16px;height:16px;margin:0;accent-color:var(--teal)}.manual-link{background:none;text-decoration:underline;color:var(--muted);font-size:11px;padding:12px 0}.goals{display:grid;gap:15px;margin:20px 0}.goal-row{display:flex;align-items:flex-start;gap:10px}.goal-row label{flex:1}.goal-row .icon-btn{margin-top:25px}.calendar-bars{border:1px solid var(--line);border-radius:10px;padding:20px;margin-bottom:23px;background:#fbfcfc}.calendar-item{display:grid;grid-template-columns:150px 1fr;gap:20px;align-items:center;margin-bottom:12px;font-size:11px}.bar-track{height:15px;background:#eaf0f8;border-radius:4px;overflow:hidden}.bar-fill{background:#6f8eb8;height:100%;border-radius:4px;min-width:3px}.review-row{padding:14px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;font-size:13px}.review-row:last-child{border:0}.review-row button{background:none;color:var(--teal);font-size:12px}.review-title{font-size:20px;font-weight:650;margin-bottom:6px}.review-section{padding:20px 0;border-top:1px solid var(--line);margin-top:24px}.review-section h3{margin-bottom:8px}.validation-list{list-style:none;padding:0;margin:10px 0}.validation-list li{margin:8px 0}.validation-list button{background:none;color:#a84b38;text-decoration:underline;text-align:left;padding:0;font-size:12px}.versions{display:grid;gap:14px;margin-top:20px}.version-card{border:1px solid var(--line);border-radius:10px;padding:20px}.version-card p{font-size:12px;margin:10px 0}.version-actions{display:flex;gap:8px;flex-wrap:wrap}.history-event{border-left:2px solid #dce5f2;margin:0 0 0 7px;padding:0 0 24px 22px;font-size:12px}.history-event h3{font-size:13px;margin-bottom:5px}.history-event .muted{font-size:11px}.history-event details{margin-top:10px}.history-event summary{cursor:pointer;color:var(--teal)}.change{padding:10px;background:#f4f6fa;border-radius:6px;margin-top:8px;overflow-wrap:anywhere}.change b{display:block;font-size:11px;margin-bottom:4px}.change del{display:block;color:#a14d4d;text-decoration:none}.change ins{display:block;color:#267b62;text-decoration:none}.history-event pre{white-space:pre-wrap;overflow-wrap:anywhere;font:11px/1.6 inherit;margin:0}.summary-block{margin:16px 0;border-bottom:1px solid var(--line);padding-bottom:16px}.summary-block h3{text-transform:capitalize}.summary-block p{white-space:pre-wrap;font-size:13px}.summary-block pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;color:var(--muted)}
dialog{border:0;border-radius:17px;padding:0;width:min(1100px,94vw);max-height:90vh;color:var(--ink);box-shadow:0 30px 100px #163a3a33}dialog::backdrop{background:#17353066;backdrop-filter:blur(3px)}.modal-head{padding:23px 28px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:2}.modal-head h2{font-size:20px;margin-bottom:4px}.modal-head p{font-size:12px;margin:0}.modal-body{padding:25px 28px}.catalog-toolbar{display:grid;grid-template-columns:1fr 170px;gap:15px;padding:20px 28px}.catalog-toolbar input,.catalog-toolbar select{margin:0}.catalog td{padding:15px 20px;font-size:12px}.catalog .title{margin:0;font-size:12px}.catalog .sub{max-width:230px}.catalog-footer{display:flex;justify-content:space-between;align-items:center;padding:18px 28px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.catalog-note{padding:0 28px 18px;font-size:11px;color:var(--muted)}.narrow-dialog{max-width:580px}.modal-body .form-grid{margin-bottom:20px}.modal-body textarea{margin-bottom:20px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#193b37;color:#fff;box-shadow:0 5px 30px #102c3222;border-radius:10px;padding:13px 22px;font-size:13px;max-width:90vw;z-index:20}#toast.bad{background:#923f38}.offline-banner{margin-bottom:18px}.header-actions{display:flex;gap:8px;align-items:center}.invisible{display:none!important}[hidden]{display:none!important}
@media(min-width:1450px){.editor-layout{padding-top:12px}.auth-story{padding:70px 85px}}
@media(max-width:1000px){.topbar{padding:0 24px}.app-shell{padding:30px 25px}.editor-layout{grid-template-columns:200px 1fr;gap:20px;padding:0 24px 50px}.editor-card-header,.editor-content{padding:25px}.editor-footer{padding:18px 25px}.form-grid.three{grid-template-columns:1fr 1fr}.auth-story{padding:40px}.auth-story h1{font-size:39px}.header-actions .top-label{display:none}}
@media(max-width:760px){.topbar{height:70px;padding:0 18px}.brand{font-size:21px}.brand-mark{width:32px;height:35px;font-size:21px}.brand-sub{font-size:8px}.topbar .user-name,.topbar .pill{display:none}.app-shell{padding:27px 18px}.page-intro{align-items:flex-start;gap:18px}.page-intro h1{font-size:25px}.stats{gap:9px}.stat{padding:16px 12px}.stat strong{font-size:24px}.stat small{display:none}.stat span{font-size:10px}.toolbar{padding:16px;flex-wrap:wrap}.toolbar .search{width:100%}.toolbar select{width:100%}.panel-head{padding:20px}.editor-layout{display:block;padding:0 15px 45px;margin-top:20px}.editor-side{position:static}.back-link{margin-bottom:15px}.side-label,.side-help{display:none}.steps{display:flex;overflow:auto;margin-bottom:25px;padding-bottom:8px;gap:6px}.step{white-space:nowrap;padding:8px;font-size:11px}.step-dot{width:21px;height:21px}.protocol-header{align-items:flex-start}.protocol-header h1{font-size:19px}.header-actions{flex-wrap:wrap;justify-content:flex-end}.header-actions .btn{padding:7px 10px;min-height:34px;font-size:11px}.editor-card-header,.editor-content{padding:23px 19px}.editor-footer{padding:17px 19px}.form-grid,.form-grid.three{grid-template-columns:1fr}.wide{grid-column:auto}.record{padding:16px}.record-head h3{font-size:14px}.section-actions{align-items:flex-start;flex-direction:column}.auth-shell{display:block}.auth-story{padding:27px 24px 32px}.auth-story h1{font-size:32px;letter-spacing:-1px;max-width:420px;margin:32px 0 13px}.auth-story p{font-size:13px;max-width:100%;margin-bottom:0}.auth-points,.auth-foot{display:none}.auth-content{padding:33px 24px}.auth-box{width:100%}.auth-box h2{font-size:23px}.catalog-toolbar{padding:18px;grid-template-columns:1fr}.modal-head{padding:19px}.modal-body{padding:20px}.catalog-footer{padding:15px;gap:10px}.calendar-item{grid-template-columns:100px 1fr}.row.spread.page-intro{flex-wrap:wrap}td,th{padding:15px}.protocol-header .tag{font-size:9px}.footline{padding:14px 18px}}

/* Filas plegables: una lista legible aun con decenas de recursos. */
.resource-list-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;color:var(--muted);font-size:11px}.resource-list-meta button{font-size:11px}.compact-record{border:1px solid var(--line);border-radius:9px;margin-bottom:8px;background:#fff;overflow:hidden}.compact-record>summary{display:flex;align-items:center;gap:13px;padding:13px 15px;min-height:65px;cursor:pointer;list-style:none}.compact-record>summary::-webkit-details-marker{display:none}.compact-record>summary:hover{background:#f7faf9}.compact-number{color:#719189;font-size:11px;flex:0 0 20px;font-variant-numeric:tabular-nums}.compact-identity{flex:1;min-width:0;display:grid;gap:3px}.compact-title{font-size:13px;font-weight:600;overflow-wrap:anywhere}.compact-sub{font-size:11px;color:var(--muted);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.compact-edit{font-size:11px;color:var(--teal);display:flex;align-items:center;gap:10px;flex-shrink:0}.chevron{font-size:17px}.compact-record[open]>summary{border-bottom:1px solid var(--line);background:#f1f5fb}.when-open{display:none}.compact-record[open] .when-open{display:inline}.compact-record[open] .when-closed{display:none}.compact-record[open] .chevron{transform:rotate(180deg)}.compact-body{padding:20px}.compact-reference{font-size:11px;margin:0 0 17px;color:var(--muted)}.compact-body .form-grid{gap:15px}.compact-body input,.compact-body select,.compact-body textarea{font-size:13px}.compact-actions{display:flex;justify-content:space-between;align-items:center;margin-top:20px;border-top:1px solid var(--line);padding-top:14px}.compact-actions .btn.danger{background:transparent}.compact-record:focus-within{border-color:#87b8aa}.compact-record>summary:focus-visible{outline:2px solid var(--teal);outline-offset:-3px}@media(max-width:760px){.compact-record>summary{padding:12px 10px;gap:8px}.compact-number{flex-basis:17px}.compact-title{font-size:12px}.compact-sub{font-size:10px}.compact-body{padding:16px}.compact-edit{gap:5px;font-size:10px}.resource-list-meta{font-size:10px}}

/* Reactivos: captura directa en columnas, sin abrir tarjetas. */
.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}.reagent-table-heading{display:flex;align-items:baseline;gap:15px;justify-content:space-between;margin:0 0 13px;font-size:11px;color:var(--muted)}.reagent-table-heading>span:first-child{font-weight:650;color:var(--ink);white-space:nowrap}.reagent-scroll{border:1px solid var(--line);border-radius:10px;margin-bottom:10px;max-height:650px;overflow:auto}.reagent-table{min-width:800px;table-layout:fixed;font-size:12px}.reagent-table .reagent-col-name{width:24%}.reagent-table .reagent-col-quantity{width:12%}.reagent-table .reagent-col-unit{width:12%}.reagent-table .reagent-col-use{width:28%}.reagent-table .reagent-col-hds{width:18%}.reagent-table .reagent-col-remove{width:6%}.reagent-table th{padding:12px 9px;vertical-align:middle;position:sticky;top:0;z-index:1;line-height:1.6;font-size:9px}.reagent-table th.manual-column{background:#eaf0fa;color:#36547f}.reagent-table td{padding:12px 8px;vertical-align:top;border-bottom:1px solid var(--line)}.reagent-table tbody tr:hover{background:#fbfdfc}.reagent-table td.manual-cell{background:#f5f8fd}.reagent-row-number{display:block;font-size:9px;color:#73948a;margin-bottom:4px;font-variant-numeric:tabular-nums}.reagent-name{display:block;font-size:12px;line-height:1.5;overflow-wrap:anywhere;font-weight:600}.reagent-reference{display:block;color:var(--muted);font-size:10px;line-height:1.6;margin-top:5px;overflow-wrap:anywhere}.reagent-table label{font-size:0;margin:0}.reagent-table label .required{display:none}.reagent-table input,.reagent-table select,.reagent-table textarea{font-size:12px;margin:0;min-height:40px;padding:8px;line-height:1.5}.reagent-table td:first-child input,.reagent-table td:first-child select{margin-top:7px}.reagent-table textarea{height:62px;min-height:40px;resize:vertical}.reagent-remove{width:27px;height:30px;font-size:20px;margin-top:5px;background:transparent}.reagent-remove:hover{background:#fff0ef;color:var(--red)}.reagent-empty{padding:25px 15px;border:1px dashed var(--line);border-radius:8px}.reagent-empty p{margin-bottom:0}@media(max-width:760px){.reagent-table-heading{align-items:flex-start;gap:10px;font-size:10px}.reagent-table-heading>span:last-child{max-width:220px;text-align:right}.reagent-scroll{max-height:600px}}

/* Materiales y residuos: captura directa por fila. */
.resource-table-info{font-size:11px;color:var(--muted);margin:0 0 12px}.resource-scroll{border:1px solid var(--line);border-radius:10px;max-height:600px;overflow:auto;margin-bottom:14px}.resource-table{table-layout:fixed;font-size:12px;min-width:850px}.resource-table th{position:sticky;top:0;z-index:1;background:#ecf1f9;padding:12px 9px;line-height:1.6;font-size:9px}.resource-table td{padding:11px 8px;vertical-align:top}.resource-table label{font-size:0}.resource-table label .required{display:none}.resource-table input,.resource-table select,.resource-table textarea{font-size:12px;margin:0;padding:8px;min-height:40px;line-height:1.5}.resource-table textarea{height:64px;min-height:40px}.resource-table .icon-btn{width:28px;height:32px;background:transparent}.material-table{min-width:1050px}.material-table th:nth-child(1){width:190px}.material-table th:nth-child(2){width:90px}.material-table th:nth-child(3){width:95px}.material-table th:nth-child(4){width:235px}.material-table th:nth-child(5),.material-table th:nth-child(6){width:155px}.material-table th:last-child{width:42px}.inherited-period{display:block;font-size:11px;color:var(--muted);line-height:1.6;margin-top:8px}.waste-table th:nth-child(1){width:28%}.waste-table th:nth-child(2){width:15%}.waste-table th:nth-child(3){width:13%}.waste-table th:nth-child(4){width:38%}.waste-table th:last-child{width:6%}.hds-available{white-space:normal;margin-top:8px;font-size:10px}.support-choices{display:grid;gap:8px;margin-bottom:25px}.support-choices>p{font-size:12px;margin:0 0 4px}.support-choice{background:#f4f7fc;border:1px solid #dce5f3;border-radius:8px;padding:12px 14px;text-align:left;color:var(--teal);font-size:12px;font-weight:600}.support-choice:hover{background:var(--soft)}
/* Gantt interactivo: cabeceras e identidad de fila visibles al recorrer periodos. */
.gantt-source-tools{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin-bottom:15px}.gantt-source-tools label{flex:1;min-width:230px}.gantt-source-tools .btn{font-size:12px;padding:10px 12px}.gantt-selection{font-size:12px;color:var(--teal);min-height:20px;margin:10px 0}.gantt-key{display:flex;align-items:center;gap:20px;font-size:10px;color:var(--muted);margin:10px 0}.gantt-key span{display:flex;align-items:center;gap:6px}.gantt-key i{display:inline-block;width:10px;height:10px;border-radius:3px;background:#567bad}.gantt-key i.instrument{background:#8ca3c7}.gantt-scroll{border:1px solid var(--line);border-radius:10px;overflow:auto;max-height:570px;margin-bottom:17px}.gantt-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:max-content;font-size:11px}.gantt-table th{position:sticky;top:0;z-index:2;background:#edf2fa;padding:8px 5px;font-size:10px;text-transform:none;letter-spacing:0;text-align:center;border-right:1px solid #dce4f1;border-bottom:1px solid #d8e2f1;height:35px}.gantt-table thead tr:nth-child(2) th{top:35px}.gantt-table td{padding:8px 5px;border-right:1px solid #edf0ee;border-bottom:1px solid #e4ebe7;vertical-align:middle;background:#fff}.gantt-table .gantt-name-col{position:sticky;left:0;min-width:240px;width:240px;max-width:240px;z-index:1;background:#fff;text-align:left;padding:11px}.gantt-table th.gantt-name-col{z-index:4;background:#edf2fa}.gantt-table .gantt-date-col{min-width:145px;width:145px}.gantt-table label{font-size:0}.gantt-table .required{display:none}.gantt-table input{margin:0;min-height:36px;font-size:12px;padding:7px}.gantt-table .gantt-name-col input{min-width:210px}.gantt-row-type{display:block;font-size:9px;color:var(--muted);margin-bottom:6px}.gantt-table .gantt-block{min-width:30px;width:30px;padding:0 1px;background:#fbfcfb}.gantt-cell{display:block;min-width:28px;width:100%;height:40px;border-radius:4px;border:1px solid #dce5f2;background:#f0f4fa;cursor:pointer}.gantt-cell:hover{border-color:var(--teal);background:#e2eaf7}.gantt-cell.selected{background:#567bad;border-color:#446d9f}.gantt-cell.selected.instrument{background:#8ca3c7;border-color:#718eb8}.gantt-cell:disabled{opacity:.35;cursor:not-allowed;background:#eee}.gantt-block-head{min-width:30px;width:30px}.gantt-table .icon-btn{background:none;width:27px;height:30px}.gantt-empty{padding:30px 16px;border:1px dashed var(--line);border-radius:10px}.gantt-empty p{margin-bottom:0}@media(max-width:760px){.gantt-source-tools{display:grid;grid-template-columns:1fr 1fr}.gantt-source-tools label{grid-column:1/-1;min-width:0}.gantt-source-tools .btn{font-size:11px;padding:9px}.gantt-key{gap:10px;flex-wrap:wrap}.gantt-table .gantt-name-col{min-width:180px;width:180px;max-width:180px}.gantt-table .gantt-name-col input{min-width:155px}.gantt-scroll{max-height:500px}.support-choice{font-size:11px}}

/* Identidad institucional en azul marino. */
.institution-brand{display:flex;align-items:center;gap:18px;min-width:0}.cda-logo{display:block;width:250px;height:auto;max-height:64px;object-fit:contain}.hydra-wordmark{border-left:1px solid #d6e0ef;padding-left:17px;font-size:23px;font-weight:750;letter-spacing:2px;color:#112e59;line-height:1.1}.hydra-wordmark span{display:block;font-size:9px;letter-spacing:.4px;font-weight:500;color:#6b7e9b;margin-top:7px;white-space:nowrap}.topbar{height:96px}.topbar-account{gap:12px}.view-switch{display:flex;align-items:center;border:1px solid #dae3f1;background:#f5f7fb;padding:3px;border-radius:9px;gap:3px}.view-switch button{background:none;color:#667c9d;padding:8px 11px;font-size:11px;border-radius:6px;font-weight:600}.view-switch button.active{background:#183d72;color:#fff}.auth-story .institution-brand{flex-wrap:wrap;gap:14px}.auth-story .cda-logo{width:270px}.auth-story .hydra-wordmark{font-size:21px}.auth-story{background:#e9eff8}.auth-story h1{color:#172f56}.auth-story:after{border-color:#c7d5ea}.tag.green{background:#eaf0fa;color:#2f568e}.gantt-cell.selected{background:#567bad;border-color:#446d9f}.gantt-cell.selected.instrument{background:#8ca3c7;border-color:#718eb8}.gantt-key i{background:#567bad}.gantt-key i.instrument{background:#8ca3c7}.admin-readable .gantt-cell{cursor:default}.admin-readable .gantt-cell:hover{border-color:#dce5f2}.admin-example-banner{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:24px 28px;border:1px solid #cfdaec;border-radius:14px;background:#edf2fb;margin:0 0 28px}.admin-example-banner h3{font-size:18px;margin:9px 0 5px;letter-spacing:-.3px}.admin-example-banner p{font-size:13px;margin:0}.admin-record{max-width:1320px}.admin-demo-note{margin-bottom:25px;font-size:12px}.admin-record-title{display:flex;justify-content:space-between;align-items:flex-start;gap:30px;margin:25px 0 18px}.admin-record-title h1{font-size:28px;max-width:780px;line-height:1.25}.admin-record-title p{font-size:13px;margin-bottom:0}.admin-record-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;justify-content:flex-end;min-width:180px}.admin-record-actions .btn{font-size:12px;margin-top:8px}.admin-record-meta{display:flex;gap:23px;flex-wrap:wrap;color:#7283a0;font-size:11px;margin-bottom:27px}.admin-tabs{display:flex;gap:5px;border-bottom:1px solid #d6e0ef;margin-bottom:24px;overflow:auto}.admin-tabs button{padding:13px 17px;background:none;border-bottom:2px solid transparent;white-space:nowrap;color:#7384a0;font-size:13px}.admin-tabs button.active{color:#173e75;border-color:#173e75;font-weight:650}.admin-readable{padding:28px 30px}.admin-summary-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-bottom:28px}.admin-summary-card{padding:20px;border:1px solid #e0e6f0;border-radius:10px;background:#fbfcfe}.admin-summary-card>span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#8190aa;margin-bottom:10px}.admin-summary-card strong{font-weight:600;font-size:14px;display:block;line-height:1.5}.admin-summary-card p{font-size:12px;margin:8px 0 0;overflow-wrap:anywhere}.admin-section{padding:24px 0;border-top:1px solid #e2e8f1}.admin-section:first-child{border-top:0;padding-top:0}.admin-section h3{font-size:16px;margin-bottom:16px}.admin-prose{font-size:13px;line-height:1.8;white-space:pre-line;color:#5e7291}.admin-readable td{font-size:12px;padding:15px;white-space:pre-line}.admin-readable th{font-size:9px;padding:13px 15px}.admin-experiment{border:1px solid #e1e7f2;border-radius:9px;padding:18px 20px;margin-bottom:12px}.admin-experiment h4{margin:0 0 8px;font-size:13px}.admin-experiment p{margin-bottom:0}.admin-readable .version-card{margin-bottom:15px}.admin-readable details{font-size:12px;color:#526c91}.admin-readable summary{cursor:pointer;color:#244b80}.admin-data-facts{display:grid;gap:8px;font-size:12px;color:#687e9f;margin:24px 0}.admin-json{font-size:11px;line-height:1.7;background:#f3f6fb;border:1px solid #e0e7f2;border-radius:9px;padding:20px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:600px;overflow:auto;margin-top:15px}
@media(max-width:1000px){.cda-logo{width:210px}.hydra-wordmark{font-size:21px;gap:12px}.topbar-account .user-name{display:none}.admin-summary-grid{grid-template-columns:1fr 1fr}.admin-record-title{flex-wrap:wrap}.admin-record-actions{justify-content:flex-start;min-width:0}}
@media(max-width:760px){.topbar{height:auto;min-height:90px;padding:12px 17px;flex-wrap:wrap;gap:10px}.institution-brand{gap:12px}.cda-logo{width:185px;max-height:45px}.hydra-wordmark{font-size:19px;padding-left:12px}.hydra-wordmark span{font-size:8px}.topbar-account{margin-left:auto;gap:9px}.view-switch button{padding:7px 9px;font-size:10px}.auth-story .cda-logo{width:220px}.auth-story .institution-brand{gap:12px}.admin-example-banner{flex-direction:column;align-items:flex-start;padding:21px}.admin-example-banner .btn{font-size:12px}.admin-record-title h1{font-size:23px}.admin-record-meta{gap:10px;display:grid}.admin-tabs{margin-bottom:18px}.admin-tabs button{padding:12px 10px;font-size:12px}.admin-readable{padding:22px 17px}.admin-summary-grid{grid-template-columns:1fr}.admin-summary-card{padding:17px}.admin-demo-note{font-size:11px}.admin-record-actions{gap:7px}.admin-record-actions .btn{width:100%}}

.admin-history-download{margin-left:8px;margin-top:8px}

.hydra-wordmark{font-size:18px;letter-spacing:0;line-height:1.25;max-width:250px;white-space:normal}.hydra-wordmark span{font-size:10px;letter-spacing:.1px;line-height:1.4;margin-top:4px}
@media(max-width:760px){.institution-brand{gap:10px;max-width:100%}.institution-brand .cda-logo{width:145px}.hydra-wordmark{font-size:15px;max-width:160px;padding-left:8px}.hydra-wordmark span{font-size:8px}.auth-story .institution-brand{flex-wrap:wrap}}

.google-entry{width:100%;margin:18px 0}.emulator-access{margin-top:24px}.emulator-access form{margin-top:16px}.footline button{margin-left:12px}

/* Ayuda de clasificación y estados de guardado sin texto permanente bajo la clave. */
.classification-help{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;margin:0 5px;border:1px solid #7188a8;border-radius:50%;background:#edf2fa;color:#173e75;font-size:12px;font-weight:700;vertical-align:middle;cursor:pointer}
.classification-help:hover{background:#dce7f6}.classification-help:focus-visible{outline:3px solid #6b95cf;outline-offset:3px}
.classification-dialog{width:min(680px,calc(100vw - 32px));max-height:85dvh;padding:20px;border:1px solid #cfdaec;border-radius:14px;overflow:auto;color:#172f56;box-shadow:0 20px 80px #102f5940}
.classification-dialog::backdrop{background:#0d24456b}.classification-help-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.classification-help-head h2{font-size:19px;margin:0}.classification-image{display:block}.classification-image img{display:block;width:100%;height:auto;border-radius:8px}.classification-dialog p{margin:14px 0 0}.header-actions .save-status.good{display:none}.header-actions .save-status{max-width:200px}.auth-story h1{max-width:570px}

.side-help .draft-retention{color:#842c36;line-height:1.65;font-size:11px}.draft-deadline{display:block;margin-top:9px;font-size:10px}.side-help:has(.draft-retention){border-color:#dfc7cd}
@media(max-width:760px){.side-help:has(.draft-retention){display:block;margin:0 0 18px;padding:12px 14px;border:1px solid #dfc7cd;border-radius:8px}.side-help:has(.draft-retention) #side-progress{display:none}.side-help .draft-retention{margin:0}}

.attempts-panel{margin-top:28px}.attempts-panel .panel-head h2{margin-bottom:8px}.attempts-panel .panel-head p{margin:0}.revoke-attempt{color:#842c36;border-color:#d9b6bf}.folio-estimate{font-size:11px;line-height:1.6;color:#667a99;margin:10px 0 0}.protocol-header h1{overflow-wrap:anywhere}
.attempts-panel table{table-layout:fixed;min-width:780px}.attempts-panel th,.attempts-panel td{padding:16px 12px;overflow-wrap:anywhere}.attempts-panel th:nth-child(1){width:27%}.attempts-panel th:nth-child(2){width:22%}.attempts-panel th:nth-child(3){width:16%}.attempts-panel th:nth-child(4){width:21%}.attempts-panel th:nth-child(5){width:14%}.attempts-panel .btn{font-size:11px;white-space:normal;padding:9px}.attempts-panel .sub{display:block}

.protocol-review{background:#fff;border:1px solid #d4dfef;border-radius:12px;padding:24px;margin:0 0 24px}.protocol-review h2{font-size:18px;margin:0 0 12px}.protocol-review h3{font-size:14px;margin:20px 0 12px}.review-form-grid{display:grid;grid-template-columns:minmax(180px,1fr) 2fr;gap:20px}.review-comments{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.7}.protocol-review details{margin:18px 0;font-size:12px}.protocol-review summary{cursor:pointer;color:#234b7f;font-weight:600}.review-history article{border-top:1px solid #e3e9f2;padding:14px 0}.review-history .hint{display:block;margin-top:6px}.review-pdf{border-top:1px solid #e0e7f1;margin-top:22px}.review-pdf form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.review-pdf .hint,.review-pdf .error-text{grid-column:1/-1}.review-pdf button{justify-self:start}.pdf-list{padding:0;list-style:none}.pdf-list li{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid #e4eaf3;padding:14px 0}.pdf-list .hint{display:block;margin-top:6px}.review-Aprobado{background:#e6f3ed;color:#215e46}.review-Rechazado{background:#f8e9ec;color:#842c36}.review-Observaciones{background:#fff0d8;color:#825a1d}.review-En-revisión,.review-Recibido{background:#eaf0fa;color:#315887}#current-status{display:flex;gap:6px;flex-wrap:wrap}@media(max-width:760px){.review-form-grid,.review-pdf form{grid-template-columns:1fr}.protocol-review{padding:18px}.pdf-list li{align-items:flex-start}.pdf-list strong{overflow-wrap:anywhere}}
.danger-text{color:#842c36}.danger-button{background:#842c36;color:#fff}.danger-button:hover{background:#6c222d}.pdf-list li>div{flex:1;min-width:0}

.admin-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-stats .stat span{line-height:1.5;display:block}.step-heading-row{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px}.step-heading-row .step-kicker{margin:0}.step-help{display:inline-flex;align-items:center;gap:7px;background:#edf2fa;color:#183d72;border:1px solid #d2deef;padding:7px 11px;border-radius:8px;font-size:12px;font-weight:600;white-space:nowrap}.step-help span{display:inline-flex;justify-content:center;align-items:center;border:1px solid #7089ad;border-radius:50%;width:18px;height:18px}.step-help:hover{background:#dce7f7}.capture-help{font-size:13px;line-height:1.8}.capture-help li{margin:12px 0}.capture-help ul{padding-left:22px}@media(max-width:1050px){.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

.editor-side .back-to-protocols{display:flex;justify-content:center;width:100%;font-size:13px;font-weight:700;min-height:48px;margin-bottom:24px;box-shadow:0 4px 12px #183d7220}.header-actions .return-header{border:1px solid #b8c9e3;color:#173e75;font-weight:700;background:#edf2fa}.user-return{white-space:nowrap}.draft-delete-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}@media(max-width:760px){.editor-side .back-to-protocols{margin-bottom:16px}.protocol-header{gap:12px;flex-wrap:wrap}.protocol-header .header-actions{width:100%;justify-content:flex-start}.user-return{font-size:11px;padding:8px}.draft-delete-actions{flex-wrap:wrap}}

.sync-status{padding:24px;margin-top:24px}.sync-status p{margin:10px 0}

.editor-side .sidebar-delete-draft{display:flex;justify-content:center;width:100%;margin-top:16px;min-height:42px;font-size:12px;background:#a12d37;color:#fff}.editor-side .sidebar-delete-draft:hover{background:#81222c}

/* Captura amplia y tablas de equipos con edición directa. */
@media(min-width:1001px){.editor-layout{max-width:1740px;grid-template-columns:220px minmax(0,1fr);gap:24px;padding-left:24px;padding-right:24px}.editor-card-header,.editor-content{padding-left:26px;padding-right:26px}.editor-card-header p{max-width:900px}}
dialog:not(.narrow-dialog){width:min(1440px,96vw)}dialog.narrow-dialog{max-width:680px}
.equipment-table-info{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.equipment-table{min-width:1370px}.equipment-table th:nth-child(1){width:245px}.equipment-table th:nth-child(2),.equipment-table th:nth-child(3){width:155px}.equipment-table th:nth-child(4){width:190px}.equipment-table th:nth-child(5){width:150px}.equipment-table th:nth-child(6){width:175px}.equipment-table th:nth-child(7){width:230px}.equipment-table th:last-child{width:45px}.equipment-table th.manual-column{background:#e3ecf9;color:#244b7f}.equipment-table td.manual-cell{background:#f6f9fe}.equipment-table .reagent-name{font-size:12px;line-height:1.6}.equipment-table .reagent-reference{font-size:10px;line-height:1.6}.equipment-table .equipment-mode-help{display:inline-flex;vertical-align:middle;margin:0 0 0 5px}.use-mode-description p{font-size:14px;line-height:1.8}.use-mode-description h3:not(:first-child){margin-top:24px}
.table-pan-controls{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:12px 0 8px;padding:10px 12px;border:1px solid #bdcfe8;border-radius:9px;background:#edf3fc;color:#173e75;font-size:12px}.table-pan-copy strong,.table-pan-message{display:block}.table-pan-message{font-size:11px;margin-top:3px;color:#536b8c}.table-pan-buttons{display:flex;gap:7px;flex-shrink:0}.table-pan-buttons .btn{font-size:18px;min-height:36px;min-width:42px;padding:4px 10px}.table-pan-buttons .btn:disabled{cursor:default;opacity:.35}.horizontal-table{scrollbar-width:auto;scrollbar-color:#718fb8 #eaf0f8}.horizontal-table::-webkit-scrollbar{height:12px;width:10px}.horizontal-table::-webkit-scrollbar-thumb{background:#718fb8;border-radius:8px;border:2px solid #eaf0f8}.horizontal-table::-webkit-scrollbar-track{background:#eaf0f8}
@media(max-width:760px){.table-pan-controls{font-size:11px;padding:9px;gap:8px}.table-pan-buttons .btn{min-width:35px;padding:4px 7px}.table-pan-message{font-size:10px}}

.equipment-table th{font-size:10px;text-transform:none;letter-spacing:.2px}
.equipment-table td:first-child{position:sticky;left:0;z-index:1;background:#fff;box-shadow:3px 0 6px #183d7210}.equipment-table th:first-child{left:0;z-index:3;background:#ecf1f9}

.admin-layout{display:grid;grid-template-columns:215px minmax(0,1fr);gap:24px;max-width:1540px}
.admin-sidebar nav{position:sticky;top:18px;display:grid;gap:5px;background:#fff;border:1px solid #d4dfef;border-radius:12px;padding:9px}
.admin-nav-item{display:block;width:100%;padding:11px;text-align:left;border:0;border-radius:7px;background:transparent;color:#233e64;font:inherit;font-weight:600;cursor:pointer}
.admin-nav-item[aria-current="page"]{background:#17365b;color:#fff}
.admin-nav-item:hover:not([aria-current]){background:#eef3fa}
.admin-main{min-width:0}.admin-main .page-intro{margin-top:0}
.admin-filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px}.admin-filters label:first-child{flex:1;min-width:min(100%,240px)}.admin-filters select{min-width:130px}
.admin-group th{text-align:left;background:#edf3fb;color:#1c3f68}.review-Finalizado{background:#e8edf5;color:#233e64}
@media(max-width:850px){.admin-layout{grid-template-columns:1fr}.admin-sidebar nav{display:flex;flex-wrap:wrap}.admin-nav-item{width:auto}}
