/* RAYSAT Calendar v0.1. Extends assets/css/shared.css. */
:root{
  --green:#164A36;--dark:#183A2D;--ink:#213A30;--muted:#5D7469;
  --bg:#F2F6F1;--panel:#FFFFFF;--line:#E0E9E1;--shadow:0 16px 38px rgba(20,55,36,.07)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-size:16px;line-height:1.75}
button,select,input{font:inherit}
button{cursor:pointer}
button:focus-visible,select:focus-visible,input:focus-visible,path:focus-visible{outline:3px solid #235FBD;outline-offset:3px}
.calendar-hero{background:linear-gradient(118deg,#123B2C,#226347 70%,#28744A);color:white;padding:26px max(18px,calc((100vw - 1590px)/2));}
.header-inner{max-width:1550px;margin:auto}
.calendar-brand{display:flex;gap:14px;align-items:flex-start}
.calendar-logo{display:grid;place-items:center;width:56px;height:56px;font-size:27px;border:1px solid #ffffff55;background:#ffffff20;border-radius:16px;flex-shrink:0}
.calendar-eyebrow{font-size:13px;font-weight:800;letter-spacing:.3px;color:#D2F1DA}
h1{font-size:clamp(26px,3.2vw,44px);line-height:1.35;margin:3px 0 8px;font-weight:900;max-width:1020px}
.lead{font-size:clamp(15px,1.6vw,19px);margin:8px 0 0;color:#DFF1E5}
.ribbon{display:flex;flex-wrap:wrap;gap:9px;margin-top:17px}
.ribbon span{font-size:12px;font-weight:700;white-space:nowrap;border:1px solid #ffffff55;background:#ffffff15;border-radius:100px;padding:5px 12px}
main{max-width:1590px;margin:auto;padding:20px 20px 65px}
.update{display:flex;align-items:center;gap:7px;color:#435E4F;font-size:13px;font-weight:700;margin:0 0 13px;padding:0 4px}
.layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(330px,.95fr);gap:18px;align-items:start}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:var(--shadow)}
.panel-head{padding:20px 22px;border-bottom:1px solid var(--line)}
h2{font-size:clamp(19px,2vw,24px);line-height:1.4;margin:0}
.caption{color:var(--muted);font-size:13px;margin-top:5px}
.filters{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px}
.field-label{font-size:12px;color:#476657;font-weight:700;display:block;margin-bottom:4px}
.filters select,.filters input{display:block;width:100%;min-width:0;border:1px solid #C8DCCC;background:#F8FBF7;border-radius:12px;padding:11px 12px;color:#244534;min-height:46px}
.maparea{position:relative;background:radial-gradient(ellipse at 50% 53%,#E6F0E9 0%,#EEF5F0 75%);padding:12px 12px 2px}
.maparea svg{height:clamp(440px,52vw,690px);width:100%;display:block;touch-action:none;user-select:none;cursor:grab}
.maparea svg.is-dragging{cursor:grabbing}
.maparea .boundary{stroke:#ffffff;stroke-width:1.05;stroke-linejoin:round;transition:filter .1s,fill .12s;cursor:pointer;vector-effect:non-scaling-stroke}
.boundary:hover{stroke:#163F2E;stroke-width:2}
.boundary.active{stroke:#143423;stroke-width:3.1;filter:drop-shadow(0 0 3px rgba(10,52,34,.45))}
.map-tips{position:absolute;right:19px;top:18px;background:#FFFFFFEF;padding:6px 11px;border-radius:10px;font-size:12px;font-weight:700;color:#426452;pointer-events:none;z-index:2}
.map-tools{position:absolute;left:17px;bottom:18px;display:flex;flex-direction:column;gap:6px;z-index:3}
.map-tools button{display:grid;place-items:center;width:41px;height:41px;border:1px solid #C7DACE;border-radius:10px;background:#fff;color:#1E543C;font-size:22px;font-weight:900;box-shadow:0 2px 10px #123B2C16}
.legend{border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:12px 16px}
.legend span{display:flex;align-items:center;gap:8px;padding:8px 8px;border-radius:8px;font-size:12px;color:#344B3E;font-weight:700}
.legend .count{margin-right:auto;background:#F1F5F1;color:#355A40;border-radius:9px;padding:0px 6px;font-size:13px}
.dot{width:15px;height:15px;border-radius:4px;display:inline-block;flex-shrink:0;background:var(--c);border:1px solid rgba(0,0,0,.10)}
.quick-regions{padding:0 17px 15px}
.quick-regions summary{color:#2C6649;font-size:13px;cursor:pointer;font-weight:700;min-height:36px;display:flex;align-items:center}
.region-list{display:flex;gap:7px;max-height:145px;overflow:auto;flex-wrap:wrap;padding:8px 0}
.region-list button{padding:7px 11px;border-radius:100px;border:1px solid #DAE6D9;background:#FAFCFA;color:#3F564A;font-size:12px}
.region-list button.is-active{background:#1F704D;color:white}
.report-panel{--accent:#20804A}
.report-head{border-top:5px solid var(--accent);padding:21px 22px 12px}
.report-overline{font-size:13px;font-weight:800;color:#236343}
.place{font-size:clamp(22px,2.3vw,29px);font-weight:900;line-height:1.4;margin-top:5px}
.pill{display:inline-flex;align-items:center;max-width:100%;border-radius:12px;padding:9px 12px;margin:14px 0 7px;background:var(--pill-bg,#eaf5e9);color:var(--pill-fg,#20633C);font-size:16px;font-weight:900;line-height:1.5}
.report-body{padding:2px 22px 19px}
.main-message{font-size:clamp(18px,2vw,22px);font-weight:850;line-height:1.65;margin:12px 0 7px}
.why{font-size:15px;line-height:1.85;color:#4D6558;margin:5px 0 12px}
.step{background:#EDF5EE;border-radius:14px;padding:13px 15px;border-right:4px solid var(--accent);margin:14px 0}
.step b{display:block;color:#174F37;font-size:17px;margin-bottom:4px}.step p{margin:0;font-size:15px}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.fact{border:1px solid #E7ECE5;background:#F8FAF7;border-radius:12px;text-align:center;padding:11px 5px}
.fact b{display:block;font-size:20px;line-height:1.5}.fact small{font-size:11px;color:#60756B;display:block;line-height:1.6}
.important{border:1px solid #DCE7D9;border-right:3px solid #99B49E;background:#F7FAF6;padding:9px 12px;margin-top:12px;border-radius:9px;color:#53695B}
.important-title{display:flex;gap:6px;align-items:center;font-size:12px;font-weight:800;line-height:1.55;margin-bottom:3px;color:#456553}
.important-text{font-size:12px;font-weight:450;line-height:1.85}
.bottom{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}
.explain{padding:20px 22px;color:#3A5845}
.explain p{margin:10px 0;font-size:15px;line-height:1.95}
.explain details{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.explain summary{cursor:pointer;font-weight:800;font-size:14px}
.source-panel{border-right:4px solid #8BB8A0}.source-name{font-weight:900;font-size:16px;line-height:1.6;color:#245D42;margin:12px 0 5px}.source-panel p{font-size:14px}.source-link{display:inline-block;color:#166A4D;font-size:13px;font-weight:800;text-decoration:underline;text-underline-offset:3px;margin-top:5px}.source-note{font-size:12px!important;color:#678076}
@media(max-width:1090px){main{padding:15px}.layout{grid-template-columns:1fr}.report-panel{order:2}.map-panel{order:1}.maparea svg{height:570px}.bottom{grid-template-columns:1fr}}
@media(max-width:600px){body{font-size:15px}.calendar-hero{padding:20px 15px 21px}.calendar-brand{gap:10px}.calendar-logo{width:44px;height:44px;font-size:22px}.calendar-eyebrow{font-size:11px}h1{font-size:25px;line-height:1.42}.lead{font-size:14px;line-height:1.8}.ribbon{gap:6px;margin-top:11px}.ribbon span{font-size:10px;padding:4px 8px}main{padding:11px 9px 35px}.update{font-size:12px;padding:0 4px}.panel{border-radius:15px}.panel-head{padding:13px 12px}h2{font-size:19px}.caption{font-size:12px}.filters{grid-template-columns:1fr 1fr;gap:7px}.filters select,.filters input{min-height:45px;padding:9px 7px;font-size:13px}.maparea{padding:4px}.maparea svg{height:clamp(345px,55vh,510px)}.map-tips{top:9px;right:9px;font-size:10px;padding:4px 7px}.map-tools{left:8px;bottom:10px}.map-tools button{width:39px;height:39px}.legend{grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;padding:8px}.legend span{font-size:11px;line-height:1.5;padding:7px 4px}.legend .dot{width:11px;height:11px}.report-head{padding:15px 14px 10px}.place{font-size:24px}.pill{font-size:15px}.report-body{padding:1px 14px 16px}.main-message{font-size:19px}.why{font-size:14px}.step p{font-size:14px}.facts{gap:5px}.fact{padding:9px 3px}.fact b{font-size:17px}.fact small{font-size:10px}.important{padding:8px 10px;margin-top:11px}.important-title{font-size:12px}.important-text{font-size:12px}.explain{padding:16px}.explain p{font-size:14px}}
@media(max-width:340px){.facts{grid-template-columns:1fr}.legend{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}


/* Refined visual edition: six display states, offline, no external assets. */
:root{--bg:#F5F7F2;--ink:#1F3E32;--muted:#667B70;--line:#E1E8DF;--shadow:0 8px 28px rgba(28,65,45,.055)}
body{background:linear-gradient(180deg,#EEF3EA 0,#F7F8F4 700px);line-height:1.8}
.calendar-hero{position:relative;overflow:hidden;background:radial-gradient(ellipse at 15% 0%,#3C795D 0,transparent 45%),linear-gradient(120deg,#103C2E,#1C5941);padding-top:34px;padding-bottom:32px;border-bottom:4px solid #C8B574}
.calendar-hero::after{content:'';position:absolute;width:390px;height:390px;border:1px solid #ffffff14;border-radius:50%;left:-65px;top:-160px;pointer-events:none;box-shadow:0 0 0 45px #ffffff04,0 0 0 100px #ffffff03}
.header-inner{position:relative;z-index:1}.calendar-brand{align-items:center}.calendar-logo{background:#FFFFFF0D;border-color:#D2C49470;border-radius:18px;width:60px;height:60px}
.calendar-eyebrow{color:#E2D6AD;font-size:12px;letter-spacing:1px}h1{font-size:clamp(27px,3vw,41px);font-weight:800;margin:5px 0;line-height:1.5}
.lead{font-size:16px;max-width:800px;color:#E1EBDF}.ribbon{gap:8px;margin-top:20px}.ribbon span{background:#ffffff0B;border-color:#ffffff25;font-size:11px;padding:5px 13px}
main{padding-top:24px}.update{background:#FFFFFFB5;border:1px solid #DFE6D9;border-radius:12px;padding:10px 14px;font-size:11px;font-weight:400;line-height:1.8;display:block;margin-bottom:18px}
.layout{gap:22px;grid-template-columns:minmax(0,1.65fr) minmax(345px,.9fr)}.panel{border-radius:20px}.panel-head{padding:23px 24px 20px}h2{font-size:22px;font-weight:800}.caption{font-size:12px;color:#6C7E73}
.filters{gap:12px;margin-top:19px}.field-label{font-size:11px;letter-spacing:.2px;margin-bottom:6px}.filters select{background:#F6F9F3;border-color:#D5E0D3;border-radius:10px;min-height:48px}
.maparea{background:radial-gradient(ellipse at 50% 50%,#E2EDDF,#F4F7F0 75%);padding:14px 10px 4px}.maparea svg{height:clamp(460px,48vw,650px)}.map-tips{background:#ffffffD9;border:1px solid #E3E9DF;font-weight:400}.map-tools button{border-radius:12px;box-shadow:0 4px 12px #23442D0A}
.legend{padding:15px 16px;gap:6px;background:#FCFDF9}.legend span{background:#F3F6F0;font-size:11px;padding:9px 8px;border-radius:9px;line-height:1.7}.legend .count{background:white;font-size:12px;min-width:23px;text-align:center}.dot{width:12px;height:12px;border-radius:50%}
.report-panel{position:sticky;top:18px}.report-head{border-top-width:4px;padding:24px 23px 14px;background:linear-gradient(180deg,#F4F8F0,#FFFFFF)}.report-overline{font-size:11px;letter-spacing:.3px}.place{font-size:27px;margin-top:8px}.pill{font-size:14px;border-radius:9px;padding:8px 12px;line-height:1.8;margin-top:17px}.report-body{padding:0 23px 22px}.main-message{font-size:20px;line-height:1.7;font-weight:800}.why{font-size:13px;line-height:1.95}.step{border-right-width:3px;background:#F0F5EB;border-radius:11px;padding:14px 16px;margin:18px 0}.step b{font-size:14px}.step p{font-size:13px;line-height:1.9}
.facts{gap:7px}.fact{background:#FCFDF9;border-color:#E3E9DE;border-radius:11px;padding:13px 5px}.fact b{font-size:22px;color:#28573E;font-variant-numeric:tabular-nums}.fact small{font-size:10px;margin-top:4px;line-height:1.7}.important{margin-top:15px;background:#F8FAF5;border-color:#E4E9DF;border-right-color:#AEBD9F;padding:10px 12px}.important-title{font-size:11px}.important-text{font-size:11px;line-height:1.9;max-height:220px;overflow:auto}
.bottom{gap:22px;margin-top:22px}.explain{padding:23px 25px}.explain h2{font-size:18px}.explain p{font-size:13px;line-height:2}.source-panel{border-right:3px solid #B9C7AA}.source-name{font-size:14px;color:#487155}.source-note{font-size:11px!important;border-top:1px solid #E7ECE1;padding-top:10px}
@media(max-width:1090px){.layout{grid-template-columns:1fr}.report-panel{position:static}.maparea svg{height:560px}.bottom{grid-template-columns:1fr}}
@media(max-width:600px){.calendar-hero{padding:23px 16px 24px}.calendar-logo{width:43px;height:48px;border-radius:12px;font-size:23px}.calendar-eyebrow{font-size:10px;letter-spacing:.2px}h1{font-size:24px;line-height:1.5}.lead{font-size:13px}.ribbon{gap:6px;margin-top:14px}.ribbon span{font-size:9px;padding:4px 9px}main{padding:13px 10px 35px}.update{font-size:10px;padding:9px 11px;margin-bottom:13px}.layout,.bottom{gap:14px}.panel{border-radius:16px}.panel-head{padding:16px 13px}.panel-head h2{font-size:19px}.filters{gap:8px;margin-top:14px}.filters select{font-size:12px;min-height:46px}.maparea{padding:5px}.maparea svg{height:clamp(360px,57vh,510px)}.legend{padding:10px 8px;gap:5px;grid-template-columns:repeat(2,minmax(0,1fr))}.legend span{font-size:10px;padding:8px 5px;gap:5px}.legend .count{font-size:11px;min-width:20px}.dot{width:10px;height:10px}.report-head{padding:18px 16px 11px}.place{font-size:25px}.report-body{padding:0 16px 18px}.main-message{font-size:19px}.pill{font-size:13px}.fact b{font-size:20px}.fact small{font-size:9px}.explain{padding:18px 16px}.explain p{font-size:13px}.bottom{margin-top:14px}}




/* Harmonize with the site navbar without overriding its responsive behavior. */
.calendar-hero h1{color:#fff}
.calendar-hero .calendar-brand::after{content:none}

/* No automatic region selection: calm, explicit initial state. */
.report-panel .report-head[hidden],.report-panel .report-body[hidden],.report-panel .empty-report[hidden]{display:none!important}
.empty-report{min-height:410px;padding:38px 25px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:11px;color:#4A6553}
.empty-report-symbol{width:70px;height:70px;border-radius:20px;background:#EDF4EA;display:grid;place-items:center;font-size:33px;margin-bottom:5px}
.empty-report h2{font-size:25px;margin:0;color:#1D5339}
.empty-report p{font-size:14px;line-height:1.95;max-width:325px;margin:0;color:#63796B}
@media(max-width:1090px){.empty-report{min-height:245px;padding:26px 18px}}
@media(max-width:600px){.empty-report{min-height:210px}.empty-report-symbol{width:56px;height:56px;font-size:27px}.empty-report h2{font-size:21px}.empty-report p{font-size:13px}}
