/*
 * Floor plan (public view) - v2 look and feel.
 * Loaded only by views/show_floorplan/tmpl/default.php. Every rule is scoped
 * under .fp-v2 so show_floorplan1 and the rest of the site are unaffected.
 * Colours / fonts only: SVG geometry, ids and classes are untouched.
 */

.fp-v2{
	font-family:'Barlow',system-ui,-apple-system,'Segoe UI',sans-serif;
	color:#10233F;
	text-align:left;
	-webkit-font-smoothing:antialiased;
	padding:8px 0 40px;
}

.fp-v2 .page-title{
	font-family:'Barlow Condensed',sans-serif;
	font-weight:700;
	font-size:46px;
	letter-spacing:-.005em;
	color:#10233F;
	text-align:left;
	margin:0 0 22px;
}

/* ---------- card + legend ---------- */
.fp-v2 .fp-card{
	background:#fff;
	border:1px solid #E2E8F2;
	border-radius:16px;
	padding:26px 28px;
	margin:0 0 24px;
}

.fp-v2 .fp-legend{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:10px 22px;
	margin-bottom:18px;
	padding-bottom:16px;
	border-bottom:1px solid #EDF1F7;
	font-size:13px;
	font-weight:600;
	color:#3C4C66;
}

.fp-v2 .fp-legend span{
	display:inline-flex;
	align-items:center;
	gap:8px;
}

.fp-v2 .fp-legend i{
	display:inline-block;
	width:16px;
	height:16px;
	border-radius:4px;
	background:#fff;
	border:1px solid #CBD6E6;
}
.fp-v2 .fp-legend i.fp-sw-pending{ background:#FFD166; border-color:#E8B93F; }
.fp-v2 .fp-legend i.fp-sw-sold{ background:#4BB543; border-color:#3FA037; }

/* ---------- SVG: building ---------- */
.fp-v2 #floorplan .wall path,
.fp-v2 #floorplan .door path{
	stroke:#9FB2CE;
}

.fp-v2 #floorplan .door-label text{
	font-family:'Barlow',sans-serif;
	font-weight:600;
	letter-spacing:.06em;
	text-transform:uppercase;
	font-size:21px;
	fill:#7A8DA6;
}

.fp-v2 #floorplan .table-top{
	fill:#fff;
	stroke:#CBD6E6;
}

.fp-v2 #floorplan .chair{
	fill:#F4F6FA;
	stroke:#CBD6E6;
}

.fp-v2 #floorplan .lunch-box{
	fill:#fff;
	stroke:#CBD6E6;
}

.fp-v2 #floorplan .lunch-divider{
	stroke:#CBD6E6;
}

.fp-v2 #floorplan .lunch-text{
	font-family:'Barlow Condensed',sans-serif;
	font-weight:700;
	letter-spacing:.04em;
	fill:#5A6B85;
}

/* ---------- SVG: booths (available / pending / reserved) ----------
   Selected by id (BoothN) because PHP sets class "selected" (without "booth")
   for pending booths. */
.fp-v2 #floorplan g[id^="Booth"] .booth-area{
	fill:#fff;
	stroke:#CBD6E6;
	stroke-width:3;
	rx:8px;
	ry:8px;
	transition:stroke .12s ease, fill .12s ease;
}

.fp-v2 #floorplan g[id^="Booth"] text{
	font-family:'Barlow Condensed',sans-serif;
	font-weight:700;
	font-size:50px;
	text-anchor:middle;
	dominant-baseline:central;
	fill:#10233F;
	pointer-events:none;
}

.fp-v2 #floorplan g[id^="Booth"]:hover .booth-area{
	stroke:#29ABE2;
	stroke-width:6;
}

/* pending request */
.fp-v2 #floorplan g[id^="Booth"].selected .booth-area{
	fill:#FFD166;
	stroke:#E8B93F;
}
.fp-v2 #floorplan g[id^="Booth"].selected text{
	fill:#4A3500;
}
.fp-v2 #floorplan g[id^="Booth"].selected:hover .booth-area{
	stroke:#E8B93F;
	stroke-width:6;
}

/* reserved / confirmed */
.fp-v2 #floorplan g[id^="Booth"].sold .booth-area{
	fill:#4BB543;
	stroke:#3FA037;
}
.fp-v2 #floorplan g[id^="Booth"].sold text{
	fill:#fff;
}
.fp-v2 #floorplan g[id^="Booth"].sold:hover .booth-area{
	stroke:#2E7D27;
	stroke-width:6;
}
/* ---------- hover popup ---------- */
.fp-v2 .booth-tooltip{
	width:260px;
	min-height:0;
	background:#10233F;
	color:#fff;
	border:0;
	border-radius:10px;
	padding:13px 38px 14px 16px;
	text-align:left;
	font-family:'Barlow',sans-serif;
	font-size:13px;
	line-height:1.4;
	box-shadow:0 12px 30px rgba(16,35,63,.32);
}

.fp-v2 .booth-tooltip .loader-tt{
	position:relative;
	top:auto;
	left:auto;
	transform:none;
	min-height:40px;
	display:flex;
	align-items:center;
	justify-content:center;
}

.fp-v2 .booth-tooltip .toolt-close{
	position:absolute;
	top:9px;
	right:12px;
	width:auto;
	height:auto;
	line-height:1;
	color:#9FB2CE;
	cursor:pointer;
}
.fp-v2 .booth-tooltip .toolt-close:hover{ color:#fff; }

.fp-v2 .booth-tooltip .tt-num{
	display:block;
	font-family:'Barlow Condensed',sans-serif;
	font-weight:700;
	font-size:17px;
	letter-spacing:.01em;
}

.fp-v2 .booth-tooltip .tt-status{
	display:block;
	margin-top:3px;
	font-size:10px;
	font-weight:700;
	letter-spacing:.09em;
	text-transform:uppercase;
	color:#9FB2CE;
}

.fp-v2 .booth-tooltip .tt-logo{
	display:inline-block;
	margin-top:9px;
	padding:5px;
	background:#fff;
	border-radius:8px;
	line-height:0;
}
.fp-v2 .booth-tooltip .tt-logo img{
	display:block;
	max-width:96px;
	max-height:48px;
	width:auto;
	height:auto;
	margin:0;
}

.fp-v2 .booth-tooltip .tt-company{
	display:block;
	margin-top:8px;
	font-size:14px;
	font-weight:700;
	color:#fff;
}

.fp-v2 .booth-tooltip .tt-url{
	display:block;
	margin-top:2px;
	font-size:12px;
	font-weight:500;
	color:#7CCBF0; text-decoration:none;
	word-break:break-all;
}
.fp-v2 .booth-tooltip .tt-url:hover{ color:#fff; }

.fp-v2 .booth-tooltip .tt-note{
	display:block;
	margin-top:6px;
	font-size:12px;
	font-weight:500;
	color:#C3CEDF;
	max-height:7.2em;
	overflow:auto;
}

/* ---------- listing ---------- */
.fp-v2 .table-holder{
	background:#fff;
	border:1px solid #E2E8F2;
	border-radius:16px;
	padding:26px 28px;
	overflow-x:auto;
}

.fp-v2 .table-holder table{
	width:100%;
	border-collapse:collapse;
	margin:0;
	background:transparent;
	font-size:14px;
	color:#10233F;
}

.fp-v2 .table-holder table tr,
.fp-v2 .table-holder table tr[bgcolor]{
	background:transparent;
}

.fp-v2 .table-holder table.table-hover tbody tr:hover{
	background:#F8FAFD;
}

.fp-v2 .table-holder th{
	text-align:left;
	padding:0 14px 12px 0;
	font-size:12px;
	font-weight:700;
	letter-spacing:.1em;
	text-transform:uppercase;
	color:#5A6B85;
	background:transparent;
	border:0;
	vertical-align:bottom;
}

.fp-v2 .table-holder td{
	text-align:left;
	padding:10px 14px 10px 0;
	border:0;
	border-top:1px solid #EDF1F7;
	vertical-align:middle;
	font-size:14px;
	line-height:1.45;
}

/* logo column */
.fp-v2 .table-holder td img{
	display:block;
	width:46px;
	height:46px;
	object-fit:contain;
	background:#fff;
	border:1px solid #E2E8F2;
	border-radius:8px;
	padding:3px;
}

/* company name */
.fp-v2 .table-holder td a{
	color:#00459A;
	font-weight:600; text-decoration:none;
}
.fp-v2 .table-holder td a:hover{ color:#062F6B; }

.fp-v2 .table-holder .fp-clamp{
	display:-webkit-box;
	-webkit-line-clamp:2;
	-webkit-box-orient:vertical;
	overflow:hidden;
	color:#5A6B85;
	max-width:560px;
}

/* ---------- listing inside the booth selection popup (show_floorplan1) ----------
   Plain table.assigned-booths-list, rows are echoed directly into it. */
.fp-v2 table.assigned-booths-list{
	width:100%;
	border:1px solid #E2E8F2;
	border-radius:16px;
	border-collapse:separate;
	border-spacing:0;
	background:#fff;
	font-size:14px;
	color:#10233F;
	margin:0 0 24px;
}
.fp-v2 table.assigned-booths-list tr,
.fp-v2 table.assigned-booths-list tr[bgcolor]{ background:transparent; }
.fp-v2 table.assigned-booths-list th{
	text-align:left;
	padding:22px 14px 12px 0;
	font-size:12px;
	font-weight:700;
	letter-spacing:.1em;
	text-transform:uppercase;
	color:#5A6B85;
	background:transparent;
	border:0;
	vertical-align:bottom;
}
.fp-v2 table.assigned-booths-list td{
	text-align:left;
	padding:10px 14px 10px 0;
	border:0;
	border-top:1px solid #EDF1F7;
	vertical-align:middle;
	font-size:14px;
	line-height:1.45;
}
.fp-v2 table.assigned-booths-list th:first-child,
.fp-v2 table.assigned-booths-list td:first-child{ padding-left:28px; }
.fp-v2 table.assigned-booths-list th:last-child,
.fp-v2 table.assigned-booths-list td:last-child{ padding-right:28px; }
.fp-v2 table.assigned-booths-list tr:last-child td{ padding-bottom:16px; }
.fp-v2 table.assigned-booths-list td img{
	display:block;
	width:46px;
	height:46px;
	object-fit:contain;
	background:#fff;
	border:1px solid #E2E8F2;
	border-radius:8px;
	padding:3px;
}
.fp-v2 table.assigned-booths-list td a{ color:#00459A; font-weight:600; text-decoration:none; }
.fp-v2 table.assigned-booths-list td a:hover{ color:#062F6B; }
.fp-v2 table.assigned-booths-list .fp-clamp{
	display:-webkit-box;
	-webkit-line-clamp:2;
	-webkit-box-orient:vertical;
	overflow:hidden;
	color:#5A6B85;
	max-width:560px;
}
/* status chips */
.fp-v2 .fp-chip{
	display:inline-flex;
	align-items:center;
	height:24px;
	padding:0 10px;
	border-radius:999px;
	font-size:11px;
	font-weight:700;
	letter-spacing:.09em;
	text-transform:uppercase;
	white-space:nowrap;
}
.fp-v2 .fp-chip-confirmed{ background:#4BB543; color:#fff; }
.fp-v2 .fp-chip-pending{ background:#FFF6E0; color:#7A5A00; }

@media (max-width:767px){
	.fp-v2 .page-title{ font-size:36px; }
	.fp-v2 .fp-card,
	.fp-v2 .table-holder{ padding:18px 16px; }
	.fp-v2 .booth-tooltip{ width:230px; }
}

/* inside the "NLDA 2027 v2" template the main body has no side padding: add the design gutter */
.nlda-v2 .fp-v2{
	padding:30px 48px 44px;
	max-width:1400px;
	margin:0 auto;
}
@media (max-width:991px){ .nlda-v2 .fp-v2{ padding:24px 24px 36px; } }
@media (max-width:575px){ .nlda-v2 .fp-v2{ padding:20px 16px 32px; } }

/* ---------- SweetAlert (swal v2) confirmation popups ----------
   The overlay/modal are appended to <body>, outside .fp-v2, so these rules are scoped by
   body.fp-v2-active (class added by the floor plan view itself). Messages and logic are untouched. */
body.fp-v2-active .swal-overlay{
	background-color:rgba(16,35,63,.55);
}

body.fp-v2-active .swal-modal{
	width:440px;
	max-width:calc(100vw - 32px);
	background:#fff;
	border:1px solid #E2E8F2;
	border-radius:16px;
	box-shadow:0 24px 60px rgba(16,35,63,.28);
	font-family:'Barlow',system-ui,-apple-system,'Segoe UI',sans-serif;
}

body.fp-v2-active .swal-title{
	font-family:'Barlow Condensed',sans-serif;
	font-weight:700;
	font-size:32px;
	line-height:1.1;
	letter-spacing:-.005em;
	color:#10233F;
	margin:0;
	padding:6px 24px 0;
}
body.fp-v2-active .swal-title:not(:first-child){ margin-top:4px; }
body.fp-v2-active .swal-title:first-child{ margin-top:30px; }
body.fp-v2-active .swal-title:not(:last-child){ margin-bottom:10px; }

body.fp-v2-active .swal-text{
	font-family:'Barlow',sans-serif;
	font-size:16px;
	line-height:1.5;
	font-weight:400;
	color:#5A6B85;
	text-align:center;
	padding:0 24px;
	max-width:100%;
}

body.fp-v2-active .swal-footer{
	text-align:right;
	margin-top:22px;
	padding:16px 20px 20px;
	border-top:1px solid #EDF1F7;
}
body.fp-v2-active .swal-button-container{ margin:0 0 0 8px; }

body.fp-v2-active .swal-button{
	font-family:'Barlow',sans-serif;
	font-weight:600;
	font-size:15px;
	letter-spacing:0;
	height:44px;
	padding:0 24px;
	border:0;
	border-radius:10px;
	background-color:#00459A;
	color:#fff;
	text-transform:none;
	box-shadow:none;
}
body.fp-v2-active .swal-button:not([disabled]):hover{ background-color:#062F6B; }
body.fp-v2-active .swal-button:focus{ outline:none; box-shadow:0 0 0 3px rgba(41,171,226,.45); }
body.fp-v2-active .swal-button:active{ background-color:#062F6B; }

body.fp-v2-active .swal-button--cancel{
	background-color:#fff;
	color:#10233F;
	border:1px solid #CBD6E6;
}
body.fp-v2-active .swal-button--cancel:not([disabled]):hover{
	background-color:#fff;
	border-color:#00459A;
	color:#00459A;
}

/* icons: use the page palette */
body.fp-v2-active .swal-icon--warning{ border-color:#E8B93F; }
body.fp-v2-active .swal-icon--warning__body,
body.fp-v2-active .swal-icon--warning__dot{ background-color:#E8B93F; }

body.fp-v2-active .swal-icon--info{ border-color:#29ABE2; }
body.fp-v2-active .swal-icon--info:before,
body.fp-v2-active .swal-icon--info:after{ background-color:#29ABE2; }

body.fp-v2-active .swal-icon--success{ border-color:#00459A; }
body.fp-v2-active .swal-icon--success:before,
body.fp-v2-active .swal-icon--success:after,
body.fp-v2-active .swal-icon--success__hide-corners{ background:#fff; }
body.fp-v2-active .swal-icon--success__ring{ border-color:rgba(0,69,154,.2); }
body.fp-v2-active .swal-icon--success__line{ background-color:#00459A; }

body.fp-v2-active .swal-icon--error{ border-color:#C2410C; }
body.fp-v2-active .swal-icon--error__line{ background-color:#C2410C; }

@media (max-width:480px){
	body.fp-v2-active .swal-footer{ text-align:center; }
	body.fp-v2-active .swal-button-container{ margin:0 4px; }
}
