@extends('portal.layouts.master') @section('title', 'Finance News') @section('page-title', 'Finance News') @section('extra-css') /* ══════════════════════════════════════════════ PORTAL — Finance News ══════════════════════════════════════════════ */ .news-shell { max-width: 1200px; margin: 0 auto; } /* ── Top bar ── */ .news-topbar { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.25rem; } /* ── Category tabs ── */ .news-tabs { display: flex; gap: .35rem; flex-wrap: wrap; flex: 1; } .news-tab { padding: .38rem .85rem; border-radius: 6px; border: 1px solid #2b3139; background: #131722; color: #848e9c; font-size: .8rem; font-weight: 600; cursor: pointer; transition: all .15s; white-space: nowrap; } .news-tab:hover { border-color: #f0b90b; color: #f0b90b; } .news-tab.active { background: #f0b90b; border-color: #f0b90b; color: #1a1d27; } /* ── Search ── */ .news-search-wrap { position: relative; flex-shrink: 0; } .news-search-wrap i { position: absolute; left: .75rem; top: 50%; transform: translateY(-50%); color: #5e6673; font-size: .85rem; pointer-events: none; } .news-search { background: #131722; border: 1px solid #2b3139; border-radius: 6px; color: #eaecef; font-size: .83rem; padding: .38rem .85rem .38rem 2.1rem; width: 220px; outline: none; transition: border-color .15s; } .news-search:focus { border-color: #f0b90b; } .news-search::placeholder { color: #5e6673; } /* ── Status bar ── */ .news-status { font-size: .75rem; color: #5e6673; margin-bottom: 1rem; min-height: 1.2em; } /* ── Grid ── */ .news-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 1rem; } /* ── Article card ── */ .news-card { background: #131722; border: 1px solid #2b3139; border-radius: 10px; overflow: hidden; display: flex; flex-direction: column; transition: border-color .15s, transform .15s; } .news-card:hover { border-color: #3d4554; transform: translateY(-2px); } .news-card-img { width: 100%; height: 175px; object-fit: cover; background: #1a1d27; display: block; flex-shrink: 0; } .news-card-img-placeholder { width: 100%; height: 175px; background: linear-gradient(135deg, #1a1d27 0%, #252b3a 100%); display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .news-card-img-placeholder i { font-size: 2.5rem; color: #2b3139; } .news-card-body { padding: .85rem 1rem; display: flex; flex-direction: column; flex: 1; } .news-card-meta { display: flex; align-items: center; justify-content: space-between; margin-bottom: .4rem; } .news-card-source { font-size: .68rem; font-weight: 700; color: #f0b90b; text-transform: uppercase; letter-spacing: .05em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 55%; } .news-card-time { font-size: .67rem; color: #5e6673; white-space: nowrap; } .news-card-title { font-size: .88rem; font-weight: 700; color: #eaecef; line-height: 1.35; margin-bottom: .45rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; } .news-card-desc { font-size: .78rem; color: #848e9c; line-height: 1.45; flex: 1; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: .75rem; } .news-card-footer { display: flex; align-items: center; justify-content: flex-end; gap: .5rem; margin-top: auto; } .news-card-link { font-size: .75rem; font-weight: 700; color: #f0b90b; text-decoration: none; display: inline-flex; align-items: center; gap: .3rem; } .news-card-link:hover { color: #ffd166; text-decoration: none; } /* ── Skeleton loader ── */ .news-skeleton-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 1rem; } .news-skeleton-card { background: #131722; border: 1px solid #2b3139; border-radius: 10px; overflow: hidden; } .skel { background: linear-gradient(90deg, #1f2535 25%, #29344a 50%, #1f2535 75%); background-size: 200% 100%; animation: skel-shimmer 1.4s infinite; border-radius: 4px; } @keyframes skel-shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } } .skel-img { height: 175px; border-radius: 0; } .skel-body { padding: .85rem 1rem; } .skel-line { height: .75rem; margin-bottom: .6rem; } .skel-title { width: 85%; height: .9rem; } .skel-sub1 { width: 60%; height: .75rem; } .skel-sub2 { width: 75%; height: .75rem; } .skel-sub3 { width: 45%; height: .75rem; } /* ── No results / error ── */ .news-empty { grid-column: 1 / -1; text-align: center; padding: 3rem 1rem; color: #5e6673; } .news-empty i { font-size: 2.5rem; margin-bottom: .75rem; display: block; } .news-empty p { font-size: .9rem; } /* ── Responsive ── */ @media (max-width: 600px) { .news-grid, .news-skeleton-grid { grid-template-columns: 1fr; } .news-search { width: 100%; } .news-topbar { flex-direction: column; align-items: stretch; } } @endsection @section('content')
No locally stored articles are available yet.