.vy-aquarium-layout {
display: grid;
grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.95fr);
gap: 24px;
align-items: start;
}
.vy-field-wrap {
margin-bottom: 18px;
}
.vy-field-wrap label {
display: block;
margin: 0 0 8px 0;
font-size: 15px;
font-weight: 700;
color: #111827;
line-height: 1.5;
}
.vy-shape-visual {
margin: 18px 0 20px 0;
border: 1px solid #e5e7eb;
border-radius: 16px;
background: #f8fafc;
padding: 14px;
min-height: 260px;
display: flex;
align-items: center;
justify-content: center;
box-sizing: border-box;
}
.vy-shape-visual img {
display: block;
width: 100%;
max-width: 420px;
height: auto;
object-fit: contain;
border-radius: 10px;
}
.vy-dynamic-fields {
margin-top: 8px;
}
.vy-submit-row {
margin-top: 22px;
}
.vy-submit-btn {
width: 100%;
min-height: 52px;
border: none;
cursor: pointer;
font-size: 16px;
font-weight: 700;
background: linear-gradient(180deg, #4fa3e3 0%, #3d8fcd 100%);
color: #ffffff;
box-shadow: 0 6px 14px rgba(61, 143, 205, 0.16);
transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}
.vy-submit-btn:hover {
transform: translateY(-1px);
box-shadow: 0 10px 18px rgba(61, 143, 205, 0.22);
background: linear-gradient(180deg, #4399db 0%, #357fbb 100%);
}
.vy-submit-btn:disabled {
opacity: 0.75;
cursor: not-allowed;
transform: none;
box-shadow: 0 6px 14px rgba(61, 143, 205, 0.12);
}
.vy-result-box {
min-height: 100%;
}
.vy-result-title {
margin: 0 0 14px 0;
font-size: 24px;
line-height: 1.3;
font-weight: 800;
color: #111827;
}
.vy-result-status {
display: none;
margin: 0 0 12px 0;
padding: 12px 14px;
border-radius: 12px;
font-size: 14px;
line-height: 1.65;
}
.vy-result-status.is-error {
display: block;
background: #fef2f2;
border: 1px solid #fecaca;
color: #b91c1c;
}
.vy-result-status.is-info {
display: block;
background: #eff6ff;
border: 1px solid #bfdbfe;
color: #1d4ed8;
}
.vy-result-pre {
margin: 0;
padding: 18px;
border: 1px solid #e5e7eb;
border-radius: 16px;
background: #ffffff;
color: #111827;
font-size: 15px;
line-height: 1.8;
white-space: pre-wrap;
word-break: break-word;
min-height: 220px;
box-sizing: border-box;
font-family: inherit;
}
.vy-helper-text {
margin: 0 0 18px 0;
font-size: 15px;
line-height: 1.8;
color: #4b5563;
}
@media (max-width: 900px) {
.vy-aquarium-layout {
grid-template-columns: 1fr;
}
.vy-shape-visual {
min-height: 220px;
}
.vy-result-title {
font-size: 22px;
}
}