blob: bae1a4dcbf75c9a60946047c3f3d8d276845a4a1 [file]
/*
* Sizing calculator widget styles.
* All rules are scoped under .sizingRoot and built on the site's design
* tokens (--color-*, --brand-*, --ifm-*) so the tool matches the main
* theme and follows dark / light mode automatically.
*/
.sizingRoot {
--sz-warn: #d97706;
--sz-shadow: 0 1px 2px rgba(0, 0, 0, .05), 0 8px 24px -12px rgba(0, 0, 0, .18);
--sz-radius: 14px;
max-width: var(--global-main-width);
margin: 0 auto;
padding: 32px var(--mobile-padding-width) 80px;
}
.sizingRoot .sizing-head { margin-bottom: 20px; }
.sizingRoot .sizing-head h1 { font-size: 1.9rem; margin: 0; letter-spacing: -.01em; }
.sizingRoot .sizing-head .subtitle { margin: 8px 0 0; color: var(--color-text-muted); font-size: .95rem; }
.sizingRoot .sizing-head .method-link {
display: inline-block; margin-top: 12px; font-weight: 600; font-size: .9rem;
}
.sizingRoot [hidden] { display: none !important; }
.sizingRoot .sz-card {
display: block;
background: var(--color-surface); border: 1px solid var(--color-border);
border-radius: var(--sz-radius); padding: 26px 28px; margin-bottom: 20px;
box-shadow: var(--sz-shadow);
}
.sizingRoot .field-grid { display: grid; grid-template-columns: minmax(220px, 320px) 1fr; gap: 24px; }
.sizingRoot label { display: block; margin: 0 0 8px; font-weight: 600; font-size: .92rem; }
.sizingRoot .sz-row { display: flex; flex-wrap: nowrap; align-items: center; gap: 8px; margin: 0; }
.sizingRoot .sz-row input[type=number] { flex: 1 1 auto; min-width: 0; }
.sizingRoot input, .sizingRoot select, .sizingRoot button { font: inherit; color: inherit; }
.sizingRoot input[type=number], .sizingRoot select {
padding: 9px 12px; border: 1px solid var(--color-border-strong); border-radius: 9px;
background: var(--color-bg-subtle); color: var(--color-text); width: 100%;
transition: border-color .15s, box-shadow .15s;
}
.sizingRoot input[type=number]:focus, .sizingRoot select:focus {
outline: none; border-color: var(--color-accent); box-shadow: 0 0 0 3px var(--brand-orange-soft);
}
.sizingRoot .sz-row select { flex: 0 0 auto; width: auto; }
.sizingRoot .sz-tabs {
display: flex; gap: 0; background: var(--color-bg-muted); border-radius: 10px;
padding: 4px; width: fit-content; flex-wrap: wrap; margin: 0; list-style: none;
}
.sizingRoot .sz-tabs button {
cursor: pointer; border: 0; background: transparent; border-radius: 8px;
padding: 8px 18px; font-weight: 600; color: var(--color-text-muted);
transition: background .15s, color .15s;
}
.sizingRoot .sz-tabs button.active {
background: var(--color-surface); color: var(--color-accent);
box-shadow: 0 1px 3px rgba(0, 0, 0, .12);
}
.sizingRoot .adv { margin-top: 20px; }
.sizingRoot .preset-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 12px; }
.sizingRoot .preset-card {
cursor: pointer; text-align: left; display: flex; flex-direction: column; gap: 4px;
border: 1.5px solid var(--color-border-strong); border-radius: 12px; padding: 14px 16px;
background: var(--color-bg-subtle); color: inherit;
transition: border-color .15s, box-shadow .15s, background .15s;
}
.sizingRoot .preset-card:hover { border-color: var(--color-accent); }
.sizingRoot .preset-card.selected {
border-color: var(--color-accent); background: var(--brand-orange-soft);
box-shadow: 0 0 0 3px var(--brand-orange-soft);
}
.sizingRoot .preset-name { font-weight: 700; font-size: .98rem; }
.sizingRoot .preset-desc { color: var(--color-text-muted); font-size: .84rem; }
.sizingRoot .hint { color: var(--color-text-muted); font-size: .85rem; margin: 8px 0 0; }
.sizingRoot summary { cursor: pointer; font-weight: 600; font-size: .92rem; color: var(--color-text-muted); }
.sizingRoot .adv-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 260px)); gap: 12px; margin-top: 12px; }
.sizingRoot .adv-grid label span { display: block; margin-bottom: 6px; }
.sizingRoot .result-head { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 4px; }
.sizingRoot h2 { font-size: 1.15rem; margin: 18px 0 10px; }
.sizingRoot .result-head h2 { margin: 0; }
.sizingRoot .product-chip {
background: var(--brand-orange-soft); color: var(--color-accent); border-radius: 999px;
padding: 4px 14px; font-size: .82rem; font-weight: 600;
}
.sizingRoot .sz-badge {
display: inline-block; border: 0; padding: 5px 14px; border-radius: 999px;
font-size: .85rem; font-weight: 600; margin: 6px 0;
}
.sizingRoot .sz-badge-storage { background: var(--color-bg-muted); color: var(--color-text-muted); }
.sizingRoot .sz-badge-compute { background: var(--brand-orange-soft); color: var(--color-accent); }
.sizingRoot .warn { color: var(--sz-warn); font-weight: 600; margin: 10px 0 0; }
.sizingRoot .callout {
display: flex; align-items: center; gap: 10px;
background: var(--brand-orange-soft); border: 1px solid rgba(255, 89, 0, .25);
border-radius: 10px; padding: 10px 14px; margin: 12px 0 4px;
color: var(--color-accent); font-weight: 600; font-size: .9rem;
}
.sizingRoot .callout::before { content: "⚠"; font-size: 1.05rem; }
.sizingRoot .table-wrap { overflow-x: auto; }
.sizingRoot table { width: 100%; border-collapse: collapse; margin: 8px 0 10px; }
.sizingRoot th, .sizingRoot td {
text-align: left; padding: 11px 12px; border-bottom: 1px solid var(--color-border);
vertical-align: top; font-size: .92rem;
}
.sizingRoot thead th {
font-size: .76rem; text-transform: uppercase; letter-spacing: .05em;
color: var(--color-text-muted); border-bottom: 1px solid var(--color-border-strong);
}
.sizingRoot tbody tr:hover { background: var(--color-bg-subtle); }
.sizingRoot td.num { font-variant-numeric: tabular-nums; font-weight: 700; }
.sizingRoot td.note { color: var(--color-text-muted); font-size: .85rem; max-width: 260px; }
.sizingRoot .spec-inst { display: block; font-weight: 700; color: var(--color-accent); }
.sizingRoot .spec-main { display: block; font-weight: 600; }
.sizingRoot .bom-line { display: flex; gap: 8px; font-size: .82rem; color: var(--color-text-muted); margin-top: 3px; }
.sizingRoot .bom-k { flex: 0 0 5.5em; color: var(--color-text-soft); }
.sizingRoot .bom-v { flex: 1; }
.sizingRoot .summary th { width: 40%; color: var(--color-text-muted); font-weight: 600; }
.sizingRoot .summary td { font-weight: 700; font-variant-numeric: tabular-nums; }
.sizingRoot .meta-line { color: var(--color-text-muted); font-size: .85rem; margin: 8px 0 0; }
@media (max-width: 680px) {
.sizingRoot .field-grid { grid-template-columns: 1fr; }
.sizingRoot .sz-card { padding: 20px 18px; }
.sizingRoot .sz-tabs { width: 100%; }
.sizingRoot .sz-tabs button { flex: 1; padding: 8px 8px; }
}