/* Taghvimo unified modern theme — loaded after every page stylesheet. */
:root{
  --bg:#f5f7fc;
  --bg-strong:#eef1fb;
  --surface:#ffffff;
  --surface-2:#f8f9fe;
  --text:#172033;
  --heading:#11182a;
  --muted:#6c7487;
  --line:#e4e7f0;
  --line-strong:#d6dbea;
  --primary:#5b4bdb;
  --primary-2:#7567ee;
  --primary-soft:#eeecff;
  --success:#158467;
  --danger:#d84b58;
  --warning:#b87816;
  --shadow-sm:0 8px 24px rgba(30,39,75,.06);
  --shadow-md:0 18px 50px rgba(30,39,75,.10);
  --radius-sm:12px;
  --radius:18px;
  --radius-lg:26px;
  --container:1200px;
  color-scheme:light;
}

html{scroll-behavior:smooth;background:var(--bg)!important}
body{
  min-height:100%;
  background:
    radial-gradient(circle at 8% 0%,rgba(117,103,238,.12),transparent 28rem),
    radial-gradient(circle at 96% 24%,rgba(52,184,164,.08),transparent 25rem),
    var(--bg)!important;
  color:var(--text)!important;
  font-family:"VazirFD",Tahoma,Arial,sans-serif!important;
  line-height:1.85;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
  opacity:.35;
  background-image:linear-gradient(rgba(91,75,219,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(91,75,219,.025) 1px,transparent 1px);
  background-size:32px 32px;
}
::selection{background:rgba(91,75,219,.2);color:var(--heading)}
:focus-visible{outline:3px solid rgba(91,75,219,.28)!important;outline-offset:3px}

/* Header */
.site-header{
  position:sticky!important;
  top:0;
  z-index:1000;
  background:rgba(255,255,255,.88)!important;
  border-bottom:1px solid rgba(218,222,236,.88)!important;
  box-shadow:0 8px 30px rgba(34,43,74,.05)!important;
  -webkit-backdrop-filter:blur(18px);
  backdrop-filter:blur(18px);
}
.header-inner{
  width:min(1240px,calc(100% - 32px));
  max-width:none!important;
  min-height:76px;
  margin-inline:auto!important;
  padding:10px 0!important;
  gap:22px!important;
}
.brand{display:inline-flex;align-items:center;flex:0 0 auto}
.brand-logo{width:132px!important;height:auto!important;object-fit:contain}
.main-nav{display:flex;align-items:center;justify-content:center;gap:4px!important;flex:1}
.main-nav a{
  position:relative;
  display:inline-flex;
  align-items:center;
  min-height:42px;
  padding:9px 13px!important;
  border:0!important;
  border-radius:12px!important;
  color:#4d566b!important;
  background:transparent!important;
  font-size:13px!important;
  font-weight:700!important;
  white-space:nowrap;
  transition:background .2s ease,color .2s ease,transform .2s ease;
}
.main-nav a:hover{color:var(--primary)!important;background:var(--primary-soft)!important;transform:translateY(-1px)}
.main-nav a.is-active{color:var(--primary)!important;background:var(--primary-soft)!important}
.main-nav a.is-active::after{
  content:"";position:absolute;right:14px;left:14px;bottom:5px;height:2px;border-radius:10px;background:var(--primary)
}
.header-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.today-shortcut{
  display:flex;align-items:center;gap:8px;padding:7px 11px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);font-size:12px;color:var(--muted)
}
.today-shortcut strong{font-size:13px;color:var(--heading);direction:ltr}
.nav-toggle{
  display:none!important;width:44px!important;height:44px!important;padding:11px!important;border:1px solid var(--line)!important;border-radius:13px!important;background:#fff!important
}
.nav-toggle span{display:block;width:100%;height:2px;margin:4px 0;border-radius:10px;background:var(--heading);transition:.2s ease}
.nav-backdrop{display:none;position:fixed;inset:0;border:0;background:rgba(12,18,33,.48);z-index:-1}

/* Layout */
.site-main{min-height:calc(100vh - 320px);padding:30px 0 16px!important}
.site-main > section,
.site-main > article,
.site-main > .wrap,
.site-main > .home-min,
.site-main > .prayer-wrap{
  width:min(var(--container),calc(100% - 32px));
  margin-inline:auto;
}
.container{width:min(var(--container),calc(100% - 32px))!important}

/* Typography */
h1,h2,h3,h4{color:var(--heading)!important;letter-spacing:-.025em}
h1{font-size:clamp(25px,3vw,38px)!important;line-height:1.45!important;font-weight:900!important}
h2{font-size:clamp(19px,2vw,25px)!important;line-height:1.55!important;font-weight:850!important}
h3{font-size:17px!important;font-weight:800!important}
p{color:#4c566c}
.muted,.hint,.small,.navsub,.navgreg{color:var(--muted)!important}

/* Shared surfaces */
.card,.panel,.box,.tool-card,.result-box,.selected-box,.time-box,.hm-clock,.hm-go{
  border:1px solid rgba(222,226,239,.95)!important;
  border-radius:var(--radius)!important;
  background:rgba(255,255,255,.96)!important;
  box-shadow:var(--shadow-sm)!important;
}
.card{padding:clamp(17px,2.3vw,26px)!important}
.card:hover{border-color:rgba(91,75,219,.18)!important}
.section{margin-top:18px!important}
hr{border:0;border-top:1px solid var(--line)}

/* Controls */
.btn,button.btn,a.btn,input[type="submit"],button[type="submit"]{
  min-height:44px;
  border:1px solid var(--primary)!important;
  border-radius:13px!important;
  background:linear-gradient(135deg,var(--primary),var(--primary-2))!important;
  color:#fff!important;
  box-shadow:0 8px 20px rgba(91,75,219,.18)!important;
  font-weight:800!important;
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease!important;
}
.btn:hover,button.btn:hover,a.btn:hover,input[type="submit"]:hover,button[type="submit"]:hover{
  transform:translateY(-2px)!important;box-shadow:0 12px 28px rgba(91,75,219,.24)!important;filter:none!important
}
.btn.ghost,.btn.secondary,a.btn.ghost,a.btn.secondary{
  border-color:var(--line-strong)!important;background:#fff!important;color:var(--heading)!important;box-shadow:none!important
}
.btn.sm{min-height:36px!important;padding:6px 12px!important}
button:disabled,.btn:disabled{opacity:.55;cursor:not-allowed;transform:none!important;box-shadow:none!important}

input:not([type="checkbox"]):not([type="radio"]),select,textarea,.input,.cal-select{
  min-height:46px;
  border:1px solid var(--line-strong)!important;
  border-radius:13px!important;
  background:#fff!important;
  color:var(--heading)!important;
  box-shadow:0 1px 2px rgba(20,29,52,.02)!important;
  outline:0!important;
  transition:border-color .2s ease,box-shadow .2s ease!important;
}
input:not([type="checkbox"]):not([type="radio"]):focus,select:focus,textarea:focus,.input:focus,.cal-select:focus{
  border-color:rgba(91,75,219,.65)!important;
  box-shadow:0 0 0 4px rgba(91,75,219,.11)!important;
}
label{color:var(--heading);font-weight:750}

/* Chips and utility navigation */
.chip,.pill,.badge,.hm-tag,.sec-pill,.occ-badge,.hchip{
  border:1px solid rgba(91,75,219,.14)!important;
  border-radius:999px!important;
  background:var(--primary-soft)!important;
  color:var(--primary)!important;
  font-weight:750!important;
}
.navbtn,.cal-top .nav{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  min-width:44px;min-height:44px;padding:8px 13px!important;border:1px solid var(--line)!important;border-radius:13px!important;background:#fff!important;color:var(--heading)!important;box-shadow:none!important
}
.navbtn:hover,.cal-top .nav:hover{border-color:rgba(91,75,219,.28)!important;color:var(--primary)!important;background:var(--primary-soft)!important}
.date-nav{gap:14px!important}

/* Home */
.home-min{max-width:none!important}
.hm-hero{
  position:relative;overflow:hidden;
  padding:clamp(24px,4vw,48px)!important;
  border:1px solid rgba(216,220,236,.95)!important;
  border-radius:var(--radius-lg)!important;
  background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(244,243,255,.98))!important;
  box-shadow:var(--shadow-md)!important;
}
.hm-hero::before{content:"";position:absolute;width:300px;height:300px;left:-90px;top:-140px;border-radius:50%;background:rgba(91,75,219,.11);filter:blur(2px)}
.hm-hero::after{content:"";position:absolute;width:210px;height:210px;right:42%;bottom:-160px;border-radius:50%;background:rgba(52,184,164,.10)}
.hm-hero > *{position:relative;z-index:1}
.hm-brand{display:inline-flex!important;padding:6px 12px!important;border:1px solid rgba(91,75,219,.14);border-radius:999px;background:var(--primary-soft);color:var(--primary)!important;font-size:13px!important;font-weight:850!important}
.hm-title{margin-top:14px!important}
.hm-sub{color:var(--muted)!important;font-size:15px!important}
.hm-clock,.hm-go{box-shadow:none!important;background:rgba(255,255,255,.76)!important;backdrop-filter:blur(8px)}
.hm-clock-v{color:var(--primary)!important;letter-spacing:.04em!important}
.hm-tools{margin-top:30px!important}
.hm-head{margin-bottom:16px!important}
.hm-group{margin-top:22px!important;padding:0!important;border:0!important;background:transparent!important}
.hm-group-head{margin-bottom:12px!important}
.hm-grid{gap:14px!important}
.hm-card{
  position:relative;overflow:hidden;
  min-height:154px!important;padding:20px!important;
  border:1px solid var(--line)!important;border-radius:var(--radius)!important;background:rgba(255,255,255,.95)!important;box-shadow:var(--shadow-sm)!important;
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease!important
}
.hm-card::before{content:"";position:absolute;right:0;top:0;width:4px;height:100%;background:linear-gradient(var(--primary),var(--primary-2));opacity:0;transition:opacity .2s ease}
.hm-card:hover{transform:translateY(-4px)!important;border-color:rgba(91,75,219,.25)!important;box-shadow:var(--shadow-md)!important}
.hm-card:hover::before{opacity:1}
.hm-card-title{color:var(--heading)!important;font-size:16px!important;font-weight:850!important}
.hm-card-desc{color:var(--muted)!important;line-height:1.75!important}
.hm-card-more{color:var(--primary)!important;font-weight:800!important}
.hm-foot{margin-top:24px!important;padding:28px!important;border:1px solid var(--line)!important;border-radius:var(--radius)!important;background:#fff!important;box-shadow:var(--shadow-sm)!important}

/* Today/date pages */
.hero,.time-wrap .hero{
  width:min(var(--container),calc(100% - 32px));
  margin-inline:auto;
  padding:clamp(22px,3vw,34px)!important;
  border:1px solid var(--line)!important;
  border-radius:var(--radius-lg)!important;
  background:rgba(255,255,255,.96)!important;
  box-shadow:var(--shadow-md)!important;
}
.hero > .grid,.hero .grid{gap:14px!important}
.hero .card{box-shadow:none!important;background:var(--surface-2)!important}
.time-box{color:var(--primary)!important;background:linear-gradient(135deg,#fafaff,#f2f0ff)!important;border-color:rgba(91,75,219,.16)!important;box-shadow:none!important}
.occ-item,.birth-card,.birthday-card{
  border:1px solid var(--line)!important;border-radius:14px!important;background:#fff!important;transition:.18s ease!important
}
.occ-item:hover,.birth-card:hover,.birthday-card:hover{border-color:rgba(91,75,219,.25)!important;transform:translateY(-2px)}

/* Prayer */
.prayer-wrap{max-width:1050px!important}
.prayer-wrap > * + *{margin-top:16px!important}
.prayer-hero{padding:clamp(24px,4vw,40px)!important;background:linear-gradient(135deg,#fff,#f2f0ff)!important;box-shadow:var(--shadow-md)!important}
.prayer-hero h1{text-align:center}
.prayer-wrap .meta{display:flex!important;justify-content:center!important;flex-wrap:wrap!important;gap:9px!important}
.timer-card{border-color:rgba(91,75,219,.18)!important;background:linear-gradient(135deg,#2c2669,#5b4bdb)!important;color:#fff!important}
.timer-card *{color:#fff!important}
.timer-count{font-size:clamp(30px,6vw,55px)!important;letter-spacing:.08em!important;direction:ltr}
.pt-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important}
.pt-item{min-height:104px!important;padding:17px!important;border:1px solid var(--line)!important;border-radius:15px!important;background:var(--surface-2)!important;text-align:center!important}
.pt-item span{color:var(--muted)!important}
.pt-item strong{display:block;margin-top:7px;color:var(--primary)!important;font-size:22px!important;direction:ltr}
.prov-article-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:10px!important}
.prov-btn{padding:12px!important;border:1px solid var(--line)!important;border-radius:13px!important;background:#fff!important;color:var(--heading)!important;text-align:center!important;transition:.18s ease!important}
.prov-btn:hover{border-color:rgba(91,75,219,.28)!important;background:var(--primary-soft)!important;color:var(--primary)!important;transform:translateY(-2px)}

/* Calendar */
.wrap{max-width:1200px!important}
.cal-top{padding:14px!important;border:1px solid var(--line)!important;border-radius:var(--radius)!important;background:#fff!important;box-shadow:var(--shadow-sm)!important}
.cal-title,.y-title{color:var(--heading)!important}
.year-wrap{gap:16px!important}
.y-month{transition:transform .18s ease,box-shadow .18s ease!important}
.y-month:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)!important}
.day,.y-day{border-radius:10px!important}
.day.is-selected,.y-day.is-selected{background:var(--primary)!important;color:#fff!important}
.day.is-holiday,.y-day.is-holiday{background:#fff1f2!important}

/* Tables and lists */
table{width:100%;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fff}
th{background:var(--surface-2);color:var(--heading);font-weight:800}
th,td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:right}
tr:last-child td{border-bottom:0}

/* Footer */
.site-footer{margin-top:42px!important;border-top:1px solid var(--line)!important;background:#11182a!important;color:#dce1ef!important}
.footer-shell{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:46px;padding:48px 0 34px!important}
.footer-intro p{max-width:480px;margin:14px 0;color:#aeb7cb!important}
.footer-logo{display:inline-flex;padding:7px 12px;border-radius:13px;background:#fff}
.footer-logo img{width:132px;height:auto}
.footer-slogan{display:inline-flex;padding:7px 11px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(255,255,255,.06);color:#fff;font-size:12px}
.footer-links-group h2{margin-bottom:13px!important;color:#fff!important;font-size:15px!important}
.footer-links-group ul{display:grid;gap:8px}
.footer-links-group a{color:#aeb7cb;transition:color .18s ease}
.footer-links-group a:hover{color:#fff}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;padding:20px 0 24px!important;border-top:1px solid rgba(255,255,255,.10);color:#8f9ab1;font-size:13px}
.footer-bottom div{display:flex;gap:18px}.footer-bottom a:hover{color:#fff}

/* Friendly fatal-error fallback */
.system-error-page{min-height:100vh;display:grid;place-items:center;padding:24px}
.system-error-card{width:min(520px,100%);padding:38px;text-align:center;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-md)}
.system-error-icon{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 16px;border-radius:20px;background:#fff0f1;color:var(--danger);font-size:34px;font-weight:900}
.system-error-card small{display:block;margin-top:20px;color:var(--muted);direction:ltr}

@media (max-width:1020px){
  .today-shortcut{display:none}
  .main-nav a{padding-inline:9px!important;font-size:12px!important}
  .pt-grid,.prov-article-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media (max-width:860px){
  .header-inner{min-height:68px;width:min(100% - 24px,1240px)}
  .brand-logo{width:116px!important}
  .nav-toggle{display:block!important}
  .main-nav{
    position:fixed!important;top:76px!important;right:12px!important;left:12px!important;display:flex!important;
    flex-direction:column!important;align-items:stretch!important;gap:6px!important;padding:12px!important;
    border:1px solid rgba(255,255,255,.1)!important;border-radius:18px!important;background:#151d31!important;box-shadow:0 24px 60px rgba(8,13,26,.35)!important;
    opacity:0;visibility:hidden;transform:translateY(-10px);transition:.2s ease;z-index:1002
  }
  body.nav-open .main-nav{opacity:1;visibility:visible;transform:none}
  body.nav-open .nav-backdrop{display:block;z-index:1001}
  body.nav-open{overflow:hidden}
  .main-nav a{width:100%;justify-content:flex-start;padding:12px 14px!important;border:1px solid rgba(255,255,255,.08)!important;background:rgba(255,255,255,.04)!important;color:#eef1f8!important}
  .main-nav a:hover,.main-nav a.is-active{background:rgba(117,103,238,.22)!important;color:#fff!important}
  .main-nav a.is-active::after{display:none}
  .site-main{padding-top:20px!important}
  .footer-shell{grid-template-columns:1fr 1fr;gap:30px}.footer-intro{grid-column:1/-1}
}

@media (max-width:640px){
  .site-main > section,.site-main > article,.site-main > .wrap,.site-main > .home-min,.site-main > .prayer-wrap,.hero,.container{width:min(100% - 22px,var(--container))!important}
  .site-main{padding-top:12px!important}
  .hm-hero{padding:22px!important;border-radius:20px!important}
  .hm-actions{display:grid!important;grid-template-columns:1fr!important}
  .hm-go-row{grid-template-columns:1fr!important}
  .card{padding:16px!important;border-radius:16px!important}
  .date-nav{gap:8px!important}.navbtn{min-width:40px!important;min-height:40px!important}
  .pt-grid,.prov-article-grid{grid-template-columns:1fr 1fr!important;gap:8px!important}
  .pt-item{min-height:90px!important;padding:13px!important}.pt-item strong{font-size:19px!important}
  .footer-shell{grid-template-columns:1fr;padding:36px 0 26px!important}.footer-intro{grid-column:auto}.footer-bottom{flex-direction:column;align-items:flex-start}
  table{display:block;overflow-x:auto;white-space:nowrap}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}
