/**
 * PressPrimer Assignment - Frontend Styles
 *
 * Base styles for assignment display, submission forms,
 * file uploads, and submission status.
 *
 * @package PressPrimer_Assignment
 * @since 1.0.0
 */

/* ==========================================================================
   CSS Custom Properties (Theme Variables)
   ========================================================================== */

:root {
	/* Primary Colors (aligned with PressPrimer Quiz defaults) */
	--ppa-primary: #0073aa;
	--ppa-primary-hover: #005a87;
	--ppa-primary-dark: #005a87;
	--ppa-primary-light: #e5f3fa;
	--ppa-primary-rgb: 0, 115, 170;

	/* Secondary Colors */
	--ppa-secondary: #50575e;
	--ppa-secondary-hover: #3c4248;

	/* Status Colors */
	--ppa-success: #00a32a;
	--ppa-success-light: #d8f4e0;
	--ppa-warning: #dba617;
	--ppa-warning-light: #fef8e7;
	--ppa-error: #d63638;
	--ppa-error-light: #fce4e4;
	--ppa-info: #72aee6;
	--ppa-info-light: #e7f4fd;

	/* Text Colors */
	--ppa-text: #1d2327;
	--ppa-text-secondary: #50575e;
	--ppa-text-light: #787c82;
	--ppa-text-inverse: #ffffff;

	/* Border Colors */
	--ppa-border: #c3c4c7;
	--ppa-border-light: #dcdcde;
	--ppa-border-focus: #0073aa;
	--ppa-background: #ffffff;
	--ppa-background-gray: #f6f7f7;

	/* Typography */
	--ppa-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--ppa-font-mono: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, "Courier New", monospace;

	/* Spacing Scale */
	--ppa-space-xs: 0.25rem;
	--ppa-space-sm: 0.5rem;
	--ppa-space-md: 1rem;
	--ppa-space-lg: 1.5rem;
	--ppa-space-xl: 2rem;
	--ppa-space-2xl: 3rem;
	--ppa-space-3xl: 4rem;

	/* Border Radius */
	--ppa-radius-sm: 0.375rem;
	--ppa-radius-md: 0.5rem;
	--ppa-radius-lg: 0.75rem;
	--ppa-radius-xl: 1rem;
	--ppa-radius-full: 9999px;

	/* Shadows */
	--ppa-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
	--ppa-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
	--ppa-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
	--ppa-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);

	/* Neutral Colors (continued) */
	--ppa-background-dark: #111827;

	/* Transitions */
	--ppa-transition: all 0.2s ease-in-out;
	--ppa-transition-fast: all 0.15s ease-in-out;

	/* Layout */
	--ppa-max-width: 800px;
	--ppa-line-height: 1.5;
}

/* ==========================================================================
   Assignment Container
   ========================================================================== */

.ppa-assignment {
	max-width: var(--ppa-max-width, 800px);
	margin: var(--ppa-space-xl) auto;
	padding: 0;
	font-family: var(--ppa-font-sans);
	font-size: var(--ppa-font-size-base, 1rem);
	color: var(--ppa-text);
	line-height: var(--ppa-line-height, 1.5);
}

.ppa-assignment *,
.ppa-assignment *::before,
.ppa-assignment *::after {
	box-sizing: border-box;
}

.ppa-assignment-content {
	background: var(--ppa-background);
	border: 2px solid var(--ppa-border);
	border-radius: var(--ppa-radius-lg);
	box-shadow: var(--ppa-shadow-md);
	padding: var(--ppa-space-2xl);
}

/* ==========================================================================
   Assignment Header
   ========================================================================== */

.ppa-assignment-header {
	margin-bottom: var(--ppa-space-xl);
	text-align: center;
}

.ppa-assignment-title {
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.2;
	margin: 0 0 var(--ppa-space-lg);
	color: var(--ppa-text);
	letter-spacing: -0.025em;
}

.ppa-assignment-description {
	margin-bottom: var(--ppa-space-xl);
}

.ppa-assignment-description-text {
	font-size: 1.125rem;
	color: var(--ppa-text-secondary);
	max-width: 600px;
	margin: 0 auto;
	line-height: 1.7;
}

/* ==========================================================================
   Assignment Meta
   ========================================================================== */

.ppa-assignment-meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ppa-space-md);
	margin-bottom: var(--ppa-space-xl);
	padding: var(--ppa-space-lg);
	background: var(--ppa-background-gray);
	border: 1px solid var(--ppa-border-light);
	border-radius: var(--ppa-radius-lg);
}

.ppa-meta-item {
	background: var(--ppa-background);
	border: 1px solid var(--ppa-border-light);
	border-radius: var(--ppa-radius-md);
	padding: var(--ppa-space-md);
	transition: var(--ppa-transition);
}

.ppa-meta-label {
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--ppa-text-light);
	display: block;
	margin-bottom: var(--ppa-space-xs);
}

.ppa-meta-value {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--ppa-text);
}

/* ==========================================================================
   Instructions
   ========================================================================== */

.ppa-assignment-instructions {
	margin-bottom: var(--ppa-space-xl);
	padding: var(--ppa-space-lg);
	background: var(--ppa-background);
	border: 1px solid var(--ppa-border);
	border-radius: var(--ppa-radius-md);
}

.ppa-instructions-heading {
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--ppa-text);
	margin: 0 0 var(--ppa-space-md);
}

.ppa-instructions-content {
	color: var(--ppa-text-secondary);
	line-height: 1.7;
}

.ppa-instructions-content p {
	margin: 0 0 var(--ppa-space-md);
}

.ppa-instructions-content p:last-child {
	margin-bottom: 0;
}

/* ==========================================================================
   Submission Type Selector
   ========================================================================== */

.ppa-submission-type-selector {
	margin-top: var(--ppa-space-xl);
}

.ppa-type-selector-description {
	font-size: 0.875rem;
	color: var(--ppa-text-secondary);
	margin-bottom: var(--ppa-space-lg);
}

.ppa-type-selector-options {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--ppa-space-lg);
}

.ppa-type-option {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--ppa-space-sm);
	padding: var(--ppa-space-xl);
	background: var(--ppa-background);
	border: 2px solid var(--ppa-border);
	border-radius: var(--ppa-radius-lg);
	cursor: pointer;
	transition: var(--ppa-transition);
	text-align: center;
	font-family: var(--ppa-font-sans);
}

.ppa-type-option:hover {
	border-color: var(--ppa-primary);
	background: var(--ppa-background-gray);
	box-shadow: var(--ppa-shadow-md);
}

.ppa-type-option:focus {
	outline: none;
	border-color: var(--ppa-primary);
	box-shadow: var(--ppa-shadow-focus);
}

.ppa-type-option-icon {
	font-size: 2rem;
	color: var(--ppa-primary);
	line-height: 1;
}

.ppa-type-option-icon .dashicons {
	font-size: 2rem;
	width: 2rem;
	height: 2rem;
}

.ppa-type-option-title {
	font-size: 1rem;
	font-weight: 600;
	color: var(--ppa-text);
}

.ppa-type-option-description {
	font-size: 0.75rem;
	color: var(--ppa-text-light);
	line-height: 1.4;
}

@media (max-width: 480px) {
	.ppa-type-selector-options {
		grid-template-columns: 1fr;
	}
}

/* Submission type panels (hidden until type is selected) */
.ppa-submission-type-panel {
	margin-top: var(--ppa-space-lg);
}

.ppa-type-back-btn {
	display: inline-flex;
	align-items: center;
	gap: var(--ppa-space-xs);
	margin-bottom: var(--ppa-space-lg);
}

.ppa-type-back-btn .dashicons {
	font-size: 16px;
	width: 16px;
	height: 16px;
}

[dir="rtl"] .ppa-type-back-btn .dashicons {
	transform: scaleX(-1);
}

/* ==========================================================================
   Submission Form
   ========================================================================== */

.ppa-submission-form {
	margin-top: var(--ppa-space-xl);
}

.ppa-form-section {
	margin-bottom: var(--ppa-space-xl);
}

.ppa-form-label {
	display: block;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--ppa-text);
	margin-bottom: var(--ppa-space-sm);
}

.ppa-form-hint {
	font-size: 0.75rem;
	color: var(--ppa-text-light);
	margin-top: var(--ppa-space-md);
}

/* ==========================================================================
   File Upload Zone
   ========================================================================== */

.ppa-upload-zone {
	border: 2px dashed var(--ppa-border);
	border-radius: var(--ppa-radius-lg);
	padding: 40px 20px;
	text-align: center;
	cursor: pointer;
	transition: var(--ppa-transition);
	background: var(--ppa-background-gray);
}

.ppa-upload-zone:hover,
.ppa-upload-zone:focus-within {
	border-color: var(--ppa-primary);
	background: var(--ppa-background);
}

.ppa-upload-zone.ppa-upload-active {
	border-color: var(--ppa-primary);
	background: rgba(var(--ppa-primary-rgb), 0.04);
	box-shadow: 0 0 0 3px rgba(var(--ppa-primary-rgb), 0.1);
}

.ppa-upload-zone.ppa-upload-disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

.ppa-upload-limit-notice {
	display: flex;
	align-items: center;
	gap: var(--ppa-space-sm);
	padding: var(--ppa-space-md);
	background: var(--ppa-success-light);
	border: 1px solid var(--ppa-success);
	border-radius: var(--ppa-radius-md);
	color: var(--ppa-text);
	font-size: var(--ppa-font-size-sm);
}

.ppa-upload-limit-notice .dashicons {
	color: var(--ppa-success);
	font-size: 20px;
	width: 20px;
	height: 20px;
	flex-shrink: 0;
}

.ppa-upload-icon {
	margin-bottom: var(--ppa-space-md);
	color: var(--ppa-text-light);
}

.ppa-upload-icon .dashicons {
	font-size: 48px;
	width: 48px;
	height: 48px;
	color: var(--ppa-text-light);
}

.ppa-upload-zone:hover .ppa-upload-icon .dashicons,
.ppa-upload-zone.ppa-upload-active .ppa-upload-icon .dashicons {
	color: var(--ppa-primary);
}

.ppa-upload-text {
	font-size: 1rem;
	color: var(--ppa-text-secondary);
	margin: 15px 0 0;
}

.ppa-upload-hint {
	font-size: 0.75rem;
	color: var(--ppa-text-light);
}

.ppa-upload-input {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ==========================================================================
   File List
   ========================================================================== */

.ppa-file-list {
	list-style: none;
	padding: 0;
	margin: var(--ppa-space-md) 0 0;
}

.ppa-file-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: nowrap;
	gap: var(--ppa-space-md);
	padding: var(--ppa-space-md);
	border: 1px solid var(--ppa-border-light);
	border-radius: var(--ppa-radius-md);
	margin-bottom: var(--ppa-space-sm);
	background: var(--ppa-background);
	transition: var(--ppa-transition-fast);
}

.ppa-file-item:hover {
	border-color: var(--ppa-border);
}

.ppa-file-info {
	display: flex;
	align-items: center;
	gap: var(--ppa-space-md);
	flex: 1;
	min-width: 0;
}

.ppa-file-icon {
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--ppa-radius-md);
	background: var(--ppa-background-gray);
	color: var(--ppa-text-secondary);
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
}

.ppa-file-name {
	flex: 1;
	min-width: 0;
	font-weight: 500;
	color: var(--ppa-text);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.ppa-file-size {
	font-size: 0.75rem;
	color: var(--ppa-text-light);
	margin-left: var(--ppa-space-sm);
	white-space: nowrap;
	flex-shrink: 0;
}

.ppa-file-actions {
	display: flex;
	align-items: center;
	gap: var(--ppa-space-sm);
	flex-shrink: 0;
}

.ppa-file-remove {
	background: none;
	border: none;
	color: var(--ppa-error);
	cursor: pointer;
	padding: var(--ppa-space-xs);
	border-radius: var(--ppa-radius-sm);
	transition: var(--ppa-transition-fast);
	font-size: 1.75rem;
	line-height: 1;
	line-height: 1;
}

.ppa-file-remove:hover {
	background: var(--ppa-error-light);
}

/* File upload progress */
.ppa-file-progress {
	width: 100%;
	height: 4px;
	background: var(--ppa-border-light);
	border-radius: var(--ppa-radius-full);
	overflow: hidden;
	margin-top: var(--ppa-space-xs);
	margin-left: var(--ppa-space-xl);
}

.ppa-file-progress-bar {
	height: 100%;
	background: var(--ppa-primary);
	border-radius: var(--ppa-radius-full);
	transition: width 0.3s ease;
}

/* ==========================================================================
   PDF Text Preview (shown after upload)
   ========================================================================== */

.ppa-file-text-preview {
	margin: var(--ppa-space-xs) 0 0;
	padding: 0;
}

.ppa-text-preview-toggle {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	background: var(--ppa-background-gray, #f6f7f7);
	border: 1px solid var(--ppa-border-light, #dcdcde);
	border-radius: var(--ppa-radius-sm, 4px);
	color: var(--ppa-text-secondary, #50575e);
	font-size: 0.8125rem;
	font-weight: 600;
	cursor: pointer;
	padding: var(--ppa-space-xs) var(--ppa-space-sm);
	font-family: var(--ppa-font-sans, -apple-system, BlinkMacSystemFont, sans-serif);
	text-decoration: none;
	outline: none;
	transition: var(--ppa-transition-fast);
}

.ppa-text-preview-toggle:hover {
	color: var(--ppa-text, #1d2327);
	background: var(--ppa-border-light, #dcdcde);
	border-color: var(--ppa-border, #c3c4c7);
}

.ppa-text-preview-toggle:focus-visible {
	box-shadow: 0 0 0 2px var(--ppa-primary, #0073aa);
}

.ppa-text-preview-toggle .dashicons {
	font-size: 16px;
	width: 16px;
	height: 16px;
	line-height: 1;
}

.ppa-text-preview-label {
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--ppa-text-secondary);
	margin-bottom: var(--ppa-space-xs);
}

.ppa-text-preview-description {
	font-size: 0.75rem;
	color: var(--ppa-text-light, #787c82);
	margin: 0 0 var(--ppa-space-sm);
	line-height: 1.5;
}

.ppa-text-preview-text {
	max-height: 200px;
	overflow-y: auto;
	padding: var(--ppa-space-md);
	background: var(--ppa-background-gray, #f6f7f7);
	border: 1px solid var(--ppa-border-light, #dcdcde);
	border-radius: var(--ppa-radius-md);
	font-size: 0.8125rem;
	line-height: 1.6;
	white-space: pre-wrap;
	color: var(--ppa-text-secondary);
}

.ppa-text-preview-content {
	margin-top: var(--ppa-space-sm);
}

/* Extraction failure notice (shown inline below file item) */
.ppa-extraction-notice {
	display: flex;
	align-items: center;
	gap: var(--ppa-space-xs);
	padding: var(--ppa-space-xs) var(--ppa-space-sm);
	font-size: 0.75rem;
	color: var(--ppa-text-light, #787c82);
	line-height: 1.4;
}

.ppa-extraction-notice .dashicons {
	font-size: 16px;
	width: 16px;
	height: 16px;
	flex-shrink: 0;
	color: var(--ppa-warning, #dba617);
}

/* ==========================================================================
   Student Notes
   ========================================================================== */

.ppa-student-notes textarea {
	width: 100%;
	min-height: 100px;
	padding: var(--ppa-space-md);
	border: 2px solid var(--ppa-border);
	border-radius: var(--ppa-radius-md);
	font-family: var(--ppa-font-sans);
	font-size: 0.875rem;
	line-height: 1.6;
	color: var(--ppa-text);
	background: var(--ppa-background);
	transition: var(--ppa-transition);
	resize: vertical;
}

.ppa-student-notes textarea:focus {
	outline: none;
	border-color: var(--ppa-primary);
	box-shadow: var(--ppa-shadow-focus);
}

.ppa-student-notes textarea::placeholder {
	color: var(--ppa-text-light);
}

/* ==========================================================================
   Buttons
   ========================================================================== */

.ppa-button {
	font-family: inherit;
	font-weight: 600;
	font-size: 1rem;
	border-radius: var(--ppa-radius-lg);
	transition: var(--ppa-transition);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--ppa-space-sm);
	text-decoration: none;
	border: none;
	min-height: 44px;
	padding: var(--ppa-space-md) var(--ppa-space-xl);
	line-height: 1.5;
	white-space: nowrap;
}

.ppa-button:focus {
	outline: none;
}

.ppa-button:focus-visible {
	box-shadow: var(--ppa-shadow-focus);
}

.ppa-button-primary {
	background: var(--ppa-primary);
	color: #ffffff;
}

.ppa-button-primary:hover:not(:disabled) {
	background: var(--ppa-primary-dark);
	transform: translateY(-2px);
	box-shadow: var(--ppa-shadow-lg);
}

.ppa-button-primary:active:not(:disabled) {
	transform: translateY(0);
	box-shadow: var(--ppa-shadow-sm);
}

.ppa-button-danger {
	background: var(--ppa-error);
	color: #ffffff;
}

.ppa-button-danger:hover:not(:disabled) {
	background: #b32d2f;
	transform: translateY(-2px);
	box-shadow: var(--ppa-shadow-lg);
}

.ppa-button-danger:active:not(:disabled) {
	transform: translateY(0);
	box-shadow: var(--ppa-shadow-sm);
}

.ppa-button-secondary {
	background: var(--ppa-background);
	color: var(--ppa-text);
	border: 2px solid var(--ppa-border);
}

.ppa-button-secondary:hover:not(:disabled) {
	background: var(--ppa-background-gray);
	border-color: var(--ppa-primary);
	color: var(--ppa-primary);
	transform: translateY(-2px);
	box-shadow: var(--ppa-shadow-md);
}

.ppa-button:disabled {
	opacity: 0.6;
	cursor: not-allowed;
	transform: none;
}

.ppa-button-loading::after {
	content: "";
	width: 16px;
	height: 16px;
	border: 2px solid transparent;
	border-top-color: currentColor;
	border-radius: var(--ppa-radius-full);
	animation: ppa-spin 0.6s linear infinite;
}

.ppa-button-small {
	padding: var(--ppa-space-xs) var(--ppa-space-md);
	font-size: 0.75rem;
	min-height: auto;
}

@keyframes ppa-spin {
	to {
		transform: rotate(360deg);
	}
}

/* ==========================================================================
   Submission Status
   ========================================================================== */

.ppa-submission-status-card {
	padding: var(--ppa-space-xl);
	border-radius: var(--ppa-radius-lg);
	border: 1px solid var(--ppa-border-light);
	background: var(--ppa-background);
	margin-bottom: var(--ppa-space-xl);
}

.ppa-status-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: var(--ppa-space-lg);
}

.ppa-status-badge {
	display: inline-flex;
	align-items: center;
	padding: var(--ppa-space-xs) var(--ppa-space-md);
	border-radius: var(--ppa-radius-full);
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.ppa-status-draft {
	background: var(--ppa-background-gray);
	color: var(--ppa-text-secondary);
}

.ppa-status-submitted {
	background: var(--ppa-info-light);
	color: var(--ppa-info);
}

.ppa-status-grading {
	background: var(--ppa-warning-light);
	color: var(--ppa-warning);
}

.ppa-status-graded {
	background: var(--ppa-success-light);
	color: var(--ppa-success);
}

.ppa-status-returned {
	background: var(--ppa-success-light);
	color: var(--ppa-success);
}

.ppa-status-title {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--ppa-text);
	margin: 0;
}

/* Submission details (date, submission number) */

.ppa-submission-details {
	margin-bottom: var(--ppa-space-lg);
}

.ppa-detail-row {
	display: flex;
	align-items: baseline;
	gap: var(--ppa-space-sm);
	margin: 0 0 var(--ppa-space-xs);
	font-size: 0.875rem;
	line-height: 1.5;
}

.ppa-detail-row:last-child {
	margin-bottom: 0;
}

.ppa-detail-label {
	font-weight: 600;
	color: var(--ppa-text);
	white-space: nowrap;
}

.ppa-detail-value {
	color: var(--ppa-text-secondary);
}

/* Resubmission section */

.ppa-resubmit-section {
	margin-top: var(--ppa-space-lg);
	padding-top: var(--ppa-space-lg);
	border-top: 1px solid var(--ppa-border-light);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--ppa-space-md);
	flex-wrap: wrap;
}

.ppa-resubmit-info {
	font-size: 0.875rem;
	color: var(--ppa-text-secondary);
	margin: 0;
}

/* ==========================================================================
   Grade Display
   ========================================================================== */

.ppa-grade-display {
	text-align: center;
	padding: var(--ppa-space-xl);
	border-radius: var(--ppa-radius-lg);
	margin-bottom: var(--ppa-space-xl);
}

.ppa-grade-score {
	font-size: 3rem;
	font-weight: 800;
	color: var(--ppa-text);
	letter-spacing: -0.03em;
	margin-bottom: var(--ppa-space-sm);
}

.ppa-grade-label {
	font-size: 0.875rem;
	color: var(--ppa-text-secondary);
}

.ppa-grade-passed {
	border: 2px solid var(--ppa-success);
}

.ppa-grade-passed .ppa-grade-score {
	color: var(--ppa-success);
}

.ppa-grade-failed {
	border: 2px solid var(--ppa-error);
}

.ppa-grade-failed .ppa-grade-score {
	color: var(--ppa-error);
}

.ppa-pass-badge {
	display: inline-flex;
	align-items: center;
	padding: var(--ppa-space-sm) var(--ppa-space-xl);
	border-radius: var(--ppa-radius-full);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #ffffff;
	margin-top: var(--ppa-space-md);
}

.ppa-pass-badge.ppa-passed {
	background: var(--ppa-success);
}

.ppa-pass-badge.ppa-failed {
	background: var(--ppa-error);
}

/* ==========================================================================
   Feedback
   ========================================================================== */

.ppa-feedback,
.ppa-submitted-files {
	padding: var(--ppa-space-lg);
	background: var(--ppa-background-gray);
	border: 1px solid var(--ppa-border-light);
	border-radius: var(--ppa-radius-md);
	margin-bottom: var(--ppa-space-xl);
}

.ppa-feedback-heading {
	font-size: 1rem;
	font-weight: 600;
	color: var(--ppa-text);
	margin: 0 0 var(--ppa-space-md);
}

.ppa-feedback-content {
	color: var(--ppa-text-secondary);
	line-height: 1.7;
}

/* ==========================================================================
   Notices
   ========================================================================== */

.ppa-notice {
	padding: var(--ppa-space-lg);
	border-radius: var(--ppa-radius-md);
	border-left: 4px solid;
	margin-bottom: var(--ppa-space-lg);
}

.ppa-notice-info {
	background: var(--ppa-info-light);
	border-color: var(--ppa-info);
}

.ppa-notice-warning {
	background: var(--ppa-warning-light);
	border-color: var(--ppa-warning);
}

.ppa-notice-error {
	background: var(--ppa-error-light);
	border-color: var(--ppa-error);
}

.ppa-notice-success {
	background: var(--ppa-success-light);
	border-color: var(--ppa-success);
}

.ppa-notice-message {
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.5;
}

/* ==========================================================================
   My Submissions Dashboard
   ========================================================================== */

.ppa-my-submissions {
	max-width: var(--ppa-max-width, 800px);
	margin: var(--ppa-space-xl) auto;
	font-family: var(--ppa-font-sans);
	font-size: var(--ppa-font-size-base, 1rem);
	color: var(--ppa-text);
	line-height: var(--ppa-line-height, 1.5);
}

.ppa-my-submissions *,
.ppa-my-submissions *::before,
.ppa-my-submissions *::after {
	box-sizing: border-box;
}

.ppa-submissions-title {
	font-size: 1.75rem;
	font-weight: 700;
	color: var(--ppa-text);
	margin: 0 0 var(--ppa-space-xl);
}

.ppa-submissions-empty {
	text-align: center;
	padding: var(--ppa-space-2xl);
	color: var(--ppa-text-secondary);
	font-size: 1rem;
}

.ppa-submissions-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.ppa-submission-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: var(--ppa-space-lg);
	border: 1px solid var(--ppa-border-light);
	border-radius: var(--ppa-radius-md);
	margin-bottom: var(--ppa-space-sm);
	background: var(--ppa-background);
	transition: var(--ppa-transition-fast);
}

.ppa-submission-item:hover {
	border-color: var(--ppa-border);
	box-shadow: var(--ppa-shadow-sm);
}

.ppa-submission-title {
	font-weight: 600;
	color: var(--ppa-text);
}

.ppa-submission-date {
	font-size: 0.75rem;
	color: var(--ppa-text-light);
}

.ppa-submission-score {
	font-weight: 700;
	font-family: var(--ppa-font-mono);
}

/* ==========================================================================
   Login Required
   ========================================================================== */

.ppa-login-required {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--ppa-space-lg);
	padding: var(--ppa-space-2xl);
	background: var(--ppa-background-gray);
	border: 2px solid var(--ppa-border);
	border-radius: var(--ppa-radius-xl);
	text-align: center;
	width: 100%;
	max-width: 500px;
	margin: var(--ppa-space-xl) auto;
}

.ppa-login-required-icon {
	font-size: 3rem;
	line-height: 1;
	opacity: 0.8;
}

.ppa-login-required-message {
	font-size: 1.125rem;
	color: var(--ppa-text);
	line-height: 1.7;
}

.ppa-login-required-message p {
	margin: 0 0 var(--ppa-space-md);
}

.ppa-login-required-message p:last-child {
	margin-bottom: 0;
}

.ppa-button-large {
	font-size: 1.125rem;
	padding: var(--ppa-space-lg) var(--ppa-space-2xl);
	min-width: 200px;
}

.ppa-button-icon {
	display: inline-block;
	margin-right: var(--ppa-space-sm);
	font-size: 1.25rem;
	line-height: 1;
}

.ppa-login-button {
	box-shadow: var(--ppa-shadow-lg);
}

.ppa-login-button:hover:not(:disabled) {
	box-shadow: var(--ppa-shadow-xl);
}

.ppa-register-prompt {
	font-size: 0.875rem;
	color: var(--ppa-text-secondary);
	margin: 0;
}

.ppa-register-prompt a {
	color: var(--ppa-primary);
	text-decoration: none;
	font-weight: 600;
	transition: var(--ppa-transition-fast);
}

.ppa-register-prompt a:hover {
	color: var(--ppa-primary-dark);
	text-decoration: underline;
}

/* ==========================================================================
   Login Link (legacy)
   ========================================================================== */

.ppa-login-link {
	color: var(--ppa-primary);
	text-decoration: none;
	font-weight: 600;
}

.ppa-login-link:hover {
	text-decoration: underline;
}

/* ==========================================================================
   Confirmation Modal
   Modeled after the Quiz Admin Modal (ppq-modal) structure:
   header with gray background, centered body with icon, footer with buttons.
   ========================================================================== */

.ppa-confirm-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.6);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 10001;
	padding: var(--ppa-space-md);
	opacity: 0;
	transition: opacity 0.2s ease;
}

.ppa-confirm-overlay--visible {
	opacity: 1;
}

.ppa-confirm-dialog {
	background: var(--ppa-background, #ffffff);
	border-radius: var(--ppa-radius-lg, 8px);
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
	max-width: 420px;
	width: 90%;
	max-height: 90vh;
	overflow: hidden;
	transform: scale(0.9);
	transition: transform 0.2s ease;
}

.ppa-confirm-overlay--visible .ppa-confirm-dialog {
	transform: scale(1);
}

.ppa-confirm-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px;
	border-bottom: 1px solid var(--ppa-border-light, #dcdcde);
	background: var(--ppa-background-gray, #f6f7f7);
}

.ppa-confirm-title {
	margin: 0;
	font-size: 1rem;
	font-weight: 600;
	color: var(--ppa-text);
}

.ppa-confirm-close {
	background: none;
	border: none;
	cursor: pointer;
	color: var(--ppa-text-light, #646970);
	padding: 4px;
	line-height: 1;
	border-radius: var(--ppa-radius-sm, 4px);
	transition: var(--ppa-transition-fast);
	font-size: 1.25rem;
}

.ppa-confirm-close:hover {
	color: var(--ppa-text);
}

.ppa-confirm-body {
	padding: 24px 20px;
	text-align: center;
}

.ppa-confirm-icon {
	margin-bottom: 16px;
	font-size: 48px;
	line-height: 1;
	color: var(--ppa-primary);
}

.ppa-confirm-message {
	font-size: 0.875rem;
	line-height: 1.6;
	color: var(--ppa-text-secondary, #3c434a);
	margin: 0;
}

.ppa-confirm-footer {
	display: flex;
	justify-content: center;
	gap: 12px;
	padding: 16px 20px;
	background: var(--ppa-background-gray, #f6f7f7);
	border-top: 1px solid var(--ppa-border-light, #dcdcde);
}

.ppa-confirm-footer .ppa-button {
	min-width: 90px;
	justify-content: center;
}

.ppa-confirm-footer .ppa-button-secondary {
	background: #fff;
	color: var(--ppa-text, #1d2327);
	border: 2px solid var(--ppa-border, #c3c4c7);
}

@media (max-width: 480px) {
	.ppa-confirm-dialog {
		width: calc(100% - 32px);
	}

	.ppa-confirm-footer {
		flex-direction: column;
	}

	.ppa-confirm-footer .ppa-button {
		width: 100%;
	}
}

/* ==========================================================================
   Utility Classes
   ========================================================================== */

.ppa-hidden {
	display: none;
}

/* ==========================================================================
   Accessibility
   ========================================================================== */

.ppa-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Skip link - visually hidden until focused */
.ppa-skip-link {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.ppa-skip-link:focus {
	position: fixed;
	top: var(--ppa-space-sm);
	left: var(--ppa-space-sm);
	width: auto;
	height: auto;
	padding: var(--ppa-space-sm) var(--ppa-space-md);
	margin: 0;
	overflow: visible;
	clip: auto;
	white-space: normal;
	background: var(--ppa-primary);
	color: #ffffff;
	z-index: 10000;
	text-decoration: none;
	font-weight: 600;
	border-radius: var(--ppa-radius-sm);
	outline: 2px solid var(--ppa-primary-dark);
	outline-offset: 2px;
}

/* Focus visible for interactive elements missing keyboard focus indicators */
.ppa-file-remove:focus-visible {
	outline: 2px solid var(--ppa-error);
	outline-offset: 2px;
	border-radius: var(--ppa-radius-sm);
}

.ppa-delete-submission:focus-visible,
.ppa-view-submission:focus-visible {
	outline: 2px solid var(--ppa-primary);
	outline-offset: 2px;
}

.ppa-confirm-close:focus-visible {
	outline: 2px solid var(--ppa-primary, #0073aa);
	outline-offset: 2px;
}

.ppa-type-option:focus-visible {
	outline: 2px solid var(--ppa-primary);
	outline-offset: 2px;
	box-shadow: var(--ppa-shadow-focus);
}

/* Reduced motion for users who prefer it */
@media (prefers-reduced-motion: reduce) {
	.ppa-assignment *,
	.ppa-assignment *::before,
	.ppa-assignment *::after,
	.ppa-my-submissions *,
	.ppa-my-submissions *::before,
	.ppa-my-submissions *::after,
	.ppa-confirm-overlay *,
	.ppa-confirm-overlay *::before,
	.ppa-confirm-overlay *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}

/* High contrast mode support */
@media (prefers-contrast: high) {
	.ppa-button-primary {
		border: 2px solid currentColor;
	}

	.ppa-meta-item {
		border: 2px solid var(--ppa-border);
	}

	.ppa-type-option {
		border: 2px solid var(--ppa-border);
	}

	.ppa-status-badge {
		border: 2px solid currentColor;
	}

	.ppa-upload-zone {
		border: 2px solid var(--ppa-border);
	}

	.ppa-submission-card {
		border: 2px solid var(--ppa-border);
	}

	.ppa-grade-display {
		border: 2px solid currentColor;
	}
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 768px) {
	.ppa-assignment-content {
		padding: var(--ppa-space-lg);
		border-radius: var(--ppa-radius-md);
	}

	.ppa-assignment-title {
		font-size: 1.5rem;
	}

	.ppa-assignment-meta {
		flex-direction: column;
	}

	.ppa-upload-zone {
		padding: 30px 15px;
	}

	.ppa-file-item {
		flex-direction: column;
		align-items: flex-start;
		gap: var(--ppa-space-sm);
	}

	.ppa-file-actions {
		width: 100%;
		justify-content: flex-end;
	}

	.ppa-grade-score {
		font-size: 2.5rem;
	}

	.ppa-status-header {
		flex-direction: column;
		align-items: flex-start;
		gap: var(--ppa-space-sm);
	}

	.ppa-submission-card {
		flex-direction: column;
		align-items: flex-start;
		gap: var(--ppa-space-sm);
		padding: var(--ppa-space-md);
	}

	.ppa-submission-card-actions {
		width: 100%;
		justify-content: space-between;
	}

	.ppa-submitted-text-content {
		max-height: 200px;
		padding: var(--ppa-space-md);
	}

	.ppa-resubmit-section {
		flex-direction: column;
		align-items: flex-start;
	}
}

@media (max-width: 480px) {
	.ppa-assignment-content {
		padding: var(--ppa-space-md);
	}

	.ppa-assignment-title {
		font-size: 1.25rem;
	}

	.ppa-button {
		width: 100%;
	}

	.ppa-submission-item {
		flex-direction: column;
		align-items: flex-start;
		gap: var(--ppa-space-sm);
	}

	.ppa-grade-score {
		font-size: 2rem;
	}

	.ppa-grade-display {
		padding: var(--ppa-space-lg);
	}

	.ppa-submission-card-number {
		font-size: 0.8125rem;
	}

	.ppa-submission-card-date {
		font-size: 0.75rem;
	}

	.ppa-preview-body {
		padding: var(--ppa-space-md);
	}

	.ppa-preview-footer {
		flex-direction: column;
	}

	.ppa-preview-footer .ppa-button {
		width: 100%;
	}

	.ppa-preview-text-content {
		max-height: 200px;
	}
}

/* ==========================================================================
   Text Submission Display
   ========================================================================== */

.ppa-submitted-text {
	margin-bottom: var(--ppa-space-lg);
}

.ppa-submitted-text-content {
	padding: var(--ppa-space-lg);
	background: var(--ppa-background-gray, #f6f7f7);
	border: 1px solid var(--ppa-border-light, #dcdcde);
	border-radius: var(--ppa-radius-md);
	font-size: var(--ppa-font-size-sm, 0.875rem);
	line-height: var(--ppa-line-height, 1.6);
	max-height: 300px;
	overflow-y: auto;
}

.ppa-submitted-text-content p:last-child {
	margin-bottom: 0;
}

/* ==========================================================================
   Previous Submissions (Card Layout - Matches Quiz)
   ========================================================================== */

.ppa-previous-submissions {
	margin-top: var(--ppa-space-lg);
}

.ppa-submissions-list {
	display: grid;
	gap: var(--ppa-space-md);
}

.ppa-submission-card {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	padding: var(--ppa-space-md) var(--ppa-space-lg);
	background: var(--ppa-background);
	border: 2px solid var(--ppa-border-light);
	border-radius: var(--ppa-radius-lg);
	transition: var(--ppa-transition);
}

.ppa-submission-card:hover {
	border-color: var(--ppa-primary-light);
	box-shadow: var(--ppa-shadow-md);
}

.ppa-submission-card-info {
	display: flex;
	flex-direction: column;
	gap: var(--ppa-space-xs);
}

.ppa-submission-card-number {
	font-size: var(--ppa-font-size-sm, 0.875rem);
	font-weight: 600;
	color: var(--ppa-text);
}

.ppa-submission-card-date {
	font-size: 0.8125rem;
	color: var(--ppa-text-secondary);
}

.ppa-submission-card-score {
	text-align: right;
}

.ppa-submission-card-points {
	font-weight: 600;
	font-size: var(--ppa-font-size-sm, 0.875rem);
	min-width: 80px;
	text-align: right;
}

.ppa-submission-card-points.ppa-passed {
	color: var(--ppa-success);
}

.ppa-submission-card-points.ppa-failed {
	color: var(--ppa-error);
}

.ppa-submission-card-ungraded {
	font-size: 0.8125rem;
	color: var(--ppa-text-light);
	font-style: italic;
	min-width: 80px;
	text-align: right;
}

.ppa-submission-card-actions {
	display: flex;
	align-items: center;
	gap: var(--ppa-space-md);
}

.ppa-submission-card-feedback {
	width: 100%;
	margin-top: var(--ppa-space-sm);
	padding-top: var(--ppa-space-sm);
	border-top: 1px solid var(--ppa-border-light);
}

.ppa-submission-card-feedback-label {
	display: block;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--ppa-text-secondary);
	margin-bottom: var(--ppa-space-xs);
}

.ppa-submission-card-feedback-text {
	font-size: var(--ppa-font-size-sm, 0.875rem);
	color: var(--ppa-text);
	line-height: var(--ppa-line-height);
}

.ppa-submission-card-feedback-text p {
	margin: 0 0 var(--ppa-space-xs) 0;
}

.ppa-submission-card-feedback-text p:last-child {
	margin-bottom: 0;
}

.ppa-delete-submission,
.ppa-view-submission {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: none;
	border-radius: var(--ppa-radius-sm);
	background: transparent;
	color: var(--ppa-text-light);
	cursor: pointer;
	transition: var(--ppa-transition);
	text-decoration: none;
	flex-shrink: 0;
}

.ppa-delete-submission:hover {
	color: var(--ppa-error);
	background: var(--ppa-error-light);
}

.ppa-view-submission:hover {
	color: var(--ppa-primary);
	background: var(--ppa-primary-light);
}

.ppa-delete-submission:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.ppa-delete-submission .dashicons,
.ppa-view-submission .dashicons {
	font-size: 20px;
	width: 20px;
	height: 20px;
}

/* ==========================================================================
   Submission Preview Modal
   ========================================================================== */

.ppa-preview-dialog {
	max-width: 600px;
	max-height: 80vh;
	width: 90%;
	display: flex;
	flex-direction: column;
}

.ppa-preview-body {
	overflow-y: auto;
	flex: 1;
	padding: var(--ppa-space-xl);
}

.ppa-preview-section {
	margin-bottom: var(--ppa-space-lg);
	text-align: left;
}

.ppa-preview-section:last-child {
	margin-bottom: 0;
}

.ppa-preview-section-title {
	font-size: var(--ppa-font-size-sm, 0.875rem);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--ppa-text-secondary, #50575e);
	margin-bottom: var(--ppa-space-sm);
}

.ppa-preview-assignment-info {
	font-size: var(--ppa-font-size-base, 1rem);
	color: var(--ppa-text, #1d2327);
	padding: var(--ppa-space-md);
	background: var(--ppa-background-gray, #f6f7f7);
	border-radius: var(--ppa-radius-md);
}

/* File list in preview */

.ppa-preview-file-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ppa-preview-file-item {
	display: flex;
	align-items: center;
	gap: var(--ppa-space-sm);
	padding: var(--ppa-space-sm) var(--ppa-space-md);
	border-bottom: 1px solid var(--ppa-border-light, #dcdcde);
}

.ppa-preview-file-item:last-child {
	border-bottom: none;
}

.ppa-preview-file-icon {
	font-size: 0.6875rem;
	font-weight: 700;
	text-transform: uppercase;
	color: var(--ppa-text-inverse, #ffffff);
	background: var(--ppa-secondary, #50575e);
	padding: 2px 6px;
	border-radius: var(--ppa-radius-sm);
	white-space: nowrap;
}

.ppa-preview-file-name {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-size: var(--ppa-font-size-sm, 0.875rem);
	color: var(--ppa-text, #1d2327);
}

.ppa-preview-file-size {
	font-size: var(--ppa-font-size-xs, 0.75rem);
	color: var(--ppa-text-light, #787c82);
	white-space: nowrap;
}

.ppa-preview-file-warning {
	color: var(--ppa-warning, #dba617);
	font-size: 16px;
	width: 16px;
	height: 16px;
}

.ppa-preview-total-size {
	font-size: var(--ppa-font-size-sm, 0.875rem);
	color: var(--ppa-text-secondary, #50575e);
	margin-top: var(--ppa-space-sm);
	padding-top: var(--ppa-space-sm);
	border-top: 1px solid var(--ppa-border-light, #dcdcde);
}

/* PDF Warning in preview */

.ppa-preview-pdf-warning {
	margin-bottom: var(--ppa-space-lg);
}

.ppa-preview-pdf-warning .ppa-notice-warning {
	padding: var(--ppa-space-md);
	background: var(--ppa-warning-light, #fcf9e8);
	border: 1px solid var(--ppa-warning, #dba617);
	border-radius: var(--ppa-radius-md);
}

.ppa-preview-pdf-warning .ppa-notice-warning strong {
	display: block;
	margin-bottom: var(--ppa-space-xs);
}

.ppa-preview-pdf-warning .ppa-notice-warning p {
	margin: 0 0 var(--ppa-space-sm);
	font-size: var(--ppa-font-size-sm, 0.875rem);
}

.ppa-preview-pdf-warning details {
	font-size: var(--ppa-font-size-sm, 0.875rem);
}

.ppa-preview-pdf-warning summary {
	cursor: pointer;
	color: var(--ppa-primary, #0073aa);
	font-weight: 600;
}

/* Text content in preview */

.ppa-preview-text-content {
	max-height: 300px;
	overflow-y: auto;
	padding: var(--ppa-space-md);
	background: var(--ppa-background-gray, #f6f7f7);
	border-radius: var(--ppa-radius-md);
	border: 1px solid var(--ppa-border-light, #dcdcde);
	font-size: var(--ppa-font-size-sm, 0.875rem);
	line-height: var(--ppa-line-height, 1.6);
}

.ppa-preview-word-count {
	font-size: var(--ppa-font-size-sm, 0.875rem);
	color: var(--ppa-text-secondary, #50575e);
	margin-top: var(--ppa-space-sm);
}

/* Notes in preview */

.ppa-preview-notes-content {
	padding: var(--ppa-space-md);
	background: var(--ppa-background-gray, #f6f7f7);
	border-radius: var(--ppa-radius-md);
	font-size: var(--ppa-font-size-sm, 0.875rem);
	line-height: var(--ppa-line-height, 1.6);
	white-space: pre-wrap;
}

/* Resubmission info */

.ppa-preview-resubmission-info {
	font-size: var(--ppa-font-size-sm, 0.875rem);
	color: var(--ppa-text-secondary, #50575e);
	font-style: italic;
	text-align: center;
	margin-top: var(--ppa-space-md);
}

/* Preview footer buttons */

.ppa-preview-footer {
	justify-content: space-between;
}

/* ==========================================================================
   Print Styles
   ========================================================================== */

@media print {
	.ppa-submission-form,
	.ppa-submission-type-selector,
	.ppa-upload-zone,
	.ppa-file-remove,
	.ppa-file-text-preview,
	.ppa-button,
	.ppa-login-required,
	.ppa-confirm-overlay {
		display: none;
	}

	.ppa-assignment {
		max-width: 100%;
		padding: 0;
	}

	.ppa-assignment-content {
		background: none;
		border: 1px solid #000;
		box-shadow: none;
	}

	.ppa-assignment-meta {
		box-shadow: none;
		background: none;
		border: 1px solid #000;
	}

	.ppa-grade-display {
		page-break-inside: avoid;
		box-shadow: none;
	}

	.ppa-feedback {
		page-break-inside: avoid;
	}

	.ppa-my-submissions {
		max-width: 100%;
		padding: 0;
	}

	.ppa-submission-item {
		box-shadow: none;
	}

	.ppa-resubmit-section {
		display: none;
	}

	.ppa-delete-submission,
	.ppa-view-submission {
		display: none;
	}

	.ppa-submission-card {
		box-shadow: none;
		border: 1px solid #000;
	}

	.ppa-submitted-text-content {
		max-height: none;
		overflow: visible;
		background: none;
		border: 1px solid #000;
	}
}

/* ==========================================================================
   RTL (Right-to-Left) Language Support
   ========================================================================== */

[dir="rtl"] .ppa-assignment,
[dir="rtl"] .ppa-my-submissions {
	direction: rtl;
	text-align: right;
}

/* Notice borders flip for RTL */
[dir="rtl"] .ppa-notice {
	border-left: none;
	border-right: 4px solid;
}

[dir="rtl"] .ppa-notice-info {
	border-right-color: var(--ppa-info);
}

[dir="rtl"] .ppa-notice-warning {
	border-right-color: var(--ppa-warning);
}

[dir="rtl"] .ppa-notice-error {
	border-right-color: var(--ppa-error);
}

[dir="rtl"] .ppa-notice-success {
	border-right-color: var(--ppa-success);
}

/* File info text alignment */
[dir="rtl"] .ppa-file-info {
	flex-direction: row-reverse;
}

[dir="rtl"] .ppa-file-size {
	margin-left: 0;
	margin-right: var(--ppa-space-sm);
}

[dir="rtl"] .ppa-file-progress {
	margin-left: 0;
	margin-right: var(--ppa-space-xl);
}

/* File actions alignment */
[dir="rtl"] .ppa-file-actions {
	flex-direction: row-reverse;
}

/* Status header alignment */
[dir="rtl"] .ppa-status-header {
	flex-direction: row-reverse;
}

/* Pass badge positioning */
[dir="rtl"] .ppa-pass-badge {
	margin-left: 0;
	margin-right: var(--ppa-space-xs);
}

/* Submission item layout */
[dir="rtl"] .ppa-submission-item {
	flex-direction: row-reverse;
}

/* Meta items in RTL */
[dir="rtl"] .ppa-assignment-meta {
	flex-direction: row-reverse;
}

/* Upload zone description text alignment */
[dir="rtl"] .ppa-assignment-description-text {
	text-align: right;
}

/* Confirm dialog RTL */
[dir="rtl"] .ppa-confirm-footer {
	flex-direction: row-reverse;
}

/* Login required button icon */
[dir="rtl"] .ppa-button-icon {
	margin-right: 0;
	margin-left: var(--ppa-space-sm);
}

/* Detail rows */
[dir="rtl"] .ppa-detail-row {
	flex-direction: row-reverse;
}

/* Resubmit section */
[dir="rtl"] .ppa-resubmit-section {
	flex-direction: row-reverse;
}

/* Previous submission cards */
[dir="rtl"] .ppa-submission-card {
	flex-direction: row-reverse;
}

[dir="rtl"] .ppa-submission-card-info {
	align-items: flex-end;
}

[dir="rtl"] .ppa-submission-card-score {
	text-align: left;
}

[dir="rtl"] .ppa-submission-card-actions {
	flex-direction: row-reverse;
}

/* Text preview */
[dir="rtl"] .ppa-text-preview-text {
	direction: rtl;
	text-align: right;
}

/* Text submission content */
[dir="rtl"] .ppa-submitted-text-content {
	direction: rtl;
	text-align: right;
}

/* Preview modal */
[dir="rtl"] .ppa-preview-file-item {
	flex-direction: row-reverse;
}

[dir="rtl"] .ppa-preview-footer {
	flex-direction: row-reverse;
}

[dir="rtl"] .ppa-preview-text-content {
	direction: rtl;
	text-align: right;
}

[dir="rtl"] .ppa-preview-notes-content {
	direction: rtl;
	text-align: right;
}


/* ==========================================================================
   LearnPress integration: hide LearnPress's "lesson content is empty"
   notice. This stylesheet only enqueues when an assignment is rendering,
   so the rule is scoped to that context by load timing — the
   .learn-press-message class does not exist on other pages.
   ========================================================================== */

.learn-press-message.notice {
	display: none;
}
