.assistant-toggle{position:fixed;right:20px;bottom:20px;z-index:60;width:88px;height:70px;background:transparent;border:none;cursor:pointer;padding:0;display:grid;place-items:center;filter:drop-shadow(0 10px 18px oklch(0 0 0/.22)) drop-shadow(0 2px 6px oklch(0 0 0/.12));transition:transform .14s ease,filter .14s ease}.assistant-toggle:hover{transform:translateY(-2px);filter:drop-shadow(0 14px 22px oklch(0 0 0/.26)) drop-shadow(0 4px 8px oklch(0 0 0/.14))}.assistant-toggle:active{transform:translateY(0)}.assistant-toggle .label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.door-frame{position:relative;display:inline-block;width:78px;height:64px;overflow:hidden}.door-anim{position:absolute;inset:0;background-image:url(/openclaw/pixel/hobbit-door-sheet.png);background-repeat:no-repeat;background-size:600% 100%;image-rendering:pixelated;image-rendering:crisp-edges;z-index:2}.door-anim,.door-state-closed .door-anim{background-position:0 0}.door-state-opening .door-anim{animation:doorOpen .5s steps(5) forwards}.door-state-open .door-anim{background-position:100% 0}.door-state-closing .door-anim{animation:doorClose .5s steps(5) forwards}@keyframes doorOpen{0%{background-position:0 0}to{background-position:100% 0}}@keyframes doorClose{0%{background-position:100% 0}to{background-position:0 0}}.assistant-stage{position:fixed;right:110px;bottom:24px;width:280px;height:78px;pointer-events:none;z-index:56}.stage-agent{position:absolute;bottom:0;right:-10px;opacity:0;transition:right 1.4s linear,opacity .35s ease}.assistant-stage.phase-emerging .stage-agent{right:-10px;opacity:1}.assistant-stage.phase-idle .stage-agent,.assistant-stage.phase-walking .stage-agent{right:calc(100% - 56px);opacity:1}.assistant-sidebar{position:fixed;top:88px;right:16px;bottom:108px;width:400px;max-width:calc(100vw - 32px);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden;box-shadow:inset 0 1px 0 oklch(1 0 0/.4),0 20px 50px oklch(0 0 0/.12),0 6px 14px oklch(0 0 0/.06);opacity:0;pointer-events:none;transform:translateX(24px) scale(.985);transition:opacity .22s ease,transform .22s ease;z-index:55}.assistant-sidebar.open{opacity:1;pointer-events:auto;transform:translateX(0) scale(1)}.assistant-hd{position:relative;display:flex;justify-content:space-between;align-items:flex-end;padding:14px 18px 12px;border-bottom:1px dashed var(--line);background:linear-gradient(to bottom,var(--card),color-mix(in oklch,var(--card) 92%,var(--card-inset)))}.assistant-hd-left{display:flex;flex-direction:column;gap:4px;min-width:0}.assistant-eyebrow{font-family:var(--font-mono);font-size:9px;letter-spacing:.18em;color:var(--ink-3);text-transform:uppercase;display:inline-flex;align-items:center;gap:8px}.assistant-eyebrow .dot{width:6px;height:6px;border-radius:999px;background:var(--ok);box-shadow:0 0 5px var(--ok)}.assistant-title{font-family:var(--font-display);font-size:20px;font-weight:500;letter-spacing:-.01em;color:var(--ink);line-height:1.1}.assistant-title em{font-style:italic;color:var(--ink-2);font-weight:400}.assistant-hd-right{display:inline-flex;align-items:center;gap:6px}.assistant-textbtn{background:transparent;border:none;color:var(--ink-3);cursor:pointer;padding:6px 10px;border-radius:6px;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;transition:color .12s ease,background .12s ease}.assistant-textbtn:hover{color:var(--ink);background:var(--card-inset)}.assistant-textbtn.danger:hover{color:oklch(.55 .18 30);background:oklch(.96 .05 30)}.assistant-hd-sep{width:1px;height:12px;background:var(--line);margin:0 2px}.assistant-body{flex:1;overflow-y:auto;padding:18px 16px;display:flex;flex-direction:column;gap:12px;scroll-behavior:smooth}.assistant-body::-webkit-scrollbar{width:6px}.assistant-body::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px}.assistant-empty{color:var(--ink-3);font-family:var(--font-display);font-style:italic;font-size:14px;text-align:center;margin:auto;padding:0 24px;line-height:1.5}.assistant-msg{font-size:13.5px;line-height:1.5;max-width:88%;white-space:pre-wrap;word-break:break-word;position:relative}.assistant-msg.user{align-self:flex-end;background:var(--accent-soft);color:var(--ink);border:1px solid color-mix(in oklch,var(--accent) 40%,transparent);border-radius:12px 12px 4px 12px;padding:9px 12px;font-family:var(--font-body)}.assistant-msg.assistant{background:transparent;color:var(--ink);border-radius:0;padding:2px 0 2px 12px;font-family:var(--font-display);font-size:14px;line-height:1.55}.assistant-msg.assistant,.assistant-msg.typing{align-self:flex-start;border-left:2px solid var(--accent)}.assistant-msg.typing{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);padding:6px 0 6px 12px;display:inline-flex;align-items:center;gap:10px}.assistant-typing-dots{display:inline-flex;align-items:center;gap:4px}.assistant-typing-dots i{width:6px;height:6px;border-radius:999px;background:var(--accent);animation:assistantDot 1.1s ease-in-out infinite}.assistant-typing-dots i:first-child{animation-delay:0s}.assistant-typing-dots i:nth-child(2){animation-delay:.18s}.assistant-typing-dots i:nth-child(3){animation-delay:.36s}@keyframes assistantDot{0%,70%,to{transform:translateY(0) scale(.85);opacity:.35}35%{transform:translateY(-4px) scale(1);opacity:1}}.assistant-input{border-top:1px solid var(--line);padding:12px;display:flex;gap:8px;background:color-mix(in oklch,var(--card) 92%,var(--card-inset))}.assistant-input input{flex:1;background:var(--card);border:1px solid var(--line);color:var(--ink);padding:10px 12px;border-radius:10px;font-family:var(--font-body);font-size:13.5px;transition:border-color .12s ease,background .12s ease}.assistant-input input:focus{outline:none;border-color:var(--accent);background:var(--card)}.assistant-input input:disabled{opacity:.5}.assistant-input button{background:var(--ink);color:var(--bg);border:1px solid var(--ink);padding:0 16px;border-radius:10px;cursor:pointer;font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;transition:opacity .12s ease}.assistant-input button:hover:not(:disabled){opacity:.85}.assistant-input button:disabled{opacity:.35;cursor:not-allowed}@media (max-width:640px){.assistant-sidebar{top:64px;right:8px;bottom:64px;left:8px;width:auto;max-width:none}}.sync{position:relative;font-family:Geist Mono,monospace;font-size:11px;letter-spacing:.06em}.sync,.sync-btn{display:inline-flex;align-items:center;gap:6px}.sync-btn{background:transparent;border:1px solid var(--ink-3);color:var(--ink-2);padding:4px 10px;border-radius:999px;cursor:pointer;font:inherit;text-transform:uppercase;transition:all .12s ease;white-space:nowrap}.sync-btn:hover:not(:disabled){background:var(--accent-soft);color:var(--ink-1);border-color:var(--accent)}.sync-btn:disabled{opacity:.55;cursor:not-allowed}.sync-status{padding-left:8px}.sync-group{display:inline-flex;align-items:stretch;border:1px solid var(--ink-3);border-radius:999px;overflow:hidden;transition:border-color .12s ease}.sync-group>button{background:transparent;border:none;color:var(--ink-2);padding:4px 10px;font:inherit;cursor:pointer;text-transform:uppercase;letter-spacing:.06em;display:inline-flex;align-items:center;gap:6px;transition:background .12s ease,color .12s ease}.sync-group>button+button{border-left:1px solid var(--line-soft,var(--ink-3))}.sync-group>button:hover:not(:disabled){background:var(--accent-soft);color:var(--ink-1)}.sync-group>button:disabled{opacity:.55;cursor:not-allowed}.sync-group-status{padding-left:10px!important}.sync-group-action{padding:4px 10px!important;font-size:12px;min-width:28px;justify-content:center}.sync-dot{display:inline-block;width:7px;height:7px;border-radius:999px;background:var(--ink-3)}.sync-dot.d-clean{background:var(--ok,oklch(.55 .12 145));box-shadow:0 0 8px var(--ok,oklch(.55 .12 145))}.sync-dot.d-diverged{background:oklch(.65 .14 75)}.sync-dot.d-dirty{background:var(--accent);animation:sync-pulse 1.6s ease-in-out infinite}.sync-dot.d-err{background:oklch(.55 .15 25)}@keyframes sync-pulse{0%,to{opacity:1}50%{opacity:.4}}.sync-pop{position:absolute;top:calc(100% + 8px);right:0;min-width:280px;background:var(--card);border:1px solid var(--ink-3);border-radius:8px;padding:10px 12px;z-index:70;box-shadow:0 6px 24px rgba(0,0,0,.1);font-size:11.5px}.sync-pop-row{display:flex;justify-content:space-between;gap:16px;padding:4px 0;border-bottom:1px dashed var(--ink-3);color:var(--ink-2)}.sync-pop-row:last-child{border-bottom:none}.sync-pop-row .v{text-align:right;overflow-wrap:anywhere}.sync-pop-row .v,.sync-toast{color:var(--ink-1);font-family:Geist Mono,monospace}.sync-toast{position:fixed;right:18px;top:56px;background:var(--card);border:1px solid var(--accent);border-radius:8px;padding:8px 14px;font-size:12px;z-index:80;box-shadow:0 4px 20px rgba(0,0,0,.08);animation:sync-slide .22s ease}@keyframes sync-slide{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}