/* First layer deliberately wins over the existing important theme rules. */
@layer halloween {
  html[data-halloween] body {
    --gold: #f3b46a; --gold-light: #ffe0ac; --gold-dark: #b96a38;
    --line: #493741; --line-strong: #795241;
    background: radial-gradient(ellipse at 0 10%, #47281c66, transparent 50%), radial-gradient(ellipse at 100% 40%, #36214e66, transparent 60%), #0b101c !important;
  }
  html[data-halloween] :is(.page-header, .dashboard-actions) {
    border-color: #7c533b !important;
    background: radial-gradient(ellipse at 95% 20%, #703b283b, transparent 55%), linear-gradient(120deg, #131f31, #1c1627) !important;
    box-shadow: inset 0 1px 0 #ffc1741a, 0 12px 40px #0003 !important;
  }
  html[data-halloween] :is(.page-header h1 span, .eyebrow span, .overline, .column-heading-mark) { color: #ffc183 !important; }
  html[data-halloween] :is(.roster-panel, .admin-panel) { border-color: #634738 !important; }
  html[data-halloween] :is(.panel-heading, .admin-panel-heading) { background: linear-gradient(100deg, #231d27, #111c2b) !important; }
  html[data-halloween] :is(.topbar) { background: #101421 !important; border-bottom-color: #654332 !important; }
  html[data-halloween] :is(.primary-button, .refresh-button) { background: linear-gradient(135deg, #ffd29b, #db8c47) !important; color: #21180f !important; }
  html[data-halloween] :is(.permission-badge, .theme-menu-button) { border-color: #ad7643 !important; color: #ffd6a3 !important; background: #352719 !important; }
  html[data-halloween] :is(.admin-category-head th, .roster-panel thead th)::after { background: linear-gradient(180deg, #292330, #182032) !important; border-color: #614b40 !important; }
  html[data-halloween] .hero-art { opacity: .82 !important; }
}

.theme-menu-button > span { font-size:17px; margin-right:5px; }
.haunted-section { position:relative; isolation:isolate; margin-inline:55px; min-width:0; }
.haunted-content { position:relative; min-width:0; }
.haunted-side { position:absolute; inset:0; pointer-events:none; user-select:none; z-index:3; }
.halloween-figure { object-fit:contain; filter:drop-shadow(0 8px 7px #0007); }
.haunted-side .halloween-figure { position:absolute; width:var(--size,108px); height:auto; max-height:176px; top:var(--top,auto); bottom:var(--bottom,auto); transform:rotate(var(--tilt,0deg)); }
.haunted-left .halloween-figure { left:var(--edge,-62px); }
.haunted-right .halloween-figure { right:var(--edge,-40px); }
.haunted-side [data-character=freddy] { --bottom:7px; --size:104px; --tilt:-12deg; --edge:-70px; }
.haunted-side [data-character=ghostface] { --top:-18px; --size:100px; --tilt:9deg; --edge:-43px; }
.haunted-side [data-character=bonnie] { --top:115px; --size:105px; --tilt:12deg; --edge:-72px; }
.haunted-side [data-character=foxy] { --bottom:5px; --size:123px; --tilt:-14deg; --edge:-58px; }
.haunted-side [data-character=chica] { --top:54%; --size:122px; --tilt:-8deg; --edge:-40px; }
.haunted-side [data-character=golden-freddy] { --bottom:5px; --size:89px; --tilt:12deg; --edge:-64px; }
.haunted-side [data-character=chucky] { --bottom:3px; --size:94px; --tilt:-12deg; --edge:-28px; }
.haunted-side [data-character=pennywise] { --top:90px; --size:111px; --tilt:9deg; --edge:-66px; }
.haunted-side [data-character=jason] { --bottom:2px; --size:95px; --tilt:-9deg; --edge:-64px; }
.haunted-side [data-character=michael] { --top:38%; --size:106px; --tilt:7deg; --edge:-40px; }
.haunted-side [data-character=krueger] { --bottom:8px; --size:101px; --tilt:-10deg; --edge:-27px; }
.halloween-web { position:absolute; top:1px; right:1px; width:95px; height:95px; fill:none; stroke:#d7cbb6; stroke-width:.65; opacity:.3; transform:scaleX(-1); pointer-events:none; z-index:2; }
.haunted-section:has(.page-header) > .halloween-web { left:1px; right:auto; width:70px; height:70px; transform:none; opacity:.18; }
.panel-pumpkins { position:absolute; width:76px; height:51px; right:28px; bottom:23px; z-index:4; pointer-events:none; }
.haunted-section:has(.organization-panel) .panel-pumpkins { right:auto; left:35px; width:52px; height:35px; bottom:18px; }
.haunted-section:has(.justice-panel) .panel-pumpkins { right:24px; top:117px; bottom:auto; width:66px; height:44px; }
.integrated-building { position:absolute; width:260px; height:auto; right:185px; bottom:7px; opacity:.7; z-index:-1; pointer-events:none; }
.dashboard-page .haunted-side .halloween-figure { max-width:84px; --edge:-61px; }
.dashboard-page .haunted-right .halloween-figure { --edge:-62px; }
.dashboard-page .haunted-side [data-character=bonnie] { --top:160px; }
.dashboard-page .haunted-side [data-character=foxy] { --top:34%; --bottom:auto; }
.dashboard-page .haunted-side [data-character=golden-freddy] { --top:59%; --bottom:auto; }
.dashboard-page .haunted-side [data-character=chica] { --top:220px; }
.dashboard-page .haunted-side [data-character=chucky] { --top:29%; --bottom:auto; }
.dashboard-page .haunted-side [data-character=pennywise] { --top:48%; }
.dashboard-page .haunted-side [data-character=michael] { --top:69%; }
.dashboard-page .panel-pumpkins { right:-30px; bottom:27px; width:58px; height:40px; }
.theme-preview.theme-preview-individual { display:flex; align-items:end; justify-content:space-around; padding:18px 25px 0; box-sizing:border-box; background:radial-gradient(ellipse at center bottom,#713d2855,transparent 65%),#0d1421; }
.theme-preview-individual img { width:26%; height:100%; object-fit:contain; }
.theme-preview-individual img:nth-of-type(2) { width:25%; height:60%; }
@media(max-width:1199px) {
  .haunted-section { margin-inline:25px; }
  .haunted-side .halloween-figure { max-width:73px; max-height:112px; }
  .haunted-left .halloween-figure { left:-38px; }
  .haunted-right .halloween-figure { right:-30px; }
  .dashboard-page .haunted-side .halloween-figure { max-width:58px; }
  .panel-pumpkins { width:48px; height:33px; right:12px; }
  .integrated-building { right:130px; width:185px; opacity:.45; }
}
@media(max-width:600px) {
  .haunted-section { margin-inline:0; }
  .haunted-side .halloween-figure { max-width:54px; max-height:85px; }
  .haunted-left .halloween-figure { left:-9px; }
  .haunted-right .halloween-figure { right:-8px; }
  .haunted-side [data-character=freddy] { --bottom:-18px; }
  .haunted-side [data-character=ghostface] { --top:-9px; }
  .haunted-side [data-character=bonnie], .haunted-side [data-character=pennywise] { --top:95px; }
  .haunted-side [data-character=foxy], .haunted-side [data-character=golden-freddy], .haunted-side [data-character=jason], .haunted-side [data-character=chucky], .haunted-side [data-character=krueger] { --bottom:4px; }
  .haunted-side [data-character=chica], .haunted-side [data-character=michael] { --top:110px; }
  .haunted-section:has(.page-header) .haunted-right { display:none; }
  .panel-pumpkins { right:34px; width:38px; height:26px; bottom:21px; }
  .haunted-section:has(.justice-panel) .panel-pumpkins { width:38px; height:26px; right:35px; top:139px; }
  .haunted-section:has(.organization-panel) .panel-pumpkins { left:35px; width:35px; height:24px; }
  .integrated-building { right:12px; bottom:79px; width:140px; opacity:.3; }
  .dashboard-page .haunted-side { display:none; }
  .dashboard-page .panel-pumpkins { right:8px; bottom:6px; width:35px; height:24px; }
  .halloween-web { width:62px; height:62px; opacity:.2; }
}
.halloween-theme-dialog { box-sizing: border-box; width: min(640px, calc(100vw - 28px)); max-height: calc(100dvh - 40px); margin: auto; padding: 0; overflow: auto; border: 1px solid #916a49; border-radius: 24px; color: #edf1f8; background: #101a29; box-shadow: 0 40px 140px #000b, 0 0 50px #ce793014; font-family: inherit; }
.halloween-theme-dialog::backdrop { background: #040812c9; backdrop-filter: blur(8px); }
.theme-dialog-heading { padding: 23px 26px 20px; display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.theme-dialog-heading h2 { margin: 0; font-size: 30px; font-weight: 650; letter-spacing: -.04em; }
.theme-close { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid #586073; border-radius: 50%; color: #e8edf5; background: #1b2739; font: 26px/1 system-ui; cursor: pointer; }
.theme-close:hover { background: #623342; }
.theme-preview { position: relative; aspect-ratio: 8/3; overflow: hidden; border-block: 1px solid #584334; }
.theme-preview img { width: 100%; height: 100%; object-fit: cover; display: block; }
.theme-preview span { position: absolute; top: 12px; left: 14px; color: #ffe0ab; background: #101522cf; border: 1px solid #856440; border-radius: 6px; padding: 5px 8px; font-size: 10px; font-weight: 800; letter-spacing: .15em; }
.theme-dialog-body { padding: 24px 26px 22px; }
.theme-option { display: flex; align-items: center; gap: 22px; justify-content: space-between; }
.theme-option h3 { margin: 0 0 7px; color: #ffe1b7; font-size: 20px; }
.theme-option p { margin: 0; max-width: 440px; font-size: 13px; line-height: 1.7; color: #b6c2d3; }
.theme-switch { position: relative; display: block; width: 58px; height: 32px; flex: 0 0 58px; cursor: pointer; }
.theme-switch input { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.theme-switch span { display: block; height: 100%; border: 1px solid #586b82; border-radius: 99px; background: #29374a; transition: background .2s; }
.theme-switch span::after { content: ''; position: absolute; top: 5px; left: 5px; width: 22px; height: 22px; border-radius: 50%; background: #c4cedb; transition: transform .2s; }
.theme-switch input:checked + span { background: #d89049; border-color: #ffcb80; box-shadow: 0 0 18px #f4973333; }
.theme-switch input:checked + span::after { transform: translateX(26px); background: #fff3d9; }
.theme-switch input:focus-visible + span, .theme-close:focus-visible { outline: 3px solid #eec28a; outline-offset: 4px; }
.theme-switch input:disabled { cursor: wait; }
.theme-switch:has(input:disabled) { opacity: .5; }
.theme-state { font-size: 12px; color: #a7b7cb; margin: 15px 0 20px; }
.theme-enabled .theme-state { color: #ffca8a; }
.theme-state::before { content: '●'; margin-right: 7px; font-size: 9px; }
.theme-cast { padding: 15px 0; border-top: 1px solid #354256; border-bottom: 1px solid #354256; color: #97a8bf; font-size: 11px; line-height: 1.9; }
.theme-feedback { min-height: 20px; font-size: 12px; line-height: 1.6; color: #f4d6ac; }
.theme-footnote { color: #8596ae; font-size: 10px; line-height: 1.6; }

@media (max-width: 760px) {
  .theme-dialog-heading, .theme-dialog-body { padding: 20px; }
  .theme-option h3 { font-size: 17px; }
}
@media (prefers-reduced-motion: reduce) {
  .theme-switch span, .theme-switch span::after { transition: none; }
}


@media(max-width:760px) { @layer halloween { html[data-halloween] .hero-art { opacity:.38 !important; } } }

@media(min-width:1200px) {
  body:not(.dashboard-page) .haunted-side [data-character=bonnie] { left:61%; top:-55px; bottom:auto; width:102px; max-height:none; transform:rotate(-5deg); clip-path:inset(0 0 55% 0); }
  body:not(.dashboard-page) .haunted-side [data-character=golden-freddy] { left:70%; top:-49px; bottom:auto; width:94px; max-height:none; transform:rotate(7deg); clip-path:inset(0 0 55% 0); }
  body:not(.dashboard-page) .haunted-side [data-character=ghostface] { right:36px; top:-39px; width:100px; max-height:none; transform:rotate(8deg); clip-path:inset(0 0 57% 0); }
  body:not(.dashboard-page) .haunted-side [data-character=pennywise] { left:52%; top:-59px; width:114px; max-height:none; transform:rotate(-6deg); clip-path:inset(0 0 56% 0); }
  body:not(.dashboard-page) .haunted-section:has(.organization-panel), body:not(.dashboard-page) .haunted-section:has(.justice-panel) { margin-top:28px; }
}
.haunted-table { position:relative; }
.table-cobweb { position:absolute; top:0; right:0; width:240px; height:160px; fill:none; stroke:#eee0c8; stroke-width:.65; opacity:.26; transform:scaleX(-1); pointer-events:none; z-index:4; }
.dashboard-page .table-cobweb { width:170px; height:135px; opacity:.19; }
@media(min-width:1200px) { body:not(.dashboard-page) .haunted-side [data-character=ghostface] { top:-12px; } }
@media(max-width:600px) { .table-cobweb { width:128px; height:95px; opacity:.19; } }
/* Nets start inside the actual rounded borders, with different corner anchors. */
.haunted-section > .halloween-web { top:2px; right:2px; clip-path:inset(0 round 26px 0 0 0); }
.haunted-section > .web-upper-left { left:2px; right:auto; transform:none; width:78px; height:108px; }
.haunted-section > .web-lower-right { top:auto; bottom:2px; right:2px; transform:scale(-1); width:88px; height:72px; }
.table-cobweb { top:12px; right:12px; width:183px; height:132px; opacity:.23; clip-path:inset(0 round 15px 0 0 0); }
.table-cobweb.web-top-right { transform:scaleX(-1); }
.table-cobweb.web-top-left { right:auto; left:12px; width:143px; height:114px; transform:none; opacity:.18; }
.table-cobweb.web-bottom-left { top:auto; bottom:12px; right:auto; left:12px; width:117px; height:99px; transform:scaleY(-1); opacity:.2; }
.dashboard-page .table-cobweb { top:17px; right:17px; width:146px; height:123px; clip-path:inset(0 round 14px 0 0 0); }
@media(max-width:600px) {
  .table-cobweb { top:2px; right:2px; width:91px; height:89px; clip-path:inset(0 round 18px 0 0 0); opacity:.18; }
  .table-cobweb.web-top-left { left:2px; width:76px; height:83px; }
  .table-cobweb.web-bottom-left { left:2px; bottom:2px; width:82px; height:64px; }
}
@layer halloween {
 html[data-halloween] body { --gold:#ffad54; --gold-light:#ffd5a0; --line:#634057; --line-strong:#965b6a; color:#f4e9f3; background:radial-gradient(ellipse at 3% 12%,#78351955,transparent 42%),radial-gradient(ellipse at 100% 45%,#71349944,transparent 48%),linear-gradient(155deg,#180e1b,#0f0a18 60%,#201123) !important; }
 html[data-halloween] :is(.page-header,.dashboard-actions) { border-color:#ab613d !important; background:radial-gradient(ellipse at 81% 28%,#bd58272e,transparent 43%),linear-gradient(118deg,#2a1725,#281632 65%,#371c24) !important; box-shadow:inset 0 1px #ffc18133,0 15px 50px #08040966 !important; }
 html[data-halloween] .lawyers-panel { --season-row:#2b1c28; --season-alt:#332131; --season-head:#462738; --season-border:#814938; }
 html[data-halloween] .organization-panel { --season-row:#271d36; --season-alt:#302440; --season-head:#402952; --season-border:#77518d; }
 html[data-halloween] .justice-panel { --season-row:#202b2c; --season-alt:#283335; --season-head:#303847; --season-border:#6b6977; }
 html[data-halloween] :is(.roster-panel,.admin-panel) { background:#190f21 !important; border-color:var(--season-border,#784752) !important; box-shadow:0 12px 35px #08030a44 !important; }
 html[data-halloween] .panel-heading { background:radial-gradient(ellipse at 72% 50%,#ffac5a0a,transparent 65%),linear-gradient(110deg,var(--season-head),#1b1326) !important; }
 html[data-halloween] .interactive-row td { background:var(--season-row) !important; border-color:#a47a8a2e !important; }
 html[data-halloween] .interactive-row.public-stripe-b td { background:var(--season-alt) !important; }
 html[data-halloween] .interactive-row:hover td { background:var(--season-head) !important; border-color:#e2a16c77 !important; }
 html[data-halloween] :is(.roster-panel thead th,.admin-category-head th)::after { background:linear-gradient(180deg,#4a2945,#2e2036) !important; border-color:#925b6b88 !important; }
 html[data-halloween] :is(.topbar,.table-footer,.admin-table-wrap) { background:#1c1225 !important; border-color:#674257 !important; }
 html[data-halloween] :is(.admin-panel-heading,.admin-group-row th) { background:linear-gradient(110deg,#422535,#25182e) !important; border-color:#774b60 !important; color:#ffc48d !important; }
 html[data-halloween] .admin-person-row > td { background:#2a1c31 !important; border-color:#79485d55 !important; }
 html[data-halloween] .admin-person-row:nth-child(even) > td { background:#32213a !important; }
 html[data-halloween] .admin-stats article { background:radial-gradient(ellipse at top right,#b4602922,transparent 70%),#2b1a30 !important; border-color:#805168 !important; }
 html[data-halloween] :is(input,select,textarea,.search-field,.search-box) { background:#1e1328 !important; color:#f3e5ef !important; border-color:#85566d !important; }
 html[data-halloween] :is(input,textarea)::placeholder { color:#bb9db5 !important; }
 html[data-halloween] :is(.primary-button,.refresh-button) { background:linear-gradient(135deg,#ffba64,#ed7c37) !important; border-color:#f6a65e !important; color:#27131a !important; box-shadow:0 3px 17px #f17c3222 !important; }
 html[data-halloween] :is(.ghost-button,.outline-button,.icon-button,.move-button) { background:#34213f !important; border-color:#865875 !important; color:#f0cbe4 !important; }
 html[data-halloween] :is(.permission-badge,.theme-menu-button) { background:#64331e !important; border-color:#c97e42 !important; color:#ffdaa3 !important; }
 html[data-halloween] :is(.panel-art,.heading-art) { filter:sepia(.3) saturate(1.6); }
 html[data-halloween] :is(dialog,.login-card,.login-panel,.modal-panel) { background:#25172e !important; color:#f7eaf4 !important; border-color:#88516c !important; }
 html[data-halloween] ::selection { background:#9b5db7; color:#fff; }
}
@media(min-width:1200px) {
 body:not(.dashboard-page) .haunted-side [data-character=freddy] { left:calc(100% - 195px); bottom:calc(100% - 216px); width:81px; transform:rotate(-4deg); }
 body:not(.dashboard-page) .haunted-side [data-character=foxy] { left:-29px; bottom:7px; width:108px; transform:rotate(-17deg); }
 body:not(.dashboard-page) .haunted-side [data-character=chica] { right:-27px; top:54%; width:106px; transform:rotate(6deg); }
 body:not(.dashboard-page) .haunted-side [data-character=jason] { left:-32px; bottom:4px; width:93px; transform:rotate(5deg); }
}
@layer halloween {
 html[data-halloween] .person-card { background:var(--season-row,#2b1c28) !important; border-color:#825467 !important; }
 html[data-halloween] .person-card:nth-child(even) { background:var(--season-alt,#332131) !important; }
 html[data-halloween] .person-card:hover { background:var(--season-head,#462738) !important; }
 html[data-halloween] .detail-field { background:#322139 !important; border-color:#76516c !important; }
 html[data-halloween] .panel-illustration { filter:sepia(.45) saturate(1.4); }
}
/* Keep the admin summary aligned with the decorated content. */
html[data-halloween] .dashboard-page .admin-stats { margin-inline:55px; }
@media(min-width:1200px) {
 body:not(.dashboard-page) .haunted-side [data-character=ghostface] { right:265px; top:-12px; }
 .dashboard-page .haunted-section:has(.admin-panel) { margin-top:45px; }
 .dashboard-page .haunted-side [data-character=bonnie] { left:38%; top:-49px; bottom:auto; width:94px; max-width:none; max-height:none; transform:rotate(-6deg); clip-path:inset(0 0 55% 0); }
 .dashboard-page .haunted-side [data-character=golden-freddy] { left:-31px; top:58%; width:90px; max-width:none; transform:rotate(9deg); clip-path:inset(0 45% 0 0); }
 .dashboard-page .haunted-side [data-character=foxy] { left:-33px; top:31%; width:104px; max-width:none; transform:rotate(-9deg); clip-path:inset(0 43% 0 0); }
 .dashboard-page .haunted-side [data-character=jason] { left:-27px; bottom:30px; width:89px; max-width:none; transform:rotate(5deg); clip-path:inset(0 43% 0 0); }
 .dashboard-page .haunted-side [data-character=chica] { right:-33px; top:195px; width:106px; max-width:none; transform:rotate(8deg); clip-path:inset(0 0 0 44%); }
 .dashboard-page .haunted-side [data-character=chucky] { right:-28px; top:31%; width:86px; max-width:none; transform:rotate(-8deg); clip-path:inset(0 0 0 42%); }
 .dashboard-page .haunted-side [data-character=pennywise] { right:15%; top:-52px; width:107px; max-width:none; max-height:none; transform:rotate(5deg); clip-path:inset(0 0 55% 0); }
 .dashboard-page .haunted-side [data-character=michael] { right:-28px; top:68%; width:91px; max-width:none; transform:rotate(7deg); clip-path:inset(0 0 0 43%); }
 .dashboard-page .haunted-side [data-character=krueger] { right:-29px; bottom:15px; width:92px; max-width:none; transform:rotate(-7deg); clip-path:inset(0 0 0 42%); }
 .dashboard-page .haunted-side [data-character=ghostface] { right:35px; top:-12px; width:95px; max-width:none; max-height:none; transform:rotate(6deg); clip-path:inset(0 0 57% 0); }
}
@media(min-width:601px) and (max-width:1199px) { html[data-halloween] .dashboard-page .admin-stats { margin-inline:25px; } }
@media(max-width:600px) { html[data-halloween] .dashboard-page .admin-stats { margin-inline:0; } }
@layer halloween {
 html[data-halloween] dialog:not(.logo-dialog):not(.toast) { --window-accent:#f6ad68; background:radial-gradient(ellipse at 100% 0,#83452c22,transparent 60%),linear-gradient(145deg,#2c1a33,#1b1125) !important; border:1px solid #9a6270 !important; border-radius:22px !important; box-shadow:0 30px 100px #050208bb,inset 0 1px #ffd7a422 !important; }
 html[data-halloween] dialog::backdrop { background:#0d0515b8 !important; backdrop-filter:blur(7px) !important; }
 html[data-halloween] :is(.detail-modal,.users-dialog-content,.audit-log-content,.developer-dialog-content) { background:transparent !important; }
 html[data-halloween] :is(.detail-heading,.dialog-heading,.theme-dialog-heading) { background:url('/halloween/dialog-web.svg') right 45px top / 105px 105px no-repeat,linear-gradient(110deg,#5b304529,transparent) !important; border-color:#81526b !important; }
 html[data-halloween] .detail-heading::after { content:'' !important; position:absolute; right:50px; bottom:17px; width:64px; height:43px; background:url('/halloween/pumpkin.png') center / contain no-repeat; pointer-events:none; }
 html[data-halloween] .detail-dialog[data-group=justice] { --window-accent:#cab0ef; border-color:#9472a9 !important; }
 html[data-halloween] .detail-dialog[data-group=justice] .detail-heading::after { right:24px; width:48px; height:34px; }
 html[data-halloween] :is(.detail-field,.dynamic-fields > .field,.user-row,.audit-user-card,.audit-category-card,.audit-row,.users-list-toggle,.developer-card) { background:linear-gradient(120deg,#38243e,#2b1c32) !important; border-color:#78516a !important; color:#f3e6ef !important; }
 html[data-halloween] :is(.detail-field dt,.field,.dialog-subtitle,.detail-kicker) { color:#deb9d1 !important; }
 html[data-halloween] :is(.detail-heading h2,.app-dialog h2,.developer-dialog h2) { color:#fff0de !important; }
 html[data-halloween] :is(.dialog-actions,.detail-heading::before,.users-toolbar,.audit-log-toolbar) { border-color:#78516a !important; }
 html[data-halloween] :is(.dialog-close,.detail-close,.theme-close,.logo-dialog-close) { background:#45253e !important; color:#ffdbb7 !important; border-color:#b57c82 !important; z-index:10; }
 html[data-halloween] :is(.dialog-close,.detail-close,.theme-close):hover { background:#6d3448 !important; }
 html[data-halloween] :is(.danger-dialog,.person-expired-dialog,.person-blocked-dialog) { border-color:#c26876 !important; background:linear-gradient(140deg,#3e1c30,#221222) !important; }
 html[data-halloween] .copy-confirm-dialog { background:linear-gradient(140deg,#2b4035,#24182f) !important; border-color:#7cad86 !important; }
 html[data-halloween] .logo-dialog { background:radial-gradient(ellipse,#653d344d,transparent 65%) !important; }
 html[data-halloween] dialog.toast { background:transparent !important; color:#ffddb7 !important; }
 html[data-halloween] .toast::backdrop { background:#110916a6 !important; }
 html[data-halloween] .register-group-count { background:#39213d !important; color:#ffddb7 !important; border-color:#925b6b !important; }
 html[data-halloween] .toast-card { background:radial-gradient(ellipse at 50% 0,#83452c33,transparent 70%),linear-gradient(145deg,#39213d,#21152c) !important; color:#ffddb7 !important; border-color:#b78667 !important; box-shadow:0 24px 70px #09041080,inset 0 1px #ffd7a422 !important; }
 html[data-halloween] .toast-card strong { color:#fff0d7 !important; }
 html[data-halloween] .toast-card > span:last-child { color:#e5c5cd !important; }
 html[data-halloween] .toast-icon { color:#ffd69c !important; background:#573021 !important; border-color:#c9874e !important; box-shadow:0 0 0 8px #f3b46a12 !important; }
 html[data-halloween] .toast:is(.error,.deleted) .toast-card { border-color:#bd707d !important; }
 html[data-halloween] .toast:is(.error,.deleted) .toast-icon { color:#ffbac2 !important; background:#542334 !important; border-color:#bd707d !important; box-shadow:0 0 0 8px #bd707d12 !important; }
 html[data-halloween] :is(.user-row:hover,.audit-user-card:hover,.audit-category-card:hover) { background:#4b2e4c !important; }
}
@media(max-width:600px) { @layer halloween { html[data-halloween] .detail-heading::after { width:36px; height:26px; right:12px; bottom:14px; } } }
@layer halloween {
 html[data-halloween] :is(.custom-select-button,.date-trigger,.calendar-popover,.custom-select-menu) { background:#2e1c36 !important; color:#f7e5f1 !important; border-color:#9b687e !important; }
 html[data-halloween] :is(.custom-select-option:hover,.custom-select-option.is-selected,.calendar-day:hover:not(:disabled)) { background:#633849 !important; color:#ffe0b8 !important; }
 html[data-halloween] .calendar-day.is-selected { background:#ed984f !important; color:#20111d !important; }
}
/* Dialogs use individual characters instead of webs. */
@layer halloween {
 html[data-halloween] :is(.detail-heading,.dialog-heading,.theme-dialog-heading) { background:linear-gradient(110deg,#5b304529,transparent) !important; }
 html[data-halloween] .detail-heading::after { background:url('/halloween/freddy.png') center bottom / contain no-repeat !important; width:65px !important; height:96px !important; right:72px !important; bottom:13px !important; }
 html[data-halloween] .detail-dialog[data-group=justice] .detail-heading::after { background-image:url('/halloween/ghostface.png') !important; right:70px !important; }
 html[data-halloween] .detail-dialog[data-group=organizations] .detail-heading::after { background-image:url('/halloween/bonnie.png') !important; }
 html[data-halloween] .app-dialog .dialog-heading { position:relative !important; min-height:92px !important; padding-right:125px !important; box-sizing:border-box; }
 html[data-halloween] .app-dialog .dialog-heading > div { padding-right:0 !important; }
 html[data-halloween] .app-dialog .dialog-heading .dialog-close { position:absolute; right:0; top:0; }
 html[data-halloween] .app-dialog .dialog-heading::after { content:'' !important; position:absolute !important; right:49px !important; top:0 !important; bottom:auto !important; width:62px !important; height:91px !important; opacity:1 !important; background:url('/halloween/freddy.png') center bottom / contain no-repeat !important; pointer-events:none; transform:rotate(-5deg); }
 html[data-halloween] #users-dialog .dialog-heading::after { background-image:url('/halloween/bonnie.png') !important; transform:rotate(5deg); }
 html[data-halloween] #users-list-dialog .dialog-heading::after { background-image:url('/halloween/chica.png') !important; }
 html[data-halloween] #password-dialog .dialog-heading::after { background-image:url('/halloween/foxy.png') !important; }
 html[data-halloween] #audit-log-dialog .dialog-heading::after { background-image:url('/halloween/ghostface.png') !important; }
 html[data-halloween] #audit-user-dialog .dialog-heading::after { background-image:url('/halloween/jason.png') !important; }
 html[data-halloween] #audit-category-dialog .dialog-heading::after { background-image:url('/halloween/michael.png') !important; }
 html[data-halloween] #delete-dialog { padding-top:104px !important; position:relative; }
 html[data-halloween] #delete-dialog::after { content:'' !important; position:absolute; top:14px; left:26px; width:54px; height:80px; background:url('/halloween/chucky.png') center / contain no-repeat !important; pointer-events:none; }
 html[data-halloween] .logo-dialog::after { content:''; position:absolute; bottom:8%; left:8%; width:60px; height:90px; background:url('/halloween/golden-freddy.png') center / contain no-repeat; pointer-events:none; }
}
@media(max-width:600px) { @layer halloween {
 html[data-halloween] .detail-heading::after { right:12px !important; bottom:12px !important; width:40px !important; height:60px !important; }
 html[data-halloween] .app-dialog .dialog-heading { padding-right:98px !important; min-height:83px !important; }
 html[data-halloween] .app-dialog .dialog-heading::after { right:42px !important; width:48px !important; height:76px !important; }
} }

@layer halloween { html[data-halloween] .app-dialog .dialog-heading .dialog-close { position:absolute !important; inset:0 0 auto auto !important; transform:none !important; } }
.window-character-strip { display:none; }
@layer halloween {
 html[data-halloween] dialog:not(.toast):not(.logo-dialog) { background:url('/halloween/window-vine.svg') left top / 26px 244px repeat-y,url('/halloween/window-vine.svg') right 110px / 26px 244px repeat-y,linear-gradient(145deg,#2c1a33,#1b1125) !important; }
 html[data-halloween] .window-character-strip { display:flex; justify-content:center; align-items:flex-end; height:93px; margin:0 30px 12px; border-top:1px solid #9c6b6633; pointer-events:none; }
 html[data-halloween] .window-character-strip .halloween-figure { width:58px; height:87px; object-fit:contain; filter:drop-shadow(0 3px 5px #0005); }
 html[data-halloween] :is(.detail-heading,.app-dialog .dialog-heading)::after,
 html[data-halloween] #delete-dialog::after,
 html[data-halloween] .logo-dialog::after { content:none !important; background:none !important; }
 html[data-halloween] .app-dialog .dialog-heading { padding-right:45px !important; min-height:0 !important; }
 html[data-halloween] #delete-dialog { padding-top:32px !important; }
 html[data-halloween] .detail-modal { max-height:calc(100svh - 142px); }
}
@media(max-width:600px) { @layer halloween {
 html[data-halloween] dialog:not(.toast):not(.logo-dialog) { background-size:18px 210px,18px 210px,auto !important; }
 html[data-halloween] .window-character-strip { height:67px; margin-bottom:8px; }
 html[data-halloween] .window-character-strip .halloween-figure { width:43px; height:64px; }
 html[data-halloween] .detail-modal { max-height:calc(100svh - 112px); }
} }

@layer halloween { html[data-halloween] .window-character-strip { display:flex !important; } }
.page-season-vines,.window-title-figure { display:none; }
@layer halloween {
 html[data-halloween] .page-season-vines { display:block !important; position:fixed; inset:0 3px; z-index:4; pointer-events:none; background:url('/halloween/window-vine.svg') left top / 24px 290px repeat-y,url('/halloween/window-vine.svg') right 130px / 24px 290px repeat-y; opacity:.72; }
 html[data-halloween] .window-title-copy { display:grid !important; grid-template-columns:minmax(0,1fr) 62px; column-gap:18px; align-items:center; }
 html[data-halloween] .window-title-copy > :not(.window-title-figure) { grid-column:1; }
 html[data-halloween] .window-title-copy .window-title-figure { display:block !important; grid-column:2; grid-row:1 / span 4; width:62px; height:96px; object-fit:contain; align-self:center; pointer-events:none; }
 html[data-halloween] .app-dialog .dialog-heading > .window-title-copy { flex:1; }
}
@media(max-width:600px) { @layer halloween {
 html[data-halloween] .page-season-vines { inset:0; background-size:9px 160px,9px 160px; opacity:.48; }
 html[data-halloween] .window-title-copy { grid-template-columns:minmax(0,1fr) 40px; column-gap:8px; }
 html[data-halloween] .window-title-copy .window-title-figure { width:40px; height:67px; }
 html[data-halloween] .detail-heading { grid-template-columns:minmax(0,1fr) !important; padding-right:40px !important; }
 html[data-halloween] .detail-illustration { display:none; }
} }

@media(max-width:600px) { @layer halloween { html[data-halloween] .detail-illustration { display:block !important; width:110px; height:54px; justify-self:end; } } }
/* Stable viewport and complete seasonal dialog surfaces. */

html[data-theme-pending] body { visibility:hidden; }
.theme-preview.theme-preview-individual { height:220px; aspect-ratio:auto; align-items:center; }
.theme-preview.theme-preview-individual img { width:28%; height:190px; object-fit:contain; flex:0 1 28%; }
.theme-preview.theme-preview-individual img:nth-child(2) { height:130px; }
@layer halloween {
 html[data-halloween] :is(.users-list-card,.users-list-shell,#audit-log-list,#audit-user-list,#audit-category-list,.category-person,.login-story,.login-layout) { background:#24162d !important; border-color:#80536b !important; }
 html[data-halloween] .category-person:hover { background:#442a49 !important; }
 html[data-halloween] :is(.table-button.password,.user-actions .table-button.edit,.user-level-pill.level-2,.audit-card-emblem) { color:#ffdaad !important; background:#503047 !important; border-color:#a76d77 !important; box-shadow:none !important; }
 html[data-halloween] :is(.detail-heading,.dialog-heading,.theme-dialog-heading) { background:transparent !important; box-shadow:none !important; }
 html[data-halloween] .detail-heading::before { background:none !important; box-shadow:none !important; }
 html[data-halloween] :is(.detail-heading h2,.detail-status) { text-shadow:none !important; filter:none !important; }
 html[data-halloween] .detail-status::before { box-shadow:none !important; }
 html[data-halloween] .window-character-strip { display:none !important; }
 html[data-halloween] .window-title-copy .window-title-figure { width:80px; height:120px; filter:none; }
 html[data-halloween] .window-title-copy { grid-template-columns:minmax(0,1fr) 80px; }
 html[data-halloween] .detail-modal { max-height:calc(100svh - 52px) !important; }
 html[data-halloween] .detail-field:last-child { padding-right:92px; background-image:url('/halloween/pumpkin.png'),linear-gradient(120deg,#38243e,#2b1c32) !important; background-position:right 12px bottom 8px,center !important; background-size:65px 44px,auto !important; background-repeat:no-repeat !important; }
 html[data-halloween] .theme-preview { background:#24162d !important; }
 html[data-halloween] .login-story { background-image:url('/halloween/freddy.png'),url('/halloween/pumpkin.png') !important; background-position:left 10% bottom 12%,right 10% bottom 12% !important; background-size:100px 150px,95px 65px !important; background-repeat:no-repeat !important; }
}
@media(max-width:600px) { @layer halloween {
 html[data-halloween] .window-title-copy { grid-template-columns:minmax(0,1fr) 48px; }
 html[data-halloween] .window-title-copy .window-title-figure { width:48px; height:76px; }
} }


.halloween-theme-dialog[open] { animation:dialog-in .2s ease-out; }
.halloween-theme-dialog.is-closing { animation:dialog-out .18s ease-in forwards; }
.halloween-theme-dialog[open]::backdrop { animation:backdrop-in .2s ease-out; }
.halloween-theme-dialog.is-closing::backdrop { animation:backdrop-out .18s ease-in forwards; }
.theme-close { transition:transform .2s ease,background .2s ease,border-color .2s ease; }
.theme-close:hover,.theme-close:focus-visible { transform:rotate(90deg); background:#85232b; color:white; border-color:#c26876; }
@layer halloween {
 html[data-halloween] .app-dialog .dialog-heading .dialog-close:hover,
 html[data-halloween] .app-dialog .dialog-heading .dialog-close:focus-visible { transform:rotate(90deg) !important; }
 html[data-halloween] .publish-toggle { background:#36203c !important; border-color:#80536b !important; }
}
@media(prefers-reduced-motion:reduce) { .halloween-theme-dialog,.halloween-theme-dialog::backdrop { animation:none !important; } .theme-close { transition:none; } }
/* Warm seasonal status colors and scroll rails with room for the vines. */
@layer halloween {
 html[data-halloween] .justice-panel { --season-row:#302039; --season-alt:#392640; --season-head:#49304f; --season-border:#8e638f; }
 html[data-halloween] body { --green:#ffc183; }
 html[data-halloween] :is(.validity-good,.validity-attention) { --status-ink:#ffd09b; --status-bg:#4b2c28; --status-line:#956141; }
 html[data-halloween] .detail-summary { color:#ffd09b !important; }
 html[data-halloween] .detail-summary::before { background:#f4aa65 !important; box-shadow:none !important; }
 html[data-halloween] :is(.copy-confirm-card,.copy-confirm-dialog) { background:#36203c !important; border-color:#a46e79 !important; }
 html[data-halloween],html[data-halloween] * { scrollbar-color:#c88651 #211329 !important; scrollbar-width:thin !important; }
 html[data-halloween] ::-webkit-scrollbar,html[data-halloween]::-webkit-scrollbar { width:9px !important; height:9px !important; }
 html[data-halloween] ::-webkit-scrollbar-track,html[data-halloween]::-webkit-scrollbar-track { background:#211329 !important; border-radius:12px !important; }
 html[data-halloween] ::-webkit-scrollbar-thumb,html[data-halloween]::-webkit-scrollbar-thumb { background:#c88651 !important; border:2px solid #211329 !important; border-radius:12px !important; }
 html[data-halloween] ::-webkit-scrollbar-thumb:hover,html[data-halloween]::-webkit-scrollbar-thumb:hover { background:#f6b77d !important; }
 html[data-halloween] ::-webkit-scrollbar-corner { background:#211329 !important; }
 html[data-halloween] .detail-dialog { overflow:hidden !important; }
 html[data-halloween] .detail-dialog .detail-modal { margin-inline:26px !important; padding-inline:12px !important; scrollbar-gutter:stable; }
 html[data-halloween] .haunted-side .halloween-figure { clip-path:none !important; }
}
@media(min-width:1200px) {
 .haunted-side [data-character=bonnie] { top:-52px !important; bottom:auto !important; width:105px !important; max-height:130px !important; transform:rotate(-4deg) !important; }
 .haunted-side [data-character=golden-freddy] { left:-46px !important; top:55% !important; bottom:auto !important; width:90px !important; max-height:125px !important; transform:none !important; }
 .haunted-side [data-character=pennywise] { top:-44px !important; width:68px !important; max-height:110px !important; }
 .haunted-side [data-character=ghostface] { top:-24px !important; width:60px !important; max-height:95px !important; }
 .dashboard-page .haunted-side :is([data-character=foxy],[data-character=jason]) { left:-50px; width:65px; transform:rotate(-8deg); }
 .dashboard-page .haunted-side :is([data-character=chica],[data-character=chucky],[data-character=michael],[data-character=krueger]) { right:-46px; width:65px; transform:rotate(8deg); }
}
@media(max-width:600px) { @layer halloween {
 html[data-halloween] .detail-dialog .detail-modal { margin-inline:18px !important; padding-inline:8px !important; }
} }
@layer halloween {
 html[data-halloween] { --black:#160d20; --page-deep:#160d20; background:#160d20 !important; }
 html[data-halloween].is-loading,html[data-halloween].page-entered,html[data-halloween].page-leaving { background:#160d20 !important; }
}
@layer halloween {
 html[data-halloween] :is(.validity-good,.validity-attention) { --status-ink:#ffd09b !important; --status-bg:#4b2c28 !important; --status-line:#956141 !important; }
 html[data-halloween] :is(.validity-good,.validity-attention) .validity-pill,
 html[data-halloween] :is(.validity-good,.validity-attention).detail-validity { color:#ffd09b !important; background:#4b2c28 !important; border-color:#956141 !important; }
}
/* Additional individual film characters, with distinct anchors. */
@media(min-width:1200px) {
 body:not(.dashboard-page) .haunted-side [data-character=freddy] { left:-50px; top:80px; bottom:auto; width:98px; transform:rotate(-7deg); }
 .dashboard-page .haunted-side [data-character=freddy] { left:-46px; top:48px; bottom:auto; width:92px; transform:rotate(-6deg); }
 .haunted-side [data-character=annabelle] { left:-46px; top:47%; bottom:auto; width:78px; max-height:112px; transform:rotate(-4deg); }
 .haunted-side [data-character=billy] { right:-36px; top:44%; bottom:auto; width:88px; max-height:120px; transform:rotate(4deg); }
 .dashboard-page .haunted-side [data-character=annabelle] { top:44%; }
 .dashboard-page .haunted-side [data-character=billy] { top:84%; }
}
@media(min-width:601px) and (max-width:1199px) {
 .haunted-side [data-character=annabelle] { left:-23px; top:45%; width:48px; }
 .haunted-side [data-character=billy] { right:-22px; top:54%; width:50px; }
}
@media(max-width:600px) {
 .haunted-side :is([data-character=annabelle],[data-character=billy]) { display:none; }
}
@media(min-width:1200px) {
 .haunted-side [data-character=pinhead] { left:-43px; top:34%; bottom:auto; width:67px; max-height:115px; transform:rotate(-5deg); }
 .haunted-side [data-character=leatherface] { right:-43px; top:24%; bottom:auto; width:79px; max-height:120px; transform:rotate(4deg); }
 .haunted-side [data-character=valak] { right:-33px; top:65%; bottom:auto; width:60px; max-height:115px; transform:rotate(-3deg); }
 .dashboard-page .haunted-side [data-character=pinhead] { top:75%; }
 .dashboard-page .haunted-side [data-character=leatherface] { top:48%; }
 .dashboard-page .haunted-side [data-character=valak] { top:17%; }
}
@media(max-width:1199px) { .haunted-side :is([data-character=pinhead],[data-character=leatherface],[data-character=valak]) { display:none; } }
@media(min-width:1200px) {
 body:not(.dashboard-page) .haunted-side [data-character=billy] { top:51%; }
}

/* Film-proportioned characters: room for faces and costumes along the frame. */
@media(min-width:1200px) {
 .haunted-side [data-character=pinhead] { left:-92px; top:30%; width:170px; max-width:170px; max-height:260px; transform:none; filter:brightness(1.16) drop-shadow(0 3px 5px #0005); }
 .haunted-side [data-character=art] { right:-74px; top:12%; bottom:auto; width:140px; max-width:140px; max-height:215px; transform:rotate(3deg); }
 .haunted-side [data-character=sam] { left:-67px; top:62%; bottom:auto; width:114px; max-width:114px; max-height:174px; transform:rotate(-3deg); }
 .haunted-side [data-character=nosferatu] { right:-75px; top:76%; bottom:auto; width:140px; max-width:140px; max-height:215px; transform:none; filter:brightness(1.14) drop-shadow(0 3px 5px #0005); }
 .dashboard-page .haunted-side [data-character=pinhead] { top:73%; }
 .dashboard-page .haunted-side [data-character=art] { left:-78px; right:auto; top:17%; }
 .dashboard-page .haunted-side [data-character=sam] { top:88%; }
 .dashboard-page .haunted-side [data-character=nosferatu] { top:91%; }
}
@media(max-width:1199px) {
 .haunted-side :is([data-character=art],[data-character=sam],[data-character=nosferatu]) { display:none; }
}
@layer halloween {
 html[data-halloween] .window-title-copy:has([data-character=pinhead]) { grid-template-columns:minmax(0,1fr) 102px; }
 html[data-halloween] .window-title-copy [data-character=pinhead] { width:102px; height:150px; filter:brightness(1.16); }
}
@media(max-width:600px) { @layer halloween {
 html[data-halloween] .window-title-copy:has([data-character=pinhead]) { grid-template-columns:minmax(0,1fr) 70px; }
 html[data-halloween] .window-title-copy [data-character=pinhead] { width:70px; height:106px; }
} }


@media(min-width:1200px) {
 .dashboard-page .haunted-side [data-character=pinhead] { left:-65px; width:130px; max-width:130px; max-height:200px; }
 .dashboard-page .haunted-side [data-character=art] { left:-65px; width:120px; max-width:120px; max-height:185px; }
 .dashboard-page .haunted-side [data-character=sam] { left:-55px; width:104px; max-width:104px; max-height:160px; top:86%; }
 .dashboard-page .haunted-side [data-character=nosferatu] { right:-65px; width:120px; max-width:120px; max-height:185px; }
}
/* Seamless rails: custom WebKit scrollbars suppress native arrow buttons. */
@supports selector(::-webkit-scrollbar) { @layer halloween {
 html, html *, html[data-halloween], html[data-halloween] * { scrollbar-width:auto !important; scrollbar-color:auto !important; }
 html::-webkit-scrollbar, html *::-webkit-scrollbar { width:9px !important; height:9px !important; }
 html::-webkit-scrollbar-button, html *::-webkit-scrollbar-button,
 html::-webkit-scrollbar-button:single-button, html *::-webkit-scrollbar-button:single-button { display:none !important; width:0 !important; height:0 !important; background:none !important; border:0 !important; }
 html::-webkit-scrollbar-track, html *::-webkit-scrollbar-track,
 html::-webkit-scrollbar-track-piece, html *::-webkit-scrollbar-track-piece,
 html::-webkit-scrollbar-corner, html *::-webkit-scrollbar-corner, html[data-halloween]::-webkit-scrollbar-track, html[data-halloween] *::-webkit-scrollbar-track, html[data-halloween]::-webkit-scrollbar-track-piece, html[data-halloween] *::-webkit-scrollbar-track-piece, html[data-halloween]::-webkit-scrollbar-corner, html[data-halloween] *::-webkit-scrollbar-corner { background:transparent !important; border:0 !important; box-shadow:none !important; margin:0 !important; }
 html::-webkit-scrollbar-thumb, html *::-webkit-scrollbar-thumb { background:#8291a5 !important; border:2px solid transparent !important; background-clip:padding-box !important; border-radius:99px !important; }
 html[data-halloween]::-webkit-scrollbar-thumb, html[data-halloween] *::-webkit-scrollbar-thumb { background:#c88651 !important; border:2px solid transparent !important; background-clip:padding-box !important; }
 html[data-halloween]::-webkit-scrollbar-thumb:hover, html[data-halloween] *::-webkit-scrollbar-thumb:hover { background:#f6b77d !important; background-clip:padding-box !important; }
} }

/* Peeking hands meet the panel rim; reserved headroom prevents floating or overlap. */
@media(min-width:1200px) {
 .haunted-section.has-edge-peek { margin-top:112px !important; }
 .haunted-section > .edge-peek { position:absolute; z-index:5; pointer-events:none; width:120px; height:110px; object-fit:contain; object-position:center bottom; left:70%; bottom:calc(100% - 11px); filter:drop-shadow(0 3px 3px #0004); transform:none; }
 .haunted-section:has(.organization-panel) > .edge-peek { left:24%; }
 .haunted-section:has(.justice-panel) > .edge-peek { left:76%; }
 .dashboard-page .haunted-section > .edge-peek { left:70%; }
 .haunted-side [data-character=foxy], .dashboard-page .haunted-side [data-character=foxy] { width:112px !important; max-width:112px !important; height:105px; max-height:105px !important; left:-84px !important; transform:rotate(-90deg) !important; object-fit:contain; }
}
@media(max-width:1199px) { .haunted-section > .edge-peek { display:none; } }
@media(min-width:1200px) {
 .dashboard-page .haunted-section > .edge-peek[data-character=bonnie] { left:23%; }
 .dashboard-page .haunted-section > .edge-peek[data-character=springtrap] { left:48%; }
 .dashboard-page .haunted-section > .edge-peek[data-character=chica] { left:73%; }
}
@media(max-width:1199px) {
 .haunted-section.has-edge-peek { margin-top:82px !important; }
 .haunted-section > .edge-peek { display:block; position:absolute; z-index:5; pointer-events:none; width:82px; height:75px; object-fit:contain; object-position:center bottom; left:66%; bottom:calc(100% - 8px); filter:drop-shadow(0 2px 2px #0004); }
 .haunted-section:has(.organization-panel) > .edge-peek { left:24%; }
 .dashboard-page .haunted-section > .edge-peek[data-character=bonnie] { left:12%; }
 .dashboard-page .haunted-section > .edge-peek[data-character=springtrap] { left:42%; }
 .dashboard-page .haunted-section > .edge-peek[data-character=chica] { left:72%; }
 .haunted-side [data-character=foxy] { display:none; }
}

@media(min-width:1200px) {
 .haunted-side [data-character=springtrap], .dashboard-page .haunted-side [data-character=springtrap] { right:-83px; top:37%; bottom:auto; width:110px; height:105px; max-width:110px; max-height:105px; transform:rotate(90deg); }
 .dashboard-page .haunted-side [data-character=springtrap] { top:61%; }
}
@media(max-width:1199px) { .haunted-side [data-character=springtrap] { display:none; } }
@media(min-width:1200px) {
 .dashboard-page .haunted-side [data-character=pennywise] { right:-62px; top:22%; width:100px; max-height:150px; object-fit:contain; clip-path:none; transform:none; }
}
@media(max-width:1199px) { .dashboard-page .haunted-side [data-character=pennywise] { display:none; } }

/* Spaced variant cameos, with hands attached to the outer panel edge. */
.haunted-section.has-bottom-peek { margin-bottom:115px !important; }
.haunted-section > .bottom-peek { position:absolute; z-index:5; pointer-events:none; left:31%; top:calc(100% - 9px); width:112px; height:104px; object-fit:contain; object-position:center bottom; transform:rotate(180deg); }
@media(min-width:1200px) {
 .haunted-side .variant-peek { top:var(--peek-y) !important; bottom:auto !important; width:106px !important; height:142px !important; max-width:106px !important; max-height:142px !important; object-fit:contain; transform:scaleX(var(--peek-mirror)) !important; }
 .haunted-side .variant-peek[data-peek-edge=left] { left:-84px !important; right:auto !important; }
 .haunted-side .variant-peek[data-peek-edge=right] { right:-84px !important; left:auto !important; }
 .dashboard-page .haunted-section > .edge-peek[data-character=bonnie] { left:34%; }
}
@media(max-width:1199px) {
 .haunted-side .variant-peek { display:none !important; }
 .haunted-section > .bottom-peek { width:78px; height:74px; top:calc(100% - 7px); left:25%; }
 .haunted-section.has-bottom-peek { margin-bottom:90px !important; }
 .dashboard-page .haunted-section > .edge-peek[data-character=bonnie] { left:52%; }
}
.haunted-section [data-character^=shadow-] { filter:brightness(1.55) drop-shadow(0 2px 4px #14071c88); }
@media(min-width:1200px) { .haunted-section > .bottom-peek { width:132px; height:118px; } }
[data-character=eclipse-bonnie-left], [data-character=ember-springtrap-top] { filter:brightness(1.5) drop-shadow(0 2px 4px #14071c88); }

/* Character lightbox; original image proportions are preserved. */
.halloween-figure[role=button] { pointer-events:auto !important; cursor:zoom-in; }
.halloween-figure[role=button]:focus-visible { outline:2px solid #ffd29b; outline-offset:4px; border-radius:8px; }
dialog.character-viewer { position:fixed; inset:0; margin:auto; width:min(860px,94vw); max-width:94vw; height:min(850px,90dvh); max-height:90dvh; padding:38px 12px 12px; box-sizing:border-box; border:0; background:transparent; overflow:visible; color:white; outline:none; }
dialog.character-viewer::backdrop { background:rgba(2,6,11,.86); backdrop-filter:blur(7px); }
dialog.character-viewer > .character-viewer-image { display:block; width:100%; height:100%; object-fit:contain; transform:none; clip-path:none; filter:drop-shadow(0 16px 32px #0009); }
dialog.character-viewer > .character-viewer-close { position:absolute; top:0; right:0; width:44px; height:44px; padding:0; border:1px solid #88765e; border-radius:50%; background:#181321; color:#fff; font:30px/1 sans-serif; cursor:pointer; z-index:1; }
dialog.character-viewer > .character-viewer-close:hover, dialog.character-viewer > .character-viewer-close:focus-visible { border-color:#ffd29b; outline:2px solid #ffd29b; outline-offset:3px; }
html:has(dialog.character-viewer[open]) { overflow:hidden; }
@media(prefers-reduced-motion:no-preference) { dialog.character-viewer[open] { animation:character-viewer-in .18s ease-out; } @keyframes character-viewer-in { from { opacity:0; transform:scale(.96); } to { opacity:1; transform:scale(1); } } }

@layer halloween {
 html, html.dialog-scroll-lock, html.dialog-scroll-lock:has(dialog[open]) { scrollbar-gutter:stable !important; }
 body.dialog-scroll-lock, body.dialog-scroll-lock:has(dialog[open]), body.dashboard-page.dialog-scroll-lock, body.login-page.dialog-scroll-lock { left:var(--dialog-body-left,0px) !important; right:auto !important; width:var(--dialog-body-width,100%) !important; max-width:none !important; box-sizing:border-box !important; scrollbar-gutter:auto !important; }
 .halloween-figure[role=button] { cursor:pointer !important; }
 .character-viewer-close { width:36px !important; height:36px !important; display:grid !important; place-items:center !important; top:20px !important; right:20px !important; padding:0 !important; color:#ffd6a3 !important; background:#45253e !important; border:1px solid #b57c82 !important; border-radius:50% !important; font-size:0 !important; outline:none !important; }
 .character-viewer-close::before,.character-viewer-close::after { content:none !important; display:none !important; }
 .character-viewer-close svg { width:16px !important; height:16px !important; fill:none !important; stroke:currentColor !important; stroke-width:2 !important; stroke-linecap:round !important; }
 .character-viewer-close:is(:hover,:focus-visible) { background:#97202c !important; color:white !important; border-color:#ff6868 !important; rotate:90deg !important; box-shadow:0 0 0 4px #ff68681a !important; }
 .character-viewer-close { transition:rotate 180ms ease,background 180ms ease,color 180ms ease !important; }
 :is(.audit-user-card,.audit-row,.audit-search-status)[hidden] { display:none !important; }
 @media(prefers-reduced-motion:no-preference) {
   dialog[open]:not(#audit-user-dialog):not(#audit-category-dialog) { animation:ui-fade-in 240ms ease-out both !important; }
   dialog[open].is-closing:not(#audit-user-dialog):not(#audit-category-dialog) { animation:ui-fade-out 220ms ease-in both !important; }
   dialog[open]::backdrop { animation:ui-fade-in 240ms ease-out both !important; }
   dialog[open].is-closing::backdrop { animation:ui-fade-out 220ms ease-in both !important; }
   .character-viewer-image,.audit-search-results { animation:ui-fade-in 200ms ease-out both; }
 }
 @media(prefers-reduced-motion:reduce) { dialog,dialog::backdrop,.character-viewer-image,.audit-search-results { animation:none !important; } .character-viewer-close { transition:none !important; } }
}
@keyframes ui-fade-in { from { opacity:0; } to { opacity:1; } }
@keyframes ui-fade-out { from { opacity:1; } to { opacity:0; } }
.audit-search-results { display:grid; gap:12px; }
.audit-search-status { margin:4px 0 8px; color:inherit; font-size:.9rem; }


.norbert-figures,.norbert-sign { display:none; }
@layer halloween {
 html[data-halloween] dialog[data-norbert=true] .window-title-figure { display:none !important; }
 html[data-halloween] dialog[data-norbert=true] .window-title-copy { grid-template-columns:minmax(0,1fr) 140px !important; }
 html[data-halloween] dialog[data-norbert=true] .norbert-figures { display:flex !important; grid-column:2 !important; grid-row:1 / span 4 !important; gap:4px; align-items:center; justify-content:center; }
 html[data-halloween] .norbert-figures .norbert-character { position:static !important; display:block !important; width:68px !important; height:115px !important; max-width:none !important; max-height:none !important; object-fit:contain !important; transform:none !important; margin:0 !important; filter:none !important; }
 html[data-halloween] [data-norbert=true] [data-field=rang] { position:relative !important; overflow:visible !important; }
 html[data-halloween] .norbert-sign { display:block !important; position:absolute !important; width:var(--minister-size) !important; height:var(--minister-size) !important; max-width:none !important; max-height:none !important; top:50% !important; left:-8px !important; right:auto !important; bottom:auto !important; margin:0 !important; object-fit:contain !important; transform:translateY(-80%) !important; filter:none !important; z-index:6 !important; }
 html[data-halloween] dialog .norbert-sign { display:none !important; }
 html[data-halloween] .person-card[data-norbert=true] { overflow:visible !important; }
 html[data-halloween] .person-card .norbert-sign { left:0 !important; }
 html[data-halloween] .person-card[data-norbert=true] [data-field=rang] { min-height:64px; align-items:end; }
 html[data-halloween] .person-card[data-norbert=true] [data-field=rang] dd { width:156px; text-align:center !important; }
 html[data-halloween] tr[data-norbert=true] > [data-field=rang] { text-align:left !important; vertical-align:middle !important; }
 html[data-halloween] .minister-rank-anchor { --minister-size:clamp(120px,10vw,168px); display:inline-block; position:relative; white-space:nowrap; margin-left:8px; }
 html[data-halloween] .person-card .minister-rank-anchor { --minister-size:clamp(120px,36vw,156px); width:var(--minister-size); margin-left:0; }
 @media(max-width:600px) { html[data-halloween] dialog[data-norbert=true] .window-title-copy { grid-template-columns:minmax(0,1fr) 92px !important; } html[data-halloween] .norbert-figures .norbert-character { width:44px !important; height:76px !important; } }
}

@layer halloween {
 html[data-halloween] .minister-art { position:relative; }
 html[data-halloween] .norbert-sign .minister-image { display:block !important; position:static !important; width:100% !important; height:100% !important; max-width:none !important; max-height:none !important; margin:0 !important; transform:none !important; object-fit:contain !important; }
 html[data-halloween] .minister-caption { position:absolute !important; display:flex !important; flex-direction:column; align-items:center; justify-content:center; gap:3px; left:4%; right:4%; top:66%; bottom:8%; color:#15120f !important; font-family:Arial,sans-serif !important; line-height:1.12 !important; text-align:center !important; white-space:nowrap; pointer-events:none; text-shadow:none !important; }
 html[data-halloween] .minister-caption s { font-size:calc(var(--minister-size,156px) * .096) !important; font-weight:800; text-decoration:line-through; text-decoration-color:#b51c25; text-decoration-thickness:2px; }
 html[data-halloween] .minister-caption strong { font-size:calc(var(--minister-size,156px) * .103) !important; font-weight:900; }
 html[data-halloween] .minister-art-large { width:min(76vw,70vh,640px); margin:auto; }
 html[data-halloween] .minister-art-large .character-viewer-image { display:block !important; width:100% !important; height:auto !important; max-height:none !important; margin:0 !important; }
 html[data-halloween] .minister-art-large .minister-caption { gap:8px; }
 html[data-halloween] .minister-art-large .minister-caption s { font-size:clamp(18px,4.3vw,51px) !important; text-decoration-thickness:3px; }
 html[data-halloween] .minister-art-large .minister-caption strong { font-size:clamp(19px,4.5vw,54px) !important; }
}

@layer halloween { html[data-halloween] .minister-column-label { display:inline-block; transform:none; position:relative; z-index:7; } }
