/* Local specimen styles. Functional focus rings are intentionally preserved. */
.ha-root{--ha-panel:rgba(24,36,54,.87);--ha-text:#eff6ff;--ha-subtle:#b7c9dc;--ha-control:#23374e;--ha-highlight:#b9ff79;--ha-error:#ffb4c1;--ha-stroke:#89a7c5}
:root[data-theme=light] .ha-root{--ha-panel:rgba(245,252,255,.88);--ha-text:#142a3d;--ha-subtle:#405d70;--ha-control:#e2edf2;--ha-highlight:#214a07;--ha-error:#9f2140;--ha-stroke:#53718a}
.ha-root :is(button,input,select,textarea){font:inherit}.ha-root :is(button,a,input,select,textarea,summary):focus-visible{outline:3px solid var(--ring);outline-offset:4px}
.ha-root [hidden]{display:none!important}.ha-root h4{font-size:1.15rem;line-height:1.35;letter-spacing:-.02em;margin:0 0 12px}.ha-root code{font-family:Consolas,monospace;font-size:.88em;letter-spacing:0}.ha-root p{overflow-wrap:anywhere}
.ha-toolbar{display:flex;flex-wrap:wrap;gap:22px;align-items:end;padding:24px;border-radius:24px;background:var(--solid)}
.ha-toolbar>label{flex:1 1 280px;display:grid;gap:9px;font-size:.86rem;font-weight:650}.ha-toolbar input[type=search]{width:100%;background:var(--bg);color:var(--ink);border:1px solid var(--edge);border-radius:12px;padding:13px;font-size:16px;min-height:48px}
.ha-material{display:flex;flex-wrap:wrap;gap:14px;border:0;padding:0;margin:0}.ha-material legend{font-size:.82rem;color:var(--muted);margin-bottom:10px}.ha-material label{display:flex;align-items:center;gap:7px;font-size:.9rem;min-height:44px}.ha-material input{width:20px;height:20px;accent-color:var(--ring)}#ha-count{font-size:.85rem;color:var(--muted);min-height:44px;display:flex;align-items:center;font-variant-numeric:tabular-nums}
.ha-map{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:24px 0}.ha-map button{display:flex;gap:14px;align-items:center;justify-content:space-between;min-height:58px;padding:12px 16px;border:0;border-radius:13px;background:var(--solid);color:var(--ink);text-align:left;font-size:.85rem;line-height:1.4}.ha-map button small{color:var(--muted);font-variant-numeric:tabular-nums}.ha-map button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.ha-map button[aria-pressed=true] small{color:inherit}
.ha-group{border-top:1px solid var(--edge);margin-top:0}.ha-group>summary{display:flex;align-items:center;gap:20px;min-height:88px;cursor:pointer;list-style:none;padding:18px 4px}.ha-group>summary::-webkit-details-marker,.ha-entry>summary::-webkit-details-marker,.ha-input-card>summary::-webkit-details-marker{display:none}.ha-group>summary>span{font-family:Consolas,monospace;color:var(--muted);font-size:.85rem}.ha-group>summary h3{flex:1;letter-spacing:-.03em;font-size:clamp(1.2rem,2vw,1.7rem)}.ha-group>summary small{font-size:.8rem;color:var(--muted)}.ha-group>summary:after{content:'+';font-size:1.6rem}.ha-group[open]>summary:after{content:'−'}
.ha-entries{padding-bottom:24px;display:grid;gap:8px}.ha-entry{background:var(--solid);border-radius:15px;min-width:0}.ha-entry>summary{display:grid;grid-template-columns:minmax(110px,.5fr) minmax(0,1fr) auto;align-items:center;gap:16px;list-style:none;cursor:pointer;padding:18px 22px;min-height:64px}.ha-entry>summary>code{color:var(--cyan);font-weight:700}.ha-entry>summary>span{font-size:.95rem}.ha-entry>summary>small{color:var(--muted);font-size:.72rem;text-align:right}.ha-entry[open]>summary{padding-bottom:12px}.ha-entry-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:28px;padding:12px 22px 24px;align-items:start}.ha-scene{position:relative;isolation:isolate;min-width:0;padding:26px 18px;border-radius:20px;background:radial-gradient(ellipse at 0 80%,#a8ff6288,transparent 60%),radial-gradient(ellipse at 95% 15%,#1bf0ed88,transparent 60%),var(--bg)}.ha-scene:before{content:'';position:absolute;z-index:-1;inset:20% 12% 20% 40%;background:linear-gradient(125deg,#cbff8a,#45d4ff,#c48eff);border-radius:50%;transform:rotate(-28deg)}.ha-surface{position:relative;background:var(--ha-panel);border:0;border-radius:16px;backdrop-filter:blur(14px) saturate(120%);-webkit-backdrop-filter:blur(14px) saturate(120%);box-shadow:none}
.ha-root[data-ha-edge="3d"] .ha-surface{box-shadow:inset 4px 4px 7px #e8ffff70,inset -5px -5px 9px #13427f75,10px 15px 20px #061c3030}.ha-root[data-ha-edge="3d"] .ha-surface:after{content:'';position:absolute;pointer-events:none;top:0;left:14px;width:65%;height:2px;background:linear-gradient(90deg,transparent,#f2ffffb0,transparent)}
.ha-demo{padding:23px;color:var(--ha-text);font-size:.95rem;line-height:1.65;min-width:0;overflow-wrap:anywhere}.ha-demo>*+*{margin-top:14px}.ha-demo :is(header,footer,nav,section,article,aside,figure,hgroup,address,blockquote,dl,ul,ol,menu){margin:0;max-width:100%}.ha-demo :is(header,footer,nav){position:static;display:flex;flex-wrap:wrap;gap:12px;padding:0;background:none;min-height:0}.ha-demo header{display:block}.ha-demo footer{font-size:.8rem;margin-top:10px}.ha-demo :is(h1,h2,h3,h4,h5,h6){font-size:1.2rem;line-height:1.3;letter-spacing:-.025em}.ha-demo .ha-heading-example{font-size:clamp(1.25rem,2.8vw,2rem)}.ha-demo small,.ha-demo figcaption,.ha-hint{font-size:.8rem;color:var(--ha-subtle)}.ha-demo figcaption{margin-top:10px}.ha-demo ul,.ha-demo ol,.ha-demo menu{padding-left:22px}.ha-demo li+li{margin-top:7px}.ha-demo blockquote{padding-left:18px;border-left:3px solid var(--ha-highlight)}.ha-demo dd{margin:0 0 12px;color:var(--ha-subtle)}.ha-demo dt{font-weight:700}.ha-demo :is(hr){border:0;border-top:1px solid var(--ha-stroke);margin:16px 0}.ha-demo mark{background:#d5ff91;color:#193009;padding:1px 4px;border-radius:4px}.ha-demo kbd{display:inline-block;padding:2px 7px;background:var(--ha-control);border-bottom:2px solid var(--ha-stroke);border-radius:6px;font-size:.8rem}.ha-demo img,.ha-demo svg,.ha-demo video,.ha-demo object{max-width:100%;height:auto;display:block;border-radius:12px}.ha-demo audio{width:100%;max-width:100%;height:42px}.ha-demo iframe{width:100%;height:160px;border:0;border-radius:12px}.ha-demo canvas{width:100%;max-width:240px;height:auto;background:#133547;border-radius:12px}.ha-demo math{font-size:1.5rem}
.ha-demo label{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:.85rem;line-height:1.5}.ha-demo label+label{margin-top:14px}.ha-demo label:has(input:not([type=checkbox]):not([type=radio])){display:grid;gap:8px}.ha-demo label:has(select),.ha-demo label:has(textarea){display:grid;gap:8px}.ha-demo input:not([type=checkbox]):not([type=radio]):not([type=image]),.ha-demo select,.ha-demo textarea{width:100%;max-width:100%;min-width:0;font-size:16px;line-height:1.4;min-height:46px;padding:10px 12px;background:var(--ha-control);color:var(--ha-text);border:1px solid var(--ha-stroke);border-radius:9px}.ha-demo textarea{resize:vertical}.ha-demo input[type=checkbox],.ha-demo input[type=radio]{appearance:auto;width:21px;height:21px;accent-color:var(--ring);flex-shrink:0}.ha-demo input[type=color]{height:50px;max-width:100px}.ha-demo input[type=range]{accent-color:var(--ring);padding:0!important;border:0!important}.ha-demo input[type=image]{max-width:100%;height:auto}.ha-demo input::placeholder,.ha-demo textarea::placeholder{color:var(--ha-subtle);opacity:1}.ha-demo select[multiple]{min-height:115px}.ha-demo input[type=file]{font-size:.8rem!important;padding:8px!important}.ha-demo input[type=file]::file-selector-button{font:inherit;padding:8px;background:var(--ha-control);color:var(--ha-text);border:1px solid var(--ha-stroke);border-radius:6px}.ha-demo input:disabled{opacity:.6}.ha-demo :is(button,input[type=button],input[type=submit],input[type=reset]){min-height:44px;width:auto;border:0;border-radius:10px;padding:11px 16px;background:var(--ha-control);color:var(--ha-text);font-size:.86rem;font-weight:650;line-height:1.4}.ha-demo button.ha-primary{background:#b8ff79;color:#16300c}.ha-demo button.ha-quiet{background:transparent;text-decoration:underline;text-underline-offset:4px}.ha-demo button[aria-pressed=true]{background:#b8ff79;color:#16300c}.ha-demo button:active{transform:translateY(1px)}.ha-demo fieldset{margin:0;padding:12px 0 0;border:0}.ha-demo legend{font-size:.85rem;font-weight:700;padding:0 0 8px}.ha-demo meter,.ha-demo progress{width:100%;height:20px;accent-color:#81e3bd}.ha-demo output{display:block;min-height:1.5em;font-size:.85rem;color:var(--ha-highlight)}.ha-demo details{border:0;padding:0;margin:0}.ha-demo details>summary{cursor:pointer;min-height:44px;padding-block:8px}.ha-demo details[open]>summary{margin-bottom:10px}.ha-demo table{width:100%;min-width:0;font-size:.8rem;border-collapse:collapse}.ha-demo caption{text-align:left;font-weight:700;margin-bottom:10px}.ha-demo th,.ha-demo td{border:0;border-bottom:1px solid var(--ha-stroke);text-align:left;padding:8px}.ha-demo thead{background:var(--ha-control)}.ha-demo .ha-tint{background:var(--ha-control)}.ha-stack{display:grid;gap:8px}.ha-stack>span,.ha-badge{display:inline-block;background:var(--ha-control);padding:6px 10px;border-radius:8px}
.ha-spec{min-width:0;display:grid;gap:14px}.ha-spec p{font-size:.86rem;color:var(--muted)}.ha-spec a{font-size:.8rem;justify-self:start;padding-block:8px}.ha-root pre{margin:0;padding:16px;border-radius:12px;max-width:100%;min-width:0;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;background:var(--bg);color:var(--ink);font-size:.78rem;line-height:1.65}.ha-recipe-mark{display:grid;gap:5px}.ha-recipe-mark>span{font:2rem Consolas,monospace;color:var(--ha-highlight)}.ha-recipe-mark>small{font-size:.75rem}
.ha-subhead{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;margin:64px 0 24px;align-items:end}.ha-subhead h3{font-size:clamp(1.65rem,2.8vw,2.5rem)}.ha-subhead p{font-size:.9rem;color:var(--muted)}.ha-input-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.ha-input-card{background:var(--solid);border-radius:14px;min-width:0;align-self:start}.ha-input-card>summary{display:grid;gap:3px;list-style:none;padding:17px 20px;cursor:pointer;min-height:78px}.ha-input-card>summary code{color:var(--cyan);font-weight:700}.ha-input-card>summary span{font-size:.78rem;color:var(--muted)}.ha-input-demo{color:var(--ha-text);background:var(--ha-panel);margin:0 12px 12px;border-radius:12px;padding:18px}.ha-input-card pre{margin:12px;font-size:.7rem}.ha-state-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.ha-state{min-width:0;padding-block:20px;border-top:1px solid var(--edge)}.ha-kicker{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.ha-state h4{margin:9px 0 20px;font-size:1.05rem}.ha-state>p{font-size:.8rem;color:var(--muted);margin-top:18px}.ha-state .ha-scene{padding:15px}.ha-state .ha-demo{padding:18px}.ha-actions{display:flex;flex-wrap:wrap;gap:8px}.ha-segments label{padding:9px 12px;background:var(--ha-control);border-radius:10px;min-height:44px}.ha-segments label:has(input:checked){background:#b8ff79;color:#16300c}.ha-error{color:var(--ha-error)!important;font-size:.8rem}.ha-demo input[aria-invalid=true]{border-color:var(--ha-error)!important}.ha-demo nav a[aria-current=page]{font-weight:800;text-decoration-thickness:3px}.ha-legacy{margin-top:36px;padding:22px;border-radius:16px;background:var(--solid);font-size:.87rem}.ha-legacy>summary{cursor:pointer;min-height:44px;font-weight:700}.ha-legacy div{display:grid;gap:14px;padding-top:16px}.ha-legacy code{display:inline-block;background:var(--bg);padding:0 4px;margin:2px}.ha-sources{margin-top:24px;font-size:.78rem;line-height:1.9;color:var(--muted)}
.ha-modal,.ha-popover{color:var(--ink);background:var(--solid);border:1px solid var(--edge);border-radius:20px;padding:28px;width:min(440px,calc(100vw - 40px));max-height:calc(100dvh - 40px);overflow:auto;margin:auto;box-shadow:0 28px 80px #0005}.ha-modal::backdrop{background:#071527aa}.ha-modal h4{color:var(--ink);font-size:1.4rem}.ha-modal p,.ha-popover p{color:var(--muted);margin-block:14px}.ha-modal form{display:flex;gap:10px;flex-wrap:wrap}.ha-modal button,.ha-popover button{background:var(--accent);color:var(--accent-ink)}.ha-popover:not(:popover-open){display:none}
@media(hover:hover) and (pointer:fine){.ha-map button:hover{filter:brightness(1.06)}.ha-demo button:hover{box-shadow:0 4px 10px #07152720}.ha-entry>summary:hover,.ha-input-card>summary:hover{background:color-mix(in srgb,var(--solid),var(--wash) 22%);border-radius:14px}}
@media(max-width:1000px){.ha-map{grid-template-columns:repeat(3,minmax(0,1fr))}.ha-state-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.ha-map{grid-template-columns:repeat(2,minmax(0,1fr))}.ha-toolbar{padding:18px;gap:16px}.ha-entry-body{grid-template-columns:1fr;gap:18px;padding:8px 12px 18px}.ha-entry>summary{grid-template-columns:100px minmax(0,1fr);padding:16px 14px;gap:5px 12px}.ha-entry>summary small{grid-column:2;text-align:left}.ha-input-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ha-state-grid{grid-template-columns:1fr}.ha-subhead{grid-template-columns:1fr;gap:14px}.ha-group>summary{gap:12px}.ha-group>summary small{font-size:.72rem}.ha-scene{padding:20px 14px}.ha-demo{padding:20px}.ha-material{gap:8px 14px}}
@media(max-width:380px){.ha-map{grid-template-columns:1fr}.ha-input-grid{grid-template-columns:1fr}.ha-group>summary small{display:none}.ha-entry>summary{grid-template-columns:1fr}.ha-entry>summary small{grid-column:1}.ha-demo{padding:15px}}
:root[data-solid=true] .ha-surface,:root[data-solid=true] .ha-input-demo{background:var(--solid);color:var(--ink);backdrop-filter:none;-webkit-backdrop-filter:none}
:root[data-solid=true] .ha-root{--ha-text:var(--ink);--ha-subtle:var(--muted)}
:root[data-reduce=true] .ha-demo button:active{transform:none}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.ha-surface{background:var(--solid);color:var(--ink);--ha-text:var(--ink);--ha-subtle:var(--muted)}}
@media(prefers-reduced-transparency:reduce){.ha-surface,.ha-input-demo{background:var(--solid);color:var(--ink);backdrop-filter:none;-webkit-backdrop-filter:none;--ha-text:var(--ink);--ha-subtle:var(--muted)}}
@media(prefers-reduced-motion:reduce){.ha-demo button:active{transform:none}.ha-root *{scroll-behavior:auto}}
@media(forced-colors:active){.ha-root{--ha-panel:Canvas;--ha-text:CanvasText;--ha-subtle:CanvasText;--ha-control:Canvas;--ha-highlight:LinkText;--ha-error:CanvasText;--ha-stroke:CanvasText}.ha-map button,.ha-entry,.ha-input-card,.ha-surface,.ha-state,.ha-modal,.ha-popover,.ha-demo button{background:Canvas;color:CanvasText;border:1px solid CanvasText;box-shadow:none!important;backdrop-filter:none;-webkit-backdrop-filter:none}.ha-map button[aria-pressed=true],.ha-demo button[aria-pressed=true]{background:Highlight;color:HighlightText}.ha-scene{background:Canvas}.ha-scene:before,.ha-surface:after{display:none}.ha-root a{color:LinkText}.ha-root pre{background:Canvas;color:CanvasText}.ha-demo button.ha-primary{background:ButtonFace;color:ButtonText}}

/* V4 explorer shell: transparent categories and cards, dense reading wells.
   Group headers are separate surfaces so closed groups never layer two blurs. */
.ha-toolbar,.ha-map button,.ha-group>summary,.ha-entry,.ha-input-card,.ha-state,.ha-legacy{
  background:var(--glass-reflection),var(--glass-fill);border:0;
  box-shadow:var(--glass-shadow);backdrop-filter:var(--glass-filter);-webkit-backdrop-filter:var(--glass-filter);
}
.ha-toolbar{padding:26px;border-radius:25px}
.ha-toolbar input[type=search]{background:var(--glass-dense);border:0;border-radius:13px}
.ha-toolbar input[type=search]::placeholder{color:var(--muted);opacity:1}
.ha-map{gap:10px;margin:20px 0 28px}
.ha-map button{border-radius:17px;min-height:66px;padding:15px 18px;font-size:.83rem}
.ha-map button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);box-shadow:0 10px 28px -14px color-mix(in srgb,var(--accent),transparent 25%)}
.ha-group{border:0;margin:12px 0}
.ha-group>summary{border-radius:21px;padding:22px 24px;min-height:88px}
.ha-group>summary>span{color:var(--cyan);font-size:.75rem}
.ha-group>summary h3{font-size:clamp(1.15rem,1.8vw,1.6rem);letter-spacing:-.035em}
.ha-group[open]>summary{margin-bottom:12px}
.ha-entries{gap:10px;padding-bottom:12px}
.ha-entry{border-radius:20px}
.ha-entry>summary{padding:20px 24px}
.ha-entry>summary>code{font-size:.87rem}.ha-entry>summary>span{font-size:.9rem}
.ha-entry-body{padding:12px 18px 18px;gap:18px}
.ha-spec{padding:20px;border-radius:16px;background:var(--glass-dense)}
.ha-spec pre{background:var(--bg)}
.ha-input-grid{gap:12px}.ha-input-card{border-radius:19px}
.ha-input-card>summary{padding:20px 22px;min-height:86px}
.ha-state{border:0;padding:22px;border-radius:23px}
.ha-state h4{line-height:1.4}.ha-state .ha-scene{border-radius:17px}
.ha-legacy{border-radius:21px;padding:24px}
.ha-modal,.ha-popover{background:var(--glass-reflection),var(--glass-dense);border:0;box-shadow:var(--glass-edge-shadow);backdrop-filter:var(--glass-filter);-webkit-backdrop-filter:var(--glass-filter)}
@media(hover:hover) and (pointer:fine){.ha-entry>summary:hover,.ha-input-card>summary:hover{background:var(--glass-highlight);border-radius:inherit}.ha-map button:hover{filter:none;background-color:var(--glass-highlight)}.ha-map button[aria-pressed=true]:hover{background:var(--accent)}}
@media(max-width:700px){.ha-toolbar{padding:20px}.ha-map button{padding:14px;gap:10px}.ha-group>summary{padding:20px 17px;gap:12px}.ha-entry>summary{padding:18px 16px}.ha-entry-body{padding:8px 12px 14px;gap:12px}.ha-spec{padding:17px}.ha-input-card>summary{padding:17px}.ha-state{padding:20px}.ha-state-grid{gap:14px}.ha-legacy{padding:20px}}
@media(forced-colors:active){.ha-toolbar,.ha-map button,.ha-group>summary,.ha-entry,.ha-input-card,.ha-state,.ha-legacy,.ha-spec,.ha-modal,.ha-popover{background:Canvas;color:CanvasText;border:1px solid CanvasText;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.ha-spec pre{background:Canvas;color:CanvasText}.ha-map button[aria-pressed=true]{background:Highlight;color:HighlightText}.ha-toolbar input[type=search]{background:Canvas;border:1px solid CanvasText}.ha-group>summary>span{color:CanvasText}}
