[data-plan-locked] > :not(.plan-gate) { display:none!important; }
.plan-gate { background:#fff; border:1px solid var(--line,#e6e7ec); border-radius:28px; padding:32px; box-shadow:0 6px 24px rgba(25,32,58,.04); }
.plan-notice { display:flex; align-items:flex-start; gap:18px; color:var(--t,#1b1b1f); font-family:var(--font-body,'Onest',sans-serif); }
.plan-gate-icon { display:grid; place-items:center; flex:none; width:48px; height:48px; border-radius:16px; background:#edf3ff; color:#3869d9; }
.plan-gate-icon svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.7; }
.plan-notice h3 { font-size:22px; font-weight:650; line-height:1.3; margin:0 0 8px; }
.plan-notice p { font-size:15px; line-height:1.55; color:var(--muted,#686a75); margin:0 0 12px; }
.plan-notice .plan-gate-availability { color:var(--t,#1b1b1f); font-weight:500; }
.plan-gate-cta { display:inline-flex; align-items:center; gap:16px; min-height:40px; padding:9px 16px; border:1px solid var(--line,#e6e7ec); border-radius:999px; color:#2c5ec9; text-decoration:none; font-size:15px; font-weight:500; background:white; }
.plan-gate-cta:focus-visible { outline:2px solid #3869d9; outline-offset:3px; }
.plan-notice-compact { gap:12px; }
.plan-notice-compact .plan-gate-icon { width:36px; height:36px; border-radius:12px; }
.plan-notice-compact h3 { font-size:17px; }
.plan-notice-compact p { font-size:14px; }
.ai-plan-notice { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px; border:1px solid var(--line,#e6e7ec); border-radius:20px; padding:18px 22px; margin:0 0 24px; background:white; }
.ai-plan-notice p { margin:4px 0 0; color:var(--muted,#686a75); font-size:14px; line-height:1.5; }
.ai-card.plan-unavailable { cursor:default; }
@media(max-width:640px) { .plan-gate { padding:24px 20px; border-radius:24px; } .plan-notice { flex-direction:column; gap:14px; } .plan-notice h3 { font-size:20px; } .plan-gate-cta { min-height:44px; } }
@media(max-width:640px) {
  .main:has(.page.on[data-plan-locked]) .main-head { flex-wrap:wrap; }
  .main:has(.page.on[data-plan-locked]) .main-head .crumbs { flex:1 1 calc(100% - 60px); min-width:0; }
  .main:has(.page.on[data-plan-locked]) .crumb-title { font-size:20px!important; }
  .main:has(.page.on[data-plan-locked]) .main-head-right { margin-left:auto; }
}
