:root{font-family:system-ui,sans-serif;color:#231b2b;background:#120c1a}*{box-sizing:border-box}body{margin:0;min-height:100vh}.page{min-height:100vh;display:grid;grid-template-rows:auto 1fr}.topbar{background:#251333;color:#fff;padding:.7rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;position:relative;z-index:1000}.topbar a{color:#ffd27c;text-decoration:none}.brand{font-weight:700}.map-shell{position:relative;min-height:calc(100vh - 54px)}.map-shell>#map{height:100%;min-height:calc(100vh - 54px)}.status{position:absolute;top:1rem;left:50%;transform:translateX(-50%);background:#fff;padding:.65rem .9rem;border-radius:.5rem;box-shadow:0 2px 12px #0004;z-index:500;max-width:min(90vw,32rem)}.hidden{display:none!important}.panel{max-width:44rem;margin:2rem auto;padding:1.25rem;background:#fff;border-radius:1rem;box-shadow:0 8px 30px #0002}.panel h1{margin-top:0}.field{display:grid;gap:.35rem;margin:1rem 0}.field input,.field select,.field textarea{font:inherit;padding:.65rem;border:1px solid #b8adbf;border-radius:.45rem}.field textarea{min-height:5rem;resize:vertical}.actions{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center}.button{border:0;border-radius:.45rem;padding:.7rem 1rem;font:inherit;cursor:pointer;background:#6d2ca3;color:white}.button.secondary{background:#e9e1ef;color:#2a123f}.button.danger{background:#a51e35}.notice{padding:.7rem;border-radius:.45rem;background:#f1ebf6;margin:.75rem 0}.notice.error{background:#ffe4e8;color:#761529}.notice.success{background:#e5f7dd;color:#205c20}.treats{display:flex;gap:.5rem;align-items:center}.treats input{accent-color:#2d9b4b}.legend{display:flex;gap:.7rem;flex-wrap:wrap;font-size:.9rem}.dot{display:inline-block;width:.75rem;height:.75rem;border-radius:50%}.few{background:#d93025}.some{background:#f29900}.plenty{background:#2d9b4b}.leaflet-popup-content{min-width:220px}.flat{border-top:0;padding:.5rem 0}.flat+.flat{border-top:1px solid #ddd}.flat-line{display:flex;align-items:center;gap:.15rem;white-space:nowrap}.flat-main{white-space:nowrap}.flat-note{flex:0 0 auto}.flat-treats{white-space:nowrap}.small{font-size:.88rem;color:#655b6b}@media(max-width:650px){.topbar{align-items:flex-start;flex-direction:column;gap:.3rem}.panel{margin:1rem;border-radius:.7rem}}.table-wrap{overflow-x:auto;margin-top:1rem}table{border-collapse:collapse;min-width:900px;width:100%;font-size:.88rem}th,td{border:1px solid #ddd;padding:.5rem;text-align:left;vertical-align:top}th{background:#f1ebf6;white-space:nowrap}

/* Responsive layout */
.page{min-height:100dvh;grid-template-rows:auto minmax(0,1fr)}
.topbar nav{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.topbar .button{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
.map-shell{height:100%;min-height:0}
.map-shell>#map{height:100%;min-height:0}
@media(max-width:700px){
  .topbar{align-items:stretch;flex-direction:column;gap:.6rem;padding:.65rem .75rem}
  .topbar .brand{line-height:1.25}
  .topbar nav{width:100%}
  .topbar nav .button{width:100%}
  .panel{width:calc(100% - 2rem);margin:1rem auto;padding:1rem}
  .panel h1{font-size:1.55rem}
  .actions{align-items:stretch}
  .actions .button{flex:1 1 100%;width:100%}
  .leaflet-popup-content{max-width:calc(100vw - 3rem);overflow-x:auto}
}
