文件
hyb-oa/client/src/index.css
T

198 行
5.0 KiB
CSS

/*
Design tokens source:
- aligned to R29 semantic workbench system
*/
@import "@material-symbols/font-400/outlined.css";
@import "./styles/mobile-touch.css";
@import "./design/theme.css";
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
html {
color-scheme: light;
}
body {
background: var(--color-bg-canvas);
color: var(--color-text-primary);
@apply font-sans antialiased selection:bg-zinc-900 selection:text-white;
}
#root {
@apply min-h-screen flex flex-col;
}
summary::-webkit-details-marker {
display: none;
}
}
@layer components {
.layout-container {
@apply mx-auto w-full px-4 sm:px-6 lg:px-8;
}
.page-scaffold {
@apply space-y-6;
}
.workbench-hero {
background: linear-gradient(135deg, rgba(17, 24, 39, 0.03), rgba(255, 255, 255, 0.96));
border: 1px solid var(--color-border-default);
border-radius: var(--radius-xl);
box-shadow: var(--shadow-xs);
@apply flex flex-col gap-4 px-6 py-6 md:flex-row md:items-end md:justify-between;
}
.workbench-hero__eyebrow {
@apply text-xs font-semibold uppercase tracking-[0.18em] text-zinc-500;
}
.workbench-hero__title {
@apply mt-2 text-3xl font-semibold tracking-tight text-zinc-900;
}
.workbench-hero__subtitle {
@apply mt-2 max-w-3xl text-sm leading-6 text-zinc-600;
}
.card-std {
background: var(--color-bg-surface);
border: 1px solid var(--color-border-default);
border-radius: var(--radius-panel);
box-shadow: var(--shadow-sm);
}
.card-title {
@apply text-xs font-semibold uppercase tracking-[0.18em] text-zinc-500;
}
.card-desc {
@apply mt-2 text-sm leading-6 text-zinc-600;
}
.card-value {
@apply text-3xl font-semibold tracking-tight text-zinc-900;
}
.section-panel {
@apply p-6;
}
.section-panel__header {
@apply flex flex-wrap items-start justify-between gap-3;
}
.section-panel__title {
@apply text-base font-semibold text-zinc-900;
}
.section-panel__desc {
@apply mt-1 text-sm text-zinc-500;
}
.section-panel__body {
@apply mt-5;
}
.metric-card {
background: var(--color-bg-surface);
border: 1px solid var(--color-border-default);
border-radius: var(--radius-lg);
box-shadow: var(--shadow-xs);
@apply block px-5 py-5 transition-colors hover:bg-zinc-50;
}
.metric-card--warning {
@apply border-amber-200 bg-amber-50 hover:bg-amber-100;
}
.metric-card--danger {
@apply border-red-200 bg-red-50 hover:bg-red-100;
}
.metric-card__title {
@apply text-sm font-medium text-zinc-500;
}
.metric-card__value {
@apply mt-2 text-2xl font-semibold tracking-tight text-zinc-900;
}
.metric-card__note {
@apply mt-2 text-sm text-zinc-500;
}
.info-chip {
@apply inline-flex items-center rounded-full border border-zinc-200 bg-white px-3 py-1 text-xs font-medium text-zinc-600;
}
.surface-muted {
@apply rounded-2xl border border-zinc-200 bg-zinc-50;
}
.input-std {
@apply h-11 w-full rounded-xl border border-zinc-200 bg-white px-3 py-2 text-sm text-zinc-900 shadow-sm outline-none transition-colors placeholder:text-zinc-400 focus:border-zinc-400 focus:ring-2 focus:ring-zinc-200;
}
.select-std {
@apply h-11 w-full rounded-xl border border-zinc-200 bg-white px-3 py-2 text-sm text-zinc-700 shadow-sm outline-none transition-colors focus:border-zinc-400 focus:ring-2 focus:ring-zinc-200;
}
.select-sm {
@apply h-8 rounded-lg border border-zinc-200 bg-white px-2 py-1 text-xs font-medium text-zinc-600 shadow-sm outline-none transition-colors focus:border-zinc-400 focus:ring-2 focus:ring-zinc-200;
}
.table-container {
@apply overflow-hidden rounded-2xl border border-zinc-200 bg-white shadow-sm;
}
.table-header {
@apply border-b border-zinc-100 bg-zinc-50/70;
}
.table-th {
@apply px-6 py-4 text-left text-xs font-semibold uppercase tracking-wide text-zinc-500;
}
.table-row {
@apply transition-colors hover:bg-zinc-50/80;
}
.table-td {
@apply px-6 py-4 text-sm text-zinc-600;
}
.table-td-strong {
@apply px-6 py-4 text-sm font-semibold text-zinc-900;
}
.page-shell-grid {
@apply grid gap-6 xl:grid-cols-[minmax(0,1fr),360px];
}
.detail-shell-grid {
@apply grid gap-6 xl:grid-cols-[minmax(0,1.4fr),minmax(320px,0.8fr)];
}
.badge-success {
@apply inline-flex items-center rounded-full bg-emerald-50 px-2.5 py-0.5 text-xs font-semibold text-emerald-700 ring-1 ring-inset ring-emerald-600/10;
}
.badge-warning {
@apply inline-flex items-center rounded-full bg-amber-50 px-2.5 py-0.5 text-xs font-semibold text-amber-700 ring-1 ring-inset ring-amber-600/10;
}
.badge-error {
@apply inline-flex items-center rounded-full bg-red-50 px-2.5 py-0.5 text-xs font-semibold text-red-700 ring-1 ring-inset ring-red-600/10;
}
.badge-neutral {
@apply inline-flex items-center rounded-full bg-zinc-100 px-2.5 py-0.5 text-xs font-semibold text-zinc-700 ring-1 ring-inset ring-zinc-600/10;
}
}