@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,700&family=Manrope:wght@400;500;600;700&display=swap";:root{--bg: #f5f0e8;--bg-alt: #e8ddd0;--ink: #1f2937;--ink-soft: #475569;--paper: rgba(255, 255, 255, .72);--paper-strong: #ffffff;--line: rgba(31, 41, 55, .14);--accent: #0f766e;--accent-soft: #99f6e4;--highlight: #1d4ed8;--amber: #b45309;--danger: #dc2626;--success: #15803d;--shadow-sm: 0 8px 20px rgba(15, 23, 42, .08);--shadow-lg: 0 20px 45px rgba(15, 23, 42, .14);--radius-sm: 12px;--radius-md: 18px;--radius-lg: 26px}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:Manrope,Segoe UI,sans-serif;color:var(--ink);background:radial-gradient(80rem 40rem at -15% -15%,rgba(15,118,110,.14),transparent 60%),radial-gradient(80rem 40rem at 120% 10%,rgba(180,83,9,.12),transparent 55%),linear-gradient(145deg,var(--bg),var(--bg-alt))}h1,h2,h3{font-family:Fraunces,Georgia,serif;margin:0;line-height:1.2}p{margin:0}a{color:inherit}code{font-family:SFMono-Regular,Menlo,monospace;font-size:.92em}.page{max-width:1360px;margin:0 auto;padding:1.35rem;display:grid;gap:1rem}.panel{border-radius:var(--radius-md);border:1px solid var(--line);background:var(--paper);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);box-shadow:var(--shadow-sm)}.hero{padding:1.4rem;display:grid;gap:.8rem}.hero h1{font-size:clamp(1.6rem,3vw,2.8rem);letter-spacing:.01em}.hero__eyebrow{display:inline-flex;width:fit-content;border-radius:999px;padding:.3rem .75rem;border:1px solid rgba(15,118,110,.25);background:#99f6e466;font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#0f766e}.hero__description{max-width:980px;color:var(--ink-soft);line-height:1.55}.hero__meta{display:flex;gap:1rem;flex-wrap:wrap;color:var(--ink-soft);font-size:.92rem}.methodology{padding:1rem 1.2rem;display:grid;gap:.5rem}.methodology p{color:var(--ink-soft);line-height:1.5}.filters{padding:1rem;display:grid;gap:.9rem}.filters__row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem}.filters__search-row{display:grid;grid-template-columns:1fr auto;gap:.75rem;align-items:end}.filters label{display:grid;gap:.4rem;font-size:.86rem;color:var(--ink-soft)}select,input{width:100%;border:1px solid rgba(71,85,105,.25);border-radius:var(--radius-sm);background:#ffffffe6;padding:.62rem .72rem;font:inherit;color:var(--ink)}select:focus,input:focus,button:focus{outline:2px solid rgba(29,78,216,.3);outline-offset:2px}.btn{border:0;border-radius:var(--radius-sm);padding:.68rem .9rem;background:linear-gradient(135deg,var(--accent),#115e59);color:#fff;font-weight:700;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease;box-shadow:0 10px 20px #0f766e40}.btn:hover{transform:translateY(-1px)}.btn:disabled{cursor:not-allowed;opacity:.6}.btn--ghost{background:transparent;color:var(--ink);border:1px solid var(--line);box-shadow:none}.kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem}.kpi-card{padding:1rem;display:grid;gap:.45rem;background:linear-gradient(170deg,#ffffffeb,#ffffffbf)}.kpi-card__label{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;font-weight:700}.kpi-card__value{font-size:clamp(1.3rem,2vw,1.8rem);font-family:Fraunces,serif}.kpi-card__hint{font-size:.82rem;color:var(--ink-soft)}.chart-grid{display:grid;gap:.75rem}.chart-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}.chart-grid--four{grid-template-columns:repeat(4,minmax(0,1fr))}.chart-card{padding:.9rem;background:#ffffffe0}.chart-card__head{display:grid;gap:.2rem;margin-bottom:.5rem}.chart-card__head h3{font-size:1rem}.chart-card__head p{font-size:.8rem;color:var(--ink-soft)}.insights{padding:1rem;display:grid;gap:.6rem}.insights ul{margin:0;padding-left:1.1rem;display:grid;gap:.45rem}.insights li{color:#1e293b;line-height:1.4}.table-card{padding:1rem;display:grid;gap:.7rem}.table-card__head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.table-card__head p,.table-card__hint{color:var(--ink-soft);font-size:.85rem}.table-wrap{overflow:auto;border-radius:var(--radius-sm);border:1px solid rgba(71,85,105,.15)}table{width:100%;border-collapse:collapse;min-width:920px;background:#ffffffe0}th,td{padding:.6rem .65rem;text-align:left;border-bottom:1px solid rgba(71,85,105,.12);font-size:.86rem}th{background:#e2e8f0cc;position:sticky;top:0;z-index:1}.status-card{padding:2rem;text-align:center;font-size:1rem}.status-card--error{border-color:#dc26264d;background:#fee2e2cc}.admin-page{max-width:980px}.admin-upload,.versions-card{padding:1rem;display:grid;gap:.8rem}.admin-upload form{display:grid;gap:.7rem;grid-template-columns:1fr 1fr auto;align-items:end}.notice{border-radius:var(--radius-sm);padding:.6rem .75rem}.notice--success{border:1px solid rgba(21,128,61,.25);background:#bbf7d0b3}.notice--error{border:1px solid rgba(220,38,38,.24);background:#fecacab3}.versions-list{display:grid;gap:.7rem}.version-item{border-radius:var(--radius-sm);border:1px solid rgba(71,85,105,.2);background:#ffffffd9;padding:.85rem;display:grid;gap:.45rem}.version-item header{display:flex;justify-content:space-between;gap:1rem;align-items:baseline}.version-item header p{color:var(--ink-soft);font-size:.85rem}.version-item--current{border-color:#0f766e73;box-shadow:var(--shadow-lg)}.tag-current{display:inline-flex;width:fit-content;border-radius:999px;border:1px solid rgba(15,118,110,.3);background:#99f6e46b;color:#0f766e;font-size:.75rem;font-weight:700;padding:.25rem .6rem}@media(max-width:1180px){.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.chart-grid--four{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-grid--three{grid-template-columns:1fr}.filters__row{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:860px){.page{padding:.9rem}.filters__row{grid-template-columns:repeat(2,minmax(0,1fr))}.filters__search-row{grid-template-columns:1fr}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-grid--two,.chart-grid--four,.admin-upload form{grid-template-columns:1fr}}@media(max-width:560px){.kpi-grid{grid-template-columns:1fr}.hero__meta{display:grid;gap:.3rem}}
