Spaces:
Running
Running
Download apps/admin/src/app/globals.css from Benaah/MicProtocol: direct link, hf CLI and curl.
- Browser
- Download file 11.9 kB
-
https://huggingface.co/spaces/Benaah/MicProtocol/resolve/main/apps/admin/src/app/globals.css
- Command line
-
hf download hf://spaces/Benaah/MicProtocol/apps/admin/src/app/globals.css
-
curl -L -o globals.css https://huggingface.co/spaces/Benaah/MicProtocol/resolve/main/apps/admin/src/app/globals.css
11.9 kB
| @import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@100..900&family=DM+Sans:opsz,wght@9..40,100..900&display=swap"); | |
| @tailwind base; | |
| @tailwind components; | |
| @tailwind utilities; | |
| /* ββ MicProtocol Design Tokens (Studio Desk) ββ */ | |
| /* Same CSS custom properties as the web app so the admin matches exactly. */ | |
| :root { | |
| /* ββ Brand ββ */ | |
| --color-primary: #E8A64A; | |
| --color-primary-light: #F2C477; | |
| --color-primary-dark: #BD7828; | |
| --color-primary-glow: rgba(232, 166, 74, 0.10); | |
| --color-primary-glow-strong: rgba(232, 166, 74, 0.18); | |
| --color-secondary: #8B80C7; | |
| --color-accent: #5BC49A; | |
| /* ββ Semantic ββ */ | |
| --color-success: #5BC49A; | |
| --color-warning: #E6AB55; | |
| --color-error: #E57373; | |
| --color-info: #78A6E8; | |
| /* ββ Backgrounds ββ */ | |
| --bg-primary: #141516; | |
| --bg-secondary: #1B1D1F; | |
| --bg-tertiary: #24272A; | |
| --bg-elevated: #1D2023; | |
| --bg-glass: rgba(28, 25, 36, 0.6); | |
| /* ββ Borders ββ */ | |
| --border-color: #34373A; | |
| --border-color-subtle: #282B2E; | |
| --border-brand: rgba(232, 166, 74, 0.25); | |
| /* ββ Text ββ */ | |
| --text-primary: #F3F1EC; | |
| --text-secondary: #B5B1A8; | |
| --text-tertiary: #89857D; | |
| --text-inverse: #1C1812; | |
| /* ββ Elevation ββ */ | |
| --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.18); | |
| --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.20); | |
| --shadow-lg: 0 12px 28px rgba(0, 0, 0, 0.24); | |
| --shadow-xl: 0 20px 48px rgba(0, 0, 0, 0.28); | |
| --shadow-glow: 0 0 16px rgba(232, 166, 74, 0.12); | |
| --shadow-glow-strong: 0 0 28px rgba(232, 166, 74, 0.18); | |
| /* ββ Spacing ββ */ | |
| --space-1: 0.25rem; | |
| --space-2: 0.5rem; | |
| --space-3: 0.75rem; | |
| --space-4: 1rem; | |
| --space-5: 1.25rem; | |
| --space-6: 1.5rem; | |
| --space-8: 2rem; | |
| --space-10: 2.5rem; | |
| --space-12: 3rem; | |
| --space-16: 4rem; | |
| --space-20: 5rem; | |
| --space-24: 6rem; | |
| /* ββ Typography ββ */ | |
| --font-display: "Space Grotesk", system-ui, sans-serif; | |
| --font-sans: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; | |
| --font-mono: "JetBrains Mono", "Fira Code", "Consolas", monospace; | |
| --text-xs: 0.75rem; | |
| --text-sm: 0.875rem; | |
| --text-base: 1rem; | |
| --text-lg: 1.125rem; | |
| --text-xl: 1.25rem; | |
| --text-2xl: 1.5rem; | |
| --text-3xl: 2rem; | |
| --text-4xl: 2.75rem; | |
| --text-5xl: 3.5rem; | |
| --font-weight-normal: 400; | |
| --font-weight-medium: 500; | |
| --font-weight-semibold: 600; | |
| --font-weight-bold: 700; | |
| --line-height-tight: 1.1; | |
| --line-height-snug: 1.25; | |
| --line-height-normal: 1.55; | |
| --line-height-relaxed: 1.7; | |
| --letter-spacing-tight: -0.03em; | |
| --letter-spacing-ultra-tight: -0.04em; | |
| --letter-spacing-wide: 0.06em; | |
| --letter-spacing-ultra-wide: 0.08em; | |
| /* ββ Border radius ββ */ | |
| --radius-sm: 6px; | |
| --radius-md: 10px; | |
| --radius-lg: 14px; | |
| --radius-xl: 18px; | |
| --radius-full: 9999px; | |
| /* ββ Transitions ββ */ | |
| --transition-fast: 120ms ease-out; | |
| --transition-normal: 220ms ease-out; | |
| --transition-slow: 350ms ease-out; | |
| --spring: cubic-bezier(0.34, 1.56, 0.64, 1); | |
| --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1); | |
| /* ββ Layout ββ */ | |
| --sidebar-width: 260px; | |
| --header-height: 56px; | |
| --content-max-width: 1280px; | |
| } | |
| *, | |
| *::before, | |
| *::after { | |
| box-sizing: border-box; | |
| } | |
| html, | |
| body { | |
| background-color: var(--bg-primary); | |
| color: var(--text-primary); | |
| font-family: var(--font-sans); | |
| font-size: var(--text-base); | |
| line-height: var(--line-height-normal); | |
| -webkit-font-smoothing: antialiased; | |
| font-smoothing: antialiased; | |
| } | |
| h1, | |
| h2, | |
| h3, | |
| h4, | |
| h5, | |
| h6 { | |
| font-family: var(--font-display); | |
| line-height: var(--line-height-tight); | |
| font-weight: var(--font-weight-bold); | |
| } | |
| /* ββ Utility classes (matching web app naming) ββ */ | |
| .font-display { | |
| font-family: var(--font-display); | |
| } | |
| .font-sans { | |
| font-family: var(--font-sans); | |
| } | |
| .font-mono { | |
| font-family: var(--font-mono); | |
| } | |
| .text-text-primary { | |
| color: var(--text-primary); | |
| } | |
| .text-text-secondary { | |
| color: var(--text-secondary); | |
| } | |
| .text-text-tertiary { | |
| color: var(--text-tertiary); | |
| } | |
| .text-text-inverse { | |
| color: var(--text-inverse); | |
| } | |
| .bg-bg-primary { | |
| background-color: var(--bg-primary); | |
| } | |
| .bg-bg-secondary { | |
| background-color: var(--bg-secondary); | |
| } | |
| .bg-bg-tertiary { | |
| background-color: var(--bg-tertiary); | |
| } | |
| .bg-bg-elevated { | |
| background-color: var(--bg-elevated); | |
| } | |
| .text-color-primary { | |
| color: var(--color-primary); | |
| } | |
| .text-color-secondary { | |
| color: var(--color-secondary); | |
| } | |
| .text-color-accent { | |
| color: var(--color-accent); | |
| } | |
| .text-color-success { | |
| color: var(--color-success); | |
| } | |
| .text-color-warning { | |
| color: var(--color-warning); | |
| } | |
| .text-color-error { | |
| color: var(--color-error); | |
| } | |
| .text-color-info { | |
| color: var(--color-info); | |
| } | |
| .bg-color-primary { | |
| background-color: var(--color-primary); | |
| } | |
| .bg-color-secondary { | |
| background-color: var(--color-secondary); | |
| } | |
| .bg-color-accent { | |
| background-color: var(--color-accent); | |
| } | |
| .bg-color-success { | |
| background-color: var(--color-success); | |
| } | |
| .bg-color-warning { | |
| background-color: var(--color-warning); | |
| } | |
| .bg-color-error { | |
| background-color: var(--color-error); | |
| } | |
| .bg-color-info { | |
| background-color: var(--color-info); | |
| } | |
| .border-border-color { | |
| border-color: var(--border-color); | |
| } | |
| .border-border-color-subtle { | |
| border-color: var(--border-color-subtle); | |
| } | |
| .shadow-sm { | |
| box-shadow: var(--shadow-sm); | |
| } | |
| .shadow-md { | |
| box-shadow: var(--shadow-md); | |
| } | |
| .shadow-lg { | |
| box-shadow: var(--shadow-lg); | |
| } | |
| .shadow-xl { | |
| box-shadow: var(--shadow-xl); | |
| } | |
| .shadow-glow { | |
| box-shadow: var(--shadow-glow); | |
| } | |
| .rounded-sm { | |
| border-radius: var(--radius-sm); | |
| } | |
| .rounded-md { | |
| border-radius: var(--radius-md); | |
| } | |
| .rounded-lg { | |
| border-radius: var(--radius-lg); | |
| } | |
| .rounded-xl { | |
| border-radius: var(--radius-xl); | |
| } | |
| .rounded-full { | |
| border-radius: var(--radius-full); | |
| } | |
| .transition-fast { | |
| transition: var(--transition-fast); | |
| } | |
| .transition-normal { | |
| transition: var(--transition-normal); | |
| } | |
| /* ββ Web app utility classes ββ */ | |
| .btn { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: var(--space-2); | |
| padding: var(--space-2) var(--space-4); | |
| border: 1px solid transparent; | |
| border-radius: var(--radius-md); | |
| font-family: var(--font-sans); | |
| font-size: var(--text-sm); | |
| font-weight: 600; | |
| cursor: pointer; | |
| transition: | |
| background-color var(--transition-fast), | |
| border-color var(--transition-fast), | |
| color var(--transition-fast), | |
| box-shadow var(--transition-fast); | |
| white-space: nowrap; | |
| text-decoration: none; | |
| } | |
| .btn:active { | |
| transform: scale(0.99); | |
| } | |
| .btn-primary { | |
| background: var(--color-primary); | |
| color: var(--text-inverse); | |
| border-color: var(--color-primary); | |
| box-shadow: var(--shadow-sm); | |
| } | |
| .btn-primary:hover { | |
| background: var(--color-primary-dark); | |
| border-color: var(--color-primary-dark); | |
| } | |
| .btn-secondary { | |
| background: var(--bg-tertiary); | |
| color: var(--text-primary); | |
| border: 1px solid var(--border-color-subtle); | |
| } | |
| .btn-secondary:hover { | |
| border-color: var(--color-primary); | |
| color: var(--color-primary); | |
| background: color-mix(in srgb, var(--color-primary) 6%, transparent); | |
| } | |
| .btn-ghost { | |
| background: transparent; | |
| color: var(--text-secondary); | |
| border: none; | |
| } | |
| .btn-ghost:hover { | |
| color: var(--text-primary); | |
| background: var(--bg-tertiary); | |
| } | |
| .btn-icon { | |
| padding: 0; | |
| width: 2.5rem; | |
| height: 2.5rem; | |
| min-width: 2.5rem; | |
| min-height: 2.5rem; | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| } | |
| .input { | |
| width: 100%; | |
| padding: var(--space-2) var(--space-3); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-md); | |
| font-family: var(--font-sans); | |
| font-size: var(--text-sm); | |
| color: var(--text-primary); | |
| background: var(--bg-elevated); | |
| transition: | |
| border-color var(--transition-fast), | |
| box-shadow var(--transition-fast); | |
| outline: none; | |
| } | |
| .input:focus { | |
| border-color: var(--color-primary); | |
| box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-primary) 20%, transparent); | |
| } | |
| .input::placeholder { | |
| color: var(--text-tertiary); | |
| } | |
| .card { | |
| background: var(--bg-elevated); | |
| border: 1px solid var(--border-color-subtle); | |
| border-radius: var(--radius-lg); | |
| padding: var(--space-6); | |
| transition: | |
| border-color var(--transition-fast), | |
| box-shadow var(--transition-fast); | |
| position: relative; | |
| } | |
| .card:hover { | |
| border-color: var(--border-color); | |
| } | |
| .card-interactive { | |
| cursor: pointer; | |
| } | |
| .card-interactive:hover { | |
| border-color: color-mix(in srgb, var(--color-primary) 30%, transparent); | |
| box-shadow: var(--shadow-md); | |
| transform: translateY(-1px); | |
| } | |
| .frosted { | |
| background: var(--bg-elevated); | |
| border: 1px solid var(--border-color); | |
| position: relative; | |
| } | |
| .frosted::after { | |
| content: ""; | |
| position: absolute; | |
| inset: 0; | |
| opacity: 0.015; | |
| background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E"); | |
| pointer-events: none; | |
| border-radius: inherit; | |
| } | |
| .stat-card { | |
| background: var(--bg-elevated); | |
| border: 1px solid var(--border-color-subtle); | |
| border-radius: var(--radius-lg); | |
| padding: var(--space-6); | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-4); | |
| transition: | |
| box-shadow var(--transition-fast), | |
| border-color var(--transition-fast); | |
| } | |
| .stat-card:hover { | |
| border-color: var(--border-color); | |
| } | |
| .stat-icon { | |
| width: 40px; | |
| height: 40px; | |
| border-radius: var(--radius-md); | |
| background: var(--bg-tertiary); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| border: 1px solid var(--border-color); | |
| flex-shrink: 0; | |
| } | |
| .stat-value { | |
| font-size: var(--text-2xl); | |
| font-weight: 700; | |
| font-family: var(--font-display); | |
| letter-spacing: -0.02em; | |
| } | |
| .stat-label { | |
| font-size: var(--text-xs); | |
| color: var(--text-tertiary); | |
| letter-spacing: 0.02em; | |
| } | |
| /* ββ Animations ββ */ | |
| @keyframes fadeIn { | |
| from { | |
| opacity: 0; | |
| transform: translateY(12px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| @keyframes revealUp { | |
| from { | |
| opacity: 0; | |
| transform: translateY(40px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| @keyframes shimmer { | |
| 0% { | |
| background-position: -200% 0; | |
| } | |
| 100% { | |
| background-position: 200% 0; | |
| } | |
| } | |
| @keyframes spin { | |
| to { | |
| transform: rotate(360deg); | |
| } | |
| } | |
| @keyframes mic-fade-in-up { | |
| 0% { | |
| opacity: 0; | |
| transform: translateY(12px); | |
| } | |
| 100% { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| .animate-fade-in { | |
| animation: fadeIn 0.4s var(--ease-out-expo) forwards; | |
| } | |
| .animate-reveal { | |
| opacity: 0; | |
| animation: revealUp 0.7s var(--ease-out-expo) forwards; | |
| } | |
| .animate-reveal-delay-1 { | |
| animation-delay: 0.1s; | |
| } | |
| .animate-reveal-delay-2 { | |
| animation-delay: 0.2s; | |
| } | |
| .animate-reveal-delay-3 { | |
| animation-delay: 0.3s; | |
| } | |
| .animate-reveal-delay-4 { | |
| animation-delay: 0.4s; | |
| } | |
| .animate-reveal-delay-5 { | |
| animation-delay: 0.5s; | |
| } | |
| .animate-reveal-delay-6 { | |
| animation-delay: 0.6s; | |
| } | |
| .animate-mic-fade-in-up { | |
| animation: mic-fade-in-up 0.4s ease-out both; | |
| } | |
| .animate-spin { | |
| animation: spin 1s linear infinite; | |
| } | |
| /* ββ Focus rings ββ */ | |
| *:focus-visible { | |
| outline: 2px solid var(--color-primary); | |
| outline-offset: 2px; | |
| } | |
| /* ββ Scrollbar ββ */ | |
| ::-webkit-scrollbar { | |
| width: 6px; | |
| height: 6px; | |
| } | |
| ::-webkit-scrollbar-track { | |
| background: var(--bg-secondary); | |
| } | |
| ::-webkit-scrollbar-thumb { | |
| background: var(--border-color); | |
| border-radius: 3px; | |
| } | |
| ::-webkit-scrollbar-thumb:hover { | |
| background: var(--text-tertiary); | |
| } | |
| /* ββ Skeleton ββ */ | |
| .skeleton { | |
| background: linear-gradient( | |
| 90deg, | |
| var(--bg-tertiary) 25%, | |
| var(--border-color) 50%, | |
| var(--bg-tertiary) 75% | |
| ); | |
| background-size: 200% 100%; | |
| animation: shimmer 1.5s infinite; | |
| border-radius: var(--radius-md); | |
| } |