.psf-portal {
	--psf-navy: #17365d;
	--psf-ink: #1f2937;
	--psf-muted: #64748b;
	--psf-border: #d9e2ec;
	--psf-surface: #ffffff;
	--psf-soft: #f6f8fb;
	--psf-accent: #2563a8;
	--psf-success: #16794c;
	--psf-warning: #9a6500;
	--psf-danger: #b42318;

	color: var(--psf-ink);
	font-family: inherit;
	font-size: 16px;
	letter-spacing: 0;
	line-height: 1.5;
}

.psf-portal *,
.psf-portal *::before,
.psf-portal *::after {
	box-sizing: border-box;
	letter-spacing: 0;
}

.psf-portal h1,
.psf-portal h2,
.psf-portal h3,
.psf-portal h4 {
	color: var(--psf-navy);
	font-family: inherit;
	font-weight: 700;
	line-height: 1.25;
	margin: 0 0 0.75rem;
}

.psf-portal h1 {
	font-size: 2rem;
}

.psf-portal h2 {
	font-size: 1.6rem;
}

.psf-portal h3 {
	font-size: 1.2rem;
}

.psf-portal h4 {
	font-size: 1rem;
}

.psf-portal p,
.psf-portal ul,
.psf-portal ol {
	margin: 0 0 1rem;
}

.psf-portal a {
	color: var(--psf-accent);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

.psf-portal.psf-portal-dashboard {
	margin: 0 auto;
	max-width: 1180px;
	padding: 1.25rem 0;
}

.psf-portal.psf-portal-page {
	margin: 0 auto;
	max-width: 1280px;
}

.psf-portal .psf-portal-page-header {
	background: #ffffff;
	border: 1px solid var(--psf-border);
	border-radius: 8px;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
	margin: 0 0 1rem;
	padding: 1rem;
}

.psf-portal .psf-portal-page-title {
	font-size: 1.75rem;
	margin-bottom: 0.35rem;
}

.psf-portal .psf-portal-page-subtitle {
	color: var(--psf-muted);
	font-size: 0.96rem;
	margin: 0;
	max-width: 760px;
}

.psf-portal .psf-portal-header {
	align-items: flex-start;
	background: var(--psf-surface);
	border: 1px solid var(--psf-border);
	border-radius: 8px;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	margin-bottom: 1rem;
	padding: 1rem;
}

.psf-portal .psf-portal-eyebrow {
	color: var(--psf-muted);
	font-size: 0.8rem;
	font-weight: 700;
	margin-bottom: 0.25rem;
	text-transform: uppercase;
}

.psf-portal .psf-portal-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	justify-content: flex-end;
}

.psf-portal .psf-portal-nav a {
	background: var(--psf-soft);
	border: 1px solid var(--psf-border);
	border-radius: 8px;
	color: var(--psf-navy);
	display: inline-flex;
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1;
	padding: 0.65rem 0.75rem;
	text-decoration: none;
}

.psf-portal .psf-portal-nav a:hover,
.psf-portal .psf-portal-nav a:focus {
	background: #eaf1f8;
	border-color: #b8cbe0;
	color: var(--psf-navy);
}

.psf-portal .psf-portal-section {
	margin: 0 0 1rem;
}

.psf-portal .psf-portal-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	margin: 0 0 1rem;
}

.psf-portal .psf-portal-section-heading {
	align-items: center;
	display: flex;
	justify-content: space-between;
	margin-bottom: 0.65rem;
}

.psf-portal .psf-portal-card,
.psf-portal section.psf-client-dashboard-section {
	background: var(--psf-surface);
	border: 1px solid var(--psf-border);
	border-radius: 8px;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
	max-width: 100%;
	overflow-x: auto;
	padding: 1rem;
}

.psf-portal .psf-portal-grid {
	display: grid;
	gap: 0.85rem;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}

.psf-portal .psf-portal-stat-card {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	min-height: 96px;
}

.psf-portal .psf-portal-stat-card span {
	color: var(--psf-muted);
	font-size: 0.85rem;
	font-weight: 650;
}

.psf-portal .psf-portal-stat-card strong {
	color: var(--psf-navy);
	font-size: 1.8rem;
	line-height: 1;
}

.psf-portal .psf-portal-filter {
	margin-bottom: 1rem;
}

.psf-portal .psf-portal-filter-grid {
	align-items: end;
	display: grid;
	gap: 0.85rem;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.psf-portal .psf-portal-filter p {
	margin: 0;
}

.psf-portal label {
	color: var(--psf-ink);
	display: block;
	font-size: 0.9rem;
	font-weight: 650;
	margin-bottom: 0.35rem;
}

.psf-portal input[type="text"],
.psf-portal input[type="number"],
.psf-portal input[type="date"],
.psf-portal input[type="email"],
.psf-portal select,
.psf-portal textarea {
	background: #ffffff;
	border: 1px solid var(--psf-border);
	border-radius: 8px;
	color: var(--psf-ink);
	font: inherit;
	line-height: 1.4;
	min-height: 2.55rem;
	padding: 0.55rem 0.7rem;
	width: 100%;
}

.psf-portal textarea {
	min-height: 7rem;
}

.psf-portal button,
.psf-portal input[type="submit"],
.psf-portal .button {
	align-items: center;
	background: var(--psf-navy);
	border: 1px solid var(--psf-navy);
	border-radius: 8px;
	color: #ffffff;
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-weight: 700;
	justify-content: center;
	line-height: 1;
	min-height: 2.55rem;
	padding: 0.65rem 0.9rem;
	text-decoration: none;
}

.psf-portal button:hover,
.psf-portal input[type="submit"]:hover,
.psf-portal .button:hover {
	background: #0f2948;
	color: #ffffff;
}

.psf-portal .psf-table-wrap,
.psf-portal .psf-portal-table-wrap,
.psf-portal [class*="-table-wrap"] {
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	width: 100%;
}

.psf-portal .psf-portal-table,
.psf-portal table {
	border-collapse: collapse;
	font-size: 0.9rem;
	margin: 0;
	min-width: 720px;
	table-layout: auto;
	width: 100%;
}

.psf-portal .psf-portal-table th,
.psf-portal .psf-portal-table td,
.psf-portal table th,
.psf-portal table td {
	border-bottom: 1px solid var(--psf-border);
	max-width: 24rem;
	padding: 0.56rem 0.6rem;
	text-align: left;
	vertical-align: top;
	white-space: normal;
	word-break: normal;
	overflow-wrap: anywhere;
}

.psf-portal .psf-portal-table th,
.psf-portal table th {
	background: #edf4fb;
	color: var(--psf-navy);
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0;
	text-transform: uppercase;
	white-space: nowrap;
}

.psf-portal .psf-portal-table td strong,
.psf-portal table td strong {
	color: #0f2f4a;
	font-weight: 750;
}

.psf-portal .psf-portal-table td small,
.psf-portal table td small {
	color: var(--psf-muted);
	display: inline-block;
	font-size: 0.78rem;
	line-height: 1.35;
	max-width: 18rem;
}

.psf-portal .psf-portal-table td:last-child,
.psf-portal table td:last-child {
	white-space: nowrap;
}

.psf-portal .psf-portal-table td:first-child,
.psf-portal table td:first-child {
	max-width: 20rem;
}

.psf-portal .psf-portal-table .psf-portal-empty,
.psf-portal table .psf-portal-empty {
	display: table-cell;
	white-space: normal;
}

.psf-portal .psf-portal-table tr:last-child td,
.psf-portal table tr:last-child td {
	border-bottom: 0;
}

.psf-portal .psf-portal-queues {
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr;
}

.psf-portal .psf-portal-empty {
	background: var(--psf-soft);
	border: 1px dashed var(--psf-border);
	border-radius: 8px;
	color: var(--psf-muted);
	font-size: 0.92rem;
	margin: 0;
	padding: 0.75rem 0.85rem;
	text-align: left;
}

.psf-portal .psf-master-queue-compact,
.psf-portal .psf-admin-dashboard-queue,
.psf-portal .psf-admin-intake-queue,
.psf-portal .psf-project-center-queue,
.psf-portal .psf-admin-permit-queue,
.psf-portal .psf-admin-document-index,
.psf-portal .psf-admin-task-queue,
.psf-portal .psf-content-review-queue,
.psf-portal .psf-billing-center,
.psf-portal .psf-reports-center {
	max-width: 100%;
	min-width: 0;
}

.psf-portal .psf-status-pill,
.psf-portal .psf-priority-pill {
	align-items: center;
	border-radius: 999px;
	display: inline-flex;
	font-size: 0.74rem;
	font-weight: 700;
	line-height: 1;
	padding: 0.28rem 0.5rem;
	white-space: nowrap;
}

.psf-portal .psf-portal-table a,
.psf-portal table a,
.psf-portal .psf-portal-actions a,
.psf-portal .psf-content-action-buttons a {
	font-size: 0.84rem;
	font-weight: 700;
}

.psf-portal .psf-portal-table button,
.psf-portal .psf-portal-table input[type="submit"],
.psf-portal table button,
.psf-portal table input[type="submit"],
.psf-portal .psf-portal-actions button,
.psf-portal .psf-portal-actions input[type="submit"],
.psf-portal .psf-content-action-buttons button {
	border-radius: 7px;
	font-size: 0.82rem;
	min-height: 2.1rem;
	padding: 0.45rem 0.62rem;
}

.psf-portal .psf-status-pill {
	background: #eaf1f8;
	color: var(--psf-navy);
}

.psf-portal .psf-status-pill.is-success,
.psf-portal .psf-priority-pill.is-low {
	background: #e9f7ef;
	color: var(--psf-success);
}

.psf-portal .psf-status-pill.is-warning,
.psf-portal .psf-priority-pill.is-normal,
.psf-portal .psf-priority-pill.is-high {
	background: #fff6df;
	color: var(--psf-warning);
}

.psf-portal .psf-status-pill.is-danger,
.psf-portal .psf-priority-pill.is-urgent {
	background: #fdecec;
	color: var(--psf-danger);
}

.psf-portal .psf-client-dashboard-section + .psf-client-dashboard-section {
	margin-top: 1rem;
}

.psf-portal.psf-client-element {
	margin: 0 0 1rem;
}

.psf-portal .psf-client-card {
	background: #ffffff;
	border: 1px solid var(--psf-border);
	border-radius: 8px;
	box-shadow: 0 8px 18px rgba(15, 23, 42, 0.05);
	padding: 1rem;
}

.psf-portal.psf-client-dashboard,
.psf-portal .psf-client-command-center {
	display: grid;
	gap: 1rem;
	max-width: 100%;
	overflow-x: hidden;
}

.psf-portal .psf-client-preview-notice {
	background: #eff6ff;
	border: 1px solid #bfdbfe;
	border-radius: 8px;
	color: #1e3a8a;
	font-size: 0.9rem;
	font-weight: 700;
	padding: 0.7rem 0.85rem;
}

.psf-portal .psf-client-dashboard-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: minmax(0, 1.45fr) minmax(280px, 0.85fr);
}

.psf-portal .psf-client-dashboard-main,
.psf-portal .psf-client-dashboard-side {
	display: grid;
	gap: 1rem;
	min-width: 0;
}

.psf-portal.psf-client-element > .psf-client-card,
.psf-portal.psf-client-element > .psf-client-dashboard-section,
.psf-portal.psf-client-element > .psf-client-row,
.psf-portal.psf-client-element > .psf-client-summary-cards {
	margin-bottom: 0;
}

.psf-portal .psf-client-sidebar,
.psf-portal .psf-client-sidebar-dark {
	background: #102944;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	color: #dbeafe;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	min-height: 100%;
	padding: 1rem;
}

.psf-portal .psf-client-sidebar .psf-client-brand,
.psf-portal .psf-client-sidebar-brand {
	border-bottom: 1px solid rgba(255, 255, 255, 0.14);
	display: flex;
	flex-direction: column;
	gap: 0.7rem;
	padding-bottom: 1rem;
}

.psf-portal .psf-client-sidebar-logo {
	align-items: center;
	display: flex;
	min-height: 42px;
}

.psf-portal .psf-client-logo {
	background: #ffffff;
	border-radius: 8px;
	display: block;
	height: auto;
	max-height: 56px;
	max-width: 150px;
	object-fit: contain;
	padding: 0.35rem;
	width: auto;
}

.psf-portal .psf-client-sidebar-logo strong {
	color: #ffffff;
	font-size: 1.35rem;
	line-height: 1;
}

.psf-portal .psf-client-portal-label,
.psf-portal .psf-client-sidebar-title {
	color: #b7c9dd;
	display: block;
	font-size: 0.85rem;
	font-weight: 700;
	text-transform: uppercase;
}

.psf-portal .psf-client-name,
.psf-portal .psf-client-sidebar-client {
	color: #ffffff;
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1.35;
	margin: 0.2rem 0 0;
	overflow-wrap: anywhere;
}

.psf-portal .psf-client-sidebar .psf-client-nav,
.psf-portal .psf-client-nav {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	width: 100%;
}

.psf-portal .psf-client-sidebar .psf-client-nav a,
.psf-portal .psf-client-sidebar .psf-client-nav button,
.psf-portal .psf-client-sidebar .psf-client-nav span,
.psf-portal .psf-client-nav-link,
.psf-portal .psf-client-nav .psf-nav-disabled {
	background: transparent;
	border: 0;
	border-radius: 8px;
	box-shadow: none;
	color: #dbeafe;
	display: block;
	font-size: 0.92rem;
	font-weight: 650;
	line-height: 1.25;
	padding: 0.62rem 0.7rem;
	text-align: left;
	text-decoration: none;
	width: 100%;
}

.psf-portal .psf-client-sidebar .psf-client-nav .psf-nav-disabled,
.psf-portal .psf-client-nav .psf-nav-disabled {
	opacity: 0.5;
}

.psf-portal .psf-client-sidebar .psf-client-nav a:hover,
.psf-portal .psf-client-sidebar .psf-client-nav a:focus,
.psf-portal .psf-client-sidebar .psf-client-nav button:hover,
.psf-portal .psf-client-sidebar .psf-client-nav button:focus,
.psf-portal .psf-client-nav-link:hover,
.psf-portal .psf-client-nav-link:focus,
.psf-portal .psf-client-nav-link.is-active {
	background: rgba(255, 255, 255, 0.11);
	color: #ffffff;
}

.psf-portal .psf-client-sidebar .psf-client-nav-link.is-active,
.psf-portal .psf-client-nav-link.is-active {
	box-shadow: inset 3px 0 0 #60a5fa;
}

.psf-portal .psf-client-nav-logout {
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	margin-top: 0.35rem;
	padding-top: 0.8rem;
}

.psf-portal .psf-client-sidebar .psf-client-help-card,
.psf-portal .psf-client-help-card {
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 8px;
	margin-top: auto;
	padding: 0.85rem;
}

.psf-portal .psf-client-help-card strong {
	color: #ffffff;
	display: block;
	margin-bottom: 0.3rem;
}

.psf-portal .psf-client-help-card p {
	color: #c9d8e8;
	font-size: 0.85rem;
	margin: 0;
}

.psf-portal .psf-client-topbar {
	align-items: center;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
}

.psf-portal .psf-client-topbar h2 {
	margin-bottom: 0.25rem;
}

.psf-portal .psf-client-topbar p:last-child {
	color: var(--psf-muted);
	margin: 0;
}

.psf-portal .psf-client-topbar-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	justify-content: flex-end;
}

.psf-portal .psf-client-action-button {
	background: var(--psf-accent);
	border: 1px solid var(--psf-accent);
	border-radius: 8px;
	color: #ffffff;
	font-size: 0.9rem;
	font-weight: 800;
	padding: 0.72rem 0.9rem;
	text-decoration: none;
}

.psf-portal .psf-client-action-button:hover,
.psf-portal .psf-client-action-button:focus {
	background: #0f5eb8;
	color: #ffffff;
}

.psf-portal .psf-client-action-secondary {
	background: #ffffff;
	border-color: var(--psf-border);
	color: var(--psf-navy);
}

.psf-portal .psf-client-action-secondary:hover,
.psf-portal .psf-client-action-secondary:focus {
	background: var(--psf-soft);
	color: var(--psf-navy);
}

.psf-portal .psf-client-action-button.psf-nav-disabled {
	opacity: 0.55;
}

.psf-portal .psf-client-section-header {
	align-items: flex-start;
	display: flex;
	gap: 0.75rem;
	justify-content: space-between;
	margin-bottom: 0.85rem;
}

.psf-portal .psf-client-section-header h3 {
	color: var(--psf-navy);
	font-size: 1rem;
	line-height: 1.25;
	margin: 0;
}

.psf-portal .psf-client-section-header h3 span {
	color: var(--psf-muted);
	font-size: 0.85rem;
	font-weight: 800;
}

.psf-portal .psf-client-section-header p {
	color: var(--psf-muted);
	font-size: 0.86rem;
	margin: 0.25rem 0 0;
}

.psf-portal .psf-client-item-list {
	display: grid;
	gap: 0.65rem;
}

.psf-portal .psf-client-item {
	align-items: center;
	background: #ffffff;
	border: 1px solid var(--psf-border);
	border-radius: 8px;
	color: inherit;
	display: grid;
	gap: 0.75rem;
	grid-template-columns: minmax(0, 1fr) auto;
	padding: 0.78rem 0.85rem;
	text-decoration: none;
}

.psf-portal .psf-client-item-link:hover,
.psf-portal .psf-client-item-link:focus {
	background: #f8fbff;
	border-color: #b8cbe0;
	box-shadow: 0 8px 18px rgba(15, 23, 42, 0.06);
	color: inherit;
}

.psf-portal .psf-client-item-main {
	min-width: 0;
}

.psf-portal .psf-client-item-title {
	color: var(--psf-navy);
	display: block;
	font-size: 0.94rem;
	line-height: 1.3;
	overflow-wrap: anywhere;
}

.psf-portal .psf-client-item-meta {
	color: var(--psf-muted);
	display: flex;
	flex-wrap: wrap;
	font-size: 0.8rem;
	gap: 0.3rem 0.55rem;
	margin-top: 0.25rem;
}

.psf-portal .psf-client-item-description {
	color: #334155;
	font-size: 0.84rem;
	line-height: 1.45;
	margin: 0.45rem 0 0;
}

.psf-portal .psf-client-badges,
.psf-portal .psf-client-item-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	justify-content: flex-end;
}

.psf-portal .psf-client-selected-project,
.psf-portal .psf-client-selected-permit {
	display: grid;
	gap: 1rem;
}

.psf-portal .psf-client-selected-project-overview,
.psf-portal .psf-client-selected-permit-overview {
	background: #f8fbff;
	border: 1px solid var(--psf-border);
	border-radius: 10px;
	display: grid;
	gap: 0.85rem;
	padding: 1rem;
}

.psf-portal .psf-client-selected-project-heading,
.psf-portal .psf-client-selected-permit-heading {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	justify-content: space-between;
}

.psf-portal .psf-client-selected-project-heading h3,
.psf-portal .psf-client-selected-permit-heading h3 {
	color: var(--psf-navy);
	font-size: 1.05rem;
	line-height: 1.25;
	margin: 0;
}

.psf-portal .psf-client-info-grid,
.psf-portal .psf-client-selected-project-grid,
.psf-portal .psf-client-selected-permit-grid {
	display: grid;
	gap: 0.75rem;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	max-width: 100%;
}

.psf-portal .psf-client-info-grid > div,
.psf-portal .psf-client-selected-project-notes,
.psf-portal .psf-client-selected-permit-notes,
.psf-portal .psf-client-project-subsection {
	background: #ffffff;
	border: 1px solid var(--psf-border);
	border-radius: 8px;
	padding: 0.8rem;
}

.psf-portal .psf-client-info-grid span,
.psf-portal .psf-client-selected-project-notes span,
.psf-portal .psf-client-selected-permit-notes span {
	color: var(--psf-muted);
	display: block;
	font-size: 0.75rem;
	font-weight: 800;
	margin-bottom: 0.25rem;
	text-transform: uppercase;
}

.psf-portal .psf-client-info-grid strong {
	color: var(--psf-navy);
	display: block;
	font-size: 0.9rem;
	overflow-wrap: anywhere;
}

.psf-portal .psf-client-selected-project-notes p,
.psf-portal .psf-client-selected-permit-notes p {
	color: #334155;
	font-size: 0.9rem;
	line-height: 1.5;
	margin: 0;
}

.psf-portal .psf-client-project-subsection {
	display: grid;
	gap: 0.65rem;
	min-width: 0;
}

.psf-portal .psf-client-project-subsection h4 {
	color: var(--psf-navy);
	font-size: 0.96rem;
	line-height: 1.25;
	margin: 0;
}

.psf-portal .psf-client-badge,
.psf-portal .psf-client-mini-button {
	align-items: center;
	border-radius: 999px;
	display: inline-flex;
	font-size: 0.72rem;
	font-weight: 800;
	line-height: 1;
	padding: 0.34rem 0.5rem;
	white-space: nowrap;
}

.psf-portal .psf-client-mini-button {
	background: var(--psf-accent);
	color: #ffffff;
	text-decoration: none;
}

.psf-portal .psf-client-badge.psf-risk-high {
	background: #fdecec;
	color: var(--psf-danger);
}

.psf-portal .psf-client-badge.psf-risk-medium {
	background: #fff7ed;
	color: #c2410c;
}

.psf-portal .psf-client-badge.psf-risk-low {
	background: #ecfdf3;
	color: #16803d;
}

.psf-portal .psf-client-badge.psf-risk-info {
	background: #eef6ff;
	color: #0f5eb8;
}

.psf-portal .psf-client-badge.psf-risk-neutral {
	background: var(--psf-soft);
	color: var(--psf-muted);
}

.psf-portal .psf-client-empty {
	background: var(--psf-soft);
	border: 1px dashed var(--psf-border);
	border-radius: 8px;
	color: var(--psf-muted);
	margin: 0;
	padding: 0.9rem;
}

.psf-portal .psf-client-detail-grid {
	display: grid;
	gap: 0.65rem;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.psf-portal .psf-client-detail-grid div {
	background: var(--psf-soft);
	border: 1px solid var(--psf-border);
	border-radius: 8px;
	padding: 0.72rem;
}

.psf-portal .psf-client-detail-grid span {
	color: var(--psf-muted);
	display: block;
	font-size: 0.72rem;
	font-weight: 800;
	margin-bottom: 0.25rem;
	text-transform: uppercase;
}

.psf-portal .psf-client-detail-grid strong {
	color: var(--psf-navy);
	display: block;
	font-size: 0.9rem;
	line-height: 1.3;
}

.psf-portal .psf-client-account-center-body {
	display: grid;
	gap: 1rem;
}

.psf-portal .psf-client-account-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
}

.psf-portal .psf-client-account-summary-card {
	min-height: 94px;
}

.psf-portal .psf-client-account-summary-card span {
	color: var(--psf-muted);
	font-size: 0.82rem;
	font-weight: 800;
}

.psf-portal .psf-client-account-summary-card strong {
	color: var(--psf-navy);
	display: block;
	font-size: 1.7rem;
	line-height: 1.1;
	margin-top: 0.35rem;
}

.psf-portal .psf-client-summary-cards {
	display: grid;
	gap: 0.85rem;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.psf-portal .psf-client-summary-card {
	display: grid;
	gap: 0.45rem;
	min-height: 96px;
}

.psf-portal .psf-client-summary-card span {
	color: var(--psf-muted);
	font-size: 0.82rem;
	font-weight: 800;
}

.psf-portal .psf-client-summary-card strong {
	color: var(--psf-navy);
	font-size: 1.8rem;
	line-height: 1;
}

.psf-portal .psf-client-row {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.psf-portal .psf-client-row-column {
	min-width: 0;
}

.psf-portal .psf-client-row-column .psf-client-dashboard-section {
	height: 100%;
	margin: 0;
}

.psf-portal.psf-master-element {
	margin: 0 0 1rem;
}

.psf-portal.psf-master-element > .psf-master-card,
.psf-portal.psf-master-element > .psf-master-section,
.psf-portal.psf-master-element > .psf-portal-filter {
	margin-bottom: 0;
}

.psf-portal.psf-master-element-sidebar .psf-master-sidebar,
.psf-portal.psf-master-element-topbar .psf-master-topbar {
	border-radius: 8px;
}

.psf-portal.psf-master-element-sidebar .psf-master-sidebar {
	min-height: 0;
}

.psf-portal.psf-master-element-topbar .psf-master-topbar {
	border: 1px solid var(--psf-border);
}

.psf-portal .psf-master-portal,
.psf-portal.psf-master-shell {
	background: #eef3f8;
	border: 1px solid var(--psf-border);
	border-radius: 8px;
	display: grid;
	grid-template-columns: 260px minmax(0, 1fr);
	min-height: 760px;
	overflow: hidden;
}

.psf-portal .psf-master-sidebar-wrap {
	background: #102944;
	min-width: 0;
}

.psf-portal .psf-master-sidebar {
	background: #102944;
	color: #dbeafe;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	padding: 1rem;
}

.psf-portal .psf-master-brand {
	border-bottom: 1px solid rgba(255, 255, 255, 0.14);
	display: grid;
	gap: 0.15rem;
	padding-bottom: 1rem;
}

.psf-portal .psf-master-logo {
	background: #ffffff;
	border-radius: 8px;
	display: block;
	height: auto;
	max-height: 56px;
	max-width: 150px;
	object-fit: contain;
	padding: 0.35rem;
	width: auto;
}

.psf-portal .psf-master-brand strong {
	color: #ffffff;
	font-size: 1.35rem;
	line-height: 1;
}

.psf-portal .psf-master-brand span {
	color: #b7c9dd;
	font-size: 0.85rem;
	font-weight: 700;
}

.psf-portal .psf-master-nav {
	display: grid;
	gap: 0.2rem;
}

.psf-portal .psf-master-nav a,
.psf-portal .psf-master-nav .psf-nav-disabled {
	border-radius: 8px;
	color: #dbeafe;
	font-size: 0.92rem;
	font-weight: 650;
	padding: 0.62rem 0.7rem;
	text-decoration: none;
}

.psf-portal .psf-master-nav .psf-nav-disabled {
	opacity: 0.5;
}

.psf-portal .psf-master-nav a:hover,
.psf-portal .psf-master-nav a:focus {
	background: rgba(255, 255, 255, 0.11);
	color: #ffffff;
}

.psf-portal .psf-master-help {
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 8px;
	margin-top: auto;
	padding: 0.85rem;
}

.psf-portal .psf-master-help strong {
	color: #ffffff;
	display: block;
	margin-bottom: 0.3rem;
}

.psf-portal .psf-master-help p {
	color: #c9d8e8;
	font-size: 0.85rem;
	margin: 0;
}

.psf-portal .psf-master-main,
.psf-portal .psf-master-main-wrap {
	min-width: 0;
}

.psf-portal .psf-master-topbar {
	align-items: center;
	background: #ffffff;
	border-bottom: 1px solid var(--psf-border);
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	padding: 1rem 1.15rem;
}

.psf-portal .psf-master-title {
	min-width: 260px;
}

.psf-portal .psf-master-title h2 {
	margin-bottom: 0.25rem;
}

.psf-portal .psf-master-title p:last-child {
	color: var(--psf-muted);
	font-size: 0.92rem;
	margin: 0;
	max-width: 660px;
}

.psf-portal .psf-master-topbar-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	justify-content: flex-end;
}

.psf-portal .psf-master-search {
	align-items: center;
	display: flex;
	gap: 0.4rem;
}

.psf-portal .psf-master-search input[type="search"] {
	background: var(--psf-soft);
	max-width: 320px;
	min-width: 260px;
}

.psf-portal .psf-master-search button {
	background: #ffffff;
	border: 1px solid var(--psf-border);
	border-radius: 8px;
	color: var(--psf-navy);
	cursor: pointer;
	font-size: 0.88rem;
	font-weight: 800;
	padding: 0.66rem 0.8rem;
}

.psf-portal .psf-master-icon-button {
	align-items: center;
	background: var(--psf-soft);
	border: 1px solid var(--psf-border);
	border-radius: 8px;
	color: var(--psf-navy);
	display: inline-flex;
	font-size: 0.85rem;
	font-weight: 800;
	height: 2.45rem;
	justify-content: center;
	position: relative;
	width: 2.45rem;
}

.psf-portal a.psf-master-icon-button {
	text-decoration: none;
}

.psf-portal a.psf-master-icon-button:hover,
.psf-portal a.psf-master-icon-button:focus,
.psf-portal .psf-master-search button:hover,
.psf-portal .psf-master-search button:focus {
	background: #eaf4ff;
	border-color: #bfdbfe;
}

.psf-portal .psf-master-icon-button.psf-nav-disabled {
	cursor: default;
	opacity: 0.55;
}

.psf-portal .psf-master-badge {
	align-items: center;
	background: var(--psf-accent);
	border-radius: 999px;
	color: #ffffff;
	display: inline-flex;
	font-size: 0.68rem;
	height: 1.05rem;
	justify-content: center;
	min-width: 1.05rem;
	padding: 0 0.25rem;
	position: absolute;
	right: -0.25rem;
	top: -0.25rem;
}

.psf-portal .psf-master-user {
	color: var(--psf-ink);
	font-size: 0.9rem;
	font-weight: 700;
}

.psf-portal .psf-master-action-button {
	background: var(--psf-accent);
	border-radius: 8px;
	color: #ffffff;
	font-size: 0.9rem;
	font-weight: 800;
	padding: 0.72rem 0.9rem;
	text-decoration: none;
}

.psf-portal .psf-master-action-secondary {
	background: #0f2f4a;
}

.psf-portal .psf-master-content,
.psf-portal .psf-master-content-wrap {
	display: grid;
	gap: 1rem;
	min-width: 0;
	max-width: 100%;
	padding: 1rem;
}

.psf-portal .psf-master-kpis {
	display: grid;
	gap: 0.85rem;
	grid-template-columns: repeat(6, minmax(0, 1fr));
}

.psf-portal .psf-main-dashboard .psf-master-content {
	max-width: 100%;
	overflow-x: hidden;
}

.psf-portal .psf-main-dashboard-grid {
	display: grid;
	gap: 1rem;
	margin-top: 1rem;
}

.psf-portal .psf-main-dashboard-grid-primary {
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1.35fr) minmax(0, 1fr);
}

.psf-portal .psf-main-dashboard-grid-secondary {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.psf-portal .psf-master-card {
	background: #ffffff;
	border: 1px solid var(--psf-border);
	border-radius: 8px;
	box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
	padding: 1rem;
}

.psf-portal .psf-master-kpi-card {
	display: grid;
	gap: 0.35rem;
	grid-template-columns: auto 1fr;
	min-height: 118px;
}

.psf-portal .psf-master-kpi-card span {
	color: var(--psf-muted);
	font-size: 0.8rem;
	font-weight: 800;
}

.psf-portal .psf-master-kpi-card strong {
	color: var(--psf-navy);
	font-size: 2rem;
	grid-column: 2;
	line-height: 1;
}

.psf-portal .psf-master-kpi-card small {
	color: var(--psf-muted);
	font-size: 0.75rem;
}

.psf-portal .psf-main-kpi-icon {
	align-items: center;
	align-self: start;
	background: #eff6ff;
	border-radius: 12px;
	color: #1d4ed8;
	display: inline-flex;
	font-size: 0.76rem;
	font-weight: 900;
	grid-row: 1 / span 3;
	height: 42px;
	justify-content: center;
	width: 42px;
}

.psf-portal .psf-main-kpi-label {
	color: var(--psf-ink);
	font-size: 0.8rem;
	font-weight: 800;
}

.psf-portal .psf-main-kpi-card a {
	color: #0b5bd3;
	font-size: 0.78rem;
	font-weight: 800;
	grid-column: 2;
	text-decoration: none;
}

.psf-portal .psf-main-kpi-card.psf-dashboard-risk-high .psf-main-kpi-icon {
	background: #fef2f2;
	color: #dc2626;
}

.psf-portal .psf-main-kpi-card.psf-dashboard-risk-medium .psf-main-kpi-icon {
	background: #fff7ed;
	color: #ea580c;
}

.psf-portal .psf-master-layout-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: minmax(0, 1.35fr) minmax(320px, 0.85fr);
}

.psf-portal .psf-master-section-header {
	align-items: flex-start;
	border-bottom: 1px solid var(--psf-border);
	display: flex;
	justify-content: space-between;
	margin-bottom: 0.85rem;
	padding-bottom: 0.75rem;
}

.psf-portal .psf-master-section-header h3 {
	margin-bottom: 0.25rem;
}

.psf-portal .psf-master-section-header p,
.psf-portal .psf-master-muted {
	color: var(--psf-muted);
	font-size: 0.88rem;
	margin: 0;
}

.psf-portal .psf-master-wide-section {
	min-width: 0;
}

.psf-portal .psf-master-tabs-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.psf-portal .psf-master-queue-compact {
	border-top: 0;
	padding-top: 0;
}

.psf-portal .psf-master-queue-compact:first-of-type {
	border-top: 0;
	padding-top: 0;
}

.psf-portal .psf-master-queue-compact h4 {
	font-size: 0.92rem;
	margin-bottom: 0.55rem;
}

.psf-portal .psf-master-queue-compact + .psf-master-queue-compact {
	margin-top: 0.9rem;
}

.psf-portal .psf-dashboard-list {
	display: grid;
	gap: 0.55rem;
	min-width: 0;
	width: 100%;
}

.psf-portal .psf-dashboard-item {
	align-items: center;
	background: var(--psf-soft);
	border: 1px solid var(--psf-border);
	border-left: 4px solid #9ca3af;
	border-radius: 8px;
	color: var(--psf-ink);
	display: grid;
	gap: 0.35rem;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 1.4fr) auto;
	min-width: 0;
	padding: 0.65rem 0.75rem;
	text-decoration: none;
	transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

.psf-portal .psf-dashboard-item-link::after {
	color: #94a3b8;
	content: ">";
	font-weight: 900;
	justify-self: end;
}

.psf-portal .psf-dashboard-item-link {
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1.25fr) auto auto;
}

.psf-portal a.psf-dashboard-item:hover,
.psf-portal a.psf-dashboard-item:focus {
	background: #ffffff;
	border-color: #cbd5e1;
	color: var(--psf-ink);
	transform: translateY(-1px);
}

.psf-portal .psf-dashboard-item-main {
	color: var(--psf-navy);
	font-size: 0.9rem;
	font-weight: 700;
	min-width: 0;
	overflow-wrap: anywhere;
}

.psf-portal .psf-dashboard-item-meta {
	align-items: center;
	color: var(--psf-muted);
	display: flex;
	flex-wrap: wrap;
	font-size: 0.8rem;
	gap: 0.35rem;
	min-width: 0;
}

.psf-portal .psf-dashboard-item-meta span {
	min-width: 0;
	overflow-wrap: anywhere;
}

.psf-portal .psf-dashboard-item-meta span + span::before {
	color: #cbd5e1;
	content: "/";
	margin-right: 0.35rem;
}

.psf-portal .psf-dashboard-item-status {
	background: #eef2f7;
	border: 1px solid #dbe3ee;
	border-radius: 999px;
	color: var(--psf-muted);
	font-size: 0.75rem;
	font-weight: 750;
	justify-self: end;
	line-height: 1.2;
	max-width: 11rem;
	padding: 0.25rem 0.55rem;
	text-align: center;
	white-space: normal;
}

.psf-portal .psf-risk-high {
	border-left-color: #dc2626;
}

.psf-portal .psf-risk-high .psf-dashboard-item-status {
	background: #fef2f2;
	border-color: #fecaca;
	color: #991b1b;
}

.psf-portal .psf-risk-medium {
	border-left-color: #f97316;
}

.psf-portal .psf-risk-medium .psf-dashboard-item-status {
	background: #fff7ed;
	border-color: #fed7aa;
	color: #9a3412;
}

.psf-portal .psf-risk-low {
	border-left-color: #16a34a;
}

.psf-portal .psf-risk-low .psf-dashboard-item-status {
	background: #f0fdf4;
	border-color: #bbf7d0;
	color: #166534;
}

.psf-portal .psf-risk-info {
	border-left-color: #2563eb;
}

.psf-portal .psf-risk-info .psf-dashboard-item-status {
	background: #eff6ff;
	border-color: #bfdbfe;
	color: #1d4ed8;
}

.psf-portal .psf-risk-neutral {
	border-left-color: #94a3b8;
}

.psf-portal .psf-dashboard-metric-item {
	grid-template-columns: minmax(0, 1fr) auto;
}

.psf-portal .psf-dashboard-row-list {
	display: grid;
	gap: 0.65rem;
}

.psf-portal .psf-dashboard-row {
	align-items: center;
	background: #ffffff;
	border: 1px solid var(--psf-border);
	border-radius: 8px;
	color: var(--psf-ink);
	display: grid;
	gap: 0.7rem;
	grid-template-columns: auto minmax(0, 1fr) auto;
	padding: 0.65rem 0.7rem;
	text-decoration: none;
}

.psf-portal .psf-dashboard-row-icon {
	align-items: center;
	border-radius: 999px;
	display: inline-flex;
	font-size: 0.75rem;
	font-weight: 900;
	height: 24px;
	justify-content: center;
	width: 24px;
}

.psf-portal .psf-dashboard-row-title {
	display: grid;
	font-size: 0.88rem;
	font-weight: 700;
	gap: 0.18rem;
	min-width: 0;
}

.psf-portal .psf-dashboard-row-title small {
	color: #0b5bd3;
	font-size: 0.76rem;
	font-weight: 800;
}

.psf-portal .psf-dashboard-row-arrow {
	color: #94a3b8;
	font-weight: 900;
}

.psf-portal .psf-dashboard-risk-high .psf-dashboard-row-icon {
	background: #fef2f2;
	color: #dc2626;
}

.psf-portal .psf-dashboard-risk-medium .psf-dashboard-row-icon {
	background: #fff7ed;
	color: #ea580c;
}

.psf-portal .psf-dashboard-risk-info .psf-dashboard-row-icon,
.psf-portal .psf-dashboard-risk-neutral .psf-dashboard-row-icon {
	background: #eff6ff;
	color: #2563eb;
}

.psf-portal .psf-dashboard-count-badge {
	background: #ef4444;
	border-radius: 999px;
	color: #ffffff;
	display: inline-flex;
	font-size: 0.72rem;
	margin-left: 0.35rem;
	padding: 0.1rem 0.45rem;
	vertical-align: middle;
}

.psf-portal .psf-master-metric-list {
	display: grid;
	gap: 0.45rem;
	margin: 0;
	padding: 0;
}

.psf-portal .psf-master-metric-list li {
	align-items: center;
	background: var(--psf-soft);
	border: 1px solid var(--psf-border);
	border-radius: 8px;
	display: flex;
	gap: 0.75rem;
	justify-content: space-between;
	padding: 0.65rem 0.75rem;
}

.psf-portal .psf-master-metric-list span {
	color: var(--psf-ink);
	font-size: 0.9rem;
	font-weight: 650;
}

.psf-portal .psf-master-metric-list strong {
	color: var(--psf-navy);
	font-size: 1.1rem;
}

.psf-portal .psf-master-progress {
	background: var(--psf-soft);
	border-radius: 999px;
	height: 0.7rem;
	margin: 1rem 0 0.5rem;
	overflow: hidden;
}

.psf-portal .psf-master-progress span {
	background: linear-gradient(90deg, #2563a8, #16a085);
	display: block;
	height: 100%;
}

.psf-portal .psf-project-center {
	max-width: 100%;
	overflow-x: hidden;
}

.psf-portal .psf-project-center,
.psf-portal .psf-admin-project-center,
.psf-portal .psf-project-center-element {
	display: grid;
	gap: 1rem;
	min-width: 0;
}

.psf-portal .psf-project-center > h2 {
	color: var(--psf-navy);
	font-size: 1.35rem;
	margin: 0;
}

.psf-portal .psf-project-center .psf-portal-card,
.psf-portal .psf-project-center .psf-portal-section,
.psf-portal .psf-project-center .psf-master-kpis,
.psf-portal .psf-project-center .psf-master-kpi-card {
	min-width: 0;
	max-width: 100%;
}

.psf-portal .psf-project-center .psf-master-kpis {
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.psf-portal .psf-project-center .psf-master-kpi-card {
	min-height: 88px;
	overflow: hidden;
}

.psf-portal .psf-project-workspace-selector .psf-portal-filter {
	align-items: end;
	display: grid;
	gap: 0.85rem;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	max-width: 100%;
	min-width: 0;
}

.psf-portal .psf-project-workspace-selector .psf-portal-filter {
	display: block;
}

.psf-portal .psf-project-selector-grid {
	align-items: end;
	display: grid;
	gap: 0.85rem;
	grid-template-columns: minmax(180px, 1fr) minmax(220px, 1.4fr) auto;
	max-width: 100%;
	min-width: 0;
}

.psf-portal .psf-project-workspace-selector .psf-portal-filter p {
	min-width: 0;
	margin: 0;
}

.psf-portal .psf-project-selector-actions {
	white-space: nowrap;
}

.psf-portal .psf-project-pulse-grid {
	grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
}

.psf-portal .psf-project-pulse-card {
	align-content: center;
	display: grid;
	gap: 0.25rem;
	min-height: 82px;
}

.psf-portal .psf-project-pulse-card strong {
	color: var(--psf-muted);
	font-size: 0.78rem;
	line-height: 1.2;
	overflow-wrap: anywhere;
}

.psf-portal .psf-project-pulse-card span {
	color: var(--psf-navy);
	font-size: 1.35rem;
	font-weight: 850;
	line-height: 1;
	white-space: nowrap;
}

.psf-portal .psf-loaded-project-status {
	border-top: 1px solid var(--psf-border);
	display: grid;
	gap: 0.75rem;
	margin-top: 1rem;
	padding-top: 1rem;
}

.psf-portal .psf-loaded-project-status h4 {
	color: var(--psf-navy);
	font-size: 0.98rem;
	margin: 0;
}

.psf-portal .psf-loaded-project-status-grid {
	display: grid;
	gap: 0.6rem;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	min-width: 0;
}

.psf-portal .psf-loaded-project-status-item {
	background: var(--psf-soft);
	border: 1px solid var(--psf-border);
	border-radius: 8px;
	display: grid;
	gap: 0.25rem;
	min-width: 0;
	padding: 0.58rem 0.65rem;
}

.psf-portal .psf-loaded-project-status-item span {
	color: var(--psf-muted);
	font-size: 0.75rem;
	font-weight: 800;
}

.psf-portal .psf-loaded-project-status-item strong {
	color: var(--psf-ink);
	font-size: 0.9rem;
	overflow-wrap: anywhere;
}

.psf-portal .psf-project-workspace {
	display: grid;
	gap: 1rem;
	min-width: 0;
}

.psf-portal .psf-project-workspace-hero {
	align-items: center;
	background: linear-gradient(135deg, #f8fafc, #eef6fb);
	border: 1px solid var(--psf-border);
	border-radius: 8px;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	min-width: 0;
	padding: 1rem;
}

.psf-portal .psf-project-workspace-hero strong {
	color: var(--psf-navy);
	display: block;
	font-size: 1.25rem;
	overflow-wrap: anywhere;
}

.psf-portal .psf-project-workspace-hero span {
	color: var(--psf-muted);
	font-weight: 700;
}

.psf-portal .psf-project-workspace-hero small {
	color: var(--psf-muted);
	display: block;
	font-weight: 800;
	margin-top: 0.2rem;
}

.psf-portal .psf-project-workspace-hero .psf-portal-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	justify-content: flex-end;
}

.psf-portal .psf-project-budget-modal .psf-modal-panel,
.psf-portal .psf-project-task-modal .psf-modal-panel {
	max-width: min(940px, calc(100vw - 2rem));
	width: min(940px, calc(100vw - 2rem));
}

.psf-portal .psf-admin-document-upload-modal .psf-modal-panel,
.psf-portal .psf-permit-inspection-create-modal .psf-modal-panel,
.psf-portal .psf-billing-create-modal .psf-modal-panel,
.psf-portal .psf-client-action-modal .psf-modal-panel {
	max-width: min(900px, calc(100vw - 48px));
	width: min(900px, calc(100vw - 48px));
}

.psf-portal .psf-project-budget-form {
	display: grid;
	gap: 1rem;
}

.psf-portal .psf-project-budget-form h4 {
	color: var(--psf-navy);
	font-size: 0.98rem;
	margin: 0;
}

.psf-portal .psf-project-budget-form-grid {
	display: grid;
	gap: 0.75rem;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	min-width: 0;
}

.psf-portal .psf-project-budget-form-grid p {
	margin: 0;
	min-width: 0;
}

.psf-portal .psf-project-budget-form-grid input,
.psf-portal .psf-project-budget-form-grid select,
.psf-portal .psf-project-budget-form-grid textarea {
	width: 100%;
}

.psf-portal .psf-project-budget-wide {
	grid-column: 1 / -1;
}

.psf-portal .psf-project-budget-progress {
	display: grid;
	gap: 0.85rem;
	min-width: 0;
}

.psf-portal .psf-project-budget-summary {
	display: grid;
	gap: 0.6rem;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	margin: 0;
}

.psf-portal .psf-project-budget-summary div {
	background: var(--psf-soft);
	border: 1px solid var(--psf-border);
	border-radius: 8px;
	padding: 0.65rem;
}

.psf-portal .psf-project-budget-summary dt {
	color: var(--psf-muted);
	font-size: 0.76rem;
	font-weight: 800;
	margin: 0 0 0.25rem;
}

.psf-portal .psf-project-budget-summary dd {
	color: var(--psf-ink);
	font-size: 0.95rem;
	font-weight: 800;
	margin: 0;
	overflow-wrap: anywhere;
}

.psf-portal .psf-project-budget-progress h5 {
	color: var(--psf-navy);
	font-size: 0.95rem;
	margin: 0;
}

.psf-portal .psf-project-milestone-table {
	font-size: 0.84rem;
	min-width: 760px;
}

.psf-portal .psf-project-milestone-table th,
.psf-portal .psf-project-milestone-table td {
	padding: 0.55rem 0.5rem;
	vertical-align: top;
}

.psf-portal .psf-project-showpiece-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
	max-width: 100%;
	min-width: 0;
}

.psf-portal .psf-project-showpiece-grid > .psf-project-snapshot-section {
	display: grid;
	min-width: 0;
}

.psf-portal .psf-project-department-overview-element,
.psf-portal .psf-project-department-overview {
	max-width: 100%;
	min-width: 0;
}

.psf-portal .psf-project-department-overview .psf-project-metric-list {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr));
}

.psf-portal .psf-project-snapshot {
	display: grid;
	gap: 0.85rem;
	height: 100%;
	min-width: 0;
}

.psf-portal .psf-project-snapshot-header {
	border-bottom: 1px solid var(--psf-border);
	padding-bottom: 0.65rem;
}

.psf-portal .psf-project-snapshot-header h4 {
	color: var(--psf-navy);
	font-size: 1rem;
	margin: 0 0 0.25rem;
	overflow-wrap: anywhere;
}

.psf-portal .psf-project-snapshot-header p {
	color: var(--psf-muted);
	font-size: 0.84rem;
	margin: 0;
}

.psf-portal .psf-project-metric-list {
	display: grid;
	gap: 0.45rem;
	margin: 0;
	min-width: 0;
}

.psf-portal .psf-project-metric {
	align-items: center;
	background: var(--psf-soft);
	border: 1px solid var(--psf-border);
	border-radius: 8px;
	display: flex;
	gap: 0.75rem;
	justify-content: space-between;
	min-width: 0;
	padding: 0.6rem 0.7rem;
}

.psf-portal .psf-project-metric dt {
	color: var(--psf-muted);
	font-size: 0.82rem;
	font-weight: 800;
	margin: 0;
	min-width: 0;
	overflow-wrap: anywhere;
}

.psf-portal .psf-project-metric dd {
	color: var(--psf-ink);
	font-size: 0.9rem;
	font-weight: 750;
	margin: 0;
	min-width: 0;
	overflow-wrap: anywhere;
	text-align: right;
}

.psf-portal .psf-project-center-queue {
	overflow: hidden;
}

.psf-portal .psf-project-center-queue h3 {
	color: var(--psf-navy);
	font-size: 1.08rem;
	margin: 0 0 0.75rem;
}

.psf-portal .psf-project-table-wrap {
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.psf-portal .psf-project-queue-table {
	font-size: 0.84rem;
	min-width: 1180px;
	table-layout: auto;
}

.psf-portal .psf-project-queue-table th,
.psf-portal .psf-project-queue-table td {
	padding: 0.55rem 0.5rem;
	white-space: nowrap;
}

.psf-portal .psf-project-queue-table thead th {
	position: sticky;
	top: 0;
	z-index: 1;
}

.psf-portal .psf-project-queue-table td:first-child,
.psf-portal .psf-project-queue-table th:first-child {
	min-width: 190px;
	white-space: normal;
}

.psf-portal .psf-project-queue-table td:nth-child(12),
.psf-portal .psf-project-queue-table th:nth-child(12),
.psf-portal .psf-project-queue-table td:nth-child(14),
.psf-portal .psf-project-queue-table th:nth-child(14) {
	max-width: 180px;
	white-space: normal;
}

.psf-portal .psf-project-queue-table .psf-portal-actions,
.psf-portal .psf-project-queue-table td:last-child {
	min-width: 150px;
	white-space: normal;
}

.psf-portal .psf-project-module-placeholder {
	background: #f8fafc;
	border: 1px dashed #b7c7d6;
	border-radius: 8px;
	display: grid;
	gap: 0.25rem;
	margin-top: 0.75rem;
	padding: 0.75rem;
}

.psf-portal .psf-project-module-placeholder strong {
	color: var(--psf-navy);
	font-size: 0.9rem;
}

.psf-portal .psf-project-module-placeholder span {
	color: var(--psf-muted);
	font-size: 0.84rem;
}

.psf-portal .psf-client-compliance-kpi-grid,
.psf-portal .psf-client-compliance-grid,
.psf-portal .psf-client-compliance-form-grid {
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.psf-portal .psf-client-compliance-kpi-card,
.psf-portal .psf-client-compliance-card {
	min-width: 0;
}

.psf-portal .psf-client-compliance-kpi-card {
	align-content: center;
	display: grid;
	gap: 0.35rem;
	min-height: 92px;
}

.psf-portal .psf-client-compliance-kpi-card span,
.psf-portal .psf-client-compliance-card dt {
	color: var(--psf-muted);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0;
	text-transform: uppercase;
}

.psf-portal .psf-client-compliance-kpi-card strong {
	color: var(--psf-navy);
	font-size: 1.65rem;
	line-height: 1;
}

.psf-portal .psf-client-compliance-card h4 {
	color: var(--psf-navy);
	font-size: 1rem;
	margin: 0 0 0.55rem;
}

.psf-portal .psf-client-compliance-card dl {
	display: grid;
	gap: 0.55rem;
	margin: 0.8rem 0 0;
}

.psf-portal .psf-client-compliance-card dl div {
	align-items: start;
	display: grid;
	gap: 0.35rem;
	grid-template-columns: minmax(90px, 0.75fr) minmax(0, 1fr);
}

.psf-portal .psf-client-compliance-card dd {
	margin: 0;
	min-width: 0;
	overflow-wrap: anywhere;
}

.psf-portal .psf-compliance-status-current {
	background: #dcfce7;
	color: #166534;
}

.psf-portal .psf-compliance-status-expiring-soon {
	background: #fef3c7;
	color: #92400e;
}

.psf-portal .psf-compliance-status-expired {
	background: #fee2e2;
	color: #991b1b;
}

.psf-portal .psf-compliance-status-not-set {
	background: #e5e7eb;
	color: #374151;
}

.psf-portal .psf-client-compliance-settings {
	border: 1px solid var(--psf-border);
	border-radius: 8px;
	margin: 1rem 0;
	padding: 1rem;
}

.psf-portal .psf-client-compliance-settings legend {
	color: var(--psf-navy);
	font-weight: 800;
	padding: 0 0.35rem;
}

.psf-portal .psf-client-ahj-registrations .psf-portal-table-wrap {
	max-width: 100%;
	overflow-x: auto;
}

.psf-portal .psf-admin-permits {
	max-width: 100%;
	overflow-x: hidden;
}

.psf-portal .psf-admin-permit-element {
	margin-bottom: 1rem;
}

.psf-portal .psf-admin-permit-kpi-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}

.psf-portal .psf-admin-permit-kpi-card {
	align-content: center;
	display: grid;
	gap: 0.35rem;
	min-height: 92px;
	min-width: 0;
}

.psf-portal .psf-admin-permit-kpi-card span {
	color: var(--psf-muted);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0;
	text-transform: uppercase;
}

.psf-portal .psf-admin-permit-kpi-card strong {
	color: var(--psf-navy);
	font-size: 1.65rem;
	line-height: 1;
}

.psf-portal .psf-admin-permit-selector-grid {
	align-items: end;
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(4, minmax(160px, 1fr));
}

.psf-portal .psf-admin-permit-selector-grid p {
	margin: 0;
	min-width: 0;
}

.psf-portal .psf-admin-permit-selector select {
	max-width: 100%;
	width: 100%;
}

.psf-portal .psf-admin-permit-upload {
	background: #f8fafc;
	border: 1px solid var(--psf-border);
	margin: 0 0 1rem;
	padding: 1rem;
}

.psf-portal .psf-admin-permit-upload h4 {
	color: var(--psf-navy);
	font-size: 1rem;
	margin: 0 0 0.75rem;
}

.psf-portal .psf-admin-permit-upload-grid {
	align-items: end;
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(3, minmax(160px, 1fr));
}

.psf-portal .psf-admin-permit-upload-grid p {
	margin: 0;
	min-width: 0;
}

.psf-portal .psf-admin-permit-upload-grid select,
.psf-portal .psf-admin-permit-upload-grid input,
.psf-portal .psf-admin-permit-upload-grid textarea,
.psf-portal .psf-inspection-update-form select,
.psf-portal .psf-inspection-update-form input,
.psf-portal .psf-inspection-update-form textarea {
	max-width: 100%;
	width: 100%;
}

.psf-portal .psf-admin-permit-upload-notes {
	grid-column: 1 / -1;
}

.psf-portal .psf-loaded-permit-status {
	background: #f8fafc;
	border: 1px solid var(--psf-border);
	border-radius: 8px;
	margin-top: 1rem;
	padding: 1rem;
}

.psf-portal .psf-loaded-permit-status h4 {
	color: var(--psf-navy);
	font-size: 1rem;
	margin: 0 0 0.75rem;
}

.psf-portal .psf-loaded-permit-status-grid {
	display: grid;
	gap: 0.75rem;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

.psf-portal .psf-loaded-permit-status-item {
	background: #fff;
	border: 1px solid var(--psf-border);
	border-radius: 8px;
	display: grid;
	gap: 0.25rem;
	min-width: 0;
	padding: 0.75rem;
}

.psf-portal .psf-loaded-permit-status-item span {
	color: var(--psf-muted);
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0;
	text-transform: uppercase;
}

.psf-portal .psf-loaded-permit-status-item strong {
	color: var(--psf-navy);
	font-size: 0.95rem;
	line-height: 1.25;
	overflow-wrap: anywhere;
}

.psf-portal .psf-admin-permit-table-wrap {
	max-width: 100%;
	overflow-x: auto;
}

.psf-portal .psf-admin-permit-table {
	min-width: 920px;
}

.psf-portal .psf-admin-document-index-table {
	min-width: 1120px;
}

.psf-portal .psf-admin-permit-table th,
.psf-portal .psf-admin-permit-table td {
	font-size: 0.86rem;
	vertical-align: top;
}

.psf-portal .psf-admin-permit-table td:first-child,
.psf-portal .psf-admin-permit-table th:first-child {
	min-width: 190px;
}

.psf-portal .psf-admin-permit-inspection-table {
	min-width: 1120px;
}

.psf-portal .psf-inspection-update-form {
	display: grid;
	gap: 0.65rem;
	min-width: 220px;
}

.psf-portal .psf-inspection-update-form p {
	margin: 0;
}

.psf-portal .psf-admin-permit-workspace-hero {
	align-items: center;
	background: #f8fafc;
	border: 1px solid var(--psf-border);
	border-radius: 8px;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: space-between;
	margin-bottom: 1rem;
	padding: 1rem;
}

.psf-portal .psf-admin-permit-workspace-hero span {
	color: var(--psf-muted);
	display: block;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0;
	text-transform: uppercase;
}

.psf-portal .psf-admin-permit-workspace-hero strong {
	color: var(--psf-navy);
	display: block;
	font-size: 1.15rem;
	line-height: 1.25;
}

.psf-portal .psf-admin-permit-metric-list {
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.psf-portal .psf-task-management-center,
.psf-portal .psf-admin-task-element {
	max-width: 100%;
	min-width: 0;
	overflow-x: hidden;
}

.psf-portal .psf-task-kpi-grid,
.psf-portal .psf-task-schedule-grid,
.psf-portal .psf-task-workspace-grid {
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

.psf-portal .psf-admin-task-table {
	min-width: 980px;
}

.psf-portal .psf-task-table-wrap {
	max-width: 100%;
	overflow-x: auto;
}

.psf-portal .psf-admin-task-workspace-hero {
	align-items: center;
	background: #f8fafc;
	border: 1px solid var(--psf-border);
	border-radius: 8px;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: space-between;
	margin-bottom: 1rem;
	padding: 1rem;
}

.psf-portal .psf-admin-task-workspace-hero span,
.psf-portal .psf-task-workspace-grid span {
	color: var(--psf-muted);
	font-size: 0.74rem;
	font-weight: 800;
	text-transform: uppercase;
}

.psf-portal .psf-admin-task-workspace-hero strong,
.psf-portal .psf-task-workspace-grid strong {
	color: var(--psf-navy);
	overflow-wrap: anywhere;
}

.psf-portal .psf-task-workspace-support-grid {
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	margin-bottom: 1rem;
}

.psf-portal .psf-task-notes-panel,
.psf-portal .psf-task-relationships-panel {
	display: grid;
	gap: 0.75rem;
}

.psf-portal .psf-task-notes-panel span,
.psf-portal .psf-task-relationships-panel dt {
	color: var(--psf-muted);
	font-size: 0.74rem;
	font-weight: 800;
	margin: 0 0 0.2rem;
	text-transform: uppercase;
}

.psf-portal .psf-task-notes-panel p,
.psf-portal .psf-task-relationships-panel dd {
	color: var(--psf-text);
	margin: 0;
	overflow-wrap: anywhere;
}

.psf-portal .psf-task-relationships-panel div {
	border-bottom: 1px solid var(--psf-border);
	padding-bottom: 0.55rem;
}

.psf-portal .psf-task-relationships-panel div:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.psf-portal .psf-fpt-pro {
	max-width: 100%;
	min-width: 0;
	overflow-x: hidden;
}

.psf-portal .psf-fpt-kpi-grid,
.psf-portal .psf-fpt-system-health-grid {
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}

.psf-portal .psf-fpt-card strong {
	overflow-wrap: anywhere;
}

.psf-portal .psf-fpt-generated-label {
	color: #34506b;
	font-weight: 600;
}

.psf-portal .psf-fpt-table-wrap {
	max-width: 100%;
	overflow-x: auto;
}

.psf-portal .psf-fpt-review-table {
	min-width: 940px;
	table-layout: auto;
}

.psf-portal .psf-fpt-review-list td {
	max-width: 180px;
	vertical-align: middle;
}

.psf-portal .psf-fpt-review-list td:first-child {
	max-width: 240px;
}

.psf-portal .psf-fpt-review-title {
	display: inline-block;
	max-width: 100%;
	overflow-wrap: anywhere;
}

.psf-portal .psf-fpt-review-row small {
	color: var(--psf-muted);
	font-size: 0.76rem;
}

.psf-portal .psf-fpt-review-modal .psf-modal-panel {
	max-height: min(86vh, 920px);
	max-width: min(980px, calc(100vw - 32px));
	overflow-y: auto;
	width: min(980px, calc(100vw - 32px));
}

.psf-portal .psf-fpt-review-modal-body {
	display: grid;
	gap: 1rem;
}

.psf-portal .psf-fpt-review-modal-grid {
	display: grid;
	gap: 0.7rem;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

.psf-portal .psf-fpt-review-modal-grid div {
	background: var(--psf-soft);
	border: 1px solid var(--psf-border);
	border-radius: 8px;
	padding: 0.65rem;
}

.psf-portal .psf-fpt-review-modal-grid dt {
	color: var(--psf-muted);
	font-size: 0.74rem;
	font-weight: 800;
	margin: 0 0 0.2rem;
	text-transform: uppercase;
}

.psf-portal .psf-fpt-review-modal-grid dd {
	color: var(--psf-ink);
	font-size: 0.9rem;
	font-weight: 650;
	margin: 0;
	overflow-wrap: anywhere;
}

.psf-portal .psf-fpt-code-details {
	display: grid;
	gap: 0.55rem;
}

.psf-portal .psf-fpt-code-details h4,
.psf-portal .psf-fpt-review-actions h4 {
	margin: 0.55rem 0 0;
}

.psf-portal .psf-fpt-code-details p {
	margin: 0;
	overflow-wrap: anywhere;
}

.psf-portal .psf-fpt-review-actions {
	border-top: 1px solid var(--psf-border);
	margin-top: 1rem;
	padding-top: 1rem;
}

.psf-portal .psf-fpt-review-actions .psf-fpt-action-stack {
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	min-width: 0;
}

.psf-portal .psf-fpt-review-actions .psf-fpt-action-form textarea {
	min-height: 74px;
	width: 100%;
}

.psf-portal .psf-risk-pill.is-low {
	background: #e8f7ee;
	color: #116036;
}

.psf-portal .psf-risk-pill.is-medium {
	background: #fff7d6;
	color: #7a5600;
}

.psf-portal .psf-risk-pill.is-high {
	background: #fff0e5;
	color: #9a3d00;
}

.psf-portal .psf-risk-pill.is-critical {
	background: #ffe8e8;
	color: #9d1c1c;
}

.psf-portal .psf-fpt-action-stack {
	display: grid;
	gap: 0.45rem;
	min-width: 180px;
}

.psf-portal .psf-fpt-action-form {
	display: grid;
	gap: 0.35rem;
}

.psf-portal .psf-fpt-action-form textarea {
	min-height: 54px;
}

.psf-portal .psf-fpt-ai-settings-form input[type="password"],
.psf-portal .psf-fpt-ai-settings-form input[type="text"] {
	width: min(100%, 420px);
}

.psf-portal .psf-fpt-permit-review-panel {
	margin: 16px 0;
	padding: 16px;
	border: 1px solid #d9e2ec;
	background: #f8fafc;
}

.psf-portal .psf-fpt-permit-review-form {
	margin-top: 12px;
}

.psf-portal .psf-fpt-permit-review-form button:disabled {
	cursor: not-allowed;
	opacity: 0.55;
}

.psf-portal .psf-fpt-code-research-form textarea,
.psf-portal .psf-fpt-code-research-form input[type="text"],
.psf-portal .psf-fpt-code-research-form input[type="url"],
.psf-portal .psf-fpt-code-research-form input[type="number"],
.psf-portal .psf-fpt-code-research-form select {
	max-width: 100%;
	width: 100%;
}

.psf-portal .psf-fpt-code-meta {
	font-size: 0.88rem;
	line-height: 1.45;
	margin: 0;
	padding-left: 1rem;
}

.psf-portal .psf-fpt-code-meta li {
	margin-bottom: 0.25rem;
}

.psf-portal .psf-fpt-api-profile .psf-project-metric-list {
	margin-top: 0.5rem;
}

.psf-portal .psf-task-checklist-editor {
	display: grid;
	gap: 0.5rem;
	margin-bottom: 0.65rem;
}

.psf-portal .psf-task-checklist-editor-row {
	align-items: center;
	display: grid;
	gap: 0.5rem;
	grid-template-columns: minmax(0, 1fr) auto;
}

.psf-portal .psf-task-checklist-editor-row label {
	align-items: center;
	display: inline-flex;
	gap: 0.35rem;
	margin: 0;
	white-space: nowrap;
}

.psf-portal .psf-billing-center {
	display: grid;
	gap: 1rem;
	max-width: 100%;
	overflow-x: hidden;
}

.psf-portal .psf-billing-center .psf-portal-card,
.psf-portal .psf-billing-center .psf-portal-section {
	min-width: 0;
}

.psf-portal .psf-billing-kpi-grid,
.psf-portal .psf-billing-workspace-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.psf-portal .psf-billing-workspace-grid {
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.psf-portal .psf-billing-mini-card {
	box-shadow: none;
}

.psf-portal .psf-billing-selector .psf-portal-filter,
.psf-portal .psf-pay-application-prepare .psf-portal-filter {
	align-items: end;
	display: grid;
	gap: 0.75rem;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.psf-portal .psf-billing-section-header {
	align-items: flex-start;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	margin-bottom: 1rem;
}

.psf-portal .psf-billing-section-header h3 {
	margin-bottom: 0.25rem;
}

.psf-portal .psf-billing-section-header p {
	color: #64748b;
	font-size: 0.9rem;
	margin: 0;
}

.psf-portal .psf-billing-create-form label,
.psf-portal .psf-billing-create-form input,
.psf-portal .psf-billing-create-form select,
.psf-portal .psf-billing-create-form textarea {
	width: 100%;
}

.psf-portal .psf-billing-form-grid {
	display: grid;
	gap: 0.85rem;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

.psf-portal .psf-billing-card-list {
	display: grid;
	gap: 0.75rem;
	margin-top: 1rem;
	max-width: 100%;
}

.psf-portal .psf-billing-list-card {
	background: #fff;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	display: grid;
	gap: 0.85rem;
	grid-template-columns: minmax(220px, 1.15fr) minmax(260px, 1.4fr) minmax(220px, 1fr);
	max-width: 100%;
	padding: 0.95rem;
}

.psf-portal .psf-billing-list-main {
	min-width: 0;
}

.psf-portal .psf-billing-list-main h4 {
	color: #0f172a;
	font-size: 1rem;
	line-height: 1.3;
	margin: 0 0 0.35rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.psf-portal .psf-billing-list-main p,
.psf-portal .psf-billing-list-meta {
	color: #64748b;
	font-size: 0.84rem;
	margin: 0;
}

.psf-portal .psf-billing-money-grid {
	display: grid;
	gap: 0.55rem;
	grid-template-columns: repeat(auto-fit, minmax(92px, 1fr));
}

.psf-portal .psf-billing-money-grid span {
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 7px;
	display: grid;
	gap: 0.2rem;
	padding: 0.55rem;
}

.psf-portal .psf-billing-money-grid strong {
	color: #0f172a;
	font-size: 0.92rem;
}

.psf-portal .psf-billing-money-grid small {
	color: #64748b;
	font-size: 0.72rem;
}

.psf-portal .psf-billing-list-meta {
	align-content: start;
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem 0.65rem;
}

.psf-portal .psf-pay-application-prepare textarea,
.psf-portal .psf-pay-application-prepare input,
.psf-portal .psf-pay-application-prepare select {
	max-width: 100%;
}

.psf-portal .psf-billing-table-wrap {
	max-width: 100%;
	overflow-x: auto;
}

.psf-portal .psf-billing-table-wrap table {
	min-width: 920px;
}

.psf-portal .psf-billing-task-list {
	display: grid;
	gap: 0.5rem;
	list-style: none;
	margin: 0.65rem 0 1rem;
	padding: 0;
}

.psf-portal .psf-billing-task-list li {
	align-items: center;
	background: var(--psf-soft);
	border: 1px solid var(--psf-border);
	border-radius: 8px;
	display: grid;
	gap: 0.5rem;
	grid-template-columns: minmax(0, 1fr) auto auto;
	padding: 0.65rem 0.75rem;
}

.psf-portal .psf-reports-center {
	display: grid;
	gap: 1rem;
	max-width: 100%;
	overflow-x: hidden;
}

.psf-portal .psf-reports-center .psf-portal-card,
.psf-portal .psf-reports-center .psf-portal-section {
	min-width: 0;
}

.psf-portal .psf-reports-kpi-grid,
.psf-portal .psf-reports-filter-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.psf-portal .psf-reports-filter-grid p {
	margin: 0;
}

.psf-portal .psf-reports-filter-grid input,
.psf-portal .psf-reports-filter-grid select {
	max-width: 100%;
	width: 100%;
}

.psf-portal .psf-reports-options {
	align-content: start;
	display: grid;
	gap: 0.35rem;
	grid-column: 1 / -1;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.psf-portal .psf-report-filter-summary {
	background: var(--psf-soft);
	border: 1px solid var(--psf-border);
	border-radius: 8px;
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem 1rem;
	margin: 1rem 0;
	padding: 0.75rem;
}

.psf-portal .psf-report-section {
	margin-top: 1rem;
}

.psf-portal .psf-reports-table-wrap {
	max-width: 100%;
	overflow-x: auto;
}

.psf-portal .psf-reports-table-wrap table {
	min-width: 760px;
}

.psf-portal .psf-report-export-form {
	margin-top: 1rem;
}

.psf-portal .psf-intake-center {
	max-width: 100%;
	overflow-x: hidden;
}

.psf-portal .psf-intake-kpi-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.psf-portal .psf-intake-kpi-card {
	background: #fff;
	border: 1px solid #d9e2ec;
	border-radius: 8px;
	box-shadow: 0 8px 22px rgba(15, 23, 42, 0.04);
	padding: 1rem;
}

.psf-portal .psf-intake-kpi-card span,
.psf-portal .psf-intake-workspace-grid span {
	color: #64748b;
	display: block;
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
}

.psf-portal .psf-intake-kpi-card strong {
	color: #0f2f4a;
	display: block;
	font-size: 2rem;
	line-height: 1.1;
	margin-top: 0.35rem;
}

.psf-portal .psf-intake-kpi-card small {
	color: #64748b;
	display: block;
	margin-top: 0.35rem;
}

.psf-portal .psf-intake-section-header {
	align-items: flex-start;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	margin-bottom: 1rem;
}

.psf-portal .psf-intake-section-header h3 {
	margin-bottom: 0.25rem;
}

.psf-portal .psf-intake-section-header p {
	color: #526173;
	margin: 0;
}

.psf-portal .psf-intake-filter {
	display: grid;
	gap: 0.85rem;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	margin-bottom: 1rem;
}

.psf-portal .psf-intake-filter label {
	color: #334155;
	font-size: 0.86rem;
	font-weight: 700;
}

.psf-portal .psf-intake-filter input,
.psf-portal .psf-intake-filter select {
	margin-top: 0.3rem;
	width: 100%;
}

.psf-portal .psf-intake-table-wrap {
	max-width: 100%;
	overflow-x: auto;
}

.psf-portal .psf-intake-queue-table {
	min-width: 980px;
}

.psf-portal .psf-intake-queue-table th,
.psf-portal .psf-intake-queue-table td {
	font-size: 0.88rem;
	vertical-align: top;
}

.psf-portal .psf-intake-queue-table thead th {
	background: #f8fafc;
	position: sticky;
	top: 0;
}

.psf-portal .psf-intake-queue-table .psf-portal-actions {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.psf-portal .psf-disabled-link {
	color: #64748b;
	cursor: not-allowed;
	font-size: 0.85rem;
}

.psf-portal .psf-intake-workspace-grid {
	display: grid;
	gap: 0.85rem;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.psf-portal .psf-intake-workspace-grid > div {
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	padding: 0.85rem;
}

.psf-portal .psf-intake-workspace-grid strong {
	color: #0f172a;
	display: block;
	font-size: 0.95rem;
	font-weight: 600;
	margin-top: 0.25rem;
	overflow-wrap: anywhere;
	white-space: normal;
}

.psf-portal .psf-intake-related-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.psf-portal .psf-intake-related-list li {
	align-items: center;
	border-bottom: 1px solid #e2e8f0;
	display: flex;
	gap: 0.85rem;
	justify-content: space-between;
	padding: 0.65rem 0;
}

.psf-portal .psf-intake-related-list li:last-child {
	border-bottom: 0;
}

.psf-portal .psf-content-review-center {
	max-width: 100%;
	overflow-x: hidden;
}

.psf-portal .psf-content-kpi-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	margin-bottom: 1rem;
}

.psf-portal .psf-content-kpi-card {
	background: #fff;
	border: 1px solid #d9e2ec;
	border-radius: 8px;
	box-shadow: 0 8px 22px rgba(15, 23, 42, 0.04);
	padding: 1rem;
}

.psf-portal .psf-content-kpi-card span,
.psf-portal .psf-content-workspace-grid span {
	color: #64748b;
	display: block;
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
}

.psf-portal .psf-content-kpi-card strong {
	color: #0f2f4a;
	display: block;
	font-size: 2rem;
	line-height: 1.1;
	margin-top: 0.35rem;
}

.psf-portal .psf-content-section-header {
	align-items: flex-start;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	margin-bottom: 1rem;
}

.psf-portal .psf-content-section-header h3 {
	margin-bottom: 0.25rem;
}

.psf-portal .psf-content-section-header p {
	color: #526173;
	margin: 0;
}

.psf-portal .psf-content-filter-grid,
.psf-portal .psf-content-form-grid {
	display: grid;
	gap: 0.85rem;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}

.psf-portal .psf-content-filter-grid p,
.psf-portal .psf-content-form-grid p {
	margin: 0 0 0.85rem;
}

.psf-portal .psf-content-filter-grid input,
.psf-portal .psf-content-filter-grid select,
.psf-portal .psf-content-form-grid input,
.psf-portal .psf-content-form-grid select,
.psf-portal .psf-content-create-form textarea,
.psf-portal .psf-content-action-form textarea,
.psf-portal .psf-content-action-form input[type="url"] {
	width: 100%;
}

.psf-portal .psf-content-review-list {
	display: grid;
	gap: 0.75rem;
	margin-top: 1rem;
	max-width: 100%;
}

.psf-portal .psf-content-review-item {
	align-items: center;
	background: #fff;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	display: grid;
	gap: 0.8rem;
	grid-template-columns: minmax(220px, 1fr) auto auto;
	max-width: 100%;
	padding: 0.9rem;
}

.psf-portal .psf-content-review-main {
	min-width: 0;
}

.psf-portal .psf-content-review-title {
	color: #0f172a;
	font-size: 1rem;
	line-height: 1.3;
	margin: 0 0 0.35rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.psf-portal .psf-content-review-meta,
.psf-portal .psf-content-review-badges {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 0.55rem;
}

.psf-portal .psf-content-review-meta {
	color: #64748b;
	font-size: 0.84rem;
}

.psf-portal .psf-content-review-meta span + span::before {
	color: #cbd5e1;
	content: "\2022";
	margin-right: 0.55rem;
}

.psf-portal .psf-content-review-badges {
	justify-content: flex-start;
}

.psf-portal .psf-content-owner-pill {
	background: #eef2ff;
	color: #3730a3;
}

.psf-portal .psf-content-ai-pill {
	background: #ecfeff;
	color: #155e75;
}

.psf-portal .psf-content-review-actions {
	display: flex;
	justify-content: flex-end;
}

.psf-portal .psf-content-review-actions .psf-master-action-button {
	white-space: nowrap;
}

.psf-portal .psf-content-table-wrap {
	max-width: 100%;
	overflow-x: auto;
}

.psf-portal .psf-content-review-table {
	min-width: 920px;
}

.psf-portal .psf-content-review-table th,
.psf-portal .psf-content-review-table td {
	font-size: 0.88rem;
	vertical-align: top;
}

.psf-portal .psf-content-review-table thead th {
	background: #f8fafc;
	position: sticky;
	top: 0;
}

.psf-portal .psf-field-help {
	color: #64748b;
	display: block;
	font-size: 0.82rem;
	line-height: 1.4;
	margin-top: 0.35rem;
}

.psf-portal .psf-checkbox-row {
	align-items: center;
	background: #f8fafc;
	border: 1px solid #dbe4ef;
	border-radius: 8px;
	color: #0f2742;
	display: flex;
	gap: 0.5rem;
	min-width: 0;
	padding: 0.65rem 0.75rem;
}

.psf-portal .psf-checkbox-row input[type="checkbox"] {
	flex: 0 0 auto;
}

.psf-portal .psf-checkbox-row span {
	min-width: 0;
	overflow-wrap: anywhere;
}

.psf-portal.psf-login-page {
	background: #eef3f8;
	border-radius: 0;
	margin: 0 auto;
	max-width: 1280px;
	min-height: min(860px, 100vh);
	overflow-x: hidden;
	padding: clamp(1rem, 3vw, 2.5rem);
}

.psf-portal .psf-login-grid {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
	margin: 0 auto;
	max-width: 1160px;
}

.psf-portal .psf-login-info,
.psf-portal .psf-login-card {
	background: #fff;
	border: 1px solid #dbe4ef;
	border-radius: 14px;
	box-shadow: 0 18px 45px rgba(15, 39, 66, 0.12);
	min-width: 0;
}

.psf-portal .psf-login-info {
	background: linear-gradient(145deg, #062847 0%, #0d3c63 56%, #15547f 100%);
	color: #eaf4ff;
	padding: clamp(1.4rem, 3vw, 2.4rem);
}

.psf-portal .psf-login-brand {
	align-items: center;
	display: flex;
	gap: 1rem;
	margin-bottom: 1.4rem;
}

.psf-portal .psf-login-logo {
	align-items: center;
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 14px;
	display: flex;
	flex: 0 0 auto;
	height: 58px;
	justify-content: center;
	overflow: hidden;
	padding: 0.55rem;
	width: 74px;
}

.psf-portal .psf-login-logo img {
	display: block;
	height: 100%;
	max-width: 100%;
	object-fit: contain;
}

.psf-portal .psf-login-logo strong {
	color: #fff;
	font-size: 1.55rem;
	letter-spacing: 0;
}

.psf-portal .psf-login-info .psf-portal-eyebrow {
	color: #b9d8f3;
	margin: 0 0 0.25rem;
}

.psf-portal .psf-login-info h1,
.psf-portal .psf-login-info h2 {
	color: #fff;
	letter-spacing: 0;
}

.psf-portal .psf-login-info h1 {
	font-size: clamp(2rem, 4vw, 3.25rem);
	line-height: 1.05;
	margin: 0;
}

.psf-portal .psf-login-lede {
	color: #d9ecff;
	font-size: 1.04rem;
	line-height: 1.65;
	margin: 0 0 1.4rem;
	max-width: 680px;
}

.psf-portal .psf-login-info-grid {
	display: grid;
	gap: 0.9rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.psf-portal .psf-login-info-card {
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 12px;
	min-width: 0;
	padding: 1rem;
}

.psf-portal .psf-login-info-card h2 {
	font-size: 1rem;
	margin: 0 0 0.45rem;
}

.psf-portal .psf-login-info-card p {
	color: #e2f1ff;
	font-size: 0.93rem;
	line-height: 1.55;
	margin: 0;
}

.psf-portal .psf-login-newsletter {
	grid-row: span 2;
}

.psf-portal .psf-login-pill {
	background: #dbeafe;
	border-radius: 999px;
	color: #0f3b64;
	display: inline-flex;
	font-size: 0.78rem;
	font-weight: 700;
	margin-top: 0.9rem;
	padding: 0.35rem 0.65rem;
}

.psf-portal .psf-login-card-note {
	color: #b9d8f3 !important;
	font-size: 0.82rem !important;
	margin-top: 0.75rem !important;
}

.psf-portal .psf-login-announcement-list {
	display: grid;
	gap: 0.75rem;
}

.psf-portal .psf-login-content-item {
	border-top: 1px solid rgba(255, 255, 255, 0.16);
	padding-top: 0.75rem;
}

.psf-portal .psf-login-content-item:first-child,
.psf-portal .psf-login-content-item.is-featured {
	border-top: 0;
	padding-top: 0;
}

.psf-portal .psf-login-content-item h3 {
	color: #fff;
	font-size: 1rem;
	letter-spacing: 0;
	margin: 0.45rem 0 0.35rem;
}

.psf-portal .psf-login-content-item p {
	margin: 0;
}

.psf-portal .psf-login-content-meta {
	align-items: center;
	color: #b9d8f3;
	display: flex;
	flex-wrap: wrap;
	font-size: 0.78rem;
	gap: 0.45rem;
}

.psf-portal .psf-login-content-item-closure .psf-login-pill {
	background: #fee2e2;
	color: #991b1b;
}

.psf-portal .psf-login-card {
	align-self: start;
	padding: clamp(1.3rem, 3vw, 2rem);
}

.psf-portal .psf-login-card h2 {
	color: #0f2742;
	font-size: 1.55rem;
	margin: 0 0 0.45rem;
}

.psf-portal .psf-login-card-intro,
.psf-portal .psf-login-card p {
	color: #5d6f83;
	line-height: 1.55;
}

.psf-portal .psf-login-card .login-username,
.psf-portal .psf-login-card .login-password,
.psf-portal .psf-login-card .login-remember,
.psf-portal .psf-login-card .login-submit {
	margin: 0 0 0.9rem;
}

.psf-portal .psf-login-card label {
	color: #0f2742;
	display: block;
	font-weight: 700;
	margin-bottom: 0.35rem;
}

.psf-portal .psf-login-card input[type="text"],
.psf-portal .psf-login-card input[type="password"] {
	background: #fff;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	box-sizing: border-box;
	color: #0f172a;
	font: inherit;
	line-height: 1.4;
	padding: 0.75rem 0.85rem;
	width: 100%;
}

.psf-portal .psf-login-card .login-remember label {
	align-items: center;
	display: inline-flex;
	font-weight: 600;
	gap: 0.45rem;
}

.psf-portal .psf-login-card input[type="submit"],
.psf-portal .psf-login-submit {
	align-items: center;
	background: #0b63ce;
	border: 1px solid #0b63ce;
	border-radius: 8px;
	box-sizing: border-box;
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-weight: 800;
	justify-content: center;
	min-height: 44px;
	padding: 0.75rem 1rem;
	text-decoration: none;
	width: 100%;
}

.psf-portal .psf-login-card input[type="submit"]:hover,
.psf-portal .psf-login-submit:hover {
	background: #084fa8;
	color: #fff;
	text-decoration: none;
}

.psf-portal .psf-login-secondary-link {
	color: #0b63ce;
	display: inline-block;
	font-weight: 700;
	margin-top: 0.75rem;
	text-decoration: none;
}

.psf-portal .psf-login-secondary-link:hover {
	text-decoration: underline;
}

@media (max-width: 900px) {
	.psf-portal .psf-login-grid,
	.psf-portal .psf-login-info-grid {
		grid-template-columns: 1fr;
	}

	.psf-portal .psf-login-brand {
		align-items: flex-start;
		flex-direction: column;
	}

	.psf-portal .psf-content-review-item {
		align-items: flex-start;
		grid-template-columns: 1fr;
	}

	.psf-portal .psf-content-review-actions {
		justify-content: flex-start;
	}
}

.psf-portal .psf-content-workspace-grid,
.psf-portal .psf-content-draft-grid {
	display: grid;
	gap: 0.85rem;
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
	margin-bottom: 1rem;
}

.psf-portal .psf-content-workspace-grid > div,
.psf-portal .psf-content-copy-panel {
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	padding: 0.85rem;
}

.psf-portal .psf-content-workspace-grid strong {
	color: #0f172a;
	display: block;
	font-size: 0.95rem;
	font-weight: 600;
	margin-top: 0.25rem;
	overflow-wrap: anywhere;
	white-space: normal;
}

.psf-portal .psf-content-public-destination-hint {
	color: #64748b;
	display: block;
	font-size: 0.78rem;
	line-height: 1.4;
	margin-top: 0.35rem;
}

.psf-portal .psf-content-copy-panel {
	min-height: 120px;
	overflow-wrap: anywhere;
	white-space: normal;
}

.psf-portal .psf-content-action-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	margin-top: 0.8rem;
}

.psf-portal .psf-settings-center {
	max-width: 100%;
	overflow-x: hidden;
}

.psf-portal .psf-settings-section {
	margin-bottom: 1rem;
}

.psf-portal .psf-settings-section-header {
	align-items: flex-start;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	margin-bottom: 1rem;
}

.psf-portal .psf-settings-section-header h3 {
	margin-bottom: 0.25rem;
}

.psf-portal .psf-settings-section-header p {
	color: #526173;
	margin: 0;
}

.psf-portal .psf-settings-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	margin-bottom: 1rem;
}

.psf-portal .psf-settings-metric {
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	padding: 1rem;
}

.psf-portal .psf-settings-metric span,
.psf-portal .psf-settings-status-list dt {
	color: #64748b;
	display: block;
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
}

.psf-portal .psf-settings-metric strong {
	color: #0f2f4a;
	display: block;
	font-size: 2rem;
	line-height: 1.1;
	margin-top: 0.35rem;
}

.psf-portal .psf-settings-metric small {
	color: #64748b;
	display: block;
	margin-top: 0.35rem;
}

.psf-portal .psf-settings-status-list {
	display: grid;
	gap: 0.85rem;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	margin: 0;
}

.psf-portal .psf-settings-status-list div {
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	padding: 0.85rem;
}

.psf-portal .psf-settings-status-list dd {
	color: #0f172a;
	font-weight: 600;
	margin: 0.3rem 0 0;
	overflow-wrap: anywhere;
}

.psf-portal .psf-settings-table-wrap {
	max-width: 100%;
	overflow-x: auto;
}

.psf-portal .psf-settings-table-wrap table {
	min-width: 680px;
}

.psf-portal .psf-settings-checklist ul,
.psf-portal .psf-settings-placeholder-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.psf-portal .psf-settings-checklist li,
.psf-portal .psf-settings-placeholder-list li {
	align-items: center;
	border-bottom: 1px solid #e2e8f0;
	display: flex;
	gap: 0.85rem;
	justify-content: space-between;
	padding: 0.65rem 0;
}

.psf-portal .psf-settings-placeholder-list span {
	color: #64748b;
}

.psf-portal .psf-client-account-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
}

.psf-portal .psf-client-action-button,
.psf-portal button.psf-client-action-button,
.psf-portal .psf-modal-trigger {
	align-items: center;
	background: #0f3b63;
	border: 1px solid #0f3b63;
	border-radius: 8px;
	color: #ffffff;
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-size: 0.9rem;
	font-weight: 700;
	gap: 0.35rem;
	line-height: 1.2;
	padding: 0.55rem 0.85rem;
	text-decoration: none;
}

.psf-portal .psf-client-action-button:hover,
.psf-portal button.psf-client-action-button:hover,
.psf-portal .psf-modal-trigger:hover {
	background: #12324f;
	border-color: #12324f;
	color: #ffffff;
}

.psf-portal .psf-client-action-button.psf-nav-disabled {
	background: #f1f5f9;
	border-color: #cbd5e1;
	color: #64748b;
	cursor: not-allowed;
}

.psf-portal .psf-client-action-button.psf-client-action-secondary {
	background: #ffffff;
	border-color: #cbd5e1;
	color: #0f3b63;
}

.psf-portal .psf-client-action-button.psf-client-action-secondary:hover,
.psf-portal .psf-client-action-button.psf-client-action-secondary:focus {
	background: #f1f5f9;
	border-color: #cbd5e1;
	color: #0f3b63;
}

.psf-portal .psf-client-sidebar,
.psf-portal .psf-client-sidebar-dark {
	background: #102944;
	color: #dbeafe;
	display: flex;
	flex-direction: column;
}

.psf-portal .psf-client-sidebar .psf-client-nav {
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	gap: 0.2rem;
	width: 100%;
}

.psf-portal .psf-client-sidebar .psf-client-nav a,
.psf-portal .psf-client-sidebar .psf-client-nav button,
.psf-portal .psf-client-sidebar .psf-client-nav span,
.psf-portal .psf-client-sidebar .psf-client-action-button,
.psf-portal .psf-client-sidebar button.psf-client-action-button {
	background: transparent;
	border: 0;
	box-shadow: none;
	color: #dbeafe;
	display: block;
	font-size: 0.92rem;
	font-weight: 650;
	line-height: 1.25;
	padding: 0.62rem 0.7rem;
	text-align: left;
	text-decoration: none;
	width: 100%;
}

.psf-portal .psf-client-sidebar .psf-client-nav a:hover,
.psf-portal .psf-client-sidebar .psf-client-nav a:focus,
.psf-portal .psf-client-sidebar .psf-client-nav button:hover,
.psf-portal .psf-client-sidebar .psf-client-nav button:focus,
.psf-portal .psf-client-sidebar .psf-client-nav-link.is-active {
	background: rgba(255, 255, 255, 0.11);
	color: #ffffff;
}

.psf-portal .psf-client-sidebar .psf-client-nav .psf-nav-disabled {
	background: transparent;
	color: #dbeafe;
	cursor: default;
	opacity: 0.5;
}

.psf-portal button.psf-master-action-button.psf-modal-trigger {
	background: var(--psf-accent);
	border: 0;
	border-radius: 8px;
	color: #ffffff;
	font-size: 0.9rem;
	font-weight: 800;
	padding: 0.72rem 0.9rem;
	text-decoration: none;
}

.psf-portal button.psf-master-action-button.psf-modal-trigger:hover {
	background: #12324f;
	color: #ffffff;
}

.psf-portal .psf-modal {
	align-items: center;
	background: rgba(15, 23, 42, 0.54);
	display: none;
	inset: 0;
	justify-content: center;
	overflow-y: auto;
	padding: 2rem 1.5rem;
	position: fixed;
	z-index: 9999;
}

.psf-portal .psf-modal.is-open {
	display: flex;
}

.psf-portal .psf-modal-panel {
	background: #ffffff;
	border: 1px solid #dbe3ec;
	border-radius: 10px;
	box-shadow: 0 22px 50px rgba(15, 23, 42, 0.28);
	max-height: calc(100vh - 80px);
	max-width: min(760px, calc(100vw - 48px));
	overflow-y: auto;
	padding: 1.1rem;
	width: min(760px, calc(100vw - 48px));
}

.psf-portal .psf-modal-header {
	align-items: center;
	border-bottom: 1px solid #e2e8f0;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	margin-bottom: 1rem;
	padding-bottom: 0.75rem;
}

.psf-portal .psf-modal-header h3 {
	margin: 0;
}

.psf-portal .psf-modal-close {
	align-items: center;
	background: #f8fafc;
	border: 1px solid #cbd5e1;
	border-radius: 999px;
	color: #0f172a;
	cursor: pointer;
	display: inline-flex;
	font-size: 1.2rem;
	height: 2rem;
	justify-content: center;
	line-height: 1;
	padding: 0;
	width: 2rem;
}

.psf-portal .psf-client-compliance-edit-actions {
	margin: 1rem 0;
}

.psf-portal .psf-task-create-modal .psf-modal-panel {
	max-width: min(900px, calc(100vw - 48px));
	width: min(900px, calc(100vw - 48px));
}

.psf-portal .psf-task-create-modal form {
	display: grid;
	gap: 0.8rem;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.psf-portal .psf-task-create-modal form p {
	margin: 0;
}

.psf-portal .psf-task-create-modal textarea,
.psf-portal .psf-task-create-modal button[type="submit"] {
	grid-column: 1 / -1;
}

.psf-portal .psf-task-board-scroll {
	max-width: 100%;
	overflow-x: visible;
	padding-bottom: 0;
}

.psf-portal .psf-task-board-lanes {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	min-width: 0;
}

.psf-portal .psf-task-board-lane {
	background: #f8fafc;
	border: 1px solid #dbe3ec;
	border-radius: 10px;
	min-width: 0;
	padding: 0.75rem;
}

.psf-portal .psf-task-board-lane h4 {
	align-items: center;
	display: flex;
	font-size: 0.95rem;
	justify-content: space-between;
	margin: 0 0 0.75rem;
}

.psf-portal .psf-task-board-lane h4 span {
	background: #e2e8f0;
	border-radius: 999px;
	color: #334155;
	font-size: 0.75rem;
	padding: 0.1rem 0.45rem;
}

.psf-portal .psf-task-board-card {
	background: #ffffff;
	border: 1px solid #dbe3ec;
	border-radius: 8px;
	box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
	margin-bottom: 0.65rem;
	min-width: 0;
	padding: 0.7rem;
}

.psf-portal .psf-task-board-card h5 {
	font-size: 0.9rem;
	line-height: 1.35;
	margin: 0 0 0.45rem;
}

.psf-portal .psf-task-board-card h5 a {
	color: #0f172a;
	text-decoration: none;
}

.psf-portal .psf-task-board-card h5 a:hover,
.psf-portal .psf-task-board-card h5 a:focus {
	color: #0b5ed7;
	text-decoration: underline;
}

.psf-portal .psf-task-board-card-meta {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	margin-bottom: 0.45rem;
}

.psf-portal .psf-task-board-due,
.psf-portal .psf-task-board-links,
.psf-portal .psf-task-board-progress {
	color: #64748b;
	font-size: 0.78rem;
	line-height: 1.35;
	margin: 0.3rem 0 0;
	overflow-wrap: anywhere;
}

.psf-portal .psf-task-board-progress {
	color: #334155;
	font-weight: 700;
}

.psf-portal .psf-task-board-flags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3rem;
	font-size: 0.8rem;
	margin: 0.55rem 0 0;
}

.psf-portal .psf-task-board-flags span {
	background: #fff1f2;
	border: 1px solid #fecdd3;
	border-radius: 999px;
	color: #9f1239;
	font-size: 0.72rem;
	font-weight: 700;
	padding: 0.12rem 0.45rem;
}

.psf-portal .psf-client-action-board {
	overflow: hidden;
}

.psf-portal .psf-client-action-board-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	margin-top: 1rem;
	max-width: 100%;
}

.psf-portal .psf-client-action-lane {
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	min-width: 0;
	padding: 0.85rem;
}

.psf-portal .psf-client-action-lane-header {
	align-items: center;
	display: flex;
	gap: 0.75rem;
	justify-content: space-between;
	margin-bottom: 0.75rem;
}

.psf-portal .psf-client-action-lane-header h3 {
	color: #0f172a;
	font-size: 0.92rem;
	line-height: 1.25;
	margin: 0;
}

.psf-portal .psf-client-action-lane-header span {
	background: #e0f2fe;
	border-radius: 999px;
	color: #075985;
	font-size: 0.76rem;
	font-weight: 800;
	min-width: 1.75rem;
	padding: 0.18rem 0.5rem;
	text-align: center;
}

.psf-portal .psf-client-action-card-list {
	display: grid;
	gap: 0.7rem;
}

.psf-portal .psf-client-action-card {
	background: #fff;
	border: 1px solid #dbe4ef;
	border-radius: 10px;
	box-shadow: 0 8px 20px rgba(15, 23, 42, 0.04);
	min-width: 0;
	padding: 0.85rem;
}

.psf-portal .psf-client-action-card-header {
	align-items: flex-start;
	display: flex;
	gap: 0.65rem;
	justify-content: space-between;
	margin-bottom: 0.45rem;
}

.psf-portal .psf-client-action-card h4 {
	color: #0f172a;
	font-size: 0.95rem;
	line-height: 1.3;
	margin: 0;
	overflow-wrap: anywhere;
}

.psf-portal .psf-client-action-card .psf-client-item-description {
	margin-bottom: 0;
}

.psf-portal .psf-client-mini-button.psf-nav-disabled {
	cursor: default;
	opacity: 0.72;
}

.psf-portal .psf-client-account-profile {
	display: grid;
	gap: 18px;
	max-width: 100%;
}

.psf-portal .psf-client-profile-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 16px;
}

.psf-portal .psf-client-profile-card {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.psf-portal .psf-client-profile-card-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 14px;
	flex-wrap: wrap;
	min-width: 0;
}

.psf-portal .psf-client-profile-card-header .psf-client-section-header {
	flex: 1 1 180px;
	margin: 0;
	min-width: 0;
}

.psf-portal .psf-client-profile-actions,
.psf-portal .psf-client-profile-modal-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: flex-end;
	max-width: 100%;
	min-width: 0;
}

.psf-portal .psf-client-profile-actions .psf-client-action-button,
.psf-portal .psf-client-profile-modal-actions .psf-master-action-button {
	max-width: 100%;
	white-space: normal;
}

.psf-portal .psf-client-profile-detail-list {
	display: grid;
	gap: 10px;
}

.psf-portal .psf-client-profile-detail-row {
	display: grid;
	grid-template-columns: minmax(110px, 0.8fr) minmax(0, 1.2fr);
	gap: 12px;
	padding: 10px 0;
	border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.psf-portal .psf-client-profile-detail-row:first-child {
	border-top: 0;
	padding-top: 0;
}

.psf-portal .psf-client-profile-detail-row span {
	color: #64748b;
	font-size: 0.83rem;
	font-weight: 700;
}

.psf-portal .psf-client-profile-detail-row strong {
	color: #0f172a;
	font-size: 0.94rem;
	overflow-wrap: anywhere;
}

.psf-portal .psf-client-profile-documents {
	max-width: 100%;
	overflow: hidden;
}

.psf-portal .psf-client-profile-modal .psf-modal-panel {
	max-width: min(720px, calc(100vw - 32px));
	width: min(720px, calc(100vw - 32px));
}

.psf-portal .psf-client-request-modal .psf-modal-panel,
.psf-portal .psf-client-profile-modal .psf-modal-panel {
	max-height: calc(100vh - 64px);
	overflow-x: hidden;
	overflow-y: auto;
}

.psf-portal .psf-client-profile-form {
	display: grid;
	gap: 14px;
}

.psf-portal .psf-client-profile-form-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 14px;
}

.psf-portal .psf-client-profile-form label {
	display: grid;
	gap: 6px;
	color: #334155;
	font-weight: 700;
	font-size: 0.9rem;
}

.psf-portal .psf-client-profile-form input,
.psf-portal .psf-client-profile-form select,
.psf-portal .psf-client-profile-form textarea {
	width: 100%;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	padding: 10px 12px;
	font: inherit;
	line-height: 1.4;
	color: #0f172a;
	background: #fff;
	box-sizing: border-box;
}

.psf-portal .psf-client-profile-form input[type="file"] {
	padding: 8px;
}

@media (max-width: 720px) {
	.psf-portal .psf-modal {
		padding: 0.75rem;
	}

	.psf-portal .psf-modal-panel,
	.psf-portal .psf-task-create-modal .psf-modal-panel,
	.psf-portal .psf-project-budget-modal .psf-modal-panel,
	.psf-portal .psf-project-task-modal .psf-modal-panel,
	.psf-portal .psf-admin-document-upload-modal .psf-modal-panel,
	.psf-portal .psf-permit-inspection-create-modal .psf-modal-panel,
	.psf-portal .psf-billing-create-modal .psf-modal-panel,
	.psf-portal .psf-client-action-modal .psf-modal-panel,
	.psf-portal .psf-client-request-modal .psf-modal-panel,
	.psf-portal .psf-client-profile-modal .psf-modal-panel,
	.psf-portal .psf-fpt-review-modal .psf-modal-panel {
		max-height: calc(100vh - 1.5rem);
		max-width: calc(100vw - 1.5rem);
		width: calc(100vw - 1.5rem);
	}

	.psf-portal .psf-portal-header {
		display: block;
	}

	.psf-portal .psf-portal-nav {
		justify-content: flex-start;
		margin-top: 0.85rem;
	}

	.psf-portal .psf-portal-grid,
	.psf-portal .psf-portal-filter-grid,
	.psf-portal .psf-admin-permit-upload-grid,
	.psf-portal .psf-admin-permit-selector-grid,
	.psf-portal .psf-project-selector-grid,
	.psf-portal .psf-intake-filter,
	.psf-portal .psf-content-filter-grid,
	.psf-portal .psf-content-form-grid,
	.psf-portal .psf-settings-status-list,
	.psf-portal .psf-billing-task-list li,
	.psf-portal .psf-billing-list-card {
		grid-template-columns: 1fr;
	}

	.psf-portal .psf-billing-section-header {
		align-items: stretch;
		flex-direction: column;
	}

	.psf-portal .psf-dashboard-item {
		align-items: start;
		grid-template-columns: 1fr;
	}

	.psf-portal .psf-dashboard-item-status {
		justify-self: start;
		max-width: 100%;
	}

	.psf-portal .psf-main-dashboard-grid-primary,
	.psf-portal .psf-main-dashboard-grid-secondary {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 1100px) {
	.psf-portal .psf-master-portal,
	.psf-portal.psf-master-shell {
		grid-template-columns: 1fr;
	}

	.psf-portal .psf-master-sidebar {
		display: block;
	}

	.psf-portal .psf-master-nav {
		display: flex;
		flex-wrap: wrap;
		margin-top: 0.85rem;
	}

	.psf-portal .psf-master-help {
		margin-top: 0.85rem;
	}

	.psf-portal .psf-master-kpis {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.psf-portal .psf-main-dashboard-grid-primary,
	.psf-portal .psf-main-dashboard-grid-secondary {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.psf-portal .psf-project-workspace-selector .psf-portal-filter,
	.psf-portal .psf-master-layout-grid,
	.psf-portal .psf-master-tabs-grid,
	.psf-portal .psf-project-showpiece-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 760px) {
	.psf-portal .psf-client-dashboard-grid {
		grid-template-columns: 1fr;
	}

	.psf-portal .psf-client-topbar {
		align-items: flex-start;
		display: block;
	}

	.psf-portal .psf-client-topbar-actions {
		justify-content: flex-start;
		margin-top: 0.9rem;
	}

	.psf-portal .psf-client-row {
		grid-template-columns: 1fr;
	}

	.psf-portal .psf-client-item {
		align-items: flex-start;
		grid-template-columns: 1fr;
	}

	.psf-portal .psf-client-badges,
	.psf-portal .psf-client-item-actions {
		justify-content: flex-start;
	}

	.psf-portal .psf-master-topbar {
		align-items: flex-start;
		display: block;
	}

	.psf-portal .psf-master-topbar-actions {
		justify-content: flex-start;
		margin-top: 0.9rem;
	}

	.psf-portal .psf-master-topbar-actions input[type="search"] {
		max-width: none;
		min-width: 0;
		width: 100%;
	}

	.psf-portal .psf-master-kpis {
		grid-template-columns: 1fr;
	}

	.psf-portal .psf-project-workspace-hero {
		align-items: flex-start;
		display: block;
	}

	.psf-portal .psf-project-workspace-hero .psf-portal-actions {
		margin-top: 0.8rem;
	}

	.psf-portal .psf-intake-section-header,
	.psf-portal .psf-content-section-header,
	.psf-portal .psf-settings-section-header,
	.psf-portal .psf-intake-related-list li {
		align-items: flex-start;
		display: block;
	}
}
