
:root{
--paper:rgba(248,244,235,.96);
--ink:#241f18;
--muted:#635a4c;
--panel-border:rgba(85,70,48,.28);
--water:#d9e6ec;
}

html,body{
margin:0;
padding:0;
width:100%;
height:100%;
overflow:hidden;
font-family:Georgia,"Times New Roman",serif;
background:#e8e1d4;
color:var(--ink);
}

#map{
position:absolute;
inset:0;
background:var(--water);
}

.leaflet-container{
background:var(--water);
font-family:Georgia,"Times New Roman",serif;
}

#sidebar{
position:absolute;
left:14px;
top:14px;
width:380px;
max-height:calc(100vh - 28px);
overflow-y:auto;
background:var(--paper);
border:1px solid var(--panel-border);
border-radius:10px;
padding:14px 16px;
z-index:1000;
box-shadow:0 3px 18px rgba(44,34,20,.28);
backdrop-filter:blur(3px);
transition:transform .18s ease;
}

#sidebar.collapsed{
transform:translateX(calc(-100% + 46px));
}

#collapseBtn{
position:absolute;
top:8px;
right:8px;
border:1px solid var(--panel-border);
background:#efe6d5;
border-radius:6px;
padding:4px 7px;
cursor:pointer;
}

h1{
font-size:1.16rem;
margin:0 36px 5px 0;
line-height:1.2;
}

.subtitle{
margin:0 0 12px;
font-size:.86rem;
color:var(--muted);
}

.section{
border-top:1px solid rgba(85,70,48,.18);
padding-top:10px;
margin-top:10px;
}

.section-title{
font-weight:bold;
font-size:.94rem;
margin-bottom:6px;
}

#yearLabel{
font-size:1.25rem;
font-weight:bold;
letter-spacing:.03em;
}

input[type=range]{
width:100%;
}

button,select,input[type=text]{
font-family:inherit;
}

button{
border:1px solid var(--panel-border);
background:#efe6d5;
color:var(--ink);
border-radius:6px;
padding:7px 10px;
cursor:pointer;
}

button.primary{
background:#31465c;
color:white;
}

.row{
display:flex;
gap:8px;
align-items:center;
margin:7px 0;
flex-wrap:wrap;
}

.filter-grid label{
display:inline-block;
margin:2px 8px 3px 0;
white-space:nowrap;
font-size:.9rem;
}

#searchBox{
width:100%;
box-sizing:border-box;
border:1px solid var(--panel-border);
border-radius:6px;
padding:7px 8px;
background:#fffdf8;
}

.legend-row,.symbol-key{
display:flex;
align-items:center;
gap:8px;
margin:4px 0;
font-size:.88rem;
}

.swatch{
width:22px;
height:14px;
border:1px solid rgba(0,0,0,.22);
}

.s0{background:#f7fbff;}
.s1{background:#d6e6ef;}
.s2{background:#a9c9d8;}
.s3{background:#739fb7;}
.s4{background:#3d728f;}
.s5{background:#164761;}

.pt{
display:inline-block;
width:12px;
height:12px;
background:#333;
border:1px solid white;
box-shadow:0 0 0 1px rgba(0,0,0,.4);
}

.circle{border-radius:50%;}
.square{}
.triangle{
width:0;
height:0;
background:transparent;
border-left:7px solid transparent;
border-right:7px solid transparent;
border-bottom:13px solid #333;
box-shadow:none;
}
.diamond{transform:rotate(45deg);}
.cross{
background:transparent;
position:relative;
box-shadow:none;
border:none;
}
.cross:before,.cross:after{
content:"";
position:absolute;
background:#333;
left:5px;
top:0;
width:3px;
height:14px;
}
.cross:after{transform:rotate(90deg);}

.leaflet-tooltip{
background:rgba(255,252,244,.96);
border:1px solid rgba(75,60,42,.35);
color:#1f1a14;
box-shadow:0 1px 8px rgba(0,0,0,.18);
}

.leaflet-control-zoom{
margin-left:50vw!important;
transform:translateX(-50%);
margin-bottom:18px!important;
}

.point-marker{
display:flex;
align-items:center;
justify-content:center;
}

.point-marker .inner{
width:10px;
height:10px;
background:#232323;
border:1px solid white;
box-shadow:0 0 0 1px rgba(0,0,0,.45);
}

.point-marker.livett .inner{border-radius:50%;}
.point-marker.levett .inner{
width:0;
height:0;
background:transparent;
border-left:6px solid transparent;
border-right:6px solid transparent;
border-bottom:11px solid #232323;
box-shadow:none;
}
.point-marker.levitt .inner{}
.point-marker.other .inner{transform:rotate(45deg);}
.point-marker.lov .inner{
background:transparent;
border:none;
box-shadow:none;
position:relative;
}
.point-marker.lov .inner:before,
.point-marker.lov .inner:after{
content:"";
position:absolute;
left:4px;
top:-2px;
width:3px;
height:14px;
background:#232323;
}
.point-marker.lov .inner:after{transform:rotate(90deg);}

@media(max-width:850px){
#sidebar{
width:calc(100vw - 30px);
max-height:48vh;
}
#sidebar.collapsed{
transform:translateY(calc(-100% + 48px));
}
}
