lthn.io/resources/css/admin.css
Claude 77cc45dd83
feat: lthn.io CorePHP app — TLD website + blockchain services
Modules:
- Chain: daemon RPC client (DaemonRpc singleton, cached queries)
- Explorer: block browser, tx viewer, alias directory, search, stats API
- Names: .lthn TLD registrar portal (availability check, lookup, directory)
- Trade: scaffold (DEX frontend + API)
- Pool: scaffold (mining pool dashboard)

Replaces 5 Node.js containers (5.9GB) with one FrankenPHP app.
Built on CorePHP framework pattern from host.uk.com.

Co-Authored-By: Charon <charon@lethean.io>
2026-04-03 16:13:55 +01:00

193 lines
4.8 KiB
CSS

@import 'tailwindcss';
@import '../../vendor/livewire/flux/dist/flux.css';
@source '../../vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php';
@source '../../vendor/livewire/flux/src/resources/views/**/*.blade.php';
@source '../../storage/framework/views/*.php';
@source '../views/admin/**/*.blade.php';
@source '../../app/Core/**/Blade/**/*.blade.php';
@source '../../app/Mod/*/View/Blade/**/*.blade.php';
@plugin "@tailwindcss/forms" {
strategy: base;
}
@custom-variant dark (&:is(.dark *));
@custom-variant sidebar-expanded (&:is(.sidebar-expanded *));
@theme {
--shadow-sm: 0 1px 1px 0 rgb(0 0 0 / 0.05), 0 1px 2px 0 rgb(0 0 0 / 0.02);
--color-gray-50: #f9fafb;
--color-gray-100: #f3f4f6;
--color-gray-200: #e5e7eb;
--color-gray-300: #bfc4cd;
--color-gray-400: #9ca3af;
--color-gray-500: #6b7280;
--color-gray-600: #4b5563;
--color-gray-700: #374151;
--color-gray-800: #1f2937;
--color-gray-900: #111827;
--color-gray-950: #030712;
--color-violet-50: #f1eeff;
--color-violet-100: #e6e1ff;
--color-violet-200: #d2cbff;
--color-violet-300: #b7acff;
--color-violet-400: #9c8cff;
--color-violet-500: #8470ff;
--color-violet-600: #755ff8;
--color-violet-700: #5d47de;
--color-violet-800: #4634b1;
--color-violet-900: #2f227c;
--color-violet-950: #1c1357;
--color-sky-50: #e3f3ff;
--color-sky-500: #67bfff;
--color-green-50: #d2ffe2;
--color-green-500: #3ec972;
--color-red-50: #ffe8e8;
--color-red-500: #ff5656;
--color-yellow-50: #fff2c9;
--color-yellow-500: #f0bb33;
--font-inter: "Inter", "sans-serif";
--text-xs: 0.75rem;
--text-xs--line-height: 1.5;
--text-sm: 0.875rem;
--text-sm--line-height: 1.5715;
--text-base: 1rem;
--text-base--line-height: 1.5;
--text-base--letter-spacing: -0.01em;
--text-lg: 1.125rem;
--text-lg--line-height: 1.5;
--text-lg--letter-spacing: -0.01em;
--text-xl: 1.25rem;
--text-xl--line-height: 1.5;
--text-xl--letter-spacing: -0.01em;
--text-2xl: 1.5rem;
--text-2xl--line-height: 1.33;
--text-2xl--letter-spacing: -0.01em;
--text-3xl: 1.88rem;
--text-3xl--line-height: 1.33;
--text-3xl--letter-spacing: -0.01em;
--breakpoint-xs: 480px;
}
@layer base {
*,
::after,
::before,
::backdrop,
::file-selector-button {
border-color: var(--color-gray-200, currentColor);
}
}
/* Typography */
.h1 {
@apply text-4xl font-extrabold tracking-tighter;
}
.h2 {
@apply text-3xl font-extrabold tracking-tighter;
}
.h3 {
@apply text-3xl font-extrabold;
}
.h4 {
@apply text-2xl font-extrabold tracking-tight;
}
@media (width >= 768px) {
.h1 { @apply text-5xl; }
.h2 { @apply text-4xl; }
}
/* Buttons */
.btn,
.btn-lg,
.btn-sm,
.btn-xs {
@apply font-medium text-sm inline-flex items-center justify-center border border-transparent rounded-lg leading-5 shadow-xs transition;
}
.btn { @apply px-3 py-2; }
.btn-lg { @apply px-4 py-3; }
.btn-sm { @apply px-2 py-1; }
.btn-xs { @apply px-2 py-0.5; }
/* Forms */
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration {
-webkit-appearance: none;
}
.form-input,
.form-textarea,
.form-multiselect,
.form-select,
.form-checkbox,
.form-radio {
@apply bg-white dark:bg-gray-900/30 border focus:ring-0 focus:ring-offset-0;
}
.form-input,
.form-textarea,
.form-multiselect,
.form-select {
@apply text-sm text-gray-800 dark:text-gray-100 leading-5 py-2 px-3 border-gray-200 hover:border-gray-300 focus:border-gray-300 dark:border-gray-700/60 dark:hover:border-gray-600 dark:focus:border-gray-600 shadow-xs rounded-lg;
}
.form-input,
.form-textarea {
@apply placeholder-gray-400 dark:placeholder-gray-500;
}
.form-checkbox,
.form-radio {
@apply text-violet-500 checked:bg-violet-500 checked:border-transparent border border-gray-300 dark:border-gray-700/60;
}
/* Hide scrollbar */
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar {
-ms-overflow-style: none;
scrollbar-width: none;
}
/* Fix for duotone icons in flex containers */
/* Duotone icons use ::before (absolute) + ::after (base layer) */
/* This ensures they display correctly inside flex containers */
.fa-duotone,
.fad,
.fa-sharp-duotone,
.fa-notdog-duo,
.fa-jelly-duo,
.fa-utility-duo {
display: inline-block;
}
/* Ensure duotone ::before stays absolutely positioned */
.fa-duotone::before,
.fad::before,
.fa-sharp-duotone::before,
.fa-notdog-duo::before,
.fa-jelly-duo::before,
.fa-utility-duo::before {
position: absolute !important;
}
/* Diff highlighting for revision comparison */
.diff-added {
@apply bg-green-100 dark:bg-green-900/30 text-green-800 dark:text-green-300 rounded px-0.5;
}
.diff-removed {
@apply bg-red-100 dark:bg-red-900/30 text-red-800 dark:text-red-300 rounded px-0.5 line-through;
}