/* Sanatan Dharma portal — enhancement layer (auth UI + dynamic visuals) */

/* ---------- account pill in the top nav ---------- */
.sd-account-slot{display:inline-flex;align-items:center;margin-left:14px}
.sd-account-signin,.sd-account-signout{
  font:inherit;cursor:pointer;background:#E08A2C;color:#241f1a;border:none;
  padding:7px 14px;border-radius:999px;font-weight:600;font-size:.82rem;letter-spacing:.02em;
}
.sd-account-pill{display:inline-flex;align-items:center;gap:8px;font-size:.82rem;color:#F6EFE2}
.sd-account-signout{background:transparent;border:1px solid rgba(246,239,226,.4);color:#F6EFE2;padding:4px 10px}

/* ---------- modal ---------- */
.sd-auth-overlay{
  position:fixed;inset:0;background:rgba(20,17,14,.62);display:none;align-items:center;justify-content:center;
  z-index:9999;padding:20px;backdrop-filter:blur(2px);
}
.sd-auth-overlay.open{display:flex}
body.sd-modal-open{overflow:hidden}
.sd-auth-modal{
  background:#FFFDF8;border-radius:14px;max-width:420px;width:100%;padding:28px 26px 24px;position:relative;
  box-shadow:0 30px 70px rgba(0,0,0,.35);max-height:90vh;overflow-y:auto;
}
.sd-auth-close{position:absolute;top:10px;right:14px;background:none;border:none;font-size:1.6rem;line-height:1;cursor:pointer;color:#6b6153}
.sd-auth-tabs{display:flex;gap:6px;margin-bottom:16px}
.sd-auth-tab{flex:1;padding:9px 10px;border-radius:8px;border:1px solid rgba(39,37,58,.16);background:#f4ecdd;cursor:pointer;font-weight:600;font-size:.86rem;color:#4a4436}
.sd-auth-tab.active{background:#35335A;color:#fff;border-color:#35335A}
.sd-auth-body h3{margin:0 0 6px;font-family:var(--display,serif);font-size:1.3rem;color:#241f1a}
.sd-auth-lede{margin:0 0 16px;font-size:.88rem;color:#6b6153;line-height:1.5}
.sd-auth-body form{display:flex;flex-direction:column;gap:12px}
.sd-auth-body label{display:flex;flex-direction:column;gap:5px;font-size:.82rem;font-weight:600;color:#4a4436}
.sd-auth-body input{
  font:inherit;padding:9px 11px;border-radius:8px;border:1px solid rgba(39,37,58,.22);font-size:.92rem;background:#fff;
}
.sd-auth-submit{margin-top:4px;width:100%;justify-content:center}
.sd-auth-alt{margin:14px 0 0;font-size:.82rem;text-align:center}
.sd-auth-alt a{color:#B96A17}
.sd-auth-notice{font-size:.82rem;padding:8px 10px;border-radius:8px;margin:-2px 0 2px}
.sd-auth-notice.info{background:#eef1f8;color:#35335A}
.sd-auth-notice.success{background:#e8f3ea;color:#256b3a}
.sd-auth-notice.error{background:#fbeaea;color:#8c2f39}

/* ---------- Leaflet sacred-geography map ---------- */
.sd-leaflet-shell{border:1px solid rgba(39,37,58,.14);border-radius:12px;overflow:hidden;background:#fbf7ef}
#sd-leaflet-map{height:480px;width:100%;background:#eee6d3}
/* category chooser — replaces the old always-on legend. One category is shown on the map at a time. */
.sd-leaflet-legend{display:flex;flex-wrap:wrap;gap:8px;padding:12px 14px;font-size:.82rem;border-top:1px solid rgba(39,37,58,.1);background:#fbf7ef}
.sd-leaflet-legend button{
  display:inline-flex;align-items:center;gap:7px;font:inherit;cursor:pointer;
  border:1px solid rgba(39,37,58,.18);background:#fff;color:#4a4436;
  padding:6px 12px;border-radius:999px;font-size:.8rem;font-weight:600;line-height:1.2;
}
.sd-leaflet-legend button i{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none}
.sd-leaflet-legend button.active{background:#35335A;border-color:#35335A;color:#fff}
.sd-leaflet-legend button:hover{border-color:#B96A17}
.sd-leaflet-empty-note{padding:9px 14px 3px;font-size:.78rem;color:#6b6153;background:#fbf7ef}
.sd-leaflet-popup h4{margin:0 0 4px;font-size:.95rem;font-family:var(--display,serif)}
.sd-leaflet-popup p{margin:0 0 8px;font-size:.82rem;line-height:1.4;color:#4a4436}
.sd-leaflet-popup a{font-size:.8rem;font-weight:600;color:#B96A17}
.leaflet-popup-content-wrapper{border-radius:10px}
.sd-leaflet-label{
  background:#fff;border:1px solid rgba(39,37,58,.2);border-radius:5px;padding:1px 7px;
  font-size:.74rem;font-weight:600;color:#241f1a;box-shadow:0 1px 3px rgba(0,0,0,.15);
}
.sd-leaflet-label::before{display:none}
.sd-country-label{background:transparent;border:0;box-shadow:none;pointer-events:none}
.sd-country-label span{
  display:block;white-space:nowrap;font:600 .78rem/1 var(--ui,Arial,sans-serif);
  color:#5b5662;text-shadow:0 1px 0 #fffdf7,1px 0 0 #fffdf7,-1px 0 0 #fffdf7,0 -1px 0 #fffdf7;
  transform:translate(-50%,-50%);letter-spacing:.01em;
}

/* ---------- Label-free basemap fallback ---------- */
.sd-map-fallback{position:relative;background:#f8f3e8}
.sd-map-fallback svg{display:block;width:100%;height:auto;min-height:420px}
.sd-map-fallback-note{margin:0;padding:10px 14px;background:#fbf7ef;border-top:1px solid rgba(39,37,58,.1);font:.78rem/1.45 var(--ui);color:#6b6153}


/* Dynamic front-page evolution word cloud */
.evolution-cloud-section{background:linear-gradient(180deg,#fbf7ef 0%,#f4ecdd 100%)}
.evolution-cloud-head{align-items:flex-end;gap:28px}
.evolution-cloud-head>div:first-child{max-width:760px}
.evolution-era{font-family:var(--display);font-weight:700;font-size:1.15rem;color:#6e4b22;border:1px solid rgba(176,141,62,.35);background:rgba(255,255,255,.7);padding:9px 14px;border-radius:999px;white-space:nowrap}
.evolution-cloud-card{border:1px solid rgba(91,83,96,.14);background:rgba(255,255,255,.76);border-radius:20px;padding:28px;box-shadow:0 16px 45px rgba(59,43,25,.06)}
.evolution-wordcloud{min-height:330px;display:flex;align-content:center;align-items:center;justify-content:center;flex-wrap:wrap;gap:14px 22px;padding:26px 5%;transition:opacity .18s ease,transform .18s ease;overflow:hidden}
.evolution-wordcloud.changing{opacity:.08;transform:scale(.985)}
.evolution-word{display:inline-block;font-family:var(--display);line-height:1;color:#302d39;white-space:nowrap;animation:cloudIn .45s both;animation-delay:calc(var(--i) * 24ms);text-shadow:0 1px 0 rgba(255,255,255,.7)}
.evolution-word:nth-child(3n+1){color:#8d5519}.evolution-word:nth-child(3n+2){color:#315e59}.evolution-word:nth-child(3n){color:#5a4d67}
.evolution-word.w1{font-size:1rem;opacity:.72}.evolution-word.w2{font-size:1.25rem}.evolution-word.w3{font-size:1.65rem}.evolution-word.w4{font-size:2.15rem;font-weight:600}.evolution-word.w5{font-size:2.85rem;font-weight:700}
.evolution-controls{display:grid;grid-template-columns:auto 1fr;gap:10px 22px;align-items:center;border-top:1px solid rgba(91,83,96,.12);padding-top:20px}
.evolution-year{font:600 .9rem/1.2 var(--sans);letter-spacing:.04em;color:#6c6258;min-width:130px}
#evolution-slider{width:100%;accent-color:#b06f25}
.evolution-ticks{grid-column:2;display:flex;justify-content:space-between;font:500 .73rem/1.2 var(--sans);color:#82796e}
@keyframes cloudIn{from{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:none}}
@media(max-width:720px){.evolution-cloud-head{align-items:flex-start}.evolution-era{white-space:normal}.evolution-cloud-card{padding:18px}.evolution-wordcloud{min-height:300px;gap:12px 16px;padding:20px 2%}.evolution-word.w4{font-size:1.75rem}.evolution-word.w5{font-size:2.15rem}.evolution-controls{grid-template-columns:1fr}.evolution-ticks{grid-column:1}.evolution-year{min-width:0}}

/* Keep portal labels from colliding: names appear on hover/focus, not permanently. */
.sd-leaflet-label{white-space:nowrap;pointer-events:none;box-shadow:0 2px 8px rgba(0,0,0,.12)}

/* Chapter geographic visuals use the same ESRI Light Gray Canvas basemap as the home page. */
.map-el{height:auto;width:100%;min-height:420px;overflow:visible;border:1px solid var(--line);}
.map-el .leaf-map-canvas{height:520px;width:100%;}
.map-el .leaflet-container{height:100%;width:100%;font-family:var(--ui,Arial,sans-serif);}
.map-el .scv-map-panel{margin-top:0;}
.map-el .leaflet-control-attribution{font-size:10px;}
@media(max-width:720px){.map-el .leaf-map-canvas{height:440px;}}

/* ESRI chapter maps: keep the actual map canvas visible even when the surrounding
   visual container is constrained by legacy chapter CSS. */
.map-el .leaf-map-canvas{position:relative;display:block;height:520px!important;min-height:520px!important;width:100%;overflow:hidden;background:#e9e7e2;}
.map-el .leaf-map-canvas .leaflet-container{position:absolute;inset:0;height:100%!important;width:100%!important;background:#e9e7e2;}
.map-el .leaf-map-canvas .leaflet-tile-pane{z-index:2;}
.map-el .leaf-map-canvas .leaflet-marker-pane,.map-el .leaf-map-canvas .leaflet-tooltip-pane,.map-el .leaf-map-canvas .leaflet-popup-pane,.map-el .leaf-map-canvas .leaflet-control-container{z-index:400;}
.map-el .leaf-map-canvas.sd-map-tile-failed:before{content:'ESRI basemap tiles could not be loaded. Refresh the page or check network access.';position:absolute;z-index:1000;left:50%;top:50%;transform:translate(-50%,-50%);max-width:360px;padding:12px 16px;text-align:center;border:1px solid #d8d1c5;background:rgba(255,253,247,.96);box-shadow:0 4px 16px rgba(0,0,0,.08);font:.78rem/1.45 var(--ui,Arial,sans-serif);color:#5f5a63;pointer-events:none;}
@media(max-width:720px){.map-el .leaf-map-canvas{height:440px!important;min-height:440px!important;}}

/* Self-contained Leaflet layout rules. These mirror the structural Leaflet CSS so
   the ESRI map remains visible even when the external Leaflet stylesheet is blocked. */
.leaflet-container{position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent;background:#ddd;outline:0;}
.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-map-pane svg,.leaflet-map-pane canvas,.leaflet-zoom-box{position:absolute;left:0;top:0;}
.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-tile{visibility:inherit;}
.leaflet-control{position:relative;z-index:800;pointer-events:auto;float:left;clear:both}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-right{right:0}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}
.leaflet-control-zoom{box-shadow:0 1px 5px rgba(0,0,0,.25);border-radius:4px;overflow:hidden}.leaflet-bar a{display:block;width:30px;height:30px;line-height:30px;text-align:center;text-decoration:none;background:#fff;color:#333;border-bottom:1px solid #ccc;font-size:20px}.leaflet-bar a:last-child{border-bottom:0}.leaflet-bar a:hover{background:#f4f4f4}.leaflet-control-attribution{padding:2px 5px;background:rgba(255,255,255,.8);font:10px/1.4 Arial,sans-serif;color:#555}.leaflet-control-attribution a{color:#333;text-decoration:underline}.leaflet-tooltip{position:absolute;padding:4px 7px;background:#fff;border:1px solid #bbb;border-radius:3px;box-shadow:0 1px 4px rgba(0,0,0,.2);white-space:nowrap;color:#333}.leaflet-popup{position:absolute;text-align:center}.leaflet-popup-content-wrapper{padding:1px;border-radius:5px;background:#fff;box-shadow:0 3px 14px rgba(0,0,0,.35)}.leaflet-popup-content{margin:12px 16px;line-height:1.4}.leaflet-popup-tip{width:12px;height:12px;margin:-7px auto 0;transform:rotate(45deg);background:#fff;box-shadow:3px 3px 4px rgba(0,0,0,.15)}
.sd-esri-static-map{position:relative;width:100%;min-height:360px;background:#e9e7e2;overflow:hidden}.sd-esri-static-image{display:block;width:100%;height:auto;min-height:360px;object-fit:cover}.sd-esri-static-markers{position:absolute;inset:0;pointer-events:none}.sd-esri-static-marker{position:absolute;transform:translate(-50%,-100%);border:0;background:transparent;padding:0;pointer-events:auto;cursor:pointer;text-align:center}.sd-esri-static-marker span{display:block;width:13px;height:13px;margin:0 auto 2px;border-radius:50%;background:#35335A;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.3)}.sd-esri-static-marker b{display:block;padding:2px 4px;background:rgba(255,253,247,.9);font:600 11px/1.15 var(--ui,Arial,sans-serif);color:#302d39;white-space:nowrap}.sd-esri-static-unavailable{display:grid;place-items:center;min-height:360px;padding:30px;text-align:center;font:.82rem/1.5 var(--ui,Arial,sans-serif);color:#625d66;background:#f3f0ea}
