/**
 * Fin-Zvit FOP cabinet (scoped to .fz-cab).
 */

/* Site header on cabinet: solid white + dark readable links (not hero/light colors). */
body.fz-cabinet-page {
	background: #eef2f7;
}

body.fz-cabinet-page #masthead,
body.fz-cabinet-page #masthead .main-header-bar,
body.fz-cabinet-page #masthead .ast-primary-header-bar {
	background: #ffffff !important;
	box-shadow: 0 1px 0 rgba(15, 23, 42, 0.08);
}

body.fz-cabinet-page #masthead .main-header-menu > .menu-item > .menu-link,
body.fz-cabinet-page #masthead .ast-builder-menu .menu-item > .menu-link,
body.fz-cabinet-page .ast-primary-header-bar .menu-item > .menu-link {
	color: #1e293b !important;
}

body.fz-cabinet-page #masthead .main-header-menu > .menu-item:hover > .menu-link,
body.fz-cabinet-page #masthead .main-header-menu > .menu-item.focus > .menu-link,
body.fz-cabinet-page #masthead .main-header-menu > .menu-item.current-menu-item > .menu-link,
body.fz-cabinet-page #masthead .main-header-menu > .menu-item.current-menu-ancestor > .menu-link,
body.fz-cabinet-page .ast-primary-header-bar .menu-item:hover > .menu-link,
body.fz-cabinet-page .ast-primary-header-bar .current-menu-item > .menu-link {
	color: #c2410c !important;
}

body.fz-cabinet-page .ast-separate-container .ast-article-single,
body.fz-cabinet-page .ast-separate-container .entry-content,
body.fz-cabinet-page #content .ast-container {
	background: transparent;
}

body.fz-cabinet-page .site-content > .ast-container {
	padding-top: 1.5rem;
	padding-bottom: 2.5rem;
}

.fz-cabinet-page .entry-header,
.fz-cabinet-page .ast-above-header-bar {
	/* keep site header; hide page title duplication if present */
}

.page-slug-kabinet .entry-header,
.page-parent-kabinet .entry-header,
.page-child-of-kabinet .entry-header,
.fz-cabinet-page .entry-header {
	display: none;
}

.fz-cab {
	--fz-cab-ink: #0f172a;
	--fz-cab-muted: #475569;
	--fz-cab-line: #e2e8f0;
	--fz-cab-bg: #f8fafc;
	--fz-cab-card: #ffffff;
	--fz-cab-accent: #c2410c;
	--fz-cab-accent-dark: #9a3412;
	max-width: 960px;
	margin: 0 auto 48px;
	padding: 1.15rem 1.25rem 1.75rem;
	color: var(--fz-cab-ink);
	font-size: 1rem;
	line-height: 1.55;
	background: var(--fz-cab-card);
	border: 1px solid var(--fz-cab-line);
	border-radius: 10px;
	box-shadow: 0 10px 28px rgba(15, 23, 42, 0.06);
}

.fz-cab--guest {
	max-width: 32rem;
	margin-top: 0.5rem;
}

.fz-cab-top {
	margin-bottom: 1.25rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--fz-cab-line);
}

.fz-cab-top-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
}

.fz-cab-brand {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
}

.fz-cab-brand-link {
	font-weight: 700;
	color: var(--fz-cab-ink);
	text-decoration: none;
}

.fz-cab-badge {
	display: inline-block;
	padding: 0.15rem 0.5rem;
	border: 1px solid #fdba74;
	background: #fff7ed;
	color: #9a3412;
	font-size: 0.75rem;
	font-weight: 600;
}

.fz-cab-beta-note {
	margin: 0.6rem 0 0;
	color: var(--fz-cab-muted);
	font-size: 0.9rem;
}

.fz-cab-nav ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.85rem;
	margin: 0.85rem 0 0;
	padding: 0;
	list-style: none;
}

.fz-cab-nav a {
	color: var(--fz-cab-muted);
	text-decoration: none;
	font-weight: 600;
	font-size: 0.95rem;
}

.fz-cab-nav a.is-active,
.fz-cab-nav a:hover,
.fz-cab-nav a:focus {
	color: var(--fz-cab-accent-dark);
}

.fz-cab-guest-links {
	display: flex;
	gap: 1rem;
}

.fz-cab-title {
	margin: 0 0 0.35rem;
	font-size: clamp(1.45rem, 2.5vw, 1.85rem);
	font-weight: 700;
	line-height: 1.2;
}

.fz-cab-context {
	margin: 0 0 1rem;
	color: var(--fz-cab-muted);
	font-size: 0.92rem;
}

.fz-cab-lead,
.fz-cab-muted {
	color: var(--fz-cab-muted);
}

.fz-cab-subtitle {
	margin: 1.5rem 0 0.75rem;
	font-size: 1.15rem;
}

.fz-cab-flash {
	margin: 0 0 1rem;
	padding: 0.75rem 1rem;
	border-radius: 4px;
	border: 1px solid var(--fz-cab-line);
	background: #fff;
}

.fz-cab-flash--success {
	border-color: #86efac;
	background: #f0fdf4;
}

.fz-cab-flash--error {
	border-color: #fca5a5;
	background: #fef2f2;
}

.fz-cab-flash--info {
	border-color: #93c5fd;
	background: #eff6ff;
}

.fz-cab-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 1rem;
	margin-top: 1.25rem;
}

.fz-cab-card {
	display: block;
	padding: 1.1rem 1.15rem;
	background: var(--fz-cab-card);
	border: 1px solid var(--fz-cab-line);
	border-radius: 6px;
	color: inherit;
	text-decoration: none;
	transition: border-color 0.15s ease;
}

a.fz-cab-card:hover,
a.fz-cab-card:focus {
	border-color: #fb923c;
}

.fz-cab-card h2 {
	margin: 0 0 0.4rem;
	font-size: 1.05rem;
}

.fz-cab-card p {
	margin: 0;
	color: var(--fz-cab-muted);
	font-size: 0.92rem;
}

.fz-cab-card--stub {
	background: var(--fz-cab-bg);
}

.fz-cab-stub-badge {
	display: inline-block;
	margin-bottom: 0.4rem;
	padding: 0.1rem 0.45rem;
	background: #e2e8f0;
	color: #334155;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.fz-cab-form p {
	margin: 0 0 0.9rem;
}

.fz-cab-form label {
	display: block;
	margin-bottom: 0.3rem;
	font-weight: 600;
	font-size: 0.92rem;
}

.fz-cab-form input[type="text"],
.fz-cab-form input[type="email"],
.fz-cab-form input[type="password"],
.fz-cab-form input[type="tel"],
.fz-cab-form input[type="search"],
.fz-cab-form select,
.fz-cab-form textarea {
	width: 100%;
	max-width: 28rem;
	padding: 0.55rem 0.65rem;
	border: 1px solid #cbd5e1;
	border-radius: 4px;
	background: #fff;
	font: inherit;
}

.fz-cab-form input:focus,
.fz-cab-form select:focus,
.fz-cab-form textarea:focus {
	outline: 2px solid #fdba74;
	outline-offset: 1px;
}

.fz-cab-check {
	font-weight: 500 !important;
}

.fz-cab-btn {
	display: inline-block;
	padding: 0.55rem 1.1rem;
	border: 0;
	border-radius: 4px;
	background: var(--fz-cab-accent);
	color: #fff !important;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
	text-decoration: none;
}

.fz-cab-btn:hover,
.fz-cab-btn:focus {
	background: var(--fz-cab-accent-dark);
}

.fz-cab-btn--secondary {
	background: #334155;
}

.fz-cab-btn[disabled] {
	opacity: 0.65;
	cursor: wait;
}

.fz-cab-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1rem;
}

.fz-cab-actions a,
.fz-cab-muted a,
.fz-cab-guest-links a {
	color: var(--fz-cab-accent-dark);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.fz-cab-actions a:hover,
.fz-cab-muted a:hover,
.fz-cab-guest-links a:hover {
	color: #7c2d12;
}

.fz-cab-guest-links a {
	text-decoration: none;
}

.fz-cab-guest-links a.is-active {
	color: var(--fz-cab-ink);
	text-decoration: underline;
}

.fz-cab-linkbtn {
	border: 0;
	background: none;
	padding: 0;
	color: var(--fz-cab-accent-dark);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
	text-decoration: underline;
}

.fz-cab-inline-form {
	display: inline;
}

.fz-cab-hp {
	position: absolute;
	left: -9999px;
	height: 0;
	overflow: hidden;
}

.fz-cab-callout {
	padding: 0.9rem 1rem;
	border: 1px solid #fdba74;
	background: #fff7ed;
	border-radius: 4px;
}

.fz-cab-stats {
	margin: 0 0 1rem;
	padding-left: 1.2rem;
}

.fz-cab-fop-list {
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 0;
}

.fz-cab-fop-item {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--fz-cab-line);
}

.fz-cab-fop-item.is-archived {
	opacity: 0.85;
}

.fz-cab-fop-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem 0.9rem;
	align-items: center;
}

.fz-cab-toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1rem;
	align-items: center;
	margin-bottom: 1rem;
}

.fz-cab-toolbar > a {
	font-weight: 600;
	color: var(--fz-cab-muted);
	text-decoration: none;
}

.fz-cab-toolbar > a.is-active {
	color: var(--fz-cab-accent-dark);
	border-bottom: 2px solid var(--fz-cab-accent);
}

.fz-cab-search {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-left: auto;
}

.fz-cab-table-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.fz-cab-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.95rem;
}

.fz-cab-table th,
.fz-cab-table td {
	padding: 0.65rem 0.5rem;
	border-bottom: 1px solid var(--fz-cab-line);
	text-align: left;
	vertical-align: top;
}

.fz-cab-row-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 0.75rem;
	white-space: nowrap;
}

.fz-cab-pager {
	display: flex;
	gap: 0.5rem;
	margin-top: 1rem;
}

.fz-cab-pager a.is-active {
	font-weight: 700;
}

.fz-cab-dl {
	display: grid;
	grid-template-columns: 8rem 1fr;
	gap: 0.4rem 1rem;
}

.fz-cab-dl dt {
	color: var(--fz-cab-muted);
	font-weight: 600;
}

.fz-cab-dl dd {
	margin: 0;
}

.fz-cab-section {
	margin-bottom: 2rem;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid var(--fz-cab-line);
}

.fz-cab-steps {
	padding-left: 1.2rem;
}

.fz-cab-main--narrow {
	max-width: 28rem;
}

.fz-cab-top-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
}

.fz-cab-fop-current {
	font-size: 0.9rem;
	color: var(--fz-cab-muted);
}

@media (max-width: 640px) {
	.fz-cab-table thead {
		display: none;
	}

	.fz-cab-table tr {
		display: block;
		margin-bottom: 0.85rem;
		padding-bottom: 0.85rem;
		border-bottom: 1px solid var(--fz-cab-line);
	}

	.fz-cab-table td {
		display: flex;
		justify-content: space-between;
		gap: 1rem;
		border: 0;
		padding: 0.25rem 0;
	}

	.fz-cab-table td::before {
		content: attr(data-label);
		font-weight: 600;
		color: var(--fz-cab-muted);
	}

	.fz-cab-search {
		margin-left: 0;
		width: 100%;
	}

	.fz-cab-dl {
		grid-template-columns: 1fr;
	}
}

/* Timesheet */
.fz-cab-ts-toolbar {
	align-items: center;
	gap: 0.75rem;
}

.fz-cab-ts-period {
	display: inline-flex;
	gap: 0.4rem;
	align-items: center;
}

.fz-cab-ts-period select {
	padding: 0.35rem 0.5rem;
	border: 1px solid #cbd5e1;
	border-radius: 4px;
	font: inherit;
}

.fz-cab-ts-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	align-items: center;
	margin: 0.75rem 0 1rem;
}

.fz-cab-ts-holiday-opt {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	margin: 0 0.25rem 0 0;
	font-size: 0.88rem;
	font-weight: 500;
	max-width: 18rem;
	line-height: 1.25;
}

.fz-cab-ts-wrap {
	overflow: auto;
	max-width: 100%;
	border: 1px solid var(--fz-cab-line);
	border-radius: 6px;
	background: #fff;
	margin-bottom: 1rem;
}

.fz-cab-ts-table {
	border-collapse: separate;
	border-spacing: 0;
	min-width: 100%;
	font-size: 0.78rem;
}

.fz-cab-ts-table th,
.fz-cab-ts-table td {
	border-right: 1px solid #e2e8f0;
	border-bottom: 1px solid #e2e8f0;
	padding: 0.2rem 0.15rem;
	text-align: center;
	white-space: nowrap;
}

.fz-cab-ts-sticky {
	position: sticky;
	left: 0;
	z-index: 2;
	background: #fff;
	text-align: left !important;
	min-width: 10rem;
	max-width: 14rem;
	padding: 0.35rem 0.5rem !important;
	box-shadow: 2px 0 0 #e2e8f0;
}

.fz-cab-ts-table thead .fz-cab-ts-sticky {
	z-index: 3;
	background: #f8fafc;
}

.fz-cab-ts-name strong {
	display: block;
	font-size: 0.82rem;
	white-space: normal;
}

.fz-cab-ts-meta {
	display: block;
	color: var(--fz-cab-muted);
	font-size: 0.72rem;
	white-space: normal;
}

.fz-cab-ts-dayhead {
	min-width: 1.7rem;
	background: #f8fafc;
	font-weight: 700;
}

.fz-cab-ts-dayhead.is-weekend,
.fz-cab-ts-cell.is-weekend {
	background: #f1f5f9;
}

.fz-cab-ts-dayhead.is-holiday,
.fz-cab-ts-cell.is-holiday {
	background: #ffedd5;
}

.fz-cab-ts-cell {
	cursor: pointer;
	min-width: 1.7rem;
	line-height: 1.15;
	vertical-align: middle;
}

.fz-cab-ts-cell:focus {
	outline: 2px solid #fdba74;
	outline-offset: -2px;
}

.fz-cab-ts-cell.is-work {
	background: #ecfdf5;
}

.fz-cab-ts-code {
	display: block;
	font-weight: 700;
	font-size: 0.72rem;
}

.fz-cab-ts-hrs {
	display: block;
	font-size: 0.68rem;
	color: #334155;
}

.fz-cab-ts-sum {
	font-weight: 700;
	background: #f8fafc;
}

.fz-cab-ts-panel {
	margin: 0 0 1rem;
	padding: 0.85rem 1rem;
	border: 1px solid var(--fz-cab-line);
	border-radius: 6px;
	background: #fff;
	max-width: 22rem;
}

.fz-cab-ts-panel label {
	display: block;
	margin: 0.45rem 0 0.2rem;
	font-weight: 600;
	font-size: 0.9rem;
}

.fz-cab-ts-panel select,
.fz-cab-ts-panel input {
	width: 100%;
	padding: 0.45rem 0.55rem;
	border: 1px solid #cbd5e1;
	border-radius: 4px;
	font: inherit;
}

.fz-cab-ts-panel-btns {
	display: flex;
	gap: 0.75rem;
	align-items: center;
	margin-top: 0.75rem;
}

.fz-cab-ts-legend {
	margin-top: 0.5rem;
	font-size: 0.9rem;
	color: var(--fz-cab-muted);
}

.fz-cab-ts-legend ul {
	margin: 0.5rem 0;
	padding-left: 1.1rem;
}

.fz-cab-ts-wrap[data-readonly="1"] .fz-cab-ts-cell {
	cursor: default;
}

.fz-cab-pay-input {
	width: 6.5rem;
	max-width: 100%;
	padding: 0.25rem 0.4rem;
	font: inherit;
	text-align: right;
}

.fz-cab-pay-warn {
	display: block;
	margin-top: 0.2rem;
	font-size: 0.8rem;
	color: #b45309;
	font-weight: 600;
}

.fz-cab-pay-table tfoot th {
	background: #eef2ff;
	font-weight: 700;
}

.fz-cab-pay-wrap {
	overflow: auto;
	max-width: 100%;
	margin-bottom: 1rem;
}

.fz-cab-stats {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.5rem;
	margin: 0 0 1.25rem;
	padding: 0;
	list-style: none;
}

.fz-cab-tax-row--paid td {
	color: #166534;
}

.fz-cab-tax-row--overdue td {
	color: #991b1b;
}

.fz-cab-draft-list {
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
}

.fz-cab-draft-list li {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 1rem;
	padding: 0.55rem 0;
	border-bottom: 1px solid #e5e7eb;
}
