@import "https://fonts.googleapis.com/css2?family=Vazirmatn:wght@400;500;600;700;800&display=swap";:root{--bg:#eef3f0;--surface:#fff;--surface-2:#e4ebe7;--text:#15241f;--muted:#5a6e66;--border:#d0dbd5;--accent:#2e6b5a;--accent-soft:#7a9e92;--grid:#dce5e0;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Vazirmatn,Segoe UI,Tahoma,sans-serif;font-weight:400;line-height:1.5}*,:before,:after{box-sizing:border-box}html{direction:rtl}body{background:radial-gradient(ellipse 70% 50% at 0% 0%, #2e6b5a12, transparent 50%), var(--bg);min-width:320px;min-height:100vh;margin:0}#root{min-height:100vh}button{font-family:inherit}.app{min-height:100vh;color:var(--text);padding-bottom:2rem}.dollar-badge{color:#f2f6f4;background:#00000047;border:1px solid #e8c54759;border-radius:10px;align-items:stretch;gap:0;display:inline-flex;overflow:hidden}.dollar-badge--inline{flex-shrink:0}.dollar-badge--dual .dollar-badge__body{border-left:1px solid #ffffff14;min-width:6.5rem}.dollar-badge--dual .dollar-badge__body:first-child{border-left:none}.dollar-badge__refresh{appearance:none;color:#e8c547;cursor:pointer;background:#ffffff0f;border:none;border-right:1px solid #ffffff14;padding:0 .6rem;font-size:1rem}.dollar-badge__body{flex-direction:column;justify-content:center;min-width:7.25rem;padding:.35rem .85rem;display:flex}.dollar-badge__label{color:#f2f6f499;font-size:.65rem;line-height:1.2}.dollar-badge__val{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:1.05rem;font-weight:700;line-height:1.25}.dollar-badge__val small{opacity:.75;margin-right:.2rem;font-size:.7rem;font-weight:500}.dollar-badge__err{color:#f08888;font-size:.85rem}.topbar{color:#f2f6f4;background:linear-gradient(165deg,#0f1a17 0%,#15241f 55%,#1a2e28 100%);border-bottom:1px solid #ffffff0f;grid-template-columns:1fr auto 1fr;align-items:center;gap:.75rem 1rem;padding:.7rem 1.25rem;display:grid}.topbar__brand{justify-self:start;align-items:baseline;gap:.75rem;display:flex}.topbar__center{justify-self:center}.topbar__meta{justify-self:end}@media (width<=720px){.topbar{grid-template-columns:1fr auto;grid-template-areas:"brand meta""dollar dollar"}.topbar__brand{grid-area:brand}.topbar__center{grid-area:dollar;justify-self:stretch}.topbar__meta{grid-area:meta}.dollar-badge{width:100%}.dollar-badge__body{flex:1}}.brand{color:#e8c547;margin:0;font-size:1.45rem;font-weight:800}.topbar__sub{color:#f2f6f4b3;font-size:.9rem}.badge{color:#e8c547;background:#e8c5472e;border:none;border-radius:6px;padding:.25rem .6rem;font-size:.72rem;font-weight:600;display:inline-block}.badge--busy{color:#a8d4c4;background:#5aa08c40}.badge--err{color:#f0a0a0;cursor:pointer;background:#b43c3c4d}.tabs{flex-wrap:wrap;gap:.4rem;max-width:1400px;margin:0 auto;padding:.75rem 1.25rem;display:flex}.tab{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--muted);font:inherit;cursor:pointer;border-radius:999px;padding:.45rem .85rem;font-size:.88rem}.tab:hover{color:var(--text);border-color:var(--accent-soft)}.tab.is-active{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 35%, transparent);font-weight:700}.workspace{direction:ltr;grid-template-columns:minmax(0,1fr) minmax(260px,320px);gap:1rem;max-width:1400px;margin:0 auto;padding:0 1.25rem 1rem;display:grid}.workspace>*{direction:rtl}@media (width<=900px){.workspace{grid-template-columns:1fr}}.sidebar{background:var(--surface);border:1px solid var(--border);border-radius:14px;align-self:start;max-height:calc(100vh - 1.5rem);padding:1rem;position:sticky;top:.75rem;overflow:auto}.sidebar__block h2{margin:0 0 .25rem;font-size:1.05rem}.sidebar__block p{color:var(--muted);margin:0 0 1rem;font-size:.8rem;line-height:1.55}.main{min-width:0}.controls{flex-direction:column;gap:.85rem;margin-bottom:1rem;display:flex}.controls--compact .segmented button{padding:.35rem .5rem;font-size:.78rem}.controls__label{color:var(--muted);margin-bottom:.35rem;font-size:.75rem;font-weight:600;display:block}.segmented{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;gap:.25rem;padding:.25rem;display:flex}.segmented button{appearance:none;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.4rem .6rem;font-size:.82rem}.segmented button.is-active{background:var(--accent);color:#fff;font-weight:700;box-shadow:0 1px 3px #0f1a172e}.toggle{cursor:pointer;align-items:center;gap:.45rem;font-size:.82rem;display:flex}.toggle input{accent-color:var(--accent)}.stock-search{margin-bottom:1rem}.stock-search__label{color:var(--muted);margin-bottom:.35rem;font-size:.75rem;font-weight:600;display:block}.stock-search__input{width:100%;font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;padding:.5rem .65rem;font-size:.9rem}.stock-search__input:focus{outline:2px solid color-mix(in srgb, var(--accent) 40%, transparent);border-color:var(--accent)}.stock-search__hint,.stock-search__err{margin-top:.35rem;font-size:.75rem}.stock-search__err{color:#b33a3a}.stock-search__list{border:1px solid var(--border);background:var(--bg);border-radius:8px;max-height:200px;margin:.4rem 0 0;padding:0;list-style:none;overflow:auto}.stock-search__list button{appearance:none;border:none;border-bottom:1px solid var(--border);text-align:right;cursor:pointer;width:100%;font:inherit;background:0 0;gap:.1rem;padding:.45rem .6rem;display:grid}.stock-search__list li:last-child button{border-bottom:none}.stock-search__list button:hover{background:color-mix(in srgb, var(--accent) 8%, transparent)}.stock-search__list strong{font-size:.9rem}.stock-search__list span{color:var(--muted);font-size:.75rem}.stock-search__list em{color:var(--accent-soft);font-size:.7rem;font-style:normal}.asset-picker__head{color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:.45rem;font-size:.75rem;font-weight:600;display:flex}.link-btn{appearance:none;color:var(--accent);font:inherit;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;font-size:.75rem;text-decoration:underline}.asset-picker__group{margin-bottom:.65rem}.asset-picker__group-title{color:var(--muted);margin-bottom:.3rem;font-size:.72rem;font-weight:600}.asset-picker__list{flex-wrap:wrap;gap:.35rem;display:flex}.asset-chip{appearance:none;border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit;cursor:pointer;border-radius:7px;align-items:center;gap:.35rem;padding:.3rem .55rem .3rem .4rem;font-size:.8rem;display:inline-flex}.asset-chip__swatch{background:var(--chip,var(--accent));border-radius:50%;width:.45rem;height:.45rem}.asset-chip.is-active{border-color:var(--chip,var(--accent));background:color-mix(in srgb, var(--chip,var(--accent)) 42%, var(--surface));color:var(--text);box-shadow:0 0 0 2px color-mix(in srgb, var(--chip,var(--accent)) 28%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--chip,var(--accent)) 50%, transparent);border-width:2px;font-weight:800}.asset-chip.is-loading{opacity:.75;cursor:wait}.asset-chip.is-error{opacity:.55;cursor:not-allowed;border-color:#c97a7a}.asset-chip__spin,.inline-spin{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:.65rem;height:.65rem;margin-right:.15rem;animation:.7s linear infinite spin;display:inline-block}.inline-spin{vertical-align:middle;margin-left:.35rem;margin-right:0}.asset-chip__err{color:#b33a3a;font-size:.75rem;font-weight:800}.load-hint{color:var(--muted);flex-wrap:wrap;gap:.65rem;margin-bottom:.55rem;font-size:.78rem;display:flex}.load-hint__busy{color:var(--accent);font-weight:600}.load-hint__mode{color:var(--text);background:var(--surface-2);border-radius:4px;padding:.1rem .45rem;font-weight:600}.stat-card__cache{background:var(--surface-2);color:var(--muted);border-radius:4px;margin-right:.25rem;padding:.05rem .3rem;font-size:.65rem}.stat-card--loading .stat-card__skeleton{background:linear-gradient(90deg, var(--surface-2), #f5f8f6, var(--surface-2));background-size:200% 100%;border-radius:4px;height:1.25rem;margin:.35rem 0;animation:1.2s infinite shimmer}.stat-card__hint{color:var(--muted);font-size:.75rem}.stat-card--error .stat-card__hint{color:#b33a3a}.chart-placeholder{min-height:280px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;font-size:.9rem;display:flex}.chart-placeholder--sm{min-height:160px}.mini-chip.is-loading{opacity:.7}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.stat-strip{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.55rem;margin-bottom:.85rem;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.65rem .75rem}.stat-card__name{color:var(--muted);align-items:center;gap:.35rem;margin-bottom:.25rem;font-size:.75rem;display:flex}.stat-card__dot{border-radius:50%;width:.4rem;height:.4rem}.stat-card__value{font-variant-numeric:tabular-nums;font-size:1.1rem;font-weight:700}.stat-card__unit{color:var(--muted);margin-right:.2rem;font-size:.75rem;font-weight:500}.stat-card__rial{color:var(--text);font-variant-numeric:tabular-nums;margin-top:.15rem;font-size:.78rem}.stat-card__ret{margin-top:.25rem;font-size:.75rem;font-weight:600}.stat-card__ret.is-up{color:#1f7a4d}.stat-card__ret.is-down{color:#b33a3a}.chart-panel{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin-bottom:.85rem;padding:.85rem .65rem .65rem}.chart-panel__title{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem .75rem;padding:0 .4rem .65rem;display:flex}.grid-toolbar{margin-bottom:.35rem;padding-inline:.15rem}.range-toolbar{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;gap:.2rem;margin-inline-start:auto;padding:.15rem;display:inline-flex}.range-toolbar button{appearance:none;color:var(--muted);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:.28rem .45rem;font-size:.72rem}.range-toolbar button:hover{color:var(--text);background:#0000000a}.range-toolbar button.is-active{background:var(--surface);color:var(--text);box-shadow:0 0 0 1px var(--border);font-weight:700}.range-toolbar--compact button{padding:.2rem .35rem;font-size:.68rem}.chart-panel__title--row{align-items:center}.chart-panel__title h3{flex-shrink:0;margin:0;font-size:1rem}.chart-panel__title>span{color:var(--muted);font-size:.78rem}.chart-panel__title--tight{justify-content:flex-start;align-items:center;gap:.4rem}.chart-panel__unit-chip{letter-spacing:.02em;color:var(--muted);background:var(--surface-2);border-radius:4px;flex-shrink:0;padding:.12rem .4rem;font-size:.68rem;font-weight:700}.chart-panel__unit-chip--end{margin-inline-start:auto}.chart-panel__unit-chip.is-busy{color:var(--accent);font-weight:600}.chart-panel__unit-chip.is-err{color:#b33;font-weight:600}.chart-host{direction:ltr}.chart-host .recharts-cartesian-axis-tick text{direction:ltr;unicode-bidi:isolate}.overlay-chips{flex-wrap:wrap;flex:1;justify-content:flex-start;align-items:center;gap:.35rem;min-width:0;display:flex}.overlay-chips__label{color:var(--muted);margin-left:.25rem;font-size:.75rem}.mini-chip{appearance:none;border:1px dashed var(--border);background:var(--bg);color:var(--muted);font:inherit;cursor:pointer;border-radius:999px;padding:.2rem .5rem;font-size:.75rem}.mini-chip.is-active{border-style:solid;border-width:2px;border-color:var(--chip,var(--accent));color:var(--text);background:color-mix(in srgb, var(--chip,var(--accent)) 40%, var(--surface));box-shadow:0 0 0 2px color-mix(in srgb, var(--chip,var(--accent)) 25%, transparent);font-weight:800}.chart-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.75rem;display:grid}.chart-host{touch-action:none}.crosshair{pointer-events:none;z-index:5;position:absolute;inset:0;overflow:hidden}.crosshair__v{border-left:1px dashed #15241f8c;width:0;position:absolute;top:0;bottom:0;transform:translate(-.5px)}.crosshair__h{border-top:1px dashed #15241f8c;height:0;position:absolute;left:0;right:0;transform:translateY(-.5px)}.crosshair__dot{background:#2e6b5a;border:1.5px solid #fff;border-radius:50%;width:8px;height:8px;margin:-4px 0 0 -4px;position:absolute;box-shadow:0 0 0 1px #15241f33}.chart-tooltip{color:#f2f6f4;background:#12201c;border-radius:8px;padding:.6rem .75rem;font-size:.78rem;box-shadow:0 8px 24px #00000040}.chart-tooltip__date{color:#f2f6f4a6;margin-bottom:.35rem;font-size:.72rem}.chart-tooltip__row{align-items:center;gap:.35rem;margin-top:.2rem;display:flex}.chart-tooltip__dot{border-radius:50%;width:.4rem;height:.4rem}.chart-tooltip__name{flex:1}.chart-tooltip__value{font-weight:700}.chart-tooltip__unit{color:#f2f6f48c;margin-top:.45rem;font-size:.68rem;line-height:1.4}.chart-tooltip__block+.chart-tooltip__block{border-top:1px solid #ffffff14;margin-top:.4rem;padding-top:.35rem}.chart-tooltip__actual{color:#e8c547e6;margin:.15rem 0 0 .85rem;font-size:.72rem}.empty,.loading-panel{text-align:center;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:3rem 1rem}.loading-panel .muted{font-size:.8rem}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:2rem;height:2rem;margin:0 auto 1rem;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.muted{color:var(--muted);font-size:.8rem}.chart-legend{flex-wrap:wrap;justify-content:center;gap:.55rem 1rem;margin:.35rem 0 0;padding:0;list-style:none;display:flex}.chart-legend__item{color:var(--text);align-items:center;gap:.4rem;font-size:.78rem;display:inline-flex}.chart-legend__swatch{flex-shrink:0;overflow:visible}.chart-legend__label{line-height:1.2}
