.hallinta{max-width:1200px}.hallinta-intro{color:#51646e;margin:0 0 1.5rem}.hallinta-rivi{display:flex;gap:1rem;align-items:end;flex-wrap:wrap}.hallinta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:1rem}.hallinta label{display:block;font-weight:600;margin:.75rem 0 .3rem}.hallinta input:not([type=checkbox]),.hallinta select,.hallinta textarea,.paikkavalitsin select{width:100%;padding:.65rem;border:1px solid #b6c7ce;border-radius:6px;background:white;color:#152f3c}.hallinta textarea{min-height:100px}.hallinta button{padding:.55rem .9rem;border:1px solid #bbcbd1;border-radius:6px;background:#f4f7f9;cursor:pointer;color:#173b49}.hallinta button.primary{background:#16596c;color:white;border-color:#16596c}.hallinta button:disabled{opacity:.5;cursor:default}.hallinta .toiminnot{display:flex;gap:.5rem;flex-wrap:wrap;margin:1rem 0}.hallinta-card{padding:1.25rem;border:1px solid #dce4e8;border-radius:10px;background:white;margin:1rem 0}.hallinta table{width:100%;border-collapse:collapse}.hallinta th,.hallinta td{text-align:left;padding:.65rem;border-bottom:1px solid #e0e7eb}.hallinta-virhe{background:#fff0ef;color:#942f26;padding:.8rem;border-radius:6px}.hallinta-huomio{background:#fff5d9;color:#694f08;padding:.8rem;border-radius:6px}.hallinta-onnistui,.valinta-valmis{color:#22604a;padding:.45rem 0}.hallinta iframe{width:100%;height:650px;border:1px solid #c5d2d8;background:white}.aluevalitsin{display:inline-flex;gap:.5rem;align-items:center;margin:0 1rem}.aluevalitsin select{padding:.45rem;border-radius:4px;border:1px solid #b4c8d2;color:#173f50}.hallinta-tabs{display:flex;gap:.3rem;flex-wrap:wrap;border-bottom:1px solid #d1dee4;margin-bottom:1.5rem}.hallinta-tabs button{background:transparent;padding:.8rem 1rem;border:0;border-bottom:3px solid transparent;border-radius:0}.hallinta-tabs button[aria-selected=true]{background:#d8eddd;border-color:#72ad7e;border-radius:6px 6px 0 0;font-weight:700;color:#214d2c}.kartta-kangas{position:relative;width:100%;aspect-ratio:1.4;background:#f2f7f2;border:1px solid #aec2b4;overflow:hidden;container-type:inline-size;box-sizing:border-box}.kartta-kangas.taustakuvallinen{aspect-ratio:auto}.kartta-kangas>img{display:block;width:100%;height:auto;pointer-events:none;user-select:none}.kartta-kohde{position:absolute;display:flex;align-items:center;justify-content:center;border:1px solid #55756b;border-radius:3px;font-size:clamp(8px,1.1vw,14px);overflow:hidden;background:#dcebe2;user-select:none;touch-action:none;cursor:pointer}.kartta-kohde.valittu{outline:1px dashed #164f83;outline-offset:2px;z-index:2}.kartta-kohde.Katu{background:#d5d2c9}.kartta-kohde.Rakennus{background:#d9dce5}.kartta-kohde.Teksti{background:transparent;border:0}.paikkaruudukko{display:flex;flex-wrap:wrap;gap:.5rem}.paikkaruutu{min-width:60px;min-height:55px;border:1px solid #9badab;border-radius:6px;padding:.4rem}.tila-vapaa{background:#c8e6c9!important}.tila-varattu{background:#ffe0b2!important}.tila-kausi{background:#f8bbd0!important}.tila-suljettu{background:#dedede!important}.tila-tuntematon{background:repeating-linear-gradient(45deg,#eee,#eee 6px,#ddd 6px,#ddd 12px)!important}@media(max-width:650px){.hallinta table{font-size:.85rem}.hallinta th,.hallinta td{padding:.4rem}.aluevalitsin{margin:0 .35rem;font-size:.85rem}.hallinta iframe{height:450px}}

/* Paikkakartan tiiviit ruudut ja alkuperäinen kahden kadun rinnakkaisasettelu. */
.kartta-selitteet{display:flex;flex-wrap:wrap;gap:.65rem 1.5rem;margin:1rem 0 1.25rem;color:#444;font-size:.95rem}
.kartta-selitteet>span{display:inline-flex;align-items:center;gap:.4rem}
.kartta-selite{display:inline-block;width:15px;height:15px;border:1px solid #bbb;flex:none}
.tila-vapautuu{background:linear-gradient(to bottom,#ffe0b2 50%,#c8e6c9 50%)!important}
.kartta-alue{padding:1rem 1.25rem;border:1px solid #dce4e8;border-radius:8px;background:#fff;margin:1rem 0;box-shadow:0 2px 5px #0000000d}
.kartta-alue>h2{font-size:1.3rem;font-weight:600;border-bottom:2px solid #eee;padding-bottom:.4rem;margin:0 0 .8rem}
.kartta-kadut{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.5rem}
.kartta-katu{min-width:0}
.kartta-katu>h3{font-size:1rem;font-weight:400;color:#666;margin:0 0 .5rem}
.paikkakartta .paikkaruudukko{gap:8px;align-items:flex-start}
.paikkakartta .paikkaruutu{position:relative;display:flex;align-items:center;justify-content:center;min-width:45px;min-height:45px;height:45px;padding:0 8px;border:1px solid #d1d1d1;border-radius:6px;font-size:.95rem;font-weight:700;color:#333;box-shadow:0 2px 4px #0000000d;transition:transform .1s,box-shadow .1s}
.paikkakartta .paikkaruutu:hover:not(:disabled){transform:scale(1.08);box-shadow:0 4px 8px #00000026;z-index:1}
.paikkakartta .paikkaruutu:focus-visible,.paikkakartta .kartta-kohde:focus-visible{outline:3px solid #16596c;outline-offset:2px}
.paikkakartta .pitka-merkki{position:absolute;bottom:1px;right:4px;font-size:.65rem;font-weight:400;line-height:1;color:#666}
.paikkakartta .inva-merkki{position:absolute;top:2px;left:3px;font-size:.5rem;font-weight:700;line-height:1;color:#666}
.paikkakartta .kartta-kohde{padding:0}
.paikan-tiedot-dialog{max-width:calc(100vw - 24px)}
.paikan-tiedot p{margin:.35rem 0}
.paikan-tiedot .kartta-asiakas+.kartta-asiakas{margin-top:1rem;padding-top:.8rem;border-top:1px solid #ddd}
.paikan-tiedot .paikallaolo-merkki{display:inline-flex;align-items:center;gap:.3rem;border-radius:4px;padding:.25rem .5rem;margin:.4rem 0;font-weight:600}
.paikan-tiedot .paikalla{color:#235432;background:#e4f3e6}
.paikan-tiedot .poissa{color:#745216;background:#fff1d5}
.paikan-tiedot details{margin-top:1rem}
.paikan-tiedot summary{cursor:pointer;font-weight:600}
@media(max-width:767px){.kartta-kadut{grid-template-columns:minmax(0,1fr)}.kartta-alue{padding:.85rem}.kartta-selitteet{gap:.5rem 1rem}}

/* Taustakuvan oma kuvasuhde määrittää karttapinnan. Suurennus ei muuta tallennettuja mittoja. */
.kartta-vieritys{overflow:auto;max-height:75vh;border:1px solid #aec2b4}
.kartta-vieritys>.kartta-kangas{border:0}
.kartta-zoomaus{max-width:180px}
.hallinta .kartta-kohde.Paikka{box-sizing:border-box;padding:0;min-width:0;min-height:0;border:0;border-radius:1px;box-shadow:inset 0 0 0 .5px #55756b;font-size:clamp(5px,var(--kartta-fontti,1cqw),14px);line-height:1;color:#173b49}
.kartta-tunnus{max-width:100%;max-height:100%;overflow:hidden;white-space:nowrap;pointer-events:none}
.kartta-muokkain .kartta-kohde{overflow:visible;cursor:move}
.kartta-kahva{display:none;position:absolute;width:14px;height:14px;background:#fff;border:1px solid #164f83;box-sizing:border-box;z-index:3;touch-action:none}
.kartta-kohde.valittu .kartta-kahva{display:flex;align-items:center;justify-content:center}
.kartta-koko{right:-7px;bottom:-7px;cursor:nwse-resize}
.kartta-kierto{left:calc(50% - 9px);top:-32px;width:18px;height:18px;border-radius:50%;cursor:grab;color:#164f83;font-size:15px;line-height:1}
.kartta-kierto::after{content:"";position:absolute;top:17px;left:7px;width:1px;height:14px;background:#164f83;pointer-events:none}
.kartta-valinta{padding:.8rem 1rem}
.kartta-valinta h3{font-size:1rem;margin:0}
.kartta-valinta .toiminnot{margin:.6rem 0}
.kartta-mitat{display:grid;grid-template-columns:repeat(auto-fit,minmax(115px,1fr));gap:.5rem}
.vuokralomakkeet h3{margin-top:1.25rem;font-size:1.1rem}
.lomake-ryhma{border:1px solid #d4e0d8;border-radius:8px;padding:.8rem 1rem 1rem;margin:1rem 0;min-width:0}
.lomake-ryhma legend{float:none;width:auto;margin:0;padding:0 .4rem;font-size:1.05rem;font-weight:700;color:#31563d}
.lomake-kentat{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem 1.2rem}
.lomake-kentat label{min-width:0}
.lomake-rasti{display:flex!important;align-items:flex-start;gap:.5rem;font-weight:400!important}
.lomake-rasti input{flex:none;margin-top:.25rem;width:1.1rem;height:1.1rem}
.lomake-luettelo{overflow-x:auto}
.lomake-tallennustila{font-weight:600}
.lomake-esikatselu{margin:1.5rem 0}
.vuokralomakkeet details li{margin:.5rem 0}
@media(max-width:650px){.lomake-kentat{grid-template-columns:minmax(0,1fr)}.lomake-ryhma{padding:.6rem}.vuokralomakkeet{padding:.8rem}}
