:root {
    --bg:#eef9ff;
    --card:#ffffff;
    --text:#102033;
    --muted:#64748b;
    --primary:#0284c7;
    --primary-2:#38bdf8;
    --soft:#dff6ff;
    --border:rgba(14,116,144,.16);
    --danger:#ef4444;
    --ok:#16a34a;
    --shadow:0 18px 55px rgba(2,132,199,.12);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
    margin:0;
    font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
    background:radial-gradient(circle at top left, rgba(56,189,248,.26), transparent 36%), linear-gradient(145deg,#eef9ff,#fff);
    color:var(--text);
}
a { color:inherit; }
button, input, select { font:inherit; }
button { border:0; cursor:pointer; }
.admin-top {
    position:sticky;
    top:0;
    z-index:10;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:16px 18px;
    background:rgba(255,255,255,.84);
    border-bottom:1px solid var(--border);
    backdrop-filter:blur(16px);
}
.admin-top p, .section-kicker {
    margin:0;
    color:var(--primary);
    font-size:.7rem;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.09em;
}
.admin-top h1 { margin:2px 0 0; font-size:1.35rem; letter-spacing:-.04em; }
.admin-top nav { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
.admin-top a, button {
    border-radius:14px;
    background:var(--primary);
    color:#fff;
    padding:10px 13px;
    font-weight:950;
    text-decoration:none;
    box-shadow:0 10px 24px rgba(2,132,199,.18);
}
.admin-top a:not(.map-link) { background:var(--soft); color:var(--text); box-shadow:none; }
.admin-shell { width:min(1280px, 100%); margin:0 auto; padding:18px; }
.cards { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:16px; }
.cards div, .panel, .login-card {
    background:var(--card);
    border:1px solid var(--border);
    border-radius:24px;
    box-shadow:var(--shadow);
}
.cards div { padding:18px; display:grid; gap:4px; }
.cards strong { font-size:1.65rem; letter-spacing:-.04em; }
.cards span, small, .login-card p, .hero-panel span, .panel-title span { color:var(--muted); }
.panel { padding:18px; margin-bottom:18px; }
.panel h2 { margin:2px 0 0; letter-spacing:-.035em; }
.panel-title { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:14px; }
.hero-panel { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.settings-form { display:grid; grid-template-columns:96px 110px auto; align-items:end; gap:8px; min-width:320px; }
.settings-form label { color:var(--muted); font-size:.76rem; font-weight:900; }
.table-wrap { overflow:auto; border-radius:18px; border:1px solid var(--border); background:#fff; }
table { width:100%; border-collapse:collapse; min-width:860px; background:#fff; }
.wide-table { min-width:1100px; }
th, td { padding:12px; border-bottom:1px solid var(--border); text-align:left; vertical-align:top; }
th { background:var(--soft); font-size:.75rem; text-transform:uppercase; letter-spacing:.06em; white-space:nowrap; }
td strong, td small { display:block; }
label { display:grid; gap:5px; color:var(--muted); font-size:.72rem; font-weight:900; }
select, input {
    width:100%;
    min-height:38px;
    border:1px solid var(--border);
    border-radius:12px;
    padding:0 10px;
    background:#fff;
    color:var(--text);
    outline:0;
}
select:focus, input:focus { border-color:var(--primary-2); box-shadow:0 0 0 4px rgba(56,189,248,.16); }
form { margin:0; }
.edit-grid { display:grid; grid-template-columns:repeat(2,minmax(160px,1fr)); gap:8px; }
.network-edit-grid { grid-template-columns:repeat(3,minmax(150px,1fr)); }
.coord-grid { display:grid; grid-template-columns:repeat(2,minmax(120px,1fr)); gap:8px; }
.small-input { width:110px; }
.actions { display:grid; gap:8px; min-width:150px; }
.actions form { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.inline-form { display:flex; gap:8px; align-items:center; }
.inline-form select { min-width:130px; }
.danger { background:var(--danger); }
.alert { padding:13px 14px; border-radius:16px; margin-bottom:14px; font-weight:850; }
.alert.ok { color:#14532d; background:#dcfce7; border:1px solid rgba(22,163,74,.18); }
.alert.error { color:#7f1d1d; background:#fee2e2; border:1px solid rgba(239,68,68,.2); }
.ad-form { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-bottom:12px; }
.edit-ad { display:grid; grid-template-columns:repeat(2,minmax(160px,1fr)); gap:8px; margin:0; }
.ad-thumb { width:72px; height:72px; border-radius:18px; object-fit:cover; background:var(--soft); border:1px solid var(--border); }
.no-image { display:inline-grid; place-items:center; width:72px; height:72px; border-radius:18px; background:var(--soft); color:var(--muted); font-size:.72rem; font-weight:900; text-align:center; }
.login-page { min-height:100vh; display:grid; place-items:center; padding:18px; }
.login-card { width:min(430px,100%); padding:24px; }
.login-card h1 { margin:0 0 8px; letter-spacing:-.04em; }
.login-card form { display:grid; gap:8px; margin:16px 0; }
.login-card label { color:var(--text); font-size:.82rem; font-weight:900; }
.login-card a { display:inline-block; margin-top:14px; color:var(--primary); font-weight:950; }
@media (max-width:900px){
    .cards{grid-template-columns:repeat(2,1fr)}
    .admin-top{align-items:flex-start; flex-direction:column}
    .admin-top nav{justify-content:flex-start}
    .hero-panel{align-items:stretch; flex-direction:column}
    .settings-form{grid-template-columns:1fr; min-width:0}
    .ad-form{grid-template-columns:1fr}
}
