button.opt,button.zone,button.horizon-opt,button.rel-item,button.eco-opt,button.emotion-tag {
  font-family:inherit;color:var(--text);text-align:left;min-height:44px;
}
button.opt,button.rel-item{width:100%}
button.zone,button.horizon-opt,button.eco-opt{text-align:center}
.zone-icon,.zone-name,.zone-desc,.horizon-year,.horizon-label,.proc-opt-title,.proc-opt-desc,
label.q-label,label.eco-q,label.dilts-name,label.why-step{display:block}
.accessible-fieldset{border:0;padding:0;margin:0;min-width:0}
.proc-opt{display:flex;gap:12px;align-items:flex-start;min-height:44px}
.proc-opt input{accent-color:var(--gold);flex:0 0 20px;width:20px;height:20px;margin:3px 0}
.proc-opt:focus-within{outline:3px solid var(--gold);outline-offset:3px}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[role="button"]:focus-visible {
  outline:3px solid var(--gold,var(--sf-night-edge-7f601b,#7f601b)) !important;outline-offset:3px;
}
.res-btn,.emotion-tag,.pill,.stage-back,.gi-goal-del{min-height:44px;min-width:44px}
.res-btns{flex-wrap:wrap}
.res-choice{position:relative;display:inline-flex;cursor:pointer}
.res-choice input{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.res-choice .res-btn{display:flex;align-items:center;justify-content:center;box-sizing:border-box;pointer-events:none;transition:none}
.res-choice input:checked + .res-btn{color:var(--on-accent)}
.res-choice input[value="ok"]:checked + .res-btn{background:var(--teal);border-color:var(--teal)}
.res-choice input[value="par"]:checked + .res-btn{background:var(--amber);border-color:var(--amber)}
.res-choice input[value="no"]:checked + .res-btn{background:var(--red);border-color:var(--red)}
.res-choice:focus-within{outline:3px solid var(--gold);outline-offset:3px;border-radius:20px}
dialog[id$="overlay"]{border:0;padding:0;margin:0;width:100%;height:100%;max-width:none;max-height:none;color:var(--text)}
dialog[id$="overlay"]::backdrop{background:var(--sf-night-surface-00000073,rgba(0,0,0,.45))}
dialog[id$="overlay"]>div{max-height:90dvh;overflow:auto}
dialog:not([open]){display:none !important}
.session-save-status{position:relative;z-index:1;max-width:510px;margin:12px auto;padding:10px 14px;border:1px solid var(--sf-night-edge-aa8b58,#aa8b58);border-radius:12px;background:var(--sf-night-surface-fffaf2,#fffaf2);color:var(--sf-night-ink-362b1e,#362b1e);font:14px/1.45 sans-serif}
.session-save-status[hidden]{display:none}
.session-save-status button{display:block;margin-top:6px;min-height:44px;padding:8px 12px;border:1px solid currentColor;border-radius:8px;background:transparent;color:inherit}
.session-save-status button[hidden],#route-save-retry[hidden]{display:none}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Immediate receipt feedback; status text remains available without motion. */
button:not(:disabled):active,a[href]:active{filter:brightness(.88)}
button:focus-visible,a[href]:focus-visible,select:focus-visible{outline:2px solid currentColor;outline-offset:3px}
button[aria-busy="true"]{cursor:progress;opacity:1}
button[aria-busy="true"]::after{content:"";display:inline-block;width:.8em;height:.8em;margin-inline-start:.5em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-.1em;animation:action-spin .8s linear infinite}
@keyframes action-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){button[aria-busy="true"]::after,.loading{animation:none!important}}
