:root {
  --nmw-green-950: #061713;
  --nmw-green-900: #0a211a;
  --nmw-green-800: #103329;
  --nmw-green-700: #15513d;
  --nmw-green-600: #187a55;
  --nmw-green-500: #21a873;
  --nmw-gold: #f4b63f;
  --nmw-orange: #ff7b36;
  --nmw-cream: #fffaf0;
  --nmw-line: rgba(23, 93, 67, .15);
  --tblr-primary: #167a55;
  --tblr-primary-rgb: 22,122,85;
  --tblr-link-color: #167a55;
  --tblr-link-hover-color: #0e5c3e;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  color: #17241f;
  background: #f4f8f5;
  font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, -apple-system, sans-serif;
}
a { text-decoration: none; }
.btn { border-radius: 10px; font-weight: 700; }
.btn-primary {
  --tblr-btn-bg: #167a55;
  --tblr-btn-border-color: #167a55;
  --tblr-btn-hover-bg: #105f42;
  --tblr-btn-hover-border-color: #105f42;
  box-shadow: 0 10px 24px rgba(20, 122, 84, .18);
}
.card {
  border: 1px solid var(--nmw-line);
  border-radius: 16px;
  box-shadow: 0 12px 35px rgba(8, 44, 33, .07);
}
.form-control, .form-select, .input-group-text {
  min-height: 44px;
  border-radius: 10px;
  border-color: rgba(17, 83, 61, .18);
}
.form-control:focus, .form-select:focus {
  border-color: #21a873;
  box-shadow: 0 0 0 .2rem rgba(33, 168, 115, .13);
}
.nmw-brand, .nmw-panel-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: inherit;
  font-weight: 900;
  letter-spacing: .04em;
}
.nmw-brand-mark {
  width: 40px;
  height: 40px;
  border-radius: 13px;
  display: inline-grid;
  place-items: center;
  overflow: hidden;
  background: rgba(255,255,255,.08);
  box-shadow: 0 8px 22px rgba(244, 182, 63, .18);
  line-height: 1;
}
.nmw-brand-mark img { width: 100%; height: 100%; object-fit: contain; display: block; }
.nmw-panel-brand { color: #fff !important; font-size: 19px; }
.nmw-panel-brand .nmw-brand-mark { width: 34px; height: 34px; border-radius: 11px; }
.nmw-hero-logo { width: 78%; height: 78%; object-fit: contain; display: block; filter: drop-shadow(0 16px 26px rgba(0,0,0,.35)); }

/* Public landing */
.nmw-public { margin: 0; background: var(--nmw-green-950); color: #edf8f2; }
.nmw-public .nmw-shell { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }
.nmw-public-nav {
  position: sticky; top: 0; z-index: 20;
  border-bottom: 1px solid rgba(255,255,255,.08);
  background: rgba(6, 23, 19, .86);
  backdrop-filter: blur(18px);
}
.nmw-public-nav .nmw-shell { min-height: 74px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.nmw-public-nav .nmw-brand { color: #fff; font-size: 20px; }
.nmw-public-links { display: flex; align-items: center; gap: 28px; }
.nmw-public-links a { color: #b8cfc5; font-weight: 600; }
.nmw-public-links a:hover { color: #fff; }
.nmw-public-actions { display: flex; gap: 10px; }
.nmw-btn {
  min-height: 42px; padding: 0 19px; border-radius: 11px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid rgba(255,255,255,.14); font-weight: 800;
}
.nmw-btn-ghost { color: #eff9f4; background: rgba(255,255,255,.04); }
.nmw-btn-gold { color: #17251e; border-color: transparent; background: linear-gradient(135deg, #ffd56b, #f29b2c); box-shadow: 0 12px 28px rgba(242,155,44,.22); }
.nmw-hero { position: relative; overflow: hidden; padding: 94px 0 72px; }
.nmw-hero:before { content:""; position:absolute; width:620px; height:620px; border-radius:50%; right:-180px; top:-260px; background:radial-gradient(circle, rgba(33,168,115,.22), transparent 68%); }
.nmw-hero-grid { position: relative; display:grid; grid-template-columns:1.06fr .94fr; gap:64px; align-items:center; }
.nmw-kicker { display:inline-flex; gap:9px; align-items:center; color:#b9d8cb; border:1px solid rgba(95,214,161,.22); background:rgba(32,145,99,.1); border-radius:999px; padding:8px 13px; font-weight:700; }
.nmw-kicker:before { content:""; width:8px; height:8px; border-radius:50%; background:#51d394; box-shadow:0 0 0 6px rgba(81,211,148,.1); }
.nmw-hero h1 { margin:25px 0 20px; max-width:720px; color:#fff; font-size:clamp(48px,7vw,78px); line-height:1.05; letter-spacing:-.055em; }
.nmw-gradient { background:linear-gradient(100deg,#ffe28b,#ff9f45); -webkit-background-clip:text; color:transparent; }
.nmw-hero-copy { max-width:650px; color:#abc8bb; font-size:18px; line-height:1.85; }
.nmw-hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.nmw-hero-notes { display:flex; flex-wrap:wrap; gap:20px; margin-top:26px; color:#91b5a5; font-size:14px; }
.nmw-hero-notes span:before { content:"✓"; color:#58d89d; margin-right:7px; }
.nmw-orbit-card { min-height:430px; position:relative; display:grid; place-items:center; border:1px solid rgba(255,255,255,.08); border-radius:30px; background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.015)); box-shadow:inset 0 1px rgba(255,255,255,.06),0 30px 80px rgba(0,0,0,.2); }
.nmw-orbit { width:260px; height:260px; border-radius:50%; position:relative; border:1px solid rgba(93,219,163,.25); background:radial-gradient(circle at 38% 35%,#22684f,#0b261d 63%,#071812); box-shadow:0 0 70px rgba(32,168,115,.2); }
.nmw-orbit:before,.nmw-orbit:after { content:""; position:absolute; inset:32px; border-radius:50%; border:1px dashed rgba(255,213,107,.26); transform:rotate(22deg); }
.nmw-orbit:after { inset:-34px; border-color:rgba(82,211,153,.17); transform:rotate(-19deg); }
.nmw-bull { position:absolute; inset:0; display:grid; place-items:center; font-size:76px; color:#ffd368; text-shadow:0 8px 30px rgba(255,190,65,.28); }
.nmw-float { position:absolute; padding:13px 16px; border-radius:14px; background:rgba(9,34,26,.88); border:1px solid rgba(255,255,255,.1); box-shadow:0 16px 35px rgba(0,0,0,.22); }
.nmw-float strong { display:block; color:#fff; font-size:20px; }.nmw-float small{color:#8fb4a4}.nmw-float-a{left:25px;top:62px}.nmw-float-b{right:24px;top:128px}.nmw-float-c{left:70px;bottom:42px}
.nmw-stats { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid rgba(255,255,255,.08); border-radius:20px; background:rgba(255,255,255,.035); }
.nmw-stat { padding:27px; text-align:center; }.nmw-stat+ .nmw-stat{border-left:1px solid rgba(255,255,255,.08)}.nmw-stat strong{display:block;color:#fff;font-size:28px}.nmw-stat span{color:#86aa9a;font-size:13px}
.nmw-section { padding:84px 0; }.nmw-section-light{background:#f4f8f5;color:#17251f}.nmw-section-title{text-align:center;max-width:680px;margin:0 auto 42px}.nmw-section-title span{color:#1a9c6c;font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:12px}.nmw-section-title h2{font-size:38px;margin:10px 0}.nmw-section-title p{color:#65776f;font-size:17px}
.nmw-feature-grid,.nmw-plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.nmw-feature,.nmw-plan{padding:28px;border-radius:18px;border:1px solid rgba(16,83,60,.12);background:#fff;box-shadow:0 15px 40px rgba(8,55,38,.06)}.nmw-feature-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#e7f7ef;color:#147650;font-size:22px}.nmw-feature h3{margin:18px 0 9px}.nmw-feature p{color:#64766e;line-height:1.75}.nmw-plan{position:relative}.nmw-plan.featured{border-color:#e2a33b;transform:translateY(-8px);box-shadow:0 20px 50px rgba(233,159,41,.14)}.nmw-plan-tag{position:absolute;right:18px;top:18px;background:#fff0ce;color:#9b6211;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800}.nmw-price{font-size:42px;font-weight:900;color:#10271e}.nmw-price small{font-size:14px;color:#78877f}.nmw-plan ul{list-style:none;padding:0;margin:20px 0}.nmw-plan li{padding:8px 0;color:#53675e}.nmw-plan li:before{content:"✓";color:#1aa36e;margin-right:8px;font-weight:900}.nmw-plan .nmw-btn{width:100%;color:#fff;background:#147650;border-color:#147650}.nmw-plan.featured .nmw-btn{color:#17251f;background:linear-gradient(135deg,#ffd36a,#f3a033);border-color:transparent}
.nmw-cta{padding:54px;border-radius:24px;display:flex;align-items:center;justify-content:space-between;gap:30px;background:linear-gradient(125deg,#0f4f3b,#0b2c22);border:1px solid rgba(255,255,255,.08)}.nmw-cta h2{color:#fff;font-size:34px;margin:0 0 8px}.nmw-cta p{color:#a4c2b5;margin:0}.nmw-footer{padding:46px 0 30px;color:#87aa9b;border-top:1px solid rgba(255,255,255,.07)}.nmw-footer-row{display:flex;justify-content:space-between;align-items:center;gap:24px}.nmw-footer .nmw-brand{color:#fff}

/* Authentication */
.nmw-auth-page { min-height:100vh; min-height:100dvh; position:relative; overflow-x:hidden; overflow-y:auto; -webkit-overflow-scrolling:touch; touch-action:pan-y; background:linear-gradient(135deg,#071b15 0%,#0d3427 55%,#0b211a 100%); }
.nmw-auth-page:before,.nmw-auth-page:after{content:"";position:fixed;border-radius:50%;filter:blur(1px);pointer-events:none}.nmw-auth-page:before{width:520px;height:520px;right:-180px;top:-200px;background:radial-gradient(circle,rgba(44,192,127,.22),transparent 70%)}.nmw-auth-page:after{width:420px;height:420px;left:-190px;bottom:-180px;background:radial-gradient(circle,rgba(244,182,63,.15),transparent 70%)}
.nmw-auth-wrap{width:min(1060px,calc(100% - 32px));margin:auto;min-height:100vh;display:grid;grid-template-columns:1fr 470px;gap:70px;align-items:center;padding:44px 0;position:relative;z-index:1}.nmw-auth-intro{color:#fff}.nmw-auth-intro h1{font-size:52px;line-height:1.08;letter-spacing:-.04em;margin:28px 0 18px}.nmw-auth-intro p{max-width:500px;color:#a9c7b9;font-size:17px;line-height:1.8}.nmw-auth-points{display:grid;gap:14px;margin-top:30px}.nmw-auth-point{display:flex;align-items:center;gap:12px;color:#d7e9e1}.nmw-auth-point i{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:rgba(65,204,142,.13);color:#60dc9f;font-style:normal}.nmw-auth-card{padding:34px;border-radius:22px;background:rgba(255,255,255,.97);border:1px solid rgba(255,255,255,.25);box-shadow:0 30px 80px rgba(0,0,0,.27)}.nmw-auth-card h2{margin:0 0 6px;color:#10261d}.nmw-auth-card .nmw-subtitle{color:#74837c;margin-bottom:25px}.nmw-auth-card .form-label{font-weight:750;color:#30483e}.nmw-auth-card .btn{min-height:46px}.nmw-auth-switch{text-align:center;margin-top:18px;color:#718078}.nmw-auth-switch a{font-weight:800;color:#157a54}.nmw-auth-back{position:absolute;left:0;top:28px;color:#afcbbf}.nmw-auth-back:hover{color:#fff}

/* User and admin */
.navbar-overlap{background:linear-gradient(100deg,#08251c,#0f513c)!important;box-shadow:0 8px 28px rgba(5,41,29,.18)}
.navbar-overlap .nav-link,.navbar-overlap .text-secondary{color:rgba(255,255,255,.72)!important}.navbar-overlap .nav-link:hover,.navbar-overlap .nav-link.active{color:#fff!important}.navbar-overlap .avatar{border:2px solid rgba(255,215,108,.65)}
.navbar-overlap .navbar-collapse{background:transparent;border-bottom:0;box-shadow:none}
.navbar-overlap .navbar-collapse .nav-link{border-radius:9px;margin:5px 2px;color:rgba(255,255,255,.78)!important}.navbar-overlap .navbar-collapse .nav-link:hover,.navbar-overlap .navbar-collapse .nav-link:focus,.navbar-overlap .navbar-collapse .nav-item.active .nav-link{background:rgba(255,255,255,.1);color:#fff!important}
.nmw-admin-shortcut{display:flex;align-items:center;gap:12px;min-height:76px;padding:15px 16px;border:1px solid var(--nmw-line);border-radius:13px;background:#fff;color:#173429;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.nmw-admin-shortcut:hover{transform:translateY(-2px);border-color:rgba(22,122,85,.32);box-shadow:0 12px 26px rgba(8,55,38,.09);color:#0f6f4a}.nmw-admin-shortcut-icon{width:42px;height:42px;display:inline-grid;place-items:center;flex:0 0 42px;border-radius:12px;background:#e4f5ec;color:#147552;font-size:21px}.nmw-admin-shortcut-title{display:block;font-weight:850}.nmw-admin-shortcut-note{display:block;margin-top:2px;color:#73837c;font-size:12px}
.page-wrapper{background:linear-gradient(180deg,#eef6f1,#f8faf9 310px)}.page-header .page-title{color:#112b21;font-weight:900}.card-title{font-weight:850;color:#173429}.badge.bg-primary-lt{background:#e0f4e9!important;color:#116b49!important}
.table thead th{color:#577067;background:#f3f8f5}.dropdown-menu{border-color:var(--nmw-line);border-radius:12px;box-shadow:0 18px 45px rgba(8,50,35,.14)}
.footer-transparent{color:#7c8f86}.admin-accent{display:inline-flex;margin-left:8px;padding:3px 8px;border-radius:999px;background:rgba(255,205,91,.14);color:#ffd269;font-size:11px;letter-spacing:.04em}

@media(max-width:767.98px){.navbar-overlap .navbar-collapse{margin-top:10px;padding:10px;border-radius:12px;background:#0d3e2f;box-shadow:0 16px 34px rgba(3,23,16,.24)}.navbar-overlap .navbar-collapse .nav-link{margin:2px 0}.navbar-overlap .dropdown-menu{margin-bottom:8px}}
@media(max-width:900px){.nmw-public-links{display:none}.nmw-hero-grid,.nmw-auth-wrap{grid-template-columns:1fr}.nmw-orbit-card{min-height:360px}.nmw-feature-grid,.nmw-plan-grid{grid-template-columns:1fr}.nmw-plan.featured{transform:none}.nmw-auth-intro{display:none}.nmw-auth-wrap{max-width:520px}.nmw-stats{grid-template-columns:repeat(2,1fr)}.nmw-stat:nth-child(3){border-left:0;border-top:1px solid rgba(255,255,255,.08)}.nmw-stat:nth-child(4){border-top:1px solid rgba(255,255,255,.08)}}
@media(max-width:600px){.nmw-public .nmw-shell{width:min(100% - 24px,1180px)}.nmw-public-nav .nmw-shell{min-height:66px;gap:8px}.nmw-public-nav .nmw-brand{font-size:18px}.nmw-public-actions{gap:6px}.nmw-public-actions .nmw-btn{padding:8px 10px;font-size:13px}.nmw-public-actions .nmw-btn-ghost{display:inline-flex}.nmw-hero{padding:64px 0 50px}.nmw-hero h1{font-size:46px}.nmw-orbit-card{min-height:320px}.nmw-orbit{width:205px;height:205px}.nmw-float{padding:10px 12px}.nmw-float-b{right:8px}.nmw-float-a{left:8px}.nmw-stats{grid-template-columns:1fr 1fr}.nmw-stat{padding:20px 10px}.nmw-section{padding:60px 0}.nmw-section-title h2{font-size:31px}.nmw-cta{padding:32px 24px;display:block}.nmw-cta .nmw-btn{margin-top:20px}.nmw-footer-row{align-items:flex-start;flex-direction:column}.nmw-auth-card{padding:26px 20px}.nmw-auth-wrap{width:min(100% - 20px,520px);min-height:auto;align-items:start;padding:52px 0 max(32px,env(safe-area-inset-bottom))}.nmw-auth-back{top:12px}}


/* Admin desktop navigation stability */
@media (min-width: 768px) {
  .navbar-overlap {
    min-height: 64px !important;
    padding-top: 4px !important;
    padding-bottom: 4px !important;
    overflow: visible !important;
  }
  .navbar-overlap > .container-xl {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    min-height: 56px !important;
  }
  .navbar-overlap .navbar-brand,
  .navbar-overlap .navbar-nav,
  .navbar-overlap .navbar-collapse {
    visibility: visible !important;
    opacity: 1 !important;
  }
  .navbar-overlap .navbar-brand {
    display: inline-flex !important;
    align-items: center !important;
    flex: 0 0 auto !important;
  }
  .navbar-overlap .navbar-nav {
    display: flex !important;
    min-height: 48px !important;
  }
  .navbar-overlap .navbar-collapse {
    display: flex !important;
    height: auto !important;
    min-height: 48px !important;
    overflow: visible !important;
  }
}


/* NMW simplified user navigation */
.nmw-simple-nav .nav-link{display:flex;align-items:center;gap:.45rem}
.nmw-simple-nav .nav-link .icon{font-size:1.1rem}
.nmw-simple-nav .nav-link.active{background:rgba(255,255,255,.12);color:#fff!important}
.nmw-account-menu{min-width:190px}
.nmw-modal-open{overflow:hidden}
.nmw-mobile-nav{position:fixed;left:0;right:0;bottom:0;z-index:1500;display:flex;justify-content:space-around;padding:7px 8px calc(7px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border-top:1px solid var(--nmw-line,#dce9e1);box-shadow:0 -8px 24px rgba(8,50,35,.1)}
.nmw-mobile-nav a{display:flex;min-width:56px;flex:1;flex-direction:column;align-items:center;gap:2px;color:#6f8177;font-size:11px;text-decoration:none}
.nmw-mobile-nav a i{font-size:20px;line-height:1.1}
.nmw-mobile-nav a.active{color:#157a54;font-weight:800}
@media(max-width:767.98px){body{padding-bottom:74px}.nmw-simple-nav .nav-link{padding:.7rem .8rem}.nmw-account-menu{width:100%}}
[data-bs-theme="dark"] .nmw-mobile-nav{background:rgba(20,29,25,.98);border-color:#30483e}[data-bs-theme="dark"] .nmw-mobile-nav a{color:#a8bbb1}[data-bs-theme="dark"] .nmw-mobile-nav a.active{color:#63d39c}
.nmw-custom-footer{text-align:center;color:#7b8c83}
.nmw-custom-footer .container-xl{display:flex;flex-direction:column;align-items:center;justify-content:center}
.nmw-custom-footer .nmw-shell{justify-content:center;text-align:center}
.nmw-custom-footer .nmw-shell>div{line-height:1.8}
.nmw-balance-card{border:1px solid #dce9e1;background:linear-gradient(135deg,#f7fcf8,#eef9f2);box-shadow:0 10px 28px rgba(8,50,35,.07)}
.nmw-balance-card .display-6{color:#157a54!important}
/* Mobile tap responsiveness: remove legacy tap delay and show feedback immediately. */
a,
button,
.btn,
.nmw-btn,
.nav-link,
.dropdown-item,
[role="button"],
input[type="button"],
input[type="submit"] {
  touch-action: manipulation;
  -webkit-tap-highlight-color: rgba(22, 122, 85, .14);
}

@media (hover: none) and (pointer: coarse) {
  button:active,
  .btn:active,
  .nmw-btn:active,
  .nav-link:active,
  .dropdown-item:active,
  .nmw-mobile-nav a:active,
  [role="button"]:active,
  .nmw-tap-active {
    opacity: .82 !important;
    transform: scale(.985) !important;
    transition: opacity .04s linear, transform .04s linear !important;
  }
}