:root{
	--primary:#00597a;
	--primary-dark:#003c57;
	--primary-soft:#006a8f;
	--bg-main:#003047;
	--bg-card:#003a55;
	--accent:#7dfc4f;
	--accent-dark:#46b52a;
	--text-light:#ffffff;
	--text-muted:#b5d0df;
}

*{
	box-sizing:border-box;
}

html,
body{
	min-height:100%;
}

body{
	margin:0;
	font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
	background:#083249;
	color:var(--text-light);
}

/* ===== Topbar ===== */
.topbar{
	position:fixed;
	top:0;
	left:0;
	right:0;
	height:56px;
	padding:0 18px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	background:linear-gradient(90deg,#024c6a,#00628a);
	box-shadow:0 4px 12px rgba(0,0,0,.35);
	z-index:50;
}

.topbar-left,
.topbar-right{
	display:flex;
	align-items:center;
	gap:10px;
}

.logo-text{
	font-weight:800;
	letter-spacing:.16em;
	font-size:.85rem;
	text-transform:uppercase;
	color:#e7f6ff;
	display:flex;
	align-items:center;
	gap:10px;
	text-decoration:none;
}

.logo-text img{
	height:38px;
	max-width:160px;
	object-fit:contain;
}

/* ===== Login ===== */
.main-wrapper{
	min-height:100vh;
	padding:80px 15px 32px;
	display:flex;
	align-items:center;
	justify-content:center;
}

.card-hero{
	background:radial-gradient(circle at top left,#046a8f 0,#003b55 55%,#002639 100%);
	border-radius:26px;
	padding:36px 26px;
	box-shadow:0 18px 40px rgba(0,0,0,.6);
	border:1px solid rgba(7,214,255,.12);
}

.hero-title{
	font-weight:900;
	font-size:clamp(1.6rem,3vw,2.2rem);
	text-transform:uppercase;
	line-height:1.15;
	letter-spacing:.02em;
	margin:0;
}

.hero-sub{
	color:var(--text-muted);
	font-size:1.05rem;
	margin-top:8px;
}

/* ===== Bootstrap BRBicho ===== */
.text-muted{
	color:var(--text-muted)!important;
}

.form-label{
	color:#dff5ff;
	font-weight:800;
	font-size:.88rem;
}

.form-control,
.form-select{
	background:rgba(0,34,52,.65)!important;
	color:#eaf7ff!important;
	border:1px solid rgba(4,223,255,.18)!important;
	border-radius:14px!important;
	min-height:44px;
}

.form-control::placeholder{
	color:rgba(181,208,223,.65)!important;
}

.form-control:focus,
.form-select:focus{
	border-color:rgba(125,252,79,.75)!important;
	box-shadow:0 0 0 .22rem rgba(125,252,79,.18)!important;
}

.input-group-text{
	background:rgba(0,34,52,.45)!important;
	border:1px solid rgba(4,223,255,.12)!important;
	color:rgba(234,247,255,.70)!important;
	border-radius:14px!important;
}

.btn{
	border-radius:14px!important;
	font-weight:800!important;
}

.btn-primary{
	background:linear-gradient(135deg,#a7ff7c,#7dfc4f)!important;
	border:1px solid rgba(70,181,42,.9)!important;
	color:#00240f!important;
}

.btn-primary:hover{
	filter:brightness(1.05);
}

.btn-outline-top{
	border:1px solid rgba(255,255,255,.35)!important;
	color:#eaf7ff!important;
	background:transparent!important;
	font-weight:700!important;
}

.btn-outline-top:hover{
	background:rgba(255,255,255,.10)!important;
	color:#fff!important;
}

.btn-danger{
	background:#dc3545!important;
	border-color:#dc3545!important;
	color:#fff!important;
}

/* ===== Layout Painel ===== */
.app-layout{
	min-height:100vh;
	padding-top:56px;
	display:flex;
	background:#083249;
}

.sidebar{
	position:fixed;
	top:56px;
	left:0;
	bottom:0;
	width:250px;
	background:linear-gradient(180deg,#003047,#002434);
	border-right:1px solid rgba(255,255,255,.08);
	box-shadow:8px 0 24px rgba(0,0,0,.25);
	z-index:40;
}

.sidebar-header{
	padding:22px 18px;
	display:flex;
	align-items:center;
	gap:12px;
	border-bottom:1px solid rgba(255,255,255,.08);
	font-weight:900;
	text-transform:uppercase;
	font-size:.78rem;
	letter-spacing:.08em;
	color:#eaf7ff;
}

.sidebar-header img{
	height:36px;
	max-width:135px;
	object-fit:contain;
}

.sidebar-nav{
	padding:14px;
	display:flex;
	flex-direction:column;
	gap:8px;
}

.sidebar-nav a{
	display:flex;
	align-items:center;
	gap:11px;
	padding:13px 14px;
	border-radius:14px;
	color:var(--text-muted);
	text-decoration:none;
	font-weight:800;
	font-size:.92rem;
	transition:.2s;
}

.sidebar-nav a i{
	width:18px;
	text-align:center;
}

.sidebar-nav a:hover,
.sidebar-nav a.active{
	background:rgba(125,252,79,.12);
	color:#fff;
	box-shadow:inset 0 0 0 1px rgba(125,252,79,.18);
}

.content-area{
	margin-left:250px;
	width:calc(100% - 250px);
	padding:30px;
}

.page-title{
	font-size:2rem;
	font-weight:900;
	text-transform:uppercase;
	margin:0;
}

.page-subtitle{
	color:var(--text-muted);
	margin-top:4px;
	margin-bottom:0;
}

/* ===== Cards ===== */
.panel-card{
	background:linear-gradient(145deg,#003a55,#00283c);
	border-radius:22px;
	padding:24px;
	border:1px solid rgba(255,255,255,.08);
	box-shadow:0 15px 40px rgba(0,0,0,.30);
}

.stat-card{
	background:linear-gradient(145deg,#004461,#003047);
	border:1px solid rgba(125,252,79,.14);
	border-radius:22px;
	padding:24px;
	box-shadow:0 14px 32px rgba(0,0,0,.35);
	height:100%;
}

.stat-card-icon{
	width:48px;
	height:48px;
	border-radius:16px;
	display:flex;
	align-items:center;
	justify-content:center;
	background:rgba(125,252,79,.14);
	color:var(--accent);
	font-size:1.25rem;
	margin-bottom:16px;
}

.stat-card h3{
	font-size:2rem;
	font-weight:900;
	margin:0;
}

.stat-card p{
	margin:4px 0 0;
	color:var(--text-muted);
	font-weight:700;
}

/* ===== Table ===== */
.table{
	--bs-table-bg:rgba(0,0,0,.35);
	--bs-table-color:#eaf7ff;
	--bs-table-border-color:rgba(255,255,255,.10);
	--bs-table-striped-bg:rgba(0,0,0,.45);
	--bs-table-striped-color:#eaf7ff;
	--bs-table-hover-bg:rgba(255,255,255,.06);
	--bs-table-hover-color:#fff;
	background:rgba(0,0,0,.35)!important;
	border-radius:16px;
	overflow:hidden;
	margin-bottom:0;
}

.table thead th{
	background:rgba(0,0,0,.55)!important;
	color:rgba(234,247,255,.90)!important;
	border-bottom-color:rgba(255,255,255,.12)!important;
	font-size:.75rem;
	text-transform:uppercase;
	letter-spacing:.06em;
}

.table td,
.table th{
	border-top-color:rgba(255,255,255,.08)!important;
	vertical-align:middle;
}

.table a{
	color:#a4f2ff;
	text-decoration:none;
}

.table a:hover{
	text-decoration:underline;
}

/* ===== Badges ===== */
.badge-status{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:6px 12px;
	border-radius:999px;
	font-size:.75rem;
	font-weight:800;
	text-transform:uppercase;
}

.badge-ativo{
	background:rgba(125,252,79,.15);
	color:#7dfc4f;
	border:1px solid rgba(125,252,79,.35);
}

.badge-inativo{
	background:rgba(255,99,99,.12);
	color:#ff7d7d;
	border:1px solid rgba(255,99,99,.25);
}

/* ===== Modal ===== */
.modal-content.modal-brbicho{
	background:linear-gradient(145deg,#003a55,#00283c);
	color:#fff;
	border:1px solid rgba(125,252,79,.18);
	border-radius:22px;
	box-shadow:0 20px 60px rgba(0,0,0,.55);
}

.modal-brbicho .modal-header,
.modal-brbicho .modal-footer{
	border-color:rgba(255,255,255,.08);
}

.modal-brbicho .modal-title{
	font-weight:900;
	text-transform:uppercase;
}

/* ===== Checks ===== */
.checkbox-brbicho{
	display:flex;
	align-items:center;
	gap:10px;
	background:rgba(0,0,0,.20);
	border:1px solid rgba(255,255,255,.08);
	border-radius:14px;
	padding:13px 14px;
	width:100%;
	cursor:pointer;
	font-weight:800;
	color:#eaf7ff;
}

.checkbox-brbicho input{
	width:18px;
	height:18px;
	accent-color:#7dfc4f;
}

.categorias-permissoes{
	background:rgba(0,0,0,.20);
	border:1px solid rgba(255,255,255,.08);
	border-radius:16px;
	padding:16px;
	max-height:300px;
	overflow:auto;
}

.categoria-check{
	display:flex;
	align-items:center;
	gap:10px;
	padding:8px 10px;
	border-radius:12px;
	color:#eaf7ff;
	font-weight:700;
	cursor:pointer;
}

.categoria-check:hover{
	background:rgba(255,255,255,.06);
}

.categoria-check input{
	width:18px;
	height:18px;
	accent-color:#7dfc4f;
}

/* ===== Acessos usuário ===== */
.acessos-accordion .accordion-item{
	background:rgba(0,0,0,.22);
	border:1px solid rgba(255,255,255,.08);
	border-radius:18px;
	overflow:hidden;
	margin-bottom:14px;
}

.acessos-accordion .accordion-button{
	background:linear-gradient(135deg,#004461,#003047);
	color:#fff;
	font-weight:900;
	border:0;
	box-shadow:none;
}

.acessos-accordion .accordion-button:not(.collapsed){
	background:linear-gradient(135deg,#00597a,#003a55);
	color:#fff;
}

.acessos-accordion .accordion-button::after{
	filter:invert(1);
	margin-left:14px;
}

.acessos-accordion .accordion-body{
	background:rgba(0,0,0,.14);
}

.categoria-total{
	background:rgba(125,252,79,.14);
	color:var(--accent);
	padding:5px 10px;
	border-radius:999px;
	font-size:.75rem;
	font-weight:900;
}

.link-card{
	background:linear-gradient(145deg,#003a55,#00283c);
	border:1px solid rgba(125,252,79,.12);
	border-radius:20px;
	padding:20px;
	height:100%;
	box-shadow:0 12px 28px rgba(0,0,0,.30);
}

.link-card h5{
	font-weight:900;
	margin:0 0 5px;
}

.link-card p{
	color:var(--text-muted);
	margin:0;
	font-size:.92rem;
}

.link-actions{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
}

.access-field{
	margin-top:12px;
}

.access-field label{
	display:block;
	font-size:.78rem;
	font-weight:900;
	color:var(--text-muted);
	text-transform:uppercase;
	letter-spacing:.05em;
	margin-bottom:6px;
}

/* ===== Toast ===== */
.toast-brbicho{
	position:fixed;
	right:20px;
	bottom:20px;
	z-index:9999;
	display:flex;
	align-items:center;
	gap:10px;
	padding:14px 18px;
	border-radius:14px;
	background:#7dfc4f;
	color:#00240f;
	font-weight:800;
	box-shadow:0 15px 35px rgba(0,0,0,.30);
	transform:translateY(20px);
	opacity:0;
	transition:all .25s ease;
}

.toast-brbicho.show{
	transform:translateY(0);
	opacity:1;
}

/* ===== Alerts ===== */
.alert{
	border-radius:16px;
	font-weight:700;
}

/* ===== Mobile ===== */
@media(max-width:991px){
	.app-layout{
		display:block;
		padding-top:56px;
	}

	.sidebar{
		position:relative;
		top:0;
		width:100%;
		height:auto;
	}

	.sidebar-header{
		justify-content:center;
	}

	.sidebar-nav{
		flex-direction:row;
		overflow-x:auto;
	}

	.sidebar-nav a{
		white-space:nowrap;
	}

	.content-area{
		margin-left:0;
		width:100%;
		padding:20px;
	}

	.page-title{
		font-size:1.55rem;
	}
}

@media(max-width:576px){
	.card-hero{
		padding:26px 18px;
		border-radius:22px;
	}

	.hero-title{
		font-size:1.5rem;
	}

	.content-area{
		padding:15px;
	}

	.panel-card{
		padding:18px;
	}
}

/* ===== TABLE PREMIUM BRBICHO ===== */

.panel-card .table-responsive{
	border-radius:22px;
	overflow:hidden;
	border:1px solid rgba(125,252,79,.18);
	background:linear-gradient(145deg,#003a55,#00283c);
	box-shadow:0 12px 32px rgba(0,0,0,.22);
}

.table{
	background:transparent !important;
}

.table thead th{
	background:#003047 !important;
	color:#7dfc4f !important;
	border-bottom:1px solid rgba(125,252,79,.22) !important;
	text-align:center !important;
	vertical-align:middle !important;
	padding:16px 14px !important;
	font-size:.76rem;
	font-weight:900;
	letter-spacing:.08em;
}

.table tbody tr{
	background:rgba(0,58,85,.82) !important;
}

.table tbody tr:nth-child(even){
	background:rgba(0,48,71,.92) !important;
}

.table tbody tr:hover{
	background:rgba(0,106,143,.55) !important;
}

.table td{
	color:#eaf7ff !important;
	border-color:rgba(125,252,79,.10) !important;
	text-align:center !important;
	vertical-align:middle !important;
	padding:17px 14px !important;
}

.table th:first-child,
.table td:first-child{
	text-align:left !important;
}

.table td:first-child strong{
	display:block;
	color:#ffffff;
	font-weight:900;
	margin-bottom:4px;
}

.table td:first-child .text-muted{
	color:#b5d0df !important;
	font-size:.86rem;
}

.table a{
	color:#7dfc4f !important;
	font-weight:900;
	text-decoration:none !important;
}


.table a:hover{
	color:#ffffff !important;
}

.table .btn-sm{
	width:38px;
	height:38px;
	padding:0 !important;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	border-radius:999px !important;
	margin:0 3px;
}

.link-card h5{
	color:#ffd84d;
	font-weight:900;
	font-size:1.2rem;
}

/* ===== MEUS ACESSOS EM TABELA ===== */

.acessos-table-accordion .accordion-item{
	background:linear-gradient(145deg,#003a55,#00283c);
	border:1px solid rgba(125,252,79,.14);
	border-radius:18px;
	overflow:hidden;
	margin-bottom:14px;
	box-shadow:0 12px 32px rgba(0,0,0,.22);
}

.acessos-table-accordion .accordion-button{
	background:linear-gradient(90deg,#00597a,#003c57);
	color:#ffffff;
	font-weight:900;
	border:0;
	box-shadow:none;
	padding:17px 20px;
}

.acessos-table-accordion .accordion-button:not(.collapsed){
	background:linear-gradient(90deg,#006a8f,#004661);
	color:#ffffff;
}

.acessos-table-accordion .accordion-button::after{
	filter:invert(1);
	margin-left:14px;
}

.table-acessos-wrap{
	border:0 !important;
	border-radius:0 !important;
	background:transparent !important;
	box-shadow:none !important;
}

.table-acessos{
	background:transparent !important;
}

.table-acessos .linha-subcategoria td{
	background:rgba(0,48,71,.95) !important;
	color:#7dfc4f !important;
	font-weight:900;
	text-align:left !important;
	padding:13px 20px !important;
	border-color:rgba(125,252,79,.12) !important;
}

.table-acessos .linha-subcategoria i{
	color:#7dfc4f;
}

.table-acessos .linha-cabecalho th{
	background:rgba(0,36,52,.92) !important;
	color:#b5d0df !important;
	text-align:center !important;
	text-transform:uppercase;
	letter-spacing:.08em;
	font-size:.72rem;
	font-weight:900;
	padding:11px 14px !important;
	border-color:rgba(255,255,255,.06) !important;
}

.table-acessos .linha-acesso td{
	background:rgba(0,58,85,.50) !important;
	color:#eaf7ff !important;
	text-align:center !important;
	vertical-align:middle !important;
	padding:15px 14px !important;
	border-color:rgba(255,255,255,.06) !important;
}

.table-acessos .linha-acesso:nth-child(even) td{
	background:rgba(0,48,71,.60) !important;
}

.table-acessos .linha-acesso:hover td{
	background:rgba(0,106,143,.35) !important;
}

.table-acessos .linha-acesso td:first-child{
	text-align:left !important;
}

.table-acessos .linha-acesso td:first-child strong{
	color:#ffffff;
	font-weight:900;
	text-align:center
}

.acesso-link{
	color:#7dfc4f !important;
	font-weight:900;
	text-decoration:none !important;
}

.acesso-link:hover{
	color:#ffffff !important;
}

.btn-icon-copy{
	width:31px;
	height:31px;
	border-radius:10px;
	border:1px solid rgba(181,208,223,.25);
	background:rgba(0,34,52,.55);
	color:#b5d0df;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	margin-left:7px;
	transition:.2s;
}

.btn-icon-copy:hover{
	background:rgba(125,252,79,.14);
	border-color:rgba(125,252,79,.35);
	color:#7dfc4f;
}

.senha-inline{
	width:95px;
	background:transparent !important;
	border:0 !important;
	color:#ffffff !important;
	text-align:center;
	font-weight:800;
	outline:none !important;
}

.favorito-link{
	color:#ffb703 !important;
	font-size:1.05rem;
	text-decoration:none !important;
}

.favorito-link:hover{
	color:#ffd84d !important;
}

@media(max-width:991px){

	.table-acessos-wrap{
		overflow-x:auto !important;
	}

	.table-acessos{
		min-width:850px;
	}

}


/* ===== FAVORITOS EM TABELA ===== */

.table-favoritos{
	background:transparent !important;
}

.table-favoritos thead th{
	background:rgba(0,36,52,.92) !important;
	color:#b5d0df !important;
	text-align:center !important;
	text-transform:uppercase;
	letter-spacing:.08em;
	font-size:.72rem;
	font-weight:900;
	padding:12px 14px !important;
	border-color:rgba(255,255,255,.06) !important;
}

.table-favoritos tbody td{
	background:rgba(0,58,85,.50) !important;
	color:#eaf7ff !important;
	text-align:center !important;
	vertical-align:middle !important;
	padding:15px 14px !important;
	border-color:rgba(255,255,255,.06) !important;
}

.table-favoritos tbody tr:nth-child(even) td{
	background:rgba(0,48,71,.60) !important;
}

.table-favoritos tbody tr:hover td{
	background:rgba(0,106,143,.35) !important;
}

.table-favoritos tbody td:first-child{
	text-align:left !important;
}

.table-favoritos tbody td:first-child strong{
	display:block;
	color:#ffffff;
	font-weight:900;
}

.table-favoritos .favorito-link{
	font-size:1.1rem;
	color:#ffb703 !important;
	text-decoration:none !important;
}

.table-favoritos .favorito-link:hover{
	color:#ffd84d !important;
}

.categorias-permissoes{
	max-height:250px;
	overflow-y:auto;
}

/* PERMISSÕES DOS LINKS */

.categorias-permissoes{
	max-height:260px;
	overflow-y:auto;
	padding:12px;
}

.categorias-permissoes::-webkit-scrollbar{
	width:8px;
}

.categorias-permissoes::-webkit-scrollbar-thumb{
	background:rgba(125,252,79,.35);
	border-radius:999px;
}

.categoria-check{
	padding:10px 12px;
	border-radius:12px;
	margin-bottom:4px;
}

.categoria-check:hover{
	background:rgba(125,252,79,.08);
}

.categoria-check small{
	font-size:.75rem;
	margin-top:2px;
}