Template:Home/ConservationPanel.css
Template page
More actions
/* ===== 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;
}
}