/* ============================================================
 * _elements.css — element-level base styles + legacy utility classes.
 *
 * Provenance: adopted 2026-06-11 from the old tailwind.css (Tailwind v2.2.7
 * preflight + modern-normalize + @tailwindcss/forms output, which had been
 * hand-patched with dark-mode tokens: var(--bg-card), var(--brand-blue),
 * var(--fg-muted), var(--fg-faint)). Tailwind itself (npm deps, build
 * pipeline, tailwind.config.js, postcss.config.js) is removed — this file
 * is now plain, hand-maintained site CSS. Edit it directly.
 *
 * Loaded ONLY by layout.erb (after _tokens.css and _base.css) and
 * api/observations.html.erb. layout_content.erb deliberately does NOT load
 * it — pages on that layout never had the global border-box/margin reset,
 * so adding it there would shift them (see wx_misc.css 'layout_content'
 * comment).
 *
 * The utility classes at the bottom (.flex, .text-sm, .text-gray-900, ...)
 * are the survivors still referenced by _layout_header, radar/show(+_3d),
 * and the animator controls on map/forecast/extractor. Prefer semantic
 * classes for new work; do not grow this utility set.
 * ============================================================ */
html{-webkit-text-size-adjust:100%;line-height:1.15;-moz-tab-size:4;-o-tab-size:4;tab-size:4}
body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;margin:0}
hr{color:inherit;height:0}
b,strong{font-weight:bolder}
code,pre{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}
small{font-size:80%}
sub{bottom:-.25em;font-size:75%;line-height:0;position:relative;vertical-align:baseline}
table{border-color:inherit;text-indent:0}
button,input,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}
button,select{text-transform:none}
[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}
legend{padding:0}
summary{display:list-item}
h1,h2,h3,h4,h5,hr,p,pre{margin:0}
button{background-color:transparent;background-image:none}
ul{list-style:none;margin:0;padding:0}
html{font-family:Inter var,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}
body{font-family:inherit;line-height:inherit}
*,:after,:before{border:0 solid;box-sizing:border-box}
hr{border-top-width:1px}
img{border-style:solid}
textarea{resize:vertical}
input::-moz-placeholder,textarea::-moz-placeholder{color:var(--fg-faint)}
input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--fg-faint)}
input::placeholder,textarea::placeholder{color:var(--fg-faint)}
button{cursor:pointer}
table{border-collapse:collapse}
h1,h2,h3,h4,h5{font-size:inherit;font-weight:inherit}
a{color:inherit;text-decoration:inherit}
button,input,select,textarea{color:inherit;line-height:inherit;padding:0}
code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}
audio,canvas,iframe,img,svg,video{display:block;vertical-align:middle}
img,video{height:auto;max-width:100%}
[hidden]{display:none}
*,:after,:before{--tw-border-opacity:1;border-color:rgba(229,231,235,var(--tw-border-opacity))}
[multiple],[type=date],[type=email],[type=month],[type=number],[type=password],[type=text],[type=time],[type=url],select,textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bg-card);border-color:var(--fg-muted);border-radius:0;border-width:1px;font-size:1rem;line-height:1.5rem;padding:.5rem .75rem}
[multiple]:focus,[type=date]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,select:focus,textarea:focus{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:var(--brand-blue);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);border-color:var(--brand-blue);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);outline:2px solid transparent;outline-offset:2px}
input::-moz-placeholder,textarea::-moz-placeholder{color:var(--fg-muted);opacity:1}
input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--fg-muted);opacity:1}
input::placeholder,textarea::placeholder{color:var(--fg-muted);opacity:1}
select{-webkit-print-color-adjust:exact;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;color-adjust:exact;padding-right:2.5rem}
[multiple]{-webkit-print-color-adjust:unset;background-image:none;background-position:0 0;background-repeat:unset;background-size:initial;color-adjust:unset;padding-right:.75rem}
[type=checkbox],[type=radio]{-webkit-print-color-adjust:exact;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bg-card);background-origin:border-box;border-color:var(--fg-muted);border-width:1px;color:var(--brand-blue);color-adjust:exact;display:inline-block;flex-shrink:0;height:1rem;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;width:1rem}
[type=checkbox]{border-radius:0}
[type=radio]{border-radius:100%}
[type=checkbox]:focus,[type=radio]:focus{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:var(--brand-blue);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);outline:2px solid transparent;outline-offset:2px}
[type=checkbox]:checked,[type=radio]:checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:transparent}
[type=checkbox]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.207 4.793a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L6.5 9.086l4.293-4.293a1 1 0 0 1 1.414 0z'/%3E%3C/svg%3E")}
[type=radio]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E")}
[type=checkbox]:checked:focus,[type=checkbox]:checked:hover,[type=radio]:checked:focus,[type=radio]:checked:hover{background-color:currentColor;border-color:transparent}
[type=checkbox]:indeterminate{background-color:currentColor;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:transparent}
[type=checkbox]:indeterminate:focus,[type=checkbox]:indeterminate:hover{background-color:currentColor;border-color:transparent}
[type=file]{background:unset;border-color:inherit;border-radius:0;border-width:0;font-size:unset;line-height:inherit;padding:0}
[type=file]:focus{outline:1px auto -webkit-focus-ring-color}
.mx-auto{margin-left:auto;margin-right:auto}
.flex{display:flex}
.grid{display:grid}
.w-max{width:-webkit-max-content;width:-moz-max-content;width:max-content}
.justify-between{justify-content:space-between}
.gap-2{gap:.5rem}
.border-t{border-top-width:1px}
.border-gray-200{--tw-border-opacity:1;border-color:rgba(229,231,235,var(--tw-border-opacity))}
.p-1{padding:.25rem}
.p-2{padding:.5rem}
.py-2{padding-bottom:.5rem;padding-top:.5rem}
.text-left{text-align:left}
.text-center{text-align:center}
.text-right{text-align:right}
.text-sm{font-size:.875rem;line-height:1.25rem}
.font-bold{font-weight:700}
.italic{font-style:italic}
.text-gray-500{--tw-text-opacity:1;color:rgba(107,114,128,var(--tw-text-opacity))}
.text-gray-900{--tw-text-opacity:1;color:rgba(17,24,39,var(--tw-text-opacity))}
*,:after,:before{--tw-shadow:0 0 #0000}
*,:after,:before{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000}
