/* UNIH UI v16 canonical integration — staging candidate.
   Source of truth: approved v14 visual/copy reference + UI rules v0.9 + Design Tokens v1.1.
   This file must remain a narrow overlay over the hardened App/Search CSS. */

html{overflow-x:clip}
body{overflow-x:clip;font-family:var(--unikh-font-primary);text-rendering:auto;font-synthesis:none}
:root{--ui-ease:var(--unikh-ease-standard,cubic-bezier(.2,0,0,1))}

/* Canonical header shell. */
.site-head{width:min(1180px,100%);height:auto;min-height:72px;margin:0 auto;padding:8px 24px;display:grid;grid-template-columns:112px minmax(0,1fr) auto;gap:16px;align-items:center}
.logo-link{width:112px;min-width:0}.logo-link img{display:block;width:100%;height:auto}
.primary-nav{min-width:0;margin:0;display:flex;align-items:center;justify-content:center;gap:2px;flex-wrap:wrap}
.primary-nav>a,.you-menu>summary{min-height:40px;padding:7px 9px;display:flex;align-items:center;justify-content:center;font-size:11px;line-height:1.15;font-weight:700;letter-spacing:.055em;text-align:center;text-decoration:none;white-space:normal;border-radius:8px}
.head-context{display:flex;align-items:stretch;justify-content:flex-end;gap:7px;min-width:0}
.context-button{min-height:44px;min-width:94px;max-width:150px;border:1px solid var(--unikh-color-divider);border-radius:12px;background:var(--unikh-color-surface);padding:6px 9px;text-align:left;display:grid;align-content:center;gap:3px}
.context-button small{font-size:9px;line-height:1;text-transform:uppercase;letter-spacing:.075em;color:var(--unikh-color-text-secondary);font-weight:700}.context-button strong{font-size:12px;line-height:1.15;font-weight:600;overflow-wrap:anywhere}
.context-button:hover{border-color:#b9b8b2}
.public-head{border-bottom:1px solid var(--unikh-color-divider)}

/* Context popovers. */
.context-pop{position:fixed;inset:0;z-index:100;display:none;background:rgba(15,15,15,.18);align-items:flex-start;justify-content:flex-end;padding:78px 24px}.context-pop.open{display:flex}.context-card{width:min(390px,100%);background:var(--unikh-color-surface);border:1px solid var(--unikh-color-divider);border-radius:16px;padding:18px;box-shadow:0 18px 55px rgba(15,15,15,.12)}.context-card h3{margin:0 0 4px;font-size:18px}.context-card>p{margin:0 0 16px;color:var(--unikh-color-text-secondary);font-size:13px;line-height:1.45}.choice-list{display:grid;gap:8px}.choice{min-height:52px;border:1px solid var(--unikh-color-divider);border-radius:12px;background:#fff;padding:9px 11px;display:flex;justify-content:space-between;align-items:center;text-align:left}.choice.active{border-color:var(--unikh-color-text-primary);box-shadow:inset 0 -3px 0 var(--unikh-color-accent)}.choice small{display:block;color:var(--unikh-color-text-secondary);font-size:11px;margin-top:2px}.choice .tick{width:20px;height:20px;border-radius:50%;background:var(--unikh-color-accent);display:none;place-items:center;font-weight:700}.choice.active .tick{display:grid}

/* Search surface: preserve hardened zoom-safe rhythm instead of reintroducing v14's viewport-height hero. */
body.app-surface,body.public-surface{padding-left:0!important}
.release-scope{padding-left:max(24px,calc((100vw - 1180px)/2))!important;padding-right:max(24px,calc((100vw - 1180px)/2))!important}
.hero{width:min(900px,100%);max-width:900px;min-height:0!important;margin:0 auto;padding:clamp(56px,8vh,96px) 24px clamp(64px,9vh,96px)!important;justify-content:flex-start!important}
.hero-copy{max-width:760px}.hero h1{font-family:var(--unikh-font-accent);font-style:italic;font-weight:500;font-size:clamp(40px,6.3vw,72px);line-height:.98;letter-spacing:-.035em}.hero-note{max-width:690px}
.mode-switch{width:min(1180px,calc(100% - 48px));margin:22px auto 0;padding:4px;display:flex;gap:4px;border:1px solid var(--unikh-color-divider);border-radius:14px;background:rgba(255,255,255,.42)}.mode-switch button{min-height:40px;height:auto;min-width:104px;border:0;border-radius:10px;background:transparent;padding:7px 16px;color:var(--unikh-color-text-secondary);font-weight:600}.mode-switch button.active{background:var(--unikh-color-surface);color:var(--unikh-color-text-primary);box-shadow:inset 0 -3px 0 var(--unikh-color-accent)}
.search-stage{width:min(1180px,100%);padding:42px 24px 88px!important}.catalog-stage{width:min(1180px,100%);padding-left:24px;padding-right:24px}.selection-setup,.selection-workspace,.stage-head,.track-head,.result-meta,.catalog-toolbar,.catalog-layout{min-width:0}.selection-workspace{margin-top:24px;padding-top:24px}

/* History remains available, but never becomes an unreviewed permanent rail. */
#historyDrawer{left:0!important;right:0!important;width:auto!important;pointer-events:none!important;background:transparent!important;border-right:0!important;z-index:90!important}
#historyDrawer.is-open{pointer-events:auto!important}
#historyDrawer .drawer-backdrop{display:block!important}
#historyDrawer .drawer-panel{left:0!important;right:auto!important;width:min(420px,92vw)!important;max-width:none!important;padding:20px!important;background:var(--unikh-color-surface)!important;transform:translateX(-100%)!important;box-shadow:14px 0 42px rgba(15,15,15,.12)!important}
#historyDrawer.is-open .drawer-panel{transform:none!important}
#historyDrawer .history-close{display:grid!important}
#historyButton{display:flex!important;width:100%!important}
.toast{left:50%!important}

/* Suggestions are actions, not mysterious text setters. */
.wander-actions{display:flex!important;flex-wrap:wrap!important;overflow:visible!important;margin-right:0!important;padding-right:0!important;gap:8px}
.wander-actions button{flex:0 1 auto!important;max-width:100%;white-space:normal!important}
.examples button,.wander-actions button[data-query]{transition:transform var(--unikh-motion-fast) var(--ui-ease),background var(--unikh-motion-fast),border-color var(--unikh-motion-fast),color var(--unikh-motion-fast)}
.examples button:hover,.wander-actions button[data-query]:hover{transform:translateY(-1px)}.examples button:active,.wander-actions button[data-query]:active,.examples button.is-launching,.wander-actions button.is-launching{transform:scale(.985);box-shadow:inset 0 -3px 0 var(--unikh-color-accent)}

/* Recipient model: the persistent choice is only self vs another person.
   Gift intent stays in search state and is inferred from the query; it is not a third competing button. */
#shoppingForBar [data-shopping-for="gift"]{display:none!important}

/* Clarification is the next action in the flow and must be impossible to miss. */
#clarification.ui-priority-clarification{max-width:860px;margin:0 0 22px;padding:18px 20px 20px;border:1px solid var(--unikh-color-divider);border-left:4px solid var(--unikh-color-accent);border-radius:14px;background:var(--unikh-color-surface);scroll-margin-top:18px}
#clarification .clarification-kicker{margin:0 0 7px;font-size:10px;line-height:1.2;font-weight:700;letter-spacing:.085em;text-transform:uppercase;color:var(--unikh-color-text-secondary)}
#clarification.ui-priority-clarification>p#clarificationText{margin:0 0 7px;font-size:clamp(21px,2.6vw,30px);line-height:1.18;font-weight:650;letter-spacing:-.018em}
#clarification .clarification-hint{margin:0 0 14px;font-size:13px;line-height:1.45;color:var(--unikh-color-text-secondary)}
#clarification .clarification-options{display:flex;gap:8px;flex-wrap:wrap}
#clarification .clarification-options button{min-height:44px;padding:9px 14px;border:1px solid var(--unikh-color-text-primary);border-radius:999px;background:var(--unikh-color-surface);color:var(--unikh-color-text-primary);font-size:14px;font-weight:600;transition:background var(--unikh-motion-fast),color var(--unikh-motion-fast),transform var(--unikh-motion-fast) var(--ui-ease)}
#clarification .clarification-options button::after{content:' →';font-weight:700}#clarification .clarification-options button:hover,#clarification .clarification-options button:focus-visible{background:var(--unikh-color-accent);color:var(--unikh-color-accent-text)}#clarification .clarification-options button:active,#clarification .clarification-options button.is-selected{transform:scale(.985);background:var(--unikh-color-text-primary);color:#fff}

/* Public editorial layer. One accent heading per page; functional/legal/store surfaces stay Manrope. */
.public-page .public-hero h1{font-family:var(--unikh-font-accent);font-style:italic;font-weight:500;letter-spacing:-.035em;overflow-wrap:normal;word-break:normal}
.legal-page h1,.legal-article h1,.legal-main h1,.store-hero h1,.store-page h1,.product-page h1,.not-found h1{font-family:var(--unikh-font-primary);font-style:normal;font-weight:700}
.public-card{display:block;min-width:0;background:var(--unikh-color-surface);border:1px solid var(--unikh-color-divider);border-radius:16px;padding:22px;color:inherit;text-decoration:none}.public-card:hover,.public-card:focus-visible{border-color:#b9b8b2}.public-card .eyebrow{display:block;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--unikh-color-text-secondary);font-weight:700;margin-bottom:18px}.public-card h2,.public-card h3{margin:0 0 10px;line-height:1.08;letter-spacing:-.02em}.public-card p{margin:0;color:var(--unikh-color-text-secondary);line-height:1.55}
.global-surface .site-head{display:flex}.global-entry .public-hero h1{font-family:var(--unikh-font-primary);font-style:normal;font-weight:700}

/* Store fallback pages are real public surfaces too. */
.store-page{width:min(1180px,100%);padding-left:24px;padding-right:24px}.store-filter>*{min-width:0}

/* Adaptive partner comparison: stacked, labelled rows on compact screens. */
@media(max-width:639px){
  .partner-table-wrap{overflow:visible!important;margin-right:0!important;padding-right:0!important;border-top:0!important}
  .partner-table{display:block!important;width:100%!important;min-width:0!important}.partner-table thead{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.partner-table tbody,.partner-table tr,.partner-table th,.partner-table td{display:block!important;width:100%!important;min-width:0!important}.partner-table tbody tr{padding:16px 0;border-top:1px solid var(--unikh-color-divider)}.partner-table tbody tr:first-child{border-top:1px solid var(--unikh-color-text-primary)}.partner-table tbody th{padding:0 0 12px!important;border:0!important;font-size:15px!important}.partner-table tbody td{padding:9px 0 9px 108px!important;border:0!important;position:relative;font-size:13px!important}.partner-table tbody td::before{content:attr(data-label);position:absolute;left:0;top:9px;width:96px;font-size:9px;line-height:1.25;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--unikh-color-text-secondary)}
}

/* Compact search is one control, not a textarea row plus a detached action row. */
.search-control,.refine-control{min-width:0}
.search-buttons{min-width:0}
.search-control textarea,.refine-control textarea{width:auto;max-width:100%}
.criterion{transition:border-color var(--unikh-motion-fast),box-shadow var(--unikh-motion-fast),background var(--unikh-motion-fast),transform var(--unikh-motion-fast) var(--ui-ease)}
.criterion.changed{animation:unih-v16-state var(--unikh-motion-base) var(--ui-ease)}
.alternative,.catalog-card,.store-card,.geo-card{min-width:0}
.results:not(.is-updating) .alternative,.catalog-grid .catalog-card,.store-grid .store-card,.geo-results .geo-card{animation:unih-v16-rise var(--unikh-motion-base) var(--ui-ease) backwards}
.results:not(.is-updating) .alternative:nth-child(2),.catalog-grid .catalog-card:nth-child(2),.store-grid .store-card:nth-child(2){animation-delay:30ms}
.results:not(.is-updating) .alternative:nth-child(3),.catalog-grid .catalog-card:nth-child(3),.store-grid .store-card:nth-child(3){animation-delay:60ms}

/* Medium widths are explicitly recomposed instead of squeezed. */
@media(min-width:640px) and (max-width:1023px){
  .site-head{grid-template-columns:100px minmax(0,1fr);gap:8px 16px}.logo-link{grid-column:1;grid-row:1;width:100px}.head-context{grid-column:2;grid-row:1}.primary-nav{grid-column:1/-1;grid-row:2;justify-content:flex-start;border-top:1px solid var(--unikh-color-divider);padding-top:6px}
  .stage-head,.track-head,.result-meta{align-items:flex-start;flex-direction:column;gap:10px}.lead-result{grid-template-columns:1fr;gap:22px}.catalog-layout{grid-template-columns:1fr}.catalog-filters{position:static}.legal-head .legal-back{grid-column:1/-1;grid-row:2;justify-self:start}
}
@media(max-width:639px){
  .site-head{grid-template-columns:92px minmax(0,1fr);min-height:64px;padding:8px 16px;gap:7px 10px}.logo-link{grid-column:1;grid-row:1;width:92px}.head-context{grid-column:2;grid-row:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.context-button{min-width:0;width:100%;padding:5px 7px}.primary-nav{grid-column:1/-1;grid-row:2;justify-content:space-between;border-top:1px solid var(--unikh-color-divider);padding-top:6px;gap:0}.primary-nav>a,.you-menu>summary{min-height:34px;padding:4px 6px;font-size:9px;letter-spacing:.035em}.context-pop{padding:118px 16px 16px}
  .mode-switch{width:calc(100% - 32px);margin-top:16px}.mode-switch button{flex:1;min-width:0}.hero{padding:46px 16px 54px!important}.hero h1{font-size:clamp(40px,12vw,52px)}.search-stage,.catalog-stage{padding-left:16px!important;padding-right:16px!important}.selection-setup{padding:18px 16px}.shopping-for{display:block}.shopping-for-options{margin-top:8px;width:100%}.refine-control{max-width:calc(100vw - 24px)}
  .search-control{flex-wrap:nowrap!important;align-items:flex-end!important;gap:6px!important;padding:7px!important}.search-control textarea{flex:1 1 auto!important;flex-basis:auto!important;min-width:0!important;min-height:48px!important;padding:11px 7px!important;font-size:16px!important}.search-buttons{flex:0 0 auto!important;gap:6px!important;align-items:center}.search-control .round-action{width:44px!important;height:44px!important;flex:0 0 44px!important}.search-submit{width:auto!important;min-width:72px!important;min-height:44px!important;height:44px!important;padding:0 10px!important;gap:5px!important;font-size:14px!important}.search-submit span{display:inline!important}
  .wander-actions{width:100%;min-width:0}.wander-actions button{font-size:13px;padding:7px 10px}.examples{min-width:0}.examples button{max-width:100%;white-space:normal}
  .refine-control{flex-wrap:nowrap!important;align-items:flex-end!important;gap:6px!important}.refine-control textarea{flex:1 1 auto!important;flex-basis:auto!important;min-width:0!important}.refine-submit{flex:0 0 auto!important}
  #clarification.ui-priority-clarification{padding:16px;margin-bottom:16px}#clarification .clarification-options{display:grid;grid-template-columns:1fr}#clarification .clarification-options button{width:100%;text-align:left;border-radius:12px}
  .public-page{width:calc(100% - 32px)}.public-hero h1{font-size:clamp(40px,12vw,52px)}.store-page{padding-left:16px;padding-right:16px}.store-grid{grid-template-columns:1fr!important}.catalog-grid{grid-template-columns:1fr!important}.legal-head .legal-back{grid-column:1/-1;grid-row:2;justify-self:start}.release-scope{padding-left:16px!important;padding-right:16px!important}.site-footer{padding-left:16px;padding-right:16px}
}

/* Motion = state explanation, exactly on the canonical 120/180/220 ms scale. */
@keyframes unih-v16-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes unih-v16-pop{from{opacity:0;transform:translateY(5px) scale(.99)}to{opacity:1;transform:none}}
@keyframes unih-v16-state{0%{transform:translateY(1px)}55%{transform:translateY(-1px)}100%{transform:none}}
.mode-switch{animation:unih-v16-rise var(--unikh-motion-base) var(--ui-ease) backwards}.hero-copy{animation:unih-v16-rise var(--unikh-motion-slow) var(--ui-ease) backwards}.search-stage:not(.is-hidden)>.selection-setup{animation:unih-v16-rise var(--unikh-motion-base) var(--ui-ease) backwards}.search-stage:not(.is-hidden)>.selection-workspace{animation:unih-v16-rise var(--unikh-motion-slow) var(--ui-ease) backwards}#clarification.ui-priority-clarification:not(.is-hidden){animation:unih-v16-pop var(--unikh-motion-base) var(--ui-ease) backwards}#results:not(.is-hidden) .lead-result{animation:unih-v16-rise var(--unikh-motion-base) var(--ui-ease) backwards}.context-pop.open .context-card,.problem-modal:not(.is-hidden) .problem-card{animation:unih-v16-pop var(--unikh-motion-base) var(--ui-ease) backwards}.public-page .public-hero{animation:unih-v16-rise var(--unikh-motion-slow) var(--ui-ease) backwards}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.mode-switch,.hero-copy,.search-stage:not(.is-hidden)>.selection-setup,.search-stage:not(.is-hidden)>.selection-workspace,#clarification.ui-priority-clarification:not(.is-hidden),#results:not(.is-hidden) .lead-result,.results:not(.is-updating) .alternative,.catalog-grid .catalog-card,.store-grid .store-card,.geo-results .geo-card,.criterion.changed,.context-pop.open .context-card,.problem-modal:not(.is-hidden) .problem-card,.public-page .public-hero{animation:none!important;opacity:1!important;transform:none!important}.examples button,.wander-actions button[data-query],#clarification .clarification-options button,.criterion{transition:none!important}}

/* v14 scalable city filter restored against the real Catalog Location facet. */
.catalog-city-field{display:grid;gap:6px}.catalog-city-field>span{font-size:11px;font-weight:650;color:var(--unikh-color-text-secondary)}
.catalog-city-button{width:100%;min-height:44px;border:1px solid var(--unikh-color-divider);border-radius:12px;background:var(--unikh-color-surface);padding:0 10px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;font-weight:500}
.catalog-city-button:hover{border-color:#b9b8b2}.catalog-city-button .city-chevron{font-size:16px;color:var(--unikh-color-text-secondary);transition:transform var(--unikh-motion-base) var(--ui-ease)}.catalog-city-button[aria-expanded="true"] .city-chevron{transform:rotate(180deg)}
.city-selected-chips{display:flex;gap:5px;flex-wrap:wrap}.city-selected-chips:empty{display:none}.city-selected-chip{max-width:100%;font-size:10px;line-height:1.2;border:1px solid var(--unikh-color-divider);border-radius:999px;padding:4px 7px;background:transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.ui-modal-open{overflow:hidden}.city-picker{position:fixed;inset:0;z-index:130;display:none;background:rgba(15,15,15,.22);align-items:center;justify-content:center;padding:24px}.city-picker.open{display:flex;animation:unih-v16-fade var(--unikh-motion-fast) ease both}
.city-picker-card{width:min(560px,100%);max-height:min(720px,calc(100svh - 48px));background:var(--unikh-color-surface);border:1px solid var(--unikh-color-divider);border-radius:18px;box-shadow:0 22px 70px rgba(15,15,15,.16);display:flex;flex-direction:column;overflow:hidden;animation:unih-v16-modal var(--unikh-motion-slow) var(--ui-ease) both}
.city-picker-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px 20px 12px}.city-picker-head h3{font-family:var(--unikh-font-primary);font-size:24px;line-height:1.1;margin:0 0 4px}.city-picker-head p{font-size:12px;line-height:1.4;color:var(--unikh-color-text-secondary);margin:0}.city-picker-close{width:44px;height:44px;flex:0 0 auto;border:1px solid var(--unikh-color-divider);border-radius:50%;background:transparent;font-size:20px;line-height:1}
.city-picker-search{padding:0 20px 12px}.city-picker-search input{width:100%;height:46px;border:1px solid var(--unikh-color-divider);border-radius:12px;background:var(--unikh-color-background);padding:0 12px;outline:0}.city-picker-search input:focus-visible{border-color:var(--unikh-color-text-primary);box-shadow:0 0 0 3px rgba(216,255,47,.18)}
.city-quick{padding:0 20px 12px}.city-quick-label{display:block;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--unikh-color-text-secondary);margin-bottom:7px}.city-quick-list{display:flex;gap:6px;flex-wrap:wrap}.city-quick-list button{min-height:36px;border:1px solid var(--unikh-color-divider);border-radius:999px;background:transparent;padding:5px 9px;font-size:12px}.city-quick-list button.active{border-color:var(--unikh-color-text-primary);box-shadow:inset 0 -3px 0 var(--unikh-color-accent)}
.city-picker-results{min-height:180px;overflow:auto;border-top:1px solid var(--unikh-color-divider);border-bottom:1px solid var(--unikh-color-divider);padding:8px 12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:2px}.city-option{min-height:48px;border:0;border-radius:9px;background:transparent;padding:7px 9px;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:10px}.city-option:hover{background:var(--unikh-color-background)}.city-option strong{display:block;font-size:13px;font-weight:600}.city-option small{display:block;margin-top:2px;font-size:10px;color:var(--unikh-color-text-secondary)}.city-option .city-tick{width:20px;height:20px;border:1px solid var(--unikh-color-divider);border-radius:6px;display:grid;place-items:center;font-size:12px;color:transparent;flex:0 0 auto}.city-option.active .city-tick{background:var(--unikh-color-accent);border-color:var(--unikh-color-accent);color:var(--unikh-color-accent-text)}.city-empty{grid-column:1/-1;padding:24px 10px;color:var(--unikh-color-text-secondary);text-align:center}
.city-picker-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px 18px}.city-picker-foot small{color:var(--unikh-color-text-secondary)}.city-picker-actions{display:flex;gap:8px}.city-picker-clear,.city-picker-apply{min-height:44px}.city-picker-clear{border:0;background:transparent;color:var(--unikh-color-text-secondary);text-decoration:underline;text-underline-offset:3px}.city-picker-apply{border:0;border-radius:12px;background:var(--unikh-color-text-primary);color:#fff;padding:0 14px;font-weight:600}
@keyframes unih-v16-fade{from{opacity:0}to{opacity:1}}@keyframes unih-v16-modal{from{opacity:0;transform:translateY(-8px) scale(.99)}to{opacity:1;transform:none}}
@media(max-width:639px){.city-picker{align-items:flex-end;padding:0}.city-picker-card{width:100%;max-height:88svh;border-radius:20px 20px 0 0;border-bottom:0;animation:unih-v16-sheet var(--unikh-motion-slow) var(--ui-ease) both}.city-picker-results{grid-template-columns:1fr}.city-picker-head{padding:18px 16px 10px}.city-picker-search,.city-quick{padding-left:16px;padding-right:16px}.city-picker-foot{padding:12px 16px max(16px,env(safe-area-inset-bottom));position:sticky;bottom:0;background:var(--unikh-color-surface)}@keyframes unih-v16-sheet{from{opacity:.7;transform:translateY(24px)}to{opacity:1;transform:none}}}
@media(prefers-reduced-motion:reduce){.city-picker.open,.city-picker-card{animation:none!important}.catalog-city-button .city-chevron{transition:none!important}}
