diff --git a/public/build/manifest.json b/public/build/manifest.json index 01b73cb..00ccfc7 100644 --- a/public/build/manifest.json +++ b/public/build/manifest.json @@ -1,6 +1,6 @@ { "resources/css/app.css": { - "file": "assets/app-DTUtvTBm.css", + "file": "assets/app-DtfTB2Uz.css", "src": "resources/css/app.css", "isEntry": true }, diff --git a/resources/css/app.css b/resources/css/app.css index f1d8c73..ff4686e 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -1 +1,103 @@ @import "tailwindcss"; + +/* ─── TerManager2 Custom UI ─── */ + +/* Card hover lift effect */ +.card-hover { + transition: transform 0.15s ease, box-shadow 0.15s ease; +} +.card-hover:hover { + transform: translateY(-2px); + box-shadow: 0 8px 25px -5px rgba(0, 0, 0, 0.1), 0 4px 10px -5px rgba(0, 0, 0, 0.04); +} + +/* Colored left accent border for stat cards */ +.card-accent-indigo { border-left: 4px solid #6366f1; } +.card-accent-green { border-left: 4px solid #22c55e; } +.card-accent-blue { border-left: 4px solid #3b82f6; } +.card-accent-red { border-left: 4px solid #ef4444; } +.card-accent-amber { border-left: 4px solid #f59e0b; } + +/* Table zebra striping */ +.table-striped tbody tr:nth-child(even) { + background-color: #f9fafb; +} + +/* Action buttons */ +.btn-action { + display: inline-flex; + align-items: center; + gap: 4px; + padding: 4px 10px; + border-radius: 6px; + font-size: 12px; + font-weight: 600; + transition: all 0.15s ease; + border: none; + cursor: pointer; + text-decoration: none; +} +.btn-action-green { background: #dcfce7; color: #166534; } +.btn-action-green:hover { background: #bbf7d0; } +.btn-action-red { background: #fee2e2; color: #991b1b; } +.btn-action-red:hover { background: #fecaca; } +.btn-action-blue { background: #dbeafe; color: #1e40af; } +.btn-action-blue:hover { background: #bfdbfe; } +.btn-action-amber { background: #fef3c7; color: #92400e; } +.btn-action-amber:hover { background: #fde68a; } +.btn-action-gray { background: #f3f4f6; color: #374151; } +.btn-action-gray:hover { background: #e5e7eb; } +.btn-action-indigo { background: #e0e7ff; color: #4338ca; } +.btn-action-indigo:hover { background: #c7d2fe; } + +/* Primary action buttons (filled) */ +.btn-primary-green { background: #16a34a; color: #fff; } +.btn-primary-green:hover { background: #15803d; } +.btn-primary-red { background: #dc2626; color: #fff; } +.btn-primary-red:hover { background: #b91c1c; } + +/* Gradient header */ +.header-gradient { + background: linear-gradient(135deg, #4338ca 0%, #6366f1 50%, #818cf8 100%); +} + +/* Sidebar active state */ +.sidebar-active { + background: linear-gradient(90deg, #eef2ff, #e0e7ff); + border-right: 3px solid #6366f1; + color: #4338ca; + font-weight: 600; +} + +/* Smooth page transitions */ +.page-enter { + animation: fadeSlideIn 0.25s ease-out; +} +@keyframes fadeSlideIn { + from { opacity: 0; transform: translateY(8px); } + to { opacity: 1; transform: translateY(0); } +} + +/* Empty state styling */ +.empty-state { + display: flex; + flex-direction: column; + align-items: center; + gap: 8px; + padding: 2rem 1rem; + color: #9ca3af; +} +.empty-state svg { + width: 48px; + height: 48px; + opacity: 0.4; +} + +/* Badge pulse for active items */ +.badge-pulse { + animation: pulse 2s infinite; +} +@keyframes pulse { + 0%, 100% { opacity: 1; } + 50% { opacity: 0.7; } +} diff --git a/resources/views/components/layouts/app.blade.php b/resources/views/components/layouts/app.blade.php index 5d149f5..fd41619 100644 --- a/resources/views/components/layouts/app.blade.php +++ b/resources/views/components/layouts/app.blade.php @@ -11,11 +11,11 @@
{{-- Header --}} -