/* Shared public-tool styling. Mobile first; no external fonts; readable in print and monochrome. */
:root { --bg:#071b2e; --card:#0f2b43; --text:#eef8fb; --muted:rgba(238,248,251,.78); --green:#62d3c4; --blue:#54a8d8; --amber:#d59f2a; --line:rgba(238,248,251,.22); }
@media (prefers-color-scheme: light) { :root { --bg:#f6f9fb; --card:#fff; --text:#0c2233; --muted:#3b5163; --green:#0b7a6e; --blue:#155f8f; --amber:#8a5d00; --line:#c4d1da; } }
html.pt-light { --bg:#f6f9fb; --card:#fff; --text:#0c2233; --muted:#3b5163; --green:#0b7a6e; --blue:#155f8f; --amber:#8a5d00; --line:#c4d1da; }
html.pt-dark { --bg:#071b2e; --card:#0f2b43; --text:#eef8fb; --muted:rgba(238,248,251,.78); --green:#62d3c4; --blue:#54a8d8; --amber:#d59f2a; --line:rgba(238,248,251,.22); }
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body.pt { margin:0; background:var(--bg); color:var(--text); font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; line-height:1.55; font-size:1.0625rem; overflow-wrap:anywhere; }
.pt-skip { position:absolute; left:-999px; top:0; background:var(--card); color:var(--text); padding:.6rem 1rem; z-index:10; }
.pt-skip:focus { left:0; }
.pt-header { display:flex; flex-wrap:wrap; gap:.5rem 1rem; align-items:center; justify-content:space-between; padding:.9rem 18px; border-bottom:1px solid var(--line); }
.pt-brand { color:var(--green); font-weight:700; text-decoration:none; font-size:1.15rem; }
.pt-header nav { display:flex; gap:1rem; }
.pt-header a, .pt-main a, .pt-footer a { color:var(--blue); }
.pt-header a { min-height:44px; display:inline-flex; align-items:center; }
.pt-main { max-width:46rem; margin:0 auto; padding:1.25rem 18px 2rem; }
.pt-main h1 { font-size:1.6rem; line-height:1.2; margin:.4rem 0 1rem; }
.pt-main h2 { font-size:1.25rem; margin:1.6rem 0 .5rem; }
.pt-card { background:var(--card); border:1px solid var(--line); border-radius:14px; padding:1rem 1.1rem; margin:.9rem 0; }
.pt-btn, .pt-main button { min-height:44px; display:inline-flex; align-items:center; justify-content:center; text-align:center; box-sizing:border-box; max-width:100%; padding:.6rem 1.1rem; border-radius:10px; border:1px solid var(--green); background:transparent; color:var(--green); font:inherit; font-weight:600; text-decoration:none; cursor:pointer; }
.pt-btn:hover, .pt-main button:hover { background:var(--green); color:var(--bg); }
.pt-main :focus-visible, .pt-header a:focus-visible { outline:3px solid var(--amber); outline-offset:2px; }
.pt-aa-quote { margin:1rem 0; padding:.8rem 1rem; border-left:4px solid var(--amber); background:var(--card); border-radius:0 10px 10px 0; }
.pt-aa-quote figcaption { font-size:.85rem; text-transform:uppercase; letter-spacing:.05em; color:var(--amber); font-weight:700; }
.pt-aa-quote blockquote { margin:.3rem 0; font-style:italic; }
.pt-cite, .pt-pub { color:var(--muted); font-size:.9rem; }
.pt-sources { padding-left:1.2rem; }
.pt-footer { max-width:46rem; margin:0 auto; padding:1rem 18px 2.5rem; color:var(--muted); font-size:.9rem; border-top:1px solid var(--line); }
@media (prefers-reduced-motion: reduce) { * { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
@media print { body.pt { background:#fff; color:#000; } .pt-header, .pt-skip, .no-print, .pt-footer .pt-privacy { display:none !important; } .pt-card, .pt-aa-quote { border:1px solid #000; background:#fff; break-inside:avoid; } a { color:#000; text-decoration:underline; } }

.pt-theme { min-height:44px; padding:.4rem .9rem; font-size:.95rem; }
.pt-date { color:var(--amber); font-weight:700; letter-spacing:.04em; text-transform:uppercase; font-size:.85rem; }
.pt-question { border-left:4px solid var(--green); padding:.6rem 1rem; margin:1.2rem 0; background:var(--card); border-radius:0 10px 10px 0; font-weight:600; }
.pt-closing { font-style:italic; color:var(--blue); margin:1rem 0; }
.pt-pointer { color:var(--muted); font-size:.95rem; }
.pt-daynav { display:flex; flex-wrap:wrap; gap:.6rem; justify-content:space-between; margin:1.4rem 0; }
.pt-daynav a { min-height:44px; display:inline-flex; align-items:center; padding:.5rem 1rem; border:1px solid var(--line); border-radius:10px; text-decoration:none; }
.pt-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(15rem, 1fr)); gap:.8rem; }
.pt-tile { display:block; text-decoration:none; color:var(--text) !important; background:var(--card); border:1px solid var(--line); border-radius:12px; padding:.9rem 1rem; min-height:44px; }
.pt-tile strong { color:var(--green); display:block; margin-bottom:.15rem; }
.pt-tile span { color:var(--muted); font-size:.95rem; }
.pt-tile:hover { border-color:var(--green); }
.pt-hero p { font-size:1.15rem; color:var(--muted); max-width:36rem; }
.pt-shelf { display:flex; flex-wrap:wrap; gap:.5rem; padding:0; list-style:none; }
.pt-shelf a { display:inline-flex; align-items:center; min-height:44px; padding:.4rem .8rem; border:1px solid var(--line); border-radius:10px; text-decoration:none; }
.pt-lede { margin:0 0 .6rem; }

.pt-aa-inline { quotes:none; font-style:italic; border-bottom:2px solid var(--amber); }
.pt-aa-note { margin:.8rem 0; padding:.5rem .9rem; border-left:4px solid var(--amber); background:var(--card); border-radius:0 10px 10px 0; }
.pt-aa-note figcaption { font-size:.8rem; text-transform:uppercase; letter-spacing:.05em; color:var(--amber); font-weight:700; }
.pt-aa-note p { margin:.2rem 0 0; }

.pt-actions { display:flex; flex-wrap:wrap; gap:.6rem; margin:1rem 0; }
.pt-search { width:100%; min-height:48px; padding:.6rem .9rem; border:1px solid var(--line); border-radius:10px; background:var(--card); color:var(--text); font:inherit; }
.pt-item h3 { margin:.1rem 0 .3rem; font-size:1.1rem; color:var(--green); }
.pt-item ul { margin:.3rem 0 .6rem 1.2rem; padding:0; }
.pt-more { margin-top:.5rem; }
.pt-more summary { cursor:pointer; min-height:44px; display:flex; align-items:center; color:var(--blue); }
.pt-notes { width:100%; min-height:7rem; padding:.7rem; border:1px solid var(--line); border-radius:10px; background:var(--card); color:var(--text); font:inherit; }
.pt-big { font-size:1.35rem; line-height:1.5; }
.pt-btn[aria-pressed="true"], .pt-main button[aria-pressed="true"] { background:var(--green); color:var(--bg); }
body.pt-quiet .pt-header, body.pt-quiet .pt-footer, body.pt-quiet .pt-lede, body.pt-quiet .pt-more, body.pt-quiet .pt-tags, body.pt-quiet .pt-pointer, body.pt-quiet [data-hide-quiet] { display:none; }
body.pt-quiet .pt-main { max-width:60rem; }
body.pt-quiet .pt-item h3 { font-size:2.2rem; }
body.pt-quiet .pt-item .pt-opening, body.pt-quiet .pt-item li { font-size:1.6rem; line-height:1.5; }
body.pt-quiet .pt-item li:nth-child(n+3) { display:none; }
.pt-alpha { position:static; }
.pt-tags { color:var(--muted); font-size:.85rem; }
.pt-anchor-nav { display:flex; flex-wrap:wrap; gap:.5rem; padding:0; list-style:none; margin:1rem 0; }
.pt-anchor-nav a { display:inline-flex; align-items:center; min-height:44px; padding:.4rem .8rem; border:1px solid var(--line); border-radius:10px; text-decoration:none; }
@media print { .pt-search, .pt-actions, .pt-anchor-nav, .pt-notes { display:none !important; } details.pt-more { display:block; } }
[hidden] { display:none !important; }
.pt-sos { position:sticky; top:0; z-index:5; display:block; text-align:center; padding:.7rem 1rem; min-height:44px; background:#8a1f1f; color:#fff !important; font-weight:700; text-decoration:none; }
.pt-sos:focus-visible { outline:3px solid var(--amber); outline-offset:-3px; }
.pt-choices { display:grid; gap:.6rem; margin:1rem 0; }
.pt-choice { text-align:left; min-height:52px; font-size:1.05rem; }
.pt-first { font-size:1.3rem; line-height:1.45; }
.pt-safety { border-left:6px solid #b3261e; }
.pt-safety h2, .pt-safety h3 { margin-top:.2rem; }
.pt-btn-alert { border-color:#b3261e; color:#b3261e; }
.pt-btn-alert:hover { background:#b3261e; color:#fff; }
.pt-sec { margin:.6rem 0; border:1px solid var(--line); border-radius:12px; padding:.2rem 1rem; background:var(--card); }
.pt-sec summary { cursor:pointer; min-height:44px; display:flex; align-items:center; font-weight:700; color:var(--green); }
.pt-closing-line { font-style:italic; color:var(--blue); margin-top:1.4rem; }
@media print { .pt-sos, .pt-choices, [data-helper] { display:none !important; } .pt-sec { border:1px solid #000; } .pt-sec > * { display:block; } }
.pt-sr { position:absolute; left:-999px; }
fieldset.pt-opts { border:1px solid var(--line); border-radius:12px; padding:.6rem 1rem; margin:.7rem 0; }
fieldset.pt-opts legend { padding:0 .4rem; font-weight:700; }
.pt-opt { display:flex; align-items:center; gap:.6rem; min-height:44px; cursor:pointer; }
.pt-opt input { width:1.25rem; height:1.25rem; flex:none; }
.pt-minutes { width:5.5rem; min-height:44px; padding:.4rem .6rem; border:1px solid var(--line); border-radius:10px; background:var(--card); color:var(--text); font:inherit; }
.pt-short { min-height:4rem; }
.pt-blockrow { display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; margin:.3rem 0; }
.pt-blockrow label { flex:1 1 12rem; }
.pt-map { list-style:none; padding:0; display:flex; flex-direction:column; gap:.5rem; }
.pt-map li { display:flex; flex-direction:column; align-items:flex-start; }
.pt-map li:not(:last-child)::after { content:"\2193"; color:var(--muted); margin:.15rem 0 0 1.1rem; }
.pt-map-alt li::after { content:none !important; }
@media (min-width: 760px) { .pt-map { flex-direction:row; flex-wrap:wrap; align-items:center; } .pt-map li { flex-direction:row; align-items:center; } .pt-map li:not(:last-child)::after { content:"\2192"; margin:0 .4rem; } }
@media print { .pt-map button { border-color:#000; color:#000; } textarea.pt-notes { border:1px solid #000; background:#fff; color:#000; } }

.pt-people-list { list-style:none; padding:0; display:grid; gap:.6rem; }
.pt-people-box { border-left:6px solid var(--green); }
.pt-btn-call { background:var(--green); color:var(--bg) !important; }

.pt-checks, .pt-reorder { list-style:none; padding:0; margin:.4rem 0; }
.pt-reorder { counter-reset:ag; }
.pt-reorder li { justify-content:space-between; flex-wrap:wrap; border-bottom:1px solid var(--line); }
.pt-reorder li label { flex:1 1 10rem; }
.pt-reorder button { min-width:44px; margin-left:.3rem; }
.pt-reorder input:not(:checked) + label { text-decoration:line-through; color:var(--muted); }
@media print { .pt-reorder input:not(:checked), .pt-reorder input:not(:checked) + label { display:none; } .pt-reorder li:has(input:not(:checked)) { display:none; } }
