.vision-launch{position:fixed;right:24px;bottom:24px;z-index:60;display:inline-flex;align-items:center;gap:10px;height:52px;padding:0 18px 0 7px;border:0;border-radius:26px;background:var(--card);color:var(--ink);font:600 15px/1 var(--sans);cursor:pointer;box-shadow:0 0 0 1px var(--hair),0 16px 36px -14px rgb(20 24 40/.45);transition:transform .3s var(--spring),box-shadow .3s,background-color .2s}.vision-launch:hover{transform:translateY(-2px);box-shadow:0 0 0 1px var(--hair),0 20px 44px -14px rgb(20 24 40/.5)}.vision-launch:active{transform:scale(.97)}.vision-launch.is-raised{bottom:100px}.vision-launch-mark{width:38px;height:38px}.vision-launch.is-open{background:var(--accent-wash);color:var(--accent-text)}.vision-launch-badge{min-width:22px;height:22px;padding:0 6px;border-radius:11px;display:grid;place-items:center;background:var(--lime);color:var(--ink);font:700 12px/1 var(--sans)}.vision-agent{--vision-y:14px;position:fixed;right:24px;bottom:88px;z-index:60;width:min(420px,calc(100vw - 32px));height:min(680px,calc(100dvh - 120px));display:flex;flex-direction:column;overflow:hidden;background:var(--card);color:var(--ink);border-radius:24px;box-shadow:0 32px 80px -24px rgb(20 24 40/.42),0 0 0 1px var(--hair)}html body:has(>.app) .vision-agent{--vision-y:-10px}.vision-agent>*{flex:none}@media (prefers-reduced-motion:no-preference){.vision-agent{animation:vision-in .34s var(--glide) both;transform-origin:90% 100%}.vision-agent.is-closing{animation:vision-out .19s var(--ease-out) both;pointer-events:none}}@keyframes vision-in{0%{opacity:0;transform:translateY(var(--vision-y)) scale(.96)}}@keyframes vision-out{to{opacity:0;transform:translateY(calc(var(--vision-y) * .7)) scale(.97)}}.vision-agent-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 10px 12px 16px;box-shadow:inset 0 -1px 0 var(--hair)}.vision-agent-who{display:flex;align-items:center;gap:10px;min-width:0}html .vision-agent-name{font-size:16px}.vision-agent-tools{display:flex;align-items:center;gap:2px}.vision-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:0;background:transparent;color:var(--ink-2);cursor:pointer;transition:background-color .2s,color .2s}.vision-icon:hover{background:var(--ground);color:var(--ink)}.vision-journal-link{font:500 14px/1 var(--sans);color:var(--accent-text);padding:10px 12px;border-radius:var(--r-pill);text-decoration:none}.vision-journal-link:hover{background:var(--accent-wash)}.vision-agent>.vision-agent-log{flex:1 1 auto;min-height:96px;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:10px;padding:18px 16px 12px}.vision-row{display:flex;align-items:flex-end;gap:8px}.vision-row.is-user{justify-content:flex-end;padding-left:38px}.vision-row-mark{flex:none;display:grid;place-items:end center;width:30px;min-height:30px}.vision-msg{min-width:0;flex:1;display:grid;gap:6px;justify-items:start}.vision-bubble{margin:0;max-width:100%;padding:10px 15px;border-radius:20px;font:400 15.5px/1.5 var(--sans);overflow-wrap:anywhere}.vision-row.is-user .vision-bubble{max-width:100%;background:var(--accent);color:var(--on-accent);border-bottom-right-radius:6px;white-space:pre-wrap}.vision-row.is-vision .vision-bubble{background:var(--accent-wash);color:var(--ink);border-bottom-left-radius:6px}.vision-msg>.vision-bubble,.vision-row.is-vision>.vision-bubble{margin-right:24px}.vision-bubble p{margin:0;white-space:pre-wrap}.vision-bubble>:is(p,div,small)+:is(p,div,small){margin-top:10px}.vision-block ul{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:5px}.vision-block li{position:relative;padding-left:17px}.vision-block li:before{content:"";position:absolute;left:3px;top:.6em;width:6px;height:6px;border-radius:50%;background:var(--accent)}.vision-row.is-hello .vision-bubble{display:grid;gap:4px;padding:14px 18px 15px}.vision-hello-title{font:600 19px/1.25 var(--sans);letter-spacing:-.012em}.vision-row.is-typing .vision-bubble{display:inline-flex;align-items:center;gap:5px;height:42px;padding:0 17px}.vision-row.is-typing i{display:block;width:7px;height:7px;border-radius:50%;background:var(--accent);opacity:.5}.vision-steps{display:block;color:var(--muted);font-size:12.5px;line-height:1.4}.vision-chips{display:flex;flex-wrap:wrap;gap:8px;padding-left:38px;margin-top:2px}.vision-chips button{min-height:38px;padding:8px 15px;border:0;border-radius:var(--r-pill);background:var(--card);color:var(--accent-text);box-shadow:inset 0 0 0 1px var(--line-strong);font:500 14px/1.3 var(--sans);text-align:left;cursor:pointer;transition:background-color .2s,box-shadow .2s,transform .25s var(--spring)}.vision-chips button:hover:not(:disabled){background:var(--accent-wash);box-shadow:inset 0 0 0 1px var(--accent-wash);transform:translateY(-1px)}.vision-chips button:active:not(:disabled){transform:scale(.97)}.vision-chips button:disabled{opacity:.5;cursor:default}@media (prefers-reduced-motion:no-preference){.vision-reminders,.vision-row,.vision-waiting{animation:vision-rise .36s var(--glide) both}.vision-row.is-user{animation-name:vision-rise-right}.vision-chips button{animation:vision-rise .36s var(--glide) both;animation-delay:calc(var(--i, 0) * 45ms + 90ms)}.vision-row.is-typing i{animation:vision-dot 1.15s ease-in-out infinite}.vision-row.is-typing i:nth-child(2){animation-delay:.15s}.vision-row.is-typing i:nth-child(3){animation-delay:.3s}}@keyframes vision-rise{0%{opacity:0;transform:translateY(8px)}}@keyframes vision-rise-right{0%{opacity:0;transform:translate(8px,6px)}}@keyframes vision-dot{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}.vision-reminders,.vision-waiting{border-radius:16px;background:var(--ground);padding:4px 12px;font-size:14px}.vision-reminders summary,.vision-waiting summary{display:flex;align-items:center;gap:8px;min-height:40px;cursor:pointer;list-style:none;font-weight:600;color:var(--ink-2)}.vision-reminders summary::-webkit-details-marker,.vision-waiting summary::-webkit-details-marker{display:none}.vision-reminders summary:after,.vision-waiting summary:after{content:"";margin-left:auto;width:7px;height:7px;border-right:1.75px solid var(--muted);border-bottom:1.75px solid var(--muted);transform:translateY(-2px) rotate(45deg);transition:transform .2s var(--ease-out)}.vision-reminders[open] summary:after,.vision-waiting[open] summary:after{transform:translateY(1px) rotate(-135deg)}.vision-reminders ul{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:4px;max-height:132px;overflow-y:auto}.vision-reminders li{display:flex;justify-content:space-between;align-items:center;gap:8px}.vision-reminders small{display:block;color:var(--muted)}.vision-reminders .is-due{font-weight:600}.vision-reminders .is-due small{color:var(--error)}.vision-notify{background:none;border:0;padding:4px 0 8px;cursor:pointer;font-size:13.5px;text-decoration:underline;color:var(--ink-2)}.vision-count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 7px;border-radius:var(--r-pill);background:var(--amber-wash);color:var(--ink);font:600 12px/1 var(--sans);font-variant-numeric:tabular-nums}.vision-waiting-list{display:grid;gap:8px;padding-bottom:10px}.vision-waiting-more{justify-self:start;padding:4px 2px;font-size:13.5px;color:var(--accent-text)}.vision-card{justify-self:stretch;border-radius:16px;background:var(--card);box-shadow:var(--ring-1);padding:12px 14px;display:grid;gap:6px}.vision-card header{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.vision-card header strong{font-size:14.5px;font-weight:600;line-height:1.35}.vision-card p{font-size:14px;line-height:1.45;margin:0;color:var(--ink-2)}.vision-card-status{font:600 12px/1 var(--sans);padding:5px 9px;border-radius:var(--r-pill);background:var(--amber-wash);white-space:nowrap}.vision-card.status-applied .vision-card-status{background:var(--lime)}.vision-card.status-failed .vision-card-status{background:var(--signal-wash);color:var(--ink)}.vision-card.status-dismissed,.vision-card.status-undone{opacity:.72}.vision-card.status-dismissed .vision-card-status,.vision-card.status-undone .vision-card-status{background:var(--ground-2)}.vision-card.is-compact{gap:4px;padding:11px 13px 12px}.vision-card.is-compact header strong{font-size:14px}.vision-card.is-compact p{font-size:13.5px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.vision-card-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}html .vision-card-actions .button{min-height:34px;padding:0 14px;font-size:13.5px;gap:5px}.vision-card-agent{font-size:12.5px;color:var(--muted)}.vision-error{margin:0 18px 6px;color:var(--error);font-size:13.5px}.vision-card .vision-error{margin:0}.vision-composer{display:flex;align-items:flex-end;gap:8px;margin:4px 12px 12px;padding:5px 5px 5px 18px;border-radius:26px;background:var(--ground);transition:background-color .2s,box-shadow .2s}.vision-composer:focus-within{background:var(--card);box-shadow:inset 0 0 0 1.5px var(--accent),0 0 0 4px var(--accent-wash)}html .vision-composer textarea{flex:1;min-width:0;resize:none;field-sizing:content;min-height:42px;max-height:140px;padding:10px 0;margin:0;border:0;border-radius:0;background:transparent;color:var(--ink);font:400 16px/1.4 var(--sans);box-shadow:none}html .vision-composer textarea:is(:focus,:focus-visible,:hover){outline:none;border:0;box-shadow:none}.vision-send{flex:none;display:grid;place-items:center;width:42px;height:42px;border:0;border-radius:50%;background:var(--accent);color:var(--on-accent);cursor:pointer;transition:background-color .2s,color .2s,transform .25s var(--spring)}.vision-send:hover:not(:disabled){background:var(--accent-press);transform:translateY(-1px)}.vision-send:active:not(:disabled){transform:scale(.92)}.vision-send:disabled{background:var(--ground-3);color:var(--muted);cursor:default}@media (max-height:760px){.vision-agent{bottom:84px;height:calc(100dvh - 100px)}}@media (max-width:760px){.vision-launch{right:16px;bottom:calc(16px + env(safe-area-inset-bottom));padding:0 7px;width:52px}.vision-launch-badge,.vision-launch-label{display:none}.vision-launch.is-raised{bottom:calc(92px + env(safe-area-inset-bottom))}.vision-agent,html body:has(>.app) .vision-agent{--vision-y:28px;right:0;bottom:0;width:100vw;height:100dvh;border-radius:0;box-shadow:none;padding-top:env(safe-area-inset-top)}.vision-agent>.vision-agent-log{padding-inline:14px}.vision-composer{margin:4px 10px max(10px,env(safe-area-inset-bottom))}}@media print{.vision-agent,.vision-launch{display:none}}