/* تقویم شمسی — هویت بصری تازه: کاغذی گرم + سبز دودی + کهربایی (موبایل‌فرست) */
@font-face{font-family:'Vazirmatn';font-style:normal;font-weight:100 900;font-display:swap;src:url('../fonts/vazirmatn-arabic.woff2') format('woff2');unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}
@font-face{font-family:'Vazirmatn';font-style:normal;font-weight:100 900;font-display:swap;src:url('../fonts/vazirmatn-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
*{box-sizing:border-box;margin:0;padding:0}
:root{
  --paper:#FAF6EF;--card:#FFFDF8;--ink:#22302B;--muted:#5C6B65;
  --brand:#0E7C6B;--brand-deep:#0B5D52;--brand-soft:#DDEFE9;
  --indigo:#4338CA;--amber:#F59E0B;--amber-deep:#B45309;
  --danger:#E11D48;--danger-text:#BE123C;--ok:#16A34A;
  --grad-brand:linear-gradient(120deg,#0E7C6B 10%,#155E75 55%,#4338CA 100%);
  --grad-warm:linear-gradient(135deg,#FBBF24,#F59E0B);
  --bg-grad:linear-gradient(175deg,#FBF7EE 0%,#F0EFE3 35%,#E2EFE6 70%,#D3E9DC 100%);
  --bg-mesh:radial-gradient(36vmax 26vmax at 10% 12%,rgba(245,158,11,.14),transparent 60%),radial-gradient(44vmax 30vmax at 90% 20%,rgba(14,124,107,.16),transparent 62%),radial-gradient(50vmax 34vmax at 50% 95%,rgba(67,56,202,.10),transparent 62%);
  --line:#E4DDCC;
  --shadow-sm:0 2px 8px rgba(60,50,20,.08);--shadow-md:0 12px 32px rgba(60,50,20,.14);--shadow-lg:0 24px 60px rgba(20,40,35,.22);
  --ctl-bg:#FFFFFF;--ctl-fg:#22302B;--ctl-bd:#D8D2C0;--ctl-bg-hover:#F2EFE3;
  --r:18px;
}
html[data-theme="dark"]{
  --paper:#070F0D;--card:#0D1B18;--ink:#E7F2EC;--muted:#93A8A0;
  --brand:#2DD4BF;--brand-deep:#14B8A6;--brand-soft:#0E2B26;--indigo:#818CF8;
  --bg-grad:linear-gradient(175deg,#050C0A 0%,#081411 35%,#0A1D19 70%,#0C2420 100%);
  --bg-mesh:radial-gradient(36vmax 26vmax at 10% 12%,rgba(245,158,11,.10),transparent 60%),radial-gradient(44vmax 30vmax at 90% 20%,rgba(45,212,191,.12),transparent 62%),radial-gradient(50vmax 34vmax at 50% 95%,rgba(129,140,248,.12),transparent 62%);
  --line:#1E332E;
  --shadow-sm:0 2px 8px rgba(0,0,0,.4);--shadow-md:0 12px 32px rgba(0,0,0,.5);--shadow-lg:0 24px 60px rgba(0,0,0,.6);
  --ctl-bg:#12241F;--ctl-fg:#E7F2EC;--ctl-bd:#23403A;--ctl-bg-hover:#182E29;
  --danger-text:#FB7185;
  color-scheme:dark;
}
html{scroll-behavior:smooth;scroll-padding-top:150px;color-scheme:light dark;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
h1,h2,h3{text-wrap:balance}
p{overflow-wrap:anywhere}
body{font-family:'Vazirmatn',Tahoma,sans-serif;color:var(--ink);background:var(--paper);min-height:100vh;line-height:1.7;transition:background .5s ease,color .35s ease;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
body::before{content:'';position:fixed;inset:0;z-index:-2;background:var(--bg-grad)}
.bg{position:fixed;inset:0;z-index:-1;overflow:hidden;contain:strict}
.bg::before{content:'';position:absolute;inset:-40%;background:var(--bg-mesh);animation:pan 24s ease-in-out infinite alternate}
.bg .orb{position:absolute;border-radius:50%;filter:blur(26px);opacity:.8;animation:float 19s ease-in-out infinite}
.bg .orb1{width:44vmax;height:44vmax;left:-12vmax;top:-10vmax;background:radial-gradient(circle,rgba(245,158,11,.35),transparent 70%)}
.bg .orb2{width:40vmax;height:40vmax;right:-10vmax;top:6vmax;background:radial-gradient(circle,rgba(14,124,107,.35),transparent 70%);animation-delay:-6s}
.bg .orb3{width:44vmax;height:44vmax;left:16vmax;bottom:-14vmax;background:radial-gradient(circle,rgba(67,56,202,.25),transparent 70%);animation-delay:-12s}
@keyframes float{0%{transform:translate(0,0) scale(1)}50%{transform:translate(8px,-10px) scale(1.01)}100%{transform:translate(-6px,8px) scale(1)}}
@keyframes pan{0%{transform:translate(-1%,-.5%)}100%{transform:translate(1%,.5%)}}
.skip-link{position:absolute;top:-60px;right:16px;z-index:10001;background:var(--brand-deep);color:#fff;padding:10px 18px;border-radius:12px;font-weight:700;font-size:13px;text-decoration:none;transition:top .2s}
.skip-link:focus{top:12px;color:#fff}
html[data-theme="dark"] .skip-link{background:var(--brand);color:#06231F}
html[data-theme="dark"] .skip-link:focus{color:#06231F}
.offline-bar{background:var(--amber);color:#fff;text-align:center;padding:8px 14px;font-size:13px;font-weight:700}
.hidden{display:none!important}
/* ===== هدر ===== */
.topbar{position:sticky;top:10px;z-index:50;max-width:1280px;margin:12px auto 14px;padding:14px 20px;display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:color-mix(in srgb,var(--card) 82%,transparent);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-md);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
@supports not (background:color-mix(in srgb,red 50%,blue)){.topbar{background:var(--card)}}
.brand{display:flex;gap:12px;align-items:center;min-width:0}
.logo{width:48px;height:48px;flex-shrink:0;display:grid;place-items:center;font-size:26px;color:#fff;background:var(--grad-brand);border-radius:16px;box-shadow:0 8px 20px rgba(14,124,107,.35)}
.logo img.emoji{width:.95em;height:.95em}
.brand h1{font-size:20px;font-weight:900;letter-spacing:-.2px}
.brand p{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.main-nav{display:flex;gap:4px;align-items:center;background:var(--ctl-bg-hover);border:1px solid var(--line);border-radius:999px;padding:4px}
.main-nav[hidden]{display:none}
.main-nav a{font-size:12.5px;font-weight:700;color:var(--muted);text-decoration:none;padding:7px 16px;border-radius:999px;transition:.2s;white-space:nowrap}
.main-nav a:hover{color:var(--brand-deep)}
.main-nav a.on{background:var(--brand-deep);color:#fff;box-shadow:var(--shadow-sm)}
html[data-theme="dark"] .main-nav a.on{background:var(--brand);color:#06231F}
.header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0;min-width:0;max-width:100%}
/* ===== دکمهٔ منوی موبایل (نوار ناوبری اصلی) — فقط در نوارهای افقی نمایش داده می‌شود ===== */
.nav-toggle{display:none;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:9px 12px;border-radius:14px;border:1px solid var(--line);background:var(--ctl-bg);color:var(--ctl-fg);font-family:inherit;font-size:12.5px;font-weight:800;line-height:1;cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-sm);transition:transform .15s ease,border-color .2s ease,box-shadow .2s ease}
.nav-toggle:hover{border-color:var(--brand);box-shadow:var(--shadow-md)}
.nav-toggle:active{transform:scale(.96)}
.nav-toggle-ico{font-size:15px;line-height:1}
.support-btn-header{position:relative;overflow:hidden;padding:10px 20px;border-radius:999px;border:none;background:var(--grad-warm);color:#fff;font-family:inherit;font-size:13px;font-weight:800;cursor:pointer;white-space:nowrap;box-shadow:0 6px 18px rgba(245,158,11,.4),inset 0 1px 0 rgba(255,255,255,.35);transition:transform .15s ease,box-shadow .2s ease}
.support-btn-header::after{content:'';position:absolute;top:0;bottom:0;width:40%;left:-60%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.5),transparent);transform:skewX(-20deg);transition:left .5s ease}
.support-btn-header:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(245,158,11,.5)}
.support-btn-header:hover::after{left:130%}
.support-btn-header:active{transform:scale(.96)}
.live-clock{display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;border-radius:16px;background:var(--brand-soft);border:1px solid var(--line);min-width:170px}
.clock-inner{display:flex;align-items:center;gap:8px;white-space:nowrap;direction:ltr}
.clock-icon{display:inline-flex;align-items:center}
.clock-icon img.emoji{width:22px;height:22px}
.clock-time{font-size:23px;font-weight:800;letter-spacing:1px;color:var(--brand-deep);font-variant-numeric:tabular-nums;display:inline-block;width:3.6em;text-align:center;white-space:nowrap}
html[data-theme="dark"] .clock-time{color:var(--brand)}
.clock-seconds{font-size:15px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums;display:inline-block;width:1.7em;text-align:center;white-space:nowrap}
.icon-btn{width:44px;height:44px;border-radius:14px;border:1px solid var(--line);background:var(--ctl-bg);color:var(--ctl-fg);font-size:19px;cursor:pointer;flex-shrink:0;display:grid;place-items:center;box-shadow:var(--shadow-sm);transition:transform .15s ease,border-color .2s ease,box-shadow .2s ease}
.icon-btn:hover{transform:translateY(-2px);border-color:var(--brand);box-shadow:var(--shadow-md)}
.icon-btn:active{transform:scale(.94)}
#refreshBtn[aria-busy="true"]{animation:spin 1s linear infinite;pointer-events:none;opacity:.7}
@keyframes spin{to{transform:rotate(360deg)}}
.search-box{position:relative;display:flex;gap:8px;flex-shrink:0}
.search-box input{width:250px;max-width:50vw;padding:11px 16px;border-radius:999px;border:1px solid var(--line);outline:none;font-family:inherit;font-size:14px;background:var(--ctl-bg);color:var(--ctl-fg);transition:border-color .2s,box-shadow .2s}
.search-box input::placeholder{color:var(--muted)}
.search-box input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.search-box button{padding:11px 20px;border-radius:999px;border:none;background:var(--grad-brand);color:#fff;font-family:inherit;font-weight:700;cursor:pointer;white-space:nowrap;box-shadow:0 6px 18px rgba(14,124,107,.35);transition:transform .15s ease,filter .2s ease}
.search-box button:hover{filter:brightness(1.1);transform:translateY(-1px)}
.search-box button:active{transform:scale(.97)}
.suggest{position:absolute;top:110%;right:0;left:0;background:var(--ctl-bg);border:1px solid var(--line);border-radius:14px;list-style:none;overflow:hidden;box-shadow:var(--shadow-lg);z-index:20;color:var(--ctl-fg)}
.suggest li{padding:10px 14px;cursor:pointer;font-size:13px;border-bottom:1px solid var(--line)}
.suggest li:last-child{border:none}
.suggest li:hover,.suggest li.hl{background:var(--ctl-bg-hover)}
.suggest li.empty{cursor:default;color:var(--muted)}
/* ===== بنر امروز ===== */
.layout{width:100%;max-width:1280px;margin:0 auto;padding:0 18px 18px;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:16px;align-items:start}
.hero{grid-column:1/-1;position:relative;overflow:hidden;border-radius:24px;padding:26px 28px;color:#fff;background:linear-gradient(115deg,#0B4F45 0%,#155E75 55%,#3B3480 100%);box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.hero::after{content:'☀';position:absolute;left:-30px;top:-50px;font-size:220px;opacity:.12;line-height:1;pointer-events:none}
.hero-info{flex:1;min-width:220px}
.hero-week{font-size:13px;font-weight:700;opacity:.85}
.hero-date{font-size:30px;font-weight:900;line-height:1.4}
.hero-sub{font-size:12.5px;opacity:.85;margin-top:2px}
.hero-occ{display:inline-block;margin-top:10px;font-size:12px;font-weight:800;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);padding:5px 14px;border-radius:999px;backdrop-filter:blur(4px)}
.hero-weather{display:flex;align-items:center;gap:16px;margin-inline-start:auto}
.hero-temp{font-size:52px;font-weight:900;line-height:1;font-variant-numeric:tabular-nums}
.hero-ico{font-size:64px;line-height:1}
.hero-ico img.emoji{width:1em;height:1em}
.hero-desc{font-size:13px;opacity:.9}
/* ===== کارت‌ها ===== */
.card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:var(--shadow-md);min-width:0;overflow:hidden;transition:border-color .3s ease,box-shadow .25s ease}
@media(hover:hover){.card:hover{box-shadow:var(--shadow-lg)}}
/* ===== تقویم ===== */
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.cal-title{text-align:center;min-width:0;flex:1}
.cal-title h2{font-size:21px;font-weight:900}
.cal-title span{font-size:11px;color:var(--muted)}
.nav-btn{width:44px;height:44px;flex-shrink:0;border-radius:50%;border:none;background:var(--brand-deep);color:#fff;font-size:22px;cursor:pointer;display:grid;place-items:center;box-shadow:0 6px 16px rgba(11,93,82,.35);transition:transform .15s ease,filter .2s ease}
html[data-theme="dark"] .nav-btn{background:var(--brand);color:#06231F}
.nav-btn:hover{filter:brightness(1.1);transform:translateY(-1px)}
.nav-btn:active{transform:scale(.94)}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px;font-size:12px}
.toolbar label{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.toolbar select{font-family:inherit;padding:7px 12px;border-radius:999px;border:1px solid var(--line);background:var(--ctl-bg);color:var(--ctl-fg);font-size:12px;cursor:pointer}
.toolbar select:hover{border-color:var(--brand)}
.month-info{font-size:11px;color:var(--danger-text);font-weight:800;white-space:nowrap}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.chips.inline{margin-bottom:0}
.chips button{border:1px solid var(--line);background:var(--ctl-bg);color:var(--ctl-fg);padding:7px 16px;border-radius:999px;font-family:inherit;font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap;transition:.2s}
.chips button.active{background:var(--brand-deep);color:#fff;border-color:var(--brand-deep);box-shadow:0 4px 14px rgba(11,93,82,.35)}
html[data-theme="dark"] .chips button.active{background:var(--brand);border-color:var(--brand);color:#06231F}
.chips button:not(.active):hover{border-color:var(--brand);color:var(--brand-deep);transform:translateY(-1px)}
.chips button:active{transform:scale(.95)}
.fav-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px;font-size:12px}
.fav-label{color:var(--muted)}
.fav-chip{display:inline-flex;align-items:center;gap:6px;background:#FEF3C7;border:1px solid #FDE047;border-radius:999px;padding:5px 6px 5px 10px;font-size:12px}
html[data-theme="dark"] .fav-chip{background:#3A2E10;color:#FDE68A}
.fav-chip b{cursor:pointer}
.fav-chip i{cursor:pointer;font-style:normal;background:#F87171;color:#fff;border-radius:50%;width:18px;height:18px;line-height:16px;text-align:center;font-size:12px;flex-shrink:0}
.toolrow{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}
.tool-btn{padding:10px 6px;border-radius:14px;border:1px solid var(--line);background:var(--ctl-bg);font-family:inherit;font-size:12px;font-weight:700;cursor:pointer;color:var(--ctl-fg);white-space:nowrap;box-shadow:var(--shadow-sm);transition:.2s}
.tool-btn:hover{border-color:var(--brand);transform:translateY(-2px);box-shadow:var(--shadow-md)}
.tool-btn:active{transform:scale(.96)}
.tool-btn.compact{flex:none;min-width:80px}
.weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;font-size:11px;font-weight:800;color:var(--muted);margin-bottom:8px;gap:4px}
.weekdays .fri{color:var(--danger-text)}
.grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
button.cell{font-family:inherit;color:inherit;appearance:none;-webkit-appearance:none}
.cell{background:var(--ctl-bg);border:1px solid var(--line);border-radius:16px;min-height:88px;min-width:0;padding:8px 4px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;transition:transform .15s ease,border-color .15s ease,box-shadow .2s ease;position:relative;text-align:center;overflow:hidden;contain:layout style}
@media(hover:hover){.cell:hover{transform:translateY(-3px);border-color:var(--brand);box-shadow:var(--shadow-md)}}
.cell .d{font-weight:900;font-size:16px;line-height:1.3;display:flex;align-items:center;gap:4px;justify-content:center;flex-wrap:wrap}
.cell.friday .d,.cell.holiday .d{color:var(--danger-text)}
.cell.holiday{background:#FDF0F2;border-color:#F5C2CC}
html[data-theme="dark"] .cell.holiday{background:#2A1420;border-color:#5B2233}
.cell.other{opacity:.3;pointer-events:none}
.cell.today{border:1.5px solid var(--ok);background:#EFFDF3}
html[data-theme="dark"] .cell.today{background:#0C2B1E}
.today-badge{font-style:normal;font-size:8px;background:var(--ok);color:#fff;border-radius:999px;padding:1px 7px;font-weight:800}
.cell.selected{background:var(--grad-brand);border-color:transparent;color:#fff;box-shadow:0 10px 24px rgba(14,124,107,.4)}
.cell.selected .d{color:#fff!important}
.cell.selected .t,.cell.selected .tmax,.cell.selected .tmin{color:#fff!important}
.cell.selected .pr{color:#FDE68A!important}
.cell.today.selected,html[data-theme="dark"] .cell.today.selected{background:var(--grad-brand);border:1.5px solid transparent;box-shadow:0 10px 24px rgba(14,124,107,.4)}
.cell .ico{font-size:21px;line-height:1}
.cell .ico img.emoji{width:1.25em;height:1.25em}
.cell .ico.dim{opacity:.9}
.cell .t{font-size:11px;color:var(--muted);font-weight:800;line-height:1.3;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.cell .tmax{color:#DC2626}.cell .tmin{color:#0284C7}
html[data-theme="dark"] .cell .tmax{color:#FCA5A5}
html[data-theme="dark"] .cell .tmin{color:#7DD3FC}
.cell .pr{font-size:9px;color:#0284C7;font-weight:700}
html[data-theme="dark"] .cell .pr{color:#7DD3FC}
.cell.has-fc{border-color:#BFE3D8}
html[data-theme="dark"] .cell.has-fc{border-color:#1F4A44}
.cell.has-cl{border-style:dashed;opacity:.92}
.avg-tag{font-size:8px;color:var(--amber-deep);background:#FEF3C7;border-radius:999px;padding:1px 7px;font-weight:700}
html[data-theme="dark"] .avg-tag{color:#FDE68A;background:#3A2E10}
.hol-tag{font-size:8px;color:#fff;background:var(--danger);border-radius:999px;padding:1px 7px;font-weight:800}
.cell.selected .hol-tag{background:#fff;color:var(--danger-text)}
.occ-dot{font-size:10px}
.legend{display:flex;gap:12px;font-size:11px;color:var(--muted);margin-top:12px;flex-wrap:wrap}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-left:4px;vertical-align:middle}
.dot.has{background:#0E7C6B}.dot.avg{background:#C9C2AE}.dot.today{background:#16A34A}.dot.hol{background:#E11D48}
.strip{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 10px;scrollbar-width:thin;scroll-behavior:smooth;scroll-snap-type:x proximity}
.strip::-webkit-scrollbar{height:6px}
.strip::-webkit-scrollbar-thumb{background:#C9C2AE;border-radius:999px}
.strip-item{flex:0 0 84px;background:var(--ctl-bg);border:1px solid var(--line);border-radius:16px;padding:8px 4px;font-family:inherit;font-size:11px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;flex-shrink:0;scroll-snap-align:start;transition:.2s}
.strip-item:hover{border-color:var(--brand);transform:translateY(-2px)}
.strip-item:active{transform:scale(.96)}
.strip-item.sel{background:var(--brand-deep);border-color:var(--brand-deep);color:#fff;box-shadow:0 8px 20px rgba(11,93,82,.4)}
html[data-theme="dark"] .strip-item.sel{background:var(--brand);border-color:var(--brand);color:#06231F}
.strip-item.hol{border-color:#F5C2CC}
.strip-item .ico{font-size:19px;line-height:1}
.strip-item .ico img.emoji{width:1.3em;height:1.3em}
.strip-item b{font-size:11px}
.muted{color:var(--muted);font-size:12px}
.actions{margin-top:12px}
.ghost-btn{width:100%;padding:10px;border-radius:14px;border:1.5px dashed var(--ctl-bd);background:transparent;font-family:inherit;cursor:pointer;color:var(--ink);font-weight:800;font-size:13px;transition:.2s}
.ghost-btn:hover{border-style:solid;border-color:var(--brand);color:var(--brand-deep)}
.hint{font-size:11px;color:var(--muted);margin-top:6px;text-align:center}
/* ===== جزئیات ===== */
.city-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.city-row h2{font-size:18px;font-weight:900}
.pill{background:var(--brand-soft);color:var(--brand-deep);padding:6px 14px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap;border:1px solid var(--line)}
html[data-theme="dark"] .pill{color:var(--brand)}
.sub{color:var(--muted);font-size:12px;margin:4px 0 10px}
.occ-box{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.occ-pill{padding:7px 12px;border-radius:999px;font-size:12px;font-weight:800}
.occ-pill.off{background:#FDE2E4;color:#9F1239;border:1px solid #F5C2CC}
.occ-pill.mourn{background:#1F2937;color:#fff}
.occ-pill.fest{background:#D9F5E5;color:#166534;border:1px solid #9BE3B8}
html[data-theme="dark"] .occ-pill.fest{background:#0C2B1E;color:#6EE7B7}
.now-box{background:var(--grad-brand);color:#fff;border-radius:20px;padding:18px;display:flex;align-items:center;gap:16px;margin-bottom:10px;min-width:0;box-shadow:0 16px 36px rgba(14,124,107,.35);position:relative;overflow:hidden}
.now-box::after{content:'';position:absolute;inset:0;background:radial-gradient(60% 90% at 85% 15%,rgba(255,255,255,.2),transparent 60%);pointer-events:none}
.now-box>div{min-width:0;overflow-wrap:anywhere}
.now-box .big-ico{font-size:48px;line-height:1;flex-shrink:0}
.now-box .big-ico img.emoji{width:1em;height:1em}
.now-box .big-temp{font-size:36px;font-weight:900;line-height:1.2;font-variant-numeric:tabular-nums}
.now-box .desc{font-size:12px;opacity:.92;line-height:1.7;word-break:break-word}
.skeleton{border-radius:12px;background:linear-gradient(90deg,rgba(14,124,107,.08) 25%,rgba(14,124,107,.16) 50%,rgba(14,124,107,.08) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite}
.skeleton.now{height:80px;width:100%}
html[data-theme="dark"] .skeleton{background:linear-gradient(90deg,rgba(255,255,255,.07) 25%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.07) 75%);background-size:200% 100%}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.fetch-info{font-size:11px;color:var(--muted);margin:-4px 0 8px;min-height:16px;overflow-wrap:anywhere}
.fetch-info.fresh{color:var(--ok);font-weight:800}
.fetch-info.stale{color:var(--amber-deep);font-weight:800}
#refreshBtn:disabled{cursor:wait;opacity:.65}
.daylen{background:var(--ctl-bg-hover);border:1px solid var(--line);border-radius:12px;padding:9px 14px;font-size:12px;display:flex;gap:14px;flex-wrap:wrap;margin-bottom:10px}
.daylen .dl{white-space:nowrap}
.alerts{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.alert{padding:9px 14px;border-radius:14px;font-size:12px;font-weight:800;line-height:1.7}
.alert.danger{background:#FDE2E4;color:#9F1239;border:1px solid #F5C2CC}
.alert.warn{background:#FEF3C7;color:#92400E;border:1px solid #FCD34D}
.alert.info{background:#DDEFEB;color:#0B5D52;border:1px solid #9AD5C9}
html[data-theme="dark"] .alert.info{background:#0E2B26;color:#5EEAD4}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:6px}
.stat{background:var(--ctl-bg);border:1px solid var(--line);border-radius:16px;padding:10px 6px;text-align:center;min-width:0;overflow:hidden;transition:transform .15s ease,box-shadow .2s ease}
@media(hover:hover){.stat:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}}
.stat b{display:block;font-size:13px;line-height:1.4;overflow-wrap:anywhere}
.stat b img.emoji{width:20px;height:20px}
.stat span{font-size:10px;color:var(--muted);display:block;margin-top:2px}
.action-bar{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 2px}
.mini-btn{padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--ctl-bg);color:var(--ctl-fg);font-family:inherit;font-size:12px;font-weight:800;cursor:pointer;transition:.2s}
.mini-btn:hover{border-color:var(--brand);color:var(--brand-deep);transform:translateY(-1px)}
html[data-theme="dark"] .mini-btn:hover{color:var(--brand)}
.mini-btn:active{transform:scale(.96)}
.sec-title{font-size:13.5px;font-weight:900;margin:14px 0 8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-inline-start:10px;border-inline-start:3px solid var(--brand);line-height:1.6}
.chart-legend{font-size:11px;font-weight:400;color:var(--muted);display:inline-flex;align-items:center}
.lg{display:inline-block;width:14px;height:3px;border-radius:2px;margin:0 3px 0 6px;vertical-align:middle}
.lg.max{background:#EF4444}.lg.min{background:#0E7C6B}
.chart-wrap{background:var(--ctl-bg);border:1px solid var(--line);border-radius:16px;padding:8px;overflow:hidden;min-height:220px}
.chart-wrap.chartjs{position:relative;height:220px;padding:12px}
.chart-wrap.chartjs canvas{width:100%!important;height:100%!important;display:block}
.hourly{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}
.hourly::-webkit-scrollbar{height:6px}
.hourly::-webkit-scrollbar-thumb{background:#C9C2AE;border-radius:999px}
.h{flex:0 0 76px;background:var(--ctl-bg);border:1px solid var(--line);border-radius:14px;padding:8px 4px;text-align:center;font-size:11px;flex-shrink:0;line-height:1.6}
.h b{display:block}
.h img.emoji{width:22px;height:22px}
.hm{font-size:9px;color:var(--brand-deep);white-space:nowrap;margin-top:2px}
html[data-theme="dark"] .hm{color:var(--brand)}
.climate{background:#FFFBEB;border:1px solid #FDE68A;border-radius:16px;padding:14px;font-size:13px;line-height:2.1;overflow-wrap:break-word}
html[data-theme="dark"] .climate{background:#221A08;border-color:#57500F;color:#E7F2EC}
.climate img.emoji{width:20px;height:20px}
.climate .load-btn{margin-top:8px;background:var(--amber);border:none;color:#fff;padding:9px 16px;border-radius:999px;font-family:inherit;cursor:pointer;font-weight:800;font-size:13px}
#avgRes img.emoji{width:18px;height:18px}
.source{font-size:10px;color:var(--muted);margin-top:12px;line-height:1.9}
/* ===== سئو ===== */
.seo-card{grid-column:1/-1;content-visibility:auto;contain-intrinsic-size:auto 420px}
.seo-card h2{font-size:17px;font-weight:900;margin:4px 0 8px}
.seo-card h3{font-size:14px;font-weight:800;margin-bottom:4px}
.seo-card p{font-size:13px;line-height:2.1}
.seo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0 16px}
.seo-grid>div{background:var(--ctl-bg);border:1px solid var(--line);border-radius:16px;padding:14px}
.seo-card details{border:1px solid var(--line);border-radius:14px;padding:4px 14px 10px;margin-bottom:8px;background:var(--ctl-bg)}
.seo-card summary{cursor:pointer;font-weight:800;font-size:13px;padding:8px 0;display:block;min-height:44px;line-height:28px}
.seo-card details p{margin-top:6px}
/* ===== مودال حمایت ===== */
.support-modal{position:fixed;inset:0;background:rgba(10,20,17,.62);display:flex;align-items:center;justify-content:center;z-index:1000;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:fadeIn .25s ease}
.support-modal[aria-hidden="true"]{display:none}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.modal-content{background:var(--card);border:1px solid var(--line);border-radius:26px;padding:24px;max-width:480px;width:90%;box-shadow:var(--shadow-lg);position:relative;animation:popIn .32s cubic-bezier(.2,.9,.3,1.15)}
@keyframes popIn{from{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:none}}
.modal-content::before{content:'';display:block;width:120px;height:6px;margin:-14px auto 18px;border-radius:999px;background:var(--grad-warm);box-shadow:0 3px 10px rgba(245,158,11,.45)}
.modal-close{position:absolute;top:18px;left:12px;width:32px;height:32px;border-radius:50%;background:var(--ctl-bg);color:var(--muted);border:1px solid var(--line);font-size:15px;cursor:pointer;font-weight:700;transition:transform .15s ease}
.modal-close:hover{transform:scale(1.08);background:#FDE2E4;color:#9F1239;border-color:#F5C2CC}
.modal-content h3{font-size:19px;font-weight:900;margin-bottom:12px}
.modal-content p{font-size:13px;line-height:2;margin-bottom:6px;text-wrap:pretty}
.support-cta{text-align:center;font-weight:800}
.support-methods{display:flex;flex-direction:column;gap:12px;margin:16px 0}
.support-method{padding:14px;background:var(--ctl-bg);border-radius:16px;border:1px solid var(--line)}
.support-method strong{display:block;margin-bottom:6px;color:var(--brand-deep)}
html[data-theme="dark"] .support-method strong{color:var(--brand)}
.card-number{font-family:'Courier New',monospace;font-size:20px;font-weight:700;letter-spacing:3px;padding:12px;background:linear-gradient(135deg,#FFFBEB,#FEF3C7);border:1.5px dashed var(--amber);color:var(--amber-deep);border-radius:12px;text-align:center;margin:8px 0}
html[data-theme="dark"] .card-number{background:linear-gradient(135deg,#3A2C10,#241C0D);color:#FDE68A}
.copy-card-btn{width:100%;padding:10px;border-radius:999px;border:none;background:var(--grad-warm);color:#fff;font-family:inherit;font-size:12.5px;font-weight:800;cursor:pointer;box-shadow:0 6px 16px rgba(245,158,11,.35);transition:filter .2s ease,transform .15s ease}
.copy-card-btn:hover{filter:brightness(1.07);transform:translateY(-1px)}
.copy-card-btn:active{transform:scale(.98)}
.support-note{font-size:12px;color:var(--muted);font-style:italic;margin-top:12px}
/* QR modal stacks above the support modal when both are open */
#qrModal{z-index:1100}
/* tall modal content (e.g. unified support modal) scrolls instead of clipping */
.support-modal{overflow-y:auto}
.modal-content{margin-top:auto;margin-bottom:auto}
.crypto-subtitle{font-size:15px;font-weight:900;margin:16px 0 4px}
/* دو ستون هم‌ارز داخل مودال حمایت: داخلی + بین‌المللی (پایه: روی‌هم) */
.support-cols{display:grid;grid-template-columns:1fr;gap:14px;align-items:start}
.support-col{min-width:0}
.support-cols .crypto-grid{grid-template-columns:1fr}
/* مودال حمایت عریض‌تر از مودال‌های دیگر تا دو ستون جا شوند */
#supportModal .modal-content{width:min(94vw,1080px);max-width:1080px}
/* فضای کافی: دو ستون + گرید 2×2 کریپتو فقط از 1024px به بالا */
@media(min-width:1024px){
  .support-cols{grid-template-columns:minmax(360px,.9fr) minmax(520px,1.1fr)}
  .support-cols .crypto-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.support-col h4{font-size:15px;font-weight:900;margin:4px 0 8px;display:flex;align-items:center;gap:8px}
/* پرچم ایران داخل تیتر (SVG لوکال اینلاین؛ ارتفاع ~20px، بدون اعوجاج) */
.flag-ir-svg{display:inline-flex;flex-shrink:0}
.flag-ir-svg svg{height:20px;width:auto;display:block;border-radius:3px;border:1px solid rgba(0,0,0,.18);box-shadow:0 1px 4px rgba(15,23,42,.25)}
/* ===== حمایت بین‌المللی (رمزارز) ===== */
.crypto-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:12px 0 16px}
.crypto-card{background:var(--ctl-bg);border:1px solid var(--line);border-radius:16px;padding:14px;min-width:0}
.crypto-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.crypto-icon svg{width:32px;height:32px;display:block;flex-shrink:0;filter:drop-shadow(0 2px 6px rgba(15,23,42,.25))}
.crypto-id{display:flex;flex-direction:column;gap:3px;min-width:0}
.crypto-id strong{font-size:15px;font-weight:900;line-height:1.2}
.crypto-head strong{font-size:15px;font-weight:900}
.crypto-net{font-size:11px;font-weight:800;color:var(--muted);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:3px 10px;white-space:nowrap}
.crypto-addr{font-family:'Courier New',monospace;font-size:13px;font-weight:700;letter-spacing:.5px;padding:9px 12px;background:var(--card);border:1px dashed var(--line);color:var(--brand-deep);border-radius:12px;margin:0 0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;direction:ltr;text-align:left}
html[data-theme="dark"] .crypto-addr{color:var(--brand)}
.crypto-note{font-size:12px;color:var(--muted);line-height:1.9;margin:0 0 10px}
.crypto-actions{display:flex;gap:8px;flex-wrap:wrap}
.crypto-actions .mini-btn{flex:1;white-space:nowrap}
.qr-meta{text-align:center}
.qr-box{display:flex;justify-content:center;margin:12px 0}
.qr-box svg{width:220px;height:220px;max-width:70vw;background:#fff;border-radius:16px;padding:10px;box-shadow:var(--shadow-sm)}
.crypto-addr.qr-full{white-space:normal;overflow-wrap:anywhere;margin:4px 0 12px;text-align:left}
.qr-warn{font-size:12px;line-height:2;background:rgba(245,158,11,.1);border:1px solid var(--amber);border-radius:12px;padding:8px 12px;margin-top:12px}
.qr-holder{display:none}
/* ===== کارت بانکی تصویری (حمایت ریالی) ===== */
.bank-card{direction:ltr;background:linear-gradient(135deg,#0f766e 0%,#4338ca 72%,#312e81 100%);border:1px solid rgba(255,255,255,.28);border-radius:18px;padding:16px 18px;color:#fff;box-shadow:0 10px 28px rgba(15,23,42,.35),inset 0 1px 0 rgba(255,255,255,.25);max-width:420px;margin:8px auto;position:relative;overflow:hidden}
.bank-card::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 85% 15%,rgba(255,255,255,.18),transparent 55%);pointer-events:none}
.bank-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;position:relative}
.bank-chip{width:36px;height:27px;border-radius:6px;background:linear-gradient(135deg,#fde68a 0%,#f59e0b 55%,#b45309 100%);box-shadow:inset 0 0 0 1px rgba(120,53,15,.4);position:relative;overflow:hidden}
.bank-chip::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 5px,rgba(120,53,15,.35) 5px 6px),repeating-linear-gradient(90deg,transparent 0 7px,rgba(120,53,15,.35) 7px 8px)}
.bank-nfc{width:22px;height:22px}
.bank-title{font-size:12px;font-weight:800;opacity:.85;letter-spacing:.4px;position:relative}
.bank-number{display:flex;justify-content:space-between;gap:.4em;font-family:'Courier New',monospace;font-size:clamp(12px,4.4vw,22px);font-weight:700;letter-spacing:.08em;margin:6px 0;white-space:nowrap;position:relative}
.bank-number>span{white-space:nowrap;flex:0 1 auto;min-width:0}
.bank-name{font-size:13px;font-weight:600;opacity:.92;position:relative}
/* ===== فوتر، تست ===== */
footer{max-width:1280px;margin:0 auto;padding:6px 18px 20px;color:var(--muted);font-size:12px}
.footer-box{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:16px 20px;display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;box-shadow:var(--shadow-sm)}
.footer-links{display:flex;gap:6px;flex-wrap:wrap}
.footer-links a{font-size:12px;font-weight:800;color:var(--muted);text-decoration:none;padding:6px 14px;border-radius:999px;transition:.2s}
.footer-links a:hover{background:var(--brand-soft);color:var(--brand-deep)}
footer .dom{direction:ltr;font-weight:800;color:var(--brand-deep)}
html[data-theme="dark"] footer .dom{color:var(--brand)}
.toast{position:fixed;bottom:calc(16px + env(safe-area-inset-bottom));right:50%;transform:translateX(50%);background:#1F2937;color:#fff;padding:11px 20px;border-radius:14px;font-size:13px;z-index:10000;box-shadow:0 10px 30px rgba(0,0,0,.4);max-width:90vw;text-align:center;line-height:1.5}
img.emoji{width:1.25em;height:1.25em;vertical-align:-.2em}
.install-fab{position:fixed;bottom:calc(70px + env(safe-area-inset-bottom));left:16px;z-index:9000;padding:11px 20px;border-radius:999px;border:none;background:var(--grad-warm);color:#fff;font-family:inherit;font-size:13px;font-weight:800;cursor:pointer;box-shadow:0 10px 26px rgba(245,158,11,.5)}
.install-fab:active{transform:scale(.96)}
html.lowpower .bg,html.lowpower .bg::before,html.lowpower .bg .orb{display:none}
html.lowpower *{animation-duration:.01ms!important;transition-duration:.01ms!important}
html.lowpower .card,html.lowpower .topbar{backdrop-filter:none;-webkit-backdrop-filter:none}
html.lowpower .card:hover{box-shadow:var(--card-shadow)}
.wicon{width:1.25em;height:1.25em;vertical-align:-.22em;flex-shrink:0}
.logo .wicon{width:.95em;height:.95em}
.clock-icon .wicon{width:22px;height:22px}
.hero-ico .wicon{width:1em;height:1em}
.cell .ico .wicon{width:1.25em;height:1.25em}
.strip-item .ico .wicon{width:1.3em;height:1.3em}
.now-box .big-ico .wicon{width:1em;height:1em}
.stat b .wicon{width:20px;height:20px}
.h .wicon{width:22px;height:22px}
.climate .wicon{width:20px;height:20px}
#avgRes .wicon{width:18px;height:18px}
:focus-visible{outline:3px solid var(--brand);outline-offset:3px}
a:focus-visible,summary:focus-visible{outline:3px solid var(--brand);outline-offset:2px;border-radius:8px}
*::-webkit-scrollbar{height:8px;width:8px}
*::-webkit-scrollbar-thumb{background:#B9B29C;border-radius:999px;border:2px solid transparent;background-clip:content-box}
*::-webkit-scrollbar-track{background:transparent}
/* ===== ریسپانسیو ===== */
@media(max-width:900px){.layout{grid-template-columns:1fr}.brand h1{font-size:19px}.brand p{white-space:normal}
  .nav-toggle{display:inline-flex}
  .main-nav{position:absolute;inset-inline:0;top:100%;z-index:60;flex-direction:column;align-items:stretch;gap:2px;margin-top:8px;padding:8px;background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-lg);max-height:min(70vh,420px);overflow-y:auto;overscroll-behavior:contain}
  .main-nav[hidden]{display:none}
  .main-nav:not([hidden]){display:flex}
  .main-nav a{padding:11px 14px;border-radius:12px;font-size:14px}
  .main-nav a:last-child{position:relative;margin-top:6px}
  .main-nav a:last-child::before{content:'';position:absolute;top:-4px;inset-inline:6px;height:1px;background:var(--line)}
}
@media(min-width:901px){.main-nav[hidden]{display:flex}}
@media(min-width:641px) and (max-width:900px){.layout{padding:0 14px 16px}.card{padding:16px}.search-box input{width:180px}.header-actions{flex:1;justify-content:flex-end}
  /* خوشهٔ کامل کنترل‌ها (حمایت + ساعت + جستجو) از عرض سطر برند بیشتر است ⇒ سطر مستقل می‌گیرد تا روی برند نیفتد */
  .header-actions:has(.live-clock){flex:1 1 100%;flex-wrap:wrap;row-gap:10px}
}
@media(max-width:700px){.seo-grid{grid-template-columns:1fr}.crypto-grid{grid-template-columns:1fr}.crypto-icon svg{width:28px;height:28px}}
@media(max-width:640px){
  html{scroll-padding-top:230px}
  .topbar{width:calc(100% - 16px);margin:8px auto 12px;padding:12px;border-radius:18px;gap:10px}
  .brand{width:100%;justify-content:center;text-align:center}
  .logo{width:42px;height:42px;font-size:22px;border-radius:14px}
  .brand h1{font-size:17px}
  .brand p{font-size:10.5px;white-space:normal;text-align:center}
  .header-actions{display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;align-items:center;width:100%}
  .nav-toggle{grid-column:1;grid-row:1;justify-self:start}
  .live-clock{grid-column:2/-1;grid-row:1;min-width:0;width:100%}
  .clock-time{font-size:20px}
  .clock-seconds{font-size:13px}
  .support-btn-header{grid-column:1/3;grid-row:2;width:100%;text-align:center}
  #refreshBtn{grid-column:3;grid-row:2}
  #themeBtn{grid-column:4;grid-row:2}
  .header-actions .search-box{grid-column:1/-1;grid-row:3;width:100%}
  /* صفحه‌های بدون ساعت زنده (۴۲ صفحه) ⇒ دکمهٔ تم هم‌ردیف دکمهٔ منو می‌ماند و ارتفاع هدر تغییر نمی‌کند */
  .header-actions:not(:has(.live-clock)) #themeBtn{grid-column:4;grid-row:1}
  .search-box{flex:1;min-width:0;width:100%}
  .search-box input{flex:1;width:auto;min-width:0;max-width:none;font-size:16px}
  .search-box button{font-size:12px}
  .layout{padding:0 10px 12px;gap:12px}
  .card{padding:14px;border-radius:18px}
  .hero{padding:20px;border-radius:20px;gap:14px}
  .hero-date{font-size:23px}
  .hero-temp{font-size:40px}
  .hero-ico{font-size:48px}
  .hero-weather{margin-inline-start:0;width:100%;justify-content:space-between}
  .cal-title h2{font-size:17px}
  .toolrow{grid-template-columns:repeat(2,1fr)}
  .tool-btn{min-height:46px}
  .mini-btn{min-height:44px}
  .grid{gap:6px}
  .cell{min-height:72px;border-radius:14px}
  .cell .d{font-size:13.5px}
  .cell .ico{font-size:17px}
  .cell .t{font-size:9px;white-space:normal;overflow:visible}
  .weekdays{font-size:10px}
  .toolbar select{font-size:16px;min-height:44px}
  .stats{grid-template-columns:repeat(2,1fr)}
  .now-box .big-ico{font-size:38px}
  .now-box .big-temp{font-size:28px}
  .chart-wrap.chartjs{height:190px;min-height:190px}
  .strip-item{flex:0 0 72px}
  .card-number{font-size:16px;letter-spacing:1px}
  .strip:focus-visible,.hourly:focus-visible{outline:3px solid var(--brand);outline-offset:2px}
  .bg .orb{display:none}
  .card,.topbar{backdrop-filter:none;-webkit-backdrop-filter:none}
  .bg::before,.bg .orb{animation:none}
  .footer-box{flex-direction:column;text-align:center}
}
@media(max-width:360px){.brand h1{font-size:15px}.cell{min-height:58px}.tool-btn{font-size:11px}.today-badge{display:none}}
@media(max-height:480px) and (orientation:landscape){.brand p{display:none}.logo{width:36px;height:36px}}
@media(hover:none) and (pointer:coarse){.mini-btn,.tool-btn,.chips button,.nav-btn,.icon-btn,.toolbar select,.search-box button{min-height:44px}.nav-btn,.icon-btn{min-width:44px}}
@media(min-width:1400px){.topbar,.layout,footer{max-width:1360px}}
@media(min-width:1100px) and (min-height:820px){body{height:100dvh;overflow:hidden;display:flex;flex-direction:column}.layout{flex:1;min-height:0;overflow-y:auto;align-items:stretch}.calendar-card,.detail-card{overflow:auto;scrollbar-width:thin}}
/* صفحه‌های غیر از «app-shell» باید اسکرول عادی سند داشته باشند.
   قاعدهٔ بالا فقط برای صفحهٔ اصلی است (که .layout خودش اسکرولر داخلی دارد)؛
   بقیهٔ صفحه‌ها اسکرولر داخلی ندارند و بدون این قاعده محتوای زیر ۱۰۰dvh
   (جدول سئو، FAQ، مناسبت‌ها، فوتر) بریده و غیرقابل‌دسترس می‌شد. */
@media(min-width:1100px) and (min-height:820px){body:not(:has(> main.layout)){height:auto;overflow:visible;display:block}}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.layout>.card,.hero{animation:cardIn .45s ease both}.layout>.card:nth-child(3){animation-delay:.06s}.layout>.card:nth-child(4){animation-delay:.12s}}
@keyframes cardIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){html,.strip{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.layout>.card,.hero{animation:none}}
@media print{
  .topbar,.toolrow,.fav-row,.chips,.actions,.action-bar,#toast,.search-box,.icon-btn,.offline-bar,footer,.strip,.seo-card,.support-modal,.skip-link,.hero{display:none!important}
  body{height:auto;overflow:visible;display:block;background:#fff;color:#000}
  .layout{display:block;overflow:visible}
  .card{background:#fff;color:#000;overflow:visible;box-shadow:none;margin-bottom:12px}
}

/* ===== SEC-E: قوانین جابه‌جاشده از <style> صفحات (در انتهای فایل بماند تا cascade حفظ شود) ===== */
/* ---- date-converter/index.html (moved from inline <style>) ---- */

.back-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.back-row a{text-decoration:none}

/* ---- occasions/index.html (moved from inline <style>) ---- */

.occ-page{width:100%;max-width:860px;margin:0 auto;padding:0 18px 18px}
.seg{display:flex;background:var(--ctl-bg);border:1px solid var(--line);border-radius:999px;padding:4px;gap:4px;margin-bottom:10px}
.seg button{flex:1;border:none;background:transparent;color:var(--muted);font-family:inherit;font-size:14px;font-weight:800;padding:10px;border-radius:999px;cursor:pointer;transition:.2s}
.seg button.on{background:var(--brand-deep);color:#fff;box-shadow:var(--shadow-sm)}
html[data-theme="dark"] .seg button.on{background:var(--brand);color:#06231F}
.month-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:12px}
.month-grid button{border:1px solid var(--line);background:var(--ctl-bg);color:var(--ctl-fg);font-family:inherit;font-size:12.5px;font-weight:800;padding:10px 4px;border-radius:14px;cursor:pointer;transition:.2s;white-space:nowrap}
.month-grid button:hover{border-color:var(--brand);transform:translateY(-1px)}
.month-grid button.on{background:var(--grad-brand);color:#fff;border-color:transparent;box-shadow:0 8px 20px rgba(14,124,107,.4)}
.month-grid button.cur{border-color:var(--amber);border-width:2px}
@media(max-width:640px){.month-grid{grid-template-columns:repeat(4,1fr)}}
.occ-list{list-style:none;display:flex;flex-direction:column;gap:6px}
.occ-list li{display:flex;align-items:center;gap:10px;background:var(--ctl-bg);border:1px solid var(--line);border-radius:12px;padding:9px 12px;font-size:13px}
.occ-list li.off{border-color:#F5C2CC}
.occ-day{min-width:36px;text-align:center;font-weight:900;background:var(--brand-soft);color:var(--brand-deep);border-radius:9px;padding:3px 6px}
html[data-theme="dark"] .occ-day{color:var(--brand)}
.month-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.month-head h2{font-size:16px;font-weight:900}
.month-count{font-size:11.5px;color:var(--muted);font-weight:700}
.back-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.back-row a{text-decoration:none}
.summary-box{background:var(--grad-brand);color:#fff;border-radius:16px;padding:14px 16px;font-size:13px;line-height:2;margin-bottom:12px;box-shadow:0 14px 34px rgba(14,124,107,.35)}

/* ---- 404.html (moved from inline <style>) ---- */
.nf{width:100%;max-width:560px;margin:8vh auto;padding:0 18px;text-align:center}.nf .big{font-size:72px;font-weight:900;color:var(--acc)}
/* ===== SEC-E: کلاس‌های جایگزین style= اینلاین ===== */
.compare-field{position:relative;flex:1;min-width:130px}
.compare-input-full{width:100%;max-width:none}
.cmp-result-gap{margin-top:12px}
.mini-btn-sm{font-size:11px;padding:4px 10px}
.nf-title{font-size:20px;font-weight:900;margin-bottom:8px}
.nf-sub{margin-bottom:14px}
.link-plain{text-decoration:none}
.card-span{grid-column:auto}
.card-span-gap{grid-column:auto;margin-top:12px}
.t-dim{color:var(--muted)}
.ico-dim40{opacity:.4}
.big-temp-sm{font-size:22px}
.climate-gap{margin-top:8px}
/* ===== مسیر صفحه (breadcrumb هم‌راستا با BreadcrumbList در JSON-LD) ===== */
.crumbs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-bottom:8px}
.crumbs a{color:var(--brand-deep);text-decoration:none;font-weight:800}
html[data-theme="dark"] .crumbs a{color:var(--brand)}
.crumbs a:hover{text-decoration:underline}
.crumbs span[aria-current]{font-weight:700}
/* ===== فهرست کامل ماه‌ها (محتوای استاتیک/کراول‌شدنی صفحهٔ مناسبت‌ها) ===== */
.occ-full{margin-top:12px}
.occ-full h3{margin:14px 0 8px;font-size:14px;font-weight:900;color:var(--muted)}
.occ-month{border:1px solid var(--line);border-radius:14px;background:var(--ctl-bg);margin-bottom:8px;overflow:hidden}
.occ-month>summary{cursor:pointer;padding:11px 14px;font-size:13.5px;font-weight:800;display:flex;align-items:center;justify-content:space-between;gap:10px;list-style:none}
.occ-month>summary::-webkit-details-marker{display:none}
.occ-month>summary::before{content:'▾';color:var(--brand-deep);font-size:12px;transition:transform .2s}
.occ-month[open]>summary::before{transform:rotate(180deg)}
.occ-month[open]>summary{border-bottom:1px dashed var(--line)}
.occ-month .occ-list{padding:8px 10px 10px}
.occ-month .month-count{margin-inline-start:auto}
/* راهنمای صفحه‌کلید فقط روی دستگاه‌هایی که کیبورد فیزیکی دارند */
.touch-only{display:none}
@media(hover:none),(pointer:coarse){.kb-only{display:none}.touch-only{display:inline}}
/* ===== صفحات SEO فاز ۱ (ساخته‌شده با tools/build-seo-pages.mjs) ===== */
/* تقویم استاتیک ماه: سلول‌ها غیرقابل‌کلیک‌اند (اطلاعات کامل در جدول دسترس‌پذیر زیر آن است) */
.cal-static .cell{cursor:default}
.cal-static .cell:hover{transform:none;border-color:var(--line);box-shadow:var(--shadow-md)}
/* جدول‌های داده (تعطیلات/مناسبت‌ها/روزهای ماه) — دسکتاپ و موبایل */
.tbl-wrap{overflow-x:auto;margin:12px 0 4px;border:1px solid var(--line);border-radius:16px;background:var(--ctl-bg)}
.tbl-wrap:focus-visible{outline:3px solid var(--brand);outline-offset:2px}
.tbl{width:100%;border-collapse:collapse;font-size:12.5px;min-width:540px}
.tbl caption{caption-side:top;text-align:right;padding:12px 14px 6px;font-size:12.5px;font-weight:800;color:var(--muted)}
.tbl th,.tbl td{padding:9px 12px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
.tbl thead th{font-size:11.5px;font-weight:900;color:var(--muted);background:var(--ctl-bg-hover)}
.tbl tbody tr:last-child td,.tbl tbody tr:last-child th{border-bottom:none}
.tbl tbody tr:hover{background:var(--ctl-bg-hover)}
.tbl th[scope="row"]{font-weight:800}
.tbl td.fri{color:var(--danger-text);font-weight:800}
.tbl tr.is-off td,.tbl tr.is-off th[scope="row"]{background:#FDF0F2}
html[data-theme="dark"] .tbl tr.is-off td,html[data-theme="dark"] .tbl tr.is-off th[scope="row"]{background:#2A1420}
.tbl a{color:var(--brand-deep);font-weight:800}
/* صفحات انگلیسی (‎<html dir="ltr">‎): تراز جدول‌ها چپ‌چین؛ صفحات فارسی (rtl) دست‌نخورده می‌مانند */
[dir="ltr"] .tbl caption,[dir="ltr"] .tbl th,[dir="ltr"] .tbl td{text-align:left}
html[data-theme="dark"] .tbl a{color:var(--brand)}
/* متادیتای هر مناسبت (روز هفته • معادل میلادی • نوع) در فهرست ماهانه */
.occ-meta{display:block;font-size:11px;color:var(--muted);font-weight:600;margin-top:2px}
/* چیپ‌های ۱۲ ماه صفحهٔ سال — برای لینک انتخاب ماه (<a>) و چیپ نمایشی ماه بدون صفحهٔ ساخته‌شده (<span>) */
.month-grid span,.month-grid a{border:1px solid var(--line);background:var(--ctl-bg);color:var(--ctl-fg);font-size:12.5px;font-weight:800;padding:10px 4px;border-radius:14px;text-align:center;white-space:nowrap;text-decoration:none}
.month-grid span.built,.month-grid a.built{background:var(--grad-brand);color:#fff;border-color:transparent;box-shadow:0 8px 20px rgba(14,124,107,.4)}
/* تعامل چیپ ماهِ لینک‌دار: hover/active ملایم و هم‌سبک با .cell/.stat/.tool-btn (چیپ spanِ ماهِ بدون صفحه تعاملی نمی‌شود) */
.month-grid a{transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
@media(hover:hover){
  .month-grid a:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(14,124,107,.5);filter:brightness(1.06)}
}
/* کیبورد: همان تأکید غیرحرکتی + outline موجودِ a:focus-visible دست‌نخورده می‌ماند */
.month-grid a:focus-visible{box-shadow:0 12px 26px rgba(14,124,107,.5);filter:brightness(1.06)}
.month-grid a:active{transform:translateY(0) scale(.98);box-shadow:0 6px 16px rgba(14,124,107,.38);filter:brightness(1)}
@media(prefers-reduced-motion:reduce){
  .month-grid a{transition:none}
  .month-grid a:hover,.month-grid a:active{transform:none}
}
@media(max-width:700px){.tbl{min-width:480px}.tbl th,.tbl td{padding:8px 10px}}

