/* Shared by the free tools (window, inputs, tabs, receipts, summary box, notes). Each tool adds its own styles inline. */
.ho{margin-top:var(--s5);background:var(--white);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--soft);overflow:hidden;overflow:clip}
.win-bar{display:flex;align-items:center;gap:8px;padding:11px var(--s4);background:var(--ink);color:var(--vellum);font:500 var(--t-label)/1 var(--mono)}
.win-bar i{width:9px;height:9px;border-radius:50%;background:rgba(255,243,235,.32)}
.win-bar i:last-of-type{margin-right:6px}
.ho-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s2) var(--s4);padding:var(--s3) var(--s4);border-bottom:1px solid var(--line);background:var(--vellum)}
.ho-tabs{display:flex;flex-wrap:wrap;gap:8px}
.ho-bar .seg{display:flex;align-items:center;gap:10px;margin:0}
.ho-bar .seg legend{float:left;margin:0;font:500 var(--t-label)/1 var(--mono);color:var(--muted)}
.ho-tab{min-height:44px;padding:0 18px;border:1.5px solid var(--line-2);border-radius:var(--r-pill);background:var(--white);color:var(--ink);font:650 var(--t-small)/1 var(--sans);cursor:pointer}
.ho-tab:hover{border-color:var(--ink)}
.ho-tab[aria-selected="true"]{background:var(--ink);border-color:var(--ink);color:var(--white)}
.ho-body[hidden]{display:none}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ho-body{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.ho-in{padding:var(--s4);border-right:1px solid var(--line)}
.ho-out{padding:var(--s4);background:#FFFBF8;min-width:0}
.ho-foot{margin:0;padding:10px var(--s4);border-top:1px solid var(--line);background:var(--vellum);font:500 var(--t-micro)/1.5 var(--mono);color:var(--muted)}
@media (max-width:860px){.ho-body{grid-template-columns:minmax(0,1fr)}.ho-in{border-right:0;border-bottom:1px solid var(--line)}}
@media (max-width:600px){.ho-tabs{flex-wrap:nowrap;width:100%}.ho-tab{flex:1;padding:0 8px;line-height:1.2}.ho-bar .seg div{flex-wrap:nowrap}.ho-bar .seg span{padding:0 13px}}
@media (max-width:380px){.ho-bar .seg{display:block}.ho-bar .seg legend{float:none;margin:0 0 6px}}
@media (max-width:600px){.ho-in,.ho-out{padding:var(--s3)}.ho-bar,.win-bar,.ho-foot{padding-left:var(--s3);padding-right:var(--s3)}}

.fld{margin:0 0 var(--s3)}
.fld>label,.grp legend,.seg legend{display:block;margin:0 0 6px;padding:0;font-weight:650;font-size:var(--t-small)}
.inp{display:flex;align-items:center;gap:8px;min-height:48px;padding:0 12px;border:1.5px solid var(--line-2);border-radius:var(--r-s);background:var(--white)}
.inp:focus-within{border-color:var(--ink);outline:3px solid var(--red-ink);outline-offset:2px}
.inp input{flex:1;min-width:0;min-height:44px;border:0;padding:0;background:transparent;color:var(--ink);font:inherit;font-size:var(--t-ui);font-variant-numeric:tabular-nums}
.inp input:focus-visible{outline:none}
.inp b{font:500 var(--t-label)/1 var(--mono);color:var(--muted)}
.fld.invalid .inp{border-color:var(--red-ink);background:#FFF7F6}
.hint{margin:6px 0 0;font-size:var(--t-label);line-height:1.5;color:var(--muted)}
.cerr{display:flex;align-items:center;gap:8px;margin:6px 0 0;font-size:var(--t-label);line-height:1.5;font-weight:600;color:var(--red-ink)}
.cerr[hidden]{display:none}
.cerr svg{flex:none;width:16px;height:16px}
.seg{margin:0 0 var(--s3);padding:0;border:0}
.seg div{display:flex;flex-wrap:wrap;gap:6px}
.seg label{position:relative}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg span{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1.5px solid var(--line-2);border-radius:var(--r-pill);background:var(--white);font:600 var(--t-small)/1 var(--sans);font-variant-numeric:tabular-nums;cursor:pointer}
.seg input:checked+span{background:var(--ink);border-color:var(--ink);color:var(--white)}
.seg input:focus-visible+span{outline:3px solid var(--red-ink);outline-offset:3px}
.grps{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}
.grp{margin:0;padding:0;border:0;min-width:0}
.grp legend{font:650 var(--t-label)/1.4 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--red-ink);margin-bottom:var(--s2)}
.grp .fld>label{font-weight:500}
@media (max-width:420px){.grps{grid-template-columns:1fr}}
.errsum{margin:0 0 var(--s3);padding:var(--s2) var(--s3);border-left:3px solid var(--red-ink);background:#FFF7F6;font-size:var(--t-small)}
.errsum p{margin:0;font-weight:650}
.errsum ul{margin:6px 0 0;padding-left:1.1em}
.errsum a{color:var(--red-ink)}
.ho-clear{min-height:44px;font-size:var(--t-small)}
.ex{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0 0 var(--s2);font-size:var(--t-label);color:var(--muted)}
.ex b{padding:4px 8px;border-radius:var(--r-pill);background:var(--pink);color:var(--ink);font:500 var(--t-micro)/1 var(--mono);letter-spacing:.04em;text-transform:uppercase}
#plan-out.stale,#read-out.stale{opacity:.55;transition:opacity .2s}
.ho-peek{display:none}
@media (max-width:860px){
  html{scroll-padding-bottom:84px}
  .ho-peek{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:40;display:flex;align-items:center;justify-content:space-between;gap:var(--s2);min-height:52px;padding:8px 8px 8px 18px;border:0;border-radius:var(--r-pill);background:var(--ink);color:var(--vellum);font:650 var(--t-small)/1.25 var(--sans);text-align:left;box-shadow:0 8px 24px rgba(31,21,19,.25);cursor:pointer;transform:translateY(0);transition:transform .25s var(--ease),opacity .25s}
  .ho-peek[hidden]{display:flex;transform:translateY(140%);opacity:0;pointer-events:none;visibility:hidden;transition:transform .25s var(--ease),opacity .25s,visibility 0s .25s}
  .ho-peek i{flex:none;padding:8px 12px;border-radius:var(--r-pill);background:var(--vellum);color:var(--ink);font-style:normal;font-weight:650}
}

.rcpt{background:var(--white);border:1.5px solid var(--ink);border-radius:var(--r-s);overflow:hidden;font:400 var(--t-small)/1.5 var(--mono);font-variant-numeric:tabular-nums}
.rcpt-v{margin:0;padding:var(--s3) var(--s4);font:700 var(--t-h3)/1.15 var(--display);letter-spacing:-.02em}
.v-red{background:var(--red);color:var(--white)}
.v-pink{background:var(--pink);color:var(--ink)}
.v-ink{background:var(--ink);color:var(--vellum)}
.rcpt-in{padding:var(--s3) var(--s4) var(--s4)}
.rl{margin:0}
.rl div{display:flex;align-items:baseline;gap:8px;padding:3px 0}
.rl dt{display:flex;flex:1;align-items:baseline;gap:8px;min-width:0}
.rl dt::after{content:"";flex:1;min-width:16px;border-bottom:1.5px dotted var(--line-2)}
.rl dd{margin:0;text-align:right;font-weight:500;white-space:nowrap}
.rcpt hr{margin:var(--s2) 0;border:0;border-top:1.5px dashed var(--line-2)}
.rcpt-p{margin:var(--s2) 0 0;font-size:var(--t-micro);color:var(--muted)}
.rcpt-note{margin:var(--s2) 0 0;font:400 var(--t-label)/1.5 var(--sans);color:var(--muted)}
.rcpt-note+.rcpt-note{margin-top:6px}
.rcpt ul{margin:var(--s2) 0 0;padding-left:1.1em;font:400 var(--t-small)/1.5 var(--sans)}
@media (max-width:600px){.rcpt-v,.rcpt-in{padding-left:var(--s3);padding-right:var(--s3)}.rcpt{font-size:var(--t-label)}}
@media (prefers-reduced-motion:no-preference){.rcpt.enter{animation:hoIn .35s var(--ease)}@keyframes hoIn{from{opacity:0;transform:translateY(8px)}}}

.ho-try{margin-top:var(--s4)}
.ho-try label{display:flex;justify-content:space-between;gap:var(--s2);font-weight:650;font-size:var(--t-small)}
.ho-try output{font:500 var(--t-small)/1 var(--mono);font-variant-numeric:tabular-nums}
.ho-try input{width:100%;min-height:44px;margin:4px 0 var(--s1);accent-color:var(--red-ink)}

.draft{margin-top:var(--s4);border:1px solid var(--line);border-radius:var(--r-s);background:var(--white)}
.draft-h{margin:0;padding:10px var(--s3);border-bottom:1px solid var(--line);font:650 var(--t-label)/1.4 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--red-ink)}
.draft-t{margin:0;padding:var(--s3);font-size:var(--t-small);line-height:1.6}
.draft-f{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3);padding:0 var(--s3) var(--s3)}
.draft-f .btn2{min-height:44px;font-size:var(--t-small)}
.draft-s{font-size:var(--t-small);color:var(--muted)}
.draft-f .link{min-height:44px;font-size:var(--t-small)}

.how{max-width:760px;margin-top:var(--s6);border-top:2px solid var(--ink);border-bottom:1px solid var(--line)}
.how summary{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);min-height:56px;padding:var(--s2) 0;cursor:pointer;list-style:none;font:700 var(--t-h3)/1.15 var(--display);letter-spacing:-.02em}
.how summary::-webkit-details-marker{display:none}
.how summary .tg{position:relative;flex:none;width:28px;height:28px;border:1.5px solid var(--ink);border-radius:6px;transition:transform .25s var(--ease)}
.how summary .tg::before,.how summary .tg::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;background:var(--ink);transform:translate(-50%,-50%)}
.how summary .tg::after{transform:translate(-50%,-50%) rotate(90deg)}
.how[open] summary .tg{transform:rotate(45deg)}
.how-in{padding:0 0 var(--s4)}
.how-in p{margin:0 0 var(--s3)}
.ho-cta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3);margin-top:var(--s5)}
.ho-cta p{margin:0;font-size:var(--t-lede);line-height:1.4;max-width:34ch}
