/* Control ANDRIK v55.00f — landscape map, monthly archive and end-of-page pull gesture. */
.map-monthly-open,
.map-end-pull-zone{display:none}

@media (orientation:landscape){
  /* The map page must scroll vertically before the admin drawer gesture is armed. */
  .analytics-v54-46-page .analytics-map-pane{
    height:var(--analytics-swipe-height)!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-y:contain!important;
    touch-action:none!important;
    scroll-behavior:smooth;
  }
  .analytics-v54-46-page .analytics-map-pane .analytics-map-pane-wrap{
    box-sizing:border-box!important;
    width:100%!important;
    height:auto!important;
    min-height:calc(var(--analytics-swipe-height) + 112px)!important;
    max-height:none!important;
    overflow:visible!important;
    padding-top:8px!important;
    padding-bottom:18px!important;
  }

  /* Landscape-only pyramid title: every line remains inside the visual triangle. */
  .analytics-v54-46-page .world-map-card>.map-landscape-title-row{
    position:relative!important;
    display:block!important;
    box-sizing:border-box!important;
    width:100%!important;
    min-height:116px!important;
    margin:0 0 7px!important;
    padding:4px clamp(122px,16vw,190px) 0!important;
    overflow:hidden!important;
  }
  .analytics-v54-46-page .map-title-pyramid{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:flex-start!important;
    width:100%!important;
    max-width:820px!important;
    min-width:0!important;
    margin:0 auto!important;
    text-align:center!important;
  }
  .analytics-v54-46-page .map-title-pyramid>.eyeline{
    display:block!important;
    width:42%!important;
    min-width:150px!important;
    max-width:310px!important;
    margin:0 auto 4px!important;
    text-align:center!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:clip!important;
    font-size:clamp(.68rem,1.25vw,.92rem)!important;
    letter-spacing:.24em!important;
  }
  .analytics-v54-46-page .map-title-pyramid>h2{
    display:block!important;
    width:72%!important;
    max-width:620px!important;
    min-width:0!important;
    margin:0 auto 4px!important;
    text-align:center!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:clip!important;
    font-size:clamp(2rem,4.6vw,3.25rem)!important;
    line-height:.98!important;
    letter-spacing:-.045em!important;
  }
  .analytics-v54-46-page .map-title-pyramid>p{
    display:block!important;
    width:100%!important;
    max-width:780px!important;
    min-width:0!important;
    margin:0 auto!important;
    text-align:center!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:clip!important;
    font-size:clamp(.78rem,1.7vw,1.12rem)!important;
    line-height:1.18!important;
  }

  /* Total balances the calendar on the opposite side. */
  .analytics-v54-46-page .world-map-total{
    left:12px!important;
    right:auto!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    max-width:clamp(105px,14vw,168px)!important;
    min-height:44px!important;
    padding:0 14px!important;
    gap:6px!important;
    justify-content:center!important;
    border-color:rgba(112,206,244,.25)!important;
    background:linear-gradient(180deg,rgba(9,28,40,.9),rgba(4,15,23,.92))!important;
    box-shadow:0 12px 30px rgba(0,0,0,.28),inset 0 0 0 1px rgba(255,255,255,.025)!important;
  }
  .analytics-v54-46-page .world-map-total span{font-size:clamp(.65rem,1.1vw,.82rem)!important}
  .analytics-v54-46-page .world-map-total strong{font-size:clamp(.88rem,1.5vw,1.08rem)!important}

  .map-monthly-open{
    position:absolute;
    top:50%;
    right:14px;
    z-index:12;
    display:grid;
    place-items:center;
    width:56px;
    height:56px;
    min-width:56px;
    padding:0;
    transform:translateY(-50%);
    border:1px solid rgba(82,238,146,.62);
    border-radius:50%;
    background:
      radial-gradient(circle at 34% 28%,rgba(138,255,190,.18),transparent 36%),
      linear-gradient(145deg,rgba(11,51,38,.96),rgba(3,19,21,.98));
    color:#79f0a9;
    box-shadow:0 0 0 7px rgba(70,238,141,.045),0 0 27px rgba(57,238,132,.24),inset 0 0 16px rgba(118,255,179,.08),0 13px 26px rgba(0,0,0,.34);
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
    transition:transform .18s ease,filter .18s ease,box-shadow .18s ease;
  }
  .map-monthly-open::before{
    content:'';
    position:absolute;
    inset:5px;
    border:1px solid rgba(154,255,196,.14);
    border-radius:inherit;
    pointer-events:none;
  }
  .map-monthly-open svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .map-monthly-open:active{transform:translateY(-50%) scale(.92);filter:brightness(1.18)}

  .analytics-v54-46-page .analytics-map-pane .world-map-shell{margin-top:4px!important}

  /* A real end zone makes the page scroll to its end before the next pull can open the menu. */
  .map-end-pull-zone{
    --map-end-pull:0px;
    position:relative;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    min-height:104px;
    margin:4px 0 0;
    padding:14px 16px calc(17px + env(safe-area-inset-bottom));
    color:#7f9aaa;
    text-align:center;
    opacity:.9;
    transform:translateY(calc(var(--map-end-pull) * -.16));
    transition:transform .28s cubic-bezier(.18,.82,.24,1),color .2s ease,opacity .2s ease;
  }
  .map-end-pull-zone::before{
    content:'';
    position:absolute;
    top:8px;
    left:12%;
    right:12%;
    height:1px;
    background:linear-gradient(90deg,transparent,rgba(106,220,255,.48),transparent);
    box-shadow:0 0 18px rgba(82,212,255,.22);
  }
  .map-end-pull-spring{
    position:relative;
    width:54px;
    height:36px;
    margin-bottom:4px;
    transform:translateY(calc(var(--map-end-pull) * -.30)) scale(calc(1 + var(--map-end-progress,0) * .07));
    transition:transform .24s cubic-bezier(.2,.8,.2,1);
  }
  .map-end-chevron{
    position:absolute;
    left:50%;
    top:6px;
    transform:translateX(-50%);
    color:#75ddff;
    font-size:1.75rem;
    font-weight:500;
    line-height:1;
    text-shadow:0 0 17px rgba(95,220,255,.66);
  }
  .map-end-chevron.is-second{top:16px;opacity:.48}
  .map-end-pull-zone strong{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:800}
  body.is-map-end-pulling .map-end-pull-zone{color:#bcf1ff;opacity:1}
  body.is-map-end-ready .map-end-pull-zone{color:#83f2b0}
  body.is-map-end-ready .map-end-chevron{color:#82f0ad;text-shadow:0 0 22px rgba(87,244,151,.8)}
  body.is-map-end-bouncing .map-end-pull-zone{animation:andrikMapEndBounce .46s cubic-bezier(.18,.86,.27,1)}
  @keyframes andrikMapEndBounce{
    0%{transform:translateY(-18px)}
    38%{transform:translateY(7px)}
    67%{transform:translateY(-3px)}
    100%{transform:translateY(0)}
  }

  /* Monthly archive overlay. */
  .map-monthly-modal:not([hidden]){
    position:fixed;
    inset:0;
    z-index:2147483600;
    display:grid;
    place-items:center;
    padding:max(12px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));
    perspective:1300px;
  }
  .map-monthly-backdrop{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    border:0;
    background:rgba(0,5,9,.74);
    backdrop-filter:blur(10px) saturate(.82);
    -webkit-backdrop-filter:blur(10px) saturate(.82);
  }
  .map-monthly-panel{
    position:relative;
    z-index:2;
    box-sizing:border-box;
    width:min(930px,94vw);
    max-height:min(620px,88dvh);
    overflow:hidden;
    border:1px solid rgba(128,205,236,.26);
    border-radius:28px;
    background:
      radial-gradient(circle at 83% 10%,rgba(66,236,142,.10),transparent 27%),
      linear-gradient(145deg,rgba(10,25,36,.985),rgba(3,11,18,.992));
    box-shadow:0 36px 100px rgba(0,0,0,.72),0 0 0 1px rgba(255,255,255,.025),0 0 44px rgba(64,210,255,.08);
    transform-origin:center;
    animation:andrikMonthlyIn .28s cubic-bezier(.18,.88,.24,1.08);
  }
  @keyframes andrikMonthlyIn{from{opacity:0;transform:translateY(18px) rotateX(-5deg) scale(.965)}to{opacity:1;transform:none}}
  .map-monthly-header{
    display:grid;
    grid-template-columns:54px minmax(0,1fr) 46px;
    align-items:center;
    gap:14px;
    padding:18px 20px 15px;
    border-bottom:1px solid rgba(132,201,229,.13);
    background:linear-gradient(180deg,rgba(17,38,51,.72),rgba(7,20,29,.42));
  }
  .map-monthly-heading-icon{
    display:grid;
    place-items:center;
    width:50px;
    height:50px;
    border:1px solid rgba(83,232,147,.34);
    border-radius:17px;
    color:#75e9a5;
    background:rgba(15,58,43,.42);
    box-shadow:inset 0 0 17px rgba(86,245,154,.07),0 0 20px rgba(55,236,137,.08);
  }
  .map-monthly-heading-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
  .map-monthly-header>div:nth-child(2){min-width:0}
  .map-monthly-header span{display:block;color:#72dbff;font-size:.62rem;font-weight:900;letter-spacing:.22em}
  .map-monthly-header h2{margin:3px 0 2px;color:#f5fbff;font-size:clamp(1.35rem,2.6vw,2rem);line-height:1.05}
  .map-monthly-header p{margin:0;color:#8fa9b8;font-size:.74rem;line-height:1.25}
  .map-monthly-close{
    display:grid;
    place-items:center;
    width:44px;
    height:44px;
    padding:0;
    border:1px solid rgba(144,205,229,.23);
    border-radius:50%;
    background:rgba(13,31,42,.88);
    color:#d7eaf3;
    font:300 1.7rem/1 system-ui;
  }
  .map-monthly-content{
    display:grid;
    grid-template-columns:minmax(235px,.72fr) minmax(370px,1.28fr);
    gap:15px;
    padding:16px;
    max-height:calc(min(620px,88dvh) - 102px);
    overflow:auto;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y!important;
  }
  .map-monthly-list{display:grid;align-content:start;gap:9px;min-width:0}
  .map-month-row{
    display:grid;
    grid-template-columns:11px minmax(0,1fr) auto;
    align-items:center;
    gap:10px;
    min-height:52px;
    padding:0 14px;
    border:1px solid rgba(125,197,226,.14);
    border-radius:16px;
    background:linear-gradient(180deg,rgba(14,35,47,.82),rgba(7,21,30,.88));
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.018);
  }
  .map-month-row.is-current{border-color:rgba(82,238,143,.62);box-shadow:0 0 20px rgba(61,236,140,.12),inset 0 0 15px rgba(77,241,145,.045)}
  .map-month-dot{width:7px;height:7px;border-radius:50%;background:#68e59d;box-shadow:0 0 12px rgba(86,236,148,.72)}
  .map-month-copy{min-width:0}
  .map-month-copy strong{display:block;color:#eaf7fd;font-size:.88rem;line-height:1.1}
  .map-month-copy small{display:block;margin-top:3px;color:#738d9b;font-size:.61rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .map-month-value{color:#dff8ff;font-size:1rem;font-weight:900;font-variant-numeric:tabular-nums;white-space:nowrap}
  .map-monthly-empty{padding:22px;border:1px dashed rgba(133,201,228,.19);border-radius:18px;color:#86a0ae;text-align:center;line-height:1.45}
  .map-monthly-chart-card{
    min-width:0;
    padding:14px 15px 12px;
    border:1px solid rgba(125,197,226,.15);
    border-radius:21px;
    background:linear-gradient(180deg,rgba(8,25,35,.82),rgba(3,13,20,.9));
    box-shadow:inset 0 0 28px rgba(45,181,230,.025);
  }
  .map-monthly-chart-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
  .map-monthly-chart-head span{color:#6fd8ff;font-size:.59rem;font-weight:900;letter-spacing:.21em}
  .map-monthly-chart-head strong{color:#b9d5e2;font-size:.72rem}
  .map-monthly-chart{
    position:relative;
    min-height:250px;
    overflow:hidden;
    border-radius:16px;
    background:
      repeating-linear-gradient(to top,rgba(130,200,228,.075) 0 1px,transparent 1px 25%),
      radial-gradient(circle at 70% 30%,rgba(43,229,138,.08),transparent 34%),
      rgba(2,12,18,.72);
    perspective:800px;
  }
  .map-monthly-bars{
    position:absolute;
    inset:20px 16px 31px 48px;
    display:flex;
    align-items:flex-end;
    justify-content:space-around;
    gap:10px;
    transform:rotateX(2deg);
    transform-origin:bottom;
  }
  .map-monthly-axis{position:absolute;left:10px;top:15px;bottom:31px;width:34px;display:flex;flex-direction:column;justify-content:space-between;color:#647e8c;font-size:.58rem;text-align:right;font-variant-numeric:tabular-nums}
  .map-month-column{position:relative;flex:1 1 0;max-width:66px;height:100%;display:flex;align-items:flex-end;justify-content:center}
  .map-month-bar{
    position:relative;
    width:min(38px,70%);
    min-height:7px;
    border:1px solid rgba(131,255,187,.42);
    border-radius:8px 8px 3px 3px;
    background:linear-gradient(180deg,rgba(114,244,173,.92),rgba(32,174,203,.48) 64%,rgba(22,86,115,.38));
    box-shadow:0 0 17px rgba(62,232,147,.24),inset 7px 0 12px rgba(255,255,255,.08),inset -7px 0 12px rgba(0,26,31,.17);
    transform:translateZ(16px);
    transform-origin:bottom;
    animation:andrikBarRise .52s cubic-bezier(.18,.82,.25,1) both;
  }
  .map-month-bar::after{
    content:'';
    position:absolute;
    left:5px;
    right:5px;
    top:-4px;
    height:7px;
    border-radius:50%;
    background:rgba(152,255,199,.86);
    filter:blur(.2px);
    box-shadow:0 0 14px rgba(91,246,159,.65);
  }
  @keyframes andrikBarRise{from{height:5%!important;opacity:.35}to{opacity:1}}
  .map-month-column em{position:absolute;bottom:calc(var(--bar-height) + 8px);left:50%;transform:translateX(-50%);color:#d8faff;font-size:.64rem;font-style:normal;font-weight:900;white-space:nowrap;text-shadow:0 0 11px rgba(72,225,255,.42)}
  .map-month-column small{position:absolute;left:50%;bottom:-24px;transform:translateX(-50%);width:78px;color:#7893a2;font-size:.59rem;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  body.is-map-monthly-open{overflow:hidden!important}
}

@media (orientation:landscape) and (max-width:960px){
  .analytics-v54-46-page .world-map-card>.map-landscape-title-row{
    min-height:100px!important;
    padding-left:112px!important;
    padding-right:82px!important;
  }
  .analytics-v54-46-page .map-title-pyramid>.eyeline{font-size:.62rem!important;margin-bottom:2px!important}
  .analytics-v54-46-page .map-title-pyramid>h2{width:82%!important;font-size:clamp(1.82rem,5.1vw,2.7rem)!important;margin-bottom:3px!important}
  .analytics-v54-46-page .map-title-pyramid>p{font-size:clamp(.66rem,1.65vw,.88rem)!important}
  .analytics-v54-46-page .world-map-total{left:7px!important;min-height:38px!important;padding:0 10px!important;max-width:104px!important}
  .map-monthly-open{right:8px;width:48px;height:48px;min-width:48px}
  .map-monthly-open svg{width:23px;height:23px}
  .map-monthly-panel{width:min(850px,96vw);max-height:91dvh}
  .map-monthly-header{grid-template-columns:44px minmax(0,1fr) 40px;padding:13px 15px 11px;gap:10px}
  .map-monthly-heading-icon{width:42px;height:42px;border-radius:14px}
  .map-monthly-header p{font-size:.65rem}
  .map-monthly-close{width:38px;height:38px}
  .map-monthly-content{grid-template-columns:minmax(205px,.68fr) minmax(330px,1.32fr);gap:11px;padding:11px;max-height:calc(91dvh - 83px)}
  .map-month-row{min-height:45px;padding:0 10px}
  .map-monthly-chart{min-height:218px}
}

@media (orientation:landscape) and (max-height:470px){
  .analytics-v54-46-page .world-map-card>.map-landscape-title-row{min-height:88px!important}
  .analytics-v54-46-page .map-title-pyramid>h2{font-size:clamp(1.7rem,4.7vw,2.35rem)!important}
  .map-end-pull-zone{min-height:86px}
  .map-monthly-header p{display:none}
  .map-monthly-chart{min-height:190px}
  .map-monthly-content{max-height:calc(91dvh - 68px)}
}
