:root{
    --bg:#0A0D12; --bg2:#0D1117; --surface:#141922; --surface2:#1A2029;
    --line:#242B36; --line2:#2C3543;
    --ink:#E8EAED; --muted:#7B8794; --muted2:#4C5867; --faint:#323B49;
    --bull:#16C784; --bull-dim:#0F3A2C;
    --bear:#EA3943; --bear-dim:#3A1518;
    --gold:#F0B90B; --gold-dim:#3A2E0A;
    --bg-fade-rgb:10,13,18;
    --glass-rgb:20,25,34; --shell-rgb:15,18,25; --input-rgb:26,32,41;
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);
    font-family:'Vazirmatn',sans-serif;}
  body{min-height:100vh;display:flex;justify-content:center;position:relative;overflow-x:hidden;}
  #bgCanvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.55;}
  .bg-fade{position:fixed;inset:0;z-index:0;pointer-events:none;
    background:linear-gradient(180deg, rgba(var(--bg-fade-rgb),.55) 0%, rgba(var(--bg-fade-rgb),.88) 55%, rgba(var(--bg-fade-rgb),.97) 100%);}

  .app{width:100%;max-width:1360px;margin:0 auto;display:flex;flex-direction:column;height:100vh;position:relative;z-index:1;}

  /* ---------- dashboard shell ---------- */
  .topbar{flex-shrink:0;height:56px;display:flex;align-items:center;justify-content:space-between;
    gap:12px;padding:0 18px;border-bottom:1px solid var(--line);
    background:rgba(var(--shell-rgb),.4);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);}
  .topbar-left{display:flex;align-items:center;gap:10px;min-width:0;}
  .menu-toggle{display:none;flex-shrink:0;width:34px;height:34px;border-radius:9px;border:1px solid var(--line2);
    background:var(--surface);color:var(--ink);align-items:center;justify-content:center;cursor:pointer;}
  .topbar-brand{font-family:'Cinzel',serif;font-size:14px;font-weight:700;letter-spacing:1.5px;
    background:linear-gradient(90deg,#F7CA4D,#F0B90B 50%,#C9970A);-webkit-background-clip:text;
    background-clip:text;color:transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .logout-icon-btn{flex-shrink:0;width:34px;height:34px;border-radius:9px;border:1px solid var(--line2);
    background:var(--surface);color:var(--muted);display:flex;align-items:center;justify-content:center;
    cursor:pointer;transition:color .15s,border-color .15s;}
  .logout-icon-btn:hover{color:var(--bear);border-color:rgba(234,57,67,.4);}

  .shell-layout{flex:1;display:flex;overflow:hidden;position:relative;}

  .sidebar{width:216px;flex-shrink:0;display:flex;flex-direction:column;gap:2px;padding:14px 10px;
    background:rgba(var(--shell-rgb),.4);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
    border-inline-end:1px solid rgba(240,185,11,.1);overflow-y:auto;}
  .nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;border:none;
    background:transparent;color:var(--muted);font-family:'Vazirmatn',sans-serif;font-size:13.5px;
    text-align:right;cursor:pointer;transition:background .15s,color .15s;}
  .nav-item svg{flex-shrink:0;opacity:.85;}
  .nav-item:hover{background:var(--surface2);color:var(--ink);}
  .nav-item.active{background:linear-gradient(90deg,rgba(240,185,11,.14),rgba(240,185,11,.03));
    color:var(--gold);box-shadow:inset 0 0 0 1px rgba(240,185,11,.2);}
  .nav-divider{height:1px;background:var(--line);margin:8px 4px;flex-shrink:0;}
  .logout-item{color:var(--bear);margin-top:auto;}
  .logout-item:hover{background:var(--bear-dim);color:var(--bear);}

  .sidebar-overlay{display:none;position:fixed;inset:0;z-index:30;background:rgba(0,0,0,.5);}

  .main-content{flex:1;overflow-y:auto;position:relative;}
  .page{display:none;}
  .page.active{display:block;}
  #page-routine.active{display:flex;flex-direction:column;height:100%;}


  .placeholder-wrap{min-height:100%;display:flex;align-items:center;justify-content:center;padding:40px 20px;}
  .placeholder-card{max-width:360px;width:100%;text-align:center;border-radius:18px;padding:36px 26px;
    background:rgba(var(--glass-rgb),.5);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
    border:1px solid rgba(240,185,11,.18);box-shadow:0 20px 50px rgba(0,0,0,.4), 0 0 40px rgba(240,185,11,.06);}
  .placeholder-icon{width:46px;height:46px;margin:0 auto 16px;border-radius:13px;
    background:var(--gold-dim);color:var(--gold);display:flex;align-items:center;justify-content:center;}
  .placeholder-card h2{font-size:16px;font-weight:700;margin:0 0 8px;}
  .placeholder-card p{font-size:12.5px;color:var(--muted);margin:0;line-height:1.9;}

  .app-enter{animation:appIn .5s cubic-bezier(.2,.8,.2,1);}
  @keyframes appIn{from{opacity:0;transform:scale(.985);}to{opacity:1;transform:none;}}

  /* ---------- dashboard quick-access cards ---------- */
  .dash-wrap{padding:22px 20px 40px;}
  .dash-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
  .dash-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:14px;border-radius:20px;padding:36px 20px;overflow:hidden;cursor:pointer;
    background:rgba(var(--glass-rgb),.5);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
    border:1px solid rgba(240,185,11,.16);box-shadow:0 20px 50px rgba(0,0,0,.25), 0 0 30px rgba(240,185,11,.04);
    font-family:'Vazirmatn',sans-serif;color:var(--ink);
    animation:mhCardIn .5s cubic-bezier(.2,.8,.2,1) backwards;
    transition:transform .25s cubic-bezier(.2,.8,.2,1),border-color .25s,box-shadow .25s;}
  .dash-grid .dash-card:nth-child(1){animation-delay:.04s;}
  .dash-grid .dash-card:nth-child(2){animation-delay:.1s;}
  .dash-grid .dash-card:nth-child(3){animation-delay:.16s;}
  .dash-grid .dash-card:nth-child(4){animation-delay:.22s;}
  .dash-card:hover{transform:translateY(-4px);border-color:rgba(240,185,11,.4);
    box-shadow:0 26px 60px rgba(0,0,0,.3), 0 0 44px rgba(240,185,11,.14);}
  .dash-card:active{transform:translateY(-1px) scale(.99);}
  .dash-card-icon{font-size:34px;line-height:1;filter:drop-shadow(0 0 12px rgba(240,185,11,.18));}
  .dash-card-label{font-size:14px;font-weight:700;}
  @media (max-width:600px){.dash-grid{grid-template-columns:1fr;}}

  /* ---------- market hours ---------- */
  .market-hours-wrap{padding:22px 20px 40px;}
  .mh-header{margin-bottom:18px;}
  .mh-header h2{font-size:17px;font-weight:800;margin:0 0 4px;}
  .mh-header p{font-size:12px;color:var(--muted);margin:0;}
  .mh-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
  .mh-card{position:relative;border-radius:16px;padding:18px 18px 16px;overflow:hidden;
    background:rgba(var(--glass-rgb),.5);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
    border:1px solid var(--line2);transition:border-color .4s,box-shadow .4s,opacity .4s;
    animation:mhCardIn .5s cubic-bezier(.2,.8,.2,1) backwards;}
  .mh-grid .mh-card:nth-child(1){animation-delay:.04s;}
  .mh-grid .mh-card:nth-child(2){animation-delay:.1s;}
  .mh-grid .mh-card:nth-child(3){animation-delay:.16s;}
  .mh-grid .mh-card:nth-child(4){animation-delay:.22s;}
  @keyframes mhCardIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
  .mh-card.open{border-color:rgba(22,199,132,.38);animation:mhCardIn .5s cubic-bezier(.2,.8,.2,1) backwards,mhGlow 3.4s ease-in-out infinite;}
  .mh-card.closed{opacity:.68;}
  @keyframes mhGlow{
    0%,100%{box-shadow:0 0 22px rgba(22,199,132,.08);}
    50%{box-shadow:0 0 38px rgba(22,199,132,.2);}
  }
  .mh-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:6px;}
  .mh-name{font-size:14px;font-weight:700;}
  .mh-badge{display:flex;align-items:center;gap:6px;font-family:'JetBrains Mono',monospace;font-size:10px;
    padding:3px 9px;border-radius:999px;flex-shrink:0;transition:background .3s,color .3s;}
  .mh-badge.open{background:var(--bull-dim);color:var(--bull);}
  .mh-badge.closed{background:var(--surface2);color:var(--muted2);}
  .mh-dot{width:6px;height:6px;border-radius:999px;background:currentColor;flex-shrink:0;}
  .mh-badge.open .mh-dot{animation:pulse 1.6s ease-in-out infinite;box-shadow:0 0 6px var(--bull);}
  .mh-time{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted);margin:0 0 12px;}
  .mh-bar-track{height:5px;border-radius:999px;background:var(--line);overflow:hidden;}
  .mh-bar-fill{position:relative;height:100%;border-radius:999px;overflow:hidden;
    background:linear-gradient(90deg,var(--bull),#4EDB9E);transition:width 1s linear;}
  .mh-card.open .mh-bar-fill::after{content:"";position:absolute;inset:0;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);
    transform:translateX(-100%);animation:barShine 2.6s ease-in-out infinite;}
  @keyframes barShine{to{transform:translateX(100%);}}
  .mh-card.closed .mh-bar-fill{background:var(--faint);}
  @media (max-width:600px){.mh-grid{grid-template-columns:1fr;}}

  /* ---------- world clock (flat map) ---------- */
  .wcg-wrap{padding:22px 20px 40px;}
  .wcg-header{margin-bottom:18px;}
  .wcg-header h2{font-size:17px;font-weight:800;margin:0 0 4px;}
  .wcg-header p{font-size:12px;color:var(--muted);margin:0;}

  .wcg-stage{position:relative;width:100%;max-width:520px;aspect-ratio:2/1;margin:0 auto 24px;
    border-radius:20px;overflow:hidden;
    background:radial-gradient(ellipse at 50% 30%, #10151f 0%, #05070b 70%);
    border:1px solid rgba(240,185,11,.14);
    box-shadow:0 30px 70px rgba(0,0,0,.55), inset 0 0 50px rgba(240,185,11,.03);
    animation:mhCardIn .6s cubic-bezier(.2,.8,.2,1) backwards;}
  .wcg-svg{position:absolute;inset:0;width:100%;height:100%;display:block;}

  .wcg-continents path{fill:#6b7684;opacity:.4;}
  .wcg-star{fill:#ffffff;animation:wcgTwinkle 3.5s ease-in-out infinite;}
  @keyframes wcgTwinkle{0%,100%{opacity:.12;}50%{opacity:.55;}}

  .wcg-city-dot{fill:var(--muted2);transition:fill .6s ease;}
  .wcg-city-halo{fill:none;stroke:var(--gold);stroke-width:1.5;opacity:0;
    transition:opacity .6s ease;transform-box:fill-box;transform-origin:center;}
  .wcg-city.active .wcg-city-dot{fill:#FFE08C;filter:url(#wcgGlow);}
  .wcg-city.active .wcg-city-halo{opacity:.85;animation:wcgHaloPulse 2.6s ease-in-out infinite;}
  @keyframes wcgHaloPulse{
    0%,100%{r:7;opacity:.55;}
    50%{r:14;opacity:.18;}
  }
  .wcg-beam{fill:none;stroke:var(--gold);stroke-width:2;filter:url(#wcgGlow);
    stroke-linecap:round;}

  .wcg-info{position:relative;min-height:80px;margin-bottom:24px;}
  .wcg-panel{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;
    justify-content:center;gap:6px;text-align:center;opacity:0;pointer-events:none;
    transition:opacity .7s ease;}
  .wcg-panel.show{opacity:1;pointer-events:auto;animation:wcgPanelIn .7s cubic-bezier(.2,.8,.2,1) backwards;}
  @keyframes wcgPanelIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
  .wcg-panel-label{font-size:10.5px;font-weight:700;color:var(--muted2);letter-spacing:.6px;
    text-transform:uppercase;margin-bottom:2px;}
  .wcg-session-name{font-size:19px;font-weight:800;letter-spacing:.2px;
    direction:ltr;
    text-shadow:0 0 18px rgba(240,185,11,.35);}
  .wcg-session-status{display:flex;align-items:center;gap:7px;font-family:'JetBrains Mono',monospace;
    font-size:12px;font-weight:600;direction:ltr;}
  .wcg-status-dot{width:7px;height:7px;border-radius:999px;background:var(--muted2);flex-shrink:0;transition:background .4s;}
  .wcg-status-dot.open{background:var(--bull);box-shadow:0 0 8px var(--bull);animation:pulse 1.6s ease-in-out infinite;}
  .wcg-status-text{color:var(--muted);transition:color .4s;}
  .wcg-status-text.open{color:var(--bull);}
  .wcg-session-hours{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted2);direction:ltr;}

  .wcg-closed-title{font-size:13.5px;font-weight:700;color:var(--muted);letter-spacing:.4px;}
  .wcg-countdown{font-family:'JetBrains Mono',monospace;font-size:25px;font-weight:800;color:var(--gold);
    direction:ltr;text-shadow:0 0 20px rgba(240,185,11,.3);}
  .wcg-closed-sub{font-size:11.5px;color:var(--muted2);}

  .wcg-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
  .wcg-card{position:relative;border-radius:16px;padding:16px 16px 14px;overflow:hidden;
    background:rgba(var(--glass-rgb),.5);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
    border:1px solid var(--line2);transition:border-color .6s,box-shadow .6s,opacity .6s;
    animation:mhCardIn .5s cubic-bezier(.2,.8,.2,1) backwards;}
  .wcg-cards .wcg-card:nth-child(1){animation-delay:.04s;}
  .wcg-cards .wcg-card:nth-child(2){animation-delay:.1s;}
  .wcg-cards .wcg-card:nth-child(3){animation-delay:.16s;}
  .wcg-cards .wcg-card:nth-child(4){animation-delay:.22s;}
  .wcg-card.open{border-color:rgba(240,185,11,.42);animation:mhCardIn .5s cubic-bezier(.2,.8,.2,1) backwards,wcgCardGlow 3.4s ease-in-out infinite;}
  .wcg-card.closed{opacity:.6;}
  @keyframes wcgCardGlow{
    0%,100%{box-shadow:0 0 20px rgba(240,185,11,.06);}
    50%{box-shadow:0 0 36px rgba(240,185,11,.2);}
  }
  .wcg-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;gap:6px;}
  .wcg-card-name{font-size:13.5px;font-weight:700;}
  .wcg-card-badge{display:flex;align-items:center;gap:6px;font-family:'JetBrains Mono',monospace;font-size:9.5px;
    padding:3px 9px;border-radius:999px;flex-shrink:0;transition:background .4s,color .4s;}
  .wcg-card-badge.open{background:var(--gold-dim);color:var(--gold);}
  .wcg-card-badge.closed{background:var(--surface2);color:var(--muted2);}
  .wcg-card-dot{width:6px;height:6px;border-radius:999px;background:currentColor;flex-shrink:0;}
  .wcg-card-badge.open .wcg-card-dot{animation:pulse 1.6s ease-in-out infinite;box-shadow:0 0 6px var(--gold);}
  .wcg-card-remain{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted);direction:ltr;text-align:left;}
  @media (max-width:600px){.wcg-cards{grid-template-columns:1fr;}}

  /* ---------- calculator ---------- */
  .calc-wrap{padding:22px 20px 40px;display:flex;justify-content:center;}
  .calc-box{width:100%;max-width:320px;border-radius:20px;padding:18px;
    background:rgba(var(--glass-rgb),.5);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
    border:1px solid rgba(240,185,11,.18);box-shadow:0 20px 50px rgba(0,0,0,.3), 0 0 30px rgba(240,185,11,.05);
    animation:mhCardIn .5s cubic-bezier(.2,.8,.2,1) backwards;}
  .calc-display{padding:18px 6px 20px;text-align:right;direction:ltr;}
  .calc-expr{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--muted2);min-height:16px;
    overflow-x:auto;white-space:nowrap;}
  .calc-result{font-family:'JetBrains Mono',monospace;font-size:34px;font-weight:800;color:var(--ink);
    overflow-x:auto;white-space:nowrap;}
  .calc-pad{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;}
  .calc-btn{height:56px;border-radius:14px;border:1px solid var(--line2);background:var(--surface2);
    color:var(--ink);font-family:'JetBrains Mono',monospace;font-size:17px;font-weight:600;cursor:pointer;
    transition:transform .1s,background .15s;}
  .calc-btn:active{transform:scale(.95);}
  .calc-btn.op{background:var(--surface);color:var(--muted);font-weight:700;}
  .calc-btn.op.accent{color:var(--gold);}
  .calc-btn.equals{background:linear-gradient(90deg,var(--gold),#F7CA4D);color:#221A02;}
  .calc-btn.wide{grid-column:span 2;}

  /* ---------- economic calendar tabs ---------- */
  .cal-tabs{display:flex;gap:8px;padding:20px 20px 0;flex-shrink:0;}
  .cal-tab{padding:8px 20px;border-radius:999px;border:1px solid var(--line2);
    background:var(--surface);color:var(--muted);font-family:'Vazirmatn',sans-serif;font-size:13px;
    cursor:pointer;transition:background .15s,color .15s,border-color .15s;}
  .cal-tab.active{background:linear-gradient(90deg,var(--gold),#F7CA4D);color:#221A02;
    border-color:transparent;font-weight:700;}
  .cal-tab-content{display:none;}
  .cal-tab-content.active{display:block;}

  /* ---------- economic news ---------- */
  .news-wrap{padding:20px 20px 40px;}
  .news-header{margin-bottom:16px;}
  .news-header h2{font-size:17px;font-weight:800;margin:0 0 4px;}
  .news-header p{font-size:12px;color:var(--muted);margin:0;}
  .news-list{display:flex;flex-direction:column;gap:12px;}
  .news-state{text-align:center;padding:30px 16px;color:var(--muted);font-size:12.5px;
    border-radius:16px;border:1px solid var(--line2);background:rgba(var(--glass-rgb),.4);}
  .news-state.unavailable{color:var(--muted2);}
  .news-retry{margin-top:12px;padding:8px 18px;border-radius:999px;border:1px solid var(--line2);
    background:var(--surface2);color:var(--ink);font-family:'Vazirmatn',sans-serif;font-size:12px;
    cursor:pointer;}
  .news-card{display:block;border-radius:16px;padding:16px 18px;text-decoration:none;
    background:rgba(var(--glass-rgb),.5);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
    border:1px solid var(--line2);transition:border-color .2s,transform .15s;
    animation:mhCardIn .5s cubic-bezier(.2,.8,.2,1) backwards;}
  .news-card:hover{border-color:rgba(240,185,11,.35);transform:translateY(-2px);}
  .news-meta{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap;}
  .news-source{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--gold);
    font-weight:700;letter-spacing:.3px;}
  .news-time{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--muted2);}
  .news-title{font-size:13.5px;font-weight:700;color:var(--ink);margin:0 0 6px;line-height:1.6;}
  .news-desc{font-size:12px;color:var(--muted);line-height:1.8;margin:0;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}

  /* ---------- settings / theme toggle ---------- */
  .settings-wrap{padding:24px 20px 40px;}
  .settings-card{max-width:400px;border-radius:16px;padding:24px;background:rgba(var(--glass-rgb),.5);
    backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(240,185,11,.16);}
  .settings-card h2{font-size:15px;font-weight:700;margin:0 0 4px;}
  .settings-card p{font-size:12px;color:var(--muted);margin:0 0 16px;}
  .theme-toggle{display:flex;gap:8px;background:var(--surface2);border-radius:12px;padding:4px;}
  .theme-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;
    padding:10px;border:none;border-radius:9px;background:transparent;color:var(--muted);
    font-family:'Vazirmatn',sans-serif;font-size:13px;cursor:pointer;transition:all .2s;}
  .theme-btn.active{background:linear-gradient(90deg,var(--gold),#F7CA4D);color:#221A02;font-weight:700;}

  /* ---------- risk manager ---------- */
  .risk-wrap{padding:22px 20px 48px;}
  .risk-header{margin-bottom:18px;}
  .risk-header h2{font-size:17px;font-weight:800;margin:0 0 4px;}
  .risk-header p{font-size:12px;color:var(--muted);margin:0;}

  .risk-tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap;}
  .risk-tab{padding:8px 18px;border-radius:999px;border:1px solid var(--line2);
    background:var(--surface);color:var(--muted);font-family:'Vazirmatn',sans-serif;font-size:13px;
    cursor:pointer;transition:background .15s,color .15s,border-color .15s;}
  .risk-tab.active{background:linear-gradient(90deg,var(--gold),#F7CA4D);color:#221A02;
    border-color:transparent;font-weight:700;}
  .risk-tab-content{display:none;}
  .risk-tab-content.active{display:block;animation:mhCardIn .4s cubic-bezier(.2,.8,.2,1) backwards;}

  .risk-card{position:relative;max-width:640px;border-radius:18px;padding:24px 24px 22px;overflow:hidden;
    background:rgba(var(--glass-rgb),.5);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
    border:1px solid rgba(240,185,11,.18);box-shadow:0 20px 50px rgba(0,0,0,.35), 0 0 40px rgba(240,185,11,.05);}
  .risk-card-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:20px;}
  .risk-card-icon{flex-shrink:0;width:38px;height:38px;border-radius:11px;background:var(--gold-dim);
    color:var(--gold);display:flex;align-items:center;justify-content:center;}
  .risk-card-head h3{font-size:14.5px;font-weight:700;margin:0 0 4px;}
  .risk-card-head p{font-size:12px;color:var(--muted);margin:0;line-height:1.8;}

  .risk-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:6px;}
  .risk-field{display:flex;flex-direction:column;gap:7px;}
  .risk-field.full{grid-column:1 / -1;}
  .risk-field label{font-size:12px;color:var(--muted);font-weight:600;}
  .risk-input-wrap{display:flex;align-items:center;gap:6px;border:1px solid var(--line);
    background:rgba(var(--input-rgb),.5);border-radius:11px;padding:0 14px;height:44px;transition:border-color .15s,box-shadow .15s;}
  .risk-input-wrap:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px rgba(240,185,11,.12);}
  .risk-input-prefix,.risk-input-suffix{font-family:'JetBrains Mono',monospace;font-size:12.5px;color:var(--muted2);flex-shrink:0;}
  .risk-input-wrap input{flex:1;min-width:0;border:none;outline:none;background:transparent;color:var(--ink);
    font-family:'JetBrains Mono',monospace;font-size:14px;direction:ltr;text-align:right;}
  .risk-input-wrap input::placeholder{color:var(--muted2);}
  .risk-input-wrap input::-webkit-outer-spin-button,.risk-input-wrap input::-webkit-inner-spin-button{margin:0;}

  .risk-chip-row{display:flex;gap:6px;margin-bottom:2px;}
  .risk-chip{padding:6px 13px;border-radius:999px;border:1px solid var(--line2);background:var(--surface2);
    color:var(--muted);font-family:'JetBrains Mono',monospace;font-size:11.5px;cursor:pointer;
    transition:background .15s,color .15s,border-color .15s;}
  .risk-chip.active{background:var(--gold-dim);color:var(--gold);border-color:rgba(240,185,11,.4);font-weight:700;}

  .risk-calc-btn{grid-column:1 / -1;margin-top:6px;height:46px;border:none;border-radius:12px;
    background:linear-gradient(90deg,var(--gold),#F7CA4D);color:#221A02;font-family:'Vazirmatn',sans-serif;
    font-size:14px;font-weight:700;cursor:pointer;transition:filter .15s,transform .1s;}
  .risk-calc-btn:hover{filter:brightness(1.06);}
  .risk-calc-btn:active{transform:scale(.98);}

  .risk-result{display:none;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px;padding-top:20px;
    border-top:1px solid var(--line);}
  .risk-result.show{display:grid;animation:mhCardIn .45s cubic-bezier(.2,.8,.2,1);}
  .risk-result-item{border-radius:13px;padding:13px 14px;background:rgba(255,255,255,.02);border:1px solid var(--line2);}
  .risk-result-item.wide{grid-column:1 / -1;}
  .risk-result-label{display:block;font-size:11px;color:var(--muted);margin-bottom:5px;}
  .risk-result-value{font-family:'JetBrains Mono',monospace;font-size:17px;font-weight:800;color:var(--gold);
    direction:ltr;display:block;text-align:right;}
  .risk-result-value.small{font-size:14px;}

  .risk-note{display:none;margin-top:14px;font-size:12px;color:var(--muted);line-height:1.9;
    background:rgba(255,255,255,.02);border:1px solid var(--line2);border-radius:12px;padding:12px 14px;}
  .risk-note.show{display:block;animation:mhCardIn .45s cubic-bezier(.2,.8,.2,1);}

  .risk-alert,.risk-suggestion{display:none;align-items:flex-start;gap:10px;margin-top:12px;
    border-radius:12px;padding:12px 14px;font-size:12.5px;line-height:1.9;}
  .risk-alert.show,.risk-suggestion.show{display:flex;animation:mhCardIn .4s cubic-bezier(.2,.8,.2,1);}
  .risk-alert{background:var(--bear-dim);color:var(--bear);border:1px solid rgba(234,57,67,.28);}
  .risk-suggestion{background:var(--bull-dim);color:var(--bull);border:1px solid rgba(22,199,132,.28);}
  .risk-alert svg,.risk-suggestion svg{flex-shrink:0;margin-top:1px;}

  @media (max-width:640px){
    .risk-form{grid-template-columns:1fr;}
    .risk-result{grid-template-columns:1fr;}
  }

  /* ---------- trading journal ---------- */
  .journal-wrap{padding:22px 20px 48px;}
  .journal-header{margin-bottom:18px;}

  .jr-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px;}
  .jr-stat-card{position:relative;border-radius:15px;padding:14px 16px;overflow:hidden;
    background:rgba(var(--glass-rgb),.5);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
    border:1px solid var(--line2);animation:mhCardIn .5s cubic-bezier(.2,.8,.2,1) backwards;}
  .jr-stat-label{font-size:11px;color:var(--muted);margin:0 0 8px;}
  .jr-stat-value{font-family:'JetBrains Mono',monospace;font-size:18px;font-weight:800;color:var(--ink);
    direction:ltr;text-align:right;display:block;}
  .jr-stat-value.gold{color:var(--gold);}
  .jr-stat-value.bull{color:var(--bull);}
  .jr-stat-value.bear{color:var(--bear);}
  @media (max-width:900px){.jr-stats-grid{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:480px){.jr-stats-grid{grid-template-columns:1fr 1fr;}}

  .jr-form-card{position:relative;border-radius:18px;padding:24px 24px 22px;overflow:hidden;margin-bottom:22px;
    background:rgba(var(--glass-rgb),.5);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
    border:1px solid rgba(240,185,11,.18);box-shadow:0 20px 50px rgba(0,0,0,.35), 0 0 40px rgba(240,185,11,.05);}
  .jr-form{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px;}
  .jr-field{display:flex;flex-direction:column;gap:7px;}
  .jr-field.full{grid-column:1 / -1;}
  .jr-field label{font-size:12px;color:var(--muted);font-weight:600;}
  .jr-textarea{width:100%;border:1px solid var(--line);background:rgba(var(--input-rgb),.5);border-radius:11px;
    padding:11px 14px;color:var(--ink);font-family:'Vazirmatn',sans-serif;font-size:13px;resize:vertical;
    outline:none;transition:border-color .15s,box-shadow .15s;}
  .jr-textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(240,185,11,.12);}
  .jr-pnl-preview{justify-content:flex-end;font-family:'JetBrains Mono',monospace;font-weight:700;direction:ltr;}

  .jr-toggle-row{display:flex;gap:8px;}
  .jr-toggle-btn{flex:1;height:44px;border-radius:11px;border:1px solid var(--line2);background:var(--surface2);
    color:var(--muted);font-family:'Vazirmatn',sans-serif;font-size:13px;font-weight:700;cursor:pointer;
    transition:background .15s,color .15s,border-color .15s;}
  .jr-toggle-btn.buy.active{background:var(--bull-dim);color:var(--bull);border-color:rgba(22,199,132,.4);}
  .jr-toggle-btn.sell.active{background:var(--bear-dim);color:var(--bear);border-color:rgba(234,57,67,.4);}

  .jr-mood-row{display:flex;gap:8px;flex-wrap:wrap;}
  .jr-mood-btn{display:flex;flex-direction:column;align-items:center;gap:5px;flex:1;min-width:80px;
    padding:11px 8px;border-radius:12px;border:1px solid var(--line2);background:var(--surface2);
    color:var(--muted);font-family:'Vazirmatn',sans-serif;font-size:11px;cursor:pointer;
    transition:background .15s,color .15s,border-color .15s;}
  .jr-mood-btn span{font-weight:600;}
  .jr-mood-btn:first-child{font-size:18px;}
  .jr-mood-btn.active{background:var(--gold-dim);color:var(--gold);border-color:rgba(240,185,11,.4);}

  .jr-checklist{display:flex;flex-direction:column;gap:9px;}
  .jr-check-item{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--muted);cursor:pointer;}
  .jr-check-item input{width:16px;height:16px;accent-color:var(--gold);cursor:pointer;flex-shrink:0;}
  .jr-check-item input:checked ~ span{color:var(--ink);}

  .jr-upload-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
  .jr-upload-btn{display:flex;align-items:center;gap:8px;height:42px;padding:0 18px;border-radius:11px;
    border:1px solid var(--line2);background:var(--surface2);color:var(--ink);
    font-family:'Vazirmatn',sans-serif;font-size:12.5px;cursor:pointer;transition:border-color .15s,color .15s;}
  .jr-upload-btn:hover{border-color:rgba(240,185,11,.4);color:var(--gold);}
  .jr-upload-preview{position:relative;width:64px;height:64px;border-radius:11px;overflow:hidden;
    border:1px solid var(--line2);flex-shrink:0;}
  .jr-upload-preview img{width:100%;height:100%;object-fit:cover;display:block;}
  .jr-upload-remove{position:absolute;top:-6px;left:-6px;width:20px;height:20px;border-radius:999px;
    border:none;background:var(--bear);color:#fff;font-size:13px;line-height:1;cursor:pointer;
    display:flex;align-items:center;justify-content:center;}

  .jr-submit-btn{margin-top:4px;height:48px;border:none;border-radius:12px;
    background:linear-gradient(90deg,var(--gold),#F7CA4D);color:#221A02;font-family:'Vazirmatn',sans-serif;
    font-size:14.5px;font-weight:700;cursor:pointer;transition:filter .15s,transform .1s;
    box-shadow:0 6px 20px rgba(240,185,11,.22);}
  .jr-submit-btn:hover{filter:brightness(1.06);}
  .jr-submit-btn:active{transform:scale(.99);}
  .jr-error{margin-top:2px;}

  .jr-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px;}
  .jr-filter-group{display:flex;gap:6px;flex-wrap:wrap;}
  .jr-filter-chip{padding:7px 15px;border-radius:999px;border:1px solid var(--line2);
    background:var(--surface);color:var(--muted);font-family:'Vazirmatn',sans-serif;font-size:12px;
    cursor:pointer;transition:background .15s,color .15s,border-color .15s;}
  .jr-filter-chip.active{background:linear-gradient(90deg,var(--gold),#F7CA4D);color:#221A02;
    border-color:transparent;font-weight:700;}
  .jr-filter-date{display:flex;align-items:center;gap:8px;}
  .jr-filter-date input{background:rgba(var(--input-rgb),.6);border:1px solid var(--line2);border-radius:9px;
    padding:7px 10px;color:var(--ink);font-family:'JetBrains Mono',monospace;font-size:12px;outline:none;}
  .jr-filter-clear{padding:7px 12px;border-radius:9px;border:1px solid var(--line2);background:var(--surface2);
    color:var(--muted);font-family:'Vazirmatn',sans-serif;font-size:11.5px;cursor:pointer;}

  .jr-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;}
  .jr-trade-card{position:relative;text-align:right;border-radius:16px;padding:16px 18px;cursor:pointer;
    background:rgba(var(--glass-rgb),.5);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
    border:1px solid var(--line2);transition:border-color .2s,transform .15s;
    animation:mhCardIn .4s cubic-bezier(.2,.8,.2,1) backwards;}
  .jr-trade-card:hover{border-color:rgba(240,185,11,.35);transform:translateY(-2px);}
  .jr-trade-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:8px;}
  .jr-trade-symbol{font-family:'JetBrains Mono',monospace;font-size:12.5px;font-weight:700;color:var(--gold);}
  .jr-badge{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;padding:3px 10px;
    border-radius:999px;flex-shrink:0;}
  .jr-badge.win{background:var(--bull-dim);color:var(--bull);}
  .jr-badge.loss{background:var(--bear-dim);color:var(--bear);}
  .jr-badge.be{background:var(--gold-dim);color:var(--gold);}
  .jr-trade-mid{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;gap:8px;}
  .jr-trade-side{font-size:11.5px;font-weight:700;padding:2px 9px;border-radius:7px;}
  .jr-trade-side.buy{background:var(--bull-dim);color:var(--bull);}
  .jr-trade-side.sell{background:var(--bear-dim);color:var(--bear);}
  .jr-trade-lot{font-family:'JetBrains Mono',monospace;font-size:11.5px;color:var(--muted);}
  .jr-trade-pnl{font-family:'JetBrains Mono',monospace;font-size:16px;font-weight:800;direction:ltr;text-align:right;}
  .jr-trade-pnl.up{color:var(--bull);}
  .jr-trade-pnl.down{color:var(--bear);}
  .jr-trade-date{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--muted2);margin-top:8px;}

  .jr-empty{display:none;text-align:center;padding:36px 16px;color:var(--muted);font-size:12.5px;
    border-radius:16px;border:1px solid var(--line2);background:rgba(var(--glass-rgb),.4);}

  @media (max-width:900px){.jr-form{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:600px){.jr-form{grid-template-columns:1fr;}}

  /* ---------- trade detail modal ---------- */
  .jr-modal-overlay{display:none;position:fixed;inset:0;z-index:80;background:rgba(5,7,10,.72);
    backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);align-items:center;justify-content:center;padding:20px;}
  .jr-modal-overlay.open{display:flex;}
  .jr-modal-card{position:relative;width:100%;max-width:460px;max-height:86vh;overflow-y:auto;
    border-radius:20px;padding:26px 24px 24px;background:rgba(var(--glass-rgb),.85);backdrop-filter:blur(22px);
    -webkit-backdrop-filter:blur(22px);border:1px solid rgba(240,185,11,.22);
    box-shadow:0 25px 70px rgba(0,0,0,.6), 0 0 50px rgba(240,185,11,.08);
    animation:lockIn .35s cubic-bezier(.2,.8,.2,1);}
  .jr-modal-close{position:absolute;top:14px;left:14px;width:30px;height:30px;border-radius:999px;
    border:1px solid var(--line2);background:var(--surface2);color:var(--muted);font-size:16px;line-height:1;
    cursor:pointer;display:flex;align-items:center;justify-content:center;}
  .jr-modal-close:hover{color:var(--ink);}
  .jr-modal-img{width:100%;border-radius:13px;margin-bottom:16px;border:1px solid var(--line2);display:block;}
  .jr-modal-row{display:flex;align-items:center;justify-content:space-between;padding:9px 0;
    border-bottom:1px solid var(--line);font-size:12.5px;}
  .jr-modal-row:last-of-type{border-bottom:none;}
  .jr-modal-row span:first-child{color:var(--muted);}
  .jr-modal-row span:last-child{font-family:'JetBrains Mono',monospace;font-weight:700;color:var(--ink);direction:ltr;}
  .jr-modal-note{margin:14px 0 0;font-size:12.5px;color:var(--muted);line-height:1.9;
    background:rgba(255,255,255,.02);border:1px solid var(--line2);border-radius:12px;padding:12px 14px;}
  .jr-modal-checks{display:flex;flex-direction:column;gap:6px;margin-top:12px;font-size:12px;color:var(--muted);}
  .jr-modal-analysis{display:flex;flex-direction:column;gap:8px;margin-top:14px;}
  .jr-modal-analysis-item{font-size:12px;line-height:1.8;padding:9px 12px;border-radius:10px;}
  .jr-modal-analysis-item.ok{background:var(--bull-dim);color:var(--bull);}
  .jr-modal-analysis-item.warn{background:var(--bear-dim);color:var(--bear);}
  .jr-modal-delete{margin-top:18px;width:100%;height:40px;border-radius:10px;border:1px solid rgba(234,57,67,.35);
    background:var(--bear-dim);color:var(--bear);font-family:'Vazirmatn',sans-serif;font-size:12.5px;
    font-weight:700;cursor:pointer;}
  .jr-modal-whiteboard{margin-top:18px;width:100%;height:42px;border-radius:10px;border:1px solid rgba(240,185,11,.35);
    background:var(--gold-dim);color:var(--gold);font-family:'Vazirmatn',sans-serif;font-size:12.5px;
    font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;}
  .jr-modal-whiteboard:hover{filter:brightness(1.1);}

  /* ---------- trading whiteboard ---------- */
  .jr-wb-overlay{display:none;position:fixed;inset:0;z-index:300;background:rgba(5,7,10,.9);
    backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);flex-direction:column;padding:14px;}
  .jr-wb-overlay.open{display:flex;}
  .jr-wb-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 4px 12px;flex-shrink:0;}
  .jr-wb-title{display:flex;align-items:center;gap:8px;color:var(--gold);font-weight:800;font-size:14px;}
  .jr-wb-title svg{flex-shrink:0;}
  .jr-wb-close{width:32px;height:32px;border-radius:999px;border:1px solid var(--line2);background:var(--surface2);
    color:var(--muted);font-size:17px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  .jr-wb-close:hover{color:var(--ink);}
  .jr-wb-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:10px;border-radius:14px;
    background:rgba(var(--glass-rgb),.85);border:1px solid var(--line2);margin-bottom:12px;flex-shrink:0;}
  .jr-wb-tool{width:34px;height:34px;border-radius:9px;border:1px solid var(--line2);background:var(--surface2);
    color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  .jr-wb-tool:hover{color:var(--ink);}
  .jr-wb-tool.active{border-color:var(--gold);color:var(--gold);background:var(--gold-dim);}
  .jr-wb-sep{width:1px;align-self:stretch;background:var(--line2);margin:2px 4px;flex-shrink:0;}
  .jr-wb-color{width:34px;height:34px;border-radius:9px;border:1px solid var(--line2);background:var(--surface2);
    padding:3px;cursor:pointer;flex-shrink:0;}
  .jr-wb-range{width:80px;accent-color:var(--gold);flex-shrink:0;}
  .jr-wb-upload-label{width:34px;height:34px;border-radius:9px;border:1px solid var(--line2);background:var(--surface2);
    color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  .jr-wb-upload-label:hover{color:var(--ink);}
  .jr-wb-clear{height:34px;padding:0 12px;border-radius:9px;border:1px solid rgba(234,57,67,.35);
    background:var(--bear-dim);color:var(--bear);font-family:'Vazirmatn',sans-serif;font-size:11.5px;font-weight:700;
    cursor:pointer;flex-shrink:0;}
  .jr-wb-canvas-wrap{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;
    border-radius:14px;overflow:hidden;background:#11151c;border:1px solid var(--line2);}
  #jrWbCanvas{background:#FFFFFF;max-width:100%;max-height:100%;touch-action:none;cursor:crosshair;
    border-radius:4px;}
  .jr-wb-hint{margin-top:8px;text-align:center;font-size:10.5px;color:var(--muted2);flex-shrink:0;}

  /* ---------- light theme ---------- */
  body.light-theme{
    --bg:#F3F5F8; --bg2:#FFFFFF; --surface:#FFFFFF; --surface2:#EEF1F5;
    --line:#DEE3E9; --line2:#CDD4DC;
    --ink:#161B22; --muted:#586472; --muted2:#8892A0; --faint:#C6CDD6;
    --bull:#0E9F63; --bull-dim:#E1F7EC;
    --bear:#D8313D; --bear-dim:#FBE6E7;
    --gold:#B8860B; --gold-dim:#FBF0D6;
    --bg-fade-rgb:243,245,248;
    --glass-rgb:255,255,255; --shell-rgb:255,255,255; --input-rgb:255,255,255;
  }
  body.light-theme .placeholder-card,
  body.light-theme .mh-card,
  body.light-theme .news-state,
  body.light-theme .news-card,
  body.light-theme .settings-card,
  body.light-theme .dash-card,
  body.light-theme .wcg-card,
  body.light-theme .calc-box,
  body.light-theme .jr-form-card,
  body.light-theme .jr-modal-card{
    box-shadow:0 8px 30px rgba(20,25,40,.08), 0 0 0 1px rgba(0,0,0,.02);
  }
  body.light-theme .topbar,
  body.light-theme .sidebar,
  body.light-theme .welcome-statusbar{
    border-color:var(--line);
  }
  body.light-theme .lock-input,
  body.light-theme .add-box input[type="time"]{color-scheme:light;}

  @media (max-width:767px){
    .menu-toggle{display:flex;}
    .sidebar{position:fixed;top:56px;bottom:0;right:0;z-index:40;
      transform:translateX(110%);transition:transform .25s ease;width:230px;border-radius:16px 0 0 0;}
    .sidebar.open{transform:translateX(0);}
    .sidebar-overlay.open{display:block;}
  }

  .header{padding:24px 20px 14px;flex-shrink:0;}
  .header-row{display:flex;align-items:baseline;justify-content:space-between;}
  .title{font-size:24px;font-weight:800;margin:0;letter-spacing:.3px;}
  .ticker-dot{display:inline-block;width:7px;height:7px;border-radius:999px;background:var(--bull);
    margin-left:8px;box-shadow:0 0 8px var(--bull);animation:pulse 2s ease-in-out infinite;}
  @keyframes pulse{0%,100%{opacity:1;}50%{opacity:.35;}}
  .clock{font-family:'JetBrains Mono',monospace;font-size:15px;font-weight:600;
    color:var(--gold);font-variant-numeric:tabular-nums;}
  .date{font-size:12px;color:var(--muted);margin:5px 0 0;}
  .progress-row{display:flex;align-items:center;gap:8px;margin-top:14px;}
  .progress-track{flex:1;height:5px;border-radius:999px;background:var(--line);overflow:hidden;}
  .progress-fill{height:100%;border-radius:999px;
    background:linear-gradient(90deg, var(--bull), #4EDB9E);transition:width .4s ease;}
  .progress-label{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted);flex-shrink:0;}

  .add-row{padding:0 20px 12px;flex-shrink:0;}
  .add-box{display:flex;align-items:center;gap:8px;border:1px solid var(--line);
    background:var(--surface);border-radius:14px;padding:9px 12px;
    box-shadow:0 2px 12px rgba(0,0,0,.25);}
  .add-box input[type="time"]{font-family:'JetBrains Mono',monospace;font-size:13px;
    background:var(--surface2);border:1px solid var(--line2);border-radius:8px;padding:6px 8px;
    color:var(--ink);color-scheme:dark;}
  .add-box input[type="text"]{flex:1;border:none;outline:none;background:transparent;
    font-family:'Vazirmatn',sans-serif;font-size:14px;color:var(--ink);}
  .add-box input[type="text"]::placeholder{color:var(--muted2);}
  .add-btn{flex-shrink:0;width:32px;height:32px;border-radius:10px;border:none;
    background:var(--bull);color:#06231A;display:flex;align-items:center;justify-content:center;
    cursor:pointer;transition:transform .1s;}
  .add-btn:active{transform:scale(.9);}
  .error{font-size:11px;color:var(--bear);margin:6px 2px 0;}

  .timeline-wrap{flex:1;overflow-y:auto;padding:8px 20px 40px;}
  .empty{margin-top:64px;text-align:center;color:var(--muted);font-size:14px;}
  .empty svg{margin:0 auto 12px;display:block;}

  .timeline{position:relative;}
  .rail{position:absolute;top:0;bottom:0;width:2px;right:6px;background:var(--line);}
  .hour-mark{position:absolute;right:18px;font-family:'JetBrains Mono',monospace;
    font-size:10px;color:var(--muted2);}

  .now-line{position:absolute;right:0;left:0;display:flex;align-items:center;gap:6px;z-index:20;}
  .now-dot{width:9px;height:9px;border-radius:999px;background:var(--gold);
    box-shadow:0 0 0 5px rgba(240,185,11,.2), 0 0 10px rgba(240,185,11,.6);margin-right:1px;flex-shrink:0;}
  .now-track{flex:1;height:1px;background:repeating-linear-gradient(90deg, var(--gold) 0 6px, transparent 6px 11px);}
  .now-label{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;
    background:var(--gold);color:#221A02;padding:2px 6px;border-radius:4px;flex-shrink:0;}

  .task{position:absolute;right:0;left:44px;display:flex;align-items:center;gap:8px;z-index:10;}
  .check{flex-shrink:0;width:15px;height:15px;border-radius:4px;border:2px solid var(--muted2);
    background:transparent;display:flex;align-items:center;justify-content:center;
    cursor:pointer;margin-right:-1px;padding:0;}
  .check.done{border-color:var(--bull);background:var(--bull);}
  .task-card{flex:1;display:flex;align-items:center;justify-content:space-between;gap:8px;
    border-radius:10px;padding:6px 12px;background:var(--surface);border:1px solid var(--line);min-width:0;}
  .task-card.done{background:var(--bg2);border-color:var(--line);}
  .task-info{min-width:0;}
  .task-title{font-size:14px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .task-title.done{color:var(--muted2);text-decoration:line-through;}
  .task-time{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--muted);}
  .del-btn{flex-shrink:0;border:none;background:transparent;color:var(--muted2);cursor:pointer;
    padding:2px;display:flex;}
  .del-btn:hover{color:var(--bear);}

  ::-webkit-scrollbar{width:6px;}
  ::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px;}

  /* ---------- login gate ---------- */
  .lock-screen{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;
    padding:20px;overflow:hidden;}

  .particles{position:fixed;inset:0;z-index:1;pointer-events:none;overflow:hidden;}
  .particle{position:absolute;border-radius:999px;background:radial-gradient(circle,var(--gold) 0%,rgba(240,185,11,0) 70%);
    opacity:0;animation:floatUp linear infinite;will-change:transform,opacity;}
  @keyframes floatUp{
    0%{transform:translate(0,0) scale(.6);opacity:0;}
    8%{opacity:.75;}
    92%{opacity:.5;}
    100%{transform:translate(var(--drift,20px),-120vh) scale(1.1);opacity:0;}
  }

  .light-sweep{position:fixed;inset:-20% -60%;z-index:2;pointer-events:none;
    background:linear-gradient(75deg, transparent 40%, rgba(240,185,11,.05) 47%, rgba(240,185,11,.16) 50%,
      rgba(240,185,11,.05) 53%, transparent 60%);
    transform:translateX(-60%);animation:sweep 7s ease-in-out infinite;}
  @keyframes sweep{
    0%{transform:translateX(-60%);}
    45%{transform:translateX(60%);}
    100%{transform:translateX(60%);}
  }

  .parallax-layer{position:fixed;inset:-2%;width:104%;height:104%;z-index:0;transition:transform .3s ease-out;will-change:transform;}

  .lock-card{width:100%;max-width:340px;background:rgba(18,22,30,.55);backdrop-filter:blur(22px);
    -webkit-backdrop-filter:blur(22px);border:1px solid rgba(240,185,11,.28);border-radius:22px;
    padding:38px 28px 30px;position:relative;z-index:5;
    box-shadow:0 0 0 1px rgba(255,255,255,.03), 0 25px 70px rgba(0,0,0,.6),
      0 0 60px rgba(240,185,11,.12), inset 0 1px 0 rgba(255,255,255,.05);
    text-align:center;animation:lockIn .7s cubic-bezier(.2,.8,.2,1);}
  .lock-card::before{content:"";position:absolute;inset:0;border-radius:22px;padding:1px;
    background:linear-gradient(135deg, rgba(240,185,11,.5), rgba(240,185,11,0) 30%, rgba(240,185,11,0) 70%, rgba(240,185,11,.35));
    -webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none;}
  @keyframes lockIn{from{opacity:0;transform:translateY(14px) scale(.97);}to{opacity:1;transform:none;}}

  .lock-icon{width:50px;height:50px;margin:0 auto 16px;border-radius:14px;
    background:linear-gradient(155deg,var(--gold-dim),rgba(240,185,11,.06));
    border:1px solid rgba(240,185,11,.3);
    display:flex;align-items:center;justify-content:center;color:var(--gold);
    box-shadow:0 0 24px rgba(240,185,11,.18);}

  .lock-wordmark{font-family:'Cinzel',serif;font-size:22px;font-weight:700;margin:0;
    letter-spacing:3px;background:linear-gradient(90deg,#F7CA4D,#F0B90B 40%,#C9970A 60%,#F7CA4D);
    background-size:220% auto;-webkit-background-clip:text;background-clip:text;color:transparent;
    animation:shine 5s linear infinite;}
  @keyframes shine{to{background-position:-220% center;}}
  .lock-tag{font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:3px;
    color:var(--muted2);margin:5px 0 0;text-transform:uppercase;}

  .lock-sub{font-size:12px;color:var(--muted);margin:16px 0 22px;}
  .lock-label{display:block;text-align:right;font-size:11px;color:var(--muted);margin:0 0 8px;
    letter-spacing:.3px;}
  .lock-input{width:100%;background:rgba(26,32,41,.7);border:1px solid var(--line2);border-radius:11px;
    padding:12px 12px;color:var(--ink);font-family:'JetBrains Mono',monospace;font-size:17px;
    letter-spacing:4px;text-align:center;outline:none;transition:border-color .15s,box-shadow .15s;}
  .lock-input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(240,185,11,.12);}
  .lock-input.shake{animation:shake .35s;border-color:var(--bear);}
  @keyframes shake{10%,90%{transform:translateX(-1px);}20%,80%{transform:translateX(2px);}
    30%,50%,70%{transform:translateX(-4px);}40%,60%{transform:translateX(4px);}}
  .lock-btn{width:100%;margin-top:16px;background:linear-gradient(90deg,var(--gold),#F7CA4D);
    color:#221A02;border:none;border-radius:11px;padding:12px;font-family:'Vazirmatn',sans-serif;
    font-size:14px;font-weight:700;cursor:pointer;transition:transform .1s,box-shadow .2s;
    box-shadow:0 6px 20px rgba(240,185,11,.22);}
  .lock-btn:hover{box-shadow:0 8px 26px rgba(240,185,11,.32);}
  .lock-btn:active{transform:scale(.98);}
  .lock-msg{font-size:12px;color:var(--bear);margin:12px 0 0;min-height:16px;opacity:0;
    transition:opacity .2s;}
  .lock-msg.show{opacity:1;}

  .lock-input:disabled,.lock-btn:disabled{opacity:.4;cursor:not-allowed;}

  .lock-timer{display:none;position:relative;width:54px;height:54px;margin:16px auto 0;
    align-items:center;justify-content:center;}
  .lock-timer.show{display:flex;}
  .lock-timer-ring{transform:rotate(-90deg);}
  .lock-timer-progress{stroke-dashoffset:0;}
  .lock-timer.show .lock-timer-progress{animation:ringDrain 30s linear forwards;}
  @keyframes ringDrain{from{stroke-dashoffset:0;}to{stroke-dashoffset:144.5;}}
  .lock-timer-num{position:absolute;font-family:'JetBrains Mono',monospace;font-size:14px;
    font-weight:700;color:var(--gold);}

  .lock-version{margin:18px 0 0;font-family:'JetBrains Mono',monospace;font-size:9.5px;
    letter-spacing:1.5px;color:var(--muted2);opacity:.55;}

  /* ---------- welcome screen ---------- */
  .welcome-screen{position:fixed;inset:0;z-index:95;display:none;flex-direction:column;
    align-items:center;justify-content:center;padding:20px;overflow:hidden;}
  .welcome-screen.fade-out{animation:welcomeFadeOut .5s ease forwards;}
  @keyframes welcomeFadeOut{to{opacity:0;}}

  .welcome-center{text-align:center;opacity:0;position:relative;z-index:5;}
  .welcome-center.play{animation:welcomeIn .7s cubic-bezier(.2,.8,.2,1) forwards;}
  @keyframes welcomeIn{from{opacity:0;transform:scale(.92);}to{opacity:1;transform:none;}}
  .welcome-title{font-family:'Cinzel',serif;font-size:25px;font-weight:700;letter-spacing:4px;
    margin:0 0 10px;background:linear-gradient(90deg,#F7CA4D,#F0B90B 50%,#C9970A);
    background-size:220% auto;-webkit-background-clip:text;background-clip:text;color:transparent;
    animation:shine 5s linear infinite;}
  .welcome-sub{font-family:'JetBrains Mono',monospace;font-size:11.5px;letter-spacing:1px;
    color:var(--muted);margin:0 0 26px;}
  .welcome-bar-track{width:220px;height:4px;border-radius:999px;background:var(--line);
    overflow:hidden;margin:0 auto;}
  .welcome-bar-fill{height:100%;width:0%;border-radius:999px;
    background:linear-gradient(90deg,var(--gold),#F7CA4D);}
  .welcome-bar-fill.fill{animation:welcomeBarGrow 2.5s cubic-bezier(.4,0,.2,1) forwards;}
  @keyframes welcomeBarGrow{from{width:0%;}to{width:100%;}}

  .welcome-statusbar{position:absolute;bottom:0;left:0;right:0;z-index:5;direction:ltr;
    display:flex;align-items:center;justify-content:space-between;gap:14px;
    padding:14px 20px;background:rgba(var(--shell-rgb),.5);backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);border-top:1px solid rgba(240,185,11,.14);flex-wrap:wrap;}
  .ws-left,.ws-center,.ws-right{display:flex;flex-direction:column;gap:3px;min-width:0;}
  .ws-center{align-items:center;text-align:center;}
  .ws-right{align-items:flex-end;text-align:right;}
  .ws-row1,.ws-row2{display:flex;align-items:center;gap:8px;}
  .ws-symbol{font-family:'JetBrains Mono',monospace;font-size:11.5px;font-weight:700;color:var(--gold);}
  .ws-price{font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:700;color:var(--ink);transition:color .2s;}
  .ws-price.unavailable{color:var(--muted2);font-size:11px;font-weight:600;letter-spacing:.2px;}
  .ws-price.loading{color:var(--muted);}
  .ws-change{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;}
  .ws-change.up{color:var(--bull);}
  .ws-change.down{color:var(--bear);}
  .ws-updated{font-family:'JetBrains Mono',monospace;font-size:9.5px;color:var(--muted2);}
  .ws-label{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:1px;
    color:var(--muted2);text-transform:uppercase;}
  .ws-market-status{font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:700;}
  .ws-market-status.open{color:var(--bull);}
  .ws-market-status.closed{color:var(--muted2);}
  .ws-sessions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;}
  .ws-session{font-family:'JetBrains Mono',monospace;font-size:9.5px;color:var(--muted2);
    padding:2px 7px;border-radius:999px;border:1px solid transparent;}
  .ws-session.active{color:var(--gold);border-color:rgba(240,185,11,.3);
    background:var(--gold-dim);font-weight:700;}

  @media (max-width:520px){
    .welcome-statusbar{justify-content:center;gap:18px 26px;}
    .ws-center{order:-1;flex-basis:100%;}
  }
  .app.hidden{display:none;}
