@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap");

.fppm-shell {
	--fppm-bg: #f8fafc;
	--fppm-card: #ffffff;
	--fppm-border: #e2e8f0;
	--fppm-text: #0f172a;
	--fppm-muted: #64748b;
	--fppm-primary: #2563eb;
	--fppm-primary-dark: #1d4ed8;
	--fppm-accent: #3b82f6;
	--fppm-success: #059669;
	--fppm-danger: #dc2626;
	--fppm-warn: #d97706;
	--fppm-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
	font-family: "Inter", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
	color: var(--fppm-text);
	margin-top: 0;
	margin-bottom: 1.75rem;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding-left: clamp(12px, 2vw, 24px);
	padding-right: clamp(12px, 2vw, 24px);
	max-width: 100vw;
	width: 100vw;
}

.fppm-shell,
.fppm-shell * {
	box-sizing: border-box;
}

.fppm-shell h1,
.fppm-shell h2,
.fppm-shell h3,
.fppm-shell h4,
.fppm-shell h5,
.fppm-shell h6 {
	font-family: "Inter", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
	line-height: 1.25;
	color: #101a2a;
}

.fppm-shell p,
.fppm-shell li,
.fppm-shell label,
.fppm-shell input,
.fppm-shell select,
.fppm-shell textarea,
.fppm-shell button {
	font-family: "Inter", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
}

.fppm-card,
.fppm-subcard {
	background: var(--fppm-card);
	border: 1px solid var(--fppm-border);
	border-radius: 14px;
	box-shadow: var(--fppm-shadow);
}

.fppm-card {
	padding: 1.25rem;
	background-image: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.fppm-subcard {
	padding: 1rem;
}

.fppm-title {
	font-size: 1.3rem;
	margin: 0 0 1rem;
	letter-spacing: 0.2px;
}

.fppm-form {
	display: grid;
	gap: 1rem;
}

.fppm-field label {
	display: block;
	font-weight: 600;
	margin-bottom: 0.35rem;
}

.fppm-field input[type="text"],
.fppm-field input[type="date"],
.fppm-field input[type="number"],
.fppm-field select,
.fppm-field textarea,
.fppm-form input[type="text"],
.fppm-form input[type="date"],
.fppm-form input[type="number"],
.fppm-form select,
.fppm-form textarea {
	width: 100%;
	border: 1px solid #c7ceda;
	border-radius: 9px;
	padding: 0.55rem 0.7rem;
	line-height: 1.35;
	background: #fff;
}

.fppm-field select[multiple] {
	min-height: 170px;
}

.fppm-help,
.fppm-muted {
	font-size: 0.88rem;
	color: var(--fppm-muted);
	margin: 0.45rem 0 0;
}

.fppm-actions {
	display: flex;
	gap: 0.6rem;
	align-items: center;
	flex-wrap: wrap;
}

.fppm-button {
	border: 1px solid var(--fppm-primary);
	background: var(--fppm-primary);
	color: #fff;
	font-weight: 700;
	padding: 0.58rem 1rem;
	border-radius: 10px;
	cursor: pointer;
	box-shadow: 0 6px 16px rgba(37, 99, 235, 0.22);
}

.fppm-button:hover,
.fppm-button:focus {
	background: var(--fppm-primary-dark);
	border-color: var(--fppm-primary-dark);
	color: #fff;
}

.fppm-button-secondary {
	background: #ffffff;
	color: #334155;
	border-color: #cbd5e1;
	box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
}

.fppm-button-secondary:hover,
.fppm-button-secondary:focus {
	background: #f8fafc;
	border-color: #94a3b8;
	color: #0f172a;
}

.fppm-notice {
	border-radius: 10px;
	padding: 0.65rem 0.9rem;
	margin: 0 0 0.9rem;
	border: 1px solid transparent;
}

.fppm-notice p {
	margin: 0;
}

.fppm-notice-success {
	border-color: #9adab7;
	background: #effcf4;
	color: #0f5f36;
}

.fppm-notice-error {
	border-color: #f0b7b1;
	background: #fff1f0;
	color: #7f1d1d;
}

.fppm-notice-info {
	border-color: #b5d6f4;
	background: #eef7ff;
	color: #1d4ed8;
}

.fppm-ajax-feedback {
	min-height: 0;
}

.fppm-grid-2,
.fppm-grid-3,
.fppm-update-grid {
	display: grid;
	gap: 0.85rem;
}

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

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

.fppm-stack {
	display: grid;
	gap: 0.9rem;
}

.fppm-project-head,
.fppm-task-head,
.fppm-meta-line,
.fppm-progress-head,
.fppm-comment-meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 0.7rem;
	flex-wrap: wrap;
}

.fppm-project-head h4,
.fppm-task-head h4 {
	margin: 0;
	font-size: 1.08rem;
}

.fppm-badges {
	display: flex;
	gap: 0.4rem;
	align-items: center;
}

.fppm-status,
.fppm-priority {
	display: inline-flex;
	align-items: center;
	padding: 0.2rem 0.55rem;
	border-radius: 999px;
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.4;
	border: 1px solid transparent;
}

.fppm-status-active,
.fppm-status-in_progress,
.fppm-status-todo {
	background: #e5f0ff;
	border-color: #b8d2f5;
	color: #0d4f84;
}

.fppm-status-draft,
.fppm-status-planning {
	background: #edf5ff;
	border-color: #ccdefa;
	color: #1e4f8f;
}

.fppm-status-on_hold,
.fppm-status-review {
	background: #fff6e8;
	border-color: #f7d7a2;
	color: #9a5700;
}

.fppm-status-completed,
.fppm-status-done {
	background: #ecfdf3;
	border-color: #a6e1c0;
	color: #0f6d40;
}

.fppm-status-archived {
	background: #f1f5f9;
	border-color: #d5dee7;
	color: #526074;
}

.fppm-priority-low {
	background: #eef6ff;
	border-color: #c6def8;
	color: #155a91;
}

.fppm-priority-medium {
	background: #f3f8ff;
	border-color: #c9daf4;
	color: #1d4a7e;
}

.fppm-priority-high {
	background: #fff5ea;
	border-color: #f7d5ac;
	color: #9c5200;
}

.fppm-priority-urgent {
	background: #fff0f0;
	border-color: #f4bcbc;
	color: #9b1c1c;
}

.fppm-progress-wrap {
	margin-top: 0.65rem;
}

.fppm-progress-track {
	position: relative;
	height: 10px;
	border-radius: 999px;
	background: #edf1f7;
	overflow: hidden;
}

.fppm-progress-track > span {
	display: block;
	height: 100%;
	background-image: linear-gradient(90deg, #2563eb, #3b82f6);
	transition: width 0.25s ease;
}

.fppm-rich-text p {
	margin: 0.4rem 0;
}

.fppm-comments {
	margin-top: 0.85rem;
	border-top: 1px dashed #d2dbe6;
	padding-top: 0.85rem;
}

.fppm-comments h5 {
	margin: 0 0 0.7rem;
	font-size: 0.97rem;
}

.fppm-kicker {
	margin: 0 0 0.2rem;
	font-size: 0.76rem;
	text-transform: uppercase;
	letter-spacing: 0.9px;
	color: #4f6277;
	font-weight: 700;
}

.fppm-workspace-head {
	margin-bottom: 0.9rem;
	padding: 1rem;
	background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
	color: #fff;
	border-radius: 12px;
}

.fppm-workspace-head h2 {
	margin: 0;
	color: #fff;
}

.fppm-workspace-head .fppm-muted {
	color: rgba(255, 255, 255, 0.9);
}

.fppm-workspace-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	margin-bottom: 1rem;
}

.fppm-workspace .fppm-shell {
	max-width: none;
	margin: 0;
}

.fppm-workspace-section {
	margin-bottom: 1rem;
}

.fppm-inline-form {
	margin: 0;
}

.fppm-link {
	display: inline-flex;
	align-items: center;
	font-weight: 600;
	color: #2563eb;
	text-decoration: none;
}

.fppm-link:hover,
.fppm-link:focus {
	color: #1d4ed8;
	text-decoration: underline;
}

.fppm-read {
	opacity: 0.82;
}

.fppm-unread {
	border-left: 4px solid #2563eb;
}

.fppm-comment-list {
	display: grid;
	gap: 0.6rem;
	margin-bottom: 0.7rem;
}

.fppm-comment-item {
	border: 1px solid #dde4ef;
	border-radius: 9px;
	padding: 0.7rem;
	background: #fbfdff;
}

.fppm-comment-meta {
	font-size: 0.82rem;
	color: var(--fppm-muted);
	margin-bottom: 0.35rem;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
}

.fppm-comment-form {
	display: grid;
	gap: 0.45rem;
}

.fppm-comment-form label {
	font-weight: 600;
}

.fppm-copy-link-btn {
	border: 1px solid #d3deec;
	background: #f8fbff;
	color: #1f4f7f;
	font-size: 0.73rem;
	font-weight: 600;
	line-height: 1;
	padding: 0.3rem 0.5rem;
	border-radius: 999px;
	cursor: pointer;
}

.fppm-copy-link-btn:hover,
.fppm-copy-link-btn:focus {
	background: #edf5ff;
	border-color: #bfd4ee;
}

.fppm-required {
	color: #b42318;
}

.fppm-project-builder {
	background-image: linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
}

.fppm-project-page-head {
	margin-bottom: 0.95rem;
}

.fppm-project-page-head__card {
	background-image: linear-gradient(135deg, #f8fbff 0%, #edf7ff 100%);
	border-color: #d6e6f7;
}

.fppm-project-page-head .fppm-title {
	margin-bottom: 0.35rem;
}

.fppm-task-page-head {
	margin-bottom: 0.95rem;
}

.fppm-task-page-head__card {
	background-image: linear-gradient(135deg, #f8fbff 0%, #edf7ff 100%);
	border-color: #d6e6f7;
}

.fppm-project-page-head__actions,
.fppm-task-page-head__actions {
	margin-top: 0.7rem;
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
}

.fppm-create-modal-shell {
	position: fixed;
	inset: 0;
	z-index: 10020;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.8rem;
}

.fppm-create-modal-shell,
.fppm-create-modal-shell * {
	box-sizing: border-box;
}

.fppm-create-modal-shell.is-hidden {
	display: none;
}

.fppm-create-modal-shell__overlay {
	position: absolute;
	inset: 0;
	background: rgba(15, 23, 42, 0.5);
	backdrop-filter: blur(4px);
}

.fppm-create-modal-shell__dialog {
	position: relative;
	z-index: 1;
	width: min(980px, calc(100vw - 1rem));
	max-height: calc(100vh - 1rem);
	background: #fff;
	border: 1px solid #dbe5f2;
	border-radius: 18px;
	box-shadow: 0 18px 50px rgba(15, 23, 42, 0.24);
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.fppm-create-modal-shell__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.8rem;
	padding: 0.92rem 1rem;
	border-bottom: 1px solid #e4ebf5;
	background: #fff;
}

.fppm-create-modal-shell__brand {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	min-width: 0;
}

.fppm-create-modal-shell__brand-icon {
	width: 40px;
	height: 40px;
	border-radius: 12px;
	background: linear-gradient(135deg, #3b82f6, #1d4ed8);
	color: #fff;
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0.03em;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.fppm-create-modal-shell__brand-copy {
	min-width: 0;
}

.fppm-create-modal-shell__brand-title {
	margin: 0;
	font-size: 1.48rem;
	font-weight: 800;
	line-height: 1.08;
	color: #0f172a;
}

.fppm-create-modal-shell__brand-subtitle {
	margin: 0.07rem 0 0;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: #64748b;
}

.fppm-create-modal-shell__head-actions {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
	flex-shrink: 0;
}

.fppm-create-modal-shell__head h3 {
	margin: 0;
	font-size: clamp(1rem, 1.8vw, 1.28rem);
	color: #0f172a;
}

.fppm-create-modal-shell__close {
	width: 34px;
	height: 34px;
	border-radius: 10px;
	border: 1px solid #d5dfec;
	background: #fff;
	color: #334155;
	font-size: 1.15rem;
	line-height: 1;
	cursor: pointer;
}

.fppm-create-modal-shell__close:hover,
.fppm-create-modal-shell__close:focus {
	background: #eff6ff;
	border-color: #bfdbfe;
	color: #1e40af;
}

.fppm-create-modal-shell__body {
	flex: 1;
	min-height: 0;
	overflow-y: auto;
	padding: 0.95rem;
	background: #f8fafc;
}

.fppm-create-modal-shell__body .fppm-shell {
	margin: 0;
	padding: 0;
	max-width: 100%;
	width: 100%;
}

.fppm-create-modal-shell__body .fppm-card {
	box-shadow: none;
	border: 0;
	border-radius: 0;
	background: transparent;
	padding: 0;
}

.fppm-create-modal-shell__body .fppm-project-section,
.fppm-create-modal-shell__body .fppm-task-create__section {
	background: #fff;
	border: 1px solid #dde5f1;
	border-radius: 14px;
}

.fppm-create-modal-shell .fppm-actions {
	justify-content: flex-end;
	gap: 0.6rem;
}

@media (max-width: 820px) {
	.fppm-create-modal-shell {
		padding: 0.45rem;
	}

	.fppm-create-modal-shell__dialog {
		width: calc(100vw - 0.9rem);
		max-height: calc(100vh - 0.9rem);
		border-radius: 14px;
	}

	.fppm-create-modal-shell__head {
		padding: 0.75rem 0.85rem;
	}

	.fppm-create-modal-shell__brand-title {
		font-size: 1.14rem;
	}

	.fppm-create-modal-shell__head h3 {
		display: none;
	}

	.fppm-create-modal-shell__body {
		padding: 0.75rem;
	}
}

html.fppm-modal-open,
body.fppm-modal-open {
	overflow: hidden;
}

.fppm-project-builder__head {
	margin-bottom: 0.3rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid #e6edf6;
}

.fppm-project-builder__intro {
	margin: 0.15rem 0 0.1rem;
}

.fppm-project-builder__form {
	gap: 1.2rem;
}

.fppm-project-section {
	border: 1px solid #e4e9f2;
	border-radius: 12px;
	padding: 0.95rem 1rem;
	background: #fdfefe;
}

.fppm-project-section h4 {
	margin: 0 0 0.85rem;
	font-size: 1.03rem;
}

.fppm-project-grid-1,
.fppm-project-grid-2 {
	display: grid;
	gap: 0.85rem;
}

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

.fppm-project-actions {
	justify-content: flex-end;
	padding-top: 0.2rem;
}

.fppm-project-list-card {
	background-image: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.fppm-directory-head {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	align-items: flex-start;
	justify-content: space-between;
	margin-bottom: 0.55rem;
}

.fppm-directory-filters {
	margin-bottom: 0.85rem;
}

.fppm-directory-tabs {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	background: #f1f5f9;
	border: 1px solid #e2e8f0;
	padding: 0.2rem;
	border-radius: 10px;
}

.fppm-directory-tab {
	border: 0;
	background: transparent;
	color: #475569;
	font-size: 0.8rem;
	font-weight: 600;
	padding: 0.36rem 0.68rem;
	border-radius: 8px;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.fppm-directory-tab:hover,
.fppm-directory-tab:focus {
	color: #334155;
	background: #fff;
}

.fppm-directory-tab.is-active {
	background: #fff;
	color: #0f172a;
	box-shadow: 0 1px 3px rgba(15, 23, 42, 0.09);
}

.fppm-directory-tab__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 18px;
	height: 18px;
	padding: 0 0.32rem;
	border-radius: 999px;
	background: #dbeafe;
	color: #1d4ed8;
	font-size: 0.68rem;
	font-weight: 800;
}

.fppm-directory-bulk {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.65rem;
	margin: 0.45rem 0 0.8rem;
	padding: 0.55rem 0.7rem;
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	background: #f8fafc;
}

.fppm-directory-bulk__select-all {
	display: inline-flex;
	align-items: center;
	gap: 0.42rem;
	font-size: 0.8rem;
	color: #334155;
	font-weight: 600;
}

.fppm-directory-bulk__count {
	font-size: 0.8rem;
	color: #64748b;
	font-weight: 600;
}

.fppm-directory-bulk__actions {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
}

.fppm-project-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.85rem;
}

.fppm-project-tile {
	background: #fff;
	border: 1px solid #e1e8f2;
}

.fppm-project-tile__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.7rem;
}

.fppm-project-tile__select {
	display: inline-flex;
	align-items: center;
	margin-top: 0.18rem;
}

.fppm-project-tile__select input {
	width: 16px;
	height: 16px;
}

.fppm-project-tile__head h4 {
	margin: 0;
	font-size: 1.02rem;
}

.fppm-project-tile__head h4 a {
	color: #0f172a;
	text-decoration: none;
}

.fppm-project-tile__head h4 a:hover,
.fppm-project-tile__head h4 a:focus {
	color: #1d4ed8;
	text-decoration: underline;
}

.fppm-project-tile__meta {
	margin: 0.4rem 0 0.6rem;
	font-size: 0.84rem;
	color: #5f6b7c;
}

.fppm-project-tile__meta span {
	white-space: nowrap;
}

.fppm-project-tile__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.55rem;
	margin-bottom: 0.6rem;
}

.fppm-project-tile__grid span {
	display: block;
	font-size: 0.74rem;
	color: #6b7280;
	margin-bottom: 0.05rem;
}

.fppm-project-tile__grid strong {
	display: block;
	font-size: 0.86rem;
	color: #0f172a;
	word-break: break-word;
}

.fppm-project-tile__description {
	border: 1px solid #ebeff5;
	border-radius: 8px;
	padding: 0.5rem 0.62rem;
	background: #fafcff;
	margin-bottom: 0.55rem;
}

.fppm-project-tile__progress {
	margin-top: 0.15rem;
}

.fppm-project-tile__tasks {
	margin-top: 0.55rem;
	border: 1px dashed #dde7f3;
	background: #fafcff;
	border-radius: 9px;
	padding: 0.55rem 0.65rem;
}

.fppm-project-tile__tasks h5 {
	margin: 0 0 0.4rem;
	font-size: 0.8rem;
	font-weight: 700;
	color: #334155;
}

.fppm-project-tile__task-cards {
	display: grid;
	gap: 0.45rem;
}

.fppm-project-task-card {
	display: grid;
	gap: 0.36rem;
	padding: 0.48rem 0.55rem;
	border: 1px solid #dce5f2;
	border-radius: 10px;
	background: #fff;
	text-decoration: none;
	color: inherit;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.fppm-project-task-card:hover,
.fppm-project-task-card:focus {
	border-color: #bfdbfe;
	box-shadow: 0 4px 16px rgba(30, 64, 175, 0.08);
	transform: translateY(-1px);
}

.fppm-project-task-card__top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.4rem;
}

.fppm-project-task-card__top strong {
	font-size: 0.8rem;
	line-height: 1.35;
	color: #0f172a;
}

.fppm-project-task-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.32rem 0.52rem;
	font-size: 0.72rem;
	color: #64748b;
}

.fppm-project-tile__members {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	margin-top: 0.55rem;
}

.fppm-project-tile__members .avatar {
	border: 1px solid #e4ebf5;
	box-shadow: none;
}

.fppm-project-single-card {
	display: grid;
	gap: 0.9rem;
}

.fppm-project-single-card__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.8rem;
	flex-wrap: wrap;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid #e6edf6;
}

.fppm-project-single-card__head .fppm-title {
	margin-bottom: 0.25rem;
}

.fppm-project-single-card__head-actions {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.fppm-project-lock-toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
}

.fppm-project-single-card__tasks {
	border: 1px dashed #dde7f3;
	background: #fafcff;
	border-radius: 10px;
	padding: 0.75rem;
}

.fppm-project-single-card__tasks-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.6rem;
	flex-wrap: wrap;
	margin-bottom: 0.65rem;
}

.fppm-project-single-card__tasks-head h4 {
	margin: 0;
	font-size: 0.98rem;
}

.fppm-project-single-card__tasks-head a {
	color: #1d4ed8;
	font-weight: 600;
	font-size: 0.84rem;
	text-decoration: none;
}

.fppm-project-single-card__tasks-head a:hover,
.fppm-project-single-card__tasks-head a:focus {
	text-decoration: underline;
}

.fppm-project-single-card__task-list {
	display: grid;
	gap: 0.5rem;
}

@media (max-width: 900px) {
	.fppm-grid-3,
	.fppm-update-grid {
		grid-template-columns: 1fr;
	}

	.fppm-project-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 680px) {
	.fppm-grid-2 {
		grid-template-columns: 1fr;
	}

	.fppm-project-grid-2 {
		grid-template-columns: 1fr;
	}

	.fppm-project-actions {
		justify-content: stretch;
	}

	.fppm-project-actions .fppm-button {
		width: 100%;
	}

	.fppm-workspace-grid {
		grid-template-columns: 1fr;
	}

	.fppm-card {
		padding: 0.95rem;
	}

	.fppm-project-single-card__head-actions {
		width: 100%;
		justify-content: flex-start;
	}

	.fppm-project-lock-toggle {
		width: 100%;
		justify-content: center;
	}
}

.fppm-button-ghost {
	background: #fff;
	color: #334155;
	border-color: #d6dde8;
}

.fppm-button-ghost:hover,
.fppm-button-ghost:focus {
	background: #f8fafc;
	border-color: #c7d2e2;
	color: #0f172a;
}

.fppm-task-create {
	background: #fff;
	border: 1px solid #dfe5f0;
	font-family: "Inter", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
}

.fppm-task-create__head {
	margin-bottom: 1rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid #e9eef6;
}

.fppm-task-create__form {
	gap: 1rem;
}

.fppm-task-create__section {
	border: 1px solid #e4eaf4;
	border-radius: 12px;
	padding: 0.95rem;
	background: #fdfefe;
	display: grid;
	gap: 0.8rem;
}

.fppm-task-create__section h4 {
	margin: 0;
	font-size: 1.03rem;
}

.fppm-task-create__grid {
	display: grid;
	gap: 0.85rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fppm-editor-wrap {
	border: 1px solid #dce3ef;
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
}

.fppm-editor-wrap .wp-editor-wrap {
	border: 0;
}

.fppm-editor-wrap .quicktags-toolbar,
.fppm-editor-wrap .mce-toolbar-grp {
	border-bottom: 1px solid #e4ebf4;
}

.fppm-priority-pills {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.55rem;
}

.fppm-priority-pill {
	position: relative;
	display: block;
	cursor: pointer;
}

.fppm-priority-pill input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.fppm-priority-pill span {
	display: inline-flex;
	width: 100%;
	justify-content: center;
	align-items: center;
	padding: 0.5rem 0.45rem;
	border: 1px solid #d8e0ec;
	border-radius: 10px;
	font-size: 0.82rem;
	font-weight: 600;
	color: #334155;
	background: #fff;
	transition: all 0.2s ease;
}

.fppm-priority-pill input:checked + span {
	border-color: #2563eb;
	background: #eff6ff;
	color: #1d4ed8;
}

.fppm-dropzone {
	border: 2px dashed #ced8e8;
	border-radius: 12px;
	padding: 1rem;
	background: #f8fbff;
	text-align: center;
	cursor: pointer;
	transition: all 0.2s ease;
}

.fppm-dropzone:hover {
	border-color: #98c5e5;
	background: #f1f8ff;
}

.fppm-dropzone.is-drag-active {
	border-color: #2563eb;
	background: #eff6ff;
}

.fppm-dropzone input[type="file"] {
	display: block;
	margin: 0.62rem auto 0;
	font-size: 0.76rem;
	color: #475569;
}

.fppm-dropzone.is-enhanced input[type="file"] {
	display: none;
}

.fppm-dropzone__title {
	margin: 0;
	font-weight: 700;
	color: #1e293b;
}

.fppm-dropzone__text {
	margin: 0.2rem 0 0;
	color: #64748b;
	font-size: 0.85rem;
}

.fppm-dropzone__files {
	list-style: none;
	margin: 0.6rem 0 0;
	padding: 0;
	display: grid;
	gap: 0.6rem;
}

.fppm-dropzone__files.is-hidden {
	display: none;
}

.fppm-upload-feedback {
	margin-top: 0.55rem;
	padding: 0.45rem 0.65rem;
	border-radius: 10px;
	font-size: 0.78rem;
	font-weight: 600;
	background: #eff6ff;
	color: #1e40af;
	border: 1px solid #bfdbfe;
}

.fppm-upload-feedback.is-hidden {
	display: none;
}

.fppm-upload-feedback.is-error {
	background: #fef2f2;
	color: #b91c1c;
	border-color: #fecaca;
}

.fppm-upload-feedback.is-success {
	background: #ecfdf5;
	color: #047857;
	border-color: #a7f3d0;
}

.fppm-upload-item {
	display: grid;
	grid-template-columns: 92px minmax(0, 1fr) auto;
	gap: 0.75rem;
	align-items: center;
	background: #fff;
	border: 1px solid #dbe5f2;
	border-radius: 12px;
	padding: 0.55rem;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.fppm-upload-item__preview {
	width: 92px;
	height: 72px;
	border-radius: 9px;
	border: 1px solid #dbe5f2;
	background: #f8fafc;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.fppm-upload-item__preview img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.fppm-upload-item__file-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 28px;
	border-radius: 999px;
	background: #e2e8f0;
	color: #334155;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	padding: 0 0.45rem;
}

.fppm-upload-item__meta {
	min-width: 0;
	display: grid;
	gap: 0.36rem;
}

.fppm-upload-item__name-row {
	display: flex;
	gap: 0.45rem;
	align-items: center;
	justify-content: space-between;
}

.fppm-upload-item__name-row strong {
	font-size: 0.85rem;
	color: #0f172a;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.fppm-upload-item__status {
	font-size: 0.72rem;
	font-weight: 700;
	border-radius: 999px;
	padding: 0.15rem 0.44rem;
	background: #e0f2fe;
	color: #0369a1;
	white-space: nowrap;
}

.fppm-upload-item__subline {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.6rem;
	font-size: 0.74rem;
	color: #64748b;
}

.fppm-upload-item__progress {
	height: 7px;
	border-radius: 999px;
	background: #e2e8f0;
	overflow: hidden;
}

.fppm-upload-item__progress span {
	display: block;
	height: 100%;
	width: 0;
	background: linear-gradient(90deg, #0ea5e9, #2563eb);
	transition: width 0.16s ease;
}

.fppm-upload-item.is-uploaded .fppm-upload-item__status {
	background: #dcfce7;
	color: #166534;
}

.fppm-upload-item.is-uploaded .fppm-upload-item__progress span {
	background: linear-gradient(90deg, #22c55e, #16a34a);
}

.fppm-upload-item.is-failed .fppm-upload-item__status {
	background: #fee2e2;
	color: #b91c1c;
}

.fppm-upload-item.is-failed .fppm-upload-item__progress span {
	background: linear-gradient(90deg, #f87171, #dc2626);
}

.fppm-upload-item.is-cancelled .fppm-upload-item__status,
.fppm-upload-item.is-removing .fppm-upload-item__status {
	background: #e2e8f0;
	color: #475569;
}

.fppm-upload-item__actions {
	display: grid;
	gap: 0.4rem;
	justify-items: end;
}

.fppm-upload-btn {
	border: 1px solid #c7d2e5;
	background: #f8fbff;
	color: #1f4f7f;
	font-size: 0.74rem;
	font-weight: 700;
	border-radius: 999px;
	padding: 0.25rem 0.6rem;
	line-height: 1.25;
	cursor: pointer;
}

.fppm-upload-btn:hover,
.fppm-upload-btn:focus {
	background: #edf5ff;
	border-color: #abc6e7;
	color: #153a5f;
}

.fppm-upload-btn.is-hidden {
	display: none;
}

.fppm-upload-btn:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

.fppm-task-create__hint {
	margin: 0.85rem 0 0;
	text-align: center;
	font-size: 0.8rem;
	color: #64748b;
}

.fppm-task-thread-board {
	background: #fff;
	border: 1px solid #dce4ef;
	font-family: "Inter", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
}

.fppm-task-thread-board__head {
	border-bottom: 1px solid #edf2f8;
	padding-bottom: 0.8rem;
	margin-bottom: 0.95rem;
}

.fppm-task-thread-board__head .fppm-title {
	margin-bottom: 0.25rem;
}

.fppm-task-thread-list {
	display: grid;
	gap: 1rem;
}

.fppm-task-thread {
	border: 1px solid #dfe7f3;
	border-radius: 14px;
	background: #fdfefe;
	overflow: hidden;
}

.fppm-task-thread__header {
	padding: 0.95rem 1rem;
	border-bottom: 1px solid #ebf0f6;
	background: #fff;
}

.fppm-task-thread__badges {
	display: flex;
	gap: 0.4rem;
	align-items: center;
	margin-bottom: 0.45rem;
}

.fppm-task-thread__id {
	font-size: 0.78rem;
	font-family: "SFMono-Regular", "Consolas", "Liberation Mono", monospace;
	color: #64748b;
	display: block;
	margin-bottom: 0.35rem;
}

.fppm-task-thread__header h4 {
	margin: 0;
	font-size: 1.06rem;
	line-height: 1.35;
}

.fppm-task-thread__description {
	padding: 0.95rem 1rem 0;
}

.fppm-task-replies {
	padding: 0.9rem 1rem 1rem;
	background: #f8fafd;
}

.fppm-task-replies__head h5 {
	margin: 0 0 0.75rem;
	font-size: 0.98rem;
}

.fppm-task-replies__list {
	display: grid;
	gap: 0.65rem;
	margin-bottom: 0.8rem;
}

.fppm-thread-reply {
	border: 1px solid #dce5f2;
	border-radius: 10px;
	padding: 0.75rem;
	background: #fff;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.fppm-thread-reply.is-highlighted {
	animation: fppmReplyHighlight 2s ease;
}

@keyframes fppmReplyHighlight {
	0% {
		box-shadow: 0 0 0 0 rgba(37, 99, 235, 0.35);
		border-color: #93c5fd;
		background: #eff6ff;
	}
	70% {
		box-shadow: 0 0 0 10px rgba(37, 99, 235, 0);
	}
	100% {
		border-color: #dce5f2;
		background: #fff;
	}
}

.fppm-thread-reply__meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
	margin-bottom: 0.45rem;
}

.fppm-thread-reply__author {
	display: inline-flex;
	gap: 0.4rem;
	align-items: center;
	flex-wrap: wrap;
	font-size: 0.8rem;
	color: #64748b;
}

.fppm-thread-reply__author strong {
	color: #0f172a;
	font-size: 0.84rem;
}

.fppm-thread-reply__tools {
	display: inline-flex;
	gap: 0.35rem;
	align-items: center;
	flex-wrap: wrap;
}

.fppm-thread-reply__id,
.fppm-reply-ref-btn,
.fppm-reply-edit-btn {
	border: 1px solid #d5dfec;
	background: #f8fbff;
	color: #1f4f7f;
	font-size: 0.72rem;
	font-weight: 700;
	border-radius: 999px;
	padding: 0.28rem 0.52rem;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
}

.fppm-thread-reply__id:hover,
.fppm-thread-reply__id:focus,
.fppm-reply-ref-btn:hover,
.fppm-reply-ref-btn:focus,
.fppm-reply-edit-btn:hover,
.fppm-reply-edit-btn:focus {
	background: #edf5ff;
	border-color: #bdd5ef;
	color: #163d63;
}

.fppm-thread-reply__content {
	font-size: 0.9rem;
	color: #1f2937;
}

.fppm-reply-ref-link {
	color: #2563eb;
	font-weight: 700;
	text-decoration: none;
}

.fppm-reply-ref-link:hover,
.fppm-reply-ref-link:focus {
	text-decoration: underline;
}

.fppm-comment-form-create,
.fppm-comment-form-edit {
	background: #fff;
	border: 1px solid #dce5f2;
	border-radius: 10px;
	padding: 0.7rem;
}

.fppm-comment-form-edit.is-hidden {
	display: none;
}

.fppm-comment-form textarea {
	min-height: 92px;
}

.fppm-comment-form__actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.8rem;
	flex-wrap: wrap;
}

@media (max-width: 900px) {
	.fppm-task-create__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 680px) {
	.fppm-priority-pills {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fppm-upload-item {
		grid-template-columns: 1fr;
	}

	.fppm-upload-item__preview {
		width: 100%;
		height: 140px;
	}

	.fppm-upload-item__actions {
		grid-auto-flow: column;
		justify-content: flex-start;
	}

	.fppm-thread-reply__meta {
		align-items: flex-start;
	}

	.fppm-comment-form__actions {
		flex-direction: column;
		align-items: stretch;
	}
}

.fppm-task-directory {
	background: #fff;
	border: 1px solid #e2e8f0;
}

.fppm-task-directory__head {
	margin-bottom: 0.85rem;
	padding-bottom: 0.7rem;
	border-bottom: 1px solid #e2e8f0;
}

.fppm-task-directory__head .fppm-title {
	margin-bottom: 0.22rem;
}

.fppm-task-directory__head .fppm-muted {
	margin: 0;
}

.fppm-task-directory__list {
	display: grid;
	gap: 0.75rem;
}

.fppm-task-directory__item {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0.75rem;
	align-items: center;
	padding: 0.85rem;
	border: 1px solid #dbe5f2;
	border-radius: 14px;
	background: #fdfefe;
	position: relative;
	isolation: isolate;
}

.fppm-task-directory__item-main {
	min-width: 0;
	position: relative;
	z-index: 1;
}

.fppm-task-directory__select {
	display: inline-flex;
	align-items: center;
}

.fppm-task-directory__select input {
	width: 16px;
	height: 16px;
	position: relative;
	z-index: 2;
}

.fppm-task-directory__item-title-row {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.45rem;
}

.fppm-task-directory__item-title {
	font-size: 1rem;
	font-weight: 700;
	color: #0f172a;
	text-decoration: none;
	margin-right: 0.25rem;
	position: relative;
	z-index: 2;
}

.fppm-task-directory__item-title:hover,
.fppm-task-directory__item-title:focus {
	color: #1d4ed8;
	text-decoration: underline;
}

.fppm-task-directory__item-meta {
	margin-top: 0.5rem;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.35rem 0.75rem;
	font-size: 0.8rem;
	color: #475569;
}

.fppm-task-directory__item-meta strong {
	color: #0f172a;
}

.fppm-task-directory__item-meta a {
	color: #0f172a;
	font-weight: 600;
	text-decoration: none;
	position: relative;
	z-index: 2;
}

.fppm-task-directory__item-meta a:hover,
.fppm-task-directory__item-meta a:focus {
	color: #1d4ed8;
	text-decoration: underline;
}

.fppm-task-directory__item-open {
	width: 34px;
	height: 34px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	border: 1px solid #cbd5e1;
	background: #fff;
	color: #1d4ed8;
	font-weight: 800;
	text-decoration: none;
	flex: 0 0 auto;
	position: relative;
	z-index: 2;
}

.fppm-task-directory__item-open:hover,
.fppm-task-directory__item-open:focus {
	background: #eff6ff;
	border-color: #93c5fd;
	color: #1d4ed8;
}

.fppm-task-directory__item-actions {
	display: inline-flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.4rem;
	position: relative;
	z-index: 2;
}

.fppm-task-details-wrap {
	font-family: "Inter", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
}

.fppm-task-single-nav {
	margin-bottom: 0.85rem;
}

.fppm-task-single-nav a {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.45rem 0.72rem;
	border-radius: 999px;
	border: 1px solid #dbe5f2;
	background: #fff;
	color: #1e40af;
	font-size: 0.8rem;
	font-weight: 600;
	text-decoration: none;
}

.fppm-task-single-nav a:hover,
.fppm-task-single-nav a:focus {
	background: #eff6ff;
	border-color: #bfdbfe;
	color: #1d4ed8;
}

.fppm-task-details-list {
	display: grid;
	gap: 1.3rem;
}

.fppm-task-details-card {
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 18px;
	box-shadow: 0 2px 8px rgba(15, 23, 42, 0.05);
	overflow: hidden;
}

.fppm-task-details-card__head {
	padding: 1.35rem 1.5rem 1.1rem;
	border-bottom: 1px solid #f0f2f5;
}

.fppm-task-details-card__badges {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: 0.75rem;
}

.fppm-task-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	padding: 0.25rem 0.62rem;
	border-radius: 999px;
	font-size: 0.74rem;
	font-weight: 700;
	border: 1px solid transparent;
	line-height: 1.3;
}

.fppm-task-chip__dot {
	width: 6px;
	height: 6px;
	border-radius: 999px;
	background: currentColor;
}

.fppm-task-chip-status-todo,
.fppm-task-chip-status-in_progress {
	background: #eff6ff;
	border-color: #bfdbfe;
	color: #1d4ed8;
}

.fppm-task-chip-status-review {
	background: #fef3c7;
	border-color: #fde68a;
	color: #b45309;
}

.fppm-task-chip-status-done {
	background: #ecfdf3;
	border-color: #bbf7d0;
	color: #15803d;
}

.fppm-task-chip-priority-low {
	background: #f1f5f9;
	border-color: #dce3ea;
	color: #475569;
}

.fppm-task-chip-priority-medium {
	background: #eff6ff;
	border-color: #bfdbfe;
	color: #1e40af;
}

.fppm-task-chip-priority-high {
	background: #fff7ed;
	border-color: #fed7aa;
	color: #c2410c;
}

.fppm-task-chip-priority-urgent {
	background: #fef2f2;
	border-color: #fecaca;
	color: #b91c1c;
}

.fppm-task-details-card__task-id {
	margin-left: auto;
	color: #9ca3af;
	font-size: 0.82rem;
	font-weight: 600;
}

.fppm-task-details-card h2 {
	margin: 0;
	font-size: clamp(1.35rem, 2vw, 1.85rem);
	line-height: 1.25;
	color: #111827;
}

.fppm-task-project-overview {
	margin-top: 0.65rem;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	flex-wrap: wrap;
	font-size: 0.83rem;
	color: #475569;
}

.fppm-task-project-overview a {
	color: #1d4ed8;
	font-weight: 700;
	text-decoration: none;
}

.fppm-task-project-overview a:hover,
.fppm-task-project-overview a:focus {
	text-decoration: underline;
}

.fppm-task-project-overview__status,
.fppm-task-project-overview__client {
	display: inline-flex;
	align-items: center;
	padding: 0.15rem 0.48rem;
	border-radius: 999px;
	font-size: 0.72rem;
	font-weight: 600;
	border: 1px solid #dbe5f2;
	background: #f8fafc;
	color: #475569;
}

.fppm-task-project-related {
	margin-top: 0.9rem;
	padding: 0.7rem;
	border: 1px solid #e5e7eb;
	border-radius: 12px;
	background: #f8fafc;
}

.fppm-task-project-related__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.55rem;
	flex-wrap: wrap;
	margin-bottom: 0.55rem;
}

.fppm-task-project-related__head h4 {
	margin: 0;
	font-size: 0.86rem;
	color: #0f172a;
}

.fppm-task-project-related__head a {
	font-size: 0.76rem;
	font-weight: 700;
	color: #1d4ed8;
	text-decoration: none;
}

.fppm-task-project-related__head a:hover,
.fppm-task-project-related__head a:focus {
	text-decoration: underline;
}

.fppm-task-project-related__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	gap: 0.48rem;
}

.fppm-task-project-related__card {
	display: grid;
	gap: 0.35rem;
	border: 1px solid #dbe5f2;
	border-radius: 10px;
	padding: 0.48rem 0.55rem;
	background: #fff;
	text-decoration: none;
	color: inherit;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.fppm-task-project-related__card:hover,
.fppm-task-project-related__card:focus {
	border-color: #bfdbfe;
	box-shadow: 0 2px 10px rgba(30, 64, 175, 0.08);
}

.fppm-task-project-related__card-top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.38rem;
}

.fppm-task-project-related__card-top strong {
	font-size: 0.79rem;
	line-height: 1.35;
	color: #0f172a;
}

.fppm-task-project-related__card-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3rem 0.52rem;
	font-size: 0.72rem;
	color: #64748b;
}

.fppm-task-details-card__meta {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.75rem;
	margin-top: 0.75rem;
	font-size: 0.92rem;
	color: #334155;
}

.fppm-task-details-card__meta strong {
	color: #111827;
}

.fppm-task-details-card__meta a {
	color: #1d4ed8;
	font-weight: 700;
	text-decoration: none;
}

.fppm-task-details-card__meta a:hover,
.fppm-task-details-card__meta a:focus {
	text-decoration: underline;
}

.fppm-task-details-card__desc {
	margin-top: 0.8rem;
	color: #4b5563;
}

.fppm-task-attachments {
	margin-top: 0.95rem;
}

.fppm-task-attachments h4 {
	margin: 0 0 0.55rem;
	font-size: 0.83rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #475569;
}

.fppm-task-attachments__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 0.65rem;
}

.fppm-task-attachment {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	padding: 0.45rem;
	border: 1px solid #dce5f2;
	border-radius: 10px;
	background: #f8fbff;
	text-decoration: none;
	color: inherit;
}

.fppm-task-attachment:hover,
.fppm-task-attachment:focus {
	border-color: #bdd5ef;
	background: #edf5ff;
}

.fppm-task-attachment__preview {
	width: 66px;
	height: 52px;
	border-radius: 8px;
	background: #e2e8f0;
	border: 1px solid #d5dfec;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	flex-shrink: 0;
}

.fppm-task-attachment__preview img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.fppm-task-attachment__file-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 24px;
	border-radius: 999px;
	background: #cbd5e1;
	color: #334155;
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	padding: 0 0.35rem;
}

.fppm-task-attachment__meta {
	min-width: 0;
	display: grid;
	gap: 0.18rem;
}

.fppm-task-attachment__meta strong {
	font-size: 0.78rem;
	color: #0f172a;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.fppm-task-attachment__meta span {
	font-size: 0.72rem;
	color: #64748b;
}

.fppm-task-details-card__author-row {
	margin-top: 1rem;
	padding-top: 0.85rem;
	border-top: 1px solid #f3f4f6;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 0.65rem;
	flex-wrap: wrap;
}

.fppm-task-details-card__author {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
}

.fppm-task-details-card__author p {
	margin: 0;
	font-size: 0.9rem;
	font-weight: 700;
	color: #111827;
}

.fppm-task-details-card__author span {
	display: block;
	font-size: 0.75rem;
	color: #6b7280;
}

.fppm-task-details-card__actions {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
}

.fppm-icon-button {
	width: 34px;
	height: 34px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 10px;
	border: 1px solid #e5e7eb;
	background: #fff;
	color: #6b7280;
	cursor: pointer;
}

.fppm-icon-button:hover,
.fppm-icon-button:focus {
	background: #f8fafc;
	color: #1f2937;
	border-color: #d1d5db;
}

.fppm-icon-button:disabled {
	opacity: 0.55;
	cursor: not-allowed;
}

.fppm-icon-button.fppm-task-status-toggle.is-task-close {
	color: #b91c1c;
	border-color: #fecaca;
	background: #fff5f5;
}

.fppm-icon-button.fppm-task-status-toggle.is-task-close:hover,
.fppm-icon-button.fppm-task-status-toggle.is-task-close:focus {
	color: #991b1b;
	border-color: #fca5a5;
	background: #fee2e2;
}

.fppm-icon-button.fppm-task-status-toggle.is-task-open {
	color: #166534;
	border-color: #bbf7d0;
	background: #f0fdf4;
}

.fppm-icon-button.fppm-task-status-toggle.is-task-open:hover,
.fppm-icon-button.fppm-task-status-toggle.is-task-open:focus {
	color: #14532d;
	border-color: #86efac;
	background: #dcfce7;
}

.fppm-task-status-toggle .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.fppm-task-details-card__replies {
	background: #f9fafb;
	padding: 1.2rem 1.5rem 1.4rem;
}

.fppm-task-details-card__replies-head h3 {
	margin: 0 0 0.9rem;
	font-size: 1rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.01em;
	color: #111827;
}

.fppm-task-reply-list {
	display: grid;
	gap: 0.85rem;
}

.fppm-task-reply-system {
	position: relative;
	padding: 0.25rem 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.fppm-task-reply-system__line {
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	border-top: 1px dashed #cbd5e1;
	transform: translateY(-50%);
}

.fppm-task-reply-system__pill {
	position: relative;
	z-index: 1;
	background: #fff;
	border: 1px solid #dbe5f2;
	border-radius: 999px;
	padding: 0.3rem 0.7rem;
	font-size: 0.76rem;
	color: #475569;
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.35rem;
}

.fppm-task-reply-system__pill strong {
	color: #111827;
}

.fppm-task-reply-system__pill em {
	font-style: normal;
	color: #94a3b8;
	font-size: 0.72rem;
}

.fppm-task-reply-card {
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 14px;
	padding: 0.95rem;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.fppm-task-reply-card.is-internal-note {
	background: #fefce8;
	border-color: #fef08a;
}

.fppm-task-reply-card.is-highlighted {
	animation: fppmReplyHighlightPulse 2s ease-out;
}

@keyframes fppmReplyHighlightPulse {
	0% {
		box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.7);
		border-color: #3b82f6;
		background-color: #eff6ff;
	}
	70% {
		box-shadow: 0 0 0 10px rgba(59, 130, 246, 0);
		border-color: #e5e7eb;
		background-color: #ffffff;
	}
	100% {
		box-shadow: 0 0 0 0 rgba(59, 130, 246, 0);
		border-color: #e5e7eb;
		background-color: #ffffff;
	}
}

.fppm-task-reply-card__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 0.6rem;
	flex-wrap: wrap;
	margin-bottom: 0.55rem;
}

.fppm-task-reply-card__author {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
}

.fppm-task-reply-card__author-top {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	flex-wrap: wrap;
}

.fppm-task-reply-card__author strong {
	font-size: 0.92rem;
	color: #111827;
}

.fppm-task-reply-card__author span {
	font-size: 0.82rem;
	color: #6b7280;
}

.fppm-task-reply-card__internal {
	display: inline-flex;
	align-items: center;
	padding: 0.15rem 0.4rem;
	border-radius: 6px;
	border: 1px solid #fde68a;
	background: #fef3c7;
	color: #92400e;
	font-size: 0.63rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.fppm-task-reply-card__tools {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	flex-wrap: wrap;
}

.fppm-task-reply-card__content {
	font-size: 0.95rem;
	color: #374151;
	line-height: 1.6;
	padding-left: 2.6rem;
}

.fppm-reply-editor-form {
	margin-top: 1rem;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 14px;
	padding: 1rem;
}

.fppm-reply-ajax-feedback {
	min-height: 0;
}

.fppm-task-reply-editor-open.is-hidden,
.fppm-task-reply-editor-closed.is-hidden {
	display: none;
}

.fppm-task-reply-editor-closed {
	margin-top: 1rem;
	padding: 1.1rem;
	border: 1px solid #d1fae5;
	background: #ecfdf5;
	border-radius: 14px;
	text-align: center;
	display: grid;
	gap: 0.5rem;
	justify-items: center;
}

.fppm-task-reply-editor-closed__icon {
	width: 38px;
	height: 38px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	background: #10b981;
	color: #fff;
	font-weight: 800;
}

.fppm-task-reply-editor-closed h4 {
	margin: 0;
	font-size: 1rem;
	color: #065f46;
}

.fppm-task-reply-editor-closed p {
	margin: 0;
	color: #047857;
	font-size: 0.84rem;
}

.fppm-reply-editor {
	display: flex;
	gap: 0.8rem;
	align-items: flex-start;
}

.fppm-reply-editor__avatar .avatar {
	border: 2px solid #fff;
	box-shadow: 0 1px 6px rgba(15, 23, 42, 0.14);
}

.fppm-reply-editor__body {
	flex: 1;
	min-width: 0;
}

.fppm-reply-editor__box {
	border: 1px solid #d1d5db;
	border-radius: 12px;
	overflow: hidden;
	background: #fff;
}

.fppm-reply-editor__box-wysiwyg .wp-editor-wrap {
	border: 0;
}

.fppm-reply-editor__box-wysiwyg .wp-editor-tools {
	border-bottom: 1px solid #e5e7eb;
	background: #f9fafb;
	padding: 4px 6px;
}

.fppm-reply-editor__box-wysiwyg .quicktags-toolbar,
.fppm-reply-editor__box-wysiwyg .mce-toolbar-grp {
	border: 0;
	background: #f9fafb;
}

.fppm-reply-editor__box-wysiwyg .wp-editor-container {
	border: 0;
}

.fppm-reply-editor__box-wysiwyg textarea.wp-editor-area,
.fppm-reply-editor__box-wysiwyg .mce-content-body {
	font-size: 0.92rem;
	color: #1f2937;
}

.fppm-reply-editor__toolbar {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.2rem;
	padding: 0.45rem;
	background: #f9fafb;
	border-bottom: 1px solid #e5e7eb;
}

.editor-btn {
	border: 0;
	background: transparent;
	padding: 0.35rem 0.45rem;
	border-radius: 8px;
	font-size: 0.84rem;
	color: #6b7280;
	cursor: pointer;
}

.editor-btn:hover,
.editor-btn:focus {
	background: #f3f4f6;
	color: #111827;
}

.fppm-reply-editor__box textarea {
	width: 100%;
	border: 0;
	min-height: 120px;
	padding: 0.8rem 0.9rem;
	resize: vertical;
	font-size: 0.92rem;
	color: #1f2937;
}

.fppm-reply-editor__box textarea:focus {
	outline: none;
}

.fppm-reply-editor__actions {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 0.75rem;
	margin-top: 0.75rem;
	flex-wrap: wrap;
}

.fppm-internal-toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	font-size: 0.85rem;
	color: #4b5563;
	cursor: pointer;
}

.fppm-internal-toggle input {
	width: 16px;
	height: 16px;
}

.fppm-reply-editor__right {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}

.fppm-reply-editor__right select {
	min-width: 180px;
	border: 1px solid #d1d5db;
	border-radius: 9px;
	background: #fff;
	padding: 0.45rem 0.6rem;
	font-size: 0.84rem;
}

.fppm-reply-send {
	border: 1px solid #2563eb;
	background: #2563eb;
	color: #fff;
	border-radius: 9px;
	padding: 0.48rem 1rem;
	font-weight: 700;
	font-size: 0.85rem;
	cursor: pointer;
}

.fppm-reply-send:hover,
.fppm-reply-send:focus {
	background: #1d4ed8;
	border-color: #1d4ed8;
}

.fppm-notes-shell {
	max-width: 100%;
}

.fppm-notes-app {
	background: #fff;
	border: 1px solid #e2e8f0;
	border-radius: 18px;
	padding: 1rem;
	box-shadow: 0 3px 12px rgba(15, 23, 42, 0.04);
}

.fppm-notes-app__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 0.7rem;
	margin-bottom: 0.9rem;
}

.fppm-notes-app__head .fppm-title {
	margin: 0 0 0.18rem;
}

.fppm-notes-app__head-actions {
	display: inline-flex;
	gap: 0.45rem;
	flex-wrap: wrap;
}

.fppm-notes-filters {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 0.65rem;
	padding: 0.72rem;
	border-radius: 12px;
	border: 1px solid #e2e8f0;
	background: #f8fafc;
	margin-bottom: 0.75rem;
}

.fppm-notes-filters__tabs {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	background: #eef2f7;
	padding: 0.2rem;
	border-radius: 10px;
}

.fppm-notes-tab {
	border: 0;
	background: transparent;
	color: #475569;
	font-size: 0.8rem;
	font-weight: 700;
	padding: 0.36rem 0.68rem;
	border-radius: 8px;
	cursor: pointer;
}

.fppm-notes-tab.is-active {
	background: #fff;
	color: #0f172a;
	box-shadow: 0 1px 3px rgba(15, 23, 42, 0.09);
}

.fppm-notes-filters__controls {
	display: flex;
	align-items: center;
	gap: 0.42rem;
	flex-wrap: wrap;
}

.fppm-notes-filters__controls input,
.fppm-notes-filters__controls select {
	border: 1px solid #cbd5e1;
	background: #fff;
	border-radius: 10px;
	padding: 0.44rem 0.58rem;
	font-size: 0.82rem;
}

.fppm-notes-filters__controls input {
	min-width: 210px;
}

.fppm-notes-meta {
	margin-bottom: 0.62rem;
}

.fppm-notes-meta__count {
	font-size: 0.8rem;
	color: #475569;
}

.fppm-notes-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
	gap: 0.7rem;
}

.fppm-note-card {
	background: #fff;
	border: 1px solid #dbe5f2;
	border-radius: 12px;
	padding: 0.72rem;
	box-shadow: 0 1px 4px rgba(15, 23, 42, 0.04);
	display: grid;
	gap: 0.46rem;
}

.fppm-note-card__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.45rem;
}

.fppm-note-card__type {
	display: inline-flex;
	align-items: center;
	padding: 0.12rem 0.45rem;
	border-radius: 999px;
	font-size: 0.68rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.fppm-note-card__type-note {
	background: #dbeafe;
	color: #1d4ed8;
}

.fppm-note-card__type-call {
	background: #d1fae5;
	color: #047857;
}

.fppm-note-card__date {
	font-size: 0.73rem;
	color: #64748b;
	font-weight: 600;
}

.fppm-note-card h4 {
	margin: 0;
	font-size: 0.94rem;
	line-height: 1.35;
	color: #0f172a;
}

.fppm-note-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.28rem 0.55rem;
	font-size: 0.74rem;
	color: #64748b;
}

.fppm-note-card__participants {
	margin: 0;
	font-size: 0.76rem;
	color: #334155;
}

.fppm-note-card__summary {
	margin: 0;
	font-size: 0.82rem;
	color: #374151;
	line-height: 1.55;
}

.fppm-note-card__actions {
	border-top: 1px dashed #dbe5f2;
	padding-top: 0.45rem;
}

.fppm-note-card__actions h5 {
	margin: 0 0 0.35rem;
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: #334155;
}

.fppm-note-card__actions ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.25rem;
}

.fppm-note-card__actions li {
	position: relative;
	padding-left: 0.78rem;
	font-size: 0.76rem;
	color: #334155;
}

.fppm-note-card__actions li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.38rem;
	width: 6px;
	height: 6px;
	border-radius: 999px;
	background: #94a3b8;
}

.fppm-note-card__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.28rem;
}

.fppm-note-card__tags span {
	display: inline-flex;
	align-items: center;
	padding: 0.12rem 0.42rem;
	border-radius: 999px;
	font-size: 0.68rem;
	font-weight: 700;
	background: #f1f5f9;
	color: #334155;
}

.fppm-note-card__tools {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	padding-top: 0.36rem;
	border-top: 1px dashed #dbe5f2;
}

.fppm-note-tool {
	border: 1px solid #c7d2e5;
	background: #f8fafc;
	color: #1e293b;
	font-size: 0.72rem;
	font-weight: 700;
	border-radius: 999px;
	padding: 0.18rem 0.58rem;
	line-height: 1.35;
	cursor: pointer;
}

.fppm-note-tool:hover,
.fppm-note-tool:focus {
	background: #eff6ff;
	border-color: #93c5fd;
	color: #1d4ed8;
}

.fppm-note-tool.is-danger:hover,
.fppm-note-tool.is-danger:focus {
	background: #fef2f2;
	border-color: #fecaca;
	color: #b91c1c;
}

.fppm-notes-empty {
	margin-top: 0.6rem;
	padding: 1rem;
	border-radius: 12px;
	border: 1px dashed #cbd5e1;
	text-align: center;
	background: #f8fafc;
}

.fppm-notes-empty h4 {
	margin: 0 0 0.25rem;
	font-size: 1rem;
	color: #111827;
}

.fppm-notes-empty p {
	margin: 0;
	font-size: 0.84rem;
	color: #64748b;
}

.fppm-notes-empty.is-hidden {
	display: none;
}

.fppm-notes-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.8rem;
}

.fppm-notes-modal.is-hidden {
	display: none;
}

.fppm-notes-modal__overlay {
	position: absolute;
	inset: 0;
	background: rgba(15, 23, 42, 0.5);
	backdrop-filter: blur(4px);
}

.fppm-notes-modal__dialog {
	position: relative;
	z-index: 2;
	width: min(760px, calc(100vw - 1rem));
	max-height: calc(100vh - 1.5rem);
	overflow: hidden;
	background: #fff;
	border: 1px solid #dbe5f2;
	border-radius: 16px;
	box-shadow: 0 12px 36px rgba(15, 23, 42, 0.24);
	display: flex;
	flex-direction: column;
}

.fppm-notes-modal__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.55rem;
	padding: 0.9rem 1rem;
	border-bottom: 1px solid #e2e8f0;
}

.fppm-notes-modal__head h4 {
	margin: 0;
	font-size: 1rem;
	color: #111827;
}

.fppm-notes-modal__close {
	border: 0;
	background: transparent;
	font-size: 1.35rem;
	line-height: 1;
	color: #64748b;
	cursor: pointer;
}

.fppm-notes-form {
	display: grid;
	gap: 0.65rem;
	padding: 0.95rem 1rem;
	overflow-y: auto;
}

.fppm-notes-form__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.55rem;
}

.fppm-notes-form__call {
	border: 1px solid #dbeafe;
	background: #eff6ff;
	border-radius: 10px;
	padding: 0.6rem;
}

.fppm-notes-form__call.is-hidden {
	display: none;
}

.fppm-notes-modal__feedback .fppm-notice {
	margin: 0;
}

.fppm-notes-modal__actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.56rem;
	padding-top: 0.45rem;
}

.fppm-create-modal-shell .fppm-actions .fppm-button,
.fppm-notes-modal__actions .fppm-button,
.fppm-crud-modal__actions .fppm-button {
	min-height: 42px;
	padding: 0.58rem 1.08rem;
	border-radius: 11px;
	font-size: 0.95rem;
	font-weight: 700;
}

.fppm-create-modal-shell .fppm-actions .fppm-button:not(.fppm-button-secondary):not(.fppm-button-ghost),
.fppm-notes-modal__actions .fppm-button:not(.fppm-button-secondary):not(.fppm-button-ghost),
.fppm-crud-modal__actions .fppm-button:not(.fppm-button-secondary):not(.fppm-button-ghost) {
	background: linear-gradient(135deg, #3b82f6, #1d4ed8);
	border-color: #2563eb;
	color: #fff;
	box-shadow: 0 10px 22px rgba(37, 99, 235, 0.24);
}

.fppm-create-modal-shell .fppm-actions .fppm-button:not(.fppm-button-secondary):not(.fppm-button-ghost):hover,
.fppm-create-modal-shell .fppm-actions .fppm-button:not(.fppm-button-secondary):not(.fppm-button-ghost):focus,
.fppm-notes-modal__actions .fppm-button:not(.fppm-button-secondary):not(.fppm-button-ghost):hover,
.fppm-notes-modal__actions .fppm-button:not(.fppm-button-secondary):not(.fppm-button-ghost):focus,
.fppm-crud-modal__actions .fppm-button:not(.fppm-button-secondary):not(.fppm-button-ghost):hover,
.fppm-crud-modal__actions .fppm-button:not(.fppm-button-secondary):not(.fppm-button-ghost):focus {
	background: linear-gradient(135deg, #2563eb, #1d4ed8);
	border-color: #1d4ed8;
}

.fppm-create-modal-shell .fppm-actions .fppm-button.fppm-button-secondary,
.fppm-create-modal-shell .fppm-actions .fppm-button.fppm-button-ghost,
.fppm-notes-modal__actions .fppm-button.fppm-button-secondary,
.fppm-notes-modal__actions .fppm-button.fppm-button-ghost,
.fppm-crud-modal__actions .fppm-button.fppm-button-secondary,
.fppm-crud-modal__actions .fppm-button.fppm-button-ghost {
	background: #fff;
	border-color: #cbd5e1;
	color: #334155;
	box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
}

.fppm-create-modal-shell .fppm-actions .fppm-button.fppm-button-secondary:hover,
.fppm-create-modal-shell .fppm-actions .fppm-button.fppm-button-secondary:focus,
.fppm-create-modal-shell .fppm-actions .fppm-button.fppm-button-ghost:hover,
.fppm-create-modal-shell .fppm-actions .fppm-button.fppm-button-ghost:focus,
.fppm-notes-modal__actions .fppm-button.fppm-button-secondary:hover,
.fppm-notes-modal__actions .fppm-button.fppm-button-secondary:focus,
.fppm-notes-modal__actions .fppm-button.fppm-button-ghost:hover,
.fppm-notes-modal__actions .fppm-button.fppm-button-ghost:focus,
.fppm-crud-modal__actions .fppm-button.fppm-button-secondary:hover,
.fppm-crud-modal__actions .fppm-button.fppm-button-secondary:focus,
.fppm-crud-modal__actions .fppm-button.fppm-button-ghost:hover,
.fppm-crud-modal__actions .fppm-button.fppm-button-ghost:focus {
	background: #f8fafc;
	border-color: #94a3b8;
	color: #0f172a;
}

.fppm-create-modal-shell .fppm-actions .fppm-button:disabled,
.fppm-notes-modal__actions .fppm-button:disabled,
.fppm-crud-modal__actions .fppm-button:disabled {
	opacity: 0.65;
	box-shadow: none;
	cursor: not-allowed;
}

.fppm-crud-modal {
	position: fixed;
	inset: 0;
	z-index: 10000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.8rem;
}

.fppm-crud-modal,
.fppm-crud-modal * {
	box-sizing: border-box;
}

.fppm-crud-modal.is-hidden {
	display: none;
}

.fppm-crud-modal__overlay {
	position: absolute;
	inset: 0;
	background: rgba(15, 23, 42, 0.58);
	backdrop-filter: blur(4px);
}

.fppm-crud-modal__dialog {
	position: relative;
	z-index: 2;
	width: min(760px, calc(100vw - 1rem));
	max-height: calc(100vh - 1rem);
	background: #fff;
	border: 1px solid #dbe5f2;
	border-radius: 18px;
	box-shadow: 0 18px 42px rgba(15, 23, 42, 0.25);
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.fppm-crud-modal__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.85rem;
	padding: 0.92rem 1rem;
	border-bottom: 1px solid #e2e8f0;
	background: #fff;
}

.fppm-crud-modal__brand {
	display: inline-flex;
	align-items: center;
	gap: 0.85rem;
	min-width: 0;
}

.fppm-crud-modal__brand-icon {
	width: 40px;
	height: 40px;
	border-radius: 12px;
	background: linear-gradient(135deg, #3b82f6, #1d4ed8);
	color: #fff;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.fppm-crud-modal__brand-copy {
	min-width: 0;
}

.fppm-crud-modal__brand-title {
	margin: 0;
	font-size: 1.48rem;
	font-weight: 800;
	color: #0f172a;
	line-height: 1.08;
}

.fppm-crud-modal__brand-subtitle {
	margin: 0.08rem 0 0;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: #64748b;
}

.fppm-crud-modal__head-actions {
	display: inline-flex;
	align-items: center;
	gap: 0.7rem;
	flex-shrink: 0;
}

.fppm-crud-modal__head h4 {
	margin: 0;
	font-size: clamp(1rem, 1.8vw, 1.22rem);
	color: #0f172a;
}

.fppm-crud-modal__close {
	border: 1px solid #e2e8f0;
	background: #fff;
	width: 36px;
	height: 36px;
	border-radius: 10px;
	font-size: 1.3rem;
	line-height: 1;
	color: #64748b;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.fppm-crud-modal__close:hover,
.fppm-crud-modal__close:focus {
	background: #f8fafc;
	color: #334155;
	border-color: #cbd5e1;
}

.fppm-crud-modal__form {
	display: flex;
	flex-direction: column;
	flex: 1;
	min-height: 0;
}

.fppm-crud-modal__body {
	flex: 1;
	min-height: 0;
	overflow-y: auto;
	padding: 0.95rem;
	background: #f8fafc;
}

.fppm-crud-modal__fields {
	display: grid;
	gap: 0.78rem;
}

.fppm-crud-modal__fields .fppm-field {
	background: #fff;
	border: 1px solid #dde5f1;
	border-radius: 14px;
	padding: 0.75rem 0.82rem;
}

.fppm-crud-modal__fields .fppm-field label {
	margin-bottom: 0.48rem;
	font-size: 0.86rem;
	letter-spacing: 0.01em;
	color: #334155;
}

.fppm-crud-modal__fields .fppm-field input[type="text"],
.fppm-crud-modal__fields .fppm-field input[type="date"],
.fppm-crud-modal__fields .fppm-field input[type="number"],
.fppm-crud-modal__fields .fppm-field select,
.fppm-crud-modal__fields .fppm-field textarea {
	border: 1px solid #c5d2e5;
	border-radius: 12px;
	padding: 0.7rem 0.78rem;
	background: #fff;
	font-size: 0.96rem;
}

.fppm-crud-modal__fields .fppm-field input:focus,
.fppm-crud-modal__fields .fppm-field select:focus,
.fppm-crud-modal__fields .fppm-field textarea:focus {
	outline: none;
	border-color: #3b82f6;
	box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.16);
}

.fppm-crud-modal__feedback .fppm-notice {
	margin: 0.7rem 0 0;
}

.fppm-crud-modal__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.72rem;
	padding: 0.8rem 1rem;
	border-top: 1px solid #dbe5f2;
	background: #f8fafc;
}

.fppm-crud-modal__status {
	font-size: 0.78rem;
	font-weight: 600;
	color: #64748b;
}

.fppm-crud-modal__actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.56rem;
}

.fppm-crud-modal__save,
.fppm-crud-modal__cancel {
	min-width: 118px;
	min-height: 42px;
	border-radius: 12px;
	font-size: 0.98rem;
	font-weight: 700;
}

@media (max-width: 820px) {
	.fppm-crud-modal {
		padding: 0.45rem;
	}

	.fppm-crud-modal__dialog {
		width: calc(100vw - 0.9rem);
		max-height: calc(100vh - 0.9rem);
		border-radius: 14px;
	}

	.fppm-crud-modal__head {
		padding: 0.78rem 0.85rem;
	}

	.fppm-crud-modal__body {
		padding: 0.85rem;
	}

	.fppm-crud-modal__footer {
		padding: 0.78rem 0.85rem;
	}

	.fppm-crud-modal__brand-title {
		font-size: 1.2rem;
	}

	.fppm-crud-modal__status {
		display: none;
	}

	.fppm-crud-modal__actions {
		width: 100%;
	}

	.fppm-crud-modal__save,
	.fppm-crud-modal__cancel {
		flex: 1 1 0;
		min-width: 0;
	}
}

.fppm-notification-shell {
	max-width: 100%;
}

.fppm-notification-center {
	background: #fff;
	border: 1px solid #e2e8f0;
	border-radius: 20px;
	box-shadow: 0 2px 10px rgba(15, 23, 42, 0.05);
	min-height: 600px;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

.fppm-notification-center__head {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 0.8rem;
	padding: 1rem 1.15rem;
	border-bottom: 1px solid #e2e8f0;
}

.fppm-notification-center__head .fppm-title {
	margin-bottom: 0.18rem;
}

.fppm-notification-center__head .fppm-muted {
	margin: 0;
}

.fppm-notification-center__head-actions {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
}

.fppm-notification-prefs {
	padding: 0.75rem 1.15rem;
	border-bottom: 1px solid #e2e8f0;
	background: #f8fafc;
}

.fppm-notification-prefs__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.55rem 0.8rem;
}

.fppm-notification-prefs__field {
	display: grid;
	gap: 0.2rem;
	font-size: 0.76rem;
	font-weight: 700;
	color: #334155;
}

.fppm-notification-prefs__field select {
	width: 100%;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	padding: 0.35rem 0.45rem;
	font-size: 0.78rem;
	background: #fff;
	color: #0f172a;
}

.fppm-notification-prefs__actions {
	margin-top: 0.65rem;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.55rem;
}

.fppm-notif-head-btn {
	border: 1px solid #bfdbfe;
	background: #eff6ff;
	color: #1d4ed8;
	font-size: 0.78rem;
	font-weight: 700;
	border-radius: 999px;
	padding: 0.35rem 0.7rem;
	cursor: pointer;
}

.fppm-notif-head-btn:hover,
.fppm-notif-head-btn:focus {
	background: #dbeafe;
	border-color: #93c5fd;
}

.fppm-notification-center__tabs {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	flex-wrap: wrap;
	padding: 0.4rem 1.15rem;
	border-bottom: 1px solid #e2e8f0;
	background: #f8fafc;
}

.fppm-notif-tab {
	border: 1px solid transparent;
	background: transparent;
	color: #64748b;
	font-size: 0.8rem;
	font-weight: 700;
	border-radius: 999px;
	padding: 0.35rem 0.68rem;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
}

.fppm-notif-tab:hover,
.fppm-notif-tab:focus {
	color: #334155;
	background: #fff;
	border-color: #e2e8f0;
}

.fppm-notif-tab.is-active {
	color: #1d4ed8;
	background: #eff6ff;
	border-color: #bfdbfe;
}

.fppm-notif-tab__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 18px;
	height: 18px;
	padding: 0 0.3rem;
	border-radius: 999px;
	background: #dbeafe;
	color: #1d4ed8;
	font-size: 0.68rem;
	font-weight: 800;
}

.fppm-notification-list {
	padding: 0.65rem;
	display: grid;
	gap: 0.6rem;
	overflow-y: auto;
	max-height: 70vh;
}

.fppm-notification-item {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0.7rem;
	align-items: center;
	border: 1px solid #e2e8f0;
	border-radius: 14px;
	background: #fff;
	padding: 0.75rem 0.8rem;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
	animation: fppmNotificationFade 0.24s ease both;
}

@keyframes fppmNotificationFade {
	from {
		opacity: 0;
		transform: translateY(4px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.fppm-notification-item:hover {
	border-color: #cbd5e1;
	background: #f8fafc;
}

.fppm-notification-item.is-unread {
	border-color: #bfdbfe;
	background: #eff6ff;
	box-shadow: 0 1px 0 rgba(37, 99, 235, 0.05);
}

.fppm-notification-item__body {
	min-width: 0;
}

.fppm-notification-item__message {
	margin: 0;
	font-size: 0.88rem;
	line-height: 1.45;
	color: #0f172a;
}

.fppm-notification-item__meta {
	margin-top: 0.32rem;
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	flex-wrap: wrap;
	font-size: 0.72rem;
	color: #64748b;
}

.fppm-notification-item__type {
	display: inline-flex;
	align-items: center;
	padding: 0.14rem 0.42rem;
	border-radius: 999px;
	border: 1px solid #dbe5f2;
	background: #f8fafc;
	color: #334155;
	font-weight: 700;
}

.fppm-notification-item__actions {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	flex-wrap: wrap;
}

.fppm-notif-link,
.fppm-notif-action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid #cbd5e1;
	background: #fff;
	color: #1e3a8a;
	font-size: 0.73rem;
	font-weight: 700;
	border-radius: 999px;
	padding: 0.26rem 0.58rem;
	text-decoration: none;
	cursor: pointer;
}

.fppm-notif-link:hover,
.fppm-notif-link:focus,
.fppm-notif-action:hover,
.fppm-notif-action:focus {
	border-color: #93c5fd;
	background: #eff6ff;
	color: #1d4ed8;
}

.fppm-notif-action.is-danger {
	color: #b91c1c;
	border-color: #fecaca;
	background: #fff;
}

.fppm-notif-action.is-danger:hover,
.fppm-notif-action.is-danger:focus {
	background: #fef2f2;
	border-color: #fca5a5;
	color: #991b1b;
}

.fppm-notification-empty {
	border: 1px dashed #cbd5e1;
	border-radius: 14px;
	background: #f8fafc;
	color: #64748b;
	padding: 1.2rem;
	text-align: center;
	font-size: 0.86rem;
}

@media (max-width: 960px) {
	.fppm-project-grid {
		grid-template-columns: 1fr;
	}

	.fppm-notification-prefs__grid {
		grid-template-columns: 1fr;
	}

	.fppm-task-details-card__meta {
		grid-template-columns: 1fr;
	}

	.fppm-notification-item {
		grid-template-columns: 1fr;
	}

	.fppm-notification-item__actions {
		justify-content: flex-start;
	}
}

@media (max-width: 700px) {
	.fppm-directory-bulk {
		flex-direction: column;
		align-items: flex-start;
	}

	.fppm-directory-bulk__count {
		width: 100%;
	}

	.fppm-directory-bulk__actions {
		width: 100%;
	}

	.fppm-directory-bulk__actions .fppm-button {
		flex: 1;
	}

	.fppm-task-details-card__head {
		padding: 1rem;
	}

	.fppm-task-details-card__replies {
		padding: 0.9rem 1rem 1rem;
	}

	.fppm-task-reply-card__content {
		padding-left: 0;
	}

	.fppm-reply-editor {
		flex-direction: column;
	}

	.fppm-reply-editor__actions {
		flex-direction: column;
		align-items: stretch;
	}

	.fppm-reply-editor__right {
		width: 100%;
	}

	.fppm-reply-editor__right select,
	.fppm-reply-send {
		flex: 1;
	}

	.fppm-notification-center {
		border-radius: 14px;
	}

	.fppm-notification-center__head,
	.fppm-notification-center__tabs,
	.fppm-notification-prefs {
		padding-left: 0.8rem;
		padding-right: 0.8rem;
	}

	.fppm-notification-prefs__actions {
		flex-direction: column;
		align-items: stretch;
	}

	.fppm-notification-prefs__actions .fppm-button {
		width: 100%;
	}

	.fppm-notification-list {
		padding: 0.55rem;
	}
}

.fppm-kanban-board__head,
.fppm-files-board__head,
.fppm-calendar-board__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1rem;
}

.fppm-kanban-board__feedback {
	margin-bottom: 0.75rem;
}

.fppm-kanban-board__feedback.is-hidden {
	display: none;
}

.fppm-kanban-board__filters,
.fppm-files-board__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
}

.fppm-kanban-board__filters select,
.fppm-files-board__filters select {
	min-height: 40px;
	min-width: 170px;
	border: 1px solid #d0d8e8;
	border-radius: 10px;
	background: #fff;
	padding: 0.42rem 0.7rem;
}

.fppm-kanban-board__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.9rem;
}

.fppm-kanban-column {
	border: 1px solid #d8e0ee;
	border-radius: 12px;
	background: #f8fbff;
	min-height: 220px;
	display: flex;
	flex-direction: column;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.fppm-kanban-column.is-drop-target {
	border-color: #8db0e8;
	box-shadow: 0 0 0 3px rgba(44, 119, 229, 0.16);
}

.fppm-kanban-column__head {
	padding: 0.75rem 0.85rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	border-bottom: 1px solid #e6edf8;
}

.fppm-kanban-column__head h4 {
	margin: 0;
	font-size: 0.95rem;
}

.fppm-kanban-column__head span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 26px;
	height: 26px;
	border-radius: 999px;
	background: #e5efff;
	color: #2d4f82;
	font-weight: 700;
	font-size: 0.75rem;
}

.fppm-kanban-column__body {
	padding: 0.7rem;
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	min-height: 110px;
}

.fppm-kanban-column__empty {
	margin: 0;
	font-size: 0.78rem;
}

.fppm-kanban-column__empty.is-hidden {
	display: none;
}

.fppm-kanban-card {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	border: 1px solid #d7e2f0;
	border-radius: 11px;
	background: #fff;
	padding: 0.7rem 0.75rem;
	color: #223148;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease, opacity 0.2s ease;
}

.fppm-kanban-card:hover {
	border-color: #9eb6dd;
	box-shadow: 0 4px 18px rgba(51, 88, 148, 0.12);
}

.fppm-kanban-card.is-draggable {
	cursor: grab;
}

.fppm-kanban-card.is-draggable:active {
	cursor: grabbing;
}

.fppm-kanban-card.is-dragging {
	opacity: 0.55;
	transform: scale(0.99);
}

.fppm-kanban-card.is-moving {
	opacity: 0.78;
	pointer-events: none;
}

.fppm-kanban-card strong {
	font-size: 0.9rem;
	line-height: 1.35;
}

.fppm-kanban-card strong a {
	color: #223148;
	text-decoration: none;
}

.fppm-kanban-card strong a:hover {
	color: #1d67d8;
}

.fppm-kanban-card span {
	font-size: 0.78rem;
	color: #5a6f8f;
}

.fppm-kanban-card em {
	font-style: normal;
	color: #2f4362;
}

.fppm-kanban-card__meta-link {
	color: #1d67d8;
	font-weight: 600;
	margin-top: 0.15rem;
	text-decoration: none;
}

.fppm-kanban-card__meta-link:hover {
	color: #0e54bd;
}

.fppm-kanban-card__actions {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
	margin-top: 0.2rem;
}

.fppm-kanban-card__project-link {
	font-size: 0.73rem;
	color: #43679a;
	text-decoration: none;
}

.fppm-kanban-card__project-link:hover {
	color: #1d67d8;
}

.fppm-kanban-card__locked {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	font-size: 0.69rem;
	font-weight: 700;
	color: #8b5e00;
	background: #fff7d9;
	border: 1px solid #f2d27b;
	border-radius: 999px;
	padding: 0.08rem 0.45rem;
}

.fppm-files-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: 0.85rem;
}

.fppm-file-card {
	border: 1px solid #d8e2f0;
	border-radius: 12px;
	overflow: hidden;
	background: #fff;
	display: flex;
	flex-direction: column;
}

.fppm-file-card__preview {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 150px;
	background: #f4f8ff;
	border-bottom: 1px solid #e5edf8;
	text-decoration: none;
}

.fppm-file-card__preview img {
	width: 100%;
	height: 170px;
	object-fit: cover;
	display: block;
}

.fppm-file-card__preview span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 14px;
	background: #dfeafc;
	color: #27466d;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.fppm-file-card__meta {
	padding: 0.75rem;
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
}

.fppm-file-card__meta strong {
	font-size: 0.88rem;
	line-height: 1.35;
	word-break: break-word;
}

.fppm-file-card__meta span {
	font-size: 0.76rem;
	color: #5a6f8f;
}

.fppm-file-card__links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	margin-top: 0.35rem;
}

.fppm-file-card__links a {
	text-decoration: none;
	font-size: 0.74rem;
	font-weight: 600;
	color: #215ec2;
	background: #edf4ff;
	border-radius: 999px;
	padding: 0.22rem 0.58rem;
}

.fppm-file-card__links a:hover {
	background: #dceaff;
}

.fppm-calendar-board__head {
	justify-content: center;
}

.fppm-calendar-board__head .fppm-title {
	margin: 0 0.7rem;
	min-width: 170px;
	text-align: center;
}

.fppm-calendar-board__legend {
	display: flex;
	justify-content: center;
	gap: 0.7rem;
	margin-bottom: 0.85rem;
}

.fppm-calendar-board__legend span {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.18rem 0.55rem;
	border-radius: 999px;
	font-size: 0.75rem;
	font-weight: 600;
}

.fppm-calendar-board__legend span.is-task {
	background: #e9f1ff;
	color: #245bb6;
}

.fppm-calendar-board__legend span.is-note {
	background: #ecfbf2;
	color: #1f7f4f;
}

.fppm-calendar-grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	border: 1px solid #dbe5f3;
	border-radius: 14px;
	overflow: hidden;
}

.fppm-calendar-grid__weekday {
	background: #f2f6fd;
	border-right: 1px solid #dbe5f3;
	padding: 0.58rem 0.4rem;
	text-align: center;
	font-size: 0.75rem;
	font-weight: 700;
	color: #3d567e;
}

.fppm-calendar-grid__weekday:nth-child(7n) {
	border-right: 0;
}

.fppm-calendar-grid__cell {
	min-height: 110px;
	border-top: 1px solid #e2eaf7;
	border-right: 1px solid #e2eaf7;
	padding: 0.38rem;
	background: #fff;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.fppm-calendar-grid__cell:nth-child(7n) {
	border-right: 0;
}

.fppm-calendar-grid__cell.is-empty {
	background: #f8fbff;
}

.fppm-calendar-grid__day {
	font-size: 0.78rem;
	font-weight: 700;
	color: #2d466d;
}

.fppm-calendar-grid__events {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}

.fppm-calendar-grid__event a {
	display: block;
	text-decoration: none;
	font-size: 0.7rem;
	padding: 0.2rem 0.35rem;
	border-radius: 7px;
	line-height: 1.35;
}

.fppm-calendar-grid__event.is-task a {
	background: #eaf1ff;
	color: #2b5caa;
}

.fppm-calendar-grid__event.is-note a {
	background: #ebfaf1;
	color: #25724c;
}

.fppm-calendar-grid__more {
	font-size: 0.68rem;
	color: #7488a8;
}

.fppm-calendar-grid__empty {
	font-size: 0.75rem;
	color: #9caecc;
}

.fppm-task-project-overview__files {
	display: inline-flex;
	align-items: center;
	padding: 0.14rem 0.55rem;
	border-radius: 999px;
	background: #edf4ff;
	color: #245fc0;
	font-size: 0.72rem;
	font-weight: 600;
	text-decoration: none;
}

.fppm-task-project-overview__files:hover {
	background: #deebff;
}

@media (max-width: 1100px) {
	.fppm-kanban-board__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 880px) {
	.fppm-calendar-grid {
		grid-template-columns: repeat(1, minmax(0, 1fr));
	}

	.fppm-calendar-grid__weekday {
		display: none;
	}

	.fppm-calendar-grid__cell {
		min-height: 0;
	}
}

@media (max-width: 760px) {
	.fppm-kanban-board__head,
	.fppm-files-board__head {
		flex-direction: column;
		align-items: flex-start;
	}

	.fppm-kanban-board__grid {
		grid-template-columns: 1fr;
	}

	.fppm-files-board__filters,
	.fppm-kanban-board__filters {
		width: 100%;
	}

	.fppm-files-board__filters select,
	.fppm-kanban-board__filters select {
		flex: 1;
		width: 100%;
	}
}
