.aiWorkspace{--ai-ink:#203c38;--ai-line:rgba(64,105,93,.2);color:var(--ai-ink);font-size:14px;line-height:1.6;display:grid;gap:16px}
.aiStatus{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 16px;background:linear-gradient(110deg,#e0f3e9,#e5eef9);border:1px solid var(--ai-line);border-radius:12px}
.aiStatus>span:last-child{margin-left:auto;font-size:13px}.aiDot{width:8px;height:8px;border-radius:50%;background:#337c66}.aiLead{font-size:16px;margin:0}
.aiSetup,.aiChecks{padding:16px;border:1px solid var(--ai-line);border-radius:12px;background:rgba(255,255,255,.75)}
.aiSetup p,.aiChecks p{margin:8px 0}.aiChecks h3{margin:0;font-size:16px}.aiChecks h3 span{font-size:13px;font-weight:400;margin-left:8px}.aiChecks li{margin:8px 0}.aiChecks ul{padding-left:20px}
.aiShortcuts,.aiPrompts{display:flex;gap:8px;flex-wrap:wrap}.aiPrompts button{font:inherit;color:var(--ai-ink);background:#eef5f3;border:1px solid var(--ai-line);border-radius:8px;padding:8px 12px;min-height:44px;cursor:pointer;text-align:left}
.aiContext summary{cursor:pointer;min-height:44px;align-content:center;font-weight:600}.aiContext pre{max-height:240px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;padding:16px;border-radius:8px;background:#f2f5f4;font-size:13px;color:#213f37}
.aiConsent{display:flex!important;align-items:flex-start;gap:12px!important;font-size:14px!important;font-weight:400!important;line-height:1.5}.aiConsent input{width:20px!important;height:20px!important;flex:0 0 20px;margin-top:2px}
.aiAnswer{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%;padding:16px;border-left:3px solid #518b78;background:rgba(236,245,242,.9);border-radius:8px;color:#17392e}.aiAnswer:empty{display:none}
.aiFootnote{font-size:13px;color:#4b6059;margin:0}.aiWorkspace :focus-visible{outline:3px solid #387f72;outline-offset:3px}.aiWorkspace button:disabled{opacity:.6;cursor:not-allowed}.aiWorkspace textarea{font-size:16px!important;min-height:96px}
@media(max-width:640px){.aiStatus>span:last-child{margin-left:0;width:100%}.aiShortcuts .btn{flex:1 0 40%}.aiChecks .btn{white-space:normal}.aiWorkspace{gap:12px}}
#vital-assistant-launch{min-height:44px;flex-shrink:0;gap:8px}
@media(max-width:900px){#vital-assistant-launch span{display:none}#vital-assistant-launch{width:44px;padding:8px}}
#profit-dashboard .aiShortcuts{margin:16px 0}
#profit-dashboard [data-profit-period][aria-pressed="true"]{outline:2px solid currentColor;outline-offset:2px;font-weight:600}
#profit-dashboard h3{margin-top:24px}
/* Copilot conversation: local, readable and keyboard accessible. */
.aiTaskMenu{border:1px solid var(--border,#d8dce5);border-radius:16px;padding:12px 16px;margin:16px 0}
.aiTaskMenu summary{cursor:pointer;font-weight:600;font-size:14px;padding:4px 0}
.aiTaskMenu .aiPrompts{max-height:180px;overflow:auto;margin-top:12px}
.aiChatToolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0 8px}
.aiThread{max-height:360px;min-height:120px;overflow:auto;padding:12px;border:1px solid var(--border,#d8dce5);border-radius:16px;background:rgba(120,130,160,.06);overscroll-behavior:contain}
.aiWelcome{font-size:14px;line-height:1.6;margin:12px}
.aiMessage{margin:0 0 12px;padding:16px;border-radius:16px;background:rgba(120,130,160,.10);overflow-wrap:anywhere}
.aiMessage.user{margin-left:32px;background:rgba(90,100,250,.12)}
.aiMessage.assistant{margin-right:16px;border:1px solid var(--border,#d8dce5)}
.aiMessage strong{font-size:13px;font-weight:600}
.aiMessage p{white-space:pre-wrap;font-size:14px;line-height:1.65;margin:8px 0 0}
.aiWorkspace textarea[readonly]{cursor:default;background:rgba(120,130,160,.06)}
@media(max-width:600px){.aiMessage.user{margin-left:12px}.aiMessage.assistant{margin-right:0}.aiThread{max-height:300px}.aiTaskMenu .aiPrompts{max-height:140px}}
/* Vivi: code-native glass companion, no external assets or trackers. */
#vital-assistant-launch.viviLauncher{position:fixed;right:24px;bottom:24px;z-index:90;width:auto;height:88px;min-width:88px;display:flex;align-items:center;gap:12px;padding:4px 16px 4px 4px;border:1px solid rgba(255,255,255,.85);border-radius:28px;background:rgba(247,250,255,.88);backdrop-filter:blur(20px);color:#27394e;box-shadow:0 12px 40px rgba(47,66,105,.18),inset 0 1px 0 #fff;cursor:pointer;transition:box-shadow .2s,background .2s}
#vital-assistant-launch.viviLauncher:hover{background:#f8fffc;box-shadow:0 12px 40px rgba(74,99,153,.28)}
#vital-assistant-launch:focus-visible{outline:3px solid #5267de;outline-offset:4px}
#vital-assistant-launch .viviGreeting{display:grid;text-align:left;gap:4px}
.viviGreeting strong{font-size:14px;font-weight:600}.viviGreeting>span{font-size:12px;color:#526078}
.vivi{position:relative;display:block!important;width:80px;height:80px;flex:0 0 80px;isolation:isolate;pointer-events:none}
.viviBody{display:block!important;position:absolute;inset:16px 12px 12px;border-radius:24px 24px 21px 21px;background:radial-gradient(ellipse at 25% 12%,#fff 0%,#e4f8f2 40%,#c5def0 70%,#c7c2f0 100%);border:1px solid #fff;box-shadow:inset -3px -4px 8px #b8c8e866,inset 3px 3px 6px #fff,0 5px 12px #3b627326;animation:viviBreathe 5s ease-in-out infinite}
.viviFace{display:block!important;position:absolute;left:9px;right:9px;top:15px;height:24px;border-radius:12px;background:#263b50;box-shadow:inset 0 2px 5px #0a203d55}
.viviEye{display:block!important;position:absolute;top:6px;left:8px;width:5px;height:8px;border-radius:5px;background:#c1ffed;box-shadow:0 0 5px #86ffe980;animation:viviBlink 7s infinite;transform-origin:center}
.viviEye:nth-child(2){left:auto;right:8px}
.viviSmile{display:block!important;position:absolute;left:15px;bottom:4px;width:7px;height:4px;border-bottom:1.5px solid #cdfcf0;border-radius:0 0 8px 8px}
.viviAntenna{display:block!important;position:absolute;width:3px;height:10px;background:#9cb9c5;left:39px;top:7px}
.viviAntenna::after{content:'';position:absolute;left:-3px;top:-3px;width:9px;height:9px;border-radius:50%;background:#a7e5d3;border:1px solid #fff;box-shadow:0 0 10px #b5eee2}
.viviShine{display:block!important;position:absolute;left:8px;top:6px;width:19px;height:5px;background:#ffffffba;border-radius:50%;transform:rotate(-18deg)}
.viviBlush{display:block!important;position:absolute;top:39px;width:8px;height:4px;background:#eeafbc80;border-radius:50%}.viviBlush.left{left:8px}.viviBlush.right{right:8px}
.viviHand{display:block!important;position:absolute;top:41px;width:10px;height:17px;background:linear-gradient(#edfef7,#b4d9e1);border:1px solid #fff;border-radius:8px;transform:rotate(15deg)}
.viviHand.left{left:4px}.viviHand.right{right:4px;transform:rotate(-15deg)}
.viviLauncher:hover .viviHand.right{animation:viviWave .8s ease-in-out 2;transform-origin:bottom center}
.viviShadow{display:block!important;position:absolute;left:20px;right:20px;bottom:5px;height:5px;background:#566b8726;border-radius:50%;filter:blur(2px);z-index:-1}
.viviIntro{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid #ffffffa6;border-radius:20px;background:linear-gradient(115deg,#e3f5ef,#eceafa);color:#243a4c}
.viviIntro strong{font-size:20px;font-weight:600;letter-spacing:-.3px}.viviIntro p{margin:4px 0 0;font-size:14px;color:#506075}
.viviThinking .viviAntenna::after{animation:viviThink 1.2s ease-in-out infinite}.viviThinking .viviEye{animation:viviThink 1.2s ease-in-out infinite}
body:has(#modal-root .overlay) #vital-assistant-launch{visibility:hidden;pointer-events:none}
@keyframes viviBreathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@keyframes viviBlink{0%,43%,47%,100%{transform:scaleY(1)}45%{transform:scaleY(.15)}}
@keyframes viviWave{0%,100%{transform:rotate(-15deg)}50%{transform:rotate(-65deg)}}
@keyframes viviThink{0%,100%{opacity:1}50%{opacity:.4}}
@media(max-width:900px){#vital-assistant-launch.viviLauncher{bottom:calc(84px + env(safe-area-inset-bottom));right:12px;width:76px;height:76px;min-width:76px;padding:0;border-radius:24px}#vital-assistant-launch .viviGreeting{display:none}.viviIntro{padding:8px}.viviIntro strong{font-size:18px}}
@media(prefers-reduced-motion:reduce){.vivi *,.vivi *::after,.viviLauncher:hover .viviHand.right{animation:none!important}#vital-assistant-launch.viviLauncher{transition:none}}
.viviPageHelp{display:flex;align-items:center;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:16px 20px;margin:16px 0;border:1px solid rgba(119,151,177,.25);border-radius:16px;background:linear-gradient(120deg,rgba(175,225,210,.18),rgba(183,182,235,.16))}
.viviPageHelp strong{font-size:14px}.viviPageHelp p{font-size:13px;line-height:1.5;margin:4px 0 0}
.viviFieldHelp{display:inline-flex;align-items:center;gap:6px;border:1px solid #8da6c244;border-radius:12px;background:#e8f3f5;color:#274b68;min-height:36px;padding:6px 12px;font:inherit;font-size:13px;cursor:pointer;white-space:nowrap}
.viviFieldHelp svg{width:16px;height:16px}.viviFieldHelp:focus-visible{outline:3px solid #5267de;outline-offset:2px}
.viviFieldSlot{margin:8px 0 12px}.viviInline{flex:1 0 100%;width:100%;padding:16px;margin-top:12px;border:1px solid #93a9bd66;border-radius:16px;background:#f4f8fc;color:#253b50;box-sizing:border-box}
.viviInline>p,.viviInline details{font-size:14px;line-height:1.6}.viviInline summary{cursor:pointer;min-height:32px}.viviInline .aiConsent{margin:12px 0}.viviInlineAnswer{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.65;margin-top:12px}.viviInlineAnswer:empty{display:none}
@media(max-width:640px){.viviFieldHelp{min-height:44px}.viviPageHelp{padding:12px}}
/* Vivi studio: compact task selection and an evidence-first reading surface. */
.viviStudio{--ai-ink:#203c38;--ai-line:#c8dcd5;gap:16px}
.viviStudio .viviIntro{min-height:144px;padding:24px;border-radius:24px;background:radial-gradient(ellipse at 10% 0%,#fff 0%,transparent 60%),linear-gradient(115deg,#d9f0e8,#edf5f2);border:1px solid #c5dfd5;box-shadow:inset 0 1px 0 #fff;overflow:hidden}
.viviStudio .viviIntro>.vivi{transform:scale(1.3);margin:8px 24px 8px 8px}
.viviStudio .viviIntro strong{display:block;font-size:clamp(22px,3vw,30px);letter-spacing:-1px;line-height:1.2;max-width:380px;text-wrap:balance}
.viviStudio .viviIntro p{color:#3c6057;font-size:14px;margin-top:12px}
.viviStudio .aiStatus{background:#f0f7f4;border-color:#d2e4dc;margin-top:-8px}
.viviStudio .aiLead{font-size:14px;color:#405b53;line-height:1.6}
.viviStudio .aiShortcuts{gap:8px}.viviStudio .aiShortcuts .btn{background:transparent;border-color:#cbdad4;color:#36574d}
.viviActions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.viviActions button{position:relative;display:grid;grid-template-columns:36px 1fr;gap:4px 12px;align-items:center;text-align:left;padding:16px;border:1px solid #ccded6;border-radius:16px;background:#f8fcfa;color:#203c38;cursor:pointer;font:inherit;transition:transform .18s ease,background .18s ease,box-shadow .18s ease}
.viviActions button>span{grid-row:span 2;display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:#e2f0e9;color:#356453}.viviActions svg{width:20px;height:20px}.viviActions strong{font-size:14px;font-weight:600}.viviActions small{font-size:13px;color:#4c655d;line-height:1.4}
.viviActions button:hover{transform:translateY(-2px);background:#edf7f1;box-shadow:0 8px 20px #264f3910}
.viviStudio .aiTaskMenu{margin:0;border-color:#d2dfd8;background:#f8fbf9;padding:12px 16px}.viviStudio .aiTaskMenu summary{min-height:32px}.viviStudio .aiTaskMenu label{margin-top:16px}.viviStudio .aiTaskMenu select{width:100%;min-height:44px;font-size:14px}
.viviStudio .aiChatToolbar{margin:0}.viviStudio .aiThread{background:#f5faf7;border-color:#d2e2d9;padding:16px;max-height:480px;min-height:144px;scroll-padding:16px}
.viviStudio .aiWelcome{color:#476358;max-width:56ch}.viviStudio .aiMessage.assistant{background:#fff;border-color:#d4e3dc;box-shadow:0 4px 16px #244b3710;margin-right:0}.viviStudio .aiMessage.user{background:#e0eee7;border:1px solid #cadfd3;color:#214336}
.viviResponse h4{font-size:14px;font-weight:600;line-height:1.5;margin:20px 0 8px;color:#234b3e}.viviResponse p{font-size:14px;line-height:1.7;margin:8px 0;white-space:pre-wrap}.viviResponseStep{padding-left:12px;border-left:2px solid #c3ddcf}.viviResponse h4:first-child{margin-top:12px}
.viviStudio #ai-question{background:#fff;border:1px solid #abc6b8;border-radius:16px;padding:16px;color:#213e33;box-shadow:0 2px 8px #274e3810}.viviStudio #ai-ask{background:#245d47;color:#fff;border-color:#245d47;min-height:48px;border-radius:16px}.viviStudio #ai-ask:hover{background:#194833}.viviStudio .aiFootnote{border-top:1px solid #d4e2da;padding-top:16px;line-height:1.6}
.viviStudio .viviBody{box-shadow:inset -4px -5px 8px #86bba455,inset 4px 4px 8px #fff,0 8px 18px #325d4833;background:radial-gradient(ellipse at 25% 12%,#fff 0%,#e4f8f2 40%,#b5dfce 80%,#98c5b3 100%)}
.viviStudio .viviFace{background:#214638}.viviStudio .viviHand{background:linear-gradient(#f0fff9,#a8d5c1)}
@media(max-width:540px){.viviStudio .viviIntro{padding:16px;min-height:128px;gap:8px}.viviStudio .viviIntro>.vivi{transform:scale(1.05);margin:0 8px 0 0}.viviStudio .viviIntro strong{font-size:23px}.viviActions{gap:8px}.viviActions button{grid-template-columns:1fr;padding:12px;gap:8px}.viviActions button>span{grid-row:auto}.viviActions small{font-size:13px}.viviStudio .aiThread{padding:8px}}
@media(prefers-reduced-motion:reduce){.viviActions button{transition:none}.viviActions button:hover{transform:none}}
@media(prefers-reduced-transparency:reduce){#vital-assistant-launch.viviLauncher{background:#f4faf7;backdrop-filter:none}}
/* Pearl companion: CSS materials and expression states, no video or trackers. */
.vivi.viviPearl{width:96px;height:104px;flex-basis:96px;overflow:visible}
.viviPearl .viviBody{inset:20px 17px 14px;border-radius:48% 50% 46% 48%;background:radial-gradient(ellipse at 26% 26%,#fff 3%,#fffefa 20%,#e4eeeb 46%,#e1deed 65%,#f4eee4 80%,#b7cec3 100%);border:1px solid #fff;box-shadow:inset 4px 2px 7px #fff,inset -4px -5px 7px #7c939329,0 8px 12px #3c5b4624;animation:pearlFloat 5s ease-in-out infinite}
.viviPearl .viviCrest{display:block!important;position:absolute;width:31px;height:37px;top:-18px;left:17px;border-radius:95% 5% 60% 25%;transform:rotate(-5deg);background:linear-gradient(120deg,#fff 15%,#f3f3ec 42%,#dce6e7 70%,#f2eaf2);box-shadow:inset 3px 1px 3px #fff;z-index:-1}
.viviPearl .viviShine{left:7px;top:9px;width:16px;height:23px;transform:rotate(30deg);background:linear-gradient(#ffffffd9,#ffffff00);filter:blur(1px)}
.viviPearl .viviFace{left:7px;right:7px;top:23px;height:31px;border:2px solid #effff9;border-radius:48%;background:radial-gradient(ellipse at 35% 15%,#effffbd9,transparent 48%),linear-gradient(130deg,#b3ead1,#92cdb6 70%,#d7f9e9);box-shadow:inset 0 2px 3px #436b5b40,0 1px 2px #73998740;overflow:hidden}
.viviPearl .viviEye{top:8px;left:9px;width:6px;height:9px;background:linear-gradient(150deg,#386d54,#163e2d);border-radius:50%;box-shadow:inset 1px 1px 1px #ffffff70;animation:pearlBlink 7s infinite;transition:height .18s,transform .18s,border-radius .18s}
.viviPearl .viviEye+.viviEye{left:auto;right:9px;animation-delay:.03s}
.viviPearl .viviEye::after{content:'';position:absolute;left:1px;top:1px;width:2px;height:3px;background:#fff;border-radius:50%}
.viviPearl .viviSmile{left:calc(50% - 4px);bottom:5px;width:8px;height:5px;border:0;border-bottom:2px solid #28573e;border-radius:0 0 8px 8px;background:transparent;transition:all .18s}
.viviPearl .viviBlush{top:18px;width:7px;height:4px;background:#d4939466;filter:blur(.5px)}.viviPearl .viviBlush.left{left:3px}.viviPearl .viviBlush.right{right:3px}
.viviPearl .viviBrow{display:block!important;position:absolute;top:4px;width:8px;height:3px;border-top:1px solid #366c4d;opacity:0;transition:transform .18s,opacity .18s}.viviPearl .viviBrow.left{left:8px}.viviPearl .viviBrow.right{right:8px}
.viviPearl .viviHand{top:65px;width:14px;height:18px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff,#e7e5ed 50%,#bdd4c8);border:1px solid #fff;box-shadow:inset 2px 1px 3px #fff,0 4px 7px #31554020;animation:pearlHands 5s ease-in-out infinite}.viviPearl .viviHand.left{left:0}.viviPearl .viviHand.right{right:0;animation-delay:.3s}
.viviPearl .viviShadow{left:25px;right:25px;bottom:4px;background:#50775d29;animation:pearlShadow 5s ease-in-out infinite}
.viviStudio .viviIntro>.viviPearl{transform:scale(1.4);margin:20px 32px 20px 12px}.viviStudio .viviIntro{min-height:192px}
.viviMood{display:inline-flex;margin-top:12px;border:1px solid #b7d7c6;background:#effaf4;border-radius:24px;padding:4px 12px;font-size:13px;color:#365e49}
.viviPersonality{border-bottom:1px solid #d2e2da;padding:0 0 12px}.viviPersonality summary{cursor:pointer;font-size:14px;min-height:44px;align-content:center}.viviPersonality>div{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 0}.viviPersonality select{min-height:44px;max-width:200px;font-size:14px}.viviPersonality p{font-size:13px;color:#496457;margin:0}.viviPersonality label{margin:0!important}
#vital-assistant-launch.viviLauncher:has(.viviPearl){height:112px;padding:0 16px 0 4px;border-radius:32px}
.viviPearl[data-expression="greeting"] .viviHand.right,.viviLauncher:hover .viviPearl .viviHand.right{animation:pearlWave .7s ease-in-out 3;transform-origin:50% 90%}
.viviPearl[data-expression="curious"] .viviBody{animation:pearlTilt 3s ease-in-out infinite}.viviPearl[data-expression="curious"] .viviBrow.right{opacity:1;transform:translateY(-2px) rotate(-12deg)}
.viviPearl[data-expression="thinking"] .viviEye{animation:pearlLook 2.4s ease-in-out infinite}.viviPearl[data-expression="thinking"] .viviSmile{width:5px;left:calc(50% - 2px);height:2px;border-radius:0;transform:rotate(-10deg)}.viviPearl[data-expression="thinking"] .viviHand.right{animation:pearlPonder 2.4s ease-in-out infinite}
.viviPearl[data-expression="focused"] .viviBrow{opacity:1}.viviPearl[data-expression="focused"] .viviBrow.left{transform:rotate(10deg)}.viviPearl[data-expression="focused"] .viviBrow.right{transform:rotate(-10deg)}
.viviPearl[data-expression="ready"] .viviBody{animation:pearlNod .8s ease-in-out 2}.viviPearl[data-expression="ready"] .viviSmile,.viviPearl[data-expression="happy"] .viviSmile{width:12px;left:calc(50% - 6px);height:6px}
.viviPearl[data-expression="happy"] .viviEye,.viviPearl[data-expression="delighted"] .viviEye,.viviPearl[data-expression="greeting"] .viviEye{height:6px;border:2px solid #2c5b42;border-bottom:0;background:none;box-shadow:none;border-radius:8px 8px 0 0;animation:none}.viviPearl:is([data-expression="happy"],[data-expression="delighted"],[data-expression="greeting"]) .viviEye::after{display:none}
.viviPearl[data-expression="wink"] .viviEye+.viviEye{height:2px;top:12px;transform:rotate(-12deg);animation:none}.viviPearl[data-expression="wink"] .viviEye+.viviEye::after{display:none}
.viviPearl[data-expression="delighted"] .viviSmile{height:8px;width:10px;left:calc(50% - 5px);background:#2d5d43;border-radius:2px 2px 8px 8px}.viviPearl[data-expression="delighted"] .viviBody{animation:pearlNod .7s ease-in-out 3}.viviPearl[data-expression="delighted"] .viviHand{animation:pearlCheer .7s ease-in-out 3}
.viviPearl[data-expression="surprised"] .viviEye{height:12px;top:5px;animation:none}.viviPearl[data-expression="surprised"] .viviSmile{width:5px;height:6px;left:calc(50% - 2.5px);border:1.5px solid #2d5d43;border-radius:50%}
.viviPearl[data-expression="concerned"] .viviBrow{opacity:1}.viviPearl[data-expression="concerned"] .viviBrow.left{transform:rotate(-20deg)}.viviPearl[data-expression="concerned"] .viviBrow.right{transform:rotate(20deg)}.viviPearl[data-expression="concerned"] .viviSmile{border-bottom:0;border-top:2px solid #28573e;border-radius:8px 8px 0 0}
.viviPearl[data-expression="sleepy"] .viviEye{height:2px;top:12px;animation:none}.viviPearl[data-expression="sleepy"] .viviEye::after{display:none}.viviPearl[data-expression="sleepy"] .viviBody{animation:pearlFloat 8s ease-in-out infinite}
@keyframes pearlFloat{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-4px) rotate(1deg)}}
@keyframes pearlHands{0%,100%{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-3px) rotate(8deg)}}
@keyframes pearlShadow{0%,100%{transform:scaleX(1);opacity:1}50%{transform:scaleX(.8);opacity:.6}}
@keyframes pearlBlink{0%,43%,47%,100%{transform:scaleY(1)}45%{transform:scaleY(.12)}}
@keyframes pearlWave{0%,100%{transform:translateY(-8px) rotate(-15deg)}50%{transform:translateY(-14px) rotate(35deg)}}
@keyframes pearlTilt{0%,100%{transform:rotate(0)}50%{transform:rotate(7deg) translateY(-2px)}}
@keyframes pearlLook{0%,100%{transform:translateX(0)}40%,65%{transform:translateX(3px) translateY(-2px)}}
@keyframes pearlPonder{0%,100%{transform:translate(0,0)}40%,65%{transform:translate(-7px,-14px) rotate(-20deg)}}
@keyframes pearlNod{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px) rotate(3deg)}}
@keyframes pearlCheer{0%,100%{transform:translateY(0)}50%{transform:translateY(-18px) rotate(15deg)}}
.viviPearl[data-motion="paused"] *,.viviPearl[data-motion="paused"] *::after{animation:none!important;transition:none!important}
@media(max-width:900px){#vital-assistant-launch.viviLauncher:has(.viviPearl){width:84px;min-width:84px;height:96px;padding:0}#vital-assistant-launch .viviPearl{transform:scale(.85)}}
@media(max-width:540px){.viviStudio .viviIntro>.viviPearl{transform:scale(1.1);margin:8px 8px 8px 0}.viviStudio .viviIntro{min-height:160px}.viviPersonality>div{gap:8px}.viviPersonality label{width:100%}}
@media(prefers-reduced-motion:reduce){.viviPearl *,.viviPearl *::after{animation:none!important;transition:none!important}}
/* Copilot workspace: bounded shell, dedicated transcript, always-visible composer. */
#modal-root .modal.viviPanel{width:min(1120px,calc(100vw - 32px));max-width:1120px;height:min(860px,calc(100dvh - 40px));max-height:calc(100dvh - 40px);display:flex;flex-direction:column;overflow:hidden;background:#f7fbf9}
.viviPanel .modalHeader{flex:0 0 auto;padding:16px 24px;border-bottom:1px solid #d4e3db}.viviPanel .modalHeader h2{font-size:20px}.viviPanel .modalHeader p{font-size:13px;margin:4px 0 0}
.viviPanel #modal-form{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.viviPanel .modalBody{flex:1;min-height:0;padding:0!important;overflow:hidden!important;display:flex;flex-direction:column}.viviPanel .modalFooter{display:none}.viviPanel #form-error:empty{display:none}
.viviPanel .viviChatLayout{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr);gap:0;overflow:hidden}
.viviPanel .viviChatLayout.toolsOpen{grid-template-columns:300px minmax(0,1fr)}
.viviPanel .viviTools{display:none;min-height:0;overflow-y:auto;padding:20px;background:#edf5f0;border-right:1px solid #d2e2d8;overscroll-behavior:contain}.viviPanel .toolsOpen .viviTools{display:block}
.viviPanel .viviChatMain{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;background:linear-gradient(135deg,#f9fcfa,#f0f7f3)}
.viviPanel .aiChatToolbar{flex:0 0 auto;padding:12px 20px;border-bottom:1px solid #dce8e1;gap:12px;background:#ffffffb3}.viviPanel .aiChatToolbar strong{margin-right:auto;font-size:14px}.viviPanel .aiChatToolbar .btn{min-height:40px;font-size:13px;white-space:nowrap}
.viviPanel .aiThread{position:relative;flex:1;min-height:0;max-height:none!important;overflow-y:auto;border:0;border-radius:0;margin:0;background:transparent;padding:24px;scroll-padding:24px;overscroll-behavior:contain}
.viviPanel .aiWelcome{margin:clamp(24px,6vh,64px) auto;padding:24px;max-width:440px;font-size:17px;line-height:1.7;color:#416354;text-align:center}
.viviPanel .aiMessage{max-width:760px;margin:0 0 20px;padding:20px;border-radius:20px}.viviPanel .aiMessage.user{margin-left:auto;max-width:85%;background:#e1efe7}.viviPanel .aiMessage.assistant{margin-right:0;background:#fff;border:1px solid #d4e4db;box-shadow:0 4px 16px #365f4510}.viviPanel .viviResponse p{font-size:15px;line-height:1.7}
.viviPanel .viviComposer{flex:0 0 auto;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;border-top:1px solid #ccdfd3;padding:12px 20px 16px;background:#ffffffed;box-shadow:0 -8px 24px #37533d06}
.viviPanel .viviComposer>label[for]{grid-column:1/-1;font-size:13px;margin:0;color:#426251}.viviPanel #ai-question{grid-column:1;min-height:64px!important;height:72px;max-height:120px;resize:none;margin:0;font-size:15px!important;padding:12px;border-radius:16px;background:#f8fcfa}.viviPanel #ai-ask{grid-column:2;grid-row:2;align-self:stretch;min-width:104px;margin:0;padding:12px 16px}
.viviPanel .aiConsent{grid-column:1/-1;margin:0!important;font-size:13px!important;line-height:1.4;align-items:center}.viviPanel .aiConsent input{margin:0}.viviPanel .aiAnswer{grid-column:1/-1;padding:0;border:0;background:none;font-size:13px;line-height:1.4;max-height:52px;overflow:auto;color:#3b6150}.viviPanel .aiAnswer:empty{display:none}
.viviPanel .viviPending{padding:16px 20px;margin-bottom:16px;color:#416553;background:#e6f1eb;border-radius:16px;font-size:14px}
.viviPanel .viviLatest{position:absolute;right:20px;top:64px;z-index:2;background:#245d47;color:white;border:1px solid #fff;border-radius:24px;padding:10px 16px;cursor:pointer;font:inherit;font-size:13px;box-shadow:0 4px 16px #234b3026}.viviPanel .viviLatest[hidden]{display:none}
.viviPanel .viviTools .viviIntro{padding:12px;min-height:128px;gap:8px;border:0;background:none;box-shadow:none}.viviPanel .viviTools .viviIntro>.viviPearl{transform:scale(.95);margin:0;flex-basis:96px}.viviPanel .viviTools .viviIntro strong{font-size:19px;letter-spacing:-.5px}.viviPanel .viviTools .viviIntro p{display:none}.viviPanel .viviTools .viviMood{margin-top:8px}
.viviPanel .viviTools .aiStatus{margin:16px 0 12px;padding:12px}.viviPanel .viviTools .aiStatus>span:last-child{width:100%;margin:0}.viviPanel .viviTools .aiLead{font-size:13px;margin-bottom:16px}.viviPanel .viviTools .aiShortcuts{margin:16px 0}.viviPanel .viviTools .aiShortcuts .btn{flex:1 0 40%;font-size:13px}.viviPanel .viviTools .viviActions{grid-template-columns:1fr;gap:8px;margin:16px 0}.viviPanel .viviTools .viviActions button{padding:12px;grid-template-columns:32px 1fr}.viviPanel .viviTools .viviActions button>span{grid-row:span 2}.viviPanel .viviTools .viviActions small{font-size:13px}.viviPanel .viviTools .aiFootnote{margin-top:16px}.viviPanel .viviTools .aiPrompts{max-height:none}.viviPanel .viviTools .aiTaskMenu{padding:12px}.viviPanel .viviTools .aiContext pre{font-size:12px}.viviPanel .viviTools .aiContext summary{font-size:13px}
@media(max-width:760px){#modal-root .modal.viviPanel{width:calc(100vw - 16px);height:calc(100dvh - 16px);max-height:calc(100dvh - 16px);border-radius:20px}.viviPanel .modalHeader{padding:12px 16px}.viviPanel .modalHeader p{display:none}.viviPanel .viviChatLayout.toolsOpen{grid-template-columns:minmax(0,1fr)}.viviPanel .toolsOpen .viviTools{position:absolute;z-index:5;top:112px;left:8px;bottom:8px;width:min(320px,calc(100% - 16px));border:1px solid #bed7c8;border-radius:16px;box-shadow:8px 8px 32px #284f3526}.viviPanel .aiChatToolbar{padding:8px 12px;gap:8px}.viviPanel .aiChatToolbar strong{display:none}.viviPanel .aiChatToolbar #ai-new{margin-left:auto}.viviPanel .aiThread{padding:16px}.viviPanel .aiMessage{padding:16px}.viviPanel .viviComposer{padding:12px;gap:8px}.viviPanel #ai-ask{min-width:80px;padding:8px}.viviPanel .aiConsent{font-size:12px!important}.viviPanel .viviLatest{top:56px}}
.viviPanel .aiWelcome{display:flex;flex-direction:column;align-items:center;gap:12px}.viviPanel .aiWelcome>.viviPearl{flex-basis:104px}.viviPanel .aiWelcome>strong{font-size:24px;letter-spacing:-.5px;color:#244b38}.viviPanel .aiWelcome>span:last-child{font-size:15px}.viviPanel .aiChatToolbar strong{font-size:13px}
#modal-root .modal.viviPanel .modalFooter{display:none!important}
#modal-root .modal.viviPanel #ai-ask{box-shadow:none;align-self:stretch;height:auto}
.viviPanel .viviComposer .aiAnswer,.viviPanel .viviComposer .aiAnswer:empty{display:block;height:36px;max-height:36px;margin:0;overflow:auto}
/* Pearl concierge: a persistent companion, never removed with the welcome message. */
#modal-root .modal.viviPanel{border:1px solid #ffffffed;box-shadow:0 32px 96px #163e3529,inset 0 1px 0 white;background:#f5faf7}
#modal-root .viviPanel .modalHeader{display:flex;align-items:center;gap:16px;padding:8px 24px;background:linear-gradient(115deg,#fafffd,#e5f2ec 70%,#edf0f8);min-height:112px;box-shadow:inset 0 1px 0 white;position:relative}
.viviPanel .modalHeader>div:not(.viviPresence){flex:1;min-width:0}.viviPanel .modalHeader .iconBtn{margin-left:auto;flex-shrink:0}
.viviPanel .viviPresence{width:104px;flex:0 0 104px;display:grid;place-items:center;position:relative;height:104px}
.viviPanel .viviPresence::before{content:'';position:absolute;inset:12px 0 0;border-radius:50%;background:radial-gradient(ellipse,#b7e5cf77,transparent 65%)}
.viviPanel .viviPresence>.viviPearl{transform:scale(1.05)}
#modal-root .viviPanel .modalHeader h2{font-size:23px;letter-spacing:-.7px;color:#224a3b;margin:0 0 4px;font-weight:600}
.viviPanel .viviScope{display:inline-block;font-size:12px;color:#476759;border:1px solid #bdd6c8;border-radius:20px;padding:2px 8px;background:#ffffff8c;margin-bottom:4px}
#modal-root .viviPanel .modalHeader p{display:block;color:#395f4c;font-size:13px;line-height:1.4;margin:0}
.viviPanel .aiChatToolbar{background:#ffffff75;border-bottom:1px solid #deebe3;padding:8px 20px}.viviPanel .aiChatToolbar .btn{border:1px solid #d7e6de;background:#ffffff96;border-radius:12px}
.viviPanel .viviChatMain{background:radial-gradient(ellipse at 95% 15%,#e8f4ee88,transparent 55%),#f8fbf9}
.viviPanel .aiThread{padding:24px 32px}.viviPanel .aiWelcome{margin:24px auto;padding:16px;gap:8px}.viviPanel .aiWelcome>.viviPearl{display:none!important}.viviPanel .aiWelcome>strong{font-size:28px;font-weight:500;letter-spacing:-1px}.viviPanel .aiWelcome>span:last-child{max-width:320px;color:#557265}
.viviPanel .aiMessage.assistant{border-radius:4px 20px 20px 20px;border-color:#dbe7df;box-shadow:0 4px 20px #21433108;padding:20px 24px}.viviPanel .aiMessage.user{border-radius:20px 4px 20px 20px;background:#e7f0eb;border-color:#d0e1d6;padding:16px 20px}.viviPanel .aiMessage>strong{color:#345e49;font-size:12px;letter-spacing:.3px}
.viviPanel .viviComposer{background:#fcfefded;padding:12px 24px 16px;border-color:#d5e4da;box-shadow:0 -6px 32px #1d453508}
.viviPanel .viviQuick{grid-column:1/-1;display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 4px}.viviQuick button,.viviCopy{font:inherit;font-size:13px;color:#345e49;border:1px solid #cbded2;border-radius:24px;min-height:36px;padding:6px 14px;background:#f0f7f3;cursor:pointer;transition:background .18s,border-color .18s}.viviQuick button:hover,.viviCopy:hover{background:#dcefe3;border-color:#93bfa6}.viviCopy{margin-top:16px;background:#fff;min-height:36px}
.viviPanel #ai-question{grid-row:3;box-shadow:inset 0 1px 3px #264f3110;border-color:#b8cfc1;background:#fff;border-radius:16px!important}.viviPanel #ai-ask{grid-row:3!important;border-radius:16px!important;background:linear-gradient(140deg,#39795a,#204c37)!important;color:#fff!important;font-weight:600!important;min-width:88px;letter-spacing:.2px}
.viviPanel .aiConsent{font-size:12px!important;color:#4c6659}.viviPanel .aiAnswer{color:#4c6659;font-size:12px;height:28px!important;max-height:28px!important}
.viviPanel .viviPending{display:flex;gap:12px;align-items:center;background:#eef6f1;border:1px solid #d6e7dc;padding:16px;font-size:14px}
.viviWorkingDots{display:flex;gap:4px}.viviWorkingDots i{width:6px;height:6px;border-radius:50%;background:#507e63;animation:viviWorking 1.4s ease-in-out infinite}.viviWorkingDots i:nth-child(2){animation-delay:.15s}.viviWorkingDots i:nth-child(3){animation-delay:.3s}
@keyframes viviWorking{0%,70%,100%{opacity:.3;transform:translateY(0)}35%{opacity:1;transform:translateY(-3px)}}
.viviPanel .viviTools .viviIntro{display:none}.viviPanel .viviTools{background:#f1f7f3}.viviPanel .viviLatest{top:56px}
@media(max-width:760px){#modal-root .viviPanel .modalHeader{padding:4px 12px;gap:8px;min-height:96px}.viviPanel .viviPresence{width:76px;height:88px;flex-basis:76px}.viviPanel .viviPresence>.viviPearl{transform:scale(.8)}#modal-root .viviPanel .modalHeader h2{font-size:20px}.viviPanel .toolsOpen .viviTools{top:146px}.viviPanel .aiThread{padding:16px}.viviPanel .viviComposer{padding:10px 12px}.viviPanel .viviQuick{gap:6px}.viviQuick button{min-height:40px;padding:6px 12px}.viviPanel .aiMessage.assistant{padding:16px}.viviPanel .viviScope{font-size:11px}.viviPanel .aiWelcome>strong{font-size:23px}}
@media(max-height:650px){#modal-root .viviPanel .modalHeader{min-height:72px;padding:0 12px}.viviPanel .viviPresence{height:72px;width:72px;flex-basis:72px}.viviPanel .viviPresence>.viviPearl{transform:scale(.65)}.viviPanel .viviScope{display:none}.viviPanel #ai-question{height:56px;min-height:56px!important}.viviPanel .viviComposer{padding:8px 12px}.viviPanel .aiAnswer{height:20px!important}.viviPanel .viviQuick button{min-height:32px}}
@media(prefers-reduced-motion:reduce){.viviWorkingDots i{animation:none}.viviQuick button,.viviCopy{transition:none}}
.viviPanel:has(.viviPearl[data-motion="paused"]) .viviWorkingDots i{animation:none}
.viviDraftReview{margin-top:16px;padding:16px;border:1px solid #bed8c9;border-radius:16px;background:#fff}.viviDraftReview[hidden]{display:none}.viviDraftReview textarea{width:100%;font-size:14px!important;line-height:1.6;min-height:160px;margin-top:8px}.viviDraftReview p{font-size:13px;line-height:1.6;color:#405c4d}.viviDraftReview>.btn{margin:8px 8px 0 0}.viviInline [data-vivi-generate]+button{margin-left:8px}.viviDraftReview [hidden]{display:none!important}
/* ==========================================================================
   Vivi in Vital's design language (Oct 30): a small glass orb launcher, a cobalt visor,
   and a chat panel that follows the light / dark theme. Later rules here win over the
   earlier mint styles above; everything reads from the --vp-* tokens below.
   ========================================================================== */
#modal-root .modal.viviPanel,.viviPageHelp,.viviInline,.viviFieldHelp,#vital-assistant-launch{
 --vp-bg:#F6F8FC;--vp-surface:#FFFFFF;--vp-surface-2:#EEF1F8;--vp-line:#DDE3EF;--vp-ink:#141A2E;--vp-ink-2:#45506A;--vp-ink-3:#66708A;
 --vp-acc:#3B4CF0;--vp-acc-2:#5B6BFF;--vp-acc-soft:rgba(59,76,240,.10);--vp-acc-ink:#2C3BC8;--vp-ok:#1F9D6B}
:root[data-theme="dark"] :is(#modal-root .modal.viviPanel,.viviPageHelp,.viviInline,.viviFieldHelp,#vital-assistant-launch){
 --vp-bg:#11141D;--vp-surface:#1A1E2A;--vp-surface-2:#222736;--vp-line:rgba(200,212,255,.13);--vp-ink:#EEF1F8;--vp-ink-2:#B9C1D6;--vp-ink-3:#8E97AF;
 --vp-acc:#5F6DFF;--vp-acc-2:#8591FF;--vp-acc-soft:rgba(111,124,255,.16);--vp-acc-ink:#B3BAFF;--vp-ok:#4CD49B}

/* ---- The character: pearl body, cobalt glass visor, white eyes ---- */
.vivi.viviPearl .viviBody{background:radial-gradient(ellipse at 26% 26%,#fff 3%,#fdfdff 22%,#EDF0FA 48%,#E3E6F4 68%,#F3F1FA 82%,#C6CDE6 100%);box-shadow:inset 4px 2px 7px #fff,inset -4px -5px 7px rgba(70,84,150,.16),0 8px 12px rgba(40,52,130,.16)}
.vivi.viviPearl .viviCrest{background:linear-gradient(120deg,#fff 15%,#F1F2FA 42%,#DCE1F1 70%,#EEEAF6)}
.vivi.viviPearl .viviFace{border-color:#F4F6FF;background:radial-gradient(ellipse at 32% 12%,rgba(255,255,255,.55),transparent 46%),linear-gradient(135deg,#7482FF,#4152F2 55%,#2B37BC);box-shadow:inset 0 2px 4px rgba(10,16,70,.35),0 1px 3px rgba(40,52,160,.3)}
.vivi.viviPearl .viviEye{background:linear-gradient(160deg,#FFFFFF,#DCE2FF);box-shadow:0 0 5px rgba(220,228,255,.85)}
.vivi.viviPearl .viviEye::after{background:#4152F2;opacity:.35}
.vivi.viviPearl .viviSmile{border-bottom-color:#fff}
.vivi.viviPearl .viviBrow{border-top-color:#fff}
.vivi.viviPearl .viviBlush{background:rgba(255,170,190,.55)}
.vivi.viviPearl .viviHand{background:radial-gradient(circle at 30% 25%,#fff,#ECEEF7 50%,#C9D0EA)}
.vivi.viviPearl .viviShadow{background:rgba(40,52,130,.18)}
.vivi.viviPearl:is([data-expression="happy"],[data-expression="delighted"],[data-expression="greeting"]) .viviEye{border-color:#fff;background:none}
.vivi.viviPearl[data-expression="delighted"] .viviSmile{background:#fff}
.vivi.viviPearl[data-expression="surprised"] .viviSmile{border-color:#fff}
.vivi.viviPearl[data-expression="concerned"] .viviSmile{border-top-color:#fff}

/* ---- Launcher: a 60px glass orb in the corner; the greeting slides out on hover, focus, or once per session ---- */
:root #vital-assistant-launch.viviLauncher,:root #vital-assistant-launch.viviLauncher:has(.viviPearl){
 right:22px;bottom:22px;width:60px;min-width:60px;height:60px;padding:0;gap:0;border-radius:50%;display:block;overflow:visible;
 background:radial-gradient(120% 120% at 30% 14%,#FFFFFF 0%,#E9EDFB 52%,#C9D2F2 100%);border:1px solid rgba(255,255,255,.95);
 box-shadow:0 16px 34px -14px rgba(40,56,160,.5),0 0 0 1px rgba(24,34,90,.07),inset 0 1px 0 #fff;backdrop-filter:none;-webkit-backdrop-filter:none;
 transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s}
:root #vital-assistant-launch.viviLauncher:hover{background:radial-gradient(120% 120% at 30% 14%,#FFFFFF 0%,#EDF0FC 52%,#D2DAF5 100%);transform:translateY(-2px);box-shadow:0 20px 40px -14px rgba(40,56,160,.6),0 0 0 1px rgba(59,76,240,.18),inset 0 1px 0 #fff}
:root #vital-assistant-launch.viviLauncher:active{transform:scale(.96)}
:root #vital-assistant-launch.viviLauncher:focus-visible{outline:3px solid var(--vp-acc);outline-offset:4px}
:root #vital-assistant-launch .viviPearl{position:absolute;left:50%;top:50%;margin:0;transform:translate(-50%,-52%) scale(.5)}
:root #vital-assistant-launch .viviGreeting{position:absolute;right:calc(100% + 12px);top:50%;display:grid;gap:2px;padding:10px 14px;border-radius:16px;white-space:nowrap;text-align:left;
 background:var(--vp-surface);color:var(--vp-ink);border:1px solid var(--vp-line);box-shadow:0 14px 30px -16px rgba(20,30,80,.45);
 opacity:0;transform:translate(8px,-50%);pointer-events:none;transition:opacity .25s ease,transform .3s cubic-bezier(.2,.7,.2,1)}
:root #vital-assistant-launch .viviGreeting strong{font-size:13.5px;font-weight:600;color:var(--vp-ink)}
:root #vital-assistant-launch .viviGreeting>span{font-size:12px;color:var(--vp-ink-3)}
:root #vital-assistant-launch:is(:hover,:focus-visible,.viviHello) .viviGreeting{opacity:1;transform:translate(0,-50%)}
:root[data-theme="dark"] #vital-assistant-launch.viviLauncher,:root[data-theme="dark"] #vital-assistant-launch.viviLauncher:has(.viviPearl){
 background:radial-gradient(120% 120% at 30% 14%,#2D3558 0%,#171C30 58%,#0D1120 100%);border-color:rgba(140,160,255,.24);
 box-shadow:0 16px 34px -14px rgba(0,0,0,.9),0 0 26px -6px rgba(95,109,255,.6),inset 0 1px 0 rgba(255,255,255,.12)}
:root[data-theme="dark"] #vital-assistant-launch.viviLauncher:hover{background:radial-gradient(120% 120% at 30% 14%,#343D66 0%,#1A2036 58%,#0E1222 100%);box-shadow:0 20px 40px -14px rgba(0,0,0,.9),0 0 32px -4px rgba(95,109,255,.75),inset 0 1px 0 rgba(255,255,255,.14)}
:root[data-theme="dark"] #vital-assistant-launch .viviGreeting{box-shadow:0 14px 30px -14px rgba(0,0,0,.85)}
@media(max-width:900px){:root #vital-assistant-launch.viviLauncher,:root #vital-assistant-launch.viviLauncher:has(.viviPearl){right:14px;bottom:calc(84px + env(safe-area-inset-bottom));width:56px;min-width:56px;height:56px}:root #vital-assistant-launch .viviPearl{transform:translate(-50%,-52%) scale(.46)}:root #vital-assistant-launch .viviGreeting{display:none}}
@media(prefers-reduced-motion:reduce){:root #vital-assistant-launch.viviLauncher,:root #vital-assistant-launch .viviGreeting{transition:none}:root #vital-assistant-launch.viviLauncher:hover{transform:none}}

/* ---- Chat panel: follows the theme ---- */
#modal-root .modal.viviPanel{background:var(--vp-bg);color:var(--vp-ink);border:1px solid var(--vp-line);box-shadow:0 40px 110px -30px rgba(10,16,60,.45)}
:root[data-theme="dark"] #modal-root .modal.viviPanel{box-shadow:0 40px 110px -20px rgba(0,0,0,.85),0 0 0 1px rgba(140,160,255,.08)}
#modal-root .modal.viviPanel .modalHeader{background:radial-gradient(90% 140% at 0% 0%,var(--vp-acc-soft),transparent 60%),var(--vp-surface);border-bottom:1px solid var(--vp-line);box-shadow:none}
#modal-root .modal.viviPanel .modalHeader h2{color:var(--vp-ink)}
#modal-root .modal.viviPanel .modalHeader p,#modal-root .modal.viviPanel [data-vivi-presence]{color:var(--vp-ink-2)}
#modal-root .modal.viviPanel .viviPresence::before{background:radial-gradient(ellipse,rgba(95,109,255,.28),transparent 65%)}
#modal-root .modal.viviPanel .viviScope{color:var(--vp-acc-ink);border-color:transparent;background:var(--vp-acc-soft);font-weight:600}
#modal-root .modal.viviPanel .aiWorkspace{--ai-ink:var(--vp-ink);--ai-line:var(--vp-line);color:var(--vp-ink)}
#modal-root .modal.viviPanel .aiWorkspace :focus-visible{outline-color:var(--vp-acc)}
#modal-root .modal.viviPanel .aiChatToolbar{background:var(--vp-surface);border-bottom:1px solid var(--vp-line)}
#modal-root .modal.viviPanel .aiChatToolbar strong{color:var(--vp-ink-2)}
#modal-root .modal.viviPanel .aiChatToolbar .btn{background:var(--vp-surface-2);border:1px solid var(--vp-line);color:var(--vp-ink);box-shadow:none}
#modal-root .modal.viviPanel .aiChatToolbar .btn:hover,#modal-root .modal.viviPanel .aiChatToolbar .btn[aria-expanded="true"]{background:var(--vp-acc-soft);border-color:var(--vp-acc);color:var(--vp-acc-ink)}
#modal-root .modal.viviPanel .viviChatMain{background:radial-gradient(ellipse at 95% 10%,var(--vp-acc-soft),transparent 55%),var(--vp-bg)}
#modal-root .modal.viviPanel .aiWelcome{color:var(--vp-ink-2)}
#modal-root .modal.viviPanel .aiWelcome>strong{color:var(--vp-ink)}
#modal-root .modal.viviPanel .aiWelcome>span:last-child{color:var(--vp-ink-2)}
#modal-root .modal.viviPanel .aiMessage.assistant{background:var(--vp-surface);border:1px solid var(--vp-line);color:var(--vp-ink);box-shadow:0 6px 22px -14px rgba(10,16,60,.35)}
#modal-root .modal.viviPanel .aiMessage.user{background:var(--vp-acc-soft);border:1px solid transparent;color:var(--vp-ink)}
#modal-root .modal.viviPanel .aiMessage>strong{color:var(--vp-acc-ink)}
#modal-root .modal.viviPanel .viviResponse h4{color:var(--vp-ink)}
#modal-root .modal.viviPanel .viviResponse p{color:var(--vp-ink)}
#modal-root .modal.viviPanel .viviResponseStep{border-left-color:var(--vp-acc)}
#modal-root .modal.viviPanel :is(.viviQuick button,.viviCopy){background:var(--vp-surface);border:1px solid var(--vp-line);color:var(--vp-ink)}
#modal-root .modal.viviPanel :is(.viviQuick button,.viviCopy):hover{background:var(--vp-acc-soft);border-color:var(--vp-acc);color:var(--vp-acc-ink)}
#modal-root .modal.viviPanel .viviComposer{background:var(--vp-surface);border-top:1px solid var(--vp-line);box-shadow:0 -10px 30px -20px rgba(10,16,60,.3)}
#modal-root .modal.viviPanel .viviComposer>label[for]{color:var(--vp-ink-2);font-weight:550}
#modal-root .modal.viviPanel #ai-question{background:var(--vp-surface-2);border:1px solid var(--vp-line);color:var(--vp-ink);box-shadow:none}
#modal-root .modal.viviPanel #ai-question::placeholder{color:var(--vp-ink-3);opacity:1}
#modal-root .modal.viviPanel #ai-question:focus{border-color:var(--vp-acc);box-shadow:0 0 0 3px var(--vp-acc-soft);outline:0}
#modal-root .modal.viviPanel .aiConsent{color:var(--vp-ink-2)}
#modal-root .modal.viviPanel .aiConsent input{accent-color:var(--vp-acc)}
#modal-root .modal.viviPanel .aiAnswer{color:var(--vp-ink-3)}
#modal-root .modal.viviPanel #ai-ask{background:var(--vp-surface-2)!important;color:var(--vp-ink-3)!important;border:1px solid var(--vp-line)!important;opacity:1;transition:background .2s,color .2s,box-shadow .2s}
#modal-root .modal.viviPanel .viviCanSend #ai-ask{background:linear-gradient(140deg,var(--vp-acc-2),var(--vp-acc))!important;color:#fff!important;border-color:transparent!important;box-shadow:0 10px 22px -12px rgba(59,76,240,.9)!important}
#modal-root .modal.viviPanel .viviCanSend #ai-ask:hover{filter:brightness(1.06)}
#modal-root .modal.viviPanel #ai-ask:disabled{cursor:not-allowed}
#modal-root .modal.viviPanel .viviPending{background:var(--vp-acc-soft);border:1px solid var(--vp-line);color:var(--vp-ink-2)}
#modal-root .modal.viviPanel .viviWorkingDots i{background:var(--vp-acc)}
#modal-root .modal.viviPanel .viviLatest{background:var(--vp-acc);border-color:transparent}
#modal-root .modal.viviPanel .viviTools{background:var(--vp-surface-2);border-right:1px solid var(--vp-line);color:var(--vp-ink)}
#modal-root .modal.viviPanel :is(.aiStatus,.aiSetup,.aiChecks,.aiTaskMenu,.viviActions button,.viviDraftReview){background:var(--vp-surface);border:1px solid var(--vp-line);color:var(--vp-ink)}
#modal-root .modal.viviPanel .aiDot{background:var(--vp-ok)}
#modal-root .modal.viviPanel .aiStatus.viviOff .aiDot{background:#F2A21B}
:root[data-theme="dark"] #modal-root .modal.viviPanel{color-scheme:dark}
#modal-root .modal.viviPanel :is(.aiLead,.aiFootnote,.viviActions small,.viviDraftReview p){color:var(--vp-ink-2)}
#modal-root .modal.viviPanel .aiFootnote{border-color:var(--vp-line)}
#modal-root .modal.viviPanel .viviActions button>span{background:var(--vp-acc-soft);color:var(--vp-acc-ink)}
#modal-root .modal.viviPanel .viviActions button:hover{background:var(--vp-acc-soft);border-color:var(--vp-acc);box-shadow:none}
#modal-root .modal.viviPanel .aiShortcuts .btn{background:transparent;border:1px solid var(--vp-line);color:var(--vp-ink)}
#modal-root .modal.viviPanel .aiShortcuts .btn:hover{border-color:var(--vp-acc);color:var(--vp-acc-ink)}
#modal-root .modal.viviPanel :is(.aiContext summary,.aiTaskMenu summary,.viviPersonality summary){color:var(--vp-ink)}
#modal-root .modal.viviPanel .aiContext pre{background:var(--vp-surface-2);color:var(--vp-ink-2)}
#modal-root .modal.viviPanel .viviPersonality{border-color:var(--vp-line)}
#modal-root .modal.viviPanel .viviMood{background:var(--vp-acc-soft);border-color:transparent;color:var(--vp-acc-ink)}
#modal-root .modal.viviPanel :is(select,.viviDraftReview textarea){background:var(--vp-surface-2);color:var(--vp-ink);border:1px solid var(--vp-line)}
#modal-root .modal.viviPanel label{color:var(--vp-ink-2)}
:root[data-theme="dark"] #modal-root .modal.viviPanel .vivi.viviPearl .viviBody{box-shadow:inset 4px 2px 7px #fff,inset -4px -5px 7px rgba(70,84,150,.2),0 0 22px rgba(95,109,255,.35)}

/* ---- Help bar and field helpers on other screens ---- */
.viviPageHelp{background:radial-gradient(80% 160% at 0% 0%,var(--vp-acc-soft),transparent 60%),var(--vp-surface);border:1px solid var(--vp-line);color:var(--vp-ink)}
.viviPageHelp strong{color:var(--vp-ink)}.viviPageHelp p{color:var(--vp-ink-2)}
.viviFieldHelp{background:var(--vp-acc-soft);border-color:transparent;color:var(--vp-acc-ink)}
.viviInline{background:var(--vp-surface);border-color:var(--vp-line);color:var(--vp-ink)}
