/* Update 040 — official branding, refined login, and mobile-first usability */
:root{--brand-green:#174d32;--brand-green-2:#277a50;--brand-ink:#16231c;--mobile-gutter:14px}
.company-logo-img{width:100%;height:100%;object-fit:contain;display:block}
/* Login */
.login-body.login-v2{min-height:100dvh;margin:0;background:#eef3f0!important;color:var(--brand-ink);overflow-x:hidden}
.login-v2 .login-shell{min-height:100dvh;padding:clamp(18px,4vw,48px);display:grid;place-items:center;background:radial-gradient(circle at 8% 10%,rgba(39,122,80,.16),transparent 30rem),radial-gradient(circle at 92% 90%,rgba(23,77,50,.12),transparent 34rem)}
.login-card-v2{width:min(1060px,100%);min-height:620px;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr);overflow:hidden;border:1px solid #d9e3dd;border-radius:20px;background:#fff;box-shadow:0 26px 80px rgba(20,61,40,.14)}
.login-identity-panel{position:relative;display:flex;flex-direction:column;padding:48px;background:linear-gradient(150deg,#123b28 0%,#1a5638 56%,#277a50 100%);color:#fff;isolation:isolate;overflow:hidden}
.login-identity-panel:before,.login-identity-panel:after{content:"";position:absolute;border-radius:50%;pointer-events:none;z-index:-1}.login-identity-panel:before{width:330px;height:330px;right:-125px;top:-95px;border:1px solid rgba(255,255,255,.16);box-shadow:0 0 0 48px rgba(255,255,255,.035)}.login-identity-panel:after{width:260px;height:260px;left:-145px;bottom:-130px;background:rgba(255,255,255,.045)}
.login-logo-frame{width:min(410px,100%);height:138px;padding:16px 20px;border-radius:14px;background:#fff;border:1px solid rgba(255,255,255,.7);box-shadow:0 12px 32px rgba(5,28,17,.16)}.login-logo-frame img{width:100%;height:100%;object-fit:contain}
.login-identity-copy{margin:auto 0 28px;max-width:520px}.login-kicker{display:inline-flex;align-items:center;gap:8px;margin-bottom:18px;color:#cce7d7;font-size:12px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.login-identity-copy h1{max-width:500px;margin:0 0 14px;font-size:clamp(31px,3.4vw,46px);line-height:1.08;letter-spacing:-.04em;font-weight:780}.login-identity-copy p{max-width:510px;margin:0;color:rgba(255,255,255,.74);font-size:15px;line-height:1.65}
.login-feature-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:24px}.login-feature-list span{display:flex;align-items:center;gap:8px;min-height:58px;padding:10px;border:1px solid rgba(255,255,255,.13);border-radius:10px;background:rgba(255,255,255,.07);font-size:12px;font-weight:650}.login-feature-list i{font-size:17px;color:#bce2ca}.login-company-note{color:rgba(255,255,255,.62);font-size:11px}
.login-form-panel{display:flex;flex-direction:column;justify-content:center;padding:clamp(34px,5vw,64px)}.login-mobile-logo{display:none}.login-form-heading{margin-bottom:28px}.login-product-name{display:inline-block;margin-bottom:10px;color:var(--brand-green-2);font-size:12px;font-weight:800;letter-spacing:.12em}.login-form-heading h2{margin:0 0 8px;font-size:29px;line-height:1.2;letter-spacing:-.025em;font-weight:760}.login-form-heading p{margin:0;color:#6c7871;font-size:14px}.login-form-v2{display:grid;gap:18px}.login-form-v2 .form-label{font-size:13px}.login-input-wrap{position:relative}.login-input-wrap>i{position:absolute;left:15px;top:50%;z-index:2;transform:translateY(-50%);color:#728078;font-size:17px}.login-input-wrap .form-control{height:50px;padding-left:44px;border-radius:10px!important;font-size:15px}.login-submit{height:50px;margin-top:4px;display:flex;align-items:center;justify-content:center;gap:12px;border-radius:10px!important}.login-submit i{transition:transform .15s}.login-submit:hover i{transform:translateX(3px)}.login-security-note{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:20px;color:#7b867f;font-size:11px}
/* Official brand in navigation */
.app-brand-logo{overflow:hidden;background:#fff!important;border:1px solid rgba(255,255,255,.22)!important}.app-brand-logo img{padding:3px!important}.app-brand-copy{display:flex;min-width:0;flex-direction:column;line-height:1.15}.app-brand-copy strong{display:block}.app-brand-copy small{display:block;margin-top:4px;color:rgba(255,255,255,.58);font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.025em}.topbar-brand-mark{width:42px;height:42px;display:grid;place-items:center;overflow:hidden;flex:0 0 42px;padding:3px;border:1px solid var(--ui-border,#dfe7e2);border-radius:10px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.04)}.topbar-brand-mark img{width:100%;height:100%;object-fit:contain}
/* Mobile and tablet */
@media(max-width:1100px){body.sidebar-mobile-open{overflow:hidden}.app-sidebar{position:fixed!important;left:0;top:0;bottom:0;z-index:1055;transform:translateX(-104%);transition:transform .22s ease!important;width:min(88vw,340px)!important;height:100dvh!important}.sidebar-mobile-open .app-sidebar{transform:translateX(0)}.sidebar-overlay{position:fixed!important;inset:0!important;z-index:1050!important;background:rgba(8,24,16,.46)!important;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}.sidebar-mobile-open .sidebar-overlay{opacity:1;visibility:visible}.app-shell{display:block!important}.app-main{width:100%!important}.app-nav .nav-link{min-height:46px!important}.sidebar-close-button{display:grid!important}}
@media(max-width:767.98px){html,body{max-width:100%;overflow-x:hidden}.app-main{padding:0 var(--mobile-gutter) 22px!important}.app-topbar{min-height:64px;margin:0 calc(var(--mobile-gutter)*-1) 14px!important;padding:9px var(--mobile-gutter)!important;gap:8px}.app-topbar>div:first-child{gap:8px!important;min-width:0}.sidebar-toggle-button,.topbar-brand-mark{width:40px!important;height:40px!important;min-width:40px!important;flex-basis:40px!important}.app-topbar h1{font-size:16px!important;line-height:1.15}.topbar-title-wrap{max-width:min(38vw,190px)}.topbar-actions{margin-left:auto}.topbar-avatar{width:36px!important;height:36px!important}.section-panel{padding:14px!important}.section-heading{display:grid!important;grid-template-columns:minmax(0,1fr);gap:12px!important}.section-heading>.d-flex,.section-heading>.btn,.section-heading>a,.section-heading>button{width:100%!important}.section-heading>.d-flex{grid-template-columns:1fr!important}.section-heading .btn{min-height:44px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}.metric-tile{min-width:0;min-height:116px!important;padding:14px!important}.metric-tile strong{font-size:18px!important;overflow-wrap:anywhere}.metric-tile small{font-size:11px}.row.g-3,.row.g-2{--bs-gutter-x:12px}.form-control,.form-select,.btn{min-height:44px}.table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table{min-width:max-content}.table>thead>tr>th,.table>tbody>tr>td{padding:.68rem .62rem!important}.modal-dialog{width:100%;max-width:none!important;min-height:100%;margin:0!important}.modal-content{min-height:100dvh;border:0!important;border-radius:0!important}.modal-footer{position:sticky;bottom:0;z-index:2}.dropdown-menu{max-width:calc(100vw - 28px)}.alert{font-size:13px}.sidebar-help{display:none}.app-nav{padding-bottom:max(20px,env(safe-area-inset-bottom))}
.login-v2 .login-shell{display:block;padding:0;background:#eef3f0}.login-card-v2{display:block;width:100%;min-height:100dvh;border:0;border-radius:0;box-shadow:none}.login-identity-panel{display:none}.login-form-panel{min-height:100dvh;justify-content:center;padding:32px 22px max(30px,env(safe-area-inset-bottom))}.login-mobile-logo{display:block;width:min(300px,88%);height:120px;margin:0 auto 30px;padding:12px 15px;border:1px solid #dbe5df;border-radius:14px;background:#fff;box-shadow:0 10px 32px rgba(20,61,40,.08)}.login-mobile-logo img{width:100%;height:100%;object-fit:contain}.login-form-heading{text-align:center;margin-bottom:26px}.login-form-heading h2{font-size:25px}.login-input-wrap .form-control,.login-submit{height:52px}.login-security-note{margin-top:18px}}
@media(max-width:430px){:root{--mobile-gutter:10px}.topbar-brand-mark{display:grid!important}.topbar-title-wrap{max-width:25vw}.metric-grid{grid-template-columns:1fr 1fr!important}.metric-tile{min-height:106px!important}.section-panel{padding:12px!important}.login-form-panel{padding-inline:18px}.login-mobile-logo{height:108px;margin-bottom:24px}.login-form-heading h2{font-size:23px}}
@media(max-width:350px){.metric-grid{grid-template-columns:1fr!important}.topbar-user-card{display:none!important}.topbar-title-wrap{max-width:52vw}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
@media print{.topbar-brand-mark{display:none!important}}

/* Update 041 — navbar/dropdown remains usable without Bootstrap CDN. */
.app-sidebar-header{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px}
.app-brand{display:flex!important;align-items:center!important;min-width:0}
.app-nav{display:flex!important;flex-direction:column!important}
.app-nav .nav-link{display:flex!important;align-items:center!important;gap:10px}
.app-nav .nav-link .flex-grow-1{flex:1 1 auto!important}
.collapse:not(.show){display:none!important}.collapse.show{display:block!important}
.app-topbar{display:flex!important;align-items:center!important;justify-content:space-between!important}
.app-topbar>div:first-child,.topbar-actions,.topbar-user-card{display:flex!important;align-items:center!important}
.dropdown,.btn-group{position:relative}.dropdown-menu{position:absolute;z-index:1080;display:none;min-width:220px;margin:4px 0 0;padding:7px;list-style:none;background:#fff;border:1px solid var(--ui-border,#dfe7e2);border-radius:10px;box-shadow:0 16px 38px rgba(18,59,40,.16)}.dropdown-menu.show{display:block!important}.dropdown-menu-end{right:0;left:auto}.dropdown-item{display:flex;width:100%;align-items:center;padding:9px 10px;border:0;background:transparent;text-align:left;text-decoration:none;color:var(--ui-text,#1f2a24)}.dropdown-item:hover,.dropdown-item:focus{background:var(--ui-green-50,#f2faf5)}
@media(max-width:767.98px){.app-topbar{flex-wrap:nowrap!important}.app-topbar>div:first-child{min-width:0;flex:1 1 auto}.topbar-actions{flex:0 0 auto}.app-brand-copy{flex:1 1 auto}.dropdown-menu{position:fixed;left:14px!important;right:14px!important;top:auto;max-width:none!important;width:auto}.btn-group>.dropdown-menu{position:absolute;left:auto!important;right:0!important;width:min(300px,calc(100vw - 28px))}}

/* Update 042 — simplified navigation: fewer top-level choices, full features inside accordion. */
.app-nav[data-simple-nav]{gap:5px!important}.app-nav[data-simple-nav]>button.nav-link{min-height:44px!important;margin-top:0!important;padding:10px 11px!important;border:1px solid rgba(255,255,255,.07)!important;background:rgba(255,255,255,.035)!important;text-transform:none!important;letter-spacing:0!important;font-size:13px!important}.app-nav[data-simple-nav]>button.nav-link:hover,.app-nav[data-simple-nav]>button.nav-link[aria-expanded="true"]{background:rgba(255,255,255,.11)!important;border-color:rgba(255,255,255,.13)!important}.app-nav[data-simple-nav]>button.nav-link .bi-chevron-down{transition:transform .16s ease}.app-nav[data-simple-nav]>button.nav-link[aria-expanded="true"] .bi-chevron-down{transform:rotate(180deg)}.app-nav[data-simple-nav]>.collapse{margin:0 0 3px 13px!important;padding:3px 0 3px 9px!important}.app-nav[data-simple-nav]>.collapse .nav-link{min-height:37px!important;padding:7px 9px!important;font-size:12.5px!important}.sidebar-context strong:after{content:" · 6 menu utama";color:rgba(255,255,255,.48);font-weight:500;font-size:10px}@media(max-width:1100px){.app-nav[data-simple-nav]>button.nav-link{min-height:48px!important}.app-nav[data-simple-nav]>.collapse .nav-link{min-height:44px!important}}

/* Update 043 — logo-only navbar branding and product credit. */
.app-brand-logo-only{width:176px!important;height:48px!important;max-width:calc(100% - 48px);flex:1 1 auto!important;padding:4px 8px!important;border-radius:10px!important}.app-brand-logo-only img{padding:0!important;object-fit:contain!important}.app-sidebar-header .app-brand{flex:1 1 auto;min-width:0}.app-footer{margin-top:28px;padding:18px 4px 2px;border-top:1px solid var(--ui-border,#dfe7e2);color:var(--ui-muted,#68746d);font-size:12px;text-align:center}.app-footer strong{color:var(--ui-green-800,#1d6040);font-weight:750}.login-powered{margin-top:10px;color:#8a958e;font-size:11px;text-align:center}.login-powered strong{color:var(--brand-green-2,#277a50)}@media(max-width:1100px){.app-brand-logo-only{width:184px!important;height:50px!important}}@media(max-width:767.98px){.app-footer{margin-top:22px;padding-bottom:max(4px,env(safe-area-inset-bottom))}}@media print{.app-footer{display:none!important}}

/* Update 045 — Online becomes a direct sidebar page with wrapped page-level modules. */
.online-hub-header{padding:18px;border:1px solid var(--ui-border,#dfe7e2);border-radius:14px;background:#fff;box-shadow:var(--ui-shadow-sm);overflow:hidden}.online-hub-title{display:flex;align-items:center;gap:14px;margin-bottom:16px}.online-hub-title h2{margin:0;font-size:21px;font-weight:780}.online-hub-title p{margin:2px 0 0;color:var(--ui-muted);font-size:12px}.online-hub-icon{width:44px;height:44px;display:grid;place-items:center;flex:0 0 44px;border-radius:11px;background:var(--ui-green-100);color:var(--ui-green-800);font-size:20px}.online-hub-kicker{display:block;margin-bottom:2px;color:var(--ui-green-700);font-size:10px;font-weight:800;letter-spacing:.11em}.online-module-nav{display:flex;flex-wrap:wrap;gap:8px}.online-module-link{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:8px 11px;border:1px solid var(--ui-border);border-radius:9px;background:var(--ui-surface-2);color:var(--ui-text);font-size:12px;font-weight:680;text-decoration:none}.online-module-link:hover{border-color:#9bc6ac;background:var(--ui-green-50);color:var(--ui-green-800)}.online-module-link.active{border-color:var(--ui-green-700);background:var(--ui-green-700);color:#fff}.online-revenue-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.75fr);align-items:end;gap:24px;background:linear-gradient(135deg,#fff,#f2faf5)!important}.online-revenue-hero h2{margin:3px 0;font-size:25px;font-weight:780}.online-revenue-hero p{margin:0;color:var(--ui-muted)}@media(max-width:900px){.online-revenue-hero{grid-template-columns:1fr}.online-module-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.online-module-link{justify-content:flex-start}}@media(max-width:600px){.online-hub-header{padding:13px;margin-inline:0}.online-hub-title{margin-bottom:12px}.online-module-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.online-module-link{min-width:0;min-height:44px;padding:8px;font-size:11.5px}.online-module-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.online-revenue-hero{gap:16px}.online-revenue-hero h2{font-size:21px}}

/* Update 046 — sidebar dropdowns expand strictly downward, never sideways. */
.app-sidebar{overflow-x:hidden!important}.app-nav[data-simple-nav]{width:100%;max-width:100%;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain}.app-nav[data-simple-nav]>button.nav-link{width:100%!important;max-width:100%!important;flex:0 0 auto}.app-nav[data-simple-nav]>.collapse{width:100%!important;max-width:100%!important;margin:3px 0 7px!important;padding:4px 0!important;border-left:0!important;background:rgba(0,0,0,.08);border-radius:9px;overflow:hidden!important;flex:0 0 auto}.app-nav[data-simple-nav]>.collapse.show{display:block!important}.app-nav[data-simple-nav]>.collapse .nav-link{width:100%!important;max-width:100%!important;margin:0!important;padding:9px 12px 9px 38px!important;border-radius:7px!important;white-space:normal!important;overflow-wrap:anywhere}.app-nav[data-simple-nav]>.collapse .nav-link>span{min-width:0}.app-nav[data-simple-nav]>button.nav-link[aria-expanded="true"]{margin-bottom:0!important}.app-nav[data-simple-nav] .bi-chevron-down{margin-left:auto!important;transform-origin:center}@media(max-width:1100px){.app-nav[data-simple-nav]>.collapse{margin-inline:0!important}.app-nav[data-simple-nav]>.collapse .nav-link{padding:11px 12px 11px 38px!important}}

/* Update 048 — hybrid sidebar: only Transaksi is a dropdown. */
.module-hub{padding:clamp(18px,3vw,30px);border:1px solid var(--ui-border,#dfe7e2);border-radius:16px;background:#fff;box-shadow:var(--ui-shadow-sm)}.module-hub-header{max-width:720px;margin-bottom:24px}.module-hub-kicker{display:block;margin-bottom:5px;color:var(--ui-green-700);font-size:10px;font-weight:800;letter-spacing:.12em}.module-hub-header h2{margin:0 0 7px;font-size:28px;font-weight:800;letter-spacing:-.03em}.module-hub-header p{margin:0;color:var(--ui-muted)}.module-hub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.module-hub-card{display:flex;align-items:center;gap:14px;min-height:92px;padding:16px;border:1px solid var(--ui-border);border-radius:12px;background:var(--ui-surface-2);color:var(--ui-text);text-decoration:none}.module-hub-card:hover{border-color:#9bc6ac;background:var(--ui-green-50);color:var(--ui-green-900)}.module-hub-card-icon{width:44px;height:44px;display:grid;place-items:center;flex:0 0 44px;border-radius:10px;background:var(--ui-green-100);color:var(--ui-green-800);font-size:19px}.module-hub-card-copy{display:flex;min-width:0;flex:1;flex-direction:column}.module-hub-card-copy strong{font-size:14px}.module-hub-card-copy small{margin-top:4px;color:var(--ui-muted);font-size:11.5px}.module-hub-arrow{color:var(--ui-green-700)}@media(max-width:700px){.module-hub{padding:15px}.module-hub-header h2{font-size:23px}.module-hub-grid{grid-template-columns:1fr;gap:9px}.module-hub-card{min-height:82px;padding:13px}}
