.floorplan-wrap {
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.floorplan-toolbar {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	padding-bottom: 4px;
}
.floorplan-toolbar-left {
	min-width: 0;
}
.fp-title {
	font-size: 28px;
	font-weight: 500;
	letter-spacing: -0.02em;
	line-height: 1.1;
}
.fp-title em {
	font-style: italic;
	color: var(--accent);
	font-weight: 400;
}
.fp-sub {
	font-size: 11px;
	color: var(--fg-mute);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin-top: 8px;
}

.floorplan-toolbar-right {
	display: flex;
	align-items: center;
	gap: 24px;
}
.fp-stat .v {
	font-size: 22px;
	font-weight: 500;
	letter-spacing: -0.02em;
	line-height: 1;
}
.fp-stat .v.accent {
	color: var(--accent);
}
.fp-stat .v .of {
	color: var(--fg-mute);
	font-weight: 400;
	font-size: 16px;
}
.fp-stat .v .cur {
	font-family: "Onest", sans-serif;
	font-size: 14px;
	color: var(--fg-dim);
	margin-left: 3px;
	font-weight: 400;
}
.fp-stat .l {
	font-size: 10.5px;
	color: var(--fg-mute);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-top: 6px;
}
.fp-legend {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 11px;
	color: var(--fg-dim);
	font-variant-numeric: tabular-nums;
	border-left: 1px solid var(--border);
	padding-left: 20px;
}
.fp-legend .lg {
	width: 10px;
	height: 10px;
	border-radius: 3px;
	display: inline-block;
}
.fp-legend .lg-free {
	background: rgba(120, 180, 130, 0.4);
	border: 1px solid rgba(120, 180, 130, 0.6);
}
.fp-legend .lg-occ {
	background: rgba(142, 93, 216, 0.35);
	border: 1px solid var(--accent);
}

.floorplan-stage {
	border: 1px solid var(--border);
	border-radius: 16px;
	background: var(--bg-1);
	overflow: auto;
	padding: 8px;
}
.floorplan-canvas {
	position: relative;
	border-radius: 10px;
	background: radial-gradient(ellipse at 50% 30%, rgba(142, 93, 216, 0.05), transparent 60%), var(--bg);
	border: 1px solid var(--border);
}
.fp-grid {
	position: absolute;
	inset: 0;
	background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);
	background-size: 40px 40px;
	pointer-events: none;
	border-radius: 10px;
}

.fp-zone {
	position: absolute;
	border: 1px dashed var(--border-2);
	border-radius: 10px;
	pointer-events: none;
}
.fp-zone-label {
	position: absolute;
	top: -9px;
	left: 14px;
	padding: 0 8px;
	font-size: 10.5px;
	color: var(--fg-mute);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-variant-numeric: tabular-nums;
	background: var(--bg);
}
.fp-zone-bar {
	background: linear-gradient(180deg, rgba(40, 30, 20, 0.06), transparent);
	border-style: solid;
	border-color: var(--border);
}
.fp-zone-vip {
	background: linear-gradient(180deg, rgba(142, 93, 216, 0.07), transparent);
}
.fp-zone-gaming {
	background: linear-gradient(180deg, rgba(40, 30, 20, 0.04), transparent);
}
.fp-zone-kitchen {
	background: repeating-linear-gradient(45deg, transparent, transparent 8px, rgba(40, 30, 20, 0.04) 8px, rgba(40, 30, 20, 0.04) 16px);
	border-style: solid;
	border-color: var(--border);
}

.fp-bar-stools {
	position: absolute;
	display: flex;
	justify-content: space-around;
	pointer-events: none;
}
.fp-stool {
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background: var(--bg);
	border: 1px solid var(--border-2);
}

.fp-entrance {
	position: absolute;
	display: flex;
	align-items: center;
	gap: 8px;
	pointer-events: none;
}
.fp-entrance-line {
	width: 36px;
	height: 0;
	border-top: 2px dashed var(--accent);
}
.fp-entrance-label {
	font-size: 10.5px;
	color: var(--accent);
	text-transform: uppercase;
	letter-spacing: 0.12em;
}

/* Table cards on the plan */
.plan-table {
	position: absolute;
	border-radius: 12px;
	border: 1px solid var(--border);
	background: var(--bg-1);
	padding: 12px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	cursor: pointer;
	transition:
		transform 0.15s,
		box-shadow 0.15s,
		border-color 0.15s;
	font-family: inherit;
	color: var(--fg);
	text-align: left;
}
.plan-table:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 28px -16px rgba(40, 30, 20, 0.25);
}
.plan-table.free {
	background: linear-gradient(180deg, rgba(120, 180, 130, 0.14), rgba(120, 180, 130, 0.04)), var(--bg-1);
	border-color: rgba(120, 180, 130, 0.35);
}
.plan-table.occupied {
	background: linear-gradient(180deg, var(--glow-accent), var(--glow-accent-soft)), var(--bg-1);
	border-color: rgba(142, 93, 216, 0.4);
}
.plan-table.selected {
	border-color: var(--accent);
	box-shadow:
		0 0 0 3px rgba(142, 93, 216, 0.18),
		0 12px 28px -16px rgba(142, 93, 216, 0.4);
}
.plan-table.kind-console {
	background: linear-gradient(180deg, rgba(40, 30, 20, 0.06), transparent), var(--bg-1);
}
.plan-table.kind-vip.free,
.plan-table.kind-vip.occupied {
	border-color: rgba(142, 93, 216, 0.45);
	background: linear-gradient(180deg, rgba(142, 93, 216, 0.12), rgba(142, 93, 216, 0.04)), var(--bg-1);
}

.plan-table-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 6px;
}
.plan-table-name {
	font-size: 14px;
	font-weight: 500;
	letter-spacing: -0.01em;
}
.plan-table-name .num {
	font-variant-numeric: tabular-nums;
	color: var(--fg-mute);
	font-weight: 400;
	font-size: 12px;
	margin-left: 2px;
}
.plan-table-seats {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 11px;
	color: var(--fg-dim);
	padding: 2px 6px;
	border-radius: 6px;
	background: var(--bg);
	border: 1px solid var(--border);
}
.plan-table-kind {
	font-style: italic;
	color: var(--accent);
	font-size: 13px;
	line-height: 1;
	margin-top: 4px;
}
.plan-table-foot {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 6px;
}
.plan-table-sum {
	font-size: 13px;
	font-weight: 500;
	color: var(--fg);
	letter-spacing: -0.01em;
}
.plan-table-timer {
	font-size: 12px;
	color: var(--accent);
	letter-spacing: 0.04em;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.plan-table-timer::before {
	content: "";
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--accent);
	box-shadow: 0 0 0 3px rgba(142, 93, 216, 0.22);
	animation: pulse 1.8s ease-in-out infinite;
}
.plan-table-free {
	font-size: 11px;
	color: oklch(0.42 0.13 145);
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
