:root{
    --green:#075c50;
    --green-dark:#043f38;
    --green-darker:#032f2a;
    --lime:#c9d94d;
    --lime-soft:#f1f5d7;
    --bg:#f4f7f5;
    --card:#fff;
    --text:#253630;
    --muted:#75817d;
    --border:#e3e9e6;
    --danger:#bd4646;
    --sidebar:274px;
    --topbar:72px;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit}
button{cursor:pointer}

/* LOGIN */
.login-body{background:#eef3f0;min-height:100vh}
.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(380px,1.1fr) minmax(420px,.9fr)}
.login-brand-panel{position:relative;overflow:hidden;background:linear-gradient(145deg,var(--green-darker),var(--green) 65%,#0b7364);display:flex;align-items:center;padding:70px;color:#fff}
.login-brand-panel:before{content:"";position:absolute;width:440px;height:440px;border-radius:50%;background:rgba(201,217,77,.13);right:-150px;top:-90px}
.login-brand-panel:after{content:"";position:absolute;width:300px;height:300px;border:1px solid rgba(255,255,255,.12);border-radius:50%;left:-120px;bottom:-130px}
.login-brand-inner{position:relative;z-index:2;max-width:620px}
.login-logo-card{background:#fff;border-radius:14px;padding:15px 20px;width:230px;margin-bottom:54px;box-shadow:0 15px 40px rgba(0,0,0,.16)}
.login-logo-card img,.login-mobile-logo img,.sidebar-logo-card img{display:block;width:100%;height:auto;max-height:48px;object-fit:contain}
.eyebrow{display:inline-block;font-size:10px;font-weight:800;letter-spacing:1.8px;color:var(--lime);margin-bottom:12px}.eyebrow.dark{color:var(--green)}
.login-brand-inner h1{font-size:44px;line-height:1.08;margin:0 0 20px;max-width:600px;letter-spacing:-1.5px}
.login-brand-inner p{font-size:16px;line-height:1.7;color:rgba(255,255,255,.75);max-width:560px}
.login-form-panel{display:flex;align-items:center;justify-content:center;padding:45px;background:#fff}
.login-card{width:min(100%,430px)}
.login-mobile-logo{display:none;width:190px;margin-bottom:30px}
.login-heading h2{font-size:32px;margin:0 0 7px;color:var(--green-dark)}
.login-heading p{margin:0 0 30px;color:var(--muted)}
.form-label{display:block;font-size:12px;font-weight:700;margin:16px 0 8px;color:#42514c}
.input-group-custom{display:flex;align-items:center;border:1px solid var(--border);background:#fff;border-radius:10px;padding:0 13px;transition:.18s}
.input-group-custom:focus-within{border-color:#76a499;box-shadow:0 0 0 3px rgba(7,92,80,.08)}
.input-group-custom>i{color:#8b9793}
.input-group-custom input{width:100%;border:0;outline:0;padding:13px 11px;background:transparent;font-size:14px;color:var(--text)}
.password-toggle{border:0;background:transparent;color:#8b9793;padding:5px}
.btn-primary-full{margin-top:24px;width:100%;border:0;border-radius:10px;padding:14px 17px;background:var(--green);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;gap:10px;box-shadow:0 10px 20px rgba(7,92,80,.15)}
.btn-primary-full:hover{background:var(--green-dark)}
.alert{display:flex;gap:8px;align-items:center;padding:11px 12px;border-radius:9px;font-size:12px;margin-bottom:18px}.alert-danger{background:#fff0f0;color:#9b3333;border:1px solid #f2d1d1}
.login-footnote{text-align:center;margin-top:24px;font-size:10px;color:#9aa5a1;text-transform:uppercase;letter-spacing:1px}

/* APP SHELL */
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:linear-gradient(180deg,var(--green) 0%,var(--green-dark) 100%);color:#fff;display:flex;flex-direction:column;z-index:1100;box-shadow:5px 0 25px rgba(4,63,56,.08)}
.sidebar-brand{height:94px;display:flex;align-items:center;padding:18px 20px;border-bottom:1px solid rgba(255,255,255,.09)}
.sidebar-logo-card{background:#fff;width:100%;height:58px;border-radius:10px;padding:9px 16px;display:flex;align-items:center;justify-content:center}
.sidebar-nav{flex:1;overflow:auto;padding:18px 12px}
.nav-section-label{padding:8px 12px;margin:8px 0 4px;color:rgba(255,255,255,.42);font-size:9px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase}
.nav-link,.submenu-link{width:100%;border:0;background:transparent;color:rgba(255,255,255,.78);display:flex;align-items:center;gap:11px;text-align:left;border-radius:8px;transition:.16s}
.nav-link{padding:11px 12px;font-size:13.5px;margin-bottom:3px}.nav-link:hover,.submenu-link:hover{background:rgba(255,255,255,.08);color:#fff}.nav-link.active{background:var(--lime);color:var(--green-dark);font-weight:700}.nav-icon{width:22px;font-size:17px;text-align:center}.nav-text{flex:1}.nav-chevron{font-size:10px;transition:.18s}.nav-group.open>.nav-link .nav-chevron{transform:rotate(90deg)}
.submenu{display:none;padding:2px 0 6px 14px}.nav-group.open>.submenu{display:block}.submenu-link{position:relative;padding:9px 10px 9px 28px;font-size:12.5px;margin:2px 0}.submenu-link:before{content:"";position:absolute;left:12px;width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.28)}.submenu-link.active{color:var(--lime);font-weight:700}.submenu-link.active:before{background:var(--lime)}.submenu-link i{width:16px}
.admin-pill{font-size:8px;font-weight:800;letter-spacing:.4px;color:var(--lime);border:1px solid rgba(201,217,77,.25);background:rgba(201,217,77,.1);border-radius:4px;padding:3px 5px}
.sidebar-footer{padding:15px 18px;border-top:1px solid rgba(255,255,255,.08);font-size:10px;color:rgba(255,255,255,.5);line-height:1.5}.sidebar-footer span{color:rgba(255,255,255,.3)}
.main-area{margin-left:var(--sidebar);min-height:100vh}.topbar{height:var(--topbar);position:sticky;top:0;z-index:1000;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 28px}.topbar-left{display:flex;align-items:center;gap:13px}.mobile-menu-btn{display:none;border:0;background:transparent;color:var(--green);font-size:23px;padding:5px}.page-title{font-size:17px;font-weight:800;color:var(--green-dark)}.page-subtitle{font-size:10px;color:var(--muted);margin-top:3px}
.user-menu-wrap{position:relative}.user-menu-btn{border:0;background:transparent;display:flex;align-items:center;gap:10px;padding:6px 7px;border-radius:9px;color:var(--text)}.user-menu-btn:hover{background:#f3f6f4}.avatar{width:38px;height:38px;border-radius:50%;background:var(--green);color:#fff;border:2px solid var(--lime);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.user-meta{display:flex;flex-direction:column;align-items:flex-start}.user-meta strong{font-size:12px}.user-meta span{font-size:9.5px;color:var(--muted);margin-top:2px}.user-menu-btn>i{font-size:10px;color:#8b9793}
.user-dropdown{display:none;position:absolute;right:0;top:52px;width:215px;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 15px 35px rgba(34,63,54,.14);overflow:hidden}.user-dropdown.show{display:block}.dropdown-company{padding:13px 14px;font-size:10px;font-weight:800;color:var(--green);border-bottom:1px solid var(--border)}.dropdown-link{width:100%;display:flex;align-items:center;gap:10px;border:0;background:transparent;text-decoration:none;color:var(--text);padding:11px 14px;font-size:12px;text-align:left}.dropdown-link:hover{background:#f5f7f5}.danger-link{color:#aa3d3d}
.content-wrap{padding:24px 28px 40px}.page-panel{background:#fff;border:1px solid var(--border);border-radius:12px;min-height:calc(100vh - var(--topbar) - 48px);box-shadow:0 4px 18px rgba(31,61,52,.035);overflow:hidden}#pageContent{padding:24px;min-height:520px}
.page-loader{min-height:430px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:var(--muted);font-size:12px}.spinner{width:34px;height:34px;border-radius:50%;border:3px solid #e5ebe8;border-top-color:var(--green);animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.state-card{min-height:410px;display:flex;align-items:center;justify-content:center;text-align:center;flex-direction:column;color:var(--muted)}.state-card>i{width:62px;height:62px;border-radius:14px;background:var(--lime-soft);color:var(--green);display:flex;align-items:center;justify-content:center;font-size:25px;margin-bottom:14px}.state-card h3{font-size:19px;color:var(--green-dark);margin:3px 0 7px}.state-card p{margin:0;max-width:430px}.state-card.danger>i{background:#fff0f0;color:var(--danger)}

/* MODULE COMPONENTS */
.module-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}.module-title-wrap .eyebrow{margin-bottom:6px}.module-title-wrap h2{font-size:23px;color:var(--green-dark);margin:0 0 5px}.module-title-wrap p{margin:0;color:var(--muted);font-size:12px}.btn-accent{border:0;background:var(--lime);color:var(--green-dark);font-weight:800;border-radius:8px;padding:10px 13px;display:inline-flex;align-items:center;gap:8px}.btn-accent:hover{filter:brightness(.96)}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric-card{border:1px solid var(--border);border-radius:11px;padding:17px;background:linear-gradient(180deg,#fff,#fbfcfb)}.metric-top{display:flex;justify-content:space-between;align-items:center}.metric-label{font-size:10px;color:var(--muted);font-weight:800;letter-spacing:.7px;text-transform:uppercase}.metric-icon{width:34px;height:34px;border-radius:9px;background:var(--lime-soft);color:var(--green);display:flex;align-items:center;justify-content:center}.metric-value{font-size:25px;font-weight:800;color:var(--green-dark);margin-top:12px}.metric-note{font-size:10px;color:var(--muted);margin-top:3px}
.content-card{border:1px solid var(--border);border-radius:11px;background:#fff;margin-top:16px}.content-card-head{display:flex;align-items:center;justify-content:space-between;padding:15px 16px;border-bottom:1px solid var(--border)}.content-card-head strong{font-size:13px;color:var(--green-dark)}.content-card-body{padding:16px}.table-responsive{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:12px}.table th{text-align:left;padding:11px 10px;color:#66726e;font-size:9px;letter-spacing:.7px;text-transform:uppercase;border-bottom:1px solid var(--border);background:#fafcfa}.table td{padding:12px 10px;border-bottom:1px solid #eef2f0}.badge{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:800}.badge-success{background:#e7f5ee;color:#2d7b59}.badge-warning{background:#fff7dd;color:#9d7414}.badge-danger{background:#ffeded;color:#a84040}.badge-info{background:#eaf2f6;color:#46718a}
.toolbar{display:flex;gap:9px;flex-wrap:wrap}.toolbar input,.toolbar select{border:1px solid var(--border);border-radius:8px;background:#fff;padding:9px 10px;font-size:11px;outline:none}.toolbar input:focus,.toolbar select:focus{border-color:#7ca99f}
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:1090}
@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:991px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.mobile-open{transform:translateX(0)}.sidebar-overlay.show{display:block}.main-area{margin-left:0}.mobile-menu-btn{display:block}.topbar{padding:0 18px}.content-wrap{padding:16px}.login-shell{grid-template-columns:1fr}.login-brand-panel{display:none}.login-form-panel{min-height:100vh}.login-mobile-logo{display:block}}
@media(max-width:600px){.user-meta{display:none}.page-subtitle{display:none}.content-wrap{padding:10px}#pageContent{padding:15px}.metric-grid{grid-template-columns:1fr}.module-head{flex-direction:column;align-items:stretch}.btn-accent{justify-content:center}}
