:root{
  --iebc:#6aa132; --iebc-dark:#558527; --iebc-light:#9bd067; --iebc-soft:#eef6e6;
  --sec:#444444; --bg:#f8f9fb; --line:#e9ecef;
  --bs-primary:#6aa132; --bs-primary-rgb:106,161,50; --bs-body-font-family:'Nunito Sans',sans-serif; --bs-body-color:#444;
}
html,body{height:100%}
body{font-family:'Nunito Sans',sans-serif;background:var(--bg);color:var(--sec);font-size:.92rem}
a{color:var(--iebc-dark);text-decoration:none}
.text-primary-iebc{color:var(--iebc)}
.btn-primary,.btn-success{--bs-btn-bg:var(--iebc);--bs-btn-border-color:var(--iebc);--bs-btn-hover-bg:var(--iebc-dark);--bs-btn-hover-border-color:var(--iebc-dark);--bs-btn-active-bg:var(--iebc-dark);--bs-btn-active-border-color:var(--iebc-dark);--bs-btn-disabled-bg:var(--iebc);--bs-btn-disabled-border-color:var(--iebc)}
.btn-outline-primary{--bs-btn-color:var(--iebc-dark);--bs-btn-border-color:var(--iebc);--bs-btn-hover-bg:var(--iebc);--bs-btn-hover-border-color:var(--iebc);--bs-btn-active-bg:var(--iebc);}
.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:var(--iebc);box-shadow:0 0 0 .2rem rgba(106,161,50,.2)}
.form-check-input:checked{background-color:var(--iebc);border-color:var(--iebc)}

.app-shell{display:flex;min-height:100vh}
.sidebar{width:198px;flex:0 0 198px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:1030}
.sidebar-head{display:flex;align-items:center;gap:.7rem;padding:0 1rem;height:60px;border-bottom:1px solid var(--line);color:#222;font-weight:600;font-size:1.05rem}
.sidebar-head:hover{background:var(--bg)}
.sb-role{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:105px}
.logo-sm{width:28px;height:28px;object-fit:contain}.logo-md{width:36px;height:36px;object-fit:contain}
.sidebar-nav{padding:.9rem .5rem;flex:1;overflow-y:auto}
.sidebar-nav a{display:flex;align-items:center;gap:.7rem;padding:.55rem .75rem;margin-bottom:.35rem;border-radius:6px;color:#444;font-weight:600;font-size:.82rem;border-left:3px solid transparent}
.sidebar-nav a i{font-size:.95rem;color:#777}
.sidebar-nav a:hover{background:var(--bg)}
.sidebar-nav a.active{background:#f1f8ea;color:#2f3b25;border-left-color:var(--iebc-light);border-right:2px solid var(--iebc-light)}
.sidebar-nav a.active i{color:var(--iebc)}
.sidebar-nav .badge{margin-left:auto;background:var(--iebc)!important;font-size:.65rem}
.sidebar-foot{padding:.7rem;border-top:1px solid var(--line)}
.help-card{display:flex;gap:.6rem;align-items:center;background:var(--bg);border-radius:8px;padding:.6rem}
.help-card small{display:block;color:#777;font-size:.7rem}.help-card strong{font-size:.78rem}
.help-ic{width:26px;height:26px;border-radius:50%;background:var(--iebc);color:#fff;display:grid;place-items:center}

.main-col{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{height:60px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 1.25rem;position:sticky;top:0;z-index:1020}
.brand{display:flex;align-items:center;gap:.6rem;font-size:1.1rem;font-weight:600;color:#222}
.btn-role{background:var(--iebc-soft);border:1px solid #d6e8c3;color:#2f3b25;font-size:.82rem;border-radius:20px;padding:.3rem .9rem}
.btn-role:hover{background:#e2f0d2}
.bell{position:relative;color:#333}.dot{position:absolute;top:0;right:-1px;width:8px;height:8px;border-radius:50%;background:#ef5350}
.user-chip{display:flex;align-items:center;gap:.6rem;color:#333;cursor:pointer}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--iebc);color:#fff;display:grid;place-items:center;font-weight:700}
.content{flex:1;padding:1.4rem 1.4rem 2rem}
.footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem;padding:1rem 1.4rem;background:#fff;border-top:1px solid var(--line);font-size:.78rem;color:#666}
.footer a{color:#555}
.page-title{font-size:1.3rem;font-weight:700;color:#222;margin-bottom:1rem}
.fab{position:fixed;right:20px;bottom:24px;width:50px;height:50px;border-radius:50%;background:var(--iebc);color:#fff;border:3px solid #fff;box-shadow:0 4px 14px rgba(0,0,0,.25);font-size:1.3rem;z-index:1040}
.fab:hover{background:var(--iebc-dark)}

.stat{background:var(--iebc-light);color:#fff;border-radius:8px;padding:1rem 1.2rem;position:relative;box-shadow:0 2px 6px rgba(0,0,0,.12);height:100%}
.stat small{opacity:.95;font-size:.78rem}.stat .n{font-size:1.7rem;font-weight:800;line-height:1.2}
.stat i{position:absolute;right:1.2rem;top:50%;transform:translateY(-50%);font-size:1.2rem}
.stat.alt{background:#fff;color:var(--sec);border:1px solid var(--line);box-shadow:none}
.stat.alt i{color:var(--iebc)}
.stat.warn{background:#f4b860}
.card{border:0;border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.07)}
.card-h{font-weight:700;color:#222;font-size:1.05rem;padding:1rem 1.2rem 0}
.qa{display:flex;align-items:center;gap:.7rem;background:var(--bg);border-radius:8px;padding:.85rem 1rem;color:#444;font-weight:500;height:100%}
.qa i{color:var(--iebc);font-size:1.1rem}.qa:hover{background:var(--iebc-soft)}
.table{--bs-table-bg:transparent;font-size:.86rem}
.table thead th{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:#777;border-bottom:1px solid var(--line);font-weight:700;white-space:nowrap}
.table td{vertical-align:middle}
tr.click{cursor:pointer}tr.click:hover{background:#fafcf7}
.badge-st{font-weight:700;font-size:.7rem;padding:.35em .6em;border-radius:20px}
.st-green{background:#e3f1d3;color:#3d6a14}.st-amber{background:#fdf0d5;color:#8a5a00}.st-red{background:#fde2e1;color:#a52824}.st-blue{background:#dfeefb;color:#175a96}.st-grey{background:#ececec;color:#555}
.empty{text-align:center;padding:2.5rem 1rem;color:#888}.empty i{font-size:2rem;color:#c5d9ae;display:block}

.stepper{display:flex;overflow-x:auto;gap:0;padding:.3rem 0 .8rem}
.step{flex:1 0 74px;text-align:center;position:relative;font-size:.66rem;color:#888;padding:0 2px}
.step:before{content:'';position:absolute;top:11px;left:-50%;width:100%;height:3px;background:#dde3d5;z-index:0}
.step:first-child:before{display:none}
.step .c{width:24px;height:24px;border-radius:50%;background:#dde3d5;color:#fff;display:grid;place-items:center;margin:0 auto .3rem;position:relative;z-index:1;font-size:.7rem}
.step.done .c{background:var(--iebc)}.step.done:before,.step.cur:before{background:var(--iebc)}
.step.cur .c{background:#fff;border:3px solid var(--iebc);color:var(--iebc)}.step.cur{color:#222;font-weight:700}
.tl{list-style:none;padding:0;margin:0;position:relative}
.tl:before{content:'';position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:var(--line)}
.tl li{position:relative;padding:0 0 1rem 28px;font-size:.84rem}
.tl li:before{content:'';position:absolute;left:1px;top:4px;width:14px;height:14px;border-radius:50%;background:var(--iebc);border:3px solid #fff;box-shadow:0 0 0 1px var(--iebc)}
.tl li.rej:before{background:#e0524d;box-shadow:0 0 0 1px #e0524d}.tl li.ret:before{background:#f0a73a;box-shadow:0 0 0 1px #f0a73a}
.tl small{color:#888}
.kv{display:grid;grid-template-columns:150px 1fr;gap:.45rem 1rem;font-size:.86rem}.kv dt{color:#777;font-weight:600}.kv dd{margin:0}
.act-panel{border:2px solid var(--iebc-light);background:#fbfef8}
.wait-panel{background:#f6f6f6}
.role-card{display:flex;gap:.8rem;align-items:center;padding:.65rem .8rem;border:1px solid var(--line);border-radius:10px;margin-bottom:.5rem;cursor:pointer;transition:.15s;width:100%;background:#fff;text-align:left}
.role-card:hover{border-color:var(--iebc);background:var(--iebc-soft)}
.role-card.active{border-color:var(--iebc);background:var(--iebc-soft);box-shadow:inset 3px 0 0 var(--iebc)}
.role-card .ic{width:38px;height:38px;border-radius:50%;background:var(--iebc);color:#fff;display:grid;place-items:center;flex:0 0 38px}
.role-card small{color:#777;display:block;line-height:1.2}
.role-card .pend{margin-left:auto}
.grp{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:#999;font-weight:700;margin:1rem 0 .4rem}
.note-item{display:flex;gap:.8rem;padding:.8rem 1rem;border-bottom:1px solid var(--line)}
.note-item.unread{background:#f7fbf2}.note-item .ic{color:var(--iebc);font-size:1.1rem}
.hash{font-family:ui-monospace,Consolas,monospace;font-size:.72rem;color:#888}
.path-pill{display:inline-block;background:var(--iebc-soft);color:#3d6a14;border-radius:20px;padding:.15rem .6rem;font-size:.72rem;margin:.1rem}
@media(max-width:991px){
  .sidebar{position:fixed;left:-210px;transition:.2s}.sidebar.open{left:0;box-shadow:0 0 30px rgba(0,0,0,.25)}
  .kv{grid-template-columns:1fr}
}

.auth-body{background:#fff}
.auth-wrap{display:flex;min-height:100vh}
.auth-side{flex:0 0 42%;background:linear-gradient(160deg,var(--iebc) 0%,#3f6a1b 100%);color:#fff;padding:3rem;flex-direction:column;justify-content:center}
.auth-side li{margin-bottom:.6rem}
.auth-main{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--bg)}
.auth-card{width:100%;max-width:440px;background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 14px rgba(0,0,0,.08)}
.demo-box{background:var(--iebc-soft);border-radius:8px;padding:.8rem}
.nav-pills .nav-link{color:#444;border:1px solid var(--line)}
.nav-pills .nav-link.active{background:var(--iebc)}
.input-group-text{background:var(--bg)}
.auth-card.wide{max-width:560px}
.flash-otp{background:#fdf0d5;border:1px solid #f0d49a;color:#8a5a00;border-radius:8px;padding:.6rem .9rem;font-size:.85rem}
