@import url('https://fonts.googleapis.com/css2?family=Fraunces:wght@600&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');
:root{
  --lagoon:#0F4C56; --lagoon-dark:#0A2E33; --coral:#FF6F4C; --coral-dark:#E1512F; --gold:#E4B15D;
  --sand:#F6F3EC; --sand-2:#EFEAE0; --ink:#152526; --ink-soft:#5b7072; --line:#E4E0D4;
  --shadow:0 16px 40px -22px rgba(10,46,51,.35);
}
*,*::before,*::after{ box-sizing:border-box; }
body{ margin:0; font-family:'Plus Jakarta Sans',sans-serif; background:var(--sand); color:var(--ink); }
a{ color:inherit; text-decoration:none; }
.icon{ width:1.1em; height:1.1em; vertical-align:-.2em; }
.admin-shell{ display:flex; min-height:100vh; }
.admin-sidebar{ width:250px; flex-shrink:0; background:var(--lagoon-dark); color:#fff; padding:22px 16px; position:sticky; top:0; height:100vh; overflow-y:auto; }
.admin-brand{ display:flex; align-items:center; gap:10px; font-family:'Fraunces',serif; font-size:1.25rem; font-weight:600; padding:8px 10px 26px; }
.admin-nav a{ display:flex; align-items:center; gap:10px; padding:12px 14px; border-radius:12px; color:rgba(255,255,255,.72); font-weight:600; font-size:.9rem; margin-bottom:2px; transition:background .2s ease,color .2s ease; }
.admin-nav a:hover{ background:rgba(255,255,255,.08); color:#fff; }
.admin-nav a.active{ background:var(--coral); color:#fff; }
.admin-nav .group-label{ text-transform:uppercase; font-size:.7rem; letter-spacing:.1em; color:rgba(255,255,255,.4); padding:18px 14px 6px; font-weight:800; }
.admin-main{ flex:1; min-width:0; }
.admin-topbar{ display:flex; align-items:center; justify-content:space-between; padding:18px 28px; background:#fff; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:20; }
.admin-content{ padding:28px; max-width:1280px; }
.admin-user{ display:flex; align-items:center; gap:10px; font-weight:700; font-size:.88rem; }
.avatar-circle{ width:36px; height:36px; border-radius:50%; background:var(--coral); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; }

.card{ background:#fff; border:1px solid var(--line); border-radius:18px; padding:22px; box-shadow:var(--shadow); }
.stat-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:26px; }
@media (max-width:900px){ .stat-grid{ grid-template-columns:repeat(2,1fr); } .admin-sidebar{ position:fixed; left:-260px; z-index:100; transition:left .3s ease; } .admin-sidebar.open{ left:0; } }
.stat-card{ background:#fff; border:1px solid var(--line); border-radius:16px; padding:18px; }
.stat-card .stat-icon{ width:38px; height:38px; border-radius:12px; background:rgba(15,76,86,.1); display:flex; align-items:center; justify-content:center; color:var(--lagoon); margin-bottom:10px; }
.stat-card .stat-value{ font-family:'Fraunces',serif; font-size:1.7rem; font-weight:600; }
.stat-card .stat-label{ color:var(--ink-soft); font-size:.82rem; font-weight:600; }

table{ width:100%; border-collapse:collapse; font-size:.9rem; }
th{ text-align:left; padding:12px 14px; background:var(--sand); color:var(--ink-soft); font-size:.76rem; text-transform:uppercase; letter-spacing:.05em; font-weight:800; }
td{ padding:12px 14px; border-bottom:1px solid var(--line); vertical-align:middle; }
tr:last-child td{ border-bottom:0; }
.table-wrap{ overflow-x:auto; }

.btn{ display:inline-flex; align-items:center; gap:6px; padding:10px 18px; border-radius:10px; font-weight:700; font-size:.86rem; border:1px solid transparent; cursor:pointer; }
.btn-primary{ background:var(--lagoon); color:#fff; }
.btn-primary:hover{ background:var(--lagoon-dark); }
.btn-accent{ background:var(--coral); color:#fff; }
.btn-accent:hover{ background:var(--coral-dark); }
.btn-ghost{ background:#fff; border-color:var(--line); color:var(--ink); }
.btn-ghost:hover{ background:var(--sand); }
.btn-danger{ background:#fff; border-color:#f2c9c2; color:#c1401f; }
.btn-danger:hover{ background:#fff3f1; }
.btn-sm{ padding:7px 12px; font-size:.78rem; border-radius:8px; }

.badge{ display:inline-flex; padding:4px 11px; border-radius:999px; font-size:.74rem; font-weight:800; }
.badge-green{ background:#e3f5ea; color:#1c8a4d; }
.badge-yellow{ background:#fdf1da; color:#b6801c; }
.badge-red{ background:#fdeceb; color:#c1401f; }
.badge-blue{ background:#e6f1f6; color:#1c6f8a; }
.badge-gray{ background:var(--sand-2); color:var(--ink-soft); }

.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:760px){ .form-grid{ grid-template-columns:1fr; } }
.form-group{ margin-bottom:4px; }
.form-group label{ display:block; font-weight:700; font-size:.8rem; margin-bottom:6px; color:var(--ink-soft); }
.form-group input, .form-group select, .form-group textarea{
  width:100%; padding:11px 13px; border:1px solid var(--line); border-radius:10px; font-family:inherit; font-size:.92rem; background:var(--sand);
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus{ outline:2px solid var(--coral); background:#fff; }
.form-section-title{ font-family:'Fraunces',serif; font-size:1.1rem; margin:26px 0 14px; color:var(--lagoon-dark); }
.color-input-row{ display:flex; align-items:center; gap:10px; }
.color-input-row input[type=color]{ width:46px; height:40px; padding:2px; }

.alert{ padding:14px 18px; border-radius:12px; font-weight:600; font-size:.88rem; margin-bottom:18px; }
.alert-success{ background:#e3f5ea; color:#1c8a4d; }
.alert-error{ background:#fdeceb; color:#c1401f; }

.page-head{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px; margin-bottom:22px; }
.page-head h1{ font-family:'Fraunces',serif; font-size:1.6rem; margin:0; }
.thumb{ width:52px; height:40px; object-fit:cover; border-radius:8px; }
.menu-btn{ display:none; background:none; border:0; }
@media (max-width:900px){ .menu-btn{ display:block; } }
.weight-bar{ width:70px; height:6px; background:var(--sand-2); border-radius:6px; overflow:hidden; display:inline-block; margin-left:6px; }
.weight-bar span{ display:block; height:100%; background:var(--coral); }

/* Location autocomplete (OpenStreetMap / Nominatim) */
.loc-suggest-dropdown{
  position:fixed; background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow);
  z-index:900; overflow:hidden; max-height:280px; overflow-y:auto;
}
.loc-suggest-item{ display:flex; align-items:center; gap:10px; padding:11px 14px; font-size:.86rem; cursor:pointer; border-bottom:1px solid var(--line); }
.loc-suggest-item:last-child{ border-bottom:0; }
.loc-suggest-item:hover, .loc-suggest-item.highlighted{ background:var(--sand); color:var(--coral-dark); }
.loc-suggest-item .icon{ color:var(--coral-dark); flex-shrink:0; width:16px; height:16px; }
.loc-suggest-attribution{ padding:6px 14px; font-size:.65rem; color:var(--ink-soft); background:var(--sand-2); }
