/* Dark theme for the Forms portal (/forms/user/*, /forms/admin/*).
   Scoped to body.forms-portal-dark so it never leaks onto other website pages. */

body.forms-portal-dark {
	background-color: #12141a;
	color: #e6e8eb;
}

body.forms-portal-dark a {
	color: #7ea6ff;
}

/* Hover effects are disabled app-wide: hover states are kept identical to the
   base state below (deleting the rules outright would let Bootstrap's own
   default :hover styling show through instead). */
body.forms-portal-dark a:hover {
	color: #7ea6ff;
	text-decoration: none;
}

body.forms-portal-dark h1,
body.forms-portal-dark h2,
body.forms-portal-dark h3,
body.forms-portal-dark h4,
body.forms-portal-dark h5,
body.forms-portal-dark h6 {
	color: #f2f3f5;
}

body.forms-portal-dark .text-muted {
	color: #9aa1ac !important;
}

/* Navbar */
body.forms-portal-dark .navbar {
	background-color: #1a1d24;
	border-bottom: 1px solid #2a2e37;
}

body.forms-portal-dark .navbar-light .navbar-brand,
body.forms-portal-dark .navbar-light .navbar-nav .nav-link {
	color: #e6e8eb;
}

body.forms-portal-dark .navbar-light .navbar-nav .nav-link:hover {
	color: #e6e8eb;
}

body.forms-portal-dark .navbar-toggler-icon {
	filter: invert(1);
}

/* Footer */
body.forms-portal-dark .web-footer {
	background-color: #1a1d24;
	border-top: 1px solid #2a2e37;
	color: #9aa1ac;
	margin-top: 3rem;
}

body.forms-portal-dark .web-footer a {
	color: #9aa1ac;
}

/* Cards */
body.forms-portal-dark .card {
	background-color: #1a1d24;
	border: 1px solid #2a2e37;
	color: #e6e8eb;
}

/* Alerts */
body.forms-portal-dark .alert-warning {
	background-color: #3a2f12;
	border-color: #5c4a1c;
	color: #f0c674;
}

body.forms-portal-dark .alert-info {
	background-color: #12303a;
	border-color: #1c4a56;
	color: #7fd1e0;
}

body.forms-portal-dark .alert-light {
	background-color: #1e2129;
	border-color: #2a2e37;
	color: #c3c8cf;
}

/* Badges */
body.forms-portal-dark .badge-secondary {
	background-color: #2a2e37;
	color: #cbd2da;
}

/* Tables */
body.forms-portal-dark .table {
	color: #e6e8eb;
}

body.forms-portal-dark .table-bordered,
body.forms-portal-dark .table-bordered th,
body.forms-portal-dark .table-bordered td {
	border-color: #2a2e37;
}

body.forms-portal-dark .table thead th {
	border-bottom-color: #2a2e37;
	color: #f2f3f5;
}

/* Forms */
body.forms-portal-dark .form-control {
	background-color: #12141a;
	border: 1px solid #2a2e37;
	color: #e6e8eb;
}

body.forms-portal-dark .form-control:focus {
	background-color: #12141a;
	border-color: #5b8cff;
	color: #e6e8eb;
	box-shadow: 0 0 0 0.2rem rgba(91, 140, 255, 0.25);
}

body.forms-portal-dark .form-control::placeholder {
	color: #6b7280;
}

body.forms-portal-dark .form-control:disabled {
	background-color: #1a1d24;
	color: #9aa1ac;
}

body.forms-portal-dark label {
	color: #cbd2da;
}

body.forms-portal-dark .form-check-label {
	color: #e6e8eb;
}

/* Buttons */
body.forms-portal-dark .btn-primary {
	background-color: #5b8cff;
	border-color: #5b8cff;
	color: #0d1117;
}

body.forms-portal-dark .btn-primary:hover {
	background-color: #5b8cff;
	border-color: #5b8cff;
	color: #0d1117;
}

body.forms-portal-dark .btn-outline-light,
body.forms-portal-dark .btn-outline-light:hover {
	color: #cbd2da;
	border-color: #2a2e37;
	background-color: transparent;
}

/* Progress bars */
body.forms-portal-dark .progress {
	background-color: #2a2e37;
}

body.forms-portal-dark .progress-bar {
	background-color: #5b8cff;
}

/* ---------------------------------------------------------------- */
/* Dashboard: hero header                                           */
/* ---------------------------------------------------------------- */

body.forms-portal-dark .dashboard-hero {
	margin: 0.5rem 0 1.75rem;
}

body.forms-portal-dark .dashboard-hero h1 {
	font-size: 1.75rem;
	font-weight: 600;
}

body.forms-portal-dark .dashboard-subtitle {
	color: #9aa1ac;
	font-size: 0.95rem;
}

body.forms-portal-dark .dashboard-hero-row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
}

body.forms-portal-dark .my-account-link {
	border-color: #2a2e37;
	color: #cbd2da;
	white-space: nowrap;
}

body.forms-portal-dark .my-account-link:hover {
	border-color: #2a2e37;
	color: #cbd2da;
}

/* ---------------------------------------------------------------- */
/* Dashboard: card grid                                             */
/* ---------------------------------------------------------------- */

body.forms-portal-dark .dash-card-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 1.25rem;
}

body.forms-portal-dark .form-card {
	border-radius: 0.75rem;
}

body.forms-portal-dark .form-card-header {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin-bottom: 1rem;
}

body.forms-portal-dark .form-card-header h4 {
	font-size: 1.05rem;
	flex: 1;
}

body.forms-portal-dark .form-card-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 0.5rem;
	background-color: #12303a;
	color: #7fd1e0;
	flex-shrink: 0;
}

body.forms-portal-dark .form-card-icon svg {
	width: 18px;
	height: 18px;
}

body.forms-portal-dark .filing-meta {
	color: #cbd2da;
	font-size: 0.9rem;
	margin-bottom: 1rem;
}

/* Status pills */
body.forms-portal-dark .status-pill {
	font-size: 0.72rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	padding: 0.22rem 0.6rem;
	border-radius: 999px;
	white-space: nowrap;
}

body.forms-portal-dark .pill-draft {
	background-color: #2a2e37;
	color: #cbd2da;
}

body.forms-portal-dark .pill-review {
	background-color: #3a2f12;
	color: #f0c674;
}

body.forms-portal-dark .pill-final {
	background-color: #12331f;
	color: #6fd996;
}

/* Stat tiles */
body.forms-portal-dark .stat-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.75rem;
	margin-bottom: 0.25rem;
}

body.forms-portal-dark .stat-tile {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	padding: 0.65rem 0.75rem;
	background-color: #12141a;
	border: 1px solid #2a2e37;
	border-radius: 0.5rem;
}

body.forms-portal-dark .stat-label {
	font-size: 0.72rem;
	color: #9aa1ac;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

body.forms-portal-dark .stat-value {
	font-size: 1.15rem;
	font-weight: 600;
	color: #f2f3f5;
}

/* Progress block */
body.forms-portal-dark .dash-progress-wrap {
	margin-top: 0.75rem;
}

body.forms-portal-dark .dash-progress-labels {
	display: flex;
	justify-content: space-between;
	margin-bottom: 0.35rem;
}

body.forms-portal-dark .dash-progress {
	height: 6px;
	border-radius: 999px;
}

body.forms-portal-dark .dash-progress .progress-bar {
	border-radius: 999px;
}

/* ---------------------------------------------------------------- */
/* My Account page                                                  */
/* ---------------------------------------------------------------- */

body.forms-portal-dark .back-link {
	font-size: 0.85rem;
	color: #9aa1ac;
}

body.forms-portal-dark .back-link:hover {
	color: #9aa1ac;
}

body.forms-portal-dark .profile-card {
	max-width: 560px;
}

body.forms-portal-dark .profile-header {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding-bottom: 1.25rem;
	margin-bottom: 1.25rem;
	border-bottom: 1px solid #2a2e37;
}

body.forms-portal-dark .profile-avatar {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background-color: #12303a;
	color: #7fd1e0;
	font-size: 1.1rem;
	font-weight: 600;
	flex-shrink: 0;
	overflow: hidden;
}

body.forms-portal-dark .profile-avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

body.forms-portal-dark .profile-email {
	color: #9aa1ac;
	font-size: 0.9rem;
}

body.forms-portal-dark .profile-detail-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 0.75rem;
	margin-bottom: 1.25rem;
}

body.forms-portal-dark .detail-item {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
}

body.forms-portal-dark .detail-value {
	font-size: 0.95rem;
	color: #e6e8eb;
}

body.forms-portal-dark .profile-roles .stat-label {
	display: block;
	margin-bottom: 0.5rem;
}

body.forms-portal-dark .role-chip-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

body.forms-portal-dark .role-chip {
	font-size: 0.78rem;
	padding: 0.25rem 0.65rem;
	border-radius: 999px;
	background-color: #2a2e37;
	color: #cbd2da;
}

/* "+N more" roles disclosure: display:contents lets the toggle and the
   revealed chips flow as siblings inside the flex-wrap role-chip-row. */
body.forms-portal-dark .role-chip-more {
	display: contents;
}

body.forms-portal-dark .role-chip-more summary {
	cursor: pointer;
}

body.forms-portal-dark .role-chip-more summary::-webkit-details-marker {
	display: none;
}

/* Empty state */
body.forms-portal-dark .empty-state {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 0.6rem;
	padding: 1.5rem 0.5rem;
	color: #6b7280;
}

body.forms-portal-dark .empty-state svg {
	width: 28px;
	height: 28px;
	opacity: 0.6;
}

body.forms-portal-dark .empty-state p {
	font-size: 0.88rem;
	max-width: 220px;
}

/* ---------------------------------------------------------------- */
/* Minimal portal nav (Dashboard / Me only)                         */
/* ---------------------------------------------------------------- */

body.forms-portal-dark .forms-nav {
	background-color: #1a1d24;
	border-bottom: 1px solid #2a2e37;
}

body.forms-portal-dark .forms-nav-inner {
	display: flex;
	gap: 0.25rem;
}

body.forms-portal-dark .forms-nav-link {
	padding: 0.9rem 0.85rem;
	font-size: 0.9rem;
	font-weight: 500;
	color: #9aa1ac;
	border-bottom: 2px solid transparent;
}

body.forms-portal-dark .forms-nav-link:hover {
	color: #9aa1ac;
	text-decoration: none;
}

body.forms-portal-dark .forms-nav-link.is-active {
	color: #ffffff;
	border-bottom-color: #5b8cff;
}

body.forms-portal-dark .forms-nav-link-right {
	margin-left: auto;
	padding: 0.4rem 1rem;
	border: 1px solid #2a2e37;
	border-radius: 999px;
	background-color: #232630;
	align-self: center;
}

body.forms-portal-dark .forms-nav-link-right:hover {
	background-color: #2a2e37;
	border-color: #3a3f4b;
	color: #ffffff;
}

body.forms-portal-dark .forms-nav-link-right.is-active {
	background-color: #5b8cff;
	border-color: #5b8cff;
	color: #ffffff;
}

/* ---------------------------------------------------------------- */
/* GL date-range filter (FICA / Treasurer)                          */
/* ---------------------------------------------------------------- */

body.forms-portal-dark .date-range-row {
	display: flex;
	align-items: flex-end;
	gap: 1rem;
	flex-wrap: wrap;
}

body.forms-portal-dark .date-range-row .form-group {
	min-width: 160px;
}

/* Multi-line journal entries can list dozens of counter-accounts in a single
   GL Entry's "against" field — truncate so one row can't blow out the table;
   the title attribute still exposes the full value as a native tooltip. */
body.forms-portal-dark .gl-truncate {
	max-width: 260px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

body.forms-portal-dark .quick-range-row {
	display: flex;
	gap: 0.5rem;
}
