  :root{
    --navy:#00264d; --navy-light:#004080; --navy-pale:#e9eff6; --navy-pale-2:#dbe5f0;
    --orange:#ef7e1a; --orange-light:#ff9a45; --orange-pale:#fef1e2;
    --ink:#0a1626; --muted:#5c6b80; --paper:#ffffff; --paper-2:#f6f8fb;
    --line:#e2e8f0; --line-strong:#cbd6e3;
    --display:"Playfair Display","Times New Roman",serif; --body:"Noto Sans",-apple-system,sans-serif;
    --shadow-sm:0 2px 10px rgba(0,38,77,0.06); --shadow-md:0 12px 34px rgba(0,38,77,0.10); --shadow-lg:0 24px 60px rgba(0,38,77,0.16);
    --heading:var(--navy); --header-bg:rgba(255,255,255,0.96); --card-bg:#ffffff;
    /* --topband-h and --header-h are defined in base.html (the parent template)
       so this header's position stays in sync with the topband above it. */
  }
  html[data-theme="dark"]{
    --navy-pale:rgba(255,255,255,0.07); --navy-pale-2:rgba(255,255,255,0.14);
    --ink:#eef2f8; --muted:#93a4bd; --paper:#0b1626; --paper-2:#0f1f36;
    --line:#1e2f47; --line-strong:#2c415f; --heading:#eef2f8;
    --header-bg:rgba(11,22,38,0.9); --card-bg:#0f1f36;
    --shadow-sm:0 2px 10px rgba(0,0,0,0.35); --shadow-md:0 12px 34px rgba(0,0,0,0.45); --shadow-lg:0 24px 60px rgba(0,0,0,0.55);
  }
  .btn{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:13.5px;padding:12px 22px;border-radius:999px;border:1.5px solid transparent;transition:all .25s ease;white-space:nowrap;cursor:pointer;font-family:var(--body);}
  .btn.outline{border-color:var(--heading);color:var(--heading);background:transparent;}
  .btn.outline:hover{background:var(--navy);color:#fff;transform:translateY(-2px);border-color:var(--navy);}
  .btn-sm{padding:9px 18px;font-size:12.5px;}
  .btn-block{width:100%;justify-content:center;}

  /* ============ HEADER / NAV ============ */
  /* Note: the topband (top thin bar) now lives in base.html — this file only
     owns the main nav header, positioned below it using base.html's own
     --topband-h / --header-h variables so the scroll-hide behavior in
     base.html (which toggles .header-top on .light-header) keeps working. */
  header.site{position:fixed;top:var(--topband-h, var(--topbar-h,36px));left:0;right:0;z-index:110;height:var(--header-h,64px);background:var(--header-bg);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--line);transition:top .3s ease,background .3s ease;font-family:var(--body);}
  html[data-theme="dark"] header.site{background:#132a46;}
  header.site.header-top{top:0;}
  .header-inner{max-width:1200px;margin:0 auto;padding:0;height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px;}
  @media (max-width:640px){.header-inner{padding:0 20px;}}
  .logo{display:flex;align-items:center;text-decoration:none;}
  .logo img{height:40px;width:auto;display:block;}
  .logo .logo-dark{display:none;}
  html[data-theme="dark"] .logo .logo-light{display:none;}
  html[data-theme="dark"] .logo .logo-dark{display:block;}

  nav.links{display:flex;gap:26px;font-size:14px;font-weight:600;color:var(--heading);align-items:center;}
  nav.links > a{position:relative;padding-bottom:3px;background:none;border:0;font:inherit;color:inherit;cursor:pointer;display:flex;align-items:center;gap:5px;text-decoration:none;}
  nav.links > a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--orange);border-radius:2px;transition:width .3s ease;}
  nav.links > a:hover::after{width:100%;}
  @media (max-width:980px){nav.links{display:none;}}

  .header-actions{display:flex;align-items:center;gap:12px;}
  .nav-search{display:flex;align-items:center;gap:8px;background:var(--paper-2);border:1px solid var(--line);border-radius:999px;padding:9px 16px;font-size:13px;color:var(--muted);cursor:pointer;}
  .nav-search svg{width:14px;height:14px;stroke:var(--muted);}
  .theme-toggle{width:38px;height:38px;flex-shrink:0;border-radius:50%;border:1px solid var(--line);background:var(--paper-2);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--heading);}
  .theme-toggle:hover{border-color:var(--navy);}
  .theme-toggle svg{width:17px;height:17px;stroke:currentColor;fill:none;}
  .theme-toggle .icon-moon{display:none;}
  html[data-theme="dark"] .theme-toggle .icon-sun{display:none;}
  html[data-theme="dark"] .theme-toggle .icon-moon{display:block;}
  .hamburger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px;}
  .hamburger span{width:22px;height:2px;background:var(--heading);border-radius:2px;}
  @media (max-width:980px){.hamburger{display:flex;}.nav-search{display:none;}}

  /* ---- mega menu ---- */
  .mega-item{position:relative;display:flex;align-items:center;}
  .mega-trigger{background:none;border:0;font:inherit;font-size:14px;font-weight:600;color:var(--heading);cursor:pointer;display:inline-flex;align-items:center;gap:5px;position:relative;padding-bottom:3px;}
  .mega-trigger:hover{color:var(--orange);}
  .mega-trigger .chev{width:10px;height:10px;stroke-width:2.5;transition:transform .2s ease;}
  .mega-item.open .mega-trigger{color:var(--orange);}
  .mega-item.open .mega-trigger .chev{transform:rotate(180deg);}
  .mega-panel{position:fixed;left:0;width:100%;top:var(--full-bar-h, 100px);background:var(--card-bg);box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .2s ease,transform .2s ease,visibility .2s ease;z-index:95;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-family:var(--body);}
  header.site.header-top ~ .mega-panel, .mega-panel.header-top-offset{top:var(--header-h,64px);}
  .mega-panel.open{opacity:1;visibility:visible;transform:translateY(0);}
  .mega-backdrop{position:fixed;inset:0;background:rgba(0,10,25,0.35);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:90;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;}
  .mega-backdrop.show{opacity:1;visibility:visible;}
  @media (max-width:980px){.mega-panel,.mega-backdrop{display:none!important;}}
  .mega-inner{max-width:1200px;margin:0 auto;padding:28px 40px 30px;}
  .mega-grid{display:grid;gap:0;}
  .mega-grid.cols-3{grid-template-columns:1.2fr 1fr 1.1fr;}
  .mega-col{padding-right:32px;border-right:1px solid var(--line);}
  .mega-col + .mega-col{padding-left:32px;}
  .mega-col:last-of-type{border-right:none;}
  .mega-col-title{font-size:11.5px;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;}
  .mega-link{display:block;padding:10px 0;text-decoration:none;}
  .mega-link .ml-name{display:block;font-family:var(--display);font-size:15px;font-weight:700;color:var(--heading);}
  .mega-link .ml-desc{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;}
  .mega-link:hover .ml-name{color:var(--orange);}
  .mega-link-sm{display:flex;justify-content:space-between;gap:10px;padding:9px 0;font-size:13.5px;font-weight:600;color:var(--heading);text-decoration:none;}
  .mega-link-sm:hover{color:var(--orange);}
  .mega-link-sm span{color:var(--muted);font-weight:700;font-size:11.5px;}
  .mega-cta{padding-left:32px;}
  .mega-cta-panel{background:linear-gradient(150deg,var(--navy) 0%,#001830 100%);border-radius:16px;padding:22px 20px;color:#fff;position:relative;overflow:hidden;}
  .mega-cta-panel::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 180px 140px at 100% 0%,rgba(239,126,26,0.3),transparent 60%);}
  .mega-cta-ic{width:36px;height:36px;border-radius:10px;background:rgba(255,255,255,0.12);display:flex;align-items:center;justify-content:center;margin-bottom:12px;position:relative;}
  .mega-cta-ic svg{width:17px;height:17px;stroke:var(--orange-light);}
  .mega-cta-panel h4{font-family:var(--display);font-weight:700;font-size:15px;margin-bottom:6px;position:relative;}
  .mega-cta-panel p{font-size:12px;color:rgba(255,255,255,0.72);line-height:1.5;margin-bottom:14px;position:relative;}
  .mega-cta-link{position:relative;display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:#fff;text-decoration:none;}
  .mega-cta-link svg{width:13px;height:13px;}
  .mega-foot{max-width:1200px;margin:0 auto;padding:16px 40px 22px;border-top:1px solid var(--line);display:flex;gap:24px;flex-wrap:wrap;justify-content:space-between;}
  .mega-foot a{font-size:12px;font-weight:600;color:var(--muted);display:flex;align-items:center;gap:6px;text-decoration:none;}
  .mega-foot a:hover{color:var(--orange);}
  .mega-foot a svg{width:13px;height:13px;}
  @media (max-width:980px){.mega-grid{grid-template-columns:1fr!important;}.mega-col{border-right:none!important;padding:0 0 20px!important;}.mega-col + .mega-col{padding-left:0;}.mega-cta{padding-left:0;}}

  /* ---- profile dropdown (auth state, styled to new design) ---- */
  .profile-dropdown-container{position:relative;}
  .profile-dropdown-trigger{display:flex;align-items:center;gap:8px;background:var(--paper-2);border:1px solid var(--line);border-radius:999px;padding:5px 10px 5px 5px;cursor:pointer;}
  .profile-dropdown-trigger:hover{border-color:var(--navy);}
  .user-avatar,.user-avatar-large,.muc-avatar{border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:700;position:relative;overflow:hidden;flex-shrink:0;}
  .user-avatar{width:30px;height:30px;font-size:13px;}
  .user-avatar-large{width:52px;height:52px;font-size:20px;}
  .muc-avatar{width:48px;height:48px;font-size:1.2rem;}
  .dropdown-arrow{font-size:11px;color:var(--muted);}
  .profile-dropdown-menu{position:absolute;top:calc(100% + 12px);right:0;width:280px;background:var(--card-bg);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lg);padding:18px;opacity:0;visibility:hidden;transform:translateY(-8px);transition:all .2s ease;z-index:150;}
  .profile-dropdown-menu.open{opacity:1;visibility:visible;transform:translateY(0);}
  .dropdown-header{display:flex;align-items:center;gap:12px;}
  .user-info .user-name{font-family:var(--display);font-weight:700;font-size:15px;color:var(--heading);}
  .user-info .user-email{font-size:12px;color:var(--muted);}
  .dropdown-divider{height:1px;background:var(--line);margin:14px 0;}
  .dropdown-items{display:flex;flex-direction:column;gap:2px;}
  .dropdown-item{display:flex;align-items:center;gap:10px;padding:9px 8px;border-radius:9px;font-size:13.5px;font-weight:600;color:var(--heading);text-decoration:none;}
  .dropdown-item:hover{background:var(--paper-2);color:var(--orange);}
  .dropdown-item i{width:16px;color:var(--muted);}
  .dropdown-settings{display:flex;flex-direction:column;gap:10px;}
  .dropdown-setting-item{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;color:var(--heading);font-weight:600;}
  .setting-label{display:flex;align-items:center;gap:8px;}
  .setting-select{border:1px solid var(--line);border-radius:8px;padding:5px 8px;font-size:12px;background:var(--paper-2);color:var(--heading);}
  .logout-item{color:#e0522f;}
  .logout-item:hover{background:var(--orange-pale);color:#e0522f;}

  /* ============ SEARCH MODAL ============ */
  .search-modal-overlay{position:fixed;inset:0;z-index:2000;background:rgba(5,8,20,0.82);backdrop-filter:blur(8px);opacity:0;pointer-events:none;transition:opacity .3s ease;}
  .search-modal-overlay.active{opacity:1;pointer-events:all;}
  .search-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-44%) scale(.97);z-index:2001;width:min(680px,92vw);padding:0;opacity:0;pointer-events:none;transition:all .3s cubic-bezier(.34,1.2,.64,1);font-family:var(--body);}
  .search-modal.active{opacity:1;pointer-events:all;transform:translate(-50%,-50%) scale(1);}
  .search-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;padding:0 .25rem;}
  .search-modal-brand{display:flex;align-items:center;gap:.5rem;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.55);}
  .search-modal-brand i{font-size:13px;color:var(--orange);}
  .search-modal-close{display:flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.1);border:1.5px solid rgba(255,255,255,.18);border-radius:999px;padding:.38rem .75rem;color:rgba(255,255,255,.75);font-size:.78rem;cursor:pointer;}
  .search-modal-close:hover{background:rgba(255,255,255,.2);color:#fff;}
  .search-modal-close kbd{font-size:.72rem;background:rgba(255,255,255,.12);border-radius:999px;padding:.1rem .5rem;color:rgba(255,255,255,.75);border:none;}
  .search-modal-input-wrap{display:flex;align-items:center;background:#fff;border-radius:999px;overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,.25);}
  .search-modal-input-icon{padding:0 .75rem 0 1.25rem;color:#9ca3af;font-size:20px;flex-shrink:0;}
  .search-modal-input{flex:1;padding:1.1rem .5rem;background:transparent;border:none;outline:none;font-family:var(--body);font-size:1.05rem;color:#111827;}
  .search-modal-input::placeholder{color:#9ca3af;}
  .search-modal-submit{width:50px;height:50px;margin:5px;border-radius:999px;background:var(--orange);border:none;color:#fff;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 12px rgba(239,126,26,.35);}
  .search-modal-submit:hover{transform:scale(1.08);}
  .search-modal-section{margin-top:1.5rem;padding:0 .25rem;}
  .search-modal-label{font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.45);margin-bottom:.75rem;display:flex;align-items:center;gap:.4rem;}
  .search-modal-chips{display:flex;flex-wrap:wrap;gap:.5rem;}
  .search-modal-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem 1rem;background:rgba(255,255,255,.08);border:1.5px solid rgba(255,255,255,.15);border-radius:50px;color:rgba(255,255,255,.80);font-size:.82rem;font-weight:600;text-decoration:none;}
  .search-modal-chip:hover,.search-modal-chip.active{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.35);color:#fff;}
  .search-modal-hint{margin-top:1.5rem;text-align:center;font-size:.75rem;color:rgba(255,255,255,.35);}
  .search-modal-hint kbd{font-size:.7rem;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:5px;padding:.1rem .4rem;color:rgba(255,255,255,.6);}

  /* ============ MOBILE MENU ============ */
  #mobileMenu{position:fixed;left:0;right:0;top:0;bottom:0;background:var(--paper);z-index:200;opacity:0;visibility:hidden;transform:translateY(-12px);transition:opacity .3s ease,transform .3s ease,visibility .3s ease;display:flex;flex-direction:column;font-family:var(--body);}
  #mobileMenu.open{opacity:1;visibility:visible;transform:translateY(0);}
  .mm-top{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line);flex-shrink:0;}
  .mm-user-card{position:relative;border-radius:16px;overflow:hidden;margin:0 20px 4px;background:linear-gradient(135deg,var(--navy) 0%,#0055B3 60%,#1a6fd4 100%);box-shadow:0 8px 24px rgba(0,38,77,.35);}
  .mm-user-card-content{display:flex;align-items:center;gap:.875rem;padding:1rem 1.1rem;}
  .mm-user-info{flex:1;min-width:0;}
  .mm-user-name{font-family:var(--display);font-weight:700;font-size:.95rem;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .mm-user-email{font-size:.75rem;color:rgba(255,255,255,.7);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px;}
  .mm-user-dash{width:38px;height:38px;border-radius:10px;background:rgba(255,255,255,.15);border:1.5px solid rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.1rem;text-decoration:none;flex-shrink:0;}
  .mm-search{flex:1;display:flex;align-items:center;gap:10px;background:var(--paper-2);border:1px solid var(--line);border-radius:999px;padding:10px 16px;}
  .mm-search svg{width:15px;height:15px;flex-shrink:0;color:var(--muted);}
  .mm-search input{border:none;background:none;outline:none;font-size:14px;color:var(--ink);width:100%;font-family:var(--body);}
  .mm-close{background:var(--paper-2);border:1px solid var(--line);border-radius:50%;width:36px;height:36px;font-size:15px;color:var(--heading);flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;}
  .mm-body{flex:1;overflow-y:auto;padding:14px 20px 20px;}
  .mm-link{display:block;padding:16px 2px;font-family:var(--display);font-weight:700;font-size:20px;color:var(--heading);border-bottom:1px solid var(--line);text-decoration:none;}
  .mm-accordion{border-bottom:1px solid var(--line);}
  .mm-acc-trigger{width:100%;background:none;border:0;display:flex;align-items:center;justify-content:space-between;padding:16px 2px;font-family:var(--display);font-weight:700;font-size:20px;color:var(--heading);cursor:pointer;text-align:left;}
  .mm-caret{width:10px;height:10px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform .25s ease;flex-shrink:0;margin-top:-4px;}
  .mm-accordion.open .mm-acc-trigger{color:var(--orange);}
  .mm-accordion.open .mm-caret{transform:rotate(-135deg);margin-top:4px;border-color:var(--orange);}
  .mm-acc-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease;}
  .mm-accordion.open .mm-acc-panel{grid-template-rows:1fr;}
  .mm-acc-panel-inner{overflow:hidden;}
  .mm-acc-group{padding:4px 0 14px;}
  .mm-acc-label{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:8px 2px 4px;}
  .mm-acc-group a{display:flex;align-items:center;justify-content:space-between;padding:10px 2px;font-size:14.5px;font-weight:600;color:var(--ink);text-decoration:none;}
  .mm-acc-group a span{font-size:11.5px;color:var(--muted);font-weight:600;}
  .mm-acc-all{display:flex;align-items:center;gap:6px;padding:10px 2px 16px;font-size:13.5px;font-weight:700;color:var(--orange);text-decoration:none;}
  .mm-tag-row{display:flex;flex-wrap:wrap;gap:8px;padding:14px 2px;}
  .mm-tag-pill{font-size:12.5px;font-weight:700;padding:8px 15px;border-radius:999px;background:var(--navy-pale);color:var(--heading);text-decoration:none;}
  .mm-tag-pill.active{background:var(--orange);color:#fff;}
  .mm-foot{flex-shrink:0;display:flex;align-items:center;gap:12px;padding:16px 20px;border-top:1px solid var(--line);background:var(--paper);}
  .mm-foot .btn{flex:1;}
  @media (min-width:981px){#mobileMenu{display:none!important;}}
