#syncfi-assistant{position:fixed;left:18px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:800;display:flex;align-items:center;gap:8px;padding:7px 14px 7px 7px;border:1px solid #c8ab73;border-radius:40px;background:#343a44;color:#f5ead5;box-shadow:0 5px 24px #0005;font:600 14px inherit;cursor:pointer;transition:transform .16s,box-shadow .16s}#syncfi-assistant[hidden]{display:none}#syncfi-assistant:hover{transform:translateY(-3px);box-shadow:0 8px 30px #0006}#syncfi-assistant:active{transform:scale(.95)}#syncfi-assistant svg,.assistant-avatar svg{width:40px;height:40px;fill:none;stroke:#d5ba87;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}#syncfi-assistant:focus-visible{outline:3px solid #fff;outline-offset:3px}#assistant-dialog{width:min(470px,calc(100vw - 24px));max-height:calc(100dvh - 36px);padding:22px;border:1px solid #b89c67;border-radius:24px;background:var(--surface,#343a44);color:var(--ink,#faf7f1);box-shadow:0 25px 80px #0008;overflow:auto;overscroll-behavior:contain}#assistant-dialog::backdrop{background:#10182499;backdrop-filter:blur(5px)}.assistant-heading{display:flex;gap:10px;align-items:center;margin-bottom:20px}.assistant-heading h2{margin:0;font-size:21px}.assistant-heading small{font-size:12px}.assistant-heading>button{margin-left:auto;min-width:40px}.assistant-note,#assistant-result-status{font-size:12px;line-height:1.6;opacity:.8}#assistant-dialog label,#assistant-settings label{display:block;margin:10px 0;font-size:14px}#assistant-dialog input:not([type=checkbox]),#assistant-dialog select,#assistant-dialog textarea{display:block;width:100%;box-sizing:border-box;min-height:42px;margin-top:7px;padding:9px 12px;border:1px solid #a59a8466;border-radius:12px;background:var(--surface,#343a44);color:inherit;font:inherit}#assistant-dialog input[type=checkbox],#assistant-settings input[type=checkbox]{width:18px;height:18px;vertical-align:middle;accent-color:#b89c67}.assistant-toolbar{display:flex;gap:12px;align-items:end}.assistant-toolbar label{flex:1}.assistant-toolbar>button{margin-bottom:10px}.assistant-file{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:8px;padding:8px 0;border-bottom:1px solid #a59a8422}.assistant-file>button{white-space:normal;overflow-wrap:anywhere;text-align:left}.assistant-file>input{font-size:12px!important;margin:0!important}.assistant-file>button:only-child{grid-column:1/-1}#assistant-results{max-height:260px;overflow:auto}#assistant-controls,#assistant-ai{border-top:1px solid #b89c6733;margin-top:20px;padding-top:12px}#assistant-pause-buttons>div{display:flex;justify-content:space-between;gap:8px;margin:8px 0}#assistant-pause-status{font-size:12px;line-height:1.7}#assistant-answer{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65;font-size:14px}#assistant-settings{padding:22px;margin-top:20px;border:1px solid #b89c6755;border-radius:20px}#assistant-settings label{padding:6px 0}#assistant-dialog button{cursor:pointer;min-height:40px}#assistant-dialog button:active{transform:scale(.97)}#assistant-dialog button:disabled{opacity:.45;cursor:default}@media(min-width:1000px){#syncfi-assistant{left:270px}}@media(max-width:520px){#assistant-dialog{padding:17px;border-radius:20px}.assistant-heading h2{font-size:18px}#syncfi-assistant{left:12px;bottom:calc(14px + env(safe-area-inset-bottom))}.assistant-toolbar{align-items:center;flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){#syncfi-assistant,#assistant-dialog button{transition:none;transform:none!important}}

#assistant-dialog input[type=checkbox],#assistant-settings input[type=checkbox]{display:inline-block;margin:0 6px 0 0}#assistant-dialog input:disabled,#assistant-dialog textarea:disabled{opacity:.65}

#assistant-body>#assistant-ai:first-child{border-top:0;margin-top:0;padding-top:0}

/* Wilo owns its foreground and field colors, including under Midnight Slate. */
#assistant-dialog,#assistant-settings,#view-syncnal,#wilo-result{--wilo-bg:#252c38;--wilo-field:#161d28;--wilo-ink:#fff1cf;--wilo-muted:#dccfb4;--wilo-line:#a98c54;background:var(--wilo-bg)!important;color:var(--wilo-ink)!important;color-scheme:dark}
#assistant-dialog[data-wilo-theme=paper],#assistant-settings[data-wilo-theme=paper]{--wilo-bg:#fffaf0;--wilo-field:#fff;--wilo-ink:#302719;--wilo-muted:#65543b;--wilo-line:#99773e;color-scheme:light}
#assistant-dialog :is(h2,h3,label,p,small,strong),#assistant-settings :is(h3,label,p),#view-syncnal :is(h2,h3,label,p,strong,small),#wilo-result :is(p,strong){color:var(--wilo-ink)!important;opacity:1!important}
#assistant-dialog :is(input:not([type=checkbox]),textarea,select),#assistant-settings select,#view-syncnal :is(input:not([type=checkbox]),select){background:var(--wilo-field)!important;color:var(--wilo-ink)!important;-webkit-text-fill-color:var(--wilo-ink)!important;border:1px solid var(--wilo-line)!important;caret-color:#ffd778!important;opacity:1!important;font-size:16px!important;line-height:1.5!important}
#assistant-dialog ::placeholder,#view-syncnal ::placeholder{color:var(--wilo-muted)!important;-webkit-text-fill-color:var(--wilo-muted)!important;opacity:1!important}
#assistant-dialog :is(input,textarea,select):focus,#view-syncnal :is(input,select):focus{outline:2px solid #edc778!important;outline-offset:2px}
#assistant-dialog option,#assistant-settings option,#view-syncnal option{background:var(--wilo-field)!important;color:var(--wilo-ink)!important}
#assistant-dialog button.secondary,#view-syncnal button.secondary{background:#343e4e!important;color:#fff1cf!important;border-color:#ae935f!important}#assistant-dialog[data-wilo-theme=paper] button.secondary{background:#f1e8d6!important;color:#302719!important}
#assistant-dialog .primary,#view-syncnal .primary,#wilo-result .primary{background:#e5c27a!important;color:#211a0e!important;border:1px solid #e5c27a!important;text-shadow:none!important;box-shadow:none!important}
#assistant-dialog button.text-button,#view-syncnal button.text-button,#wilo-result button.text-button{color:#ffe0a0!important}#assistant-dialog[data-wilo-theme=paper] button.text-button{color:#684507!important}
#assistant-dialog button:disabled,#assistant-dialog :is(input,textarea):disabled{opacity:.65!important}#assistant-dialog .assistant-heading>button{margin-left:0;min-width:34px;padding:5px}#assistant-dialog .assistant-heading>div{flex:1}#assistant-dialog .assistant-heading small{font-size:11px}#assistant-dialog #assistant-close{display:none}
#assistant-dialog #assistant-syncnal{width:100%;margin:16px 0}#assistant-settings select{padding:10px;border-radius:12px;width:100%}
#syncfi-assistant[data-working=true]{box-shadow:0 0 0 3px #e5c27a66,0 5px 24px #0005}#syncfi-assistant[data-working=true]>span:last-child:after{content:' · working';font-size:11px;color:#ffe0a0}
#wilo-result{position:fixed;left:18px;bottom:85px;z-index:10000;width:min(340px,calc(100vw - 36px));box-sizing:border-box;border:1px solid #d3af65;border-radius:22px;padding:20px;box-shadow:0 12px 44px #0007}#wilo-result[hidden]{display:none}#wilo-result p{font-size:14px;line-height:1.6}#wilo-result button{min-height:42px;cursor:pointer}
#view-syncnal{padding:24px;border-radius:24px;border:1px solid #a98c54;margin:20px 0 90px}#view-syncnal[hidden]{display:none}.syncnal-intro{font-size:14px;line-height:1.7}.syncnal-departments{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.syncnal-departments button{padding:10px 14px;min-height:42px;border-radius:24px}.syncnal-departments button.selected{background:#e5c27a!important;color:#211a0e!important}.syncnal-tools{display:flex;flex-wrap:wrap;gap:14px;align-items:end}.syncnal-tools label{flex:1;min-width:140px}.syncnal-tools :is(input,select){display:block;width:100%;box-sizing:border-box;margin-top:8px;padding:12px;border-radius:12px}.syncnal-record{border:1px solid #a98c5466;border-radius:16px;padding:16px;display:grid;grid-template-columns:minmax(0,1fr) 160px;gap:8px;margin:12px 0}.syncnal-record>button{font-size:15px;line-height:1.5;white-space:normal;overflow-wrap:anywhere;text-align:left;padding:0}.syncnal-record p{grid-column:1;font-size:12px;line-height:1.6;overflow-wrap:anywhere;margin:0}.syncnal-record select{grid-column:2;grid-row:1/3;width:100%;height:44px;border-radius:10px}.syncnal-authorize{border-top:1px solid #a98c5488;margin-top:28px;padding-top:18px}.syncnal-authorize p{font-size:14px;line-height:1.7}.syncnal-authorize>label{display:block;margin:15px 0;font-size:14px}.syncnal-authorize input[type=checkbox]{width:18px;height:18px;display:inline-block;vertical-align:middle;accent-color:#e5c27a}.syncnal-authorize .syncnal-tools button{padding:12px;border-radius:12px;cursor:pointer}#syncnal-status{font-size:13px;line-height:1.6}
.logo-symbol,.art-center{border-radius:50%!important;overflow:hidden}.logo-symbol{aspect-ratio:1}.art-center{box-shadow:0 0 0 1px #d4b47755,0 8px 30px #0003!important}
@media(max-width:520px){#view-syncnal{padding:16px;border-radius:20px}.syncnal-record{grid-template-columns:1fr}.syncnal-record select{grid-column:1;grid-row:auto}.syncnal-tools{gap:10px}#assistant-dialog .assistant-heading{gap:7px}#assistant-dialog .assistant-heading h2{font-size:22px}}
/* Wilo shares the existing SyncFi puppy face, now with a complete small body. */
.wilo-puppy{position:relative;display:inline-block;width:66px;height:78px;flex:0 0 66px;isolation:isolate;filter:drop-shadow(0 3px 3px #0003);transform-origin:50% 95%}.wilo-head{position:absolute;left:11px;top:3px;width:44px;height:42px;z-index:4;transform-origin:50% 85%;animation:wilo-curious 7s ease-in-out infinite}.wilo-head .puppy{display:block;width:44px;height:42px;background:#fff8f2;border:1px solid #e8baae;border-radius:42% 42% 46% 46%}.wilo-head .puppy i:before,.wilo-head .puppy i:after{animation:wilo-blink 5s ease-in-out infinite}.wilo-body{position:absolute;left:17px;top:36px;width:33px;height:32px;background:linear-gradient(100deg,#f6e8dc,#fff8f2 55%,#ecdbce);border:1px solid #dcb8a1;border-radius:45% 45% 38% 38%;z-index:2}.wilo-body:after{content:'';position:absolute;width:18px;height:20px;left:7px;top:8px;border-radius:50%;background:#fffaf6}.wilo-tail{position:absolute;left:44px;top:42px;width:22px;height:12px;background:#cf997e;border:1px solid #b97e67;border-radius:20% 90% 30% 70%;transform-origin:0 50%;animation:wilo-wag 1.2s ease-in-out infinite;z-index:1}.wilo-collar{position:absolute;left:21px;top:43px;width:26px;height:5px;background:#ca9e48;border-radius:4px;z-index:5}.wilo-collar:after{content:'';position:absolute;left:10px;top:3px;width:7px;height:8px;border-radius:50%;background:#ffe0a0;border:1px solid #ba893d}.wilo-paw{position:absolute;bottom:5px;width:18px;height:12px;background:#fff8f2;border:1px solid #dcb8a1;border-radius:55% 55% 45% 45%;z-index:4}.wilo-paw.left{left:13px}.wilo-paw.right{right:10px}.wilo-paw:after{content:'∣∣';position:absolute;left:5px;bottom:1px;color:#d5b9a4;font-size:7px;letter-spacing:1px}
#syncfi-assistant{padding:1px 12px 0 0;gap:5px;background:#252c38!important;border-radius:48px!important;color:#fff1cf!important;min-height:78px}#syncfi-assistant>span:not(.wilo-puppy){font-size:15px}.assistant-avatar{width:66px;height:78px;flex:0 0 66px}.assistant-avatar svg{display:none}#assistant-dialog .assistant-heading{align-items:center}.assistant-heading small{line-height:1.5;display:block}#assistant-dialog #assistant-close{display:block!important;color:#fff1cf!important;background:#343e4e!important;font-size:0!important}#assistant-dialog #assistant-close:after{content:'⏻';font-size:20px}#assistant-dialog #assistant-minimize{font-size:23px!important}
#syncfi-assistant[data-working=true] .wilo-head{animation:wilo-search .8s ease-in-out infinite}#syncfi-assistant[data-working=true] .wilo-tail{animation-duration:.4s}#syncfi-assistant:hover .wilo-puppy{animation:wilo-hop .5s ease-out 1}.wilo-followups{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.wilo-followups p{flex-basis:100%;font-size:14px;line-height:1.6}.wilo-followups button{font-size:12px;padding:8px 12px}#assistant-settings [role=switch]{appearance:auto;accent-color:#e5c27a;width:22px;height:22px}#assistant-dialog[data-wilo-theme=paper] #assistant-close{color:#fff1cf!important}
@keyframes wilo-wag{0%,100%{transform:rotate(-18deg)}50%{transform:rotate(24deg)}}@keyframes wilo-curious{0%,65%,100%{transform:rotate(0)}72%,85%{transform:rotate(-9deg)}92%{transform:rotate(5deg)}}@keyframes wilo-blink{0%,42%,46%,100%{transform:scaleY(1)}44%{transform:scaleY(.1)}}@keyframes wilo-hop{0%,100%{transform:translateY(0)}45%{transform:translateY(-7px)}}@keyframes wilo-search{0%,100%{transform:translateX(-2px) rotate(-5deg)}50%{transform:translateX(2px) rotate(5deg)}}
@media(prefers-reduced-motion:reduce){.wilo-puppy,.wilo-puppy *,.wilo-puppy :before,.wilo-puppy :after{animation:none!important;transition:none!important}}html.page-hidden .wilo-puppy *{animation-play-state:paused!important}/* Every palette uses one set of foreground, surface and field tokens. */
:root{--sf-bg:#252b35;--sf-surface:#343c49;--sf-field:#202630;--sf-ink:#fff0ce;--sf-muted:#e1d0ac;--sf-accent:#d9b56b;--sf-button:#211a0e;--sf-line:#917d57}
html[data-theme] body{background:var(--sf-bg)!important;color:var(--sf-ink)!important}
html[data-theme] :is(.sidebar,header,.hero,.device-card,.settings-card,.transfer-row,.vault-folder,.storage-summary,.plan-card,.stats>div,.send-zone,dialog,.help-card){background:var(--sf-surface)!important;color:var(--sf-ink)!important;border-color:var(--sf-line)!important}
html[data-theme] :is(h1,h2,h3,.breadcrumb,.breadcrumb strong,.device-card h3,.file-title h3,.settings-card label,dialog label,.profile-label){color:var(--sf-ink)!important}html[data-theme] :is(.device-card p,.device-status,.file-title p,.transfer-peer,.transfer-peer small,.transfer-date,.settings-card p,.context-note,.subtle,.stats small,.stats span,.hero p,.connection,dialog p,dialog small){color:var(--sf-muted)!important}
html[data-theme] :is(.primary,.hero-actions .primary){background:var(--sf-accent)!important;color:var(--sf-button)!important;border-color:var(--sf-accent)!important;text-shadow:none!important}html[data-theme] :is(.secondary,.hero-secondary){background:var(--sf-field)!important;color:var(--sf-ink)!important;border-color:var(--sf-line)!important}html[data-theme] :is(.text-button,.nav.active,.nav.active>span,.hero em){color:var(--sf-accent)!important}html[data-theme] .nav{color:var(--sf-muted)!important}html[data-theme] .nav.active{background:var(--sf-field)!important;border-color:var(--sf-line)!important}
html[data-theme] :is(input:not([type=checkbox]):not([type=radio]),textarea,select){background:var(--sf-field)!important;color:var(--sf-ink)!important;-webkit-text-fill-color:var(--sf-ink)!important;border-color:var(--sf-line)!important;caret-color:var(--sf-accent)!important;font-size:16px}html[data-theme] :is(input,textarea)::placeholder{color:var(--sf-muted)!important;-webkit-text-fill-color:var(--sf-muted)!important;opacity:1}html[data-theme] option{background:var(--sf-field)!important;color:var(--sf-ink)!important}
#assistant-dialog[data-wilo-theme=theme],#assistant-settings[data-wilo-theme=theme],#view-syncnal,#wilo-result,#syncnal-editor{--wilo-bg:var(--sf-surface);--wilo-field:var(--sf-field);--wilo-ink:var(--sf-ink);--wilo-muted:var(--sf-muted);--wilo-line:var(--sf-line)}
#assistant-dialog[data-wilo-theme=theme] button.secondary,#view-syncnal button.secondary,#syncnal-editor button.secondary{background:var(--sf-field)!important;color:var(--sf-ink)!important;border-color:var(--sf-line)!important}#assistant-dialog[data-wilo-theme=theme] .primary,#view-syncnal .primary,#syncnal-editor .primary{background:var(--sf-accent)!important;color:var(--sf-button)!important;border-color:var(--sf-accent)!important}#assistant-dialog[data-wilo-theme=theme] .text-button,#view-syncnal .text-button,#syncnal-editor .text-button{color:var(--sf-accent)!important}
#assistant-dialog[data-wilo-theme=theme] #assistant-close,#assistant-dialog[data-wilo-theme=theme] #assistant-minimize{background:var(--sf-field)!important;color:var(--sf-ink)!important}#syncnal-editor :is(h2,label,p){color:var(--sf-ink)!important}#syncnal-editor{width:min(560px,calc(100vw - 28px));max-height:calc(100dvh - 32px);overflow:auto;border-radius:24px;border:1px solid var(--sf-line);padding:24px}#syncnal-editor label{display:block;margin:14px 0;font-size:14px}#syncnal-editor :is(input:not([type=checkbox]),select,textarea){display:block;width:100%;box-sizing:border-box;padding:12px;border-radius:12px;margin-top:7px;line-height:1.5}#syncnal-pick-files{max-height:240px;overflow:auto;border-block:1px solid var(--sf-line);margin:12px 0}#syncnal-pick-files label{display:flex;gap:10px;align-items:center;padding:8px 2px;font-size:14px;overflow-wrap:anywhere}#syncnal-pick-files input{width:18px;height:18px;flex:0 0 18px;accent-color:var(--sf-accent)}#syncnal-pick-count,#syncnal-save-status{font-size:13px;line-height:1.6}
.syncnal-annals{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin:24px 0}.syncnal-annal{display:flex;flex-direction:column;gap:12px;text-align:left;min-height:130px;padding:20px;border-radius:22px;border:1px solid var(--sf-line);background:var(--sf-field);color:var(--sf-ink);cursor:pointer;transition:transform .16s}.syncnal-annal:hover{transform:translateY(-3px)}.syncnal-annal.selected{outline:2px solid var(--sf-accent);outline-offset:2px}.syncnal-annal strong{font-size:19px}.syncnal-annal span,.syncnal-annal small{font-size:13px;line-height:1.6;color:var(--sf-muted)}.syncnal-empty{padding:25px;border:1px dashed var(--sf-line);border-radius:20px;line-height:1.7}.syncnal-departments button.selected{background:var(--sf-accent)!important;color:var(--sf-button)!important}body:has(#view-syncnal:not([hidden])) :is(.hero,.stats){display:none!important}
.wilo-actions{display:flex;gap:8px;margin:5px 0 18px}.wilo-actions button{padding:8px 18px;font-size:14px}.wilo-actions button[aria-pressed=true]{outline:2px solid var(--sf-accent);outline-offset:2px}#syncfi-assistant{--wilo-distance:min(160px,calc(100vw - 205px));will-change:transform}#syncfi-assistant[data-pose=walk]{animation:wilo-stroll 7s linear forwards}#syncfi-assistant[data-pose=walk]:hover,#syncfi-assistant[data-pose=walk]:focus-visible{animation-play-state:paused}#syncfi-assistant[data-pose=walk] .wilo-body{left:16px;top:39px;width:38px;height:24px;border-radius:40%}#syncfi-assistant[data-pose=walk] .wilo-head{animation:wilo-walk-head .5s ease-in-out infinite}#syncfi-assistant[data-pose=walk] .wilo-paw{animation:wilo-step .45s ease-in-out infinite}#syncfi-assistant[data-pose=walk] .wilo-paw.right{animation-delay:-.22s}.wilo-paw.back-left,.wilo-paw.back-right{display:none;width:12px;height:10px}#syncfi-assistant[data-pose=walk] .wilo-paw.back-left{display:block;left:39px;animation-delay:-.22s}#syncfi-assistant[data-pose=walk] .wilo-paw.back-right{display:block;right:5px}#syncfi-assistant[data-pose=sit] .wilo-body{height:32px;top:36px}#syncfi-assistant[data-pose=sit] .wilo-paw{animation:none}#syncfi-assistant[data-motion=quiet] .wilo-puppy *{animation:none!important}
@keyframes wilo-stroll{0%{transform:translateX(0)}45%{transform:translateX(var(--wilo-distance))}55%{transform:translateX(var(--wilo-distance))}100%{transform:translateX(0)}}@keyframes wilo-step{0%,100%{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-5px) rotate(10deg)}}@keyframes wilo-walk-head{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@media(min-width:1000px){#syncfi-assistant{--wilo-distance:min(200px,calc(100vw - 450px))}}@media(max-width:520px){.syncnal-annals{grid-template-columns:1fr}#syncnal-editor{padding:18px}.syncnal-tools button{min-height:44px}}@media(prefers-reduced-motion:reduce){#syncfi-assistant,.syncnal-annal{animation:none!important;transform:none!important;transition:none!important}}
html[data-theme] :is(.sidebar .wordmark,.logo,.sidebar-bottom h3){color:var(--sf-ink)!important}html[data-theme] :is(.nav>span,.eyebrow,.workspace-tag,.sidebar-bottom p,.nav-caption,.cloud-state,.breadcrumb>span){color:var(--sf-muted)!important}
/* One unmistakable pressed state across every theme and input method. */
button:not(#syncfi-assistant):not(:disabled):active,button:not(#syncfi-assistant).sf-pressed{filter:brightness(.86)!important;box-shadow:inset 0 2px 5px #0005!important;translate:0 2px;scale:.98}
@media(prefers-reduced-motion:reduce){button.sf-pressed{translate:none;scale:none}}
/* Keep secondary pages focused on the tool the user selected. */
body:has(.view:not([hidden]):not(#view-overview)) :is(.hero,.stats){display:none!important}
.mobile-more{display:none}
#workspace-menu{width:min(480px,calc(100vw - 28px));max-height:calc(100dvh - 32px);overflow:auto;padding:22px;border-radius:24px;border:1px solid var(--sf-line)}
#workspace-menu .section-heading{margin-top:0;align-items:center}#workspace-menu .section-heading button{min-width:44px;min-height:44px}.workspace-menu-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.workspace-menu-items button{padding:18px 10px;min-height:62px;white-space:normal}
#workspace-update-banner{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom));max-width:min(360px,calc(100vw - 36px));z-index:850;padding:20px;border-radius:22px;background:var(--sf-surface);color:var(--sf-ink);border:1px solid var(--sf-line);box-shadow:0 10px 40px #0005}#workspace-update-banner p{color:var(--sf-muted);line-height:1.5}#workspace-update-banner button{min-height:44px;margin-right:8px}
@media(max-width:650px){
 .sidebar nav{display:flex!important;width:100%;max-width:100%;gap:4px;overflow:visible!important}
 .sidebar nav .nav{display:none!important}
 .sidebar nav :is([data-view=overview],[data-view=inbox],[data-view=vault],#syncnal-nav),.sidebar nav .mobile-more{display:flex!important;flex:1 1 0!important;min-width:0!important;max-width:20%;min-height:54px;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:5px 2px;font-size:10px;line-height:1.1;white-space:nowrap}
 .sidebar nav .mobile-more{order:99;border-radius:12px;background:var(--sf-field)!important;color:var(--sf-ink)!important}.mobile-more>span:first-child{font-size:20px;line-height:20px}
}
#call-open.workspace-phone{position:fixed;right:18px;bottom:calc(22px + env(safe-area-inset-bottom));z-index:790;display:grid;place-items:center;width:62px!important;height:62px;min-height:62px;padding:0!important;border:1px solid var(--sf-accent)!important;border-radius:50%!important;background:var(--sf-surface)!important;color:var(--sf-accent)!important;box-shadow:0 8px 25px #0004;font-size:0;touch-action:none;user-select:none;cursor:grab}
#call-open.workspace-phone::before{content:'☎';font-size:31px;line-height:1}#call-open.workspace-phone:active{cursor:grabbing}
html[data-theme] .toggle-row :is(span,strong){color:var(--sf-ink)!important}html[data-theme] .toggle-row small{color:var(--sf-muted)!important;opacity:1!important}
#syncfi-assistant{min-height:56px!important;height:56px!important;gap:2px!important;padding:0 10px 0 0!important;max-width:104px;touch-action:none;user-select:none;cursor:grab;will-change:left,top}
#syncfi-assistant .wilo-small-avatar{position:relative;display:block;width:46.2px;height:54.6px;flex:0 0 46.2px}
#syncfi-assistant .wilo-small-avatar>.wilo-puppy{position:absolute;left:0;top:0;transform:scale(.7)!important;transform-origin:0 0;animation:none!important}
#syncfi-assistant>span:last-child{font-size:12px!important}#syncfi-assistant[data-pose=walk]{animation:none!important}#syncfi-assistant:active{cursor:grabbing}
.message-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:12px 0 8px}.message-toolbar button{min-width:42px;min-height:42px;padding:8px 12px;border-radius:12px;font-size:16px}.message-toolbar select{width:auto!important;min-height:42px;padding:8px!important;margin:0!important;max-width:120px;border-radius:12px}
#message-editor{flex:1;min-width:0;min-height:46px;max-height:150px;overflow:auto;padding:11px 14px;border:1px solid var(--sf-line);border-radius:22px;background:var(--sf-field);color:var(--sf-ink);caret-color:var(--sf-accent);font:16px/1.6 system-ui,sans-serif;white-space:pre-wrap;overflow-wrap:anywhere}
#message-editor:focus{outline:2px solid var(--sf-accent);outline-offset:2px}#message-editor:empty::before{content:attr(data-placeholder);color:var(--sf-muted);pointer-events:none}
.message-composer{display:flex;align-items:flex-end;gap:8px;margin-top:2px}.message-emoji-toggle{flex:0 0 auto;width:42px;height:42px;min-height:42px;border-radius:50%;background:none;font-size:21px;padding:0}.message-emoji-toggle:hover,.message-emoji-toggle[aria-expanded=true]{background:var(--sf-surface)}.message-emoji-panel{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;padding:10px;margin:10px 0 2px;border:1px solid var(--sf-line);border-radius:16px;background:var(--sf-surface)}.message-emoji-panel button{height:42px;font-size:23px;padding:2px;border-radius:10px;background:none}.message-emoji-panel button:hover{background:var(--sf-field)}.message-composer #message-submit{flex:0 0 auto;width:46px;height:46px;min-height:46px;border-radius:50%;padding:0;font-size:18px;line-height:1}
#message-list article p{line-height:1.65;overflow-wrap:anywhere}#message-editor-status{min-height:24px;margin-block:6px}
@media(max-width:650px){#syncfi-assistant{max-width:96px}.message-toolbar{gap:5px}.message-toolbar button{min-height:44px}.message-toolbar select{min-height:44px;max-width:105px}.message-emoji-panel button{min-height:44px}.message-emoji-toggle{min-height:44px}}


#syncfi-assistant::before{content:'';position:absolute;right:4px;top:3px;width:9px;height:9px;border-radius:50%;background:#dad1b9;border:2px solid #343a44}#syncfi-assistant[data-connection=connected]::before{background:#76e0a5}#syncfi-assistant[data-connection=offline]::before{background:#f4c367}#syncfi-assistant[data-connection=disconnected]::before{background:#aaa}
#wilo-device-files{border-top:1px solid var(--sf-line,#a98c54);margin-top:20px;padding-top:12px}#wilo-device-files .wilo-actions{display:flex;gap:8px;flex-wrap:wrap}#wilo-device-files input[type=search]{width:100%;box-sizing:border-box}#wilo-device-files input[type=checkbox]{width:auto;display:inline}#wilo-connection{font-weight:600;color:var(--sf-accent,#ffe0a0)}.wilo-device-file{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:12px 0;border-bottom:1px solid var(--sf-line,#a98c5488)}.wilo-device-file>span{flex:1;min-width:130px;overflow-wrap:anywhere;font-size:13px}.wilo-device-file button{min-height:42px}
/* Wilo's Shepherd face (2026-10-29): the still is the default; state loops load lazily and play only while a true state is active. */
.assistant-avatar{position:relative}
.wilo-media{position:relative;display:block;width:100%;height:100%}
.wilo-media .wilo-still,.wilo-media .wilo-loop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:24%;display:block;background:#39424e}
.wilo-media .wilo-still[hidden],.wilo-media .wilo-loop[hidden]{display:none}
#wilo-face-status{margin:2px 0 0;font-size:12px;line-height:1.5;min-height:18px;opacity:.85}
/* Wilo presence (owner directive, Oct 29, 2026): frameless face on a white background, stationary at top-center by default.
   This block governs ONLY Wilo's avatar/launcher presentation; the app's connection-state ring in style.css is untouched.
   Frameless: no border, no ring, no shadow frame around the face; the face media is unclipped (no border-radius frame) on white.
   Stationary top-center: the launcher's default spot is fixed, centered, just under the app header (77px desktop / 58px
   mobile / wrapped ~118px on small phones), clear of the header's own controls. Dragging still moves him (the motion
   module sets inline left/top, which win over these defaults), and minimize/quiet still retire him to the still. */
.wilo-media{background:#fff}
.wilo-media .wilo-still,.wilo-media .wilo-loop{border-radius:0;background:#fff}
#syncfi-assistant{left:0;right:0;margin-inline:auto;width:max-content;top:calc(85px + env(safe-area-inset-top));bottom:auto;background:#fff!important;border:none;box-shadow:none;color:#2a2118!important}
#syncfi-assistant[data-working=true]{box-shadow:none}
#syncfi-assistant::before{border-color:#fff}
#syncfi-assistant:focus-visible{outline-color:#8a6d2f}
@media(max-width:800px){#syncfi-assistant{top:calc(66px + env(safe-area-inset-top))}}
@media(max-width:560px){#syncfi-assistant{top:calc(126px + env(safe-area-inset-top))}}
#syncfi-assistant:hover{box-shadow:none}
/* Wilo presence round 2 (owner directive, Oct 29, 2026): the ring the owner kept seeing was baked into the Shepherd
   still itself (the head sat on a dark slate disc); the still has been replaced at the source with the ringless head
   on pure white (wilo-256/128/64.webp), and the still uses object-fit:contain so the ears and collar are never
   clipped by the media box — the white ground makes the letterbox invisible (loops keep object-fit:cover).
   Placement supersedes round 1's just-under-the-header offsets: TOPMOST middle — fixed at the very top-center of
   the screen, overlapping the top content area (over the SynCloud block), z-index above page content (page content
   tops out at z-index 30; the call pill at 9600 and the result notice at 10000 still sit above him). He stays
   small (56px tall); on narrow screens the header wraps and he can overlap its center strip — noted per the
   directive, not reverted. Drag still wins (the motion module's inline left/top override this default) and
   minimize/quiet are unchanged; positions remembered by older builds are ignored once (position version guard
   in wilo-motion) so this default is what the owner sees first. */
.wilo-media .wilo-still{object-fit:contain}
#syncfi-assistant{top:calc(6px + env(safe-area-inset-top));z-index:900}
#syncfi-assistant[data-working=true]>span:last-child:after{color:#8a6d2f}
/* Wilo panel round 3 (owner feedback, Oct 29, 2026): (A) The panel heading — Wilo's face and his status line —
   is pinned at the top of the panel, above the search bar: the open dialog becomes a flex column and only
   #assistant-body scrolls, so he stays visible while searching or asking, with no scrolling back up to find
   him. (B) Inside the panel, the face's container takes the app's preference-interface surface (--wilo-field:
   the same themed surface the panel's own fields and the Wilo settings card sit on) instead of the stark white
   the at-rest launcher portrait uses — the launcher presentation from rounds 1-2 is unchanged, and the still
   and loops keep their baked-in artwork; only the container region behind and around the media is re-surfaced. */
#assistant-dialog[open]{display:flex;flex-direction:column;overflow:hidden}
#assistant-dialog .assistant-heading{flex:0 0 auto}
#assistant-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}
#assistant-dialog .assistant-avatar{background:var(--wilo-field);border-radius:18px}
#assistant-dialog .wilo-media{background:var(--wilo-field)}
#assistant-dialog .wilo-media .wilo-still,#assistant-dialog .wilo-media .wilo-loop{background:var(--wilo-field)}
