/* Isolated navigation layer; no form controls, values or generator layout rules. */
.generator-floating-nav { position: fixed; z-index: 90; right: max(12px, env(safe-area-inset-right)); bottom: calc(12px + env(safe-area-inset-bottom)); width: 214px; max-width: calc(100vw - 24px); color: #252b29; background: #fffdf8; border: 1px solid #cdc7bc; border-radius: 10px; box-shadow: 0 6px 24px #252b291a; padding: 12px; font: 13px/1.5 var(--aijou-font-sans, sans-serif); box-sizing: border-box; }
.generator-floating-nav[hidden], .generator-floating-nav [hidden] { display: none !important; }
.generator-floating-nav .gfn-eyebrow { margin: 0 0 8px; color: #97604a; font-size: 10px; letter-spacing: .14em; }
.generator-floating-nav .gfn-location { margin: 0 0 10px; display: grid; gap: 3px; overflow-wrap: anywhere; }
.generator-floating-nav .gfn-location span { font-size: 10px; color: #66645d; }
.generator-floating-nav .gfn-location strong { font-weight: 600; }
.generator-floating-nav .gfn-controls { display: grid; grid-template-columns: 1fr 44px; gap: 6px; }
.generator-floating-nav button { position: static; min-height: 44px; margin: 0; padding: 7px 10px; border: 1px solid #b7b3a9; border-radius: 5px; background: #fffdf8; color: #252b29; font: inherit; cursor: pointer; }
.generator-floating-nav [data-gfn-toggle] { background: #293c36; border-color: #293c36; color: #fff; }
.generator-floating-nav [data-gfn-toggle]::after { content: ' ＋'; }
.generator-floating-nav [data-gfn-toggle][aria-expanded="true"]::after { content: ' −'; }
.generator-floating-nav [data-gfn-result] { grid-column: 1 / -1; }
.generator-floating-nav ol { list-style: none; padding: 8px 0 0; margin: 8px 0 0; border-top: 1px solid #ddd8cc; max-height: min(52vh, 510px); overflow-y: auto; overscroll-behavior: contain; }
.generator-floating-nav li { list-style: none; margin: 0; padding: 0; }
.generator-floating-nav a { display: block; padding: 10px 9px; min-height: 44px; box-sizing: border-box; border-left: 2px solid transparent; color: inherit; text-decoration: none; overflow-wrap: anywhere; }
.generator-floating-nav a[aria-current="location"] { background: #f1e9df; border-left-color: #9e5237; color: #713a28; font-weight: 600; }
.generator-floating-nav .gfn-nested a { padding-left: 20px; font-size: 12px; }
.generator-floating-nav a:hover, .generator-floating-nav button:hover { filter: brightness(.96); }
.generator-floating-nav :is(a, button):focus-visible { outline: 3px solid #a65336; outline-offset: 2px; }
.generator-floating-nav .gfn-status { margin: 0; }
.gfn-scroll-target { scroll-margin-top: 100px; scroll-margin-bottom: 120px; }
.has-generator-floating-nav:has(.aijou-mobile-nav--open) .generator-floating-nav { display: none; }
@media (min-width: 1200px) {
  .has-generator-floating-nav #main .aijou-generator { padding-right: 244px; }
  .has-generator-floating-nav #main .aijou-generator > .container { width: 100%; }
  .generator-floating-nav { top: 112px; bottom: auto; max-height: calc(100dvh - 132px); overflow-y: auto; }
}
@media (max-width: 1199px) {
  .has-generator-floating-nav #main { padding-bottom: calc(108px + env(safe-area-inset-bottom)); }
  .generator-floating-nav { width: 228px; padding: 8px; }
  .generator-floating-nav .gfn-eyebrow { display: none; }
  .generator-floating-nav .gfn-location { display: none; }
  .generator-floating-nav.is-open .gfn-location { display: grid; padding: 4px; }
  .generator-floating-nav .gfn-controls { grid-template-columns: 1fr 44px; }
  .generator-floating-nav [data-gfn-result] { min-height: 36px; }
  .generator-floating-nav ol { max-height: min(48dvh, 400px); }
}
@media (prefers-reduced-motion: reduce) { .gfn-scroll-target { scroll-behavior: auto; } }
