224 lines
13 KiB
CSS
224 lines
13 KiB
CSS
/* VR-216: premium refinement layer — calm hierarchy over decorative chrome. */
|
|
:root {
|
|
--surface-raised: color-mix(in srgb, var(--surface-container) 96%, white);
|
|
--divider: color-mix(in srgb, var(--outline) 29%, transparent);
|
|
--divider-strong: color-mix(in srgb, var(--outline) 46%, transparent);
|
|
--shadow-card: 0 18px 48px rgba(0, 0, 0, .13);
|
|
--radius-sm: 7px;
|
|
--radius-md: 12px;
|
|
--radius-lg: 18px;
|
|
}
|
|
|
|
:root[data-theme="light"] {
|
|
--surface-lowest: #e9f0f1;
|
|
--surface: #f4f7f7;
|
|
--surface-low: #edf2f2;
|
|
--surface-container: #fbfdfd;
|
|
--surface-high: #e3ebeb;
|
|
--surface-highest: #d6e2e2;
|
|
--outline: #aebfc0;
|
|
--shadow-card: 0 18px 45px rgba(31, 54, 57, .08);
|
|
}
|
|
|
|
body::before {
|
|
background:
|
|
radial-gradient(circle at 82% -8%, color-mix(in srgb, var(--cyan) 7%, transparent), transparent 33rem),
|
|
radial-gradient(circle at 24% 108%, color-mix(in srgb, var(--indigo) 4%, transparent), transparent 38rem);
|
|
}
|
|
|
|
.cockpit-sidebar,
|
|
.cockpit-topbar,
|
|
.sidebar-heading,
|
|
.sidebar-account,
|
|
.mobile-tabbar { border-color: var(--divider); }
|
|
|
|
.cockpit-sidebar { background: color-mix(in srgb, var(--surface-lowest) 97%, black); }
|
|
.cockpit-main { padding-top: calc(var(--topbar-height) + 42px); }
|
|
.cockpit-main > * { max-width: 2800px; margin-right: auto; margin-left: 0; }
|
|
.brand-lockup { display: grid; min-width: 0; gap: 5px; }
|
|
.brand-wordmark { display: block; width: 174px; height: auto; padding: 5px 8px; border-radius: 7px; background: rgba(255, 255, 255, .94); }
|
|
.cockpit-brand small { margin: 0 2px; color: var(--text-faint); font-size: 8px; font-weight: 700; letter-spacing: .08em; }
|
|
.workspace-identity { display: grid; min-width: 176px; padding-right: 18px; border-right: 1px solid var(--divider); line-height: 1.1; }
|
|
.workspace-identity span { color: var(--text-strong); font-size: 14px; font-weight: 740; letter-spacing: -.015em; }
|
|
.workspace-identity small { margin-top: 5px; color: var(--text-faint); font: 650 9px var(--font-body); letter-spacing: .075em; text-transform: uppercase; }
|
|
|
|
.nav-caption,
|
|
.nav-item,
|
|
.mobile-tabbar a,
|
|
.sidebar-account small { font-family: var(--font-body); }
|
|
.nav-caption { font-weight: 700; letter-spacing: .11em; }
|
|
.nav-item { min-height: 46px; border-radius: 9px; font-size: 14px; font-weight: 560; letter-spacing: -.005em; }
|
|
.nav-item:hover { transform: none; background: color-mix(in srgb, var(--surface-high) 70%, transparent); }
|
|
.nav-item.is-active { background: var(--surface-high); box-shadow: inset 0 0 0 1px var(--divider); }
|
|
.nav-item.is-active::after { inset: 9px auto 9px 0; width: 3px; border-radius: 0 3px 3px 0; box-shadow: none; }
|
|
.nav-item .icon { transition: color .16s ease, transform .16s ease; }
|
|
.nav-item:hover .icon { transform: scale(1.06); color: var(--text-strong); }
|
|
.nav-item.is-active span { font-weight: 680; }
|
|
|
|
.cockpit-heading { margin-bottom: 30px; }
|
|
.cockpit-heading h1 { max-width: 900px; }
|
|
.cockpit-heading > div:first-child > p:last-child { font-size: 15px; line-height: 1.65; }
|
|
.eyebrow,
|
|
.section-kicker,
|
|
.kpi-label { color: var(--text-faint); font-family: var(--font-body); font-weight: 700; letter-spacing: .105em; }
|
|
.section-kicker { margin-bottom: 7px; }
|
|
|
|
.button { min-height: 44px; border-radius: 9px; }
|
|
.button-primary { box-shadow: 0 8px 24px color-mix(in srgb, var(--cyan) 13%, transparent); }
|
|
.button-secondary,
|
|
.button-ghost { border-color: var(--divider-strong); }
|
|
.button-ghost { background: color-mix(in srgb, var(--surface-high) 78%, transparent); }
|
|
.icon-button { border-radius: 9px; }
|
|
|
|
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
|
|
select,
|
|
textarea,
|
|
.command-search { border-color: var(--divider-strong); border-radius: 9px; background: color-mix(in srgb, var(--surface-low) 90%, transparent); }
|
|
.command-search { transition: width .2s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease; }
|
|
.command-search:focus-within { width: min(620px, 65vw); border-color: color-mix(in srgb, var(--cyan) 58%, var(--outline)); background: var(--surface-container); box-shadow: 0 0 0 3px color-mix(in srgb, var(--cyan) 8%, transparent); }
|
|
.field-label,
|
|
label > span:first-child { font-family: var(--font-body); font-weight: 700; letter-spacing: .065em; }
|
|
|
|
.panel,
|
|
.tonal-panel,
|
|
.job-card,
|
|
.result-card,
|
|
.source-card,
|
|
.health-card,
|
|
.profile-card,
|
|
.form-panel {
|
|
border-color: var(--divider);
|
|
background: var(--surface-raised);
|
|
box-shadow: 0 1px 0 color-mix(in srgb, white 2%, transparent);
|
|
}
|
|
.strong-match { border-color: var(--divider); box-shadow: inset 3px 0 var(--cyan-dim), var(--shadow-card); }
|
|
.panel-subtle { background: var(--surface-low); box-shadow: none; }
|
|
|
|
.stats-grid { gap: 14px; margin-bottom: 32px; }
|
|
.stat-card {
|
|
min-height: 122px;
|
|
padding: 19px 20px;
|
|
border: 0;
|
|
border-radius: var(--radius-md);
|
|
background: var(--surface-raised);
|
|
box-shadow: var(--shadow-card);
|
|
}
|
|
.stat-card::after { display: none; }
|
|
.stat-card.signal { background: linear-gradient(135deg, color-mix(in srgb, var(--cyan) 10%, var(--surface-raised)), var(--surface-raised) 72%); box-shadow: inset 3px 0 var(--cyan), var(--shadow-card); }
|
|
.stat-card strong { margin-top: 15px; font-size: 36px; }
|
|
.stat-card small { font-family: var(--font-body); font-size: 12px; }
|
|
|
|
.dashboard-grid { gap: 28px; }
|
|
.dashboard-rail { gap: 18px; }
|
|
.rail-panel { border: 0; box-shadow: var(--shadow-card); }
|
|
.rail-panel:not(.radar-summary) { background: color-mix(in srgb, var(--surface-raised) 76%, var(--surface-low)); box-shadow: none; }
|
|
.job-card { transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
|
|
.job-card:hover { transform: translateY(-2px); border-color: var(--divider-strong); box-shadow: var(--shadow-card); }
|
|
|
|
.filter-console {
|
|
grid-template-columns: minmax(280px, 1.8fr) repeat(5, minmax(126px, .72fr)) auto;
|
|
gap: 12px;
|
|
padding: 16px;
|
|
border: 0;
|
|
border-radius: var(--radius-md);
|
|
background: var(--surface-raised);
|
|
box-shadow: var(--shadow-card);
|
|
}
|
|
.active-filters { margin-bottom: 18px; }
|
|
.explorer-shell { gap: 18px; }
|
|
.explorer-card { border-color: var(--divider); border-radius: var(--radius-md); background: var(--surface-raised); }
|
|
.explorer-card:hover { border-color: var(--divider-strong); background: color-mix(in srgb, var(--surface-raised) 96%, var(--cyan)); }
|
|
.explorer-card.is-selected { border-color: var(--divider-strong); box-shadow: inset 3px 0 var(--cyan); }
|
|
.explorer-intelligence { border-radius: var(--radius-md); box-shadow: var(--shadow-card); }
|
|
.intelligence-panel { border-color: var(--divider); }
|
|
|
|
.pipeline-summary { gap: 12px; }
|
|
.pipeline-summary article { border: 0; border-radius: var(--radius-md); background: var(--surface-raised); box-shadow: var(--shadow-card); }
|
|
.pipeline-board { grid-auto-columns: minmax(300px, 1fr); gap: 16px; scroll-snap-type: x proximity; scrollbar-gutter: stable; }
|
|
.pipeline-column { min-height: 420px; padding: 14px; border: 0; border-radius: var(--radius-md); background: color-mix(in srgb, var(--surface-low) 83%, transparent); scroll-snap-align: start; }
|
|
.pipeline-column-header { position: sticky; top: 0; z-index: 1; padding: 4px 2px 12px; background: inherit; font-family: var(--font-body); }
|
|
.application-card { border-color: var(--divider); border-radius: 10px; background: var(--surface-raised); box-shadow: 0 10px 28px rgba(0, 0, 0, .08); }
|
|
.pipeline-empty { border-color: var(--divider); border-radius: 9px; }
|
|
|
|
.profile-index-grid { grid-template-columns: minmax(0, 1040px); }
|
|
.profile-index-card { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(250px, .5fr); padding: 0; border: 0; border-radius: var(--radius-lg); background: var(--surface-raised); box-shadow: var(--shadow-card); }
|
|
.profile-index-card.strong-match { box-shadow: inset 3px 0 var(--emerald), var(--shadow-card); }
|
|
.profile-index-content { min-width: 0; padding: 24px; }
|
|
.profile-index-card .intel-facts { margin: 22px -24px; grid-template-columns: repeat(4, minmax(0, 1fr)); border-color: var(--divider); }
|
|
.profile-index-card .page-actions { margin-top: 22px; }
|
|
.profile-index-art { position: relative; display: grid; min-height: 320px; overflow: hidden; place-items: center; border-left: 1px solid var(--divider); background: linear-gradient(145deg, color-mix(in srgb, var(--cyan) 4%, var(--surface-low)), var(--surface-low)); }
|
|
|
|
.radar-illustration { --radar-x: 0px; --radar-y: 0px; position: relative; width: min(290px, 92%); aspect-ratio: 1; color: var(--cyan-dim); transform: translate(var(--radar-x), var(--radar-y)); transition: transform .32s cubic-bezier(.2,.8,.2,1); }
|
|
.radar-illustration svg { position: relative; z-index: 1; overflow: visible; filter: drop-shadow(0 18px 36px color-mix(in srgb, var(--cyan) 8%, transparent)); }
|
|
.radar-illustration-grid { stroke: color-mix(in srgb, var(--outline) 52%, transparent); stroke-width: 1; }
|
|
.radar-illustration-sweep { transform-origin: 160px 160px; }
|
|
.radar-illustration-signals circle { fill: var(--emerald); filter: drop-shadow(0 0 7px var(--emerald)); }
|
|
.radar-illustration-core { fill: var(--cyan); filter: drop-shadow(0 0 10px var(--cyan)); }
|
|
.radar-illustration-orbit { position: absolute; z-index: 0; inset: 13%; border: 1px solid color-mix(in srgb, var(--cyan) 15%, transparent); border-radius: 50%; }
|
|
.radar-illustration-orbit::after { position: absolute; top: 12%; left: 12%; width: 7px; height: 7px; content: ""; border-radius: 50%; background: var(--cyan); box-shadow: 0 0 14px var(--cyan); }
|
|
.radar-illustration .orbit-two { inset: 24%; transform: rotate(132deg); border-color: color-mix(in srgb, var(--emerald) 13%, transparent); }
|
|
.illustrated-empty .radar-illustration { width: 180px; margin-bottom: 8px; }
|
|
|
|
.pill { border-color: transparent; border-radius: 999px; }
|
|
.empty-state { border-color: var(--divider-strong); border-radius: var(--radius-md); }
|
|
|
|
@media (min-width: 1800px) {
|
|
.explorer-shell { grid-template-columns: minmax(650px, 880px) minmax(760px, 1fr); }
|
|
.automation-layout { grid-template-columns: minmax(0, 1fr) minmax(340px, 430px); }
|
|
}
|
|
|
|
@media (max-width: 1450px) {
|
|
.filter-console { grid-template-columns: minmax(250px, 1.5fr) repeat(3, minmax(135px, 1fr)); }
|
|
.filter-console > :nth-last-child(-n+3) { grid-row: 2; }
|
|
}
|
|
|
|
@media (max-width: 1180px) {
|
|
.filter-console { grid-template-columns: repeat(3, minmax(0, 1fr)); }
|
|
.filter-console > * { grid-row: auto !important; }
|
|
}
|
|
|
|
@media (max-width: 820px) {
|
|
.cockpit-main { padding-top: calc(var(--topbar-height) + 30px); }
|
|
.mobile-tabbar a { font-family: var(--font-body); font-weight: 650; }
|
|
.filter-console { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 13px; }
|
|
.filter-console .grow { grid-column: span 2; }
|
|
.pipeline-board { width: calc(100vw - (2 * var(--content-gutter))); grid-auto-columns: minmax(280px, 84vw); }
|
|
.profile-index-card .intel-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
|
.profile-index-card { grid-template-columns: 1fr; }
|
|
.profile-index-art { min-height: 230px; border-top: 1px solid var(--divider); border-left: 0; }
|
|
.profile-index-art .radar-illustration { width: 220px; }
|
|
.command-search:focus-within { width: min(100%, 510px); }
|
|
}
|
|
|
|
@media (max-width: 560px) {
|
|
.cockpit-heading { margin-bottom: 22px; }
|
|
.stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-bottom: 24px; }
|
|
.stat-card { min-height: 92px; padding: 13px; }
|
|
.stat-card strong { margin: 9px 0 2px; font-size: 28px; }
|
|
.stat-card small { overflow: hidden; font-size: 10px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
|
|
.kpi-label { min-height: 22px; margin-bottom: 0; font-size: 9px; line-height: 1.2; }
|
|
.filter-console { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
|
.filter-console .grow { grid-column: 1 / -1; }
|
|
.filter-console .button { grid-column: 1 / -1; }
|
|
.profile-index-card { padding: 18px; }
|
|
.profile-index-card .intel-facts { margin: 18px -18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
|
}
|
|
|
|
@media (prefers-reduced-motion: no-preference) {
|
|
@keyframes premium-enter { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
|
|
.stats-grid > *, .dashboard-grid, .explorer-shell, .pipeline-board, .profile-index-grid { animation: premium-enter .34s ease-out both; }
|
|
.radar-illustration-sweep { animation: radar-scan 7s linear infinite; }
|
|
.radar-illustration-signals circle { animation: radar-signal 2.8s ease-in-out infinite alternate; }
|
|
.radar-illustration-signals circle:nth-child(2) { animation-delay: -.9s; }
|
|
.radar-illustration-signals circle:nth-child(3) { animation-delay: -1.7s; }
|
|
.radar-illustration .orbit-one { animation: radar-orbit 12s linear infinite; }
|
|
.radar-illustration .orbit-two { animation: radar-orbit 17s linear infinite reverse; }
|
|
@keyframes radar-scan { to { transform: rotate(360deg); } }
|
|
@keyframes radar-signal { to { opacity: .38; transform: scale(.72); transform-origin: center; } }
|
|
@keyframes radar-orbit { to { transform: rotate(360deg); } }
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.radar-illustration { transform: none !important; transition: none; }
|
|
}
|