
/* NIGHTSHOT V5.91 — NATIVE APP SHELL
   Full-screen app behavior, internal navigation, unified arrows/menus. */
:root{
 --ns-shell-bg:#07060a;
 --ns-shell-top:58px;
 --ns-shell-tab:64px;
 --ns-shell-safe-top:env(safe-area-inset-top);
 --ns-shell-safe-bottom:env(safe-area-inset-bottom);
 --ns-shell-line:rgba(255,255,255,.075);
 --ns-shell-card:#121016;
 --ns-shell-pink:#f248c7;
 --ns-shell-purple:#9b43ff;
}
html,body{width:100%;max-width:100%;min-height:100%;margin:0;overflow-x:clip;background:var(--ns-shell-bg)}
body{min-height:100dvh}
body.ns-native-app{padding:0!important}
body.ns-native-app .ns-global-header{position:fixed!important;top:0!important;left:0!important;right:0!important;z-index:1100!important}
body.ns-native-app .ns-global-header-spacer{display:block!important;height:calc(var(--ns-shell-top) + var(--ns-shell-safe-top))!important}
body.ns-native-app .ns-site-footer{display:none!important}
body.ns-native-app main{
 min-height:calc(100dvh - var(--ns-shell-top) - var(--ns-shell-tab) - var(--ns-shell-safe-top) - var(--ns-shell-safe-bottom));
 width:100%!important;max-width:100%!important;
 padding-bottom:calc(var(--ns-shell-tab) + var(--ns-shell-safe-bottom) + 12px)!important;
}
.ns-native-top-actions{display:none}
.ns-native-back{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:50%;border:1px solid var(--ns-shell-line);background:rgba(255,255,255,.05);color:#fff;text-decoration:none}
.ns-native-back svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ns-native-back:active{transform:scale(.92);background:rgba(255,255,255,.09)}
.ns-native-screen-title{display:flex;align-items:center;gap:10px;min-width:0}
.ns-native-screen-title strong{font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ns-native-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 12px 12px}
.ns-native-toolbar .ns-native-title{min-width:0;display:grid}
.ns-native-toolbar .ns-native-title small{font-size:.54rem;letter-spacing:.13em;color:#a49cab}
.ns-native-toolbar .ns-native-title strong{font-size:1.05rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ns-native-inline-nav{display:flex;align-items:center;gap:8px}
.ns-native-iconbtn{width:42px;height:42px;border:1px solid var(--ns-shell-line);border-radius:50%;background:rgba(255,255,255,.05);color:#fff;display:grid;place-items:center;text-decoration:none}
.ns-native-iconbtn svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.ns-native-iconbtn.primary{background:linear-gradient(135deg,rgba(155,67,255,.26),rgba(242,72,199,.24));border-color:rgba(242,72,199,.25)}
/* unified internal arrows */
.ns2-eventi-nav,.ns-venue-arrow,.ns-related-nav,.gallery-arrow,.slider-arrow{
 width:42px!important;height:42px!important;min-width:42px!important;border-radius:50%!important;
 border:1px solid var(--ns-shell-line)!important;background:rgba(12,10,16,.86)!important;color:#fff!important;
 display:grid!important;place-items:center!important;box-shadow:0 8px 24px rgba(0,0,0,.28)!important;
}
.ns2-eventi-nav:active,.ns-venue-arrow:active,.gallery-arrow:active,.slider-arrow:active{transform:scale(.92)!important}
/* all menus behave like app sheets/cards */
.ns-mobile-menu,.city-menu,.filter-panel,.ns-zone-panel,.ns-geo-mobile-sheet,.ns-live-search{
 border-radius:24px!important;background:rgba(10,8,13,.98)!important;border:1px solid var(--ns-shell-line)!important;
 box-shadow:0 28px 80px rgba(0,0,0,.55)!important;
}
.ns-mobile-menu nav a,.ns-mobile-utility a{min-height:48px!important;border-radius:14px!important}
.ns-mobile-menu nav a[aria-current=page]{background:linear-gradient(135deg,rgba(155,67,255,.18),rgba(242,72,199,.16))!important}
/* full-screen content discipline */
body.ns-native-app .hero,
body.ns-native-app .section,
body.ns-native-app .venue-page,
body.ns-native-app .people-page,
body.ns-native-app .comm-wrap,
body.ns-native-app .ns-event-page,
body.ns-native-app .wrap{
 width:100%!important;max-width:100%!important;margin-inline:auto!important;
}
/* content padding lives inside the app viewport */
body.ns-native-app .section,
body.ns-native-app .ns-event-page,
body.ns-native-app .comm-wrap,
body.ns-native-app .wrap{padding-inline:12px!important}
/* hide browser-like redundant back text links when native toolbar exists */
body.ns-native-app .ns-breadcrumb{display:none!important}
/* fixed bottom tab bar = primary navigation */
body.ns-native-app .ns-app-bottom-nav{
 display:grid!important;position:fixed!important;z-index:1200!important;left:0!important;right:0!important;bottom:0!important;
 width:100%!important;height:calc(var(--ns-shell-tab) + var(--ns-shell-safe-bottom))!important;
 grid-template-columns:repeat(5,minmax(0,1fr))!important;padding:6px 6px max(6px,var(--ns-shell-safe-bottom))!important;
 border-top:1px solid var(--ns-shell-line)!important;background:rgba(10,8,13,.88)!important;
 backdrop-filter:blur(26px) saturate(155%)!important;-webkit-backdrop-filter:blur(26px) saturate(155%)!important;
}
body.ns-native-app .ns-app-bottom-nav a{min-height:50px!important;border-radius:14px!important}
body.ns-native-app .ns-app-bottom-nav a.is-active svg{color:var(--ns-shell-pink)!important}
@media(min-width:769px){
 body.ns-native-app .ns-global-header{position:sticky!important}
 body.ns-native-app .ns-global-header-spacer{display:none!important}
 body.ns-native-app .ns-app-bottom-nav{display:none!important}
 body.ns-native-app main{padding-bottom:40px!important;min-height:auto}
 body.ns-native-app .ns-site-footer{display:block!important}
 .ns-native-toolbar{max-width:1440px;margin-inline:auto;padding-inline:16px}
}
