:root{--sky-deep: #1b5c99;--sky-ink: #10375c;--sky-line: #cbe6fa;--sky-soft: #eaf6ff;--gold: #f6c453;--gold-dark: #e09b18;--gold-ink: #6b3f00;--panel-shadow: 0 10px 24px rgba(27, 92, 153, .14)}.app{display:flex;flex-direction:column;min-height:100%;height:100%}.app-header{position:relative;display:flex;align-items:center;justify-content:space-between;padding:.85rem 1.5rem 1.35rem;background:linear-gradient(135deg,#2f9fe0,#63c3f2 45%,#9bdcfa);color:#fff;box-shadow:0 6px 18px #1b5c9940}.app-header:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:20px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 40' preserveAspectRatio='none'%3E%3Cpath fill='%23eaf6ff' d='M0 22c160 22 340 22 520 6s380-24 560-6 240 22 360 14v24H0z'/%3E%3C/svg%3E");background-size:100% 100%;background-repeat:no-repeat;pointer-events:none}.app-header h1{margin:0;font-size:1.25rem;font-weight:700;letter-spacing:.01em;text-shadow:0 2px 6px rgba(16,55,92,.35)}.app-header p{margin:.2rem 0 0;font-size:.8rem;opacity:.95;text-shadow:0 1px 4px rgba(16,55,92,.3)}.app-main{flex:1;min-height:0;padding:.9rem}.map-layout{display:grid;grid-template-columns:310px 1fr;gap:.9rem;height:calc(100vh - 100px)}.map-sidebar{display:flex;flex-direction:column;gap:.9rem;overflow:auto;padding-right:.2rem}.map-sidebar::-webkit-scrollbar{width:8px}.map-sidebar::-webkit-scrollbar-thumb{border-radius:999px;background:#63c3f28c}.panel{position:relative;background:linear-gradient(180deg,#fffffffa,#eef9fffa);border:2px solid #fff;border-radius:18px;padding:1rem 1.1rem;box-shadow:var(--panel-shadow)}.panel h2{display:flex;align-items:center;gap:.5rem;margin:0 0 .85rem;font-size:.98rem;font-weight:700;color:var(--sky-deep)}.panel h2:before{content:"";width:6px;height:18px;border-radius:999px;background:linear-gradient(180deg,var(--gold) 0%,var(--gold-dark) 100%);box-shadow:0 1px 3px #e09b1880}.layer-list{display:flex;flex-direction:column;gap:.5rem}.layer-group-title{margin:.6rem 0 .15rem;font-size:.72rem;font-weight:700;color:var(--sky-deep);letter-spacing:.06em;text-transform:uppercase}.layer-item{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--sky-ink)}.layer-item input{accent-color:#2f9fe0;width:1.05rem;height:1.05rem}.layer-item-block{display:flex;flex-direction:column;gap:.2rem}.layer-scale-hint{margin:0 0 0 1.55rem;font-size:.72rem;color:#6790b3;line-height:1.4}.province-filter{width:100%;margin-bottom:.55rem;padding:.55rem .9rem;border:2px solid var(--sky-line);border-radius:999px;background:#fff;color:var(--sky-ink);outline:none}.province-filter:focus{border-color:#63c3f2;box-shadow:0 0 0 3px #63c3f240}.province-toolbar{display:flex;gap:.45rem;margin-bottom:.55rem}.province-toolbar .btn-secondary{flex:1;padding:.42rem .5rem;font-size:.78rem}.province-list{margin-top:.5rem;max-height:280px;overflow:auto;border:2px solid var(--sky-line);border-radius:14px;background:#fbfeff}.province-list-item{display:flex;align-items:flex-start;gap:.5rem;padding:.55rem .7rem;border-bottom:1px solid #eaf4fc;font-size:.84rem;cursor:pointer;transition:background .15s ease}.province-list-item:last-child{border-bottom:none}.province-list-item:hover{background:#e8f6ff}.province-list-item.is-selected{background:#fff6e0}.province-list-item input{margin-top:.15rem;accent-color:var(--gold-dark)}.province-list-text{display:flex;flex-direction:column;gap:.1rem}.province-list-name{color:var(--sky-ink)}.province-list-meta{font-size:.72rem;color:#6790b3}.province-selected-summary{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.65rem}.province-chip{border:2px solid var(--gold);background:linear-gradient(180deg,#fff8e6,#ffeec2);color:var(--gold-ink);border-radius:999px;padding:.2rem .65rem;font-size:.72rem;cursor:pointer;transition:filter .15s ease}.province-chip:hover{filter:brightness(1.05)}.search-form{display:flex;flex-direction:column;gap:.55rem}.search-form input{width:100%;padding:.58rem .95rem;border:2px solid var(--sky-line);border-radius:999px;background:#fff;color:var(--sky-ink);outline:none}.search-form input:focus{border-color:#63c3f2;box-shadow:0 0 0 3px #63c3f240}.search-form button,.btn-secondary,.btn-danger{padding:.55rem 1rem;border:2px solid #fff;border-radius:999px;font-weight:700;cursor:pointer;transition:transform .12s ease,filter .15s ease,box-shadow .15s ease}.search-form button{background:linear-gradient(180deg,#ffe9a8 0%,var(--gold) 45%,var(--gold-dark) 100%);color:var(--gold-ink);box-shadow:0 4px 10px #e09b1859}.search-form button:hover:not(:disabled),.btn-secondary:hover:not(:disabled),.btn-danger:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.05)}.search-form button:active:not(:disabled),.btn-secondary:active:not(:disabled),.btn-danger:active:not(:disabled){transform:translateY(1px)}.search-form button:disabled,.btn-secondary:disabled,.btn-danger:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:linear-gradient(180deg,#fff,#d9eefc);color:var(--sky-deep);box-shadow:0 4px 10px #1b5c992e}.btn-danger{width:100%;background:linear-gradient(180deg,#ff9b8a,#ef4444 55%,#c92c2c);color:#fff;box-shadow:0 4px 10px #c92c2c4d}.establishment-form textarea{width:100%;padding:.6rem .9rem;border:2px solid var(--sky-line);border-radius:14px;background:#fff;color:var(--sky-ink);resize:vertical;outline:none}.establishment-form textarea:focus{border-color:#63c3f2;box-shadow:0 0 0 3px #63c3f240}.establishment-list{margin-top:.5rem;max-height:220px;overflow:auto;border:2px solid var(--sky-line);border-radius:14px;background:#fbfeff}.establishment-list-item{display:flex;flex-direction:column;align-items:flex-start;gap:.12rem;width:100%;padding:.58rem .7rem;border:none;border-bottom:1px solid #eaf4fc;background:transparent;text-align:left;cursor:pointer;transition:background .15s ease}.establishment-list-item:last-child{border-bottom:none}.establishment-list-item:hover,.establishment-list-item.is-selected{background:#fff6e0}.establishment-list-item.is-place-selected{background:#e6fbf6}.establishment-list-item strong{font-size:.84rem;color:var(--sky-ink)}.establishment-list-item span{font-size:.72rem;color:#6790b3}.map-pin-icon{background:transparent;border:none}.map-pin-icon__inner{display:block;transform-origin:50% 90%;animation:map-pin-drop .28s ease-out}@keyframes map-pin-drop{0%{transform:translateY(-14px) scale(.9);opacity:0}70%{transform:translateY(0) scale(1.06);opacity:1}to{transform:translateY(0) scale(1);opacity:1}}.map-pin-banner{position:absolute;z-index:1000;top:14px;left:50%;transform:translate(-50%);background:linear-gradient(180deg,#ffe9a8 0%,var(--gold) 45%,var(--gold-dark) 100%);border:2px solid #fff;color:var(--gold-ink);font-weight:700;border-radius:999px;padding:.42rem 1.1rem;font-size:.78rem;box-shadow:0 6px 14px #e09b1866}.search-results{margin-top:.75rem;max-height:220px;overflow:auto}.search-result-item{padding:.6rem 0;border-bottom:1px solid #eaf4fc}.search-result-item:last-child{border-bottom:none}.search-empty,.search-error,.identify-hint{font-size:.82rem;color:#6790b3;line-height:1.5}.search-error{color:#c92c2c}.backup-notice{margin:0 0 .75rem;padding:.55rem .75rem;border-radius:12px;border:2px solid #fcd34d;background:linear-gradient(180deg,#fff8e6,#ffeec2);color:#92400e;font-size:.78rem;line-height:1.5}.btn-link{border:none;background:none;padding:0;color:var(--sky-deep);font-weight:600;cursor:pointer;text-decoration:underline}.admin-area-display{display:flex;flex-direction:column;gap:.6rem}.admin-row{display:flex;flex-direction:column;gap:.15rem;padding:.65rem .8rem;border-radius:14px;background:linear-gradient(180deg,#fff,#edf8ff);border:2px solid var(--sky-line)}.admin-label{font-size:.72rem;font-weight:700;color:var(--sky-deep);text-transform:uppercase;letter-spacing:.05em}.admin-value{font-size:.92rem;color:var(--sky-ink)}.admin-code{font-size:.78rem;color:#6790b3}.map-container{position:relative;height:100%;min-height:480px;border-radius:20px;overflow:hidden;border:3px solid #fff;box-shadow:var(--panel-shadow)}.map-container .leaflet-container{height:100%;width:100%;background:#dceefb}.map-container .leaflet-control-zoom a{border-radius:10px;color:var(--sky-deep);font-weight:700}.map-container .leaflet-popup-content-wrapper{border-radius:14px;border:2px solid #fff;box-shadow:var(--panel-shadow)}.map-mascot{position:absolute;z-index:900;right:8px;bottom:22px;width:168px;max-width:30%;height:auto;pointer-events:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 10px 14px rgba(27,92,153,.35));animation:map-mascot-float 3.6s ease-in-out infinite}@keyframes map-mascot-float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@media (prefers-reduced-motion: reduce){.map-mascot{animation:none}}.map-status{position:absolute;z-index:1000;top:14px;right:14px;background:linear-gradient(180deg,#fffffffa,#e6f5fffa);border:2px solid #fff;border-radius:999px;padding:.42rem .9rem;font-size:.75rem;font-weight:600;color:var(--sky-deep);box-shadow:0 6px 14px #1b5c9933}@media (max-width: 900px){.map-layout{grid-template-columns:1fr;height:auto}.map-container{min-height:420px}.map-mascot{width:110px}}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;height:100%;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:linear-gradient(180deg,#cbeafb,#e8f6ff 45%,#f4fbff);color:#10375c}button,input,textarea{font:inherit}
