/* ==========================================================================
   LAN Party — floor plan artwork
   Loaded on the front end and inside the admin seat editor, so the SVG looks
   the same in both places. Tokens are declared locally: wp-admin does not load
   neon.css.
   ========================================================================== */

.lp-map-svg {
	--cyan: #22e0ff;
	--plasma: #c471ff;
	--lime: #43ff9a;
	--amber: #ffab2e;
	--red: #ff3b5c;
	--violet: #7b5cff;
	--free: var(--lime);
	--pending: var(--amber);
	--taken: var(--red);
	--font-display: "Chakra Petch", "Segoe UI", system-ui, sans-serif;
}


.lp-wall {
	fill: none;
	stroke: rgba(34, 224, 255, .55);
	stroke-width: 4;
	stroke-linejoin: round;
}

.lp-wall-glow {
	fill: none;
	stroke: var(--cyan);
	stroke-width: 1.4;
	stroke-linejoin: round;
	filter: url(#lpGlow);
	opacity: .85;
}

.lp-floor-accent path { stroke: rgba(34, 224, 255, .16); stroke-width: 2; stroke-dasharray: 10 8; }
.lp-floor-accent .lp-glass { stroke: rgba(34, 224, 255, .3); stroke-dasharray: none; stroke-width: 3; }

.lp-desk {
	fill: url(#lpDesk);
	stroke: rgba(34, 224, 255, .34);
	stroke-width: 1.2;
}

.lp-desk-spine { fill: #1a0f2a; stroke: rgba(34, 224, 255, .2); stroke-width: 1; }
.lp-divider { fill: #1d1130; stroke: rgba(123, 92, 255, .38); stroke-width: 1; }
.lp-seam path { stroke: rgba(34, 224, 255, .16); stroke-width: 1; }

.lp-chair-seat { fill: #231536; stroke: rgba(189, 169, 205, .3); stroke-width: 1; }
.lp-chair-back { fill: #2f1e45; stroke: rgba(189, 169, 205, .25); stroke-width: 1; }
.lp-chair-arm { fill: #281839; }

.lp-chair--vip .lp-chair-seat { fill: #3a1d5e; stroke: rgba(123, 92, 255, .65); }
.lp-chair--vip .lp-chair-back { fill: #4a2a7a; stroke: rgba(123, 92, 255, .5); }
.lp-chair--vip .lp-chair-arm { fill: #402468; }

.lp-screen { fill: #0f0819; stroke: rgba(34, 224, 255, .5); stroke-width: .8; }
.lp-screen-glow { fill: var(--cyan); opacity: .55; filter: url(#lpSoftGlow); }
.lp-screen-foot { fill: #251638; }
.lp-keyboard { fill: #1f1330; stroke: rgba(243, 236, 247, .16); stroke-width: .8; }
.lp-mouse { fill: #26173a; stroke: rgba(243, 236, 247, .14); stroke-width: .7; }

.lp-plant { fill: rgba(67, 255, 154, .26); }
.lp-plant ellipse { stroke: rgba(67, 255, 154, .5); stroke-width: .6; }
.lp-plant-core { fill: rgba(67, 255, 154, .75); }
.lp-pot { fill: #1c1130; stroke: rgba(243, 236, 247, .18); stroke-width: 1; }

.lp-furn .lp-fridge rect { fill: #191030; stroke: rgba(34, 224, 255, .38); stroke-width: 1.2; }
.lp-furn .lp-fridge path { stroke: rgba(34, 224, 255, .3); stroke-width: 1; fill: none; }
.lp-furn .lp-handle { fill: rgba(34, 224, 255, .55); stroke: none; }

.lp-cabinet rect { fill: #180f28; stroke: rgba(243, 236, 247, .16); stroke-width: 1; }
.lp-cabinet path { stroke: rgba(243, 236, 247, .14); stroke-width: 1; fill: none; }

.lp-couch path { fill: #1e1232; stroke: rgba(196, 113, 255, .32); stroke-width: 1.2; }
.lp-cushion { fill: #28183c; stroke: rgba(196, 113, 255, .2); stroke-width: .8; }

.lp-counter rect { fill: #1a1029; stroke: rgba(243, 236, 247, .18); stroke-width: 1; }
.lp-counter path { stroke: rgba(243, 236, 247, .12); stroke-width: 1; }
.lp-sink { fill: #120a20; stroke: rgba(34, 224, 255, .35); stroke-width: 1; }

.lp-beanbag { fill: #150c22; stroke: rgba(243, 236, 247, .14); stroke-width: 1; }
.lp-beanbag-top { fill: #211433; }
.lp-lowtable { fill: #1b112b; stroke: rgba(243, 236, 247, .14); stroke-width: 1; }

.lp-ball { fill: #100823; stroke: rgba(123, 92, 255, .5); stroke-width: 1; }
.lp-hole { fill: #08040e; }
.lp-pin { fill: #231536; stroke: rgba(255, 59, 92, .5); stroke-width: 1; }

.lp-table-wood { fill: url(#lpWood); stroke: rgba(255, 171, 46, .45); stroke-width: 1.4; }
.lp-table-top { fill: rgba(255, 171, 46, .07); stroke: rgba(255, 171, 46, .22); stroke-width: 1; }
.lp-tv { fill: #120a1c; stroke: rgba(34, 224, 255, .4); stroke-width: 1; }
.lp-tv-screen { fill: rgba(34, 224, 255, .3); filter: url(#lpSoftGlow); }

/* --- Seat markers ------------------------------------------------------- */

.lp-seat { cursor: pointer; }
.lp-seat:focus { outline: none; }

.lp-seat-halo { fill: currentColor; opacity: .12; transition: opacity .2s, r .2s; }
.lp-seat-ring { fill: #0a0512; stroke: currentColor; stroke-width: 2.4; }
.lp-seat-fill { fill: currentColor; opacity: .16; transition: opacity .2s; }

.lp-seat-label {
	font-family: var(--font-display);
	font-size: 13px;
	font-weight: 700;
	fill: #fff;
	pointer-events: none;
	user-select: none;
}

.lp-seat--free { color: var(--free); }
.lp-seat--pending { color: var(--pending); }
.lp-seat--taken { color: var(--taken); }
.lp-seat--blocked { color: #6b5a80; cursor: not-allowed; }

.lp-seat--free .lp-seat-ring { filter: drop-shadow(0 0 6px var(--free)); }
.lp-seat--pending .lp-seat-ring { filter: drop-shadow(0 0 6px var(--pending)); }

.lp-seat--free .lp-seat-halo { animation: lp-halo 3.4s ease-in-out infinite; }
.lp-seat--pending .lp-seat-halo { animation: lp-halo 1.7s ease-in-out infinite; }

@keyframes lp-halo {
	0%, 100% { opacity: .10; }
	50% { opacity: .3; }
}

.lp-seat:hover .lp-seat-halo,
.lp-seat:focus-visible .lp-seat-halo { opacity: .4; }
.lp-seat:hover .lp-seat-fill { opacity: .38; }
.lp-seat:focus-visible .lp-seat-ring { stroke-width: 3.4; }
.lp-seat.is-flash .lp-seat-halo { opacity: .65; }


/* --- Legibility pass: desks and workstations need to read at 1x ---------- */

.lp-desk {
	stroke: rgba(34, 224, 255, .5);
	stroke-width: 1.4;
}

.lp-island .lp-desk { filter: drop-shadow(0 0 6px rgba(34, 224, 255, .18)); }

.lp-screen {
	fill: #130a20;
	stroke: rgba(34, 224, 255, .75);
	stroke-width: 1;
}

.lp-screen-glow { opacity: .95; }
.lp-keyboard { fill: #28183c; stroke: rgba(243, 236, 247, .3); }
.lp-mouse { fill: #2c1b42; stroke: rgba(243, 236, 247, .26); }
.lp-seam path { stroke: rgba(34, 224, 255, .26); }
.lp-divider { stroke: rgba(123, 92, 255, .55); }

.lp-chair-seat { fill: #281839; stroke: rgba(189, 169, 205, .42); }
.lp-chair-back { fill: #372350; stroke: rgba(189, 169, 205, .38); }

.lp-floor-accent path { stroke: rgba(34, 224, 255, .22); }

/* --- Chairs: read as chairs, not blocks ---------------------------------- */

.lp-chair-seat {
	fill: #2a1a3e;
	stroke: rgba(189, 169, 205, .5);
	stroke-width: 1.1;
}

.lp-chair-back {
	fill: #3a2654;
	stroke: rgba(196, 113, 255, .5);
	stroke-width: 1.1;
}

.lp-chair-arm {
	fill: #241636;
	stroke: rgba(189, 169, 205, .3);
	stroke-width: .8;
}

.lp-chair-seam {
	stroke: rgba(189, 169, 205, .32);
	stroke-width: 1;
	fill: none;
}

.lp-chair--vip .lp-chair-seat { fill: #3a1d5e; stroke: rgba(123, 92, 255, .7); }
.lp-chair--vip .lp-chair-back { fill: #4f2d86; stroke: rgba(196, 113, 255, .75); }
.lp-chair--vip .lp-chair-arm { fill: #2f1a4d; }
.lp-chair--vip .lp-chair-seam { stroke: rgba(196, 113, 255, .45); }
