.plan-sharing-actions { display:flex; align-items:center; flex-wrap:wrap; gap:9px; margin:14px 0 8px; }
.plan-sharing-actions .button { min-height:44px; padding:10px 16px; font-size:13px; }
.plan-sharing-actions .icon { width:19px; height:19px; }
.plan-invite-dialog,.plan-share-dialog { width:min(520px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); padding:28px; overflow:auto; }
.plan-invite-dialog h2,.plan-share-dialog h2 { padding-right:30px; font-size:26px; line-height:1.2; }
.plan-invite-name,.plan-share-name { margin:9px 0; font-size:15px; font-weight:600; overflow-wrap:anywhere; }
.plan-invite-note,#plan-share-help { font-size:13px; line-height:1.6; color:var(--muted); margin:0 0 18px; }
.plan-invite-search,.plan-share-link { display:grid; gap:7px; font-size:12px; font-weight:600; margin:18px 0 12px; }
.plan-invite-search input,.plan-share-link input { width:100%; min-width:0; min-height:46px; padding:11px 13px; border:1px solid var(--line); border-radius:12px; background:#fff; color:var(--ink); font:inherit; font-size:16px; }
.plan-invite-search input:focus-visible,.plan-share-link input:focus-visible { outline:2px solid var(--teal-deep); outline-offset:2px; }
.plan-invite-status { font-size:13px; color:var(--muted); line-height:1.6; margin:16px 0; }
.plan-invite-list { display:grid; gap:7px; max-height:min(380px,45dvh); overflow:auto; overscroll-behavior:contain; padding:3px; margin:0 -3px; }
#plan-invite-dialog label.plan-invite-person { display:flex; flex-direction:row; gap:12px; align-items:center; min-height:66px; padding:10px; border:1px solid var(--line); border-radius:12px; cursor:pointer; background:var(--paper); }
#plan-invite-dialog label.plan-invite-person:has(input:checked) { background:var(--cyan-soft); border-color:var(--brand-cyan); }
.plan-invite-person .mini-avatar { width:42px; height:42px; flex:0 0 42px; overflow:hidden; }
.plan-invite-person-name { flex:1; min-width:0; }
.plan-invite-person-name strong { display:block; font-size:14px; line-height:1.4; overflow-wrap:anywhere; }
.plan-invite-person-name small { display:block; font-size:12px; color:var(--muted); margin-top:3px; overflow-wrap:anywhere; }
#plan-invite-dialog .plan-invite-person input[type=checkbox] { flex:0 0 22px; width:22px; height:22px; min-width:22px; min-height:22px; padding:0; accent-color:var(--teal-deep); cursor:pointer; margin:11px 1px; }
.plan-invite-person:focus-within { outline:2px solid var(--teal-deep); outline-offset:2px; }
#plan-invite-dialog label.plan-invite-person.is-sent { background:var(--paper); cursor:default; }
.plan-invite-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:18px; margin-top:15px; border-top:1px solid var(--line); }
.plan-invite-count { color:var(--muted); font-size:13px; white-space:nowrap; }
.plan-invite-back { min-height:44px; border:0; padding:8px 4px; background:transparent; color:var(--teal-deep); font:inherit; font-size:12px; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.plan-share-footer { display:flex; justify-content:space-between; align-items:center; gap:15px; }
.plan-invite-send,.plan-share-copy { min-height:48px; padding:12px 18px; }
.plan-invitation-note { margin:18px 0; padding:14px 16px; background:var(--yellow-soft); border:1px solid var(--brand-yellow); border-radius:13px; }
.plan-invitation-note>div { display:flex; align-items:center; gap:10px; justify-content:space-between; }
.plan-invitation-note p { font-size:13px; line-height:1.5; margin:0; overflow-wrap:anywhere; }
.plan-invitation-note .plan-invitation-help { font-size:12px; color:var(--muted); margin-top:5px; }
.plan-invite-dismiss { min-height:44px; min-width:60px; border:0; padding:8px; background:transparent; font:inherit; font-size:12px; font-weight:600; color:var(--teal-deep); cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.plan-sharing-actions button:focus-visible,.plan-invite-dialog button:focus-visible,.plan-share-dialog button:focus-visible,.plan-invite-dismiss:focus-visible { outline:2px solid var(--teal-deep); outline-offset:3px; }
@media(max-width:600px) {
  .plan-sharing-actions { gap:8px; }
  .plan-sharing-actions .button { flex:1; justify-content:center; padding:10px 12px; }
  .plan-invite-dialog,.plan-share-dialog { padding:24px 18px; border-radius:18px; }
  .plan-invite-footer { flex-wrap:wrap; }
  .plan-invite-footer .plan-invite-back { flex-basis:100%; text-align:left; }
  .plan-invite-send { flex:1; justify-content:center; }
  .plan-share-copy { width:100%; justify-content:center; }
}
