main > .container {
    padding: 70px 15px 20px;
    display: flex;
    flex-direction: column;
    min-height: 100%;
}

.not-set {
    color: var(--bs-danger);
    font-style: italic;
}

/* add sorting icons to gridview sort links */
a.asc:after, a.desc:after {
    content: '';
    left: 3px;
    display: inline-block;
    width: 0;
    height: 0;
    border: solid 5px transparent;
    margin: 4px 4px 2px 4px;
    background: transparent;
}

a.asc:after {
    border-bottom: solid 7px var(--bs-body-color);
    border-top-width: 0;
}

a.desc:after {
    border-top: solid 7px var(--bs-body-color);
    border-bottom-width: 0;
}

.grid-view th {
    white-space: nowrap;
}

.hint-block {
    display: block;
    margin-top: 5px;
    color: var(--bs-secondary-color);
}

.error-summary {
    color: var(--bs-danger-text-emphasis);
    background: var(--bs-danger-bg-subtle);
    border-left: 3px solid var(--bs-danger-border-subtle);
    padding: 10px 20px;
    margin: 0 0 15px 0;
}

/* align navbar brand baseline with nav links */
.navbar > .container,
.navbar > .container-fluid {
    align-items: baseline;
}

/* align the logout "link" (button in form) of the navbar */
.nav li > form > button.logout {
    color: var(--bs-navbar-color);
}

@media (max-width: 767.98px) {
    .navbar-nav .nav-link.logout {
        display: block;
        text-align: left;
        width: 100%;
        padding: 10px 0;
    }
}

.navbar-nav .nav-link.logout:focus,
.navbar-nav .nav-link.logout:hover {
    color: var(--bs-navbar-hover-color);
}

/* footer logo: light logo by default (light bg-body-tertiary), dark logo for dark theme */
.footer-logo-dark { display: none; }

[data-bs-theme="dark"] .footer-logo-light { display: none; }
[data-bs-theme="dark"] .footer-logo-dark  { display: inline-block; }

/* login inputs: seamless icon inside input (Volt style) */
.login-split-card .input-group {
    border: var(--bs-border-width) solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    overflow: hidden;
    transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}

.login-split-card .input-group .input-group-text {
    background: transparent;
    border: 0;
    padding-left: 1rem;
    padding-right: .75rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.login-split-card .input-group .form-control {
    border: 0;
    background: transparent;
}

.login-split-card .input-group .form-control:focus {
    box-shadow: none;
}

.login-split-card .input-group:focus-within {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb), .25);
}

/* validation styles for login split card (browsers with :has()) */
@supports selector(.input-group:has(.is-invalid)) {
    .login-split-card .input-group:has(.is-invalid) ~ .invalid-feedback {
        display: block;
        margin-top: .35rem;
        margin-bottom: .5rem;
    }

    .login-split-card .input-group:has(.is-invalid) {
        border-color: var(--bs-danger);
    }

    .login-split-card .input-group:has(.is-invalid):focus-within {
        box-shadow: 0 0 0 .25rem rgba(var(--bs-danger-rgb), .25);
    }
}

/* fallback validation styles for login split card (browsers without :has()) */
@supports not selector(.input-group:has(.is-invalid)) {
    .login-split-card .invalid-feedback:not(:empty) {
        display: block;
        margin-top: .35rem;
        margin-bottom: .5rem;
    }

    .login-split-card .input-group .form-control.is-invalid {
        border: var(--bs-border-width) solid var(--bs-danger);
    }

    .login-split-card .input-group .form-control.is-invalid:focus {
        box-shadow: 0 0 0 .25rem rgba(var(--bs-danger-rgb), .25);
    }
}

/* login split card */
.login-split-card {
    border-radius: 1rem;
    box-shadow: 0 4px 24px rgba(0, 0, 0, .10);
    background-color: var(--bs-gray-100);
    width: 100%;
    max-width: 900px;
}

.login-split-card-wide {
    max-width: 960px;
}

.login-brand-title {
    font-size: 1.75rem;
    line-height: 1.3;
}

.login-brand-text {
    font-size: .9rem;
}

.login-brand-panel {
    background: linear-gradient(135deg, #40B3D8 0%, #3a9cbd 40%, #83C933 100%);
    position: relative;
    min-height: 480px;
}

.login-brand-panel::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 20% 80%, rgba(241, 138, 42, .25) 0%, transparent 50%),
        radial-gradient(circle at 80% 20%, rgba(131, 201, 51, .2) 0%, transparent 40%);
    pointer-events: none;
}

.login-btn {
    background: linear-gradient(135deg, #40B3D8, #3a9cbd);
    border: none;
    font-weight: 600;
    letter-spacing: .02em;
    transition: opacity .2s, transform .1s;
}

.login-btn:hover {
    opacity: .9;
    transform: translateY(-1px);
}

.login-btn:active {
    transform: translateY(0);
}

/* dark mode login card */
[data-bs-theme="dark"] .login-split-card {
    background-color: var(--bs-body-bg);
    box-shadow: 0 0 0 1px var(--bs-border-color), 0 4px 24px rgba(0, 0, 0, .4);
}

[data-bs-theme="dark"] .login-mobile-logo {
    filter: invert(1);
}

/* contact form textarea height */
.site-contact textarea.form-control {
    height: 140px;
}

/* captcha: blend with card background */
.site-contact img[src*="captcha"] {
    border-radius: var(--bs-border-radius);
    mix-blend-mode: multiply;
}

/* SHCAIS visual system */
:root { --sch-ink:#3d271c; --sch-green:#ee9866; --sch-gold:#f8bd82; --sch-paper:#fffaf6; }
body { background:#fffaf5; color:var(--sch-ink); }
main > .container-fluid { padding-top:86px; min-height:100%; }
.sch-navbar { position:relative; min-height:72px; background:rgba(255,255,255,.97); backdrop-filter:blur(14px); border-bottom:1px solid #eadbd1; box-shadow:0 8px 30px rgba(89,48,25,.07); }
.sch-navbar::after{content:'';position:absolute;right:0;bottom:-1px;left:0;height:3px;background:linear-gradient(90deg,#8f3515 0 14%,#e58a55 14% 62%,#efbd7a 62% 100%)}
.navbar-brand { font-weight:800; letter-spacing:.08em; }
.sch-hero { background:radial-gradient(circle at 85% 20%,rgba(255,232,197,.52),transparent 24%),radial-gradient(circle at 72% 110%,rgba(255,255,255,.3),transparent 36%),linear-gradient(120deg,#d58a5d,#f3aa7e); min-height:270px; display:flex; align-items:center; box-shadow:0 20px 50px rgba(182,80,25,.13); }
.eyebrow { font-size:.72rem; letter-spacing:.18em; font-weight:800; }
.hero-stat { display:inline-flex; flex-direction:column; min-width:150px; padding:1.15rem; border:1px solid rgba(255,255,255,.28); border-radius:18px; background:rgba(255,255,255,.12); backdrop-filter:blur(8px); text-align:center; }
.hero-stat b { font-size:2.7rem; line-height:1; }.hero-stat span{font-size:.8rem;margin-top:.4rem}
.filter-panel,.site-card,.form-section,.stat-card { border-radius:16px; }
.map-shell { height:620px; border-radius:18px; overflow:hidden; background:#e4e8df; }
.map-detail { height:360px; overflow:hidden; }
.sch-coordinate-picker{overflow:hidden;border:1px solid #d9e2dd;border-radius:18px;background:#fff}.sch-coordinate-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;background:#f5f8f6}.sch-coordinate-toolbar b,.sch-coordinate-toolbar small{display:block}.sch-coordinate-toolbar small{margin-top:.15rem;color:#728078;font-size:.75rem}.sch-coordinate-picker #sch-coordinate-map{height:380px;background:#e6ebe8}.sch-coordinate-picker .leaflet-container{font-family:inherit}
.site-list { max-height:560px; overflow:auto; padding-right:.3rem; }
.site-card { overflow:hidden; transition:transform .15s,box-shadow .15s; }.site-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(23,67,51,.14)!important}
.site-thumb { width:100%; height:118px; object-fit:cover; }.category-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:.35rem}
.detail-cover { height:460px; background:#183c31; }.detail-cover>img{width:100%;height:100%;object-fit:cover}.detail-cover:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 30%,rgba(8,28,22,.88))}.detail-overlay{position:absolute;z-index:1;bottom:0;left:0;right:0}
.meta-row{padding:.85rem 0;border-bottom:1px solid #eceae4;display:flex;flex-direction:column;gap:.2rem}.meta-row span{font-size:.75rem;color:#7a817c}.meta-row b{font-size:.93rem}
.stat-card span{color:#777;font-size:.8rem}.stat-card b{display:block;font-size:2rem;color:var(--sch-green)}
.status-pill{display:inline-block;padding:.3rem .6rem;border-radius:999px;background:#eee;font-size:.75rem;white-space:nowrap}.status-published{background:#d9efe6;color:#126548}.status-verified{background:#dce9f8;color:#315f93}.status-draft{background:#ececec;color:#555}.status-submitted{background:#fff0c9;color:#876310}.status-revision{background:#f9dddd;color:#973737}
.btn-primary{--bs-btn-color:#512b18;--bs-btn-bg:var(--sch-green);--bs-btn-border-color:var(--sch-green);--bs-btn-hover-color:#3d2113;--bs-btn-hover-bg:#e98752;--bs-btn-hover-border-color:#e98752;--bs-btn-active-color:#fff;--bs-btn-active-bg:#ce6d3c;--bs-btn-active-border-color:#ce6d3c}.text-primary{color:#bd531d!important}
.color-chip{display:inline-block;width:28px;height:28px;border-radius:8px;border:2px solid #fff;box-shadow:0 0 0 1px #ddd}.cover-preview{width:100%;height:170px;object-fit:cover;border-radius:12px}.gallery-admin{display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem;margin-top:1rem}.gallery-admin-item{position:relative}.gallery-admin-item img{width:100%;height:95px;object-fit:cover;border-radius:10px}.gallery-admin-item .btn{position:absolute;right:5px;bottom:5px}.public-gallery{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem}.public-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:14px;transition:transform .15s,box-shadow .15s}.public-gallery img:hover{transform:translateY(-3px);box-shadow:0 12px 25px rgba(20,60,45,.18)}

/* Refined heritage editor */
.sch-form-page{max-width:1480px;margin:0 auto}.sch-form-heading{padding:.35rem .15rem}.sch-form-heading h1{font-weight:750;letter-spacing:-.025em}.sch-form{--sch-field-border:#d8dbe2;--sch-field-muted:#7b8291;--sch-field-bg:#fff}.sch-form-section,.sch-side-card{background:#fff;border:1px solid #e7e8ec;border-radius:20px;box-shadow:0 10px 32px rgba(28,48,40,.055);overflow:hidden}.sch-section-title{display:flex;gap:1rem;align-items:center;padding:1.35rem 1.6rem;border-bottom:1px solid #ececef;background:linear-gradient(90deg,#fbfcfa,#fff)}.sch-section-title>span{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:12px;background:#e7f3ee;color:var(--sch-green);font-weight:800;font-size:.82rem}.sch-section-title h2,.sch-side-card-head h2{font-size:1.02rem;font-weight:750;margin:0 0 .2rem}.sch-section-title p,.sch-side-card-head p{font-size:.78rem;color:#8b909a;margin:0}.sch-section-body{padding:1.6rem}.sch-field{margin:0}.sch-field>.form-label,.sch-upload-field>.form-label{font-size:.86rem;font-weight:700;color:#252a31;margin-bottom:.55rem}.sch-control{display:flex;min-height:58px;border:1px solid var(--sch-field-border);border-radius:13px;background:var(--sch-field-bg);overflow:hidden;transition:border-color .18s,box-shadow .18s,background .18s}.sch-control:focus-within{border-color:#4b8f79;box-shadow:0 0 0 4px rgba(22,104,79,.1)}.sch-control-icon{width:58px;flex:0 0 58px;display:flex;align-items:center;justify-content:center;border-right:1px solid var(--sch-field-border);color:#747c8c;background:#fbfbfc;font-size:1.05rem;font-weight:750}.sch-control>.form-control,.sch-control>.form-select{min-height:56px;border:0;border-radius:0;background-color:transparent;padding:.75rem 1rem;font-size:.95rem;font-weight:550;box-shadow:none!important}.sch-control>.form-control::placeholder{color:#a5aab3;font-weight:400}.sch-control>.form-select{padding-right:2.7rem}.sch-control>.form-control:disabled,.sch-control>.form-select:disabled{background:#f1f2f5;color:#9ba0aa;opacity:1}.sch-control:has(>.form-control:disabled),.sch-control:has(>.form-select:disabled){background:#f1f2f5}.sch-control:has(.is-invalid){border-color:#d55757}.sch-field-textarea .sch-control-icon{align-items:flex-start;padding-top:1rem}.sch-field-textarea textarea.form-control{min-height:105px;resize:vertical}.sch-field .invalid-feedback{font-size:.76rem;margin-top:.4rem}.sch-side-card-head{display:flex;gap:.85rem;align-items:center;padding:1.2rem 1.35rem;border-bottom:1px solid #ececef;background:#fbfbfc}.sch-side-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#edf3f0;color:var(--sch-green);font-weight:800}.sch-side-card-body{padding:1.35rem}.sch-side-card-body>.sch-field+.sch-field{margin-top:1.15rem}.sch-save-btn{min-height:53px;border-radius:12px;font-weight:750}.sch-current-cover{position:relative;margin-bottom:1.15rem}.sch-current-cover img{display:block;width:100%;height:190px;object-fit:cover;border-radius:13px}.sch-current-cover span{position:absolute;left:.7rem;bottom:.7rem;padding:.3rem .6rem;border-radius:7px;background:rgba(17,40,33,.8);color:#fff;font-size:.72rem}.sch-upload-field{margin-bottom:1.3rem}.sch-upload-field .hint-block{font-size:.74rem;margin-top:.45rem}.sch-file-input{border-radius:11px;padding:.45rem;border-color:#dfe1e5;font-size:.82rem}.sch-file-input::file-selector-button{border:0;border-radius:8px;background:#edf3f0;color:var(--sch-green);font-weight:700;padding:.6rem .75rem;margin-right:.7rem}.sch-gallery-heading{display:flex;justify-content:space-between;align-items:center;margin:1.2rem 0 .6rem}.sch-gallery-heading span{padding:.2rem .55rem;border-radius:999px;background:#edf3f0;color:var(--sch-green);font-size:.76rem;font-weight:800}.sch-form-aside{position:sticky;top:86px}.sch-form .help-block{margin:0}
@media(max-width:991px){.map-shell{height:440px}.site-list{max-height:none}.detail-cover{height:380px}}
@media(max-width:991px){.public-gallery{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1199px){.sch-form-aside{position:static}.sch-section-body{padding:1.3rem}}
@media(max-width:575px){.sch-hero{min-height:340px}.map-shell{height:390px}.detail-cover{height:340px}.display-5{font-size:2rem}.public-gallery{grid-template-columns:repeat(2,1fr)}.sch-section-title{padding:1rem}.sch-section-body{padding:1rem}.sch-control-icon{width:50px;flex-basis:50px}}
@media(max-width:575px){.sch-coordinate-toolbar{align-items:stretch;flex-direction:column}.sch-coordinate-toolbar .btn{width:100%}.sch-coordinate-picker #sch-coordinate-map{height:320px}}

/* Map-first public homepage */
.heritage-home{max-width:1540px;margin:0 auto}.sch-home-intro{position:relative;display:flex;justify-content:space-between;align-items:center;gap:2rem;min-height:245px;margin-bottom:1.25rem;padding:2.5rem 3rem;overflow:hidden;border-radius:24px;color:#4a2818;background:radial-gradient(circle at 82% 0,rgba(255,240,215,.55),transparent 30%),linear-gradient(120deg,#d1885b 0%,#ee9866 58%,#f7b882 100%);box-shadow:0 20px 55px rgba(181,75,22,.14)}.sch-home-intro:after{content:'◉';position:absolute;right:24%;bottom:-125px;font-size:330px;line-height:1;color:rgba(255,255,255,.12)}.sch-home-intro>div{position:relative;z-index:1}.sch-home-intro .eyebrow{color:#733516}.sch-home-intro h1{max-width:820px;margin:0 0 .8rem;font-size:clamp(2.1rem,4vw,4rem);font-weight:800;line-height:1.08;letter-spacing:-.045em}.sch-home-intro h1 span{color:#7f3816}.sch-home-intro p:not(.eyebrow){max-width:740px;margin:0;color:rgba(70,37,21,.82);font-size:1.05rem}.sch-home-stat{display:flex;flex:0 0 235px;flex-direction:column;padding:1.6rem;border:1px solid rgba(255,255,255,.55);border-radius:20px;background:rgba(255,255,255,.24);backdrop-filter:blur(12px)}.sch-home-stat b{color:#5b2b17;font-size:3.7rem;line-height:1}.sch-home-stat span{margin:.45rem 0 .2rem;color:#733516;font-weight:750}.sch-home-stat small{color:rgba(70,37,21,.7)}
.sch-map-workspace{display:grid;grid-template-columns:320px minmax(0,1fr);min-height:640px;overflow:hidden;border:1px solid #dfe5df;border-radius:24px;background:#fff;box-shadow:0 20px 50px rgba(22,56,45,.11)}.sch-map-sidebar{position:relative;z-index:500;display:flex;flex-direction:column;background:#fff;box-shadow:12px 0 35px rgba(22,56,45,.08)}.sch-sidebar-head{padding:1.6rem 1.5rem;border-bottom:1px solid #e9ece9}.sch-sidebar-head h2{margin:0 0 .25rem;font-size:1.3rem;font-weight:800}.sch-sidebar-head p:last-child{margin:0;color:#7a847f;font-size:.82rem}.sch-layer-all{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:#f2f7f4}.sch-layer-all label{display:flex;align-items:center;gap:.7rem;font-weight:750}.sch-layer-all b{color:var(--sch-green);font-size:.8rem}.map-layer-list{padding:.6rem 0}.map-layer-row{display:flex;align-items:center;gap:.7rem;padding:.75rem 1.5rem;cursor:pointer;transition:background .15s}.map-layer-row:hover{background:#f7f9f7}.map-layer-dot{width:12px;height:12px;flex:0 0 12px;border-radius:50%;box-shadow:0 0 0 3px rgba(0,0,0,.05)}.map-layer-name{flex:1;font-size:.9rem}.map-layer-row b{min-width:26px;padding:.15rem .45rem;border-radius:999px;background:#edf1ee;color:#52615a;font-size:.73rem;text-align:center}.sch-sidebar-note{display:flex;gap:.7rem;margin:auto 1rem 1rem;padding:1rem;border-radius:14px;background:#fff8e9;color:#6e592c}.sch-sidebar-note>span{font-size:1.3rem}.sch-sidebar-note p{margin:0;font-size:.75rem;line-height:1.55}.sch-map-stage{position:relative;min-width:0}.sch-map-stage .map-shell{height:100%;min-height:640px;border-radius:0}.map-loading,.map-empty-notice{position:absolute;z-index:450;top:50%;left:50%;padding:.75rem 1rem;border-radius:12px;background:rgba(255,255,255,.94);box-shadow:0 8px 28px rgba(20,50,40,.14);transform:translate(-50%,-50%);font-size:.85rem}.map-loading span{display:inline-block;width:10px;height:10px;margin-right:.45rem;border-radius:50%;background:var(--sch-green);animation:schPulse 1s infinite}@keyframes schPulse{50%{opacity:.25;transform:scale(.8)}}.sch-map-caption{position:absolute;z-index:450;right:1rem;bottom:1rem;display:grid;grid-template-columns:auto 1fr;column-gap:.55rem;padding:.75rem 1rem;border:1px solid rgba(255,255,255,.6);border-radius:13px;background:rgba(255,255,255,.92);box-shadow:0 8px 28px rgba(20,50,40,.14);backdrop-filter:blur(9px)}.sch-map-caption small{grid-column:2;color:#748079;font-size:.7rem}.sch-live-dot{grid-row:1/3;align-self:center;width:9px;height:9px;border-radius:50%;background:#27a56f;box-shadow:0 0 0 5px rgba(39,165,111,.12)}
.sch-map-marker-wrap{background:transparent;border:0}.sch-map-marker{position:relative;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:3px solid #fff;border-radius:50% 50% 50% 7px;background:var(--marker-color);box-shadow:0 4px 12px rgba(0,0,0,.3);transform:rotate(-45deg)}.sch-map-marker:after{content:'';width:8px;height:8px;border-radius:50%;background:#fff}.sch-map-marker i{position:absolute;color:#fff;font-size:.48rem;font-style:normal;transform:rotate(45deg)}.sch-map-marker:has(i):after{display:none}.leaflet-popup-content-wrapper{overflow:hidden;padding:0;border-radius:16px}.leaflet-popup-content{width:250px!important;margin:0}.sch-map-popup>img{display:block;width:100%;height:115px;object-fit:cover}.sch-map-popup-body{padding:.85rem 1rem 1rem}.sch-popup-meta{margin-bottom:.25rem;color:#6d7d75;font-size:.7rem}.sch-map-popup strong{display:block;color:#17362c;font-size:1rem}.sch-map-popup p{margin:.25rem 0 .65rem;color:#7b847f;font-size:.75rem}.sch-map-popup a{color:var(--sch-green);font-size:.78rem;font-weight:750;text-decoration:none}
.sch-search-btn{min-height:48px;border-radius:10px;font-weight:750}.sch-results .site-card{border-radius:18px}.sch-card-image{position:relative;height:205px;overflow:hidden;background:#dfe5df}.sch-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.site-card:hover .sch-card-image img{transform:scale(1.035)}.sch-card-image>span{position:absolute;top:.8rem;left:.8rem;padding:.35rem .65rem;border-left:4px solid var(--category-color);border-radius:7px;background:rgba(255,255,255,.92);color:#253d35;font-size:.72rem;font-weight:750}.sch-card-image>i{position:absolute;right:.8rem;bottom:.8rem;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#d42f2f;color:#fff;font-size:.75rem;font-style:normal;box-shadow:0 5px 14px rgba(0,0,0,.22)}.sch-results .card-body{padding:1.15rem 1.25rem 1.3rem}.sch-results .card-body small{color:#8a958f;font-size:.68rem;letter-spacing:.1em}.sch-results .card-body h3{margin:.35rem 0;font-size:1.06rem;font-weight:780;color:#18362d}.sch-results .card-body p{margin:0;color:#7a837f;font-size:.8rem}.sch-card-link{display:flex;justify-content:space-between;margin-top:1rem;padding-top:.85rem;border-top:1px solid #eef0ee;color:var(--sch-green);font-size:.78rem;font-weight:750}
.sch-video-embed,.sch-video-preview{position:relative;overflow:hidden;aspect-ratio:16/9;background:#111}.sch-video-embed iframe,.sch-video-preview iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.sch-video-preview{border-radius:12px}.sch-youtube-icon{background:#fae8e8;color:#c52f2f}
@media(max-width:991px){.sch-home-intro{padding:2rem}.sch-map-workspace{grid-template-columns:260px 1fr}.sch-map-stage .map-shell{min-height:560px}.sch-map-workspace{min-height:560px}.sch-home-stat{flex-basis:190px}}
@media(max-width:767px){.sch-home-intro{display:block;min-height:0}.sch-home-stat{margin-top:1.5rem}.sch-map-workspace{display:block}.sch-map-sidebar{box-shadow:none}.sch-sidebar-head{padding:1.2rem}.map-layer-list{display:grid;grid-template-columns:1fr 1fr}.map-layer-row{padding:.65rem 1rem}.sch-sidebar-note{display:none}.sch-map-stage .map-shell{min-height:500px}.sch-map-caption{display:none}}
@media(max-width:480px){.sch-home-intro{padding:1.5rem;border-radius:18px}.sch-home-intro h1{font-size:2rem}.map-layer-list{grid-template-columns:1fr}.sch-map-stage .map-shell{min-height:430px}}

/* Interactive final review for the heritage editor */
.sch-form-heading h1{font-size:clamp(2rem,3vw,2.75rem);font-weight:820}.sch-section-title{padding:1.55rem 1.7rem}.sch-section-title>span{width:48px;height:48px;flex-basis:48px;font-size:.9rem}.sch-section-title h2{font-size:1.38rem;font-weight:820;letter-spacing:-.015em}.sch-side-card-head h2{font-size:1.13rem;font-weight:800}.sch-section-title p{font-size:.86rem}.sch-side-card-head p{font-size:.8rem}.sch-field>.form-label,.sch-upload-field>.form-label{font-size:.94rem}.sch-publish-hint{padding:.8rem .9rem;border-radius:11px;background:#f3f7f5;color:#6d7973;font-size:.78rem;line-height:1.55}
.sch-form-review{overflow:hidden;border:1px solid #d9e3dd;border-radius:22px;background:#fff;box-shadow:0 16px 42px rgba(28,48,40,.08)}.sch-review-heading{display:flex;align-items:center;gap:1rem;padding:1.55rem 1.7rem;border-bottom:1px solid #e7ece9;background:linear-gradient(100deg,#f4f9f6,#fff)}.sch-review-heading>span{display:grid;place-items:center;width:50px;height:50px;flex:0 0 50px;border-radius:14px;background:var(--sch-green);color:#fff;font-weight:850}.sch-review-heading h2{margin:0 0 .2rem;font-size:1.5rem;font-weight:850;letter-spacing:-.02em}.sch-review-heading p:last-child{margin:0;color:#78827d;font-size:.84rem}.sch-review-body{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.5rem 1.7rem}.sch-review-checks{display:flex;flex:1;gap:.8rem}.sch-review-checks>div{display:flex;align-items:center;gap:.7rem;min-width:0;flex:1;padding:.85rem;border:1px solid #e7eae8;border-radius:13px;background:#fafbfa}.sch-review-icon{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:10px;background:#e7f3ee;color:var(--sch-green);font-size:.85rem;font-weight:850}.sch-review-checks p{display:flex;min-width:0;flex-direction:column;margin:0}.sch-review-checks b{font-size:.78rem}.sch-review-checks small{overflow:hidden;color:#748079;font-size:.74rem;text-overflow:ellipsis;white-space:nowrap}.sch-save-state{transition:border-color .2s,background .2s}.sch-save-state.is-dirty{border-color:#edbd51;background:#fff9e9}.sch-save-state.is-dirty .sch-review-icon{background:#f8d77e;color:#694800;animation:schDirtyPulse 1.8s infinite}@keyframes schDirtyPulse{50%{box-shadow:0 0 0 7px rgba(232,173,37,.12)}}.sch-review-actions{display:flex;flex:0 0 auto;gap:.75rem}.sch-review-actions .btn{min-height:54px;border-radius:12px;font-size:.92rem;font-weight:780}.sch-review-actions .sch-save-btn{min-width:230px;transition:background-color .2s,border-color .2s,box-shadow .2s,transform .15s}.sch-review-actions .sch-save-btn.btn-warning{--bs-btn-color:#503600;--bs-btn-bg:#f2bd3f;--bs-btn-border-color:#e4ac29;box-shadow:0 8px 22px rgba(211,151,22,.22)}.sch-review-actions .sch-save-btn.btn-warning:hover{transform:translateY(-1px)}
@media(max-width:1199px){.sch-review-body{align-items:stretch;flex-direction:column}.sch-review-actions{justify-content:flex-end}}
@media(max-width:767px){.sch-review-checks{flex-direction:column}.sch-review-actions{display:grid;grid-template-columns:1fr}.sch-review-actions .sch-save-btn{min-width:0}.sch-review-heading,.sch-review-body{padding:1.2rem}.sch-section-title h2{font-size:1.22rem}}

/* Clear dropdown affordance */
.sch-select-control{position:relative}.sch-select-control>select{-webkit-appearance:none;appearance:none;padding-right:3.8rem!important;background-image:none!important;cursor:pointer}.sch-select-arrow{position:absolute;z-index:2;top:50%;right:1rem;display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#edf3f0;color:#385d50;pointer-events:none;transform:translateY(-50%);font-size:.7rem;line-height:1;transition:transform .18s,color .18s,background .18s}.sch-select-control:focus-within .sch-select-arrow{background:#dcece5;color:var(--sch-green);transform:translateY(-50%) rotate(180deg)}.sch-select-control>select:disabled+.sch-select-arrow{background:#e5e7e8;color:#aeb5b1}.sch-select-control>select:disabled{cursor:not-allowed}

/* Structured report evidence */
.sch-source-card .sch-side-card-head{background:linear-gradient(90deg,#fff8e8,#fff)}.sch-source-card .sch-side-icon{background:#fff0c9;color:#8a6110}.sch-source-card .sch-control-icon{font-size:.72rem}.sch-public-sources{border-radius:18px}.sch-source-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.7rem 1rem;padding:1.1rem 0;border-top:1px solid #e8ebe9}.sch-source-item:first-of-type{border-top:0;padding-top:.3rem}.sch-source-item h3{margin:0 0 .2rem;font-size:1rem;font-weight:800}.sch-source-item>div>p{margin:0;color:#77827d;font-size:.76rem}.sch-source-badges{display:flex;align-items:flex-start;gap:.45rem}.sch-source-badges span{padding:.28rem .55rem;border-radius:999px;background:#eef2f0;color:#52645c;font-size:.7rem;font-weight:750;white-space:nowrap}.sch-source-badges .sch-source-status-verified{background:#dff1e8;color:#16684f}.sch-source-badges .sch-source-status-needs_review{background:#f9dddd;color:#973737}.sch-source-badges .sch-source-status-pending{background:#fff0c9;color:#876310}.sch-source-excerpt{grid-column:1/-1;margin:0!important;padding:.85rem 1rem;border-left:3px solid var(--sch-gold);border-radius:0 10px 10px 0;background:#faf8f2;color:#48534e!important;font-size:.85rem!important;line-height:1.65}.sch-source-item>small{grid-column:1/-1;color:#77827d}
@media(max-width:767px){.sch-source-item{grid-template-columns:1fr}.sch-source-badges{flex-wrap:wrap}.sch-source-excerpt,.sch-source-item>small{grid-column:1}}

/* dark mode: invert captcha for visibility on dark background */
[data-bs-theme="dark"] .site-contact img[src*="captcha"] {
    mix-blend-mode: screen;
    filter: invert(1) hue-rotate(180deg);
}

/* centered page layout */
.site-login,
.site-contact,
.site-index,
.site-error,
.site-about,
.site-contact-success {
    flex: 1;
}

.site-error .site-error-content,
.site-about .site-about-content,
.site-contact-success .site-contact-success-content {
    width: 100%;
    max-width: 90%;
}

@media (min-width: 576px) {
    .site-error .site-error-content,
    .site-about .site-about-content,
    .site-contact-success .site-contact-success-content {
        max-width: 80%;
    }
}

@media (min-width: 768px) {
    .site-error .site-error-content,
    .site-about .site-about-content,
    .site-contact-success .site-contact-success-content {
        max-width: 60%;
    }
}

@media (min-width: 992px) {
    .site-error .site-error-content,
    .site-about .site-about-content,
    .site-contact-success .site-contact-success-content {
        max-width: 50%;
    }
}

/* hero banner */
.hero-banner {
    background: linear-gradient(135deg, #83C933 0%, #3a9cbd 40%, #40B3D8 100%);
    position: relative;
}

.hero-lead {
    max-width: 520px;
}

/* Orange and white SHCAIS theme */
:root {
    --bs-primary: #ee9866;
    --bs-primary-rgb: 238, 152, 102;
    --bs-link-color: #b94c18;
    --bs-link-hover-color: #87370f;
}

body,
button,
input,
select,
textarea {
    font-family: "Sarabun", system-ui, -apple-system, "Segoe UI", sans-serif;
}

.sch-navbar .container {
    align-items: center;
}

.sch-navbar .navbar-brand {
    display: flex;
    align-items: center;
    gap: .85rem;
    max-width: min(720px, 62vw);
    padding-block: .3rem;
    color: #63301d;
    letter-spacing: 0;
}

.sch-brand-mark {
    position: relative;
    display: grid;
    place-items: center;
    width: 50px;
    height: 50px;
    flex: 0 0 50px;
    border: 1px solid #8e3616;
    border-radius: 50% 50% 50% 14px;
    color: #fff8ef;
    background: radial-gradient(circle at 35% 25%,#cf7444,#9b3d19 72%);
    box-shadow: inset 0 0 0 3px #f8d7b9, inset 0 0 0 4px rgba(108,39,13,.3), 0 8px 20px rgba(133,54,20,.2);
    transform: rotate(-4deg);
}

.sch-brand-mark::before,.sch-brand-mark::after{content:'';position:absolute;left:50%;width:20px;height:1px;background:rgba(255,238,220,.72);transform:translateX(-50%)}
.sch-brand-mark::before{top:12px}.sch-brand-mark::after{bottom:11px}
.sch-brand-mark span{
    position:relative;
    z-index:1;
    font-size:1.45rem;
    font-weight:800;
    line-height:1;
    transform:rotate(4deg);
}

.sch-brand-copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap:.16rem;
    line-height: 1.12;
}

.sch-brand-title{display:flex;align-items:center;gap:.65rem;min-width:0}
.sch-brand-title b {
    color: #6f2c14;
    font-size: 1.12rem;
    letter-spacing: .11em;
}
.sch-brand-title em{
    padding:.2rem .48rem;
    border:1px solid #efd4c3;
    border-radius:999px;
    color:#a34b23;
    background:#fff6ee;
    font-size:.62rem;
    font-style:normal;
    font-weight:750;
    letter-spacing:0;
}

.sch-brand-copy small {
    overflow: hidden;
    color: #756157;
    font-size: .7rem;
    font-weight: 550;
    letter-spacing: 0;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sch-navbar .nav-link {
    color: #5f4537;
    font-weight: 650;
}

.sch-navbar .nav-link:hover,
.sch-navbar .nav-link:focus,
.sch-navbar .nav-link.active {
    color: #bd531d;
}

.sch-footer {
    border-top: 1px solid #f3d8c6;
    color: #715344;
    background: #fff4e9;
}

.sch-footer b {
    color: #a84516;
    letter-spacing: .08em;
}

.login-brand-panel {
    color: #4a2818 !important;
    background: radial-gradient(circle at 18% 82%, rgba(255, 242, 220, .48), transparent 42%), linear-gradient(145deg, #d1885b, #f0a276 64%, #f8c09a);
}

.login-brand-panel::before {
    background: radial-gradient(circle at 80% 20%, rgba(255,255,255,.2), transparent 38%);
}

.login-btn {
    color: #512b18 !important;
    background: linear-gradient(135deg, #f1a273, #e68750);
}

.sch-login-mobile-brand {
    color: #b64a17;
    font-size: 1.5rem;
    font-weight: 850;
    letter-spacing: .12em;
}

.btn-outline-primary {
    --bs-btn-color: #a84516;
    --bs-btn-border-color: #ee9866;
    --bs-btn-hover-color: #512b18;
    --bs-btn-hover-bg: #f2aa7f;
    --bs-btn-hover-border-color: #e98b55;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #ce6d3c;
    --bs-btn-active-border-color: #ce6d3c;
}

.form-control:focus,
.form-select:focus,
.sch-control:focus-within {
    border-color: #efa477;
    box-shadow: 0 0 0 .25rem rgba(238, 152, 102, .17);
}

.form-check-input:checked {
    border-color: #e98752;
    background-color: #e98752;
}

.pagination {
    --bs-pagination-color: #a84516;
    --bs-pagination-hover-color: #87370f;
    --bs-pagination-active-color: #512b18;
    --bs-pagination-active-bg: #ee9866;
    --bs-pagination-active-border-color: #ee9866;
}

.sch-form-section,
.sch-side-card,
.sch-form-review,
.filter-panel,
.site-card,
.sch-map-workspace {
    border-color: #f1dfd2;
    box-shadow: 0 12px 34px rgba(139, 64, 20, .07);
}

.sch-section-title,
.sch-review-heading {
    border-color: #f3e0d3;
    background: linear-gradient(100deg, #fff5eb, #fff);
}

.sch-section-title > span,
.sch-side-icon,
.sch-review-icon,
.sch-file-input::file-selector-button,
.sch-gallery-heading span,
.sch-select-arrow {
    color: #b64a17;
    background: #fff0e3;
}

.sch-layer-all {
    background: #fff3e8;
}

.map-layer-row:hover {
    background: #fff8f2;
}

.sch-results .card-body h3,
.sch-map-popup strong {
    color: #4a2d1e;
}

.sch-card-link,
.sch-map-popup a {
    color: #b64a17;
}

.sch-live-dot {
    background: #ee9866;
    box-shadow: 0 0 0 5px rgba(238, 152, 102, .18);
}

@media (max-width: 991px) {
    .sch-navbar .navbar-brand {
        max-width: calc(100% - 70px);
    }

    .sch-navbar .navbar-collapse {
        margin-top: .65rem;
        padding: .7rem 0 .4rem;
        border-top: 1px solid #f3d8c6;
    }
}

@media (max-width: 575px) {
    .sch-brand-copy small {
        max-width: 230px;
        font-size:.64rem;
    }

    .sch-brand-mark {
        width: 44px;
        height: 44px;
        flex-basis: 44px;
    }
    .sch-brand-mark span{font-size:1.25rem}
    .sch-brand-title em{display:none}
    .sch-brand-title b{font-size:1rem}
}

/* Rich text editor and published history */
.sch-rich-editor-shell {
    overflow: hidden;
    border: 1px solid #e6d8cf;
    border-radius: 14px;
    background: #fff;
    transition: border-color .18s, box-shadow .18s;
}

.sch-rich-editor-shell:focus-within {
    border-color: #efa477;
    box-shadow: 0 0 0 4px rgba(238, 152, 102, .17);
}

.sch-rich-editor-shell .ql-toolbar.ql-snow {
    display: flex;
    flex-wrap: wrap;
    gap: .15rem;
    border: 0;
    border-bottom: 1px solid #f0e2d8;
    background: #fff8f2;
    font-family: "Sarabun", system-ui, sans-serif;
}

.sch-rich-editor-shell .ql-container.ql-snow {
    min-height: 250px;
    border: 0;
    font-family: "Sarabun", system-ui, sans-serif;
    font-size: 1rem;
}

.sch-rich-editor-shell .ql-editor {
    min-height: 250px;
    padding: 1.2rem 1.3rem;
    line-height: 1.75;
}

.sch-rich-editor-shell .ql-editor img {
    display: block;
    max-width: 100%;
    height: auto;
    margin-block: 1rem;
    border-radius: 12px;
}

.sch-rich-editor-shell .ql-editor.ql-blank::before {
    color: #a99589;
    font-style: normal;
}

.sch-rich-editor-shell .ql-snow .ql-stroke {
    stroke: #735446;
}

.sch-rich-editor-shell .ql-snow .ql-fill,
.sch-rich-editor-shell .ql-snow .ql-stroke.ql-fill {
    fill: #735446;
}

.sch-rich-editor-shell .ql-snow button:hover .ql-stroke,
.sch-rich-editor-shell .ql-snow button.ql-active .ql-stroke {
    stroke: #b64a17;
}

.sch-rich-editor-shell .ql-snow button:hover .ql-fill,
.sch-rich-editor-shell .ql-snow button.ql-active .ql-fill {
    fill: #b64a17;
}

.sch-history-fallback {
    min-height: 250px;
    border: 0;
    padding: 1.2rem 1.3rem;
    resize: vertical;
}

.sch-history-fallback:focus {
    box-shadow: none;
}

.sch-history-field .hint-block {
    margin-top: .5rem;
    font-size: .76rem;
}

.sch-rich-content {
    color: #4c4039;
    font-size: 1.02rem;
    line-height: 1.85;
    overflow-wrap: anywhere;
}

.sch-rich-content > :first-child {
    margin-top: 0;
}

.sch-rich-content > :last-child {
    margin-bottom: 0;
}

.sch-rich-content h2,
.sch-rich-content h3 {
    margin: 1.6rem 0 .65rem;
    color: #4a2d1e;
    font-weight: 750;
    line-height: 1.35;
}

.sch-rich-content h2 {
    font-size: 1.45rem;
}

.sch-rich-content h3 {
    font-size: 1.2rem;
}

.sch-rich-content p,
.sch-rich-content ol,
.sch-rich-content ul,
.sch-rich-content blockquote {
    margin-bottom: 1rem;
}

.sch-rich-content blockquote {
    padding: .9rem 1.1rem;
    border-left: 4px solid #ee9866;
    border-radius: 0 10px 10px 0;
    color: #674a3a;
    background: #fff7f0;
}

.sch-rich-content a {
    color: #a84516;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.sch-rich-content img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 1.25rem 0;
    border-radius: 14px;
    box-shadow: 0 10px 30px rgba(83, 48, 28, .12);
}

.sch-rich-content .ql-align-center {
    text-align: center;
}

.sch-rich-content .ql-align-center img {
    margin-inline: auto;
}

.sch-rich-content .ql-align-right {
    text-align: right;
}

.sch-rich-content .ql-align-right img {
    margin-left: auto;
}

.sch-rich-content .ql-align-justify {
    text-align: justify;
}

.sch-rich-content .ql-indent-1 {
    margin-left: 2rem;
}

.sch-rich-content .ql-indent-2 {
    margin-left: 4rem;
}

.sch-rich-content .ql-indent-3 {
    margin-left: 6rem;
}

@media (max-width: 575px) {
    .sch-rich-content .ql-indent-1,
    .sch-rich-content .ql-indent-2,
    .sch-rich-content .ql-indent-3 {
        margin-left: 1rem;
    }
}

.hero-logo {
    height: 120px;
    opacity: .45;
    right: 2.5rem;
    top: 50%;
    transform: translateY(-50%);
}

.hero-banner::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background:
        radial-gradient(circle at 15% 85%, rgba(241, 138, 42, .3) 0%, transparent 45%),
        radial-gradient(circle at 85% 15%, rgba(131, 201, 51, .25) 0%, transparent 40%),
        radial-gradient(ellipse at 50% 50%, rgba(64, 179, 216, .15) 0%, transparent 60%);
    pointer-events: none;
}

/* extension cards */
.extension-card {
    transition: transform .15s ease-in-out, box-shadow .15s ease-in-out;
}

.extension-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, .12) !important;
}

.extension-icon {
    font-size: 1.5rem;
    line-height: 1;
}

/* dark mode: extension cards */
[data-bs-theme="dark"] .extension-card {
    background-color: var(--bs-body-bg);
    box-shadow: 0 0 0 1px var(--bs-border-color), 0 2px 8px rgba(0, 0, 0, .3);
}

[data-bs-theme="dark"] .extension-card:hover {
    box-shadow: 0 0 0 1px var(--bs-border-color), 0 8px 24px rgba(0, 0, 0, .4) !important;
}
