*{box-sizing:border-box}body{margin:0;font:14px/1.5 'Segoe UI',Arial,sans-serif;color:#19324c;background:#f4f7fa}a{color:#07568f;text-decoration:none}a:hover{text-decoration:underline}button,input,textarea,select{font:inherit}button{cursor:pointer}.topbar{height:62px;background:#052746;color:#fff;display:flex;align-items:center;gap:28px;padding:0 24px;position:relative;z-index:30}.topbar a{color:white}.logo{display:flex;gap:12px;align-items:center;font-weight:800;font-size:18px;letter-spacing:.3px;min-width:340px}.logo small{display:block;font-size:11px;font-weight:400;letter-spacing:0}.logo-symbol{display:grid;place-items:center;width:45px;height:45px;background:#174c73;border:1px solid #6591ae;border-radius:50%;font-size:27px}.topbar nav{display:flex;gap:25px;align-items:center;flex:1;font-weight:600;font-size:13px}.profile{display:flex;align-items:center;gap:12px}.profile form{display:inline}.profile button{border:1px solid #6c8eac;background:#143d61;color:white;border-radius:5px;padding:5px 10px}.webgis{height:calc(100vh - 62px);min-height:590px;display:grid;grid-template-columns:240px minmax(400px,1fr) 365px;gap:8px;padding:8px}.side,.detail{background:white;border-radius:9px;border:1px solid #e0e7ee;display:flex;flex-direction:column;min-height:0}.side-title,.detail-heading{font-weight:800;padding:12px;border-bottom:1px solid #e3e8ef}.side-content{overflow:auto;flex:1;padding:8px 12px}.side-footer{border-top:1px solid #e6eaf0;padding:12px;display:grid;gap:6px}.side-footer button{padding:7px;background:#f5f8fb;color:#17436b;border:1px solid #dbe4ed;border-radius:6px}.layer-item{display:flex;gap:8px;align-items:center;padding:6px 2px;font-size:12px;cursor:pointer}.layer-item input{accent-color:#075c99}.layer-item>span:nth-last-child(2){flex:1}.root-switch{padding:8px 3px}.count{margin-left:auto;font-size:11px;color:#5c7186}.swatch{width:13px;height:13px;display:inline-block;border-radius:50%;flex-shrink:0;border:1px solid #fff;box-shadow:0 0 0 1px #d8dde4}.section-head{font-size:12px;font-weight:800;margin:12px 0 7px}.nested{padding-left:17px;border-left:1px solid #dde5ea;margin-left:8px}hr{border:0;border-top:1px solid #e8ecf1;margin:14px 0}.map-section{position:relative;min-width:0;border-radius:9px;overflow:hidden;background:#e9f0f4}#viewDiv{width:100%;height:100%}.map-search{position:absolute;top:13px;left:13px;display:flex;background:white;border-radius:6px;box-shadow:0 2px 14px #0a1e3550;width:min(380px,60%);z-index:2}.map-search input{padding:10px 12px;border:0;background:transparent;flex:1;min-width:0;outline:0}.map-search button{background:white;border:0;border-radius:6px;font-size:20px}.base-switch{position:absolute;right:12px;top:13px;z-index:2;display:flex;background:white;border-radius:6px;padding:3px;box-shadow:0 2px 12px #0a1e3540}.base-switch button{border:0;padding:7px 11px;border-radius:4px;background:white;color:#2c4761}.base-switch button.selected{background:#083b68;color:white}#map-stats{position:absolute;left:14px;bottom:21px;display:flex;gap:8px;pointer-events:none}#map-stats>div{display:flex;align-items:center;gap:8px;background:#fffffff0;border-radius:6px;padding:8px 11px;box-shadow:0 2px 10px #001e3040}#map-stats b{font-size:20px;color:#083a65}#map-stats span{font-size:11px}.map-notice{position:absolute;top:70px;left:18px;background:#fff3d5;padding:11px;z-index:5;border-radius:5px;max-width:450px}.detail-heading{display:flex;align-items:center;justify-content:space-between}.detail-heading button{border:0;background:none;font-size:22px;color:#536578}.detail #detail-content{padding:12px;overflow-y:auto;flex:1}.cover{display:block;width:100%;height:180px;object-fit:cover;border-radius:7px}.placeholder{display:grid;place-items:center;background:linear-gradient(130deg,#b3ccce,#d8e0d5);font-size:70px;color:#347c82}.detail-name{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:8px 0}.detail-name h2{font-size:18px;margin:0;flex:1}.pill{font-size:11px;background:#f1e8dc;padding:3px 6px;border-radius:12px;white-space:nowrap}.detail dl{display:grid;grid-template-columns:105px 1fr;gap:10px 8px;margin:14px 0}.detail dt{color:#61778a;font-size:12px}.detail dd{margin:0;font-size:12px;font-weight:600}.detail h3{font-size:13px;margin:18px 0 7px}.detail p{font-size:12px}.prose{white-space:pre-line}.empty-state{text-align:center;margin:auto;color:#72879a;padding:28px 12px}.empty-icon{font-size:68px;color:#a1b8c5}.attachment-links{display:grid;gap:7px}.attachment-links a{padding:5px 0;font-size:12px}.qr-section{display:flex;align-items:center;border-top:1px solid #e7edf2;margin-top:18px;padding-top:12px;gap:12px}.qr-section img{width:82px;height:82px}.qr-section span{font-size:12px;color:#58718a}.detail-button,.btn{background:#063c6c;color:white!important;border:0;border-radius:6px;padding:10px 16px;font-weight:600;display:inline-block}.detail-button{display:block;text-align:center;margin-top:16px}.page{max-width:1400px;margin:0 auto;padding:32px}.page.narrow{max-width:1040px}.page-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.page h1{font-size:26px;margin:0}.page-bar p{color:#6d7d8c;margin:5px 0}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}.toolbar input,.toolbar select{min-width:150px}.table-wrap{overflow:auto;background:white;border:1px solid #e0e6ec;border-radius:8px}table{border-collapse:collapse;width:100%;text-align:left}th,td{padding:12px 14px;border-bottom:1px solid #e8edf1}th{background:#f2f6fa;font-size:12px;color:#3e607d}td{font-size:13px}tr:last-child td{border-bottom:0}.inline{display:inline-block}.danger-link{background:none;border:0;color:#d02b36;padding:2px 5px;text-decoration:underline}.edit-form{display:grid;gap:20px}.edit-form fieldset,.file-panel{background:white;border:1px solid #e0e5ea;border-radius:9px;padding:22px}.edit-form legend{font-weight:700;color:#073e6c;padding:0 8px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.edit-form label,.login-panel label{display:grid;gap:5px;font-weight:600;margin-bottom:10px;font-size:13px}.edit-form input,.edit-form textarea,.edit-form select,.login-panel input,.toolbar input,.toolbar select{border:1px solid #cfd9e3;border-radius:6px;padding:10px;width:100%;background:white}.edit-form textarea{resize:vertical}.edit-form .check{display:flex;align-items:center;gap:9px}.check input{width:17px;height:17px}.form-actions{display:flex;gap:16px;align-items:center}.muted{color:#8191a2;font-size:12px}.error{padding:8px;color:#bc2943}#mini-map{height:270px;margin-top:12px;border:1px solid #d9e1e8}.login-panel{width:min(420px,92vw);padding:30px;margin:9vh auto;background:white;border:1px solid #d8e0e8;border-radius:10px;box-shadow:0 10px 30px #1e34540e}.login-panel h1{font-size:22px}.login-panel button{width:100%;margin-top:10px}.file-panel{margin-top:20px}.file-row{display:flex;gap:16px;align-items:center;padding:10px;border-bottom:1px solid #eee}.file-row span{flex:1;color:#82909b}.file-row form{margin-left:auto}@media(max-width:1200px){.webgis{grid-template-columns:215px minmax(300px,1fr) 310px}.topbar nav{gap:12px}.logo{min-width:260px;font-size:15px}}@media(max-width:900px){.topbar{height:auto;min-height:62px;flex-wrap:wrap;padding:10px}.topbar nav{order:3;width:100%;overflow:auto}.webgis{height:auto;grid-template-columns:1fr;display:flex;flex-direction:column}.side{height:260px}.map-section{height:530px}.detail{height:450px}.form-grid{grid-template-columns:1fr}}
/* Public information, administration and Excel import */
.topbar { gap: 18px; padding: 0 18px; }
.topbar .logo { min-width: 0; flex: 0 1 420px; font-size: 16px; line-height: 1.25; }
.logo-symbol { flex-shrink: 0; }
.topbar nav { gap: 15px; font-size: 12px; }
.topbar nav > a, .nav-dropdown > summary { white-space: nowrap; }
.profile { font-size: 12px; flex-shrink: 0; }
.profile > span { max-width: 145px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nav-dropdown { position: relative; }
.nav-dropdown > summary { display: flex; align-items: center; gap: 6px; cursor: pointer; padding: 10px 0; list-style: none; }
.nav-dropdown > summary::-webkit-details-marker { display: none; }
.nav-dropdown > summary::after { content: '⌄'; margin-left: 3px; }
.nav-dropdown-menu { position: absolute; right: 0; top: 100%; min-width: 230px; background: #fff; border: 1px solid #dce5ed; border-radius: 8px; padding: 7px; box-shadow: 0 8px 24px #173a5a26; z-index: 40; }
.topbar .nav-dropdown-menu a { display: flex; align-items: center; gap: 9px; padding: 11px; color: #244565; border-radius: 5px; }
.nav-dropdown-menu a:hover { background: #edf4fb; text-decoration: none; }
.administration-tabs { display: flex; flex-wrap: wrap; gap: 6px; padding-bottom: 14px; border-bottom: 1px solid #dce6ef; margin-bottom: 20px; }
.administration-tabs a { display: flex; gap: 7px; align-items: center; border-radius: 6px; padding: 9px 14px; background: #fff; border: 1px solid #dce6ef; }
.information-page h2, .file-panel h2 { display: flex; align-items: center; gap: 8px; font-size: 19px; }
.information-hero { padding: 35px; border-radius: 12px; background: linear-gradient(120deg,#153f68,#236575); color: #fff; }
.information-hero h1 { font-size: 30px; max-width: 650px; }
.information-hero p { max-width: 700px; color: #e4f0f6; }
.information-hero .btn { margin-top: 8px; background: #fff; color: #153f68!important; }
.hero-symbol { display: inline-flex; padding: 14px; border-radius: 12px; background: #edf4fa; color: #1a567d; }
.hero-symbol .ui-icon { width: 35px; height: 35px; }
.information-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.contact-card dl { display: grid; grid-template-columns: 130px 1fr; gap: 20px; }
.contact-card dt { display: flex; gap: 8px; align-items: center; color: #66809a; }
.contact-card dd { margin: 0; overflow-wrap: anywhere; }
.message { padding: 12px 16px; margin: 14px 0; border-radius: 6px; background: #fff; }
.message.success { background: #e9f6ef; color: #246646; }
.message.warning { background: #fff4d8; color: #765719; }
.import-issues { max-height: 330px; margin: 20px 0; }
.page.import-page { max-width: 820px; }
.import-page .page-bar { margin-bottom: 12px; }
.import-page .file-panel { margin-top: 0; }
.import-page .validation-summary-valid { display: none; }
.import-hint { margin: 12px 0; font-size: 12px; color: #65798e; }
.import-help { font-size: 12px; color: #65798e; }
.import-help summary { cursor: pointer; color: #07568f; }
.import-help ul { padding-left: 18px; margin: 8px 0 0; }
.import-form { margin-top: 20px; gap: 12px; }
.import-form label, .import-form .import-hint { margin: 0; }
.issue-error { color: #a32c3d; }
.issue-warning { color: #85601e; background: #fffbf0; }
#import-map { height: 420px; border: 1px solid #dce6ef; border-radius: 8px; overflow: hidden; }
#import-map-status { color: #657f94; font-size: 12px; }
.import-rows { max-height: 550px; margin-top: 20px; }
.import-rows th, .import-issues th { position: sticky; top: 0; z-index: 1; }
.import-rows .type-icon { width: 24px; height: 24px; vertical-align: middle; margin-right: 6px; }
.map-row-link { background: transparent; border: 0; color: #07568f; padding: 0; text-align: left; text-decoration: underline; }
.user-role-filter { margin-top: 20px; }
.user-role-filter select { width: auto; }
@media(max-width:1350px) { .topbar { gap: 10px; }.topbar nav { gap: 10px; }.topbar .logo { flex-basis: 300px; font-size: 14px; }.profile > span { max-width: 100px; } }
@media(max-width:1100px) { :root { --site-header-height: 105px; }.topbar { height: auto; min-height: 62px; flex-wrap: wrap; padding: 9px 16px; }.topbar .logo { flex: 1; }.topbar nav { order: 3; flex-basis: 100%; flex-wrap: wrap; gap: 16px; overflow: visible; }.nav-dropdown-menu { right: auto; left: 0; } }
@media(max-width:700px) { .page { padding: 20px 12px; }.page-bar { align-items: flex-start; flex-direction: column; }.information-grid { grid-template-columns: 1fr; gap: 0; }.information-hero { padding: 24px; }.information-hero h1 { font-size: 25px; }.contact-card dl { grid-template-columns: 1fr; gap: 10px; }.contact-card dd { margin-bottom: 10px; }.form-actions { flex-wrap: wrap; }.topbar nav { gap: 12px; }.profile > span { display: none; } }

/* Monument media upload and previews */
.monument-cover { position: relative; }
.monument-cover-frame { position: relative; }
.monument-cover-frame > .cover { display: block; margin: 0; }
.media-images-button { position: absolute; left: 10px; bottom: 10px; display: inline-flex; align-items: center; gap: 5px; padding: 5px 8px; border: 1px solid #adc5d8; border-radius: 5px; background: #fffffff0; color: #133f63; font: inherit; font-size: 12px; font-weight: 600; cursor: pointer; }
.media-images-button:hover { background: #e8f4fc; }
.media-images-button:focus-visible { outline: 3px solid #188ac5; outline-offset: 2px; }
.media-images-button:disabled { cursor: progress; opacity: .7; }
.media-cover-button { display: block; position: relative; width: 100%; padding: 0; border: 0; border-radius: 8px; background: #e6edf2; color: inherit; text-align: left; overflow: hidden; }
.monument-cover-visual { display: block; }
.media-cover-button .cover { margin: 0; }
.media-cover-hint { position: absolute; bottom: 10px; right: 10px; padding: 5px 9px; border-radius: 5px; background: #092e50e8; color: #fff; font-size: 12px; font-weight: 600; }
.media-cover-button:hover .media-cover-hint, .media-cover-button:focus-visible .media-cover-hint { background: #07568f; }
.media-cover-button:focus-visible { outline: 3px solid #188ac5; outline-offset: 3px; }
.media-cover-button:disabled { cursor: progress; opacity: .75; }
.media-hidden-input { display: none; }
.media-status { font-size: 12px; color: #466580; margin: 6px 0; overflow-wrap: anywhere; }
.media-status:empty { display: none; }
.media-gallery { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,220px),1fr)); gap: 12px; align-items: start; }
.media-card { min-width: 0; overflow: hidden; border: 1px solid #dce5ec; border-radius: 8px; background: #fff; }
.media-card-body { padding: 10px 12px; }
.media-card .media-file-name { margin: 0; color: #244b6a; font-weight: 600; font-size: 13px; overflow-wrap: anywhere; }
.media-card .media-file-meta { margin: 4px 0 0; color: #667e91; font-size: 11px; overflow-wrap: anywhere; }
.media-preview-link { display: block; background: #edf3f6; }
.media-image { display: block; width: 100%; height: 165px; object-fit: contain; background: #edf3f6; }
.media-video, .media-model { display: block; width: 100%; height: 200px; border: 0; background: #edf3f6; }
.media-file-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 8px; font-size: 12px; }
.media-file-actions .danger-link { margin-left: auto; }
.media-editor > .muted { margin-top: 0; }
.media-picker-grid { align-items: start; }
.media-picker { min-width: 0; border: 1px solid #e0e8ee; border-radius: 8px; padding: 16px; background: #f9fbfd; }
.edit-form .media-picker label { margin-bottom: 8px; }
.edit-form .media-picker input[type=file] { font-weight: 400; padding: 8px; }
.media-picker input[type=file]::file-selector-button { border: 1px solid #c5d6e4; border-radius: 4px; padding: 6px 10px; margin-right: 10px; background: #edf4f9; color: #1c4c70; cursor: pointer; }
.media-picker .muted { margin: 7px 0; }
.media-selected-preview:empty { display: none; }
.media-selected-preview .media-gallery { grid-template-columns: repeat(auto-fit,minmax(min(100%,180px),1fr)); margin-top: 12px; }
.media-selected-preview > .media-preview-link, .media-selected-preview > .media-model, .media-selected-preview > .media-video { margin-top: 12px; border: 1px solid #dce5ec; border-radius: 7px; overflow: hidden; }
.media-advanced { margin-top: 18px; border-top: 1px solid #e2e9ef; padding-top: 14px; }
.media-advanced summary { cursor: pointer; color: #315f82; font-size: 13px; font-weight: 600; }
.media-advanced > .form-grid { margin-top: 12px; }
.media-existing { border-top: 1px solid #e2e9ef; margin-top: 20px; padding-top: 12px; }
.media-existing h2 { font-size: 16px; margin: 4px 0 12px; }
.detail .media-gallery { grid-template-columns: 1fr; gap: 10px; }
.media-slideshow-open { overflow: hidden; }
.media-slideshow { position: fixed; inset: 0; width: min(1100px, calc(100vw - 32px)); max-width: none; height: min(860px, calc(100dvh - 32px)); max-height: none; padding: 0; border: 0; border-radius: 12px; color: #f4f7fb; background: #0c1828; box-shadow: 0 20px 80px #0008; }
.media-slideshow::backdrop { background: #03101fe0; }
.media-slide-content { display: flex; flex-direction: column; width: 100%; height: 100%; min-height: 0; }
.media-slide-content header { display: flex; align-items: center; gap: 14px; padding: 10px 14px; border-bottom: 1px solid #ffffff21; font-size: 14px; }
.media-slide-content [data-slide-count] { margin-left: auto; font-variant-numeric: tabular-nums; }
.media-slideshow button { display: inline-flex; justify-content: center; align-items: center; min-width: 40px; min-height: 40px; padding: 3px 10px; border: 1px solid #ffffff40; border-radius: 6px; color: #fff; background: #1b2d43; font-size: 26px; line-height: 1; cursor: pointer; }
.media-slideshow button:hover { background: #2e4e72; }
.media-slideshow button:focus-visible, .media-slideshow a:focus-visible { outline: 3px solid #7dcfff; outline-offset: 2px; }
.media-slideshow button:disabled { opacity: .35; cursor: default; }
.media-slide-stage { position: relative; display: flex; flex: 1; min-height: 0; align-items: center; justify-content: center; overflow: hidden; padding: 10px 58px; }
.media-slide-stage img { display: block; width: 100%; height: 100%; object-fit: contain; touch-action: pan-y pinch-zoom; }
.media-slide-stage [data-slide-prev], .media-slide-stage [data-slide-next] { position: absolute; top: calc(50% - 22px); z-index: 1; }
.media-slide-stage [data-slide-prev] { left: 10px; } .media-slide-stage [data-slide-next] { right: 10px; }
.media-slide-content footer { display: flex; align-items: center; gap: 15px; padding: 12px 14px; border-top: 1px solid #ffffff21; font-size: 13px; }
.media-slide-content [data-slide-caption] { min-width: 0; overflow-wrap: anywhere; }
.media-slide-content [data-slide-download] { margin-left: auto; flex-shrink: 0; color: #a6daff; }
.media-slide-error { position: absolute; left: 60px; right: 60px; bottom: 12px; margin: 0; padding: 8px; border-radius: 5px; background: #0c1828dc; text-align: center; }
@media(max-width:560px) { .media-slideshow { width: calc(100vw - 12px); height: calc(100dvh - 12px); border-radius: 8px; }.media-slide-stage { padding: 6px 43px; }.media-slide-stage [data-slide-prev] { left: 3px; }.media-slide-stage [data-slide-next] { right: 3px; }.media-slideshow button { min-width: 36px; }.media-slide-content footer { flex-wrap: wrap; }.media-slide-content [data-slide-caption] { flex-basis: 100%; } }
.detail .media-card .media-file-name { font-size: 12px; }
.detail .media-card .media-file-meta { font-size: 11px; }
@media(max-width:700px) { .media-picker { padding: 12px; }.media-file-actions { gap: 14px; }.media-gallery { grid-template-columns: 1fr; } }
.monument-directions-button{display:block;width:100%;min-height:44px;margin:8px 0 12px;padding:9px 12px;border:1px solid #b9cde3;border-radius:6px;background:#edf4fc;color:#174a7c;font-weight:700}
.map-directions{display:grid;gap:9px;width:100%;min-width:0;padding:12px;font-size:13px}
.map-directions>*{min-width:0;margin:0;overflow-wrap:anywhere}
.map-directions label{font-weight:700;color:#254868}
.map-directions input,.map-directions select{display:block;width:100%;min-height:44px;padding:9px;border:1px solid #b8c9da;border-radius:6px;background:#fff;color:#19324c}
.map-directions small{color:#526c83;font-size:12px}
.directions-destination{font-weight:700;padding-bottom:7px;border-bottom:1px solid #e3ebf4}
.directions-actions{display:flex;flex-wrap:wrap;gap:7px}
.directions-actions button{flex:1;min-width:105px;min-height:44px;padding:7px 9px;border:1px solid #bdcfe0;border-radius:6px;background:#f3f7fc;color:#17446e;line-height:1.3}
.directions-actions .directions-solve{background:#075899;border-color:#075899;color:#fff;font-weight:700}
.directions-actions button[aria-pressed=true]{background:#fff0d5;border-color:#aa6b00;color:#714800}
.map-directions button:disabled{opacity:.55;cursor:default}
.map-directions :is(button,input,select,a):focus-visible,.monument-directions-button:focus-visible{outline:3px solid #d08912;outline-offset:2px}
.directions-suggestions{padding:0;list-style:none;display:grid;gap:5px}
.directions-suggestions:empty{display:none}
.directions-suggestions button{display:block;width:100%;min-height:44px;text-align:left;white-space:normal;overflow-wrap:anywhere;padding:8px;border:1px solid #cbd9e8;border-radius:5px;background:#f4f8fc;color:#17446e}
.directions-status{color:#486278;font-size:12px;min-height:18px}
.directions-status.is-error{color:#a72a3d}
.directions-google{display:block;min-height:44px;padding:10px 8px;border:1px solid #b6ccdf;border-radius:6px;text-align:center;font-weight:700}
.directions-google[aria-disabled=true]{opacity:.55}
.directions-summary{font-weight:700;color:#174a7c}
.directions-steps{padding-left:23px;display:grid;gap:10px}
.directions-steps small{display:block;margin-top:2px}
@media(max-width:600px){.map-tool-panel[data-tool=directions]{right:8px;width:calc(100% - 16px)}.map-directions{padding:10px}}
