/* ==========================================================================
   Pages around the configurator — quote, catalogue sections, sign-in.
   Built on configurator.css (tokens, header, buttons) and the same rules:
   black on white, hairlines, no rounded corners, no shadows, no accent.
   ========================================================================== */

.cfg-header-right .cfg-header-on { color: var(--cfg-ink); }
.cfg-header-meta { color: var(--cfg-ink); }

.dev-login-badge {
	background: #a01b1b;
	color: #fff;
	font-weight: 700;
	padding: 3px 7px;
	letter-spacing: .08em;
}

/* ---------- page frame ---------- */

.pg {
	padding: 34px 26px 60px;
	max-width: 1320px;
}

.pg-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 26px;
}

.pg-title {
	font-size: 30px;
	font-weight: 300;
	letter-spacing: -.01em;
	margin: 0 0 6px;
}

.pg-lead { color: var(--cfg-muted); font-size: 14px; margin: 0; }
.pg-lead strong { color: var(--cfg-ink); font-weight: 600; }

.pg-muted { color: var(--cfg-muted); }
.pg-strong { font-weight: 600; }

/* ---------- form fields ---------- */

.pg-field { display: flex; flex-direction: column; gap: 6px; min-width: 200px; }
.pg-field--grow { flex: 1 1 280px; }

.pg-label {
	font-size: 10px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cfg-muted);
}

.pg-input {
	width: 100%;
	height: 42px;
	padding: 0 12px;
	border: 1px solid var(--cfg-line);
	border-radius: 0;
	background: var(--cfg-paper);
	color: var(--cfg-ink);
	font: inherit;
	font-size: 14px;
	-webkit-appearance: none;
	appearance: none;
}

select.pg-input {
	padding-right: 34px;
	background-image: linear-gradient(45deg, transparent 50%, var(--cfg-ink) 50%), linear-gradient(135deg, var(--cfg-ink) 50%, transparent 50%);
	background-position: calc(100% - 17px) 18px, calc(100% - 12px) 18px;
	background-size: 5px 5px;
	background-repeat: no-repeat;
}

.pg-input:hover { border-color: #b0b0b0; }
.pg-input:focus { outline: none; border-color: var(--cfg-ink); }

.pg-error { color: #a01b1b; font-size: 12px; margin: 0; }

.pg-check {
	display: flex;
	align-items: center;
	gap: 9px;
	font-size: 13px;
	cursor: pointer;
}

.pg-check input { width: 16px; height: 16px; margin: 0; accent-color: var(--cfg-ink); }

.pg-btn {
	height: 42px;
	padding: 0 26px;
	background: var(--cfg-ink);
	color: var(--cfg-paper);
	border: 1px solid var(--cfg-ink);
	border-radius: 0;
	font: inherit;
	font-size: 14px;
	cursor: pointer;
}

.pg-btn:hover { background: #262626; }

/* ---------- filter bar ---------- */

.pg-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 16px;
	padding: 18px 0 22px;
	border-top: 1px solid var(--cfg-ink);
	border-bottom: 1px solid var(--cfg-line);
	margin-bottom: 30px;
}

.pg-filter-actions {
	display: flex;
	align-items: center;
	gap: 18px;
	height: 42px;
}

/* ---------- tables ---------- */

.pg-section + .pg-section { margin-top: 40px; }

.pg-section-title {
	font-size: 21px;
	font-weight: 300;
	margin: 0 0 12px;
}

.pg-section-title span {
	font-size: 12px;
	color: var(--cfg-muted);
	margin-left: 6px;
}

.pg-table-wrap { overflow-x: auto; }

.pg-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
	background: var(--cfg-paper);
}

.pg-table th {
	padding: 10px 12px;
	text-align: left;
	font-size: 10px;
	font-weight: 400;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cfg-muted);
	border-top: 1px solid var(--cfg-ink);
	border-bottom: 1px solid var(--cfg-line);
	white-space: nowrap;
}

.pg-table td {
	padding: 12px;
	border-bottom: 1px solid var(--cfg-line);
	vertical-align: middle;
}

.pg-table tbody tr:hover { background: #fbfaf8; }

.pg-table th:first-child,
.pg-table td:first-child { padding-left: 0; }
.pg-table th:last-child,
.pg-table td:last-child { padding-right: 0; }

.pg-num { text-align: right; white-space: nowrap; }
.pg-price { font-weight: 600; font-variant-numeric: tabular-nums; }
.pg-price s { font-weight: 400; margin-right: 6px; }

.pg-code {
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 11px;
	color: var(--cfg-muted);
	white-space: nowrap;
}

.pg-code--under { display: block; margin-top: 3px; white-space: normal; word-break: break-all; }

.pg-add {
	padding: 7px 14px;
	background: var(--cfg-paper);
	color: var(--cfg-ink);
	border: 1px solid var(--cfg-ink);
	border-radius: 0;
	font: inherit;
	font-size: 12px;
	cursor: pointer;
}

.pg-add:hover { background: var(--cfg-ink); color: var(--cfg-paper); }

/* ---------- quote ---------- */

.pg-stepper {
	display: inline-flex;
	align-items: stretch;
	border: 1px solid var(--cfg-line);
}

.pg-stepper a,
.pg-stepper span {
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	color: var(--cfg-ink);
}

.pg-stepper span { width: 38px; font-weight: 600; border-left: 1px solid var(--cfg-line); border-right: 1px solid var(--cfg-line); }
.pg-stepper a:hover { background: var(--cfg-ink); color: var(--cfg-paper); }

.pg-remove {
	font-size: 12px;
	color: var(--cfg-muted);
	text-decoration: none;
}

.pg-remove:hover { color: #a01b1b; text-decoration: underline; }

.pg-total {
	display: flex;
	justify-content: flex-end;
	align-items: baseline;
	gap: 18px;
	padding: 18px 0;
	border-bottom: 1px solid var(--cfg-ink);
	font-size: 13px;
	color: var(--cfg-muted);
}

.pg-total strong { font-size: 24px; font-weight: 600; color: var(--cfg-ink); font-variant-numeric: tabular-nums; }

.pg-actions {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 26px;
	margin-top: 26px;
}

.pg-actions .cfg-back { text-align: left; }
.pg-actions-main { width: auto; padding: 15px 40px; }

/* ---------- empty states ---------- */

.pg-empty {
	padding: 60px 0;
	border-top: 1px solid var(--cfg-ink);
	color: var(--cfg-muted);
	font-size: 14px;
}

.pg-empty-title { font-size: 21px; font-weight: 300; color: var(--cfg-ink); margin: 0 0 6px; }
.pg-empty p { margin: 0; }
.pg-empty a { color: var(--cfg-ink); }

/* ---------- add-to-quote dialog (catalogue pages) ---------- */

.modal {
	position: fixed;
	inset: 0;
	z-index: 100;
	align-items: center;
	justify-content: center;
	padding: 16px;
}

.modal-overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, .35); }

.modal-content {
	position: relative;
	width: 100%;
	max-width: 420px;
	background: var(--cfg-paper);
	padding: 26px;
	border-top: 2px solid var(--cfg-ink);
}

.modal-header { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 16px; }
.modal-title { font-size: 21px; font-weight: 300; margin: 0; }

.modal-close {
	background: none;
	border: 0;
	font-size: 24px;
	line-height: 1;
	color: var(--cfg-muted);
	cursor: pointer;
	padding: 0;
}

.modal-close:hover { color: var(--cfg-ink); }

.modal-product-name { font-weight: 600; margin: 0 0 2px; }

.modal-product-code {
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 11px;
	color: var(--cfg-muted);
	margin: 0 0 20px;
	word-break: break-all;
}

.modal-field label {
	display: block;
	font-size: 10px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cfg-muted);
	margin-bottom: 6px;
}

.modal .quantity-controls { display: inline-flex; border: 1px solid var(--cfg-line); }

.modal .qty-btn {
	width: 40px;
	height: 40px;
	background: var(--cfg-paper);
	border: 0;
	font: inherit;
	font-size: 18px;
	cursor: pointer;
}

.modal .qty-btn:hover { background: var(--cfg-ink); color: var(--cfg-paper); }

.modal-qty-input {
	width: 60px;
	border: 0;
	border-left: 1px solid var(--cfg-line);
	border-right: 1px solid var(--cfg-line);
	text-align: center;
	font: inherit;
	font-weight: 600;
	-moz-appearance: textfield;
}

.modal-qty-input::-webkit-inner-spin-button,
.modal-qty-input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

.modal-price-summary { margin-top: 20px; border-top: 1px solid var(--cfg-line); }

.summary-row {
	display: flex;
	justify-content: space-between;
	padding: 9px 0;
	font-size: 13px;
	color: var(--cfg-muted);
	border-bottom: 1px solid var(--cfg-line);
}

.summary-row span:last-child { color: var(--cfg-ink); font-variant-numeric: tabular-nums; }
.summary-row.total span:last-child { font-size: 18px; font-weight: 600; }

.modal-footer { display: flex; justify-content: flex-end; align-items: center; gap: 22px; margin-top: 24px; }

.btn-modal-cancel {
	background: none;
	border: 0;
	font: inherit;
	font-size: 13px;
	color: var(--cfg-muted);
	cursor: pointer;
}

.btn-modal-cancel:hover { color: var(--cfg-ink); }

.btn-modal-add {
	padding: 12px 26px;
	background: var(--cfg-ink);
	color: var(--cfg-paper);
	border: 1px solid var(--cfg-ink);
	border-radius: 0;
	font: inherit;
	font-size: 14px;
	cursor: pointer;
}

.btn-modal-add:hover { background: #262626; }
.btn-modal-add:disabled { background: #d8d8d8; border-color: #d8d8d8; cursor: wait; }

#quote-toast {
	position: fixed;
	right: 26px;
	bottom: 26px;
	z-index: 110;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 13px 18px;
	background: var(--cfg-ink);
	color: var(--cfg-paper);
	font-size: 13px;
	opacity: 0;
	transform: translateY(8px);
	pointer-events: none;
	transition: opacity .2s, transform .2s;
}

#quote-toast.toast-visible { opacity: 1; transform: none; }

/* ---------- sign-in ---------- */

.pg-sign {
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 26px 16px;
	background: var(--cfg-visual);
}

.pg-sign-card {
	width: 100%;
	max-width: 400px;
	background: var(--cfg-paper);
	padding: 34px;
	border-top: 2px solid var(--cfg-ink);
}

.pg-sign-brand {
	display: flex;
	align-items: baseline;
	gap: 14px;
	margin: 0 0 40px;
}

.pg-sign .pg-lead { margin-bottom: 26px; }
.pg-sign-flash { margin: 0 -34px 20px; padding-left: 34px; padding-right: 34px; border: 0; }

.pg-sign-form { display: flex; flex-direction: column; gap: 18px; }
.pg-sign-form .cfg-continue { margin-top: 6px; }

.pg-input--code {
	height: 56px;
	font-size: 26px;
	letter-spacing: .4em;
	text-align: center;
	font-variant-numeric: tabular-nums;
}

.pg-sign-back { display: block; margin-top: 20px; }

/* ---------- narrow screens ---------- */

@media (max-width: 900px) {
	.pg { padding: 24px 16px 40px; }
	.pg-title { font-size: 26px; }
	.pg-field { min-width: 0; flex: 1 1 100%; }
	.pg-actions { flex-direction: column-reverse; align-items: stretch; }
	.pg-actions-main { text-align: center; }
	.cfg-header { padding: 12px 16px; flex-wrap: wrap; }
	.cfg-steps { padding: 0 16px; }
}
