/* Portal Main Styles */
:root {
	--color__primary: #0066FF;
	--color__primary_hover: #0052CC;
	--color__success: #22C55E;
	--color__warning: #F97316;
	--color__error: #EF4444;
	--color__bg: #F8FAFC;
	--color__surface: #FFFFFF;
	--color__text_primary: #1F2937;
	--color__text_secondary: #6B7280;
	--color__border: #E5E7EB;
	--color__sidebar_bg: #1E293B;
	--color__sidebar_text: #94A3B8;
	--color__sidebar_active: #FFFFFF;
	--shadow__sm: 0 1px 2px rgba(0,0,0,0.05);
	--shadow__md: 0 4px 6px rgba(0,0,0,0.1);
	--radius__sm: 4px;
	--radius__md: 8px;
	--radius__lg: 12px;
}

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

body {
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	background: var(--color__bg);
	color: var(--color__text_primary);
	line-height: 1.5;
}

/* Layout */
.layout {
	display: flex;
	min-height: 100vh;
}

.sidebar {
	width: 260px;
	background: var(--color__sidebar_bg);
	color: var(--color__sidebar_text);
	padding: 24px 0;
	position: fixed;
	height: 100vh;
	overflow-y: auto;
}

.sidebar__logo {
	padding: 0 24px 24px;
	border-bottom: 1px solid rgba(255,255,255,0.1);
	margin-bottom: 24px;
}

.sidebar__logo h1 {
	color: var(--color__sidebar_active);
	font-size: 18px;
	font-weight: 600;
}

.sidebar__logo span {
	font-size: 12px;
	opacity: 0.7;
}

.sidebar__nav {
	list-style: none;
}

.sidebar__nav a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 24px;
	color: var(--color__sidebar_text);
	text-decoration: none;
	transition: all 0.2s;
}

.sidebar__nav a:hover,
.sidebar__nav a.active {
	background: rgba(255,255,255,0.1);
	color: var(--color__sidebar_active);
}

.sidebar__nav a.active {
	border-left: 3px solid var(--color__primary);
}

.main {
	flex: 1;
	margin-left: 260px;
}

.header {
	background: var(--color__surface);
	border-bottom: 1px solid var(--color__border);
	padding: 16px 32px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	position: sticky;
	top: 0;
	z-index: 100;
}

.header__search {
	display: flex;
	align-items: center;
	gap: 8px;
	background: var(--color__bg);
	border: 1px solid var(--color__border);
	border-radius: var(--radius__md);
	padding: 8px 16px;
	width: 400px;
}

.header__search input {
	border: none;
	background: none;
	outline: none;
	width: 100%;
	font-size: 14px;
}

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

.header__user_avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--color__primary);
	color: white;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 600;
}

.content {
	padding: 32px;
}

/* Cards */
.card {
	background: var(--color__surface);
	border-radius: var(--radius__lg);
	box-shadow: var(--shadow__sm);
	padding: 24px;
	margin-bottom: 24px;
}

.card__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 24px;
}

.card__title {
	font-size: 18px;
	font-weight: 600;
}

/* Stats */
.stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	margin-bottom: 32px;
}

.stat {
	background: var(--color__surface);
	border-radius: var(--radius__lg);
	padding: 24px;
	box-shadow: var(--shadow__sm);
}

.stat__value {
	font-size: 32px;
	font-weight: 700;
	color: var(--color__primary);
}

.stat__label {
	color: var(--color__text_secondary);
	font-size: 14px;
	margin-top: 4px;
}

/* Tables */
.table {
	width: 100%;
	border-collapse: collapse;
}

.table th,
.table td {
	padding: 12px 16px;
	text-align: left;
	border-bottom: 1px solid var(--color__border);
}

.table th {
	font-weight: 600;
	color: var(--color__text_secondary);
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.table tr:hover {
	background: var(--color__bg);
}

/* Badges */
.badge {
	display: inline-block;
	padding: 4px 12px;
	border-radius: 100px;
	font-size: 12px;
	font-weight: 500;
}

.badge--primary {
	background: rgba(0,102,255,0.1);
	color: var(--color__primary);
}

.badge--success {
	background: rgba(34,197,94,0.1);
	color: var(--color__success);
}

.badge--warning {
	background: rgba(249,115,22,0.1);
	color: var(--color__warning);
}

.badge--error {
	background: rgba(239,68,68,0.1);
	color: var(--color__error);
}

/* Buttons */
.btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 20px;
	border-radius: var(--radius__md);
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.2s;
	border: none;
	text-decoration: none;
}

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

.btn--primary:hover {
	background: var(--color__primary_hover);
}

.btn--secondary {
	background: var(--color__surface);
	color: var(--color__text_primary);
	border: 1px solid var(--color__border);
}

.btn--secondary:hover {
	background: var(--color__bg);
}

/* User row */
.user__row {
	display: flex;
	align-items: center;
	gap: 12px;
}

.user__avatar {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: white;
	font-weight: 600;
	font-size: 14px;
}

.user__info h4 {
	font-weight: 500;
	font-size: 14px;
}

.user__info span {
	color: var(--color__text_secondary);
	font-size: 12px;
}

/* Tabs */
.tabs {
	display: flex;
	gap: 4px;
	border-bottom: 1px solid var(--color__border);
	margin-bottom: 24px;
}

.tab {
	padding: 12px 20px;
	color: var(--color__text_secondary);
	text-decoration: none;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	transition: all 0.2s;
}

.tab:hover {
	color: var(--color__text_primary);
}

.tab.active {
	color: var(--color__primary);
	border-bottom-color: var(--color__primary);
}

/* Forms */
.form__group {
	margin-bottom: 20px;
}

.form__label {
	display: block;
	margin-bottom: 8px;
	font-weight: 500;
	font-size: 14px;
}

.form__input {
	width: 100%;
	padding: 10px 14px;
	border: 1px solid var(--color__border);
	border-radius: var(--radius__md);
	font-size: 14px;
	transition: border-color 0.2s;
}

.form__input:focus {
	outline: none;
	border-color: var(--color__primary);
}

/* Page header */
.page__header {
	margin-bottom: 32px;
}

.page__header h1 {
	font-size: 24px;
	font-weight: 600;
	margin-bottom: 8px;
}

.page__header p {
	color: var(--color__text_secondary);
}

/* Filters */
.filters {
	display: flex;
	gap: 12px;
	margin-bottom: 24px;
}

.filter__select {
	padding: 8px 32px 8px 12px;
	border: 1px solid var(--color__border);
	border-radius: var(--radius__md);
	background: var(--color__surface);
	font-size: 14px;
	cursor: pointer;
}

/* Actions */
.actions {
	display: flex;
	gap: 8px;
}

.action__btn {
	padding: 6px;
	border: none;
	background: none;
	cursor: pointer;
	color: var(--color__text_secondary);
	border-radius: var(--radius__sm);
	transition: all 0.2s;
}

.action__btn:hover {
	background: var(--color__bg);
	color: var(--color__text_primary);
}

/* Role badges */
.role__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
}

/* Avatar colors */
.avatar--blue { background: #3B82F6; }
.avatar--green { background: #22C55E; }
.avatar--orange { background: #F97316; }
.avatar--purple { background: #8B5CF6; }
.avatar--pink { background: #EC4899; }
.avatar--teal { background: #14B8A6; }
