363 lines
6.4 KiB
CSS
363 lines
6.4 KiB
CSS
:root {
|
|
--bg: #f5f7fa;
|
|
--surface: #ffffff;
|
|
--surface-muted: #f8fafc;
|
|
--border: #dbe1ea;
|
|
--border-strong: #c5ced9;
|
|
--text: #111827;
|
|
--text-muted: #667085;
|
|
--primary: #111827;
|
|
--secondary: #4b5563;
|
|
--accent: #0f172a;
|
|
--success: #166534;
|
|
--warning: #9a6700;
|
|
--danger: #b42318;
|
|
--shadow-sm: 0 1px 2px rgba(16, 24, 40, 0.04);
|
|
--shadow-md: 0 12px 30px rgba(15, 23, 42, 0.06);
|
|
--radius-sm: 6px;
|
|
--radius-md: 10px;
|
|
--radius-lg: 14px;
|
|
--spacing: 1rem;
|
|
}
|
|
|
|
* {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
html {
|
|
scroll-behavior: smooth;
|
|
}
|
|
|
|
body {
|
|
margin: 0;
|
|
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
background: var(--bg);
|
|
color: var(--text);
|
|
line-height: 1.5;
|
|
}
|
|
|
|
body.app-shell {
|
|
background: linear-gradient(to bottom, #f8fafc 0, #f8fafc 220px, #f5f7fa 220px, #f5f7fa 100%);
|
|
}
|
|
|
|
a {
|
|
color: inherit;
|
|
}
|
|
|
|
.app-navbar {
|
|
background: rgba(255, 255, 255, 0.94);
|
|
backdrop-filter: blur(10px);
|
|
}
|
|
|
|
.navbar-brand {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 0.75rem;
|
|
color: var(--primary);
|
|
}
|
|
|
|
.brand-mark {
|
|
width: 2rem;
|
|
height: 2rem;
|
|
border-radius: var(--radius-sm);
|
|
background: var(--primary);
|
|
color: #fff;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 0.75rem;
|
|
letter-spacing: 0.12em;
|
|
}
|
|
|
|
.nav-link {
|
|
color: var(--secondary);
|
|
font-weight: 500;
|
|
}
|
|
|
|
.nav-link:hover,
|
|
.nav-link:focus,
|
|
.link-dark:hover,
|
|
.link-dark:focus {
|
|
color: #000 !important;
|
|
}
|
|
|
|
.hero-section {
|
|
background: transparent;
|
|
}
|
|
|
|
.eyebrow,
|
|
.section-kicker {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
color: var(--text-muted);
|
|
font-size: 0.78rem;
|
|
font-weight: 700;
|
|
letter-spacing: 0.08em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.display-title {
|
|
font-size: clamp(2.1rem, 4vw, 3.4rem);
|
|
line-height: 1.05;
|
|
letter-spacing: -0.03em;
|
|
max-width: 12ch;
|
|
}
|
|
|
|
.hero-copy {
|
|
max-width: 62ch;
|
|
color: var(--text-muted);
|
|
font-size: 1rem;
|
|
}
|
|
|
|
.panel-card,
|
|
.empty-card {
|
|
background: var(--surface);
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-lg);
|
|
box-shadow: var(--shadow-sm);
|
|
}
|
|
|
|
.panel-card {
|
|
box-shadow: var(--shadow-md);
|
|
}
|
|
|
|
.metric-card {
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-md);
|
|
padding: 1rem;
|
|
background: var(--surface-muted);
|
|
min-height: 100%;
|
|
}
|
|
|
|
.metric-card span {
|
|
display: block;
|
|
color: var(--text-muted);
|
|
font-size: 0.82rem;
|
|
margin-bottom: 0.35rem;
|
|
}
|
|
|
|
.metric-card strong {
|
|
font-size: 1.6rem;
|
|
line-height: 1;
|
|
letter-spacing: -0.03em;
|
|
}
|
|
|
|
.workflow-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 1rem;
|
|
margin-top: 1.5rem;
|
|
}
|
|
|
|
.workflow-grid article {
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-md);
|
|
padding: 1rem;
|
|
background: var(--surface-muted);
|
|
}
|
|
|
|
.workflow-grid span {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 2rem;
|
|
height: 2rem;
|
|
border-radius: 999px;
|
|
border: 1px solid var(--border-strong);
|
|
font-size: 0.82rem;
|
|
font-weight: 700;
|
|
margin-bottom: 0.75rem;
|
|
}
|
|
|
|
.workflow-grid h3 {
|
|
font-size: 1rem;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.workflow-grid p,
|
|
.empty-card p,
|
|
.quick-links .list-group-item,
|
|
.stack-item p,
|
|
.detail-note {
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.quick-links .list-group-item {
|
|
padding-inline: 0;
|
|
border-color: var(--border);
|
|
background: transparent;
|
|
}
|
|
|
|
.stack-list {
|
|
display: grid;
|
|
gap: 0.9rem;
|
|
}
|
|
|
|
.stack-item {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
gap: 1rem;
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-md);
|
|
padding: 0.95rem 1rem;
|
|
background: var(--surface-muted);
|
|
}
|
|
|
|
.app-table {
|
|
--bs-table-bg: transparent;
|
|
--bs-table-striped-bg: #f8fafc;
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.app-table thead th {
|
|
background: #f8fafc;
|
|
color: var(--text-muted);
|
|
font-size: 0.8rem;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.04em;
|
|
border-bottom-width: 1px;
|
|
}
|
|
|
|
.app-table td,
|
|
.app-table th {
|
|
padding: 1rem;
|
|
border-color: var(--border);
|
|
}
|
|
|
|
.auth-wrap {
|
|
min-height: calc(100vh - 180px);
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.form-control,
|
|
.form-select {
|
|
min-height: 44px;
|
|
border-color: var(--border-strong);
|
|
border-radius: var(--radius-sm);
|
|
padding-inline: 0.9rem;
|
|
background-color: #fff;
|
|
}
|
|
|
|
.form-control:focus,
|
|
.form-select:focus,
|
|
.btn:focus,
|
|
.nav-link:focus {
|
|
box-shadow: 0 0 0 0.2rem rgba(17, 24, 39, 0.12);
|
|
border-color: var(--primary);
|
|
}
|
|
|
|
.btn {
|
|
border-radius: var(--radius-sm);
|
|
padding: 0.7rem 1rem;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.btn-lg {
|
|
padding: 0.85rem 1.25rem;
|
|
}
|
|
|
|
.btn-dark {
|
|
background: var(--primary);
|
|
border-color: var(--primary);
|
|
}
|
|
|
|
.btn-outline-secondary {
|
|
color: var(--secondary);
|
|
border-color: var(--border-strong);
|
|
}
|
|
|
|
.detail-list {
|
|
display: grid;
|
|
gap: 1rem;
|
|
}
|
|
|
|
.detail-list div {
|
|
display: grid;
|
|
gap: 0.25rem;
|
|
padding-bottom: 0.9rem;
|
|
border-bottom: 1px solid var(--border);
|
|
}
|
|
|
|
.detail-list div:last-child {
|
|
border-bottom: 0;
|
|
padding-bottom: 0;
|
|
}
|
|
|
|
.detail-list dt {
|
|
font-size: 0.78rem;
|
|
font-weight: 700;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.06em;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.detail-list dd {
|
|
margin: 0;
|
|
font-size: 1rem;
|
|
}
|
|
|
|
.toast {
|
|
border-radius: var(--radius-sm);
|
|
box-shadow: var(--shadow-md);
|
|
}
|
|
|
|
.text-bg-success {
|
|
background-color: var(--success) !important;
|
|
}
|
|
|
|
.text-bg-warning {
|
|
background-color: var(--warning) !important;
|
|
color: #fff !important;
|
|
}
|
|
|
|
.text-bg-danger {
|
|
background-color: var(--danger) !important;
|
|
}
|
|
|
|
.text-bg-info {
|
|
background-color: #344054 !important;
|
|
}
|
|
|
|
.badge.text-bg-light {
|
|
background: #f8fafc !important;
|
|
color: var(--secondary) !important;
|
|
}
|
|
|
|
.sticky-form-card {
|
|
position: sticky;
|
|
top: 5.5rem;
|
|
}
|
|
|
|
.app-footer {
|
|
background: transparent;
|
|
}
|
|
|
|
@media (max-width: 991.98px) {
|
|
.workflow-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.sticky-form-card {
|
|
position: static;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 575.98px) {
|
|
.display-title {
|
|
max-width: none;
|
|
}
|
|
|
|
.panel-card,
|
|
.empty-card {
|
|
border-radius: var(--radius-md);
|
|
}
|
|
|
|
.app-table td,
|
|
.app-table th {
|
|
padding: 0.8rem;
|
|
}
|
|
}
|