/* NOIR FULL POLISH — cross-surface UX, accessibility and visual consistency */
:root{
  --np-focus:#ead9ae;
  --np-focus-ring:0 0 0 3px rgba(234,217,174,.16),0 0 0 1px rgba(234,217,174,.58);
  --np-ease:cubic-bezier(.2,.75,.25,1);
}
html{scroll-behavior:smooth;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
body{min-height:100dvh}
button,a,input,select,textarea{font:inherit}
button,a,[role="button"],input,select,textarea{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,[role="button"]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:none!important;box-shadow:var(--np-focus-ring)!important;border-color:rgba(234,217,174,.5)!important}
button:disabled,[aria-disabled="true"]{cursor:not-allowed!important;filter:saturate(.7)}
::selection{background:rgba(217,196,157,.25);color:#fffaf0}
.noir-skip-link{position:fixed;z-index:10000;left:16px;top:12px;transform:translateY(-160%);padding:10px 13px;border-radius:10px;background:#eee5d1;color:#111;text-decoration:none;font-size:12px;font-weight:700;transition:transform .16s var(--np-ease)}
.noir-skip-link:focus{transform:none}
.noir-network-banner{position:fixed;z-index:10050;left:50%;top:max(10px,env(safe-area-inset-top));transform:translate(-50%,-150%);opacity:0;pointer-events:none;padding:8px 12px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(21,19,18,.96);box-shadow:0 12px 40px rgba(0,0,0,.35);color:#e7dfcf;font-size:10px;letter-spacing:.06em;transition:.22s var(--np-ease)}
.noir-network-banner.show{transform:translate(-50%,0);opacity:1}.noir-network-banner.online{border-color:rgba(159,210,180,.25);color:#b8d8c3}.noir-network-banner.offline{border-color:rgba(227,154,154,.28);color:#e4b0b0}
.noir-scroll-region{scrollbar-width:thin;scrollbar-color:rgba(217,196,157,.22) transparent}
.noir-scroll-region::-webkit-scrollbar{height:8px;width:8px}.noir-scroll-region::-webkit-scrollbar-thumb{background:rgba(217,196,157,.18);border-radius:99px}.noir-scroll-region::-webkit-scrollbar-track{background:transparent}

/* ADMIN / STAFF */
body.noir-admin-active{--na-radius:20px}
body.noir-admin-active .workspace{padding-bottom:max(64px,env(safe-area-inset-bottom))}
body.noir-admin-active .noir-admin-topbar{box-shadow:0 8px 30px rgba(0,0,0,.12)}
body.noir-admin-active .noir-admin-sidebar{scrollbar-width:thin;scrollbar-color:rgba(217,196,157,.13) transparent}
body.noir-admin-active .noir-admin-nav-link{min-height:44px;font-size:12.5px;transition:background .18s var(--np-ease),border-color .18s var(--np-ease),color .18s var(--np-ease),transform .18s var(--np-ease)}
body.noir-admin-active .noir-admin-nav-link:hover{transform:translateX(2px)}
body.noir-admin-active .noir-admin-pagehead{padding-bottom:4px}
body.noir-admin-active .noir-admin-pagehead p{font-size:12px;color:#969a97;max-width:760px}
body.noir-admin-active .noir-admin-breadcrumb{font-size:9.5px}
body.noir-admin-active .noir-admin-pill{min-height:32px}
body.noir-admin-active .card,body.noir-admin-active .ops-panel,body.noir-admin-active .m9-shell,body.noir-admin-active .noir-f2-card,body.noir-admin-active .noir-f3-card,body.noir-admin-active .f4-card,body.noir-admin-active .noir-f5-card,body.noir-admin-active .noir-f4-panel,body.noir-admin-active .noir-f5-panel{transition:border-color .18s var(--np-ease),box-shadow .18s var(--np-ease),transform .18s var(--np-ease)}
body.noir-admin-active .noir-f2-card:hover,body.noir-admin-active .noir-f3-card:hover,body.noir-admin-active .f4-card:hover,body.noir-admin-active .noir-f5-card:hover{border-color:rgba(217,196,157,.13)}
body.noir-admin-active .noir-f2-card-head h3,body.noir-admin-active .noir-f3-card-head h3{font-size:22px!important}
body.noir-admin-active .noir-f2-card-head p,body.noir-admin-active .noir-f3-card-head p{font-size:11px!important}
body.noir-admin-active .noir-f2-kicker,body.noir-admin-active .noir-f3-kicker,body.noir-admin-active .f4-label,body.noir-admin-active .noir-f5-kicker{font-size:9px!important}
body.noir-admin-active .noir-f2-row-main strong,body.noir-admin-active .noir-f3-row-main strong{font-size:12px}
body.noir-admin-active .noir-f2-row-main small,body.noir-admin-active .noir-f3-row-main small{font-size:10px}
body.noir-admin-active .noir-f2-btn,body.noir-admin-active .noir-f3-btn,body.noir-admin-active .noir-f5-btn{min-height:34px}
body.noir-admin-active .noir-f2-row-actions button,body.noir-admin-active .noir-f3-row-actions button{min-height:32px;min-width:32px}
body.noir-admin-active .noir-f2-table-wrap,body.noir-admin-active .noir-f3-table-wrap,body.noir-admin-active .f4-table-wrap,body.noir-admin-active .noir-f5-table{scrollbar-width:thin;scrollbar-color:rgba(217,196,157,.18) transparent}
body.noir-admin-active .noir-f2-table th,body.noir-admin-active .noir-f3-table th,body.noir-admin-active .f4-table th,body.noir-admin-active .noir-f5-table th{position:sticky;top:0;z-index:2;background:#101315;backdrop-filter:blur(12px)}
body.noir-admin-active .noir-f2-table tr:hover td,body.noir-admin-active .noir-f3-table tr:hover td,body.noir-admin-active .f4-table tr:hover td,body.noir-admin-active .noir-f5-table tr:hover td{background:rgba(255,255,255,.018)}
body.noir-admin-active .noir-f2-empty,body.noir-admin-active .noir-f3-empty,body.noir-admin-active .f4-empty,body.noir-admin-active .noir-f5-empty{min-height:104px;display:grid;place-content:center}
body.noir-admin-active .noir-admin-drawer{width:min(520px,96vw)}
body.noir-admin-active .noir-admin-drawer-body{scrollbar-width:thin;scrollbar-color:rgba(217,196,157,.18) transparent}
body.noir-admin-active .noir-admin-loading{min-height:86px;display:flex;align-items:center;justify-content:center;gap:9px}
body.noir-admin-active .toast,[data-surface] .toast{z-index:500!important;max-width:min(420px,calc(100vw - 32px));box-shadow:0 18px 52px rgba(0,0,0,.42)!important}
body.noir-admin-active .login-card{border-radius:22px!important;box-shadow:0 30px 80px rgba(0,0,0,.34)!important}
body.noir-admin-active .login-card input{min-height:46px!important}
body.noir-admin-active .login-card .btn{min-height:46px!important}
.noir-polish-skeleton{position:relative;overflow:hidden;background:rgba(255,255,255,.035)!important;color:transparent!important;border-color:rgba(255,255,255,.05)!important}.noir-polish-skeleton::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.055),transparent);animation:noir-polish-shimmer 1.25s infinite}@keyframes noir-polish-shimmer{to{transform:translateX(100%)}}

/* GUEST */
.guest-app button,.guest-app [role="button"],.guest-app .btn{min-height:44px}
.guest-app .profile-orb,.guest-app .icon-btn,.guest-app .sheet-close,.guest-app .circle-btn{min-width:44px;min-height:44px}
.guest-app .view.active{animation:noir-polish-view-in .24s var(--np-ease) both}@keyframes noir-polish-view-in{from{opacity:.72;transform:translateY(4px)}to{opacity:1;transform:none}}
.guest-app .venue-card,.guest-app .your-night-card,.guest-app .district-card,.guest-app .install-card,.guest-app .identity-nudge{transition:transform .22s var(--np-ease),border-color .22s var(--np-ease),box-shadow .22s var(--np-ease)}
@media(hover:hover) and (pointer:fine){.guest-app .venue-card:hover,.guest-app .your-night-card:hover,.guest-app .district-card:hover{transform:translateY(-2px)}}
.guest-app .sheet,.guest-app .flow-shell,.guest-app .venue-detail-shell{box-shadow:0 -18px 70px rgba(0,0,0,.26)}
.guest-app input,.guest-app select,.guest-app textarea{font-size:16px!important}
.guest-app .filter-scroll,.guest-app .venue-scroll,.guest-app .growth-scroll,.guest-app .search-suggestions,.guest-app .explore-quickrail{scroll-snap-type:x proximity}.guest-app .filter-scroll>*,.guest-app .venue-scroll>*,.guest-app .growth-scroll>*,.guest-app .search-suggestions>*,.guest-app .explore-quickrail>*{scroll-snap-align:start}
.guest-app .bottom-nav{padding-bottom:max(10px,env(safe-area-inset-bottom));backdrop-filter:blur(20px);background:rgba(8,8,8,.9)!important}
.guest-app .sheet-body,.guest-app .venue-overlay,.guest-app .search-results{scrollbar-width:thin;scrollbar-color:rgba(201,185,141,.18) transparent}
.guest-app .dev-code{display:none!important}

/* PUBLIC SITE */
.site-nav{backdrop-filter:blur(18px)}
.site-nav a,.site-nav button,.hero .btn,.final-cta .btn{min-height:42px;display:inline-flex;align-items:center;justify-content:center}
.reveal{will-change:transform,opacity}
.network-node,.trust-card,.venue-capability,.team-card{transition:transform .22s var(--np-ease),border-color .22s var(--np-ease),background .22s var(--np-ease)}
@media(hover:hover) and (pointer:fine){.network-node:hover,.trust-card:hover,.venue-capability:hover,.team-card:hover{transform:translateY(-3px)}}

@media(max-width:980px){
 body.noir-admin-active .noir-admin-topbar{padding-left:18px;padding-right:18px}
 body.noir-admin-active .noir-admin-search-trigger{min-width:44px;width:44px;padding:0;justify-content:center}body.noir-admin-active .noir-admin-search-trigger span,body.noir-admin-active .noir-admin-search-trigger .noir-admin-kbd{display:none}
 body.noir-admin-active .noir-admin-health{display:none}
}
@media(max-width:700px){
 body.noir-admin-active .staff-shell{padding-left:14px!important;padding-right:14px!important;padding-bottom:40px!important}
 body.noir-admin-active .workspace{padding-top:calc(var(--na-top) + 18px)!important}
 body.noir-admin-active .noir-admin-topbar{height:68px;padding:0 12px;gap:8px}
 body.noir-admin-active .noir-admin-context strong{font-size:15px}
 body.noir-admin-active .noir-admin-pagehead{display:block;margin-bottom:18px}.noir-admin-page-actions{margin:12px 0 0;overflow:auto;padding-bottom:2px}
 body.noir-admin-active .noir-admin-select{max-width:120px}.noir-admin-date{display:none}
 body.noir-admin-active .noir-admin-user-copy{display:none}.noir-admin-user{width:40px;padding:0;justify-content:center}
 body.noir-admin-active .noir-f2-metrics,body.noir-admin-active .noir-f3-metrics{grid-template-columns:1fr 1fr!important}
 body.noir-admin-active .noir-f2-row,body.noir-admin-active .noir-f3-row{grid-template-columns:1fr;align-items:start}
 body.noir-admin-active .noir-f2-row-actions,body.noir-admin-active .noir-f3-row-actions{justify-content:flex-start}
 .guest-app main{padding-bottom:max(92px,calc(76px + env(safe-area-inset-bottom)))}
}
@media(max-width:430px){
 body.noir-admin-active .noir-admin-pagehead h1{font-size:28px}
 body.noir-admin-active .noir-admin-pagehead p{font-size:11px}
 body.noir-admin-active .noir-f2-metrics,body.noir-admin-active .noir-f3-metrics{grid-template-columns:1fr!important}
 .guest-app .explore-results,.guest-app .search-results{grid-template-columns:1fr!important}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.reveal{transform:none!important;opacity:1!important}.noir-polish-skeleton::after{display:none}}
@media(prefers-contrast:more){:root{--na-line:rgba(255,255,255,.18);--na-line-strong:rgba(235,217,181,.42)}button,a,input,select,textarea{border-color:rgba(255,255,255,.24)!important}}

/* STAFF SIGN-IN — consistent before the authenticated admin shell mounts */
body[data-surface]:not(.noir-admin-active){background:radial-gradient(circle at 75% -10%,rgba(217,196,157,.065),transparent 32%),#080808}
body[data-surface]:not(.noir-admin-active) .staff-shell{max-width:1180px;margin:auto;padding-bottom:max(42px,env(safe-area-inset-bottom))}
body[data-surface]:not(.noir-admin-active) .login-card{border-color:rgba(217,196,157,.14);box-shadow:0 28px 90px rgba(0,0,0,.35)}
body[data-surface]:not(.noir-admin-active) .login-card input{min-height:48px;background:#0d0f10;border-color:rgba(255,255,255,.11)}
body[data-surface]:not(.noir-admin-active) .login-card .form-error{min-height:18px}
html[dir="rtl"] .noir-skip-link{left:auto;right:16px}
html[dir="rtl"] .noir-network-banner{direction:rtl}
