:root{
  --teal-soft:#E0F7FA; --blue:#1B5FAF; --blue-soft:#DBEAFE;
  --vax:#1A8A5A; --vax-soft:#E3F5EC; --vax-dark:#065F46;
  --women:#BE185D; --women-soft:#FCE7F3;
  --men:#0369A1; --men-soft:#E0F2FE;
}
body{padding-bottom:50px;min-height:0}
.wrap{max-width:880px;margin:0 auto;padding:0 16px}
.header-inner{max-width:880px;margin:0 auto;padding:22px 16px 18px}
.eyebrow{font-size:10px;color:rgba(255,255,255,.65)}
h1{font-size:clamp(22px,4.5vw,30px);margin:4px 0;color:#fff}
.back{font-size:10.5px;color:rgba(255,255,255,.6);margin-top:4px;gap:4px}

.panel{background:var(--surface);border-radius:var(--r);padding:18px;margin-top:12px;box-shadow:var(--sh)}
.panel-grid{display:grid;grid-template-columns:140px 1fr;gap:16px;align-items:start}
@media(max-width:560px){.panel-grid{grid-template-columns:1fr}}
.field-label{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);font-weight:600;display:block;margin-bottom:6px}
input[type=number]{font-family:'IBM Plex Mono',monospace;font-size:26px;font-weight:600;width:100%;padding:8px 12px;border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--bg);color:var(--ink);-moz-appearance:textfield}
input[type=number]:focus{outline:2px solid var(--purple);outline-offset:1px;border-color:var(--purple)}
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.seg{display:flex;gap:6px;flex-wrap:wrap}
.seg button{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:500;padding:9px 18px;border-radius:50px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink-soft);cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.seg button.active{background:var(--ink);border-color:var(--ink);color:#fff}
.seg button:focus-visible{outline:2px solid var(--purple);outline-offset:2px}

.age-input-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px}
.unit-toggle{display:flex;gap:4px}
.unit-toggle button{font-family:'IBM Plex Mono',monospace;font-size:10px;font-weight:600;padding:6px 11px;border-radius:50px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink-soft);cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,border-color .15s}
.unit-toggle button.active{background:var(--vax);border-color:var(--vax);color:#fff}

.flags{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}
.flags summary{font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--vax);cursor:pointer;user-select:none}
.flag-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:4px 16px;margin-top:10px}
.flag-grid label{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;color:var(--ink-soft);padding:4px 0;cursor:pointer}
.flag-grid input{margin-top:2px;accent-color:var(--vax)}

.results{margin-top:22px}
.group-head{display:flex;align-items:center;gap:10px;margin:24px 0 10px}
.group-name{font-weight:800;font-size:14px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink)}
.group-count{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--purple);font-weight:600;background:var(--purple-soft);padding:2px 8px;border-radius:50px}
.group-head::after{content:'';flex:1;height:1.5px;background:var(--line)}
.rec{background:var(--surface);border-radius:var(--r-sm);padding:11px 14px;margin-top:8px;box-shadow:var(--sh);transition:box-shadow .15s}
.rec:hover{box-shadow:var(--sh-lg)}
.rec-title{display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-weight:700;font-size:13.5px}
.chip{display:inline-flex;align-items:center;justify-content:center;font-family:'IBM Plex Mono',monospace;font-weight:700;font-size:9.5px;min-width:20px;height:18px;padding:0 6px;border-radius:50px;color:#fff;background:var(--vax)}
.chip.cond{background:var(--teal)}
.chip.catchup{background:var(--purple)}
.chip.shared{background:var(--ink-muted);color:#fff}
.tag{font-family:'IBM Plex Mono',monospace;font-size:9px;font-weight:700;padding:2px 7px;border-radius:50px;letter-spacing:.04em}
.tag.women{background:var(--women-soft);color:var(--women)}
.tag.men{background:var(--men-soft);color:var(--men)}
.tag.preg{background:var(--women-soft);color:var(--women)}
.freq{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--vax);font-weight:600;margin-left:auto;white-space:nowrap}
.rec-detail{font-size:12.5px;color:var(--ink-soft);margin-top:5px;line-height:1.55}
.cond-note{font-size:11.5px;color:var(--teal);margin-top:4px;font-style:italic}
.empty{padding:26px;text-align:center;color:var(--ink-soft);font-size:13px;background:var(--surface);border:2px dashed var(--line);border-radius:var(--r-sm);margin-top:10px}

.copy-bar{display:flex;justify-content:flex-end;margin:14px 0 -6px}
.copy-btn{font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:600;letter-spacing:.05em;padding:8px 16px;border-radius:50px;border:1.5px solid var(--purple);background:transparent;color:var(--purple);cursor:pointer;transition:background .15s,color .15s}
.copy-btn:hover{background:var(--purple);color:#fff}
.copy-btn.copied{background:var(--vax);color:#fff;border-color:var(--vax)}
.copy-btn:focus-visible{outline:2px solid var(--purple);outline-offset:2px}

footer{max-width:880px;margin:30px auto 0;padding:12px 16px;border-top:1px solid var(--line);font-size:10.5px;color:var(--ink-muted)}
@media print{.panel{border:1px solid #ccc;box-shadow:none} input,.seg button{border:1px solid #999} body{background:#fff} .rec{break-inside:avoid;box-shadow:none;border:1px solid #eee}}
