feat(ui): premium redesign — Inter font, grouped sidebar, gradient active states
- Switch to Inter font for sharper admin feel
- Sidebar: grouped nav sections (Overview/Organization/Access & Roles/etc),
orange gradient active fade, tighter spacing, smaller 220px width
- Header: slimmer h-14, backdrop-blur, logo+separator+title layout,
gradient avatar, notification dot with ring-2 badge
- Dashboard: smaller rounded-xl cards, tabular-nums on KPI values,
ArrowUpRight hover indicators, refined Control Plane grid
- app.css: sidebar/surface CSS design tokens, orange palette updates
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 23:13:04 +01:00
|
|
|
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Exo+2:wght@400;500;600;700;800&display=swap');
|
feat(admin): Phase 0 — Tailwind v4 foundation, shell rewrite, modern dashboard
- Install Tailwind CSS v4 via @tailwindcss/vite; configure vite.config.ts
- Rewrite app.css: Tailwind base, Exo 2 font, brand tokens (orange #fd6216, navy #050026), scrollbar utility; fix @import order
- Rewrite AdminShell.tsx: fixed header, fixed inset body grid (sidebar + main), session check, sub-tab system, logout, admin avatar/name/role
- Rewrite AdminSidebar.tsx: collapsible w-64/w-20, orange active rail + badge/dot, CSS filter for SVG icon tinting, min-h-0 flex fix
- Replace 84 route stub CSS classes (page-title, card, btn, table-wrap, etc.) with Tailwind equivalents via safe class-attr-only regex script
- Rewrite admin dashboard: Lucide icons in colored chip backgrounds, 4-col KPI grid, Control Plane 6-module grid, hover lift animations
- Disable SSR (ssr: false) to fix Vinxi dev manifest error; clear stale .vinxi cache
- Add lucide-solid icon library
- Add scripts/cleanup-css.mjs for class migration
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 23:00:21 +01:00
|
|
|
@import "tailwindcss";
|
2026-03-16 23:20:54 +01:00
|
|
|
|
feat(admin): Phase 0 — Tailwind v4 foundation, shell rewrite, modern dashboard
- Install Tailwind CSS v4 via @tailwindcss/vite; configure vite.config.ts
- Rewrite app.css: Tailwind base, Exo 2 font, brand tokens (orange #fd6216, navy #050026), scrollbar utility; fix @import order
- Rewrite AdminShell.tsx: fixed header, fixed inset body grid (sidebar + main), session check, sub-tab system, logout, admin avatar/name/role
- Rewrite AdminSidebar.tsx: collapsible w-64/w-20, orange active rail + badge/dot, CSS filter for SVG icon tinting, min-h-0 flex fix
- Replace 84 route stub CSS classes (page-title, card, btn, table-wrap, etc.) with Tailwind equivalents via safe class-attr-only regex script
- Rewrite admin dashboard: Lucide icons in colored chip backgrounds, 4-col KPI grid, Control Plane 6-module grid, hover lift animations
- Disable SSR (ssr: false) to fix Vinxi dev manifest error; clear stale .vinxi cache
- Add lucide-solid icon library
- Add scripts/cleanup-css.mjs for class migration
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 23:00:21 +01:00
|
|
|
@theme {
|
|
|
|
|
--color-brand-orange: #fd6216;
|
|
|
|
|
--color-brand-navy: #050026;
|
feat(ui): premium redesign — Inter font, grouped sidebar, gradient active states
- Switch to Inter font for sharper admin feel
- Sidebar: grouped nav sections (Overview/Organization/Access & Roles/etc),
orange gradient active fade, tighter spacing, smaller 220px width
- Header: slimmer h-14, backdrop-blur, logo+separator+title layout,
gradient avatar, notification dot with ring-2 badge
- Dashboard: smaller rounded-xl cards, tabular-nums on KPI values,
ArrowUpRight hover indicators, refined Control Plane grid
- app.css: sidebar/surface CSS design tokens, orange palette updates
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 23:13:04 +01:00
|
|
|
--color-orange-50: #fff4ee;
|
|
|
|
|
--color-orange-100: #ffe4d0;
|
|
|
|
|
--color-orange-200: #ffc9a0;
|
|
|
|
|
--color-orange-500: #fd6216;
|
|
|
|
|
--color-orange-600: #e5560f;
|
|
|
|
|
|
|
|
|
|
/* Sidebar tokens */
|
|
|
|
|
--color-sidebar-bg: #ffffff;
|
|
|
|
|
--color-sidebar-border: #f1f5f9;
|
|
|
|
|
--color-sidebar-text: #64748b;
|
|
|
|
|
--color-sidebar-active-text: #0f172a;
|
|
|
|
|
|
|
|
|
|
/* Surface tokens */
|
|
|
|
|
--color-surface: #ffffff;
|
|
|
|
|
--color-surface-raised: #f8fafc;
|
|
|
|
|
--color-border-subtle: #f1f5f9;
|
|
|
|
|
--color-border: #e2e8f0;
|
|
|
|
|
|
|
|
|
|
--font-family-sans: 'Inter', 'Exo 2', sans-serif;
|
2026-03-16 23:20:54 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
* {
|
|
|
|
|
box-sizing: border-box;
|
feat(admin): Phase 0 — Tailwind v4 foundation, shell rewrite, modern dashboard
- Install Tailwind CSS v4 via @tailwindcss/vite; configure vite.config.ts
- Rewrite app.css: Tailwind base, Exo 2 font, brand tokens (orange #fd6216, navy #050026), scrollbar utility; fix @import order
- Rewrite AdminShell.tsx: fixed header, fixed inset body grid (sidebar + main), session check, sub-tab system, logout, admin avatar/name/role
- Rewrite AdminSidebar.tsx: collapsible w-64/w-20, orange active rail + badge/dot, CSS filter for SVG icon tinting, min-h-0 flex fix
- Replace 84 route stub CSS classes (page-title, card, btn, table-wrap, etc.) with Tailwind equivalents via safe class-attr-only regex script
- Rewrite admin dashboard: Lucide icons in colored chip backgrounds, 4-col KPI grid, Control Plane 6-module grid, hover lift animations
- Disable SSR (ssr: false) to fix Vinxi dev manifest error; clear stale .vinxi cache
- Add lucide-solid icon library
- Add scripts/cleanup-css.mjs for class migration
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 23:00:21 +01:00
|
|
|
margin: 0;
|
|
|
|
|
padding: 0;
|
2026-03-16 23:20:54 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
body {
|
feat(ui): premium redesign — Inter font, grouped sidebar, gradient active states
- Switch to Inter font for sharper admin feel
- Sidebar: grouped nav sections (Overview/Organization/Access & Roles/etc),
orange gradient active fade, tighter spacing, smaller 220px width
- Header: slimmer h-14, backdrop-blur, logo+separator+title layout,
gradient avatar, notification dot with ring-2 badge
- Dashboard: smaller rounded-xl cards, tabular-nums on KPI values,
ArrowUpRight hover indicators, refined Control Plane grid
- app.css: sidebar/surface CSS design tokens, orange palette updates
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 23:13:04 +01:00
|
|
|
font-family: 'Inter', 'Exo 2', sans-serif;
|
2026-03-19 03:36:46 +01:00
|
|
|
background: #f8fafc;
|
feat(ui): premium redesign — Inter font, grouped sidebar, gradient active states
- Switch to Inter font for sharper admin feel
- Sidebar: grouped nav sections (Overview/Organization/Access & Roles/etc),
orange gradient active fade, tighter spacing, smaller 220px width
- Header: slimmer h-14, backdrop-blur, logo+separator+title layout,
gradient avatar, notification dot with ring-2 badge
- Dashboard: smaller rounded-xl cards, tabular-nums on KPI values,
ArrowUpRight hover indicators, refined Control Plane grid
- app.css: sidebar/surface CSS design tokens, orange palette updates
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 23:13:04 +01:00
|
|
|
color: #0f172a;
|
2026-03-16 23:20:54 +01:00
|
|
|
-webkit-font-smoothing: antialiased;
|
|
|
|
|
-moz-osx-font-smoothing: grayscale;
|
2026-03-19 03:36:46 +01:00
|
|
|
}
|
|
|
|
|
|
feat(admin): Phase 0 — Tailwind v4 foundation, shell rewrite, modern dashboard
- Install Tailwind CSS v4 via @tailwindcss/vite; configure vite.config.ts
- Rewrite app.css: Tailwind base, Exo 2 font, brand tokens (orange #fd6216, navy #050026), scrollbar utility; fix @import order
- Rewrite AdminShell.tsx: fixed header, fixed inset body grid (sidebar + main), session check, sub-tab system, logout, admin avatar/name/role
- Rewrite AdminSidebar.tsx: collapsible w-64/w-20, orange active rail + badge/dot, CSS filter for SVG icon tinting, min-h-0 flex fix
- Replace 84 route stub CSS classes (page-title, card, btn, table-wrap, etc.) with Tailwind equivalents via safe class-attr-only regex script
- Rewrite admin dashboard: Lucide icons in colored chip backgrounds, 4-col KPI grid, Control Plane 6-module grid, hover lift animations
- Disable SSR (ssr: false) to fix Vinxi dev manifest error; clear stale .vinxi cache
- Add lucide-solid icon library
- Add scripts/cleanup-css.mjs for class migration
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 23:00:21 +01:00
|
|
|
/* ===== Scrollbar ===== */
|
|
|
|
|
.scrollbar {
|
|
|
|
|
scrollbar-width: thin;
|
|
|
|
|
scrollbar-color: #c7c7c7 transparent;
|
|
|
|
|
}
|
|
|
|
|
.scrollbar::-webkit-scrollbar { height: 8px; width: 8px; }
|
|
|
|
|
.scrollbar::-webkit-scrollbar-track { background: transparent; }
|
|
|
|
|
.scrollbar::-webkit-scrollbar-thumb { background-color: #c7c7c7; border-radius: 9999px; }
|
|
|
|
|
.scrollbar::-webkit-scrollbar-thumb:hover { background-color: #9ca3af; }
|
|
|
|
|
|
|
|
|
|
/* ===== Auth / Login page ===== */
|
2026-03-19 03:36:46 +01:00
|
|
|
.auth-page {
|
|
|
|
|
position: relative;
|
|
|
|
|
min-height: 100vh;
|
|
|
|
|
display: grid;
|
|
|
|
|
place-items: center;
|
|
|
|
|
padding: 20px;
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.auth-bg {
|
|
|
|
|
position: absolute;
|
|
|
|
|
inset: 0;
|
|
|
|
|
background:
|
|
|
|
|
radial-gradient(circle at 20% 20%, rgba(253, 98, 22, 0.24), transparent 42%),
|
|
|
|
|
radial-gradient(circle at 80% 10%, rgba(99, 102, 241, 0.16), transparent 34%),
|
|
|
|
|
linear-gradient(180deg, #100b2f 0%, #0c0828 52%, #07051d 100%);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.auth-layout {
|
|
|
|
|
position: relative;
|
|
|
|
|
z-index: 1;
|
|
|
|
|
width: min(1120px, 100%);
|
|
|
|
|
display: grid;
|
|
|
|
|
grid-template-columns: 1.08fr 0.92fr;
|
|
|
|
|
gap: 24px;
|
|
|
|
|
align-items: stretch;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.auth-visual {
|
|
|
|
|
border-radius: 24px;
|
|
|
|
|
border: 1px solid rgba(255, 255, 255, 0.18);
|
|
|
|
|
background: rgba(255, 255, 255, 0.08);
|
|
|
|
|
padding: 28px;
|
|
|
|
|
box-shadow: 0 24px 72px -34px rgba(0, 0, 0, 0.72);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.auth-visual-kicker {
|
|
|
|
|
margin: 0;
|
|
|
|
|
display: inline-flex;
|
|
|
|
|
border-radius: 999px;
|
|
|
|
|
border: 1px solid rgba(255, 255, 255, 0.2);
|
|
|
|
|
background: rgba(255, 255, 255, 0.1);
|
|
|
|
|
color: #ffd7c2;
|
|
|
|
|
font-size: 11px;
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
letter-spacing: 0.12em;
|
|
|
|
|
text-transform: uppercase;
|
|
|
|
|
padding: 6px 10px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.auth-visual h1 {
|
|
|
|
|
margin: 16px 0 0;
|
|
|
|
|
font-size: clamp(30px, 3.4vw, 42px);
|
|
|
|
|
line-height: 1.1;
|
|
|
|
|
color: #fff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.auth-visual p {
|
|
|
|
|
margin: 12px 0 0;
|
|
|
|
|
color: rgba(255, 255, 255, 0.82);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.auth-visual img {
|
|
|
|
|
margin-top: 18px;
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 280px;
|
|
|
|
|
border-radius: 16px;
|
|
|
|
|
object-fit: cover;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.auth-card {
|
|
|
|
|
position: relative;
|
|
|
|
|
z-index: 1;
|
|
|
|
|
border-radius: 24px;
|
|
|
|
|
border: 1px solid rgba(255, 255, 255, 0.22);
|
|
|
|
|
background: rgba(255, 255, 255, 0.96);
|
|
|
|
|
box-shadow: 0 24px 72px -34px rgba(0, 0, 0, 0.72);
|
|
|
|
|
padding: 30px;
|
|
|
|
|
color: #0f172a;
|
|
|
|
|
}
|
|
|
|
|
|
feat(admin): Phase 0 — Tailwind v4 foundation, shell rewrite, modern dashboard
- Install Tailwind CSS v4 via @tailwindcss/vite; configure vite.config.ts
- Rewrite app.css: Tailwind base, Exo 2 font, brand tokens (orange #fd6216, navy #050026), scrollbar utility; fix @import order
- Rewrite AdminShell.tsx: fixed header, fixed inset body grid (sidebar + main), session check, sub-tab system, logout, admin avatar/name/role
- Rewrite AdminSidebar.tsx: collapsible w-64/w-20, orange active rail + badge/dot, CSS filter for SVG icon tinting, min-h-0 flex fix
- Replace 84 route stub CSS classes (page-title, card, btn, table-wrap, etc.) with Tailwind equivalents via safe class-attr-only regex script
- Rewrite admin dashboard: Lucide icons in colored chip backgrounds, 4-col KPI grid, Control Plane 6-module grid, hover lift animations
- Disable SSR (ssr: false) to fix Vinxi dev manifest error; clear stale .vinxi cache
- Add lucide-solid icon library
- Add scripts/cleanup-css.mjs for class migration
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 23:00:21 +01:00
|
|
|
.auth-form-card { display: flex; flex-direction: column; }
|
|
|
|
|
.auth-logo { height: 52px; width: auto; object-fit: contain; margin: 0 auto; }
|
|
|
|
|
.auth-title { margin: 18px 0 0; text-align: center; font-size: 32px; font-weight: 800; color: #0f172a; }
|
|
|
|
|
.auth-copy { margin: 12px 0 0; text-align: center; color: #475569; }
|
|
|
|
|
.auth-form-grid { margin-top: 24px; }
|
2026-03-19 03:36:46 +01:00
|
|
|
|
feat(admin): Phase 0 — Tailwind v4 foundation, shell rewrite, modern dashboard
- Install Tailwind CSS v4 via @tailwindcss/vite; configure vite.config.ts
- Rewrite app.css: Tailwind base, Exo 2 font, brand tokens (orange #fd6216, navy #050026), scrollbar utility; fix @import order
- Rewrite AdminShell.tsx: fixed header, fixed inset body grid (sidebar + main), session check, sub-tab system, logout, admin avatar/name/role
- Rewrite AdminSidebar.tsx: collapsible w-64/w-20, orange active rail + badge/dot, CSS filter for SVG icon tinting, min-h-0 flex fix
- Replace 84 route stub CSS classes (page-title, card, btn, table-wrap, etc.) with Tailwind equivalents via safe class-attr-only regex script
- Rewrite admin dashboard: Lucide icons in colored chip backgrounds, 4-col KPI grid, Control Plane 6-module grid, hover lift animations
- Disable SSR (ssr: false) to fix Vinxi dev manifest error; clear stale .vinxi cache
- Add lucide-solid icon library
- Add scripts/cleanup-css.mjs for class migration
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 23:00:21 +01:00
|
|
|
.auth-switch { display: flex; justify-content: flex-end; margin-top: -2px; }
|
|
|
|
|
.auth-switch.split { justify-content: space-between; }
|
2026-03-19 03:36:46 +01:00
|
|
|
|
|
|
|
|
.auth-link-btn {
|
feat(admin): Phase 0 — Tailwind v4 foundation, shell rewrite, modern dashboard
- Install Tailwind CSS v4 via @tailwindcss/vite; configure vite.config.ts
- Rewrite app.css: Tailwind base, Exo 2 font, brand tokens (orange #fd6216, navy #050026), scrollbar utility; fix @import order
- Rewrite AdminShell.tsx: fixed header, fixed inset body grid (sidebar + main), session check, sub-tab system, logout, admin avatar/name/role
- Rewrite AdminSidebar.tsx: collapsible w-64/w-20, orange active rail + badge/dot, CSS filter for SVG icon tinting, min-h-0 flex fix
- Replace 84 route stub CSS classes (page-title, card, btn, table-wrap, etc.) with Tailwind equivalents via safe class-attr-only regex script
- Rewrite admin dashboard: Lucide icons in colored chip backgrounds, 4-col KPI grid, Control Plane 6-module grid, hover lift animations
- Disable SSR (ssr: false) to fix Vinxi dev manifest error; clear stale .vinxi cache
- Add lucide-solid icon library
- Add scripts/cleanup-css.mjs for class migration
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 23:00:21 +01:00
|
|
|
border: 0; padding: 0; background: transparent;
|
|
|
|
|
color: #fd6216; font-size: 13px; font-weight: 600; cursor: pointer;
|
feat(admin): build complete admin panel with UI parity and search/filter
- Implement all admin management pages (employees, users, jobs, leads, orders, companies, customers, candidates, approval, invoices, reviews, support, KB, pricing, coupons, credits, discounts, tax, reports, ledger)
- Implement 9 professional vertical pages (developers, designers, tutors, video editors, photographers, makeup artists, graphic designers, social media managers, fitness trainers)
- Implement internal/external dashboard and role management with builder UI
- Fix tab styling: replace inline border-bottom styles with admin-tab CSS class across 8+ pages
- Add search/filter functionality to invoice and review pages
- Add toggle status (activate/deactivate) to employees page with PATCH /api/admin/employees/{id}
- Align UI styling with NextJS admin panel for visual parity
- Add stat cards to approval page showing counts by status
- Implement graceful empty states for all list views
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-19 13:04:10 +01:00
|
|
|
}
|
feat(admin): Phase 0 — Tailwind v4 foundation, shell rewrite, modern dashboard
- Install Tailwind CSS v4 via @tailwindcss/vite; configure vite.config.ts
- Rewrite app.css: Tailwind base, Exo 2 font, brand tokens (orange #fd6216, navy #050026), scrollbar utility; fix @import order
- Rewrite AdminShell.tsx: fixed header, fixed inset body grid (sidebar + main), session check, sub-tab system, logout, admin avatar/name/role
- Rewrite AdminSidebar.tsx: collapsible w-64/w-20, orange active rail + badge/dot, CSS filter for SVG icon tinting, min-h-0 flex fix
- Replace 84 route stub CSS classes (page-title, card, btn, table-wrap, etc.) with Tailwind equivalents via safe class-attr-only regex script
- Rewrite admin dashboard: Lucide icons in colored chip backgrounds, 4-col KPI grid, Control Plane 6-module grid, hover lift animations
- Disable SSR (ssr: false) to fix Vinxi dev manifest error; clear stale .vinxi cache
- Add lucide-solid icon library
- Add scripts/cleanup-css.mjs for class migration
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 23:00:21 +01:00
|
|
|
.auth-link-btn:hover { color: #ea580c; text-decoration: underline; }
|
|
|
|
|
.auth-inline-msg { margin-top: 12px; }
|
|
|
|
|
.hint { margin: 6px 0 0; color: #64748b; font-size: 12px; }
|