:root{--bg: #0f1115;--panel: #1a1e27;--line: #2a2f3a;--text: #e7eaf0;--muted: #9aa4b2;--accent: #4f9cff}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}.app{max-width:960px;margin:0 auto;padding:0 1rem}header{padding:1.25rem 0;border-bottom:1px solid var(--line);margin-bottom:1.5rem}.brand{font-size:1.25rem;font-weight:700}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}h1{margin:0;font-size:1.5rem}button{background:var(--accent);color:#fff;border:0;border-radius:8px;padding:.55rem 1rem;font-size:.95rem;cursor:pointer}button:hover{filter:brightness(1.1)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;transition:transform .12s ease,border-color .12s ease}.card:hover{transform:translateY(-3px);border-color:var(--accent)}.card-flag{width:100%;height:130px;object-fit:cover;display:block;background:#000}.card-flag--emoji,.detail-flag--emoji{display:flex;align-items:center;justify-content:center;font-size:3rem;background:var(--panel)}.detail-flag--emoji{width:160px;height:106px;border-radius:8px;border:1px solid var(--line)}.card-body{padding:.75rem .9rem}.card-body h3{margin:0 0 .25rem;font-size:1.05rem}.card-body p{margin:.15rem 0;font-size:.85rem}.muted{color:var(--muted)}.back{display:inline-block;margin-bottom:1rem;color:var(--accent)}.detail-head{display:flex;gap:1.25rem;align-items:center;margin-bottom:1.5rem}.detail-flag{width:160px;border-radius:8px;border:1px solid var(--line)}.rows{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}.row{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border-bottom:1px solid var(--line)}.row:last-child{border-bottom:0}.row-label{color:var(--muted)}.row-value{text-align:right;font-weight:500}.map-link{display:inline-block;margin-top:1.25rem;color:var(--accent)}.status{padding:2rem 0;color:var(--muted)}.status.error{color:#ff8080}
