barsa 6b13d74d06 refactor: update styles and improve loading states across portal components
- Modified global CSS to enhance typography and introduce new surface styles.
- Updated layout component to utilize the new Jakarta font variable.
- Improved loading states in account and public services views for better user experience.
- Refactored loading components to use consistent styling and structure.
- Enhanced the SiteFooter and AuthLayout components with updated font styles.
- Streamlined the PublicLandingLoadingView for better visual consistency.
- Added new BackLink component for improved navigation in order detail loading state.
2026-03-04 11:59:22 +09:00

330 lines
10 KiB
CSS

/* Tailwind CSS v4 */
@import "tailwindcss";
@plugin "tailwindcss-animate";
@import "../styles/tokens.css";
@import "../styles/utilities.css";
@import "../styles/responsive.css";
@custom-variant dark (&:is(.dark *));
/* =============================================================================
DESIGN TOKENS
Only define CSS variables here. Tailwind @theme maps them to utility classes.
============================================================================= */
:root {
--radius: 0.625rem;
/* Typography */
--font-sans: var(--font-geist-sans, system-ui, sans-serif);
--font-display: var(--font-jakarta, var(--font-sans));
/* Core Surfaces */
--background: oklch(1 0 0);
--foreground: oklch(0.16 0 0);
--card: oklch(1 0 0);
--card-foreground: var(--foreground);
--popover: oklch(1 0 0);
--popover-foreground: var(--foreground);
--muted: oklch(0.96 0.008 234.4);
--muted-foreground: oklch(0.5 0 0);
/* Brand - Clean Blue (matches logo) */
--primary: oklch(0.6884 0.1342 234.4);
--primary-hover: oklch(0.6 0.14 234.4);
--primary-soft: oklch(0.95 0.03 234.4);
--primary-foreground: oklch(0.99 0 0);
/* Gradient Accent - Slightly deeper blue for gradients */
--accent-gradient: oklch(0.55 0.15 234.4);
--secondary: oklch(0.95 0.015 234.4);
--secondary-foreground: oklch(0.29 0 0);
--accent: oklch(0.95 0.04 234.4);
--accent-foreground: var(--foreground);
/* 5 Semantic Colors (each: base, foreground, bg, border) */
--success: oklch(0.52 0.14 155);
--success-foreground: oklch(0.99 0 0);
--success-bg: oklch(0.98 0.02 145);
--success-border: oklch(0.93 0.08 150);
--info: oklch(0.55 0.16 230);
--info-foreground: oklch(0.99 0 0);
--info-bg: oklch(0.97 0.02 234.4);
--info-border: oklch(0.91 0.05 234.4);
--warning: oklch(0.72 0.15 65);
--warning-foreground: oklch(0.99 0 0);
--warning-bg: oklch(0.99 0.02 90);
--warning-border: oklch(0.92 0.12 90);
--danger: oklch(0.55 0.2 25);
--danger-foreground: oklch(0.99 0 0);
--danger-bg: oklch(0.98 0.01 10);
--danger-border: oklch(0.89 0.06 10);
--neutral: oklch(0.36 0.03 272.34);
--neutral-foreground: oklch(0.99 0 0);
--neutral-bg: oklch(0.97 0.008 272.34);
--neutral-border: oklch(0.87 0.02 272.34);
/* Surfaces */
--surface-elevated: oklch(0.995 0 0);
--surface-sunken: oklch(0.975 0.005 234.4);
/* Chrome */
--border: oklch(0.93 0.004 234.4);
--input: oklch(0.96 0.004 234.4);
--ring: oklch(0.6884 0.1342 234.4 / 0.5);
/* Sidebar - Deep purple/indigo */
--sidebar: oklch(0.2754 0.1199 272.34);
--sidebar-foreground: oklch(1 0 0);
--sidebar-border: oklch(0.36 0.1 272.34);
--sidebar-active: oklch(0.99 0 0 / 0.15);
/* Header */
--header: oklch(1 0 0 / 0.95);
--header-foreground: oklch(0.2 0 0);
--header-border: var(--border);
/* Charts */
--chart-1: var(--primary);
--chart-2: var(--success);
--chart-3: oklch(0.75 0.14 85);
--chart-4: var(--danger);
--chart-5: var(--neutral);
/* Amber/Gold CTA Accent (for conversion-focused buttons) */
--cta: oklch(0.65 0.16 55);
--cta-hover: oklch(0.58 0.17 55);
--cta-foreground: oklch(0.15 0.02 55);
--cta-soft: oklch(0.97 0.03 55);
/* Deep Navy for trust headers */
--navy: oklch(0.22 0.04 265);
--navy-foreground: oklch(0.98 0 0);
/* Glass Morphism Tokens */
--glass-bg: oklch(1 0 0 / 0.7);
--glass-bg-strong: oklch(1 0 0 / 0.85);
--glass-border: oklch(1 0 0 / 0.2);
--glass-blur: 12px;
--glass-blur-strong: 20px;
/* Gradient Presets */
--gradient-primary: linear-gradient(135deg, var(--primary) 0%, var(--accent-gradient) 100%);
--gradient-premium: linear-gradient(
135deg,
oklch(0.6884 0.1342 234.4),
oklch(0.55 0.15 234.4),
oklch(0.5 0.12 234.4)
);
--gradient-subtle: linear-gradient(
180deg,
oklch(0.99 0.005 234.4) 0%,
oklch(0.97 0.008 234.4) 100%
);
--gradient-glow: radial-gradient(
circle at 50% 0%,
oklch(0.6884 0.1342 234.4 / 0.15),
transparent 50%
);
/* Premium Shadows with Color */
--shadow-primary-sm: 0 2px 8px -2px oklch(0.6884 0.1342 234.4 / 0.2);
--shadow-primary-md: 0 4px 16px -4px oklch(0.6884 0.1342 234.4 / 0.25);
--shadow-primary-lg: 0 8px 32px -8px oklch(0.6884 0.1342 234.4 / 0.3);
}
.dark {
/* Surfaces - Rich dark with blue undertone */
--background: oklch(0.12 0.015 234.4);
--foreground: oklch(0.95 0 0);
--card: oklch(0.15 0.015 234.4);
--card-foreground: var(--foreground);
--popover: oklch(0.15 0.015 234.4);
--popover-foreground: var(--foreground);
--muted: oklch(0.25 0.01 234.4);
--muted-foreground: oklch(0.74 0 0);
/* Brand - Brighter for dark mode contrast */
--primary: oklch(0.75 0.12 234.4);
--primary-hover: oklch(0.8 0.1 234.4);
--primary-soft: oklch(0.22 0.04 234.4);
--secondary: oklch(0.22 0.01 234.4);
--secondary-foreground: oklch(0.9 0 0);
--accent: oklch(0.24 0.03 234.4);
--accent-foreground: oklch(0.92 0 0);
--success: oklch(0.72 0.1 145);
--success-foreground: oklch(0.15 0 0);
--success-bg: oklch(0.24 0.04 145);
--success-border: oklch(0.38 0.08 150);
--info: oklch(0.72 0.1 234.4);
--info-foreground: oklch(0.15 0 0);
--info-bg: oklch(0.24 0.04 234.4);
--info-border: oklch(0.38 0.07 234.4);
--warning: oklch(0.78 0.12 55);
--warning-foreground: oklch(0.15 0 0);
--warning-bg: oklch(0.26 0.04 90);
--warning-border: oklch(0.42 0.1 90);
--danger: oklch(0.72 0.14 12);
--danger-foreground: oklch(0.15 0 0);
--danger-bg: oklch(0.24 0.03 10);
--danger-border: oklch(0.38 0.08 10);
--neutral: oklch(0.7 0.03 272.34);
--neutral-foreground: oklch(0.15 0 0);
--neutral-bg: oklch(0.24 0.02 272.34);
--neutral-border: oklch(0.38 0.03 272.34);
--surface-elevated: oklch(0.18 0.015 234.4);
--surface-sunken: oklch(0.1 0.015 234.4);
--border: oklch(0.32 0.02 234.4);
--input: oklch(0.35 0.02 234.4);
--ring: oklch(0.75 0.12 234.4 / 0.5);
/* Sidebar - Purple/indigo theme for dark mode */
--sidebar: oklch(0.2 0.08 272.34);
--sidebar-border: oklch(0.28 0.08 272.34);
--header: oklch(0.15 0.015 234.4 / 0.95);
--header-foreground: var(--foreground);
--chart-3: oklch(0.82 0.14 85);
/* Glass for dark mode */
--glass-bg: oklch(0.15 0.02 234.4 / 0.6);
--glass-bg-strong: oklch(0.18 0.02 234.4 / 0.8);
--glass-border: oklch(1 0 0 / 0.1);
/* Gradients adjusted for dark */
--gradient-subtle: linear-gradient(
180deg,
oklch(0.15 0.02 234.4) 0%,
oklch(0.13 0.025 234.4) 100%
);
/* Shadows for dark mode */
--shadow-primary-sm: 0 2px 8px -2px oklch(0 0 0 / 0.4);
--shadow-primary-md: 0 4px 16px -4px oklch(0 0 0 / 0.5);
--shadow-primary-lg: 0 8px 32px -8px oklch(0 0 0 / 0.6);
}
/* =============================================================================
TAILWIND THEME - Maps CSS vars to utility classes (bg-*, text-*, border-*)
============================================================================= */
@theme {
/* Font Families */
--font-family-sans: var(--font-sans);
--font-family-display: var(--font-display);
/* Colors */
--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-muted: var(--muted);
--color-muted-foreground: var(--muted-foreground);
--color-primary: var(--primary);
--color-primary-hover: var(--primary-hover);
--color-primary-soft: var(--primary-soft);
--color-primary-foreground: var(--primary-foreground);
--color-secondary: var(--secondary);
--color-secondary-foreground: var(--secondary-foreground);
--color-accent: var(--accent);
--color-accent-foreground: var(--accent-foreground);
--color-accent-gradient: var(--accent-gradient);
--color-success: var(--success);
--color-success-foreground: var(--success-foreground);
--color-success-bg: var(--success-bg);
--color-success-border: var(--success-border);
--color-info: var(--info);
--color-info-foreground: var(--info-foreground);
--color-info-bg: var(--info-bg);
--color-info-border: var(--info-border);
--color-warning: var(--warning);
--color-warning-foreground: var(--warning-foreground);
--color-warning-bg: var(--warning-bg);
--color-warning-border: var(--warning-border);
--color-danger: var(--danger);
--color-danger-foreground: var(--danger-foreground);
--color-danger-bg: var(--danger-bg);
--color-danger-border: var(--danger-border);
--color-neutral: var(--neutral);
--color-neutral-foreground: var(--neutral-foreground);
--color-neutral-bg: var(--neutral-bg);
--color-neutral-border: var(--neutral-border);
/* Soft variants (alias to -bg, for badge backgrounds) */
--color-success-soft: var(--success-bg);
--color-info-soft: var(--info-bg);
--color-warning-soft: var(--warning-bg);
--color-danger-soft: var(--danger-bg);
--color-neutral-soft: var(--neutral-bg);
--color-border: var(--border);
--color-input: var(--input);
--color-ring: var(--ring);
--color-sidebar: var(--sidebar);
--color-sidebar-foreground: var(--sidebar-foreground);
--color-sidebar-border: var(--sidebar-border);
--color-sidebar-active: var(--sidebar-active);
--color-header: var(--header);
--color-header-foreground: var(--header-foreground);
--color-header-border: var(--header-border);
--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);
/* CTA/Amber tokens */
--color-cta: var(--cta);
--color-cta-hover: var(--cta-hover);
--color-cta-foreground: var(--cta-foreground);
--color-cta-soft: var(--cta-soft);
/* Navy tokens */
--color-navy: var(--navy);
--color-navy-foreground: var(--navy-foreground);
/* Surface tokens */
--color-surface-elevated: var(--surface-elevated);
--color-surface-sunken: var(--surface-sunken);
/* Glass tokens */
--color-glass-bg: var(--glass-bg);
--color-glass-border: var(--glass-border);
}
@layer base {
* {
@apply border-border outline-ring/50;
}
body {
@apply bg-background text-foreground;
font-family: var(--font-sans);
}
}