/* =====================================================================
   My Dashboard, Input পেজ, অ্যাপ-লক — নতুন ডিজাইন
   ===================================================================== */

/* ---------- My Dashboard ---------- */
.mm-pd-shell {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.mm-pd {
  display: grid;
  gap: 14px;
}

.mm-pd-hero {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 18px;
  align-items: center;
  padding: 22px;
  border-radius: var(--mm-radius-card, 18px);
  border: 1.5px solid var(--g-border, var(--border));
  background:
    radial-gradient(1200px 300px at -10% -40%, color-mix(in srgb, var(--accent, #FF8243) 26%, transparent), transparent 60%),
    radial-gradient(900px 300px at 110% 140%, color-mix(in srgb, #0B8F87 26%, transparent), transparent 60%),
    var(--g-fill, color-mix(in srgb, var(--surface) 60%, transparent));
  -webkit-backdrop-filter: var(--g-blur, blur(30px));
  backdrop-filter: var(--g-blur, blur(30px));
}

.mm-pd-id {
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 0;
}

.mm-pd-id h2 {
  margin: 0 0 4px;
  font-size: clamp(20px, 3vw, 26px);
  line-height: 1.25;
}

.mm-pd-id p {
  margin: 0 0 8px;
  font-size: 13px;
  color: var(--text2);
}

.mm-pd-id .avatar,
.mm-pd-id [class*="avatar"] {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent, #FF8243) 55%, transparent);
  border-radius: 50%;
}

.mm-chip {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
}

.mm-chip.ok {
  color: #16a34a;
  background: color-mix(in srgb, #16a34a 16%, transparent);
}

.mm-chip.due {
  color: #ef4444;
  background: color-mix(in srgb, #ef4444 16%, transparent);
}

.mm-pd-ring {
  display: flex;
  align-items: center;
  gap: 14px;
  justify-content: flex-end;
}

.mm-pd-ring b {
  display: block;
  font-size: 20px;
}

.mm-pd-ring small {
  display: block;
  font-size: 12px;
  color: var(--text2);
  margin-bottom: 4px;
}

.mm-pd-ring em {
  font-style: normal;
  font-size: 13px;
  font-weight: 800;
}

.mm-pd-ring em.due {
  color: #ef4444;
}

.mm-pd-ring em.ok {
  color: #16a34a;
}

.mm-ring {
  width: 116px;
  height: 116px;
  flex: 0 0 116px;
}

.mm-ring-bg {
  fill: none;
  stroke: color-mix(in srgb, var(--text, #888) 14%, transparent);
  stroke-width: 12;
}

.mm-ring-fg {
  fill: none;
  stroke: url(#mmRingGrad), var(--accent, #FF8243);
  stroke: var(--accent, #FF8243);
  stroke-width: 12;
  stroke-linecap: round;
  transform: rotate(-90deg);
  transform-origin: 64px 64px;
  transition: stroke-dashoffset .6s ease;
}

.mm-ring-v {
  text-anchor: middle;
  font-size: 26px;
  font-weight: 800;
  fill: var(--text);
}

.mm-ring-l {
  text-anchor: middle;
  font-size: 13px;
  fill: var(--text2);
}

.mm-pd-actions {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.mm-pd-month {
  margin-left: auto;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--text2);
}

/* KPI */
.mm-kpi {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
}

/* KPI গ্রিড শুধু ছোট কার্ডগুলো ধরে রাখার জন্য — নিজে যেন আলাদা একটা বড়
   বক্স/বর্ডার হয়ে না যায় (গ্লোবাল glass-card rule সব <section> ধরে ফেলে বলে
   এখানে এসে সেটা ফেরত নিতে হচ্ছে, বেশি specificity দিয়ে) */
html body:not(.show-homepage):not(.show-auth-page) .container section.mm-kpi {
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  padding: 0 !important;
}

.mm-kpi-card {
  padding: 14px;
  border-radius: var(--mm-radius-inner, 14px);
  border: 1px solid var(--g-border, var(--border));
  background: var(--g-fill, color-mix(in srgb, var(--surface) 60%, transparent));
  -webkit-backdrop-filter: var(--g-blur, blur(20px));
  backdrop-filter: var(--g-blur, blur(20px));
  display: flex;
  flex-direction: column;
  gap: 2px;
  position: relative;
  overflow: hidden;
}

.mm-kpi-card::after {
  content: "";
  position: absolute;
  inset: auto -20px -30px auto;
  width: 110px;
  height: 110px;
  border-radius: 50%;
  background: radial-gradient(circle, color-mix(in srgb, currentColor 30%, transparent), transparent 70%);
  pointer-events: none;
}

.mm-kpi-card.a { color: #f59e0b; }
.mm-kpi-card.b { color: #0ea5e9; }
.mm-kpi-card.c { color: #a855f7; }
.mm-kpi-card.d { color: var(--accent, #FF8243); }
.mm-kpi-card.e { color: #16a34a; }
.mm-kpi-card.f { color: #ef4444; }

.mm-kpi-ic {
  width: 34px;
  height: 34px;
  border-radius: 11px;
  display: grid;
  place-items: center;
  font-size: 17px;
  background: color-mix(in srgb, currentColor 16%, transparent);
  margin-bottom: 6px;
}

.mm-kpi-lb {
  font-size: 12.5px;
  color: var(--text2);
}

.mm-kpi-card strong {
  font-size: clamp(18px, 2.4vw, 23px);
  color: var(--text);
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.mm-kpi-card small {
  font-size: 11.5px;
  color: var(--text2);
}

/* গ্রিড */
.mm-pd-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 14px;
}

.mm-pd-wide {
  grid-column: 1 / -1;
}

.mm-pd-card h3 {
  margin: 0 0 12px;
  font-size: 15.5px;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: baseline;
}

.mm-pd-card h3 small {
  font-size: 12px;
  font-weight: 600;
  color: var(--text2);
}

.mm-muted {
  font-size: 13px;
  color: var(--text2);
  line-height: 1.7;
  margin: 0;
}

/* বিলের ভাগ */
.mm-parts {
  display: grid;
  gap: 9px;
}

.mm-part {
  display: grid;
  grid-template-columns: 110px 1fr auto;
  gap: 10px;
  align-items: center;
  font-size: 13px;
}

.mm-part span {
  color: var(--text2);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mm-part i {
  height: 10px;
  border-radius: 99px;
  background: var(--accent, #FF8243);
  min-width: 4px;
}

.mm-part i.a { background: #f59e0b; }
.mm-part i.b { background: #a855f7; }
.mm-part i.c { background: #0ea5e9; }

.mm-part b {
  font-size: 13px;
}

.mm-part.total {
  border-top: 1px dashed var(--border);
  padding-top: 8px;
  font-weight: 800;
}

.mm-part.total span,
.mm-part.total b {
  color: var(--text);
}

/* মিল ক্যালেন্ডার */
.mm-cal {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(38px, 1fr));
  gap: 5px;
}

.mm-cal-day {
  aspect-ratio: 1;
  border-radius: 9px;
  display: grid;
  place-items: center;
  line-height: 1;
  border: 1px solid transparent;
  position: relative;
}

.mm-cal-day b {
  font-size: 10.5px;
  font-weight: 600;
  opacity: .75;
}

.mm-cal-day i {
  font-style: normal;
  font-size: 12px;
  font-weight: 800;
}

.mm-cal-day.lv0 { background: color-mix(in srgb, var(--text, #888) 8%, transparent); color: var(--text2); }
.mm-cal-day.lv1 { background: color-mix(in srgb, #0B8F87 25%, transparent); }
.mm-cal-day.lv2 { background: color-mix(in srgb, #0B8F87 50%, transparent); }
.mm-cal-day.lv3 { background: #0B8F87; color: #fff; }
.mm-cal-day.today { border-color: var(--accent, #FF8243); box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent, #FF8243) 35%, transparent); }

.mm-cal-legend {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 10px;
  font-size: 11.5px;
  color: var(--text2);
}

.mm-cal-legend span {
  width: 14px;
  height: 14px;
  border-radius: 4px;
  display: inline-block;
  margin-left: 8px;
}

.mm-cal-legend .lv0 { background: color-mix(in srgb, var(--text, #888) 8%, transparent); }
.mm-cal-legend .lv1 { background: color-mix(in srgb, #0B8F87 25%, transparent); }
.mm-cal-legend .lv2 { background: color-mix(in srgb, #0B8F87 50%, transparent); }
.mm-cal-legend .lv3 { background: #0B8F87; }

/* ডিউটি + জমা */
.mm-duty {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}

.mm-duty li {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid var(--g-border, var(--border));
  font-size: 13px;
}

.mm-duty span {
  color: var(--text2);
  font-size: 12px;
}

.mm-pay-list {
  display: grid;
  gap: 8px;
}

.mm-pay {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid var(--g-border, var(--border));
}

.mm-pay > div {
  flex: 1;
  min-width: 0;
}

.mm-pay b {
  font-size: 15px;
}

.mm-pay small {
  display: block;
  font-size: 12px;
  color: var(--text2);
}

.mm-pay-ic {
  width: 34px;
  height: 34px;
  border-radius: 11px;
  display: grid;
  place-items: center;
  background: color-mix(in srgb, #16a34a 14%, transparent);
}

.mm-empty-state {
  text-align: center;
  padding: 40px 20px;
}

.mm-empty-state span {
  font-size: 40px;
}

.mm-empty-state h3 {
  margin: 10px 0 6px;
  font-size: 17px;
}

.mm-empty-state p {
  margin: 0 auto;
  max-width: 460px;
  font-size: 13.5px;
  color: var(--text2);
  line-height: 1.7;
}

@media (max-width: 860px) {
  .mm-pd-hero {
    grid-template-columns: 1fr;
    text-align: left;
  }

  .mm-pd-ring {
    justify-content: flex-start;
  }
}

@media (max-width: 520px) {
  .mm-pd-hero {
    padding: 16px;
  }

  .mm-ring {
    width: 92px;
    height: 92px;
    flex-basis: 92px;
  }

  .mm-kpi {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .mm-part {
    grid-template-columns: 84px 1fr auto;
  }

  .mm-pd-actions .btn {
    flex: 1 1 100%;
  }

  .mm-pd-month {
    margin: 0;
    width: 100%;
  }
}

/* ---------- Input পেজ ---------- */
.mm-inp-hero {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
  flex-wrap: wrap;
  padding: 20px 22px;
  margin-bottom: 14px;
  border-radius: var(--mm-radius-card, 18px);
  border: 1.5px solid var(--g-border, var(--border));
  background:
    radial-gradient(900px 260px at 0% -30%, color-mix(in srgb, #0B8F87 26%, transparent), transparent 60%),
    var(--g-fill, color-mix(in srgb, var(--surface) 60%, transparent));
  -webkit-backdrop-filter: var(--g-blur, blur(26px));
  backdrop-filter: var(--g-blur, blur(26px));
}

.mm-inp-hero h2 {
  margin: 0 0 4px;
  font-size: clamp(19px, 2.6vw, 24px);
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px;
}

.mm-inp-hero h2 .mm-inp-month {
  font-size: 12.5px;
  font-weight: 700;
  color: var(--text2);
  background: color-mix(in srgb, var(--surface) 55%, transparent);
  border: 1px solid var(--g-border, var(--border));
  border-radius: 999px;
  padding: 3px 10px;
  white-space: nowrap;
}

.mm-inp-hero p {
  margin: 0 0 12px;
  font-size: 13px;
  color: var(--text2);
  max-width: 520px;
  line-height: 1.7;
}

.mm-inp-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.mm-inp-stat {
  padding: 8px 12px;
  border-radius: 12px;
  border: 1px solid var(--g-border, var(--border));
  background: color-mix(in srgb, var(--surface) 45%, transparent);
}

.mm-inp-stat b {
  display: block;
  font-size: 14.5px;
}

.mm-inp-stat small {
  font-size: 11.5px;
  color: var(--text2);
}

.mm-inp-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.mm-inp-nav button {
  border: 1px solid var(--g-border, var(--border));
  background: color-mix(in srgb, var(--surface) 50%, transparent);
  color: var(--text);
  border-radius: 12px;
  padding: 9px 14px;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.mm-inp-nav button:hover {
  border-color: var(--accent, #FF8243);
  color: var(--accent, #FF8243);
}

.mm-sec-head {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 14px;
}

.mm-sec-head h3 {
  margin: 0;
  font-size: 17px;
}

.mm-sec-head p {
  margin: 2px 0 0;
  font-size: 12.5px;
  color: var(--text2);
}

.mm-sec-ic {
  flex: 0 0 42px;
  height: 42px;
  border-radius: 13px;
  display: grid;
  place-items: center;
  font-size: 20px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--accent, #FF8243) 22%, transparent), color-mix(in srgb, #0B8F87 22%, transparent));
}

.mm-sec .card-title.mm-sec-oldtitle {
  margin-top: 4px;
  opacity: .75;
  font-size: 13px;
}

.mm-form-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 12px !important;
  align-items: end;
}

.mm-field {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
}

.mm-field > span {
  font-size: 12px;
  font-weight: 700;
  color: var(--text2);
}

.mm-field .text-input,
.mm-field .select-input {
  width: 100% !important;
  max-width: none !important;
}

.mm-form-grid .btn {
  min-height: 42px;
}

#tab-input .add-bill-row,
#tab-input .action-row {
  gap: 10px;
}

#tab-input .add-bill-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  align-items: end;
}

@media (max-width: 560px) {
  .mm-inp-hero {
    padding: 16px;
  }

  .mm-inp-nav {
    width: 100%;
  }

  .mm-inp-nav button {
    flex: 1;
  }

  .mm-form-grid,
  #tab-input .add-bill-row {
    grid-template-columns: minmax(0, 1fr);
  }

  .mm-form-grid .btn,
  #tab-input .add-bill-row .btn {
    width: 100%;
  }
}

/* ---------- অ্যাপ লক (Pro) ---------- */
#mmAppLock {
  position: fixed;
  inset: 0;
  z-index: 100005;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(8, 12, 22, .82);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

.mm-lock-card {
  width: min(430px, 100%);
  text-align: center;
  padding: 26px 22px;
  border-radius: 24px;
  background: var(--surface, #151e31);
  border: 1.5px solid var(--border);
  color: var(--text);
}

.mm-lock-ic {
  width: 62px;
  height: 62px;
  margin: 0 auto 12px;
  border-radius: 20px;
  display: grid;
  place-items: center;
  font-size: 30px;
  background: linear-gradient(135deg, #F5A524, #FF8243);
}

.mm-lock-card h2 {
  margin: 0 0 8px;
  font-size: 20px;
}

.mm-lock-card p {
  margin: 0 0 16px;
  font-size: 13.5px;
  line-height: 1.75;
  color: var(--text2);
}

.mm-lock-actions {
  display: grid;
  gap: 8px;
  margin-bottom: 10px;
}

.mm-lock-card small {
  font-size: 12px;
  color: var(--text2);
}

.mm-lock-tag {
  font-size: 10.5px;
  font-weight: 800;
  padding: 1px 6px;
  border-radius: 999px;
  background: color-mix(in srgb, #F5A524 22%, transparent);
  color: #F5A524;
}

/* ---------- My Dashboard: ৪র্থ কার্ড — আমার জরুরি আপডেট ---------- */
.mm-imp {
  display: grid;
  gap: 10px;
}

.mm-imp-alert {
  padding: 9px 12px;
  border-radius: var(--mm-radius-inner, 10px);
  font-size: 12.5px;
  font-weight: 700;
  line-height: 1.5;
  border: 1px solid transparent;
}

.mm-imp-alert.ok {
  color: #16a34a;
  background: color-mix(in srgb, #16a34a 12%, transparent);
  border-color: color-mix(in srgb, #16a34a 30%, transparent);
}

.mm-imp-alert.due {
  color: #ef4444;
  background: color-mix(in srgb, #ef4444 12%, transparent);
  border-color: color-mix(in srgb, #ef4444 32%, transparent);
}

.mm-imp-alert.warn {
  color: #f59e0b;
  background: color-mix(in srgb, #f59e0b 14%, transparent);
  border-color: color-mix(in srgb, #f59e0b 34%, transparent);
}

.mm-imp-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
}

.mm-imp-row {
  display: grid;
  grid-template-columns: 26px 1fr auto;
  align-items: center;
  gap: 8px;
  padding: 9px 2px;
  font-size: 13px;
  border-bottom: 1px dashed var(--g-border, var(--border));
}

.mm-imp-row:last-child {
  border-bottom: 0;
}

.mm-imp-ic {
  font-size: 15px;
  text-align: center;
}

.mm-imp-lb {
  color: var(--text2);
}

.mm-imp-row b {
  color: var(--text);
  font-size: 13px;
  text-align: right;
  overflow-wrap: anywhere;
}

.mm-imp-row b.due { color: #ef4444; }
.mm-imp-row b.ok { color: #16a34a; }
