:root{--g:#0f7a5a;--g2:#19a37a;--ink:#12332a;--mx:0;--my:0}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:Vazirmatn,Tahoma,"Segoe UI",sans-serif;color:var(--ink);min-height:100vh;padding:16px;overflow-x:hidden;
 background:radial-gradient(1200px 700px at calc(var(--mx)*1px) calc(var(--my)*1px),#d9f5e9,transparent 60%),linear-gradient(135deg,#e6f6ef,#e4eefb 60%,#f3fbf7)}
.bg{position:fixed;inset:0;pointer-events:none;z-index:-1;overflow:hidden}
.blob{position:absolute;border-radius:50%;filter:blur(40px);opacity:.55;will-change:transform}
.wrap{max-width:1000px;margin:auto}h1,h2,h3{margin:.3em 0}.sub{color:#456;font-size:.92rem}a{color:var(--g)}
.glass,.card{background:rgba(255,255,255,.52);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);border:1px solid rgba(255,255,255,.85);
 border-radius:22px;padding:18px;box-shadow:0 14px 36px rgba(15,122,90,.13),inset 0 1px 0 #fff}
.tilt{--px:50%;--py:50%;position:relative;transform-style:preserve-3d;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s;will-change:transform}
.tilt::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .25s;background:radial-gradient(260px circle at var(--px) var(--py),rgba(255,255,255,.85),transparent 60%)}
.tilt:hover::after{opacity:1}.tilt:hover{box-shadow:0 26px 50px rgba(15,122,90,.22),inset 0 1px 0 #fff}
.tilt .z1{transform:translateZ(34px)}.tilt .z2{transform:translateZ(18px)}
.bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:12px 0}
button,.btn{font:inherit;border:0;border-radius:14px;padding:9px 15px;background:linear-gradient(135deg,var(--g),var(--g2));color:#fff;cursor:pointer;position:relative;overflow:hidden;text-decoration:none;display:inline-block;transition:transform .15s,filter .15s}
button:hover{filter:brightness(1.08)}button:active{transform:scale(.96)}button.alt,.btn.alt{background:#fff;color:var(--g);border:1px solid #bde0d2}button[disabled]{opacity:.5;cursor:not-allowed}
.rip{position:absolute;border-radius:50%;background:rgba(255,255,255,.55);transform:scale(0);animation:rip .6s ease-out forwards;pointer-events:none}@keyframes rip{to{transform:scale(4);opacity:0}}
input,select,textarea{font:inherit;padding:9px 11px;border-radius:12px;border:1px solid #bde0d2;background:rgba(255,255,255,.85);max-width:100%}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px;perspective:1000px}
.card .ic{font-size:2.6rem;display:inline-block;animation:bob 4s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-6px) rotate(4deg)}}
.card p{margin:.25em 0;color:#456;font-size:.86rem}
.off{opacity:.5;filter:grayscale(.8)}.badge{display:inline-block;padding:2px 10px;border-radius:99px;font-size:.78rem;background:#d5f2e5;color:#08623f}.off .badge{background:#eee;color:#666}
.empty{padding:26px;text-align:center;color:#567}.days label{margin-inline-end:8px;font-size:.85rem;white-space:nowrap}
.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:18px;align-items:center;margin-top:10px}@media(max-width:720px){.hero{grid-template-columns:1fr}}
.scene{position:relative;height:230px;perspective:900px}.chip{position:absolute;width:74px;height:74px;display:grid;place-items:center;font-size:2.1rem;border-radius:22px;
 background:rgba(255,255,255,.6);backdrop-filter:blur(10px);border:1px solid #fff;box-shadow:0 12px 28px rgba(15,122,90,.2)}
.chip>span{display:block;animation:bob 5s ease-in-out infinite}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center}.cal .h{font-size:.75rem;color:#567}
.cal button{padding:8px 0;background:rgba(255,255,255,.7);color:var(--ink);border:1px solid transparent;border-radius:12px;position:relative}
.cal button.sel{background:linear-gradient(135deg,var(--g),var(--g2));color:#fff}.cal button.tod{border-color:var(--g)}
.cal button i{position:absolute;bottom:3px;left:50%;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--g2)}.cal button.sel i{background:#fff}
.banner{background:#fff8e1;border:1px solid #f1d98b;border-radius:16px;padding:10px 14px;margin:10px 0}.live{color:#8a5a00;font-size:.85rem}
dialog{border:0;border-radius:24px;padding:20px;max-width:430px;width:92%;background:rgba(255,255,255,.9);backdrop-filter:blur(20px);box-shadow:0 30px 70px rgba(0,0,0,.25);animation:pop .3s cubic-bezier(.2,.9,.3,1.2)}
dialog::backdrop{background:rgba(15,60,45,.35);backdrop-filter:blur(4px)}@keyframes pop{from{transform:scale(.85) translateY(20px);opacity:0}}
dialog input,dialog select{width:100%;margin:5px 0}table{width:100%;border-collapse:collapse;font-size:.88rem}td,th{padding:7px;border-bottom:1px solid #d4e8df;text-align:right}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.tabs button{background:#fff;color:var(--g);border:1px solid #bde0d2}.tabs button.on{background:linear-gradient(135deg,var(--g),var(--g2));color:#fff}
::view-transition-old(root),::view-transition-new(root){animation-duration:.35s}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

.logo{height:46px;width:auto;display:block}.herologo{max-width:320px;width:100%;height:auto;filter:drop-shadow(0 8px 18px rgba(15,122,90,.2))}
.week{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;perspective:1000px}
.day{background:rgba(255,255,255,.55);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.9);border-radius:20px;padding:12px;box-shadow:0 10px 26px rgba(15,122,90,.12);min-height:150px}
.day.tod{outline:2px solid var(--g2)}.day.hol{background:rgba(255,236,236,.6)}
.dh{display:flex;align-items:baseline;gap:6px;border-bottom:1px solid #d4e8df;padding-bottom:6px;margin-bottom:6px}.dh b{font-size:.95rem}.dh .dn{font-size:1.5rem;font-weight:700;color:var(--g)}.hol .dh .dn{color:#c0392b}.dh small{color:#567}
.oc{font-size:.76rem;margin:3px 0;color:#456}.oc.h{color:#c0392b;font-weight:600}
.sv{display:flex;gap:6px;align-items:center;margin:5px 0;padding:5px 8px;border-radius:12px;background:rgba(255,255,255,.75);font-size:.84rem}.sv .i{font-size:1.2rem}.sv small{display:block;color:#567;font-size:.7rem}
.none{font-size:.78rem;color:#789;margin-top:8px}
