:root{
  --tt-bg:#0B0F10;
  --tt-surface:#0F1919;
  --tt-glass:rgba(255,255,255,.06);
  --tt-border:rgba(255,255,255,.12);
  --tt-text-1:#EAFBF4;
  --tt-text-2:#9ED8C2;
  --tt-primary:#0D7C5C;
  --tt-focus:#12F2A3;
  --tt-support:#15B8A6;
}

html,body{height:100%;margin:0}
body{
  background: radial-gradient(1200px 700px at 10% -10%,rgba(18,242,163,.12),transparent 60%),
              radial-gradient(900px 600px at 90% -20%,rgba(21,184,166,.10),transparent 60%),
              var(--tt-bg);
  color:var(--tt-text-1);
  font: 15px/1.45 Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji","Segoe UI Emoji";
}

/* Particle canvas (full-page, behind content) */
#tt-particles{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.45}

/* App bar */
.appbar{position:sticky;top:0;z-index:3000;background:rgba(9,18,18,.7);backdrop-filter:blur(10px);border-bottom:1px solid var(--tt-border)}
.container{max-width:980px;margin:0 auto;padding:0 16px}
.appbar-compact{
  display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;
  grid-template-areas:"brand actions" "search search";
  gap:6px 10px;padding:10px 16px
}
.brand{grid-area:brand;display:flex;align-items:baseline;gap:10px;white-space:nowrap}
.brand .title{font-weight:800;font-size:20px}
.brand .sep{opacity:.5}
.brand .tagline{font-size:12px;color:var(--tt-text-2)}
.actions{grid-area:actions;display:flex;gap:8px}
.search-wrap{grid-area:search}
.search{width:100%;padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.06);border:1px solid var(--tt-border);color:var(--tt-text-1)}

/* Icon buttons */
.icon-btn{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;border:1px solid var(--tt-border);background:rgba(255,255,255,.05);transition:transform .2s, box-shadow .2s}
.icon-btn i{width:18px;height:18px;stroke:var(--tt-support);filter:drop-shadow(0 0 4px rgba(18,242,163,.45))}
.icon-btn:hover{transform:translateY(-1px);box-shadow:0 0 12px rgba(18,242,163,.25)}

/* Cards & glass */
.card{background:rgba(255,255,255,.05);backdrop-filter:blur(8px);border:1px solid var(--tt-border);border-radius:18px;padding:16px;margin:12px 0;box-shadow:0 10px 30px rgba(0,0,0,.25)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;border-radius:14px;border:1px solid var(--tt-border);background:rgba(255,255,255,.05);color:var(--tt-text-1);cursor:pointer;transition:transform .2s,box-shadow .2s, background .2s}
.btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(18,242,163,.22)}
.btn-cta{background:linear-gradient(90deg,rgba(13,124,92,.85),rgba(18,242,163,.85));border-color:transparent;color:#001b13;font-weight:700;text-shadow:0 1px 0 rgba(255,255,255,.25)}
.btn.wide{width:100%}

/* Inputs */
input[type=text],input[type=email],textarea{
  width:100%;padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.06);border:1px solid var(--tt-border);color:var(--tt-text-1)
}
textarea{min-height:120px;resize:vertical}
.field-label{font-size:12px;color:var(--tt-text-2);margin:8px 0 6px 2px}

/* Bottom nav */
.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:2500;background:rgba(9,18,18,.9);backdrop-filter:blur(10px);border-top:1px solid var(--tt-border)}
.bottom-nav .container{padding:8px 12px}
.bottom-nav ul{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:0}
.bottom-nav a{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px;border-radius:12px;color:var(--tt-text-1);font-size:12px}
.bottom-nav a i{width:20px;height:20px;stroke:var(--tt-support)}
.bottom-nav a.active{color:var(--tt-focus)}
body{padding-bottom:90px}

/* Photo upload */
.photo-upload{display:block;text-align:center;padding:16px;border:2px dashed var(--tt-border);border-radius:16px;background:rgba(255,255,255,.04);cursor:pointer}
.photo-upload:hover{background:rgba(255,255,255,.08)}
.photo-upload i{width:18px;height:18px;stroke:var(--tt-support)}
.photo-preview img{width:100%;max-height:420px;object-fit:cover;border-radius:16px;border:1px solid var(--tt-border);margin-top:10px}
.location-row{display:flex;gap:8px}
.location-row input{flex:1}

/* Map */
#map{border-radius:16px;overflow:hidden}
.leaflet-marker-icon.glow-dot{
  background:radial-gradient(12px 12px at 50% 50%, rgba(18,242,163,.95), rgba(13,124,92,.25) 60%, transparent 70%);
  width:24px;height:24px;border-radius:50%;box-shadow:0 0 18px rgba(18,242,163,.5)
}
