.product-link-modal { position:fixed; inset:0; z-index:1200; display:flex; align-items:center; justify-content:center; padding:24px; background:rgb(20 25 22 / 48%); color:var(--c-ink,#252a24); }
.pl-dialog { width:min(760px,100%); max-height:calc(100dvh - 48px); overflow:auto; overscroll-behavior:contain; border-radius:16px; background:var(--c-paper,#faf9f5); box-shadow:0 24px 80px rgb(0 0 0 / 18%); }
.pl-header { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:22px 26px; border-bottom:1px solid var(--c-line,#dcddd4); }
.pl-header p { margin:0 0 3px; font-size:13px; color:var(--c-muted,#6b7167); }
.pl-header h2 { margin:0; font-size:22px; line-height:1.45; }
.pl-close { flex:0 0 44px; height:44px; border:1px solid var(--c-line,#dcddd4); border-radius:8px; background:transparent; font-size:28px; color:inherit; cursor:pointer; }
.pl-content { padding:24px 26px 30px; }
.pl-content label { display:grid; gap:7px; font-size:14px; font-weight:500; }
.pl-content input,.pl-content select { width:100%; min-width:0; min-height:48px; border:1px solid var(--c-line,#dcddd4); border-radius:8px; padding:10px 12px; font:inherit; font-size:16px; color:inherit; background:white; }
.pl-link-row { display:flex; gap:8px; margin-top:8px; }
.pl-link-row input { flex:1; width:0; }
.pl-button { display:inline-flex; justify-content:center; align-items:center; gap:8px; min-height:48px; padding:10px 16px; border:1px solid var(--c-line,#dcddd4); border-radius:8px; background:transparent; color:inherit; font:inherit; font-size:14px; font-weight:600; cursor:pointer; text-decoration:none; text-align:center; }
.pl-primary { background:var(--c-accent,#efd063); border-color:transparent; }
.pl-button svg { width:22px; height:22px; flex:0 0 22px; }
.pl-button:disabled { opacity:.55; cursor:not-allowed; }
.pl-hint { margin:10px 0; color:var(--c-muted,#6b7167); font-size:12px; line-height:1.8; }
.pl-empty,.pl-loading { padding:30px 0 16px; color:var(--c-muted,#6b7167); line-height:1.9; }
.pl-error { padding:14px; border-inline-start:3px solid var(--c-danger,#a13931); background:rgb(160 57 49 / 6%); }
.pl-product { display:grid; grid-template-columns:minmax(0,190px) minmax(0,1fr); gap:24px; padding-top:22px; margin-top:18px; border-top:1px solid var(--c-line,#dcddd4); }
.pl-photo { aspect-ratio:4/5; background:white; border-radius:8px; overflow:hidden; display:grid; place-items:center; padding:8px; }
.pl-photo img { width:100%; height:100%; object-fit:contain; min-height:0; }
.pl-brand { margin:0 0 6px; color:var(--c-muted,#6b7167); font-size:13px; }
.pl-product h3 { margin:0; font-size:19px; line-height:1.55; overflow-wrap:anywhere; }
.pl-price { font-weight:600; margin:10px 0; }
.pl-description { margin-top:18px; font-size:14px; }
.pl-description summary { cursor:pointer; min-height:44px; display:flex; align-items:center; text-decoration:underline; text-underline-offset:4px; }
.pl-description p { line-height:1.8; white-space:pre-line; }
.pl-result,.pl-profile { margin:20px 0; padding:18px; border:1px solid var(--c-line,#dcddd4); border-radius:10px; background:var(--c-surface,#f0f1e9); }
.pl-result h3,.pl-profile h3 { margin:0 0 8px; font-size:18px; }
.pl-result p { margin:6px 0; font-size:14px; line-height:1.8; }
.pl-size { display:block; font-size:38px; line-height:1.3; margin:8px 0; }
.pl-model-details summary { gap:8px; text-decoration:none; overflow-wrap:anywhere; }
.pl-model-details summary::before { content:'+'; flex:0 0 16px; text-align:center; font-size:20px; }
.pl-model-details[open] summary::before { content:'−'; }
.pl-model-list { list-style:none; padding:0; margin:8px 0 0; }
.pl-model-list > li { padding:12px 0; border-top:1px solid var(--c-line,#dcddd4); }
.pl-model-list .pl-model-label,.pl-model-reference .pl-model-label { margin:0 0 10px; font-size:13px; font-weight:600; line-height:1.7; }
.pl-model-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:10px 0; }
.pl-model-facts > div { min-width:0; }
.pl-model-facts dt { color:var(--c-muted,#6b7167); font-size:12px; line-height:1.6; }
.pl-model-facts dd { margin:5px 0 0; font-size:15px; font-weight:600; overflow-wrap:anywhere; }
.pl-model-list .pl-model-source { margin:10px 0 0; padding-inline-start:10px; border-inline-start:2px solid var(--c-line,#dcddd4); color:var(--c-muted,#6b7167); font-size:12px; line-height:1.8; overflow-wrap:anywhere; }
.pl-result .pl-estimate-label { color:var(--c-muted,#6b7167); font-size:12px; }
.pl-model-reference { margin:14px 0; padding-block:12px; border-block:1px solid var(--c-line,#dcddd4); }
.pl-model-differences { padding-inline-start:18px; margin:12px 0 0; font-size:13px; line-height:1.8; }
.pl-model-differences li + li { margin-top:4px; }
.pl-result .pl-estimate-note { margin-top:12px; font-weight:500; }
.pl-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:14px 0; }
.pl-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:20px; }
.pl-text { display:inline-flex; align-items:center; min-height:44px; margin-inline-end:14px; border:0; padding:0; background:transparent; color:inherit; font:inherit; font-size:13px; text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.product-link-modal :is(button,a,input,select,summary):focus-visible { outline:2px solid var(--c-green,#3a584a); outline-offset:3px; }
@media(max-width:600px) {
  .product-link-modal { padding:0; align-items:flex-end; }
  .pl-dialog { max-height:100dvh; width:100%; border-radius:16px 16px 0 0; }
  .pl-header { padding:16px; }.pl-header h2 { font-size:18px; }
  .pl-content { padding:18px 16px calc(24px + env(safe-area-inset-bottom)); }
  .pl-product { grid-template-columns:105px minmax(0,1fr); gap:14px; }
  .pl-product h3 { font-size:15px; }.pl-actions { grid-template-columns:1fr; }
  .pl-link-row { flex-direction:column; }.pl-link-row input { width:100%; flex:auto; }
  .pl-result,.pl-profile { padding:14px; }.pl-fields { gap:10px; }
  .pl-model-facts { gap:8px; }
}
