Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Template:Home/ConservationPanel.css

Template page
Revision as of 08:26, 24 August 2025 by Eloise Zomia (talk | contribs)
/* ===== Container ===== */
.lw-cons-panel{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:20px;box-shadow:0 1px 2px rgba(16, 24, 40, 0.04);}
.lw-cons-title{font-weight:700;font-size:16px;letter-spacing:.02em;color:#1f2937;margin:4px 0 14px;}

/* ===== KPIs ===== */
.lw-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:12px;}
.lw-kpi{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;padding:16px;text-align:center;}
.lw-kpi__num{font-weight:800;line-height:1;font-size:30px;color:#111827;margin-bottom:6px;}
.lw-kpi__label{font-size:13px;color:#6b7280;}
.lw-kpi__label a{color:inherit;text-decoration:none;}

/* responsive type fallback (no clamp) */
@media (max-width:420px){ .lw-kpi__num{font-size:22px;} }
@media (min-width:421px) and (max-width:1024px){ .lw-kpi__num{font-size:28px;} }
@media (min-width:1025px){ .lw-kpi__num{font-size:34px;} }

/* ===== Status bar (single row) ===== */
.lw-statusbar{display:flex;height:10px;border-radius:999px;overflow:hidden;background:#eef2f7;border:0;margin:8px 0 6px;}
.lw-seg{height:100%;}
.lw-s-stable{background:#2e7d32;}
.lw-s-vulnerable{background:#f59e0b;}
.lw-s-endangered{background:#ef6c00;}
.lw-s-critical{background:#dc2626;}
.lw-s-extinct{background:#111827;}
.lw-s-unknown{background:#9ca3af;}

/* LEGEND */
.lw-legend {
  display: flex; flex-wrap: wrap; gap: .5rem .75rem;
  margin: .75rem 0 1rem;
  padding: 0; list-style: none;
  font-size: .875rem; line-height: 1.25rem;
}
.lw-legend__item {
  display: inline-flex; align-items: center; gap: .4rem;
  padding: .25rem .6rem;
  border-radius: 999px;
  background: #f8fafc; /* subtle chip bg */
  color: #334155;
}
.lw-legend .dot {
  width: .6em; height: .6em; border-radius: 50%;
  display: inline-block; box-shadow: inset 0 0 0 1px rgba(0,0,0,.06);
}
.lw-legend .lbl { font-weight: 500; }
.lw-legend .count {
  margin-left: .15rem; opacity: .8;
  font-feature-settings: "tnum" 1; /* tabular nums */
}

/* Status colors – tune to your palette if needed */
.dot--stable { background:#2e7d32; }
.dot--vuln   { background:#e69500; }
.dot--end    { background:#ef6c00; }
.dot--crit   { background:#d32f2f; }
.dot--ext    { background:#6b7280; }
.dot--unk    { background:#94a3b8; }

/* ===== Conservation panel: Actions ===== */
.lw-cons-panel .lw-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem .5rem;
  margin: .6rem 0 0;
}

/* Pill buttons aligned with site palette */
.lw-cons-panel .lw-actions .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .55rem .95rem;
  border-radius: 999px;
  font-weight: 600;
  font-size: .875rem;
  line-height: 1.25rem;
  text-decoration: none;
  border: 1px solid transparent;
  box-shadow: 0 1px 0 rgba(0,0,0,.04);
  transition: background-color .15s ease, border-color .15s ease, transform .06s ease;
}

/* Focus ring (TemplateStyles-safe) */
.lw-cons-panel .lw-actions .btn:focus {
  outline: 2px solid #a7d1b0; /* soft green ring */
  outline-offset: 2px;
}

/* Primary: deep green from your theme */
.lw-cons-panel .lw-actions .btn--primary {
  background: #2d5016;
  color: #fff;
}
.lw-cons-panel .lw-actions .btn--primary:hover { background: #3d6b1f; }
.lw-cons-panel .lw-actions .btn--primary:active { transform: translateY(1px); }

/* Ghost: white with hairline border */
.lw-cons-panel .lw-actions .btn--ghost {
  background: #ffffff;
  border-color: #e5e7eb;
  color: #1f2937;
}
.lw-cons-panel .lw-actions .btn--ghost:hover {
  border-color: #cfd6de;
  background: #f8fafc;
}

/* Muted: subtle gray */
.lw-cons-panel .lw-actions .btn--muted {
  background: #f3f4f6;
  color: #374151;
  border-color: #e5e7eb;
}
.lw-cons-panel .lw-actions .btn--muted:hover { background: #eceff2; }

/* Remove MediaWiki redlink styling *inside* this block only */
.lw-cons-panel .lw-actions a.new { color: inherit; border-color: #e5e7eb; }

/* Mobile touch targets */
@media (max-width: 768px) {
  .lw-cons-panel .lw-actions .btn { padding: .6rem .8rem; }
}


/* ===== Responsive ===== */
@media (max-width:720px){
  .lw-kpis{grid-template-columns:1fr;}
  .lw-actions{gap:8px;}
}

/* Conservation Panel - Mobile-Optimized TemplateStyles */

/* Panel shell */
.mw-parser-output .lw-cons-panel {
  background:#fff; border:1px solid #e6ebea; border-radius:14px;
  padding:18px 18px 16px; margin:24px 0; box-shadow:0 1px 2px rgba(0,0,0,.03);
  color:#26421a;
}
.mw-parser-output .lw-cons-title{
  font-family:Georgia,"Times New Roman",serif; font-size:1.6rem; line-height:1.2; margin:4px 2px 14px;
}

/* KPIs - responsive 3-column to 1-column */
.mw-parser-output .lw-kpis{
  display:flex; gap:12px; flex-wrap:wrap; margin:4px 0 10px;
}
.mw-parser-output .lw-kpi{
  flex:1 1 180px; background:#f8fbf7; border:1px solid #e6ebea; 
  border-radius:10px; padding:12px 14px; min-width:0;
}
.mw-parser-output .lw-kpi__num{
  font-size:1.6rem; font-weight:700; line-height:1;
}
.mw-parser-output .lw-kpi__label{
  font-size:.9rem; color:#44613a; margin-top:6px; 
  word-wrap:break-word; hyphens:auto;
}

/* Status bar - maintains proportions, readable labels */
.mw-parser-output .lw-statusbar{
  display:flex; height:28px; border-radius:999px; overflow:hidden; 
  border:1px solid #e6ebea; background:#f4f7f4; margin:8px 0;
}
.mw-parser-output .lw-statusbar .seg{
  display:flex; align-items:center; justify-content:center;
  font-size:.85rem; font-weight:600; color:#17320f; 
  border-right:1px solid rgba(0,0,0,.06); min-width:24px;
}
.mw-parser-output .lw-statusbar .seg:last-child{border-right:none}
.mw-parser-output .seg--stable{background:#e9f7ee}
.mw-parser-output .seg--vulnerable{background:#fff6df}
.mw-parser-output .seg--endangered{background:#ffeade}
.mw-parser-output .seg--critical{background:#ffe3e3}

/* Legend - responsive wrapping with better touch targets */
.mw-parser-output .lw-legend{
  display:flex; flex-wrap:wrap; gap:14px 18px; list-style:none; 
  padding:10px 4px 4px; margin:0;
}
.mw-parser-output .lw-legend li{
  display:flex; align-items:center; gap:8px; font-size:.92rem; 
  color:#35522b; min-height:28px; /* Better touch target */
}
.mw-parser-output .dot{
  width:10px; height:10px; border-radius:50%; display:inline-block; 
  border:1px solid rgba(0,0,0,.1); flex-shrink:0;
}
.mw-parser-output .dot--stable{background:#2ecc71}
.mw-parser-output .dot--vulnerable{background:#f1c40f}
.mw-parser-output .dot--endangered{background:#f39c12}
.mw-parser-output .dot--critical{background:#e74c3c}

/* Ghost pill actions - stack on mobile */
.mw-parser-output .lw-actions{
  display:flex; justify-content:center; align-items:center; flex-wrap:wrap;
  gap:12px; width:100%; max-width:1080px; margin:16px auto 2px auto;
}
.mw-parser-output .lw-actions a{
  display:inline-flex; align-items:center; justify-content:center;
  padding:9px 14px; min-width:13ch; border:1px solid #cfd7c9; border-radius:999px;
  background:#fff; color:#2d5016; font-weight:600; line-height:1.1; 
  text-decoration:none; white-space:nowrap; min-height:36px; /* Touch friendly */
}
.mw-parser-output .lw-actions a:hover{background:#f7faf6; border-color:#b8c6b4}
.mw-parser-output .lw-actions a:active{background:#f1f6f0; transform:translateY(1px)}

/* Mobile breakpoints */
@media (max-width: 480px) {
  .mw-parser-output .lw-cons-panel {
    padding:16px 14px; margin:16px 0; border-radius:12px;
  }
  
  .mw-parser-output .lw-cons-title{
    font-size:1.4rem; margin:2px 0 12px;
  }
  
  /* Stack KPIs on very small screens */
  .mw-parser-output .lw-kpis{
    gap:8px; margin:2px 0 12px;
  }
  .mw-parser-output .lw-kpi{
    flex:1 1 100%; padding:10px 12px;
  }
  .mw-parser-output .lw-kpi__num{font-size:1.4rem}
  .mw-parser-output .lw-kpi__label{font-size:.85rem; margin-top:4px}
  
  /* Adjust status bar for small screens */
  .mw-parser-output .lw-statusbar{
    height:24px; margin:6px 0;
  }
  .mw-parser-output .lw-statusbar .seg{
    font-size:.8rem; min-width:20px;
  }
  
  /* Legend adjustments */
  .mw-parser-output .lw-legend{
    gap:10px 14px; padding:8px 2px 2px;
  }
  .mw-parser-output .lw-legend li{
    font-size:.88rem; gap:6px;
  }
  
  /* Actions stack vertically on tiny screens */
  .mw-parser-output .lw-actions{
    gap:8px; margin:12px auto 0;
  }
  .mw-parser-output .lw-actions a{
    padding:8px 12px; min-width:11ch; font-size:.9rem;
  }
}

@media (max-width: 360px) {
  .mw-parser-output .lw-cons-panel {
    padding:14px 12px; margin:12px 0;
  }
  
  /* Force single column for KPIs */
  .mw-parser-output .lw-kpi{
    flex-basis:100%; margin-bottom:0;
  }
  
  /* Hide numbers in status bar if too cramped, keep colors visible */
  .mw-parser-output .lw-statusbar .seg{
    font-size:0; /* Hide text but keep color bars */
  }
  
  /* Compact legend */
  .mw-parser-output .lw-legend{
    gap:8px 12px;
  }
  .mw-parser-output .lw-legend li{
    font-size:.82rem;
  }
  
  /* Actions full width */
  .mw-parser-output .lw-actions a{
    flex:1 1 100%; max-width:none; text-align:center;
  }
}