/* Upwork — base styles (will expand in Phase 7) */

:root {
	--upw-bg: #f7f8fa;
	--upw-surface: #ffffff;
	--upw-border: #e5e7eb;
	--upw-text: #111827;
	--upw-muted: #6b7280;
	--upw-primary: #14a800;
	--upw-primary-hover: #108700;
	--upw-danger: #dc2626;
	--upw-warning: #d97706;
	--upw-success: #16a34a;
	--upw-radius: 8px;
	--upw-shadow: 0 1px 2px rgba(17, 24, 39, 0.06), 0 1px 3px rgba(17, 24, 39, 0.04);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	background: var(--upw-bg);
	color: var(--upw-text);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

body > .upw-page {
	flex: 1 0 auto;
}

/* Reset link colors globally */
a { color: var(--upw-primary); text-decoration: none; transition: color 0.15s; }
a:hover { color: var(--upw-primary-hover); }

h1, h2, h3, h4 {
	font-weight: 700;
	color: var(--upw-text);
	letter-spacing: -0.01em;
}
h1 { font-size: 26px; }
h2 { font-size: 20px; }
h3 { font-size: 16px; }

.upw-container {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 20px;
}

.upw-header {
	background: var(--upw-surface);
	border-bottom: 1px solid var(--upw-border);
}

.upw-header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-top: 16px;
	padding-bottom: 16px;
}

.upw-brand {
	font-weight: 700;
	font-size: 18px;
	color: var(--upw-text);
	text-decoration: none;
}

.upw-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	align-items: center;
}
.upw-nav a {
	color: var(--upw-muted);
	text-decoration: none;
	font-size: 14px;
	padding: 4px 0;
	border-bottom: 2px solid transparent;
}
.upw-nav a:hover { color: var(--upw-text); }
.upw-nav a.is-current,
.upw-nav a[aria-current="page"] {
	color: var(--upw-text);
	border-bottom-color: var(--upw-primary);
}
.upw-logout {
	margin-left: auto;
	color: var(--upw-danger) !important;
}

@media (max-width: 640px) {
	.upw-header-inner { flex-direction: column; align-items: flex-start; gap: 12px; }
	.upw-nav { width: 100%; gap: 12px; }
	.upw-nav a { font-size: 13px; }
	.upw-logout { margin-left: 0; }
}

.upw-page { padding: 32px 0; }
.upw-main { background: transparent; }
.upw-page-title { margin: 0 0 24px; }

.upw-footer {
	border-top: 1px solid var(--upw-border);
	background: var(--upw-surface);
	padding: 24px 0;
	color: var(--upw-muted);
	margin-top: 48px;
}
.upw-footer-inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	gap: 20px;
	align-items: center;
}
.upw-footer-brand {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.upw-footer-brand strong {
	color: var(--upw-text);
	font-size: 14px;
}
.upw-footer-tag {
	font-size: 12px;
	color: var(--upw-muted);
}
.upw-footer-nav {
	display: flex;
	gap: 16px;
	justify-self: center;
}
.upw-footer-nav a {
	color: var(--upw-muted);
	text-decoration: none;
	font-size: 13px;
}
.upw-footer-nav a:hover { color: var(--upw-primary); }
.upw-footer-meta {
	display: flex;
	flex-direction: column;
	gap: 2px;
	text-align: right;
	justify-self: end;
}
.upw-footer-note {
	font-size: 11px;
	color: #9ca3af;
}
@media (max-width: 720px) {
	.upw-footer-inner { grid-template-columns: 1fr; text-align: center; }
	.upw-footer-nav { justify-self: center; flex-wrap: wrap; justify-content: center; }
	.upw-footer-meta { text-align: center; justify-self: center; }
}

/* ---- Buttons ---- */
.upw-btn {
	display: inline-block;
	padding: 10px 18px;
	border-radius: var(--upw-radius);
	border: 1px solid transparent;
	background: var(--upw-surface);
	color: var(--upw-text);
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	text-decoration: none;
	line-height: 1.2;
	transition: all 0.15s ease;
}
.upw-btn:active { transform: translateY(1px); }
.upw-btn:focus { outline: 2px solid #93c5fd; outline-offset: 2px; }
.upw-btn-primary {
	background: var(--upw-primary);
	color: #fff;
	border-color: var(--upw-primary);
}
.upw-btn-primary:hover { background: var(--upw-primary-hover); border-color: var(--upw-primary-hover); }
.upw-btn-block { width: 100%; }
.upw-btn-sm {
	padding: 6px 12px;
	font-size: 12px;
}

/* ---- Alerts ---- */
.upw-alert {
	padding: 10px 14px;
	border-radius: var(--upw-radius);
	margin-bottom: 16px;
	font-size: 14px;
}
.upw-alert-error { background: #fee2e2; color: #991b1b; border: 1px solid #fecaca; }
.upw-alert-success { background: #dcfce7; color: #166534; border: 1px solid #bbf7d0; }
.upw-alert-info { background: #dbeafe; color: #1e40af; border: 1px solid #bfdbfe; }

/* ---- Login page ---- */
.upw-login-main {
	min-height: calc(100vh - 80px);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 40px 20px;
}
.upw-login-card {
	width: 100%;
	max-width: 420px;
	background: var(--upw-surface);
	border: 1px solid var(--upw-border);
	border-radius: var(--upw-radius);
	box-shadow: var(--upw-shadow);
	padding: 32px;
}
.upw-login-title {
	margin: 0 0 6px;
	font-size: 24px;
	font-weight: 700;
}
.upw-login-sub {
	margin: 0 0 24px;
	color: var(--upw-muted);
	font-size: 14px;
}
.upw-login-form label {
	display: block;
	margin-bottom: 6px;
	font-size: 13px;
	font-weight: 600;
	color: var(--upw-text);
}
.upw-login-form input[type="text"],
.upw-login-form input[type="password"] {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--upw-border);
	border-radius: var(--upw-radius);
	font-size: 14px;
	margin-bottom: 14px;
	background: #fff;
	color: var(--upw-text);
}
.upw-login-form input:focus {
	outline: none;
	border-color: var(--upw-primary);
	box-shadow: 0 0 0 3px rgba(20, 168, 0, 0.15);
}
.upw-login-remember {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	color: var(--upw-muted);
	margin-bottom: 18px;
}
.upw-login-foot {
	margin: 18px 0 0;
	text-align: center;
	font-size: 13px;
}
.upw-login-foot a { color: var(--upw-muted); text-decoration: none; }
.upw-login-foot a:hover { color: var(--upw-primary); }

/* Hide header/footer chrome on login for a focused screen */
body.page-template-page-login .upw-header,
body.page-template-page-login .upw-footer { display: none; }

/* ---- Page header (sub-title under main h1) ---- */
.upw-page-header { margin-bottom: 28px; }
.upw-page-header .upw-page-title { margin: 0 0 6px; font-size: 28px; }
.upw-page-header .upw-page-sub { margin: 0; color: var(--upw-muted); font-size: 14px; }

.upw-btn-ghost {
	background: transparent;
	color: var(--upw-muted);
	border-color: var(--upw-border);
}
.upw-btn-ghost:hover { color: var(--upw-text); background: #f9fafb; }

/* ---- Form ---- */
.upw-form {
	max-width: 760px;
	margin: 0 auto;
}
.upw-form-section {
	background: var(--upw-surface);
	border: 1px solid var(--upw-border);
	border-radius: var(--upw-radius);
	padding: 24px;
	margin-bottom: 20px;
	box-shadow: var(--upw-shadow);
}
.upw-form-section-title {
	margin: 0 0 18px;
	font-size: 16px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #6b7280;
	border-bottom: 1px solid var(--upw-border);
	padding-bottom: 10px;
}
.upw-field { margin-bottom: 16px; }
.upw-field:last-child { margin-bottom: 0; }
.upw-field-label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	color: var(--upw-text);
	margin-bottom: 6px;
}
.upw-req { color: var(--upw-danger); }

.upw-field input[type="text"],
.upw-field input[type="url"],
.upw-field input[type="number"],
.upw-field input[type="date"],
.upw-field select,
.upw-field textarea {
	width: 100%;
	padding: 9px 12px;
	border: 1px solid var(--upw-border);
	border-radius: var(--upw-radius);
	background: #fff;
	font-size: 14px;
	font-family: inherit;
	color: var(--upw-text);
}
.upw-field textarea { resize: vertical; min-height: 90px; }
.upw-field input:focus,
.upw-field select:focus,
.upw-field textarea:focus {
	outline: none;
	border-color: var(--upw-primary);
	box-shadow: 0 0 0 3px rgba(20, 168, 0, 0.15);
}
.upw-checkbox {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
}
.upw-field-help {
	margin: 6px 0 0;
	font-size: 12px;
	color: var(--upw-muted);
}
.upw-field-error {
	margin: 6px 0 0;
	font-size: 12px;
	color: var(--upw-danger);
}
.upw-has-error input,
.upw-has-error select,
.upw-has-error textarea {
	border-color: var(--upw-danger);
}

/* ---- Repeater ---- */
.upw-repeater-rows { display: flex; flex-direction: column; gap: 8px; }
.upw-repeater-row {
	display: grid;
	grid-template-columns: 1fr 1fr auto;
	gap: 8px;
	align-items: center;
}
.upw-repeater-add {
	margin-top: 10px;
	font-size: 13px;
	padding: 8px 14px;
	background: transparent;
	color: var(--upw-primary);
	border: 1px dashed var(--upw-primary);
}
.upw-repeater-add:hover { background: rgba(20, 168, 0, 0.06); }
.upw-repeater-remove {
	padding: 6px 12px;
	background: transparent;
	color: var(--upw-muted);
	border: 1px solid var(--upw-border);
	font-size: 18px;
	line-height: 1;
}
.upw-repeater-remove:hover { color: var(--upw-danger); border-color: var(--upw-danger); }

/* ---- Form actions ---- */
.upw-form-actions {
	display: flex;
	gap: 12px;
	margin-top: 24px;
	justify-content: flex-end;
}

@media (max-width: 640px) {
	.upw-form-section { padding: 16px; }
	.upw-form-actions { flex-direction: column-reverse; }
	.upw-form-actions .upw-btn { width: 100%; text-align: center; }
	.upw-repeater-row { grid-template-columns: 1fr; }
}

/* ============================================================
 *  Dashboard
 * ============================================================ */
.upw-dashboard-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 16px;
	flex-wrap: wrap;
}
.upw-dashboard-actions { display: flex; gap: 12px; }

/* ---- Date filter ---- */
.upw-filter { margin-bottom: 24px; }
.upw-filter-pills {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
}
.upw-filter-pill {
	display: inline-block;
	padding: 8px 14px;
	border: 1px solid var(--upw-border);
	border-radius: 999px;
	background: var(--upw-surface);
	color: var(--upw-muted);
	font-size: 13px;
	font-weight: 500;
	text-decoration: none;
	transition: all 0.15s;
}
.upw-filter-pill:hover {
	color: var(--upw-text);
	border-color: #cbd5e1;
}
.upw-filter-pill.is-active {
	background: var(--upw-primary);
	color: #fff;
	border-color: var(--upw-primary);
}
.upw-filter-custom {
	display: flex;
	gap: 12px;
	margin-top: 12px;
	align-items: flex-end;
	flex-wrap: wrap;
	background: var(--upw-surface);
	padding: 12px;
	border: 1px solid var(--upw-border);
	border-radius: var(--upw-radius);
}
.upw-filter-custom label {
	display: flex;
	flex-direction: column;
	font-size: 12px;
	color: var(--upw-muted);
	gap: 4px;
}
.upw-filter-custom input {
	padding: 8px 10px;
	border: 1px solid var(--upw-border);
	border-radius: var(--upw-radius);
	font-size: 14px;
}

/* ---- Stats grid ---- */
.upw-stats-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 14px;
	margin-bottom: 28px;
}
.upw-stat {
	background: var(--upw-surface);
	border: 1px solid var(--upw-border);
	border-radius: var(--upw-radius);
	padding: 18px;
	box-shadow: var(--upw-shadow);
	border-left: 4px solid var(--upw-border);
	transition: transform 0.15s, box-shadow 0.15s;
}
.upw-stat:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 8px rgba(17, 24, 39, 0.08);
}
.upw-stat-label {
	font-size: 12px;
	font-weight: 600;
	color: var(--upw-muted);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin-bottom: 8px;
}
.upw-stat-value {
	font-size: 28px;
	font-weight: 700;
	color: var(--upw-text);
	line-height: 1.1;
}
.upw-stat-hint {
	font-size: 12px;
	color: var(--upw-muted);
	margin-top: 6px;
}
.upw-stat-warn    { border-left-color: var(--upw-warning); }
.upw-stat-info    { border-left-color: #3b82f6; }
.upw-stat-success { border-left-color: var(--upw-success); }
.upw-stat-danger  { border-left-color: var(--upw-danger); }

/* ---- Section heading ---- */
.upw-dashboard-section { margin-bottom: 32px; }
.upw-section-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 12px;
}
.upw-section-head h2 {
	margin: 0;
	font-size: 18px;
	font-weight: 700;
}
.upw-link {
	color: var(--upw-primary);
	text-decoration: none;
	font-size: 14px;
	font-weight: 500;
}
.upw-link:hover { text-decoration: underline; }

/* ---- Table ---- */
.upw-table-wrap {
	background: var(--upw-surface);
	border: 1px solid var(--upw-border);
	border-radius: var(--upw-radius);
	overflow: hidden;
	box-shadow: var(--upw-shadow);
}
.upw-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}
.upw-table th,
.upw-table td {
	text-align: left;
	padding: 12px 16px;
	border-bottom: 1px solid var(--upw-border);
}
.upw-table th {
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--upw-muted);
	background: #f9fafb;
}
.upw-table tbody tr:last-child td { border-bottom: none; }
.upw-table tbody tr:hover { background: #fafafa; }
.upw-td-title a {
	color: var(--upw-text);
	text-decoration: none;
	font-weight: 600;
}
.upw-td-title a:hover { color: var(--upw-primary); }
.upw-muted { color: var(--upw-muted); }

/* ---- Pills (also used in admin) ---- */
.upw-pill {
	display: inline-block;
	padding: 2px 8px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 600;
	background: #f3f4f6;
	color: #374151;
}
.upw-pill-apply    { background: #dcfce7; color: #166534; }
.upw-pill-skip     { background: #fee2e2; color: #991b1b; }
.upw-pill-error    { background: #fef3c7; color: #92400e; }
.upw-pill-pending  { background: #fef3c7; color: #92400e; }
.upw-pill-reviewed { background: #dbeafe; color: #1e40af; }
.upw-pill-replied  { background: #ede9fe; color: #5b21b6; }
.upw-pill-hired    { background: #14a800; color: #ffffff; }

/* ---- Empty state ---- */
.upw-empty-state {
	background: var(--upw-surface);
	border: 1px dashed var(--upw-border);
	border-radius: var(--upw-radius);
	padding: 48px 24px;
	text-align: center;
	color: var(--upw-muted);
}
.upw-empty-state p { margin: 0 0 16px; font-size: 15px; }

@media (max-width: 640px) {
	.upw-dashboard-header { flex-direction: column; align-items: stretch; }
	.upw-stats-grid { grid-template-columns: repeat(2, 1fr); }
	.upw-stat-value { font-size: 22px; }
	.upw-table-wrap { overflow-x: auto; }
	.upw-table { min-width: 600px; }
}

/* ============================================================
 *  Single Proposal Detail
 * ============================================================ */
.upw-back-nav { margin-bottom: 12px; font-size: 14px; }
.upw-back-nav a { color: var(--upw-muted); text-decoration: none; }
.upw-back-nav a:hover { color: var(--upw-primary); }

.upw-detail-header { align-items: center; }
.upw-detail-meta {
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
	margin-top: 6px;
}
.upw-detail-date { color: var(--upw-muted); font-size: 13px; }

/* ---- Detail cards (submission groups) ---- */
.upw-detail-card {
	background: var(--upw-surface);
	border: 1px solid var(--upw-border);
	border-radius: var(--upw-radius);
	box-shadow: var(--upw-shadow);
	padding: 24px;
	margin-bottom: 18px;
}
.upw-detail-card-title {
	margin: 0 0 16px;
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--upw-muted);
	padding-bottom: 10px;
	border-bottom: 1px solid var(--upw-border);
}
.upw-detail-list { margin: 0; }
.upw-detail-row {
	display: grid;
	grid-template-columns: 200px 1fr;
	gap: 16px;
	padding: 8px 0;
	border-bottom: 1px solid #f3f4f6;
}
.upw-detail-row:last-child { border-bottom: none; }
.upw-detail-row dt {
	font-size: 13px;
	font-weight: 600;
	color: #374151;
}
.upw-detail-row dd {
	margin: 0;
	font-size: 14px;
	color: var(--upw-text);
	word-break: break-word;
}
.upw-detail-row dd .upw-prewrap { white-space: pre-wrap; }
.upw-detail-row dd .upw-empty { color: #9ca3af; }
.upw-detail-row dd .upw-yes { color: var(--upw-success); font-weight: 600; }
.upw-detail-row dd .upw-no  { color: var(--upw-danger); font-weight: 600; }
.upw-detail-row dd .upw-link-list { margin: 0; padding-left: 18px; }

/* Long-form fields get full width */
.upw-detail-row-textarea,
.upw-detail-row-repeater_links { grid-template-columns: 1fr; }
.upw-detail-row-textarea dt,
.upw-detail-row-repeater_links dt {
	margin-bottom: 6px;
}

/* ---- Review card (only when reviewed) ---- */
.upw-review-card {
	background: linear-gradient(180deg, #f0fdf4 0%, #ffffff 80%);
	border: 1px solid #86efac;
	border-radius: var(--upw-radius);
	box-shadow: var(--upw-shadow);
	padding: 24px;
	margin-bottom: 18px;
}
.upw-review-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 16px;
	flex-wrap: wrap;
	gap: 8px;
}
.upw-review-head h2 {
	margin: 0;
	font-size: 18px;
	font-weight: 700;
	color: #166534;
}
.upw-review-meta {
	font-size: 12px;
	color: var(--upw-muted);
}
.upw-review-decision { margin-bottom: 16px; }

.upw-review-scores {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	gap: 10px;
	margin-bottom: 18px;
}
.upw-score {
	background: #fff;
	border: 1px solid var(--upw-border);
	border-radius: var(--upw-radius);
	padding: 12px;
	text-align: center;
}
.upw-score-label {
	font-size: 11px;
	font-weight: 600;
	color: var(--upw-muted);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin-bottom: 6px;
	line-height: 1.2;
}
.upw-score-value {
	font-size: 22px;
	font-weight: 700;
	color: var(--upw-text);
}
.upw-score-of {
	font-size: 12px;
	font-weight: 500;
	color: var(--upw-muted);
}
.upw-score-good    { border-color: #86efac; background: #f0fdf4; }
.upw-score-good .upw-score-value { color: #16a34a; }
.upw-score-ok      { border-color: #fde68a; background: #fefce8; }
.upw-score-ok .upw-score-value { color: #ca8a04; }
.upw-score-weak    { border-color: #fecaca; background: #fef2f2; }
.upw-score-weak .upw-score-value { color: #dc2626; }
.upw-score-overall { border-color: #93c5fd; background: #eff6ff; }
.upw-score-overall .upw-score-value { color: #1e40af; }

.upw-review-feedback h3 {
	margin: 0 0 8px;
	font-size: 14px;
	font-weight: 700;
	color: var(--upw-text);
}
.upw-feedback-body {
	background: #fff;
	border: 1px solid var(--upw-border);
	border-radius: var(--upw-radius);
	padding: 16px;
	font-size: 14px;
	line-height: 1.6;
	color: var(--upw-text);
	white-space: pre-wrap;
}

/* ---- Insights panel (derived signals) ---- */
.upw-insights {
	background: var(--upw-surface);
	border: 1px solid var(--upw-border);
	border-radius: var(--upw-radius);
	box-shadow: var(--upw-shadow);
	padding: 22px 24px;
	margin-bottom: 18px;
}
.upw-insights-head { margin-bottom: 16px; }
.upw-insights-head h2 {
	margin: 0 0 4px;
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--upw-muted);
}
.upw-insights-sub {
	margin: 0;
	font-size: 13px;
	color: var(--upw-muted);
}
.upw-insights-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 12px;
}
.upw-insight {
	border: 1px solid var(--upw-border);
	border-left: 4px solid var(--upw-border);
	border-radius: var(--upw-radius);
	padding: 12px 14px;
	background: #f9fafb;
	transition: transform 0.15s;
}
.upw-insight:hover { transform: translateY(-1px); }
.upw-insight-label {
	font-size: 11px;
	font-weight: 600;
	color: var(--upw-muted);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin-bottom: 4px;
}
.upw-insight-value {
	font-size: 20px;
	font-weight: 700;
	color: var(--upw-text);
	line-height: 1.2;
}
.upw-insight-hint {
	font-size: 11px;
	color: var(--upw-muted);
	margin-top: 4px;
	line-height: 1.4;
}
.upw-insight-good {
	border-left-color: var(--upw-success);
	background: #f0fdf4;
}
.upw-insight-good .upw-insight-value { color: #166534; }
.upw-insight-ok {
	border-left-color: var(--upw-warning);
	background: #fffbeb;
}
.upw-insight-ok .upw-insight-value { color: #b45309; }
.upw-insight-weak {
	border-left-color: var(--upw-danger);
	background: #fef2f2;
}
.upw-insight-weak .upw-insight-value { color: #991b1b; }
.upw-insight-neutral { background: #f9fafb; }
.upw-insight-empty {
	grid-column: 1 / -1;
	text-align: center;
	border-left-color: var(--upw-border);
}
.upw-form-insights .upw-form-section-title { border-bottom: none; padding-bottom: 0; margin-bottom: 6px; }
.upw-form-insights-sub {
	margin: 0 0 14px;
	font-size: 13px;
	color: var(--upw-muted);
}

/* ---- Inline edit forms on single proposal ---- */
.upw-inline-form {
	background: var(--upw-surface);
	border: 1px solid var(--upw-border);
	border-radius: var(--upw-radius);
	box-shadow: var(--upw-shadow);
	padding: 24px;
	margin-bottom: 18px;
}
.upw-inline-form .upw-field { margin-bottom: 14px; }
.upw-inline-form-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 16px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--upw-border);
	flex-wrap: wrap;
}
.upw-inline-form-head h2 {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--upw-muted);
}
.upw-inline-form-sub {
	margin: 4px 0 0;
	font-size: 13px;
	color: var(--upw-muted);
}
.upw-outcome-form .upw-inline-form-head h2 { color: #5b21b6; }
.upw-review-form  .upw-inline-form-head h2 { color: #166534; }
.upw-review-form {
	background: linear-gradient(180deg, #f0fdf4 0%, var(--upw-surface) 80%);
	border-color: #86efac;
}
.upw-mark-reviewed {
	background: #f9fafb;
	border: 1px solid var(--upw-border);
	border-radius: var(--upw-radius);
	padding: 10px 14px;
	margin: 14px 0;
	font-size: 14px;
}
.upw-mark-reviewed .upw-checkbox { gap: 10px; }
.upw-detail-edit {
	margin-left: 8px;
	font-size: 12px;
	color: var(--upw-muted);
	text-decoration: none;
	padding: 2px 8px;
	border: 1px solid var(--upw-border);
	border-radius: 999px;
}
.upw-detail-edit:hover { color: var(--upw-text); border-color: #cbd5e1; }

@media (max-width: 640px) {
	.upw-detail-card { padding: 16px; }
	.upw-detail-row { grid-template-columns: 1fr; gap: 4px; }
	.upw-detail-row dt { margin-bottom: 2px; }
	.upw-review-scores { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
 *  Dashboard Charts
 * ============================================================ */
.upw-charts {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
	margin-bottom: 28px;
}
.upw-chart-card {
	background: var(--upw-surface);
	border: 1px solid var(--upw-border);
	border-radius: var(--upw-radius);
	box-shadow: var(--upw-shadow);
	padding: 20px;
}
.upw-chart-card h3 {
	margin: 0 0 12px;
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--upw-muted);
}
.upw-chart-wide { grid-column: span 2; }
.upw-chart-wrap { position: relative; height: 220px; }
.upw-chart-card:has(canvas[id$="-outcome"]) .upw-chart-wrap,
.upw-chart-card:has(canvas[id$="-decision"]) .upw-chart-wrap { height: 220px; }

@media (max-width: 720px) {
	.upw-charts { grid-template-columns: 1fr; }
	.upw-chart-wide { grid-column: span 1; }
}

/* ============================================================
 *  Getting Started (first-run dashboard)
 * ============================================================ */
.upw-getting-started {
	background: var(--upw-surface);
	border: 1px solid var(--upw-border);
	border-radius: var(--upw-radius);
	box-shadow: var(--upw-shadow);
	padding: 48px 32px;
	text-align: center;
	max-width: 640px;
	margin: 24px auto 0;
}
.upw-getting-started h2 {
	margin: 0 0 12px;
	font-size: 22px;
	font-weight: 700;
}
.upw-getting-started p {
	margin: 0 0 24px;
	color: var(--upw-muted);
	font-size: 15px;
	line-height: 1.6;
}

/* ============================================================
 *  Accessibility — focus rings on interactive elements
 * ============================================================ */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 2px solid var(--upw-primary);
	outline-offset: 2px;
	border-radius: 4px;
}

/* ============================================================
 *  Print — strip chrome, keep proposal + review
 * ============================================================ */
@media print {
	.upw-header,
	.upw-footer,
	.upw-back-nav,
	.upw-dashboard-actions,
	.upw-filter,
	.upw-form-actions { display: none !important; }

	body { background: #fff; color: #000; }

	.upw-page { padding: 0; }
	.upw-container { max-width: 100%; padding: 0; }

	.upw-detail-card,
	.upw-review-card {
		page-break-inside: avoid;
		box-shadow: none;
		border: 1px solid #ccc;
		margin-bottom: 16px;
	}
	.upw-review-card { background: #f9fafb; }
	.upw-pill {
		border: 1px solid #999;
		background: #fff !important;
		color: #000 !important;
	}
	a { color: #000; text-decoration: underline; }
	a[href]::after { content: " (" attr(href) ")"; font-size: 11px; color: #555; }
	/* Don't print href for internal nav targets */
	a[href^="#"]::after,
	a[href^="/"]::after { content: ""; }
}
