#htest-moria-calculator { max-width: 900px; margin: 0 auto; }
.htest-moria-page { max-width: 900px; margin: 0 auto; }

.htest-formcard-header { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
.htest-formcard-header-sm { margin-bottom: 14px; }
.htest-formcard-icon {
	display: flex; align-items: center; justify-content: center; flex-shrink: 0;
	width: 48px; height: 48px; border-radius: 12px; color: #fff;
	background: linear-gradient(135deg, #f0a24e, var(--htest-accent, #e8611c));
	box-shadow: 0 4px 10px rgba(232,97,28,.25);
}
.htest-formcard-header-sm .htest-formcard-icon { width: 38px; height: 38px; border-radius: 10px; }
.htest-formcard-title { font-size: 20px; font-weight: 700; margin: 0 0 2px; color: var(--htest-text, #1f2937); }
.htest-formcard-sub { font-size: 13px; color: var(--htest-muted, #6b7280); margin: 0; }

.htest-formcard-btn {
	display: block; width: 100%; margin-top: 20px; padding: 13px; border: none; border-radius: 10px;
	background: linear-gradient(135deg, #f0a24e, var(--htest-accent, #e8611c));
	color: #fff; font-weight: 700; font-size: 14px; letter-spacing: .02em; cursor: pointer;
	box-shadow: 0 4px 12px rgba(232,97,28,.3);
}
.htest-formcard-btn:hover { box-shadow: 0 6px 16px rgba(232,97,28,.4); }

.htest-moria-buttons-row { display: flex; gap: 10px; }
.htest-moria-buttons-row .htest-formcard-btn { margin-top: 20px; flex: 1; }
.htest-formcard-btn-secondary {
	background: #fff !important; color: var(--htest-accent-dark, #c94f11) !important;
	border: 1.5px solid var(--htest-accent, #e8611c) !important; box-shadow: none !important;
}
.htest-formcard-btn-secondary:hover { background: var(--htest-bg-soft, #faf3ee) !important; }

select.htest-moria-field-select {
	-webkit-appearance: none; -moz-appearance: none; appearance: none;
	width: 100%; box-sizing: border-box; padding: 12px 40px 12px 14px;
	border: 1px solid var(--htest-border, #eaeaea) !important; border-radius: 10px !important;
	font-size: 15px; margin-bottom: 20px; background-color: #fff !important;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%236b7280' stroke-width='1.8'%3E%3Cpath d='M5 7l5 5 5-5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 14px center; background-size: 14px;
	color: var(--htest-text, #1f2937); line-height: 1.4; height: auto;
}

.htest-moria-card {
	position: relative; overflow: hidden;
	background: var(--htest-bg-soft, #fdf3ec); border: 1px solid var(--htest-border, #eaeaea); border-radius: var(--htest-radius, 14px);
	padding: 24px; margin-bottom: 24px;
}
.htest-moria-card::before {
	content: ''; position: absolute; top: 0; left: 0; right: 0; height: 5px;
	background: linear-gradient(90deg, #f0a24e, var(--htest-accent, #e8611c), #f0a24e);
}
.htest-school-moria-card { margin-bottom: 0; }

.htest-moria-subjects {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 14px; margin-bottom: 16px;
}
.htest-moria-grade-field { display: flex; flex-direction: column; }
.htest-moria-grade-field label {
	display: block; font-size: 13px; color: var(--htest-muted, #6b7280); margin-bottom: 5px;
	min-height: 32px; line-height: 1.3;
}
.htest-moria-grade-field input {
	width: 100%; box-sizing: border-box; padding: 10px 12px; border: 1px solid var(--htest-border, #eaeaea);
	border-radius: 8px; font-size: 15px; margin-top: auto;
}
.htest-moria-grade-field input.has-error { border-color: #dc2626; background: #fef2f2; }

.htest-moria-special-toggle { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 500; margin: 8px 0 14px; cursor: pointer; }
.htest-moria-special-toggle input { width: 17px; height: 17px; accent-color: var(--htest-accent, #e8611c); }

.htest-moria-specials {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 14px;
	padding-top: 14px; border-top: 1px solid var(--htest-border, #eaeaea);
}

.htest-moria-hint { font-size: 13px; color: var(--htest-muted, #6b7280); padding: 14px 0; }

.htest-moria-range-card {
	background: var(--htest-bg-soft, #faf3ee); border: 1px solid var(--htest-border, #eaeaea);
	border-radius: var(--htest-radius, 14px); padding: 18px 22px; margin-bottom: 16px;
	text-align: center;
}
.htest-moria-range-label { font-size: 13px; color: var(--htest-muted, #6b7280); margin-bottom: 4px; }
.htest-moria-range-value { font-size: 22px; font-weight: 700; color: var(--htest-accent-dark, #c94f11); }

.htest-moria-toolbar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.htest-moria-toolbar select, .htest-moria-toolbar input {
	padding: 8px 10px; border: 1px solid var(--htest-border, #eaeaea); border-radius: 8px; font-size: 13px;
}
.htest-moria-toolbar select {
	-webkit-appearance: none; -moz-appearance: none; appearance: none;
	padding-right: 32px; background-color: #fff; color: var(--htest-text, #1f2937);
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%236b7280' stroke-width='1.8'%3E%3Cpath d='M5 7l5 5 5-5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 10px center; background-size: 12px;
}
.htest-moria-toolbar input { flex: 1; min-width: 160px; }

.htest-moria-table { display: flex; flex-direction: column; gap: 8px; }
.htest-moria-row {
	display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 16px;
	background: #fff; border: 1px solid var(--htest-border, #eaeaea); border-radius: 10px;
	padding: 14px 18px; text-decoration: none; color: inherit;
	transition: box-shadow .15s ease;
}
a.htest-moria-row:hover { box-shadow: 0 4px 14px rgba(0,0,0,.06); }
.htest-moria-row-name { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.htest-moria-row-title { font-weight: 600; font-size: 14.5px; color: var(--htest-text, #1f2937); }
.htest-moria-row-sub { font-size: 12.5px; color: var(--htest-muted, #6b7280); }
.htest-moria-row-stats { display: flex; align-items: center; gap: 16px; flex-shrink: 0; }
.htest-moria-row-moria, .htest-moria-row-base { display: flex; flex-direction: column; align-items: flex-end; }
.htest-moria-row-moria-val { font-weight: 700; font-size: 17px; color: var(--htest-accent-dark, #c94f11); }
.htest-moria-row-moria-label, .htest-moria-row-base-label { font-size: 11px; color: var(--htest-muted, #6b7280); }
.htest-moria-row-base span:first-child { font-size: 14px; color: var(--htest-text, #1f2937); }
.htest-moria-row-nodata { color: var(--htest-muted, #6b7280); }
.htest-moria-diff { font-size: 12.5px; font-weight: 700; padding: 4px 10px; border-radius: 999px; white-space: nowrap; }
.htest-moria-diff.up { background: #dcfce7; color: #166534; }
.htest-moria-diff.down { background: #fee2e2; color: #991b1b; }

@media (max-width: 640px) {
	.htest-moria-subjects, .htest-moria-specials { grid-template-columns: 1fr 1fr; }
	.htest-moria-row { grid-template-columns: 1fr; row-gap: 10px; padding: 14px; }
	.htest-moria-row-stats { justify-content: space-between; width: 100%; gap: 8px; }
	.htest-moria-row-moria, .htest-moria-row-base { align-items: flex-start; }
	.htest-moria-row-diff { align-self: center; }
}
