.serial-dilution{--ink:#233d45;--teal:#286d71;--line:#cadad7;color:var(--ink);max-width:1150px;margin:auto;overflow-wrap:anywhere}.serial-dilution *{box-sizing:border-box}.serial-dilution [hidden]{display:none!important}.serial-dilution input,.serial-dilution select,.serial-dilution button{font:inherit;color:inherit;min-height:46px;border:1px solid var(--line);border-radius:9px;background:white;padding:10px 12px;max-width:100%}.serial-dilution input,.serial-dilution select{width:100%;min-width:0}.serial-dilution button{cursor:pointer}.serial-dilution :focus-visible{outline:3px solid #b96335;outline-offset:3px}.serial-dilution [aria-invalid=true]{border:2px solid #ac542e;background:#fff1e4}.serial-dilution p{line-height:1.55}.sd-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 16px;margin:22px 0}.sd-three{grid-template-columns:repeat(3,minmax(0,1fr))}.sd-field{display:grid;grid-template-rows:subgrid;grid-row:span 3;min-width:0}.sd-field>span{font-weight:650;align-self:end}.sd-field small{font-size:.85em;line-height:1.5;color:#4e6770}.sd-presets,.sd-actions{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.serial-dilution [data-example][aria-pressed=true]{border:2px solid var(--teal);background:#e4f1ed}.sd-target-row{padding:16px;border:1px solid var(--line);border-radius:12px;margin:14px 0}.sd-target-row header{display:flex;justify-content:space-between;align-items:center}.sd-toggle{display:flex;align-items:center;gap:8px;margin:16px 0}.serial-dilution input[type=checkbox]{width:20px;min-height:20px}.sd-error{background:#fff1e4;padding:16px;border-left:4px solid #ac542e}.sd-result{padding:24px;border-radius:18px;background:#edf3f1;margin:24px 0}.sd-result h2{margin:0 0 18px}.sd-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.sd-summary strong{display:block;font-size:clamp(1.4rem,3vw,2rem);line-height:1.3}.sd-summary span{display:block;margin-bottom:8px}.sd-chain{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.serial-dilution .sd-tube{min-width:105px;flex:1;text-align:center;background:white;padding:10px}.sd-tube svg{width:40px;height:72px;display:block;margin:8px auto}.sd-tube span{display:block;font-size:.86em}.serial-dilution .sd-tube[aria-pressed=true]{border:2px solid var(--teal)}.sd-detail{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:20px;margin:24px 0;background:white;padding:20px;border-radius:14px}.sd-detail svg{width:100%;max-height:330px}.sd-detail svg text{font-family:system-ui,sans-serif}.sd-detail h3{margin-top:0}.sd-detail ol{padding-left:22px;line-height:1.7}.sd-table-wrap{overflow-x:auto;margin-top:24px}.sd-table-wrap table{width:100%;border-collapse:collapse;min-width:740px}.sd-table-wrap th,.sd-table-wrap td{text-align:left;padding:12px 8px;border-bottom:1px solid var(--line);white-space:nowrap}.sd-table-wrap th{white-space:normal}.sd-table-wrap caption{text-align:left;line-height:1.6;margin-bottom:10px;font-weight:650}.sd-scope{font-size:.9em}.sd-load{display:block;margin:24px 0}.sd-load input{display:block;margin-top:8px}.sd-method,.serial-dilution>details{border:1px solid var(--line);padding:16px;border-radius:12px;margin:20px 0}.serial-dilution summary{font-weight:650;cursor:pointer}.sd-print-record{display:none}#sd-status{min-height:1.5em}.serial-dilution input:disabled{background:#eaf0ed}@media(max-width:650px){.sd-three{grid-template-columns:repeat(2,minmax(0,1fr))}.sd-summary{grid-template-columns:1fr}.sd-detail{grid-template-columns:1fr}}@media(max-width:450px){.sd-grid,.sd-three{grid-template-columns:1fr}.sd-field{grid-row:auto;grid-template-rows:auto auto auto;gap:7px}.sd-result{padding:16px}}@media print{body:has(.serial-dilution) *:not(:has(.sd-result)):not(.sd-result):not(.sd-result *){display:none!important}body:has(.serial-dilution) *:has(.sd-result){display:block!important;position:static!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important}.serial-dilution .sd-result{background:white;color:black}.sd-chain,.sd-actions,.sd-table-wrap{display:none!important}.sd-print-record{display:block}.sd-print-record p{break-inside:avoid}.sd-detail{break-inside:avoid}.sd-detail svg{max-height:240px}}
.serial-dilution select{appearance:none;min-height:46px;padding-right:34px;background-image:linear-gradient(45deg,transparent 50%,#426c70 50%),linear-gradient(135deg,#426c70 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px;background-repeat:no-repeat}
