/* Plain CSS that complements Tailwind (loaded before Tailwind compiles, so it also limits layout shift). */
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:#FFFFFF;color:#1F2937}
[hidden]{display:none!important}
summary::-webkit-details-marker{display:none}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.table-wrap{overflow-x:auto;border-radius:1rem;border:1px solid #D6E7FB;background:#fff}
.table-wrap table{width:100%;border-collapse:collapse;font-size:.95rem;min-width:560px}
.table-wrap th,.table-wrap td{padding:.75rem 1rem;text-align:left;vertical-align:top;border-bottom:1px solid #EAF4FF}
.table-wrap thead th{background:#0754A5;color:#fff;font-weight:600}
.table-wrap tbody th{font-weight:600;color:#1F2937}
.table-wrap tbody tr:last-child th,.table-wrap tbody tr:last-child td{border-bottom:0}
/* Article typography */
.prose-article{font-size:1.0625rem;line-height:1.8;color:#1F2937}
.prose-article>*+*{margin-top:1.15em}
.prose-article h2{font-family:"Playfair Display",Georgia,serif;font-size:1.85rem;line-height:1.25;font-weight:600;color:#1F2937;margin-top:2.2em;scroll-margin-top:6rem}
.prose-article h3{font-size:1.25rem;line-height:1.35;font-weight:700;color:#0754A5;margin-top:1.8em;scroll-margin-top:6rem}
.prose-article h4{font-size:1.05rem;font-weight:700;color:#0754A5;margin-top:1.4em}
.prose-article a{color:#0754A5;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.prose-article a:hover{color:#0B6B4F}
.prose-article ul,.prose-article ol{padding-left:1.4em}
.prose-article ul{list-style:disc}.prose-article ol{list-style:decimal}
.prose-article li+li{margin-top:.4em}
.prose-article li::marker{color:#0B6B4F}
.prose-article strong{color:#1F2937}
.prose-article blockquote{border-left:4px solid #FFC52D;background:#FFF9E6;padding:1rem 1.25rem;border-radius:0 1rem 1rem 0;font-style:italic}
.prose-article figure{margin:2em 0}
.prose-article figcaption{margin-top:.6em;font-size:.875rem;color:#64748b;text-align:center}
.prose-article code{font-size:.85em;background:#EAF4FF;padding:.1em .35em;border-radius:.3em}
.callout{display:flex;gap:.9rem;border-radius:1rem;padding:1rem 1.25rem;font-size:1rem;line-height:1.65}
.callout>i{margin-top:.3rem;font-size:1.1rem}
.callout>div>*+*{margin-top:.6em}
.callout-tip{background:#EAF4FF;border:1px solid #D6E7FB}.callout-tip>i{color:#0754A5}
.callout-note{background:#E7F4EF;border:1px solid #CDE8DD}.callout-note>i{color:#0B6B4F}
.callout-warning{background:#FFF9E6;border:1px solid #FFE08A}.callout-warning>i{color:#B7860B}
.tldr{border-radius:1.25rem;background:#EAF4FF;border:2px solid #0754A5;padding:1.25rem 1.5rem;font-size:1.05rem;line-height:1.7}
.tldr-label{font-size:.75rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#0B6B4F;margin-bottom:.5rem}
.tldr ul{list-style:disc;padding-left:1.3em;margin-top:.5em}.tldr li+li{margin-top:.3em}
.tldr p+p,.tldr p+ul{margin-top:.6em}
.day-points{margin-top:.75rem;display:grid;gap:.35rem;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr))}
.day-points li{display:flex;gap:.5rem;align-items:flex-start;font-size:.95rem}
.day-points li::before{content:"";flex:none;width:.45rem;height:.45rem;margin-top:.55rem;border-radius:999px;background:#0B6B4F}
.day-points li.optional::before{background:#FFC52D}
/* Forms */
.field-error{margin-top:.35rem;font-size:.8rem;line-height:1.35;font-weight:500;color:#B91C1C}
.field[aria-invalid="true"]{border-color:#DC2626;box-shadow:0 0 0 3px rgba(220,38,38,.15)}
[data-form-status].is-error{color:#B91C1C;font-weight:600}
[data-form-status].is-ok{color:#0B6B4F;font-weight:600}
.hp{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}
.btn[disabled]{opacity:.75;cursor:wait}
.spin{animation:stt-spin 1s linear infinite}
@keyframes stt-spin{to{transform:rotate(360deg)}}
.slidein{transform:translateY(1.5rem);opacity:0;transition:transform .35s ease,opacity .35s ease}
.slidein.is-open{transform:none;opacity:1}
