/* ============================================================
   Receipt Manager CRA — Styles
   ============================================================ */

/* ---------- Root variables ---------- */
:root {
	--rm-primary:     #1a3c5e;
	--rm-primary-lt:  #e8f0fe;
	--rm-accent:      #2e7d32;
	--rm-accent-lt:   #e8f5e9;
	--rm-warning:     #c67b00;
	--rm-warning-lt:  #fffbe6;
	--rm-danger:      #c62828;
	--rm-danger-lt:   #fdecea;
	--rm-border:      #dde3ea;
	--rm-bg:          #f7f9fb;
	--rm-text:        #1c2b3a;
	--rm-text-muted:  #6b7c93;
	--rm-radius:      8px;
	--rm-shadow:      0 2px 12px rgba(26,60,94,.1);
	--rm-font:        -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

/* ============================================================
   Shared / utility
   ============================================================ */
.rm-cra-wrap *,
.rm-cra-admin-reports * {
	box-sizing: border-box;
}

.rm-cra-notice {
	padding: 12px 16px;
	border-radius: var(--rm-radius);
	margin-bottom: 16px;
	font-size: 14px;
}
.rm-cra-notice--error   { background: var(--rm-danger-lt);  border-left: 4px solid var(--rm-danger);  color: var(--rm-danger); }
.rm-cra-notice--info    { background: var(--rm-primary-lt); border-left: 4px solid var(--rm-primary); color: var(--rm-primary); }
.rm-cra-notice--success { background: var(--rm-accent-lt);  border-left: 4px solid var(--rm-accent);  color: var(--rm-accent); }

/* ============================================================
   Frontend wrap
   ============================================================ */
.rm-cra-wrap {
	font-family: var(--rm-font);
	color: var(--rm-text);
	max-width: 900px;
	margin: 0 auto;
}

/* ---------- Headings ---------- */
.rm-cra-heading {
	font-size: 22px;
	font-weight: 700;
	color: var(--rm-primary);
	margin-bottom: 6px;
}
.rm-cra-heading--success { color: var(--rm-accent); }
.rm-cra-subheading {
	font-size: 14px;
	color: var(--rm-text-muted);
	margin-bottom: 24px;
}

/* ============================================================
   Upload form
   ============================================================ */
.rm-cra-form-section {
	background: #fff;
	border: 1px solid var(--rm-border);
	border-radius: var(--rm-radius);
	padding: 28px 32px;
	box-shadow: var(--rm-shadow);
}

/* --- File drop zone --- */
.rm-cra-field--file { margin-bottom: 20px; }

.rm-cra-file-drop {
	position: relative;
	border: 2px dashed var(--rm-border);
	border-radius: var(--rm-radius);
	padding: 32px 20px;
	text-align: center;
	cursor: pointer;
	transition: border-color .2s, background .2s;
}
.rm-cra-file-drop:hover,
.rm-cra-file-drop.rm-cra-drag-over {
	border-color: var(--rm-primary);
	background: var(--rm-primary-lt);
}
.rm-cra-file-drop input[type="file"] {
	position: absolute;
	inset: 0;
	opacity: 0;
	cursor: pointer;
	width: 100%;
	height: 100%;
}
.rm-cra-file-drop__icon  { font-size: 40px; margin-bottom: 8px; }
.rm-cra-file-drop__label { font-size: 16px; font-weight: 600; color: var(--rm-primary); }
.rm-cra-file-drop__types { font-size: 12px; color: var(--rm-text-muted); margin-top: 4px; }
.rm-cra-file-drop__selected {
	margin-top: 10px;
	font-size: 13px;
	font-weight: 600;
	color: var(--rm-accent);
}

/* --- Form fields --- */
.rm-cra-label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	margin-bottom: 5px;
	color: var(--rm-text);
}
.rm-cra-required { color: var(--rm-danger); margin-left: 2px; }
.rm-cra-input {
	display: block;
	width: 100%;
	padding: 9px 12px;
	font-size: 14px;
	border: 1px solid var(--rm-border);
	border-radius: 6px;
	background: #fff;
	color: var(--rm-text);
	transition: border-color .2s, box-shadow .2s;
	font-family: var(--rm-font);
}
.rm-cra-input:focus {
	outline: none;
	border-color: var(--rm-primary);
	box-shadow: 0 0 0 3px rgba(26,60,94,.12);
}

.rm-cra-row {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
	margin-bottom: 14px;
}
.rm-cra-col { flex: 1; min-width: 160px; }
.rm-cra-field { margin-bottom: 14px; }
.rm-cra-help {
	font-size: 12px;
	color: var(--rm-text-muted);
	margin-top: 4px;
}

/* --- Override details --- */
.rm-cra-overrides {
	border: 1px solid var(--rm-border);
	border-radius: var(--rm-radius);
	margin-bottom: 20px;
}
.rm-cra-overrides summary {
	padding: 12px 16px;
	cursor: pointer;
	font-size: 14px;
	font-weight: 600;
	color: var(--rm-primary);
	list-style: none;
}
.rm-cra-overrides summary::-webkit-details-marker { display: none; }
.rm-cra-overrides summary::before { content: '▶  '; font-size: 10px; }
.rm-cra-overrides[open] summary::before { content: '▼  '; }
.rm-cra-overrides__content {
	padding: 16px 16px 4px;
	border-top: 1px solid var(--rm-border);
}

/* --- Submit button --- */
.rm-cra-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 11px 24px;
	background: var(--rm-primary);
	color: #fff;
	border: none;
	border-radius: 6px;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: background .2s, transform .1s;
	font-family: var(--rm-font);
	text-decoration: none;
}
.rm-cra-btn:hover  { background: #133050; }
.rm-cra-btn:active { transform: scale(.98); }
.rm-cra-btn--secondary {
	background: #fff;
	color: var(--rm-primary);
	border: 2px solid var(--rm-primary);
}
.rm-cra-btn--secondary:hover { background: var(--rm-primary-lt); }

/* ============================================================
   Result section
   ============================================================ */
.rm-cra-result-section {
	background: #fff;
	border: 1px solid var(--rm-border);
	border-radius: var(--rm-radius);
	padding: 28px 32px;
	box-shadow: var(--rm-shadow);
	margin-top: 24px;
}

.rm-cra-result-body {
	display: flex;
	gap: 32px;
	flex-wrap: wrap;
	align-items: flex-start;
}
.rm-cra-result-data  { flex: 1 1 320px; }
.rm-cra-result-image { flex: 1 1 280px; }
.rm-cra-result-image img {
	max-width: 100%;
	border: 1px solid var(--rm-border);
	border-radius: var(--rm-radius);
	margin-top: 8px;
}

/* --- Data table --- */
.rm-cra-data-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
	margin-bottom: 16px;
}
.rm-cra-data-table th,
.rm-cra-data-table td {
	padding: 9px 12px;
	border: 1px solid var(--rm-border);
	text-align: left;
	vertical-align: top;
}
.rm-cra-data-table th {
	background: var(--rm-bg);
	font-weight: 600;
	width: 38%;
	color: var(--rm-primary);
}
.rm-cra-data-table tr:nth-child(even) td { background: #fbfcfd; }

.rm-cra-result-actions {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	align-items: center;
	margin-bottom: 16px;
}
.rm-cra-link {
	color: var(--rm-primary);
	font-size: 13px;
	text-decoration: underline;
}

.rm-cra-retention-note {
	font-size: 12px;
	color: var(--rm-warning);
	background: var(--rm-warning-lt);
	border: 1px solid #e6c200;
	border-radius: 6px;
	padding: 10px 14px;
	margin-top: 16px;
}

/* ============================================================
   Admin reports page
   ============================================================ */
.rm-cra-admin-reports h1 { margin-bottom: 6px; }
.rm-cra-admin-reports .description { margin-bottom: 20px; }

/* --- Filter form --- */
.rm-cra-filter-form {
	background: #fff;
	border: 1px solid var(--rm-border);
	border-radius: var(--rm-radius);
	padding: 20px 24px;
	margin-bottom: 24px;
}
.rm-cra-filter-row {
	display: flex;
	gap: 20px;
	flex-wrap: wrap;
	align-items: flex-end;
}
.rm-cra-filter-col { min-width: 140px; }
.rm-cra-filter-col--wide { flex: 2 1 260px; }
.rm-cra-filter-col--actions {
	display: flex;
	gap: 8px;
	align-items: flex-end;
}
.rm-cra-filter-input {
	display: block;
	margin-top: 6px;
	padding: 7px 10px;
	border: 1px solid var(--rm-border);
	border-radius: 4px;
	font-size: 13px;
}
.rm-cra-filter-cats {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 14px;
	margin-top: 6px;
}
.rm-cra-filter-cat-label {
	display: flex;
	align-items: center;
	gap: 5px;
	font-size: 13px;
	cursor: pointer;
}

/* --- Category totals --- */
.rm-cra-category-totals { margin-bottom: 28px; }
.rm-cra-summary-table   { max-width: 500px; }

/* --- Export actions --- */
.rm-cra-export-actions {
	background: var(--rm-primary-lt);
	border: 1px solid var(--rm-primary);
	border-radius: var(--rm-radius);
	padding: 16px 20px;
	margin-bottom: 20px;
}
.rm-cra-export-actions h2 { margin-top: 0; font-size: 16px; color: var(--rm-primary); }
.rm-cra-export-actions .button { margin-right: 8px; }

/* --- Report table --- */
.rm-cra-report-table { margin-top: 8px; }
.rm-cra-report-table .check-column { width: 32px; padding: 8px; }
.rm-cra-report-table th, .rm-cra-report-table td { padding: 8px 12px; }

/* ============================================================
   Responsive
   ============================================================ */
@media ( max-width: 680px ) {
	.rm-cra-form-section,
	.rm-cra-result-section { padding: 20px 16px; }

	.rm-cra-result-body { flex-direction: column; }
	.rm-cra-result-image { width: 100%; }

	.rm-cra-row { flex-direction: column; gap: 0; }
	.rm-cra-col { min-width: 100%; margin-bottom: 12px; }

	.rm-cra-filter-row { flex-direction: column; }
	.rm-cra-filter-col--actions { flex-direction: column; width: 100%; }
}
