/*
 * Louilink plugin presentation
 * Shared palette: white #fff, ink #171717, gold #f5c518.
 * This stylesheet overrides frontend plugin visuals without altering plugin data.
 */

/* 1. Shared content sizing */
.ll-prose .louilink-ranked-lists-container,
.ll-prose .louilink-review-frontend,
.ll-prose .louilink-review-container,
.ll-prose .ltm-timeline-wrapper-frame {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

/* 2. Rating plugin */
.louilink-review-frontend,
.louilink-review-container,
.louilink-review-frontend-centered {
  background: #fff;
  color: #292929;
  border: 1px solid #e5e5e5;
  border-radius: 8px;
  box-shadow: none;
  padding: clamp(16px, 3vw, 28px);
  margin-inline: 0;
}

.louilink-review-frontend h3,
.louilink-score-title {
  color: #171717;
  border-bottom: 3px solid #f5c518;
  padding-bottom: 12px;
}

.louilink-progress-ring-fg {
  stroke: #f5c518;
}

.louilink-rating-category-frontend {
  gap: 12px;
  flex-wrap: wrap;
  border-bottom: 1px solid #eee;
  padding: 12px 0;
}

.louilink-category-label {
  color: #333;
  font-weight: 700;
}

.louilink-review-frontend .louilink-stars-frontend {
  flex-wrap: wrap;
}

/* The plugin applies centered-column styles to the outer wrapper too.
 * Override those so the score can actually sit alongside the ratings.
 */
.louilink-review-frontend.louilink-review-frontend-centered {
  display: grid !important;
  width: 100%;
  max-width: 100%;
  margin: 20px 0;
  text-align: left;
  align-items: start;
}

.louilink-review-frontend > h3 {
  text-align: left;
  color: #171717 !important;
}

/* 2a. Ratings summary: align final score at the right */
.louilink-review-frontend {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 148px;
  gap: 16px 22px;
  align-items: start;
}

.louilink-review-frontend > h3 {
  grid-column: 1 / -1;
  margin-top: 0;
}

.louilink-review-frontend .louilink-review-categories-frontend {
  grid-column: 1;
  min-width: 0;
  margin-bottom: 0;
}

.louilink-review-frontend .louilink-review-frontend-centered,
.louilink-review-frontend .louilink-total-score-wrapper {
  grid-column: 2;
  grid-row: 2;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin: 0;
  padding: 12px 6px;
  background: #fafafa;
  border: 1px solid #eee;
  box-shadow: none;
}

.louilink-review-frontend .louilink-score-title {
  color: #171717 !important;
  border-bottom-color: #f5c518 !important;
  font-size: 15px;
  line-height: 1.35;
}

.louilink-review-frontend .louilink-progress-ring-fg,
.louilink-review-frontend .louilink-progress-ring circle:last-child {
  stroke: #f5c518 !important;
}

.louilink-review-frontend .louilink-score-text,
.louilink-review-frontend #louilink-final-score-value-frontend {
  color: #171717 !important;
}

@media (max-width: 560px) {
  .louilink-review-frontend {
    grid-template-columns: minmax(0, 1fr);
  }

  .louilink-review-frontend .louilink-review-categories-frontend,
  .louilink-review-frontend .louilink-review-frontend-centered,
  .louilink-review-frontend .louilink-total-score-wrapper {
    grid-column: 1;
    grid-row: auto;
  }

  .louilink-review-frontend .louilink-review-frontend-centered,
  .louilink-review-frontend .louilink-total-score-wrapper {
    justify-self: end;
    max-width: 160px;
  }
}

/* 3. Ranked list plugin */
.louilink-ranked-lists-container {
  display: grid;
  gap: 20px;
}

.louilink-ranked-list-item {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-wrap: anywhere;
  box-sizing: border-box;
  padding: clamp(16px, 3vw, 26px);
  border: 1px solid #e5e5e5;
  border-left: 4px solid #f5c518;
  border-radius: 8px;
  background: #fff;
  color: #292929;
  box-shadow: none;
}

.louilink-ranked-list-title {
  margin: 0 0 16px;
  color: #171717;
  font-size: clamp(20px, 2.5vw, 28px);
  line-height: 1.25;
}

.louilink-ranked-list-title a,
.louilink-ranked-list-content a {
  color: #171717;
}

.louilink-ranked-list-title a:hover,
.louilink-ranked-list-content a:hover {
  color: #8a6900;
}

.louilink-ranked-list-item .rank-number {
  color: #a98200;
  font-weight: 900;
}

.louilink-ranked-list-image img {
  max-width: 100%;
  height: auto;
  border-radius: 6px;
}

/* 4. Timeline: preserve the original starfield, but make the header legible */
.ltm-banner-header,
.ltm-timeline-wrapper-frame .ltm-banner-header {
  background: #171717 !important;
  background-image: none !important;
  border-color: #333 !important;
  border-top-color: #f5c518 !important;
}
.ltm-banner-header h1,
.ltm-banner-header h2,
.ltm-banner-header .ltm-banner-title {
  color: #fff !important;
  text-shadow: none !important;
}
.ltm-banner-header .ltm-source-btn,
.ltm-banner-header a.ltm-source-btn {
  color: #171717 !important;
  background: #fff !important;
}

/* Sidebar topic list: keep labels and counts on one row. */
.ll-widget-categories { padding-left: 0 !important; }
.ll-widget-categories > li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
  flex-wrap: nowrap;
}
.ll-widget-categories > li > a { flex: 1 1 auto; min-width: 0; overflow-wrap: break-word; }
.ll-widget-categories > li > .children { display: none; }

/* 4. Timeline: preserve each timeline's original background image */
.ltm-timeline-wrapper-frame {
  color: #171717;
  border: 1px solid #e8e8e8;
  border-radius: 8px;
  padding: clamp(14px, 3vw, 30px) !important;
  overflow: hidden;
}

.ltm-banner-header {
  min-height: 0 !important;
  padding: clamp(22px, 4vw, 38px) !important;
  margin-bottom: 26px !important;
  background: #171717 !important;
  border: 1px solid #333;
  border-top: 5px solid #f5c518;
  border-radius: 8px;
  box-shadow: none;
}

.ltm-banner-header h1 {
  color: #fff !important;
  text-shadow: none !important;
  font-size: clamp(24px, 3.5vw, 36px) !important;
  overflow-wrap: anywhere;
}

.ltm-source-btn {
  background: #fff !important;
  border: 1px solid #dedede !important;
  color: #171717 !important;
  box-shadow: none;
}

.ltm-source-btn:hover {
  background: #f5c518 !important;
  color: #171717 !important;
  border-color: #f5c518 !important;
}

.ltm-timeline-container {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.ltm-timeline-container::after {
  background-color: #f5c518 !important;
}

.ltm-timeline-block {
  min-width: 0;
  padding: 10px clamp(16px, 3vw, 30px) !important;
}

.ltm-timeline-block::after {
  border-color: #f5c518 !important;
}

.ltm-node-card {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  background: #fff;
  border-color: #e5e5e5;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .04);
}

.ltm-node-card:hover {
  border-color: #f5c518 !important;
}

.ltm-node-card h4,
.ltm-node-card h4 a {
  color: #171717 !important;
  overflow-wrap: anywhere;
}

.ltm-node-card h4 a:hover,
.ltm-date-tag {
  color: #8a6900 !important;
}

.ltm-desc-text {
  color: #555;
  line-height: 1.65;
}

/* 5. Narrow screens: one readable timeline column */
@media (max-width: 768px) {
  .ltm-timeline-container::after {
    left: 14px !important;
  }

  .ltm-timeline-block,
  .ltm-timeline-block.ltm-left,
  .ltm-timeline-block.ltm-right {
    left: 0 !important;
    width: 100% !important;
    padding: 10px 0 10px 36px !important;
    text-align: left !important;
  }

  .ltm-timeline-block::after {
    left: 6px !important;
    right: auto !important;
  }

  .ltm-timeline-block.ltm-left .ltm-node-card {
    float: none;
  }

  .louilink-review-frontend,
  .louilink-review-container {
    margin-inline: 0;
  }
}

@media (max-width: 480px) {
  .ltm-card-compact-view {
    align-items: flex-start;
    gap: 10px;
  }

  .ltm-thumb-mini {
    width: 44px;
    height: 44px;
  }
}
