Niveytha27's picture
UI and GenAI recommendation changes for Nascent Trends section
50aef51
/* Sizes (easy to tweak) */
:root{
--flip-w: 360px; /* card width */
--flip-h: 370px; /* card height */
}
/* --- Flip cards row: single line, horizontal scroll --- */
.flip-row{
display:flex; flex-wrap:nowrap; gap:3px; overflow-x:auto; padding-bottom:4px;min-height: calc(var(--flip-h) + 3px);
}
/* --- Flip card base (clip/round here, not on the rotating inner) --- */
.flip-card{
--card-bg:#111827; --card-fg:#ffffff;
flex: 0 0 var(--flip-w); outline:0; border:1px solid #e6e9ef;
border-radius:14px; overflow:hidden; /* <-- moved here */
perspective:1000px; -webkit-perspective:1000px; /* 3D space */
}
.flip-card:focus{ box-shadow:0 0 0 3px rgba(30,58,138,.25); border-radius:8px; }
/* rotating container */
.flip-card .flip-card-inner{
position:relative; width:100%; height: var(--flip-h);
transform-style:preserve-3d; -webkit-transform-style:preserve-3d;
transition:transform .6s;
/* no border/overflow/radius here */
}
/* flip on hover or when focused */
@media (hover: hover){
.flip-card:hover .flip-card-inner{ transform:rotateY(180deg); -webkit-transform:rotateY(180deg); }
}
.flip-card:focus-within .flip-card-inner{ transform:rotateY(180deg); -webkit-transform:rotateY(180deg); }
/* faces */
.flip-card-front,
.flip-card-back{
position:absolute; inset:0; display:flex; flex-direction:column;
backface-visibility:hidden; -webkit-backface-visibility:hidden;
background:var(--card-bg); color:var(--card-fg);
transform:translateZ(0); -webkit-transform:translateZ(0);
}
/* explicitly separate layers + orientation */
.flip-card-front{
z-index:2;
transform:rotateY(0deg) translateZ(1px); /* <-- own layer */
-webkit-transform:rotateY(0deg) translateZ(1px);
}
.flip-card-back{
z-index:1;
transform:rotateY(180deg) translateZ(1px); /* <-- own layer */
-webkit-transform:rotateY(180deg) translateZ(1px);
}
/* content */
.flip-title{ font-weight:800; font-size:1.05rem; padding:12px 14px; letter-spacing:.2px; }
.flip-content{
padding: 12px 14px;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
/* subtract title + padding (~64px) so content fits the face height */
max-height: calc(var(--flip-h) - 64px);
}
.flip-subtitle{ font-size:.85rem; }
.flip-card .text-muted{ color: rgba(17,24,39,.65) !important; }
.type-explosive{ --card-bg:#fecaca; --card-fg:#111827; } /* red-200 */
.type-momentum { --card-bg:#fde68a; --card-fg:#111827; } /* amber-200 */
.type-consistent{ --card-bg:#bfdbfe; --card-fg:#111827; }/* blue-200 */
.type-gradual { --card-bg:#bbf7d0; --card-fg:#111827; } /* green-200 */
.type-organic { --card-bg:#ddd6fe; --card-fg:#111827; } /* violet-200 */
/* --- Two-column split with vertical separator --- */
.split-2 { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 992px) {
.split-2 { grid-template-columns: 1fr 12px 1fr; align-items: start; }
}
.split-2-col { min-width: 0; }
.split-2-sep { width: 12px; background: linear-gradient(180deg, #eef2ff, #eef1f6); border-radius: 8px; }
/* Existing styles kept */
:root{ --bg:#f6f8fb; --card-bg:#ffffff; --text:#232b3a; }
body.bg-body { background: var(--bg); color: var(--text); }
.navbar.bg-primary { background: #1e3a8a !important; }
.card { border-radius: 14px; border-color: #e6e9ef; }
.card-header { border-bottom: 1px solid #eef1f6; }
.table-header { background: #eef2ff; }
.table thead th { font-weight: 600; }
.table tbody td { vertical-align: top; }
.thumb {
display:inline-block; width:120px; height:68px; border-radius:10px;
overflow:hidden; border:1px solid #e5e7eb; box-shadow:0 1px 2px rgba(0,0,0,.04);
}
.thumb img { width:100%; height:100%; object-fit:cover; }
/* KPI styles remain if you still use them elsewhere */
.kpi-card { background: var(--card-bg); border: 1px solid #e6e9ef; border-radius: 14px; }
.kpi-label { font-size: .9rem; color: #6b7280; }
.kpi-value { font-size: 2rem; font-weight: 700; line-height: 1; }
.kpi-sub { font-size: .8rem; color: #9aa1ad; }
/* Sample videos right side */
.sample-table-wrap{
max-height: 420px; /* scroll within accordion body */
overflow: auto;
-webkit-overflow-scrolling: touch;
}
.thumb-sm{
width: 64px;
height: 36px;
object-fit: cover;
border-radius: 6px;
border: 1px solid #e5e7eb;
}
/* Color sliver on accordion headers by archetype */
.accordion-button.sample-head{ background: #f8fafc; }
.accordion-button.sample-head.type-explosive{ border-left:6px solid #F87171; } /* red-500 */
.accordion-button.sample-head.type-momentum { border-left:6px solid #FCD34D; } /* amber-500 */
.accordion-button.sample-head.type-consistent{ border-left:6px solid #93C5FD; }/* blue-500 */
.accordion-button.sample-head.type-gradual { border-left:6px solid #86EFAC; } /* green-500 */
.accordion-button.sample-head.type-organic { border-left:6px solid #C4B5FD; } /* violet-500 */
.chart-box{
position: relative;
height: 380px; /* ensures non-zero height */
width: 100%;
}
#videoPieChart{ width: 100% !important; height: 100% !important; display:block; }
/* Compact, more readable sample videos table */
.sample-table-wrap{
max-height: 520px; /* a bit taller to reduce scroll */
overflow: auto;
-webkit-overflow-scrolling: touch;
}
.sample-table{
font-size: 0.84rem; /* smaller text for density */
}
@media (min-width: 1600px){
.sample-table{ font-size: 0.9rem; }
}
/* tighter cell padding */
.compact-table > :not(caption) > * > *{
padding: .35rem .5rem;
}
/* align numbers nicely */
.metric-cell{
text-align: right;
font-variant-numeric: tabular-nums; /* monospaced digits for vertical scan */
white-space: nowrap;
}
/* slimmer thumbnails */
.thumb-xs{
width: 56px;
height: 32px;
object-fit: cover;
border-radius: 6px;
border: 1px solid #e5e7eb;
}
/* ellipsis for long titles on wide screens; wrap on small */
.sample-title{
display: inline-block;
max-width: 520px; /* adjust as needed */
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
@media (max-width: 1400px){
.sample-title{ max-width: 380px; }
}
@media (max-width: 1200px){
.sample-title{ max-width: 300px; }
}
@media (max-width: 992px){
.sample-title{
max-width: 100%;
white-space: normal; /* allow wrapping on smaller screens */
overflow: visible;
text-overflow: clip;
}
}
/* Two-column layout with a thin vertical separator */
#area3-metrics .split-2{
display:flex;
gap:24px;
align-items:stretch;
}
#area3-metrics .split-2-col{
flex:1 1 0;
min-width:0; /* lets tables/canvas shrink without overflow */
}
#area3-metrics .split-2-sep{
width:1px;
background:rgba(0,0,0,.08);
}
/* Chart container — make it taller so it visually matches the table area */
#area3-metrics .linechart-box{
position:relative;
height:200px; /* increased from 380px */
width:100%;
}
@media (min-width:1400px){
#area3-metrics .linechart-box{ height:220px; }
}
/* Ensure the canvas fills its parent box */
#metricsLineChart{
width:100% !important;
height:100% !important;
display:block;
}
/* Compact table spacing + right-aligned numeric columns */
#area3-metrics .compact-table > :not(caption) > * > *{
padding:.35rem .5rem;
}
#area3-metrics .metric-cell{
text-align:right;
font-variant-numeric:tabular-nums;
white-space:nowrap;
}
/* Sticky table header so labels remain visible while scrolling */
#area3-metrics .table-header{
position:sticky;
top:0;
z-index:1;
background:#fff; /* or var(--bs-body-bg) if you use Bootstrap vars */
}
/* Optional: scrollable table body if it grows large */
#area3-metrics .sample-table-wrap{
max-height:560px;
overflow:auto;
-webkit-overflow-scrolling:touch;
}
/* Viral Topics: compact numeric columns */
#viral-topics .table td.text-end, #viral-topics .table th.text-end{
white-space: nowrap;
font-variant-numeric: tabular-nums;
}
/* Section 3: compact numeric columns */
#nascent-trends .table td.text-end, #nascent-trends .table th.text-end{
white-space: nowrap;
font-variant-numeric: tabular-nums;
}
/* ===== Section 3 layout & polish ===== */
#nascent-trends .section3-grid{
display:grid;
grid-template-columns: 1fr;
gap: 18px;
}
@media (min-width: 992px){
#nascent-trends .section3-grid{
grid-template-columns: 1fr 1fr;
align-items:start;
}
}
/* ===== Section 3 readability ===== */
#nascent-trends .nt-block { padding: 10px 12px; }
#nascent-trends .nt-summary {
font-size: 0.975rem;
color: #4B5563; /* slate-600 */
line-height: 1.6;
}
/* Tables: let them scroll horizontally on small screens */
#nascent-trends .table-wrap { overflow-x: auto; border: 1px solid #E5E7EB; }
#nascent-trends .table-wrap-tight { overflow-x: auto; }
#nascent-trends .table td.text-end, #nascent-trends .table th.text-end {
white-space: nowrap; font-variant-numeric: tabular-nums;
}
/* Card grid: tidy, symmetrical */
#nascent-trends .card-grid {
display: grid; gap: 16px;
grid-template-columns: 1fr;
}
@media (min-width: 992px){
#nascent-trends .card-grid { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 1400px){
#nascent-trends .card-grid { grid-template-columns: 1fr 1fr 1fr 1fr; }
}
#nascent-trends .card-soft {
border: 1px solid #E5E7EB;
border-radius: 12px;
overflow: hidden;
}
#nascent-trends .card-soft-title {
background: #F9FAFB; /* gray-50 */
font-weight: 600;
}
#nascent-trends .list-tight { padding-left: 1.15rem; }
#nascent-trends .list-tight li { margin: 6px 0; }
/* Full-width block + summary */
#nascent-trends .nt-block { padding: 10px 12px; }
#nascent-trends .nt-summary { font-size: 0.975rem; color: #4B5563; line-height: 1.6; }
/* Accent cards */
#nascent-trends .card-accent { border: 0; border-radius: 14px; overflow: hidden; box-shadow: 0 1px 2px rgba(0,0,0,.05); }
#nascent-trends .card-accent .card-header { font-weight: 700; border: 0; }
#nascent-trends .card-accent .card-body { background: #fff; }
#nascent-trends .card-accent--indigo .card-header { background: #EEF2FF; color:#111827; } /* indigo-50 */
#nascent-trends .card-accent--emerald .card-header { background: #ECFDF5; color:#065F46; } /* emerald-50/800 */
#nascent-trends .card-accent--rose .card-header { background: #FFF1F2; color:#9F1239; } /* rose-50/900 */
#nascent-trends .card-accent--sky .card-header { background: #F0F9FF; color:#075985; } /* sky-50/900 */
#nascent-trends .card-accent--amber .card-header { background: #FFFBEB; color:#92400E; } /* amber-50/800 */
/* Tables */
#nascent-trends .table-wrap { overflow-x: auto; border: 1px solid #E5E7EB; }
#nascent-trends .table td.text-end, #nascent-trends .table th.text-end {
white-space: nowrap; font-variant-numeric: tabular-nums;
}
/* List spacing */
#nascent-trends .list-tight { padding-left: 1.15rem; }
#nascent-trends .list-tight li { margin: 6px 0; }
/* Subtitles */
#nascent-trends .subtitle { font-weight: 700; color:#111827; }
/* Sub-tabs styling inside Nascent Trends */
#nascent-trends .subtabs .nav-link.active{
background:#111827; color:#fff;
}
#nascent-trends .subtabs .nav-link{
border:1px solid #E5E7EB;
}