/* TourCalc Responsive Navigation v1.3.4.2 MOBILE FIX */
:root{
    --tc-nav-bg:#0c2b50;
    --tc-nav-bg-2:#103a6a;
    --tc-nav-border:rgba(255,255,255,.12);
    --tc-nav-text:#f7fbff;
    --tc-nav-muted:#a9bfd7;
    --tc-nav-accent:#38a9ff;
    --tc-drawer-text:#15283f;
    --tc-drawer-muted:#8390a3;
}

.tc-shell-header{
    position:sticky;top:0;z-index:1200;
    background:linear-gradient(100deg,var(--tc-nav-bg),#113963 74%,#0d2f56);
    box-shadow:0 10px 34px rgba(4,27,52,.20);
    color:#fff;
}
.tc-shell-inner{
    min-height:82px;
    width:100%;
    padding:0 26px;
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:22px;
}
.tc-shell-brand{
    display:flex;align-items:center;gap:12px;color:#fff!important;
    min-width:max-content;text-decoration:none!important;
}
.tc-shell-brand-mark{
    width:44px;height:44px;border-radius:12px;display:grid;place-items:center;
    flex:0 0 44px;font-size:17px;font-weight:900;letter-spacing:-.02em;
    background:linear-gradient(145deg,#2458a5,#173d7e);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.20),0 8px 18px rgba(0,0,0,.14);
}
.tc-shell-brand-copy{display:flex;flex-direction:column;line-height:1.1}
.tc-shell-brand-copy strong{font-size:17px;font-weight:850;letter-spacing:-.02em}
.tc-shell-brand-copy small{margin-top:5px;color:var(--tc-nav-muted);font-size:11px;font-weight:550}

.tc-desktop-nav{
    display:flex;align-items:stretch;justify-content:flex-start;
    min-width:0;height:82px;overflow:visible;
}
.tc-desktop-nav-item{
    position:relative;display:flex;align-items:center;justify-content:center;gap:7px;
    min-width:0;padding:0 10px;color:#d7e5f3!important;text-decoration:none!important;
    font-size:12px;font-weight:720;white-space:nowrap;
    transition:background .16s ease,color .16s ease;
}
.tc-desktop-nav-item svg{
    width:19px;height:19px;flex:0 0 19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;
}
.tc-desktop-nav-item span{display:flex;flex-direction:column;line-height:1.05}
.tc-desktop-nav-item b{font:inherit;font-size:10px;color:#9fb8d1;margin-top:3px}
.tc-desktop-nav-item:hover{background:rgba(255,255,255,.08);color:#fff!important}
.tc-desktop-nav-item.active{color:#fff!important;background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.015))}
.tc-desktop-nav-item.active:after{
    content:"";position:absolute;height:3px;border-radius:999px;left:12px;right:12px;bottom:0;background:var(--tc-nav-accent);box-shadow:0 -2px 10px rgba(56,169,255,.45);
}

.tc-desktop-profile{
    height:58px;padding-left:20px;border-left:1px solid var(--tc-nav-border);
    display:flex;align-items:center;gap:10px;min-width:185px;
}
.tc-profile-avatar{
    width:39px;height:39px;border-radius:50%;display:grid;place-items:center;flex:0 0 39px;
    background:#f8fbff;color:#12365d;font-weight:900;font-size:14px;
    box-shadow:0 0 0 3px rgba(255,255,255,.10);
}
.tc-profile-copy{display:flex;flex-direction:column;min-width:0;flex:1}
.tc-profile-copy strong{font-size:12px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:125px}
.tc-profile-copy small{font-size:10px;color:var(--tc-nav-muted);margin-top:3px}
.tc-profile-logout{
    width:34px;height:34px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:rgba(255,255,255,.06);color:#dbe8f5;display:grid;place-items:center;
}
.tc-profile-logout:hover{background:rgba(255,255,255,.13);color:#fff}
.tc-profile-logout svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tc-mobile-menu-button{display:none}

.tc-mobile-drawer,.tc-mobile-overlay{display:none}
.tc-shell-content{position:relative}

@media (max-width:1420px){
    .tc-shell-inner{padding:0 18px;gap:13px}
    .tc-shell-brand-copy small{display:none}
    .tc-shell-brand-mark{width:40px;height:40px;flex-basis:40px}
    .tc-desktop-nav-item{padding:0 8px;font-size:11px;gap:5px}
    .tc-desktop-nav-item svg{width:17px;height:17px;flex-basis:17px}
    .tc-desktop-profile{min-width:150px;padding-left:13px}
    .tc-profile-copy strong{max-width:92px}
}

@media (max-width:1210px){
    .tc-shell-brand-copy{display:none}
    .tc-desktop-nav-item{padding:0 7px}
    .tc-desktop-nav-item b{display:none}
    .tc-desktop-profile{min-width:128px}
    .tc-profile-copy small{display:none}
}

@media (max-width:1099px){
    .tc-shell-inner{min-height:68px;grid-template-columns:1fr auto;padding:0 16px;gap:12px}
    .tc-shell-brand-copy{display:flex}
    .tc-shell-brand-copy small{display:block}
    .tc-shell-brand-mark{width:40px;height:40px;flex-basis:40px;border-radius:11px}
    .tc-shell-brand-copy strong{font-size:16px}
    .tc-shell-brand-copy small{font-size:10px;margin-top:4px}
    .tc-desktop-nav,.tc-desktop-profile{display:none!important}
    .tc-mobile-menu-button{
        display:flex;width:44px;height:44px;align-items:center;justify-content:center;flex-direction:column;gap:5px;
        border:0;border-radius:11px;background:rgba(255,255,255,.07);color:#fff;padding:0;
        cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;
    }
    .tc-mobile-menu-button:hover{background:rgba(255,255,255,.13)}
    .tc-mobile-menu-button span{width:22px;height:2px;border-radius:999px;background:#fff;display:block}

    /*
     * MOBILE FIX: overlay/drawer yang tertutup TIDAK BOLEH menangkap tap.
     * v1.3.4 sebelumnya memiliki overlay full-screen opacity:0 dengan z-index
     * di atas header. Secara visual tidak terlihat, tetapi tetap menutup semua
     * tombol pada layar mobile.
     */
    .tc-mobile-overlay{
        display:block;position:fixed;inset:0;z-index:1240;
        background:rgba(5,18,33,.56);backdrop-filter:blur(2px);
        opacity:0;visibility:hidden;pointer-events:none;
        transition:opacity .18s ease,visibility .18s ease;
    }
    .tc-mobile-overlay.visible{
        opacity:1;visibility:visible;pointer-events:auto;
    }
    .tc-mobile-drawer{
        display:flex;position:fixed;z-index:1250;top:0;right:0;bottom:0;width:min(390px,91vw);
        background:#fff;color:var(--tc-drawer-text);flex-direction:column;
        box-shadow:-24px 0 60px rgba(4,25,45,.25);
        transform:translateX(105%);visibility:hidden;pointer-events:none;
        transition:transform .20s ease,visibility .20s ease;
    }
    .tc-mobile-drawer.open{
        transform:translateX(0);visibility:visible;pointer-events:auto;
    }
    .tc-mobile-drawer-head{
        min-height:76px;padding:14px 17px;display:flex;align-items:center;justify-content:space-between;gap:12px;
        background:linear-gradient(110deg,#0c2b50,#123f72);color:#fff;
    }
    .tc-mobile-drawer-brand{display:flex;align-items:center;gap:11px;min-width:0}
    .tc-mobile-drawer-brand>div{display:flex;flex-direction:column;min-width:0}
    .tc-mobile-drawer-brand strong{font-size:15px;color:#fff}
    .tc-mobile-drawer-brand small{font-size:10px;color:#abc2db;margin-top:3px}
    .tc-mobile-drawer-close{width:38px;height:38px;border:0;border-radius:10px;background:rgba(255,255,255,.08);color:#fff;font-size:28px;line-height:1}
    .tc-mobile-menu-scroll{flex:1;overflow-y:auto;padding:12px 16px 18px;overscroll-behavior:contain}
    .tc-mobile-menu-group{padding:7px 0 10px;border-bottom:1px solid #e7edf4}
    .tc-mobile-menu-group:last-child{border-bottom:0}
    .tc-mobile-menu-group p{margin:8px 9px 5px;color:#8592a5;font-size:9px;font-weight:850;letter-spacing:.10em}
    .tc-mobile-menu-group a{
        min-height:48px;display:grid;grid-template-columns:31px minmax(0,1fr) 18px;gap:8px;align-items:center;
        border-radius:11px;padding:5px 8px;color:#20334b!important;text-decoration:none!important;
        transition:.14s ease;
    }
    .tc-mobile-menu-group a:hover{background:#f3f7fb}
    .tc-mobile-menu-group a.active{background:#edf6ff;color:#0f62ad!important;box-shadow:inset 3px 0 0 #319fe8}
    .tc-mobile-menu-group a strong{font-size:13px;font-weight:760}
    .tc-mobile-menu-icon{width:30px;height:30px;display:grid;place-items:center;color:#193d67}
    .tc-mobile-menu-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
    .tc-mobile-menu-arrow{justify-self:end;color:#8b98aa;font-size:25px;font-weight:300;line-height:1}
    .tc-mobile-profile{padding:14px 17px 17px;border-top:1px solid #e0e8f0;background:#fbfcfe}
    .tc-mobile-profile-main{display:flex;align-items:center;gap:11px;margin-bottom:12px}
    .tc-mobile-profile-main>div{display:flex;flex-direction:column;min-width:0}
    .tc-mobile-profile-main strong{font-size:13px;color:#1c314b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .tc-mobile-profile-main small{font-size:10px;color:#7f8ea1;margin-top:3px}
    .tc-mobile-logout{
        width:100%;height:42px;border:1px solid #f2c6c6;border-radius:10px;background:#fff5f5;color:#c52e2e;display:flex;align-items:center;justify-content:center;gap:8px;font-weight:750;font-size:12px;
    }
    .tc-mobile-logout svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
    body.tc-mobile-menu-open{overflow:hidden}
}

@media (max-width:520px){
    .tc-shell-inner{min-height:64px;padding:0 12px}
    .tc-shell-brand{gap:9px}
    .tc-shell-brand-mark{width:37px;height:37px;flex-basis:37px;font-size:15px}
    .tc-shell-brand-copy strong{font-size:15px}
    .tc-shell-brand-copy small{font-size:9px}
    .tc-mobile-menu-button{width:41px;height:41px}
    .tc-mobile-drawer{width:92vw}
}

@media (prefers-reduced-motion: reduce){
    .tc-mobile-drawer,.tc-mobile-overlay,.tc-desktop-nav-item{transition:none!important}
}

/* Touch targets: prevent delayed/accidental tap behavior on mobile */
@media (max-width:1099px){
  .tc-mobile-drawer button,.tc-mobile-drawer a,.tc-mobile-menu-button{touch-action:manipulation;-webkit-tap-highlight-color:transparent;}
}
