:root{
  --master-bg:#f5f8f6;
  --master-surface:#ffffff;
  --master-border:#e5ebe7;
  --master-muted:#64748b;
  --master-dark:#10231a;
  --master-green:var(--master-primary,#198754);
  --master-soft:#eaf7ef;
  --master-soft-2:#f8fbf9;
  --master-shadow:0 14px 34px rgba(15,23,42,.07);
}
body.master-body{background:var(--master-bg);color:var(--master-dark);}
body.master-body .app-content{background:linear-gradient(180deg,#f7fbf8 0,#f5f8f6 36%,#f5f8f6 100%);min-height:100dvh;}
body.master-body .app-sidebar-col{background:#fff;border-right:1px solid var(--master-border);box-shadow:8px 0 24px rgba(15,23,42,.035);}
.master-page-body{max-width:1640px;margin:0 auto;width:100%;}
.master-topbar{background:rgba(255,255,255,.92)!important;backdrop-filter:blur(10px);border-bottom:1px solid var(--master-border)!important;box-shadow:0 1px 0 rgba(15,23,42,.02);}
.master-topbar-icon{width:40px;height:40px;border-radius:14px;background:var(--master-soft);color:var(--master-green);display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem;flex:0 0 40px;}
.master-topbar-title{font-weight:800;letter-spacing:-.015em;color:var(--master-dark);}
.master-topbar-subtitle{font-size:.82rem;color:var(--master-muted);margin-top:1px;}
.master-user-pill{display:flex;align-items:center;gap:10px;border:1px solid var(--master-border);background:#fff;border-radius:999px;padding:6px 10px 6px 7px;box-shadow:0 3px 10px rgba(15,23,42,.04);}
.master-user-avatar{width:30px;height:30px;border-radius:999px;background:var(--master-soft);color:var(--master-green);display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:.8rem;}
.master-user-name{font-weight:700;color:#1f2937;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.master-user-role{font-size:.72rem;color:var(--master-muted);line-height:1;}
.sidebar-brand-card.master-brand-card{border:1px solid var(--master-border);background:linear-gradient(135deg,#ffffff 0,#f0faf4 100%);box-shadow:0 8px 20px rgba(25,135,84,.08);}
.master-brand-emblem{width:38px;height:38px;border-radius:14px;background:#fff;color:var(--master-green);display:inline-flex;align-items:center;justify-content:center;border:1px solid #dceee4;box-shadow:0 8px 18px rgba(25,135,84,.12);}
.master-sidebar-section{margin-top:12px;}
.master-sidebar-section-title{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:#8a9a91;font-weight:800;padding:10px 14px 6px;}
.master-sidebar-link{position:relative;}
.master-sidebar-link.active::before{content:'';position:absolute;left:7px;top:10px;bottom:10px;width:3px;border-radius:99px;background:var(--master-green);}
.master-sidebar-link.active{background:var(--master-soft);color:var(--master-green);font-weight:800;}
.master-sidebar-link i{width:20px;text-align:center;}
.master-sidebar-footer-action{border-radius:14px;}
.master-hero{border:1px solid var(--master-border);border-radius:26px;background:radial-gradient(circle at top right,rgba(25,135,84,.16),transparent 30%),linear-gradient(135deg,#ffffff 0,#f4fbf7 100%);box-shadow:var(--master-shadow);overflow:hidden;position:relative;}
.master-hero::after{content:'';position:absolute;right:-60px;bottom:-70px;width:220px;height:220px;background:rgba(25,135,84,.07);border-radius:999px;}
.master-hero-content{position:relative;z-index:1;padding:24px;}
.master-kicker{display:inline-flex;align-items:center;gap:8px;border:1px solid #d7eee1;background:#fff;color:var(--master-green);border-radius:999px;padding:6px 12px;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;}
.master-hero h2{letter-spacing:-.035em;}
.master-action-card,.master-stat-card,.master-section-card{border:1px solid var(--master-border);border-radius:22px;background:#fff;box-shadow:0 10px 28px rgba(15,23,42,.055);}
.master-stat-card{height:100%;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;}
.master-stat-card:hover{transform:translateY(-2px);box-shadow:var(--master-shadow);border-color:#d1e7da;}
.master-stat-icon{width:42px;height:42px;border-radius:16px;background:var(--master-soft);color:var(--master-green);display:inline-flex;align-items:center;justify-content:center;font-size:1.05rem;}
.master-stat-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--master-muted);font-weight:800;}
.master-stat-value{font-size:2rem;line-height:1;font-weight:850;color:#10231a;letter-spacing:-.04em;}
.master-stat-subtext{color:var(--master-muted);font-size:.86rem;}
.master-action-card{display:flex;align-items:flex-start;gap:12px;padding:16px;text-decoration:none;color:inherit;height:100%;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;}
.master-action-card:hover{color:inherit;transform:translateY(-2px);box-shadow:var(--master-shadow);border-color:#d1e7da;}
.master-action-icon{width:42px;height:42px;border-radius:15px;background:var(--master-soft);color:var(--master-green);display:inline-flex;align-items:center;justify-content:center;flex:0 0 42px;}
.master-action-title{font-weight:800;color:#17251d;line-height:1.25;}
.master-action-text{font-size:.84rem;color:var(--master-muted);margin-top:4px;}
.master-check-list{list-style:none;padding:0;margin:0;display:grid;gap:10px;}
.master-check-list li{display:flex;gap:10px;align-items:flex-start;color:#475569;font-size:.92rem;}
.master-check-list i{color:var(--master-green);margin-top:2px;}
.master-status-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;}
.master-status-item{background:var(--master-soft-2);border:1px solid var(--master-border);border-radius:18px;padding:14px;}
.master-status-label{font-size:.76rem;color:var(--master-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:800;}
.master-status-value{font-weight:850;font-size:1.45rem;color:#10231a;margin-top:2px;}
.master-card-title{font-weight:850;letter-spacing:-.015em;color:#10231a;}
.master-muted{color:var(--master-muted);}
.master-login-page{min-height:100dvh;background:radial-gradient(circle at top left,rgba(25,135,84,.20),transparent 32%),linear-gradient(135deg,#f1fbf5 0,#ffffff 52%,#f7faf8 100%);display:flex;align-items:center;padding:24px 12px;}
.master-login-shell{width:100%;max-width:1040px;margin:0 auto;}
.master-login-panel{border:1px solid var(--master-border);border-radius:30px;overflow:hidden;box-shadow:0 24px 60px rgba(15,23,42,.12);background:#fff;}
.master-login-info{background:linear-gradient(145deg,#10351f 0,#198754 100%);color:#fff;height:100%;padding:34px;position:relative;overflow:hidden;}
.master-login-info::after{content:'';position:absolute;width:260px;height:260px;border-radius:999px;background:rgba(255,255,255,.08);right:-90px;bottom:-110px;}
.master-login-logo{width:56px;height:56px;border-radius:18px;background:rgba(255,255,255,.95);display:flex;align-items:center;justify-content:center;box-shadow:0 18px 40px rgba(0,0,0,.18);}
.master-login-card-body{padding:34px;}
.master-login-badge{display:inline-flex;align-items:center;gap:8px;background:#eefaf3;color:#198754;border:1px solid #d4f0de;border-radius:999px;padding:6px 12px;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;}
.master-login-submit.is-loading{pointer-events:none;opacity:.82;}
.master-login-help{background:#f8fbf9;border:1px solid var(--master-border);border-radius:16px;padding:12px 14px;color:var(--master-muted);font-size:.84rem;}
@media (max-width:1199.98px){.master-status-strip{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:991.98px){
  .master-page-body{padding-left:0!important;padding-right:0!important;}
  .master-user-pill{padding:6px;}.master-user-name,.master-user-role{display:none;}
  .master-login-info{padding:26px;min-height:240px;}
}
@media (max-width:575.98px){
  .master-hero-content{padding:18px;}.master-status-strip{grid-template-columns:1fr;}
  .master-stat-value{font-size:1.72rem;}.master-topbar-subtitle{display:none;}
  .master-login-card-body{padding:24px 20px;}.master-login-page{align-items:flex-start;padding-top:18px;}
}

/* M1A/M2 master shell stabilization: desktop sidebar and content scroll independently. */
@media (min-width: 992px){
  body.master-body{height:100dvh;overflow:hidden;padding-top:0;}
  body.master-body .app-shell{height:100dvh;min-height:100dvh;overflow:hidden;display:flex;}
  body.master-body .app-sidebar-col{height:100dvh;min-height:0;overflow:hidden;flex:0 0 280px;max-width:280px;position:relative;}
  body.master-body .sidebar-shell,
  body.master-body .sidebar-body-shell{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden;}
  body.master-body .sidebar-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;}
  body.master-body .sidebar-footer{flex:0 0 auto;}
  body.master-body .app-main-col{height:100dvh;min-width:0;flex:1 1 auto;overflow:hidden;}
  body.master-body .app-content{height:100dvh;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable;background:linear-gradient(180deg,#f7fbf8 0,#f5f8f6 36%,#f5f8f6 100%);}
  body.master-body .master-topbar{top:0;}
}
@media (max-width: 991.98px){
  body.master-body{overflow-x:hidden;overflow-y:auto;}
  body.master-body .app-shell{height:auto;min-height:100dvh;overflow:visible;}
}
.master-permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;}
.master-permission-chip{border:1px solid var(--master-border);border-radius:14px;background:#fff;padding:10px 12px;font-size:.88rem;}
.master-permission-chip.allowed{background:var(--master-soft);border-color:#cfe9da;color:#146c43;font-weight:700;}
