/* ============================================================================
   Project companion to glass.css for the reservations backoffice.
   Loaded AFTER glass.css in templates/index.tpl. Everything that is only
   meaningful in THIS project belongs here: token overrides, agenda/Mobiscroll,
   floorplan shell, assistant panel, occupancy monitor, status color mapping.
   Generic component styling belongs in glass.css (shared with the kiosk
   project — never fork it; sync improvements back to the kiosk original).
   Accent: the shared emerald from glass.css is kept as-is (no token override).
   ========================================================================= */

/* ===== Modal form sections (G2) =====
   Visible groups inside a single form: a hairline plus an uppercase group
   label. Deliberately NOT collapsible (details/summary) so field errors can
   never land inside a closed section. */
.glass-fgroup {
	margin-top: 4px;
	padding-top: 16px;
	border-top: 1px solid var(--glass-edge-soft);
}

/* Agenda-color swatches in the item modal: glass.css gives every .btn a
   min-height, which stretches the 22px round swatches into ovals. */
[data-meriad-custom-name="agenda-color-swatch"] {
	min-height: 0;
	min-width: 0;
	flex: none;
}

/* ===== Copy block (embed code, keys) ===== */
.glass-copyblock {
	width: 100%;
	font-family: var(--glass-mono);
	font-size: 12px;
	line-height: 1.55;
	color: var(--glass-ink);
	padding: 12px 14px;
	border-radius: 12px;
	background: var(--glass-field);
	border: 1px solid var(--glass-edge-soft);
	box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.07);
	white-space: pre-wrap;
	word-break: break-all;
	resize: none;
}
.glass-copyblock:focus { outline: 2px solid var(--glass-accent); outline-offset: 1px; }

/* ===== Scrollable mono block (phone-call transcript) ===== */
.glass-scrollblock {
	font-size: 12.5px;
	line-height: 1.6;
	color: var(--glass-ink-dim);
	padding: 12px 14px;
	border-radius: 12px;
	background: var(--glass-field);
	border: 1px solid var(--glass-edge-soft);
	max-height: 320px;
	overflow-y: auto;
	white-space: pre-wrap;
}

/* ===== Dashboard (G2) ===== */
.glass-dash-vitals { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 12px; }
.glass-dash-vitals .glass-tile { padding: 14px 16px; min-height: 84px; }
.glass-dash-vitals .glass-v { font-size: 21px; }
.glass-quicklinks a.glass-pill { text-decoration: none; }
.glass-occrow { display: flex; align-items: center; gap: 10px; margin-top: 8px; }
.glass-occrow .glass-occname {
	flex: none;
	width: 200px;
	min-width: 0;
	font-size: 12.5px;
	font-weight: 650;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.glass-occrow .glass-occname .glass-rowsub { display: block; font-size: 11px; font-weight: 500; color: var(--glass-ink-faint); }
.glass-occrow .glass-batt-track { flex: 1; }
.glass-occrow .glass-occnum {
	flex: none;
	width: 110px;
	text-align: right;
	font-size: 12px;
	color: var(--glass-ink-dim);
	font-variant-numeric: tabular-nums;
}
@media (max-width: 575.98px) {
	.glass-occrow { flex-wrap: wrap; }
	.glass-occrow .glass-occname { width: 100%; }
}

/* ===== Topbar location picker as a pill (G3-vervolg) =====
   glass.css turns every topbar-link into a 36px icon circle; this one
   carries icon + name + chevron, so it gets the same pill treatment as
   the user block (which glass.css already special-cases). */
#location-dropdown .topbar-link {
	width: auto;
	border-radius: 999px;
	padding: 0 12px;
	gap: 2px;
	font-size: 13px;
	font-weight: 650;
	color: var(--glass-ink);
	white-space: nowrap;
}
#location-dropdown .topbar-link .topbar-link-icon { color: var(--glass-accent); }

/* ===== Occupancy monitor on the day overview (G3) =====
   One glass tile per shift; the two-segment bar keeps Bootstrap's .progress
   layout but is skinned on the glass tokens (online share vs. other). */
.glass-occshift { padding: 12px 14px; }
.glass-occshift .progress {
	height: 7px;
	border-radius: 999px;
	background: var(--glass-edge-soft);
	overflow: hidden;
}
.glass-occshift .glass-occbar-online { background: var(--glass-info); }
.glass-occshift .glass-occbar-other { background: var(--glass-accent); }
.glass-occshift .text-info { color: var(--glass-info) !important; }

/* ===== Agenda / Mobiscroll (G3) =====
   The library CSS is prepended to <head>, so these rules always win at equal
   or higher specificity. The transparent mbsc surfaces and the themeVariant
   coupling from agenda.css/agenda.js stay the base; this section only maps
   the chrome onto the glass tokens. Popups (month-view "more", timeline)
   portal to <body>, hence the unprefixed .mbsc-popup rules. */
[data-meriad-custom-name="agenda-calendar"] .mbsc-calendar-button.mbsc-button {
	font-family: var(--glass-font);
	font-size: 13px;
	font-weight: 650;
	color: var(--glass-ink);
	background: var(--glass-tile);
	border: 1px solid var(--glass-edge-soft);
	box-shadow: inset 0 1px 0 var(--glass-specular);
	border-radius: 999px;
	padding: 4px 12px;
	margin: 0 2px;
}
[data-meriad-custom-name="agenda-calendar"] .mbsc-calendar-button.mbsc-button:hover { background: var(--glass-tile-hover); }
[data-meriad-custom-name="agenda-calendar"] .mbsc-calendar-button .mbsc-icon { color: var(--glass-ink-dim); }
[data-meriad-custom-name="agenda-calendar"] .mbsc-calendar-title {
	font-weight: 750;
	color: var(--glass-ink);
}
[data-meriad-custom-name="agenda-calendar"] .mbsc-calendar-week-day {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--glass-ink-faint);
}
[data-meriad-custom-name="agenda-calendar"] .mbsc-calendar-day-text { color: var(--glass-ink-dim); }
[data-meriad-custom-name="agenda-calendar"] .mbsc-calendar-today { color: var(--glass-accent); }
[data-meriad-custom-name="agenda-calendar"] .mbsc-selected .mbsc-calendar-cell-text {
	background: var(--glass-accent);
	border-color: var(--glass-accent);
	color: var(--glass-on-accent);
}
[data-meriad-custom-name="agenda-calendar"] .mbsc-schedule-header-day.mbsc-selected {
	background: var(--glass-accent);
	color: var(--glass-on-accent);
}
[data-meriad-custom-name="agenda-calendar"] .mbsc-schedule-header-dayname.mbsc-selected { color: var(--glass-accent); }
[data-meriad-custom-name="agenda-calendar"] .mbsc-timeline-header-active::after { background: var(--glass-accent); }
/* Event blocks: glass radius in every view; content stays compact */
[data-meriad-custom-name="agenda-calendar"] .mbsc-calendar-label { border-radius: 6px; }
[data-meriad-custom-name="agenda-calendar"] .mbsc-schedule-event-background,
[data-meriad-custom-name="agenda-calendar"] .mbsc-timeline-event .mbsc-schedule-event-background { border-radius: 9px; }
[data-meriad-custom-name="agenda-calendar"] .mbsc-schedule-time,
[data-meriad-custom-name="agenda-calendar"] .mbsc-timeline-header-time {
	font-size: 11px;
	color: var(--glass-ink-faint);
	font-variant-numeric: tabular-nums;
}
/* List view: day headers as eyebrow strips, events as loose glass rows */
[data-meriad-custom-name="agenda-calendar"] .mbsc-event-day.mbsc-list-header {
	/* Solid surface: the header is sticky and slides over the glass rows */
	background: var(--glass-bg-solid);
	border: none;
	border-radius: 8px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--glass-ink-faint);
	padding-top: 8px;
	padding-bottom: 8px;
}
[data-meriad-custom-name="agenda-calendar"] .mbsc-event.mbsc-list-item {
	background: var(--glass-dashrow);
	border: 1px solid var(--glass-edge-soft);
	border-radius: 12px;
	margin: 0 0 6px 0;
}
[data-meriad-custom-name="agenda-calendar"] .mbsc-event.mbsc-list-item:before,
[data-meriad-custom-name="agenda-calendar"] .mbsc-event.mbsc-list-item:after { display: none; }
/* Mobiscroll popups (month-view "more"-popover) in the glass surface */
.mbsc-popup .mbsc-popup-body {
	background: var(--glass-bg-solid);
	color: var(--glass-ink);
	border: 1px solid var(--glass-edge);
	border-radius: 14px;
	box-shadow: var(--glass-shadow);
}
.mbsc-popup .mbsc-calendar-label { border-radius: 6px; }

/* ===== Floorplan shell (G3) =====
   Tabs come from the shared nav-tabs skin; the Konva canvas itself keeps its
   functional colors — only the shell around it goes glass. */
.floorplan-canvas-wrapper,
.floorplan-editor-canvas-wrapper {
	border: 1px solid var(--glass-edge-soft);
	border-radius: 16px;
	background: var(--glass-field);
	box-shadow: inset 0 1px 0 var(--glass-specular);
}
.floorplan-palette-category {
	color: var(--glass-ink-faint);
	letter-spacing: 0.06em;
}
.floorplan-palette-item {
	border: 1px solid var(--glass-edge-soft);
	border-radius: 999px;
	background: var(--glass-tile);
	box-shadow: inset 0 1px 0 var(--glass-specular);
	color: var(--glass-ink-dim);
	font-weight: 600;
}
.floorplan-palette-item:hover {
	border-color: var(--glass-edge-soft);
	background: var(--glass-tile-hover);
	color: var(--glass-ink);
}
.floorplan-palette-item.active {
	border-color: var(--glass-edge-soft);
	background: var(--glass-accent-soft);
	color: var(--glass-accent);
}
/* "Without table"/"not placed yet" chips are .btn-based; lift them to chips */
.floorplan-unassigned-chip.btn-dark,
.floorplan-unplaced-chip.btn-outline-primary {
	color: var(--glass-ink);
	background: var(--glass-tile);
	border: 1px solid var(--glass-edge-soft);
	box-shadow: inset 0 1px 0 var(--glass-specular);
	border-radius: 999px;
	font-weight: 600;
}
.floorplan-unassigned-chip.btn-dark:hover,
.floorplan-unplaced-chip.btn-outline-primary:hover {
	color: var(--glass-ink);
	background: var(--glass-tile-hover);
}
.floorplan-unassigned-chip.active { outline: 2px solid var(--glass-accent); outline-offset: 2px; }
.floorplan-legend { color: var(--glass-ink-dim); }

/* ===== Backoffice assistant (G3) =====
   assistant.css (loaded after this file) carries the structure; the glass
   tokens flow in there directly, so no overrides are needed here. */