/* قرار شهر — تم سبز/سفید/قرمز. همه رنگ‌ها و اندازه‌ها در متغیرها تعریف شده‌اند. فونت: Vazirmatn (مجوز OFL، فایل محلی) */
@font-face{font-family:Vazirmatn;font-weight:400;font-display:swap;src:url(fonts/Vazirmatn-Regular.woff2) format("woff2")}
@font-face{font-family:Vazirmatn;font-weight:500;font-display:swap;src:url(fonts/Vazirmatn-Medium.woff2) format("woff2")}
@font-face{font-family:Vazirmatn;font-weight:700;font-display:swap;src:url(fonts/Vazirmatn-Bold.woff2) format("woff2")}
@font-face{font-family:Vazirmatn;font-weight:800;font-display:swap;src:url(fonts/Vazirmatn-ExtraBold.woff2) format("woff2")}
:root{--green:#1F8C64;--green-d:#14664A;--green-dd:#0C4A35;--green-l:#E3F3EC;--red:#A71111;--red-l:#FBE9E9;--gray:#EEEEEE;--bg:#F4F6F5;--surface:#fff;--ink:#16221C;--ink2:#5B6862;--line:#DDE3E0;--warn:#8A5A00;--warn-l:#FFF3D6;--info:#1B5E8C;--info-l:#E3F0FA;
 --r:14px;--r-s:9px;--sh:0 1px 2px rgba(12,74,53,.06),0 6px 18px rgba(12,74,53,.07);--gap:1rem;--font:Vazirmatn,Tahoma,"Segoe UI",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--ink);line-height:1.9;font-size:16px}
a{color:var(--green-d)}h1,h2,h3{line-height:1.5;margin:.3em 0}h1{font-size:1.7rem;font-weight:800}h2{font-size:1.3rem;font-weight:700}.sec{margin:1.8rem 0 .8rem}
.wrap{max-width:1120px;margin:0 auto;padding:1rem}.muted{color:var(--ink2);font-size:.92rem}code{background:var(--gray);padding:0 .35rem;border-radius:5px;direction:ltr;unicode-bidi:embed}
/* سربرگ */
.top{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.55rem 1rem;background:var(--green-dd);color:#fff;position:sticky;top:0;z-index:900;box-shadow:0 2px 10px rgba(0,0,0,.15)}
.top a{color:#fff;text-decoration:none}.top nav{display:flex;gap:.9rem;align-items:center;flex-wrap:wrap}.top nav a:not(.btn){opacity:.9;padding:.3rem .2rem}.top nav a:not(.btn):hover{opacity:1;text-decoration:underline}
.logo{font-weight:800;font-size:1.2rem;display:flex;align-items:center;gap:.5rem}.mark{width:22px;height:22px;border-radius:50% 50% 50% 4px;background:linear-gradient(135deg,var(--green) 55%,var(--red) 55%);display:inline-block;border:2px solid #fff}
/* دکمه‌ها */
.btn,button{background:var(--green);color:#fff;border:1px solid var(--green);border-radius:var(--r-s);padding:.6rem 1.2rem;text-decoration:none;cursor:pointer;font:inherit;font-weight:500;min-height:44px;display:inline-flex;align-items:center;justify-content:center;transition:background .15s}
.btn:hover,button:hover{background:var(--green-d)}.btn.alt,button.alt{background:transparent;color:var(--green-d);border-color:var(--green)}.btn.alt:hover,button.alt:hover{background:var(--green-l)}
.btn.sm,button.sm{min-height:36px;padding:.25rem .8rem;font-size:.9rem}.btn.big{min-height:52px;padding:.7rem 1.6rem;font-size:1.05rem}.btn.ghost{background:transparent;color:var(--green-d);border-color:var(--line)}
.btn.light{background:#fff;color:var(--green-dd);border-color:#fff}.btn.ghost-light{background:transparent;border-color:rgba(255,255,255,.6);color:#fff}.top .btn.sm{background:#fff;color:var(--green-dd);border-color:#fff}
button:disabled{opacity:.6;cursor:not-allowed}.inl,form.inline{display:inline}
/* هیرو */
.hero{background:linear-gradient(135deg,var(--green-dd),var(--green) 70%);color:#fff;border-radius:var(--r);padding:2.2rem 1.4rem;margin:.5rem 0 1rem;position:relative;overflow:hidden}
.hero:after{content:"";position:absolute;inset:auto auto -60px -40px;width:200px;height:200px;border-radius:50%;background:var(--red);opacity:.9;filter:blur(2px)}.hero>div{position:relative;z-index:1;max-width:620px}.hero h1{font-size:2.1rem;color:#fff}.hero p{opacity:.95}
/* پنل/فرم */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.2rem;box-shadow:var(--sh);margin:1rem 0}.panel.narrow{max-width:640px;margin-inline:auto}
.form{background:var(--surface);padding:1rem;border-radius:var(--r);border:1px solid var(--line)}.panel>.form{border:0;padding:0}
.form label{display:block;margin:.8rem 0 .2rem;font-weight:500}.form .check{display:flex;gap:.5rem;align-items:center}.form .check input{width:auto}
select,input,textarea{font:inherit;padding:.6rem .7rem;border:1px solid var(--line);border-radius:var(--r-s);width:100%;background:#fff;color:var(--ink);min-height:44px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--green);outline-offset:1px;border-color:var(--green)}input[type=checkbox]{min-height:0}
.row{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}@media(max-width:600px){.row{grid-template-columns:1fr}.hero h1{font-size:1.6rem}}
fieldset{border:0;padding:0;margin:0}legend{font-weight:700;font-size:1.15rem;margin-bottom:.4rem;padding:0}.js-steps .step[hidden]{display:none}.prev{max-width:220px;display:none;margin-top:.5rem;border-radius:var(--r-s)}
.steps{display:flex;gap:.4rem;list-style:none;padding:0;margin:.5rem 0 1rem;flex-wrap:wrap}.steps li{flex:1;min-width:110px;padding:.4rem .6rem;border-radius:99px;background:var(--gray);color:var(--ink2);font-size:.88rem;text-align:center}.steps li.on{background:var(--green);color:#fff;font-weight:700}.steps li.done{background:var(--green-l);color:var(--green-d)}
.nav-steps{display:flex;justify-content:space-between;margin-top:1rem}.js-steps~.nav-steps{display:flex}form:not(.js-steps) .nav-steps{display:none}
/* پیام‌ها و برچسب‌ها */
.msg{padding:.9rem 1rem;border-radius:var(--r-s);margin:1rem 0;border:1px solid transparent;border-inline-start-width:5px}.msg.ok{background:var(--green-l);border-color:var(--green);color:var(--green-dd)}.msg.err{background:var(--red-l);border-color:var(--red);color:#6f0b0b}.msg.warn{background:var(--warn-l);border-color:#D9A520;color:var(--warn)}.msg.info{background:var(--info-l);border-color:var(--info);color:#12425F}
.empty{text-align:center;color:var(--ink2);padding:2rem}.badge{display:inline-block;padding:.05rem .7rem;border-radius:99px;font-size:.82rem;font-weight:500;background:var(--gray);color:var(--ink2);white-space:nowrap}.badge.ok{background:var(--green-l);color:var(--green-dd)}.badge.err{background:var(--red-l);color:var(--red)}.badge.warn{background:var(--warn-l);color:var(--warn)}.badge.info{background:var(--info-l);color:var(--info)}
.tag{font-size:.78rem;background:var(--green-l);color:var(--green-dd);border-radius:99px;padding:.05rem .65rem;display:inline-block}.tag.free{background:var(--green);color:#fff}.tag.paid{background:var(--red-l);color:var(--red)}
/* فیلتر و کارت */
.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem;margin:.8rem 0}.chips{display:flex;gap:.5rem;flex-wrap:wrap;margin:.4rem 0}.chip{background:var(--gray);color:var(--ink);border:1px solid var(--line);border-radius:99px;min-height:38px;padding:.2rem 1rem}.chip:hover{background:var(--green-l)}.chip.on{background:var(--green);color:#fff;border-color:var(--green)}
#map,#picker{height:400px;border-radius:var(--r);margin:.8rem 0;z-index:1;border:1px solid var(--line)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--gap)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:transform .15s,box-shadow .15s}.card:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(12,74,53,.14)}
.card img{width:100%;aspect-ratio:16/10;object-fit:cover;background:var(--gray);display:block}.card .body,.card>div{padding:.9rem;display:flex;flex-direction:column;gap:.25rem}.card .tags{display:flex;gap:.4rem;flex-wrap:wrap}.card .ttl{font-size:1.05rem}.card .meta{color:var(--ink2);font-size:.9rem}.card .more{color:var(--green-d);font-weight:500;margin-top:.3rem}
.pager{display:flex;gap:.4rem;justify-content:center;margin:1.2rem 0;flex-wrap:wrap}
/* پرداخت */
.summary{background:var(--gray);border-radius:var(--r-s);padding:.4rem 1rem;margin:1rem 0}.summary>div{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px dashed var(--line)}.summary>div:last-child{border:0}.summary .total b{font-size:1.4rem;color:var(--green-dd)}
.codebox{display:flex;gap:1rem;flex-wrap:wrap;background:var(--green-l);border-radius:var(--r-s);padding:.8rem 1rem;margin:1rem 0}.codebox div{display:flex;flex-direction:column}.codebox b{font-size:1.2rem;letter-spacing:.08em}
/* صفحه برنامه */
.detail img.hero{width:100%;max-height:380px;object-fit:cover;border-radius:var(--r)}
/* جدول‌ها و مدیریت */
.table-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh)}table{width:100%;border-collapse:collapse;background:var(--surface)}th{background:var(--green-l);color:var(--green-dd);font-weight:700;font-size:.9rem}td,th{padding:.6rem .7rem;border-bottom:1px solid var(--line);text-align:right;vertical-align:top}tr:last-child td{border-bottom:0}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--gap);margin:1rem 0}.stat{background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--green);border-radius:var(--r);padding:.9rem 1rem;text-decoration:none;color:var(--ink);box-shadow:var(--sh);display:flex;flex-direction:column}.stat b{font-size:1.5rem}.stat span{color:var(--ink2);font-size:.9rem}.stat.warn{border-top-color:#D9A520}.stat.err{border-top-color:var(--red)}.stat.ok{border-top-color:var(--green)}
body.admin .top{background:var(--ink)}body.admin .logo .mark{border-color:#fff}
/* پانوشت */
.foot{background:var(--green-dd);color:#d6efe5;margin-top:2.5rem;padding:1.6rem 1rem}.foot a{color:#fff;display:block;text-decoration:none;padding:.15rem 0}.foot-in{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr;gap:1.5rem}@media(max-width:700px){.foot-in{grid-template-columns:1fr}}
/* نقشه روی OSM: بدون دست‌کاری کاشی‌ها، فقط رنگ نشانگر و پاپ‌آپ هماهنگ شده */
.leaflet-popup-content{font-family:var(--font);margin:.7rem .9rem;direction:rtl}.leaflet-popup-content-wrapper{border-radius:var(--r-s)}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* ===== مرحله ۲: استان‌ها، تب‌ها، ویژه‌برنامه، هشدار تشابه، کارت دعوت ===== */
.noimg{aspect-ratio:16/10;background:linear-gradient(135deg,var(--green-l),var(--gray))}
.tabs{display:flex;gap:.4rem;flex-wrap:wrap;margin:.6rem 0}.tabs a{padding:.35rem 1rem;border-radius:99px;background:var(--gray);color:var(--ink);text-decoration:none;min-height:38px;display:inline-flex;align-items:center}.tabs a.on{background:var(--green);color:#fff}
.prov-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.7rem;margin:.8rem 0}.prov{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:.7rem .9rem;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;box-shadow:var(--sh)}.prov:hover{border-color:var(--green)}.prov span{color:var(--ink2);font-size:.85rem}
.special-box{border:2px solid var(--red);background:linear-gradient(180deg,var(--red-l),#fff);border-radius:var(--r);padding:1rem;margin:1.2rem 0}.special-box h2{color:var(--red);margin-top:0}.special-old{margin:1rem 0}.special-old summary{cursor:pointer;color:var(--ink2)}
.sp{display:flex;gap:.8rem;align-items:flex-start;padding:.7rem 0;border-bottom:1px dashed var(--line)}.sp:last-child{border:0}.sp img{width:90px;height:90px;object-fit:cover;border-radius:var(--r-s)}.sp .meta{color:var(--ink2);font-size:.9rem}.sp p{margin:.3rem 0}
.dup-box{border:2px solid #D9A520;background:var(--warn-l);border-radius:var(--r);padding:1rem;margin:1rem 0}.dup-item{display:flex;gap:.7rem;align-items:center;padding:.6rem 0;border-bottom:1px dashed #E5C97A}.dup-item img{width:64px;height:64px;object-fit:cover;border-radius:8px}.dup-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.8rem}
.canvas-wrap{text-align:center;margin:1rem 0}.canvas-wrap canvas{max-width:100%;max-height:78vh;border-radius:var(--r);box-shadow:var(--sh);background:#fff}.row2{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap}

/* ===== ویژه‌سازی ===== */
.card.feat{border:2px solid var(--red);box-shadow:0 6px 22px rgba(167,17,17,.18)}.tag.star{background:var(--red);color:#fff}
.pin{background:none;border:0}.pin-feat span{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);background:var(--red);color:#fff;border:3px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.4);font-size:16px}.pin-feat span{padding-top:2px}
.svc{display:flex;justify-content:space-between;gap:1rem;align-items:center;flex-wrap:wrap;padding:.8rem 0;border-bottom:1px dashed var(--line)}.svc:last-child{border:0}

.sponsor-box{border:2px solid var(--green);background:linear-gradient(135deg,var(--green-l),#fff)}.chips label.chip{cursor:pointer;display:inline-flex;gap:.3rem;align-items:center}
