body{
      background:
        radial-gradient(circle at 11% -8%,rgba(126,111,241,.105),transparent 30%),
        radial-gradient(circle at 94% 4%,rgba(59,178,154,.06),transparent 26%),
        linear-gradient(180deg,#f5f7fc 0%,#f1f4fa 100%);
    }
    .hero{
      background:
        radial-gradient(circle at 86% 22%,rgba(144,128,255,.20),transparent 24%),
        linear-gradient(132deg,#11182a 0%,#202845 54%,#35335d 100%);
      border:1px solid rgba(255,255,255,.08);
    }
    .brand-mark{
      background:linear-gradient(145deg,#938cff,#5f5ce2);
      box-shadow:inset 0 1px 0 rgba(255,255,255,.32),0 12px 28px rgba(91,92,226,.32);
    }
    .hero-actions .btn-dark{background:rgba(255,255,255,.085);border-color:rgba(255,255,255,.13)}
    .planbar,.panel,.metric{border-color:rgba(219,224,235,.96);box-shadow:var(--shadow)}
    .panel-head{background:linear-gradient(180deg,#fff 0%,#fbfcff 100%)}
    .plan-tab{transition:background .15s,border-color .15s,color .15s,transform .15s,box-shadow .15s}
    .plan-tab:hover{transform:translateY(-1px)}
    .plan-tab.active{
      color:var(--primary-deep);
      background:linear-gradient(180deg,#f5f4ff,#ececff);
      border-color:#d7d5ff;
      box-shadow:0 6px 16px rgba(91,92,226,.095);
    }
    .metric{background:linear-gradient(145deg,rgba(255,255,255,.99),rgba(249,250,254,.95))}
    .metric-value{letter-spacing:-.35px}
    .course-card{
      border-color:#e3e6ef;
      background:linear-gradient(145deg,#fff,#fbfcff);
      transition:border-color .15s,box-shadow .15s,transform .15s;
    }
    .course-card:hover{transform:translateY(-1px);border-color:#d6dbe7;box-shadow:0 9px 22px rgba(28,35,59,.075)}
    .course-block{
      border:1px solid rgba(255,255,255,.38);
      box-shadow:0 10px 24px rgba(32,38,63,.17),inset 0 1px 0 rgba(255,255,255,.17);
    }
    .course-block:hover{filter:saturate(1.05) brightness(1.015)}
    .filter{transition:.14s ease}
    .filter:hover{border-color:#d1d4f5;color:#4b4bb9;background:#fbfbff}
    .filter.active{
      background:linear-gradient(180deg,#f3f2ff,#ececff);
      border-color:#d8d5ff;color:var(--primary-deep);
      box-shadow:0 3px 10px rgba(91,92,226,.07);
    }
    input,select,textarea{background:#fff;border-color:#dce1ea}
    input:hover,select:hover,textarea:hover{border-color:#ccd2df}
    input:focus,select:focus,textarea:focus{border-color:#9993f4;box-shadow:0 0 0 3px rgba(123,114,241,.10)}
    .modal{border-radius:26px;box-shadow:0 36px 105px rgba(10,15,29,.30)}
    .section{border-color:#e2e5ed;background:linear-gradient(180deg,#fff,#fdfdff)}

    /* Unified in-app dialog system */
    .app-dialog-backdrop{
      position:fixed;inset:0;display:none;align-items:center;justify-content:center;
      z-index:1700;background:rgba(12,17,31,.53);backdrop-filter:blur(7px);padding:16px
    }
    .app-dialog-backdrop.open{display:flex}
    .app-dialog{
      width:min(470px,100%);background:#fff;border:1px solid rgba(255,255,255,.82);
      border-radius:23px;box-shadow:0 34px 100px rgba(10,15,29,.31);overflow:hidden;
      animation:dialogIn .16s ease-out
    }
    @keyframes dialogIn{
      from{opacity:0;transform:translateY(8px) scale(.985)}
      to{opacity:1;transform:translateY(0) scale(1)}
    }
    .app-dialog-head{padding:18px 18px 12px;display:flex;align-items:flex-start;gap:12px}
    .app-dialog-icon{
      width:43px;height:43px;border-radius:14px;display:grid;place-items:center;flex:0 0 auto;
      background:var(--primary-soft);color:var(--primary-deep);font-size:18px;font-weight:900
    }
    .app-dialog.warning .app-dialog-icon{background:var(--warning-soft);color:var(--warning)}
    .app-dialog.danger .app-dialog-icon{background:var(--danger-soft);color:var(--danger)}
    .app-dialog.success .app-dialog-icon{background:var(--success-soft);color:var(--success)}
    .app-dialog-copy{min-width:0;flex:1}
    .app-dialog h3{margin:1px 0 5px;font-size:15.5px;line-height:1.55}
    .app-dialog p{margin:0;color:var(--muted);font-size:10.5px;line-height:1.9;white-space:pre-line}
    .app-dialog-body{padding:0 18px 15px}
    .app-dialog-input{width:100%;margin-top:4px;min-height:44px;border-radius:11px}
    .app-dialog-error{
      display:none;margin-top:8px;padding:8px 10px;border-radius:10px;
      background:var(--danger-soft);border:1px solid #ffd8dc;color:#a33843;
      font-size:9.5px;line-height:1.7
    }
    .app-dialog-error.show{display:block}
    .app-dialog-target{
      margin-top:8px;padding:9px 10px;border-radius:11px;background:#f7f8fc;border:1px solid var(--line);
      color:#3b4254;font-size:10.5px;font-weight:900;overflow-wrap:anywhere
    }
    .app-dialog-actions{
      display:flex;gap:7px;justify-content:flex-start;padding:12px 18px 16px;
      border-top:1px solid var(--line);background:linear-gradient(180deg,#fff,#fcfcff)
    }
    .toast{
      background:rgba(28,34,53,.97);border:1px solid rgba(255,255,255,.07);
      backdrop-filter:blur(8px);box-shadow:0 18px 42px rgba(11,15,28,.24);border-radius:13px
    }
    @media(max-width:760px){
      .app-dialog{width:min(440px,100%)}
      .app-dialog-actions .btn{flex:1}
    }


    /* ===== v6: Persian (Jalali) exam date input ===== */
    .jalali-date-wrap{
      display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:6px;align-items:center
    }
    .jalali-date{
      direction:ltr;text-align:center;font-variant-numeric:tabular-nums;letter-spacing:.25px
    }
    .jalali-date::placeholder{color:#adb3c0}
    .calendar-trigger{
      width:40px;height:40px;padding:0;border:1px solid #dce1ea;border-radius:10px;
      background:linear-gradient(180deg,#fff,#f8f9fd);color:var(--primary-deep);
      display:grid;place-items:center;box-shadow:none;font-size:15px
    }
    .calendar-trigger:hover{background:var(--primary-soft);border-color:#d5d3ff}
    .jalali-hint{font-size:8.7px;color:#9ba1b0;line-height:1.6;margin-top:2px}
    .jalali-hint.error{color:var(--danger);font-weight:800}

    .jalali-backdrop{
      position:fixed;inset:0;display:none;align-items:center;justify-content:center;
      z-index:1800;background:rgba(12,17,31,.50);backdrop-filter:blur(7px);padding:16px
    }
    .jalali-backdrop.open{display:flex}
    .jalali-picker{
      width:min(390px,100%);background:#fff;border:1px solid rgba(255,255,255,.85);
      border-radius:23px;box-shadow:0 34px 100px rgba(10,15,29,.30);overflow:hidden;
      animation:dialogIn .16s ease-out
    }
    .jalali-picker-head{
      display:flex;align-items:center;justify-content:space-between;gap:8px;
      padding:14px 14px 11px;border-bottom:1px solid var(--line);
      background:linear-gradient(180deg,#fff,#fbfcff)
    }
