.pt-container{
  --pt-accent:#9B59B6;--pt-bg:#F8F9FA;--pt-card:#fff;--pt-text:#2D3436;--pt-muted:#636E72;--pt-line:#DFE6E9;--pt-input:#fff;
  --pt-period:#E8384F;--pt-ovul:#00A38C;--pt-pms:#F08A00;--pt-fertile:#B2DFDB;--pt-fertile-text:#00695C;--pt-shadow:0 4px 20px rgba(0,0,0,.08);
  --pt-accent-soft:#F1E6F6;
  font-family:"Vazirmatn","Tahoma",sans-serif;direction:rtl;max-width:900px;margin:0 auto;padding:20px;background:var(--pt-bg);
  border-radius:24px;color:var(--pt-text);box-sizing:border-box;line-height:1.7;text-align:right
}
@supports (background:color-mix(in srgb,red,blue)){.pt-container{--pt-accent-soft:color-mix(in srgb,var(--pt-accent) 14%,var(--pt-card))}}
.pt-container.pt-font-theme{font-family:inherit}
.pt-container[data-theme="dark"]{--pt-bg:#1A1A2E;--pt-card:#16213E;--pt-text:#EAEAEA;--pt-muted:#A9B1C3;--pt-line:#2B3A5E;--pt-input:#0F3460;--pt-fertile:#1F5F5B;--pt-fertile-text:#B2F0E8;--pt-shadow:0 4px 20px rgba(0,0,0,.35)}
@media(prefers-color-scheme:dark){.pt-container[data-theme="auto"]{--pt-bg:#1A1A2E;--pt-card:#16213E;--pt-text:#EAEAEA;--pt-muted:#A9B1C3;--pt-line:#2B3A5E;--pt-input:#0F3460;--pt-fertile:#1F5F5B;--pt-fertile-text:#B2F0E8;--pt-shadow:0 4px 20px rgba(0,0,0,.35)}}
.pt-container *{box-sizing:border-box}
.pt-container h2,.pt-container h3,.pt-container h4,.pt-container p{margin:0;color:inherit}
.pt-container button,.pt-container select{font-family:inherit}

.pt-header{text-align:center;margin-bottom:22px}
.pt-header h2{font-size:28px;font-weight:800;color:var(--pt-accent);margin-bottom:6px}
.pt-header p{color:var(--pt-muted);font-size:15px}
.pt-notice{min-height:0;text-align:center;font-size:14px;border-radius:12px;margin-bottom:12px}
.pt-notice.pt-n-ok,.pt-notice.pt-n-err,.pt-notice.pt-n-info{padding:10px 14px}
.pt-notice.pt-n-ok{background:#E6F7EE;color:#136C3B}
.pt-notice.pt-n-err{background:#FDE8EA;color:#B3202F}
.pt-notice.pt-n-info{background:var(--pt-accent-soft);color:var(--pt-text)}

.pt-card{background:var(--pt-card);border-radius:20px;padding:22px;box-shadow:var(--pt-shadow);margin-bottom:20px}
.pt-sec-title{font-size:18px;font-weight:700;margin-bottom:14px}
.pt-muted{color:var(--pt-muted)}
.pt-hint{font-size:13px;color:var(--pt-muted);margin-top:10px;text-align:center}

/* فرم‌ها */
.pt-field{margin-bottom:18px}
.pt-field>label{display:block;font-size:14px;font-weight:600;margin-bottom:8px}
.pt-settings h3{font-size:18px;margin-bottom:18px}
.pt-picker{display:grid;grid-template-columns:.8fr 1.4fr 1fr;gap:8px}
.pt-container select{width:100%;padding:11px 8px;border:2px solid var(--pt-line);border-radius:12px;font-size:15px;text-align:center;background:var(--pt-input);color:var(--pt-text);cursor:pointer}
.pt-container select:focus{outline:none;border-color:var(--pt-accent)}
.pt-stepper{display:flex;align-items:center;justify-content:center;gap:18px}
.pt-container .pt-step{width:42px;height:42px;border-radius:50%;border:2px solid var(--pt-line);background:var(--pt-input);color:var(--pt-text);font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:1;transition:.2s}
.pt-container .pt-step:hover{border-color:var(--pt-accent);color:var(--pt-accent);transform:scale(1.08)}
.pt-step-val{font-size:22px;font-weight:700;min-width:44px;text-align:center;color:var(--pt-accent)}
.pt-check{display:flex;gap:8px;align-items:center;font-size:14px;margin:6px 0 4px;cursor:pointer}
.pt-check input{accent-color:var(--pt-accent);width:18px;height:18px}

.pt-container .pt-btn-primary{width:100%;padding:14px;background:var(--pt-accent);color:#fff;border:none;border-radius:14px;font-size:16px;font-weight:700;cursor:pointer;transition:.25s;margin-top:10px}
.pt-container .pt-btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.2);filter:brightness(1.05)}
.pt-container .pt-btn-primary:disabled{opacity:.55;cursor:default}
.pt-container .pt-btn-secondary{padding:10px 16px;background:transparent;color:var(--pt-accent);border:2px solid var(--pt-accent);border-radius:12px;font-size:14px;font-weight:600;cursor:pointer;transition:.2s;display:inline-block}
.pt-container .pt-btn-secondary:hover{background:var(--pt-accent);color:#fff}
.pt-container .pt-btn-danger{padding:10px 16px;background:transparent;color:var(--pt-period);border:2px solid var(--pt-period);border-radius:12px;font-size:14px;font-weight:600;cursor:pointer;transition:.2s}
.pt-container .pt-btn-danger:hover{background:var(--pt-period);color:#fff}
.pt-btn-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.pt-container button:focus-visible,.pt-container summary:focus-visible,.pt-container .pt-day:focus-visible{outline:3px solid var(--pt-accent);outline-offset:2px}

/* داشبورد */
.pt-main-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:24px;align-items:start}
.pt-ring-col{display:flex;flex-direction:column;align-items:center}
.pt-ring-wrap{position:relative;width:220px;height:220px}
.pt-ring{width:100%;height:100%;display:block}
.pt-track{fill:none;stroke:var(--pt-line);stroke-width:12}
.pt-arc{fill:none;stroke-width:12}
.pt-a-period{stroke:var(--pt-period)}.pt-a-fertile{stroke:#6FCFC0}.pt-a-ovulation{stroke:var(--pt-ovul)}.pt-a-pms{stroke:var(--pt-pms)}
.pt-marker{fill:var(--pt-card);stroke:var(--pt-accent);stroke-width:4}
.pt-ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.pt-ring-day{font-size:48px;font-weight:800;color:var(--pt-accent);line-height:1}
.pt-ring-label{font-size:14px;color:var(--pt-muted);margin-top:4px}
.pt-badge{font-size:13px;font-weight:700;margin-top:8px;padding:4px 14px;border-radius:20px}
.pt-ph-period{background:#FFD9DD;color:#B3202F}
.pt-ph-ovulation{background:#C5EEE7;color:#00695C}
.pt-ph-fertile{background:#D9F2EE;color:#00695C}
.pt-ph-pms{background:#FFE5BF;color:#A04A00}
.pt-ph-follicular{background:#DCEBFA;color:#0F5EA8}
.pt-ph-luteal{background:#E9E1F7;color:#5B3FA0}
.pt-today{margin-top:14px;text-align:center;font-size:14px;color:var(--pt-muted);display:flex;flex-direction:column;gap:2px}
.pt-today strong{color:var(--pt-text);font-size:15px}
.pt-chance b{color:var(--pt-text)}
.pt-preds{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.pt-pred{background:var(--pt-card);border-radius:16px;padding:14px 10px;text-align:center;border:1px solid var(--pt-line);border-top:4px solid var(--pt-accent)}
.pt-pred.period{border-top-color:var(--pt-period)}.pt-pred.ovulation{border-top-color:var(--pt-ovul)}.pt-pred.fertile{border-top-color:#6FCFC0}.pt-pred.pms{border-top-color:var(--pt-pms)}
.pt-pred-icon{font-size:26px}
.pt-pred-label{font-size:13px;color:var(--pt-muted)}
.pt-pred-date{font-size:15px;font-weight:700;margin-top:2px}
.pt-pred-days{font-size:13px;color:var(--pt-muted)}
.pt-late{margin-top:16px;padding:12px 14px;background:#FFF4E0;color:#7A4A00;border-radius:12px;font-size:13.5px}
.pt-tip{margin-top:14px;padding:12px 14px;background:var(--pt-accent-soft);border-radius:12px;font-size:13.5px}

/* تقویم */
.pt-cal-section{margin-bottom:20px}
.pt-cal-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:6px}
.pt-cal-head .pt-sec-title{margin:0}
.pt-nav{display:flex;gap:6px}
.pt-container .pt-nav button{padding:7px 12px;border-radius:10px;border:2px solid var(--pt-line);background:var(--pt-card);color:var(--pt-text);font-size:13px;cursor:pointer}
.pt-container .pt-nav button:hover{border-color:var(--pt-accent);color:var(--pt-accent)}
.pt-legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px;color:var(--pt-muted);margin-bottom:12px}
.pt-legend span{display:flex;align-items:center;gap:5px}
.pt-dot{width:13px;height:13px;border-radius:50%;display:inline-block}
.pt-dot.pt-c-period{background:var(--pt-period)}
.pt-dot.pt-c-pred{background:transparent;border:2px dashed var(--pt-period)}
.pt-dot.pt-c-ovulation{background:var(--pt-ovul)}.pt-dot.pt-c-fertile{background:var(--pt-fertile)}.pt-dot.pt-c-pms{background:var(--pt-pms)}
.pt-cals{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:16px}
.pt-month{background:var(--pt-card);border-radius:16px;padding:14px;box-shadow:var(--pt-shadow)}
.pt-month h4{text-align:center;font-size:16px;margin-bottom:10px}
.pt-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.pt-wd{text-align:center;font-size:12px;font-weight:600;color:var(--pt-muted);padding:4px 0}
.pt-container .pt-day{aspect-ratio:1;min-height:34px;display:flex;align-items:center;justify-content:center;font-size:13px;border-radius:10px;border:2px solid transparent;background:transparent;color:var(--pt-text);cursor:pointer;padding:0;position:relative;transition:transform .15s}
.pt-container .pt-day:hover{transform:scale(1.12)}
.pt-container .pt-day.pt-c-period{background:var(--pt-period);color:#fff;font-weight:700}
.pt-container .pt-day.pt-c-period.pt-c-pred{background:transparent;color:var(--pt-period);border:2px dashed var(--pt-period)}
.pt-container .pt-day.pt-c-ovulation{background:var(--pt-ovul);color:#fff;font-weight:700}
.pt-container .pt-day.pt-c-fertile{background:var(--pt-fertile);color:var(--pt-fertile-text)}
.pt-container .pt-day.pt-c-pms{background:var(--pt-pms);color:#fff;font-weight:700}
.pt-container .pt-day.pt-start::after{content:"";position:absolute;bottom:3px;width:5px;height:5px;border-radius:50%;background:#fff}
.pt-container .pt-day.pt-today-cell{border-color:var(--pt-accent);font-weight:800}
.pt-container .pt-day.pt-sel{box-shadow:0 0 0 3px var(--pt-accent-soft),0 0 0 5px var(--pt-accent)}
.pt-empty{visibility:hidden}
.pt-detail{margin-top:14px;padding:14px;background:var(--pt-card);border-radius:14px;box-shadow:var(--pt-shadow);text-align:center}
.pt-detail p{font-size:14px;color:var(--pt-muted);margin:6px 0 12px}

/* سوابق و تنظیمات */
.pt-history{list-style:none;margin:0;padding:0}
.pt-history li{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--pt-line);font-size:14px}
.pt-history li span:first-child{flex:1}
.pt-history .pt-muted{font-size:12.5px}
.pt-container .pt-x{border:none;background:transparent;color:var(--pt-muted);cursor:pointer;font-size:16px;padding:4px 8px;border-radius:8px}
.pt-container .pt-x:hover{background:#FDE8EA;color:#B3202F}
.pt-add{margin-top:14px}
.pt-add summary,.pt-more summary{cursor:pointer;font-weight:700;font-size:15px;color:var(--pt-accent)}
.pt-add-body{margin-top:12px;display:flex;flex-direction:column;gap:10px}
.pt-more summary{color:var(--pt-text)}
.pt-more-body{margin-top:16px}
.pt-disclaimer{font-size:12.5px;color:var(--pt-muted);text-align:center;margin-top:8px}

.pt-animate{animation:pt-fade .5s ease-out}
@keyframes pt-fade{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.pt-animate{animation:none}.pt-container *{transition:none!important}}
@media(max-width:700px){
  .pt-container{padding:14px;border-radius:18px}
  .pt-main-grid{grid-template-columns:1fr}
  .pt-card{padding:16px}
}
.pt-cal-section>.pt-hint{margin:14px 0 6px}

/* پیام‌ها همیشه در دید کاربر باشند */
.pt-notice.pt-n-ok,.pt-notice.pt-n-err,.pt-notice.pt-n-info{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:99999;max-width:min(92vw,420px);box-shadow:0 8px 30px rgba(0,0,0,.25);font-weight:600}
