/* Dosage Calculation Practice: every rule is scoped to .dcp so it won't affect your theme. */
.dcp{
  --dcp-paper:#F6F8FA; --dcp-surface:#FFFFFF; --dcp-ink:#15233B; --dcp-muted:#56637A; --dcp-rule:#DCE3EA;
  --dcp-teal:#0F7B83; --dcp-teal-soft:#E3F2F3; --dcp-chip:#EEF2F6; --dcp-focus:#0F7B83;
  --dcp-good:#2F7D57; --dcp-good-soft:#E6F3EC; --dcp-warn:#9A6210; --dcp-warn-soft:#FBF1E0; --dcp-bad:#B4233A; --dcp-bad-soft:#FBE9EC;
  box-sizing:border-box; width:100%; max-width:var(--dcp-max,none); margin:0 auto 2rem; padding:clamp(1.25rem,4vw,2.5rem);
  background:var(--dcp-paper); color:var(--dcp-ink); border-radius:1rem;
  font-family:var(--dcp-body); font-size:1.0625rem; line-height:1.6; text-align:left;
}
/* Plugin fonts. In theme mode these stay unset so the tool inherits your theme's fonts. */
.dcp:not(.dcp-theme-fonts){
  --dcp-body:"Atkinson Hyperlegible",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --dcp-display:"Bricolage Grotesque","Atkinson Hyperlegible",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
}
.dcp.dcp-theme-fonts{font-family:inherit}
.dcp *,.dcp *::before,.dcp *::after{box-sizing:border-box}
.dcp h2,.dcp h3,.dcp h4,.dcp p,.dcp ol,.dcp ul,.dcp li,.dcp fieldset,.dcp legend,.dcp table{margin:0;padding:0;border:0;background:none}
.dcp h2,.dcp h3,.dcp h4{line-height:1.2}
.dcp:not(.dcp-theme-fonts) h2,.dcp:not(.dcp-theme-fonts) h3,.dcp:not(.dcp-theme-fonts) h4{font-family:var(--dcp-display);color:var(--dcp-ink);text-transform:none;letter-spacing:normal}
.dcp a{color:var(--dcp-teal);text-decoration:underline;text-underline-offset:2px}
.dcp a:focus-visible,.dcp button:focus-visible,.dcp select:focus-visible,.dcp input:focus-visible,.dcp summary:focus-visible{outline:3px solid var(--dcp-focus);outline-offset:2px}
.dcp .dcp-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.dcp .dcp-title{font-size:clamp(1.6rem,3.4vw,2.3rem);width:100%;text-align:left;text-wrap:balance}
.dcp:not(.dcp-theme-fonts) .dcp-title{font-weight:750;letter-spacing:-.015em}
.dcp .dcp-lede{color:var(--dcp-muted);max-width:48rem;margin-top:.75rem}

/* Tabs */
.dcp .dcp-tabs{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:2rem;border-bottom:2px solid var(--dcp-rule)}
.dcp .dcp-tab{-webkit-appearance:none;appearance:none;font:inherit;font-size:1rem;line-height:1.3;text-transform:none;letter-spacing:normal;cursor:pointer;
  background:transparent;color:var(--dcp-muted);border:0;border-bottom:3px solid transparent;margin:0 0 -2px;padding:.7rem 1rem;border-radius:0;box-shadow:none;width:auto}
.dcp .dcp-tab:hover{color:var(--dcp-ink)}
.dcp .dcp-tab[aria-selected="true"]{color:var(--dcp-ink);border-bottom-color:var(--dcp-teal);font-weight:700}
.dcp .dcp-panel{padding-top:1.75rem}

/* Settings */
.dcp .dcp-settings-wrap{margin-bottom:1.75rem;padding-bottom:1.25rem;border-bottom:1px solid var(--dcp-rule)}
.dcp .dcp-settings-sum{cursor:pointer;display:flex;flex-wrap:wrap;gap:.25rem .9rem;align-items:baseline;list-style-position:outside;padding:.1rem 0}
.dcp .dcp-sum-title{font-weight:700}
.dcp .dcp-sum-detail{font-size:.92rem;color:var(--dcp-muted)}
.dcp .dcp-settings-sum::-webkit-details-marker{display:none}
.dcp .dcp-settings-sum{list-style:none}
.dcp .dcp-sum-edit{font-size:.92rem;color:var(--dcp-teal);text-decoration:underline;text-underline-offset:2px}
.dcp .dcp-when-open{display:none}
.dcp details[open] > .dcp-settings-sum .dcp-when-open{display:inline}
.dcp details[open] > .dcp-settings-sum .dcp-when-closed{display:none}
.dcp .dcp-settings{display:grid;gap:1.25rem;margin-top:1rem}
.dcp .dcp-legend{font-family:var(--dcp-display);font-weight:600;font-size:1.15rem;margin-bottom:.6rem;color:var(--dcp-ink);float:none;width:auto}
.dcp .dcp-levels{display:grid;gap:.9rem}
.dcp .dcp-level-name{font-size:.9rem;color:var(--dcp-muted);margin-bottom:.35rem}
.dcp .dcp-chips{display:flex;flex-wrap:wrap;gap:.45rem}
.dcp .dcp-chip,.dcp .dcp-choice{position:relative;display:inline-block;margin:0;padding:0;font-weight:400}
.dcp .dcp-chip input,.dcp .dcp-choice input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer;-webkit-appearance:none;appearance:none}
.dcp .dcp-chip span{display:block;padding:.45rem .85rem;border-radius:999px;background:var(--dcp-chip);color:var(--dcp-ink);border:2px solid transparent;font-size:.95rem;line-height:1.3;cursor:pointer}
.dcp .dcp-chip input:checked + span{background:var(--dcp-ink);color:var(--dcp-paper);border-color:var(--dcp-ink)}
.dcp .dcp-chip input:hover + span{border-color:var(--dcp-rule)}
.dcp .dcp-chip input:focus-visible + span,.dcp .dcp-choice input:focus-visible + span{outline:3px solid var(--dcp-focus);outline-offset:2px}
.dcp .dcp-inline-btns{display:flex;gap:1rem;margin-top:.6rem}
.dcp .dcp-method{max-width:22rem}
.dcp .dcp-label{display:block;font-size:.92rem;color:var(--dcp-muted);margin:0 0 .35rem;font-weight:400}
.dcp .dcp-select{width:100%;max-width:none;height:auto;font:inherit;font-size:1rem;line-height:1.4;padding:.55rem .75rem;border-radius:.5rem;
  border:2px solid var(--dcp-rule);background-color:var(--dcp-surface);color:var(--dcp-ink);box-shadow:none;margin:0}
.dcp .dcp-row{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;align-items:flex-end;margin-top:1rem}
.dcp .dcp-row > div{flex:1 1 12rem}
.dcp .dcp-check label{display:flex;gap:.5rem;align-items:center;font-size:.98rem;margin:0;font-weight:400}
.dcp .dcp-check input{width:1.15rem;height:1.15rem;margin:0;accent-color:var(--dcp-teal)}

/* Buttons */
.dcp .dcp-btn{-webkit-appearance:none;appearance:none;font:inherit;font-size:.98rem;line-height:1.3;text-transform:none;letter-spacing:normal;cursor:pointer;
  border-radius:.5rem;padding:.6rem 1.05rem;border:2px solid var(--dcp-ink);background:transparent;color:var(--dcp-ink);box-shadow:none;margin:0;width:auto}
.dcp .dcp-btn:hover{background:var(--dcp-chip)}
.dcp .dcp-btn-solid{background:var(--dcp-ink);color:var(--dcp-paper)}
.dcp .dcp-btn-solid:hover{background:var(--dcp-teal);border-color:var(--dcp-teal);color:#fff}
.dcp .dcp-btn:disabled{opacity:.4;cursor:not-allowed;background:transparent;color:var(--dcp-ink)}
.dcp .dcp-link-btn{-webkit-appearance:none;appearance:none;font:inherit;font-size:.92rem;background:none;border:0;padding:0;margin:0;color:var(--dcp-teal);text-decoration:underline;text-underline-offset:2px;cursor:pointer;box-shadow:none;width:auto;text-transform:none;letter-spacing:normal}
.dcp .dcp-actions{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-top:1.1rem}

/* Question card */
.dcp .dcp-card{background:var(--dcp-surface);border:1px solid var(--dcp-rule);border-radius:1rem;padding:1.4rem 1.3rem;margin-bottom:1.1rem}
.dcp .dcp-card > p + p{margin-top:.6rem}
.dcp .dcp-h3{font-size:1.25rem;margin-bottom:.6rem}
.dcp:not(.dcp-theme-fonts) .dcp-h3{font-weight:600}
.dcp .dcp-q-meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.8rem}
.dcp .dcp-pill{font-size:.82rem;font-weight:700;padding:.15rem .6rem;border-radius:999px;background:var(--dcp-teal-soft);color:var(--dcp-teal)}
.dcp .dcp-pill-level{background:var(--dcp-chip);color:var(--dcp-muted);font-weight:400}
.dcp .dcp-q-text{font-size:1.12rem;line-height:1.55;max-width:46rem}
.dcp .dcp-q-round{font-size:.92rem;color:var(--dcp-muted);margin-top:.4rem}
.dcp .dcp-answer{display:flex;align-items:center;gap:.6rem;margin-top:1rem;flex-wrap:wrap}
.dcp .dcp-input{font:inherit;font-size:1.15rem;font-variant-numeric:tabular-nums;width:11rem;max-width:100%;height:auto;padding:.55rem .75rem;border:2px solid var(--dcp-rule);
  border-radius:.5rem;background:var(--dcp-surface);color:var(--dcp-ink);box-shadow:none;margin:0}
.dcp .dcp-input:focus{border-color:var(--dcp-teal)}
.dcp .dcp-input:disabled{background:var(--dcp-chip)}
.dcp .dcp-unit{font-weight:700}
.dcp .dcp-choices{display:grid;gap:.5rem;margin-top:1rem;max-width:26rem}
.dcp .dcp-choice span{display:block;padding:.6rem .9rem;border-radius:.6rem;border:2px solid var(--dcp-rule);background:var(--dcp-surface);cursor:pointer}
.dcp .dcp-choice input:checked + span{border-color:var(--dcp-ink);background:var(--dcp-chip);font-weight:700}
.dcp .dcp-choice input:disabled + span{cursor:default}

/* Feedback and solutions */
.dcp .dcp-feedback{margin-top:1.2rem;padding:1rem 1.1rem;border-radius:.75rem;border-left:5px solid}
.dcp .dcp-feedback p + p{margin-top:.35rem}
.dcp .dcp-feedback.is-correct{background:var(--dcp-good-soft);border-color:var(--dcp-good)}
.dcp .dcp-feedback.is-close{background:var(--dcp-warn-soft);border-color:var(--dcp-warn)}
.dcp .dcp-feedback.is-wrong{background:var(--dcp-bad-soft);border-color:var(--dcp-bad)}
.dcp .dcp-feedback.is-revealed{background:var(--dcp-teal-soft);border-color:var(--dcp-teal)}
.dcp .dcp-fb-title{font-weight:700;font-size:1.05rem}
.dcp .dcp-sol{margin-top:1rem}
.dcp .dcp-sol h4{font-family:var(--dcp-body);font-size:.98rem;font-weight:700;color:var(--dcp-ink);margin-bottom:.35rem;text-transform:none;letter-spacing:normal}
.dcp .dcp-steps{padding-left:1.4rem;font-variant-numeric:tabular-nums}
.dcp .dcp-steps li{margin:.15rem 0;list-style:decimal}
.dcp .dcp-note{font-size:.93rem;color:var(--dcp-muted);margin-top:.6rem}
.dcp .dcp-inline-msg{font-size:.93rem;color:var(--dcp-bad);margin-top:.6rem}
.dcp [data-copy-msg]{color:var(--dcp-good);margin:0;word-break:break-all}
.dcp .dcp-score{font-size:.95rem;color:var(--dcp-muted);margin-bottom:.8rem}
.dcp .dcp-score b{color:var(--dcp-ink)}
.dcp .dcp-empty{border:2px dashed var(--dcp-rule);border-radius:.75rem;padding:1.4rem;color:var(--dcp-muted)}

/* Bars (practice stats and exam results) */
.dcp .dcp-stats{margin-top:.5rem}
.dcp .dcp-stats summary,.dcp .dcp-preview summary{cursor:pointer;color:var(--dcp-teal);font-size:.95rem}
.dcp .dcp-stats[open] summary{margin-bottom:.6rem}
.dcp .dcp-bars{margin-bottom:1.6rem}
.dcp .dcp-bar-row{display:grid;grid-template-columns:minmax(9rem,14rem) 1fr 3rem auto;gap:.75rem;align-items:center;padding:.35rem 0;font-size:.95rem}
.dcp .dcp-bar{display:block;height:.6rem;border-radius:1rem;background:var(--dcp-chip);overflow:hidden}
.dcp .dcp-bar span{display:block;height:100%;background:var(--dcp-good);border-radius:1rem}
.dcp .dcp-bar.is-weak span{background:var(--dcp-warn)}
.dcp .dcp-bar-val{font-variant-numeric:tabular-nums;color:var(--dcp-muted)}

/* Exam */
.dcp .dcp-exam-head{display:flex;justify-content:space-between;gap:1rem;font-size:.98rem;margin-bottom:.5rem}
.dcp .dcp-timer{font-variant-numeric:tabular-nums;color:var(--dcp-muted)}
.dcp .dcp-progress{height:.4rem;border-radius:1rem;background:var(--dcp-chip);overflow:hidden;margin-bottom:1rem}
.dcp .dcp-progress span{display:block;height:100%;background:var(--dcp-teal)}
.dcp .dcp-answered{font-size:.92rem;color:var(--dcp-muted);margin-left:auto}
.dcp .dcp-result{border-left:6px solid}
.dcp .dcp-result.is-pass{border-left-color:var(--dcp-good)}
.dcp .dcp-result.is-fail{border-left-color:var(--dcp-warn)}
.dcp .dcp-big{font-size:1.4rem;font-weight:700;line-height:1.3}
.dcp .dcp-review{display:grid;gap:.6rem;margin-bottom:1rem}
.dcp .dcp-rev{background:var(--dcp-surface);border:1px solid var(--dcp-rule);border-radius:.75rem;padding:.8rem 1rem;border-left:5px solid}
.dcp .dcp-rev.is-correct{border-left-color:var(--dcp-good)}
.dcp .dcp-rev.is-wrong{border-left-color:var(--dcp-bad)}
.dcp .dcp-rev summary{cursor:pointer;display:flex;gap:.75rem;align-items:center;font-weight:700}
.dcp .dcp-rev[open] summary{margin-bottom:.7rem}
.dcp .dcp-rev > p{margin-top:.5rem}
.dcp .dcp-rev-num{display:inline-grid;place-items:center;min-width:1.7rem;height:1.7rem;border-radius:50%;background:var(--dcp-chip);font-size:.85rem}
.dcp .dcp-rev-status{margin-left:auto;font-weight:400;font-size:.9rem;color:var(--dcp-muted)}

/* Worksheet */
.dcp .dcp-load{margin-top:1.4rem;padding-top:1.2rem;border-top:1px solid var(--dcp-rule)}
.dcp .dcp-load-row{display:flex;gap:.5rem;flex-wrap:wrap}
.dcp .dcp-load-row .dcp-input{width:15rem;font-size:1rem;text-transform:uppercase}
.dcp .dcp-code{font-variant-numeric:tabular-nums;letter-spacing:.04em;background:var(--dcp-chip);padding:.1rem .45rem;border-radius:.35rem}
.dcp .dcp-preview{margin-top:1rem}
.dcp .dcp-preview ol{padding-left:1.4rem;margin-top:.6rem}
.dcp .dcp-preview li{list-style:decimal;margin:.3rem 0;font-size:.95rem}

/* Reference */
.dcp .dcp-ref{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:1rem}
.dcp .dcp-ref .dcp-card{margin:0}
.dcp .dcp-table{width:100%;border-collapse:collapse;font-size:.96rem}
.dcp .dcp-table td{padding:.45rem .3rem;border:0;border-bottom:1px solid var(--dcp-rule);vertical-align:top;background:none}
.dcp .dcp-table td:first-child{font-weight:700;width:42%;padding-right:.8rem}
.dcp .dcp-table tr:last-child td{border-bottom:0}
.dcp .dcp-list{padding-left:1.2rem}
.dcp .dcp-list li{list-style:disc;margin:.3rem 0;font-size:.96rem}

.dcp .dcp-related{margin-top:1.6rem;font-size:.95rem}
.dcp .dcp-disclaimer{font-size:.86rem;color:var(--dcp-muted);border-top:1px solid var(--dcp-rule);margin-top:1.6rem;padding-top:1.1rem}
.dcp .dcp-hint{font-size:.92rem;color:var(--dcp-muted)}

@media (max-width:600px){
  .dcp .dcp-bar-row{grid-template-columns:1fr 3rem;}
  .dcp .dcp-bar-row .dcp-bar{grid-column:1 / -1;grid-row:2}
  .dcp .dcp-tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .dcp .dcp-tabs::-webkit-scrollbar{display:none}
  .dcp .dcp-tab{padding:.6rem .7rem;font-size:.95rem;white-space:nowrap;flex:none}
  .dcp .dcp-answered{margin-left:0;width:100%}
}
@media (prefers-reduced-motion: no-preference){
  .dcp .dcp-feedback{animation:dcp-in .25s ease-out both}
}
@keyframes dcp-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

/* How to use this tool */
.dcp .dcp-howto{margin-top:1.25rem;max-width:44rem;background:var(--dcp-surface);border:1px solid var(--dcp-rule);border-left:4px solid var(--dcp-teal);border-radius:.6rem;padding:0}
.dcp .dcp-howto-sum{cursor:pointer;list-style:none;display:flex;align-items:center;gap:.55rem;padding:.7rem 1rem;font-weight:700;color:var(--dcp-ink)}
.dcp .dcp-howto-sum::-webkit-details-marker{display:none}
.dcp .dcp-howto-sum::before{content:"+";display:inline-grid;place-items:center;width:1.45rem;height:1.45rem;border-radius:50%;background:var(--dcp-teal);color:#fff;font-size:1.05rem;line-height:1;flex:none}
.dcp details[open] > .dcp-howto-sum::before{content:"\2212"}
.dcp .dcp-howto-sum:focus-visible{outline:3px solid var(--dcp-teal);outline-offset:2px}
.dcp .dcp-howto-body{padding:0 1.1rem 1rem 1.1rem;font-size:1.05rem;line-height:1.55}
.dcp .dcp-howto-body p{margin:0 0 .5rem}
.dcp .dcp-howto-what{color:var(--dcp-muted)}
.dcp .dcp-howto-body ol{margin:0 0 .6rem;padding-left:1.6rem}
.dcp .dcp-howto-body li{list-style:decimal;margin:.35rem 0;padding-left:.2rem}
.dcp .dcp-howto-body li::marker{font-weight:700;color:var(--dcp-teal)}
.dcp .dcp-howto-tips{margin-top:.6rem !important;padding-top:.6rem;border-top:1px solid var(--dcp-rule)}
.dcp .dcp-howto-sub{margin-top:.6rem !important}
