:root{--g900:#123d28;--g700:#1f6b45;--g600:#2a8559;--g100:#e6f3ec;--g50:#f3faf6;--line:#e3e9e5;--sb:#14352a;--sbw:244px}
*{box-sizing:border-box}
body{font-family:'Inter',system-ui,sans-serif;font-size:14px;background:#f4f7f5;color:#1c2620;margin:0}
a{color:var(--g700)}
.btn-primary{--bs-btn-bg:var(--g700);--bs-btn-border-color:var(--g700);--bs-btn-hover-bg:var(--g900);--bs-btn-hover-border-color:var(--g900);--bs-btn-active-bg:var(--g900);--bs-btn-active-border-color:var(--g900)}
.btn-outline-primary{--bs-btn-color:var(--g700);--bs-btn-border-color:var(--g700);--bs-btn-hover-bg:var(--g700);--bs-btn-hover-border-color:var(--g700)}
.app-shell{display:flex;min-height:100vh}
.sidebar{width:var(--sbw);background:var(--sb);color:#cfe3d8;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;padding:14px 10px;z-index:100}
.sb-brand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:700;font-size:18px;text-decoration:none;padding:6px 10px 18px}
.sb-group{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#7fa593;margin:16px 10px 6px}
.sb-link{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:8px;color:#cfe3d8;text-decoration:none}
.sb-link i.fas:first-child{width:18px;text-align:center}
.sb-link:hover{background:#1d4a3a;color:#fff}
.sb-link.active{background:#fff;color:var(--g700);font-weight:600}
.sb-link.locked{opacity:.65}
.sb-lock{margin-left:auto;font-size:11px}
.main{flex:1;margin-left:var(--sbw);min-width:0}
.topbar{height:58px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:0 24px;position:sticky;top:0;z-index:50}
.tb-company{font-weight:600}
.tb-user{color:#1c2620;text-decoration:none}
.content{padding:24px;max-width:1400px}
.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;flex-wrap:wrap}
.page-head h1{font-size:22px;font-weight:700;margin:0}
.card{border:1px solid var(--line);border-radius:12px;box-shadow:none}
.card-header{background:#fff;font-weight:600;border-bottom:1px solid var(--line)}
.stat{padding:16px 18px}
.stat .n{font-size:26px;font-weight:700;line-height:1.1}
.stat .l{color:#5d6b63;font-size:13px}
table.dataTable thead th{border-bottom:1px solid var(--line)!important;font-weight:600}
.table>:not(caption)>*>*{padding:.6rem .7rem}
.dataTables_wrapper .dataTables_filter input{border:1px solid var(--line);border-radius:8px;padding:6px 10px}
.form-label{font-weight:600;font-size:13px;margin-bottom:4px}
.upgrade-box{max-width:620px;margin:40px auto;text-align:center}
@media(max-width:991px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.main{margin-left:0}.content{padding:16px}}
@media print{.sidebar,.topbar,.no-print{display:none!important}.main{margin:0}.content{padding:0}body{background:#fff}}
