.app-shell{min-height:100dvh;max-width:100%}.app-shell__main{min-width:0;min-height:100dvh}.skip-link{position:fixed;z-index:100;top:var(--space-sm);left:var(--space-sm);padding:var(--space-sm) var(--space-md);color:var(--color-on-primary);background:var(--color-primary);border-radius:var(--radius-control);transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}
.brand-lockup{display:flex;align-items:center;gap:.75rem;min-width:0;color:var(--color-text);text-decoration:none}.brand-lockup__mark{width:2.5rem;height:2.5rem;display:grid;place-items:center;flex:0 0 auto;color:var(--color-on-primary);background:var(--color-primary);border-radius:9999px}.brand-lockup strong,.brand-lockup small{display:block}.brand-lockup strong{font-family:var(--font-editorial);font-size:1.25rem;line-height:1.25}.brand-lockup small{margin-top:2px;color:var(--color-text-muted);font-size:.75rem;line-height:1.3}
.desktop-sidebar{display:none}.primary-navigation{display:flex;flex-direction:column;gap:var(--space-xs)}.nav-item{position:relative;display:flex;align-items:center;gap:.75rem;min-height:2.75rem;padding:.625rem .75rem;color:var(--color-text-muted);text-decoration:none;border-left:0;border-radius:9999px;transition:color var(--transition-fast),background-color var(--transition-fast)}.nav-item:hover{color:var(--color-primary);background:var(--color-surface-low)}.nav-item.is-active{color:var(--color-on-primary);background:var(--color-primary);font-weight:700}.nav-item__icon{display:grid;place-items:center;flex:0 0 auto}.nav-item.is-active .nav-item__icon{color:var(--color-primary);background:var(--color-on-primary);width:1.75rem;height:1.75rem;border-radius:var(--radius-control)}.nav-item__label{min-width:0}.phosphor-icon{display:block;max-width:none}
.wedding-profile{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.75rem;margin-top:auto;padding:var(--space-md);background:var(--color-surface-low);border:1px solid var(--color-border-subtle);border-radius:var(--radius-container)}.wedding-profile__monogram{width:2.75rem;height:2.75rem;display:flex;align-items:center;justify-content:center;align-self:center;color:var(--color-on-primary-subtle-variant);background:var(--color-primary-subtle);font-family:var(--font-editorial);font-weight:700;line-height:1;border-radius:9999px}.wedding-profile__monogram>span{display:inline;flex:0 0 auto;margin:0;line-height:1}.wedding-profile__monogram .wedding-profile__ampersand{margin-inline:.08em;color:var(--color-secondary);font-size:.8em}.wedding-profile__content{min-width:0}.wedding-profile h2{margin:0;font-family:var(--font-functional);font-size:.875rem;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wedding-profile__content p,.wedding-profile__content>span{display:block;margin:0;color:var(--color-text-muted);font-size:.75rem;line-height:1.5}.wedding-profile__content>span{color:var(--color-primary);font-weight:700}
.mobile-topbar{position:sticky;z-index:30;top:0;height:var(--layout-topbar-height);display:flex;align-items:center;justify-content:space-between;padding-inline:var(--space-md);background:var(--color-surface);border-bottom:1px solid var(--color-border-subtle)}.mobile-topbar__brand{display:flex;align-items:center;gap:var(--space-sm);color:var(--color-primary);text-decoration:none}.mobile-topbar__brand strong{color:var(--color-text);font-family:var(--font-editorial);font-size:1.125rem}.shell-icon-button{width:2.75rem;height:2.75rem;display:grid;place-items:center;padding:0;color:var(--color-text);background:transparent;border-radius:var(--radius-control);cursor:pointer}.shell-icon-button:hover{color:var(--color-primary);background:var(--color-surface-low)}.mobile-topbar__menu{display:none}
.app-drawer-layer{display:none}.app-content{width:min(100%,var(--container-wide));margin-inline:auto;padding:var(--space-lg) var(--space-md) calc(var(--layout-bottom-nav-height) + var(--space-lg) + var(--space-sm) + env(safe-area-inset-bottom))}.mobile-bottom-nav{position:fixed;z-index:40;right:var(--space-md);bottom:calc(var(--space-sm) + env(safe-area-inset-bottom));left:var(--space-md);display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);height:var(--layout-bottom-nav-height);padding:0 var(--space-sm);background:var(--color-surface-lowest);border-radius:9999px}.mobile-bottom-nav .nav-item--compact{flex:0 0 auto;min-width:0;min-height:0;align-self:center;flex-direction:row;justify-content:center;gap:.5rem;margin:0;padding:.625rem;border:0;border-radius:9999px;font-size:.8125rem;line-height:1;text-align:left;color:var(--color-text-muted)}.mobile-bottom-nav .nav-item--compact .nav-item__label{display:none;white-space:nowrap}.mobile-bottom-nav .nav-item--compact.is-active{padding:.5rem 1.25rem .5rem .5rem;color:var(--color-on-primary);background:var(--color-primary);border-left-color:transparent;transition:padding var(--transition-standard),background-color var(--transition-standard),color var(--transition-fast)}.mobile-bottom-nav .nav-item--compact.is-active .nav-item__icon{display:grid;place-items:center;width:1.875rem;height:1.875rem;color:var(--color-primary);background:var(--color-on-primary);border-radius:var(--radius-control)}.mobile-bottom-nav .nav-item--compact.is-active .nav-item__label{display:inline;font-weight:700}
.content-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-md)}.auto-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:var(--space-gutter)}.stack{display:flex;flex-direction:column;gap:var(--space-md)}.cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm)}.section{margin-block:var(--space-lg)}
.placeholder-card{display:flex;align-items:flex-start;gap:var(--space-md);max-width:42rem}.placeholder-card__icon{display:grid;place-items:center;flex:0 0 auto;width:3.5rem;height:3.5rem;color:var(--color-primary);background:var(--color-primary-subtle);border-radius:var(--radius-container)}.placeholder-card h2{margin-bottom:var(--space-xs);font-size:1.5rem}.placeholder-card p{margin:0}.more-menu-grid{display:grid;gap:var(--space-sm);max-width:48rem}.more-menu-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-md);min-height:4.5rem;padding:var(--space-md);color:var(--color-text);background:var(--color-surface-lowest);border:1px solid var(--color-border-subtle);border-radius:var(--radius-container);text-decoration:none;transition:border-color var(--transition-fast),background-color var(--transition-fast)}.more-menu-item:hover{background:var(--color-surface-low);border-color:var(--color-primary)}.more-menu-item>span:first-child{color:var(--color-primary)}.more-menu-item strong,.more-menu-item small{display:block}.more-menu-item small{margin-top:2px;color:var(--color-text-muted);font-size:.875rem}
@media(min-width:768px){.app-content{padding:3rem var(--space-gutter) var(--space-xl)}.content-grid{grid-template-columns:repeat(8,minmax(0,1fr));gap:var(--space-gutter)}.mobile-bottom-nav{display:none}.mobile-topbar{padding-inline:var(--space-gutter)}.mobile-topbar__menu{display:grid}.app-drawer-layer{position:fixed;z-index:50;inset:0;display:block;visibility:hidden;pointer-events:none}.app-drawer-layer.is-open{visibility:visible;pointer-events:auto}.app-drawer-backdrop{position:absolute;inset:0;width:100%;height:100%;padding:0;background:rgba(27,28,28,.35);cursor:pointer;opacity:0;transition:opacity var(--transition-standard)}.app-drawer-layer.is-open .app-drawer-backdrop{opacity:1}.app-drawer{position:absolute;inset:0 auto 0 0;width:min(20rem,calc(100vw - 3rem));padding:var(--space-gutter);overflow-y:auto;background:var(--color-surface-lowest);border-right:1px solid var(--color-border-subtle);transform:translateX(-100%);transition:transform var(--transition-standard)}.app-drawer-layer.is-open .app-drawer{transform:translateX(0)}.app-drawer__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-lg)}.desktop-sidebar--drawer{display:flex;min-height:calc(100dvh - 7rem);padding:0;border:0}.section{margin-block:3rem}}
@media(min-width:1200px){.app-shell__main{margin-left:var(--layout-sidebar-width)}.desktop-sidebar{position:fixed;z-index:30;inset:0 auto 0 0;width:var(--layout-sidebar-width);display:flex;flex-direction:column;gap:var(--space-lg);padding:var(--space-lg) var(--space-gutter);overflow-y:auto;background:var(--color-surface-lowest);border-right:1px solid var(--color-border-subtle)}.desktop-sidebar--drawer{display:none}.mobile-topbar,.mobile-bottom-nav,.app-drawer-layer{display:none}.app-content{padding:var(--space-xl) clamp(var(--space-gutter),3vw,var(--space-lg))}.content-grid{grid-template-columns:repeat(12,minmax(0,1fr))}.section{margin-block:var(--space-xl)}}

/* PWA status and notched-device safe areas. */
.skip-link{top:max(var(--space-sm),env(safe-area-inset-top));left:max(var(--space-sm),env(safe-area-inset-left))}
.pwa-status-stack{position:fixed;z-index:90;top:calc(var(--layout-topbar-height) + env(safe-area-inset-top) + var(--space-sm));right:max(var(--space-sm),env(safe-area-inset-right));left:max(var(--space-sm),env(safe-area-inset-left));display:grid;justify-items:end;gap:var(--space-sm);pointer-events:none}.pwa-status{width:min(100%,32rem);display:flex;align-items:center;gap:var(--space-sm);padding:.75rem var(--space-md);color:var(--color-on-primary-subtle);background:var(--color-primary-subtle);border:1px solid var(--color-primary-container);border-radius:var(--radius-container);box-shadow:0 8px 24px rgba(27,28,28,.16);pointer-events:auto}.pwa-status p{flex:1;margin:0;font-size:.875rem;line-height:1.4}.pwa-status--offline{color:var(--color-on-secondary-subtle);background:var(--color-secondary-subtle);border-color:var(--color-champagne-decoration)}.pwa-status .app-button{flex:0 0 auto}
.mobile-topbar{height:calc(var(--layout-topbar-height) + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(var(--space-md),env(safe-area-inset-right)) 0 max(var(--space-md),env(safe-area-inset-left))}.app-content{padding-right:max(var(--space-md),env(safe-area-inset-right));padding-left:max(var(--space-md),env(safe-area-inset-left))}.mobile-bottom-nav{right:max(var(--space-md),env(safe-area-inset-right));left:max(var(--space-md),env(safe-area-inset-left))}
@media(min-width:768px){.mobile-topbar{padding-right:max(var(--space-gutter),env(safe-area-inset-right));padding-left:max(var(--space-gutter),env(safe-area-inset-left))}.app-drawer{padding-top:max(var(--space-gutter),env(safe-area-inset-top));padding-left:max(var(--space-gutter),env(safe-area-inset-left))}.app-content{padding-right:max(var(--space-gutter),env(safe-area-inset-right));padding-left:max(var(--space-gutter),env(safe-area-inset-left))}}
@media(min-width:1200px){.pwa-status-stack{top:max(var(--space-md),env(safe-area-inset-top));left:auto}.desktop-sidebar{padding-top:max(var(--space-lg),env(safe-area-inset-top));padding-left:max(var(--space-gutter),env(safe-area-inset-left))}.app-content{padding-right:max(clamp(var(--space-gutter),3vw,var(--space-lg)),env(safe-area-inset-right))}}
