/* VanillaSky 1.0.0 shared primitives. Business-specific layout lives with each host. */
.vv-shell{width:min(var(--shell-width),calc(100% - 2 * var(--page-gutter)));margin-inline:auto}
.vv-reading{max-width:var(--reading-width);margin-inline:auto}.vv-form{max-width:var(--form-width);margin-inline:auto}
.vv-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--control-height);padding:.625rem 1.375rem;border:1px solid transparent;border-radius:999px;background:var(--color-action);color:#fff;font:600 1rem/1.4 var(--font);text-decoration:none;cursor:pointer}
.vv-button--secondary{background:var(--card);border-color:var(--color-field-border);color:var(--navy)}
.vv-button--compact{min-height:var(--control-compact);font-size:.875rem;padding:.5rem 1rem}
.vv-button:disabled{background:#ebebed;color:#62646a;border-color:#ebebed;cursor:default}
.vv-icon{display:inline-grid;place-items:center;flex:none;box-sizing:border-box;width:48px;height:48px;min-height:48px;padding:0;border:1px solid transparent;border-radius:50%;background:var(--navy);color:#fff;cursor:pointer;font:inherit;line-height:1}
.vv-icon--compact{width:44px;height:44px;min-height:44px}
.vv-icon--soft{background:var(--card);color:var(--ink);border-color:var(--ink-10)}
.vv-icon>svg{display:block;width:55%;height:55%}
.vv-icon--play>svg{translate:6% 0}
.vv-icon:disabled{background:#ebebed;color:#62646a;cursor:default}
.vv-label{display:block;font:600 .875rem/1.4 var(--font);margin-bottom:var(--space-2)}
.vv-field{width:100%;min-width:0;min-height:var(--control-height);box-sizing:border-box;border:1px solid var(--color-field-border);border-radius:var(--radius-field);padding:.6875rem 1rem;background:var(--card);color:var(--ink);font:400 1rem/1.5 var(--font)}
.vv-field[aria-invalid=true]{border:2px solid var(--error);padding:.625rem .9375rem}
.vv-help{font:400 .875rem/1.45 var(--font);color:var(--color-muted);margin-top:var(--space-2)}
.vv-error{color:var(--error)}.vv-card{min-width:0;padding:var(--space-6);border:1px solid var(--ink-10);border-radius:var(--radius-card);background:var(--card)}
.vv-form-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-3);align-items:end;container-type:inline-size}
.vv-sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}
:where(input,select,textarea){scroll-margin-block:8rem}:where(button,input,select,textarea){font-family:var(--font)}
@media(max-width:640px){.vv-form-row{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Shared global header: host pages supply links and task actions, never sizing. */
.nav-wrap{position:relative;z-index:30;width:min(var(--shell-width),calc(100% - 2 * var(--page-gutter)));margin-inline:auto;margin-top:1rem}
.nav{box-sizing:border-box;width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.75rem;border:1px solid var(--ink-8);border-radius:999px;background:var(--card);box-shadow:var(--shadow-nav)}
.brand{display:inline-flex;align-items:center;flex-shrink:0}.brand img{display:block;width:9.75rem;height:auto}
.nav .brand{min-width:2.75rem;min-height:3rem;justify-content:center}
.nav .brand-icon{display:none}
.nav>.btn{display:inline-flex;align-items:center;justify-content:center;flex:0 1 auto;min-width:0;min-height:3rem;margin-left:auto;padding:.25rem .75rem;font-size:1rem;line-height:1.2;white-space:normal;text-align:center}
.nav-links{display:none;align-items:center;gap:1.5rem;font-size:.875rem;font-weight:500;color:var(--ink-65)}
.nav-links a:hover{color:var(--ink)}
.mobile-menu{flex:none}.mobile-menu>summary{display:grid;place-items:center;width:2.75rem;height:3rem;border-radius:999px;list-style:none;cursor:pointer}
.mobile-menu>summary::-webkit-details-marker{display:none}.mobile-menu[open]>summary{background:var(--sand)}
.mobile-menu-panel{position:absolute;top:calc(100% + .5rem);right:0;box-sizing:border-box;width:min(22rem,100%);padding:1rem;border:1px solid var(--ink-8);border-radius:1.5rem;background:var(--card);box-shadow:var(--shadow-nav);max-height:calc(100dvh - 8rem);overflow:auto}
.mobile-menu-panel>nav:not(.regions){display:flex;flex-direction:column;gap:.25rem}.mobile-menu-panel>nav>a{display:flex;align-items:center;min-height:2.75rem;padding:.5rem .75rem;border-radius:.75rem}.mobile-menu-panel>nav>a:hover{background:var(--sand)}
.mobile-menu-panel .region-picker{margin-top:.75rem;border-top:1px solid var(--ink-8);padding-top:.5rem}
@media(max-width:639px){.nav>.btn{display:none}.nav .brand img{width:8.5rem}}
@media(min-width:640px){.nav{padding-inline:1.25rem;gap:1rem}.nav>.btn{padding:.625rem 1.25rem}}
@media(min-width:1280px){.nav-links{display:flex}.mobile-menu{display:none}.nav--task .mobile-menu{display:block}.nav>.btn{margin-left:0}}

/* Shared footer social links; explicit sizing prevents host nav rules from shrinking targets. */
nav.vv-social-links{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:0}
nav.vv-social-links>a.vv-social-link{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;flex:0 0 48px;width:48px;height:48px;min-height:48px;padding:0;border:1px solid var(--ink-10);border-radius:50%;background:var(--card);color:var(--navy);text-decoration:none}
nav.vv-social-links>a.vv-social-link:hover{background:var(--peach, #FFDFC1);border-color:var(--navy)}
.vv-social-link img{display:block;width:22px;height:22px}
