/* Leo: layout only. Existing storage, voice, request and dialog styles remain authoritative. */
body.vi1-layout{--vi1-sidebar-width:64px}
body.vi1-layout.vi1-sidebar-open{--vi1-sidebar-width:216px}
.vi1-layout .workspace{display:grid;grid-template-columns:var(--vi1-sidebar-width) minmax(0,1fr);min-height:100svh}
.vi1-layout .vi1-main{grid-column:2;min-width:0}
.vi1-sidebar{grid-column:1;grid-row:1;position:sticky;top:0;align-self:start;height:100svh;display:flex;flex-direction:column;gap:24px;padding:25px 12px 20px;border-right:1px solid #e7ebf4;background:#fff;overflow-y:auto;overflow-x:hidden}
.vi1-sidebar-title{height:34px;display:flex;align-items:center;padding-inline:12px;color:#7a879d;font-size:10px;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
.vi1-sidebar-title.vi1-brand-caption{letter-spacing:0;text-transform:none}
.vi1-sidebar-nav{display:flex;flex-direction:column;gap:7px}
.vi1-layout .vi1-sidebar button,.vi1-layout .vi1-sidebar a{font:inherit;display:flex;align-items:center;gap:12px;min-height:42px;width:100%;padding:10px 12px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--ink);font-size:12px;text-align:left;text-decoration:none;white-space:nowrap}
.vi1-sidebar svg{width:18px;height:18px;flex:0 0 18px;color:#6e86af}
.vi1-sidebar-label{display:flex;flex:1;min-width:0;align-items:center;gap:6px;justify-content:space-between}
.vi1-sidebar-label small{font-size:8px;letter-spacing:0;color:#7c879a}
.vi1-layout .vi1-sidebar #vi1-sidebar-new{border-color:#dce7f6;background:linear-gradient(115deg,#eaf4ff,#f0ebfc);color:#3a5e88}
.vi1-layout .vi1-sidebar button:disabled{opacity:1;color:#929aaa;cursor:not-allowed}
.vi1-layout .vi1-sidebar button:disabled svg{color:#a7b3c7}
.vi1-layout .vi1-sidebar :is(button,a):not(:disabled):hover{background:#eaf0fc;border-color:#e0e7f5}
.vi1-sidebar-bottom{display:flex;flex-direction:column;gap:2px;margin-top:auto}
.vi1-layout .vi1-sidebar-bottom :is(button,a){color:#6b7b93;font-size:11px;min-height:36px}
.vi1-layout:not(.vi1-sidebar-open) .vi1-sidebar{padding-inline:8px}
.vi1-layout:not(.vi1-sidebar-open) .vi1-sidebar :is(button,a){padding-inline:13px}
.vi1-layout:not(.vi1-sidebar-open) .vi1-sidebar-title,.vi1-layout:not(.vi1-sidebar-open) .vi1-sidebar-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.vi1-layout:not(.vi1-sidebar-open) .vi1-sidebar-bottom{display:none}
.vi1-layout #vi1-sidebar-toggle{display:inline-grid;place-items:center;flex:none;width:32px;height:32px;border:0;border-radius:7px;background:transparent;color:#647995;cursor:pointer}
.vi1-layout #vi1-sidebar-toggle:hover{background:#f0f3fa}
#vi1-sidebar-toggle svg{width:19px;height:19px}
.vi1-layout .workspace-controls{display:block;margin:14px 0 0}
.vi1-action-links{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 24px;min-height:34px}
.vi1-layout .vi1-action-links :is(button,a){display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:32px;width:auto;padding:5px 0;border:0;border-radius:4px;background:none;color:#667993;font:inherit;font-size:11px;line-height:1.5;white-space:nowrap;text-decoration:none;cursor:pointer}
.vi1-action-links svg{width:13px;height:13px;color:#8090ad}
.vi1-action-links #open-files svg,.vi1-action-links #open-history svg{display:none}
.vi1-action-links #files-count{display:none}
.vi1-layout .vi1-action-links :is(button,a):not(:disabled):hover{background:none;color:#375f97;text-decoration:underline;text-underline-offset:4px}
.vi1-layout .vi1-action-links button:disabled{opacity:.5;cursor:not-allowed}
.vi1-layout .canvas-footer{flex-direction:column;align-items:center;justify-content:center;gap:7px}
.vi1-layout .vi1-os-links{display:flex;justify-content:center;flex-wrap:wrap;gap:22px;margin:0;order:1}
.vi1-layout .vi1-os-links button{border:0;border-radius:3px;background:transparent;color:#7b89a0;font:inherit;font-size:10px;min-height:28px;padding:4px 0;cursor:pointer}
.vi1-layout .vi1-os-links button:hover{color:#3e6598;text-decoration:underline;text-underline-offset:4px}
.vi1-layout .composer .plus-menu{width:254px;max-height:min(var(--vi1-menu-max-height,478px),478px,65svh);overflow:auto;overscroll-behavior:contain;left:0;bottom:auto;top:39px;z-index:30}
.vi1-layout .composer .plus-menu.vi1-menu-up{top:auto;bottom:39px}
.vi1-layout .composer .plus-menu button{min-height:39px;padding:8px 11px;font-size:12px;line-height:1.4}
.vi1-layout .composer .plus-menu button span{font-size:9px;color:#7e8ca2}
.vi1-layout .composer .plus-menu button:disabled{opacity:1;color:#9099aa;background:transparent;cursor:not-allowed}
.vi1-layout .composer .plus-menu .vi1-menu-group{display:flex;flex-direction:column;gap:0;margin:5px 0;padding:5px 0;border-block:1px solid #edf0f7;text-align:left}
.vi1-layout .composer .plus-menu .idea{display:block;border:0;background:transparent;text-align:left;border-radius:7px;justify-content:initial}
.vi1-layout .composer .plus-menu .idea:hover{background:#e9f1fd}
.vi1-layout .composer .plus-menu .idea-icon{display:none}
.vi1-layout .composer .plus-menu .idea>span:last-child{font-size:12px;color:var(--bird-text)}
.vi1-layout button:not(:disabled),.vi1-layout a,.vi1-layout summary{cursor:pointer}
.vi1-sidebar-scrim{display:none}
@media(max-width:1050px){body.vi1-layout.vi1-sidebar-open{--vi1-sidebar-width:192px}.vi1-action-links{column-gap:19px}}
@media(max-width:800px){
 .vi1-layout .workspace{display:block}.vi1-layout .vi1-main{width:100%}
 .vi1-layout .vi1-sidebar{position:fixed;z-index:60;inset:0 auto 0 0;width:min(276px,80vw);height:100dvh;max-height:100dvh;padding:74px 16px 22px;visibility:hidden;box-shadow:12px 0 45px #354f8520}
 .vi1-layout.vi1-sidebar-open.vi1-layout-ready .vi1-sidebar{visibility:visible}
 .vi1-layout.vi1-sidebar-open.vi1-layout-ready .vi1-sidebar-scrim{display:block;position:fixed;inset:0;z-index:55;border:0;border-radius:0;background:#263a592b;cursor:pointer}
 .vi1-layout.vi1-sidebar-open #vi1-sidebar-toggle{position:fixed;z-index:65;top:21px;left:27px;background:#fff}
 .vi1-layout .vi1-sidebar-bottom{display:flex}
 .vi1-layout .vi1-sidebar-title{display:none}
 .vi1-layout .vi1-sidebar :is(button,a){padding-inline:12px}
 .vi1-layout .vi1-action-links{column-gap:20px}
}
@media(max-width:650px){
 .vi1-layout .vi1-action-links{gap:0 19px;margin-inline:2px}
 .vi1-layout .vi1-action-links :is(button,a){font-size:10px;min-height:32px}
 .vi1-layout .vi1-os-links{gap:24px}
 .vi1-layout .canvas-footer{gap:4px}
 .vi1-layout.vi1-sidebar-open #vi1-sidebar-toggle{top:17px;left:22px}
}
@media(prefers-reduced-motion:no-preference){.vi1-layout .vi1-sidebar :is(button,a){transition:background-color .12s,color .12s}}
@media(forced-colors:active){.vi1-sidebar{border-right-color:CanvasText}.vi1-sidebar-scrim{background:Canvas}.vi1-layout .vi1-sidebar button:disabled{color:GrayText}}

/* Owner request: landing toggle sits at the top of the visible sidebar/rail.
   A hidden mobile drawer keeps its reopening control beside VI1; header/hero flow stays unchanged. */
body.vi1-layout:not(.vi1-chat-started) .topbar{padding-left:6px}
body.vi1-layout:not(.vi1-chat-started) .topbar>.workspace-heading{position:relative;top:-16px;gap:6px}
@media(min-width:801px){
 body.vi1-layout:not(.vi1-chat-started) #vi1-sidebar-toggle{position:fixed;z-index:67;left:calc(var(--vi1-sidebar-width) - 38px);top:6px}
 body.vi1-layout:not(.vi1-chat-started):not(.vi1-sidebar-open) .vi1-sidebar{padding-top:44px}
}
@media(max-width:800px){
 body.vi1-layout.vi1-sidebar-open:not(.vi1-chat-started) .topbar>.workspace-heading{padding-left:0;z-index:66}
 body.vi1-layout.vi1-sidebar-open:not(.vi1-chat-started) #vi1-sidebar-toggle{position:fixed;z-index:67;left:calc(min(276px,80vw) - 38px);top:6px}
}
@media(max-width:650px){body.vi1-layout:not(.vi1-chat-started) .topbar>.workspace-heading{top:-9px}}
/* Owner request: original motto, OS links, then both real bird controls on one last row.
   Reserve the previous four-row footprint so the hero and flight anchor do not move. */
body.vi1-layout:not(.vi1-chat-started) .canvas-footer{display:grid;grid-template-columns:max-content max-content;justify-content:center;align-content:end;align-items:center;gap:4px 12px;min-height:calc(4.6em + 93px)}
body.vi1-layout:not(.vi1-chat-started) .vi1-footer-note{grid-column:1/-1;grid-row:1;text-align:center}
body.vi1-layout:not(.vi1-chat-started) .vi1-os-links{grid-column:1/-1;grid-row:2;order:0}
body.vi1-layout:not(.vi1-chat-started) .bird-sound-toggle{grid-column:1;grid-row:3;justify-self:end}
body.vi1-layout:not(.vi1-chat-started) .bird-motion-toggle{grid-column:2;grid-row:3;justify-self:start}
@media(max-width:650px){body.vi1-layout:not(.vi1-chat-started) .canvas-footer{min-height:calc(4.6em + 99px)}}

/* Owner request: idle map matches the flight camera's flat world plane exactly.
   Percentages preserve the measured flight projection with blank SVG margins cropped.
   The existing flight class switches off the duplicate idle map until return. */
body.vi1-layout:not(.vi1-chat-started) .bird{position:relative;isolation:isolate;overflow:visible;background:transparent}
body.vi1-layout:not(.vi1-chat-started) .bird::before{content:"";position:absolute;width:172.50153497013932%;height:66.6276234392191%;left:-36.381636523000715%;top:37.18061227846516%;background:url('./assets/polar-world-map.svg') 0 0/100% 100% no-repeat;pointer-events:none;z-index:0}
body.vi1-layout:not(.vi1-chat-started) .bird>img{position:relative;z-index:1;mix-blend-mode:normal;-webkit-mask:url('./assets/bird-original-silhouette.svg') center/100% 100% no-repeat;mask:url('./assets/bird-original-silhouette.svg') center/100% 100% no-repeat}
body.vi1-layout:not(.vi1-chat-started) .bird:has(>img.bird-in-flight)::before{visibility:visible}
