/* Production contrast and readability layer. Keeps each panel's accent identity. */
:root{
  --text:#f5f8fc;
  --muted:#b6c2d3;
  --border:#334158;
  --bar-muted:#46556b;
}
html,body{width:100%;max-width:100%;overflow-x:hidden}
body{color:var(--text)}
.public-menu-toggle,.public-mobile-menu{display:none!important}
.planitor-category-nav{width:100%;min-height:48px;margin:7px 0;justify-content:flex-start;text-align:right}
.public-main p,.public-main small,.public-main li,
.dashboard-content p,.dashboard-content small,.dashboard-content label,
.collection-card p,.item-copy small,.stat>small,.card>p,
.sidebar small,.topbar small,.bottom-note,.empty p,.mini-empty p,
.auth-benefits span,.auth-steps,.auth-demo{color:var(--muted)!important;opacity:1!important}
.hero h1,.hero h1 span,.hero h1 strong{color:#f7f9fd!important;opacity:1!important;text-shadow:0 5px 32px rgba(0,0,0,.22)}
.hero h1 em,.hero h1 .accent,.hero .accent{color:var(--accent)!important;opacity:1!important}
.hero>p,.public-title p{color:#c3cddd!important;opacity:1!important}
.eyebrow,.pill,.hero-proof,.profile,.stat,.card,.collection-card,.price-card{opacity:1!important}
.pill{color:#cbd5e1;border-color:#3b4a61;background:#151f30}
.btn.secondary,.btn.ghost,.toolbar button,.tabs button{color:#e8edf5;border-color:#3b4a61}
.field label,label.field,.modal label{color:#e7ecf4}
input::placeholder,textarea::placeholder{color:#8796aa!important;opacity:1}
.item-row .btn,.category-chip button{opacity:1}
[aria-disabled=true],button:disabled,input:disabled,select:disabled{opacity:.66!important}
[data-theme=light]{--text:#172235;--muted:#536176;--border:#cfd7e3;--bar-muted:#c1cad8}
[data-theme=light] .hero h1,[data-theme=light] .hero h1 span,[data-theme=light] .hero h1 strong{color:#172235!important;text-shadow:none}
[data-theme=light] .hero>p,[data-theme=light] .public-title p{color:#4d5d73!important}
[data-theme=light] .pill{color:#334155;border-color:#cbd5e1;background:#f8fafc}
[data-theme=light] .btn.secondary,[data-theme=light] .btn.ghost,[data-theme=light] .toolbar button,[data-theme=light] .tabs button{color:var(--text);border-color:var(--border)}
[data-theme=light] .field label,[data-theme=light] label.field,[data-theme=light] .modal label{color:var(--text)}
[data-theme=light] input::placeholder,[data-theme=light] textarea::placeholder{color:var(--muted)!important}
@media(max-width:600px){
  .public-header{width:100%;gap:8px;padding-inline:12px}
  .public-header>.brand{flex:0 0 44px;min-width:44px}
  .public-header>.flex{min-width:0;gap:4px}
  .public-header .btn{padding-inline:8px}
  .public-main,.public-main>*{max-width:100%}
  .public-footer,.footer-grid{width:100%;max-width:100%;min-width:0}
  .footer-grid>*{min-width:0;overflow-wrap:anywhere}
  .hero h1{line-height:1.55;letter-spacing:-.035em}
  .hero>p{font-size:14px;line-height:2}
  .public-main p,.dashboard-content p{line-height:1.85}
}

/* Persian date controls keep ISO values for APIs while presenting the Iran calendar. */
.planitor-date-storage{position:absolute!important;inline-size:1px!important;block-size:1px!important;margin:-1px!important;padding:0!important;clip-path:inset(50%)!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
.planitor-persian-picker{display:grid;grid-template-columns:minmax(7.5rem,1.15fr) minmax(7rem,1fr) minmax(5.5rem,.75fr);gap:8px;width:100%;min-width:0}
.planitor-persian-picker select{width:100%;min-width:0;min-height:46px}
.planitor-persian-picker select:disabled{cursor:not-allowed}
.persian-date-hint{display:block;margin-top:6px;color:var(--muted)!important;font-size:.78rem!important;line-height:1.7}
@media(max-width:390px){.planitor-persian-picker{grid-template-columns:1fr}.planitor-persian-picker select{min-height:48px}}
@media(max-width:850px){
  .public-header>.public-menu-toggle{display:inline-flex!important;order:4;min-width:54px}
  .public-mobile-menu{position:fixed;z-index:49;top:88px;right:9px;left:9px;max-height:calc(100dvh - 106px);overflow:auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px;border:1px solid var(--border-strong);border-radius:20px;background:color-mix(in srgb,var(--sidebar) 97%,transparent);box-shadow:0 24px 75px rgba(0,4,14,.62);backdrop-filter:blur(18px) saturate(1.2)}
  .public-mobile-menu.open{display:grid!important}
  .public-mobile-menu a{display:flex;align-items:center;min-height:48px;padding:10px 14px;border:1px solid transparent;border-radius:13px;color:var(--text);font-size:.9rem;font-weight:700}
  .public-mobile-menu a:hover,.public-mobile-menu a:focus-visible{border-color:var(--border);background:var(--card)}
}
@media(max-width:390px){.public-mobile-menu{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.pln-initial-loader,.pln-load-error{min-height:100dvh;display:grid;place-content:center;justify-items:center;gap:14px;text-align:center;background:radial-gradient(circle at 50% 38%,rgba(102,231,193,.12),transparent 34%),#0d1420;color:#f7fafc;padding:24px}
.pln-initial-loader strong,.pln-load-error strong{font-size:22px;letter-spacing:-.03em}
.pln-initial-loader span,.pln-load-error span{color:#bac6d7;font-size:14px}
.pln-loader-mark{position:relative;width:78px;height:70px;filter:drop-shadow(0 14px 24px rgba(68,208,169,.18))}
.pln-loader-mark i{position:absolute;inset:auto 0;height:15px;border-radius:12px 12px 4px 12px;transform:skewY(29deg);animation:pln-loader 1.35s ease-in-out infinite}
.pln-loader-mark i:nth-child(1){top:5px;background:#8b5cf6;animation-delay:-.28s}
.pln-loader-mark i:nth-child(2){top:26px;background:#3b82f6;animation-delay:-.14s}
.pln-loader-mark i:nth-child(3){top:47px;background:#5ee0b3}
.pln-load-error button{min-height:44px;border:0;border-radius:13px;background:#79e4bf;color:#10231d;font:inherit;font-weight:800;padding:0 22px;cursor:pointer}
.pln-privacy-card{margin-top:18px}.pln-privacy-card hr{border:0;border-top:1px solid var(--border);margin:22px 0}.pln-danger{background:#b42318!important;color:#fff!important}
.nav-label,.bottom-note,.sidebar small{color:#bac5d4!important;opacity:1!important;font-size:12px!important}
input::placeholder,textarea::placeholder{color:#9eacbf!important;opacity:1!important}
.timer-digits span{opacity:1!important;color:#c9d4e2!important}
.habit-row>button:disabled{opacity:.68!important;border-color:#3c4b61!important;background:#172236!important}
.pln-line-chart text,.pln-score-ring span,.pln-disclaimer,.pln-chart-empty{fill:#b7c2d3!important;color:#b7c2d3!important;opacity:1!important;font-size:12px!important}
.is-disabled{opacity:.7!important}.pln-sidebar__footer{color:#b8c3d3!important}
@keyframes pln-loader{0%,100%{transform:translateY(0) skewY(29deg);opacity:.72}50%{transform:translateY(-7px) skewY(29deg);opacity:1}}
@media(prefers-reduced-motion:reduce){.pln-loader-mark i{animation:none!important}}

/* Live account surfaces: all values and actions come from authenticated APIs. */
.planitor-account-runtime{display:grid;gap:18px;max-width:980px}
.planitor-account-runtime h2,.planitor-account-runtime h3{margin:0;color:var(--text)}
.planitor-account-runtime .between{align-items:flex-start}
.planitor-account-loading{display:grid;gap:12px}
.planitor-account-loading .skeleton{display:block;height:62px;border-radius:14px}
.planitor-account-list{display:grid;gap:10px}
.planitor-account-list .item-row{min-height:74px;border:1px solid var(--border);border-radius:15px;padding:12px 14px;background:rgba(15,23,38,.42)}
.planitor-account-list .item-row.is-read{border-style:dashed}.planitor-account-list .item-row.is-read strong{color:var(--muted)}
.planitor-account-list .item-row.is-current{border-color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}
.planitor-account-list .item-copy{display:grid;gap:3px;min-width:0}.planitor-account-list .item-copy span{overflow-wrap:anywhere;color:var(--muted)}
.planitor-row-actions,.planitor-security-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.planitor-live-form{display:grid;gap:14px;max-width:620px}.planitor-live-form .field{display:grid;gap:8px}
.planitor-live-status{min-height:24px;margin:0!important;font-weight:700}.planitor-live-status:empty{display:none}
.planitor-live-status.is-success{color:#76e5bc!important}.planitor-live-status.is-error{color:#fda4af!important}.planitor-live-status.is-info{color:#bfdbfe!important}
.planitor-security-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--border);border-radius:14px;padding:14px 16px}.planitor-security-summary span{color:var(--muted);overflow-wrap:anywhere}
.planitor-privacy-tools{display:grid;gap:12px;border-top:1px solid var(--border);padding-top:18px}
.planitor-delete-account{border:1px solid color-mix(in srgb,#ef4444 45%,var(--border));border-radius:14px;padding:13px 15px}.planitor-delete-account summary{cursor:pointer;color:#fecaca;font-weight:800;min-height:44px;display:flex;align-items:center}
.planitor-delete-form{display:grid;gap:10px;padding-top:12px}.planitor-delete-form input{min-height:46px}
.planitor-entitlement-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.planitor-entitlement{display:grid;gap:7px;border:1px solid var(--border);border-radius:15px;padding:16px;background:rgba(15,23,38,.42)}
.planitor-entitlement span{color:var(--text);font-weight:800}.planitor-entitlement small{color:var(--muted)}
.planitor-entitlement.is-active{border-color:#58d6ac;background:rgba(38,151,116,.12)}.planitor-entitlement.is-active span{color:#86efc4}
.planitor-live-plans{display:grid;gap:9px}.planitor-live-plan{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--border);border-radius:14px;padding:12px 14px}.planitor-live-plan>span{display:grid;gap:4px}.planitor-live-plan small{color:var(--muted)}
.pln-sidebar-logout{width:100%;min-height:44px;justify-content:center;color:#fecaca!important;border-color:rgba(248,113,113,.35)!important;background:rgba(127,29,29,.18)!important}
[data-theme=light] .planitor-account-list .item-row,[data-theme=light] .planitor-entitlement{background:#f8fafc}
[data-theme=light] .planitor-live-status.is-success{color:#047857!important}[data-theme=light] .planitor-live-status.is-error{color:#b91c1c!important}[data-theme=light] .planitor-live-status.is-info{color:#1d4ed8!important}
@media(max-width:680px){
  .planitor-account-runtime{padding:15px!important;gap:15px}
  .planitor-entitlement-grid{grid-template-columns:1fr}
  .planitor-live-plan,.planitor-account-list .item-row,.planitor-security-summary{align-items:flex-start;flex-direction:column}
  .planitor-row-actions,.planitor-security-actions{width:100%}.planitor-row-actions .btn,.planitor-security-actions .btn{min-height:44px;flex:1 1 auto}
}

.planitor-finance-runtime{display:grid;gap:18px}.planitor-finance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.planitor-finance-card{min-width:0}.planitor-finance-card>.between{align-items:flex-start;gap:14px}.planitor-finance-card h3{margin:0 0 9px}.planitor-finance-card small{display:block;margin-top:6px;color:var(--muted)}
.planitor-finance-card.is-over-budget{border-color:rgba(251,113,133,.6)}.planitor-budget-warning,.planitor-budget-near-limit{margin:12px 0 0;padding:10px 12px;border-radius:12px;line-height:1.8;font-weight:700;overflow-wrap:anywhere}.planitor-budget-warning{color:#ffe4e6;background:rgba(225,29,72,.16);border:1px solid rgba(251,113,133,.35)}.planitor-budget-near-limit{color:#fef3c7;background:rgba(245,158,11,.13);border:1px solid rgba(251,191,36,.3)}[data-theme=light] .planitor-budget-warning{color:#9f1239;background:#fff1f2}[data-theme=light] .planitor-budget-near-limit{color:#92400e;background:#fffbeb}
.planitor-money{display:block;color:#b9dcff;font-size:18px;overflow-wrap:anywhere}.planitor-live-dialog{width:min(560px,calc(100vw - 24px));max-height:min(86dvh,760px);overflow:auto;border:1px solid var(--border);border-radius:22px;background:#111a2b;color:var(--text);padding:20px;box-shadow:0 28px 90px rgba(0,0,0,.55)}
.planitor-live-dialog::backdrop{background:rgba(2,6,23,.74);backdrop-filter:blur(5px)}.planitor-live-dialog .planitor-live-form{max-width:none}.planitor-live-dialog select,.planitor-live-dialog input,.planitor-live-dialog textarea{width:100%}
[data-theme=light] .planitor-live-dialog{background:#fff}[data-theme=light] .planitor-money{color:#075985}

/* Follow the active theme on secondary navigation and text-only growth boards. */
[data-theme=light] .sidebar nav a,[data-theme=light] .sidebar-bottom>a{color:var(--muted-strong)!important}
[data-theme=light] .sidebar nav a.active,[data-theme=light] .sidebar .brand{color:var(--text-strong)!important}
[data-theme=light] .sidebar small,[data-theme=light] .sidebar .nav-label{color:var(--muted)!important}
[data-theme=light] .gp-vision-filter select,[data-theme=light] .gp-daily input,[data-theme=light] .gp-daily select{background:var(--input)!important;color:var(--text)!important}
[data-theme=light] .gp-area-tabs button:not(.active){background:var(--card)!important;color:var(--text)!important}
[data-theme=light] .gp-vision .btn.ghost{color:var(--muted-strong)!important}
@media(max-width:720px){.planitor-finance-grid{grid-template-columns:1fr}.planitor-finance-card>.between{flex-direction:column}.planitor-finance-card .planitor-row-actions{width:100%}.planitor-finance-card .planitor-row-actions .btn{flex:1 1 44%}.planitor-live-dialog{padding:15px;border-radius:18px}}

/* Unified release layout integrity: keep neighboring objects aligned and shrink-safe. */
.stats,.dashboard-grid,.collection-grid,.content-grid,.pricing-grid,.form-grid,.calendar-grid,.side-column,.planitor-finance-grid,.planitor-entitlement-grid{width:100%;min-width:0;align-items:stretch}
.stats>*,.dashboard-grid>*,.collection-grid>*,.content-grid>*,.pricing-grid>*,.form-grid>*,.calendar-grid>*,.side-column>*,.planitor-finance-grid>*,.planitor-entitlement-grid>*{min-width:0;max-width:100%}
.stats,.pricing-grid,.planitor-entitlement-grid{grid-auto-rows:1fr}
.collection-grid,.content-grid,.planitor-finance-grid{grid-auto-rows:auto}
.stats>.card,.collection-grid>.card,.content-grid>.card,.pricing-grid>.card,.planitor-finance-grid>.card,.planitor-entitlement-grid>.card{width:100%;height:100%}
.topbar>.flex,.public-header>.flex,.page-heading>div,.toolbar>*{min-width:0;max-width:100%}
@media(max-width:980px){.collection-grid,.content-grid,.pricing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.collection-grid,.content-grid,.pricing-grid{grid-template-columns:minmax(0,1fr)}}

/* Release readability scale: keep production as comfortable as the source UI. */
body{font-size:16px;line-height:1.9}
.sidebar nav a,.sidebar-bottom>a{min-height:50px;font-size:.9rem}
.workspace-switch strong{font-size:.92rem}.workspace-switch small{font-size:.78rem!important}
.nav-label,.bottom-note,.sidebar small{font-size:.8rem!important}
.topbar{font-size:.9rem}
.welcome h1{font-size:clamp(1.75rem,2.35vw,2.45rem)}.welcome p{font-size:.96rem}
.stat{min-height:156px}.stat>strong{font-size:clamp(1.55rem,2.2vw,2.25rem)}
.stat>small,.item-copy small,.chart-legend,.chart-card p,.schedule p{font-size:.8rem!important}
.item-row{min-height:76px}.item-copy strong{font-size:.96rem}
.tabs button,.field,label,.planitor-account-runtime,.planitor-finance-runtime{font-size:.9rem}
.planitor-account-list .item-copy span,.planitor-security-summary span,.planitor-live-plan small,.planitor-entitlement small{font-size:.84rem}
.planitor-money{font-size:1.25rem}
@media(max-width:600px){
  body{font-size:15px}
  .hero>p{font-size:15px}
  .welcome h1{font-size:clamp(1.55rem,7.4vw,2rem)}
  .stat{min-height:142px}.stat>strong{font-size:1.45rem}
  .bottom-nav a,.bottom-nav button{font-size:.7rem}
  .topbar>.flex:first-child>span,.topbar>.flex:first-child>svg{display:none}
  .topbar>.flex:first-child>strong{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .account-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;overflow:visible;padding-bottom:14px;white-space:normal}
  .account-nav a{min-height:46px;justify-content:center;text-align:center;padding:8px 10px}
}

/* Mobile transaction form integrity: no nested field may keep a desktop column. */
@media (max-width: 600px) {
  .modal {
    max-height: calc(100dvh - 8px) !important;
    overscroll-behavior: contain;
    scroll-padding-bottom: 104px;
  }

  .modal .form-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }

  .modal .form-grid > .field,
  .modal .field,
  .modal input,
  .modal select,
  .modal textarea {
    min-width: 0;
    max-width: 100%;
  }

  .modal .planitor-persian-picker {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
  }

  .modal .planitor-persian-picker select {
    min-width: 0;
    padding-inline: 7px;
    text-align: center;
  }

  .modal form > .flex:last-child {
    position: sticky;
    z-index: 4;
    bottom: 0;
    margin-top: 24px;
    padding: 14px 0 max(4px, env(safe-area-inset-bottom));
    border-top: 1px solid var(--border);
    background: color-mix(in srgb, var(--card) 96%, transparent);
    box-shadow: 0 -18px 32px color-mix(in srgb, var(--card) 86%, transparent);
    backdrop-filter: blur(14px);
  }

  .modal form > .flex:last-child > .btn {
    flex: 1 1 0;
    min-width: 0;
  }
}

/* Keep the free-plan meter aligned with the page content at every width. */
.planitor-quota {
  width: 100%;
  min-width: 0;
}

.planitor-quota .between {
  flex-wrap: wrap;
  gap: 4px 12px;
}

.planitor-quota .between > * {
  min-width: 0;
  overflow-wrap: anywhere;
}

.planitor-quota .progress {
  background: var(--bg-elevated);
}

@media (max-width: 390px) {
  .modal .planitor-persian-picker {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .modal .planitor-persian-picker select:last-child { grid-column: auto; }
}

/* The account being inspected must remain identifiable at every viewport width. */
.pln-support-banner {
  position: sticky;
  top: 0;
  z-index: 2147483000;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px max(16px, env(safe-area-inset-right)) 10px max(16px, env(safe-area-inset-left));
  color: #10223a;
  background: #baf2df;
  border-bottom: 1px solid #64bea0;
  font: 700 14px/1.7 Vazirmatn, Tahoma, sans-serif;
}
.pln-support-banner strong { font-weight: 900; }
.support-view-active .topbar { top: var(--pln-support-height, 64px); }
.pln-support-banner form { margin: 0; }
.pln-support-banner button {
  min-height: 44px;
  padding: 8px 14px;
  border: 1px solid #0f6d54;
  border-radius: 10px;
  background: #105d49;
  color: #fff;
  font: inherit;
  cursor: pointer;
}
@media (max-width: 640px) {
  .pln-support-banner { align-items: stretch; flex-direction: column; }
  .pln-support-banner button { width: 100%; }
}
.planitor-phone-link{margin-top:24px;padding-top:24px;border-top:1px solid var(--border)}
.planitor-phone-link h3{margin:0 0 6px}
.planitor-phone-link p{margin:0 0 16px}
.planitor-phone-link .planitor-live-form{max-width:450px}
/* Account states must remain legible on light surfaces as well as dark cards. */
[data-theme=light] .planitor-entitlement.is-active span{color:#116347}
[data-theme=light] .planitor-live-status.is-success{color:#116347!important}
[data-theme=light] .planitor-live-status.is-error{color:#9f1239!important}
[data-theme=light] .planitor-live-status.is-info{color:#075985!important}
[data-theme=light] .planitor-delete-account summary{color:#9f1239}
[data-theme=light] .pln-sidebar-logout{color:#9f1239!important}
