:root{
	--primary:#0071df;
	--primary-dark:#00539f;
	--primary-soft:#00b9df;
	--bg-main:#edf9ff;
	--bg-card:#ffffff;
	--accent:#0071df;
	--accent-dark:#0064c7;
	--text-light:#062650;
	--text-muted:#607894;
}

*{
	box-sizing:border-box;
}

html,
body{
	min-height:100%;
}

body{
	margin:0;
	font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
	background:#f7fcff;
	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,#0071df,#1494e8);
	box-shadow:0 4px 12px rgba(0,65,125,0.070);
	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:#062650;
	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,#dff3ff 0,#f7fcff 55%,#edf9ff 100%);
	border-radius:26px;
	padding:36px 26px;
	box-shadow:0 18px 40px rgba(0,65,125,0.120);
	border:1px solid rgba(0,113,223,.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:#062650;
	font-weight:800;
	font-size:.88rem;
}

.form-control,
.form-select{
	background:rgba(0,113,223,0.062)!important;
	color:#062650!important;
	border:1px solid rgba(0,113,223,.18)!important;
	border-radius:14px!important;
	min-height:44px;
}

.form-control::placeholder{
	color:rgba(96,120,148,.65)!important;
}

.form-control:focus,
.form-select:focus{
	border-color:rgba(0,113,223,.75)!important;
	box-shadow:0 0 0 .22rem rgba(0,113,223,.18)!important;
}

.input-group-text{
	background:rgba(0,113,223,0.043)!important;
	border:1px solid rgba(0,113,223,.12)!important;
	color:#607894!important;
	border-radius:14px!important;
}

.btn{
	border-radius:14px!important;
	font-weight:800!important;
}

.btn-primary{
	background:linear-gradient(135deg,#1494e8,#0071df)!important;
	border:1px solid rgba(0,100,199,.9)!important;
	color:#ffffff!important;
}

.btn-primary:hover{
	filter:brightness(1.05);
}

.btn-outline-top{
	border:1px solid #0071df!important;
	color:#ffffff!important;
	background:#0071df!important;
	font-weight:700!important;
}

.btn-outline-top:hover,
.btn-outline-top:focus-visible{
	background:#00539f!important;
	border-color:#00539f!important;
	color:#ffffff!important;
}

.btn-danger{
	background:#f12f46!important;
	border-color:#f12f46!important;
	color:#ffffff!important;
}

.btn-danger:hover,
.btn-danger:focus-visible{
	background:#ce2037!important;
	border-color:#ce2037!important;
	color:#ffffff!important;
}

/* ===== Layout Painel ===== */
.app-layout{
	min-height:100vh;
	padding-top:56px;
	display:flex;
	background:#f7fcff;
}

.sidebar{
	position:fixed;
	top:56px;
	left:0;
	bottom:0;
	width:250px;
	background:linear-gradient(180deg,#edf9ff,#dff3ff);
	border-right:1px solid #c9e5f4;
	box-shadow:8px 0 24px rgba(0,65,125,0.050);
	z-index:40;
}

.sidebar-header{
	padding:22px 18px;
	display:flex;
	align-items:center;
	gap:12px;
	border-bottom:1px solid #c9e5f4;
	font-weight:900;
	text-transform:uppercase;
	font-size:.78rem;
	letter-spacing:.08em;
	color:#062650;
}

.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(0,113,223,.12);
	color:#062650;
	box-shadow:inset 0 0 0 1px rgba(0,113,223,.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,#ffffff,#edf9ff);
	border-radius:22px;
	padding:24px;
	border:1px solid #c9e5f4;
	box-shadow:0 15px 40px rgba(0,65,125,0.060);
}

.stat-card{
	background:linear-gradient(145deg,#dff3ff,#edf9ff);
	border:1px solid rgba(0,113,223,.14);
	border-radius:22px;
	padding:24px;
	box-shadow:0 14px 32px rgba(0,65,125,0.070);
	height:100%;
}

.stat-card-icon{
	width:48px;
	height:48px;
	border-radius:16px;
	display:flex;
	align-items:center;
	justify-content:center;
	background:rgba(0,113,223,.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,65,125,0.070);
	--bs-table-color:#062650;
	--bs-table-border-color:rgba(255,255,255,.10);
	--bs-table-striped-bg:rgba(0,65,125,0.090);
	--bs-table-striped-color:#062650;
	--bs-table-hover-bg:rgba(255,255,255,.06);
	--bs-table-hover-color:#062650;
	background:rgba(0,65,125,0.070)!important;
	border-radius:16px;
	overflow:hidden;
	margin-bottom:0;
}

.table thead th{
	background:rgba(0,65,125,0.110)!important;
	color:#00539f!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:#0071df;
	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(0,113,223,.15);
	color:#0071df;
	border:1px solid rgba(0,113,223,.35);
}

.badge-inativo{
	background:rgba(255,99,99,.12);
	color:#f12f46;
	border:1px solid rgba(255,99,99,.25);
}

/* ===== Modal ===== */
.modal-content.modal-brbicho{
	background:linear-gradient(145deg,#ffffff,#edf9ff);
	color:#062650;
	border:1px solid rgba(0,113,223,.18);
	border-radius:22px;
	box-shadow:0 20px 60px rgba(0,65,125,0.110);
}

.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,65,125,0.040);
	border:1px solid #c9e5f4;
	border-radius:14px;
	padding:13px 14px;
	width:100%;
	cursor:pointer;
	font-weight:800;
	color:#062650;
}

.checkbox-brbicho input{
	width:18px;
	height:18px;
	accent-color:#0071df;
}

.categorias-permissoes{
	background:rgba(0,65,125,0.040);
	border:1px solid #c9e5f4;
	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:#062650;
	font-weight:700;
	cursor:pointer;
}

.categoria-check:hover{
	background:rgba(0,113,223,.06);
}

.categoria-check input{
	width:18px;
	height:18px;
	accent-color:#0071df;
}

/* ===== Acessos usuário ===== */
.acessos-accordion .accordion-item{
	background:rgba(0,65,125,0.044);
	border:1px solid #c9e5f4;
	border-radius:18px;
	overflow:hidden;
	margin-bottom:14px;
}

.acessos-accordion .accordion-button{
	background:linear-gradient(135deg,#dff3ff,#edf9ff);
	color:#062650;
	font-weight:900;
	border:0;
	box-shadow:none;
}

.acessos-accordion .accordion-button:not(.collapsed){
	background:linear-gradient(135deg,#0071df,#ffffff);
	color:#062650;
}

.acessos-accordion .accordion-button::after{
	filter:none;
	margin-left:14px;
}

.acessos-accordion .accordion-body{
	background:rgba(0,65,125,0.028);
}

.categoria-total{
	background:rgba(0,113,223,.14);
	color:var(--accent);
	padding:5px 10px;
	border-radius:999px;
	font-size:.75rem;
	font-weight:900;
}

.link-card{
	background:linear-gradient(145deg,#ffffff,#edf9ff);
	border:1px solid rgba(0,113,223,.12);
	border-radius:20px;
	padding:20px;
	height:100%;
	box-shadow:0 12px 28px rgba(0,65,125,0.060);
}

.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:#0071df;
	color:#062650;
	font-weight:800;
	box-shadow:0 15px 35px rgba(0,65,125,0.060);
	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(0,113,223,.18);
	background:linear-gradient(145deg,#ffffff,#edf9ff);
	box-shadow:0 12px 32px rgba(0,65,125,0.044);
}

.table{
	background:transparent !important;
}

.table thead th{
	background:#edf9ff !important;
	color:#0071df !important;
	border-bottom:1px solid rgba(0,113,223,.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,113,223,0.078) !important;
}

.table tbody tr:nth-child(even){
	background:rgba(0,113,223,0.087) !important;
}

.table tbody tr:hover{
	background:rgba(0,113,223,0.052) !important;
}

.table td{
	color:#062650 !important;
	border-color:rgba(0,113,223,.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:#062650;
	font-weight:900;
	margin-bottom:4px;
}

.table td:first-child .text-muted{
	color:#607894 !important;
	font-size:.86rem;
}

.table a{
	color:#0071df !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:#00539f;
	font-weight:900;
	font-size:1.2rem;
}

/* ===== MEUS ACESSOS EM TABELA ===== */

.acessos-table-accordion .accordion-item{
	background:linear-gradient(145deg,#ffffff,#edf9ff);
	border:1px solid rgba(0,113,223,.14);
	border-radius:18px;
	overflow:hidden;
	margin-bottom:14px;
	box-shadow:0 12px 32px rgba(0,65,125,0.044);
}

.acessos-table-accordion .accordion-button{
	background:linear-gradient(90deg,#0071df,#00539f);
	color:#062650;
	font-weight:900;
	border:0;
	box-shadow:none;
	padding:17px 20px;
}

.acessos-table-accordion .accordion-button:not(.collapsed){
	background:linear-gradient(90deg,#00b9df,#0064c7);
	color:#062650;
}

.acessos-table-accordion .accordion-button::after{
	filter:none;
	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,113,223,0.090) !important;
	color:#0071df !important;
	font-weight:900;
	text-align:left !important;
	padding:13px 20px !important;
	border-color:rgba(0,113,223,.12) !important;
}

.table-acessos .linha-subcategoria i{
	color:#0071df;
}

.table-acessos .linha-cabecalho th{
	background:rgba(0,113,223,0.087) !important;
	color:#607894 !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,113,223,0.048) !important;
	color:#062650 !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,113,223,0.057) !important;
}

.table-acessos .linha-acesso:hover td{
	background:rgba(0,113,223,0.033) !important;
}

.table-acessos .linha-acesso td:first-child{
	text-align:left !important;
}

.table-acessos .linha-acesso td:first-child strong{
	color:#062650;
	font-weight:900;
	text-align:center
}

.acesso-link{
	color:#0071df !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(96,120,148,.25);
	background:rgba(0,113,223,0.052);
	color:#607894;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	margin-left:7px;
	transition:.2s;
}

.btn-icon-copy:hover{
	background:rgba(0,113,223,.14);
	border-color:rgba(0,113,223,.35);
	color:#0071df;
}

.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:#f2aa00 !important;
	font-size:1.05rem;
	text-decoration:none !important;
}

.favorito-link:hover{
	color:#00539f !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,113,223,0.087) !important;
	color:#607894 !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,113,223,0.048) !important;
	color:#062650 !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,113,223,0.057) !important;
}

.table-favoritos tbody tr:hover td{
	background:rgba(0,113,223,0.033) !important;
}

.table-favoritos tbody td:first-child{
	text-align:left !important;
}

.table-favoritos tbody td:first-child strong{
	display:block;
	color:#062650;
	font-weight:900;
}

.table-favoritos .favorito-link{
	font-size:1.1rem;
	color:#f2aa00 !important;
	text-decoration:none !important;
}

.table-favoritos .favorito-link:hover{
	color:#00539f !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(0,113,223,.35);
	border-radius:999px;
}

.categoria-check{
	padding:10px 12px;
	border-radius:12px;
	margin-bottom:4px;
}

.categoria-check:hover{
	background:rgba(0,113,223,.08);
}

.categoria-check small{
	font-size:.75rem;
	margin-top:2px;
}
/* Ajustes de contraste da identidade Binguinho Online */
.logo-text,.btn-outline-top{color:#ffffff!important}
.btn-primary,.toast-brbicho{color:#ffffff!important}
.btn-primary{background:linear-gradient(135deg,#1494e8,#0071df)!important}
.topbar .btn-outline-top:hover{color:#ffffff!important}
.sidebar-nav a:hover,.sidebar-nav a.active{color:#00539f}
.table thead th{color:#00539f!important}
.table td,.table th{color:#062650!important}
.table td:first-child strong,.table-acessos .linha-acesso td:first-child strong,.table-favoritos tbody td:first-child strong{color:#062650!important}
.table-acessos .linha-subcategoria td{color:#0071df!important}
.acessos-accordion .accordion-button,.acessos-table-accordion .accordion-button{color:#062650}
.acessos-accordion .accordion-button:not(.collapsed),.acessos-table-accordion .accordion-button:not(.collapsed){color:#062650}
.modal-content.modal-brbicho{color:#062650}
.form-control,.form-select{background:#fbfdff!important;color:#062650!important;border-color:#a8d0e7!important}
.input-group-text{background:#edf9ff!important;color:#607894!important}
.form-control::placeholder{color:#8295aa!important}
.table tbody tr{background:#ffffff!important}
.table tbody tr:nth-child(even){background:#edf9ff!important}
.table tbody tr:hover{background:#dff3ff!important}
.table-acessos .linha-acesso td,.table-favoritos tbody td{background:#ffffff!important;color:#062650!important}
.table-acessos .linha-acesso:nth-child(even) td,.table-favoritos tbody tr:nth-child(even) td{background:#edf9ff!important}
.table-acessos .linha-acesso:hover td,.table-favoritos tbody tr:hover td{background:#dff3ff!important}
.table-acessos .linha-cabecalho th,.table-favoritos thead th{background:#dff3ff!important;color:#00539f!important}
.senha-inline{color:#062650!important}

/* ===== Ícones dos botões de ação ===== */
.table .btn-outline-top i,
.table .btn-danger i{
	color:#ffffff!important;
}
.table .btn-outline-top,
.table .btn-danger{
	transition:background-color .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease;
}
.table .btn-outline-top:hover,
.table .btn-danger:hover{
	transform:translateY(-1px);
	box-shadow:0 4px 10px rgba(0,65,125,.16);
}
