:root {
	--wrs-primary: #16c7c9;
	--wrs-primary-hover: #12aeb0;
	--wrs-primary-soft: #e7fafa;
	--wrs-button-text: #073b3c;
	--wrs-ink: #172033;
	--wrs-muted: #667085;
	--wrs-border: #e4e7ec;
	--wrs-surface: #ffffff;
	--wrs-soft: #f7f9fc;
}

.wrs-shell {
	box-sizing: border-box;
	width: 100%;
	max-width: 1040px;
	margin: 48px auto;
	padding: 0 24px;
}

.wrs-card {
	box-sizing: border-box;
	width: 100%;
	background: var(--wrs-surface);
	border: 1px solid var(--wrs-border);
	border-radius: 16px;
	box-shadow: 0 12px 32px rgba(16, 24, 40, 0.08);
	padding: 36px;
}

.wrs-scan-form {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 12px;
	align-items: stretch;
	width: 100%;
	margin: 0;
}

.wrs-scan-form input[type="text"] {
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
	height: 52px;
	margin: 0 !important;
	padding: 0 16px !important;
	font: inherit;
	font-size: 16px !important;
	line-height: 50px;
	color: var(--wrs-ink) !important;
	background: #fff !important;
	border: 1px solid #cfd4dc !important;
	border-radius: 8px !important;
	box-shadow: none !important;
	outline: none;
}

.wrs-scan-form input[type="text"]:focus {
	border-color: var(--wrs-primary) !important;
	box-shadow: 0 0 0 3px var(--wrs-primary-soft) !important;
}

.wrs-scan-form button[type="submit"],
.wrs-rescan-btn {
	box-sizing: border-box;
	min-width: 150px;
	height: 52px;
	margin: 0 !important;
	padding: 0 24px !important;
	font: inherit !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	line-height: 52px !important;
	letter-spacing: 0.02em !important;
	text-transform: none !important;
	text-align: center;
	color: var(--wrs-button-text) !important;
	background: var(--wrs-primary) !important;
	border: 1px solid var(--wrs-primary) !important;
	border-radius: 8px !important;
	box-shadow: none !important;
	cursor: pointer;
	transition: background 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.wrs-scan-form button[type="submit"]:hover,
.wrs-rescan-btn:hover {
	background: var(--wrs-primary-hover) !important;
	border-color: var(--wrs-primary-hover) !important;
	transform: translateY(-1px);
}

.wrs-scan-form button[type="submit"]:disabled,
.wrs-rescan-btn:disabled {
	opacity: 0.6;
	cursor: wait;
	transform: none;
}

.wrs-scan-form__error {
	grid-column: 1 / -1;
	color: #b42318;
	background: #fff4f2;
	border: 1px solid #fecdca;
	border-radius: 8px;
	padding: 10px 12px;
	margin: 0;
}

.wrs-scan-form .cf-turnstile {
	grid-column: 1 / -1;
}

.wrs-progress-card {
	text-align: center;
	padding-top: 46px;
	padding-bottom: 42px;
}

.wrs-spinner {
	width: 56px;
	height: 56px;
	margin: 0 auto 22px;
	border: 5px solid var(--wrs-primary-soft);
	border-top-color: var(--wrs-primary);
	border-radius: 50%;
	animation: wrs-spin 0.8s linear infinite;
}

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

.wrs-progress-card h1 {
	margin: 0 0 8px !important;
	font-size: clamp(24px, 4vw, 34px) !important;
	line-height: 1.2 !important;
	color: var(--wrs-ink) !important;
}

.wrs-progress-card__lead {
	max-width: 640px;
	margin: 0 auto 28px !important;
	color: var(--wrs-muted);
	font-size: 16px;
	line-height: 1.6;
}

.wrs-progress-box {
	max-width: 720px;
	margin: 0 auto;
	text-align: left;
}

.wrs-progress-top,
.wrs-progress-meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}

.wrs-progress-top {
	margin-bottom: 10px;
}

.wrs-progress-status {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	font-weight: 700;
	color: var(--wrs-ink);
}

.wrs-progress-status::before {
	content: "";
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--wrs-primary);
	box-shadow: 0 0 0 0 var(--wrs-primary-soft);
	animation: wrs-pulse 1.5s infinite;
}

@keyframes wrs-pulse {
	0% { box-shadow: 0 0 0 0 var(--wrs-primary-soft); }
	70% { box-shadow: 0 0 0 8px rgba(22, 199, 201, 0); }
	100% { box-shadow: 0 0 0 0 rgba(22, 199, 201, 0); }
}

.wrs-progress-percent {
	font-weight: 800;
	color: var(--wrs-ink);
}

.wrs-progress-track {
	overflow: hidden;
	height: 12px;
	background: #edf1f5;
	border-radius: 999px;
}

.wrs-progress-bar {
	width: 4%;
	height: 100%;
	background: var(--wrs-primary);
	border-radius: inherit;
	transition: width 0.35s ease;
}

.wrs-progress-meta {
	margin-top: 12px;
	font-size: 13px;
	color: var(--wrs-muted);
}

.wrs-progress-phase {
	font-weight: 600;
}

.wrs-progress-error {
	max-width: 720px;
	margin: 20px auto 0;
	padding: 12px 14px;
	color: #b42318;
	background: #fff4f2;
	border: 1px solid #fecdca;
	border-radius: 8px;
	text-align: left;
}

.wrs-report__header {
	margin-bottom: 1.5rem;
}

.wrs-report__stars {
	font-size: 1.4rem;
	color: #f0b429;
}

.wrs-report__critical-banner {
	background: #fdeaea;
	color: #7a1f1f;
	border: 1px solid #e5b3b3;
	padding: 0.75rem 1rem;
	border-radius: 8px;
	font-weight: 600;
}

.wrs-phase {
	border: 1px solid var(--wrs-border);
	border-radius: 8px;
	margin-bottom: 0.75rem;
	padding: 0.65rem 1rem;
}

.wrs-phase > summary {
	cursor: pointer;
	font-weight: 600;
	display: flex;
	justify-content: space-between;
}

.wrs-finding {
	border-left: 3px solid #ccc;
	padding: 0.5rem 0.75rem;
	margin: 0.75rem 0;
}

.wrs-finding--critical { border-left-color: #b32d2e; }
.wrs-finding--high     { border-left-color: #d9702e; }
.wrs-finding--medium   { border-left-color: #d9b02e; }
.wrs-finding--low      { border-left-color: #7a9e3f; }
.wrs-finding--info     { border-left-color: #6b7280; }

.wrs-finding__technical {
	margin-top: 0.5rem;
	font-size: 0.9rem;
	color: #444;
}

.wrs-stats-widget {
	display: flex;
	gap: 2rem;
}

.wrs-stats-widget__item {
	text-align: center;
}

.wrs-stats-widget__number {
	display: block;
	font-size: 2rem;
	font-weight: 700;
}

@media (max-width: 640px) {
	.wrs-shell {
		margin: 28px auto;
		padding: 0 16px;
	}

	.wrs-card {
		padding: 24px 18px;
		border-radius: 12px;
	}

	.wrs-scan-form {
		grid-template-columns: 1fr;
	}

	.wrs-scan-form button[type="submit"] {
		width: 100%;
	}

	.wrs-progress-meta {
		align-items: flex-start;
		flex-direction: column;
		gap: 4px;
	}
}


/* v0.1.4 terminal-state card: explicit retry instead of an auto-retry loop. */
.wrs-terminal-card .wrs-terminal-message {
	display: block;
	margin: 24px auto;
	max-width: 720px;
}

.wrs-terminal-card .wrs-rescan-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 0 24px;
	border: 0 !important;
	border-radius: 8px;
	background: var(--wrs-primary) !important;
	color: var(--wrs-button-text) !important;
	font-weight: 700;
	cursor: pointer;
}


/* 0.1.5 - clearer actionable report */
.wrs-report { padding: 40px !important; }
.wrs-report__header { margin-bottom: 30px; }
.wrs-report__eyebrow { font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--wrs-primary-hover); margin-bottom: 7px; }
.wrs-report__header h1 { margin: 0 0 4px !important; font-size: 32px !important; color: var(--wrs-ink) !important; }
.wrs-report__date { margin: 0 0 24px !important; color: var(--wrs-muted); }
.wrs-score-row { display: grid; grid-template-columns: auto 1fr auto; gap: 24px; align-items: center; padding: 22px; background: var(--wrs-soft); border: 1px solid var(--wrs-border); border-radius: 14px; }
.wrs-score { min-width: 110px; }
.wrs-score strong { font-size: 38px; line-height: 1; color: var(--wrs-ink); }
.wrs-score span { color: var(--wrs-muted); font-weight: 700; }
.wrs-score small { display: block; margin-top: 5px; color: var(--wrs-muted); }
.wrs-summary > strong { font-size: 22px; color: var(--wrs-ink); margin-right: 5px; }
.wrs-summary > span { color: var(--wrs-muted); }
.wrs-severity-summary { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.wrs-severity { display: inline-flex; align-items: center; padding: 4px 9px; border-radius: 999px; font-size: 11px; line-height: 1.2; font-weight: 800; }
.wrs-severity--critical { background:#fee4e2; color:#b42318; }
.wrs-severity--high { background:#ffead5; color:#b54708; }
.wrs-severity--medium { background:#fef0c7; color:#93370d; }
.wrs-severity--low { background:#ecfdf3; color:#027a48; }
.wrs-severity--info { background:#eff8ff; color:#175cd3; }
.wrs-report__critical-banner { margin: 18px 0 0; padding: 14px 16px; border-radius: 10px; background:#fff1f0; border:1px solid #fecdca; color:#b42318; }
.wrs-report__phases { display: grid; gap: 18px; }
.wrs-phase-card { border: 1px solid var(--wrs-border); border-radius: 14px; overflow: hidden; background:#fff; }
.wrs-phase-card__head { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 20px; background:#fbfcfd; border-bottom:1px solid var(--wrs-border); }
.wrs-phase-card__head h2 { margin:0 0 3px !important; font-size:19px !important; line-height:1.3 !important; color:var(--wrs-ink) !important; }
.wrs-phase-card__head p { margin:0 !important; color:var(--wrs-muted); font-size:13px; }
.wrs-phase__penalty { white-space:nowrap; font-weight:800; color:var(--wrs-ink); }
.wrs-finding { margin: 0 !important; padding: 20px !important; border:0 !important; border-left: 4px solid #d0d5dd !important; border-bottom:1px solid #eef1f4 !important; background:#fff !important; }
.wrs-finding:last-child { border-bottom:0 !important; }
.wrs-finding--critical { border-left-color:#d92d20 !important; }
.wrs-finding--high { border-left-color:#f04438 !important; }
.wrs-finding--medium { border-left-color:#f79009 !important; }
.wrs-finding--low { border-left-color:#12b76a !important; }
.wrs-finding--info { border-left-color:#2e90fa !important; }
.wrs-finding__top { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-bottom:10px; }
.wrs-finding__points { font-size:12px; font-weight:800; color:var(--wrs-muted); }
.wrs-finding h3 { margin:0 0 16px !important; font-size:17px !important; line-height:1.45 !important; color:var(--wrs-ink) !important; }
.wrs-advice { padding: 13px 15px; margin-top:10px; border-radius:9px; }
.wrs-advice strong { display:block; margin-bottom:4px; color:var(--wrs-ink); font-size:13px; }
.wrs-advice p { margin:0 !important; color:#475467; line-height:1.55; font-size:14px; }
.wrs-advice--problem { background:#f8fafc; border:1px solid #eaecf0; }
.wrs-advice--fix { background:#f0fdf9; border:1px solid #c8f3e5; }
.wrs-finding__technical { margin-top:12px; font-size:13px; color:var(--wrs-muted); }
.wrs-finding__technical summary { cursor:pointer; font-weight:700; color:#475467; }
.wrs-finding__technical p { margin:9px 0 0 !important; }
@media (max-width:700px) {
  .wrs-report { padding:22px !important; }
  .wrs-score-row { grid-template-columns:1fr; }
  .wrs-score-row .wrs-rescan-btn { width:100%; }
  .wrs-phase-card__head { align-items:flex-start; }
}


/* 0.1.15 - terminal connection diagnostics */
.wrs-terminal-diagnostics {
	margin: 16px 0 22px;
	padding: 14px 16px;
	border: 1px solid var(--wrs-border);
	border-radius: 10px;
	background: #f8fafc;
	text-align: left;
}
.wrs-terminal-diagnostics summary {
	cursor: pointer;
	font-weight: 700;
	color: var(--wrs-ink);
}
.wrs-terminal-diagnostics__body {
	margin-top: 12px;
}
.wrs-terminal-attempt + .wrs-terminal-attempt {
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px solid var(--wrs-border);
}
.wrs-terminal-attempt ul {
	margin: 6px 0 0 18px !important;
	color: var(--wrs-muted);
	font-size: 13px;
}


/* 0.2.0 audit report */
.wrs-section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px}
.wrs-section-heading h2{margin:2px 0 0!important;font-size:23px!important;color:var(--wrs-ink)!important}
.wrs-kicker{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--wrs-primary-hover)}
.wrs-action-plan,.wrs-software{margin:0 0 28px;padding:22px;border:1px solid var(--wrs-border);border-radius:14px;background:#fff}
.wrs-action-count{display:inline-flex;min-width:32px;height:32px;border-radius:999px;align-items:center;justify-content:center;background:#fff1f0;color:#b42318;font-weight:800}
.wrs-action-list{display:grid;gap:8px}
.wrs-action-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--wrs-border);border-radius:10px;text-decoration:none!important;color:var(--wrs-ink)!important;background:#fbfcfd}
.wrs-action-item:hover{border-color:var(--wrs-primary);background:var(--wrs-primary-soft)}
.wrs-action-item__title{font-weight:700}
.wrs-action-item__points{font-weight:800;color:#027a48;white-space:nowrap}
.wrs-summary__headline{display:flex;align-items:baseline;gap:7px}
.wrs-state-summary{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.wrs-state-pill,.wrs-check-badge,.wrs-software-state{display:inline-flex;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:800;line-height:1.2}
.wrs-state-pill--pass,.wrs-check-badge--pass,.wrs-software-state--current{background:#ecfdf3;color:#027a48}
.wrs-state-pill--warning,.wrs-check-badge--warning{background:#fffaeb;color:#b54708}
.wrs-state-pill--unable,.wrs-check-badge--unable_to_verify,.wrs-software-state--unable_to_verify,.wrs-software-state--unknown{background:#f2f4f7;color:#475467}
.wrs-state-pill--info{background:#eff8ff;color:#175cd3}
.wrs-software-state--outdated{background:#fff4e5;color:#b54708}
.wrs-software-state--vulnerable{background:#fee4e2;color:#b42318}
.wrs-table-wrap{overflow-x:auto}
.wrs-software-table{width:100%;border-collapse:collapse;font-size:13px}
.wrs-software-table th,.wrs-software-table td{text-align:left;padding:11px 10px;border-bottom:1px solid #eaecf0;white-space:nowrap}
.wrs-software-table th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#667085}
.wrs-report-filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.wrs-filter{appearance:none;border:1px solid var(--wrs-border)!important;background:#fff!important;color:#344054!important;border-radius:999px!important;padding:8px 13px!important;font-size:13px!important;font-weight:700!important;min-height:auto!important}
.wrs-filter.is-active{border-color:var(--wrs-primary)!important;background:var(--wrs-primary-soft)!important;color:var(--wrs-ink)!important}
.wrs-phase-card__head{width:100%;border:0!important;text-align:left!important;cursor:pointer}
.wrs-phase-card__body[hidden]{display:none}
.wrs-check{padding:18px 20px;border-bottom:1px solid #eef1f4;background:#fff}
.wrs-check:last-child{border-bottom:0}
.wrs-check--pass{border-left:4px solid #12b76a}
.wrs-check--warning{border-left:4px solid #f79009}
.wrs-check--unable_to_verify{border-left:4px solid #98a2b3}
.wrs-check__top{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:8px}
.wrs-check h3{margin:0 0 5px!important;font-size:16px!important;color:var(--wrs-ink)!important}
.wrs-check p{margin:0!important;color:#475467;font-size:14px;line-height:1.55}
.wrs-confidence{font-size:11px;color:#667085;font-weight:700}
.wrs-finding__meta{display:flex;gap:10px;align-items:center}
.wrs-evidence{display:grid;gap:7px;margin:10px 0 0}
.wrs-evidence div{display:grid;grid-template-columns:minmax(110px,160px) 1fr;gap:10px}
.wrs-evidence dt{font-weight:700;color:#475467}
.wrs-evidence dd{margin:0;overflow-wrap:anywhere}
.wrs-remediation-steps{margin:9px 0 0 20px!important;color:#475467}
.wrs-filter-hidden{display:none!important}
@media(max-width:700px){
 .wrs-action-item{grid-template-columns:auto 1fr}.wrs-action-item__points{grid-column:2}
 .wrs-evidence div{grid-template-columns:1fr}
}


/* 0.2.1 public statistics boards */
.wrs-stats{display:grid;gap:22px}
.wrs-stats-boards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.wrs-stats-board{overflow:hidden;border:1px solid var(--wrs-border);border-radius:14px;background:#fff}
.wrs-stats-board__head{padding:18px 20px;border-bottom:1px solid var(--wrs-border);background:#fbfcfd}
.wrs-stats-board__head h3{margin:0 0 4px!important;font-size:19px!important;color:var(--wrs-ink)!important}
.wrs-stats-board__head p{margin:0!important;font-size:13px;color:#667085}
.wrs-stats-list{list-style:none!important;margin:0!important;padding:0!important}
.wrs-stats-list__row{display:grid;grid-template-columns:28px minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:12px 18px;margin:0!important;border-bottom:1px solid #eef1f4}
.wrs-stats-list__row:last-child{border-bottom:0}
.wrs-stats-list__rank{display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center;border-radius:999px;background:var(--wrs-primary-soft);font-size:11px;font-weight:800;color:var(--wrs-ink)}
.wrs-stats-list__dot{width:8px;height:8px;margin-left:8px;border-radius:999px;background:var(--wrs-primary)}
.wrs-stats-list__domain{font-weight:750;color:var(--wrs-ink);letter-spacing:.01em}
.wrs-stats-list__score{font-size:16px;font-weight:850;color:var(--wrs-ink);white-space:nowrap}
.wrs-stats-list__score small{font-size:11px;font-weight:600;color:#667085}
.wrs-stats-list__grade{min-width:76px;text-align:right;font-size:11px;font-weight:750;color:#667085}
.wrs-stats-board__empty{padding:24px 20px;margin:0!important;color:#667085}
.wrs-stats-privacy{margin:0!important;text-align:center;font-size:12px;color:#667085}
@media(max-width:760px){
 .wrs-stats-boards{grid-template-columns:1fr}
 .wrs-stats-list__row{grid-template-columns:24px minmax(0,1fr) auto}
 .wrs-stats-list__grade{display:none}
}


/* 0.2.5 terminal scan states */
.wrs-terminal-message{font-weight:650}
.wrs-terminal-recommendation{margin-top:14px;padding-top:14px;border-top:1px solid rgba(180,35,24,.18)}
.wrs-terminal-recommendation strong{display:block;margin-bottom:5px;font-size:13px;color:#912018}
.wrs-terminal-recommendation p{margin:0!important;font-size:14px;line-height:1.55;color:#7a271a}


/* 0.2.7 preflight timeout / terminal state */
.wrs-scan-terminal .wrs-spinner{
	animation:none;
	border-color:#e4e7ec;
	border-top-color:#98a2b3;
	opacity:.65;
}
