.pr-a-immunology{--pa:#0d7480;--pas:#e0f1f2}.pr-a-molecular{--pa:#4651c4;--pas:#e8eafb}.pr-a-cell{--pa:#2f7d4e;--pas:#e3f2e8}.pr-a-proteomics{--pa:#b85f10;--pas:#fbeee1}.pr-a-microbiology{--pa:#a3307a;--pas:#f8e6f1}
:root[data-theme=dark] .pr-a-immunology,:root[data-theme=dark] .pr-a-molecular,:root[data-theme=dark] .pr-a-cell,:root[data-theme=dark] .pr-a-proteomics,:root[data-theme=dark] .pr-a-microbiology{--pas:color-mix(in srgb,var(--pa) 22%,transparent)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .pr-a-immunology,:root:not([data-theme=light]) .pr-a-molecular,:root:not([data-theme=light]) .pr-a-cell,:root:not([data-theme=light]) .pr-a-proteomics,:root:not([data-theme=light]) .pr-a-microbiology{--pas:color-mix(in srgb,var(--pa) 22%,transparent)}}
:root[data-theme=dark] .pr-a-immunology{--pa:#4cc9cb}:root[data-theme=dark] .pr-a-molecular{--pa:#97a3ff}:root[data-theme=dark] .pr-a-cell{--pa:#6fd39a}:root[data-theme=dark] .pr-a-proteomics{--pa:#f0a24a}:root[data-theme=dark] .pr-a-microbiology{--pa:#f08ac8}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .pr-a-immunology{--pa:#4cc9cb}:root:not([data-theme=light]) .pr-a-molecular{--pa:#97a3ff}:root:not([data-theme=light]) .pr-a-cell{--pa:#6fd39a}:root:not([data-theme=light]) .pr-a-proteomics{--pa:#f0a24a}:root:not([data-theme=light]) .pr-a-microbiology{--pa:#f08ac8}}

/* library */
.pr-lib-hero{max-width:860px;margin:10px auto 26px;text-align:center}.pr-lib-hero .se-lede{margin-left:auto;margin-right:auto;max-width:720px}.pr-lib-hero .se-eyebrow{justify-content:center;text-align:center}.pr-lib-hero h1{font-size:clamp(30px,4.4vw,46px);line-height:1.08;letter-spacing:-.02em;margin:6px 0 12px}
.pr-search{display:flex;align-items:center;gap:10px;max-width:640px;margin:22px auto 14px;padding:0 16px;border:1.5px solid var(--se-line);border-radius:14px;background:var(--se-paper);box-shadow:0 6px 24px rgba(16,32,51,.06)}
.pr-search:focus-within{border-color:var(--se-link)}.pr-search svg{width:20px;height:20px;fill:none;stroke:var(--se-muted);stroke-width:2;stroke-linecap:round;flex:none}
.pr-search input{flex:1;border:0;background:transparent;font:inherit;font-size:17px;padding:14px 0;color:var(--se-ink);min-width:0}.pr-search input:focus-visible{outline:none}
.pr-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.pr-filters button{border:1px solid var(--se-line);background:var(--se-paper);color:var(--se-ink);border-radius:99px;padding:7px 14px;font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.pr-filters button[aria-pressed=true]{background:var(--se-ink);color:var(--se-paper);border-color:var(--se-ink)}.pr-count{color:var(--se-muted);font-size:14px;margin:10px 0 0;min-height:1.2em}
.pr-group{margin:30px 0}.pr-group-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;border-bottom:3px solid var(--pa);padding-bottom:8px;margin-bottom:14px}
.pr-group-head h2{margin:0;font-size:24px;color:var(--pa)}.pr-group-head p{margin:0;color:var(--se-muted);flex:1 1 260px}.pr-group-head span{font-size:13px;font-weight:700;color:var(--se-muted)}
.pr-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
.pr-card{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border:1px solid var(--se-line);border-left:4px solid var(--pa);border-radius:14px;background:var(--se-paper);color:var(--se-ink)!important;text-decoration:none;transition:box-shadow .15s,transform .15s}
.pr-card:hover{box-shadow:0 8px 26px rgba(16,32,51,.1);transform:translateY(-1px)}.pr-card-area{font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--pa)}
.pr-card h3{margin:0;font-size:17px;line-height:1.3}.pr-card p{margin:0;font-size:14.5px;color:var(--se-muted);line-height:1.45}
.pr-card-meta{margin-top:auto;padding-top:6px;display:flex;flex-wrap:wrap;gap:6px}.pr-card-meta span{font-size:12.5px;font-weight:600;background:var(--pas);border-radius:99px;padding:2px 9px}
.pr-empty{text-align:center;color:var(--se-muted);margin:30px 0}.pr-disclaimer{font-size:13.5px;color:var(--se-muted);margin:34px 0 0;line-height:1.5}

/* protocol page */
.pr-intro{max-width:880px;margin:6px 0 18px}.pr-area{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--pa)!important;background:var(--pas);border-radius:99px;padding:4px 11px;text-decoration:none}
.pr-intro h1{font-size:clamp(28px,3.8vw,40px);line-height:1.12;letter-spacing:-.02em;margin:12px 0 10px}
.pr-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.pr-meta div{border:1px solid var(--se-line);background:var(--se-paper);border-radius:12px;padding:8px 14px;display:flex;flex-direction:column}
.pr-meta span{font-size:12px;color:var(--se-muted);font-weight:600}.pr-meta b{font-size:15.5px}
.pr-toolbar{position:sticky;top:72px;z-index:5;display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:10px 14px;margin:0 0 20px;border:1px solid var(--se-line);border-radius:14px;background:color-mix(in srgb,var(--se-paper) 94%,transparent);backdrop-filter:blur(8px)}
.pr-toolbar label{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14.5px}.pr-toolbar input,.pr-toolbar select{font:inherit;font-size:15px;padding:6px 8px;border:1px solid var(--se-line);border-radius:8px;background:var(--se-canvas);color:var(--se-ink)}
.pr-toolbar input{width:86px}.pr-progress{margin-left:auto;font-size:14px;color:var(--se-muted);font-weight:600}
.pr-btn{border:1px solid var(--se-line);background:var(--se-paper);color:var(--se-ink);border-radius:99px;padding:6px 13px;font:inherit;font-size:14px;font-weight:600;cursor:pointer}.pr-btn:hover{border-color:var(--pa)}
.pr-layout{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:28px;align-items:start}
.pr-side{position:sticky;top:132px;display:flex;flex-direction:column;gap:12px}.pr-side-box{border:1px solid var(--se-line);border-radius:14px;padding:12px 14px;background:var(--se-paper)}
.pr-side-box h2{margin:0 0 8px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--se-muted)}.pr-side-box nav{display:flex;flex-direction:column;gap:4px}.pr-side-box nav a,.pr-side-box li a{font-size:14.5px;text-decoration:none}
.pr-side-box ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.pr-sec{margin:0 0 30px;scroll-margin-top:140px}.pr-sec h2{font-size:22px;margin:0 0 10px;display:flex;align-items:center;gap:10px}.pr-sec h2::before{content:"";width:6px;height:22px;border-radius:3px;background:var(--pa)}
.pr-sec ul{padding-left:20px;margin:0}.pr-sec li{margin:5px 0;line-height:1.55}.pr-hint{margin:-2px 0 10px;color:var(--se-muted);font-size:14.5px}
.pr-before{background:var(--pas);border-radius:14px;padding:14px 18px}
.pr-table{overflow-x:auto}.pr-table table,.pr-buffer table{width:100%;border-collapse:collapse;font-size:15px}
.pr-table th{text-align:left;font-size:12.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--se-muted);padding:8px 10px;border-bottom:2px solid var(--se-line)}
.pr-table td,.pr-buffer td{padding:9px 10px;border-bottom:1px solid var(--se-line);vertical-align:top}.pr-table td small{display:block;color:var(--se-muted);font-size:12.5px;margin-top:2px}
.pr-reagents td.pr-per{color:var(--se-muted);white-space:nowrap}.pr-reagents td.pr-total{font-weight:800;white-space:nowrap;color:var(--se-ink)}.pr-reagents th:nth-child(n+2),.pr-reagents td:nth-child(n+2){text-align:right}
.pr-buffers{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.pr-buffer{border:1px solid var(--se-line);border-radius:14px;padding:12px 14px;background:var(--se-paper)}
.pr-buffer h3{margin:0 0 6px;font-size:16px}.pr-buffer h3 span{font-weight:500;color:var(--se-muted);font-size:13.5px}.pr-buffer td:last-child{text-align:right;font-weight:700;white-space:nowrap}.pr-buffer p{margin:8px 0 0;font-size:13.5px;color:var(--se-muted);line-height:1.45}
.pr-cols{columns:2 240px}
.pr-steps{list-style:none;padding:0;margin:0;counter-reset:st}.pr-step{counter-increment:st;display:grid;grid-template-columns:auto 1fr;gap:14px;padding:14px 16px;margin:0 0 10px;border:1px solid var(--se-line);border-radius:14px;background:var(--se-paper);transition:opacity .2s,background .2s}
.pr-step h3{margin:2px 0 4px;font-size:16.5px}.pr-step h3::before{content:counter(st) ". ";color:var(--pa)}.pr-step p{margin:0;line-height:1.55}
.pr-check{position:relative;width:28px;height:28px;margin-top:1px;cursor:pointer}.pr-check input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer;z-index:1;width:100%;height:100%}
.pr-check span{position:absolute;inset:0;pointer-events:none;border:2px solid var(--se-line);border-radius:8px;background:var(--se-canvas)}.pr-check input:checked+span{background:var(--pa);border-color:var(--pa)}
.pr-check input:checked+span::after{content:"";position:absolute;left:8px;top:3px;width:7px;height:13px;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg)}.pr-check input:focus-visible+span{outline:3px solid var(--se-link);outline-offset:2px}
.pr-step.pr-done{opacity:.6;background:var(--pas)}.pr-step.pr-done h3{text-decoration:line-through}
.pr-timer{display:inline-flex;align-items:center;gap:6px;margin-top:10px;border:1px solid var(--pa);color:var(--pa);background:transparent;border-radius:99px;padding:5px 12px;font:inherit;font-size:14px;cursor:pointer}
.pr-timer svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.pr-timer.pr-running{background:var(--pa);color:#fff}.pr-timer.pr-finished{background:#b42335;border-color:#b42335;color:#fff}
.pr-critical{border-left:4px solid #c98a12;background:color-mix(in srgb,#c98a12 9%,var(--se-paper));border-radius:0 14px 14px 0;padding:14px 18px}.pr-critical h2::before{background:#c98a12}
.pr-safety{border-left:4px solid #b42335;background:color-mix(in srgb,#b42335 7%,var(--se-paper));border-radius:0 14px 14px 0;padding:14px 18px}.pr-safety h2::before{background:#b42335}.pr-safety p{margin:0}
.pr-reading li{font-size:14.5px;color:var(--se-muted)}
.pr-timerbar{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:20;display:flex;flex-wrap:wrap;gap:8px;max-width:calc(100% - 32px)}
.pr-timerbar>div{display:flex;align-items:center;gap:10px;background:var(--se-ink);color:var(--se-paper);border-radius:99px;padding:8px 8px 8px 16px;box-shadow:0 10px 30px rgba(0,0,0,.25);font-weight:700}
.pr-timerbar>div.pr-alarm{background:#b42335;animation:pr-pulse 1s infinite}.pr-timerbar button{border:0;background:rgba(255,255,255,.18);color:inherit;border-radius:99px;padding:4px 10px;font:inherit;font-size:13px;cursor:pointer}
@keyframes pr-pulse{50%{transform:scale(1.04)}}
@media (max-width:960px){.pr-layout{grid-template-columns:1fr}.pr-side{position:static;order:2}.pr-side-box:first-child{display:none}}
@media (max-width:640px){.pr-toolbar{position:static;gap:8px 10px}.pr-progress{margin-left:0;width:100%;order:9}.pr-step{padding:12px;gap:10px}.pr-reagents td.pr-per,.pr-reagents th:nth-child(2){display:none}}
@media print{.se-header,.se-footer,.pr-toolbar .pr-btn,.pr-side,.se-back,.pr-timer,.pr-timerbar,.pr-filters,.pr-search{display:none!important}.pr-toolbar{position:static;border:0;padding:0}.pr-layout{display:block}.pr-step,.pr-buffer{break-inside:avoid}.pr-sec{break-inside:auto}body{background:#fff}}
