:root{
--sidebar:#111827;
--sidebar-hover:#1f2937;
--primary:#2563eb;
--bg:#f4f6f9;
--card:#ffffff;
--border:#e5e7eb;
--text:#111827;
--muted:#6b7280;
--radius:14px;
--shadow:0 8px 24px rgba(15,23,42,.08);
--topbar:70px;
--sidebar-width:260px;
}

*{
margin:0;
padding:0;
box-sizing:border-box;
}

html,body{
height:100%;
}

body{
font-family:Inter,system-ui,sans-serif;
background:var(--bg);
color:var(--text);
overflow-x:hidden;
}

a{
text-decoration:none;
}

.wrapper{
display:flex;
min-height:100vh;
}

.sidebar{
width:var(--sidebar-width);
background:var(--sidebar);
position:fixed;
left:0;
top:0;
bottom:0;
overflow-y:auto;
color:#fff;
z-index:1030;
}

.brand{
height:70px;
display:flex;
align-items:center;
gap:12px;
padding:0 22px;
border-bottom:1px solid rgba(255,255,255,.08);
}

.brand h4{
margin:0;
font-size:24px;
font-weight:700;
}

.brand small{
color:#9ca3af;
}

.menu{
list-style:none;
padding:18px 12px;
}

.menu .title{
font-size:11px;
font-weight:700;
color:#9ca3af;
padding:16px 12px 8px;
letter-spacing:1px;
text-transform:uppercase;
}

.menu li a{
display:flex;
align-items:center;
gap:12px;
padding:12px 14px;
border-radius:12px;
color:#d1d5db;
font-size:15px;
font-weight:500;
transition:.25s;
margin-bottom:4px;
}

.menu li a:hover{
background:var(--sidebar-hover);
color:#fff;
}

.menu li a.active{
background:var(--primary);
color:#fff;
}

.content{
margin-left:var(--sidebar-width);
width:calc(100% - var(--sidebar-width));
}

.topbar{
height:70px;
background:#fff;
display:flex;
justify-content:space-between;
align-items:center;
padding:0 24px;
box-shadow:0 1px 8px rgba(0,0,0,.05);
position:sticky;
top:0;
z-index:1020;
}

.left-area{
display:flex;
align-items:center;
gap:16px;
}

.right-area{
display:flex;
align-items:center;
gap:16px;
}

.icon-btn{
width:42px;
height:42px;
border:1px solid var(--border);
border-radius:10px;
background:#fff;
display:flex;
align-items:center;
justify-content:center;
cursor:pointer;
transition:.25s;
}

.icon-btn:hover{
background:#f3f4f6;
}

.search-box{
width:420px;
height:44px;
display:flex;
align-items:center;
gap:10px;
padding:0 14px;
background:#f8fafc;
border:1px solid var(--border);
border-radius:12px;
}

.search-box input{
border:none;
background:transparent;
width:100%;
outline:none;
}

.badge-dot{
width:10px;
height:10px;
border-radius:50%;
background:#ef4444;
position:absolute;
right:10px;
top:10px;
}

.profile{
display:flex;
align-items:center;
gap:12px;
}

.avatar{
width:42px;
height:42px;
border-radius:50%;
background:var(--primary);
color:#fff;
display:flex;
align-items:center;
justify-content:center;
font-weight:700;
}

.page{
padding:24px;
}

.page-title{
font-size:30px;
font-weight:700;
margin-bottom:24px;
}

.card{
border:none;
border-radius:var(--radius);
box-shadow:var(--shadow);
}

.stat-card{
padding:22px;
}

.stat-title{
font-size:14px;
color:var(--muted);
margin-bottom:10px;
}

.stat-value{
font-size:36px;
font-weight:700;
}

.table-card{
padding:20px;
}

.table>thead th{
font-size:13px;
text-transform:uppercase;
color:#6b7280;
border-bottom:1px solid var(--border);
}

.table td{
vertical-align:middle;
}

.btn-primary{
background:var(--primary);
border-color:var(--primary);
}

.btn{
border-radius:10px;
}

.form-control,
.form-select{
height:46px;
border-radius:10px;
}

.dropdown-menu{
border:none;
border-radius:12px;
box-shadow:var(--shadow);
}

@media(max-width:991px){

.sidebar{
transform:translateX(-100%);
transition:.3s;
}

.sidebar.show{
transform:translateX(0);
}

.content{
margin-left:0;
width:100%;
}

.search-box{
display:none;
}

.page{
padding:18px;
}

}

.wrapper{
display:flex;
min-height:100vh;
}

.content{
display:flex;
flex-direction:column;
min-height:100vh;
}

.page{
flex:1;
}

footer{
margin-top:auto;
background:#fff;
border-top:1px solid #e5e7eb;
}


.menu .has-sub>a{
justify-content:space-between;
}

.submenu{
display:none;
list-style:none;
padding-left:18px;
margin:6px 0 10px;
}

.submenu li a{

padding:10px 14px;

font-size:14px;

color:#cbd5e1;

display:flex;

align-items:center;

gap:10px;

border-radius:10px;

}

.submenu li a:hover{

background:#1f2937;

color:#fff;

}

.has-sub.open>.submenu{

display:block;

}

.arrow{

transition:.25s;

}

.has-sub.open>.menu-link .arrow{

transform:rotate(90deg);

}


/* ===========================
   LANBill Production UI v2
=========================== */

:root{

--sidebar-width:230px;

--sidebar-bg:#111827;

--sidebar-hover:#1f2937;

--sidebar-active:#2563eb;

--navbar-height:60px;

--transition:.25s cubic-bezier(.4,0,.2,1);

}

/* Layout */

.sidebar{

width:var(--sidebar-width);

transition:all var(--transition);

overflow-x:hidden;

overflow-y:auto;

scrollbar-width:thin;

}

.content{

margin-left:var(--sidebar-width);

width:calc(100% - var(--sidebar-width));

transition:all var(--transition);

}

/* Brand */

.brand{

height:70px;

padding:18px;

border-bottom:1px solid rgba(255,255,255,.06);

}

.brand-link{

display:flex;

align-items:center;

gap:12px;

color:#fff;

}

.brand-icon{

font-size:26px;

color:#3b82f6;

}

.brand-title{

font-size:24px;

font-weight:700;

}

.brand-sub{

font-size:12px;

color:#9ca3af;

}

/* Menu */

.sidebar-nav{

padding:12px;

}

.menu{

padding:0;

margin:0;

list-style:none;

}

.menu>li{

margin-bottom:4px;

}

.menu-item{

display:flex;

align-items:center;

justify-content:space-between;

padding:11px 14px;

border-radius:10px;

color:#d1d5db;

font-size:14px;

font-weight:500;

transition:var(--transition);

}

.menu-item span{

display:flex;

align-items:center;

gap:12px;

}

.menu-item i:first-child{

font-size:18px;

width:22px;

text-align:center;

}

.menu-item:hover{

background:#1f2937;

color:#fff;

}

.menu-item.active{

background:#2563eb;

color:#fff;

box-shadow:0 6px 18px rgba(37,99,235,.35);

}

/* Arrow */

.arrow{

font-size:12px;

transition:.25s;

}

/* Submenu */

.submenu{

max-height:0;

overflow:hidden;

transition:max-height .28s ease;

margin-left:18px;

padding-left:12px;

border-left:1px solid rgba(255,255,255,.08);

}

.has-sub.open>.submenu{

max-height:500px;

margin-top:6px;

margin-bottom:8px;

}

.has-sub.open>.menu-item .arrow{

transform:rotate(90deg);

}

.submenu a{

display:block;

padding:9px 12px;

border-radius:8px;

font-size:13px;

color:#cbd5e1;

transition:var(--transition);

}

.submenu a:hover{

background:#1f2937;

color:#fff;

padding-left:18px;

}

.submenu a.active{

background:#2563eb;

color:#fff;

}

/* Navbar */

.topbar{

height:60px;

padding:0 20px;

backdrop-filter:blur(12px);

background:rgba(255,255,255,.95);

}

.search-box{

width:360px;

height:42px;

border-radius:12px;

background:#f8fafc;

}

.search-box input{

font-size:14px;

}

.top-icon{

width:40px;

height:40px;

border-radius:10px;

}

.top-icon:hover{

background:#eef2ff;

}

.notify-dot{

width:8px;

height:8px;

background:#ef4444;

border-radius:50%;

position:absolute;

right:11px;

top:11px;

}

/* Profile */

.profile-btn{

display:flex;

align-items:center;

gap:12px;

color:#111827;

padding:6px 10px;

border-radius:12px;

transition:.25s;

}

.profile-btn:hover{

background:#f3f4f6;

}

.avatar{

width:40px;

height:40px;

border-radius:50%;

background:#2563eb;

color:#fff;

display:flex;

align-items:center;

justify-content:center;

font-weight:700;

}

.avatar-lg{

width:68px;

height:68px;

font-size:24px;

}

.profile-info .name{

font-weight:700;

font-size:14px;

}

.profile-info .role{

font-size:12px;

color:#6b7280;

}

/* Footer */

footer{

height:55px;

display:flex;

align-items:center;

}

/* Scroll */

.sidebar::-webkit-scrollbar{

width:6px;

}

.sidebar::-webkit-scrollbar-thumb{

background:#374151;

border-radius:20px;

}

/* Mobile */

@media(max-width:991px){

.sidebar{

transform:translateX(-100%);

}

.sidebar.show{

transform:translateX(0);

}

.content{

margin-left:0;

width:100%;

}

.search-box{

display:none;

}

}


body.sidebar-collapse .sidebar{

width:78px;

}

body.sidebar-collapse .content{

margin-left:78px;

width:calc(100% - 78px);

}

body.sidebar-collapse .brand-title,
body.sidebar-collapse .brand-sub,
body.sidebar-collapse .menu-item span,
body.sidebar-collapse .arrow,
body.sidebar-collapse .sidebar-footer span{

display:none;

}

body.sidebar-collapse .menu-item{

justify-content:center;

}

body.sidebar-collapse .submenu{

display:none !important;

}


.page-header{

display:flex;

justify-content:space-between;

align-items:center;

margin-bottom:22px;

}

.stat-card{

background:#fff;

border-radius:14px;

padding:20px;

display:flex;

align-items:center;

gap:18px;

box-shadow:0 8px 20px rgba(0,0,0,.05);

transition:.25s;

}

.stat-card:hover{

transform:translateY(-4px);

}

.stat-icon{

width:56px;

height:56px;

border-radius:14px;

background:#eef4ff;

color:#2563eb;

display:flex;

align-items:center;

justify-content:center;

font-size:26px;

}

.stat-number{

font-size:28px;

font-weight:700;

}

.stat-label{

font-size:13px;

color:#6b7280;

}

.table-card{

border:none;

border-radius:14px;

overflow:hidden;

box-shadow:0 8px 20px rgba(0,0,0,.05);

}

.table-card .card-header{

background:#fff;

padding:18px 22px;

font-weight:600;

}


/* =====================================
   LANBill UI Fix Patch v1
===================================== */

/* Compact Sidebar */

.sidebar{
width:230px;
}

.content{
margin-left:230px;
width:calc(100% - 230px);
}

/* Compact Navbar */

.topbar{

height:58px;

padding:0 18px;

}

/* Search */

.search-box{

margin-left:14px;

width:340px;

height:42px;

border-radius:12px;

box-shadow:none;

}

/* Header Icons */

.top-icon{

width:38px;

height:38px;

border:none;

background:#f8fafc;

transition:.25s;

}

.top-icon:hover{

background:#eef2ff;

}

/* Profile */

.profile-btn{

padding:5px 8px;

gap:10px;

border-radius:12px;

}

.avatar{

width:40px;

height:40px;

font-size:18px;

font-weight:700;

}

.profile-info .name{

font-size:15px;

font-weight:700;

line-height:18px;

}

.profile-info .role{

font-size:11px;

color:#94a3b8;

}

/* Sidebar Items */

.menu-item{

height:46px;

padding:0 14px;

border-radius:10px;

display:flex;

align-items:center;

justify-content:space-between;

}

.menu-item:hover{

background:#1f2937;

}

.menu-item.active{

background:#2563eb;

box-shadow:0 6px 16px rgba(37,99,235,.35);

}

/* Submenu */

.submenu{

transition:max-height .28s ease;

}

.submenu a{

padding:10px 16px;

margin:2px 0;

border-radius:8px;

}

.submenu a.active{

background:#2563eb;

color:#fff;

}

/* Collapse */

body.sidebar-collapse .sidebar{

width:72px;

}

body.sidebar-collapse .content{

margin-left:72px;

width:calc(100% - 72px);

}

body.sidebar-collapse .brand-title,
body.sidebar-collapse .brand-sub,
body.sidebar-collapse .menu-item span,
body.sidebar-collapse .arrow,
body.sidebar-collapse .sidebar-footer span{

display:none;

}

body.sidebar-collapse .menu-item,
body.sidebar-collapse .logout-btn{

justify-content:center;

padding:0;

height:46px;

}

body.sidebar-collapse .menu-item i,
body.sidebar-collapse .logout-btn i{

margin:0;

font-size:20px;

}

body.sidebar-collapse .submenu{

display:none !important;

}

/* Footer */

footer{

height:52px;

margin-top:auto;

}

/* Cards */

.stat-card{

border-radius:16px;

transition:.25s;

}

.stat-card:hover{

transform:translateY(-4px);

box-shadow:0 16px 30px rgba(0,0,0,.08);

}

/* Scrollbar */

.sidebar::-webkit-scrollbar{

width:6px;

}

.sidebar::-webkit-scrollbar-thumb{

background:#374151;

border-radius:20px;

}


/* ===== Navbar V2 ===== */

.topbar{
height:60px;
display:flex;
align-items:center;
justify-content:space-between;
padding:0 20px;
background:#fff;
border-bottom:1px solid #e5e7eb;
position:sticky;
top:0;
z-index:1000;
}

.topbar-left{
display:flex;
align-items:center;
gap:16px;
flex:1;
}

.topbar-right{
display:flex;
align-items:center;
gap:12px;
margin-left:auto;
}

.search-box{
display:flex;
align-items:center;
gap:10px;
width:380px;
height:42px;
margin:0;
padding:0 14px;
background:#f8fafc;
border:1px solid #e5e7eb;
border-radius:12px;
}

.search-box input{
flex:1;
border:none;
outline:none;
background:transparent;
font-size:14px;
}

.profile-btn{
display:flex;
align-items:center;
gap:10px;
height:44px;
padding:4px 10px;
border-radius:12px;
}

.profile-info{
display:flex;
flex-direction:column;
line-height:1.2;
}

.profile-info .name{
font-size:15px;
font-weight:700;
}

.profile-info .role{
font-size:11px;
color:#94a3b8;
}


.sidebar{

display:flex;

flex-direction:column;

}

.sidebar-nav{

flex:1;

}

.sidebar-footer{

margin-top:auto;

padding:14px;

border-top:1px solid rgba(255,255,255,.08);

}

.footer-link,
.logout-btn{

display:flex;

align-items:center;

gap:12px;

padding:10px 12px;

border-radius:10px;

color:#cbd5e1;

font-size:14px;

transition:.25s;

}

.footer-link:hover,
.logout-btn:hover{

background:#1f2937;

color:#fff;

}

.footer-link i,
.logout-btn i{

width:20px;

font-size:18px;

text-align:center;

}

.menu-item{

justify-content:flex-start;

gap:12px;

}

.menu-item .arrow{

margin-left:auto;

}

