/* Shared responsive primitives for independently migrated V7 families.
   Overlay visibility belongs to shell.css; this file owns sheet presentation. */
.cp-sheet{position:relative;max-width:480px;max-height:100%;margin:0 auto;padding:22px 22px calc(22px + env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;border-bottom:1px solid var(--shell-line);border-radius:0 0 24px 24px;background:var(--shell-surface2);box-shadow:0 24px 50px rgb(0 0 0 / .5)}
.cp-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.cp-sheet-head h3{margin:0}
.cp-sheet .x{position:static;display:flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--shell-muted);font:inherit;font-size:26px;line-height:1;cursor:pointer}
.cp-sheet .x:focus-visible{outline:2px solid var(--shell-accent);outline-offset:2px}
.cp-legal-overlay{display:flex;align-items:flex-end;padding:0 16px}
.cp-legal-sheet{width:100%;max-width:760px;margin:0 auto;padding-bottom:calc(26px + env(safe-area-inset-bottom));border-top:1px solid var(--shell-line);border-bottom:0;border-radius:24px 24px 0 0}
.cp-legal-grid{display:grid;grid-template-columns:minmax(230px,.8fr) minmax(0,1.4fr);gap:28px}
.cp-legal-data{color:var(--shell-muted);font-size:12.5px;line-height:1.7}
.cp-legal-data span{display:block}
.cp-legal-links{display:grid;grid-template-columns:1fr 1fr;gap:4px 24px}
.cp-legal-links a{display:flex;align-items:center;min-height:44px;color:var(--shell-muted);font-size:12.5px;text-decoration:none}
.cp-sub{margin:-10px 0 16px;color:var(--shell-muted);font-size:13.5px}
.cp-channels{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cp-ch{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px;border:1px solid var(--shell-line);border-radius:14px;background:var(--shell-surface);color:var(--shell-text);font:inherit;font-size:12.5px;text-align:center;text-decoration:none;cursor:pointer}
.cp-ch small{color:var(--shell-muted);font-size:11.5px;font-weight:400}
.cp-ic{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:rgb(207 138 82 / .14);color:var(--shell-accent-text);font-size:13px;font-weight:700}
@media(width <= 640px){.cp-legal-overlay{padding:0}.cp-legal-sheet{border-radius:20px 20px 0 0}.cp-legal-grid,.cp-legal-links{grid-template-columns:1fr}.cp-legal-grid{gap:14px}}
@media(hover:hover) and (pointer:fine){.cp-ch:hover{border-color:var(--shell-accent-dim)}.cp-legal-links a:hover{color:var(--shell-text)}}
@media(prefers-reduced-motion:no-preference){.cp-overlay.open .cp-sheet{animation:cp-drop .28s ease}.cp-legal-overlay.open .cp-legal-sheet{animation:cp-rise .28s ease}}
@keyframes cp-drop{from{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes cp-rise{from{transform:translateY(18px);opacity:0}to{transform:translateY(0);opacity:1}}
