/* HOSHI visual layer; decisions and persistence remain canonical Consent UI v2. */
.market-observer-consent-banner{position:fixed;inset:auto 16px max(12px,env(safe-area-inset-bottom));z-index:20;box-sizing:border-box;background:#101b2e;color:var(--ink);border:1px solid #6d7d94;border-radius:3px;padding:18px;max-width:620px;max-height:50dvh;overflow:auto;margin:0 auto;font:inherit;font-size:.875rem;line-height:1.65;overflow-wrap:anywhere;box-shadow:0 8px 40px #0005}
.market-observer-consent-banner h2{font-size:1em;line-height:1.5;margin:0 0 10px;font-weight:600;letter-spacing:0}
.market-observer-consent-banner p{margin:0 0 6px}
.market-observer-consent-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.market-observer-consent-button{appearance:none;box-sizing:border-box;border:1px solid #8898af;border-radius:3px;padding:10px 8px;font:inherit;font-weight:500;line-height:1.5;min-height:44px;min-width:0;background:#101b2e;color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-align:center;text-decoration:none}
.market-observer-consent-button[data-action=details],.market-observer-consent-button[data-action=close]{background:transparent;border-color:transparent;text-decoration:underline;text-underline-offset:3px}
.market-observer-consent-button:hover{text-decoration:underline;text-underline-offset:3px}
.market-observer-consent-button:focus-visible,.market-observer-consent-change:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.market-observer-consent-button:disabled{opacity:.6;cursor:not-allowed}
.market-observer-consent-change{display:inline-flex;align-items:center;position:static;min-height:44px;border:0;background:none;box-shadow:none;border-radius:0;padding:0;font:inherit;color:inherit;text-decoration:underline;text-underline-offset:.25em;cursor:pointer}
@media(max-width:480px){.market-observer-consent-banner{inset:auto 8px max(8px,env(safe-area-inset-bottom));padding:14px}}
@media(prefers-reduced-motion:reduce){.market-observer-consent-banner{scroll-behavior:auto}.market-observer-consent-button,.market-observer-consent-change{transition:none;animation:none}}
