.phm-poly-lab,
.phm-poly-lab * {
	box-sizing: border-box;
}

.phm-poly-lab {
	--phm-navy: #12233f;
	--phm-blue: #2563eb;
	--phm-blue-dark: #1d4ed8;
	--phm-sky: #e9f2ff;
	--phm-mint: #dff8ec;
	--phm-green: #138a5b;
	--phm-amber: #f59e0b;
	--phm-rose: #dc3654;
	--phm-ink: #26344d;
	--phm-muted: #64748b;
	--phm-line: #dce5f2;
	--phm-bg: #f4f7fc;
	width: 100%;
	max-width: 1180px;
	margin: 24px auto;
	border: 1px solid #d8e2f0;
	border-radius: 24px;
	background: var(--phm-bg);
	box-shadow: 0 18px 50px rgba(18, 35, 63, 0.12);
	overflow: hidden;
	color: var(--phm-ink);
	font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-size: 16px;
	line-height: 1.55;
	isolation: isolate;
}

.phm-poly-lab button,
.phm-poly-lab input,
.phm-poly-lab select {
	font: inherit;
}

.phm-poly-lab button {
	-webkit-appearance: none;
	appearance: none;
	border: 0;
	cursor: pointer;
	text-transform: none;
	letter-spacing: normal;
}

.phm-poly-lab button:focus-visible,
.phm-poly-lab [tabindex]:focus-visible {
	outline: 4px solid rgba(245, 158, 11, 0.42);
	outline-offset: 3px;
}

.phm-poly-lab [hidden] {
	display: none !important;
}

.phm-hero {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 230px;
	padding: 38px clamp(24px, 5vw, 58px);
	background:
		radial-gradient(circle at 82% 18%, rgba(114, 213, 255, 0.28), transparent 26%),
		linear-gradient(125deg, #101f3a 0%, #183a72 58%, #225ca5 100%);
	color: #fff;
}

.phm-hero::before,
.phm-hero::after {
	position: absolute;
	content: "";
	border: 2px solid rgba(255, 255, 255, 0.09);
	transform: rotate(18deg);
}

.phm-hero::before {
	right: 31%;
	top: -46px;
	width: 160px;
	height: 160px;
	border-radius: 40px;
}

.phm-hero::after {
	right: 5%;
	bottom: -80px;
	width: 190px;
	height: 190px;
	border-radius: 50%;
}

.phm-hero-copy {
	position: relative;
	z-index: 1;
	max-width: 760px;
}

.phm-kicker {
	display: inline-flex;
	margin-bottom: 12px;
	padding: 6px 13px;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.1);
	color: #dcecff;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.phm-poly-lab .phm-hero h2 {
	margin: 0 0 8px;
	color: #fff;
	font-size: clamp(2rem, 5vw, 3.5rem);
	font-weight: 900;
	line-height: 1.08;
	letter-spacing: -0.04em;
}

.phm-poly-lab .phm-hero p {
	max-width: 700px;
	margin: 0;
	color: #d7e5fa;
	font-size: clamp(1rem, 2vw, 1.18rem);
}

.phm-hero-mark {
	position: relative;
	z-index: 1;
	flex: 0 0 150px;
	width: 150px;
	height: 150px;
	margin-left: 28px;
	filter: drop-shadow(0 12px 20px rgba(0, 0, 0, 0.22));
}

.phm-hero-mark svg {
	display: block;
	width: 100%;
	height: 100%;
}

.phm-hero-mark polygon {
	fill: rgba(59, 130, 246, 0.2);
	stroke: #8ed8ff;
	stroke-width: 6;
	stroke-linejoin: round;
}

.phm-hero-mark circle {
	fill: #fbbf24;
	stroke: #fff;
	stroke-width: 2;
}

.phm-achievement {
	padding: 13px clamp(20px, 4vw, 42px);
	border-bottom: 1px solid var(--phm-line);
	background: #fff;
}

.phm-achievement-top,
.phm-quiz-meta,
.phm-sort-summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 8px;
	color: var(--phm-muted);
	font-size: 0.83rem;
	font-weight: 700;
}

.phm-achievement-top strong,
.phm-quiz-meta strong,
.phm-sort-summary strong {
	color: var(--phm-blue-dark);
}

.phm-progress-track {
	width: 100%;
	height: 9px;
	border-radius: 999px;
	background: #e8edf5;
	overflow: hidden;
}

.phm-progress-track > span {
	display: block;
	width: 0;
	height: 100%;
	border-radius: inherit;
	background: linear-gradient(90deg, var(--phm-blue), #14b8a6);
	transition: width 0.35s ease;
}

.phm-tabs {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 8px;
	padding: 12px clamp(14px, 3vw, 34px);
	border-bottom: 1px solid var(--phm-line);
	background: #fff;
}

.phm-poly-lab .phm-tabs button {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	padding: 9px 10px;
	border: 1px solid transparent;
	border-radius: 12px;
	background: #edf2f8;
	color: #3b4b65;
	font-size: 0.92rem;
	font-weight: 800;
	line-height: 1.2;
	box-shadow: none;
	transition: transform 0.18s ease, background 0.18s ease, color 0.18s ease;
}

.phm-poly-lab .phm-tabs button:hover {
	transform: translateY(-1px);
	background: #dfeaff;
	color: #17366d;
}

.phm-poly-lab .phm-tabs button.is-active {
	background: var(--phm-blue);
	color: #fff;
	box-shadow: 0 7px 16px rgba(37, 99, 235, 0.25);
}

.phm-tabs button > span {
	display: inline-grid;
	place-items: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.7);
	color: var(--phm-blue-dark);
	font-size: 0.75rem;
}

.phm-tabs button.is-active > span {
	background: rgba(255, 255, 255, 0.2);
	color: #fff;
}

.phm-tabs button.is-complete:not(.is-active) > span {
	background: #d5f6e8;
	color: var(--phm-green);
}

.phm-panels {
	padding: clamp(22px, 4vw, 44px);
}

.phm-panel {
	animation: phmPanelIn 0.3s ease both;
}

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

.phm-section-heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 30px;
	margin-bottom: 22px;
}

.phm-section-heading > div {
	min-width: min(100%, 360px);
}

.phm-step-tag {
	display: inline-block;
	margin-bottom: 5px;
	color: var(--phm-blue-dark);
	font-size: 0.73rem;
	font-weight: 900;
	letter-spacing: 0.12em;
}

.phm-poly-lab .phm-section-heading h3 {
	margin: 0;
	color: var(--phm-navy);
	font-size: clamp(1.35rem, 3vw, 2rem);
	font-weight: 900;
	line-height: 1.2;
	letter-spacing: -0.025em;
}

.phm-poly-lab .phm-section-heading p {
	max-width: 560px;
	margin: 0;
	color: var(--phm-muted);
	font-size: 0.95rem;
}

.phm-two-column {
	display: grid;
	grid-template-columns: minmax(0, 1.55fr) minmax(280px, 0.9fr);
	gap: 20px;
	align-items: stretch;
}

.phm-card {
	min-width: 0;
	padding: clamp(17px, 3vw, 25px);
	border: 1px solid var(--phm-line);
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 8px 22px rgba(26, 45, 78, 0.06);
}

.phm-control-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-bottom: 16px;
}

.phm-poly-lab .phm-control-row button {
	min-width: 45px;
	min-height: 42px;
	padding: 8px 13px;
	border: 1px solid #ced9e9;
	border-radius: 11px;
	background: #eef3f9;
	color: #263c61;
	font-size: 0.92rem;
	font-weight: 850;
	line-height: 1.2;
	box-shadow: none;
}

.phm-poly-lab .phm-control-row button:hover {
	border-color: #8fb3f5;
	background: #e4edff;
	color: #173c80;
}

.phm-poly-lab .phm-control-row button.is-selected {
	border-color: var(--phm-blue);
	background: var(--phm-blue);
	color: #fff;
	box-shadow: 0 5px 12px rgba(37, 99, 235, 0.22);
}

.phm-svg-stage {
	position: relative;
	width: 100%;
	min-height: 265px;
	border: 1px solid #d8e3f2;
	border-radius: 16px;
	background-color: #fbfdff;
	background-image:
		linear-gradient(rgba(66, 102, 151, 0.07) 1px, transparent 1px),
		linear-gradient(90deg, rgba(66, 102, 151, 0.07) 1px, transparent 1px);
	background-size: 25px 25px;
	overflow: hidden;
}

.phm-svg-stage svg {
	display: block;
	width: 100%;
	height: auto;
	min-height: 265px;
	touch-action: none;
}

.phm-button-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-top: 15px;
}

.phm-centered {
	justify-content: center;
}

.phm-poly-lab .phm-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 18px;
	border: 1px solid transparent;
	border-radius: 11px;
	font-size: 0.9rem;
	font-weight: 850;
	line-height: 1.25;
	text-decoration: none;
	box-shadow: none;
	transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.phm-poly-lab .phm-btn:hover {
	transform: translateY(-1px);
}

.phm-poly-lab .phm-btn-primary {
	border-color: var(--phm-blue);
	background: var(--phm-blue);
	color: #fff;
	box-shadow: 0 6px 14px rgba(37, 99, 235, 0.22);
}

.phm-poly-lab .phm-btn-primary:hover {
	border-color: var(--phm-blue-dark);
	background: var(--phm-blue-dark);
	color: #fff;
}

.phm-poly-lab .phm-btn-soft {
	border-color: #cbd7e7;
	background: #eef3f9;
	color: #263c61;
}

.phm-poly-lab .phm-btn-soft:hover,
.phm-poly-lab .phm-btn-soft.is-pressed {
	border-color: #8fb3f5;
	background: #dfeaff;
	color: #163e88;
}

.phm-poly-lab .phm-btn-danger {
	border-color: #f1bcc7;
	background: #fff0f3;
	color: #a91837;
}

.phm-poly-lab .phm-btn-danger:hover {
	background: #ffdce4;
	color: #8f102c;
}

.phm-poly-lab .phm-btn-large {
	min-width: 190px;
	min-height: 50px;
	font-size: 1rem;
}

.phm-discovery-card {
	display: flex;
	flex-direction: column;
	justify-content: center;
	background: linear-gradient(150deg, #fff 0%, #eef5ff 100%);
}

.phm-discovery-icon {
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	margin-bottom: 13px;
	border-radius: 14px;
	background: #dbeafe;
	color: var(--phm-blue-dark);
	font-size: 1.35rem;
	font-weight: 900;
}

.phm-poly-lab .phm-discovery-card h4,
.phm-poly-lab .phm-property-report h4,
.phm-poly-lab .phm-quiz-card h4 {
	margin: 0 0 10px;
	color: var(--phm-navy);
	font-size: 1.27rem;
	font-weight: 900;
	line-height: 1.3;
}

.phm-poly-lab .phm-discovery-card p,
.phm-poly-lab .phm-property-report p,
.phm-poly-lab .phm-quiz-card p {
	margin: 0 0 14px;
	color: var(--phm-muted);
}

.phm-definition {
	margin-top: 7px;
	padding: 14px;
	border-left: 4px solid var(--phm-green);
	border-radius: 0 10px 10px 0;
	background: var(--phm-mint);
	color: #175f47;
	font-size: 0.9rem;
	font-weight: 650;
}

.phm-mini-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
	margin: 15px 0;
}

.phm-mini-stats > div {
	padding: 9px 5px;
	border: 1px solid #d9e4f2;
	border-radius: 10px;
	background: #fff;
	text-align: center;
}

.phm-mini-stats strong {
	display: block;
	color: var(--phm-blue-dark);
	font-size: 1.25rem;
	font-weight: 900;
}

.phm-mini-stats span {
	color: var(--phm-muted);
	font-size: 0.72rem;
	font-weight: 750;
}

.phm-builder-card {
	padding-bottom: 20px;
}

.phm-builder-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	margin-bottom: 15px;
}

.phm-builder-toolbar .phm-button-row {
	margin-top: 0;
}

.phm-builder-count {
	flex: 0 0 auto;
	display: flex;
	align-items: baseline;
	gap: 5px;
	padding: 8px 13px;
	border-radius: 11px;
	background: #eef3f9;
	color: var(--phm-muted);
	font-size: 0.78rem;
	font-weight: 800;
}

.phm-builder-count strong {
	color: var(--phm-blue-dark);
	font-size: 1.2rem;
}

.phm-builder-stage {
	min-height: 330px;
	cursor: crosshair;
}

.phm-builder-stage svg {
	min-height: 330px;
}

.phm-status {
	margin-top: 15px;
	padding: 12px 15px;
	border: 1px solid transparent;
	border-radius: 11px;
	font-size: 0.9rem;
	font-weight: 700;
	text-align: center;
}

.phm-status.is-info {
	border-color: #bad6ff;
	background: #ebf4ff;
	color: #164a91;
}

.phm-status.is-success {
	border-color: #9fdfc4;
	background: #e8fbf2;
	color: #126343;
}

.phm-status.is-error {
	border-color: #f5b4c1;
	background: #fff0f3;
	color: #9f1733;
}

.phm-status.is-warning {
	border-color: #f2d18a;
	background: #fff8df;
	color: #805915;
}

.phm-property-controls {
	margin-bottom: 20px;
}

.phm-properties-layout {
	grid-template-columns: minmax(0, 1.25fr) minmax(270px, 0.75fr);
}

.phm-property-report {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.phm-property-table {
	width: 100%;
	margin: 10px 0 14px;
	border-collapse: separate;
	border-spacing: 0 7px;
}

.phm-property-table th,
.phm-property-table td {
	padding: 9px 12px;
	border: 0;
	background: #f1f5fa;
	font-size: 0.88rem;
	text-align: left;
}

.phm-property-table th {
	border-radius: 9px 0 0 9px;
	color: var(--phm-muted);
	font-weight: 750;
}

.phm-property-table td {
	border-radius: 0 9px 9px 0;
	color: var(--phm-navy);
	font-weight: 900;
	text-align: right;
}

.phm-rule-box {
	padding: 13px;
	border-radius: 11px;
	background: #fff7d9;
	color: #76520d;
	font-size: 0.88rem;
	font-weight: 700;
}

.phm-sort-summary {
	margin: 0 0 14px;
	padding: 10px 15px;
	border: 1px solid var(--phm-line);
	border-radius: 11px;
	background: #fff;
}

.phm-sort-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(240px, 0.6fr);
	gap: 20px;
}

.phm-shape-deck {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}

.phm-poly-lab .phm-shape-card {
	position: relative;
	display: grid;
	place-items: center;
	min-height: 142px;
	padding: 8px;
	border: 2px solid #d8e2ef;
	border-radius: 15px;
	background: #fff;
	color: var(--phm-ink);
	box-shadow: 0 5px 13px rgba(24, 46, 80, 0.05);
	transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.phm-poly-lab .phm-shape-card:hover {
	transform: translateY(-2px);
	border-color: #8fb3f5;
	background: #fafdff;
	color: var(--phm-ink);
}

.phm-poly-lab .phm-shape-card.is-selected {
	border-color: var(--phm-blue);
	background: #eef5ff;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.14);
}

.phm-poly-lab .phm-shape-card.is-done {
	opacity: 0.42;
	pointer-events: none;
}

.phm-shape-card svg {
	display: block;
	width: 100%;
	max-width: 145px;
	height: 112px;
}

.phm-done-mark {
	position: absolute;
	right: 7px;
	top: 7px;
	display: grid;
	place-items: center;
	width: 25px;
	height: 25px;
	border-radius: 50%;
	background: var(--phm-green);
	color: #fff;
	font-size: 0.8rem;
	font-weight: 900;
}

.phm-drop-zones {
	display: grid;
	gap: 12px;
}

.phm-poly-lab .phm-drop-zone {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 150px;
	padding: 15px;
	border: 2px dashed #aebed3;
	border-radius: 16px;
	background: #fff;
	color: var(--phm-ink);
	text-align: center;
	box-shadow: none;
}

.phm-poly-lab .phm-drop-zone:hover {
	transform: none;
	background: #f8fbff;
}

.phm-drop-zone > span {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	margin-bottom: 5px;
	border-radius: 50%;
	background: #e7edf5;
	font-size: 1.25rem;
	font-weight: 900;
}

.phm-drop-zone strong {
	font-size: 0.92rem;
	font-weight: 900;
}

.phm-drop-zone small {
	display: block;
	margin-top: 3px;
	color: var(--phm-muted);
	font-size: 0.7rem;
	font-weight: 650;
	line-height: 1.35;
}

.phm-poly-lab .phm-drop-zone.is-polygon:hover,
.phm-poly-lab .phm-drop-zone.is-polygon.is-target {
	border-color: var(--phm-green);
	background: #edfbf5;
	color: #0e6543;
}

.phm-drop-zone.is-polygon > span {
	background: #d5f6e8;
	color: var(--phm-green);
}

.phm-poly-lab .phm-drop-zone.is-not-polygon:hover,
.phm-poly-lab .phm-drop-zone.is-not-polygon.is-target {
	border-color: var(--phm-rose);
	background: #fff1f4;
	color: #9d1632;
}

.phm-drop-zone.is-not-polygon > span {
	background: #ffe0e6;
	color: var(--phm-rose);
}

.phm-top-gap {
	margin-top: 18px;
}

.phm-quiz-card {
	max-width: 790px;
	min-height: 410px;
	margin: 0 auto;
}

.phm-quiz-start,
.phm-quiz-result {
	display: flex;
	min-height: 360px;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 20px;
	text-align: center;
}

.phm-quiz-start p,
.phm-quiz-result p {
	max-width: 600px;
}

.phm-quiz-icon,
.phm-result-icon {
	display: grid;
	place-items: center;
	width: 76px;
	height: 76px;
	margin-bottom: 18px;
	border-radius: 22px;
	background: linear-gradient(145deg, #dbeafe, #c7f3e4);
	color: var(--phm-blue-dark);
	font-size: 2rem;
	font-weight: 900;
	transform: rotate(8deg);
}

.phm-quiz-game {
	padding: 5px;
}

.phm-quiz-progress {
	margin-bottom: 17px;
}

.phm-question-visual {
	display: grid;
	place-items: center;
	min-height: 100px;
	margin-bottom: 10px;
}

.phm-question-visual:empty {
	display: none;
}

.phm-question-visual svg {
	display: block;
	width: min(100%, 280px);
	height: 150px;
}

.phm-poly-lab .phm-question-text {
	margin: 8px 0 17px;
	color: var(--phm-navy);
	font-size: clamp(1.05rem, 2.4vw, 1.3rem);
	font-weight: 850;
	line-height: 1.42;
	text-align: center;
}

.phm-answer-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}

.phm-poly-lab .phm-answer-option {
	display: flex;
	align-items: center;
	min-height: 52px;
	padding: 11px 14px;
	border: 2px solid #d9e2ef;
	border-radius: 12px;
	background: #f8fafc;
	color: #233651;
	font-size: 0.91rem;
	font-weight: 750;
	line-height: 1.3;
	text-align: left;
	box-shadow: none;
}

.phm-poly-lab .phm-answer-option:hover {
	border-color: #8fb3f5;
	background: #edf4ff;
	color: #153a7a;
}

.phm-answer-letter {
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	width: 27px;
	height: 27px;
	margin-right: 9px;
	border-radius: 8px;
	background: #e5ebf3;
	color: #475a77;
	font-size: 0.75rem;
	font-weight: 900;
}

.phm-poly-lab .phm-answer-option.is-correct {
	border-color: var(--phm-green);
	background: #e8fbf2;
	color: #0d6844;
}

.phm-poly-lab .phm-answer-option.is-wrong {
	border-color: var(--phm-rose);
	background: #fff0f3;
	color: #9f1733;
}

.phm-poly-lab .phm-answer-option:disabled {
	cursor: default;
	opacity: 1;
}

.phm-result-score {
	margin: 5px 0 15px;
	color: var(--phm-blue-dark);
	font-size: clamp(2.3rem, 7vw, 4rem);
	font-weight: 950;
	line-height: 1;
}

.phm-footer {
	padding: 12px 20px;
	border-top: 1px solid var(--phm-line);
	background: #fff;
	color: #8290a5;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-align: center;
}

.phm-footer a {
	color: #49678f;
	font-weight: 900;
	text-decoration: none;
}

.phm-footer a:hover {
	color: var(--phm-blue-dark);
	text-decoration: underline;
}

.phm-noscript {
	margin: 0;
	padding: 15px;
	background: #fff2d8;
	color: #7b5410;
	text-align: center;
}

.phm-toast {
	position: fixed;
	right: 22px;
	bottom: 22px;
	z-index: 9999;
	max-width: min(360px, calc(100vw - 44px));
	padding: 12px 17px;
	border-radius: 12px;
	background: var(--phm-navy);
	box-shadow: 0 12px 30px rgba(18, 35, 63, 0.28);
	color: #fff;
	font-size: 0.86rem;
	font-weight: 750;
	opacity: 0;
	pointer-events: none;
	transform: translateY(15px);
	transition: opacity 0.22s ease, transform 0.22s ease;
}

.phm-toast.is-visible {
	opacity: 1;
	transform: translateY(0);
}

/* SVG drawing language */
.phm-poly-lab .phm-poly-fill {
	fill: rgba(37, 99, 235, 0.12);
	stroke: none;
}

.phm-poly-lab .phm-poly-side {
	fill: none;
	stroke: #2563eb;
	stroke-width: 7;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.phm-poly-lab .phm-poly-side.is-animating {
	stroke-dasharray: 1000;
	stroke-dashoffset: 1000;
	animation: phmDrawLine 0.55s ease forwards;
}

@keyframes phmDrawLine {
	to { stroke-dashoffset: 0; }
}

.phm-poly-lab .phm-vertex {
	fill: #f59e0b;
	stroke: #fff;
	stroke-width: 4;
}

.phm-poly-lab .phm-vertex-label,
.phm-poly-lab .phm-side-label,
.phm-poly-lab .phm-angle-label {
	fill: #183b73;
	font-family: inherit;
	font-size: 17px;
	font-weight: 900;
	paint-order: stroke;
	stroke: #fff;
	stroke-width: 5px;
	stroke-linejoin: round;
}

.phm-poly-lab .phm-side-label {
	fill: #0f766e;
	font-size: 14px;
}

.phm-poly-lab .phm-angle-mark {
	fill: none;
	stroke: #dc3654;
	stroke-width: 3;
	stroke-linecap: round;
}

.phm-poly-lab .phm-builder-preview {
	fill: none;
	stroke: #8da2bf;
	stroke-width: 3;
	stroke-dasharray: 9 7;
}

.phm-poly-lab .phm-builder-line {
	fill: none;
	stroke: #2563eb;
	stroke-width: 6;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.phm-poly-lab .phm-builder-fill {
	fill: rgba(20, 184, 166, 0.16);
	stroke: none;
}

.phm-poly-lab .phm-first-ring {
	fill: rgba(245, 158, 11, 0.16);
	stroke: #f59e0b;
	stroke-width: 3;
	stroke-dasharray: 5 4;
	pointer-events: none;
}

.phm-poly-lab .phm-grid-hint {
	fill: #91a1b8;
	font-family: inherit;
	font-size: 17px;
	font-weight: 750;
	pointer-events: none;
}

@media (max-width: 840px) {
	.phm-hero {
		min-height: 200px;
	}

	.phm-hero-mark {
		flex-basis: 110px;
		width: 110px;
		height: 110px;
	}

	.phm-two-column,
	.phm-properties-layout,
	.phm-sort-layout {
		grid-template-columns: 1fr;
	}

	.phm-discovery-card,
	.phm-property-report {
		min-height: 250px;
	}

	.phm-drop-zones {
		grid-template-columns: repeat(2, 1fr);
	}

	.phm-drop-zone {
		min-height: 125px;
	}
}

@media (max-width: 680px) {
	.phm-poly-lab {
		margin: 12px auto;
		border-radius: 16px;
		font-size: 15px;
	}

	.phm-hero {
		padding: 28px 22px;
	}

	.phm-hero-mark {
		display: none;
	}

	.phm-tabs {
		grid-template-columns: repeat(5, minmax(68px, 1fr));
		justify-content: flex-start;
		overflow-x: auto;
		scrollbar-width: thin;
	}

	.phm-poly-lab .phm-tabs button {
		flex-direction: column;
		gap: 3px;
		min-width: 68px;
		padding: 7px 4px;
		font-size: 0.72rem;
	}

	.phm-tabs button > span {
		width: 20px;
		height: 20px;
		font-size: 0.67rem;
	}

	.phm-section-heading {
		align-items: flex-start;
		flex-direction: column;
		gap: 9px;
	}

	.phm-builder-toolbar {
		align-items: flex-start;
		flex-direction: column;
	}

	.phm-builder-count {
		align-self: flex-end;
	}

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

	.phm-answer-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 430px) {
	.phm-panels {
		padding: 18px 12px 24px;
	}

	.phm-card {
		padding: 14px;
		border-radius: 14px;
	}

	.phm-poly-lab .phm-btn {
		flex: 1 1 auto;
		padding-inline: 12px;
	}

	.phm-control-row {
		gap: 6px;
	}

	.phm-poly-lab .phm-control-row button {
		min-width: 40px;
		padding-inline: 9px;
	}

	.phm-property-controls button {
		flex: 1 1 30%;
	}

	.phm-drop-zones {
		grid-template-columns: 1fr;
	}

	.phm-poly-lab .phm-drop-zone {
		min-height: 110px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.phm-poly-lab *,
	.phm-poly-lab *::before,
	.phm-poly-lab *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}
