/* ============================================
   🎨 ИМПОРТЫ ШРИФТОВ
   ============================================ */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@100;300;400;500;600;700&family=Montserrat:wght@100;300;400;500;600;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Sofia+Sans');
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@200..800&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Geologica:wght@100..900&display=swap');

/* ============================================
   🎨 CSS ПЕРЕМЕННЫЕ (Система дизайна)
   ============================================ */
:root {
	/* Шрифты */
	--font-primary: 'Inter', sans-serif;
	--font-secondary: 'Montserrat', sans-serif;
	--font-tertiary: 'Sofia Sans', sans-serif;
	--font-quaternary: 'Manrope', sans-serif;
	--font-quinary: 'Geologica', sans-serif;

	/* Фоновые цвета */
	--color-bg-page: #1a1e24;
	--color-bg-surface: #252a33;
	--color-bg-input: #2d343e;

	/* Цвета текста */
	--color-text-primary: #eef2f5;
	--color-text-secondary: #9aa8b5;

	/* Акцентные цвета */
	--color-accent-primary: #00b7ff;
	--color-accent-light: #0074f8;

	/* Элементы интерфейса */
	--color-border: #3a404b;
	--color-shadow: rgba(0, 0, 0, 0.4);
	--color-special: #ffd700;

	/* Анимации */
	--transition: all 0.25s ease;

	/* Базовые размеры */
	--space-unit: 0.25rem;
	--radius-sm: 0.5rem;
	--radius-md: 1rem;
	--radius-lg: 2rem;
	--radius-xl: 2.5rem;
	--radius-full: 9999px;
}

/* ===== Светлая тема ===== */
[data-theme='light'] {
	--color-bg-page: #f0f3f7;
	--color-bg-surface: #ffffff;
	--color-bg-input: #e6ecf2;
	--color-text-primary: #1f2a36;
	--color-text-secondary: #546e7a;
	--color-accent-primary: #4a7a8c;
	--color-accent-light: #6b9bb0;
	--color-border: #cbd5e0;
	--color-shadow: rgba(0, 0, 0, 0.08);
	--color-special: #ffd700;
}

/* ============================================
   📐 ГЛОБАЛЬНЫЕ СТИЛИ
   ============================================ */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	font-family: var(--font-secondary);
	font-size: 16px;
}

body,
button,
input,
textarea,
select,
a,
p,
h1,
h2,
h3,
h4,
h5,
h6,
span,
div,
li,
ul,
ol,
table,
th,
td,
label,
header,
footer,
nav,
section,
article,
aside,
main {
	font-family: inherit;
}

body {
	background: var(--color-bg-page);
	color: var(--color-text-primary);
	line-height: 1.5;
	transition: background 0.3s, color 0.3s;
	overflow: scroll;
}

/* ===== Скроллбар ===== */
body::-webkit-scrollbar {
	width: 0.4375rem;
	height: 0.4375rem;
}
body::-webkit-scrollbar-thumb {
	background-color: var(--color-accent-primary);
	border-radius: var(--radius-full);
}
body::-webkit-scrollbar-thumb:hover {
	background-color: var(--color-accent-light);
}
body::-webkit-scrollbar-track {
	background-color: var(--color-bg-surface);
}
body {
	scrollbar-width: thin;
	scrollbar-color: var(--color-accent-primary) var(--color-bg-surface);
}

.card::-webkit-scrollbar {
	width: 0.3125rem;
	height: 0.3125rem;
}
.card::-webkit-scrollbar-thumb {
	background-color: var(--color-accent-primary);
	border-radius: var(--radius-full);
}

/* ============================================
   📦 КОМПОНЕНТЫ
   ============================================ */
.container {
	width: 100%;
	max-width: 90rem;
	margin: 0 auto;
}

/* ===== Анимации ===== */
@keyframes fadeInUp {
	from {
		opacity: 0;
		transform: translateY(1.25rem);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
@keyframes spin {
	to {
		transform: rotate(360deg);
	}
}
@keyframes border-pulse {
	0% {
		border-color: var(--color-accent-primary);
		box-shadow: 0 0 0.9375rem var(--color-accent-primary);
	}
	50% {
		border-color: var(--color-accent-light);
		box-shadow: 0 0 1.5625rem var(--color-accent-primary);
	}
	100% {
		border-color: var(--color-accent-primary);
		box-shadow: 0 0 0.9375rem var(--color-accent-primary);
	}
}
@keyframes card-pulse {
	0%,
	100% {
		transform: scale(1);
	}
	50% {
		transform: scale(1.02);
	}
}
@keyframes insert-pulse {
	0% {
		transform: scale(1);
		box-shadow: 0 0 0 0 var(--color-accent-primary);
	}
	50% {
		transform: scale(1.05);
		box-shadow: 0 0 1.25rem 0.625rem rgba(0, 183, 255, 0.3);
	}
	100% {
		transform: scale(1);
		box-shadow: 0 0 0 0 rgba(0, 183, 255, 0);
	}
}
@keyframes glow-pulse {
	0%,
	100% {
		opacity: 0.3;
		transform: scaleX(1);
	}
	50% {
		opacity: 1;
		transform: scaleX(1.5);
	}
}

/* ============================================
   📱 ШАПКА (TOPBAR)
   ============================================ */
.topbar {
	position: sticky;
	top: 0;
	padding: 1rem;
	background: var(--color-bg-page);
	backdrop-filter: blur(6.25rem);
	-webkit-backdrop-filter: blur(6.25rem);
	z-index: 10;
	transition: background 0.3s;
}
.topbar > *:first-child {
	margin-top: 0 !important;
}

.topbar-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-bottom: 1rem;
}

.topbar h1 {
	margin: 0;
	font-size: 1.8rem;
	font-weight: 900;
	letter-spacing: -0.02em;
	background: linear-gradient(135deg, var(--color-accent-primary), var(--color-accent-light));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

/* ----- Панель инструментов ----- */
.toolbar {
	display: flex;
	gap: 0.625rem;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
}
.toolbar-main {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
}
.toolbar-secondary {
	display: flex;
	gap: 0.625rem;
	margin-top: 1rem;
	padding-top: 0.5rem;
	flex-wrap: wrap;
}

/* ----- Кнопки ----- */
.theme-toggle,
.customize-theme-btn,
.grid-columns-btn,
.toolbar button,
.mac-modal-btn,
.mac-calc-btn {
	background: var(--color-bg-input);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-xl);
	color: var(--color-text-primary);
	cursor: pointer;
	transition: var(--transition);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: inherit;
}

.theme-toggle,
.customize-theme-btn {
	width: 2.25rem;
	height: 2.25rem;
	border-radius: var(--radius-full);
	padding: 0;
}

.toolbar button,
.grid-columns-btn,
.mac-modal-btn,
.mac-calc-btn {
	padding: 0.5rem 1rem;
	font-size: 0.9rem;
	gap: 0.375rem;
}

.theme-toggle:hover,
.customize-theme-btn:hover,
.grid-columns-btn:hover,
.toolbar button:hover,
.mac-modal-btn:hover,
.mac-calc-btn:hover {
	border-color: var(--color-accent-primary);
	transform: translateY(-0.125rem);
}

.theme-toggle:hover {
	background: var(--color-accent-primary);
	color: var(--color-bg-page);
	transform: rotate(15deg);
}

.toolbar button.active {
	background: var(--color-accent-primary);
	color: var(--color-bg-page);
	border-color: var(--color-accent-primary);
}
.toolbar button.active:hover {
	background: var(--color-accent-light);
}

/* ----- Иконки темы ----- */
.theme-toggle .sun-icon {
	display: block;
}
.theme-toggle .moon-icon {
	display: none;
}
[data-theme='light'] .theme-toggle .sun-icon {
	display: none;
}
[data-theme='light'] .theme-toggle .moon-icon {
	display: block;
}
.theme-toggle svg,
.customize-theme-btn svg {
	width: 1.25rem;
	height: 1.25rem;
	fill: currentColor;
}

/* ============================================
   🔍 ПОИСК
   ============================================ */
.search-container {
	display: flex;
	position: relative;
	flex: 1;
}
.search-container::before {
	content: '';
	position: absolute;
	left: 0.875rem;
	top: 50%;
	transform: translateY(-50%);
	width: 1.25rem;
	height: 1.25rem;
	background-image: url('../img/search-light.svg');
	background-size: contain;
	background-repeat: no-repeat;
	pointer-events: none;
}
[data-theme='dark'] .search-container::before {
	background-image: url('../img/search-dark.svg');
}

.search-container input {
	width: 100%;
	padding: 0.5rem 1rem 0.5rem 2.75rem;
	border-radius: var(--radius-xl);
	border: 1px solid var(--color-border);
	background: var(--color-bg-input);
	color: var(--color-text-primary);
	font-size: 0.85rem;
	font-family: inherit;
	transition: var(--transition);
	outline: none;
}
.search-container input:focus {
	border-color: var(--color-accent-primary);
	box-shadow: 0 0 0 0.1875rem rgba(0, 183, 255, 0.2);
}
.search-container input::placeholder {
	color: var(--color-text-secondary);
	opacity: 0.7;
}
.search-container input[type='search']::-webkit-search-cancel-button {
	-webkit-appearance: none;
	appearance: none;
	display: none;
}
.search-container input[type='search']::-moz-search-cancel {
	display: none;
}

.clear-search {
	position: absolute;
	right: 0.75rem;
	top: 50%;
	transform: translateY(-50%);
	background: none;
	border: none;
	color: var(--color-text-secondary);
	font-size: 1.125rem;
	cursor: pointer;
	padding: 0.25rem 0.5rem;
	display: none;
	border-radius: var(--radius-full);
	transition: var(--transition);
	font-family: inherit;
}
.clear-search:hover {
	color: var(--color-accent-primary);
	background: var(--color-border);
}

/* ============================================
   🃏 КАРТОЧКИ
   ============================================ */
.grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0.75rem;
	padding: 1rem;
	opacity: 0;
	animation: fadeInUp 0.6s ease forwards;
}

.card {
	position: relative;
	background: var(--color-bg-surface);
	border-radius: var(--radius-md);
	padding: 0.75rem;
	display: grid;
	grid-template-rows: repeat(2, 1fr);
	gap: 0.5rem;
	transition: var(--transition);
	border: 1px solid var(--color-border);
	backdrop-filter: blur(0.25rem);
	-webkit-backdrop-filter: blur(0.25rem);
	min-height: 12.5rem;
	cursor: grab;
	user-select: none;
}
.card:hover {
	transform: translateY(-0.5rem);
	border-color: var(--color-accent-primary);
}
.card:active {
	transform: scale(0.98);
}

.card.dragging {
	opacity: 0.5;
	transform: scale(0.98);
	box-shadow: 0 0 1.25rem var(--color-shadow);
	transition: var(--transition);
	cursor: grabbing;
	filter: brightness(0.9);
}
.card.drag-over {
	position: relative;
	animation: card-pulse 1.5s infinite;
}
.card.drag-over::before {
	content: '';
	position: absolute;
	top: calc(-1 * var(--space-unit));
	left: calc(-1 * var(--space-unit));
	right: calc(-1 * var(--space-unit));
	bottom: calc(-1 * var(--space-unit));
	border: 0.1875rem solid var(--color-accent-primary);
	border-radius: var(--radius-md);
	box-shadow: 0 0 0.9375rem var(--color-accent-primary);
	z-index: 10;
	pointer-events: none;
	animation: border-pulse 1.5s infinite;
	background: transparent;
}
.card.inserted {
	animation: insert-pulse 0.5s ease;
}

.favorite-btn {
	position: absolute;
	top: 0.625rem;
	right: 0;
	background: none;
	border: none;
	font-size: 1.5rem;
	color: var(--color-text-secondary);
	cursor: pointer;
	transition: var(--transition);
	padding: 0.25rem 0.5rem;
	border-radius: var(--radius-full);
	z-index: 2;
	font-family: inherit;
}
.favorite-btn:hover {
	transform: scale(1.5);
}
.favorite-btn.active {
	color: var(--color-special);
	text-shadow: 0 0 0.625rem rgba(255, 215, 0, 0.3);
}

.card-title {
	padding-right: 1.875rem;
}
.card-title h2 {
	margin: 0;
	font-size: 1.4rem;
	font-weight: 600;
	color: var(--color-accent-primary);
	font-family: inherit;
}

.card-info {
	font-size: 0.9rem;
	color: var(--color-text-secondary);
	text-align: center;
	line-height: 1.6;
	width: 100%;
	padding: 0.25rem 0;
	border-top: 1px dashed var(--color-border);
	border-bottom: 1px dashed var(--color-border);
	min-height: 3rem;
}
.card-info .info-label {
	color: var(--color-accent-primary);
	font-weight: 600;
	margin-right: 0.25rem;
}
.card-info-list {
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
	width: 100%;
	padding: 0.5rem 0;
}
.card-info-item {
	font-size: 0.9rem;
	color: var(--color-text-secondary);
	text-align: center;
	line-height: 1.5;
}
.card-info-item .info-label {
	color: var(--color-accent-primary);
	font-weight: 600;
}

.highlight {
	background-color: #ffeb3b;
	color: #000;
	padding: 0.125rem 0.25rem;
	border-radius: 0.1875rem;
	font-weight: bold;
}
[data-theme='dark'] .highlight {
	background-color: #ffd700;
	color: #000;
}

.actions {
	display: flex;
	gap: 0.625rem;
	width: 100%;
	margin-top: auto;
}
.actions a,
.actions button {
	flex: 1;
	padding: 0.5rem 1rem;
	border-radius: var(--radius-xl);
	border: none;
	font-size: 0.9rem;
	font-weight: 500;
	background: var(--color-bg-input);
	color: var(--color-text-primary);
	cursor: pointer;
	transition: var(--transition);
	text-decoration: none;
	text-align: center;
	border: 1px solid transparent;
	font-family: inherit;
}
.actions a {
	background: var(--color-accent-primary);
	color: var(--color-bg-page);
	border-color: var(--color-accent-primary);
}
.actions a:hover {
	background: var(--color-accent-light);
	border-color: var(--color-accent-light);
	transform: scale(1.02);
}
.actions button:hover {
	background: var(--color-border);
	color: var(--color-text-primary);
	border-color: var(--color-accent-primary);
	transform: scale(1.02);
}

#macLookupBtn,
#macCalcCalculateBtn,#subnetCalculateBtn, #dnsLookupBtn, #ipInfoLookupBtn {
	background: var(--color-accent-primary);
	color: var(--color-bg-page);
	border-color: var(--color-accent-primary);
	text-decoration: none;
}
#macLookupBtn:hover,
#macCalcCalculateBtn:hover,#subnetCalculateBtn:hover, #dnsLookupBtn:hover ,#ipInfoLookupBtn:hover {
	background: var(--color-accent-light);
	border-color: var(--color-accent-light);
	transform: scale(1.02);
}

/* ============================================
   🪟 МОДАЛЬНОЕ ОКНО
   ============================================ */
.modal {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.5);
	backdrop-filter: blur(0.5rem);
	-webkit-backdrop-filter: blur(0.5rem);
	display: none;
	align-items: center;
	justify-content: center;
	z-index: 1000;
	opacity: 0;
	transition: opacity 0.3s ease;
}
.modal.active {
	opacity: 1;
	display: flex;
}

.modal-content {
	background: var(--color-bg-surface);
	max-width: 31.25rem;
	width: 90%;
	border-radius: var(--radius-lg);
	padding: 1.875rem;
	max-height: 85vh;	
	box-shadow: 0 1.875rem 3.125rem var(--color-shadow);
	border: 1px solid var(--color-border);
	transform: scale(0.9);
	transition: transform 0.3s ease;
	position: relative;
}
.modal.active .modal-content {
	transform: scale(1);
}
.modal-content::-webkit-scrollbar {
	width: 0.3125rem;
}
.modal-content::-webkit-scrollbar-thumb {
	background-color: var(--color-accent-primary);
	border-radius: var(--radius-full);
}

.close {
	position: absolute;
	right: 1.25rem;
	top: 0.9375rem;
	font-size: 1.75rem;
	background: none;
	border: none;
	color: var(--color-text-secondary);
	cursor: pointer;
	padding: 0.3125rem;
	line-height: 1;
	transition: var(--transition);
	font-family: inherit;
}
.close:hover {
	color: var(--color-accent-primary);
	transform: rotate(90deg);
}

.modal-content h2 {
	margin: 0 0 1rem 0;
	font-size: 1.8rem;
	color: var(--color-accent-primary);
	padding-right: 1.875rem;
	font-family: inherit;
}
.modal-content h3 {
	margin: 1.5rem 0 0.75rem 0;
	font-size: 1.2rem;
	color: var(--color-text-primary);
	border-bottom: 1px solid var(--color-border);
	padding-bottom: 0.375rem;
	font-family: inherit;
}
.modal-content p {
	margin: 0.5rem 0;
	font-size: 1rem;
	color: var(--color-text-secondary);
	font-family: inherit;
}
.modal-content strong {
	color: var(--color-accent-primary);
}

.modal-link {
	color: var(--color-accent-primary);
	text-decoration: none;
	padding: 0.75rem 1rem;
	background: var(--color-bg-input);
	border-radius: var(--radius-xl);
	font-size: 0.95rem;
	transition: var(--transition);
	border: 1px solid transparent;
	display: block;
	font-family: inherit;
}
.modal-link:hover {
	background: var(--color-border);
	border-color: var(--color-accent-primary);
	transform: translateX(0.375rem);
}
.links-list {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

/* ============================================
   MAC MODAL
   ============================================ */
.mac-modal .modal-content {
	max-width: 31.25rem;
	max-height: 95vh;
	padding: 1.875rem;
}

.mac-modal-header h2 {
	margin: 0 0 1rem 0;
	font-size: 1.8rem;
	color: var(--color-accent-primary);
	padding-right: 1.875rem;
}

/* ----- Поле ввода и кнопки ----- */
.search-wrap {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin-bottom: 1.25rem;
}

.mac-result-container {
	margin: 0.75rem 0;
  padding: 0.75rem 1rem;
  background: var(--color-bg-input);
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-border);  
}

.mac-result-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	color: var(--color-text-secondary);
	width: 100%;
}
.mac-result-placeholder .mac-icon {
	font-size: 2rem;
}

.mac-result-content {
	display: flex;
	gap: 0.5rem;
	width: 100%;
	justify-content: center;
}
.mac-result-vendor {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	font-size: 1.1rem;
}
.mac-result-vendor .vendor-icon {
	font-size: 1.8rem;
}
.mac-result-vendor .vendor-name {
	font-size: 14px;
	font-weight: 600;
}

.mac-result-details {
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
	justify-content: center;
	font-size: 0.85rem;
	color: var(--color-text-secondary);
}
.mac-result-details span {
	background: var(--color-bg-input);
	padding: 0.25rem 0.75rem;
	font-size: 0.75rem;
	border-radius: var(--radius-sm);
	border: 1px solid var(--color-border);
}

.mac-result-error {
	color: #e74c3c;
	font-weight: 500;
	padding: 0.25rem 0;
	width: 100%;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	flex-wrap: wrap;
}
.mac-result-error small {
	font-weight: normal;
	color: var(--color-text-secondary);
}

/* ----- Загрузка ----- */
.mac-loading {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.75rem 1rem;
	background: var(--color-bg-input);
	border-radius: var(--radius-sm);
	border: 1px solid var(--color-border);
	margin: 0.5rem 0;
}

.spinner-small {
	width: 1.25rem;
	height: 1.25rem;
	border: 3px solid var(--color-border);
	border-top-color: var(--color-accent-primary);
	border-radius: 50%;
	animation: spin 0.8s linear infinite;
}

/* ----- История ----- */
.mac-history {
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--color-border);
}
.mac-history h3 {
	margin: 0 0 0.75rem 0;
	font-size: 1.2rem;
	color: var(--color-text-primary);
	border-bottom: none;
	padding-bottom: 0;
	font-family: inherit;
}

#historyList {
	list-style: none;
	padding: 0;
	margin: 0 0 0.75rem 0;
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
}
#historyList li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	background: var(--color-bg-input);
	padding: 0.375rem 0.875rem;
	border-radius: var(--radius-sm);
	font-size: 0.9rem;
	border: 1px solid var(--color-border);
	cursor: pointer;
	transition: all 0.2s;
}
#historyList li:hover {
	background: var(--color-bg-surface);
	border-color: var(--color-accent-primary);
}
#historyList .history-mac {
	font-family: monospace;
	font-weight: 500;
	color: var(--color-text-primary);
}
#historyList .history-vendor {
	color: var(--color-text-secondary);
	font-size: 0.85rem;
	flex: 1;
	margin-left: 0.5rem;
}
#historyList .history-source {
	font-size: 0.7rem;
	opacity: 0.7;
	margin-right: 0.5rem;
}
#historyList .history-remove {
	background: none;
	border: none;
	color: var(--color-text-secondary);
	cursor: pointer;
	padding: 0 0.25rem;
	font-size: 1.1rem;
	line-height: 1;
	transition: all 0.2s;
	opacity: 0.5;
}
#historyList .history-remove:hover {
	color: #e74c3c;
	opacity: 1;
	transform: scale(1.2);
}

.clear-history-btn {
	padding: 0.375rem 1rem;
	background: transparent;
	color: var(--color-text-secondary);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	cursor: pointer;
	font-size: 0.85rem;
	transition: all 0.3s;
	font-family: inherit;
}
.clear-history-btn:hover {
	background: #e74c3c;
	color: white;
	border-color: #e74c3c;
}

/* ============================================
   ⏳ ИНДИКАТОР ЗАГРУЗКИ
   ============================================ */
.loading-spinner {
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 2000;
	display: none;
}
.spinner {
	border: 0.25rem solid var(--color-border);
	border-top: 0.25rem solid var(--color-accent-primary);
	border-radius: 50%;
	width: 2.5rem;
	height: 2.5rem;
	animation: spin 1s linear infinite;
}

/* ============================================
   🔔 УВЕДОМЛЕНИЯ
   ============================================ */
.notification {
	position: fixed;
	bottom: 1.25rem;
	right: 1.25rem;
	background: var(--color-bg-surface);
	color: var(--color-text-primary);
	padding: 0.75rem 1.5rem;
	border-radius: var(--radius-xl);
	border-left: 0.25rem solid var(--color-accent-primary);
	box-shadow: 0 0.3125rem 0.9375rem var(--color-shadow);
	transform: translateX(120%);
	transition: transform 0.3s ease;
	z-index: 1500;
	font-family: inherit;
	font-size: 0.875rem;
}
.notification.show {
	transform: translateX(0);
}

/* ============================================
   🎯 МЕНЮ ВЫБОРА СЕТКИ
   ============================================ */
.grid-columns-menu {
	position: fixed;
	z-index: 1000;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease, transform 0.3s ease;
	transform: translateY(-0.625rem);
}
.grid-columns-menu.active {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
}
.grid-columns-menu-content {
	background: var(--color-bg-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	padding: 0.75rem;
	min-width: 12.5rem;
	box-shadow: 0 0.625rem 1.875rem var(--color-shadow);
}
.grid-columns-menu-content h4 {
	margin: 0 0 0.75rem 0;
	padding: 0 0 0.5rem 0;
	border-bottom: 1px solid var(--color-border);
	color: var(--color-text-primary);
	font-size: 0.9rem;
	font-weight: 600;
	font-family: inherit;
}
.grid-option {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	width: 100%;
	padding: 0.625rem 0.75rem;
	background: transparent;
	border: none;
	border-radius: var(--radius-md);
	color: var(--color-text-primary);
	cursor: pointer;
	transition: var(--transition);
	text-align: left;
	font-size: 0.9rem;
	font-family: inherit;
}
.grid-option:hover {
	background: var(--color-bg-input);
}
.grid-option.active {
	background: var(--color-accent-primary);
	color: white;
}
.grid-option .grid-preview {
	font-size: 1.2rem;
	opacity: 0.8;
	min-width: 3.75rem;
}
.grid-option.active .grid-preview {
	opacity: 1;
}

/* ============================================
   🔤 ВЫБОР ШРИФТА
   ============================================ */
.font-selector-wrapper,
.font-size-selector-wrapper {
	position: relative;
	display: inline-block;
}

.font-selector-btn,
.font-size-btn {
	background: var(--color-bg-input);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-xl);
	color: var(--color-text-primary);
	cursor: pointer;
	transition: var(--transition);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.375rem;
	padding: 0.5rem 1rem;
	font-family: inherit;
	font-size: 0.9rem;
	white-space: nowrap;
}
.font-selector-btn:hover,
.font-size-btn:hover {
	border-color: var(--color-accent-primary);
	transform: translateY(-0.125rem);
}
.font-selector-btn svg,
.font-size-btn svg {
	width: 1.125rem;
	height: 1.125rem;
	fill: currentColor;
	flex-shrink: 0;
}
.current-font-indicator,
.current-size-indicator {
	font-weight: 500;
	color: var(--color-accent-primary);
}

.font-selector-menu,
.font-size-menu {
	position: absolute;
	top: 100%;
	z-index: 9999;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.2s ease, transform 0.2s ease;
	margin-top: 0.25rem;
	transform: translateY(-0.3125rem);
}
.font-selector-menu {
	left: 0;
	min-width: 15rem;
	max-width: 20rem;
}
.font-size-menu {
	right: 0;
	min-width: 18rem;
	max-width: 22rem;
}
.font-selector-menu.active,
.font-size-menu.active {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
}

.font-selector-menu-content,
.font-size-menu-content {
	background: var(--color-bg-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	padding: 1rem;
	box-shadow: 0 1.25rem 2.5rem var(--color-shadow);
	backdrop-filter: blur(0.625rem);
	-webkit-backdrop-filter: blur(0.625rem);
	width: 100%;
}
.font-size-menu-content {
	padding: 0.7rem;
}

.font-selector-menu-content h4,
.font-size-menu-content h4 {
	margin: 0 0 0.75rem 0;
	padding: 0 0 0.5rem 0;
	border-bottom: 1px solid var(--color-border);
	color: var(--color-text-primary);
	font-size: 0.95rem;
	font-weight: 600;
	font-family: inherit;
}
.font-size-menu-content h4:not(:first-child) {
	margin-top: 1rem;
}

.font-options,
.font-size-options {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.font-size-options {
	display: grid;
	gap: 0.5rem;
}

.font-option,
.font-size-option {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 0.5rem 1rem;
	background: var(--color-bg-input);
	border: 1px solid transparent;
	border-radius: var(--radius-xl);
	color: var(--color-text-primary);
	cursor: pointer;
	transition: var(--transition);
	text-align: left;
	font-size: 1rem;
	font-family: inherit;
}
.font-size-option {
	justify-content: center;
	padding: 0.6rem 0.75rem;
	border-radius: var(--radius-md);
	font-size: 0.9rem;
}
.font-option:hover,
.font-size-option:hover {
	border-color: var(--color-accent-primary);
	transform: translateX(0.125rem);
	background: var(--color-bg-surface);
}
.font-option.active,
.font-size-option.active {
	background: var(--color-accent-primary);
	color: white;
	border-color: var(--color-accent-primary);
}
.font-preview {
	font-weight: 500;
}
.font-example {
	font-size: 1.4rem;
	opacity: 0.8;
	font-weight: 600;
}
.font-option.active .font-example {
	opacity: 1;
}
.size-value {
	font-size: 0.85rem;
	opacity: 0.8;
	background: rgba(0, 0, 0, 0.1);
	padding: 0.125rem 0.375rem;
	border-radius: var(--radius-sm);
}
.font-size-option.active .size-value {
	background: rgba(255, 255, 255, 0.2);
}

/* Ползунок */
.font-size-slider-container {
	margin-top: 0.5rem;
}
#font-size-slider {
	width: 100%;
	height: 0.375rem;
	-webkit-appearance: none;
	background: var(--color-bg-input);
	border-radius: var(--radius-full);
	outline: none;
}
#font-size-slider::-webkit-slider-thumb {
	-webkit-appearance: none;
	width: 1.25rem;
	height: 1.25rem;
	background: var(--color-accent-primary);
	border-radius: 50%;
	cursor: pointer;
	transition: var(--transition);
	border: 2px solid var(--color-bg-surface);
}
#font-size-slider::-webkit-slider-thumb:hover {
	transform: scale(1.15);
}
#font-size-slider::-moz-range-thumb {
	width: 1.25rem;
	height: 1.25rem;
	background: var(--color-accent-primary);
	border-radius: 50%;
	cursor: pointer;
	transition: var(--transition);
	border: 2px solid var(--color-bg-surface);
}
.slider-value {
	display: flex;
	justify-content: center;
	margin-top: 0.5rem;
	font-size: 1rem;
	font-weight: 600;
	color: var(--color-accent-primary);
}

.font-size-actions {
	margin-top: 1rem;
	padding-top: 0.75rem;
	border-top: 1px solid var(--color-border);
}
.reset-size-btn {
	width: 100%;
	padding: 0.6rem;
	background: var(--color-bg-input);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	color: var(--color-text-primary);
	cursor: pointer;
	transition: var(--transition);
	font-family: inherit;
	font-size: 0.9rem;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
}
.reset-size-btn:hover {
	background: var(--color-border);
	border-color: var(--color-accent-primary);
}

/* ============================================
   🎛️ УПРАВЛЕНИЕ ТЕМОЙ
   ============================================ */
.theme-controls {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

/* ============================================
   📊 MAC CALCULATOR
   ============================================ */
.mac-calc-info {
	margin: 0.75rem 0;
	padding: 0.75rem 1rem;
	background: var(--color-bg-input);
	border-radius: var(--radius-sm);
	border: 1px solid var(--color-border);
}
.mac-calc-info-content {
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
}
.mac-calc-info-content p {
	margin: 0;
	font-size: 0.95rem;
	color: var(--color-text-secondary);
}
.mac-calc-info-content strong {
	color: var(--color-accent-primary);
}
.mac-calc-info-content span {
	color: var(--color-text-primary);
	font-weight: 600;
	font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
}


/* ============================================
   SUBNET CALCULATOR 
   ============================================ */

.subnet-calc-btn {
  padding: 0.5rem 1rem;
  background: var(--color-bg-input);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  color: var(--color-text-primary);
  cursor: pointer;
  transition: var(--transition);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  font-family: inherit;
  font-size: 0.9rem;
}

.subnet-calc-btn:hover {
  border-color: var(--color-accent-primary);
  transform: translateY(-0.125rem);
  background: var(--color-bg-surface);
}


.subnet-result-container {
  margin: 0.75rem 0;
  padding: 0.75rem 1rem;
  background: var(--color-bg-input);
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-border);
  
}

.subnet-result-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-secondary);
  width: 100%;
}

.subnet-result-content {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}


.subnet-result-grid {
      display: flex;
    flex-direction: column;
    gap: 0.375rem;
    padding-top: 0.75rem;   
}

.subnet-result-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.375rem 0.625rem;
  background: var(--color-bg-surface);
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-border);
}

.subnet-label {
  color: var(--color-text-secondary);
  font-size: 0.85rem;
}

.subnet-value {
  color: var(--color-text-primary);
  font-weight: 600;
  font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
  font-size: 0.9rem;
}

/* Детали */
.subnet-result-details {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--color-border);
}

.subnet-detail-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.25rem 0.5rem;
  background: var(--color-bg-surface);
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-border);
}

.subnet-detail-label {
  color: var(--color-text-secondary);
  font-size: 0.8rem;
}

.subnet-detail-value {
  color: var(--color-text-primary);
  font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
  font-size: 0.8rem;
}

.subnet-binary {
  font-size: 0.7rem;
  word-break: break-all;
}

.subnet-result-error {
  color: #e74c3c;
  font-weight: 500;
  text-align: center; 
}

/* Адаптация */
@media (max-width: 48rem) {
  .subnet-result-grid {
    grid-template-columns: 1fr;
  }
  
  .subnet-result-item {
    flex-direction: column;
    gap: 0.25rem;
    text-align: center;
  }
  
  .subnet-detail-row {
    flex-direction: column;
    gap: 0.25rem;
    text-align: center;
  }
  
  .subnet-detail-value {
    word-break: break-all;
  }
}


/* ============================================
   DNS LOOKUP - Стили
   ============================================ */

/* Кнопка DNS Lookup */
.dns-lookup-btn {
  padding: 0.5rem 1rem;
  background: var(--color-bg-input);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  color: var(--color-text-primary);
  cursor: pointer;
  transition: var(--transition);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  font-family: inherit;
  font-size: 0.9rem;
}

.dns-lookup-btn:hover {
  border-color: var(--color-accent-primary);
  transform: translateY(-0.125rem);
  background: var(--color-bg-surface);
}

/* DNS Type Selector */
.dns-type-selector {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0.25rem 0;
}

.dns-type-selector label {
  color: var(--color-text-secondary);
  font-size: 0.9rem;
  white-space: nowrap;
}

.dns-select {
  padding: 0.4rem 0.75rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-bg-input);
  color: var(--color-text-primary);
  font-family: inherit;
  font-size: 0.9rem;
  cursor: pointer;
  outline: none;
  min-width: 80px;
}

.dns-select:focus {
  border-color: var(--color-accent-primary);
}


.dns-result-container {
    margin: 0.75rem 0;
    padding: 0.5rem;
    background: var(--color-bg-input);
    border-radius: var(--radius-sm);
    border: 1px solid var(--color-border);
    min-height: 60px;
    max-height: 400px; 
    overflow-y: auto;
    overflow-x: auto; 
}

/* Стилизация скроллбара внутри контейнера */
.dns-result-container::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

.dns-result-container::-webkit-scrollbar-track {
    background: var(--color-bg-surface);
    border-radius: var(--radius-full);
}

.dns-result-container::-webkit-scrollbar-thumb {
    background: var(--color-accent-primary);
    border-radius: var(--radius-full);
}

.dns-result-container::-webkit-scrollbar-thumb:hover {
    background: var(--color-accent-light);
}

.dns-result-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-secondary);
  width: 100%;
}

.dns-result-content {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.dns-result-summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.375rem 0.5rem;
  background: var(--color-bg-surface);
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-border);
}

.dns-domain {
  font-weight: 600;
  color: var(--color-text-primary);  
}

.dns-records-count {
  color: var(--color-text-secondary);
  font-size: 0.85rem;
}

/* DNS Table */
.dns-table-wrapper {
  overflow-x: auto;
}

.dns-result-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.85rem;
}

.dns-result-table thead tr {
  background: var(--color-bg-surface);
  border-bottom: 2px solid var(--color-border);
}

.dns-result-table th {
  padding: 0.5rem 0.75rem;
  text-align: left;
  font-weight: 600;
  color: var(--color-text-secondary);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  white-space: nowrap;
}

.dns-result-table td {
  padding: 0.4rem;
  border-bottom: 1px solid var(--color-border);
  color: var(--color-text-primary);
  vertical-align: middle;
}

.dns-result-table tbody tr:hover {
  background: var(--color-bg-surface);
}

.dns-record-type {
  display: inline-block;
  padding: 0.1rem 0.5rem;
  background: var(--color-accent-primary);
  color: var(--color-bg-page);
  border-radius: var(--radius-sm);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.3px;
}

.dns-record-data {
  font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
  font-size: 0.8rem;
  word-break: break-all;
}

/* No records */
.dns-result-no-records {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  padding: 1rem 0;
  color: var(--color-text-secondary);
}

.dns-result-no-records .dns-icon {
  font-size: 2rem;
}

.dns-result-no-records p {
  margin: 0;
}

.dns-hint {
  font-size: 0.8rem;
  opacity: 0.7;
}

/* Loading */
.dns-loading {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.5rem 0.75rem;
  background: var(--color-bg-input);
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-border);
  margin: 0.5rem 0;
  font-size: 0.9rem;
  color: var(--color-text-secondary);
}

/* Footer */
.dns-result-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 0.5rem;
  border-top: 1px solid var(--color-border);
  font-size: 0.75rem;
  color: var(--color-text-secondary);
}

.dns-api-source {
  opacity: 0.6;
}

.dns-copy-btn {
  padding: 0.25rem 0.75rem;
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  color: var(--color-text-secondary);
  cursor: pointer;
  font-size: 0.75rem;
  transition: var(--transition);
  font-family: inherit;
}

.dns-copy-btn:hover {
  border-color: var(--color-accent-primary);
  color: var(--color-text-primary);
}

.dns-result-error {
  color: #e74c3c;
  font-weight: 500;
  text-align: center;
  padding: 0.5rem 0;
}

/* Адаптация */
@media (max-width: 48rem) {
  .dns-type-selector {
    flex-direction: column;
    align-items: stretch;
  }
  
  .dns-result-summary {
    flex-direction: column;
    gap: 0.25rem;
    text-align: center;
  }
  
  .dns-result-footer {
    flex-direction: column;
    gap: 0.5rem;
  }
  
  .dns-result-table {
    font-size: 0.75rem;
  }
  
  .dns-result-table th,
  .dns-result-table td {
    padding: 0.3rem 0.5rem;
  }
}





/* ============================================
   IP INFO - Стили
   ============================================ */

/* Кнопка IP Info */
.ip-info-btn {
  padding: 0.5rem 1rem;
  background: var(--color-bg-input);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  color: var(--color-text-primary);
  cursor: pointer;
  transition: var(--transition);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  font-family: inherit;
  font-size: 0.9rem;
}

.ip-info-btn:hover {
  border-color: var(--color-accent-primary);
  transform: translateY(-0.125rem);
  background: var(--color-bg-surface);
}

/* IP Info Result */
.ip-info-result-container {
  margin: 0.75rem 0;
  padding: 0.5rem;
  background: var(--color-bg-input);
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-border);
  min-height: 60px;
  max-height: 400px;
  overflow-y: auto;
}

.ip-info-result-container::-webkit-scrollbar {
  width: 6px;
}

.ip-info-result-container::-webkit-scrollbar-track {
  background: var(--color-bg-surface);
  border-radius: var(--radius-full);
}

.ip-info-result-container::-webkit-scrollbar-thumb {
  background: var(--color-accent-primary);
  border-radius: var(--radius-full);
}

.ip-info-result-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-secondary);
  width: 100%;
}

.ip-info-result-content {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

/* Summary */
.ip-info-result-summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.375rem 0.5rem;
  background: var(--color-bg-surface);
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-border);
}

.ip-info-query {
  font-weight: 600;
  color: var(--color-text-primary);
  font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
  font-size: 1rem;
}

.ip-info-status {
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--color-accent-primary);
}

/* Info Grid */
.ip-info-grid {  
	display: flex;
    flex-direction: column;
    gap: 5px;
}

.ip-info-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.375rem;
  background: var(--color-bg-surface);
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-border);
}

.ip-info-label {
  color: var(--color-text-secondary);
  font-size: 0.85rem;
}

.ip-info-value {
  color: var(--color-text-primary);
  font-weight: 500;
  font-size: 0.85rem;
  text-align: right;
  word-break: break-all;
}

/* Loading */
.ip-info-loading {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.5rem 0.75rem;
  background: var(--color-bg-input);
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-border);
  margin: 0.5rem 0;
  font-size: 0.9rem;
  color: var(--color-text-secondary);
}

/* Footer */
.ip-info-result-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 0.5rem;
  border-top: 1px solid var(--color-border);
  font-size: 0.75rem;
  color: var(--color-text-secondary);
}

.ip-info-api-source {
  opacity: 0.6;
}

.ip-info-copy-btn {
  padding: 0.25rem 0.75rem;
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  color: var(--color-text-secondary);
  cursor: pointer;
  font-size: 0.75rem;
  transition: var(--transition);
  font-family: inherit;
}

.ip-info-copy-btn:hover {
  border-color: var(--color-accent-primary);
  color: var(--color-text-primary);
}

.ip-info-result-error {
  color: #e74c3c;
  font-weight: 500;
  text-align: center;
  padding: 0.5rem 0;
}

/* Map */
.ip-info-map {
  height: 200px;
  border-radius: var(--radius-sm);
  margin-top: 0.75rem;
  border: 1px solid var(--color-border);
  background: var(--color-bg-surface);
}

/* Адаптация */
@media (max-width: 48rem) {
  .ip-info-grid {
    grid-template-columns: 1fr;
  }
  
  .ip-info-item {
    flex-direction: column;
    gap: 0.25rem;
    text-align: center;
  }
  
  .ip-info-value {
    text-align: center;
  }
  
  .ip-info-result-summary {
    flex-direction: column;
    gap: 0.25rem;
    text-align: center;
  }
  
  .ip-info-result-footer {
    flex-direction: column;
    gap: 0.5rem;
  }
  
  .ip-info-map {
    height: 150px;
  }
}












/* ============================================
   📊 ПРОГРЕСС-БАР
   ============================================ */
.progress-container {
	margin: 0.5rem 0 0.75rem 0;
}
.progress-track {
	width: 100%;
	height: 6px;
	background: var(--color-bg-surface);
	border-radius: var(--radius-full);
	overflow: hidden;
	border: 1px solid var(--color-border);
}
.progress-bar {
	height: 100%;
	background: linear-gradient(90deg, var(--color-accent-primary) 0%, #00d4ff 100%);
	border-radius: var(--radius-full);
	transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	width: 0%;
	position: relative;
	box-shadow: 0 0 15px rgba(0, 183, 255, 0.3);
}
.progress-glow {
	position: absolute;
	top: -2px;
	right: 0;
	width: 20px;
	height: 10px;
	background: radial-gradient(ellipse at center, rgba(255, 255, 255, 0.6) 0%, transparent 70%);
	border-radius: var(--radius-full);
	animation: glow-pulse 1s ease-in-out infinite;
}

/* ============================================
   📱 АДАПТИВНОСТЬ
   ============================================ */
@media (max-width: 48rem) {
	.topbar .container {
		flex-direction: column;
		align-items: stretch;
	}
	.topbar-header {
		justify-content: space-between;
	}
	.search-container {
		max-width: 100%;
	}
	.toolbar-main {
		justify-content: center;
		flex-direction: column;
	}
	.toolbar-secondary {
		justify-content: space-between;
		
	}
	.toolbar-secondary button {
		justify-content: center;
		width: 48%;
	}

	.grid {
		grid-template-columns: 1fr;
		gap: 1.125rem;
	}
	.card {
		min-height: auto;
	}
	.modal-content {
		padding: 1.25rem;
	}
	.mac-modal .modal-content {
		padding: 1.25rem;
		max-width: 95%;
		max-height: 90vh;
	}
	.mac-modal-header h2 {
		font-size: 1.4rem;
	}
	.mac-result-details {
		flex-direction: column;
		gap: 0.375rem;
	}
	.mac-result-details span {
		display: inline-block;
	}
	.mac-result-error {
		flex-direction: column;
		gap: 0.25rem;
	}
	.mac-result-success {
		flex-direction: column;
	}
	.mac-result-vendor,
	.mac-result-details {
		justify-content: center;
	}
	
	.grid-columns-btn {
		display: none;
	}

	.font-selector-btn .current-font-indicator,
	.font-size-btn .current-size-indicator {
		display: none;
	}
	.font-selector-btn,
	.font-size-btn {
		width: 2.5rem;
		height: 2.5rem;
		padding: 0.5rem;
		min-width: 2.5rem;
	}
	.font-selector-wrapper {
		display: inline-block;
	}
	.font-selector-menu,
	.font-size-menu {
		position: fixed !important;
		top: auto !important;
		left: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		min-width: 100%;
		max-width: 100%;
		margin-top: 0;
		transform: translateY(100%);
	}
	.font-selector-menu.active,
	.font-size-menu.active {
		transform: translateY(0);
	}
	.font-selector-menu-content,
	.font-size-menu-content {
		border-radius: var(--radius-lg);
		max-height: 70vh;
		overflow-y: auto;
		width: 100%;
		border-bottom: none;
	}
	.font-option {
		padding: 0.875rem 1.25rem;
		font-size: 1.1rem;
	}
	.font-example {
		font-size: 1.6rem;
	}
	.font-size-options {
		grid-template-columns: 1fr;
	}
	.font-size-option {
		padding: 0.875rem 1rem;
	}

	.mac-calc-info-content {
		font-size: 0.9rem;
	}
}

@media (max-width: 480px) {
	.mac-vendor-header h2 {
		font-size: 1.1rem;
	}
	.mac-result-vendor {
		font-size: 1rem;
		flex-wrap: wrap;
	}	

}


@media print {
	.topbar,
	.modal,
	.favorite-btn,
	.actions,
	.toolbar,
	.search-container,
	.theme-controls,
	.grid-columns-btn,
	.grid-columns-menu {
		display: none !important;
	}
	.card {
		break-inside: avoid;
		border: 1px solid #000;
		background: #fff;
		color: #000;
	}
	body {
		background: #fff;
		color: #000;
	}
	.card-title h2 {
		color: #000;
	}
}