.upc-palmares {
	--upc-gold: #b47a16;
	background: #fbf8f1;
	border: 1px solid rgba(151, 105, 29, .28);
	border-radius: 14px;
	box-sizing: border-box;
	box-shadow: 0 9px 28px rgba(72, 55, 29, .07);
	color: #2f2922;
	margin: 2rem auto;
	max-width: 1280px;
	padding: clamp(1.35rem, 3vw, 2.3rem);
	width: 100%;
}

.upc-palmares h2 {
	font-size: clamp(1.45rem, 2.8vw, 1.85rem);
	line-height: 1.2;
	margin: 0 0 .55rem;
	text-align: center;
}

.upc-intro {
	color: #665e55;
	font-style: italic;
	margin: 0 0 1.5rem;
	text-align: center;
}

.upc-star-list {
	display: grid;
	gap: .7rem;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

.upc-star-row {
	align-content: start;
	background: #fffaf8;
	border: 1px solid rgba(151, 105, 29, .2);
	border-top: 5px solid #b76658;
	border-radius: 11px;
	box-shadow: 0 3px 9px rgba(72, 55, 29, .045);
	display: flex;
	flex-direction: column;
	min-height: 215px;
	padding: 1.05rem .8rem 1rem;
	text-align: center;
	transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.upc-star-row:hover,
.upc-star-row:focus {
	border-color: rgba(180, 122, 22, .58);
	box-shadow: 0 10px 22px rgba(72, 55, 29, .14);
	cursor: pointer;
	outline: none;
	transform: translateY(-3px);
}

.upc-star-row:nth-child(2) { background: #fff9ed; border-top-color: #d09a35; }
.upc-star-row:nth-child(3) { background: #f5f8ef; border-top-color: #87996b; }
.upc-star-row:nth-child(4) { background: #f2f7f7; border-top-color: #6f9293; }
.upc-star-row:nth-child(5) { background: #f7f3f8; border-top-color: #957c99; }

.upc-stars {
	color: var(--upc-gold);
	display: block;
	font-size: clamp(1rem, 1.7vw, 1.3rem);
	font-weight: 700;
	letter-spacing: .025em;
	line-height: 1.15;
	white-space: nowrap;
}

.upc-resilience-range {
	color: #8f3039;
	display: block;
	font-family: Georgia, 'Times New Roman', serif;
	font-size: clamp(1rem, 1.7vw, 1.25rem);
	font-weight: 700;
	line-height: 1.15;
	white-space: nowrap;
}

.upc-quarrel-list {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	list-style: none;
	margin: 0 auto;
	max-width: 760px;
	padding: 0;
}

.upc-quarrel-row {
	min-height: 185px;
}

.upc-quarrel-symbol {
	color: #8f3039;
	font-family: Georgia, 'Times New Roman', serif;
	font-size: 1.55rem;
	font-weight: 700;
	line-height: 1;
}

.upc-quarrel-chatgpt .upc-quarrel-symbol {
	color: #7b6653;
}

.upc-modal-resilience {
	color: #8f3039;
}

.upc-count {
	align-self: center;
	background: rgba(255, 255, 255, .72);
	border: 1px solid rgba(116, 88, 49, .14);
	border-radius: 999px;
	display: inline-block;
	font-weight: 700;
	margin: .55rem 0 .9rem;
	padding: .16rem .65rem;
	white-space: nowrap;
}

.upc-star-row p {
	margin: 0;
}

.upc-verdict {
	font-weight: 650;
}

.upc-comment {
	font-size: .94em;
	line-height: 1.42;
	margin-top: .3rem !important;
}

.upc-message {
	background: #fff8e8;
	border-left: 4px solid #b47a16;
	padding: .85rem 1rem;
}

body.upc-modal-open {
	overflow: hidden;
}

.upc-modal[hidden] {
	display: none !important;
}

.upc-modal {
	align-items: center;
	background: rgba(43, 35, 27, .62);
	display: flex;
	inset: 0;
	justify-content: center;
	padding: 24px;
	position: fixed;
	z-index: 100000;
}

.upc-modal-panel {
	background: #fffdf9;
	border: 1px solid #d9c9ae;
	border-radius: 14px;
	box-shadow: 0 24px 70px rgba(0, 0, 0, .28);
	max-height: 84vh;
	overflow: hidden;
	width: min(1050px, 100%);
}

.upc-modal-header {
	align-items: center;
	background: #fbf6ec;
	border-bottom: 1px solid #e5d8c4;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	padding: 1rem 1.25rem;
}

.upc-modal-header h3 {
	color: #2f2922;
	font-family: Georgia, 'Times New Roman', serif;
	font-size: 1.35rem;
	margin: 0;
}

.upc-modal-stars {
	color: var(--upc-gold);
}

.upc-modal-close {
	background: transparent;
	border: 0;
	color: #8a6545;
	cursor: pointer;
	font: 400 30px/1 Georgia, serif;
	padding: 0 4px;
}

.upc-table-wrap {
	max-height: calc(84vh - 66px);
	overflow: auto;
}

.upc-book-table {
	border-collapse: collapse;
	color: #302b26;
	font-size: .9rem;
	min-width: 680px;
	width: 100%;
}

.upc-book-table th,
.upc-book-table td {
	border-bottom: 1px solid #eee5d8;
	padding: .28rem .72rem;
	text-align: left;
	vertical-align: top;
}

.upc-book-table th {
	background: #f5ecdd;
	color: #47382b;
	font-weight: 700;
	position: sticky;
	top: 0;
	z-index: 1;
}

.upc-book-table th:nth-child(1),
.upc-book-table td:nth-child(1) { width: 24%; }
.upc-book-table th:nth-child(2),
.upc-book-table td:nth-child(2) { width: 27%; }
.upc-book-table th:nth-child(3),
.upc-book-table td:nth-child(3) { width: 49%; }

.upc-resilience-table th:nth-child(1),
.upc-resilience-table td:nth-child(1) { width: 22%; }
.upc-resilience-table th:nth-child(2),
.upc-resilience-table td:nth-child(2) { width: 25%; }
.upc-resilience-table th:nth-child(3),
.upc-resilience-table td:nth-child(3) { width: 45%; }
.upc-resilience-table th:nth-child(4),
.upc-resilience-table td:nth-child(4) {
	text-align: center;
	white-space: nowrap;
	width: 8%;
}

.upc-quarrel-table th:nth-child(1),
.upc-quarrel-table td:nth-child(1) { width: 18%; }
.upc-quarrel-table th:nth-child(2),
.upc-quarrel-table td:nth-child(2) { width: 22%; }
.upc-quarrel-table th:nth-child(3),
.upc-quarrel-table td:nth-child(3) { width: 42%; }
.upc-quarrel-table th:nth-child(4),
.upc-quarrel-table td:nth-child(4) { width: 11%; }
.upc-quarrel-table th:nth-child(5),
.upc-quarrel-table td:nth-child(5) {
	text-align: center;
	white-space: nowrap;
	width: 7%;
}

.upc-my-rating {
	color: var(--upc-gold);
	white-space: nowrap;
}

.upc-book-table tbody tr:nth-child(even) {
	background: #fcfaf6;
}

.upc-total-stamp {
	align-items: center;
	background: rgba(255, 253, 248, .5);
	border: 4px solid #8f3039;
	border-radius: 18px;
	box-shadow: inset 0 0 0 4px #fffdf8, inset 0 0 0 6px #8f3039;
	color: #8f3039;
	display: flex;
	flex-direction: column;
	font-family: Georgia, 'Times New Roman', serif;
	justify-content: center;
	margin: 1.25rem auto;
	max-width: 265px;
	min-height: 160px;
	padding: 1rem 1.15rem;
	text-align: center;
	text-transform: uppercase;
	transform: rotate(-2.2deg);
}

.upc-stamp-star {
	font-size: 1.2rem;
	line-height: 1;
}

.upc-total-stamp strong {
	font-size: clamp(2.8rem, 6vw, 4rem);
	line-height: .95;
	margin: .15rem 0 .3rem;
}

.upc-stamp-label {
	font-size: .88rem;
	font-weight: 700;
	letter-spacing: .08em;
}

.upc-total-stamp small {
	border-top: 1px solid currentColor;
	font-size: .72rem;
	font-style: italic;
	letter-spacing: .035em;
	margin-top: .65rem;
	padding-top: .5rem;
	text-transform: none;
}

.upc-kicker {
	color: #8b6741;
	font-size: .75rem;
	font-weight: 800;
	letter-spacing: .13em;
	margin: 0 0 .35rem;
	text-align: center;
	text-transform: uppercase;
}

.upc-kpi-grid {
	display: grid;
	gap: .65rem;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	margin: 1.5rem 0 1.8rem;
}

.upc-kpi-grid > div {
	background: #fffdf8;
	border: 1px solid rgba(116, 88, 49, .17);
	border-radius: 11px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 126px;
	padding: .8rem;
	text-align: center;
}

.upc-kpi-grid span {
	color: #776653;
	font-size: .72rem;
	font-weight: 750;
	letter-spacing: .055em;
	text-transform: uppercase;
}

.upc-kpi-grid strong {
	color: #843f37;
	font-family: Georgia, 'Times New Roman', serif;
	font-size: clamp(1.65rem, 3vw, 2.3rem);
	line-height: 1.05;
	margin: .42rem 0 .25rem;
}

.upc-kpi-grid .upc-kpi-name {
	font-size: clamp(1.05rem, 1.8vw, 1.35rem);
}

.upc-kpi-grid small { color: #62594f; }

.upc-donut-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.upc-donut-card {
	background: rgba(255, 255, 255, .55);
	border: 1px solid rgba(116, 88, 49, .17);
	border-radius: 13px;
	padding: 1.15rem;
}

.upc-donut-card h3 {
	font-family: Georgia, 'Times New Roman', serif;
	font-size: 1.25rem;
	margin: 0 0 1rem;
	text-align: center;
}

.upc-donut {
	align-items: center;
	background: var(--upc-donut);
	border-radius: 50%;
	box-shadow: 0 8px 22px rgba(68, 51, 30, .12);
	display: flex;
	height: 230px;
	justify-content: center;
	margin: .3rem auto 1.15rem;
	width: 230px;
}

.upc-donut > div {
	align-items: center;
	background: #fbf8f1;
	border-radius: 50%;
	display: flex;
	flex-direction: column;
	height: 122px;
	justify-content: center;
	width: 122px;
}

.upc-donut strong {
	font-family: Georgia, 'Times New Roman', serif;
	font-size: 2rem;
	line-height: 1;
}

.upc-donut span { color: #786957; font-size: .78rem; }

.upc-donut-legend {
	display: grid;
	gap: .38rem .8rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

.upc-donut-legend li {
	align-items: center;
	display: grid;
	font-size: .78rem;
	gap: .38rem;
	grid-template-columns: 10px minmax(0, 1fr) auto;
}

.upc-donut-legend i {
	background: var(--upc-slice);
	border-radius: 50%;
	height: 9px;
	width: 9px;
}

.upc-donut-legend span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.upc-donut-legend strong { color: #64594c; white-space: nowrap; }

.upc-board-verdict {
	background: #f4ead9;
	border-left: 5px solid #b47a16;
	border-radius: 7px;
	font-family: Georgia, 'Times New Roman', serif;
	line-height: 1.5;
	margin: 1.1rem 0 0;
	padding: .85rem 1rem;
}

@media (max-width: 900px) {
	.upc-star-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.upc-star-row { min-height: 190px; }
	.upc-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 520px) {
	.upc-star-list { grid-template-columns: 1fr; }
	.upc-star-row { min-height: 0; }
	.upc-stars { font-size: 1.25rem; }
	.upc-total-stamp { max-width: 245px; min-height: 150px; }
	.upc-modal { padding: 10px; }
	.upc-modal-panel { max-height: 90vh; }
	.upc-table-wrap { max-height: calc(90vh - 62px); }
	.upc-kpi-grid,
	.upc-donut-grid { grid-template-columns: 1fr; }
	.upc-donut-legend { grid-template-columns: 1fr; }
	.upc-donut { height: 205px; width: 205px; }
	.upc-quarrel-list { grid-template-columns: 1fr; }
}
