Files
print-calculator/frontend/src/app/features/calculator/calculator-page.component.scss

137 lines
2.5 KiB
SCSS

.error-action {
display: flex;
justify-content: center;
margin-top: calc(var(--space-4) * -1);
}
.content-grid {
display: grid;
grid-template-columns: 1fr;
gap: var(--space-6);
@media (min-width: 768px) {
grid-template-columns: 1.5fr 1fr;
gap: var(--space-8);
}
}
.centered-col {
align-self: flex-start; /* Default */
@media (min-width: 768px) {
align-self: center;
}
}
.col-input {
min-width: 0;
}
.col-result {
min-width: 0;
display: flex;
flex-direction: column;
}
/* Stretch only the loading card so the spinner stays centered */
.col-result > .loading-state {
flex: 1;
}
/* Mode Selector (Segmented Control style) */
.mode-selector {
display: flex;
background-color: var(--color-neutral-100);
border-radius: var(--radius-md);
padding: 4px;
margin-bottom: var(--space-6);
gap: 4px;
width: 100%;
}
.mode-option {
flex: 1;
text-align: center;
padding: 8px 16px;
border-radius: var(--radius-sm);
cursor: pointer;
font-size: 0.875rem;
font-weight: 500;
color: var(--color-text-muted);
transition: all 0.2s ease;
user-select: none;
&:hover {
color: var(--color-text);
}
&.active {
background-color: var(--color-brand);
color: #000;
font-weight: 600;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}
&.disabled {
opacity: 0.6;
cursor: not-allowed;
}
}
.benefits {
padding-left: var(--space-4);
color: var(--color-text-muted);
line-height: 2;
}
.zero-result-card p {
color: var(--color-text-muted);
line-height: 1.6;
}
.zero-result-action {
margin-top: var(--space-4);
}
.loader-content {
text-align: center;
max-width: 22rem;
margin: 0 auto;
/* Center content vertically within the stretched card */
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: var(--space-3);
}
.loading-title {
font-size: 1.1rem;
font-weight: 600;
margin: 0;
color: var(--color-text);
}
.loading-text {
font-size: 0.9rem;
color: var(--color-text-muted);
line-height: 1.5;
margin: 0;
}
.loader-logo {
display: block;
width: min(100%, 16rem);
margin: 0 auto;
--brand-animation-width: 16rem;
--brand-animation-height: 4.8rem;
--brand-animation-letter-width: 2.85rem;
--brand-animation-scale: 0.84;
--brand-animation-word-spacing: 0.97;
--brand-animation-width-mobile: 14rem;
--brand-animation-height-mobile: 4.1rem;
--brand-animation-letter-width-mobile: 2.45rem;
--brand-animation-scale-mobile: 0.84;
--brand-animation-loader-loop-duration: 2.65s;
}