433 lines
14 KiB
CSS
433 lines
14 KiB
CSS
@import "tailwindcss";
|
|
|
|
@import "tw-animate-css";
|
|
|
|
@source '../../vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php';
|
|
@source '../../storage/framework/views/*.php';
|
|
|
|
@custom-variant dark (&:is(.dark *));
|
|
|
|
@theme inline {
|
|
--font-sans:
|
|
Inter, Instrument Sans, ui-sans-serif, system-ui, sans-serif,
|
|
"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
|
|
"Noto Color Emoji";
|
|
--font-headline-lg:
|
|
Inter, Instrument Sans, ui-sans-serif, system-ui, sans-serif,
|
|
"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
|
|
"Noto Color Emoji";
|
|
--font-headline-lg-mobile:
|
|
Inter, Instrument Sans, ui-sans-serif, system-ui, sans-serif,
|
|
"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
|
|
"Noto Color Emoji";
|
|
--font-headline-md:
|
|
Inter, Instrument Sans, ui-sans-serif, system-ui, sans-serif,
|
|
"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
|
|
"Noto Color Emoji";
|
|
--font-body-md:
|
|
Inter, Instrument Sans, ui-sans-serif, system-ui, sans-serif,
|
|
"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
|
|
"Noto Color Emoji";
|
|
--font-body-sm:
|
|
Inter, Instrument Sans, ui-sans-serif, system-ui, sans-serif,
|
|
"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
|
|
"Noto Color Emoji";
|
|
--font-label-uppercase:
|
|
Inter, Instrument Sans, ui-sans-serif, system-ui, sans-serif,
|
|
"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
|
|
"Noto Color Emoji";
|
|
|
|
--radius-sm: 0.25rem;
|
|
--radius-md: 0.25rem;
|
|
--radius-lg: 0.5rem;
|
|
--radius-xl: 0.75rem;
|
|
|
|
--spacing-container-margin: 1.5rem;
|
|
--spacing-column-gap: 1rem;
|
|
--spacing-card-padding: 0.75rem;
|
|
--spacing-stack-gap-sm: 0.5rem;
|
|
--spacing-stack-gap-md: 0.75rem;
|
|
|
|
--text-headline-lg: 1.5rem;
|
|
--text-headline-lg--line-height: 2rem;
|
|
--text-headline-lg--font-weight: 600;
|
|
--text-headline-lg--letter-spacing: -0.025em;
|
|
--text-headline-md: 1.125rem;
|
|
--text-headline-md--line-height: 1.5rem;
|
|
--text-headline-md--font-weight: 600;
|
|
--text-headline-md--letter-spacing: -0.015em;
|
|
--text-headline-lg-mobile: 1.25rem;
|
|
--text-headline-lg-mobile--line-height: 1.75rem;
|
|
--text-headline-lg-mobile--font-weight: 600;
|
|
--text-body-md: 0.875rem;
|
|
--text-body-md--line-height: 1.25rem;
|
|
--text-body-md--font-weight: 400;
|
|
--text-body-sm: 0.8125rem;
|
|
--text-body-sm--line-height: 1.125rem;
|
|
--text-body-sm--font-weight: 400;
|
|
--text-label-uppercase: 0.6875rem;
|
|
--text-label-uppercase--line-height: 1rem;
|
|
--text-label-uppercase--font-weight: 700;
|
|
--text-label-uppercase--letter-spacing: 0.05em;
|
|
|
|
--shadow-kanban-card: 0 4px 12px rgb(0 0 0 / 0.08);
|
|
--shadow-kanban-nav: 0 12px 30px rgb(15 23 42 / 0.06);
|
|
|
|
--color-background: var(--background);
|
|
--color-foreground: var(--foreground);
|
|
|
|
--color-card: var(--card);
|
|
--color-card-foreground: var(--card-foreground);
|
|
|
|
--color-popover: var(--popover);
|
|
--color-popover-foreground: var(--popover-foreground);
|
|
|
|
--color-primary: var(--primary);
|
|
--color-primary-foreground: var(--primary-foreground);
|
|
|
|
--color-secondary: var(--secondary);
|
|
--color-secondary-foreground: var(--secondary-foreground);
|
|
|
|
--color-muted: var(--muted);
|
|
--color-muted-foreground: var(--muted-foreground);
|
|
|
|
--color-accent: var(--accent);
|
|
--color-accent-foreground: var(--accent-foreground);
|
|
|
|
--color-destructive: var(--destructive);
|
|
--color-destructive-foreground: var(--destructive-foreground);
|
|
|
|
--color-border: var(--border);
|
|
--color-input: var(--input);
|
|
--color-ring: var(--ring);
|
|
|
|
--color-chart-1: var(--chart-1);
|
|
--color-chart-2: var(--chart-2);
|
|
--color-chart-3: var(--chart-3);
|
|
--color-chart-4: var(--chart-4);
|
|
--color-chart-5: var(--chart-5);
|
|
|
|
--color-sidebar: var(--sidebar-background);
|
|
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
--color-sidebar-primary: var(--sidebar-primary);
|
|
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
--color-sidebar-accent: var(--sidebar-accent);
|
|
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
--color-sidebar-border: var(--sidebar-border);
|
|
--color-sidebar-ring: var(--sidebar-ring);
|
|
|
|
--color-surface: var(--surface);
|
|
--color-surface-dim: var(--surface-dim);
|
|
--color-surface-bright: var(--surface-bright);
|
|
--color-surface-container-lowest: var(--surface-container-lowest);
|
|
--color-surface-container-low: var(--surface-container-low);
|
|
--color-surface-container: var(--surface-container);
|
|
--color-surface-container-high: var(--surface-container-high);
|
|
--color-surface-container-highest: var(--surface-container-highest);
|
|
--color-surface-variant: var(--surface-variant);
|
|
--color-surface-tint: var(--surface-tint);
|
|
--color-on-surface: var(--on-surface);
|
|
--color-on-surface-variant: var(--on-surface-variant);
|
|
--color-on-background: var(--on-background);
|
|
--color-outline: var(--outline);
|
|
--color-outline-variant: var(--outline-variant);
|
|
--color-primary-container: var(--primary-container);
|
|
--color-on-primary: var(--on-primary);
|
|
--color-on-primary-container: var(--on-primary-container);
|
|
--color-primary-fixed: var(--primary-fixed);
|
|
--color-primary-fixed-dim: var(--primary-fixed-dim);
|
|
--color-on-primary-fixed: var(--on-primary-fixed);
|
|
--color-on-primary-fixed-variant: var(--on-primary-fixed-variant);
|
|
--color-secondary-container: var(--secondary-container);
|
|
--color-on-secondary: var(--on-secondary);
|
|
--color-on-secondary-container: var(--on-secondary-container);
|
|
--color-secondary-fixed: var(--secondary-fixed);
|
|
--color-secondary-fixed-dim: var(--secondary-fixed-dim);
|
|
--color-on-secondary-fixed: var(--on-secondary-fixed);
|
|
--color-on-secondary-fixed-variant: var(--on-secondary-fixed-variant);
|
|
--color-tertiary: var(--tertiary);
|
|
--color-tertiary-container: var(--tertiary-container);
|
|
--color-on-tertiary: var(--on-tertiary);
|
|
--color-on-tertiary-container: var(--on-tertiary-container);
|
|
--color-tertiary-fixed: var(--tertiary-fixed);
|
|
--color-tertiary-fixed-dim: var(--tertiary-fixed-dim);
|
|
--color-on-tertiary-fixed: var(--on-tertiary-fixed);
|
|
--color-on-tertiary-fixed-variant: var(--on-tertiary-fixed-variant);
|
|
--color-error: var(--error);
|
|
--color-error-container: var(--error-container);
|
|
--color-on-error: var(--on-error);
|
|
--color-on-error-container: var(--on-error-container);
|
|
--color-inverse-surface: var(--inverse-surface);
|
|
--color-inverse-on-surface: var(--inverse-on-surface);
|
|
--color-inverse-primary: var(--inverse-primary);
|
|
--color-priority-high: #ef4444;
|
|
--color-priority-medium: #f59e0b;
|
|
--color-priority-low: #3b82f6;
|
|
}
|
|
|
|
/*
|
|
The default border color has changed to `currentColor` in Tailwind CSS v4,
|
|
so we've added these compatibility styles to make sure everything still
|
|
looks the same as it did with Tailwind CSS v3.
|
|
|
|
If we ever want to remove these styles, we need to add an explicit border
|
|
color utility to any element that depends on these defaults.
|
|
*/
|
|
@layer base {
|
|
*,
|
|
::after,
|
|
::before,
|
|
::backdrop,
|
|
::file-selector-button {
|
|
border-color: var(--color-gray-200, currentColor);
|
|
}
|
|
}
|
|
|
|
@layer utilities {
|
|
body,
|
|
html {
|
|
--font-sans:
|
|
Inter, "Instrument Sans", ui-sans-serif, system-ui, sans-serif,
|
|
"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
|
|
"Noto Color Emoji";
|
|
}
|
|
}
|
|
|
|
:root {
|
|
--background: #f7f9fb;
|
|
--foreground: #191c1e;
|
|
--card: #ffffff;
|
|
--card-foreground: #191c1e;
|
|
--popover: #ffffff;
|
|
--popover-foreground: #191c1e;
|
|
--primary: #006e2f;
|
|
--primary-foreground: #ffffff;
|
|
--secondary: #d0e1fb;
|
|
--secondary-foreground: #0b1c30;
|
|
--muted: #f2f4f6;
|
|
--muted-foreground: #3d4a3d;
|
|
--accent: #e6e8ea;
|
|
--accent-foreground: #191c1e;
|
|
--destructive: #ba1a1a;
|
|
--destructive-foreground: #ffffff;
|
|
--border: #bccbb9;
|
|
--input: #bccbb9;
|
|
--ring: #006e2f;
|
|
--chart-1: #22c55e;
|
|
--chart-2: #3b82f6;
|
|
--chart-3: #f59e0b;
|
|
--chart-4: #ef4444;
|
|
--chart-5: #505f76;
|
|
--radius: 0.25rem;
|
|
--surface: #f7f9fb;
|
|
--surface-dim: #d8dadc;
|
|
--surface-bright: #f7f9fb;
|
|
--surface-container-lowest: #ffffff;
|
|
--surface-container-low: #f2f4f6;
|
|
--surface-container: #eceef0;
|
|
--surface-container-high: #e6e8ea;
|
|
--surface-container-highest: #e0e3e5;
|
|
--surface-variant: #e0e3e5;
|
|
--surface-tint: #006e2f;
|
|
--on-surface: #191c1e;
|
|
--on-surface-variant: #3d4a3d;
|
|
--on-background: #191c1e;
|
|
--outline: #6d7b6c;
|
|
--outline-variant: #bccbb9;
|
|
--primary-container: #22c55e;
|
|
--on-primary: #ffffff;
|
|
--on-primary-container: #004b1e;
|
|
--primary-fixed: #6bff8f;
|
|
--primary-fixed-dim: #4ae176;
|
|
--on-primary-fixed: #002109;
|
|
--on-primary-fixed-variant: #005321;
|
|
--secondary-container: #d0e1fb;
|
|
--on-secondary: #ffffff;
|
|
--on-secondary-container: #54647a;
|
|
--secondary-fixed: #d3e4fe;
|
|
--secondary-fixed-dim: #b7c8e1;
|
|
--on-secondary-fixed: #0b1c30;
|
|
--on-secondary-fixed-variant: #38485d;
|
|
--tertiary: #9e4036;
|
|
--tertiary-container: #ff8b7c;
|
|
--on-tertiary: #ffffff;
|
|
--on-tertiary-container: #76231b;
|
|
--tertiary-fixed: #ffdad5;
|
|
--tertiary-fixed-dim: #ffb4a9;
|
|
--on-tertiary-fixed: #410001;
|
|
--on-tertiary-fixed-variant: #7f2a21;
|
|
--error: #ba1a1a;
|
|
--error-container: #ffdad6;
|
|
--on-error: #ffffff;
|
|
--on-error-container: #93000a;
|
|
--inverse-surface: #2d3133;
|
|
--inverse-on-surface: #eff1f3;
|
|
--inverse-primary: #4ae176;
|
|
--sidebar-background: #f2f4f6;
|
|
--sidebar-foreground: #191c1e;
|
|
--sidebar-primary: #006e2f;
|
|
--sidebar-primary-foreground: #ffffff;
|
|
--sidebar-accent: #e6e8ea;
|
|
--sidebar-accent-foreground: #191c1e;
|
|
--sidebar-border: #bccbb9;
|
|
--sidebar-ring: #006e2f;
|
|
--sidebar: #f2f4f6;
|
|
}
|
|
|
|
.dark {
|
|
--background: #0b1326;
|
|
--foreground: #e5eaf5;
|
|
--card: #131b2e;
|
|
--card-foreground: #e5eaf5;
|
|
--popover: #171f33;
|
|
--popover-foreground: #e5eaf5;
|
|
--primary: #4be277;
|
|
--primary-foreground: #002109;
|
|
--secondary: #222a3d;
|
|
--secondary-foreground: #e5eaf5;
|
|
--muted: #171f33;
|
|
--muted-foreground: #aeb8cd;
|
|
--accent: #222a3d;
|
|
--accent-foreground: #f3f6fc;
|
|
--destructive: #ffb4ab;
|
|
--destructive-foreground: #690005;
|
|
--border: #3b4358;
|
|
--input: #4a5268;
|
|
--ring: #4be277;
|
|
--chart-1: #4be277;
|
|
--chart-2: #60a5fa;
|
|
--chart-3: #fbbf24;
|
|
--chart-4: #f87171;
|
|
--chart-5: #b7c8e1;
|
|
--surface: #0b1326;
|
|
--surface-dim: #060e20;
|
|
--surface-bright: #2d3449;
|
|
--surface-container-lowest: #060e20;
|
|
--surface-container-low: #131b2e;
|
|
--surface-container: #171f33;
|
|
--surface-container-high: #222a3d;
|
|
--surface-container-highest: #2d3449;
|
|
--surface-variant: #2d3449;
|
|
--surface-tint: #4be277;
|
|
--on-surface: #e5eaf5;
|
|
--on-surface-variant: #aeb8cd;
|
|
--on-background: #e5eaf5;
|
|
--outline: #8993aa;
|
|
--outline-variant: #3b4358;
|
|
--primary-container: #136c35;
|
|
--on-primary: #002109;
|
|
--on-primary-container: #bbf7d0;
|
|
--primary-fixed: #6bff8f;
|
|
--primary-fixed-dim: #4be277;
|
|
--on-primary-fixed: #002109;
|
|
--on-primary-fixed-variant: #005321;
|
|
--secondary-container: #1e3a5f;
|
|
--on-secondary: #ffffff;
|
|
--on-secondary-container: #d0e1fb;
|
|
--secondary-fixed: #d3e4fe;
|
|
--secondary-fixed-dim: #b7c8e1;
|
|
--on-secondary-fixed: #0b1c30;
|
|
--on-secondary-fixed-variant: #38485d;
|
|
--tertiary: #ffb4a9;
|
|
--tertiary-container: #7f2a21;
|
|
--on-tertiary: #410001;
|
|
--on-tertiary-container: #ffdad5;
|
|
--tertiary-fixed: #ffdad5;
|
|
--tertiary-fixed-dim: #ffb4a9;
|
|
--on-tertiary-fixed: #410001;
|
|
--on-tertiary-fixed-variant: #ffb4a9;
|
|
--error: #f87171;
|
|
--error-container: #7f1d1d;
|
|
--on-error: #ffffff;
|
|
--on-error-container: #fee2e2;
|
|
--inverse-surface: #eff1f3;
|
|
--inverse-on-surface: #191c1e;
|
|
--inverse-primary: #006e2f;
|
|
--sidebar-background: #060e20;
|
|
--sidebar-foreground: #e5eaf5;
|
|
--sidebar-primary: #4be277;
|
|
--sidebar-primary-foreground: #002109;
|
|
--sidebar-accent: #171f33;
|
|
--sidebar-accent-foreground: #f3f6fc;
|
|
--sidebar-border: #2d3449;
|
|
--sidebar-ring: #4be277;
|
|
--sidebar: #060e20;
|
|
}
|
|
|
|
@layer base {
|
|
* {
|
|
@apply border-border outline-ring/50;
|
|
}
|
|
body {
|
|
@apply min-h-screen bg-background text-foreground antialiased;
|
|
letter-spacing: -0.006em;
|
|
}
|
|
|
|
::selection {
|
|
background: color-mix(in srgb, var(--primary) 24%, transparent);
|
|
color: var(--foreground);
|
|
}
|
|
|
|
textarea,
|
|
select {
|
|
@apply border-input bg-surface-container-lowest text-foreground rounded-md border px-3 py-2 text-sm shadow-xs outline-none transition-[border-color,box-shadow,background-color];
|
|
background-color: var(--surface-container-lowest) !important;
|
|
}
|
|
|
|
textarea:focus-visible,
|
|
select:focus-visible {
|
|
@apply border-ring ring-ring/25 ring-3;
|
|
}
|
|
|
|
textarea:disabled,
|
|
select:disabled {
|
|
@apply cursor-not-allowed opacity-55;
|
|
}
|
|
|
|
table {
|
|
@apply w-full border-separate border-spacing-0;
|
|
}
|
|
|
|
thead {
|
|
@apply bg-surface-container-low text-on-surface-variant;
|
|
}
|
|
|
|
tbody tr {
|
|
@apply transition-colors hover:bg-primary/3;
|
|
}
|
|
|
|
th {
|
|
@apply text-label-uppercase font-bold tracking-[0.08em];
|
|
}
|
|
}
|
|
|
|
@layer components {
|
|
.app-page {
|
|
@apply mx-auto flex w-full max-w-[96rem] flex-1 flex-col gap-6 px-4 py-5 sm:px-6 sm:py-7 lg:px-8;
|
|
}
|
|
|
|
.app-page-narrow {
|
|
@apply mx-auto flex w-full max-w-5xl flex-1 flex-col gap-6 px-4 py-5 sm:px-6 sm:py-7 lg:px-8;
|
|
}
|
|
|
|
.page-actions {
|
|
@apply flex flex-wrap items-center gap-2;
|
|
}
|
|
|
|
.status-success {
|
|
@apply border-primary/25 bg-primary/8 text-on-primary-container rounded-lg border px-4 py-3 text-sm dark:text-primary-fixed;
|
|
}
|
|
|
|
.empty-state {
|
|
@apply border-outline-variant bg-surface-container-low text-on-surface-variant rounded-lg border border-dashed px-5 py-8 text-center text-sm;
|
|
}
|
|
|
|
.table-shell {
|
|
@apply border-outline-variant bg-surface-container-lowest overflow-hidden rounded-xl border;
|
|
}
|
|
|
|
.eyebrow {
|
|
@apply text-label-uppercase text-primary font-bold uppercase tracking-[0.12em];
|
|
}
|
|
}
|