/* Shared visual tokens from create-rpst-district-dashboard, C1.5 theme.
   Layout and page-specific interactions stay in their original templates. */
:root{
  --rpst-primary:#7c3aed;
  --rpst-secondary:#0f766e;
  --rpst-accent:#f59e0b;
  --rpst-ink:#16322a;
  --rpst-muted:#63756f;
  --rpst-line:#ddd6fe;
  --rpst-card:rgba(255,255,255,.94);
  --rpst-shadow:0 16px 40px rgba(13,91,68,.12);
  --rpst-heading:linear-gradient(135deg,#6d28d9 0%,#0f766e 58%,#f59e0b 132%);
  --ink:var(--rpst-ink);--muted:var(--rpst-muted);--cream:#f8fffb;
  --paper:#fff;--gold:var(--rpst-accent);--green:var(--rpst-secondary);
  --blue:var(--rpst-primary);--line:var(--rpst-line);
}
body{font-family:'Sarabun',system-ui,sans-serif;background:radial-gradient(circle at 12% 0%,#ede9fe 0,#f8fffb 35%,#ecfeff 100%);color:var(--rpst-ink)}
button,input,select,textarea,svg text,.province-map text{font-family:'Sarabun',system-ui,sans-serif}
a:focus-visible,button:focus-visible,summary:focus-visible,[role=button]:focus-visible{outline:3px solid var(--rpst-primary);outline-offset:4px}
.site-header{background:rgba(255,255,255,.94);border-color:var(--rpst-line);box-shadow:0 4px 20px rgba(124,58,237,.05)}
.brand-mark{color:var(--rpst-primary);border-color:var(--rpst-line);background:#faf5ff;border-radius:16px}
.brand-name,.brand strong{font-weight:800;color:var(--rpst-secondary)}
nav{font-size:14px;font-weight:600}nav a:hover{color:var(--rpst-primary)}
nav a:first-child{border-bottom-color:var(--rpst-primary)}
.nav-location,.tiny-tag,.section-status,.meta span,.pending{background:#faf5ff;border-color:var(--rpst-line);color:var(--rpst-secondary)}
.intro,.article-heading{position:relative;isolation:isolate;background:var(--rpst-heading);border-radius:30px;box-shadow:var(--rpst-shadow);color:white;padding:28px;margin:26px 0 22px;overflow:hidden}
.intro:after,.article-heading:after{content:'';position:absolute;z-index:-1;right:-90px;top:-110px;width:330px;height:330px;border-radius:50%;background:rgba(255,255,255,.14);pointer-events:none}
.intro h1,.article-heading h1{font-weight:800;line-height:1.35;letter-spacing:0;color:white}
.intro h1{font-size:clamp(28px,3.3vw,42px)}
.intro h1 em{color:#fef3c7}.intro p,.subtitle{color:rgba(255,255,255,.95);font-size:16px}
.intro .eyebrow,.article-heading .eyebrow{color:#fef3c7;font-size:11px;letter-spacing:1.6px}
.intro-note{color:#fff;border-color:#ffffff55}.intro-note strong{color:#fef3c7;font-weight:800}
.article-heading{max-width:none}.article-heading .meta{color:white}.article-heading .meta span{color:white;background:rgba(255,255,255,.16);border:1px solid #ffffff44;font-size:12px}
.map-panel,.district-card,.attraction-card,.table-shell,.quick-info,.article-pager a{background:var(--rpst-card);border-color:var(--rpst-line);border-radius:24px;box-shadow:var(--rpst-shadow)}
.map-panel{background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(250,245,255,.9))}
.map-layers{background:rgba(250,245,255,.8);border-color:var(--rpst-line)}
.map-layers legend{color:var(--rpst-secondary);font-weight:700}
.map-tools button,.map-chip{background:#fff;border-color:var(--rpst-line);color:var(--rpst-secondary);border-radius:12px}
.map-chip.selected{color:white;background:var(--rpst-primary)}
.label-bg{fill:#fff;fill-opacity:.9}.province-map text{fill:var(--rpst-secondary);font-weight:700}
.selected .label-bg{fill:var(--rpst-primary)}.map-district.selected text{fill:white}
.leader{stroke:var(--rpst-secondary)}
.hero{border:1px solid var(--rpst-line);box-shadow:var(--rpst-shadow);border-radius:24px}
.hero:after{background:linear-gradient(180deg,rgba(15,118,110,.02) 35%,rgba(38,22,76,.88) 100%)}
.hero h2{font-weight:800}.hero-content p{font-size:15px;color:white}.hero-rule{background:#fbbf24}
.section-heading h2{font-size:clamp(23px,2.1vw,28px);font-weight:800;color:var(--rpst-ink)}
.section-heading p{font-size:14px}.section-number{font-size:11px;letter-spacing:1px;font-weight:700;color:var(--rpst-primary)}
.section-status,.attractions-section .section-status{background:#faf5ff;color:var(--rpst-secondary);font-size:12px;border:1px solid var(--rpst-line)}
.district-card:hover,.attraction-card:hover,.article-pager a:hover{border-color:#c4b5fd;box-shadow:0 20px 42px rgba(124,58,237,.15)}
.district-card.selected{border-color:var(--rpst-primary);outline-color:var(--rpst-primary)}
.card-title,.attraction-title{font-weight:800}.card-title{font-size:23px}.attraction-title{font-size:18px}
.card-tags,.card-description,.attraction-description,.attraction-location{font-size:13px;line-height:1.75}
.card-en,.attraction-category{font-size:10px}.card-index{font-weight:800;background:#fef3c7;color:#6d28d9}
.basic-data-disclosure{border-color:var(--rpst-line);border-radius:18px;background:#faf5ff}
.basic-data-disclosure summary{font-weight:700;color:var(--rpst-secondary);font-size:15px}
thead{background:linear-gradient(135deg,#faf5ff,#ecfeff)}thead th{font-weight:800;font-size:14px;color:#166534}tbody th{font-size:14px;font-weight:700}table{font-size:13px}
.pending-badge{background:#fef3c7;color:#78350f;border-color:#fde68a}.table-note,.image-note,.attraction-note{font-size:12px}
.site-footer{background:linear-gradient(135deg,#452084,#0f766e);color:white;margin-top:18px}
.footer-title{font-weight:800}.footer-tagline,.footer-inner p,.footer-links,.footer-bottom{color:#eefcf5;font-size:12px;letter-spacing:0}
.footer-bottom span:last-child{letter-spacing:0}
.prose{background:var(--rpst-card);border:1px solid var(--rpst-line);border-radius:24px;padding:26px;box-shadow:var(--rpst-shadow)}
.prose p{color:#365049;font-size:16px;line-height:1.9}.prose .lead{font-size:20px;color:var(--rpst-secondary);border-color:var(--rpst-primary)}
.prose h2{font-weight:800;color:var(--rpst-ink)}
.quick-info h2{font-size:20px;font-weight:800}.quick-info dd{font-size:14px}.quick-info dt{font-size:12px}
.button-link{font-size:14px;border-radius:12px;border-color:var(--rpst-line);background:#faf5ff}.button-link.primary{background:var(--rpst-heading);border-color:transparent;font-weight:700}
.visit-box{background:linear-gradient(135deg,#faf5ff,#ecfeff);border:1px solid var(--rpst-line);border-radius:18px}
.sources{font-size:13px}.sources a{color:var(--rpst-secondary)}.contents{font-size:13px}.article-pager a{font-weight:700}
.breadcrumb{font-size:12px}.opening-image,.detail-image img{border-radius:24px}.opening-image{box-shadow:var(--rpst-shadow)}
@media(max-width:800px){.intro,.article-heading{border-radius:22px;padding:22px;margin-top:20px}.intro p,.subtitle{font-size:15px}.section-heading p{font-size:13px}.card-title{font-size:21px}.hero-content p{font-size:14px}}
@media(max-width:430px){.intro,.article-heading{padding:20px}.intro h1{font-size:28px}.intro p{font-size:14px}.card-title{font-size:20px}.card-description,.card-tags,.attraction-description{font-size:12px}.attraction-title{font-size:17px}.prose{padding:20px 17px}.prose p{font-size:16px}.prose .lead{font-size:18px}.section-status{font-size:11px}}
