.fc-assistant { --assistant-ink:#35251a; --assistant-muted:#735c43; --assistant-paper:#fffdf8; --assistant-line:#e1d3bc; position:fixed; z-index:85; right:max(18px,env(safe-area-inset-right)); bottom:max(18px,env(safe-area-inset-bottom)); color:var(--assistant-ink); font:15px/1.65 var(--sans,sans-serif); }
.fc-assistant *, .fc-assistant *::before, .fc-assistant *::after { box-sizing:border-box; }
.fc-assistant [hidden] { display:none!important; }
.fc-assistant :is(button,input,textarea,summary,a) { -webkit-tap-highlight-color:transparent; }
.fc-assistant :focus-visible { outline:2px solid #956b30; outline-offset:3px; }
.fc-assistant button { min-height:44px; border:1px solid var(--assistant-line); border-radius:8px; padding:8px 12px; font:600 14px/1.5 var(--sans,sans-serif); color:var(--assistant-ink); background:var(--assistant-paper); text-align:left; }
.fc-assistant button:disabled { opacity:.55; }
.fc-assistant button:hover:not(:disabled) { border-color:#9d7b48; background:#f6eddd; }
.fc-assistant a { color:#78511d; text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.fc-assistant svg { display:block; width:22px; height:22px; flex:none; }
.fc-assistant .fc-assistant-launcher { display:flex; align-items:center; justify-content:center; gap:10px; min-height:50px; padding:10px 17px; border-color:#b58a47; border-radius:12px; background:#35251a; color:#f9e4ba; box-shadow:0 8px 24px #28180f26; }
.fc-assistant .fc-assistant-launcher:hover:not(:disabled) { background:#503720; color:#fff1d4; }
.fc-assistant-launcher[aria-expanded=true] { visibility:hidden; }
.fc-assistant-panel { position:fixed; right:max(18px,env(safe-area-inset-right)); bottom:max(18px,env(safe-area-inset-bottom)); display:grid; grid-template-rows:auto auto minmax(0,1fr) auto; width:min(430px,calc(100% - 36px)); height:min(760px,calc(100dvh - 36px)); max-height:calc(100vh - 36px); overflow:hidden; border:1px solid #cfb78e; border-radius:14px; background:var(--assistant-paper); box-shadow:0 18px 54px #28180f2b; }
.fc-assistant-heading { position:relative; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 10px 3px 20px; background:#fffaf1; }
.fc-assistant-heading h2 { margin:0; color:var(--assistant-ink); font:24px/1.2 var(--serif,Georgia,serif); letter-spacing:-.02em; }
.fc-assistant-controls { display:flex; align-items:center; gap:2px; flex:none; }
.fc-assistant .fc-assistant-quiet, .fc-assistant .fc-assistant-close { border-color:transparent; background:transparent; }
.fc-assistant .fc-assistant-close, .fc-assistant-options > summary { display:grid; width:44px; height:44px; min-height:44px; padding:10px; place-items:center; border-radius:8px; }
.fc-assistant-options > summary { list-style:none; color:var(--assistant-ink); }
.fc-assistant-options > summary::-webkit-details-marker { display:none; }
.fc-assistant-options > summary svg { stroke-width:3; }
.fc-assistant-options > summary:hover { background:#f1e5cf; }
.fc-assistant-options-content { position:absolute; top:58px; right:12px; width:min(280px,calc(100% - 24px)); max-height:min(450px,calc(100dvh - 160px)); overflow:auto; padding:10px; border:1px solid #cfb78e; border-radius:10px; background:#fffaf1; box-shadow:0 12px 32px #35251a24; }
.fc-assistant-options-content > button { width:100%; }
.fc-assistant-tools { display:flex; align-items:center; justify-content:space-between; gap:6px; padding:0 12px 5px; border-bottom:1px solid var(--assistant-line); background:#fffaf1; }
.fc-assistant-tools > button { min-height:44px; padding:6px 8px; border-color:transparent; background:transparent; color:#78511d; font-size:13px; font-weight:500; }
.fc-assistant-tools > button[aria-expanded=true] { color:var(--assistant-ink); text-decoration:underline; text-underline-offset:5px; }
.fc-assistant-content { min-height:0; overflow-y:auto; overscroll-behavior:contain; overflow-anchor:none; padding:20px; scrollbar-color:#b49565 #f5ecdc; scrollbar-width:thin; }
.fc-assistant-content p { margin:0; font:15px/1.75 var(--sans,sans-serif); }
.fc-assistant-intro { max-width:30ch; margin:36px 0 0; color:var(--assistant-muted); }
.fc-assistant-intro h3 { margin:0 0 12px; font:30px/1.2 var(--serif,Georgia,serif); color:var(--assistant-ink); }
.fc-assistant-content .fc-assistant-intro p { font-size:14px; line-height:1.8; }
.fc-assistant-questions { display:grid; gap:0; }
.fc-assistant .fc-assistant-question { width:100%; padding:12px 0; border:0; border-bottom:1px solid var(--assistant-line); border-radius:0; font-size:14px; font-weight:500; overflow-wrap:anywhere; }
.fc-assistant .fc-assistant-question:hover:not(:disabled) { background:transparent; color:#956727; }
.fc-assistant-log { display:grid; gap:22px; }
.fc-assistant-message { min-width:0; padding:0; overflow-wrap:anywhere; }
.fc-assistant-message--user { justify-self:end; max-width:90%; margin-left:26px; padding:11px 14px; border-radius:12px 12px 3px 12px; background:#eee2cc; }
.fc-assistant-message > p:not(.fc-assistant-message-label) { white-space:pre-wrap; }
.fc-assistant-message .fc-assistant-message-label { margin-bottom:5px; color:#795a31; font-size:12px; font-weight:600; line-height:1.5; }
.fc-assistant-message--user .fc-assistant-message-label, .fc-assistant-composer > label, .fc-assistant-composer .security-verification-label, .fc-assistant-composer .security-verification.is-complete .security-verification-status { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.fc-assistant-sources { display:grid; justify-items:start; gap:0; margin-top:4px; }
.fc-assistant-sources a { display:inline-flex; align-items:center; min-height:44px; font-size:13px; line-height:1.5; }
.fc-assistant-composer { max-height:42dvh; overflow-y:auto; padding:12px; border-top:1px solid var(--assistant-line); background:#fffaf1; }
.fc-assistant label { display:grid; gap:6px; color:var(--assistant-ink); font:600 14px/1.5 var(--sans,sans-serif); }
.fc-assistant :is(input:not([type=checkbox]),textarea) { display:block; width:100%; min-width:0; min-height:44px; padding:10px 11px; border:1px solid #bfa987; border-radius:6px; background:#fffdf8; color:var(--assistant-ink); font:16px/1.5 var(--sans,sans-serif); }
.fc-assistant textarea { resize:vertical; min-height:68px; max-height:170px; }
.fc-assistant textarea::placeholder { color:#7c6a54; opacity:1; }
.fc-assistant-input-row { display:flex; align-items:flex-end; gap:4px; padding:4px; border:1px solid #bfa987; border-radius:10px; background:#fffdf8; }
.fc-assistant-input-row:focus-within { outline:2px solid #956b30; outline-offset:2px; }
.fc-assistant .fc-assistant-input-row > textarea { flex:1; min-height:44px; height:44px; max-height:96px; resize:none; padding:10px; border:0; background:transparent; outline:none; }
.fc-assistant .fc-assistant-send { display:grid; place-items:center; flex:none; width:44px; height:44px; min-height:44px; padding:10px; border:0; border-radius:7px; background:#5c3b1d; color:#fff6e5; }
.fc-assistant .fc-assistant-send:hover:not(:disabled) { background:#78501f; color:#fff6e5; }
.fc-assistant .fc-assistant-primary { display:block; width:100%; margin-top:10px; border-color:#5c3b1d; background:#5c3b1d; color:#fff6e5; text-align:center; }
.fc-assistant .fc-assistant-primary:hover:not(:disabled) { border-color:#78501f; background:#78501f; color:#fff6e5; }
.fc-assistant .fc-assistant-status { margin-top:7px; color:#705737; font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.fc-assistant .fc-assistant-status:empty { display:none; }
.fc-assistant .fc-assistant-status.is-error { color:#9a321c; }
.fc-assistant-disclosure { margin-top:4px; color:var(--assistant-muted); font-size:12px; }
.fc-assistant summary { min-height:44px; padding-block:11px; font-size:13px; line-height:1.6; }
.fc-assistant-disclosure p { margin:0 8px 10px; font-size:13px; line-height:1.65; }
.fc-assistant-footer-links { display:grid; gap:0; }
.fc-assistant-footer-links a { display:inline-flex; align-items:center; min-height:44px; padding-inline:8px; font-size:13px; }
.fc-assistant-handoff-form { display:grid; gap:15px; }
.fc-assistant-handoff-form h3 { margin:4px 0 0; color:var(--assistant-ink); font:25px/1.2 var(--serif,Georgia,serif); }
.fc-assistant-handoff-form > p { color:var(--assistant-muted); font-size:14px; }
.fc-assistant .fc-assistant-check { display:flex; align-items:flex-start; gap:10px; min-height:44px; padding-block:7px; font-size:14px; font-weight:400; }
.fc-assistant-check input { flex:none; width:18px; height:18px; margin-top:3px; accent-color:#78511d; }
.fc-assistant-review pre { max-height:200px; overflow:auto; margin:0; padding:12px; background:#f1e7d5; color:var(--assistant-ink); white-space:pre-wrap; overflow-wrap:anywhere; font:14px/1.65 var(--sans,sans-serif); }
.fc-assistant .fc-assistant-trap { position:absolute; left:-10000px; width:1px!important; height:1px!important; opacity:0; }
.fc-assistant .security-verification { margin-block:8px; }
.fc-assistant .security-verification-label { font-size:13px; }
.fc-assistant .security-verification-status { font-size:12px; }
.fc-assistant .fc-assistant-composer .security-verification { margin:0 0 8px; }
.fc-assistant .fc-assistant-composer .security-verification.is-complete { margin:0; }
@media(max-width:480px) { .fc-assistant { right:max(12px,env(safe-area-inset-right)); bottom:max(12px,env(safe-area-inset-bottom)); } .fc-assistant-panel { right:max(8px,env(safe-area-inset-right)); bottom:max(8px,env(safe-area-inset-bottom)); width:calc(100% - 16px); height:calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); max-height:calc(100vh - 16px); } .fc-assistant-heading { padding-left:16px; } .fc-assistant-heading h2 { font-size:23px; } .fc-assistant-content { padding:18px 16px; } .fc-assistant-composer { padding:10px; } }
@media(max-height:620px) { .fc-assistant-panel { bottom:max(8px,env(safe-area-inset-bottom)); height:calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); max-height:calc(100vh - 16px); } .fc-assistant-intro { margin-top:20px; } }
@media(prefers-reduced-motion:no-preference) { .fc-assistant button { transition:background-color .18s ease-out,border-color .18s ease-out; } }
