/* Project design ("Amber"): warm ground, burnt-orange accent, Plus Jakarta Sans.
   Loaded after the Materialy/Bootstrap css on every page. */

:root {
	--pm-font: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--pm-bg: #FAF6F0;
	--pm-surface: #FFFFFF;
	--pm-ink: #1C1917;
	--pm-text: #57534E;
	--pm-muted: #78716C;
	--pm-faint: #A8A29E;
	--pm-line: #EAE3D9;
	--pm-line-strong: #E7DFD3;
	--pm-accent: #C2410C;
	--pm-accent-dark: #9A3412;
	--pm-accent-soft: #FEF3E7;
	--pm-accent-tint: #FFF7ED;
	--pm-accent-ring: rgba(194, 65, 12, .16);
	--pm-rail: #1C1917;
	--pm-danger: #DC2626;

	--bs-font-sans-serif: var(--pm-font);
	--bs-body-font-family: var(--pm-font);
	--bs-body-font-size: .875rem;
	--bs-body-color: var(--pm-ink);
}

[x-cloak] {
	display: none !important;
}

.min-w-0 {
	min-width: 0;
}

/* ===================================================================
   App shell: icon rail on the left, page on the right
   =================================================================== */
.pm-body {
	margin: 0;
	font-family: var(--pm-font);
	color: var(--pm-ink);
	background: var(--pm-bg);
}

.pm-app {
	display: flex;
	min-height: 100vh;
	padding-left: 76px;
	transition: padding-left .22s cubic-bezier(.22, .61, .36, 1);
}

.pm-rail-open .pm-app {
	padding-left: 240px;
}

.pm-rail {
	position: fixed;
	top: 0;
	bottom: 0;
	left: 0;
	z-index: 40;
	display: flex;
	flex-direction: column;
	gap: 26px;
	width: 76px;
	box-sizing: border-box;
	padding: 22px 15px;
	overflow: hidden;
	background: var(--pm-rail);
	transition: width .22s cubic-bezier(.22, .61, .36, 1);
}

.pm-rail-open .pm-rail {
	width: 240px;
}

.pm-rail-brand {
	display: flex;
	align-items: center;
	gap: 12px;
	padding-left: 3px;
	text-decoration: none;
}

.pm-rail-logo {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 12px;
	font-weight: 800;
	color: #FFFFFF;
	background: var(--pm-accent);
}

.pm-rail-text {
	white-space: nowrap;
	opacity: 0;
	transition: opacity .12s;
}

.pm-rail-open .pm-rail-text {
	opacity: 1;
	transition-delay: .06s;
}

.pm-rail-brand .pm-rail-text {
	flex: none;
	width: 150px;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.2;
	white-space: normal;
	color: #FFFFFF;
}

.pm-rail-nav {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.pm-rail-link {
	display: flex;
	align-items: center;
	gap: 14px;
	height: 46px;
	padding: 0 12px;
	border-radius: 12px;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--pm-faint);
	text-decoration: none;
	transition: background-color .15s, color .15s;
}

.pm-rail-link > svg {
	flex: none;
}

.pm-rail-link:hover,
.pm-rail-link:focus-visible {
	color: #FDBA74;
	background: #2A2522;
	outline: none;
}

.pm-rail-link.active {
	color: #FDBA74;
	background: #3A332F;
}

.pm-shell {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-width: 0;
}

.pm-topnav {
	position: sticky;
	top: 0;
	z-index: 30;
	display: flex;
	align-items: center;
	height: 64px;
	padding: 0 32px;
	border-bottom: 1px solid var(--pm-line);
	background: var(--pm-surface);
}

.pm-burger {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	margin-left: -8px;
	padding: 0;
	border: 1px solid transparent;
	border-radius: 10px;
	font-size: 22px;
	color: var(--pm-ink);
	background: none;
	transition: background-color .15s, border-color .15s;
}

.pm-burger:hover,
.pm-burger[aria-expanded="true"] {
	border-color: var(--pm-line-strong);
	background: var(--pm-accent-tint);
}

.pm-burger:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px var(--pm-accent-ring);
}

.pm-userchip {
	display: flex;
	align-items: center;
	gap: 10px;
	height: 46px;
	padding: 0 10px 0 6px;
	border: 1px solid transparent;
	border-radius: 12px;
	font: inherit;
	color: var(--pm-ink);
	background: transparent;
	cursor: pointer;
	transition: background-color .15s, border-color .15s;
}

.pm-userchip:hover,
.pm-userchip[aria-expanded="true"] {
	border-color: var(--pm-line-strong);
	background: var(--pm-accent-tint);
}

.pm-userchip:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px var(--pm-accent-ring);
}

.pm-userchip-avatar {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 10px;
	font-size: 12.5px;
	font-weight: 800;
	color: var(--pm-accent-dark);
	background: var(--pm-accent-soft);
}

.pm-userchip-text {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	line-height: 1.25;
	text-align: left;
}

.pm-userchip-text strong {
	font-size: 13.5px;
	font-weight: 700;
}

.pm-userchip-text small {
	font-size: 11.5px;
	color: var(--pm-muted);
}

.pm-userchip > i {
	font-size: 15px;
	color: var(--pm-muted);
}

.pm-user-menu {
	min-width: 290px;
	padding: 6px;
	border: 1px solid var(--pm-line);
	border-radius: 14px;
	background: var(--pm-surface);
	box-shadow: 0 16px 40px rgba(28, 25, 23, .14);
}

.pm-menu-label {
	padding: 8px 12px 4px;
	font-size: 11.5px;
	font-weight: 700;
	color: var(--pm-faint);
}

.pm-user-menu .dropdown-item,
.pm-user-menu .dropdown-item-text {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px 12px;
	border-radius: 9px;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--pm-ink);
}

.pm-user-menu .dropdown-item:hover {
	background: var(--pm-accent-tint);
}

.pm-user-menu .dropdown-item.disabled {
	color: var(--pm-faint);
}

.pm-user-menu .dropdown-divider {
	margin: 5px 0;
	border-color: var(--pm-line);
}

.pm-main {
	flex: 1;
	min-width: 0;
	box-sizing: border-box;
	padding: 24px 32px;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.pm-stack {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.pm-header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.pm-header-text {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.pm-header-actions {
	display: flex;
	gap: 10px;
}

.pm-greeting {
	font-size: 13px;
	color: var(--pm-muted);
}

.pm-title {
	margin: 0;
	font-size: 26px;
	font-weight: 800;
	letter-spacing: -.02em;
	color: var(--pm-ink);
}

.pm-footer {
	margin-top: auto;
	padding-top: 12px;
	font-size: 12.5px;
	color: var(--pm-faint);
}

@media (max-width: 767.98px) {
	.pm-app,
	.pm-rail-open .pm-app {
		flex-direction: column;
		padding-left: 0;
	}

	.pm-burger {
		display: none;
	}

	.pm-rail,
	.pm-rail-open .pm-rail {
		position: static;
		flex-direction: row;
		align-items: center;
		width: 100%;
		padding: 10px 16px;
		gap: 16px;
		box-shadow: none;
	}

	.pm-rail-nav {
		flex-direction: row;
	}

	.pm-rail-text {
		display: none;
	}

	.pm-topnav {
		padding: 0 16px;
	}

	.pm-main {
		padding: 18px 16px;
	}
}

/* ===================================================================
   Buttons, inputs, chips
   =================================================================== */
.pm-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	height: 42px;
	padding: 0 16px;
	border: 1px solid var(--pm-line-strong);
	border-radius: 12px;
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	color: var(--pm-ink);
	background: var(--pm-surface);
	cursor: pointer;
	transition: background-color .15s, border-color .15s, color .15s;
}

.pm-btn:hover {
	border-color: #D6CCBE;
	background: #FFFCF8;
}

.pm-btn:focus-visible,
.pm-input:focus,
.pm-pill:focus-visible,
.pm-toggle:has(input:focus-visible),
.pm-segment label:has(input:focus-visible),
.pm-check:has(input:focus-visible),
.pm-multi > summary:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px var(--pm-accent-ring);
}

.pm-btn:disabled {
	opacity: .65;
	cursor: default;
}

.pm-btn-primary {
	font-weight: 700;
	color: #FFFFFF;
	background: var(--pm-accent);
	border-color: var(--pm-accent);
}

.pm-btn-primary:hover {
	color: #FFFFFF;
	background: var(--pm-accent-dark);
	border-color: var(--pm-accent-dark);
}

.pm-btn-dark {
	font-weight: 700;
	color: #FFFFFF;
	background: var(--pm-ink);
	border-color: var(--pm-ink);
}

.pm-btn-dark:hover {
	color: #FFFFFF;
	background: #3A332F;
	border-color: #3A332F;
}

.pm-btn-sm {
	height: 32px;
	padding: 0 10px;
	border-radius: 9px;
	font-size: 12.5px;
}

/* Icons (iconoir draws at 1em, so they need their own size next to text) */
.pm-btn > i,
.pm-drawer-tab > i,
.pm-user-menu .dropdown-item > i,
.pm-user-menu .dropdown-item-text > i {
	font-size: 18px;
}

.pm-btn-sm > i {
	font-size: 16px;
}

.pm-drawer-close > i {
	font-size: 20px;
}

.pm-soon-icon > i {
	font-size: 30px;
}

.pm-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 12.5px;
	font-weight: 700;
	color: var(--pm-ink);
}

/* Required field: label class="required" adds the star. */
.pm-field .required::after {
	content: " *";
	color: var(--pm-accent);
}

.pm-input {
	width: 100%;
	height: 38px;
	box-sizing: border-box;
	padding: 0 12px;
	border: 1px solid var(--pm-line-strong);
	border-radius: 10px;
	font: inherit;
	font-size: 13.5px;
	font-weight: 500;
	color: var(--pm-ink);
	background: var(--pm-surface);
	transition: border-color .15s, box-shadow .15s;
}

.pm-input::placeholder {
	color: var(--pm-faint);
}

.pm-input:focus {
	border-color: var(--pm-accent);
}

.pm-input:disabled {
	font-weight: 700;
	color: var(--pm-ink);
	background: var(--pm-bg);
}

textarea.pm-input {
	height: auto;
	min-height: 72px;
	padding: 9px 12px;
	resize: vertical;
}

select.pm-input {
	appearance: none;
	padding-right: 34px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2378716C' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 10px center;
}

/* Calendar icon of date fields */
input[type="date"].pm-input::-webkit-calendar-picker-indicator {
	width: 18px;
	height: 18px;
	opacity: .6;
	cursor: pointer;
}

input[type="date"].pm-input::-webkit-calendar-picker-indicator:hover {
	opacity: 1;
}

.pm-input.is-invalid {
	border-color: var(--pm-danger);
}

.pm-error {
	font-size: 12px;
	font-weight: 600;
	color: var(--pm-danger);
}

.pm-chip {
	justify-self: start;
	padding: 4px 10px;
	border-radius: 8px;
	font-size: 12px;
	font-weight: 700;
	white-space: nowrap;
}

.pm-chip-premium { color: #075985; background: #E0F2FE; }
.pm-chip-tax { color: #854D0E; background: #FEF9C3; }
.pm-chip-fee { color: #6B21A8; background: #F3E8FF; }
.pm-chip-active { color: #166534; background: #DCFCE7; }
.pm-chip-inactive { color: #991B1B; background: #FEE2E2; }
.pm-chip-deleted { color: #57534E; background: #F5F5F4; }
.pm-chip-locked { color: #9A3412; background: #FFEDD5; }

.pm-flags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.pm-flag {
	padding: 4px 9px;
	border-radius: 999px;
	font-size: 11.5px;
	font-weight: 700;
	white-space: nowrap;
}

.pm-flag-on {
	color: #166534;
	background: #DCFCE7;
}

.pm-flag-off {
	color: var(--pm-faint);
	background: #F5F5F4;
	text-decoration: line-through;
}

/* Yes / no and status as clickable cards: a label around a hidden checkbox */
.pm-toggles {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
}

.pm-toggle {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 2px;
	margin: 0;
	padding: 9px 12px;
	border: 1px solid var(--pm-line-strong);
	border-radius: 12px;
	color: var(--pm-text);
	background: var(--pm-surface);
	cursor: pointer;
	transition: border-color .15s, background-color .15s;
}

.pm-toggle input,
.pm-segment input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.pm-toggle strong {
	font-size: 13.5px;
	color: var(--pm-ink);
}

.pm-toggle span {
	font-size: 12px;
}

.pm-toggle .pm-toggle-on,
.pm-toggle:has(input:checked) .pm-toggle-off {
	display: none;
}

.pm-toggle:has(input:checked) .pm-toggle-on {
	display: inline;
}

.pm-toggle:has(input:checked) {
	color: var(--pm-accent-dark);
	background: var(--pm-accent-tint);
	border-color: var(--pm-accent);
}

.pm-toggle:has(input:checked) strong {
	color: var(--pm-accent-dark);
}

.pm-toggle-green:has(input:checked) {
	color: #166534;
	background: #F0FDF4;
	border-color: #86EFAC;
}

.pm-toggle-green:has(input:checked) strong {
	color: #166534;
}

/* Pick one: radios shown as a row of buttons */
.pm-segment {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.pm-segment label {
	position: relative;
	display: inline-flex;
	align-items: center;
	height: 36px;
	margin: 0;
	padding: 0 13px;
	border: 1px solid var(--pm-line-strong);
	border-radius: 11px;
	font-size: 13px;
	font-weight: 600;
	color: var(--pm-text);
	background: var(--pm-surface);
	cursor: pointer;
}

.pm-segment label:has(input:checked) {
	font-weight: 800;
	color: var(--pm-accent-dark);
	background: var(--pm-accent-tint);
	border-color: var(--pm-accent);
}

/* State charges: one row each, saved rows locked until their pencil is clicked */
.pm-lines {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.pm-line {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 12px 14px;
	border: 1px solid var(--pm-line);
	border-radius: 14px;
	background: var(--pm-surface);
}

.pm-charge-fields {
	flex: 1;
	min-width: 0;
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) 104px 148px 148px minmax(0, 1.2fr) minmax(0, 1fr);
	gap: 12px;
	margin: 0;
	padding: 0;
	border: 0;
}

.pm-note-fields {
	flex: 1;
	min-width: 0;
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
	gap: 12px;
}

.pm-other-name-fields {
	flex: 1;
	min-width: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}

.pm-form-field-fields {
	flex: 1;
	min-width: 0;
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 12px;
	margin: 0;
	padding: 0;
	border: 0;
}

.pm-line-actions {
	display: flex;
	gap: 6px;
	padding-top: 25px;
}

.pm-icon-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border: 1px solid;
	border-radius: 10px;
	font-size: 16px;
	background: var(--pm-surface);
	cursor: pointer;
}

.pm-icon-btn-edit { color: #15803D; border-color: #BBF7D0; }
.pm-icon-btn-edit:hover,
.pm-icon-btn-edit.active { background: #DCFCE7; border-color: #15803D; }
.pm-icon-btn-danger { color: var(--pm-danger); border-color: #FECACA; }
.pm-icon-btn-danger:hover { background: #FEE2E2; }

/* Pick many from a closed box (state charge transactions) */
.pm-multi {
	position: relative;
}

.pm-multi > summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	list-style: none;
	cursor: pointer;
}

.pm-multi > summary::-webkit-details-marker {
	display: none;
}

.pm-multi > summary > span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.pm-multi-menu {
	position: absolute;
	z-index: 30;
	top: calc(100% + 6px);
	left: 0;
	right: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 220px;
	padding: 8px;
	border: 1px solid var(--pm-line-strong);
	border-radius: 12px;
	background: var(--pm-surface);
	box-shadow: 0 14px 30px rgba(28, 25, 23, .14);
}

.pm-multi-menu label {
	display: flex;
	align-items: center;
	gap: 9px;
	margin: 0;
	padding: 7px 8px;
	border-radius: 8px;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}

.pm-multi-menu label:hover {
	background: var(--pm-accent-tint);
}

.pm-multi-menu input {
	margin: 0;
	accent-color: var(--pm-accent);
}

/* Fee master: Select all + search on top, scrolling list below */
.pm-multi-head {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 2px 4px 8px 8px;
	border-bottom: 1px solid var(--pm-line);
}

.pm-multi-head input[type="checkbox"] {
	flex: none;
	width: 16px;
	height: 16px;
	margin: 0;
	accent-color: var(--pm-accent);
}

.pm-multi-head .pm-input {
	height: 34px;
}

.pm-multi-list {
	display: flex;
	flex-direction: column;
	gap: 2px;
	max-height: 230px;
	padding-top: 6px;
	overflow-y: auto;
}

.pm-multi-list .pm-checks-empty {
	padding: 8px;
}

.pm-combo-option {
	display: block;
	width: 100%;
	padding: 7px 8px;
	border: 0;
	border-radius: 8px;
	font-size: 13px;
	font-weight: 600;
	text-align: left;
	color: var(--pm-text);
	background: none;
	cursor: pointer;
}

.pm-combo-option:hover {
	background: var(--pm-accent-tint);
}

.pm-combo-option.active {
	color: var(--pm-accent-dark);
	background: var(--pm-accent-soft);
}

.pm-combo-placeholder {
	color: var(--pm-faint);
}

.pm-charge-fields:disabled .pm-multi > summary {
	font-weight: 700;
	background: var(--pm-bg);
	pointer-events: none;
}

@media (max-width: 991.98px) {
	.pm-charge-fields,
	.pm-form-field-fields {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 575.98px) {
	.pm-line {
		flex-direction: column;
	}

	.pm-charge-fields,
	.pm-note-fields,
	.pm-other-name-fields,
	.pm-form-field-fields {
		width: 100%;
		grid-template-columns: minmax(0, 1fr);
	}

	.pm-line-actions {
		padding-top: 0;
	}
}

/* Pick many: checkboxes shown as chips */
.pm-checks {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	max-height: 168px;
	overflow-y: auto;
}

.pm-check {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin: 0;
	padding: 6px 11px;
	border: 1px solid var(--pm-line-strong);
	border-radius: 10px;
	font-size: 13px;
	font-weight: 600;
	color: var(--pm-text);
	background: var(--pm-surface);
	cursor: pointer;
}

.pm-check input {
	margin: 0;
	accent-color: var(--pm-accent);
}

.pm-check:has(input:checked) {
	color: var(--pm-accent-dark);
	background: var(--pm-accent-tint);
	border-color: var(--pm-accent);
}

.pm-checks-empty {
	font-size: 13px;
	font-weight: 500;
	color: var(--pm-faint);
}

/* ===================================================================
   Admin Tools: master tabs, list, pagination
   =================================================================== */
.pm-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.pm-pill {
	padding: 7px 12px;
	border: 1px solid var(--pm-line);
	border-radius: 9px;
	font-size: 12.5px;
	font-weight: 600;
	color: var(--pm-text);
	background: var(--pm-surface);
	text-decoration: none;
	transition: border-color .15s, color .15s;
}

.pm-pill:hover {
	color: var(--pm-accent);
	border-color: var(--pm-accent);
}

.pm-pill.active {
	font-weight: 700;
	color: #FFFFFF;
	background: var(--pm-ink);
	border-color: var(--pm-ink);
}

.pm-pill-toggle {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	line-height: inherit;
}

.pm-pill-toggle > i {
	font-size: 14px;
}

.pm-pill-menu {
	min-width: 210px;
}

.pm-pill-menu .dropdown-item.active {
	color: var(--pm-accent-dark);
	background: var(--pm-accent-soft);
}

.pm-list-top,
.pm-list-bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.pm-entries {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: var(--pm-muted);
}

.pm-entries select {
	width: auto;
	height: 34px;
	padding: 0 30px 0 10px;
	border-radius: 10px;
	font-weight: 600;
	background-position: right 10px center;
}

.pm-search {
	position: relative;
	display: flex;
	align-items: center;
}

.pm-search i {
	position: absolute;
	left: 12px;
	font-size: 18px;
	color: var(--pm-faint);
	pointer-events: none;
}

.pm-search .pm-input {
	width: 280px;
	height: 36px;
	padding-left: 38px;
	font-size: 13px;
}

.pm-showing {
	font-size: 13px;
	color: var(--pm-muted);
}

.pm-rows {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--pm-line);
	border-radius: 14px;
	background: var(--pm-surface);
	box-shadow: 0 1px 2px rgba(28, 25, 23, .04);
}

.pm-row-head,
.pm-row {
	display: grid;
	align-items: center;
	gap: 16px;
	padding: 0 18px;
}

.pm-row-head {
	min-height: 46px;
	border-bottom: 1px solid var(--pm-line);
	font-size: 12.5px;
	font-weight: 600;
	color: var(--pm-muted);
}

.pm-row {
	min-height: 58px;
	padding-top: 8px;
	padding-bottom: 8px;
	border-top: 1px solid #F1EBE2;
	cursor: pointer;
	transition: background-color .15s;
}

.pm-row-head + .pm-row {
	border-top: 0;
}

.pm-row:hover {
	background: var(--pm-accent-tint);
}

.pm-row.active {
	background: var(--pm-accent-soft);
	box-shadow: inset 3px 0 0 var(--pm-accent);
}

.pm-grid-cob { grid-template-columns: repeat(4, minmax(0, 1fr)) 80px; }
.pm-grid-state { grid-template-columns: repeat(3, minmax(0, 1fr)) 80px; }
.pm-grid-fee { grid-template-columns: repeat(4, minmax(0, 1fr)) 80px; }
.pm-grid-agency { grid-template-columns: repeat(4, minmax(0, 1fr)) 80px; }
.pm-grid-app { grid-template-columns: repeat(5, minmax(0, 1fr)) 80px; }
.pm-grid-lob { grid-template-columns: repeat(3, minmax(0, 1fr)) 80px; }
.pm-grid-coa { grid-template-columns: repeat(4, minmax(0, 1fr)) 80px; }
.pm-grid-category { grid-template-columns: repeat(2, minmax(0, 1fr)) 80px; }
.pm-grid-glmap { grid-template-columns: repeat(2, minmax(0, 1fr)) 80px; }
.pm-grid-insured { grid-template-columns: repeat(6, minmax(0, 1fr)) 80px; }
.pm-grid-status { grid-template-columns: repeat(3, minmax(0, 1fr)) 80px; }
.pm-grid-doctype { grid-template-columns: repeat(4, minmax(0, 1fr)) 80px; }
.pm-grid-user { grid-template-columns: repeat(6, minmax(0, 1fr)) 80px; }
.pm-grid-commission { grid-template-columns: repeat(7, minmax(0, 1fr)) 80px; }
.pm-grid-sequence { grid-template-columns: repeat(11, minmax(0, 1fr)) 80px; }
.pm-grid-random { grid-template-columns: repeat(8, minmax(0, 1fr)) 80px; }
.pm-grid-bank { grid-template-columns: repeat(5, minmax(0, 1fr)) 80px; }
.pm-grid-bankparty { grid-template-columns: repeat(2, minmax(0, 1fr)) 80px; }
.pm-grid-forms { grid-template-columns: repeat(15, minmax(0, 1fr)) 80px; gap: 12px; }
.pm-grid-queue { grid-template-columns: repeat(3, minmax(0, 1fr)) 80px; }
.pm-grid-feecompany { grid-template-columns: repeat(2, minmax(0, 1fr)) 80px; }
.pm-grid-taxcompany { grid-template-columns: repeat(2, minmax(0, 1fr)) 80px; }
.pm-grid-riskcompany { grid-template-columns: repeat(6, minmax(0, 1fr)) 80px; }
.pm-grid-marketcompany { grid-template-columns: repeat(6, minmax(0, 1fr)) 80px; }
.pm-grid-reinsurance { grid-template-columns: repeat(3, minmax(0, 1fr)) 80px; }

.pm-id {
	justify-self: start;
	max-width: 100%;
	overflow: hidden;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 14px;
	font-weight: 600;
	color: var(--pm-accent-dark);
	white-space: nowrap;
	text-overflow: ellipsis;
}

.pm-name {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.pm-name strong {
	overflow: hidden;
	font-size: 14px;
	font-weight: 600;
	color: var(--pm-ink);
	white-space: nowrap;
	text-overflow: ellipsis;
}

.pm-name small {
	overflow: hidden;
	font-size: 12.5px;
	color: var(--pm-muted);
	white-space: nowrap;
	text-overflow: ellipsis;
}

.pm-name small:only-child {
	font-size: 14px;
	color: var(--pm-text);
}

.pm-actions .pm-btn-dark {
	color: var(--pm-ink);
	background: var(--pm-surface);
	border-color: var(--pm-line-strong);
}

.pm-actions .pm-btn-dark:hover,
.pm-row:hover .pm-actions .pm-btn-dark {
	color: #FFFFFF;
	background: var(--pm-ink);
	border-color: var(--pm-ink);
}

.pm-inactive {
	font-weight: 700;
	color: var(--pm-danger);
}

.pm-actions {
	display: flex;
	justify-content: flex-end;
	gap: 6px;
}

.pm-empty {
	padding: 44px 20px;
	border: 1px dashed var(--pm-line-strong);
	border-radius: 14px;
	text-align: center;
	color: var(--pm-muted);
	background: var(--pm-surface);
}

.pm-rows .pm-empty {
	border: 0;
	border-radius: 0;
}

.pm-soon-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	margin-bottom: 12px;
	border-radius: 18px;
	color: var(--pm-accent);
	background: var(--pm-accent-soft);
}

.pm-soon-title {
	margin: 0 0 4px;
	font-size: 18px;
	font-weight: 800;
	color: var(--pm-ink);
}

.pm-pages {
	display: flex;
	gap: 6px;
}

.pm-page {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 34px;
	height: 34px;
	padding: 0 8px;
	border: 1px solid var(--pm-line);
	border-radius: 10px;
	font: inherit;
	font-size: 13px;
	font-weight: 600;
	color: var(--pm-text);
	background: var(--pm-surface);
	cursor: pointer;
}

.pm-page:hover:not(:disabled, .active) {
	color: var(--pm-accent);
	border-color: var(--pm-accent);
}

.pm-page:disabled {
	color: var(--pm-faint);
	cursor: default;
}

.pm-page i {
	font-size: 18px;
}

.pm-page.active {
	font-weight: 800;
	color: #FFFFFF;
	background: var(--pm-accent);
	border-color: var(--pm-accent);
}

@media (max-width: 991.98px) {
	.pm-row-head {
		display: none;
	}

	.pm-row {
		grid-template-columns: 72px minmax(0, 1fr);
	}

	.pm-row > :nth-child(n + 3) {
		grid-column: 2;
	}

	.pm-actions {
		justify-content: flex-start;
	}

	.pm-search {
		flex: 1 1 220px;
	}

	.pm-search .pm-input {
		width: 100%;
	}

	.pm-pills {
		flex-wrap: nowrap;
		overflow-x: auto;
		padding-bottom: 4px;
	}

	.pm-pill {
		white-space: nowrap;
	}
}

/* ===================================================================
   Drawer (add / edit)
   =================================================================== */
.pm-drawer-backdrop {
	position: fixed;
	inset: 0;
	z-index: 1040;
	background: rgba(28, 25, 23, .4);
	animation: pm-fade .2s ease;
}

.pm-drawer {
	position: fixed;
	top: 14px;
	right: 14px;
	bottom: 14px;
	z-index: 1045;
	display: flex;
	flex-direction: column;
	width: min(680px, calc(100% - 28px));
	overflow: hidden;
	border-radius: 20px;
	background: var(--pm-surface);
	box-shadow: 0 24px 64px rgba(28, 25, 23, .25);
	animation: pm-slide .25s ease;
}

.pm-drawer-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 22px 26px;
	background: var(--pm-accent-soft);
}

.pm-drawer-mark {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 48px;
	height: 48px;
	padding: 0 8px;
	box-sizing: border-box;
	border-radius: 14px;
	font-size: 16px;
	font-weight: 800;
	color: #FFFFFF;
	background: var(--pm-accent);
	box-shadow: 0 6px 14px rgba(194, 65, 12, .22);
}


.pm-drawer-eyebrow {
	font-size: 12px;
	font-weight: 700;
	color: var(--pm-accent-dark);
	text-transform: uppercase;
}

.pm-drawer-title {
	overflow: hidden;
	font-size: 19px;
	font-weight: 800;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.pm-drawer-close {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	flex-shrink: 0;
	border: 0;
	border-radius: 12px;
	color: var(--pm-text);
	background: var(--pm-surface);
	cursor: pointer;
}

.pm-drawer-body {
	flex: 1;
	min-height: 0;
	overflow-y: auto;
	padding: 22px 26px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.pm-drawer-foot {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	padding: 16px 26px;
	border-top: 1px solid #F1EBE2;
}

.pm-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.pm-span-2 {
	grid-column: span 2;
}

/* Widest drawer: a state's charge rows */
.pm-drawer-xl {
	width: min(1240px, calc(100% - 28px));
}

/* Bigger drawer with Details / other tabs down the left (agency) */
.pm-drawer-wide {
	width: min(1000px, calc(100% - 28px));
}

.pm-drawer-main {
	flex: 1;
	min-height: 0;
	display: flex;
}

.pm-drawer-tabs {
	display: flex;
	flex-direction: column;
	gap: 4px;
	width: 168px;
	flex-shrink: 0;
	box-sizing: border-box;
	padding: 18px 12px;
	border-right: 1px solid #F1EBE2;
}

.pm-drawer-tab {
	display: flex;
	align-items: center;
	gap: 10px;
	height: 42px;
	padding: 0 12px;
	border: 0;
	border-radius: 10px;
	font: inherit;
	font-weight: 600;
	text-align: left;
	color: var(--pm-text);
	background: transparent;
	cursor: pointer;
}

.pm-drawer-tab.active {
	font-weight: 800;
	color: var(--pm-accent-dark);
	background: var(--pm-accent-soft);
}

.pm-drawer-content {
	flex: 1;
	min-width: 0;
	min-height: 0;
	display: flex;
	flex-direction: column;
}

/* Titled groups of fields inside a long form */
.pm-form-section {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.pm-form-section + .pm-form-section {
	padding-top: 18px;
	border-top: 1px dashed var(--pm-line-strong);
}

.pm-form-section-title {
	margin: 0;
	font-size: 15px;
	font-weight: 800;
	color: var(--pm-ink);
}

.pm-panel {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 16px;
	border-radius: 14px;
	background: var(--pm-bg);
}

/* Small tables inside the drawer (commission, ledger) */
.pm-table-wrap {
	overflow-x: auto;
	border: 1px solid var(--pm-line);
	border-radius: 14px;
}

.pm-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
}

.pm-table th {
	padding: 10px 12px;
	font-size: 12px;
	font-weight: 700;
	white-space: nowrap;
	color: var(--pm-muted);
	background: var(--pm-bg);
}

.pm-table td {
	padding: 10px 12px;
	border-top: 1px solid #F1EBE2;
	white-space: nowrap;
}

.pm-table tr.active td {
	background: var(--pm-accent-tint);
}

.pm-table-empty {
	text-align: center;
	color: var(--pm-muted);
}

/* Ledger */
.pm-ledger-for {
	font-size: 13px;
	color: var(--pm-muted);
}

.pm-ledger-for strong {
	color: var(--pm-ink);
}

.pm-stats {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
	margin: 0;
}

.pm-stat {
	padding: 12px 14px;
	border-radius: 14px;
	background: var(--pm-bg);
}

.pm-stat dt {
	font-size: 12px;
	font-weight: 600;
	color: var(--pm-muted);
}

.pm-stat dd {
	margin: 2px 0 0;
	font-size: 16px;
	font-weight: 800;
}

.pm-ledger-filter {
	display: flex;
	align-items: flex-end;
	gap: 12px;
}

.pm-ledger-filter .pm-field {
	flex: 1;
}

.pm-ledger-filter .pm-btn {
	height: 38px;
}

.pm-ledger-totals {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	font-size: 13px;
	color: var(--pm-muted);
}

.pm-ledger-totals strong {
	color: var(--pm-ink);
}

.pm-grid-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* Nothing added yet (state charges) */
.pm-lines-empty {
	padding: 18px;
	border: 1px dashed var(--pm-line-strong);
	border-radius: 14px;
	font-size: 13px;
	text-align: center;
	color: var(--pm-muted);
}

@keyframes pm-slide {
	from { transform: translateX(40px); opacity: 0; }
	to { transform: none; opacity: 1; }
}

@keyframes pm-fade {
	from { opacity: 0; }
	to { opacity: 1; }
}

@media (max-width: 767.98px) {
	.pm-drawer {
		top: 0;
		right: 0;
		bottom: 0;
		width: 100%;
		border-radius: 0;
	}

	.pm-form-grid,
	.pm-toggles {
		grid-template-columns: minmax(0, 1fr);
	}

	.pm-drawer-main {
		flex-direction: column;
	}

	.pm-drawer-tabs {
		flex-direction: row;
		width: auto;
		padding: 10px 12px;
		border-right: 0;
		border-bottom: 1px solid #F1EBE2;
		overflow-x: auto;
	}

	.pm-stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pm-ledger-filter {
		flex-wrap: wrap;
	}

	.pm-span-2 {
		grid-column: auto;
	}
}

/* ===================================================================
   Login: split card — form on the left, brand panel on the right
   =================================================================== */
.auth-page {
	--auth-brand-bg: #1C1917;
	--auth-accent: #C2410C;
	--auth-accent-hover: #9A3412;
	--auth-accent-ring: rgba(194, 65, 12, .16);
	--auth-accent-soft: #FEF3E7;
	min-height: 100vh;
	font-family: var(--pm-font);
	color: var(--pm-ink);
	background: var(--pm-bg);
}

.auth-wrapper {
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2rem 1rem;
}

.auth-card {
	display: flex;
	width: 100%;
	max-width: 1080px;
	min-height: 620px;
	overflow: hidden;
	border-radius: 20px;
	background: var(--pm-surface);
	box-shadow: 0 24px 60px rgba(28, 25, 23, .08);
}

.auth-form-side {
	flex: 1 1 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 3rem 2rem;
}

.auth-form-inner {
	width: 100%;
	max-width: 360px;
}

.auth-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	margin-bottom: 1.25rem;
	border-radius: 14px;
	font-size: 1.5rem;
	color: var(--auth-accent);
	background: var(--auth-accent-soft);
}

.auth-title {
	margin-bottom: .4rem;
	font-size: 1.75rem;
	font-weight: 800;
	letter-spacing: -.02em;
	color: var(--pm-ink);
}

.auth-subtitle {
	margin-bottom: 2rem;
	font-size: .95rem;
	color: var(--pm-muted);
}

.auth-page .form-label {
	margin-bottom: .45rem;
	font-size: .875rem;
	font-weight: 700;
	color: var(--pm-ink);
}

.auth-input {
	position: relative;
}

.auth-input .form-control {
	height: 44px;
	padding-left: 2.9rem;
	padding-right: 2.9rem;
	font-size: .95rem;
	color: var(--pm-ink);
	background-color: var(--pm-surface);
	border: 1px solid var(--pm-line-strong);
	border-radius: 12px;
	box-shadow: none;
	transition: border-color .15s, box-shadow .15s;
}

.auth-input .form-control::placeholder {
	color: var(--pm-faint);
}

.auth-input .form-control:hover {
	border-color: #D6CCBE;
}

.auth-input .form-control:focus {
	border-color: var(--auth-accent);
	box-shadow: 0 0 0 3px var(--auth-accent-ring);
}

.auth-input .form-control.is-invalid {
	background-image: none;
	border-color: var(--pm-danger);
}

.auth-input .form-control.is-invalid:focus {
	box-shadow: 0 0 0 3px rgba(220, 38, 38, .15);
}

/* Chrome autofill: keep the white field instead of the blue/yellow fill */
.auth-input .form-control:-webkit-autofill {
	-webkit-box-shadow: 0 0 0 1000px #FFFFFF inset;
	-webkit-text-fill-color: var(--pm-ink);
}

.auth-input .form-control:-webkit-autofill:focus {
	-webkit-box-shadow: 0 0 0 1000px #FFFFFF inset, 0 0 0 3px var(--auth-accent-ring);
}

.auth-input-icon {
	position: absolute;
	top: 50%;
	left: 1rem;
	transform: translateY(-50%);
	font-size: 1.25rem;
	line-height: 1;
	color: var(--pm-faint);
	pointer-events: none;
	transition: color .15s;
}

.auth-input:focus-within .auth-input-icon {
	color: var(--auth-accent);
}

.auth-input:has(.is-invalid) .auth-input-icon {
	color: var(--pm-danger);
}

.auth-input-toggle {
	position: absolute;
	top: 50%;
	right: .6rem;
	transform: translateY(-50%);
	display: inline-flex;
	padding: .4rem;
	border: 0;
	border-radius: 8px;
	font-size: 1.25rem;
	line-height: 1;
	color: var(--pm-faint);
	background: none;
	cursor: pointer;
}

.auth-input-toggle:hover,
.auth-input-toggle:focus-visible {
	outline: none;
	color: var(--auth-accent);
	background: var(--auth-accent-soft);
}

.auth-page .invalid-feedback {
	margin-top: .4rem;
	font-size: .8rem;
	font-weight: 600;
}

.auth-page .form-check-input {
	width: 1.1em;
	height: 1.1em;
	margin-top: .15em;
	border-color: #C9BFB2;
	background-color: var(--pm-surface);
	cursor: pointer;
}

.auth-page .form-check-input:checked {
	background-color: var(--auth-accent);
	border-color: var(--auth-accent);
}

.auth-page .form-check-input:focus {
	border-color: var(--auth-accent);
	box-shadow: 0 0 0 3px var(--auth-accent-ring);
}

.auth-page .form-check-label {
	font-size: .875rem;
	color: var(--pm-text);
	cursor: pointer;
}

.btn-auth {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	height: 46px;
	font-size: .95rem;
	font-weight: 700;
	color: #FFFFFF;
	background: var(--auth-accent);
	border: 0;
	border-radius: 12px;
	box-shadow: none;
	transition: background-color .2s, box-shadow .2s, transform .1s;
}

.btn-auth:hover {
	color: #FFFFFF;
	background: var(--auth-accent-hover);
	box-shadow: 0 8px 20px rgba(194, 65, 12, .25);
}

.btn-auth:focus-visible {
	color: #FFFFFF;
	background: var(--auth-accent-hover);
	box-shadow: 0 0 0 .25rem var(--auth-accent-ring);
}

.btn-auth:active {
	transform: translateY(1px);
}

.btn-auth:disabled {
	color: #FFFFFF;
	background: var(--auth-accent-hover);
	opacity: .85;
}

.btn-auth-label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	line-height: 1;
}

.btn-auth .btn-auth-arrow {
	flex: none;
	transition: transform .2s;
}

.btn-auth:hover .btn-auth-arrow {
	transform: translateX(3px);
}

/* Brand panel */
.auth-brand-side {
	position: relative;
	flex: 1 1 50%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 3rem;
	overflow: hidden;
	color: #FFFFFF;
	background: var(--auth-brand-bg);
}

.auth-brand-side::before,
.auth-brand-side::after {
	content: "";
	position: absolute;
	border-radius: 50%;
}

.auth-brand-side::before {
	top: -170px;
	right: -150px;
	width: 440px;
	height: 440px;
	border: 1px solid rgba(253, 186, 116, .14);
}

.auth-brand-side::after {
	bottom: -130px;
	left: -110px;
	width: 320px;
	height: 320px;
	background: rgba(194, 65, 12, .14);
}

.auth-brand {
	position: relative;
	display: flex;
	align-items: center;
	gap: 1.1rem;
}

.auth-brand-mark {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 72px;
	height: 72px;
	flex-shrink: 0;
	border-radius: 20px;
	font-size: 2rem;
	font-weight: 800;
	color: #FFFFFF;
	background: var(--auth-accent);
}

.auth-brand-name {
	font-size: 2.4rem;
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.auth-brand-sub {
	font-size: 1.5rem;
	line-height: 1.2;
	color: #FDBA74;
}

.auth-brand-tagline {
	position: relative;
	margin: 1.75rem 0 0;
	text-align: center;
	color: var(--pm-faint);
}

.auth-brand-copy {
	position: absolute;
	bottom: 1.25rem;
	margin: 0;
	font-size: .8rem;
	color: #78716C;
}

.auth-mobile-brand {
	display: none;
	align-items: center;
	gap: .6rem;
	margin-bottom: 2rem;
	font-size: 1.1rem;
	font-weight: 800;
	color: var(--pm-ink);
}

.auth-mobile-brand .auth-brand-mark {
	width: 40px;
	height: 40px;
	border-radius: 12px;
	font-size: 1.1rem;
}

@media (max-width: 991.98px) {
	.auth-card {
		max-width: 480px;
		min-height: 0;
	}

	.auth-brand-side,
	.auth-badge {
		display: none;
	}

	.auth-mobile-brand {
		display: flex;
	}
}

@media (max-width: 575.98px) {
	.auth-form-side {
		padding: 2.5rem 1.5rem;
	}
}

.pm-dash-lead {
	font-size: 14px;
	color: var(--pm-muted);
}

.pm-dash-stats {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}

.pm-dash-stat,
.pm-dash-card {
	border: 1px solid var(--pm-line);
	border-radius: 14px;
	background: var(--pm-surface);
	box-shadow: 0 1px 2px rgba(28, 25, 23, .04);
}

.pm-dash-stat {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 18px 20px;
}

.pm-dash-stat-label {
	font-size: 13px;
	font-weight: 600;
	color: var(--pm-muted);
}

.pm-dash-stat-value {
	font-size: 30px;
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -.02em;
	color: var(--pm-ink);
}

.pm-text-accent {
	color: var(--pm-accent);
}

.pm-dash-stat-note {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 12.5px;
	color: var(--pm-muted);
}

.pm-dash-stat-note > i {
	font-size: 15px;
}

.pm-dash-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.75fr) minmax(0, 1.25fr);
	align-items: start;
	gap: 20px;
}

.pm-dash-col {
	display: flex;
	flex-direction: column;
	gap: 20px;
	min-width: 0;
}

.pm-dash-card {
	overflow: hidden;
}

.pm-dash-card-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 18px 22px;
	border-bottom: 1px solid var(--pm-line);
}

.pm-dash-card-title {
	margin: 0;
	font-size: 16px;
	font-weight: 800;
	color: var(--pm-ink);
}

.pm-dash-card-sub {
	margin: 2px 0 0;
	font-size: 13px;
	color: var(--pm-muted);
}

.pm-dash-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13.5px;
	font-weight: 700;
	color: var(--pm-accent);
	text-decoration: none;
	white-space: nowrap;
}

.pm-dash-link:hover {
	color: var(--pm-accent-dark);
}

.pm-dash-thead,
.pm-dash-tr {
	display: grid;
	align-items: center;
	gap: 14px;
	padding: 0 20px;
}

.pm-dash-subs .pm-dash-thead,
.pm-dash-subs .pm-dash-tr {
	grid-template-columns: 130px minmax(0, 1fr) 130px 56px 100px;
}

.pm-dash-renewals .pm-dash-thead,
.pm-dash-renewals .pm-dash-tr {
	grid-template-columns: minmax(0, 1fr) 58px 70px 100px;
}

.pm-dash-thead {
	min-height: 42px;
	border-bottom: 1px solid var(--pm-line);
	font-size: 12.5px;
	font-weight: 600;
	color: var(--pm-muted);
	background: var(--pm-bg);
}

.pm-dash-tr {
	min-height: 56px;
	padding-top: 8px;
	padding-bottom: 8px;
	border-top: 1px solid #F1EBE2;
	font-size: 14px;
	color: var(--pm-text);
}

.pm-dash-thead + .pm-dash-tr {
	border-top: 0;
}

.pm-dash-ref {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 13px;
	font-weight: 600;
	color: var(--pm-accent-dark);
}

.pm-dash-name {
	display: flex;
	flex-direction: column;
	gap: 1px;
	min-width: 0;
}

.pm-dash-name strong,
.pm-dash-insured {
	overflow: hidden;
	font-size: 14px;
	font-weight: 700;
	color: var(--pm-ink);
	white-space: nowrap;
	text-overflow: ellipsis;
}

.pm-dash-name small {
	font-size: 12.5px;
	color: var(--pm-muted);
}

.pm-dash-amount {
	font-weight: 700;
	text-align: right;
	color: var(--pm-ink);
	font-variant-numeric: tabular-nums;
}

.pm-dash-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	white-space: nowrap;
}

.pm-dash-dot::before {
	content: '';
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: currentColor;
}

.pm-tone-gray { color: #57534E; background: #F5F5F4; }
.pm-tone-amber { color: #9A3412; background: #FFEDD5; }
.pm-tone-blue { color: #075985; background: #E0F2FE; }
.pm-tone-red { color: #991B1B; background: #FEE2E2; }

.pm-dash-referral {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 18px 22px;
}

.pm-dash-referral-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}

.pm-dash-referral strong {
	font-size: 14.5px;
	color: var(--pm-ink);
}

.pm-dash-referral p {
	margin: 0;
	font-size: 13px;
	color: var(--pm-text);
}

.pm-dash-referral small {
	font-size: 12.5px;
	color: var(--pm-muted);
}

.pm-dash-recent {
	display: flex;
	flex-direction: column;
	padding: 8px 0;
}

.pm-dash-recent-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 22px;
}

.pm-dash-recent-item .pm-dash-name {
	flex: 1;
}

.pm-dash-avatar {
	flex: none;
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	font-size: 12px;
	font-weight: 800;
	color: var(--pm-accent-dark);
	background: var(--pm-accent-soft);
}

@media (max-width: 1199.98px) {
	.pm-dash-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.pm-dash-stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767.98px) {
	.pm-dash-stats {
		grid-template-columns: minmax(0, 1fr);
	}

	.pm-dash-table {
		overflow-x: auto;
	}

	.pm-dash-subs .pm-dash-thead,
	.pm-dash-subs .pm-dash-tr {
		min-width: 600px;
	}

	.pm-dash-renewals .pm-dash-thead,
	.pm-dash-renewals .pm-dash-tr {
		min-width: 400px;
	}
}

.pm-filter-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 12px;
}

.pm-filter-bar .pm-field {
	flex: 1 1 260px;
	max-width: 380px;
}

.pm-filter-actions {
	display: flex;
	gap: 10px;
}

.pm-rows-scroll {
	overflow-x: auto;
}

.pm-rows-scroll > .pm-row-head,
.pm-rows-scroll > .pm-row {
	min-width: 1340px;
}

.pm-rows-wrap .pm-name small {
	white-space: normal;
	overflow-wrap: anywhere;
}

.pm-file {
	padding-top: 8px;
}

.pm-file-note {
	font-size: 12px;
	color: var(--pm-muted);
}

.pm-file-current,
.pm-file-link {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 12.5px;
	font-weight: 600;
	color: var(--pm-accent);
	text-decoration: none;
}

.pm-file-current:hover,
.pm-file-link:hover {
	color: var(--pm-accent-dark);
	text-decoration: underline;
}

@media (max-width: 991.98px) {
	.pm-rows-scroll > .pm-row-head,
	.pm-rows-scroll > .pm-row {
		min-width: 0;
	}
}

.pm-label-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}

.pm-label-actions {
	display: flex;
	gap: 10px;
}

.pm-label-actions a {
	font-size: 18px;
	line-height: 1;
	color: var(--pm-accent);
}

.pm-label-actions a:hover {
	color: var(--pm-accent-dark);
}
