/* Scoped, mobile-first. The native dialog handles focus and makes the page behind it inert. */
.pms-search { --pms-ink:#293129; --pms-muted:#687168; --pms-paper:#fff; --pms-line:#e5e3dc; --pms-primary:#2b3828; --pms-accent:#ba965c; font-family:inherit; color:var(--pms-ink); width:100%; }
.pms-search { accent-color:var(--pms-primary); color-scheme:light; }
.pms-search ::selection { background:#e8dac0; color:var(--pms-ink); }
.pms-search *, .pms-search *::before, .pms-search *::after { box-sizing:border-box; }
.pms-search button, .pms-search input, .pms-search a { font:inherit; letter-spacing:normal; text-transform:none; }
.pms-search button { margin:0; min-height:44px; border:0; border-radius:0; box-shadow:none; cursor:pointer; background:transparent; color:inherit; padding:10px; line-height:1.2; }
.pms-search button:hover { box-shadow:none; background:#eeeee7; }
.pms-search :focus-visible { outline:2px solid var(--pms-accent); outline-offset:3px; }
.pms-search svg { flex:none; display:block; }

.pms-search [hidden] { display:none!important; }
.pms-launchbar { display:flex; align-items:center; border:1px solid var(--pms-line); background:#fff; border-radius:8px; padding:3px; min-height:54px; box-shadow:0 3px 15px #19241f06; transition:border-color .16s,box-shadow .16s; }
.pms-search .pms-launch { display:flex; align-items:center; gap:10px; flex:1; min-width:0; text-align:left; padding:10px 12px; border-radius:9px; }
.pms-launch span { white-space:nowrap; text-overflow:ellipsis; overflow:hidden; font-size:14px; font-weight:400; color:var(--pms-muted); }
.pms-launchbar:focus-within { border-color:var(--pms-accent); box-shadow:0 0 0 2px #ba965c1a; }
.pms-search .pms-shortcut { position:relative; flex:0 0 44px; display:grid; place-items:center; border-radius:10px; opacity:.52; transition:background .15s,color .15s,opacity .15s,transform .15s; }
.pms-search .pms-shortcut[aria-pressed=true] { background:#edf0e9; color:var(--pms-primary); opacity:1; }
.pms-search .pms-shortcut+.pms-shortcut { margin-left:3px; }
.pms-toggle-dot { position:absolute; right:6px; top:6px; width:4px; height:4px; border-radius:50%; background:currentColor; opacity:0; transform:scale(.4); transition:opacity .15s,transform .15s; }
[aria-pressed=true] .pms-toggle-dot { opacity:1; transform:scale(1); }
.pms-dialog { color:var(--pms-ink); background:var(--pms-paper); border:1px solid var(--pms-line); border-radius:10px; padding:12px; width:calc(100% - 16px); max-width:100%; height:fit-content; inset:0 0 auto; max-height:calc(100dvh - 24px); margin:12px auto auto; overflow:auto; overscroll-behavior:contain; font:inherit; box-shadow:0 16px 60px #29312926; }
.pms-dialog[open] { animation:pms-arrive .2s cubic-bezier(.2,.8,.2,1) both; }
.pms-dialog::backdrop { background:rgba(32,38,32,.38); backdrop-filter:blur(3px); animation:pms-fade .18s ease-out both; }
.pms-dialog button:hover { background:#f1f0e9; }
.pms-dialog button:active, .pms-shortcut:active { transform:scale(.96); }
.pms-dialog button, .pms-preview-link { transition:background .14s,color .14s,transform .14s,box-shadow .14s; }
.pms-search .pms-close { position:absolute; z-index:2; top:16px; right:12px; display:grid; place-items:center; border-radius:6px; width:44px; color:var(--pms-muted); }
.pms-form { margin:0; }
.pms-field { position:relative; display:flex; align-items:center; gap:8px; margin-right:50px; padding:3px 3px 3px 12px; background:#fff; border:1px solid #b9bcb3; border-radius:6px; transition:box-shadow .18s,border-color .18s; }
.pms-field:focus-within { border-color:var(--pms-accent); box-shadow:0 0 0 2px #ba965c1a; }
.pms-field::after { content:""; position:absolute; left:14px; right:14px; bottom:-1px; height:2px; border-radius:3px; background:linear-gradient(90deg,transparent,var(--pms-accent),transparent); opacity:0; transform:scaleX(.1); pointer-events:none; }
.pms-loading .pms-field::after { opacity:1; animation:pms-scan 1s ease-in-out infinite; }
.pms-field>svg { color:var(--pms-primary); }
.pms-search .pms-field input::placeholder { color:#767b72; opacity:1; }
.pms-search .pms-field input { appearance:none; width:100%; min-width:0; border:0; box-shadow:none; margin:0; padding:10px 0; height:44px; color:var(--pms-ink); caret-color:var(--pms-primary); background:transparent; font-size:16px; line-height:24px; outline:none; }
.pms-search .pms-submit { display:grid; place-items:center; background:var(--pms-accent); color:var(--pms-ink); border-radius:4px; width:44px; flex:none; }
.pms-search .pms-submit:hover { background:#a6864f; }
.pms-search .pms-submit:disabled { opacity:.28; cursor:default; }
.pms-modes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; margin:8px 0 0; }
.pms-search .pms-modes button { display:flex; justify-content:center; align-items:center; gap:5px; padding:10px 7px; border-radius:5px; font-size:12px; font-weight:500; border:1px solid var(--pms-line); color:var(--pms-muted); }
.pms-modes button svg { width:18px; height:18px; }
.pms-search .pms-modes button[aria-pressed=true] { background:#edf0e9; color:var(--pms-primary); border-color:#b6beb0; }
.pms-switch { display:block; flex:none; position:relative; width:19px; height:11px; border:1px solid #a9ada3; border-radius:10px; margin-left:auto; transition:background .15s,border-color .15s; }
.pms-switch::after { content:""; position:absolute; left:2px; top:2px; width:5px; height:5px; border-radius:50%; background:#92998e; transition:transform .18s cubic-bezier(.2,.8,.2,1),background .15s; }
[aria-pressed=true] .pms-switch { background:var(--pms-primary); border-color:var(--pms-primary); }
[aria-pressed=true] .pms-switch::after { transform:translateX(8px); background:#fff; }
.pms-status { color:var(--pms-muted); font-size:12px; margin:10px 0 4px; min-height:18px; line-height:1.5; }
.pms-result-tools { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:4px 12px; }
.pms-result-tools:has(.pms-sort:not([hidden])) { padding:8px 0; }
.pms-result-tools .pms-status:not(.pms-sr) { margin:0; }
.pms-sort { display:flex; align-items:center; gap:7px; margin-left:auto; max-width:100%; }
.pms-search .pms-sort label { flex:none; margin:0; color:var(--pms-muted); font-size:11px; font-weight:400; line-height:1.4; }
.pms-search .pms-sort-select { appearance:auto; width:auto; max-width:100%; min-width:0; height:36px; min-height:36px; margin:0; padding:5px 6px; border:1px solid #d8c9ac; border-radius:5px; background:#faf8f2; color:var(--pms-primary); box-shadow:none; font:inherit; font-size:12px; line-height:1.4; text-transform:none; letter-spacing:normal; cursor:pointer; }
.pms-search .pms-sort-select:focus-visible { outline:2px solid var(--pms-accent); outline-offset:2px; }
@media(pointer:coarse) { .pms-search .pms-sort-select { min-height:44px; } }
.pms-content { position:relative; }
.pms-results { min-width:0; }
.pms-list { padding:0; margin:0!important; list-style:none; }
.pms-result { display:flex; align-items:center; border-bottom:1px solid var(--pms-line); margin:0!important; padding:5px 0; gap:2px; animation:pms-result-in .16s ease-out var(--pms-row-delay,0ms) both; transition:background .14s; }
.pms-result:hover, .pms-result:focus-within { background:#f5f5f0; border-radius:6px; }
.pms-result-link { text-decoration:none!important; display:flex; gap:10px; align-items:center; color:var(--pms-ink)!important; flex:1; min-width:0; padding:7px 2px; border-radius:8px; }
.pms-thumb { width:52px; height:56px; background:#fff; border:1px solid #ededE6; border-radius:8px; flex:none; display:grid; place-items:center; overflow:hidden; color:var(--pms-accent); font-size:28px; }
.pms-thumb img { width:100%; height:100%; object-fit:contain; border:0; display:block; }
.pms-result-copy { min-width:0; display:flex; flex-direction:column; gap:3px; }
.pms-name { color:var(--pms-ink); font-size:14px; line-height:1.35; font-weight:600; overflow-wrap:anywhere; }
.pms-maker { font-size:11px; line-height:1.3; color:var(--pms-muted); }
.pms-price { color:var(--pms-ink); font-size:13px; font-weight:600; line-height:1.3; }
.pms-search .pms-peek { display:grid; place-items:center; color:var(--pms-muted); width:44px; flex:none; border-radius:9px; font-size:22px; }
.pms-entities { display:flex; flex-wrap:wrap; gap:6px; margin:10px 0 0; }
.pms-search .pms-entity { background:#f7f5ef; color:var(--pms-primary); border:1px solid var(--pms-line); border-radius:22px; font-size:12px; min-height:44px; padding:8px 13px; }
.pms-empty { padding:12px 2px 2px; color:var(--pms-muted); }
.pms-empty p { font-size:14px; margin:0; }
.pms-all { display:flex; justify-content:space-between; align-items:center; color:var(--pms-ink)!important; font-size:13px; font-weight:600; text-decoration:none; padding:17px 2px; min-height:52px; }
.pms-preview { animation:pms-result-in .16s ease-out both; position:relative; padding:0 0 24px; background:var(--pms-paper); }
@media(max-width:759px) { .pms-has-preview .pms-results, .pms-has-preview .pms-form, .pms-has-preview>.pms-result-tools { display:none; } .pms-has-preview .pms-preview { padding-top:4px; } }
.pms-preview .pms-preview-close { display:block; margin:0 50px 12px 0; color:var(--pms-muted); font-size:12px; }
.pms-preview-image { display:block; width:100%; height:min(32dvh,280px); object-fit:contain; background:#fff; border-radius:12px; }
.pms-preview-maker { color:var(--pms-primary); font-size:11px; text-transform:uppercase; letter-spacing:.07em; margin:20px 0 8px; }
.pms-preview h3 { color:var(--pms-ink); font-family:inherit; font-size:24px; line-height:1.2; font-weight:600; margin:10px 0; }
.pms-preview-description { font-size:14px; line-height:1.6; color:var(--pms-muted); margin:12px 0; }
.pms-preview-price { display:block; margin:15px 0; font-size:18px; }
.pms-preview-link { display:flex; justify-content:space-between; align-items:center; text-decoration:none; color:#fff!important; background:var(--pms-primary); border-radius:5px; padding:16px; min-height:52px; font-size:14px; }
.pms-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.pms-loading .pms-empty { display:none; }
.pms-skeleton { display:none; }
.pms-loading .pms-skeleton { display:grid; gap:12px; padding:7px 0 16px; opacity:0; animation:pms-fade .14s .12s forwards; }
.pms-skeleton i { position:relative; display:block; height:72px; border-radius:10px; background:linear-gradient(90deg,#eeeee8 0 52px,transparent 52px),linear-gradient(#e6e7df 0 0) 66px 16px / 55% 9px no-repeat,linear-gradient(#eeeee8 0 0) 66px 37px / 36% 7px no-repeat; overflow:hidden; }
.pms-skeleton i::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,transparent,#ffffff70,transparent); transform:translateX(-100%); animation:pms-shimmer 1.2s infinite; }
@keyframes pms-arrive { from { opacity:0; transform:translateY(10px) scale(.985); } to { opacity:1; transform:none; } }
@keyframes pms-result-in { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:none; } }
@keyframes pms-fade { from { opacity:0; } to { opacity:1; } }
@keyframes pms-scan { 50% { transform:scaleX(1); } }
@keyframes pms-shimmer { to { transform:translateX(100%); } }
@media(min-width:760px) {
 .pms-dialog { width:880px; max-width:calc(100vw - 48px); max-height:calc(100dvh - 64px); margin:32px auto auto; padding:18px; }
 .pms-search .pms-close { top:22px; right:18px; }
 .pms-modes { display:flex; gap:8px; }
 .pms-search .pms-modes button { padding:9px 12px; gap:8px; font-size:13px; min-width:125px; }
 .pms-content { display:grid; grid-template-columns:minmax(0,1fr) 270px; gap:20px; align-items:start; }
 .pms-content:not(:has(.pms-preview:not([hidden]))) { grid-template-columns:1fr; }
 .pms-results { max-height:min(480px,calc(100dvh - 230px)); overflow:auto; scrollbar-width:thin; padding-right:3px; }
 .pms-preview { position:sticky; top:0; padding:14px; background:#f8f7f3; border:1px solid var(--pms-line); border-radius:8px; overflow:visible; }
 .pms-preview .pms-preview-close { display:none; }
 .pms-preview-image { height:140px; border-radius:8px; }
 .pms-preview h3 { font-size:21px; }
 .pms-preview-description { font-size:12px; line-height:1.5; }
 .pms-preview-maker { margin-top:14px; }
 .pms-preview-link { font-size:12px; min-height:44px; padding:12px; }
}
@media(max-width:359px) { .pms-modes button>svg { width:15px; height:15px; } .pms-search .pms-modes button { gap:4px; font-size:11px; padding:10px 6px; } }
@media(prefers-reduced-motion:reduce) { .pms-loading .pms-skeleton { opacity:1; } .pms-dialog::backdrop { animation:none!important; } .pms-search *, .pms-search *::before, .pms-search *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }

/* Direct search stays in the page; settings alone opens the advanced dialog. */
[data-pms-search] { position:relative; }
.pms-search .pms-inline-form { margin:0; gap:3px; }
.pms-search .pms-inline-input { appearance:none; flex:1; width:100%; min-width:0; height:44px; margin:0; padding:8px 10px; border:0; border-radius:4px; outline:none; box-shadow:none; background:transparent; color:var(--pms-ink); caret-color:var(--pms-primary); font-size:16px; line-height:24px; }
.pms-search .pms-inline-input:focus { border:0; box-shadow:none; outline:none; background:transparent; }
.pms-search .pms-inline-input::placeholder { color:var(--pms-muted); opacity:1; }
.pms-search input[type=search]::-webkit-search-cancel-button { appearance:none; }
.pms-search .pms-settings { display:grid; place-items:center; flex:none; width:40px; border-radius:4px; color:var(--pms-primary); transition:background .16s,color .16s; }
.pms-search .pms-settings:hover { background:#f3eedf; color:#85612e; }
.pms-settings svg { width:21px; height:21px; }
.pms-search .pms-mobile-launch { display:none; }
.pms-suggestions { position:absolute; top:calc(100% + 6px); left:0; right:0; z-index:40; background:var(--pms-paper); color:var(--pms-ink); padding:6px 12px 0; border:1px solid var(--pms-line); border-radius:7px; box-shadow:0 12px 32px #19241f24; max-height:min(520px,65dvh); overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; animation:pms-arrive .14s ease-out both; text-align:left; }
.pms-suggestions .pms-status:not(.pms-sr) { padding:5px 0; margin:0; }
.pms-suggestions .pms-thumb { width:42px; height:46px; border-radius:4px; }
.pms-suggestions .pms-result-link { padding:6px 0; }
.pms-suggestions .pms-result { padding:2px 0; }
.pms-suggestions .pms-name { font-size:13px; }
.pms-suggestions .pms-empty { padding:10px 0 16px; }
@media(prefers-reduced-motion:reduce) { .pms-suggestions { animation:none; } }
