/* Uses the existing AI Chef palette and controls. */
.ch-viral-open{flex:none;min-height:42px;padding:7px 12px;border:1.5px solid var(--forest);border-radius:99px;background:var(--paper2);color:var(--forest);font:inherit;font-size:13px;font-weight:750;cursor:pointer;white-space:nowrap}
.ch-viral-open:hover{background:var(--yolk)}
.ch-viral-dialog{box-sizing:border-box;position:fixed;inset:0;width:min(600px,calc(100% - 28px));max-height:90dvh;max-height:calc(100dvh - 28px);margin:auto;padding:26px;border:2px solid var(--forest);border-radius:26px;background:var(--cream);color:var(--forest);box-shadow:0 12px 48px #0b241840;overflow-y:auto;overscroll-behavior:contain}
.ch-viral-dialog::backdrop{background:#143d2b99}
.ch-viral-dialog[open]{display:block}
.ch-viral-dialog h2{max-width:calc(100% - 35px);margin:0 0 10px;font-size:28px;line-height:1.1;font-weight:800}
.ch-viral-dialog .ch-help{font-size:15px;margin-bottom:18px}
.ch-viral-close{position:absolute;top:12px;right:12px}
.ch-viral-form{display:grid;gap:14px}
.ch-viral-field{display:grid;gap:7px;font-weight:750;font-size:15px}
.ch-viral-field input,.ch-viral-field textarea{box-sizing:border-box;width:100%;min-width:0;border:1.5px solid var(--forest);border-radius:14px;background:var(--paper2);color:var(--forest);font:inherit;font-size:16px;font-weight:450;padding:12px;line-height:1.4}
.ch-viral-field textarea{min-height:145px;resize:vertical}
.ch-viral-field input:focus,.ch-viral-field textarea:focus{outline:3px solid var(--yolk);outline-offset:2px}
.ch-viral-load{justify-self:start}
.ch-viral-status,.ch-viral-error{margin:0;font-size:14px;line-height:1.45}
.ch-viral-status:empty,.ch-viral-error:empty{display:none}
.ch-viral-error{color:#a53320;font-weight:700;outline:none}
.ch-viral-source{margin:0;font-size:14px;overflow-wrap:anywhere}
.ch-viral-source a{color:var(--forest);text-decoration-thickness:2px;text-underline-offset:3px}
.ch-viral-modes{margin:0;padding:0;border:0;display:grid;grid-template-columns:1fr 1fr;gap:9px;min-width:0}
.ch-viral-modes legend{padding:0;margin-bottom:9px;font-weight:800;font-size:15px}
.ch-viral-mode{display:flex;align-items:flex-start;gap:8px;border:1.5px solid var(--forest);border-radius:16px;background:var(--paper2);padding:12px;cursor:pointer}
.ch-viral-mode:has(input:checked){background:#fde7a6;box-shadow:inset 0 0 0 1px var(--forest)}
.ch-viral-mode input{accent-color:var(--forest);margin:4px 0 0;flex:none}
.ch-viral-mode b{display:block;font-size:15px;line-height:1.25}
.ch-viral-mode small{display:block;margin-top:4px;font-size:12.5px;line-height:1.35}
.ch-viral-note{margin:0;font-size:13px;line-height:1.4}
.ch-viral-make{width:100%;min-height:48px}
.ch-viral-dialog [disabled]{opacity:.6;cursor:wait}
.ch-viral-credit{margin:10px 0 0;font-size:13px;line-height:1.4}
.ch-viral-credit a{color:inherit;text-decoration-thickness:2px;text-underline-offset:3px;overflow-wrap:anywhere}
@media(max-width:600px){
 .ch-viral-dialog{width:calc(100% - 18px);max-height:calc(100dvh - 18px);padding:22px 17px;border-radius:22px}
 .ch-viral-dialog h2{font-size:24px}
 .ch-viral-mode{padding:10px 8px;gap:6px}
 .ch-viral-open{font-size:12px;padding:6px 10px;min-height:40px}
}
