/* Quiet, on-demand help in the existing OKSi palette. */
.oc-launch { position:fixed; bottom:22px; right:24px; z-index:35; border:1px solid var(--oksi-burgundy); border-radius:28px; background:#fff; color:var(--oksi-burgundy); padding:12px 20px; box-shadow:0 5px 22px #38000b18; font-family:inherit; font-size:15px; font-weight:600; line-height:1.4; cursor:pointer; min-height:46px; }
.oc-launch::before { content:'?'; display:inline-grid; place-items:center; width:23px; height:23px; margin-right:8px; border:1px solid currentColor; border-radius:50%; font-weight:700; }
.oc-dialog { position:fixed; inset:14px 14px 14px auto; margin:0; box-sizing:border-box; width:460px; max-width:calc(100vw - 28px); height:calc(100dvh - 28px); max-height:calc(100dvh - 28px); padding:0; color:#343234; background:#fff; border:1px solid var(--oksi-border); border-radius:18px; box-shadow:0 20px 80px #30000b2b; }
.oc-dialog[open] { display:flex; flex-direction:column; animation:oc-enter .18s ease-out; }
.oc-dialog::backdrop { background:#211c243d; }
.oc-header { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:20px 22px 8px; }
.oc-header h2 { margin:0; font-size:21px; line-height:1.3; color:var(--oksi-burgundy-dark); }
.oc-close { border:0; background:transparent; color:var(--oksi-muted); cursor:pointer; padding:10px 0 10px 10px; font:inherit; font-size:13px; min-height:44px; }
.oc-page { font-size:13px; line-height:1.5; color:var(--oksi-muted); margin:0; padding:0 22px 12px; overflow-wrap:anywhere; }
.oc-tools { display:flex; flex-wrap:wrap; align-items:center; gap:6px 14px; padding:0 22px 14px; border-bottom:1px solid var(--oksi-border); }
.oc-tools .oc-source { padding:5px 0; margin:0; border:0; font-size:12px; }
.oc-tools .oc-button { width:auto; padding:7px 10px; font-size:13px; min-height:40px; }
.oc-output { flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:20px 22px; font-size:15px; line-height:1.65; overflow-wrap:anywhere; }
.oc-output h3 { font-size:18px; line-height:1.4; margin:0 0 12px; }
.oc-output h3:not(:first-child) { margin-top:23px; }
.oc-output p { margin:0 0 14px; }
.oc-steps { padding-left:23px; margin:16px 0; }
.oc-steps li { padding-left:4px; margin:10px 0; }
.oc-steps li::marker { color:var(--oksi-burgundy); font-weight:700; }
.oc-button { display:block; box-sizing:border-box; width:100%; border:1px solid var(--oksi-border); border-radius:10px; background:var(--oksi-surface); color:#343234; font:inherit; text-align:left; padding:12px 14px; margin:7px 0; line-height:1.5; min-height:44px; cursor:pointer; white-space:normal; }
.oc-source { display:block; border-left:2px solid var(--oksi-burgundy); padding:8px 12px; margin:13px 0; color:var(--oksi-burgundy-dark); text-decoration:underline; text-underline-offset:3px; font-size:14px; }
.oc-source span { display:block; color:var(--oksi-muted); font-size:13px; text-decoration:none; margin-top:5px; }
.oc-choices { padding:0; border:0; min-width:0; }
.oc-choices legend { font-weight:650; padding:0 0 7px; }
.oc-excerpt { margin:12px 0; border-left:2px solid var(--oksi-border); padding:0 12px; white-space:pre-line; }
.oc-form { padding:14px 22px; border-top:1px solid var(--oksi-border); background:var(--oksi-surface); border-radius:0 0 18px 18px; }
.oc-form label { display:block; font-weight:600; font-size:14px; margin-bottom:8px; }
.oc-input-row { display:flex; gap:8px; }
.oc-input-row input { min-width:0; width:100%; border:1px solid #a59a9d; border-radius:8px; padding:11px; font:inherit; font-size:16px; background:#fff; color:#343234; }
.oc-submit { border:0; border-radius:8px; background:var(--oksi-burgundy); color:#fff; font:inherit; font-size:14px; padding:10px 12px; cursor:pointer; }
.oc-note { margin:8px 0 0; font-size:11px; line-height:1.5; color:var(--oksi-muted); }
.oc-inline,.markdown-section .oksi-help-invite { display:flex; gap:22px; align-items:center; justify-content:space-between; padding:22px; margin:28px 0; border:1px solid var(--oksi-border); border-radius:14px; background:linear-gradient(125deg,var(--oksi-burgundy-soft),var(--oksi-surface)); }
.oc-inline p,.markdown-section .oksi-help-invite p { margin:6px 0 0; font-size:14px; line-height:1.6; }
.oc-inline strong,.oksi-help-invite strong { color:var(--oksi-burgundy-dark); }
.oc-inline .oc-button,.oksi-help-invite button { width:auto; flex-shrink:0; border:1px solid var(--oksi-burgundy); color:var(--oksi-burgundy-dark); background:#fff; border-radius:8px; padding:12px 16px; font:inherit; font-size:14px; cursor:pointer; min-height:44px; }
.oc-dialog button:focus-visible,.oc-dialog a:focus-visible,.oc-dialog input:focus-visible,.oc-launch:focus-visible,.oc-inline button:focus-visible,.oksi-help-invite button:focus-visible { outline:3px solid var(--oksi-burgundy); outline-offset:3px; }
@media (hover:hover) { .oc-button:hover { background:var(--oksi-burgundy-soft); border-color:var(--oksi-burgundy); } .oc-launch:hover { background:var(--oksi-burgundy-soft); transform:translateY(-2px); } .oksi-task-grid a { transition:transform .18s ease,box-shadow .18s ease; } .oksi-task-grid a:hover { transform:translateY(-3px); box-shadow:0 10px 25px #38000b10; } }
.oc-launch { transition:transform .18s ease,background .18s ease; }
@keyframes oc-enter { from { opacity:0; transform:translateX(12px); } to { opacity:1; transform:translateX(0); } }
@media(max-width:640px) {
  .oc-dialog { inset:8px; width:calc(100vw - 16px); max-width:none; height:calc(100dvh - 16px); max-height:calc(100dvh - 16px); border-radius:14px; }
  .oc-header { padding:16px 16px 8px; } .oc-page { padding:0 16px 10px; } .oc-tools { padding:0 16px 10px; } .oc-output { padding:16px; } .oc-form { padding:12px 16px; }
  .oc-header h2 { font-size:18px; } .oc-launch { right:12px; bottom:calc(12px + env(safe-area-inset-bottom)); padding:10px 13px; font-size:14px; }
  .oc-inline,.markdown-section .oksi-help-invite { flex-direction:column; align-items:stretch; gap:12px; padding:18px; }
  .markdown-section { padding-bottom:100px; }
}
@media(prefers-reduced-motion:reduce) { .oc-dialog[open] { animation:none; } .oc-launch,.oksi-task-grid a { transition:none!important; transform:none!important; } }
@media print { .oc-launch,.oc-dialog,.oc-inline,.oksi-help-invite { display:none!important; } }
