/* GhostMetrics "Haunt" brand layer. Loaded after the rebuilt Bootstrap on every layout.
   Mint #9CFFC6, ink #111C19, lilac, coral, cool greys, fog #F2F7F4. No cream, no tan. */
@font-face{font-family:"Big Shoulders Display";src:url(../ghostmetrics/fonts/BigShouldersDisplay-wght.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Schibsted Grotesk";src:url(../ghostmetrics/fonts/SchibstedGrotesk-wght.woff2) format("woff2");font-weight:400 900;font-display:swap}
@font-face{font-family:"Schibsted Grotesk";src:url(../ghostmetrics/fonts/SchibstedGrotesk-Italic-wght.woff2) format("woff2");font-weight:400 900;font-style:italic;font-display:swap}
@font-face{font-family:"Martian Mono";src:url(../ghostmetrics/fonts/MartianMono-wdth-wght.woff2) format("woff2");font-weight:100 800;font-stretch:75% 112.5%;font-display:swap}
@font-face{font-family:"Silkscreen";src:url(../ghostmetrics/fonts/Silkscreen-Regular.woff2) format("woff2");font-weight:400;font-display:swap}
:root{
 --gm-mint:#9CFFC6;--gm-mint-pale:#D4FFE6;--gm-mint-deep:#1D6A46;
 --gm-ink:#111C19;--gm-ink-2:#1A2924;--gm-ink-3:#26372F;
 --gm-fog:#F2F7F4;--gm-white:#FFFFFF;--gm-g1:#DDE7E2;--gm-g2:#A3B2AC;--gm-g3:#5E6D67;--gm-g4:#3D4B46;
 --gm-lilac:#C7B9FF;--gm-lilac-deep:#5A41C8;--gm-coral:#FF7A5C;--gm-coral-deep:#B23A1F;
 --gm-bg:var(--gm-fog);--gm-surface:var(--gm-white);--gm-text:var(--gm-ink);--gm-muted:var(--gm-g3);--gm-line:var(--gm-g1);--gm-link:var(--gm-mint-deep);
 --gm-f-display:"Big Shoulders Display",ui-sans-serif,"Arial Narrow",sans-serif;
 --gm-f-body:"Schibsted Grotesk",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
 --gm-f-mono:"Martian Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
 --gm-f-pixel:"Silkscreen",ui-monospace,monospace;
 --gm-r1:2px;--gm-r2:4px;--gm-arch:999px 999px 4px 4px;--gm-ease:cubic-bezier(.2,.7,.2,1)
}
body[data-theme-style=dark]{--gm-bg:var(--gm-ink);--gm-surface:var(--gm-ink-2);--gm-text:var(--gm-fog);--gm-muted:var(--gm-g2);--gm-line:var(--gm-ink-3);--gm-link:var(--gm-mint)}

/* Type */
body{font-family:var(--gm-f-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,input,select,textarea,optgroup,.btn,.form-control,.custom-select,.dropdown-item,.tooltip,.popover{font-family:inherit}
h1:not(.h4):not(.h5):not(.h6):not(.small),.h1,.h2,h2:not(.h3):not(.h4):not(.h5):not(.h6):not(.small),.h3{font-family:var(--gm-f-display);font-weight:800;text-transform:uppercase;letter-spacing:.005em;line-height:.98;font-synthesis:none}
.h4,.h5,.h6,h4,h5,h6{font-family:var(--gm-f-body);font-weight:700;letter-spacing:-.005em}
code,kbd,pre,samp,.text-monospace,.font-family-monospace{font-family:var(--gm-f-mono)!important;font-stretch:87.5%}
.table td,.table th,.badge,[data-count-up-number]{font-variant-numeric:tabular-nums}
.table thead th{font:600 10px/1.3 var(--gm-f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--gm-muted);border-bottom:2px solid var(--gm-text)!important;border-top:0}
.badge{border-radius:var(--gm-r1);font-family:var(--gm-f-mono);font-weight:600;letter-spacing:.04em;font-stretch:87.5%}
a{text-underline-offset:3px}
.text-primary,a.text-primary{color:var(--gm-link)!important}
body[data-theme-style=dark] a:not(.btn):not(.dropdown-item):not(.nav-link):not(.list-group-item):not(.stretched-link):not([class*=text-]){color:var(--gm-mint)}
img{max-width:100%}
img[width][height]{height:auto}
.navbar-logo,.navbar-logo-mini,.footer-logo,.gm-fit{object-fit:contain}

/* Focus */
:focus-visible{outline:3px solid var(--gm-lilac-deep)!important;outline-offset:3px!important}
body[data-theme-style=dark] :focus-visible,.gm-on-ink :focus-visible{outline-color:var(--gm-lilac)!important}
.btn:focus,.btn.focus{box-shadow:0 0 0 3px rgba(156,255,198,.55)}
.gm-skip{position:absolute;top:-100px;left:16px;z-index:9999;background:var(--gm-mint);color:var(--gm-ink)!important;padding:12px 16px;font-weight:700}
.gm-skip:focus{top:12px}

/* Buttons */
.btn{border-radius:var(--gm-r2);font-weight:700}
body:not([data-theme-style=dark]) .btn-primary{background:var(--gm-ink);border-color:var(--gm-ink);color:var(--gm-mint)}
body:not([data-theme-style=dark]) .btn-primary:hover,body:not([data-theme-style=dark]) .btn-primary:focus,body:not([data-theme-style=dark]) .btn-primary:not(:disabled):not(.disabled):active{background:var(--gm-ink-3);border-color:var(--gm-ink-3);color:var(--gm-mint)}
body[data-theme-style=dark] .btn-primary{color:var(--gm-ink)!important}
body:not([data-theme-style=dark]) .btn-outline-primary{color:var(--gm-ink);border-color:var(--gm-ink)}
body:not([data-theme-style=dark]) .btn-outline-primary:hover{background:var(--gm-ink);color:var(--gm-mint);border-color:var(--gm-ink)}
body[data-theme-style=dark] .btn-outline-primary{color:var(--gm-mint);border-color:var(--gm-mint)}
body[data-theme-style=dark] .btn-outline-primary:hover{background:var(--gm-mint);color:var(--gm-ink)}
.btn-success{background:var(--gm-mint);border-color:var(--gm-mint);color:var(--gm-ink)}
.btn-success:hover{background:#7DEBAF;border-color:#7DEBAF;color:var(--gm-ink)}
.btn-danger{background:var(--gm-coral-deep);border-color:var(--gm-coral-deep);color:#fff}

/* Surfaces */
.card{border-radius:var(--gm-r2);border:1px solid var(--gm-line)}
.rounded-2x,.rounded-3x{border-radius:var(--gm-r2)!important}
.dropdown-menu{border-radius:var(--gm-r2);border:1px solid var(--gm-line)}
.dropdown-item{border-radius:var(--gm-r1)}
body:not([data-theme-style=dark]) .dropdown-item.active,body:not([data-theme-style=dark]) .dropdown-item:active{background:var(--gm-ink);color:var(--gm-mint)}
body[data-theme-style=dark] .dropdown-item.active,body[data-theme-style=dark] .dropdown-item:active{background:var(--gm-mint);color:var(--gm-ink)}
.modal-content{border-radius:var(--gm-r2)}
.form-control,.custom-select,.input-group-text{border-radius:var(--gm-r2)}
.form-control:focus,.custom-select:focus{border-color:var(--gm-text);box-shadow:0 0 0 4px rgba(156,255,198,.7)}
.form-control.is-invalid{border-color:var(--gm-coral-deep)!important}
.invalid-feedback,.text-danger{color:var(--gm-coral-deep)!important}
body[data-theme-style=dark] .invalid-feedback,body[data-theme-style=dark] .text-danger{color:var(--gm-coral)!important}
.custom-control-input:checked~.custom-control-label::before{background-color:var(--gm-mint-deep);border-color:var(--gm-mint-deep)}
body[data-theme-style=dark] .custom-control-input:checked~.custom-control-label::before{background-color:var(--gm-mint);border-color:var(--gm-mint)}
.nav-pills .nav-link{border-radius:var(--gm-r2);font-weight:600}
body:not([data-theme-style=dark]) .nav-pills .nav-link.active{background:var(--gm-ink);color:var(--gm-mint)}
body[data-theme-style=dark] .nav-pills .nav-link.active{background:var(--gm-mint);color:var(--gm-ink)}
.progress{border-radius:var(--gm-r1)}
.alert{border-radius:var(--gm-r2)}
.alert-info{background:var(--gm-mint-pale);color:var(--gm-ink);border-color:var(--gm-mint)}
body[data-theme-style=dark] .alert-info{background:var(--gm-ink-3);color:var(--gm-fog)}
.tooltip-inner{font-family:var(--gm-f-body);border-radius:var(--gm-r2);background:var(--gm-ink);color:var(--gm-fog)}

/* Public navbar and footer */
.navbar-main{border-radius:var(--gm-r2)!important}
.navbar-logo{height:32px!important;width:auto!important;max-width:224px!important;max-height:32px!important}
.navbar-logo-mini{max-height:26px;width:auto;max-width:170px}
.footer-logo{height:28px;width:auto;max-width:200px;max-height:28px}
.navbar-main .nav-link{font:500 12px var(--gm-f-mono);letter-spacing:.06em;text-transform:uppercase;min-height:44px;display:flex;align-items:center}
.app-footer{border-top:1px solid var(--gm-line);padding-top:32px;margin-top:64px}

/* App shell: sidebar in ink */
.app-sidebar{background:var(--gm-ink)!important;border-right:1px solid var(--gm-ink-3)!important}
.app-sidebar .app-sidebar-title,.app-sidebar .app-sidebar-footer{border-color:var(--gm-ink-3)!important}
.app-sidebar-links li>a{color:var(--gm-g2)!important;border-radius:var(--gm-r2)}
.app-sidebar-links li>a:hover{color:var(--gm-mint)!important;background:var(--gm-ink-3)!important}
.app-sidebar-links li.active{background:transparent!important}
.app-sidebar-links li.active>a{background:var(--gm-mint)!important;color:var(--gm-ink)!important}
.app-sidebar .app-sidebar-footer>a,.app-sidebar .dropdown-toggle{color:var(--gm-g2)!important}
.gm-sidebar-mark{width:30px;height:auto;aspect-ratio:1436/1802;object-fit:contain}
.app-sidebar-title a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
.admin-sidebar{border-right:1px solid var(--gm-line)!important}
.admin-sidebar .admin-sidebar-links li{border-radius:var(--gm-r2)}
body:not([data-theme-style=dark]) .admin-sidebar .admin-sidebar-links li.active{background:var(--gm-ink)!important}
body:not([data-theme-style=dark]) .admin-sidebar .admin-sidebar-links li.active>a{color:var(--gm-mint)!important}
body[data-theme-style=dark] .admin-sidebar .admin-sidebar-links li.active{background:var(--gm-mint)!important}
body[data-theme-style=dark] .admin-sidebar .admin-sidebar-links li.active>a{color:var(--gm-ink)!important}
.admin-navbar-logo{height:28px;width:auto;max-width:190px;object-fit:contain}

/* Empty states with Tally */
.gm-empty{display:flex;flex-direction:column;align-items:center}
.gm-spot-plate{display:inline-grid;place-items:center;background:var(--gm-mint-pale);border-radius:var(--gm-arch);padding:24px 24px 14px;margin:0 auto 20px}
body[data-theme-style=dark] .gm-spot-plate{background:var(--gm-fog)}
.gm-spot{display:block;max-width:100%;height:auto;object-fit:contain}
.gm-spot-plate .gm-spot{width:132px}
.gm-legend{font:400 12px/1.5 var(--gm-f-mono);font-stretch:87.5%;color:var(--gm-muted)}
.gm-pixel{font-family:var(--gm-f-pixel);letter-spacing:.04em}

/* Auth: native form beside an ink panel */
.gm-auth-main{min-height:100vh;padding:0!important;background:var(--gm-bg)}
.gm-auth-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:100vh}
.gm-auth-aside{background:var(--gm-ink);color:var(--gm-fog);padding:44px clamp(28px,4vw,72px);display:flex;flex-direction:column;justify-content:space-between;gap:28px;overflow:hidden}
.gm-auth-aside a{display:inline-block}
.gm-auth-lockup{display:block;width:200px;height:auto}
.gm-auth-aside h2{color:var(--gm-fog);font-size:clamp(44px,5vw,80px);margin:0 0 18px}
.gm-auth-aside h2 em{font-style:normal;color:var(--gm-mint);display:block}
.gm-auth-aside p{color:var(--gm-g2);max-width:42ch;font-size:16px;line-height:1.6;margin:0}
.gm-auth-art{margin:0}
.gm-auth-art img{display:block;width:auto;max-width:100%;height:auto;max-height:34vh;border-radius:var(--gm-arch)}
.gm-auth-aside .gm-eyebrow{font:500 11px/1.4 var(--gm-f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--gm-mint);margin:0 0 16px}
.gm-auth-aside small{font:400 10px var(--gm-f-pixel);color:var(--gm-mint);letter-spacing:.04em}
.gm-auth-form{align-self:center;width:100%;max-width:520px;margin:auto;padding:56px 44px}
.gm-auth-form>h1:first-of-type,.gm-auth-form>.h5:first-of-type,.gm-auth-form>h1.h5{font-family:var(--gm-f-display)!important;font-weight:800!important;text-transform:uppercase;font-size:clamp(34px,3.4vw,48px)!important;line-height:.95;letter-spacing:.005em;margin-bottom:6px}
.gm-auth-form .gm-auth-intro{font-size:15px;line-height:1.6;color:var(--gm-muted);margin-top:10px}
.gm-auth-form .btn-block,.gm-auth-form .form-control{min-height:48px}
.gm-auth-form label{font-size:13px;font-weight:600}
@media(max-width:991px){.gm-auth-form{padding:40px 28px}.gm-auth-aside{padding:36px 28px}}
@media(max-width:767px){.gm-auth-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}.gm-auth-aside{padding:18px 20px;gap:0;flex-direction:row;align-items:center}.gm-auth-aside>div,.gm-auth-aside>small,.gm-auth-aside .gm-auth-art{display:none}.gm-auth-form{padding:32px 20px;max-width:none}.gm-auth-form>.gm-auth-brand{display:none}.gm-auth-main{min-height:auto}}

/* Public statistics share page */
.gm-share-brand{display:inline-flex;align-items:center;gap:10px;font:500 11px var(--gm-f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--gm-muted)!important;text-decoration:none}
.gm-share-brand img{height:20px;width:auto}

/* Index page navbar: opaque, sticky, above the Haunt Line, so no heading shows through it */
body.gm-is-index{background:var(--gm-bg)!important}
body.gm-is-index .container:has(>.navbar-main){max-width:none;padding:0;position:sticky;top:0;z-index:1030;background:var(--gm-bg);border-bottom:1px solid var(--gm-line)}
body.gm-is-index .navbar-main{background:var(--gm-bg)!important;border:0!important;margin:0 auto!important;border-radius:0!important;padding:8px 24px;max-width:1288px}
@media(max-width:991px){body.gm-is-index .navbar-main .navbar-collapse{padding:8px 0 16px}}

@media print{.gm-haunt-line,.gm-skip{display:none!important}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
.gm-icon{width:24px;height:24px;fill:currentColor;flex:none;display:inline-block;vertical-align:middle}

/* Narrow-screen guards for vendor app chrome (no horizontal overflow at 320px) */
.app-navbar>.dropdown{min-width:0;max-width:calc(100% - 64px)}
.app-navbar>.dropdown>a{min-width:0}
.app-navbar>.dropdown>a>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row-fade-show-icon-percentage{transform:translateX(8px)}

/* Warnings use the coral family (no cream or yellow tints) */
.alert-warning{color:#8A2A14;background-color:#FFE6DF;border-color:#FFC9BB}
.alert-warning a,.alert-warning .alert-link{color:#8A2A14}
body[data-theme-style=dark] .alert-warning{color:#FFC2B3;background-color:rgba(255,122,92,.14);border-color:rgba(255,122,92,.35)}
body[data-theme-style=dark] .alert-warning a,body[data-theme-style=dark] .alert-warning .alert-link{color:#FFC2B3}
.badge-warning,.bg-warning{background-color:var(--gm-coral)!important;color:var(--gm-ink)!important}
.text-warning{color:var(--gm-coral-deep)!important}
body[data-theme-style=dark] .text-warning{color:var(--gm-coral)!important}
.btn-warning{background:var(--gm-coral);border-color:var(--gm-coral);color:var(--gm-ink)}
.btn-warning:hover,.btn-warning:focus{background:#FF9478;border-color:#FF9478;color:var(--gm-ink)}
